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

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>229089</bug_id>
          
          <creation_ts>2021-08-13 11:26:51 -0700</creation_ts>
          <short_desc>[git-webkit] Add pull-request command</short_desc>
          <delta_ts>2021-08-27 13:02:47 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=229625</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jonathan Bedard">jbedard</reporter>
          <assigned_to name="Jonathan Bedard">jbedard</assigned_to>
          <cc>aakash_jain</cc>
    
    <cc>dewei_zhu</cc>
    
    <cc>kocsen_chung</cc>
    
    <cc>slewis</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1784173</commentid>
    <comment_count>0</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2021-08-13 11:26:51 -0700</bug_when>
    <thetext>As WebKit moves to GitHub, the project needs to support pull-requests. This bug tracks the addition of a basic pull-request command which creates a branch on a user&apos;s fork of the project, and then link that branch to a new pull-request on GitHub.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1784174</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-08-13 11:27:26 -0700</bug_when>
    <thetext>&lt;rdar://problem/81908751&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1784199</commentid>
    <comment_count>2</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2021-08-13 13:26:44 -0700</bug_when>
    <thetext>I will be uploading patches to this bug as well, but it seems appropriate that the change which adds support for pull-requests should itself be a pull request:
https://github.com/WebKit/WebKit/pull/4</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1784202</commentid>
    <comment_count>3</comment_count>
      <attachid>435504</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2021-08-13 13:50:46 -0700</bug_when>
    <thetext>Created attachment 435504
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1784206</commentid>
    <comment_count>4</comment_count>
      <attachid>435505</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2021-08-13 13:59:22 -0700</bug_when>
    <thetext>Created attachment 435505
Part 1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1784210</commentid>
    <comment_count>5</comment_count>
      <attachid>435507</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2021-08-13 14:03:37 -0700</bug_when>
    <thetext>Created attachment 435507
Part 2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1784212</commentid>
    <comment_count>6</comment_count>
      <attachid>435508</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2021-08-13 14:09:21 -0700</bug_when>
    <thetext>Created attachment 435508
Part 3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1784220</commentid>
    <comment_count>7</comment_count>
      <attachid>435510</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2021-08-13 14:16:49 -0700</bug_when>
    <thetext>Created attachment 435510
Part 4</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1784226</commentid>
    <comment_count>8</comment_count>
      <attachid>435513</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2021-08-13 14:21:18 -0700</bug_when>
    <thetext>Created attachment 435513
Part 5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1785613</commentid>
    <comment_count>9</comment_count>
      <attachid>435914</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2021-08-19 16:38:32 -0700</bug_when>
    <thetext>Created attachment 435914
Part 1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1785617</commentid>
    <comment_count>10</comment_count>
      <attachid>435917</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2021-08-19 16:45:54 -0700</bug_when>
    <thetext>Created attachment 435917
Part 2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1785622</commentid>
    <comment_count>11</comment_count>
      <attachid>435921</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2021-08-19 16:55:15 -0700</bug_when>
    <thetext>Created attachment 435921
Part 3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1785624</commentid>
    <comment_count>12</comment_count>
      <attachid>435922</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2021-08-19 16:58:16 -0700</bug_when>
    <thetext>Created attachment 435922
Part 4</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1785633</commentid>
    <comment_count>13</comment_count>
      <attachid>435927</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2021-08-19 17:08:49 -0700</bug_when>
    <thetext>Created attachment 435927
Part 5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1785988</commentid>
    <comment_count>14</comment_count>
      <attachid>435927</attachid>
    <who name="">dewei_zhu</who>
    <bug_when>2021-08-20 14:36:22 -0700</bug_when>
    <thetext>Comment on attachment 435927
Part 5

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1785993</commentid>
    <comment_count>15</comment_count>
      <attachid>435914</attachid>
    <who name="">dewei_zhu</who>
    <bug_when>2021-08-20 14:40:10 -0700</bug_when>
    <thetext>Comment on attachment 435914
Part 1

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1785994</commentid>
    <comment_count>16</comment_count>
      <attachid>435917</attachid>
    <who name="">dewei_zhu</who>
    <bug_when>2021-08-20 14:40:29 -0700</bug_when>
    <thetext>Comment on attachment 435917
Part 2

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1785995</commentid>
    <comment_count>17</comment_count>
      <attachid>435921</attachid>
    <who name="">dewei_zhu</who>
    <bug_when>2021-08-20 14:41:41 -0700</bug_when>
    <thetext>Comment on attachment 435921
Part 3

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1785996</commentid>
    <comment_count>18</comment_count>
      <attachid>435922</attachid>
    <who name="">dewei_zhu</who>
    <bug_when>2021-08-20 14:41:54 -0700</bug_when>
    <thetext>Comment on attachment 435922
Part 4

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1786021</commentid>
    <comment_count>19</comment_count>
      <attachid>436036</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2021-08-20 15:22:30 -0700</bug_when>
    <thetext>Created attachment 436036
Part 1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1786030</commentid>
    <comment_count>20</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-08-20 15:52:26 -0700</bug_when>
    <thetext>Committed r281346 (240762@main): &lt;https://commits.webkit.org/240762@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 436036.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1786039</commentid>
    <comment_count>21</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2021-08-20 16:07:04 -0700</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1786040</commentid>
    <comment_count>22</comment_count>
      <attachid>436040</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2021-08-20 16:07:05 -0700</bug_when>
    <thetext>Created attachment 436040
Part 2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1786065</commentid>
    <comment_count>23</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-08-20 18:01:54 -0700</bug_when>
    <thetext>Found 1 new test failure: http/tests/media/modern-media-controls/pip-support/pip-support-live-broadcast.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1786103</commentid>
    <comment_count>24</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-08-20 22:25:14 -0700</bug_when>
    <thetext>Committed r281363 (240778@main): &lt;https://commits.webkit.org/240778@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 436040.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1786139</commentid>
    <comment_count>25</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2021-08-21 08:24:56 -0700</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1786140</commentid>
    <comment_count>26</comment_count>
      <attachid>436074</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2021-08-21 08:24:57 -0700</bug_when>
    <thetext>Created attachment 436074
Part 3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1786155</commentid>
    <comment_count>27</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-08-21 12:20:03 -0700</bug_when>
    <thetext>Committed r281379 (240794@main): &lt;https://commits.webkit.org/240794@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 436074.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1786241</commentid>
    <comment_count>28</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2021-08-22 07:51:05 -0700</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1786242</commentid>
    <comment_count>29</comment_count>
      <attachid>436116</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2021-08-22 07:51:07 -0700</bug_when>
    <thetext>Created attachment 436116
Part 4</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1786247</commentid>
    <comment_count>30</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-08-22 09:29:37 -0700</bug_when>
    <thetext>Committed r281399 (240807@main): &lt;https://commits.webkit.org/240807@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 436116.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1786255</commentid>
    <comment_count>31</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2021-08-22 12:12:13 -0700</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1786256</commentid>
    <comment_count>32</comment_count>
      <attachid>436122</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2021-08-22 12:12:14 -0700</bug_when>
    <thetext>Created attachment 436122
Part 5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1786257</commentid>
    <comment_count>33</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-08-22 13:11:53 -0700</bug_when>
    <thetext>Committed r281412 (240808@main): &lt;https://commits.webkit.org/240808@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 436122.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1786617</commentid>
    <comment_count>34</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2021-08-23 17:01:57 -0700</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1786618</commentid>
    <comment_count>35</comment_count>
      <attachid>436250</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2021-08-23 17:01:58 -0700</bug_when>
    <thetext>Created attachment 436250
Part 6</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1786741</commentid>
    <comment_count>36</comment_count>
      <attachid>436288</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2021-08-24 08:20:58 -0700</bug_when>
    <thetext>Created attachment 436288
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1787893</commentid>
    <comment_count>37</comment_count>
      <attachid>436288</attachid>
    <who name="">dewei_zhu</who>
    <bug_when>2021-08-26 17:40:04 -0700</bug_when>
    <thetext>Comment on attachment 436288
Patch

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

r=me

&gt; Tools/Scripts/libraries/webkitscmpy/webkitscmpy/mocks/remote/bitbucket.py:203
&gt; +                states = params.get(&apos;state&apos;, [])

params can be `None` right? Do we need `states = (params or {}).get(&apos;state&apos;, [])` ?

&gt; Tools/Scripts/libraries/webkitscmpy/webkitscmpy/mocks/remote/bitbucket.py:207
&gt; +                at = params.get(&apos;at&apos;)

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1788013</commentid>
    <comment_count>38</comment_count>
      <attachid>436623</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2021-08-27 07:45:26 -0700</bug_when>
    <thetext>Created attachment 436623
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1788022</commentid>
    <comment_count>39</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-08-27 08:16:34 -0700</bug_when>
    <thetext>Committed r281695 (241045@main): &lt;https://commits.webkit.org/241045@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 436623.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>435504</attachid>
            <date>2021-08-13 13:50:46 -0700</date>
            <delta_ts>2021-08-13 13:59:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229089-20210813135045.patch</filename>
            <type>text/plain</type>
            <size>2702</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxMDMwCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZDY3NjM4ZDNmMzE0MmU4Y2M2MTg5YTVlMTZiMzNlMmMy
YjNlYTJjOC4uNTZhN2IzNTJkMThhYzNiNzljYTQwMTZjMjM0YTg1OTMxNTRjM2Q4MCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3
IEBACisyMDIxLTA4LTEzICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KKwor
ICAgICAgICBbZ2l0LXdlYmtpdF0gQWRkIHB1bGwtcmVxdWVzdCBjb21tYW5kIChQYXJ0IDEpCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjkwODkKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgxOTA4NzUxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkv
d2Via2l0c2NtcHkvcHJvZ3JhbS9fX2luaXRfXy5weToKKyAgICAgICAgKG1haW4pOiBTb3J0IHBy
b2dyYW1zLCBhZGQgYWxpYXNlcy4KKyAgICAgICAgKiBTY3JpcHRzL2xpYnJhcmllcy93ZWJraXRz
Y21weS93ZWJraXRzY21weS9wcm9ncmFtL2NvbW1hbmQucHk6CisgICAgICAgIChDb21tYW5kKTog
QWRkIGFsaWFzCisgICAgICAgIChGaWx0ZXJlZENvbW1hbmQpOiBJbmhlcml0IGZyb20gQ29tbWFu
ZC4KKwogMjAyMS0wOC0xMyAgSm9uYXRoYW4gQmVkYXJkICA8amJlZGFyZEBhcHBsZS5jb20+CiAK
ICAgICAgICAgW3dlYmtpdHNjbXB5XSBGaXggU1ZOIHJlbGF0aXZlIFVSTCBwYXJzaW5nCmRpZmYg
LS1naXQgYS9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS9w
cm9ncmFtL19faW5pdF9fLnB5IGIvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkv
d2Via2l0c2NtcHkvcHJvZ3JhbS9fX2luaXRfXy5weQppbmRleCAxNTc4ZGQ5NmU4MTViNjYzMzUx
MmMyYWI2MDlhNzM1YjRjYWY4ZTBlLi5mOTRiOTExYjZjZjBiMTZhM2QzMzcwYmU0N2MyZDI2YWJl
NzUwYzk0IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93
ZWJraXRzY21weS9wcm9ncmFtL19faW5pdF9fLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvbGlicmFy
aWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L3Byb2dyYW0vX19pbml0X18ucHkKQEAgLTY0LDEy
ICs2NCwxMiBAQCBkZWYgbWFpbihhcmdzPU5vbmUsIHBhdGg9Tm9uZSwgbG9nZ2Vycz1Ob25lLCBj
b250cmlidXRvcnM9Tm9uZSwgaWRlbnRpZmllcl90ZW1wbAogCiAgICAgc3VicGFyc2VycyA9IHBh
cnNlci5hZGRfc3VicGFyc2VycyhoZWxwPSdzdWItY29tbWFuZCBoZWxwJykKIAotICAgIHByb2dy
YW1zID0gW0ZpbmQsIEluZm8sIENoZWNrb3V0LCBDYW5vbmljYWxpemUsIFB1bGwsIENsZWFuLCBM
b2csIEJsYW1lLCBTZXR1cF0KKyAgICBwcm9ncmFtcyA9IFtCbGFtZSwgQ2Fub25pY2FsaXplLCBD
aGVja291dCwgQ2xlYW4sIEZpbmQsIEluZm8sIExvZywgUHVsbCwgU2V0dXBdCiAgICAgaWYgc3Vi
dmVyc2lvbjoKICAgICAgICAgcHJvZ3JhbXMuYXBwZW5kKFNldHVwR2l0U3ZuKQogCiAgICAgZm9y
IHByb2dyYW0gaW4gcHJvZ3JhbXM6Ci0gICAgICAgIHN1YnBhcnNlciA9IHN1YnBhcnNlcnMuYWRk
X3BhcnNlcihwcm9ncmFtLm5hbWUsIGhlbHA9cHJvZ3JhbS5oZWxwKQorICAgICAgICBzdWJwYXJz
ZXIgPSBzdWJwYXJzZXJzLmFkZF9wYXJzZXIocHJvZ3JhbS5uYW1lLCBhbGlhc2VzPXByb2dyYW0u
YWxpYXNlcywgaGVscD1wcm9ncmFtLmhlbHApCiAgICAgICAgIHN1YnBhcnNlci5zZXRfZGVmYXVs
dHMobWFpbj1wcm9ncmFtLm1haW4pCiAgICAgICAgIGFyZ3VtZW50cy5Mb2dnaW5nR3JvdXAoCiAg
ICAgICAgICAgICBzdWJwYXJzZXIsCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL2xpYnJhcmll
cy93ZWJraXRzY21weS93ZWJraXRzY21weS9wcm9ncmFtL2NvbW1hbmQucHkgYi9Ub29scy9TY3Jp
cHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS9wcm9ncmFtL2NvbW1hbmQucHkK
aW5kZXggMjhhYTk5Nzc5YTUyNmQyNDU1OTk0NzY1NWM3ZmRjMWFmZDNhMDVjYy4uYzlmMDZiMDk2
ODJjYWUzZDhkMzkwNjVkMDU5MzcyNjljOTc5Y2UyNSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0
cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvcHJvZ3JhbS9jb21tYW5kLnB5Cisr
KyBiL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L3Byb2dy
YW0vY29tbWFuZC5weQpAQCAtMzQsNiArMzQsNyBAQCBmcm9tIHdoaWNoY3JhZnQgaW1wb3J0IHdo
aWNoCiAKIGNsYXNzIENvbW1hbmQob2JqZWN0KToKICAgICBuYW1lID0gTm9uZQorICAgIGFsaWFz
ZXMgPSBbXQogICAgIGhlbHAgPSBOb25lCiAKICAgICBAY2xhc3NtZXRob2QKQEAgLTQ5LDcgKzUw
LDcgQEAgY2xhc3MgQ29tbWFuZChvYmplY3QpOgogICAgICAgICByZXR1cm4gLTEKIAogCi1jbGFz
cyBGaWx0ZXJlZENvbW1hbmQob2JqZWN0KToKK2NsYXNzIEZpbHRlcmVkQ29tbWFuZChDb21tYW5k
KToKICAgICBJREVOVElGSUVSID0gJ2lkZW50aWZpZXInCiAgICAgSEFTSCA9ICdoYXNoJwogICAg
IFJFVklTSU9OID0gJ3JldmlzaW9uJwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>435505</attachid>
            <date>2021-08-13 13:59:22 -0700</date>
            <delta_ts>2021-08-19 16:38:24 -0700</delta_ts>
            <desc>Part 1</desc>
            <filename>bug-229089-20210813135922.patch</filename>
            <type>text/plain</type>
            <size>2940</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxMDMwCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZDY3NjM4ZDNmMzE0MmU4Y2M2MTg5YTVlMTZiMzNlMmMy
YjNlYTJjOC4uNTZhN2IzNTJkMThhYzNiNzljYTQwMTZjMjM0YTg1OTMxNTRjM2Q4MCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3
IEBACisyMDIxLTA4LTEzICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KKwor
ICAgICAgICBbZ2l0LXdlYmtpdF0gQWRkIHB1bGwtcmVxdWVzdCBjb21tYW5kIChQYXJ0IDEpCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjkwODkKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgxOTA4NzUxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkv
d2Via2l0c2NtcHkvcHJvZ3JhbS9fX2luaXRfXy5weToKKyAgICAgICAgKG1haW4pOiBTb3J0IHBy
b2dyYW1zLCBhZGQgYWxpYXNlcy4KKyAgICAgICAgKiBTY3JpcHRzL2xpYnJhcmllcy93ZWJraXRz
Y21weS93ZWJraXRzY21weS9wcm9ncmFtL2NvbW1hbmQucHk6CisgICAgICAgIChDb21tYW5kKTog
QWRkIGFsaWFzCisgICAgICAgIChGaWx0ZXJlZENvbW1hbmQpOiBJbmhlcml0IGZyb20gQ29tbWFu
ZC4KKwogMjAyMS0wOC0xMyAgSm9uYXRoYW4gQmVkYXJkICA8amJlZGFyZEBhcHBsZS5jb20+CiAK
ICAgICAgICAgW3dlYmtpdHNjbXB5XSBGaXggU1ZOIHJlbGF0aXZlIFVSTCBwYXJzaW5nCmRpZmYg
LS1naXQgYS9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS9w
cm9ncmFtL19faW5pdF9fLnB5IGIvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkv
d2Via2l0c2NtcHkvcHJvZ3JhbS9fX2luaXRfXy5weQppbmRleCAxNTc4ZGQ5NmU4MTViNjYzMzUx
MmMyYWI2MDlhNzM1YjRjYWY4ZTBlLi5iMTk0Nzc3NDYzYWJjMzRlYzIzOTc5NWUzNmJmZWI4YmU1
NWMyY2U2IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93
ZWJraXRzY21weS9wcm9ncmFtL19faW5pdF9fLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvbGlicmFy
aWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L3Byb2dyYW0vX19pbml0X18ucHkKQEAgLTIzLDYg
KzIzLDcgQEAKIGltcG9ydCBhcmdwYXJzZQogaW1wb3J0IGxvZ2dpbmcKIGltcG9ydCBvcworaW1w
b3J0IHN5cwogCiBmcm9tIC5ibGFtZSBpbXBvcnQgQmxhbWUKIGZyb20gLmNhbm9uaWNhbGl6ZSBp
bXBvcnQgQ2Fub25pY2FsaXplCkBAIC02NCwxMiArNjUsMTUgQEAgZGVmIG1haW4oYXJncz1Ob25l
LCBwYXRoPU5vbmUsIGxvZ2dlcnM9Tm9uZSwgY29udHJpYnV0b3JzPU5vbmUsIGlkZW50aWZpZXJf
dGVtcGwKIAogICAgIHN1YnBhcnNlcnMgPSBwYXJzZXIuYWRkX3N1YnBhcnNlcnMoaGVscD0nc3Vi
LWNvbW1hbmQgaGVscCcpCiAKLSAgICBwcm9ncmFtcyA9IFtGaW5kLCBJbmZvLCBDaGVja291dCwg
Q2Fub25pY2FsaXplLCBQdWxsLCBDbGVhbiwgTG9nLCBCbGFtZSwgU2V0dXBdCisgICAgcHJvZ3Jh
bXMgPSBbQmxhbWUsIENhbm9uaWNhbGl6ZSwgQ2hlY2tvdXQsIENsZWFuLCBGaW5kLCBJbmZvLCBM
b2csIFB1bGwsIFNldHVwXQogICAgIGlmIHN1YnZlcnNpb246CiAgICAgICAgIHByb2dyYW1zLmFw
cGVuZChTZXR1cEdpdFN2bikKIAogICAgIGZvciBwcm9ncmFtIGluIHByb2dyYW1zOgotICAgICAg
ICBzdWJwYXJzZXIgPSBzdWJwYXJzZXJzLmFkZF9wYXJzZXIocHJvZ3JhbS5uYW1lLCBoZWxwPXBy
b2dyYW0uaGVscCkKKyAgICAgICAga3dhcmdzID0gZGljdChoZWxwPXByb2dyYW0uaGVscCkKKyAg
ICAgICAgaWYgc3lzLnZlcnNpb25faW5mbyA+ICgzLCAwKToKKyAgICAgICAgICAgIGt3YXJnc1sn
YWxpYXNlcyddID0gcHJvZ3JhbS5hbGlhc2VzCisgICAgICAgIHN1YnBhcnNlciA9IHN1YnBhcnNl
cnMuYWRkX3BhcnNlcihwcm9ncmFtLm5hbWUsICoqa3dhcmdzKQogICAgICAgICBzdWJwYXJzZXIu
c2V0X2RlZmF1bHRzKG1haW49cHJvZ3JhbS5tYWluKQogICAgICAgICBhcmd1bWVudHMuTG9nZ2lu
Z0dyb3VwKAogICAgICAgICAgICAgc3VicGFyc2VyLApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0
cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvcHJvZ3JhbS9jb21tYW5kLnB5IGIv
VG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvcHJvZ3JhbS9j
b21tYW5kLnB5CmluZGV4IDI4YWE5OTc3OWE1MjZkMjQ1NTk5NDc2NTVjN2ZkYzFhZmQzYTA1Y2Mu
LmM5ZjA2YjA5NjgyY2FlM2Q4ZDM5MDY1ZDA1OTM3MjY5Yzk3OWNlMjUgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L3Byb2dyYW0vY29t
bWFuZC5weQorKysgYi9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRz
Y21weS9wcm9ncmFtL2NvbW1hbmQucHkKQEAgLTM0LDYgKzM0LDcgQEAgZnJvbSB3aGljaGNyYWZ0
IGltcG9ydCB3aGljaAogCiBjbGFzcyBDb21tYW5kKG9iamVjdCk6CiAgICAgbmFtZSA9IE5vbmUK
KyAgICBhbGlhc2VzID0gW10KICAgICBoZWxwID0gTm9uZQogCiAgICAgQGNsYXNzbWV0aG9kCkBA
IC00OSw3ICs1MCw3IEBAIGNsYXNzIENvbW1hbmQob2JqZWN0KToKICAgICAgICAgcmV0dXJuIC0x
CiAKIAotY2xhc3MgRmlsdGVyZWRDb21tYW5kKG9iamVjdCk6CitjbGFzcyBGaWx0ZXJlZENvbW1h
bmQoQ29tbWFuZCk6CiAgICAgSURFTlRJRklFUiA9ICdpZGVudGlmaWVyJwogICAgIEhBU0ggPSAn
aGFzaCcKICAgICBSRVZJU0lPTiA9ICdyZXZpc2lvbicK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>435507</attachid>
            <date>2021-08-13 14:03:37 -0700</date>
            <delta_ts>2021-08-19 16:38:26 -0700</delta_ts>
            <desc>Part 2</desc>
            <filename>bug-229089-20210813140336.patch</filename>
            <type>text/plain</type>
            <size>5720</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxMDMwCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZDY3NjM4ZDNmMzE0MmU4Y2M2MTg5YTVlMTZiMzNlMmMy
YjNlYTJjOC4uNDVhMDFhMzY1MjZjMDA2OGJkM2FmYjExYTJlZjE3MjhjZTE3NzAwNiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4
IEBACisyMDIxLTA4LTEzICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KKwor
ICAgICAgICBbZ2l0LXdlYmtpdF0gQWRkIHB1bGwtcmVxdWVzdCBjb21tYW5kIChQYXJ0IDIpCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjkwODkKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgxOTA4NzUxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkv
d2Via2l0c2NtcHkvcHJvZ3JhbS9fX2luaXRfXy5weToKKyAgICAgICAgKG1haW4pOiBBZGQgQnJh
bmNoIGNvbW1hbmQuCisgICAgICAgICogU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Vi
a2l0c2NtcHkvcHJvZ3JhbS9icmFuY2gucHk6CisgICAgICAgIChCcmFuY2gucGFyc2VyKTogQWxs
b3cgdXNlciB0byBzcGVjaWZ5IGVuZ2luZWVyaW5nIGJyYW5jaCBuYW1lLgorICAgICAgICAoQnJh
bmNoLm5vcm1hbGl6ZV9pc3N1ZSk6IFR1cm4gcHJvdmlkZWQgc3RyaW5nIGludG8gZW5nIGJyYW5j
aCBpZiBpdCBpc24ndCBhbHJlYWR5LgorICAgICAgICAoQnJhbmNoLm1haW4pOiBDcmVhdGUgZW5n
IGJyYW5jaCBmcm9tIGN1cnJlbnQgY2hlY2tvdXQgc3RhdGUuCisKIDIwMjEtMDgtMTMgIEpvbmF0
aGFuIEJlZGFyZCAgPGpiZWRhcmRAYXBwbGUuY29tPgogCiAgICAgICAgIFt3ZWJraXRzY21weV0g
Rml4IFNWTiByZWxhdGl2ZSBVUkwgcGFyc2luZwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy9s
aWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvcHJvZ3JhbS9fX2luaXRfXy5weSBiL1Rv
b2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L3Byb2dyYW0vX19p
bml0X18ucHkKaW5kZXggMTU3OGRkOTZlODE1YjY2MzM1MTJjMmFiNjA5YTczNWI0Y2FmOGUwZS4u
ODMwNGMzNDRjZWZlZjVhZDAzZjUxOTlkNmY2Yzg2M2RjZWJhMTBjZCAxMDA2NDQKLS0tIGEvVG9v
bHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvcHJvZ3JhbS9fX2lu
aXRfXy5weQorKysgYi9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRz
Y21weS9wcm9ncmFtL19faW5pdF9fLnB5CkBAIC0yNSw2ICsyNSw3IEBAIGltcG9ydCBsb2dnaW5n
CiBpbXBvcnQgb3MKIAogZnJvbSAuYmxhbWUgaW1wb3J0IEJsYW1lCitmcm9tIC5icmFuY2ggaW1w
b3J0IEJyYW5jaAogZnJvbSAuY2Fub25pY2FsaXplIGltcG9ydCBDYW5vbmljYWxpemUKIGZyb20g
LmNsZWFuIGltcG9ydCBDbGVhbgogZnJvbSAuY29tbWFuZCBpbXBvcnQgQ29tbWFuZApAQCAtNjQs
NyArNjUsNyBAQCBkZWYgbWFpbihhcmdzPU5vbmUsIHBhdGg9Tm9uZSwgbG9nZ2Vycz1Ob25lLCBj
b250cmlidXRvcnM9Tm9uZSwgaWRlbnRpZmllcl90ZW1wbAogCiAgICAgc3VicGFyc2VycyA9IHBh
cnNlci5hZGRfc3VicGFyc2VycyhoZWxwPSdzdWItY29tbWFuZCBoZWxwJykKIAotICAgIHByb2dy
YW1zID0gW0ZpbmQsIEluZm8sIENoZWNrb3V0LCBDYW5vbmljYWxpemUsIFB1bGwsIENsZWFuLCBM
b2csIEJsYW1lLCBTZXR1cF0KKyAgICBwcm9ncmFtcyA9IFtGaW5kLCBJbmZvLCBDaGVja291dCwg
Q2Fub25pY2FsaXplLCBQdWxsLCBDbGVhbiwgTG9nLCBCbGFtZSwgU2V0dXAsIEJyYW5jaF0KICAg
ICBpZiBzdWJ2ZXJzaW9uOgogICAgICAgICBwcm9ncmFtcy5hcHBlbmQoU2V0dXBHaXRTdm4pCiAK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNj
bXB5L3Byb2dyYW0vYnJhbmNoLnB5IGIvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2Nt
cHkvd2Via2l0c2NtcHkvcHJvZ3JhbS9icmFuY2gucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTc3ODJmZTRiOTNl
MTI3NzYzZTIzMTMzZDQ5NjU4ZDc5NzVlMGM5NAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Nj
cmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L3Byb2dyYW0vYnJhbmNoLnB5
CkBAIC0wLDAgKzEsNzYgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0Ogor
IyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQKKyMgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
IElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorIyBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMCisjIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisjIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisjIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksCisjIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisK
K2ltcG9ydCByZQoraW1wb3J0IHN5cworCitmcm9tIC5jb21tYW5kIGltcG9ydCBDb21tYW5kCisK
K2Zyb20gd2Via2l0Y29yZXB5IGltcG9ydCBydW4sIFRlcm1pbmFsCitmcm9tIHdlYmtpdHNjbXB5
IGltcG9ydCBsb2NhbCwgbG9nCisKKworY2xhc3MgQnJhbmNoKENvbW1hbmQpOgorICAgIG5hbWUg
PSAnYnJhbmNoJworICAgIGhlbHAgPSAnQ3JlYXRlIGEgbG9jYWwgZGV2ZWxvcG1lbnQgYnJhbmNo
IGZyb20gdGhlIGN1cnJlbnQgY2hlY2tvdXQgc3RhdGUnCisKKyAgICBQUkVGSVggPSAnZW5nJwor
CisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIHBhcnNlcihjbHMsIHBhcnNlciwgbG9nZ2Vycz1O
b25lKToKKyAgICAgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgKKyAgICAgICAgICAgICctaScsICct
LWlzc3VlJywgJy1iJywgJy0tYnVnJywgJy1yJywKKyAgICAgICAgICAgIGRlc3Q9J2lzc3VlJywg
dHlwZT1zdHIsCisgICAgICAgICAgICBoZWxwPSdOdW1iZXIgKG9yIG5hbWUpIG9mIHRoZSBpc3N1
ZSBvciBidWcgdG8gY3JlYXRlIGJyYW5jaCBmb3InLAorICAgICAgICApCisKKyAgICBAY2xhc3Nt
ZXRob2QKKyAgICBkZWYgbm9ybWFsaXplX2lzc3VlKGNscywgaXNzdWUpOgorICAgICAgICBpZiBu
b3QgaXNzdWUgb3IgaXNzdWUuc3RhcnRzd2l0aChjbHMuUFJFRklYKToKKyAgICAgICAgICAgIHJl
dHVybiBpc3N1ZQorICAgICAgICByZXR1cm4gJ3t9L3t9Jy5mb3JtYXQoY2xzLlBSRUZJWCwgaXNz
dWUpCisKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgbWFpbihjbHMsIGFyZ3MsIHJlcG9zaXRv
cnksICoqa3dhcmdzKToKKyAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UocmVwb3NpdG9yeSwgbG9j
YWwuR2l0KToKKyAgICAgICAgICAgIHN5cy5zdGRlcnIud3JpdGUoIkNhbiBvbmx5ICdicmFuY2gn
IG9uIGEgbmF0aXZlIEdpdCByZXBvc2l0b3J5XG4iKQorICAgICAgICAgICAgcmV0dXJuIDEKKwor
ICAgICAgICBpZiBub3QgYXJncy5pc3N1ZToKKyAgICAgICAgICAgIGFyZ3MuaXNzdWUgPSBUZXJt
aW5hbC5pbnB1dCgnQnJhbmNoIG5hbWU6ICcpCisgICAgICAgIGFyZ3MuaXNzdWUgPSBjbHMubm9y
bWFsaXplX2lzc3VlKGFyZ3MuaXNzdWUpCisKKyAgICAgICAgaWYgcnVuKFtyZXBvc2l0b3J5LmV4
ZWN1dGFibGUoKSwgJ2NoZWNrLXJlZi1mb3JtYXQnLCBhcmdzLmlzc3VlXSwgY2FwdHVyZV9vdXRw
dXQ9VHJ1ZSkucmV0dXJuY29kZToKKyAgICAgICAgICAgIHN5cy5zdGRlcnIud3JpdGUoIid7fScg
aXMgYW4gaW52YWxpZCBicmFuY2ggbmFtZVxuIi5mb3JtYXQoYXJncy5pc3N1ZSkpCisKKyAgICAg
ICAgcmVtb3RlX3JlID0gcmUuY29tcGlsZSgncmVtb3Rlcy8uKy97fScuZm9ybWF0KHJlLmVzY2Fw
ZShhcmdzLmlzc3VlKSkpCisgICAgICAgIGZvciBicmFuY2ggaW4gcmVwb3NpdG9yeS5icmFuY2hl
czoKKyAgICAgICAgICAgIGlmIGJyYW5jaCA9PSBhcmdzLmlzc3VlIG9yIHJlbW90ZV9yZS5tYXRj
aChicmFuY2gpOgorICAgICAgICAgICAgICAgIHN5cy5zdGRlcnIud3JpdGUoIid7fScgYWxyZWFk
eSBleGlzdHNcbiIuZm9ybWF0KGFyZ3MuaXNzdWUpKQorICAgICAgICAgICAgICAgIHJldHVybiAx
CisKKyAgICAgICAgbG9nLndhcm5pbmcoIkNyZWF0aW5nIHRoZSBsb2NhbCBkZXZlbG9wbWVudCBi
cmFuY2ggJ3t9Jy4uLiIuZm9ybWF0KGFyZ3MuaXNzdWUpKQorICAgICAgICBpZiBydW4oW3JlcG9z
aXRvcnkuZXhlY3V0YWJsZSgpLCAnY2hlY2tvdXQnLCAnLWInLCBhcmdzLmlzc3VlXSwgY3dkPXJl
cG9zaXRvcnkucm9vdF9wYXRoKS5yZXR1cm5jb2RlOgorICAgICAgICAgICAgc3lzLnN0ZGVyci53
cml0ZSgiRmFpbGVkIHRvIGNyZWF0ZSAne30nXG4iLmZvcm1hdChhcmdzLmlzc3VlKSkKKyAgICAg
ICAgICAgIHJldHVybiAxCisgICAgICAgIHJlcG9zaXRvcnkuX2JyYW5jaCA9IGFyZ3MuaXNzdWUg
ICMgQXNzaWduIHRoZSBjYWNoZSBiZWNhdXNlIG9mIHJlcG9zaXRvcnkuYnJhbmNoJ3MgY2FjaGlu
ZworICAgICAgICByZXR1cm4gMAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>435508</attachid>
            <date>2021-08-13 14:09:21 -0700</date>
            <delta_ts>2021-08-19 16:38:27 -0700</delta_ts>
            <desc>Part 3</desc>
            <filename>bug-229089-20210813140921.patch</filename>
            <type>text/plain</type>
            <size>5245</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxMDMwCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZDY3NjM4ZDNmMzE0MmU4Y2M2MTg5YTVlMTZiMzNlMmMy
YjNlYTJjOC4uMDE1MjRkY2YxYWI2ZmM0MjA1ZWZiMjQxOWM1MTExNDlhZTlmNjlmZCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5
IEBACisyMDIxLTA4LTEzICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KKwor
ICAgICAgICBbZ2l0LXdlYmtpdF0gQWRkIHB1bGwtcmVxdWVzdCBjb21tYW5kIChQYXJ0IDMpCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjkwODkKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgxOTA4NzUxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkv
d2Via2l0c2NtcHkvX19pbml0X18ucHk6IEV4cG9ydCBwdWxsLXJlcXVlc3QuCisgICAgICAgICog
U2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvcHVsbF9yZXF1ZXN0LnB5
OgorICAgICAgICAoUHVsbFJlcXVlc3QuU3RhdGUpOgorICAgICAgICAoUHVsbFJlcXVlc3QuY3Jl
YXRlX2JvZHkpOiBDcmVhdGUgcHVsbC1yZXF1ZXN0IGJvZHkgZnJvbSBjb21taXRzIGFuZCBjb21t
ZW50LgorICAgICAgICAoUHVsbFJlcXVlc3QucGFyc2VfYm9keSk6IFR1cm4gYSBib2R5IGZyb20g
YSBwdWxsLXJlcXVlc3QgaW50byBhIGNvbW1lbnQgc3RyaW5nIGFuZCBwYXJ0aWFsIGNvbW1pdHMu
CisgICAgICAgIChQdWxsUmVxdWVzdC5fX2luaXRfXyk6CisgICAgICAgIChQdWxsUmVxdWVzdC5f
X3JlcHJfXyk6CisKIDIwMjEtMDgtMTMgIEpvbmF0aGFuIEJlZGFyZCAgPGpiZWRhcmRAYXBwbGUu
Y29tPgogCiAgICAgICAgIFt3ZWJraXRzY21weV0gRml4IFNWTiByZWxhdGl2ZSBVUkwgcGFyc2lu
ZwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0
c2NtcHkvX19pbml0X18ucHkgYi9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93
ZWJraXRzY21weS9fX2luaXRfXy5weQppbmRleCA5ZGIyNTQzM2I5MTQyYTAzZjg2ZDMxZjlmYTA2
ZDMxMWE0ZmU1MTc5Li45YjY3MGQ0ZjEyMjVmYmFmMTZlNDI0MTllMmRiZTJjZDNmMzNiYTcxIDEw
MDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21w
eS9fX2luaXRfXy5weQorKysgYi9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93
ZWJraXRzY21weS9fX2luaXRfXy5weQpAQCAtNTUsNiArNTUsNyBAQCBBdXRvSW5zdGFsbC5yZWdp
c3RlcihQYWNrYWdlKCd4bWx0b2RpY3QnLCBWZXJzaW9uKDAsIDExLCAwKSkpCiAKIGZyb20gd2Vi
a2l0c2NtcHkuY29udHJpYnV0b3IgaW1wb3J0IENvbnRyaWJ1dG9yCiBmcm9tIHdlYmtpdHNjbXB5
LmNvbW1pdCBpbXBvcnQgQ29tbWl0Citmcm9tIHdlYmtpdHNjbXB5LnB1bGxfcmVxdWVzdCBpbXBv
cnQgUHVsbFJlcXVlc3QKIGZyb20gd2Via2l0c2NtcHkuc2NtX2Jhc2UgaW1wb3J0IFNjbUJhc2UK
IAogZnJvbSB3ZWJraXRzY21weSBpbXBvcnQgbG9jYWwKZGlmZiAtLWdpdCBhL1Rvb2xzL1Njcmlw
dHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L3B1bGxfcmVxdWVzdC5weSBiL1Rv
b2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L3B1bGxfcmVxdWVz
dC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5lNTA2YjI1ODllNDBiNzc5MDkxNDJmNzk1YmZkOWI5NDE4NTYyYjRi
Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkv
d2Via2l0c2NtcHkvcHVsbF9yZXF1ZXN0LnB5CkBAIC0wLDAgKzEsNzcgQEAKKyMgQ29weXJpZ2h0
IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAg
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnIEFORCBBTlkKKyMgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWQorIyBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworIyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7CisjIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorIyBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorIyAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUworIyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworaW1wb3J0IHJlCisKK2Zyb20gLmNvbW1pdCBpbXBv
cnQgQ29tbWl0CisKKworY2xhc3MgUHVsbFJlcXVlc3Qob2JqZWN0KToKKyAgICBDT01NSVRfQk9E
WV9SRSA9IHJlLmNvbXBpbGUocidcQSMjIyMgKD9QPGhhc2g+WzAtOWEtZl0rKVxuYGBgXG4oP1A8
bWVzc2FnZT4uKylcbmBgYFxuP1xaJywgZmxhZ3M9cmUuRE9UQUxMKQorICAgIERJVklERVJfTEVO
ID0gNzAKKworICAgIGNsYXNzIFN0YXRlKG9iamVjdCk6CisgICAgICAgIE9QRU5FRCA9ICdvcGVu
ZWQnCisgICAgICAgIENMT1NFRCA9ICdjbG9zZWQnCisKKyAgICBAY2xhc3NtZXRob2QKKyAgICBk
ZWYgY3JlYXRlX2JvZHkoY2xzLCBib2R5LCBjb21taXRzKToKKyAgICAgICAgYm9keSA9IGJvZHkg
b3IgJycKKyAgICAgICAgaWYgbm90IGNvbW1pdHM6CisgICAgICAgICAgICByZXR1cm4gYm9keQor
ICAgICAgICBpZiBib2R5OgorICAgICAgICAgICAgYm9keSA9ICd7fVxuXG57fVxuJy5mb3JtYXQo
Ym9keS5yc3RyaXAoKSwgJy0nICogY2xzLkRJVklERVJfTEVOKQorICAgICAgICByZXR1cm4gYm9k
eSArICdcbnt9XG4nLmZvcm1hdCgnLScgKiBjbHMuRElWSURFUl9MRU4pLmpvaW4oWworICAgICAg
ICAgICAgJyMjIyMge31cbmBgYFxue31cbmBgYCcuZm9ybWF0KGNvbW1pdC5oYXNoLCBjb21taXQu
bWVzc2FnZS5yc3RyaXAoKSkgZm9yIGNvbW1pdCBpbiBjb21taXRzCisgICAgICAgIF0pCisKKyAg
ICBAY2xhc3NtZXRob2QKKyAgICBkZWYgcGFyc2VfYm9keShjbHMsIGJvZHkpOgorICAgICAgICBp
ZiBub3QgYm9keToKKyAgICAgICAgICAgIHJldHVybiBOb25lLCBbXQorICAgICAgICBwYXJ0cyA9
IFtwYXJ0LnJzdHJpcCgpLmxzdHJpcCgpIGZvciBwYXJ0IGluIGJvZHkuc3BsaXQoJy0nICogY2xz
LkRJVklERVJfTEVOKV0KKyAgICAgICAgYm9keSA9ICcnCisgICAgICAgIGNvbW1pdHMgPSBbXQor
CisgICAgICAgIGZvciBwYXJ0IGluIHBhcnRzOgorICAgICAgICAgICAgbWF0Y2ggPSBjbHMuQ09N
TUlUX0JPRFlfUkUubWF0Y2gocGFydCkKKyAgICAgICAgICAgIGlmIG1hdGNoOgorICAgICAgICAg
ICAgICAgIGNvbW1pdHMuYXBwZW5kKENvbW1pdCgKKyAgICAgICAgICAgICAgICAgICAgaGFzaD1t
YXRjaC5ncm91cCgnaGFzaCcpLAorICAgICAgICAgICAgICAgICAgICBtZXNzYWdlPW1hdGNoLmdy
b3VwKCdtZXNzYWdlJyksCisgICAgICAgICAgICAgICAgKSkKKyAgICAgICAgICAgIGVsaWYgYm9k
eToKKyAgICAgICAgICAgICAgICBib2R5ID0gJ3t9XG57fVxue31cbicuZm9ybWF0KGJvZHkucnN0
cmlwKCksICctJyAqIGNscy5ESVZJREVSX0xFTiwgcGFydC5yc3RyaXAoKS5sc3RyaXAoKSkKKyAg
ICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgYm9keSA9IHBhcnQucnN0cmlwKCkubHN0
cmlwKCkKKyAgICAgICAgcmV0dXJuIGJvZHkgb3IgTm9uZSwgY29tbWl0cworCisgICAgZGVmIF9f
aW5pdF9fKHNlbGYsIG51bWJlciwgdGl0bGU9Tm9uZSwgYm9keT1Ob25lLCBhdXRob3I9Tm9uZSwg
aGVhZD1Ob25lLCBiYXNlPU5vbmUpOgorICAgICAgICBzZWxmLm51bWJlciA9IG51bWJlcgorICAg
ICAgICBzZWxmLnRpdGxlID0gdGl0bGUKKyAgICAgICAgc2VsZi5ib2R5LCBzZWxmLmNvbW1pdHMg
PSBzZWxmLnBhcnNlX2JvZHkoYm9keSkKKyAgICAgICAgc2VsZi5hdXRob3IgPSBhdXRob3IKKyAg
ICAgICAgc2VsZi5oZWFkID0gaGVhZAorICAgICAgICBzZWxmLmJhc2UgPSBiYXNlCisKKyAgICBk
ZWYgX19yZXByX18oc2VsZik6CisgICAgICAgIHJldHVybiAnUFIge317fScuZm9ybWF0KHNlbGYu
bnVtYmVyLCAnIHwge30nLmZvcm1hdChzZWxmLnRpdGxlKSBpZiBzZWxmLnRpdGxlIGVsc2UgJycp
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>435510</attachid>
            <date>2021-08-13 14:16:49 -0700</date>
            <delta_ts>2021-08-19 16:38:29 -0700</delta_ts>
            <desc>Part 4</desc>
            <filename>bug-229089-20210813141649.patch</filename>
            <type>text/plain</type>
            <size>1449</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxMDMwCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZDY3NjM4ZDNmMzE0MmU4Y2M2MTg5YTVlMTZiMzNlMmMy
YjNlYTJjOC4uYzc2ZTg0ZjFjYjI2MDRiNWRlYjk3NWVjNDE4NDI3NDY4ZTJiMGNjMSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0
IEBACisyMDIxLTA4LTEzICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KKwor
ICAgICAgICBbZ2l0LXdlYmtpdF0gQWRkIHB1bGwtcmVxdWVzdCBjb21tYW5kIChQYXJ0IDQpCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjkwODkKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgxOTA4NzUxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0
c2NtcHkvd2Via2l0c2NtcHkvbG9jYWwvZ2l0LnB5OgorICAgICAgICAoR2l0KTogTWF0Y2ggQml0
QnVja2V0IHNzaCB1cmxzIHdoZW4gY29uc3RydWN0aW5nIHJlbW90ZXMuCisKIDIwMjEtMDgtMTMg
IEpvbmF0aGFuIEJlZGFyZCAgPGpiZWRhcmRAYXBwbGUuY29tPgogCiAgICAgICAgIFt3ZWJraXRz
Y21weV0gRml4IFNWTiByZWxhdGl2ZSBVUkwgcGFyc2luZwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2Ny
aXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvbG9jYWwvZ2l0LnB5IGIvVG9v
bHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvbG9jYWwvZ2l0LnB5
CmluZGV4IGQyYTJkODQ3MDYzNjE2Y2NmOWU0YjdiZmYxMjZkOTg1YmNkZDNiMGYuLjI1N2E5OTZh
NDQwNmUxYWNjODVkZDU2MTBjZmIwNjRjNmY2OGY1ZTUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Njcmlw
dHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L2xvY2FsL2dpdC5weQorKysgYi9U
b29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS9sb2NhbC9naXQu
cHkKQEAgLTI1NCw3ICsyNTQsNyBAQCBjbGFzcyBHaXQoU2NtKToKIAogCiAgICAgR0lUX0NPTU1J
VCA9IHJlLmNvbXBpbGUocidjb21taXQgKD9QPGhhc2g+WzAtOWEtZl0rKScpCi0gICAgU1NIX1JF
TU9URSA9IHJlLmNvbXBpbGUoJyhzc2g6Ly8pP2dpdEAoP1A8aG9zdD4uKyk6KD9QPHBhdGg+Lisp
LmdpdCcpCisgICAgU1NIX1JFTU9URSA9IHJlLmNvbXBpbGUoJyhzc2g6Ly8pP2dpdEAoP1A8aG9z
dD5bXjovXSspWzovXSg/UDxwYXRoPi4rKS5naXQnKQogICAgIEhUVFBfUkVNT1RFID0gcmUuY29t
cGlsZSgnKD9QPHByb3RvY29sPmh0dHBzPyk6Ly8oP1A8aG9zdD4uKykvKD9QPHBhdGg+LispLmdp
dCcpCiAKICAgICBAY2xhc3NtZXRob2QK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>435513</attachid>
            <date>2021-08-13 14:21:18 -0700</date>
            <delta_ts>2021-08-19 16:38:30 -0700</delta_ts>
            <desc>Part 5</desc>
            <filename>bug-229089-20210813142118.patch</filename>
            <type>text/plain</type>
            <size>2436</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxMDMyCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZDY3NjM4ZDNmMzE0MmU4Y2M2MTg5YTVlMTZiMzNlMmMy
YjNlYTJjOC4uZTk5NWYyOGE3M2QxYmY0OTIyMDMxNTJlY2FlNDRjYmI0MmE1MWZhMSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0
IEBACisyMDIxLTA4LTEzICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KKwor
ICAgICAgICBbZ2l0LXdlYmtpdF0gQWRkIHB1bGwtcmVxdWVzdCBjb21tYW5kIChQYXJ0IDUpCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjkwODkKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgxOTA4NzUxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkv
d2Via2l0c2NtcHkvbG9jYWwvZ2l0LnB5OgorICAgICAgICAoR2l0Lm1vZGlmaWVkKTogUmV0dXJu
IGEgbGlzdCBvZiBtb2RpZmllZCBmaWxlcyBpbiB0aGUgY3VycmVudCBjaGVja291dC4KKwogMjAy
MS0wOC0xMyAgSm9uYXRoYW4gQmVkYXJkICA8amJlZGFyZEBhcHBsZS5jb20+CiAKICAgICAgICAg
W3dlYmtpdHNjbXB5XSBGaXggU1ZOIHJlbGF0aXZlIFVSTCBwYXJzaW5nCmRpZmYgLS1naXQgYS9U
b29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS9sb2NhbC9naXQu
cHkgYi9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS9sb2Nh
bC9naXQucHkKaW5kZXggZDJhMmQ4NDcwNjM2MTZjY2Y5ZTRiN2JmZjEyNmQ5ODViY2RkM2IwZi4u
NjE0YzRmNDg3YjQ1ODEzYmVkMzdhNTE2OGYzY2U4N2ZhNDM1MTZlZCAxMDA2NDQKLS0tIGEvVG9v
bHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvbG9jYWwvZ2l0LnB5
CisrKyBiL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L2xv
Y2FsL2dpdC5weQpAQCAtNzg0LDMgKzc4NCwzMiBAQCBjbGFzcyBHaXQoU2NtKToKICAgICAgICAg
cmV0dXJuIHJ1bihbCiAgICAgICAgICAgICBzZWxmLmV4ZWN1dGFibGUoKSwgJ3Jlc2V0JywgJ0hF
QUQnLCAnLS1oYXJkJywKICAgICAgICAgXSwgY3dkPXNlbGYucm9vdF9wYXRoKS5yZXR1cm5jb2Rl
CisKKyAgICBkZWYgbW9kaWZpZWQoc2VsZiwgc3RhZ2VkPU5vbmUpOgorICAgICAgICBpZiBzdGFn
ZWQgaW4gW1RydWUsIEZhbHNlXToKKyAgICAgICAgICAgIGNvbW1hbmQgPSBydW4oCisgICAgICAg
ICAgICAgICAgW3NlbGYuZXhlY3V0YWJsZSgpLCAnZGlmZicsICctLW5hbWUtb25seSddICsgKFsn
LS1zdGFnZWQnXSBpZiBzdGFnZWQgZWxzZSBbXSksCisgICAgICAgICAgICAgICAgY2FwdHVyZV9v
dXRwdXQ9VHJ1ZSwgZW5jb2Rpbmc9J3V0Zi04JywgY3dkPXNlbGYucm9vdF9wYXRoLAorICAgICAg
ICAgICAgKQorICAgICAgICAgICAgaWYgY29tbWFuZC5yZXR1cm5jb2RlOgorICAgICAgICAgICAg
ICAgIHJldHVybiBbXQorICAgICAgICAgICAgcmV0dXJuIGNvbW1hbmQuc3Rkb3V0LnNwbGl0bGlu
ZXMoKQorCisgICAgICAgICMgV2hlbiB0aGUgdXNlciBoYXNuJ3Qgc3BlY2lmaWVkIHdoYXQgdGhl
eSdyZSBsb29raW5nIGZvciwgd2UgbmVlZCB0byBtYWtlIHNvbWUgYXNzdW1wdGlvbnMuCisgICAg
ICAgICMgSWYgYWxsIHN0YWdlZCBmaWxlcyBhcmUgYWRkZWQsIHRoZSB1c2VyIHByb2JhYmx5IHdh
bnRzIHRvIGluY2x1ZGUgbm9uLXN0YWdlZCBmaWxlcyB0b28KKyAgICAgICAgY29tbWFuZCA9IHJ1
bigKKyAgICAgICAgICAgIFtzZWxmLmV4ZWN1dGFibGUoKSwgJ2RpZmYnLCAnLS1uYW1lLXN0YXR1
cycsICctLXN0YWdlZCddLAorICAgICAgICAgICAgY2FwdHVyZV9vdXRwdXQ9VHJ1ZSwgZW5jb2Rp
bmc9J3V0Zi04JywgY3dkPXNlbGYucm9vdF9wYXRoLAorICAgICAgICApCisgICAgICAgIGlmIGNv
bW1hbmQucmV0dXJuY29kZToKKyAgICAgICAgICAgIHJldHVybiBbXQorICAgICAgICBhZGRlZCA9
IHNldCgpCisgICAgICAgIGZvciBsaW5lIGluIGNvbW1hbmQuc3Rkb3V0LnNwbGl0bGluZXMoKToK
KyAgICAgICAgICAgIHN0YXRlLCBmaWxlID0gbGluZS5zcGxpdChOb25lLCAxKQorICAgICAgICAg
ICAgaWYgc3RhdGUgPT0gJ0EnOgorICAgICAgICAgICAgICAgIGFkZGVkLmFkZChmaWxlKQorCisg
ICAgICAgIHN0YWdlZCA9IHNlbGYubW9kaWZpZWQoc3RhZ2VkPVRydWUpCisgICAgICAgIGlmIHNl
dChzdGFnZWQpIC0gYWRkZWQ6CisgICAgICAgICAgICByZXR1cm4gc3RhZ2VkCisgICAgICAgIHJl
dHVybiBzdGFnZWQgKyBzZWxmLm1vZGlmaWVkKHN0YWdlZD1GYWxzZSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>435914</attachid>
            <date>2021-08-19 16:38:32 -0700</date>
            <delta_ts>2021-08-20 15:24:16 -0700</delta_ts>
            <desc>Part 1</desc>
            <filename>bug-229089-20210819163831.patch</filename>
            <type>text/plain</type>
            <size>2953</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxMjgxCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYmI4MzFiM2UzMzY0MjZkMmQ5YzA1Y2NjZGVmM2FmMGM5
MjVhNjA4My4uYWEyOWE1YzQ4MTM5YTZjM2I4OTA3NzJjZDA4ZTU3M2NjZGZhY2MwNSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3
IEBACisyMDIxLTA4LTE5ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KKwor
ICAgICAgICBbZ2l0LXdlYmtpdF0gQWRkIHB1bGwtcmVxdWVzdCBjb21tYW5kIChQYXJ0IDEpCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjkwODkKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgxOTA4NzUxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkv
d2Via2l0c2NtcHkvcHJvZ3JhbS9fX2luaXRfXy5weToKKyAgICAgICAgKG1haW4pOiBTb3J0IHBy
b2dyYW1zLCBhZGQgYWxpYXNlcy4KKyAgICAgICAgKiBTY3JpcHRzL2xpYnJhcmllcy93ZWJraXRz
Y21weS93ZWJraXRzY21weS9wcm9ncmFtL2NvbW1hbmQucHk6CisgICAgICAgIChDb21tYW5kKTog
QWRkIGFsaWFzCisgICAgICAgIChGaWx0ZXJlZENvbW1hbmQpOiBJbmhlcml0IGZyb20gQ29tbWFu
ZC4KKwogMjAyMS0wOC0xOSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4K
IAogICAgICAgICBbaU9TXSBSZW1vdmUgc3VwcG9ydCBmb3IgdGhlIG1lYW5pbmdmdWwgdGFwIGhl
dXJpc3RpYwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkv
d2Via2l0c2NtcHkvcHJvZ3JhbS9fX2luaXRfXy5weSBiL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVz
L3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L3Byb2dyYW0vX19pbml0X18ucHkKaW5kZXggMTU3OGRk
OTZlODE1YjY2MzM1MTJjMmFiNjA5YTczNWI0Y2FmOGUwZS4uYjE5NDc3NzQ2M2FiYzM0ZWMyMzk3
OTVlMzZiZmViOGJlNTVjMmNlNiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMv
d2Via2l0c2NtcHkvd2Via2l0c2NtcHkvcHJvZ3JhbS9fX2luaXRfXy5weQorKysgYi9Ub29scy9T
Y3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS9wcm9ncmFtL19faW5pdF9f
LnB5CkBAIC0yMyw2ICsyMyw3IEBACiBpbXBvcnQgYXJncGFyc2UKIGltcG9ydCBsb2dnaW5nCiBp
bXBvcnQgb3MKK2ltcG9ydCBzeXMKIAogZnJvbSAuYmxhbWUgaW1wb3J0IEJsYW1lCiBmcm9tIC5j
YW5vbmljYWxpemUgaW1wb3J0IENhbm9uaWNhbGl6ZQpAQCAtNjQsMTIgKzY1LDE1IEBAIGRlZiBt
YWluKGFyZ3M9Tm9uZSwgcGF0aD1Ob25lLCBsb2dnZXJzPU5vbmUsIGNvbnRyaWJ1dG9ycz1Ob25l
LCBpZGVudGlmaWVyX3RlbXBsCiAKICAgICBzdWJwYXJzZXJzID0gcGFyc2VyLmFkZF9zdWJwYXJz
ZXJzKGhlbHA9J3N1Yi1jb21tYW5kIGhlbHAnKQogCi0gICAgcHJvZ3JhbXMgPSBbRmluZCwgSW5m
bywgQ2hlY2tvdXQsIENhbm9uaWNhbGl6ZSwgUHVsbCwgQ2xlYW4sIExvZywgQmxhbWUsIFNldHVw
XQorICAgIHByb2dyYW1zID0gW0JsYW1lLCBDYW5vbmljYWxpemUsIENoZWNrb3V0LCBDbGVhbiwg
RmluZCwgSW5mbywgTG9nLCBQdWxsLCBTZXR1cF0KICAgICBpZiBzdWJ2ZXJzaW9uOgogICAgICAg
ICBwcm9ncmFtcy5hcHBlbmQoU2V0dXBHaXRTdm4pCiAKICAgICBmb3IgcHJvZ3JhbSBpbiBwcm9n
cmFtczoKLSAgICAgICAgc3VicGFyc2VyID0gc3VicGFyc2Vycy5hZGRfcGFyc2VyKHByb2dyYW0u
bmFtZSwgaGVscD1wcm9ncmFtLmhlbHApCisgICAgICAgIGt3YXJncyA9IGRpY3QoaGVscD1wcm9n
cmFtLmhlbHApCisgICAgICAgIGlmIHN5cy52ZXJzaW9uX2luZm8gPiAoMywgMCk6CisgICAgICAg
ICAgICBrd2FyZ3NbJ2FsaWFzZXMnXSA9IHByb2dyYW0uYWxpYXNlcworICAgICAgICBzdWJwYXJz
ZXIgPSBzdWJwYXJzZXJzLmFkZF9wYXJzZXIocHJvZ3JhbS5uYW1lLCAqKmt3YXJncykKICAgICAg
ICAgc3VicGFyc2VyLnNldF9kZWZhdWx0cyhtYWluPXByb2dyYW0ubWFpbikKICAgICAgICAgYXJn
dW1lbnRzLkxvZ2dpbmdHcm91cCgKICAgICAgICAgICAgIHN1YnBhcnNlciwKZGlmZiAtLWdpdCBh
L1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L3Byb2dyYW0v
Y29tbWFuZC5weSBiL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNj
bXB5L3Byb2dyYW0vY29tbWFuZC5weQppbmRleCA0ODBlNmZjYTUyNjBhZWRkMmRkNjNiMGNjYTE0
NDg4MjcwZWRiNzcyLi5jY2E1ZTIzNzZjZjZjYzIwMDY5OGViYWM4MDE3NjgxMTY5MjkyZTY5IDEw
MDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21w
eS9wcm9ncmFtL2NvbW1hbmQucHkKKysrIGIvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0
c2NtcHkvd2Via2l0c2NtcHkvcHJvZ3JhbS9jb21tYW5kLnB5CkBAIC0zNCw2ICszNCw3IEBAIGZy
b20gd2hpY2hjcmFmdCBpbXBvcnQgd2hpY2gKIAogY2xhc3MgQ29tbWFuZChvYmplY3QpOgogICAg
IG5hbWUgPSBOb25lCisgICAgYWxpYXNlcyA9IFtdCiAgICAgaGVscCA9IE5vbmUKIAogICAgIEBj
bGFzc21ldGhvZApAQCAtNDksNyArNTAsNyBAQCBjbGFzcyBDb21tYW5kKG9iamVjdCk6CiAgICAg
ICAgIHJldHVybiAtMQogCiAKLWNsYXNzIEZpbHRlcmVkQ29tbWFuZChvYmplY3QpOgorY2xhc3Mg
RmlsdGVyZWRDb21tYW5kKENvbW1hbmQpOgogICAgIElERU5USUZJRVIgPSAnaWRlbnRpZmllcicK
ICAgICBIQVNIID0gJ2hhc2gnCiAgICAgUkVWSVNJT04gPSAncmV2aXNpb24nCg==
</data>
<flag name="review"
          id="458835"
          type_id="1"
          status="+"
          setter="dewei_zhu"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>435917</attachid>
            <date>2021-08-19 16:45:54 -0700</date>
            <delta_ts>2021-08-20 16:08:26 -0700</delta_ts>
            <desc>Part 2</desc>
            <filename>bug-229089-20210819164554.patch</filename>
            <type>text/plain</type>
            <size>13691</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxMjgxCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYmI4MzFiM2UzMzY0MjZkMmQ5YzA1Y2NjZGVmM2FmMGM5
MjVhNjA4My4uNjIwNWIxNzhhOTU0OGNjNzVlYTNiNzBhNTZjYzVkZTFkYzRlNTgxNyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4
IEBACisyMDIxLTA4LTE5ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KKwor
ICAgICAgICBbZ2l0LXdlYmtpdF0gQWRkIHB1bGwtcmVxdWVzdCBjb21tYW5kIChQYXJ0IDIpCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjkwODkKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgxOTA4NzUxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkv
d2Via2l0c2NtcHkvbW9ja3MvbG9jYWwvZ2l0LnB5OgorICAgICAgICAoR2l0Ll9faW5pdF9fKTog
QWRkICdjaGVjay1yZWYtZm9ybWF0JyBhbmQgJ2NoZWNrb3V0IC1iJy4KKyAgICAgICAgKEdpdC5j
aGVja291dCk6IEFkZCBhYmlsaXR5IHRvIGNyZWF0ZSBicmFuY2guCisgICAgICAgICogU2NyaXB0
cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvcHJvZ3JhbS9fX2luaXRfXy5weToK
KyAgICAgICAgKG1haW4pOiBBZGQgQnJhbmNoIGNvbW1hbmQuCisgICAgICAgICogU2NyaXB0cy9s
aWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvcHJvZ3JhbS9icmFuY2gucHk6CisgICAg
ICAgIChCcmFuY2gucGFyc2VyKTogQWxsb3cgdXNlciB0byBzcGVjaWZ5IGVuZ2luZWVyaW5nIGJy
YW5jaCBuYW1lLgorICAgICAgICAoQnJhbmNoLm5vcm1hbGl6ZV9pc3N1ZSk6IFR1cm4gcHJvdmlk
ZWQgc3RyaW5nIGludG8gZW5nIGJyYW5jaCBpZiBpdCBpc24ndCBhbHJlYWR5LgorICAgICAgICAo
QnJhbmNoLm1haW4pOiBDcmVhdGUgZW5nIGJyYW5jaCBmcm9tIGN1cnJlbnQgY2hlY2tvdXQgc3Rh
dGUuCisgICAgICAgICogU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkv
dGVzdC9icmFuY2hfdW5pdHRlc3QucHk6CisgICAgICAgIChUZXN0QnJhbmNoKToKKyAgICAgICAg
KFRlc3RCcmFuY2guc2V0VXApOgorICAgICAgICAoVGVzdEJyYW5jaC50ZXN0X2Jhc2ljX3N2bik6
CisgICAgICAgIChUZXN0QnJhbmNoLnRlc3RfYmFzaWNfZ2l0KToKKyAgICAgICAgKFRlc3RCcmFu
Y2gudGVzdF9wcm9tcHRfZ2l0KToKKyAgICAgICAgKFRlc3RCcmFuY2gudGVzdF9pbnZhbGlkX2Jy
YW5jaCk6CisKIDIwMjEtMDgtMTkgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5j
b20+CiAKICAgICAgICAgW2lPU10gUmVtb3ZlIHN1cHBvcnQgZm9yIHRoZSBtZWFuaW5nZnVsIHRh
cCBoZXVyaXN0aWMKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNj
bXB5L3dlYmtpdHNjbXB5L21vY2tzL2xvY2FsL2dpdC5weSBiL1Rvb2xzL1NjcmlwdHMvbGlicmFy
aWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L21vY2tzL2xvY2FsL2dpdC5weQppbmRleCA4NThj
NmI2ZDYwMzE0ODZmMmUyOGI2ZmMyNTJkZWI4ZjQ3ZWJiMjNjLi5hYTU3YmI5M2RlOGM3MjMzZDYx
ZjM2MGZiMDdjMDBmYWUxNzUyNmRhIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL2xpYnJhcmll
cy93ZWJraXRzY21weS93ZWJraXRzY21weS9tb2Nrcy9sb2NhbC9naXQucHkKKysrIGIvVG9vbHMv
U2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvbW9ja3MvbG9jYWwvZ2l0
LnB5CkBAIC0zMzIsMTEgKzMzMiwxNiBAQCBub3RoaW5nIHRvIGNvbW1pdCwgd29ya2luZyB0cmVl
IGNsZWFuCiAgICAgICAgICAgICAgICAgICAgIHJldHVybmNvZGU9MCwKICAgICAgICAgICAgICAg
ICAgICAgc3Rkb3V0PSdcbicuam9pbihzb3J0ZWQoc2VsZi5icmFuY2hlc19vbihhcmdzWzRdKSkp
ICsgJ1xuJywKICAgICAgICAgICAgICAgICApIGlmIHNlbGYuZmluZChhcmdzWzRdKSBlbHNlIG1v
Y2tzLlByb2Nlc3NDb21wbGV0aW9uKHJldHVybmNvZGU9MTI4KSwKKyAgICAgICAgICAgICksIG1v
Y2tzLlN1YnByb2Nlc3MuUm91dGUoCisgICAgICAgICAgICAgICAgc2VsZi5leGVjdXRhYmxlLCAn
Y2hlY2tvdXQnLCAnLWInLCByZS5jb21waWxlKHInLisnKSwKKyAgICAgICAgICAgICAgICBjd2Q9
c2VsZi5wYXRoLAorICAgICAgICAgICAgICAgIGdlbmVyYXRvcj1sYW1iZGEgKmFyZ3MsICoqa3dh
cmdzOgorICAgICAgICAgICAgICAgICAgICBtb2Nrcy5Qcm9jZXNzQ29tcGxldGlvbihyZXR1cm5j
b2RlPTApIGlmIHNlbGYuY2hlY2tvdXQoYXJnc1szXSwgY3JlYXRlPVRydWUpIGVsc2UgbW9ja3Mu
UHJvY2Vzc0NvbXBsZXRpb24ocmV0dXJuY29kZT0xKQogICAgICAgICAgICAgKSwgbW9ja3MuU3Vi
cHJvY2Vzcy5Sb3V0ZSgKICAgICAgICAgICAgICAgICBzZWxmLmV4ZWN1dGFibGUsICdjaGVja291
dCcsIHJlLmNvbXBpbGUocicuKycpLAogICAgICAgICAgICAgICAgIGN3ZD1zZWxmLnBhdGgsCiAg
ICAgICAgICAgICAgICAgZ2VuZXJhdG9yPWxhbWJkYSAqYXJncywgKiprd2FyZ3M6Ci0gICAgICAg
ICAgICAgICAgICAgIG1vY2tzLlByb2Nlc3NDb21wbGV0aW9uKHJldHVybmNvZGU9MCkgaWYgc2Vs
Zi5jaGVja291dChhcmdzWzJdKSBlbHNlIG1vY2tzLlByb2Nlc3NDb21wbGV0aW9uKHJldHVybmNv
ZGU9MSkKKyAgICAgICAgICAgICAgICAgICAgbW9ja3MuUHJvY2Vzc0NvbXBsZXRpb24ocmV0dXJu
Y29kZT0wKSBpZiBzZWxmLmNoZWNrb3V0KGFyZ3NbMl0sIGNyZWF0ZT1GYWxzZSkgZWxzZSBtb2Nr
cy5Qcm9jZXNzQ29tcGxldGlvbihyZXR1cm5jb2RlPTEpCiAgICAgICAgICAgICApLCBtb2Nrcy5T
dWJwcm9jZXNzLlJvdXRlKAogICAgICAgICAgICAgICAgIHNlbGYuZXhlY3V0YWJsZSwgJ2ZpbHRl
ci1icmFuY2gnLCAnLWYnLAogICAgICAgICAgICAgICAgIGN3ZD1zZWxmLnBhdGgsCkBAIC0zODAs
NiArMzg1LDEwIEBAIG5vdGhpbmcgdG8gY29tbWl0LCB3b3JraW5nIHRyZWUgY2xlYW4KICAgICAg
ICAgICAgICAgICBjb21wbGV0aW9uPW1vY2tzLlByb2Nlc3NDb21wbGV0aW9uKAogICAgICAgICAg
ICAgICAgICAgICByZXR1cm5jb2RlPTAsCiAgICAgICAgICAgICAgICAgKSwKKyAgICAgICAgICAg
ICksIG1vY2tzLlN1YnByb2Nlc3MuUm91dGUoCisgICAgICAgICAgICAgICAgc2VsZi5leGVjdXRh
YmxlLCAnY2hlY2stcmVmLWZvcm1hdCcsIHJlLmNvbXBpbGUocicuKycpLAorICAgICAgICAgICAg
ICAgIGdlbmVyYXRvcj1sYW1iZGEgKmFyZ3MsICoqa3dhcmdzOgorICAgICAgICAgICAgICAgICAg
ICBtb2Nrcy5Qcm9jZXNzQ29tcGxldGlvbihyZXR1cm5jb2RlPTApIGlmIHJlLm1hdGNoKHInXltB
LVphLXowLTktXSsvW0EtWmEtejAtOS8tXSskJywgYXJnc1syXSkgZWxzZSBtb2Nrcy5Qcm9jZXNz
Q29tcGxldGlvbigpLAogICAgICAgICAgICAgKSwgbW9ja3MuU3VicHJvY2Vzcy5Sb3V0ZSgKICAg
ICAgICAgICAgICAgICBzZWxmLmV4ZWN1dGFibGUsCiAgICAgICAgICAgICAgICAgY3dkPXNlbGYu
cGF0aCwKQEAgLTQ3Myw4ICs0ODIsMjMgQEAgbm90aGluZyB0byBjb21taXQsIHdvcmtpbmcgdHJl
ZSBjbGVhbgogICAgICAgICAgICAgICAgICAgICByZXN1bHQuYWRkKGJyYW5jaCkKICAgICAgICAg
cmV0dXJuIHJlc3VsdAogCi0gICAgZGVmIGNoZWNrb3V0KHNlbGYsIHNvbWV0aGluZyk6CisgICAg
ZGVmIGNoZWNrb3V0KHNlbGYsIHNvbWV0aGluZywgY3JlYXRlPUZhbHNlKToKICAgICAgICAgY29t
bWl0ID0gc2VsZi5maW5kKHNvbWV0aGluZykKKyAgICAgICAgaWYgY3JlYXRlOgorICAgICAgICAg
ICAgaWYgY29tbWl0OgorICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICAgICAg
aWYgc2VsZi5oZWFkLmJyYW5jaCA9PSBzZWxmLmRlZmF1bHRfYnJhbmNoOgorICAgICAgICAgICAg
ICAgIHNlbGYuY29tbWl0c1tzb21ldGhpbmddID0gW3NlbGYuaGVhZF0KKyAgICAgICAgICAgIGVs
c2U6CisgICAgICAgICAgICAgICAgc2VsZi5jb21taXRzW3NvbWV0aGluZ10gPSBbCisgICAgICAg
ICAgICAgICAgICAgIGNvbW1pdCBmb3IgY29tbWl0IGluIHNlbGYuY29tbWl0c1tzZWxmLmhlYWQu
YnJhbmNoXQorICAgICAgICAgICAgICAgICAgICBpZiBub3QgY29tbWl0LmJyYW5jaF9wb2ludCBv
ciBjb21taXQuaWRlbnRpZmllciA8PSBzZWxmLmhlYWQuaWRlbnRpZmllcgorICAgICAgICAgICAg
ICAgIF0KKyAgICAgICAgICAgIHNlbGYuY29tbWl0c1tzb21ldGhpbmddWy0xXSA9IENvbW1pdC5m
cm9tX2pzb24oQ29tbWl0LkVuY29kZXIoKS5kZWZhdWx0KHNlbGYuaGVhZCkpCisgICAgICAgICAg
ICBzZWxmLmhlYWQgPSBzZWxmLmNvbW1pdHNbc29tZXRoaW5nXVstMV0KKyAgICAgICAgICAgIHNl
bGYuaGVhZC5icmFuY2ggPSBzb21ldGhpbmcKKyAgICAgICAgICAgIHJldHVybiBUcnVlCisKICAg
ICAgICAgaWYgY29tbWl0OgogICAgICAgICAgICAgc2VsZi5oZWFkID0gY29tbWl0CiAgICAgICAg
ICAgICBzZWxmLmRldGFjaGVkID0gc29tZXRoaW5nIG5vdCBpbiBzZWxmLmNvbW1pdHMua2V5cygp
CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRz
Y21weS9wcm9ncmFtL19faW5pdF9fLnB5IGIvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0
c2NtcHkvd2Via2l0c2NtcHkvcHJvZ3JhbS9fX2luaXRfXy5weQppbmRleCAxNTc4ZGQ5NmU4MTVi
NjYzMzUxMmMyYWI2MDlhNzM1YjRjYWY4ZTBlLi44MzA0YzM0NGNlZmVmNWFkMDNmNTE5OWQ2ZjZj
ODYzZGNlYmExMGNkIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRz
Y21weS93ZWJraXRzY21weS9wcm9ncmFtL19faW5pdF9fLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMv
bGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L3Byb2dyYW0vX19pbml0X18ucHkKQEAg
LTI1LDYgKzI1LDcgQEAgaW1wb3J0IGxvZ2dpbmcKIGltcG9ydCBvcwogCiBmcm9tIC5ibGFtZSBp
bXBvcnQgQmxhbWUKK2Zyb20gLmJyYW5jaCBpbXBvcnQgQnJhbmNoCiBmcm9tIC5jYW5vbmljYWxp
emUgaW1wb3J0IENhbm9uaWNhbGl6ZQogZnJvbSAuY2xlYW4gaW1wb3J0IENsZWFuCiBmcm9tIC5j
b21tYW5kIGltcG9ydCBDb21tYW5kCkBAIC02NCw3ICs2NSw3IEBAIGRlZiBtYWluKGFyZ3M9Tm9u
ZSwgcGF0aD1Ob25lLCBsb2dnZXJzPU5vbmUsIGNvbnRyaWJ1dG9ycz1Ob25lLCBpZGVudGlmaWVy
X3RlbXBsCiAKICAgICBzdWJwYXJzZXJzID0gcGFyc2VyLmFkZF9zdWJwYXJzZXJzKGhlbHA9J3N1
Yi1jb21tYW5kIGhlbHAnKQogCi0gICAgcHJvZ3JhbXMgPSBbRmluZCwgSW5mbywgQ2hlY2tvdXQs
IENhbm9uaWNhbGl6ZSwgUHVsbCwgQ2xlYW4sIExvZywgQmxhbWUsIFNldHVwXQorICAgIHByb2dy
YW1zID0gW0ZpbmQsIEluZm8sIENoZWNrb3V0LCBDYW5vbmljYWxpemUsIFB1bGwsIENsZWFuLCBM
b2csIEJsYW1lLCBTZXR1cCwgQnJhbmNoXQogICAgIGlmIHN1YnZlcnNpb246CiAgICAgICAgIHBy
b2dyYW1zLmFwcGVuZChTZXR1cEdpdFN2bikKIApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy9s
aWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvcHJvZ3JhbS9icmFuY2gucHkgYi9Ub29s
cy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS9wcm9ncmFtL2JyYW5j
aC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi41N2Y3ZWY1YzdjZGU2NzMzNmIxYTE5ZjZlMzk0YjgyMDMwYzZhMGE4
Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkv
d2Via2l0c2NtcHkvcHJvZ3JhbS9icmFuY2gucHkKQEAgLTAsMCArMSw3OCBAQAorIyBDb3B5cmln
aHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAy
LiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyAiQVMgSVMiIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisj
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IK
KyMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyMgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworaW1wb3J0IHJlCitpbXBvcnQgc3lzCisKK2Zy
b20gLmNvbW1hbmQgaW1wb3J0IENvbW1hbmQKKworZnJvbSB3ZWJraXRjb3JlcHkgaW1wb3J0IHJ1
biwgVGVybWluYWwKK2Zyb20gd2Via2l0c2NtcHkgaW1wb3J0IGxvY2FsLCBsb2cKKworCitjbGFz
cyBCcmFuY2goQ29tbWFuZCk6CisgICAgbmFtZSA9ICdicmFuY2gnCisgICAgaGVscCA9ICdDcmVh
dGUgYSBsb2NhbCBkZXZlbG9wbWVudCBicmFuY2ggZnJvbSB0aGUgY3VycmVudCBjaGVja291dCBz
dGF0ZScKKworICAgIFBSRUZJWCA9ICdlbmcnCisKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYg
cGFyc2VyKGNscywgcGFyc2VyLCBsb2dnZXJzPU5vbmUpOgorICAgICAgICBwYXJzZXIuYWRkX2Fy
Z3VtZW50KAorICAgICAgICAgICAgJy1pJywgJy0taXNzdWUnLCAnLWInLCAnLS1idWcnLCAnLXIn
LAorICAgICAgICAgICAgZGVzdD0naXNzdWUnLCB0eXBlPXN0ciwKKyAgICAgICAgICAgIGhlbHA9
J051bWJlciAob3IgbmFtZSkgb2YgdGhlIGlzc3VlIG9yIGJ1ZyB0byBjcmVhdGUgYnJhbmNoIGZv
cicsCisgICAgICAgICkKKworICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBub3JtYWxpemVfaXNz
dWUoY2xzLCBpc3N1ZSk6CisgICAgICAgIGlmIG5vdCBpc3N1ZSBvciBpc3N1ZS5zdGFydHN3aXRo
KGNscy5QUkVGSVgpOgorICAgICAgICAgICAgcmV0dXJuIGlzc3VlCisgICAgICAgIHJldHVybiAn
e30ve30nLmZvcm1hdChjbHMuUFJFRklYLCBpc3N1ZSkKKworICAgIEBjbGFzc21ldGhvZAorICAg
IGRlZiBtYWluKGNscywgYXJncywgcmVwb3NpdG9yeSwgKiprd2FyZ3MpOgorICAgICAgICBpZiBu
b3QgaXNpbnN0YW5jZShyZXBvc2l0b3J5LCBsb2NhbC5HaXQpOgorICAgICAgICAgICAgc3lzLnN0
ZGVyci53cml0ZSgiQ2FuIG9ubHkgJ2JyYW5jaCcgb24gYSBuYXRpdmUgR2l0IHJlcG9zaXRvcnlc
biIpCisgICAgICAgICAgICByZXR1cm4gMQorCisgICAgICAgIGlmIG5vdCBhcmdzLmlzc3VlOgor
ICAgICAgICAgICAgYXJncy5pc3N1ZSA9IFRlcm1pbmFsLmlucHV0KCdCcmFuY2ggbmFtZTogJykK
KyAgICAgICAgYXJncy5pc3N1ZSA9IGNscy5ub3JtYWxpemVfaXNzdWUoYXJncy5pc3N1ZSkKKwor
ICAgICAgICBpZiBydW4oW3JlcG9zaXRvcnkuZXhlY3V0YWJsZSgpLCAnY2hlY2stcmVmLWZvcm1h
dCcsIGFyZ3MuaXNzdWVdLCBjYXB0dXJlX291dHB1dD1UcnVlKS5yZXR1cm5jb2RlOgorICAgICAg
ICAgICAgc3lzLnN0ZGVyci53cml0ZSgiJ3t9JyBpcyBhbiBpbnZhbGlkIGJyYW5jaCBuYW1lLCBj
YW5ub3QgY3JlYXRlIGl0XG4iLmZvcm1hdChhcmdzLmlzc3VlKSkKKyAgICAgICAgICAgIHJldHVy
biAxCisKKyAgICAgICAgcmVtb3RlX3JlID0gcmUuY29tcGlsZSgncmVtb3Rlcy8uKy97fScuZm9y
bWF0KHJlLmVzY2FwZShhcmdzLmlzc3VlKSkpCisgICAgICAgIGZvciBicmFuY2ggaW4gcmVwb3Np
dG9yeS5icmFuY2hlczoKKyAgICAgICAgICAgIGlmIGJyYW5jaCA9PSBhcmdzLmlzc3VlIG9yIHJl
bW90ZV9yZS5tYXRjaChicmFuY2gpOgorICAgICAgICAgICAgICAgIHN5cy5zdGRlcnIud3JpdGUo
Iid7fScgYWxyZWFkeSBleGlzdHNcbiIuZm9ybWF0KGFyZ3MuaXNzdWUpKQorICAgICAgICAgICAg
ICAgIHJldHVybiAxCisKKyAgICAgICAgbG9nLndhcm5pbmcoIkNyZWF0aW5nIHRoZSBsb2NhbCBk
ZXZlbG9wbWVudCBicmFuY2ggJ3t9Jy4uLiIuZm9ybWF0KGFyZ3MuaXNzdWUpKQorICAgICAgICBp
ZiBydW4oW3JlcG9zaXRvcnkuZXhlY3V0YWJsZSgpLCAnY2hlY2tvdXQnLCAnLWInLCBhcmdzLmlz
c3VlXSwgY3dkPXJlcG9zaXRvcnkucm9vdF9wYXRoKS5yZXR1cm5jb2RlOgorICAgICAgICAgICAg
c3lzLnN0ZGVyci53cml0ZSgiRmFpbGVkIHRvIGNyZWF0ZSAne30nXG4iLmZvcm1hdChhcmdzLmlz
c3VlKSkKKyAgICAgICAgICAgIHJldHVybiAxCisgICAgICAgIHJlcG9zaXRvcnkuX2JyYW5jaCA9
IGFyZ3MuaXNzdWUgICMgQXNzaWduIHRoZSBjYWNoZSBiZWNhdXNlIG9mIHJlcG9zaXRvcnkuYnJh
bmNoJ3MgY2FjaGluZworICAgICAgICBwcmludCgiQ3JlYXRlZCB0aGUgbG9jYWwgZGV2ZWxvcG1l
bnQgYnJhbmNoICd7fSchIi5mb3JtYXQoYXJncy5pc3N1ZSkpCisgICAgICAgIHJldHVybiAwCmRp
ZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21w
eS90ZXN0L2JyYW5jaF91bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtp
dHNjbXB5L3dlYmtpdHNjbXB5L3Rlc3QvYnJhbmNoX3VuaXR0ZXN0LnB5Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQy
ODNmN2I2NDBjMDY2MDBjNTg2N2QxZjRmYTg2Mjk2MTdkNDFkM2IKLS0tIC9kZXYvbnVsbAorKysg
Yi9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS90ZXN0L2Jy
YW5jaF91bml0dGVzdC5weQpAQCAtMCwwICsxLDczIEBACisjIENvcHlyaWdodCAoQykgMjAyMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
IyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5E
CisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorIyBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
IyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorCitpbXBvcnQganNvbgoraW1wb3J0IG9zCitpbXBvcnQgc2h1dGlsCitp
bXBvcnQgdGVtcGZpbGUKKworZnJvbSBkYXRldGltZSBpbXBvcnQgZGF0ZXRpbWUKK2Zyb20gd2Vi
a2l0Y29yZXB5IGltcG9ydCBPdXRwdXRDYXB0dXJlLCB0ZXN0aW5nCitmcm9tIHdlYmtpdGNvcmVw
eS5tb2NrcyBpbXBvcnQgVGltZSBhcyBNb2NrVGltZSwgVGVybWluYWwgYXMgTW9ja1Rlcm1pbmFs
Citmcm9tIHdlYmtpdHNjbXB5IGltcG9ydCBsb2NhbCwgcHJvZ3JhbSwgbW9ja3MKKworCitjbGFz
cyBUZXN0QnJhbmNoKHRlc3RpbmcuUGF0aFRlc3RDYXNlKToKKyAgICBiYXNlcGF0aCA9ICdtb2Nr
L3JlcG9zaXRvcnknCisKKyAgICBkZWYgc2V0VXAoc2VsZik6CisgICAgICAgIHN1cGVyKFRlc3RC
cmFuY2gsIHNlbGYpLnNldFVwKCkKKyAgICAgICAgb3MubWtkaXIob3MucGF0aC5qb2luKHNlbGYu
cGF0aCwgJy5naXQnKSkKKyAgICAgICAgb3MubWtkaXIob3MucGF0aC5qb2luKHNlbGYucGF0aCwg
Jy5zdm4nKSkKKworICAgIGRlZiB0ZXN0X2Jhc2ljX3N2bihzZWxmKToKKyAgICAgICAgd2l0aCBP
dXRwdXRDYXB0dXJlKCkgYXMgY2FwdHVyZWQsIG1vY2tzLmxvY2FsLkdpdCgpLCBtb2Nrcy5sb2Nh
bC5Tdm4oc2VsZi5wYXRoKSwgTW9ja1RpbWU6CisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KDEsIHByb2dyYW0ubWFpbigKKyAgICAgICAgICAgICAgICBhcmdzPSgnYnJhbmNoJywgJy1pJywg
JzEyMzQnKSwKKyAgICAgICAgICAgICAgICBwYXRoPXNlbGYucGF0aCwKKyAgICAgICAgICAgICkp
CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY2FwdHVyZWQuc3RkZXJyLmdldHZhbHVlKCksICJD
YW4gb25seSAnYnJhbmNoJyBvbiBhIG5hdGl2ZSBHaXQgcmVwb3NpdG9yeVxuIikKKworICAgIGRl
ZiB0ZXN0X2Jhc2ljX2dpdChzZWxmKToKKyAgICAgICAgd2l0aCBPdXRwdXRDYXB0dXJlKCkgYXMg
Y2FwdHVyZWQsIG1vY2tzLmxvY2FsLkdpdChzZWxmLnBhdGgpLCBtb2Nrcy5sb2NhbC5Tdm4oKSwg
TW9ja1RpbWU6CisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDAsIHByb2dyYW0ubWFpbigK
KyAgICAgICAgICAgICAgICBhcmdzPSgnYnJhbmNoJywgJy1pJywgJzEyMzQnKSwKKyAgICAgICAg
ICAgICAgICBwYXRoPXNlbGYucGF0aCwKKyAgICAgICAgICAgICkpCisgICAgICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKGxvY2FsLkdpdChzZWxmLnBhdGgpLmJyYW5jaCwgJ2VuZy8xMjM0JykKKyAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChjYXB0dXJlZC5yb290LmxvZy5nZXR2YWx1ZSgpLCAiQ3Jl
YXRpbmcgdGhlIGxvY2FsIGRldmVsb3BtZW50IGJyYW5jaCAnZW5nLzEyMzQnLi4uXG4iKQorICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKGNhcHR1cmVkLnN0ZG91dC5nZXR2YWx1ZSgpLCAiQ3JlYXRl
ZCB0aGUgbG9jYWwgZGV2ZWxvcG1lbnQgYnJhbmNoICdlbmcvMTIzNCchXG4iKQorCisgICAgZGVm
IHRlc3RfcHJvbXB0X2dpdChzZWxmKToKKyAgICAgICAgd2l0aCBNb2NrVGVybWluYWwuaW5wdXQo
J2VuZy9leGFtcGxlJyksIE91dHB1dENhcHR1cmUoKSBhcyBjYXB0dXJlZCwgbW9ja3MubG9jYWwu
R2l0KHNlbGYucGF0aCksIG1vY2tzLmxvY2FsLlN2bigpLCBNb2NrVGltZToKKyAgICAgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoMCwgcHJvZ3JhbS5tYWluKGFyZ3M9KCdicmFuY2gnLCksIHBhdGg9
c2VsZi5wYXRoKSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobG9jYWwuR2l0KHNlbGYu
cGF0aCkuYnJhbmNoLCAnZW5nL2V4YW1wbGUnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNh
cHR1cmVkLnJvb3QubG9nLmdldHZhbHVlKCksICJDcmVhdGluZyB0aGUgbG9jYWwgZGV2ZWxvcG1l
bnQgYnJhbmNoICdlbmcvZXhhbXBsZScuLi5cbiIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
Y2FwdHVyZWQuc3Rkb3V0LmdldHZhbHVlKCksICJCcmFuY2ggbmFtZTogXG5DcmVhdGVkIHRoZSBs
b2NhbCBkZXZlbG9wbWVudCBicmFuY2ggJ2VuZy9leGFtcGxlJyFcbiIpCisKKyAgICBkZWYgdGVz
dF9pbnZhbGlkX2JyYW5jaChzZWxmKToKKyAgICAgICAgd2l0aCBPdXRwdXRDYXB0dXJlKCkgYXMg
Y2FwdHVyZWQsIG1vY2tzLmxvY2FsLkdpdChzZWxmLnBhdGgpLCBtb2Nrcy5sb2NhbC5Tdm4oKSwg
TW9ja1RpbWU6CisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDEsIHByb2dyYW0ubWFpbigK
KyAgICAgICAgICAgICAgICBhcmdzPSgnYnJhbmNoJywgJy1pJywgJ3JlamVjdF91bmRlcnNjb3Jl
cycpLAorICAgICAgICAgICAgICAgIHBhdGg9c2VsZi5wYXRoLAorICAgICAgICAgICAgKSkKKyAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChjYXB0dXJlZC5zdGRlcnIuZ2V0dmFsdWUoKSwgIidlbmcv
cmVqZWN0X3VuZGVyc2NvcmVzJyBpcyBhbiBpbnZhbGlkIGJyYW5jaCBuYW1lLCBjYW5ub3QgY3Jl
YXRlIGl0XG4iKQo=
</data>
<flag name="review"
          id="458837"
          type_id="1"
          status="+"
          setter="dewei_zhu"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>435921</attachid>
            <date>2021-08-19 16:55:15 -0700</date>
            <delta_ts>2021-08-21 08:25:23 -0700</delta_ts>
            <desc>Part 3</desc>
            <filename>bug-229089-20210819165514.patch</filename>
            <type>text/plain</type>
            <size>12278</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxMjgxCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYmI4MzFiM2UzMzY0MjZkMmQ5YzA1Y2NjZGVmM2FmMGM5
MjVhNjA4My4uZTk5YjkxNWM1NjI0ZDA4NzY3ZDU2ODA1YWVlMzUyNDBkMjg5YTZlNiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMw
IEBACisyMDIxLTA4LTE5ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KKwor
ICAgICAgICBbZ2l0LXdlYmtpdF0gQWRkIHB1bGwtcmVxdWVzdCBjb21tYW5kIChQYXJ0IDMpCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjkwODkKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgxOTA4NzUxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkv
d2Via2l0c2NtcHkvX19pbml0X18ucHk6IEV4cG9ydCBwdWxsLXJlcXVlc3QuCisgICAgICAgICog
U2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvcHVsbF9yZXF1ZXN0LnB5
OgorICAgICAgICAoUHVsbFJlcXVlc3QuU3RhdGUpOgorICAgICAgICAoUHVsbFJlcXVlc3QuY3Jl
YXRlX2JvZHkpOiBDcmVhdGUgcHVsbC1yZXF1ZXN0IGJvZHkgZnJvbSBjb21taXRzIGFuZCBjb21t
ZW50LgorICAgICAgICAoUHVsbFJlcXVlc3QucGFyc2VfYm9keSk6IFR1cm4gYSBib2R5IGZyb20g
YSBwdWxsLXJlcXVlc3QgaW50byBhIGNvbW1lbnQgc3RyaW5nIGFuZCBwYXJ0aWFsIGNvbW1pdHMu
CisgICAgICAgIChQdWxsUmVxdWVzdC5fX2luaXRfXyk6CisgICAgICAgIChQdWxsUmVxdWVzdC5f
X3JlcHJfXyk6CisgICAgICAgICogU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0
c2NtcHkvdGVzdC9wdWxsX3JlcXVlc3RfdW5pdHRlc3QucHk6CisgICAgICAgIChUZXN0UHVsbFJl
cXVlc3QpOgorICAgICAgICAoVGVzdFB1bGxSZXF1ZXN0LnRlc3RfcmVwcmVzZW50YXRpb24pOgor
ICAgICAgICAoVGVzdFB1bGxSZXF1ZXN0LnRlc3RfY3JlYXRlX2JvZHlfc2luZ2xlKToKKyAgICAg
ICAgKFRlc3RQdWxsUmVxdWVzdC50ZXN0X3BhcnNlX2JvZHlfc2luZ2xlKToKKyAgICAgICAgKFRl
c3RQdWxsUmVxdWVzdC50ZXN0X2NyZWF0ZV9ib2R5X211bHRpcGxlKToKKyAgICAgICAgKFRlc3RQ
dWxsUmVxdWVzdC50ZXN0X3BhcnNlX2JvZHlfbXVsdGlwbGUpOgorICAgICAgICAoVGVzdFB1bGxS
ZXF1ZXN0LnRlc3RfY3JlYXRlX2JvZHlfZW1wdHkpOgorICAgICAgICAoVGVzdFB1bGxSZXF1ZXN0
LnRlc3RfcGFyc2VfYm9keV9lbXB0eSk6CisgICAgICAgIChUZXN0UHVsbFJlcXVlc3QudGVzdF9j
cmVhdGVfYm9keV9jb21tZW50KToKKyAgICAgICAgKFRlc3RQdWxsUmVxdWVzdC50ZXN0X3BhcnNl
X2JvZHlfc2luZ2xlKToKKwogMjAyMS0wOC0xOSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVo
QGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBSZW1vdmUgc3VwcG9ydCBmb3IgdGhlIG1lYW5p
bmdmdWwgdGFwIGhldXJpc3RpYwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMv
d2Via2l0c2NtcHkvd2Via2l0c2NtcHkvX19pbml0X18ucHkgYi9Ub29scy9TY3JpcHRzL2xpYnJh
cmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS9fX2luaXRfXy5weQppbmRleCA0ZDgxNGJlMzdh
ZjJlZmQ2NWE3NjY1ZjU5ZDUxOWM2OTRmZWNjYjVjLi4xYzdjYTgzNzhhNjljMGE3OWQ0Y2VkNjYx
OWVlZDY2NzI2OGMyZWQzIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJr
aXRzY21weS93ZWJraXRzY21weS9fX2luaXRfXy5weQorKysgYi9Ub29scy9TY3JpcHRzL2xpYnJh
cmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS9fX2luaXRfXy5weQpAQCAtNTUsNiArNTUsNyBA
QCBBdXRvSW5zdGFsbC5yZWdpc3RlcihQYWNrYWdlKCd4bWx0b2RpY3QnLCBWZXJzaW9uKDAsIDEx
LCAwKSkpCiAKIGZyb20gd2Via2l0c2NtcHkuY29udHJpYnV0b3IgaW1wb3J0IENvbnRyaWJ1dG9y
CiBmcm9tIHdlYmtpdHNjbXB5LmNvbW1pdCBpbXBvcnQgQ29tbWl0Citmcm9tIHdlYmtpdHNjbXB5
LnB1bGxfcmVxdWVzdCBpbXBvcnQgUHVsbFJlcXVlc3QKIGZyb20gd2Via2l0c2NtcHkuc2NtX2Jh
c2UgaW1wb3J0IFNjbUJhc2UKIAogZnJvbSB3ZWJraXRzY21weSBpbXBvcnQgbG9jYWwKZGlmZiAt
LWdpdCBhL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L3B1
bGxfcmVxdWVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtp
dHNjbXB5L3B1bGxfcmVxdWVzdC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMzA3Y2IzMDExOGJiMTI2ZGE5YWM2
ZjBhYzY3ZmQ0ZjBlMjU1MjRiCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvU2NyaXB0cy9saWJy
YXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvcHVsbF9yZXF1ZXN0LnB5CkBAIC0wLDAgKzEs
NzcgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyMgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorIyBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UworIyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisjIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorIyBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworIyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworaW1wb3J0IHJlCisK
K2Zyb20gLmNvbW1pdCBpbXBvcnQgQ29tbWl0CisKKworY2xhc3MgUHVsbFJlcXVlc3Qob2JqZWN0
KToKKyAgICBDT01NSVRfQk9EWV9SRSA9IHJlLmNvbXBpbGUocidcQSMjIyMgKD9QPGhhc2g+WzAt
OWEtZl0rKVxuYGBgXG4oP1A8bWVzc2FnZT4uKylcbmBgYFxuP1xaJywgZmxhZ3M9cmUuRE9UQUxM
KQorICAgIERJVklERVJfTEVOID0gNzAKKworICAgIGNsYXNzIFN0YXRlKG9iamVjdCk6CisgICAg
ICAgIE9QRU5FRCA9ICdvcGVuZWQnCisgICAgICAgIENMT1NFRCA9ICdjbG9zZWQnCisKKyAgICBA
Y2xhc3NtZXRob2QKKyAgICBkZWYgY3JlYXRlX2JvZHkoY2xzLCBib2R5LCBjb21taXRzKToKKyAg
ICAgICAgYm9keSA9IGJvZHkgb3IgJycKKyAgICAgICAgaWYgbm90IGNvbW1pdHM6CisgICAgICAg
ICAgICByZXR1cm4gYm9keQorICAgICAgICBpZiBib2R5OgorICAgICAgICAgICAgYm9keSA9ICd7
fVxuXG57fVxuJy5mb3JtYXQoYm9keS5yc3RyaXAoKSwgJy0nICogY2xzLkRJVklERVJfTEVOKQor
ICAgICAgICByZXR1cm4gYm9keSArICdcbnt9XG4nLmZvcm1hdCgnLScgKiBjbHMuRElWSURFUl9M
RU4pLmpvaW4oWworICAgICAgICAgICAgJyMjIyMge31cbmBgYFxue31cbmBgYCcuZm9ybWF0KGNv
bW1pdC5oYXNoLCBjb21taXQubWVzc2FnZS5yc3RyaXAoKSBpZiBjb21taXQubWVzc2FnZSBlbHNl
ICc/Pz8nKSBmb3IgY29tbWl0IGluIGNvbW1pdHMKKyAgICAgICAgXSkKKworICAgIEBjbGFzc21l
dGhvZAorICAgIGRlZiBwYXJzZV9ib2R5KGNscywgYm9keSk6CisgICAgICAgIGlmIG5vdCBib2R5
OgorICAgICAgICAgICAgcmV0dXJuIE5vbmUsIFtdCisgICAgICAgIHBhcnRzID0gW3BhcnQucnN0
cmlwKCkubHN0cmlwKCkgZm9yIHBhcnQgaW4gYm9keS5zcGxpdCgnLScgKiBjbHMuRElWSURFUl9M
RU4pXQorICAgICAgICBib2R5ID0gJycKKyAgICAgICAgY29tbWl0cyA9IFtdCisKKyAgICAgICAg
Zm9yIHBhcnQgaW4gcGFydHM6CisgICAgICAgICAgICBtYXRjaCA9IGNscy5DT01NSVRfQk9EWV9S
RS5tYXRjaChwYXJ0KQorICAgICAgICAgICAgaWYgbWF0Y2g6CisgICAgICAgICAgICAgICAgY29t
bWl0cy5hcHBlbmQoQ29tbWl0KAorICAgICAgICAgICAgICAgICAgICBoYXNoPW1hdGNoLmdyb3Vw
KCdoYXNoJyksCisgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U9bWF0Y2guZ3JvdXAoJ21lc3Nh
Z2UnKSBpZiBtYXRjaC5ncm91cCgnbWVzc2FnZScpICE9ICc/Pz8nIGVsc2UgTm9uZSwKKyAgICAg
ICAgICAgICAgICApKQorICAgICAgICAgICAgZWxpZiBib2R5OgorICAgICAgICAgICAgICAgIGJv
ZHkgPSAne31cbnt9XG57fVxuJy5mb3JtYXQoYm9keS5yc3RyaXAoKSwgJy0nICogY2xzLkRJVklE
RVJfTEVOLCBwYXJ0LnJzdHJpcCgpLmxzdHJpcCgpKQorICAgICAgICAgICAgZWxzZToKKyAgICAg
ICAgICAgICAgICBib2R5ID0gcGFydC5yc3RyaXAoKS5sc3RyaXAoKQorICAgICAgICByZXR1cm4g
Ym9keSBvciBOb25lLCBjb21taXRzCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbnVtYmVyLCB0
aXRsZT1Ob25lLCBib2R5PU5vbmUsIGF1dGhvcj1Ob25lLCBoZWFkPU5vbmUsIGJhc2U9Tm9uZSk6
CisgICAgICAgIHNlbGYubnVtYmVyID0gbnVtYmVyCisgICAgICAgIHNlbGYudGl0bGUgPSB0aXRs
ZQorICAgICAgICBzZWxmLmJvZHksIHNlbGYuY29tbWl0cyA9IHNlbGYucGFyc2VfYm9keShib2R5
KQorICAgICAgICBzZWxmLmF1dGhvciA9IGF1dGhvcgorICAgICAgICBzZWxmLmhlYWQgPSBoZWFk
CisgICAgICAgIHNlbGYuYmFzZSA9IGJhc2UKKworICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKKyAg
ICAgICAgcmV0dXJuICdQUiB7fXt9Jy5mb3JtYXQoc2VsZi5udW1iZXIsICcgfCB7fScuZm9ybWF0
KHNlbGYudGl0bGUpIGlmIHNlbGYudGl0bGUgZWxzZSAnJykKZGlmZiAtLWdpdCBhL1Rvb2xzL1Nj
cmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L3Rlc3QvcHVsbF9yZXF1ZXN0
X3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0
c2NtcHkvdGVzdC9wdWxsX3JlcXVlc3RfdW5pdHRlc3QucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmZkYmU3NDU5
OTRkNGY4MzRkZDhlMGRhOWQ5ZmQ4OWQ3NTMwZmFlMAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xz
L1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L3Rlc3QvcHVsbF9yZXF1
ZXN0X3VuaXR0ZXN0LnB5CkBAIC0wLDAgKzEsMTUyIEBACisjIENvcHlyaWdodCAoQykgMjAyMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisj
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQg
QU5ZCisjIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkKKyMgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworIyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04KKyMgQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMKKyMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisKK2ltcG9ydCB1bml0dGVzdAorCitmcm9tIHdlYmtpdHNjbXB5IGltcG9y
dCBDb21taXQsIFB1bGxSZXF1ZXN0CisKKworY2xhc3MgVGVzdFB1bGxSZXF1ZXN0KHVuaXR0ZXN0
LlRlc3RDYXNlKToKKyAgICBkZWYgdGVzdF9yZXByZXNlbnRhdGlvbihzZWxmKToKKyAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbCgnUFIgMTIzIHwgW3Njb3BpbmddIEJ1ZyB0byBmaXgnLCBzdHIoUHVs
bFJlcXVlc3QoMTIzLCB0aXRsZT0nW3Njb3BpbmddIEJ1ZyB0byBmaXgnKSkpCisgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoJ1BSIDEyMzQnLCBzdHIoUHVsbFJlcXVlc3QoMTIzNCkpKQorCisgICAg
ZGVmIHRlc3RfY3JlYXRlX2JvZHlfc2luZ2xlKHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKAorICAgICAgICAgICAgUHVsbFJlcXVlc3QuY3JlYXRlX2JvZHkoTm9uZSwgW0NvbW1pdCgK
KyAgICAgICAgICAgICAgICBoYXNoPScxMWFhNzZmOWZjMzgwZTlmZTA2MTU3MTU0ZjMyYjMwNGU4
ZGM0NzQ5JywKKyAgICAgICAgICAgICAgICBtZXNzYWdlPSdbc2NvcGluZ10gQnVnIHRvIGZpeFxu
XG5SZXZpZXdlZCBieSBUaW0gQ29udHJpYnV0b3IuXG4nLAorICAgICAgICAgICAgKV0pLCAnJycj
IyMjIDExYWE3NmY5ZmMzODBlOWZlMDYxNTcxNTRmMzJiMzA0ZThkYzQ3NDkKK2BgYAorW3Njb3Bp
bmddIEJ1ZyB0byBmaXgKKworUmV2aWV3ZWQgYnkgVGltIENvbnRyaWJ1dG9yLgorYGBgJycnLAor
ICAgICAgICApCisKKyAgICBkZWYgdGVzdF9wYXJzZV9ib2R5X3NpbmdsZShzZWxmKToKKyAgICAg
ICAgYm9keSwgY29tbWl0cyA9IFB1bGxSZXF1ZXN0LnBhcnNlX2JvZHkoJycnIyMjIyAxMWFhNzZm
OWZjMzgwZTlmZTA2MTU3MTU0ZjMyYjMwNGU4ZGM0NzQ5CitgYGAKK1tzY29waW5nXSBCdWcgdG8g
Zml4CisKK1Jldmlld2VkIGJ5IFRpbSBDb250cmlidXRvci4KK2BgYCcnJykKKyAgICAgICAgc2Vs
Zi5hc3NlcnRJc05vbmUoYm9keSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oY29tbWl0
cyksIDEpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbWl0c1swXS5oYXNoLCAnMTFhYTc2
ZjlmYzM4MGU5ZmUwNjE1NzE1NGYzMmIzMDRlOGRjNDc0OScpCisgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoY29tbWl0c1swXS5tZXNzYWdlLCAnW3Njb3BpbmddIEJ1ZyB0byBmaXhcblxuUmV2aWV3
ZWQgYnkgVGltIENvbnRyaWJ1dG9yLicpCisKKyAgICBkZWYgdGVzdF9jcmVhdGVfYm9keV9tdWx0
aXBsZShzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKKyAgICAgICAgICAgIFB1bGxS
ZXF1ZXN0LmNyZWF0ZV9ib2R5KE5vbmUsIFtDb21taXQoCisgICAgICAgICAgICAgICAgaGFzaD0n
MTFhYTc2ZjlmYzM4MGU5ZmUwNjE1NzE1NGYzMmIzMDRlOGRjNDc0OScsCisgICAgICAgICAgICAg
ICAgbWVzc2FnZT0nW3Njb3BpbmddIEJ1ZyB0byBmaXggKFBhcnQgMilcblxuUmV2aWV3ZWQgYnkg
VGltIENvbnRyaWJ1dG9yLlxuJywKKyAgICAgICAgICAgICksIENvbW1pdCgKKyAgICAgICAgICAg
ICAgICBoYXNoPSc1M2VhMjMwZmNlZGJjZTMyN2ViMWM0NWE2YWI2NWE4OGRlODY0NTA1JywKKyAg
ICAgICAgICAgICAgICBtZXNzYWdlPSdbc2NvcGluZ10gQnVnIHRvIGZpeCAoUGFydCAxKVxuXG5S
ZXZpZXdlZCBieSBUaW0gQ29udHJpYnV0b3IuXG4nLAorICAgICAgICAgICAgKV0pLCAnJycjIyMj
IDExYWE3NmY5ZmMzODBlOWZlMDYxNTcxNTRmMzJiMzA0ZThkYzQ3NDkKK2BgYAorW3Njb3Bpbmdd
IEJ1ZyB0byBmaXggKFBhcnQgMikKKworUmV2aWV3ZWQgYnkgVGltIENvbnRyaWJ1dG9yLgorYGBg
CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCisjIyMjIDUzZWEyMzBmY2VkYmNlMzI3ZWIxYzQ1YTZhYjY1YTg4ZGU4
NjQ1MDUKK2BgYAorW3Njb3BpbmddIEJ1ZyB0byBmaXggKFBhcnQgMSkKKworUmV2aWV3ZWQgYnkg
VGltIENvbnRyaWJ1dG9yLgorYGBgJycnLAorICAgICAgICApCisKKyAgICBkZWYgdGVzdF9wYXJz
ZV9ib2R5X211bHRpcGxlKHNlbGYpOgorICAgICAgICBib2R5LCBjb21taXRzID0gUHVsbFJlcXVl
c3QucGFyc2VfYm9keSgnJycjIyMjIDExYWE3NmY5ZmMzODBlOWZlMDYxNTcxNTRmMzJiMzA0ZThk
YzQ3NDkKK2BgYAorW3Njb3BpbmddIEJ1ZyB0byBmaXggKFBhcnQgMikKKworUmV2aWV3ZWQgYnkg
VGltIENvbnRyaWJ1dG9yLgorYGBgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIyMjIDUzZWEyMzBmY2VkYmNl
MzI3ZWIxYzQ1YTZhYjY1YTg4ZGU4NjQ1MDUKK2BgYAorW3Njb3BpbmddIEJ1ZyB0byBmaXggKFBh
cnQgMSkKKworUmV2aWV3ZWQgYnkgVGltIENvbnRyaWJ1dG9yLgorYGBgJycnKQorICAgICAgICBz
ZWxmLmFzc2VydElzTm9uZShib2R5KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihjb21t
aXRzKSwgMikKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1pdHNbMF0uaGFzaCwgJzEx
YWE3NmY5ZmMzODBlOWZlMDYxNTcxNTRmMzJiMzA0ZThkYzQ3NDknKQorICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKGNvbW1pdHNbMF0ubWVzc2FnZSwgJ1tzY29waW5nXSBCdWcgdG8gZml4IChQYXJ0
IDIpXG5cblJldmlld2VkIGJ5IFRpbSBDb250cmlidXRvci4nKQorCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoY29tbWl0c1sxXS5oYXNoLCAnNTNlYTIzMGZjZWRiY2UzMjdlYjFjNDVhNmFiNjVh
ODhkZTg2NDUwNScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbWl0c1sxXS5tZXNzYWdl
LCAnW3Njb3BpbmddIEJ1ZyB0byBmaXggKFBhcnQgMSlcblxuUmV2aWV3ZWQgYnkgVGltIENvbnRy
aWJ1dG9yLicpCisKKyAgICBkZWYgdGVzdF9jcmVhdGVfYm9keV9lbXB0eShzZWxmKToKKyAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbCgKKyAgICAgICAgICAgIFB1bGxSZXF1ZXN0LmNyZWF0ZV9ib2R5
KE5vbmUsIFtDb21taXQoaGFzaD0nMTFhYTc2ZjlmYzM4MGU5ZmUwNjE1NzE1NGYzMmIzMDRlOGRj
NDc0OScpXSksCisgICAgICAgICAgICAnJycjIyMjIDExYWE3NmY5ZmMzODBlOWZlMDYxNTcxNTRm
MzJiMzA0ZThkYzQ3NDkKK2BgYAorPz8/CitgYGAnJycsCisgICAgICAgICkKKworICAgIGRlZiB0
ZXN0X3BhcnNlX2JvZHlfZW1wdHkoc2VsZik6CisgICAgICAgIGJvZHksIGNvbW1pdHMgPSBQdWxs
UmVxdWVzdC5wYXJzZV9ib2R5KCcnJyMjIyMgMTFhYTc2ZjlmYzM4MGU5ZmUwNjE1NzE1NGYzMmIz
MDRlOGRjNDc0OQorYGBgCis/Pz8KK2BgYCcnJykKKyAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUo
Ym9keSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oY29tbWl0cyksIDEpCisgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoY29tbWl0c1swXS5oYXNoLCAnMTFhYTc2ZjlmYzM4MGU5ZmUwNjE1
NzE1NGYzMmIzMDRlOGRjNDc0OScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbWl0c1sw
XS5tZXNzYWdlLCBOb25lKQorCisgICAgZGVmIHRlc3RfY3JlYXRlX2JvZHlfY29tbWVudChzZWxm
KToKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKKyAgICAgICAgICAgIFB1bGxSZXF1ZXN0LmNy
ZWF0ZV9ib2R5KCdDb21tZW50IGJvZHknLCBbQ29tbWl0KAorICAgICAgICAgICAgICAgIGhhc2g9
JzExYWE3NmY5ZmMzODBlOWZlMDYxNTcxNTRmMzJiMzA0ZThkYzQ3NDknLAorICAgICAgICAgICAg
ICAgIG1lc3NhZ2U9J1tzY29waW5nXSBCdWcgdG8gZml4XG5cblJldmlld2VkIGJ5IFRpbSBDb250
cmlidXRvci5cbicsCisgICAgICAgICAgICApXSksICcnJ0NvbW1lbnQgYm9keQorCistLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCisjIyMjIDExYWE3NmY5ZmMzODBlOWZlMDYxNTcxNTRmMzJiMzA0ZThkYzQ3NDkKK2Bg
YAorW3Njb3BpbmddIEJ1ZyB0byBmaXgKKworUmV2aWV3ZWQgYnkgVGltIENvbnRyaWJ1dG9yLgor
YGBgJycnLAorICAgICAgICApCisKKyAgICBkZWYgdGVzdF9wYXJzZV9ib2R5X3NpbmdsZShzZWxm
KToKKyAgICAgICAgYm9keSwgY29tbWl0cyA9IFB1bGxSZXF1ZXN0LnBhcnNlX2JvZHkoJycnQ29t
bWVudCBib2R5CisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMjIyMgMTFhYTc2ZjlmYzM4MGU5ZmUwNjE1NzE1
NGYzMmIzMDRlOGRjNDc0OQorYGBgCitbc2NvcGluZ10gQnVnIHRvIGZpeAorCitSZXZpZXdlZCBi
eSBUaW0gQ29udHJpYnV0b3IuCitgYGAnJycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYm9k
eSwgJ0NvbW1lbnQgYm9keScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGNvbW1pdHMp
LCAxKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1pdHNbMF0uaGFzaCwgJzExYWE3NmY5
ZmMzODBlOWZlMDYxNTcxNTRmMzJiMzA0ZThkYzQ3NDknKQorICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKGNvbW1pdHNbMF0ubWVzc2FnZSwgJ1tzY29waW5nXSBCdWcgdG8gZml4XG5cblJldmlld2Vk
IGJ5IFRpbSBDb250cmlidXRvci4nKQo=
</data>
<flag name="review"
          id="458839"
          type_id="1"
          status="+"
          setter="dewei_zhu"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>435922</attachid>
            <date>2021-08-19 16:58:16 -0700</date>
            <delta_ts>2021-08-22 07:51:44 -0700</delta_ts>
            <desc>Part 4</desc>
            <filename>bug-229089-20210819165815.patch</filename>
            <type>text/plain</type>
            <size>1456</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxMjgxCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYmI4MzFiM2UzMzY0MjZkMmQ5YzA1Y2NjZGVmM2FmMGM5
MjVhNjA4My4uODVmODdkZjZhM2I3YzM2YTI5OWM0MjMzMjRhY2M0MThjYTVhZjYwYiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0
IEBACisyMDIxLTA4LTE5ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KKwor
ICAgICAgICBbZ2l0LXdlYmtpdF0gQWRkIHB1bGwtcmVxdWVzdCBjb21tYW5kIChQYXJ0IDQpCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjkwODkKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgxOTA4NzUxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkv
d2Via2l0c2NtcHkvbG9jYWwvZ2l0LnB5OgorICAgICAgICAoR2l0KTogTWF0Y2ggQml0QnVja2V0
IHNzaCB1cmxzIHdoZW4gY29uc3RydWN0aW5nIHJlbW90ZXMuCisKIDIwMjEtMDgtMTkgIFdlbnNv
biBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gUmVtb3Zl
IHN1cHBvcnQgZm9yIHRoZSBtZWFuaW5nZnVsIHRhcCBoZXVyaXN0aWMKZGlmZiAtLWdpdCBhL1Rv
b2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L2xvY2FsL2dpdC5w
eSBiL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L2xvY2Fs
L2dpdC5weQppbmRleCBkMmEyZDg0NzA2MzYxNmNjZjllNGI3YmZmMTI2ZDk4NWJjZGQzYjBmLi4y
NTdhOTk2YTQ0MDZlMWFjYzg1ZGQ1NjEwY2ZiMDY0YzZmNjhmNWU1IDEwMDY0NAotLS0gYS9Ub29s
cy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS9sb2NhbC9naXQucHkK
KysrIGIvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvbG9j
YWwvZ2l0LnB5CkBAIC0yNTQsNyArMjU0LDcgQEAgY2xhc3MgR2l0KFNjbSk6CiAKIAogICAgIEdJ
VF9DT01NSVQgPSByZS5jb21waWxlKHInY29tbWl0ICg/UDxoYXNoPlswLTlhLWZdKyknKQotICAg
IFNTSF9SRU1PVEUgPSByZS5jb21waWxlKCcoc3NoOi8vKT9naXRAKD9QPGhvc3Q+LispOig/UDxw
YXRoPi4rKS5naXQnKQorICAgIFNTSF9SRU1PVEUgPSByZS5jb21waWxlKCcoc3NoOi8vKT9naXRA
KD9QPGhvc3Q+W146L10rKVs6L10oP1A8cGF0aD4uKykuZ2l0JykKICAgICBIVFRQX1JFTU9URSA9
IHJlLmNvbXBpbGUoJyg/UDxwcm90b2NvbD5odHRwcz8pOi8vKD9QPGhvc3Q+LispLyg/UDxwYXRo
Pi4rKS5naXQnKQogCiAgICAgQGNsYXNzbWV0aG9kCg==
</data>
<flag name="review"
          id="458840"
          type_id="1"
          status="+"
          setter="dewei_zhu"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>435927</attachid>
            <date>2021-08-19 17:08:49 -0700</date>
            <delta_ts>2021-08-22 12:12:45 -0700</delta_ts>
            <desc>Part 5</desc>
            <filename>bug-229089-20210819170848.patch</filename>
            <type>text/plain</type>
            <size>7654</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxMjgxCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYmI4MzFiM2UzMzY0MjZkMmQ5YzA1Y2NjZGVmM2FmMGM5
MjVhNjA4My4uYjViMTMxOWY0NTAyY2Q5ZWVhM2I5YTI2M2YxZjc0ZTdmNGNlODczZiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIw
IEBACisyMDIxLTA4LTE5ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KKwor
ICAgICAgICBbZ2l0LXdlYmtpdF0gQWRkIHB1bGwtcmVxdWVzdCBjb21tYW5kIChQYXJ0IDUpCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjkwODkKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgxOTA4NzUxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkv
d2Via2l0c2NtcHkvbG9jYWwvZ2l0LnB5OgorICAgICAgICAoR2l0Lm1vZGlmaWVkKTogUmV0dXJu
IGEgbGlzdCBvZiBtb2RpZmllZCBmaWxlcyBpbiB0aGUgY3VycmVudCBjaGVja291dC4KKyAgICAg
ICAgKiBTY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS9tb2Nrcy9sb2Nh
bC9naXQucHk6CisgICAgICAgIChHaXQuX19pbml0X18pOiBBZGQgJ2dpdCBkaWZmJyBtb2NrIGNv
bW1hbmRzLgorICAgICAgICAqIFNjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNj
bXB5L3Rlc3QvZ2l0X3VuaXR0ZXN0LnB5OgorICAgICAgICAoVGVzdEdpdC50ZXN0X21vZGlmaWVk
KToKKyAgICAgICAgKFRlc3RHaXQudGVzdF9tb2RpZmllZF9ub19zdGFnZWQpOgorICAgICAgICAo
VGVzdEdpdC50ZXN0X21vZGlmaWVkX3N0YWdlZCk6CisKIDIwMjEtMDgtMTkgIFdlbnNvbiBIc2ll
aCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gUmVtb3ZlIHN1cHBv
cnQgZm9yIHRoZSBtZWFuaW5nZnVsIHRhcCBoZXVyaXN0aWMKZGlmZiAtLWdpdCBhL1Rvb2xzL1Nj
cmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L2xvY2FsL2dpdC5weSBiL1Rv
b2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L2xvY2FsL2dpdC5w
eQppbmRleCBkMmEyZDg0NzA2MzYxNmNjZjllNGI3YmZmMTI2ZDk4NWJjZGQzYjBmLi42MTRjNGY0
ODdiNDU4MTNiZWQzN2E1MTY4ZjNjZTg3ZmE0MzUxNmVkIDEwMDY0NAotLS0gYS9Ub29scy9TY3Jp
cHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS9sb2NhbC9naXQucHkKKysrIGIv
VG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvbG9jYWwvZ2l0
LnB5CkBAIC03ODQsMyArNzg0LDMyIEBAIGNsYXNzIEdpdChTY20pOgogICAgICAgICByZXR1cm4g
cnVuKFsKICAgICAgICAgICAgIHNlbGYuZXhlY3V0YWJsZSgpLCAncmVzZXQnLCAnSEVBRCcsICct
LWhhcmQnLAogICAgICAgICBdLCBjd2Q9c2VsZi5yb290X3BhdGgpLnJldHVybmNvZGUKKworICAg
IGRlZiBtb2RpZmllZChzZWxmLCBzdGFnZWQ9Tm9uZSk6CisgICAgICAgIGlmIHN0YWdlZCBpbiBb
VHJ1ZSwgRmFsc2VdOgorICAgICAgICAgICAgY29tbWFuZCA9IHJ1bigKKyAgICAgICAgICAgICAg
ICBbc2VsZi5leGVjdXRhYmxlKCksICdkaWZmJywgJy0tbmFtZS1vbmx5J10gKyAoWyctLXN0YWdl
ZCddIGlmIHN0YWdlZCBlbHNlIFtdKSwKKyAgICAgICAgICAgICAgICBjYXB0dXJlX291dHB1dD1U
cnVlLCBlbmNvZGluZz0ndXRmLTgnLCBjd2Q9c2VsZi5yb290X3BhdGgsCisgICAgICAgICAgICAp
CisgICAgICAgICAgICBpZiBjb21tYW5kLnJldHVybmNvZGU6CisgICAgICAgICAgICAgICAgcmV0
dXJuIFtdCisgICAgICAgICAgICByZXR1cm4gY29tbWFuZC5zdGRvdXQuc3BsaXRsaW5lcygpCisK
KyAgICAgICAgIyBXaGVuIHRoZSB1c2VyIGhhc24ndCBzcGVjaWZpZWQgd2hhdCB0aGV5J3JlIGxv
b2tpbmcgZm9yLCB3ZSBuZWVkIHRvIG1ha2Ugc29tZSBhc3N1bXB0aW9ucy4KKyAgICAgICAgIyBJ
ZiBhbGwgc3RhZ2VkIGZpbGVzIGFyZSBhZGRlZCwgdGhlIHVzZXIgcHJvYmFibHkgd2FudHMgdG8g
aW5jbHVkZSBub24tc3RhZ2VkIGZpbGVzIHRvbworICAgICAgICBjb21tYW5kID0gcnVuKAorICAg
ICAgICAgICAgW3NlbGYuZXhlY3V0YWJsZSgpLCAnZGlmZicsICctLW5hbWUtc3RhdHVzJywgJy0t
c3RhZ2VkJ10sCisgICAgICAgICAgICBjYXB0dXJlX291dHB1dD1UcnVlLCBlbmNvZGluZz0ndXRm
LTgnLCBjd2Q9c2VsZi5yb290X3BhdGgsCisgICAgICAgICkKKyAgICAgICAgaWYgY29tbWFuZC5y
ZXR1cm5jb2RlOgorICAgICAgICAgICAgcmV0dXJuIFtdCisgICAgICAgIGFkZGVkID0gc2V0KCkK
KyAgICAgICAgZm9yIGxpbmUgaW4gY29tbWFuZC5zdGRvdXQuc3BsaXRsaW5lcygpOgorICAgICAg
ICAgICAgc3RhdGUsIGZpbGUgPSBsaW5lLnNwbGl0KE5vbmUsIDEpCisgICAgICAgICAgICBpZiBz
dGF0ZSA9PSAnQSc6CisgICAgICAgICAgICAgICAgYWRkZWQuYWRkKGZpbGUpCisKKyAgICAgICAg
c3RhZ2VkID0gc2VsZi5tb2RpZmllZChzdGFnZWQ9VHJ1ZSkKKyAgICAgICAgaWYgc2V0KHN0YWdl
ZCkgLSBhZGRlZDoKKyAgICAgICAgICAgIHJldHVybiBzdGFnZWQKKyAgICAgICAgcmV0dXJuIHN0
YWdlZCArIHNlbGYubW9kaWZpZWQoc3RhZ2VkPUZhbHNlKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2Ny
aXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvbW9ja3MvbG9jYWwvZ2l0LnB5
IGIvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvbW9ja3Mv
bG9jYWwvZ2l0LnB5CmluZGV4IDg1OGM2YjZkNjAzMTQ4NmYyZTI4YjZmYzI1MmRlYjhmNDdlYmIy
M2MuLmM3OTQ5NjQ5N2NmMDk4M2RiZGM5MTBhMzgzN2NhNzJkYTA0ZTRiMzMgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L21vY2tzL2xv
Y2FsL2dpdC5weQorKysgYi9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJr
aXRzY21weS9tb2Nrcy9sb2NhbC9naXQucHkKQEAgLTc1LDYgKzc1LDkgQEAgY2xhc3MgR2l0KG1v
Y2tzLlN1YnByb2Nlc3MpOgogICAgICAgICBzZWxmLnJlbW90ZXMgPSB7J29yaWdpbi97fScuZm9y
bWF0KGJyYW5jaCk6IGNvbW1pdHNbLTFdIGZvciBicmFuY2gsIGNvbW1pdHMgaW4gc2VsZi5jb21t
aXRzLml0ZW1zKCl9CiAgICAgICAgIHNlbGYudGFncyA9IHt9CiAKKyAgICAgICAgc2VsZi5zdGFn
ZWQgPSB7fQorICAgICAgICBzZWxmLm1vZGlmaWVkID0ge30KKwogICAgICAgICAjIElmIHRoZSBk
aXJlY3RvcnkgcHJvdmlkZWQgYWN0dWFsbHkgZXhpc3RzLCBwb3B1bGF0ZSBpdAogICAgICAgICBp
ZiBzZWxmLnBhdGggIT0gJy8nIGFuZCBvcy5wYXRoLmlzZGlyKHNlbGYucGF0aCk6CiAgICAgICAg
ICAgICBpZiBub3Qgb3MucGF0aC5pc2Rpcihvcy5wYXRoLmpvaW4oc2VsZi5wYXRoLCAnLmdpdCcp
KToKQEAgLTM4MCw2ICszODMsMjUgQEAgbm90aGluZyB0byBjb21taXQsIHdvcmtpbmcgdHJlZSBj
bGVhbgogICAgICAgICAgICAgICAgIGNvbXBsZXRpb249bW9ja3MuUHJvY2Vzc0NvbXBsZXRpb24o
CiAgICAgICAgICAgICAgICAgICAgIHJldHVybmNvZGU9MCwKICAgICAgICAgICAgICAgICApLAor
ICAgICAgICAgICAgKSwgbW9ja3MuU3VicHJvY2Vzcy5Sb3V0ZSgKKyAgICAgICAgICAgICAgICBz
ZWxmLmV4ZWN1dGFibGUsICdkaWZmJywgJy0tbmFtZS1vbmx5JywKKyAgICAgICAgICAgICAgICBj
d2Q9c2VsZi5wYXRoLAorICAgICAgICAgICAgICAgIGdlbmVyYXRvcj1sYW1iZGEgKmFyZ3MsICoq
a3dhcmdzOgorICAgICAgICAgICAgICAgICAgICBtb2Nrcy5Qcm9jZXNzQ29tcGxldGlvbihyZXR1
cm5jb2RlPTAsIHN0ZG91dD0nXG4nLmpvaW4oc29ydGVkKFsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGtleSBmb3Iga2V5LCB2YWx1ZSBpbiBzZWxmLm1vZGlmaWVkLml0ZW1zKCkgaWYgdmFsdWUu
c3RhcnRzd2l0aCgnZGlmZicpCisgICAgICAgICAgICAgICAgICAgIF0pKSksCisgICAgICAgICAg
ICApLCBtb2Nrcy5TdWJwcm9jZXNzLlJvdXRlKAorICAgICAgICAgICAgICAgIHNlbGYuZXhlY3V0
YWJsZSwgJ2RpZmYnLCAnLS1uYW1lLW9ubHknLCAnLS1zdGFnZWQnLAorICAgICAgICAgICAgICAg
IGN3ZD1zZWxmLnBhdGgsCisgICAgICAgICAgICAgICAgZ2VuZXJhdG9yPWxhbWJkYSAqYXJncywg
Kiprd2FyZ3M6CisgICAgICAgICAgICAgICAgICAgIG1vY2tzLlByb2Nlc3NDb21wbGV0aW9uKHJl
dHVybmNvZGU9MCwgc3Rkb3V0PSdcbicuam9pbihzb3J0ZWQoc2VsZi5zdGFnZWQua2V5cygpKSkp
LAorICAgICAgICAgICAgKSwgbW9ja3MuU3VicHJvY2Vzcy5Sb3V0ZSgKKyAgICAgICAgICAgICAg
ICBzZWxmLmV4ZWN1dGFibGUsICdkaWZmJywgJy0tbmFtZS1zdGF0dXMnLCAnLS1zdGFnZWQnLAor
ICAgICAgICAgICAgICAgIGN3ZD1zZWxmLnBhdGgsCisgICAgICAgICAgICAgICAgZ2VuZXJhdG9y
PWxhbWJkYSAqYXJncywgKiprd2FyZ3M6CisgICAgICAgICAgICAgICAgICAgIG1vY2tzLlByb2Nl
c3NDb21wbGV0aW9uKHJldHVybmNvZGU9MCwgc3Rkb3V0PSdcbicuam9pbihzb3J0ZWQoWworICAg
ICAgICAgICAgICAgICAgICAgICAgJ3t9ICAgICAgIHt9Jy5mb3JtYXQoJ00nIGlmIHZhbHVlLnN0
YXJ0c3dpdGgoJ2RpZmYnKSBlbHNlICdBJywga2V5KSBmb3Iga2V5LCB2YWx1ZSBpbiBzZWxmLnN0
YWdlZC5pdGVtcygpCisgICAgICAgICAgICAgICAgICAgIF0pKSksCiAgICAgICAgICAgICApLCBt
b2Nrcy5TdWJwcm9jZXNzLlJvdXRlKAogICAgICAgICAgICAgICAgIHNlbGYuZXhlY3V0YWJsZSwK
ICAgICAgICAgICAgICAgICBjd2Q9c2VsZi5wYXRoLApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0
cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvdGVzdC9naXRfdW5pdHRlc3QucHkg
Yi9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS90ZXN0L2dp
dF91bml0dGVzdC5weQppbmRleCA2MjE3N2I0MGNiOGRjNmRlOGQxNWMyM2QyNzNjMDU3ZDliZmRk
ZDYyLi44NGQyYTViNGRkZjZhYzkxMmU1MGNhMGI1ODAzMjc1ZmM3ZjdiODNlIDEwMDY0NAotLS0g
YS9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS90ZXN0L2dp
dF91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93
ZWJraXRzY21weS90ZXN0L2dpdF91bml0dGVzdC5weQpAQCAtNDIyLDYgKzQyMiw1NCBAQCBDb21t
aXREYXRlOiBTYXQgT2N0IDAzIDAyOjA2OjQwIDIwMjAgKzAwMDAKICAgICAgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwobG9jYWwuR2l0LmNvbmZpZygpWyd1c2VyLm5hbWUnXSwgJ1RpbSBBcHBsZScp
CiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxvY2FsLkdpdC5jb25maWcoKVsnc2VuZGVt
YWlsLnRyYW5zZmVyZW5jb2RpbmcnXSwgJ2Jhc2U2NCcpCiAKKyAgICBkZWYgdGVzdF9tb2RpZmll
ZChzZWxmKToKKyAgICAgICAgd2l0aCBtb2Nrcy5sb2NhbC5HaXQoc2VsZi5wYXRoKSBhcyBtcmVw
bywgT3V0cHV0Q2FwdHVyZSgpOgorICAgICAgICAgICAgcmVwbyA9IGxvY2FsLkdpdChzZWxmLnBh
dGgpCisKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVwby5tb2RpZmllZCgpLCBbXSkK
KworICAgICAgICAgICAgbXJlcG8ubW9kaWZpZWRbJ3Vuc3RhZ2VkLWFkZGVkLnR4dCddID0gJ2Fk
ZGVkJworICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXBvLm1vZGlmaWVkKCksIFtdKQor
CisgICAgICAgICAgICBtcmVwby5tb2RpZmllZFsndW5zdGFnZWQtbW9kaWZpZWQudHh0J10gPSAn
ZGlmZicKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVwby5tb2RpZmllZCgpLCBbJ3Vu
c3RhZ2VkLW1vZGlmaWVkLnR4dCddKQorCisgICAgICAgICAgICBtcmVwby5zdGFnZWRbJ3N0YWdl
ZC1hZGRlZC50eHQnXSA9ICdhZGRlZCcKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVw
by5tb2RpZmllZCgpLCBbJ3N0YWdlZC1hZGRlZC50eHQnLCAndW5zdGFnZWQtbW9kaWZpZWQudHh0
J10pCisKKyAgICAgICAgICAgIG1yZXBvLnN0YWdlZFsnc3RhZ2VkLW1vZGlmaWVkLnR4dCddID0g
J2RpZmYnCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlcG8ubW9kaWZpZWQoKSwgWydz
dGFnZWQtYWRkZWQudHh0JywgJ3N0YWdlZC1tb2RpZmllZC50eHQnXSkKKworICAgIGRlZiB0ZXN0
X21vZGlmaWVkX25vX3N0YWdlZChzZWxmKToKKyAgICAgICAgd2l0aCBtb2Nrcy5sb2NhbC5HaXQo
c2VsZi5wYXRoKSBhcyBtcmVwbywgT3V0cHV0Q2FwdHVyZSgpOgorICAgICAgICAgICAgcmVwbyA9
IGxvY2FsLkdpdChzZWxmLnBhdGgpCisKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVw
by5tb2RpZmllZChzdGFnZWQ9RmFsc2UpLCBbXSkKKworICAgICAgICAgICAgbXJlcG8uc3RhZ2Vk
WydzdGFnZWQtYWRkZWQudHh0J10gPSAnYWRkZWQnCisgICAgICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKHJlcG8ubW9kaWZpZWQoc3RhZ2VkPUZhbHNlKSwgW10pCisKKyAgICAgICAgICAgIG1yZXBv
Lm1vZGlmaWVkWydhZGRlZC50eHQnXSA9ICdhZGRlZCcKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwocmVwby5tb2RpZmllZChzdGFnZWQ9RmFsc2UpLCBbXSkKKworICAgICAgICAgICAgbXJl
cG8ubW9kaWZpZWRbJ21vZGlmaWVkLnR4dCddID0gJ2RpZmYnCisgICAgICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKHJlcG8ubW9kaWZpZWQoc3RhZ2VkPUZhbHNlKSwgWydtb2RpZmllZC50eHQnXSkK
KworICAgIGRlZiB0ZXN0X21vZGlmaWVkX3N0YWdlZChzZWxmKToKKyAgICAgICAgd2l0aCBtb2Nr
cy5sb2NhbC5HaXQoc2VsZi5wYXRoKSBhcyBtcmVwbywgT3V0cHV0Q2FwdHVyZSgpOgorICAgICAg
ICAgICAgcmVwbyA9IGxvY2FsLkdpdChzZWxmLnBhdGgpCisKKyAgICAgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwocmVwby5tb2RpZmllZChzdGFnZWQ9VHJ1ZSksIFtdKQorCisgICAgICAgICAgICBt
cmVwby5tb2RpZmllZFsndW5zdGFnZWQtYWRkZWQudHh0J10gPSAnYWRkZWQnCisgICAgICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKHJlcG8ubW9kaWZpZWQoc3RhZ2VkPVRydWUpLCBbXSkKKworICAg
ICAgICAgICAgbXJlcG8uc3RhZ2VkWydhZGRlZC50eHQnXSA9ICdhZGRlZCcKKyAgICAgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwocmVwby5tb2RpZmllZChzdGFnZWQ9VHJ1ZSksIFsnYWRkZWQudHh0
J10pCisKKyAgICAgICAgICAgIG1yZXBvLnN0YWdlZFsnbW9kaWZpZWQudHh0J10gPSAnZGlmZicK
KyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVwby5tb2RpZmllZChzdGFnZWQ9VHJ1ZSks
IFsnYWRkZWQudHh0JywgJ21vZGlmaWVkLnR4dCddKQorCiAKIGNsYXNzIFRlc3RHaXRIdWIodGVz
dGluZy5UZXN0Q2FzZSk6CiAgICAgcmVtb3RlID0gJ2h0dHBzOi8vZ2l0aHViLmV4YW1wbGUuY29t
L1dlYktpdC9XZWJLaXQnCg==
</data>
<flag name="review"
          id="458847"
          type_id="1"
          status="+"
          setter="dewei_zhu"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>436036</attachid>
            <date>2021-08-20 15:22:30 -0700</date>
            <delta_ts>2021-08-24 08:20:48 -0700</delta_ts>
            <desc>Part 1</desc>
            <filename>bug-229089-20210820152229.patch</filename>
            <type>text/plain</type>
            <size>5014</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxMzQyCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYzA3YzczNWJlNzZhMjA5Y2JiY2NlMDM3YzJmMGNlNDkx
MWQwMjM1Zi4uMWRlZWE3MmNlMjA3ZDM5MGM0NzExZjVjMTZiZDZlODgzMGQ0MTgxZCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5
IEBACisyMDIxLTA4LTIwICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KKwor
ICAgICAgICBbZ2l0LXdlYmtpdF0gQWRkIHB1bGwtcmVxdWVzdCBjb21tYW5kIChQYXJ0IDEpCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjkwODkKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgxOTA4NzUxPgorCisgICAgICAgIFJldmlld2VkIGJ5IERl
d2VpIFpodS4KKworICAgICAgICAqIFNjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3NldHVw
LnB5OiBCdW1wIHZlcnNpb24uCisgICAgICAgICogU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2Nt
cHkvd2Via2l0c2NtcHkvX19pbml0X18ucHk6IERpdHRvLgorICAgICAgICAqIFNjcmlwdHMvbGli
cmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L3Byb2dyYW0vX19pbml0X18ucHk6CisgICAg
ICAgIChtYWluKTogU29ydCBwcm9ncmFtcywgYWRkIGFsaWFzZXMuCisgICAgICAgICogU2NyaXB0
cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvcHJvZ3JhbS9jb21tYW5kLnB5Ogor
ICAgICAgICAoQ29tbWFuZCk6IEFkZCBhbGlhcworICAgICAgICAoRmlsdGVyZWRDb21tYW5kKTog
SW5oZXJpdCBmcm9tIENvbW1hbmQuCisKIDIwMjEtMDgtMjAgIEpvbiBMZWUgIDxqb25sZWVAYXBw
bGUuY29tPgogCiAgICAgICAgIFRlYWNoIHJ1bi13ZWJraXQtdGVzdHMgdG8gcHJpbnQgYSBzdW1t
YXJ5IG9mIHRlc3Qgc3RhdHVzCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy93
ZWJraXRzY21weS9zZXR1cC5weSBiL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5
L3NldHVwLnB5CmluZGV4IDkzMGZjODY5MzY1NzMxNGEzZDYxYjBhNjk2MGNmMDBlNTRhNzdkYjAu
LjEyMjcwYTgxNGVmMWQ4MGNmYTBjZmJhNzU2ZmQ2MzI3MzBmYmJmNzMgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3NldHVwLnB5CisrKyBiL1Rvb2xzL1Nj
cmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3NldHVwLnB5CkBAIC0yOSw3ICsyOSw3IEBAIGRl
ZiByZWFkbWUoKToKIAogc2V0dXAoCiAgICAgbmFtZT0nd2Via2l0c2NtcHknLAotICAgIHZlcnNp
b249JzEuMS40JywKKyAgICB2ZXJzaW9uPScxLjEuNScsCiAgICAgZGVzY3JpcHRpb249J0xpYnJh
cnkgZGVzaWduZWQgdG8gaW50ZXJhY3Qgd2l0aCBnaXQgYW5kIHN2biByZXBvc2l0b3JpZXMuJywK
ICAgICBsb25nX2Rlc2NyaXB0aW9uPXJlYWRtZSgpLAogICAgIGNsYXNzaWZpZXJzPVsKZGlmZiAt
LWdpdCBhL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L19f
aW5pdF9fLnB5IGIvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2Nt
cHkvX19pbml0X18ucHkKaW5kZXggY2EwYjlkM2U1ZDYyZjhmMzMyMTAxMzQyZTEwM2Y0NjE1OGEw
ZTczNS4uN2M1OWRhNTIxNzVlNGQ3NzNmZWRiZWMxNDlkYzNmMWQyNzRkMTI3NiAxMDA2NDQKLS0t
IGEvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvX19pbml0
X18ucHkKKysrIGIvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2Nt
cHkvX19pbml0X18ucHkKQEAgLTQ2LDcgKzQ2LDcgQEAgZXhjZXB0IEltcG9ydEVycm9yOgogICAg
ICAgICAiUGxlYXNlIGluc3RhbGwgd2Via2l0Y29yZXB5IHdpdGggYHBpcCBpbnN0YWxsIHdlYmtp
dGNvcmVweSAtLWV4dHJhLWluZGV4LXVybCA8cGFja2FnZSBpbmRleCBVUkw+YCIKICAgICApCiAK
LXZlcnNpb24gPSBWZXJzaW9uKDEsIDEsIDQpCit2ZXJzaW9uID0gVmVyc2lvbigxLCAxLCA1KQog
CiBBdXRvSW5zdGFsbC5yZWdpc3RlcihQYWNrYWdlKCdmYXN0ZW5lcnMnLCBWZXJzaW9uKDAsIDE1
LCAwKSkpCiBBdXRvSW5zdGFsbC5yZWdpc3RlcihQYWNrYWdlKCdtb25vdG9uaWMnLCBWZXJzaW9u
KDEsIDUpKSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5
L3dlYmtpdHNjbXB5L3Byb2dyYW0vX19pbml0X18ucHkgYi9Ub29scy9TY3JpcHRzL2xpYnJhcmll
cy93ZWJraXRzY21weS93ZWJraXRzY21weS9wcm9ncmFtL19faW5pdF9fLnB5CmluZGV4IGIyZTQ5
YWNiMGVmMmYyM2NkMjE2ZjM0ZDJlYjYzYTNiZDFkNjhhMzAuLmI1ODk1NzkxZTVlMjc4MjQxYTk5
ZmE2ODViYTk3MjIxNTM2MmQ3ZTAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVz
L3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L3Byb2dyYW0vX19pbml0X18ucHkKKysrIGIvVG9vbHMv
U2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvcHJvZ3JhbS9fX2luaXRf
Xy5weQpAQCAtNjUsMTQgKzY1LDE4IEBAIGRlZiBtYWluKGFyZ3M9Tm9uZSwgcGF0aD1Ob25lLCBs
b2dnZXJzPU5vbmUsIGNvbnRyaWJ1dG9ycz1Ob25lLCBpZGVudGlmaWVyX3RlbXBsCiAKICAgICBz
dWJwYXJzZXJzID0gcGFyc2VyLmFkZF9zdWJwYXJzZXJzKGhlbHA9J3N1Yi1jb21tYW5kIGhlbHAn
KQogCi0gICAgcHJvZ3JhbXMgPSBbRmluZCwgSW5mbywgQ2hlY2tvdXQsIENhbm9uaWNhbGl6ZSwg
UHVsbCwgQ2xlYW4sIExvZywgQmxhbWUsIFNldHVwXQorICAgIHByb2dyYW1zID0gW0JsYW1lLCBD
YW5vbmljYWxpemUsIENoZWNrb3V0LCBDbGVhbiwgRmluZCwgSW5mbywgTG9nLCBQdWxsLCBTZXR1
cF0KICAgICBpZiBzdWJ2ZXJzaW9uOgogICAgICAgICBwcm9ncmFtcy5hcHBlbmQoU2V0dXBHaXRT
dm4pCiAKICAgICBmb3IgcHJvZ3JhbSBpbiBwcm9ncmFtczoKLSAgICAgICAgc3VicGFyc2VyID0g
c3VicGFyc2Vycy5hZGRfcGFyc2VyKHByb2dyYW0ubmFtZSwgaGVscD1wcm9ncmFtLmhlbHApCisg
ICAgICAgIGt3YXJncyA9IGRpY3QoaGVscD1wcm9ncmFtLmhlbHApCisgICAgICAgIGlmIHN5cy52
ZXJzaW9uX2luZm8gPiAoMywgMCk6CisgICAgICAgICAgICBrd2FyZ3NbJ2FsaWFzZXMnXSA9IHBy
b2dyYW0uYWxpYXNlcworICAgICAgICBzdWJwYXJzZXIgPSBzdWJwYXJzZXJzLmFkZF9wYXJzZXIo
cHJvZ3JhbS5uYW1lLCAqKmt3YXJncykKICAgICAgICAgc3VicGFyc2VyLnNldF9kZWZhdWx0cyht
YWluPXByb2dyYW0ubWFpbikKICAgICAgICAgc3VicGFyc2VyLnNldF9kZWZhdWx0cyhwcm9ncmFt
PXByb2dyYW0ubmFtZSkKKyAgICAgICAgc3VicGFyc2VyLnNldF9kZWZhdWx0cyhhbGlhc2VzPXBy
b2dyYW0uYWxpYXNlcykKICAgICAgICAgYXJndW1lbnRzLkxvZ2dpbmdHcm91cCgKICAgICAgICAg
ICAgIHN1YnBhcnNlciwKICAgICAgICAgICAgIGxvZ2dlcnM9bG9nZ2VycywKQEAgLTgzLDcgKzg3
LDExIEBAIGRlZiBtYWluKGFyZ3M9Tm9uZSwgcGF0aD1Ob25lLCBsb2dnZXJzPU5vbmUsIGNvbnRy
aWJ1dG9ycz1Ob25lLCBpZGVudGlmaWVyX3RlbXBsCiAgICAgYXJncyA9IGFyZ3Mgb3Igc3lzLmFy
Z3ZbMTpdCiAgICAgcGFyc2VkLCB1bmtub3duID0gcGFyc2VyLnBhcnNlX2tub3duX2FyZ3MoYXJn
cz1hcmdzKQogICAgIGlmIHVua25vd246Ci0gICAgICAgIHByb2dyYW1faW5kZXggPSBhcmdzLmlu
ZGV4KHBhcnNlZC5wcm9ncmFtKQorICAgICAgICBwcm9ncmFtX2luZGV4ID0gMAorICAgICAgICBm
b3IgY2FuZGlkYXRlIGluIFtwYXJzZWQucHJvZ3JhbV0gKyBwYXJzZWQuYWxpYXNlczoKKyAgICAg
ICAgICAgIGlmIGNhbmRpZGF0ZSBpbiBhcmdzOgorICAgICAgICAgICAgICAgIHByb2dyYW1faW5k
ZXggPSBhcmdzLmluZGV4KGNhbmRpZGF0ZSkKKyAgICAgICAgICAgICAgICBicmVhawogICAgICAg
ICBpZiBnZXRhdHRyKHBhcnNlZCwgJ2FyZ3MnLCBOb25lKToKICAgICAgICAgICAgIHBhcnNlZC5h
cmdzID0gW2FyZyBmb3IgYXJnIGluIGFyZ3NbcHJvZ3JhbV9pbmRleDpdIGlmIGFyZyBpbiBwYXJz
ZWQuYXJncyBvciBhcmcgaW4gdW5rbm93bl0KICAgICAgICAgaWYgYW55KFtvcHRpb24gbm90IGlu
IGdldGF0dHIocGFyc2VkLCAnYXJncycsIFtdKSBmb3Igb3B0aW9uIGluIHVua25vd25dKToKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5
L3Byb2dyYW0vY29tbWFuZC5weSBiL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5
L3dlYmtpdHNjbXB5L3Byb2dyYW0vY29tbWFuZC5weQppbmRleCA0ODBlNmZjYTUyNjBhZWRkMmRk
NjNiMGNjYTE0NDg4MjcwZWRiNzcyLi5jY2E1ZTIzNzZjZjZjYzIwMDY5OGViYWM4MDE3NjgxMTY5
MjkyZTY5IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93
ZWJraXRzY21weS9wcm9ncmFtL2NvbW1hbmQucHkKKysrIGIvVG9vbHMvU2NyaXB0cy9saWJyYXJp
ZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvcHJvZ3JhbS9jb21tYW5kLnB5CkBAIC0zNCw2ICsz
NCw3IEBAIGZyb20gd2hpY2hjcmFmdCBpbXBvcnQgd2hpY2gKIAogY2xhc3MgQ29tbWFuZChvYmpl
Y3QpOgogICAgIG5hbWUgPSBOb25lCisgICAgYWxpYXNlcyA9IFtdCiAgICAgaGVscCA9IE5vbmUK
IAogICAgIEBjbGFzc21ldGhvZApAQCAtNDksNyArNTAsNyBAQCBjbGFzcyBDb21tYW5kKG9iamVj
dCk6CiAgICAgICAgIHJldHVybiAtMQogCiAKLWNsYXNzIEZpbHRlcmVkQ29tbWFuZChvYmplY3Qp
OgorY2xhc3MgRmlsdGVyZWRDb21tYW5kKENvbW1hbmQpOgogICAgIElERU5USUZJRVIgPSAnaWRl
bnRpZmllcicKICAgICBIQVNIID0gJ2hhc2gnCiAgICAgUkVWSVNJT04gPSAncmV2aXNpb24nCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>436040</attachid>
            <date>2021-08-20 16:07:05 -0700</date>
            <delta_ts>2021-08-24 08:20:50 -0700</delta_ts>
            <desc>Part 2</desc>
            <filename>bug-229089-20210820160704.patch</filename>
            <type>text/plain</type>
            <size>15055</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxMzQ4CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMWRlZWE3MmNlMjA3ZDM5MGM0NzExZjVjMTZiZDZlODgz
MGQ0MTgxZC4uYTFlNjBlMjU0ZTQ1ZDc4ZmViMGU0MTU2ZTBmZjQ4MjAxMjg2YzAzYiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMw
IEBACisyMDIxLTA4LTIwICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KKwor
ICAgICAgICBbZ2l0LXdlYmtpdF0gQWRkIHB1bGwtcmVxdWVzdCBjb21tYW5kIChQYXJ0IDIpCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjkwODkKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgxOTA4NzUxPgorCisgICAgICAgIFJldmlld2VkIGJ5IERl
d2VpIFpodS4KKworICAgICAgICAqIFNjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3NldHVw
LnB5OiBCdW1wIHZlcnNpb24uCisgICAgICAgICogU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2Nt
cHkvd2Via2l0c2NtcHkvX19pbml0X18ucHk6IERpdHRvLgorICAgICAgICAqIFNjcmlwdHMvbGli
cmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L21vY2tzL2xvY2FsL2dpdC5weToKKyAgICAg
ICAgKEdpdC5fX2luaXRfXyk6IEFkZCAnY2hlY2stcmVmLWZvcm1hdCcgYW5kICdjaGVja291dCAt
YicuCisgICAgICAgIChHaXQuY2hlY2tvdXQpOiBBZGQgYWJpbGl0eSB0byBjcmVhdGUgYnJhbmNo
LgorICAgICAgICAqIFNjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L3By
b2dyYW0vX19pbml0X18ucHk6CisgICAgICAgIChtYWluKTogQWRkIEJyYW5jaCBjb21tYW5kLgor
ICAgICAgICAqIFNjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L3Byb2dy
YW0vYnJhbmNoLnB5OgorICAgICAgICAoQnJhbmNoLnBhcnNlcik6IEFsbG93IHVzZXIgdG8gc3Bl
Y2lmeSBlbmdpbmVlcmluZyBicmFuY2ggbmFtZS4KKyAgICAgICAgKEJyYW5jaC5ub3JtYWxpemVf
aXNzdWUpOiBUdXJuIHByb3ZpZGVkIHN0cmluZyBpbnRvIGVuZyBicmFuY2ggaWYgaXQgaXNuJ3Qg
YWxyZWFkeS4KKyAgICAgICAgKEJyYW5jaC5tYWluKTogQ3JlYXRlIGVuZyBicmFuY2ggZnJvbSBj
dXJyZW50IGNoZWNrb3V0IHN0YXRlLgorICAgICAgICAqIFNjcmlwdHMvbGlicmFyaWVzL3dlYmtp
dHNjbXB5L3dlYmtpdHNjbXB5L3Rlc3QvYnJhbmNoX3VuaXR0ZXN0LnB5OgorICAgICAgICAoVGVz
dEJyYW5jaCk6CisgICAgICAgIChUZXN0QnJhbmNoLnNldFVwKToKKyAgICAgICAgKFRlc3RCcmFu
Y2gudGVzdF9iYXNpY19zdm4pOgorICAgICAgICAoVGVzdEJyYW5jaC50ZXN0X2Jhc2ljX2dpdCk6
CisgICAgICAgIChUZXN0QnJhbmNoLnRlc3RfcHJvbXB0X2dpdCk6CisgICAgICAgIChUZXN0QnJh
bmNoLnRlc3RfaW52YWxpZF9icmFuY2gpOgorCiAyMDIxLTA4LTIwICBKb25hdGhhbiBCZWRhcmQg
IDxqYmVkYXJkQGFwcGxlLmNvbT4KIAogICAgICAgICBbZ2l0LXdlYmtpdF0gQWRkIHB1bGwtcmVx
dWVzdCBjb21tYW5kIChQYXJ0IDEpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL2xpYnJhcmll
cy93ZWJraXRzY21weS9zZXR1cC5weSBiL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNj
bXB5L3NldHVwLnB5CmluZGV4IDEyMjcwYTgxNGVmMWQ4MGNmYTBjZmJhNzU2ZmQ2MzI3MzBmYmJm
NzMuLmRhMWExZWRiMzNmZWU3MmNjM2QyNzdlMTM3NDA1MGIxNWM5Zjc5ZmUgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3NldHVwLnB5CisrKyBiL1Rvb2xz
L1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3NldHVwLnB5CkBAIC0yOSw3ICsyOSw3IEBA
IGRlZiByZWFkbWUoKToKIAogc2V0dXAoCiAgICAgbmFtZT0nd2Via2l0c2NtcHknLAotICAgIHZl
cnNpb249JzEuMS41JywKKyAgICB2ZXJzaW9uPScxLjEuNicsCiAgICAgZGVzY3JpcHRpb249J0xp
YnJhcnkgZGVzaWduZWQgdG8gaW50ZXJhY3Qgd2l0aCBnaXQgYW5kIHN2biByZXBvc2l0b3JpZXMu
JywKICAgICBsb25nX2Rlc2NyaXB0aW9uPXJlYWRtZSgpLAogICAgIGNsYXNzaWZpZXJzPVsKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5
L19faW5pdF9fLnB5IGIvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0
c2NtcHkvX19pbml0X18ucHkKaW5kZXggN2M1OWRhNTIxNzVlNGQ3NzNmZWRiZWMxNDlkYzNmMWQy
NzRkMTI3Ni4uYTI5ZmMzNTY1ODA4NTkxMDY2OTMxYmIwNTJiN2EwNDBkODNlMWRhMCAxMDA2NDQK
LS0tIGEvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvX19p
bml0X18ucHkKKysrIGIvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0
c2NtcHkvX19pbml0X18ucHkKQEAgLTQ2LDcgKzQ2LDcgQEAgZXhjZXB0IEltcG9ydEVycm9yOgog
ICAgICAgICAiUGxlYXNlIGluc3RhbGwgd2Via2l0Y29yZXB5IHdpdGggYHBpcCBpbnN0YWxsIHdl
YmtpdGNvcmVweSAtLWV4dHJhLWluZGV4LXVybCA8cGFja2FnZSBpbmRleCBVUkw+YCIKICAgICAp
CiAKLXZlcnNpb24gPSBWZXJzaW9uKDEsIDEsIDUpCit2ZXJzaW9uID0gVmVyc2lvbigxLCAxLCA2
KQogCiBBdXRvSW5zdGFsbC5yZWdpc3RlcihQYWNrYWdlKCdmYXN0ZW5lcnMnLCBWZXJzaW9uKDAs
IDE1LCAwKSkpCiBBdXRvSW5zdGFsbC5yZWdpc3RlcihQYWNrYWdlKCdtb25vdG9uaWMnLCBWZXJz
aW9uKDEsIDUpKSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNj
bXB5L3dlYmtpdHNjbXB5L21vY2tzL2xvY2FsL2dpdC5weSBiL1Rvb2xzL1NjcmlwdHMvbGlicmFy
aWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L21vY2tzL2xvY2FsL2dpdC5weQppbmRleCA4NThj
NmI2ZDYwMzE0ODZmMmUyOGI2ZmMyNTJkZWI4ZjQ3ZWJiMjNjLi5hYTU3YmI5M2RlOGM3MjMzZDYx
ZjM2MGZiMDdjMDBmYWUxNzUyNmRhIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL2xpYnJhcmll
cy93ZWJraXRzY21weS93ZWJraXRzY21weS9tb2Nrcy9sb2NhbC9naXQucHkKKysrIGIvVG9vbHMv
U2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvbW9ja3MvbG9jYWwvZ2l0
LnB5CkBAIC0zMzIsMTEgKzMzMiwxNiBAQCBub3RoaW5nIHRvIGNvbW1pdCwgd29ya2luZyB0cmVl
IGNsZWFuCiAgICAgICAgICAgICAgICAgICAgIHJldHVybmNvZGU9MCwKICAgICAgICAgICAgICAg
ICAgICAgc3Rkb3V0PSdcbicuam9pbihzb3J0ZWQoc2VsZi5icmFuY2hlc19vbihhcmdzWzRdKSkp
ICsgJ1xuJywKICAgICAgICAgICAgICAgICApIGlmIHNlbGYuZmluZChhcmdzWzRdKSBlbHNlIG1v
Y2tzLlByb2Nlc3NDb21wbGV0aW9uKHJldHVybmNvZGU9MTI4KSwKKyAgICAgICAgICAgICksIG1v
Y2tzLlN1YnByb2Nlc3MuUm91dGUoCisgICAgICAgICAgICAgICAgc2VsZi5leGVjdXRhYmxlLCAn
Y2hlY2tvdXQnLCAnLWInLCByZS5jb21waWxlKHInLisnKSwKKyAgICAgICAgICAgICAgICBjd2Q9
c2VsZi5wYXRoLAorICAgICAgICAgICAgICAgIGdlbmVyYXRvcj1sYW1iZGEgKmFyZ3MsICoqa3dh
cmdzOgorICAgICAgICAgICAgICAgICAgICBtb2Nrcy5Qcm9jZXNzQ29tcGxldGlvbihyZXR1cm5j
b2RlPTApIGlmIHNlbGYuY2hlY2tvdXQoYXJnc1szXSwgY3JlYXRlPVRydWUpIGVsc2UgbW9ja3Mu
UHJvY2Vzc0NvbXBsZXRpb24ocmV0dXJuY29kZT0xKQogICAgICAgICAgICAgKSwgbW9ja3MuU3Vi
cHJvY2Vzcy5Sb3V0ZSgKICAgICAgICAgICAgICAgICBzZWxmLmV4ZWN1dGFibGUsICdjaGVja291
dCcsIHJlLmNvbXBpbGUocicuKycpLAogICAgICAgICAgICAgICAgIGN3ZD1zZWxmLnBhdGgsCiAg
ICAgICAgICAgICAgICAgZ2VuZXJhdG9yPWxhbWJkYSAqYXJncywgKiprd2FyZ3M6Ci0gICAgICAg
ICAgICAgICAgICAgIG1vY2tzLlByb2Nlc3NDb21wbGV0aW9uKHJldHVybmNvZGU9MCkgaWYgc2Vs
Zi5jaGVja291dChhcmdzWzJdKSBlbHNlIG1vY2tzLlByb2Nlc3NDb21wbGV0aW9uKHJldHVybmNv
ZGU9MSkKKyAgICAgICAgICAgICAgICAgICAgbW9ja3MuUHJvY2Vzc0NvbXBsZXRpb24ocmV0dXJu
Y29kZT0wKSBpZiBzZWxmLmNoZWNrb3V0KGFyZ3NbMl0sIGNyZWF0ZT1GYWxzZSkgZWxzZSBtb2Nr
cy5Qcm9jZXNzQ29tcGxldGlvbihyZXR1cm5jb2RlPTEpCiAgICAgICAgICAgICApLCBtb2Nrcy5T
dWJwcm9jZXNzLlJvdXRlKAogICAgICAgICAgICAgICAgIHNlbGYuZXhlY3V0YWJsZSwgJ2ZpbHRl
ci1icmFuY2gnLCAnLWYnLAogICAgICAgICAgICAgICAgIGN3ZD1zZWxmLnBhdGgsCkBAIC0zODAs
NiArMzg1LDEwIEBAIG5vdGhpbmcgdG8gY29tbWl0LCB3b3JraW5nIHRyZWUgY2xlYW4KICAgICAg
ICAgICAgICAgICBjb21wbGV0aW9uPW1vY2tzLlByb2Nlc3NDb21wbGV0aW9uKAogICAgICAgICAg
ICAgICAgICAgICByZXR1cm5jb2RlPTAsCiAgICAgICAgICAgICAgICAgKSwKKyAgICAgICAgICAg
ICksIG1vY2tzLlN1YnByb2Nlc3MuUm91dGUoCisgICAgICAgICAgICAgICAgc2VsZi5leGVjdXRh
YmxlLCAnY2hlY2stcmVmLWZvcm1hdCcsIHJlLmNvbXBpbGUocicuKycpLAorICAgICAgICAgICAg
ICAgIGdlbmVyYXRvcj1sYW1iZGEgKmFyZ3MsICoqa3dhcmdzOgorICAgICAgICAgICAgICAgICAg
ICBtb2Nrcy5Qcm9jZXNzQ29tcGxldGlvbihyZXR1cm5jb2RlPTApIGlmIHJlLm1hdGNoKHInXltB
LVphLXowLTktXSsvW0EtWmEtejAtOS8tXSskJywgYXJnc1syXSkgZWxzZSBtb2Nrcy5Qcm9jZXNz
Q29tcGxldGlvbigpLAogICAgICAgICAgICAgKSwgbW9ja3MuU3VicHJvY2Vzcy5Sb3V0ZSgKICAg
ICAgICAgICAgICAgICBzZWxmLmV4ZWN1dGFibGUsCiAgICAgICAgICAgICAgICAgY3dkPXNlbGYu
cGF0aCwKQEAgLTQ3Myw4ICs0ODIsMjMgQEAgbm90aGluZyB0byBjb21taXQsIHdvcmtpbmcgdHJl
ZSBjbGVhbgogICAgICAgICAgICAgICAgICAgICByZXN1bHQuYWRkKGJyYW5jaCkKICAgICAgICAg
cmV0dXJuIHJlc3VsdAogCi0gICAgZGVmIGNoZWNrb3V0KHNlbGYsIHNvbWV0aGluZyk6CisgICAg
ZGVmIGNoZWNrb3V0KHNlbGYsIHNvbWV0aGluZywgY3JlYXRlPUZhbHNlKToKICAgICAgICAgY29t
bWl0ID0gc2VsZi5maW5kKHNvbWV0aGluZykKKyAgICAgICAgaWYgY3JlYXRlOgorICAgICAgICAg
ICAgaWYgY29tbWl0OgorICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICAgICAg
aWYgc2VsZi5oZWFkLmJyYW5jaCA9PSBzZWxmLmRlZmF1bHRfYnJhbmNoOgorICAgICAgICAgICAg
ICAgIHNlbGYuY29tbWl0c1tzb21ldGhpbmddID0gW3NlbGYuaGVhZF0KKyAgICAgICAgICAgIGVs
c2U6CisgICAgICAgICAgICAgICAgc2VsZi5jb21taXRzW3NvbWV0aGluZ10gPSBbCisgICAgICAg
ICAgICAgICAgICAgIGNvbW1pdCBmb3IgY29tbWl0IGluIHNlbGYuY29tbWl0c1tzZWxmLmhlYWQu
YnJhbmNoXQorICAgICAgICAgICAgICAgICAgICBpZiBub3QgY29tbWl0LmJyYW5jaF9wb2ludCBv
ciBjb21taXQuaWRlbnRpZmllciA8PSBzZWxmLmhlYWQuaWRlbnRpZmllcgorICAgICAgICAgICAg
ICAgIF0KKyAgICAgICAgICAgIHNlbGYuY29tbWl0c1tzb21ldGhpbmddWy0xXSA9IENvbW1pdC5m
cm9tX2pzb24oQ29tbWl0LkVuY29kZXIoKS5kZWZhdWx0KHNlbGYuaGVhZCkpCisgICAgICAgICAg
ICBzZWxmLmhlYWQgPSBzZWxmLmNvbW1pdHNbc29tZXRoaW5nXVstMV0KKyAgICAgICAgICAgIHNl
bGYuaGVhZC5icmFuY2ggPSBzb21ldGhpbmcKKyAgICAgICAgICAgIHJldHVybiBUcnVlCisKICAg
ICAgICAgaWYgY29tbWl0OgogICAgICAgICAgICAgc2VsZi5oZWFkID0gY29tbWl0CiAgICAgICAg
ICAgICBzZWxmLmRldGFjaGVkID0gc29tZXRoaW5nIG5vdCBpbiBzZWxmLmNvbW1pdHMua2V5cygp
CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRz
Y21weS9wcm9ncmFtL19faW5pdF9fLnB5IGIvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0
c2NtcHkvd2Via2l0c2NtcHkvcHJvZ3JhbS9fX2luaXRfXy5weQppbmRleCBiNTg5NTc5MWU1ZTI3
ODI0MWE5OWZhNjg1YmE5NzIyMTUzNjJkN2UwLi5jOTM4YmQ5NjkwMmVhZjY3NTU0NTk1ZjQ4NzUy
YjZmMzFlNDU0MmE5IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRz
Y21weS93ZWJraXRzY21weS9wcm9ncmFtL19faW5pdF9fLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMv
bGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L3Byb2dyYW0vX19pbml0X18ucHkKQEAg
LTI2LDYgKzI2LDcgQEAgaW1wb3J0IG9zCiBpbXBvcnQgc3lzCiAKIGZyb20gLmJsYW1lIGltcG9y
dCBCbGFtZQorZnJvbSAuYnJhbmNoIGltcG9ydCBCcmFuY2gKIGZyb20gLmNhbm9uaWNhbGl6ZSBp
bXBvcnQgQ2Fub25pY2FsaXplCiBmcm9tIC5jbGVhbiBpbXBvcnQgQ2xlYW4KIGZyb20gLmNvbW1h
bmQgaW1wb3J0IENvbW1hbmQKQEAgLTY1LDcgKzY2LDcgQEAgZGVmIG1haW4oYXJncz1Ob25lLCBw
YXRoPU5vbmUsIGxvZ2dlcnM9Tm9uZSwgY29udHJpYnV0b3JzPU5vbmUsIGlkZW50aWZpZXJfdGVt
cGwKIAogICAgIHN1YnBhcnNlcnMgPSBwYXJzZXIuYWRkX3N1YnBhcnNlcnMoaGVscD0nc3ViLWNv
bW1hbmQgaGVscCcpCiAKLSAgICBwcm9ncmFtcyA9IFtCbGFtZSwgQ2Fub25pY2FsaXplLCBDaGVj
a291dCwgQ2xlYW4sIEZpbmQsIEluZm8sIExvZywgUHVsbCwgU2V0dXBdCisgICAgcHJvZ3JhbXMg
PSBbQnJhbmNoLCBCbGFtZSwgQ2Fub25pY2FsaXplLCBDaGVja291dCwgQ2xlYW4sIEZpbmQsIElu
Zm8sIExvZywgUHVsbCwgU2V0dXBdCiAgICAgaWYgc3VidmVyc2lvbjoKICAgICAgICAgcHJvZ3Jh
bXMuYXBwZW5kKFNldHVwR2l0U3ZuKQogCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL2xpYnJh
cmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS9wcm9ncmFtL2JyYW5jaC5weSBiL1Rvb2xzL1Nj
cmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L3Byb2dyYW0vYnJhbmNoLnB5
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjU3ZjdlZjVjN2NkZTY3MzM2YjFhMTlmNmUzOTRiODIwMzBjNmEwYTgKLS0t
IC9kZXYvbnVsbAorKysgYi9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJr
aXRzY21weS9wcm9ncmFtL2JyYW5jaC5weQpAQCAtMCwwICsxLDc4IEBACisjIENvcHlyaWdodCAo
QykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
IyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTICJB
UyBJUyIgQU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorIyBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitpbXBvcnQgcmUKK2ltcG9ydCBzeXMKKworZnJvbSAu
Y29tbWFuZCBpbXBvcnQgQ29tbWFuZAorCitmcm9tIHdlYmtpdGNvcmVweSBpbXBvcnQgcnVuLCBU
ZXJtaW5hbAorZnJvbSB3ZWJraXRzY21weSBpbXBvcnQgbG9jYWwsIGxvZworCisKK2NsYXNzIEJy
YW5jaChDb21tYW5kKToKKyAgICBuYW1lID0gJ2JyYW5jaCcKKyAgICBoZWxwID0gJ0NyZWF0ZSBh
IGxvY2FsIGRldmVsb3BtZW50IGJyYW5jaCBmcm9tIHRoZSBjdXJyZW50IGNoZWNrb3V0IHN0YXRl
JworCisgICAgUFJFRklYID0gJ2VuZycKKworICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBwYXJz
ZXIoY2xzLCBwYXJzZXIsIGxvZ2dlcnM9Tm9uZSk6CisgICAgICAgIHBhcnNlci5hZGRfYXJndW1l
bnQoCisgICAgICAgICAgICAnLWknLCAnLS1pc3N1ZScsICctYicsICctLWJ1ZycsICctcicsCisg
ICAgICAgICAgICBkZXN0PSdpc3N1ZScsIHR5cGU9c3RyLAorICAgICAgICAgICAgaGVscD0nTnVt
YmVyIChvciBuYW1lKSBvZiB0aGUgaXNzdWUgb3IgYnVnIHRvIGNyZWF0ZSBicmFuY2ggZm9yJywK
KyAgICAgICAgKQorCisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIG5vcm1hbGl6ZV9pc3N1ZShj
bHMsIGlzc3VlKToKKyAgICAgICAgaWYgbm90IGlzc3VlIG9yIGlzc3VlLnN0YXJ0c3dpdGgoY2xz
LlBSRUZJWCk6CisgICAgICAgICAgICByZXR1cm4gaXNzdWUKKyAgICAgICAgcmV0dXJuICd7fS97
fScuZm9ybWF0KGNscy5QUkVGSVgsIGlzc3VlKQorCisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVm
IG1haW4oY2xzLCBhcmdzLCByZXBvc2l0b3J5LCAqKmt3YXJncyk6CisgICAgICAgIGlmIG5vdCBp
c2luc3RhbmNlKHJlcG9zaXRvcnksIGxvY2FsLkdpdCk6CisgICAgICAgICAgICBzeXMuc3RkZXJy
LndyaXRlKCJDYW4gb25seSAnYnJhbmNoJyBvbiBhIG5hdGl2ZSBHaXQgcmVwb3NpdG9yeVxuIikK
KyAgICAgICAgICAgIHJldHVybiAxCisKKyAgICAgICAgaWYgbm90IGFyZ3MuaXNzdWU6CisgICAg
ICAgICAgICBhcmdzLmlzc3VlID0gVGVybWluYWwuaW5wdXQoJ0JyYW5jaCBuYW1lOiAnKQorICAg
ICAgICBhcmdzLmlzc3VlID0gY2xzLm5vcm1hbGl6ZV9pc3N1ZShhcmdzLmlzc3VlKQorCisgICAg
ICAgIGlmIHJ1bihbcmVwb3NpdG9yeS5leGVjdXRhYmxlKCksICdjaGVjay1yZWYtZm9ybWF0Jywg
YXJncy5pc3N1ZV0sIGNhcHR1cmVfb3V0cHV0PVRydWUpLnJldHVybmNvZGU6CisgICAgICAgICAg
ICBzeXMuc3RkZXJyLndyaXRlKCIne30nIGlzIGFuIGludmFsaWQgYnJhbmNoIG5hbWUsIGNhbm5v
dCBjcmVhdGUgaXRcbiIuZm9ybWF0KGFyZ3MuaXNzdWUpKQorICAgICAgICAgICAgcmV0dXJuIDEK
KworICAgICAgICByZW1vdGVfcmUgPSByZS5jb21waWxlKCdyZW1vdGVzLy4rL3t9Jy5mb3JtYXQo
cmUuZXNjYXBlKGFyZ3MuaXNzdWUpKSkKKyAgICAgICAgZm9yIGJyYW5jaCBpbiByZXBvc2l0b3J5
LmJyYW5jaGVzOgorICAgICAgICAgICAgaWYgYnJhbmNoID09IGFyZ3MuaXNzdWUgb3IgcmVtb3Rl
X3JlLm1hdGNoKGJyYW5jaCk6CisgICAgICAgICAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgiJ3t9
JyBhbHJlYWR5IGV4aXN0c1xuIi5mb3JtYXQoYXJncy5pc3N1ZSkpCisgICAgICAgICAgICAgICAg
cmV0dXJuIDEKKworICAgICAgICBsb2cud2FybmluZygiQ3JlYXRpbmcgdGhlIGxvY2FsIGRldmVs
b3BtZW50IGJyYW5jaCAne30nLi4uIi5mb3JtYXQoYXJncy5pc3N1ZSkpCisgICAgICAgIGlmIHJ1
bihbcmVwb3NpdG9yeS5leGVjdXRhYmxlKCksICdjaGVja291dCcsICctYicsIGFyZ3MuaXNzdWVd
LCBjd2Q9cmVwb3NpdG9yeS5yb290X3BhdGgpLnJldHVybmNvZGU6CisgICAgICAgICAgICBzeXMu
c3RkZXJyLndyaXRlKCJGYWlsZWQgdG8gY3JlYXRlICd7fSdcbiIuZm9ybWF0KGFyZ3MuaXNzdWUp
KQorICAgICAgICAgICAgcmV0dXJuIDEKKyAgICAgICAgcmVwb3NpdG9yeS5fYnJhbmNoID0gYXJn
cy5pc3N1ZSAgIyBBc3NpZ24gdGhlIGNhY2hlIGJlY2F1c2Ugb2YgcmVwb3NpdG9yeS5icmFuY2gn
cyBjYWNoaW5nCisgICAgICAgIHByaW50KCJDcmVhdGVkIHRoZSBsb2NhbCBkZXZlbG9wbWVudCBi
cmFuY2ggJ3t9JyEiLmZvcm1hdChhcmdzLmlzc3VlKSkKKyAgICAgICAgcmV0dXJuIDAKZGlmZiAt
LWdpdCBhL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L3Rl
c3QvYnJhbmNoX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2Nt
cHkvd2Via2l0c2NtcHkvdGVzdC9icmFuY2hfdW5pdHRlc3QucHkKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDI4M2Y3
YjY0MGMwNjYwMGM1ODY3ZDFmNGZhODYyOTYxN2Q0MWQzYgotLS0gL2Rldi9udWxsCisrKyBiL1Rv
b2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L3Rlc3QvYnJhbmNo
X3VuaXR0ZXN0LnB5CkBAIC0wLDAgKzEsNzMgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
IyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQKKyMg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UgorIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMCisjIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisjIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSCisjIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisjIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisKK2ltcG9ydCBqc29uCitpbXBvcnQgb3MKK2ltcG9ydCBzaHV0aWwKK2ltcG9y
dCB0ZW1wZmlsZQorCitmcm9tIGRhdGV0aW1lIGltcG9ydCBkYXRldGltZQorZnJvbSB3ZWJraXRj
b3JlcHkgaW1wb3J0IE91dHB1dENhcHR1cmUsIHRlc3RpbmcKK2Zyb20gd2Via2l0Y29yZXB5Lm1v
Y2tzIGltcG9ydCBUaW1lIGFzIE1vY2tUaW1lLCBUZXJtaW5hbCBhcyBNb2NrVGVybWluYWwKK2Zy
b20gd2Via2l0c2NtcHkgaW1wb3J0IGxvY2FsLCBwcm9ncmFtLCBtb2NrcworCisKK2NsYXNzIFRl
c3RCcmFuY2godGVzdGluZy5QYXRoVGVzdENhc2UpOgorICAgIGJhc2VwYXRoID0gJ21vY2svcmVw
b3NpdG9yeScKKworICAgIGRlZiBzZXRVcChzZWxmKToKKyAgICAgICAgc3VwZXIoVGVzdEJyYW5j
aCwgc2VsZikuc2V0VXAoKQorICAgICAgICBvcy5ta2Rpcihvcy5wYXRoLmpvaW4oc2VsZi5wYXRo
LCAnLmdpdCcpKQorICAgICAgICBvcy5ta2Rpcihvcy5wYXRoLmpvaW4oc2VsZi5wYXRoLCAnLnN2
bicpKQorCisgICAgZGVmIHRlc3RfYmFzaWNfc3ZuKHNlbGYpOgorICAgICAgICB3aXRoIE91dHB1
dENhcHR1cmUoKSBhcyBjYXB0dXJlZCwgbW9ja3MubG9jYWwuR2l0KCksIG1vY2tzLmxvY2FsLlN2
bihzZWxmLnBhdGgpLCBNb2NrVGltZToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMSwg
cHJvZ3JhbS5tYWluKAorICAgICAgICAgICAgICAgIGFyZ3M9KCdicmFuY2gnLCAnLWknLCAnMTIz
NCcpLAorICAgICAgICAgICAgICAgIHBhdGg9c2VsZi5wYXRoLAorICAgICAgICAgICAgKSkKKyAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChjYXB0dXJlZC5zdGRlcnIuZ2V0dmFsdWUoKSwgIkNhbiBv
bmx5ICdicmFuY2gnIG9uIGEgbmF0aXZlIEdpdCByZXBvc2l0b3J5XG4iKQorCisgICAgZGVmIHRl
c3RfYmFzaWNfZ2l0KHNlbGYpOgorICAgICAgICB3aXRoIE91dHB1dENhcHR1cmUoKSBhcyBjYXB0
dXJlZCwgbW9ja3MubG9jYWwuR2l0KHNlbGYucGF0aCksIG1vY2tzLmxvY2FsLlN2bigpLCBNb2Nr
VGltZToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMCwgcHJvZ3JhbS5tYWluKAorICAg
ICAgICAgICAgICAgIGFyZ3M9KCdicmFuY2gnLCAnLWknLCAnMTIzNCcpLAorICAgICAgICAgICAg
ICAgIHBhdGg9c2VsZi5wYXRoLAorICAgICAgICAgICAgKSkKKyAgICAgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwobG9jYWwuR2l0KHNlbGYucGF0aCkuYnJhbmNoLCAnZW5nLzEyMzQnKQorICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKGNhcHR1cmVkLnJvb3QubG9nLmdldHZhbHVlKCksICJDcmVhdGlu
ZyB0aGUgbG9jYWwgZGV2ZWxvcG1lbnQgYnJhbmNoICdlbmcvMTIzNCcuLi5cbiIpCisgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoY2FwdHVyZWQuc3Rkb3V0LmdldHZhbHVlKCksICJDcmVhdGVkIHRo
ZSBsb2NhbCBkZXZlbG9wbWVudCBicmFuY2ggJ2VuZy8xMjM0JyFcbiIpCisKKyAgICBkZWYgdGVz
dF9wcm9tcHRfZ2l0KHNlbGYpOgorICAgICAgICB3aXRoIE1vY2tUZXJtaW5hbC5pbnB1dCgnZW5n
L2V4YW1wbGUnKSwgT3V0cHV0Q2FwdHVyZSgpIGFzIGNhcHR1cmVkLCBtb2Nrcy5sb2NhbC5HaXQo
c2VsZi5wYXRoKSwgbW9ja3MubG9jYWwuU3ZuKCksIE1vY2tUaW1lOgorICAgICAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbCgwLCBwcm9ncmFtLm1haW4oYXJncz0oJ2JyYW5jaCcsKSwgcGF0aD1zZWxm
LnBhdGgpKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsb2NhbC5HaXQoc2VsZi5wYXRo
KS5icmFuY2gsICdlbmcvZXhhbXBsZScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY2FwdHVy
ZWQucm9vdC5sb2cuZ2V0dmFsdWUoKSwgIkNyZWF0aW5nIHRoZSBsb2NhbCBkZXZlbG9wbWVudCBi
cmFuY2ggJ2VuZy9leGFtcGxlJy4uLlxuIikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjYXB0
dXJlZC5zdGRvdXQuZ2V0dmFsdWUoKSwgIkJyYW5jaCBuYW1lOiBcbkNyZWF0ZWQgdGhlIGxvY2Fs
IGRldmVsb3BtZW50IGJyYW5jaCAnZW5nL2V4YW1wbGUnIVxuIikKKworICAgIGRlZiB0ZXN0X2lu
dmFsaWRfYnJhbmNoKHNlbGYpOgorICAgICAgICB3aXRoIE91dHB1dENhcHR1cmUoKSBhcyBjYXB0
dXJlZCwgbW9ja3MubG9jYWwuR2l0KHNlbGYucGF0aCksIG1vY2tzLmxvY2FsLlN2bigpLCBNb2Nr
VGltZToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMSwgcHJvZ3JhbS5tYWluKAorICAg
ICAgICAgICAgICAgIGFyZ3M9KCdicmFuY2gnLCAnLWknLCAncmVqZWN0X3VuZGVyc2NvcmVzJyks
CisgICAgICAgICAgICAgICAgcGF0aD1zZWxmLnBhdGgsCisgICAgICAgICAgICApKQorICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKGNhcHR1cmVkLnN0ZGVyci5nZXR2YWx1ZSgpLCAiJ2VuZy9yZWpl
Y3RfdW5kZXJzY29yZXMnIGlzIGFuIGludmFsaWQgYnJhbmNoIG5hbWUsIGNhbm5vdCBjcmVhdGUg
aXRcbiIpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>436074</attachid>
            <date>2021-08-21 08:24:57 -0700</date>
            <delta_ts>2021-08-24 08:20:51 -0700</delta_ts>
            <desc>Part 3</desc>
            <filename>bug-229089-20210821082456.patch</filename>
            <type>text/plain</type>
            <size>13242</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxMzc0CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggN2VkMDQ0NTNjOWZjM2UzMmQzNmU4OWYxMjRlMTc1OTg4
YjU5M2QxMS4uMWM3NmUzNjljZTE4MGZlNzllMTQ2ZGYyODc2M2U4MWZjZDU3OTljOCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMx
IEBACisyMDIxLTA4LTIxICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KKwor
ICAgICAgICBbZ2l0LXdlYmtpdF0gQWRkIHB1bGwtcmVxdWVzdCBjb21tYW5kIChQYXJ0IDMpCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjkwODkKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgxOTA4NzUxPgorCisgICAgICAgIFJldmlld2VkIGJ5IERl
d2VpIFpodS4KKworICAgICAgICAqIFNjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3NldHVw
LnB5OiBCdW1wIHZlcnNpb24uCisgICAgICAgICogU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2Nt
cHkvd2Via2l0c2NtcHkvX19pbml0X18ucHk6IEJ1bXAgdmVyc2lvbiwgZXhwb3J0IHB1bGwtcmVx
dWVzdC4KKyAgICAgICAgKiBTY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21w
eS9wdWxsX3JlcXVlc3QucHk6CisgICAgICAgIChQdWxsUmVxdWVzdC5TdGF0ZSk6CisgICAgICAg
IChQdWxsUmVxdWVzdC5jcmVhdGVfYm9keSk6IENyZWF0ZSBwdWxsLXJlcXVlc3QgYm9keSBmcm9t
IGNvbW1pdHMgYW5kIGNvbW1lbnQuCisgICAgICAgIChQdWxsUmVxdWVzdC5wYXJzZV9ib2R5KTog
VHVybiBhIGJvZHkgZnJvbSBhIHB1bGwtcmVxdWVzdCBpbnRvIGEgY29tbWVudCBzdHJpbmcgYW5k
IHBhcnRpYWwgY29tbWl0cy4KKyAgICAgICAgKFB1bGxSZXF1ZXN0Ll9faW5pdF9fKToKKyAgICAg
ICAgKFB1bGxSZXF1ZXN0Ll9fcmVwcl9fKToKKyAgICAgICAgKiBTY3JpcHRzL2xpYnJhcmllcy93
ZWJraXRzY21weS93ZWJraXRzY21weS90ZXN0L3B1bGxfcmVxdWVzdF91bml0dGVzdC5weToKKyAg
ICAgICAgKFRlc3RQdWxsUmVxdWVzdCk6CisgICAgICAgIChUZXN0UHVsbFJlcXVlc3QudGVzdF9y
ZXByZXNlbnRhdGlvbik6CisgICAgICAgIChUZXN0UHVsbFJlcXVlc3QudGVzdF9jcmVhdGVfYm9k
eV9zaW5nbGUpOgorICAgICAgICAoVGVzdFB1bGxSZXF1ZXN0LnRlc3RfcGFyc2VfYm9keV9zaW5n
bGUpOgorICAgICAgICAoVGVzdFB1bGxSZXF1ZXN0LnRlc3RfY3JlYXRlX2JvZHlfbXVsdGlwbGUp
OgorICAgICAgICAoVGVzdFB1bGxSZXF1ZXN0LnRlc3RfcGFyc2VfYm9keV9tdWx0aXBsZSk6Cisg
ICAgICAgIChUZXN0UHVsbFJlcXVlc3QudGVzdF9jcmVhdGVfYm9keV9lbXB0eSk6CisgICAgICAg
IChUZXN0UHVsbFJlcXVlc3QudGVzdF9wYXJzZV9ib2R5X2VtcHR5KToKKyAgICAgICAgKFRlc3RQ
dWxsUmVxdWVzdC50ZXN0X2NyZWF0ZV9ib2R5X2NvbW1lbnQpOgorICAgICAgICAoVGVzdFB1bGxS
ZXF1ZXN0LnRlc3RfcGFyc2VfYm9keV9zaW5nbGUpOgorCiAyMDIxLTA4LTIxICBEYW5pZWwgS29s
ZXNhICA8ZGtvbGVzYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHTElCXSBEbyBub3QgYXNzdW1l
IGxvZyBzdWNjZXNzIGluIGFwcGx5LWJ1aWxkLXJldmlzaW9uLXRvLWZpbGVzCmRpZmYgLS1naXQg
YS9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS9zZXR1cC5weSBiL1Rvb2xzL1Nj
cmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3NldHVwLnB5CmluZGV4IGRhMWExZWRiMzNmZWU3
MmNjM2QyNzdlMTM3NDA1MGIxNWM5Zjc5ZmUuLmFjZjYwNDdlMGNkM2M4ODE0ZDBlODc3ZjY1NWNm
YzQwNjM5NTUzZDEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNj
bXB5L3NldHVwLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3Nl
dHVwLnB5CkBAIC0yOSw3ICsyOSw3IEBAIGRlZiByZWFkbWUoKToKIAogc2V0dXAoCiAgICAgbmFt
ZT0nd2Via2l0c2NtcHknLAotICAgIHZlcnNpb249JzEuMS42JywKKyAgICB2ZXJzaW9uPScxLjEu
NycsCiAgICAgZGVzY3JpcHRpb249J0xpYnJhcnkgZGVzaWduZWQgdG8gaW50ZXJhY3Qgd2l0aCBn
aXQgYW5kIHN2biByZXBvc2l0b3JpZXMuJywKICAgICBsb25nX2Rlc2NyaXB0aW9uPXJlYWRtZSgp
LAogICAgIGNsYXNzaWZpZXJzPVsKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVz
L3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L19faW5pdF9fLnB5IGIvVG9vbHMvU2NyaXB0cy9saWJy
YXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvX19pbml0X18ucHkKaW5kZXggYTI5ZmMzNTY1
ODA4NTkxMDY2OTMxYmIwNTJiN2EwNDBkODNlMWRhMC4uOWZiODRhZWU4MDAwY2I5ODk4MDc5NDcw
MzA3ZDc2YjI4M2Q4NzNjMSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Vi
a2l0c2NtcHkvd2Via2l0c2NtcHkvX19pbml0X18ucHkKKysrIGIvVG9vbHMvU2NyaXB0cy9saWJy
YXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvX19pbml0X18ucHkKQEAgLTQ2LDcgKzQ2LDcg
QEAgZXhjZXB0IEltcG9ydEVycm9yOgogICAgICAgICAiUGxlYXNlIGluc3RhbGwgd2Via2l0Y29y
ZXB5IHdpdGggYHBpcCBpbnN0YWxsIHdlYmtpdGNvcmVweSAtLWV4dHJhLWluZGV4LXVybCA8cGFj
a2FnZSBpbmRleCBVUkw+YCIKICAgICApCiAKLXZlcnNpb24gPSBWZXJzaW9uKDEsIDEsIDYpCit2
ZXJzaW9uID0gVmVyc2lvbigxLCAxLCA3KQogCiBBdXRvSW5zdGFsbC5yZWdpc3RlcihQYWNrYWdl
KCdmYXN0ZW5lcnMnLCBWZXJzaW9uKDAsIDE1LCAwKSkpCiBBdXRvSW5zdGFsbC5yZWdpc3RlcihQ
YWNrYWdlKCdtb25vdG9uaWMnLCBWZXJzaW9uKDEsIDUpKSkKQEAgLTU1LDYgKzU1LDcgQEAgQXV0
b0luc3RhbGwucmVnaXN0ZXIoUGFja2FnZSgneG1sdG9kaWN0JywgVmVyc2lvbigwLCAxMSwgMCkp
KQogCiBmcm9tIHdlYmtpdHNjbXB5LmNvbnRyaWJ1dG9yIGltcG9ydCBDb250cmlidXRvcgogZnJv
bSB3ZWJraXRzY21weS5jb21taXQgaW1wb3J0IENvbW1pdAorZnJvbSB3ZWJraXRzY21weS5wdWxs
X3JlcXVlc3QgaW1wb3J0IFB1bGxSZXF1ZXN0CiBmcm9tIHdlYmtpdHNjbXB5LnNjbV9iYXNlIGlt
cG9ydCBTY21CYXNlCiAKIGZyb20gd2Via2l0c2NtcHkgaW1wb3J0IGxvY2FsCmRpZmYgLS1naXQg
YS9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS9wdWxsX3Jl
cXVlc3QucHkgYi9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21w
eS9wdWxsX3JlcXVlc3QucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzMwN2NiMzAxMThiYjEyNmRhOWFjNmYwYWM2
N2ZkNGYwZTI1NTI0YgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVz
L3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L3B1bGxfcmVxdWVzdC5weQpAQCAtMCwwICsxLDc3IEBA
CisjIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisj
CisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisjIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyMgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOworIyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyMgQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK2ltcG9ydCByZQorCitmcm9t
IC5jb21taXQgaW1wb3J0IENvbW1pdAorCisKK2NsYXNzIFB1bGxSZXF1ZXN0KG9iamVjdCk6Cisg
ICAgQ09NTUlUX0JPRFlfUkUgPSByZS5jb21waWxlKHInXEEjIyMjICg/UDxoYXNoPlswLTlhLWZd
KylcbmBgYFxuKD9QPG1lc3NhZ2U+LispXG5gYGBcbj9cWicsIGZsYWdzPXJlLkRPVEFMTCkKKyAg
ICBESVZJREVSX0xFTiA9IDcwCisKKyAgICBjbGFzcyBTdGF0ZShvYmplY3QpOgorICAgICAgICBP
UEVORUQgPSAnb3BlbmVkJworICAgICAgICBDTE9TRUQgPSAnY2xvc2VkJworCisgICAgQGNsYXNz
bWV0aG9kCisgICAgZGVmIGNyZWF0ZV9ib2R5KGNscywgYm9keSwgY29tbWl0cyk6CisgICAgICAg
IGJvZHkgPSBib2R5IG9yICcnCisgICAgICAgIGlmIG5vdCBjb21taXRzOgorICAgICAgICAgICAg
cmV0dXJuIGJvZHkKKyAgICAgICAgaWYgYm9keToKKyAgICAgICAgICAgIGJvZHkgPSAne31cblxu
e31cbicuZm9ybWF0KGJvZHkucnN0cmlwKCksICctJyAqIGNscy5ESVZJREVSX0xFTikKKyAgICAg
ICAgcmV0dXJuIGJvZHkgKyAnXG57fVxuJy5mb3JtYXQoJy0nICogY2xzLkRJVklERVJfTEVOKS5q
b2luKFsKKyAgICAgICAgICAgICcjIyMjIHt9XG5gYGBcbnt9XG5gYGAnLmZvcm1hdChjb21taXQu
aGFzaCwgY29tbWl0Lm1lc3NhZ2UucnN0cmlwKCkgaWYgY29tbWl0Lm1lc3NhZ2UgZWxzZSAnPz8/
JykgZm9yIGNvbW1pdCBpbiBjb21taXRzCisgICAgICAgIF0pCisKKyAgICBAY2xhc3NtZXRob2QK
KyAgICBkZWYgcGFyc2VfYm9keShjbHMsIGJvZHkpOgorICAgICAgICBpZiBub3QgYm9keToKKyAg
ICAgICAgICAgIHJldHVybiBOb25lLCBbXQorICAgICAgICBwYXJ0cyA9IFtwYXJ0LnJzdHJpcCgp
LmxzdHJpcCgpIGZvciBwYXJ0IGluIGJvZHkuc3BsaXQoJy0nICogY2xzLkRJVklERVJfTEVOKV0K
KyAgICAgICAgYm9keSA9ICcnCisgICAgICAgIGNvbW1pdHMgPSBbXQorCisgICAgICAgIGZvciBw
YXJ0IGluIHBhcnRzOgorICAgICAgICAgICAgbWF0Y2ggPSBjbHMuQ09NTUlUX0JPRFlfUkUubWF0
Y2gocGFydCkKKyAgICAgICAgICAgIGlmIG1hdGNoOgorICAgICAgICAgICAgICAgIGNvbW1pdHMu
YXBwZW5kKENvbW1pdCgKKyAgICAgICAgICAgICAgICAgICAgaGFzaD1tYXRjaC5ncm91cCgnaGFz
aCcpLAorICAgICAgICAgICAgICAgICAgICBtZXNzYWdlPW1hdGNoLmdyb3VwKCdtZXNzYWdlJykg
aWYgbWF0Y2guZ3JvdXAoJ21lc3NhZ2UnKSAhPSAnPz8/JyBlbHNlIE5vbmUsCisgICAgICAgICAg
ICAgICAgKSkKKyAgICAgICAgICAgIGVsaWYgYm9keToKKyAgICAgICAgICAgICAgICBib2R5ID0g
J3t9XG57fVxue31cbicuZm9ybWF0KGJvZHkucnN0cmlwKCksICctJyAqIGNscy5ESVZJREVSX0xF
TiwgcGFydC5yc3RyaXAoKS5sc3RyaXAoKSkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAg
ICAgICAgYm9keSA9IHBhcnQucnN0cmlwKCkubHN0cmlwKCkKKyAgICAgICAgcmV0dXJuIGJvZHkg
b3IgTm9uZSwgY29tbWl0cworCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIG51bWJlciwgdGl0bGU9
Tm9uZSwgYm9keT1Ob25lLCBhdXRob3I9Tm9uZSwgaGVhZD1Ob25lLCBiYXNlPU5vbmUpOgorICAg
ICAgICBzZWxmLm51bWJlciA9IG51bWJlcgorICAgICAgICBzZWxmLnRpdGxlID0gdGl0bGUKKyAg
ICAgICAgc2VsZi5ib2R5LCBzZWxmLmNvbW1pdHMgPSBzZWxmLnBhcnNlX2JvZHkoYm9keSkKKyAg
ICAgICAgc2VsZi5hdXRob3IgPSBhdXRob3IKKyAgICAgICAgc2VsZi5oZWFkID0gaGVhZAorICAg
ICAgICBzZWxmLmJhc2UgPSBiYXNlCisKKyAgICBkZWYgX19yZXByX18oc2VsZik6CisgICAgICAg
IHJldHVybiAnUFIge317fScuZm9ybWF0KHNlbGYubnVtYmVyLCAnIHwge30nLmZvcm1hdChzZWxm
LnRpdGxlKSBpZiBzZWxmLnRpdGxlIGVsc2UgJycpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRz
L2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS90ZXN0L3B1bGxfcmVxdWVzdF91bml0
dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5
L3Rlc3QvcHVsbF9yZXF1ZXN0X3VuaXR0ZXN0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJmZGJlNzQ1OTk0ZDRm
ODM0ZGQ4ZTBkYTlkOWZkODlkNzUzMGZhZTAKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9TY3Jp
cHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS90ZXN0L3B1bGxfcmVxdWVzdF91
bml0dGVzdC5weQpAQCAtMCwwICsxLDE1MiBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisj
IGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQor
IyBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZCisjIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisjIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyMgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OCisjIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
CisjIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorCitpbXBvcnQgdW5pdHRlc3QKKworZnJvbSB3ZWJraXRzY21weSBpbXBvcnQgQ29t
bWl0LCBQdWxsUmVxdWVzdAorCisKK2NsYXNzIFRlc3RQdWxsUmVxdWVzdCh1bml0dGVzdC5UZXN0
Q2FzZSk6CisgICAgZGVmIHRlc3RfcmVwcmVzZW50YXRpb24oc2VsZik6CisgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoJ1BSIDEyMyB8IFtzY29waW5nXSBCdWcgdG8gZml4Jywgc3RyKFB1bGxSZXF1
ZXN0KDEyMywgdGl0bGU9J1tzY29waW5nXSBCdWcgdG8gZml4JykpKQorICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKCdQUiAxMjM0Jywgc3RyKFB1bGxSZXF1ZXN0KDEyMzQpKSkKKworICAgIGRlZiB0
ZXN0X2NyZWF0ZV9ib2R5X3NpbmdsZShzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgK
KyAgICAgICAgICAgIFB1bGxSZXF1ZXN0LmNyZWF0ZV9ib2R5KE5vbmUsIFtDb21taXQoCisgICAg
ICAgICAgICAgICAgaGFzaD0nMTFhYTc2ZjlmYzM4MGU5ZmUwNjE1NzE1NGYzMmIzMDRlOGRjNDc0
OScsCisgICAgICAgICAgICAgICAgbWVzc2FnZT0nW3Njb3BpbmddIEJ1ZyB0byBmaXhcblxuUmV2
aWV3ZWQgYnkgVGltIENvbnRyaWJ1dG9yLlxuJywKKyAgICAgICAgICAgICldKSwgJycnIyMjIyAx
MWFhNzZmOWZjMzgwZTlmZTA2MTU3MTU0ZjMyYjMwNGU4ZGM0NzQ5CitgYGAKK1tzY29waW5nXSBC
dWcgdG8gZml4CisKK1Jldmlld2VkIGJ5IFRpbSBDb250cmlidXRvci4KK2BgYCcnJywKKyAgICAg
ICAgKQorCisgICAgZGVmIHRlc3RfcGFyc2VfYm9keV9zaW5nbGUoc2VsZik6CisgICAgICAgIGJv
ZHksIGNvbW1pdHMgPSBQdWxsUmVxdWVzdC5wYXJzZV9ib2R5KCcnJyMjIyMgMTFhYTc2ZjlmYzM4
MGU5ZmUwNjE1NzE1NGYzMmIzMDRlOGRjNDc0OQorYGBgCitbc2NvcGluZ10gQnVnIHRvIGZpeAor
CitSZXZpZXdlZCBieSBUaW0gQ29udHJpYnV0b3IuCitgYGAnJycpCisgICAgICAgIHNlbGYuYXNz
ZXJ0SXNOb25lKGJvZHkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGNvbW1pdHMpLCAx
KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1pdHNbMF0uaGFzaCwgJzExYWE3NmY5ZmMz
ODBlOWZlMDYxNTcxNTRmMzJiMzA0ZThkYzQ3NDknKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KGNvbW1pdHNbMF0ubWVzc2FnZSwgJ1tzY29waW5nXSBCdWcgdG8gZml4XG5cblJldmlld2VkIGJ5
IFRpbSBDb250cmlidXRvci4nKQorCisgICAgZGVmIHRlc3RfY3JlYXRlX2JvZHlfbXVsdGlwbGUo
c2VsZik6CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCisgICAgICAgICAgICBQdWxsUmVxdWVz
dC5jcmVhdGVfYm9keShOb25lLCBbQ29tbWl0KAorICAgICAgICAgICAgICAgIGhhc2g9JzExYWE3
NmY5ZmMzODBlOWZlMDYxNTcxNTRmMzJiMzA0ZThkYzQ3NDknLAorICAgICAgICAgICAgICAgIG1l
c3NhZ2U9J1tzY29waW5nXSBCdWcgdG8gZml4IChQYXJ0IDIpXG5cblJldmlld2VkIGJ5IFRpbSBD
b250cmlidXRvci5cbicsCisgICAgICAgICAgICApLCBDb21taXQoCisgICAgICAgICAgICAgICAg
aGFzaD0nNTNlYTIzMGZjZWRiY2UzMjdlYjFjNDVhNmFiNjVhODhkZTg2NDUwNScsCisgICAgICAg
ICAgICAgICAgbWVzc2FnZT0nW3Njb3BpbmddIEJ1ZyB0byBmaXggKFBhcnQgMSlcblxuUmV2aWV3
ZWQgYnkgVGltIENvbnRyaWJ1dG9yLlxuJywKKyAgICAgICAgICAgICldKSwgJycnIyMjIyAxMWFh
NzZmOWZjMzgwZTlmZTA2MTU3MTU0ZjMyYjMwNGU4ZGM0NzQ5CitgYGAKK1tzY29waW5nXSBCdWcg
dG8gZml4IChQYXJ0IDIpCisKK1Jldmlld2VkIGJ5IFRpbSBDb250cmlidXRvci4KK2BgYAorLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQorIyMjIyA1M2VhMjMwZmNlZGJjZTMyN2ViMWM0NWE2YWI2NWE4OGRlODY0NTA1
CitgYGAKK1tzY29waW5nXSBCdWcgdG8gZml4IChQYXJ0IDEpCisKK1Jldmlld2VkIGJ5IFRpbSBD
b250cmlidXRvci4KK2BgYCcnJywKKyAgICAgICAgKQorCisgICAgZGVmIHRlc3RfcGFyc2VfYm9k
eV9tdWx0aXBsZShzZWxmKToKKyAgICAgICAgYm9keSwgY29tbWl0cyA9IFB1bGxSZXF1ZXN0LnBh
cnNlX2JvZHkoJycnIyMjIyAxMWFhNzZmOWZjMzgwZTlmZTA2MTU3MTU0ZjMyYjMwNGU4ZGM0NzQ5
CitgYGAKK1tzY29waW5nXSBCdWcgdG8gZml4IChQYXJ0IDIpCisKK1Jldmlld2VkIGJ5IFRpbSBD
b250cmlidXRvci4KK2BgYAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyMjIyA1M2VhMjMwZmNlZGJjZTMyN2Vi
MWM0NWE2YWI2NWE4OGRlODY0NTA1CitgYGAKK1tzY29waW5nXSBCdWcgdG8gZml4IChQYXJ0IDEp
CisKK1Jldmlld2VkIGJ5IFRpbSBDb250cmlidXRvci4KK2BgYCcnJykKKyAgICAgICAgc2VsZi5h
c3NlcnRJc05vbmUoYm9keSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oY29tbWl0cyks
IDIpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21taXRzWzBdLmhhc2gsICcxMWFhNzZm
OWZjMzgwZTlmZTA2MTU3MTU0ZjMyYjMwNGU4ZGM0NzQ5JykKKyAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChjb21taXRzWzBdLm1lc3NhZ2UsICdbc2NvcGluZ10gQnVnIHRvIGZpeCAoUGFydCAyKVxu
XG5SZXZpZXdlZCBieSBUaW0gQ29udHJpYnV0b3IuJykKKworICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKGNvbW1pdHNbMV0uaGFzaCwgJzUzZWEyMzBmY2VkYmNlMzI3ZWIxYzQ1YTZhYjY1YTg4ZGU4
NjQ1MDUnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1pdHNbMV0ubWVzc2FnZSwgJ1tz
Y29waW5nXSBCdWcgdG8gZml4IChQYXJ0IDEpXG5cblJldmlld2VkIGJ5IFRpbSBDb250cmlidXRv
ci4nKQorCisgICAgZGVmIHRlc3RfY3JlYXRlX2JvZHlfZW1wdHkoc2VsZik6CisgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoCisgICAgICAgICAgICBQdWxsUmVxdWVzdC5jcmVhdGVfYm9keShOb25l
LCBbQ29tbWl0KGhhc2g9JzExYWE3NmY5ZmMzODBlOWZlMDYxNTcxNTRmMzJiMzA0ZThkYzQ3NDkn
KV0pLAorICAgICAgICAgICAgJycnIyMjIyAxMWFhNzZmOWZjMzgwZTlmZTA2MTU3MTU0ZjMyYjMw
NGU4ZGM0NzQ5CitgYGAKKz8/PworYGBgJycnLAorICAgICAgICApCisKKyAgICBkZWYgdGVzdF9w
YXJzZV9ib2R5X2VtcHR5KHNlbGYpOgorICAgICAgICBib2R5LCBjb21taXRzID0gUHVsbFJlcXVl
c3QucGFyc2VfYm9keSgnJycjIyMjIDExYWE3NmY5ZmMzODBlOWZlMDYxNTcxNTRmMzJiMzA0ZThk
YzQ3NDkKK2BgYAorPz8/CitgYGAnJycpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNOb25lKGJvZHkp
CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGNvbW1pdHMpLCAxKQorICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKGNvbW1pdHNbMF0uaGFzaCwgJzExYWE3NmY5ZmMzODBlOWZlMDYxNTcxNTRm
MzJiMzA0ZThkYzQ3NDknKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1pdHNbMF0ubWVz
c2FnZSwgTm9uZSkKKworICAgIGRlZiB0ZXN0X2NyZWF0ZV9ib2R5X2NvbW1lbnQoc2VsZik6Cisg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCisgICAgICAgICAgICBQdWxsUmVxdWVzdC5jcmVhdGVf
Ym9keSgnQ29tbWVudCBib2R5JywgW0NvbW1pdCgKKyAgICAgICAgICAgICAgICBoYXNoPScxMWFh
NzZmOWZjMzgwZTlmZTA2MTU3MTU0ZjMyYjMwNGU4ZGM0NzQ5JywKKyAgICAgICAgICAgICAgICBt
ZXNzYWdlPSdbc2NvcGluZ10gQnVnIHRvIGZpeFxuXG5SZXZpZXdlZCBieSBUaW0gQ29udHJpYnV0
b3IuXG4nLAorICAgICAgICAgICAgKV0pLCAnJydDb21tZW50IGJvZHkKKworLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQorIyMjIyAxMWFhNzZmOWZjMzgwZTlmZTA2MTU3MTU0ZjMyYjMwNGU4ZGM0NzQ5CitgYGAKK1tz
Y29waW5nXSBCdWcgdG8gZml4CisKK1Jldmlld2VkIGJ5IFRpbSBDb250cmlidXRvci4KK2BgYCcn
JywKKyAgICAgICAgKQorCisgICAgZGVmIHRlc3RfcGFyc2VfYm9keV9zaW5nbGUoc2VsZik6Cisg
ICAgICAgIGJvZHksIGNvbW1pdHMgPSBQdWxsUmVxdWVzdC5wYXJzZV9ib2R5KCcnJ0NvbW1lbnQg
Ym9keQorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIyMjIDExYWE3NmY5ZmMzODBlOWZlMDYxNTcxNTRmMzJi
MzA0ZThkYzQ3NDkKK2BgYAorW3Njb3BpbmddIEJ1ZyB0byBmaXgKKworUmV2aWV3ZWQgYnkgVGlt
IENvbnRyaWJ1dG9yLgorYGBgJycnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGJvZHksICdD
b21tZW50IGJvZHknKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihjb21taXRzKSwgMSkK
KyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21taXRzWzBdLmhhc2gsICcxMWFhNzZmOWZjMzgw
ZTlmZTA2MTU3MTU0ZjMyYjMwNGU4ZGM0NzQ5JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChj
b21taXRzWzBdLm1lc3NhZ2UsICdbc2NvcGluZ10gQnVnIHRvIGZpeFxuXG5SZXZpZXdlZCBieSBU
aW0gQ29udHJpYnV0b3IuJykK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>436116</attachid>
            <date>2021-08-22 07:51:07 -0700</date>
            <delta_ts>2021-08-24 08:20:53 -0700</delta_ts>
            <desc>Part 4</desc>
            <filename>bug-229089-20210822075104.patch</filename>
            <type>text/plain</type>
            <size>2824</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxMzk3CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNzZhMzA2ZWFjZjQ0YjU2NWU0YzAzZjYwNGEyMzE2YWM5
ODRjODU5MC4uZTk5NzJmODBjNWM0NzVkMjUzYTg5ODY2YWNkYTMzMDlmNTlhMmRiYSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2
IEBACisyMDIxLTA4LTIyICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KKwor
ICAgICAgICBbZ2l0LXdlYmtpdF0gQWRkIHB1bGwtcmVxdWVzdCBjb21tYW5kIChQYXJ0IDQpCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjkwODkKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgxOTA4NzUxPgorCisgICAgICAgIFJldmlld2VkIGJ5IERl
d2VpIFpodS4KKworICAgICAgICAqIFNjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3NldHVw
LnB5OiBCdW1wIHZlcnNpb24uCisgICAgICAgICogU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2Nt
cHkvd2Via2l0c2NtcHkvX19pbml0X18ucHk6IERpdHRvLgorICAgICAgICAqIFNjcmlwdHMvbGli
cmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L2xvY2FsL2dpdC5weToKKyAgICAgICAgKEdp
dCk6IE1hdGNoIEJpdEJ1Y2tldCBzc2ggdXJscyB3aGVuIGNvbnN0cnVjdGluZyByZW1vdGVzLgor
CiAyMDIxLTA4LTIxICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KIAogICAg
ICAgICBbZ2l0LXdlYmtpdF0gQWRkIHB1bGwtcmVxdWVzdCBjb21tYW5kIChQYXJ0IDMpCmRpZmYg
LS1naXQgYS9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS9zZXR1cC5weSBiL1Rv
b2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3NldHVwLnB5CmluZGV4IGFjZjYwNDdl
MGNkM2M4ODE0ZDBlODc3ZjY1NWNmYzQwNjM5NTUzZDEuLmQ3MDI4ZDYyZDA2MGI4ZGM2NDNmM2I2
ODgwZDViY2RiMDc4ODZjZjcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dl
YmtpdHNjbXB5L3NldHVwLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNj
bXB5L3NldHVwLnB5CkBAIC0yOSw3ICsyOSw3IEBAIGRlZiByZWFkbWUoKToKIAogc2V0dXAoCiAg
ICAgbmFtZT0nd2Via2l0c2NtcHknLAotICAgIHZlcnNpb249JzEuMS43JywKKyAgICB2ZXJzaW9u
PScxLjEuOCcsCiAgICAgZGVzY3JpcHRpb249J0xpYnJhcnkgZGVzaWduZWQgdG8gaW50ZXJhY3Qg
d2l0aCBnaXQgYW5kIHN2biByZXBvc2l0b3JpZXMuJywKICAgICBsb25nX2Rlc2NyaXB0aW9uPXJl
YWRtZSgpLAogICAgIGNsYXNzaWZpZXJzPVsKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvbGli
cmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L19faW5pdF9fLnB5IGIvVG9vbHMvU2NyaXB0
cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvX19pbml0X18ucHkKaW5kZXggOWZi
ODRhZWU4MDAwY2I5ODk4MDc5NDcwMzA3ZDc2YjI4M2Q4NzNjMS4uM2QwNDAxYmJhNjY3NzVjNWRk
Yjk2NTA2ODU1NjQ1NTM5MDI5M2VjMyAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy9saWJyYXJp
ZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvX19pbml0X18ucHkKKysrIGIvVG9vbHMvU2NyaXB0
cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvX19pbml0X18ucHkKQEAgLTQ2LDcg
KzQ2LDcgQEAgZXhjZXB0IEltcG9ydEVycm9yOgogICAgICAgICAiUGxlYXNlIGluc3RhbGwgd2Vi
a2l0Y29yZXB5IHdpdGggYHBpcCBpbnN0YWxsIHdlYmtpdGNvcmVweSAtLWV4dHJhLWluZGV4LXVy
bCA8cGFja2FnZSBpbmRleCBVUkw+YCIKICAgICApCiAKLXZlcnNpb24gPSBWZXJzaW9uKDEsIDEs
IDcpCit2ZXJzaW9uID0gVmVyc2lvbigxLCAxLCA4KQogCiBBdXRvSW5zdGFsbC5yZWdpc3RlcihQ
YWNrYWdlKCdmYXN0ZW5lcnMnLCBWZXJzaW9uKDAsIDE1LCAwKSkpCiBBdXRvSW5zdGFsbC5yZWdp
c3RlcihQYWNrYWdlKCdtb25vdG9uaWMnLCBWZXJzaW9uKDEsIDUpKSkKZGlmZiAtLWdpdCBhL1Rv
b2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L2xvY2FsL2dpdC5w
eSBiL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L2xvY2Fs
L2dpdC5weQppbmRleCBkMmEyZDg0NzA2MzYxNmNjZjllNGI3YmZmMTI2ZDk4NWJjZGQzYjBmLi4y
NTdhOTk2YTQ0MDZlMWFjYzg1ZGQ1NjEwY2ZiMDY0YzZmNjhmNWU1IDEwMDY0NAotLS0gYS9Ub29s
cy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS9sb2NhbC9naXQucHkK
KysrIGIvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvbG9j
YWwvZ2l0LnB5CkBAIC0yNTQsNyArMjU0LDcgQEAgY2xhc3MgR2l0KFNjbSk6CiAKIAogICAgIEdJ
VF9DT01NSVQgPSByZS5jb21waWxlKHInY29tbWl0ICg/UDxoYXNoPlswLTlhLWZdKyknKQotICAg
IFNTSF9SRU1PVEUgPSByZS5jb21waWxlKCcoc3NoOi8vKT9naXRAKD9QPGhvc3Q+LispOig/UDxw
YXRoPi4rKS5naXQnKQorICAgIFNTSF9SRU1PVEUgPSByZS5jb21waWxlKCcoc3NoOi8vKT9naXRA
KD9QPGhvc3Q+W146L10rKVs6L10oP1A8cGF0aD4uKykuZ2l0JykKICAgICBIVFRQX1JFTU9URSA9
IHJlLmNvbXBpbGUoJyg/UDxwcm90b2NvbD5odHRwcz8pOi8vKD9QPGhvc3Q+LispLyg/UDxwYXRo
Pi4rKS5naXQnKQogCiAgICAgQGNsYXNzbWV0aG9kCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>436122</attachid>
            <date>2021-08-22 12:12:14 -0700</date>
            <delta_ts>2021-08-24 08:20:54 -0700</delta_ts>
            <desc>Part 5</desc>
            <filename>bug-229089-20210822121213.patch</filename>
            <type>text/plain</type>
            <size>9080</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxMzk5CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZTk5NzJmODBjNWM0NzVkMjUzYTg5ODY2YWNkYTMzMDlm
NTlhMmRiYS4uZTU1MDQxM2I3MWI3NjQ3ODliNTE5MzYwZTBiN2ZlZGU3Yjg3MjE1OSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIy
IEBACisyMDIxLTA4LTIyICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KKwor
ICAgICAgICBbZ2l0LXdlYmtpdF0gQWRkIHB1bGwtcmVxdWVzdCBjb21tYW5kIChQYXJ0IDUpCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjkwODkKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgxOTA4NzUxPgorCisgICAgICAgIFJldmlld2VkIGJ5IERl
d2VpIFpodS4KKworICAgICAgICAqIFNjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3NldHVw
LnB5OiBCdW1wIHZlcnNpb24uCisgICAgICAgICogU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2Nt
cHkvd2Via2l0c2NtcHkvX19pbml0X18ucHk6IERpdHRvLgorICAgICAgICAqIFNjcmlwdHMvbGli
cmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L2xvY2FsL2dpdC5weToKKyAgICAgICAgKEdp
dC5tb2RpZmllZCk6IFJldHVybiBhIGxpc3Qgb2YgbW9kaWZpZWQgZmlsZXMgaW4gdGhlIGN1cnJl
bnQgY2hlY2tvdXQuCisgICAgICAgICogU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Vi
a2l0c2NtcHkvbW9ja3MvbG9jYWwvZ2l0LnB5OgorICAgICAgICAoR2l0Ll9faW5pdF9fKTogQWRk
ICdnaXQgZGlmZicgbW9jayBjb21tYW5kcy4KKyAgICAgICAgKiBTY3JpcHRzL2xpYnJhcmllcy93
ZWJraXRzY21weS93ZWJraXRzY21weS90ZXN0L2dpdF91bml0dGVzdC5weToKKyAgICAgICAgKFRl
c3RHaXQudGVzdF9tb2RpZmllZCk6CisgICAgICAgIChUZXN0R2l0LnRlc3RfbW9kaWZpZWRfbm9f
c3RhZ2VkKToKKyAgICAgICAgKFRlc3RHaXQudGVzdF9tb2RpZmllZF9zdGFnZWQpOgorCiAyMDIx
LTA4LTIyICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KIAogICAgICAgICBb
Z2l0LXdlYmtpdF0gQWRkIHB1bGwtcmVxdWVzdCBjb21tYW5kIChQYXJ0IDQpCmRpZmYgLS1naXQg
YS9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS9zZXR1cC5weSBiL1Rvb2xzL1Nj
cmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3NldHVwLnB5CmluZGV4IGQ3MDI4ZDYyZDA2MGI4
ZGM2NDNmM2I2ODgwZDViY2RiMDc4ODZjZjcuLjdmOTYzOTFhZTM3OTQ2ZmJmNGUxNDhhMTQ2ZDk3
N2U3MzAxNzllOGIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNj
bXB5L3NldHVwLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3Nl
dHVwLnB5CkBAIC0yOSw3ICsyOSw3IEBAIGRlZiByZWFkbWUoKToKIAogc2V0dXAoCiAgICAgbmFt
ZT0nd2Via2l0c2NtcHknLAotICAgIHZlcnNpb249JzEuMS44JywKKyAgICB2ZXJzaW9uPScxLjEu
OScsCiAgICAgZGVzY3JpcHRpb249J0xpYnJhcnkgZGVzaWduZWQgdG8gaW50ZXJhY3Qgd2l0aCBn
aXQgYW5kIHN2biByZXBvc2l0b3JpZXMuJywKICAgICBsb25nX2Rlc2NyaXB0aW9uPXJlYWRtZSgp
LAogICAgIGNsYXNzaWZpZXJzPVsKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVz
L3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L19faW5pdF9fLnB5IGIvVG9vbHMvU2NyaXB0cy9saWJy
YXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvX19pbml0X18ucHkKaW5kZXggM2QwNDAxYmJh
NjY3NzVjNWRkYjk2NTA2ODU1NjQ1NTM5MDI5M2VjMy4uM2M3NDM5NjE0ZDI1N2VhOWExZWIzYTA5
NDE1YTIwMTVkMWJiYTVmZSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Vi
a2l0c2NtcHkvd2Via2l0c2NtcHkvX19pbml0X18ucHkKKysrIGIvVG9vbHMvU2NyaXB0cy9saWJy
YXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvX19pbml0X18ucHkKQEAgLTQ2LDcgKzQ2LDcg
QEAgZXhjZXB0IEltcG9ydEVycm9yOgogICAgICAgICAiUGxlYXNlIGluc3RhbGwgd2Via2l0Y29y
ZXB5IHdpdGggYHBpcCBpbnN0YWxsIHdlYmtpdGNvcmVweSAtLWV4dHJhLWluZGV4LXVybCA8cGFj
a2FnZSBpbmRleCBVUkw+YCIKICAgICApCiAKLXZlcnNpb24gPSBWZXJzaW9uKDEsIDEsIDgpCit2
ZXJzaW9uID0gVmVyc2lvbigxLCAxLCA5KQogCiBBdXRvSW5zdGFsbC5yZWdpc3RlcihQYWNrYWdl
KCdmYXN0ZW5lcnMnLCBWZXJzaW9uKDAsIDE1LCAwKSkpCiBBdXRvSW5zdGFsbC5yZWdpc3RlcihQ
YWNrYWdlKCdtb25vdG9uaWMnLCBWZXJzaW9uKDEsIDUpKSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Nj
cmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L2xvY2FsL2dpdC5weSBiL1Rv
b2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L2xvY2FsL2dpdC5w
eQppbmRleCAyNTdhOTk2YTQ0MDZlMWFjYzg1ZGQ1NjEwY2ZiMDY0YzZmNjhmNWU1Li5lYzRjOWI2
N2Y1MDQ4YWVjNDdmMTZlYzE1OWY2YzE4NDNjNjhmZjZhIDEwMDY0NAotLS0gYS9Ub29scy9TY3Jp
cHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS9sb2NhbC9naXQucHkKKysrIGIv
VG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvbG9jYWwvZ2l0
LnB5CkBAIC03ODQsMyArNzg0LDMyIEBAIGNsYXNzIEdpdChTY20pOgogICAgICAgICByZXR1cm4g
cnVuKFsKICAgICAgICAgICAgIHNlbGYuZXhlY3V0YWJsZSgpLCAncmVzZXQnLCAnSEVBRCcsICct
LWhhcmQnLAogICAgICAgICBdLCBjd2Q9c2VsZi5yb290X3BhdGgpLnJldHVybmNvZGUKKworICAg
IGRlZiBtb2RpZmllZChzZWxmLCBzdGFnZWQ9Tm9uZSk6CisgICAgICAgIGlmIHN0YWdlZCBpbiBb
VHJ1ZSwgRmFsc2VdOgorICAgICAgICAgICAgY29tbWFuZCA9IHJ1bigKKyAgICAgICAgICAgICAg
ICBbc2VsZi5leGVjdXRhYmxlKCksICdkaWZmJywgJy0tbmFtZS1vbmx5J10gKyAoWyctLXN0YWdl
ZCddIGlmIHN0YWdlZCBlbHNlIFtdKSwKKyAgICAgICAgICAgICAgICBjYXB0dXJlX291dHB1dD1U
cnVlLCBlbmNvZGluZz0ndXRmLTgnLCBjd2Q9c2VsZi5yb290X3BhdGgsCisgICAgICAgICAgICAp
CisgICAgICAgICAgICBpZiBjb21tYW5kLnJldHVybmNvZGU6CisgICAgICAgICAgICAgICAgcmV0
dXJuIFtdCisgICAgICAgICAgICByZXR1cm4gY29tbWFuZC5zdGRvdXQuc3BsaXRsaW5lcygpCisK
KyAgICAgICAgIyBXaGVuIHRoZSB1c2VyIGhhc24ndCBzcGVjaWZpZWQgd2hhdCB0aGV5J3JlIGxv
b2tpbmcgZm9yLCB3ZSBuZWVkIHRvIG1ha2Ugc29tZSBhc3N1bXB0aW9ucy4KKyAgICAgICAgIyBJ
ZiBhbGwgc3RhZ2VkIGZpbGVzIGFyZSBhZGRlZCwgdGhlIHVzZXIgcHJvYmFibHkgd2FudHMgdG8g
aW5jbHVkZSBub24tc3RhZ2VkIGZpbGVzIHRvbworICAgICAgICBjb21tYW5kID0gcnVuKAorICAg
ICAgICAgICAgW3NlbGYuZXhlY3V0YWJsZSgpLCAnZGlmZicsICctLW5hbWUtc3RhdHVzJywgJy0t
c3RhZ2VkJ10sCisgICAgICAgICAgICBjYXB0dXJlX291dHB1dD1UcnVlLCBlbmNvZGluZz0ndXRm
LTgnLCBjd2Q9c2VsZi5yb290X3BhdGgsCisgICAgICAgICkKKyAgICAgICAgaWYgY29tbWFuZC5y
ZXR1cm5jb2RlOgorICAgICAgICAgICAgcmV0dXJuIFtdCisgICAgICAgIGFkZGVkID0gc2V0KCkK
KyAgICAgICAgZm9yIGxpbmUgaW4gY29tbWFuZC5zdGRvdXQuc3BsaXRsaW5lcygpOgorICAgICAg
ICAgICAgc3RhdGUsIGZpbGUgPSBsaW5lLnNwbGl0KE5vbmUsIDEpCisgICAgICAgICAgICBpZiBz
dGF0ZSA9PSAnQSc6CisgICAgICAgICAgICAgICAgYWRkZWQuYWRkKGZpbGUpCisKKyAgICAgICAg
c3RhZ2VkID0gc2VsZi5tb2RpZmllZChzdGFnZWQ9VHJ1ZSkKKyAgICAgICAgaWYgc2V0KHN0YWdl
ZCkgLSBhZGRlZDoKKyAgICAgICAgICAgIHJldHVybiBzdGFnZWQKKyAgICAgICAgcmV0dXJuIHN0
YWdlZCArIHNlbGYubW9kaWZpZWQoc3RhZ2VkPUZhbHNlKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2Ny
aXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvbW9ja3MvbG9jYWwvZ2l0LnB5
IGIvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvbW9ja3Mv
bG9jYWwvZ2l0LnB5CmluZGV4IGFhNTdiYjkzZGU4YzcyMzNkNjFmMzYwZmIwN2MwMGZhZTE3NTI2
ZGEuLmExMTk4NWY0ZTFhM2E1NjIzMmY0ZjI0ZDA2YmMxYTc2YzQ2OThlYWYgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L21vY2tzL2xv
Y2FsL2dpdC5weQorKysgYi9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJr
aXRzY21weS9tb2Nrcy9sb2NhbC9naXQucHkKQEAgLTc1LDYgKzc1LDkgQEAgY2xhc3MgR2l0KG1v
Y2tzLlN1YnByb2Nlc3MpOgogICAgICAgICBzZWxmLnJlbW90ZXMgPSB7J29yaWdpbi97fScuZm9y
bWF0KGJyYW5jaCk6IGNvbW1pdHNbLTFdIGZvciBicmFuY2gsIGNvbW1pdHMgaW4gc2VsZi5jb21t
aXRzLml0ZW1zKCl9CiAgICAgICAgIHNlbGYudGFncyA9IHt9CiAKKyAgICAgICAgc2VsZi5zdGFn
ZWQgPSB7fQorICAgICAgICBzZWxmLm1vZGlmaWVkID0ge30KKwogICAgICAgICAjIElmIHRoZSBk
aXJlY3RvcnkgcHJvdmlkZWQgYWN0dWFsbHkgZXhpc3RzLCBwb3B1bGF0ZSBpdAogICAgICAgICBp
ZiBzZWxmLnBhdGggIT0gJy8nIGFuZCBvcy5wYXRoLmlzZGlyKHNlbGYucGF0aCk6CiAgICAgICAg
ICAgICBpZiBub3Qgb3MucGF0aC5pc2Rpcihvcy5wYXRoLmpvaW4oc2VsZi5wYXRoLCAnLmdpdCcp
KToKQEAgLTM4NSw2ICszODgsMjUgQEAgbm90aGluZyB0byBjb21taXQsIHdvcmtpbmcgdHJlZSBj
bGVhbgogICAgICAgICAgICAgICAgIGNvbXBsZXRpb249bW9ja3MuUHJvY2Vzc0NvbXBsZXRpb24o
CiAgICAgICAgICAgICAgICAgICAgIHJldHVybmNvZGU9MCwKICAgICAgICAgICAgICAgICApLAor
ICAgICAgICAgICAgKSwgbW9ja3MuU3VicHJvY2Vzcy5Sb3V0ZSgKKyAgICAgICAgICAgICAgICBz
ZWxmLmV4ZWN1dGFibGUsICdkaWZmJywgJy0tbmFtZS1vbmx5JywKKyAgICAgICAgICAgICAgICBj
d2Q9c2VsZi5wYXRoLAorICAgICAgICAgICAgICAgIGdlbmVyYXRvcj1sYW1iZGEgKmFyZ3MsICoq
a3dhcmdzOgorICAgICAgICAgICAgICAgICAgICBtb2Nrcy5Qcm9jZXNzQ29tcGxldGlvbihyZXR1
cm5jb2RlPTAsIHN0ZG91dD0nXG4nLmpvaW4oc29ydGVkKFsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGtleSBmb3Iga2V5LCB2YWx1ZSBpbiBzZWxmLm1vZGlmaWVkLml0ZW1zKCkgaWYgdmFsdWUu
c3RhcnRzd2l0aCgnZGlmZicpCisgICAgICAgICAgICAgICAgICAgIF0pKSksCisgICAgICAgICAg
ICApLCBtb2Nrcy5TdWJwcm9jZXNzLlJvdXRlKAorICAgICAgICAgICAgICAgIHNlbGYuZXhlY3V0
YWJsZSwgJ2RpZmYnLCAnLS1uYW1lLW9ubHknLCAnLS1zdGFnZWQnLAorICAgICAgICAgICAgICAg
IGN3ZD1zZWxmLnBhdGgsCisgICAgICAgICAgICAgICAgZ2VuZXJhdG9yPWxhbWJkYSAqYXJncywg
Kiprd2FyZ3M6CisgICAgICAgICAgICAgICAgICAgIG1vY2tzLlByb2Nlc3NDb21wbGV0aW9uKHJl
dHVybmNvZGU9MCwgc3Rkb3V0PSdcbicuam9pbihzb3J0ZWQoc2VsZi5zdGFnZWQua2V5cygpKSkp
LAorICAgICAgICAgICAgKSwgbW9ja3MuU3VicHJvY2Vzcy5Sb3V0ZSgKKyAgICAgICAgICAgICAg
ICBzZWxmLmV4ZWN1dGFibGUsICdkaWZmJywgJy0tbmFtZS1zdGF0dXMnLCAnLS1zdGFnZWQnLAor
ICAgICAgICAgICAgICAgIGN3ZD1zZWxmLnBhdGgsCisgICAgICAgICAgICAgICAgZ2VuZXJhdG9y
PWxhbWJkYSAqYXJncywgKiprd2FyZ3M6CisgICAgICAgICAgICAgICAgICAgIG1vY2tzLlByb2Nl
c3NDb21wbGV0aW9uKHJldHVybmNvZGU9MCwgc3Rkb3V0PSdcbicuam9pbihzb3J0ZWQoWworICAg
ICAgICAgICAgICAgICAgICAgICAgJ3t9ICAgICAgIHt9Jy5mb3JtYXQoJ00nIGlmIHZhbHVlLnN0
YXJ0c3dpdGgoJ2RpZmYnKSBlbHNlICdBJywga2V5KSBmb3Iga2V5LCB2YWx1ZSBpbiBzZWxmLnN0
YWdlZC5pdGVtcygpCisgICAgICAgICAgICAgICAgICAgIF0pKSksCiAgICAgICAgICAgICApLCBt
b2Nrcy5TdWJwcm9jZXNzLlJvdXRlKAogICAgICAgICAgICAgICAgIHNlbGYuZXhlY3V0YWJsZSwg
J2NoZWNrLXJlZi1mb3JtYXQnLCByZS5jb21waWxlKHInLisnKSwKICAgICAgICAgICAgICAgICBn
ZW5lcmF0b3I9bGFtYmRhICphcmdzLCAqKmt3YXJnczoKZGlmZiAtLWdpdCBhL1Rvb2xzL1Njcmlw
dHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L3Rlc3QvZ2l0X3VuaXR0ZXN0LnB5
IGIvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvdGVzdC9n
aXRfdW5pdHRlc3QucHkKaW5kZXggNjIxNzdiNDBjYjhkYzZkZThkMTVjMjNkMjczYzA1N2Q5YmZk
ZGQ2Mi4uODRkMmE1YjRkZGY2YWM5MTJlNTBjYTBiNTgwMzI3NWZjN2Y3YjgzZSAxMDA2NDQKLS0t
IGEvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvdGVzdC9n
aXRfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkv
d2Via2l0c2NtcHkvdGVzdC9naXRfdW5pdHRlc3QucHkKQEAgLTQyMiw2ICs0MjIsNTQgQEAgQ29t
bWl0RGF0ZTogU2F0IE9jdCAwMyAwMjowNjo0MCAyMDIwICswMDAwCiAgICAgICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKGxvY2FsLkdpdC5jb25maWcoKVsndXNlci5uYW1lJ10sICdUaW0gQXBwbGUn
KQogICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsb2NhbC5HaXQuY29uZmlnKClbJ3NlbmRl
bWFpbC50cmFuc2ZlcmVuY29kaW5nJ10sICdiYXNlNjQnKQogCisgICAgZGVmIHRlc3RfbW9kaWZp
ZWQoc2VsZik6CisgICAgICAgIHdpdGggbW9ja3MubG9jYWwuR2l0KHNlbGYucGF0aCkgYXMgbXJl
cG8sIE91dHB1dENhcHR1cmUoKToKKyAgICAgICAgICAgIHJlcG8gPSBsb2NhbC5HaXQoc2VsZi5w
YXRoKQorCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlcG8ubW9kaWZpZWQoKSwgW10p
CisKKyAgICAgICAgICAgIG1yZXBvLm1vZGlmaWVkWyd1bnN0YWdlZC1hZGRlZC50eHQnXSA9ICdh
ZGRlZCcKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVwby5tb2RpZmllZCgpLCBbXSkK
KworICAgICAgICAgICAgbXJlcG8ubW9kaWZpZWRbJ3Vuc3RhZ2VkLW1vZGlmaWVkLnR4dCddID0g
J2RpZmYnCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlcG8ubW9kaWZpZWQoKSwgWyd1
bnN0YWdlZC1tb2RpZmllZC50eHQnXSkKKworICAgICAgICAgICAgbXJlcG8uc3RhZ2VkWydzdGFn
ZWQtYWRkZWQudHh0J10gPSAnYWRkZWQnCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJl
cG8ubW9kaWZpZWQoKSwgWydzdGFnZWQtYWRkZWQudHh0JywgJ3Vuc3RhZ2VkLW1vZGlmaWVkLnR4
dCddKQorCisgICAgICAgICAgICBtcmVwby5zdGFnZWRbJ3N0YWdlZC1tb2RpZmllZC50eHQnXSA9
ICdkaWZmJworICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXBvLm1vZGlmaWVkKCksIFsn
c3RhZ2VkLWFkZGVkLnR4dCcsICdzdGFnZWQtbW9kaWZpZWQudHh0J10pCisKKyAgICBkZWYgdGVz
dF9tb2RpZmllZF9ub19zdGFnZWQoc2VsZik6CisgICAgICAgIHdpdGggbW9ja3MubG9jYWwuR2l0
KHNlbGYucGF0aCkgYXMgbXJlcG8sIE91dHB1dENhcHR1cmUoKToKKyAgICAgICAgICAgIHJlcG8g
PSBsb2NhbC5HaXQoc2VsZi5wYXRoKQorCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJl
cG8ubW9kaWZpZWQoc3RhZ2VkPUZhbHNlKSwgW10pCisKKyAgICAgICAgICAgIG1yZXBvLnN0YWdl
ZFsnc3RhZ2VkLWFkZGVkLnR4dCddID0gJ2FkZGVkJworICAgICAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChyZXBvLm1vZGlmaWVkKHN0YWdlZD1GYWxzZSksIFtdKQorCisgICAgICAgICAgICBtcmVw
by5tb2RpZmllZFsnYWRkZWQudHh0J10gPSAnYWRkZWQnCisgICAgICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKHJlcG8ubW9kaWZpZWQoc3RhZ2VkPUZhbHNlKSwgW10pCisKKyAgICAgICAgICAgIG1y
ZXBvLm1vZGlmaWVkWydtb2RpZmllZC50eHQnXSA9ICdkaWZmJworICAgICAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChyZXBvLm1vZGlmaWVkKHN0YWdlZD1GYWxzZSksIFsnbW9kaWZpZWQudHh0J10p
CisKKyAgICBkZWYgdGVzdF9tb2RpZmllZF9zdGFnZWQoc2VsZik6CisgICAgICAgIHdpdGggbW9j
a3MubG9jYWwuR2l0KHNlbGYucGF0aCkgYXMgbXJlcG8sIE91dHB1dENhcHR1cmUoKToKKyAgICAg
ICAgICAgIHJlcG8gPSBsb2NhbC5HaXQoc2VsZi5wYXRoKQorCisgICAgICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKHJlcG8ubW9kaWZpZWQoc3RhZ2VkPVRydWUpLCBbXSkKKworICAgICAgICAgICAg
bXJlcG8ubW9kaWZpZWRbJ3Vuc3RhZ2VkLWFkZGVkLnR4dCddID0gJ2FkZGVkJworICAgICAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChyZXBvLm1vZGlmaWVkKHN0YWdlZD1UcnVlKSwgW10pCisKKyAg
ICAgICAgICAgIG1yZXBvLnN0YWdlZFsnYWRkZWQudHh0J10gPSAnYWRkZWQnCisgICAgICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKHJlcG8ubW9kaWZpZWQoc3RhZ2VkPVRydWUpLCBbJ2FkZGVkLnR4
dCddKQorCisgICAgICAgICAgICBtcmVwby5zdGFnZWRbJ21vZGlmaWVkLnR4dCddID0gJ2RpZmYn
CisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlcG8ubW9kaWZpZWQoc3RhZ2VkPVRydWUp
LCBbJ2FkZGVkLnR4dCcsICdtb2RpZmllZC50eHQnXSkKKwogCiBjbGFzcyBUZXN0R2l0SHViKHRl
c3RpbmcuVGVzdENhc2UpOgogICAgIHJlbW90ZSA9ICdodHRwczovL2dpdGh1Yi5leGFtcGxlLmNv
bS9XZWJLaXQvV2ViS2l0Jwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>436250</attachid>
            <date>2021-08-23 17:01:58 -0700</date>
            <delta_ts>2021-08-24 08:20:56 -0700</delta_ts>
            <desc>Part 6</desc>
            <filename>bug-229089-20210823170157.patch</filename>
            <type>text/plain</type>
            <size>46890</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxNDc4CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMmNkZmJjZjUyN2E5MDgwZjhkNmQwN2M4N2QxMzk3ZDNk
NTMyZGE5ZS4uODk2N2ZmOTc1YTg1N2M3N2JiZGNjOGU0MDNkYWRhMTgxODUzODJjMiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2
IEBACisyMDIxLTA4LTIzICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KKwor
ICAgICAgICBbZ2l0LXdlYmtpdF0gQWRkIHB1bGwtcmVxdWVzdCBjb21tYW5kIChQYXJ0IDYpCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjkwODkKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgxOTA4NzUxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkv
d2Via2l0c2NtcHkvbW9ja3MvbG9jYWwvZ2l0LnB5OgorICAgICAgICAoR2l0Ll9faW5pdF9fKTog
QWRkIGNvbW1pdCwgYWRkIGFuZCBwdXNoIGNvbW1hbmRzLgorICAgICAgICAoR2l0LmNvbW1pdCk6
IENyZWF0ZSBuZXcgY29tbWl0IGZyb20gc3RhZ2VkIGZpbGVzLgorICAgICAgICAoR2l0LmFkZCk6
IFN0YWdlIG1vZGlmaWVkIGZpbGVzLgorICAgICAgICAqIFNjcmlwdHMvbGlicmFyaWVzL3dlYmtp
dHNjbXB5L3dlYmtpdHNjbXB5L21vY2tzL3JlbW90ZS9iaXRidWNrZXQucHk6CisgICAgICAgIChC
aXRCdWNrZXQuX19pbml0X18pOiBBZGQgcHVsbF9yZXF1ZXN0cy4KKyAgICAgICAgKEJpdEJ1Y2tl
dC5yZXF1ZXN0KTogQWRkIGFiaWxpdHkgdG8gbGlzdCBhbmQgZWRpdCBwdWxsIHJlcXVldHMuCisg
ICAgICAgICogU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvbW9ja3Mv
cmVtb3RlL2dpdF9odWIucHk6CisgICAgICAgIChHaXRIdWIuX19pbml0X18pOiBBZGQgcHVsbF9y
ZXF1ZXN0cy4KKyAgICAgICAgKEdpdEh1Yi5yZXF1ZXN0KTogQWRkIGFiaWxpdHkgdG8gbGlzdCBh
bmQgZWRpdCBwdWxsIHJlcXVldHMuCisgICAgICAgICogU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0
c2NtcHkvd2Via2l0c2NtcHkvcHJvZ3JhbS9fX2luaXRfXy5weTogQWRkIFB1bGxSZXF1ZXN0Lgor
ICAgICAgICAqIFNjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L3Byb2dy
YW0vcHVsbF9yZXF1ZXN0LnB5OgorICAgICAgICAoUHVsbFJlcXVlc3QucGFyc2VyKTogQWRkICct
LWFkZCcgYW5kICctLW5vLWFkZCcgdG8gYWxsb3cgdXNlciB0byBzcGVjaWZ5IGhvdyBtb2RpZmll
ZCBmaWxlcworICAgICAgICBhcmUgaW5jb3JwZXJhdGVkIGludG8gdGhlIHB1bGwtcmVxdWVzdC4K
KyAgICAgICAgKFB1bGxSZXF1ZXN0LmNyZWF0ZV9jb21taXQpOiBCYXNlZCBvbiBjdXJyZW50bHkg
bW9kaWZpZWQgZmlsZXMsIGVpdGhlciBjcmVhdGUgYSBuZXcgY29tbWl0IG9yCisgICAgICAgIGFk
ZCB0aG9zZSBmaWxlcyB0byBhbiBleGlzdGluZyBjb21taXQuCisgICAgICAgIChQdWxsUmVxdWVz
dC5icmFuY2hfcG9pbnQpOiBEZXRlcm1pbmUgd2hlbiB0aGlzIGJyYW5jaCBkaXZlcmdlZCBmcm9t
IGEgcHJvZHVjdGlvbiBicmFuY2guCisgICAgICAgIChQdWxsUmVxdWVzdC5tYWluKTogQ3JlYXRl
IGJyYW5jaCwgY3JlYXRlIGNvbW1pdCBvbiBicmFuY2gsIHB1c2ggYnJhbmNoIGFuZCBlaXRoZXIg
Y3JlYXRlIG9yCisgICAgICAgIHVwZGF0ZSBhIHB1bGwtcmVxdWVzdC4KKyAgICAgICAgKiBTY3Jp
cHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS9yZW1vdGUvYml0YnVja2V0LnB5
OgorICAgICAgICAoQml0QnVja2V0LlBSR2VuZXJhdG9yLmZpbmQpOgorICAgICAgICAoQml0QnVj
a2V0LlBSR2VuZXJhdG9yLmNyZWF0ZSk6CisgICAgICAgIChCaXRCdWNrZXQuUFJHZW5lcmF0b3Iu
dXBkYXRlKToKKyAgICAgICAgKEJpdEJ1Y2tldC5fX2luaXRfXyk6IEFkZCBwdWxsX3JlcXVlc3Qg
Z2VuZXJhdG9yLgorICAgICAgICAqIFNjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtp
dHNjbXB5L3JlbW90ZS9naXRfaHViLnB5OgorICAgICAgICAoR2l0SHViLlBSR2VuZXJhdG9yLmZp
bmQpOgorICAgICAgICAoR2l0SHViLlBSR2VuZXJhdG9yLmNyZWF0ZSk6CisgICAgICAgIChHaXRI
dWIuUFJHZW5lcmF0b3IudXBkYXRlKToKKyAgICAgICAgKEdpdEh1Yi5fX2luaXRfXyk6IEFkZCBw
dWxsX3JlcXVlc3QgZ2VuZXJhdG9yLgorICAgICAgICAqIFNjcmlwdHMvbGlicmFyaWVzL3dlYmtp
dHNjbXB5L3dlYmtpdHNjbXB5L3JlbW90ZS9zY20ucHk6CisgICAgICAgIChTY20uUFJHZW5lcmF0
b3IuX19pbml0X18pOgorICAgICAgICAoU2NtLlBSR2VuZXJhdG9yLmZpbmQpOgorICAgICAgICAo
U2NtLlBSR2VuZXJhdG9yLmNyZWF0ZSk6CisgICAgICAgIChTY20uUFJHZW5lcmF0b3IudXBkYXRl
KToKKyAgICAgICAgKiBTY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS90
ZXN0L3B1bGxfcmVxdWVzdF91bml0dGVzdC5weToKKyAgICAgICAgKFRlc3REb1B1bGxSZXF1ZXN0
LnNldFVwKToKKyAgICAgICAgKFRlc3REb1B1bGxSZXF1ZXN0LnRlc3Rfc3ZuKToKKyAgICAgICAg
KFRlc3REb1B1bGxSZXF1ZXN0LnRlc3Rfbm9fbW9kaWZpZWQpOgorICAgICAgICAoVGVzdERvUHVs
bFJlcXVlc3QudGVzdF9zdGFnZWQpOgorICAgICAgICAoVGVzdERvUHVsbFJlcXVlc3QudGVzdF9t
b2RpZmllZCk6CisgICAgICAgIChUZXN0RG9QdWxsUmVxdWVzdC50ZXN0X2dpdGh1Yik6CisgICAg
ICAgIChUZXN0RG9QdWxsUmVxdWVzdC50ZXN0X2dpdGh1Yl91cGRhdGUpOgorICAgICAgICAoVGVz
dERvUHVsbFJlcXVlc3QudGVzdF9zdGFzaCk6CisgICAgICAgIChUZXN0RG9QdWxsUmVxdWVzdC50
ZXN0X3N0YXNoX3VwZGF0ZSk6CisKIDIwMjEtMDgtMjMgIENhbWVyb24gTWNDb3JtYWNrICA8aGV5
Y2FtQGFwcGxlLmNvbT4KIAogICAgICAgICBQcmVzZXJ2ZSBjb2xvciBzcGFjZSB3aGVuIGdldHRp
bmcgY3VycmVudCBjb2xvciBpbiBEaXNwbGF5TGlzdDo6RHJhd0dseXBoc1JlY29yZGVyCmRpZmYg
LS1naXQgYS9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS9t
b2Nrcy9sb2NhbC9naXQucHkgYi9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93
ZWJraXRzY21weS9tb2Nrcy9sb2NhbC9naXQucHkKaW5kZXggYTExOTg1ZjRlMWEzYTU2MjMyZjRm
MjRkMDZiYzFhNzZjNDY5OGVhZi4uNTBiNmI5NzMxMmJiOTVhMWJjM2IxZTQ3YmIyNzQ3NmNmNjU5
YTg2YSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Vi
a2l0c2NtcHkvbW9ja3MvbG9jYWwvZ2l0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVz
L3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L21vY2tzL2xvY2FsL2dpdC5weQpAQCAtMjAsNiArMjAs
NyBAQAogIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCitpbXBvcnQgaGFz
aGxpYgogaW1wb3J0IGpzb24KIGltcG9ydCBvcwogaW1wb3J0IHJlCkBAIC0yOCw3ICsyOSw3IEBA
IGltcG9ydCB0aW1lCiBmcm9tIGRhdGV0aW1lIGltcG9ydCBkYXRldGltZQogZnJvbSBtb2NrIGlt
cG9ydCBwYXRjaAogCi1mcm9tIHdlYmtpdGNvcmVweSBpbXBvcnQgZGVjb3JhdG9ycywgbW9ja3Ms
IE91dHB1dENhcHR1cmUsIFN0cmluZ0lPCitmcm9tIHdlYmtpdGNvcmVweSBpbXBvcnQgZGVjb3Jh
dG9ycywgbW9ja3MsIHN0cmluZ191dGlscywgT3V0cHV0Q2FwdHVyZSwgU3RyaW5nSU8KIGZyb20g
d2Via2l0c2NtcHkgaW1wb3J0IGxvY2FsLCBDb21taXQsIENvbnRyaWJ1dG9yCiBmcm9tIHdlYmtp
dHNjbXB5LnByb2dyYW0uY2Fub25pY2FsaXplLmNvbW1pdHRlciBpbXBvcnQgbWFpbiBhcyBjb21t
aXR0ZXJfbWFpbgogZnJvbSB3ZWJraXRzY21weS5wcm9ncmFtLmNhbm9uaWNhbGl6ZS5tZXNzYWdl
IGltcG9ydCBtYWluIGFzIG1lc3NhZ2VfbWFpbgpAQCAtNDExLDYgKzQxMiwyMiBAQCBub3RoaW5n
IHRvIGNvbW1pdCwgd29ya2luZyB0cmVlIGNsZWFuCiAgICAgICAgICAgICAgICAgc2VsZi5leGVj
dXRhYmxlLCAnY2hlY2stcmVmLWZvcm1hdCcsIHJlLmNvbXBpbGUocicuKycpLAogICAgICAgICAg
ICAgICAgIGdlbmVyYXRvcj1sYW1iZGEgKmFyZ3MsICoqa3dhcmdzOgogICAgICAgICAgICAgICAg
ICAgICBtb2Nrcy5Qcm9jZXNzQ29tcGxldGlvbihyZXR1cm5jb2RlPTApIGlmIHJlLm1hdGNoKHIn
XltBLVphLXowLTktXSsvW0EtWmEtejAtOS8tXSskJywgYXJnc1syXSkgZWxzZSBtb2Nrcy5Qcm9j
ZXNzQ29tcGxldGlvbigpLAorICAgICAgICAgICAgKSwgbW9ja3MuU3VicHJvY2Vzcy5Sb3V0ZSgK
KyAgICAgICAgICAgICAgICBzZWxmLmV4ZWN1dGFibGUsICdjb21taXQnLAorICAgICAgICAgICAg
ICAgIGN3ZD1zZWxmLnBhdGgsCisgICAgICAgICAgICAgICAgZ2VuZXJhdG9yPWxhbWJkYSAqYXJn
cywgKiprd2FyZ3M6IHNlbGYuY29tbWl0KGFtZW5kPUZhbHNlKSwKKyAgICAgICAgICAgICksIG1v
Y2tzLlN1YnByb2Nlc3MuUm91dGUoCisgICAgICAgICAgICAgICAgc2VsZi5leGVjdXRhYmxlLCAn
Y29tbWl0JywgJy0tYW1lbmQnLAorICAgICAgICAgICAgICAgIGN3ZD1zZWxmLnBhdGgsCisgICAg
ICAgICAgICAgICAgZ2VuZXJhdG9yPWxhbWJkYSAqYXJncywgKiprd2FyZ3M6IHNlbGYuY29tbWl0
KGFtZW5kPVRydWUpLAorICAgICAgICAgICAgKSwgbW9ja3MuU3VicHJvY2Vzcy5Sb3V0ZSgKKyAg
ICAgICAgICAgICAgICBzZWxmLmV4ZWN1dGFibGUsICdhZGQnLCByZS5jb21waWxlKHInLisnKSwK
KyAgICAgICAgICAgICAgICBjd2Q9c2VsZi5wYXRoLAorICAgICAgICAgICAgICAgIGdlbmVyYXRv
cj1sYW1iZGEgKmFyZ3MsICoqa3dhcmdzOiBzZWxmLmFkZChhcmdzWzJdKSwKKyAgICAgICAgICAg
ICksIG1vY2tzLlN1YnByb2Nlc3MuUm91dGUoCisgICAgICAgICAgICAgICAgc2VsZi5leGVjdXRh
YmxlLCAncHVzaCcsICctZicsCisgICAgICAgICAgICAgICAgY3dkPXNlbGYucGF0aCwKKyAgICAg
ICAgICAgICAgICBnZW5lcmF0b3I9bGFtYmRhICphcmdzLCAqKmt3YXJnczogbW9ja3MuUHJvY2Vz
c0NvbXBsZXRpb24ocmV0dXJuY29kZT0wKSwKICAgICAgICAgICAgICksIG1vY2tzLlN1YnByb2Nl
c3MuUm91dGUoCiAgICAgICAgICAgICAgICAgc2VsZi5leGVjdXRhYmxlLAogICAgICAgICAgICAg
ICAgIGN3ZD1zZWxmLnBhdGgsCkBAIC03MDksMyArNzI2LDM1IEBAIG5vdGhpbmcgdG8gY29tbWl0
LCB3b3JraW5nIHRyZWUgY2xlYW4KICAgICAgICAgICAgICAgICBjb25maWdmaWxlLndyaXRlKCdc
dHt9PXt9XG4nLmZvcm1hdChrZXlfYiwgdmFsdWUpKQogCiAgICAgICAgIHJldHVybiBtb2Nrcy5Q
cm9jZXNzQ29tcGxldGlvbihyZXR1cm5jb2RlPTApCisKKyAgICBkZWYgY29tbWl0KHNlbGYsIGFt
ZW5kPUZhbHNlKToKKyAgICAgICAgaWYgbm90IHNlbGYuaGVhZDoKKyAgICAgICAgICAgIHJldHVy
biBtb2Nrcy5Qcm9jZXNzQ29tcGxldGlvbihyZXR1cm5jb2RlPTEsIHN0ZG91dD0nQWxsb3dlZCBp
biBnaXQsIGJ1dCBkaXNhbGxvd2VkIGJ5IHJlYXNvbmFibGUgd29ya2Zsb3dzJykKKyAgICAgICAg
aWYgbm90IHNlbGYuc3RhZ2VkIGFuZCBub3QgYW1lbmQ6CisgICAgICAgICAgICByZXR1cm4gbW9j
a3MuUHJvY2Vzc0NvbXBsZXRpb24ocmV0dXJuY29kZT0xLCBzdGRvdXQ9J25vIGNoYW5nZXMgYWRk
ZWQgdG8gY29tbWl0ICh1c2UgImdpdCBhZGQiIGFuZC9vciAiZ2l0IGNvbW1pdCAtYSIpXG4nKQor
CisgICAgICAgIGlmIG5vdCBhbWVuZDoKKyAgICAgICAgICAgIHNlbGYuaGVhZCA9IENvbW1pdCgK
KyAgICAgICAgICAgICAgICBicmFuY2g9c2VsZi5icmFuY2gsIHJlcG9zaXRvcnlfaWQ9c2VsZi5o
ZWFkLnJlcG9zaXRvcnlfaWQsCisgICAgICAgICAgICAgICAgdGltZXN0YW1wPWludCh0aW1lLnRp
bWUoKSksCisgICAgICAgICAgICAgICAgaWRlbnRpZmllcj1zZWxmLmhlYWQuaWRlbnRpZmllciAr
IDEgaWYgc2VsZi5oZWFkLmJyYW5jaF9wb2ludCBlbHNlIDEsCisgICAgICAgICAgICAgICAgYnJh
bmNoX3BvaW50PXNlbGYuaGVhZC5icmFuY2hfcG9pbnQgb3Igc2VsZi5oZWFkLmlkZW50aWZpZXIs
CisgICAgICAgICAgICApCisgICAgICAgICAgICBzZWxmLmNvbW1pdHNbc2VsZi5icmFuY2hdLmFw
cGVuZChzZWxmLmhlYWQpCisKKyAgICAgICAgc2VsZi5oZWFkLmF1dGhvciA9IENvbnRyaWJ1dG9y
KHNlbGYuY29uZmlnKClbJ3VzZXIubmFtZSddLCBbc2VsZi5jb25maWcoKVsndXNlci5lbWFpbCdd
XSkKKyAgICAgICAgc2VsZi5oZWFkLm1lc3NhZ2UgPSAne30gY29tbWl0XG5SZXZpZXdlZCBieSBK
b25hdGhhbiBCZWRhcmRcblxuICoge31cbicuZm9ybWF0KAorICAgICAgICAgICAgJ0FtZW5kZWQn
IGlmIGFtZW5kIGVsc2UgJ0NyZWF0ZWQnLAorICAgICAgICAgICAgJ1xuICogJy5qb2luKHNlbGYu
c3RhZ2VkLmtleXMoKSksCisgICAgICAgICkKKyAgICAgICAgc2VsZi5oZWFkLmhhc2ggPSBoYXNo
bGliLnNoYTI1NihzdHJpbmdfdXRpbHMuZW5jb2RlKHNlbGYuaGVhZC5tZXNzYWdlKSkuaGV4ZGln
ZXN0KClbOjQwXQorICAgICAgICBzZWxmLnN0YWdlZCA9IHt9CisgICAgICAgIHJldHVybiBtb2Nr
cy5Qcm9jZXNzQ29tcGxldGlvbihyZXR1cm5jb2RlPTApCisKKyAgICBkZWYgYWRkKHNlbGYsIGZp
bGUpOgorICAgICAgICBpZiBmaWxlIG5vdCBpbiBzZWxmLm1vZGlmaWVkOgorICAgICAgICAgICAg
cmV0dXJuIG1vY2tzLlByb2Nlc3NDb21wbGV0aW9uKHJldHVybmNvZGU9MTI4LCBzdGRvdXQ9ImZh
dGFsOiBwYXRoc3BlYyAne30nIGRpZCBub3QgbWF0Y2ggYW55IGZpbGVzXG4iLmZvcm1hdChmaWxl
KSkKKyAgICAgICAgZm9yIGtleSwgdmFsdWUgaW4gc2VsZi5tb2RpZmllZC5pdGVtcygpOgorICAg
ICAgICAgICAgc2VsZi5zdGFnZWRba2V5XSA9IHZhbHVlCisgICAgICAgIHNlbGYubW9kaWZpZWQg
PSB7fQorICAgICAgICByZXR1cm4gbW9ja3MuUHJvY2Vzc0NvbXBsZXRpb24ocmV0dXJuY29kZT0w
KQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0
c2NtcHkvbW9ja3MvcmVtb3RlL2JpdGJ1Y2tldC5weSBiL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVz
L3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L21vY2tzL3JlbW90ZS9iaXRidWNrZXQucHkKaW5kZXgg
YTFkMTcwNzFkMDdiZjZkMDY4ZWE4ODZmZmNlMTQ5ZDE0YTJmMDU0Ny4uMzg2MzdjNWZhYzNlNmYz
MDA2ZGU3ZDA5ZjIwMmEyNzE5YjY5MjM3OSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy9saWJy
YXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvbW9ja3MvcmVtb3RlL2JpdGJ1Y2tldC5weQor
KysgYi9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS9tb2Nr
cy9yZW1vdGUvYml0YnVja2V0LnB5CkBAIC01Myw2ICs1Myw3IEBAIGNsYXNzIEJpdEJ1Y2tldCht
b2Nrcy5SZXF1ZXN0cyk6CiAKICAgICAgICAgc2VsZi5oZWFkID0gc2VsZi5jb21taXRzW3NlbGYu
ZGVmYXVsdF9icmFuY2hdWy0xXQogICAgICAgICBzZWxmLnRhZ3MgPSB7fQorICAgICAgICBzZWxm
LnB1bGxfcmVxdWVzdHMgPSBbXQogCiAgICAgZGVmIGNvbW1pdChzZWxmLCByZWYpOgogICAgICAg
ICBpZiByZWYgaW4gc2VsZi5jb21taXRzOgpAQCAtMTU3LDcgKzE1OCw3IEBAIGNsYXNzIEJpdEJ1
Y2tldChtb2Nrcy5SZXF1ZXN0cyk6CiAgICAgICAgICAgICBdLAogICAgICAgICApLCB1cmw9dXJs
KQogCi0gICAgZGVmIHJlcXVlc3Qoc2VsZiwgbWV0aG9kLCB1cmwsIGRhdGE9Tm9uZSwgcGFyYW1z
PU5vbmUsICoqa3dhcmdzKToKKyAgICBkZWYgcmVxdWVzdChzZWxmLCBtZXRob2QsIHVybCwgZGF0
YT1Ob25lLCBwYXJhbXM9Tm9uZSwganNvbj1Ob25lLCAqKmt3YXJncyk6CiAgICAgICAgIGlmIG5v
dCB1cmwuc3RhcnRzd2l0aCgnaHR0cDovLycpIGFuZCBub3QgdXJsLnN0YXJ0c3dpdGgoJ2h0dHBz
Oi8vJyk6CiAgICAgICAgICAgICByZXR1cm4gbW9ja3MuUmVzcG9uc2UuY3JlYXRlNDA0KHVybCkK
IApAQCAtMTk0LDQgKzE5NSw0NyBAQCBjbGFzcyBCaXRCdWNrZXQobW9ja3MuUmVxdWVzdHMpOgog
ICAgICAgICBpZiBzdHJpcHBlZF91cmwuc3RhcnRzd2l0aCgne30vcmVzdC9icmFuY2gtdXRpbHMv
bGF0ZXN0L3t9L2JyYW5jaGVzL2luZm8vJy5mb3JtYXQoc2VsZi5ob3N0c1swXSwgc2VsZi5wcm9q
ZWN0KSk6CiAgICAgICAgICAgICByZXR1cm4gc2VsZi5fYnJhbmNoZXNfZm9yKHN0cmlwcGVkX3Vy
bC5zcGxpdCgnLycpWy0xXSwgdXJsLCBwYXJhbXMgb3Ige30pCiAKKyAgICAgICAgIyBBbGwgcHVs
bC1yZXF1ZXN0cworICAgICAgICBwcl9iYXNlID0gJ3t9L3Jlc3QvYXBpLzEuMC97fS9wdWxsLXJl
cXVlc3RzJy5mb3JtYXQoc2VsZi5ob3N0c1swXSwgc2VsZi5wcm9qZWN0KQorICAgICAgICBpZiBt
ZXRob2QgPT0gJ0dFVCcgYW5kIHN0cmlwcGVkX3VybCA9PSBwcl9iYXNlOgorICAgICAgICAgICAg
cHJzID0gW10KKyAgICAgICAgICAgIGZvciBjYW5kaWRhdGUgaW4gc2VsZi5wdWxsX3JlcXVlc3Rz
OgorICAgICAgICAgICAgICAgIHN0YXRlcyA9IHBhcmFtcy5nZXQoJ3N0YXRlJywgW10pCisgICAg
ICAgICAgICAgICAgc3RhdGVzID0gc3RhdGVzIGlmIGlzaW5zdGFuY2Uoc3RhdGVzLCBsaXN0KSBl
bHNlIFtzdGF0ZXNdCisgICAgICAgICAgICAgICAgaWYgc3RhdGVzIGFuZCBjYW5kaWRhdGUuZ2V0
KCdzdGF0ZScpIG5vdCBpbiBzdGF0ZXM6CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCisg
ICAgICAgICAgICAgICAgYXQgPSBwYXJhbXMuZ2V0KCdhdCcpCisgICAgICAgICAgICAgICAgaWYg
YXQgYW5kIGNhbmRpZGF0ZS5nZXQoJ2Zyb21SZWYnLCB7fSkuZ2V0KCdpZCcpICE9IGF0OgorICAg
ICAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgICAgIHBycy5hcHBlbmQoY2Fu
ZGlkYXRlKQorCisgICAgICAgICAgICByZXR1cm4gbW9ja3MuUmVzcG9uc2UuZnJvbUpzb24oZGlj
dCgKKyAgICAgICAgICAgICAgICBzaXplPWxlbihwcnMpLAorICAgICAgICAgICAgICAgIGlzTGFz
dFBhZ2U9VHJ1ZSwKKyAgICAgICAgICAgICAgICB2YWx1ZXM9cHJzLAorICAgICAgICAgICAgKSkK
KworICAgICAgICAjIENyZWF0ZSBwdWxsLXJlcXVlc3QKKyAgICAgICAgaWYgbWV0aG9kID09ICdQ
T1NUJyBhbmQgc3RyaXBwZWRfdXJsID09IHByX2Jhc2U6CisgICAgICAgICAgICBqc29uWydhdXRo
b3InXSA9IGRpY3QodXNlcj1kaWN0KGRpc3BsYXlOYW1lPSdUaW0gQ29tbWl0dGVyJywgZW1haWxB
ZGRyZXNzPSdjb21taXR0ZXJAd2Via2l0Lm9yZycpKQorICAgICAgICAgICAganNvblsncGFydGlj
aXBhbnRzJ10gPSBbanNvblsnYXV0aG9yJ11dCisgICAgICAgICAgICBqc29uWydpZCddID0gMSAr
IG1heChbMF0gKyBbcHIuZ2V0KCdpZCcsIDApIGZvciBwciBpbiBzZWxmLnB1bGxfcmVxdWVzdHNd
KQorICAgICAgICAgICAganNvblsnZnJvbVJlZiddWydkaXNwbGF5SWQnXSA9IGpzb25bJ2Zyb21S
ZWYnXVsnaWQnXS5zcGxpdCgnLycpWy0yOl0KKyAgICAgICAgICAgIGpzb25bJ3RvUmVmJ11bJ2Rp
c3BsYXlJZCddID0ganNvblsndG9SZWYnXVsnaWQnXS5zcGxpdCgnLycpWy0yOl0KKyAgICAgICAg
ICAgIHNlbGYucHVsbF9yZXF1ZXN0cy5hcHBlbmQoanNvbikKKyAgICAgICAgICAgIHJldHVybiBt
b2Nrcy5SZXNwb25zZS5mcm9tSnNvbihqc29uKQorCisgICAgICAgICMgVXBkYXRlIG9yIGFjY2Vz
cyBwdWxsLXJlcXVlc3QKKyAgICAgICAgaWYgc3RyaXBwZWRfdXJsLnN0YXJ0c3dpdGgocHJfYmFz
ZSk6CisgICAgICAgICAgICBudW1iZXIgPSBpbnQoc3RyaXBwZWRfdXJsLnNwbGl0KCcvJylbLTFd
KQorICAgICAgICAgICAgZXhpc3RpbmcgPSBOb25lCisgICAgICAgICAgICBmb3IgaSBpbiByYW5n
ZShsZW4oc2VsZi5wdWxsX3JlcXVlc3RzKSk6CisgICAgICAgICAgICAgICAgaWYgc2VsZi5wdWxs
X3JlcXVlc3RzW2ldLmdldCgnaWQnKSA9PSBudW1iZXI6CisgICAgICAgICAgICAgICAgICAgIGV4
aXN0aW5nID0gaQorICAgICAgICAgICAgaWYgZXhpc3RpbmcgaXMgTm9uZToKKyAgICAgICAgICAg
ICAgICByZXR1cm4gbW9ja3MuUmVzcG9uc2UuY3JlYXRlNDA0KHVybCkKKyAgICAgICAgICAgIGlm
IG1ldGhvZCA9PSAnUFVUJzoKKyAgICAgICAgICAgICAgICBzZWxmLnB1bGxfcmVxdWVzdHNbZXhp
c3RpbmddLnVwZGF0ZShqc29uKQorICAgICAgICAgICAgcmV0dXJuIG1vY2tzLlJlc3BvbnNlLmZy
b21Kc29uKHNlbGYucHVsbF9yZXF1ZXN0c1tleGlzdGluZ10pCisKICAgICAgICAgcmV0dXJuIG1v
Y2tzLlJlc3BvbnNlLmNyZWF0ZTQwNCh1cmwpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL2xp
YnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS9tb2Nrcy9yZW1vdGUvZ2l0X2h1Yi5weSBi
L1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L21vY2tzL3Jl
bW90ZS9naXRfaHViLnB5CmluZGV4IDZjNjgwNGQ5MDQwMjQxZGEzZTZhMWRlZjgzODlmNmVkN2Uz
MmU0MjUuLmE1NTE0NTIyNjNkMjlkYWU4NjAxODc1ZDBjODlhOTA5NjBjZWEyYmMgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L21vY2tz
L3JlbW90ZS9naXRfaHViLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNj
bXB5L3dlYmtpdHNjbXB5L21vY2tzL3JlbW90ZS9naXRfaHViLnB5CkBAIC01OCw2ICs1OCw3IEBA
IGNsYXNzIEdpdEh1Yihtb2Nrcy5SZXF1ZXN0cyk6CiAKICAgICAgICAgc2VsZi5oZWFkID0gc2Vs
Zi5jb21taXRzW3NlbGYuZGVmYXVsdF9icmFuY2hdWy0xXQogICAgICAgICBzZWxmLnRhZ3MgPSB7
fQorICAgICAgICBzZWxmLnB1bGxfcmVxdWVzdHMgPSBbXQogICAgICAgICBzZWxmLl9lbnZpcm9u
bWVudCA9IE5vbmUKIAogICAgIGRlZiBfX2VudGVyX18oc2VsZik6CkBAIC0yODAsNyArMjgxLDcg
QEAgY2xhc3MgR2l0SHViKG1vY2tzLlJlcXVlc3RzKToKICAgICAgICAgICAgICksIHVybD11cmwK
ICAgICAgICAgKQogCi0gICAgZGVmIHJlcXVlc3Qoc2VsZiwgbWV0aG9kLCB1cmwsIGRhdGE9Tm9u
ZSwgcGFyYW1zPU5vbmUsICoqa3dhcmdzKToKKyAgICBkZWYgcmVxdWVzdChzZWxmLCBtZXRob2Qs
IHVybCwgZGF0YT1Ob25lLCBwYXJhbXM9Tm9uZSwgYXV0aD1Ob25lLCBqc29uPU5vbmUsICoqa3dh
cmdzKToKICAgICAgICAgaWYgbm90IHVybC5zdGFydHN3aXRoKCdodHRwOi8vJykgYW5kIG5vdCB1
cmwuc3RhcnRzd2l0aCgnaHR0cHM6Ly8nKToKICAgICAgICAgICAgIHJldHVybiBtb2Nrcy5SZXNw
b25zZS5jcmVhdGU0MDQodXJsKQogCkBAIC0zMzEsOSArMzMyLDY1IEBAIGNsYXNzIEdpdEh1Yiht
b2Nrcy5SZXF1ZXN0cyk6CiAKICAgICAgICAgIyBBZGQgZm9yawogICAgICAgICBpZiBzdHJpcHBl
ZF91cmwuc3RhcnRzd2l0aCgne30vZm9ya3MnLmZvcm1hdChzZWxmLmFwaV9yZW1vdGUpKSBhbmQg
bWV0aG9kID09ICdQT1NUJzoKLSAgICAgICAgICAgIHVzZXJuYW1lID0ga3dhcmdzLmdldCgnanNv
bicsIHt9KS5nZXQoJ293bmVyJywgTm9uZSkKKyAgICAgICAgICAgIHVzZXJuYW1lID0gKGpzb24g
b3Ige30pLmdldCgnb3duZXInLCBOb25lKQogICAgICAgICAgICAgaWYgdXNlcm5hbWU6CiAgICAg
ICAgICAgICAgICAgc2VsZi5mb3Jrcy5hcHBlbmQodXNlcm5hbWUpCiAgICAgICAgICAgICByZXR1
cm4gbW9ja3MuUmVzcG9uc2UuZnJvbUpzb24oe30pIGlmIHVzZXJuYW1lIGVsc2UgbW9ja3MuUmVz
cG9uc2UuY3JlYXRlNDA0KHVybCkKIAorICAgICAgICAjIEFsbCBwdWxsLXJlcXVlc3RzCisgICAg
ICAgIHByX2Jhc2UgPSAne30vcHVsbHMnLmZvcm1hdChzZWxmLmFwaV9yZW1vdGUpCisgICAgICAg
IGlmIG1ldGhvZCA9PSAnR0VUJyBhbmQgc3RyaXBwZWRfdXJsID09IHByX2Jhc2U6CisgICAgICAg
ICAgICBwcnMgPSBbXQorICAgICAgICAgICAgZm9yIGNhbmRpZGF0ZSBpbiBzZWxmLnB1bGxfcmVx
dWVzdHM6CisgICAgICAgICAgICAgICAgc3RhdGUgPSBwYXJhbXMuZ2V0KCdzdGF0ZScsICdhbGwn
KQorICAgICAgICAgICAgICAgIGlmIHN0YXRlICE9ICdhbGwnIGFuZCBjYW5kaWRhdGUuZ2V0KCdz
dGF0ZScsICdjbG9zZWQnKSAhPSBzdGF0ZToKKyAgICAgICAgICAgICAgICAgICAgY29udGludWUK
KyAgICAgICAgICAgICAgICBiYXNlID0gcGFyYW1zLmdldCgnYmFzZScpCisgICAgICAgICAgICAg
ICAgaWYgYmFzZSBhbmQgY2FuZGlkYXRlLmdldCgnYmFzZScsIHt9KS5nZXQoJ3JlZicpICE9IGJh
c2U6CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICAgICAgaGVhZCA9
IHBhcmFtcy5nZXQoJ2hlYWQnKQorICAgICAgICAgICAgICAgIGlmIGhlYWQgYW5kIGhlYWQgbm90
IGluIFtjYW5kaWRhdGUuZ2V0KCdoZWFkJywge30pLmdldCgncmVmJyksIGNhbmRpZGF0ZS5nZXQo
J2hlYWQnLCB7fSkuZ2V0KCdsYWJlbCcpXToKKyAgICAgICAgICAgICAgICAgICAgY29udGludWUK
KyAgICAgICAgICAgICAgICBwcnMuYXBwZW5kKGNhbmRpZGF0ZSkKKyAgICAgICAgICAgIHJldHVy
biBtb2Nrcy5SZXNwb25zZS5mcm9tSnNvbihwcnMpCisKKyAgICAgICAgIyBDcmVhdGUvdXBkYXRl
IHB1bGwtcmVxdWVzdAorICAgICAgICBwciA9IGRpY3QoKQorICAgICAgICBpZiBtZXRob2QgPT0g
J1BPU1QnIGFuZCBhdXRoIGFuZCBzdHJpcHBlZF91cmwuc3RhcnRzd2l0aChwcl9iYXNlKToKKyAg
ICAgICAgICAgIGlmIGpzb24uZ2V0KCd0aXRsZScpOgorICAgICAgICAgICAgICAgIHByWyd0aXRs
ZSddID0ganNvblsndGl0bGUnXQorICAgICAgICAgICAgaWYganNvbi5nZXQoJ2JvZHknKToKKyAg
ICAgICAgICAgICAgICBwclsnYm9keSddID0ganNvblsnYm9keSddCisgICAgICAgICAgICBpZiBq
c29uLmdldCgnaGVhZCcpOgorICAgICAgICAgICAgICAgIHByWydoZWFkJ10gPSBkaWN0KAorICAg
ICAgICAgICAgICAgICAgICBsYWJlbD1qc29uWydoZWFkJ10sCisgICAgICAgICAgICAgICAgICAg
IHJlZj1qc29uWydoZWFkJ10uc3BsaXQoJzonKVstMV0sCisgICAgICAgICAgICAgICAgICAgIHVz
ZXI9ZGljdChsb2dpbj1hdXRoLnVzZXJuYW1lKSwKKyAgICAgICAgICAgICAgICApCisgICAgICAg
ICAgICBpZiBqc29uLmdldCgnYmFzZScpOgorICAgICAgICAgICAgICAgIHByWydiYXNlJ10gPSBk
aWN0KAorICAgICAgICAgICAgICAgICAgICBsYWJlbD0ne306e30nLmZvcm1hdChzZWxmLnJlbW90
ZS5zcGxpdCgnLycpWy0yXSwganNvblsnYmFzZSddKSwKKyAgICAgICAgICAgICAgICAgICAgcmVm
PWpzb25bJ2Jhc2UnXSwKKyAgICAgICAgICAgICAgICAgICAgdXNlcj1kaWN0KGxvZ2luPXNlbGYu
cmVtb3RlLnNwbGl0KCcvJylbLTJdKSwKKyAgICAgICAgICAgICAgICApCisKKyAgICAgICAgIyBD
cmVhdGUgc3BlY2lmaWNhbGx5CisgICAgICAgIGlmIG1ldGhvZCA9PSAnUE9TVCcgYW5kIGF1dGgg
YW5kIHN0cmlwcGVkX3VybCA9PSBwcl9iYXNlOgorICAgICAgICAgICAgcHJbJ251bWJlciddID0g
MSArIG1heChbMF0gKyBbcHIuZ2V0KCdudW1iZXInLCAwKSBmb3IgcHIgaW4gc2VsZi5wdWxsX3Jl
cXVlc3RzXSkKKyAgICAgICAgICAgIHByWyd1c2VyJ10gPSBkaWN0KGxvZ2luPWF1dGgudXNlcm5h
bWUpCisgICAgICAgICAgICBzZWxmLnB1bGxfcmVxdWVzdHMuYXBwZW5kKHByKQorICAgICAgICAg
ICAgcmV0dXJuIG1vY2tzLlJlc3BvbnNlLmZyb21Kc29uKHByKQorCisgICAgICAgICMgVXBkYXRl
IHNwZWNpZmljYWxseQorICAgICAgICBpZiBtZXRob2QgPT0gJ1BPU1QnIGFuZCBhdXRoIGFuZCBz
dHJpcHBlZF91cmwuc3RhcnRzd2l0aChwcl9iYXNlKToKKyAgICAgICAgICAgIG51bWJlciA9IGlu
dChzdHJpcHBlZF91cmwuc3BsaXQoJy8nKVstMV0pCisgICAgICAgICAgICBleGlzdGluZyA9IE5v
bmUKKyAgICAgICAgICAgIGZvciBpIGluIHJhbmdlKGxlbihzZWxmLnB1bGxfcmVxdWVzdHMpKToK
KyAgICAgICAgICAgICAgICBpZiBzZWxmLnB1bGxfcmVxdWVzdHNbaV0uZ2V0KCdudW1iZXInKSA9
PSBudW1iZXI6CisgICAgICAgICAgICAgICAgICAgIGV4aXN0aW5nID0gaQorICAgICAgICAgICAg
aWYgZXhpc3RpbmcgaXMgTm9uZToKKyAgICAgICAgICAgICAgICByZXR1cm4gbW9ja3MuUmVzcG9u
c2UuY3JlYXRlNDA0KHVybCkKKyAgICAgICAgICAgIHNlbGYucHVsbF9yZXF1ZXN0c1tleGlzdGlu
Z10udXBkYXRlKHByKQorICAgICAgICAgICAgcmV0dXJuIG1vY2tzLlJlc3BvbnNlLmZyb21Kc29u
KHNlbGYucHVsbF9yZXF1ZXN0c1tpXSkKKwogICAgICAgICByZXR1cm4gbW9ja3MuUmVzcG9uc2Uu
Y3JlYXRlNDA0KHVybCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtp
dHNjbXB5L3dlYmtpdHNjbXB5L3Byb2dyYW0vX19pbml0X18ucHkgYi9Ub29scy9TY3JpcHRzL2xp
YnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS9wcm9ncmFtL19faW5pdF9fLnB5CmluZGV4
IGM5MzhiZDk2OTAyZWFmNjc1NTQ1OTVmNDg3NTJiNmYzMWU0NTQyYTkuLjJhOWE5NjAwYWY2M2Zm
MTU5ZmU0YmJjMTQwYWE3NGE3OWVlNjY3MmQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvbGli
cmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L3Byb2dyYW0vX19pbml0X18ucHkKKysrIGIv
VG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvcHJvZ3JhbS9f
X2luaXRfXy5weQpAQCAtMzQsNiArMzQsNyBAQCBmcm9tIC5jaGVja291dCBpbXBvcnQgQ2hlY2tv
dXQKIGZyb20gLmZpbmQgaW1wb3J0IEZpbmQsIEluZm8KIGZyb20gLmxvZyBpbXBvcnQgTG9nCiBm
cm9tIC5wdWxsIGltcG9ydCBQdWxsCitmcm9tIC5wdWxsX3JlcXVlc3QgaW1wb3J0IFB1bGxSZXF1
ZXN0CiBmcm9tIC5zZXR1cF9naXRfc3ZuIGltcG9ydCBTZXR1cEdpdFN2bgogZnJvbSAuc2V0dXAg
aW1wb3J0IFNldHVwCiAKQEAgLTY1LDggKzY2LDcgQEAgZGVmIG1haW4oYXJncz1Ob25lLCBwYXRo
PU5vbmUsIGxvZ2dlcnM9Tm9uZSwgY29udHJpYnV0b3JzPU5vbmUsIGlkZW50aWZpZXJfdGVtcGwK
ICAgICApCiAKICAgICBzdWJwYXJzZXJzID0gcGFyc2VyLmFkZF9zdWJwYXJzZXJzKGhlbHA9J3N1
Yi1jb21tYW5kIGhlbHAnKQotCi0gICAgcHJvZ3JhbXMgPSBbQnJhbmNoLCBCbGFtZSwgQ2Fub25p
Y2FsaXplLCBDaGVja291dCwgQ2xlYW4sIEZpbmQsIEluZm8sIExvZywgUHVsbCwgU2V0dXBdCisg
ICAgcHJvZ3JhbXMgPSBbQmxhbWUsIEJyYW5jaCwgQ2Fub25pY2FsaXplLCBDaGVja291dCwgQ2xl
YW4sIEZpbmQsIEluZm8sIExvZywgUHVsbCwgUHVsbFJlcXVlc3QsIFNldHVwXQogICAgIGlmIHN1
YnZlcnNpb246CiAgICAgICAgIHByb2dyYW1zLmFwcGVuZChTZXR1cEdpdFN2bikKIApkaWZmIC0t
Z2l0IGEvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvcHJv
Z3JhbS9wdWxsX3JlcXVlc3QucHkgYi9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21w
eS93ZWJraXRzY21weS9wcm9ncmFtL3B1bGxfcmVxdWVzdC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NzQ3NWJm
OTA5ZThmNTAyZjhhZDYyODYxODQ5NmY5OGE2OTI4MDk0Ci0tLSAvZGV2L251bGwKKysrIGIvVG9v
bHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvcHJvZ3JhbS9wdWxs
X3JlcXVlc3QucHkKQEAgLTAsMCArMSwxNjMgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
IyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQKKyMg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UgorIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMCisjIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisjIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSCisjIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisjIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisKK2ltcG9ydCBzeXMKKworZnJvbSAuY29tbWFuZCBpbXBvcnQgQ29tbWFuZAor
ZnJvbSAuYnJhbmNoIGltcG9ydCBCcmFuY2gKKworZnJvbSB3ZWJraXRjb3JlcHkgaW1wb3J0IGFy
Z3VtZW50cywgcnVuLCBzdHJpbmdfdXRpbHMKK2Zyb20gd2Via2l0c2NtcHkgaW1wb3J0IGxvY2Fs
LCBsb2csIHJlbW90ZQorCisKK2NsYXNzIFB1bGxSZXF1ZXN0KENvbW1hbmQpOgorICAgIG5hbWUg
PSAncHVsbC1yZXF1ZXN0JworICAgIGFsaWFzZXMgPSBbJ3ByJywgJ3BmcicsICd1cGxvYWQnXQor
ICAgIGhlbHAgPSAnUHVzaCB0aGUgY3VycmVudCBjaGVja291dCBzdGF0ZSBhcyBhIHB1bGwtcmVx
dWVzdCcKKworICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBwYXJzZXIoY2xzLCBwYXJzZXIsIGxv
Z2dlcnM9Tm9uZSk6CisgICAgICAgIEJyYW5jaC5wYXJzZXIocGFyc2VyLCBsb2dnZXJzPWxvZ2dl
cnMpCisgICAgICAgIHBhcnNlci5hZGRfYXJndW1lbnQoCisgICAgICAgICAgICAnLS1uby1hZGQn
LCAnLS1hZGQnLAorICAgICAgICAgICAgZGVzdD0nd2lsbF9hZGQnLCBkZWZhdWx0PU5vbmUsCisg
ICAgICAgICAgICBoZWxwPSdXaGVuIGRyYWZ0aW5nIGEgY2hhbmdlLCBhZGQgKG9yIG5ldmVyIGFk
ZCkgbW9kaWZpZWQgZmlsZXMgdG8gc2V0IG9mIHN0YWdlZCBjaGFuZ2VzIHRvIGJlIGNvbW1pdHRl
ZCcsCisgICAgICAgICAgICBhY3Rpb249YXJndW1lbnRzLk5vQWN0aW9uLAorICAgICAgICApCisK
KyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgY3JlYXRlX2NvbW1pdChjbHMsIGFyZ3MsIHJlcG9z
aXRvcnksICoqa3dhcmdzKToKKyAgICAgICAgIyBGaXJzdCwgZmluZCB0aGUgc2V0IG9mIGZpbGVz
IHRvIGJlIG1vZGlmaWVkCisgICAgICAgIG1vZGlmaWVkID0gW10gaWYgYXJncy53aWxsX2FkZCBp
cyBGYWxzZSBlbHNlIHJlcG9zaXRvcnkubW9kaWZpZWQoKQorICAgICAgICBpZiBhcmdzLndpbGxf
YWRkOgorICAgICAgICAgICAgbW9kaWZpZWQgPSBsaXN0KHNldChtb2RpZmllZCkudW5pb24oc2V0
KHJlcG9zaXRvcnkubW9kaWZpZWQoc3RhZ2VkPUZhbHNlKSkpKQorCisgICAgICAgICMgTmV4dCwg
YWRkIGFsbCBtb2RpZmllZCBmaWxlCisgICAgICAgIGZvciBmaWxlIGluIHNldChtb2RpZmllZCkg
LSBzZXQocmVwb3NpdG9yeS5tb2RpZmllZChzdGFnZWQ9VHJ1ZSkpOgorICAgICAgICAgICAgbG9n
Lndhcm5pbmcoJyAgICBBZGRpbmcge30uLi4nLmZvcm1hdChmaWxlKSkKKyAgICAgICAgICAgIGlm
IHJ1bihbcmVwb3NpdG9yeS5leGVjdXRhYmxlKCksICdhZGQnLCBmaWxlXSwgY3dkPXJlcG9zaXRv
cnkucm9vdF9wYXRoKS5yZXR1cm5jb2RlOgorICAgICAgICAgICAgICAgIHN5cy5zdGRlcnIud3Jp
dGUoIkZhaWxlZCB0byBhZGQgJ3t9J1xuIi5mb3JtYXQoZmlsZSkpCisgICAgICAgICAgICAgICAg
cmV0dXJuIDEKKworICAgICAgICAjIFRoZW4sIHNlZSBpZiB3ZSBhbHJlYWR5IGhhdmUgYSBjb21t
aXQgYXNzb2NpYXRlZCB3aXRoIHRoaXMgYnJhbmNoIHdlIG5lZWQgdG8gbW9kaWZ5CisgICAgICAg
IGhhc19jb21taXQgPSByZXBvc2l0b3J5LmNvbW1pdChpbmNsdWRlX2xvZz1GYWxzZSwgaW5jbHVk
ZV9pZGVudGlmaWVyPUZhbHNlKS5icmFuY2ggPT0gcmVwb3NpdG9yeS5icmFuY2ggYW5kIHJlcG9z
aXRvcnkuYnJhbmNoICE9IHJlcG9zaXRvcnkuZGVmYXVsdF9icmFuY2gKKyAgICAgICAgaWYgbm90
IG1vZGlmaWVkIGFuZCBoYXNfY29tbWl0OgorICAgICAgICAgICAgbG9nLndhcm5pbmcoJ1VzaW5n
IGNvbW1pdHRlZCBjaGFuZ2VzLi4uJykKKyAgICAgICAgICAgIHJldHVybiAwCisKKyAgICAgICAg
IyBPdGhlcndpc2UsIHdlIG5lZWQgdG8gY3JlYXRlIGEgY29tbWl0CisgICAgICAgIGlmIG5vdCBt
b2RpZmllZDoKKyAgICAgICAgICAgIHN5cy5zdGRlcnIud3JpdGUoJ05vIG1vZGlmaWVkIGZpbGVz
XG4nKQorICAgICAgICAgICAgcmV0dXJuIDEKKyAgICAgICAgbG9nLndhcm5pbmcoJ0FtZW5kaW5n
IGNvbW1pdC4uLicgaWYgaGFzX2NvbW1pdCBlbHNlICdDcmVhdGluZyBjb21taXQuLi4nKQorICAg
ICAgICBpZiBydW4oW3JlcG9zaXRvcnkuZXhlY3V0YWJsZSgpLCAnY29tbWl0J10gKyAoWyctLWFt
ZW5kJ10gaWYgaGFzX2NvbW1pdCBlbHNlIFtdKSwgY3dkPXJlcG9zaXRvcnkucm9vdF9wYXRoKS5y
ZXR1cm5jb2RlOgorICAgICAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgnRmFpbGVkIHRvIGdlbmVy
YXRlIGNvbW1pdFxuJykKKyAgICAgICAgICAgIHJldHVybiAxCisKKyAgICAgICAgcmV0dXJuIDAK
KworICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBicmFuY2hfcG9pbnQoY2xzLCBhcmdzLCByZXBv
c2l0b3J5LCAqKmt3YXJncyk6CisgICAgICAgIGNudCA9IDAKKyAgICAgICAgY29tbWl0ID0gTm9u
ZQorICAgICAgICB3aGlsZSBub3QgY29tbWl0IG9yIGNvbW1pdC5icmFuY2guc3RhcnRzd2l0aChC
cmFuY2guUFJFRklYKToKKyAgICAgICAgICAgIGNudCArPSAxCisgICAgICAgICAgICBjb21taXQg
PSByZXBvc2l0b3J5LmZpbmQoYXJndW1lbnQ9J0hFQUR+e30nLmZvcm1hdChjbnQpLCBpbmNsdWRl
X2xvZz1GYWxzZSwgaW5jbHVkZV9pZGVudGlmaWVyPUZhbHNlKQorICAgICAgICAgICAgbG9nLndh
cm5pbmcoJyAgICBGb3VuZCB7fS4uLicuZm9ybWF0KHN0cmluZ191dGlscy5wbHVyYWxpemUoY250
LCAnY29tbWl0JykpKQorCisgICAgICAgIHJldHVybiBjb21taXQKKworICAgIEBjbGFzc21ldGhv
ZAorICAgIGRlZiBtYWluKGNscywgYXJncywgcmVwb3NpdG9yeSwgKiprd2FyZ3MpOgorICAgICAg
ICBpZiBub3QgaXNpbnN0YW5jZShyZXBvc2l0b3J5LCBsb2NhbC5HaXQpOgorICAgICAgICAgICAg
c3lzLnN0ZGVyci53cml0ZSgiQ2FuIG9ubHkgJ3t9JyBvbiBhIG5hdGl2ZSBHaXQgcmVwb3NpdG9y
eVxuIi5mb3JtYXQoY2xzLm5hbWUpKQorICAgICAgICAgICAgcmV0dXJuIDEKKworICAgICAgICBp
ZiBub3QgcmVwb3NpdG9yeS5icmFuY2guc3RhcnRzd2l0aChCcmFuY2guUFJFRklYKToKKyAgICAg
ICAgICAgIGlmIEJyYW5jaC5tYWluKGFyZ3MsIHJlcG9zaXRvcnksICoqa3dhcmdzKToKKyAgICAg
ICAgICAgICAgICBzeXMuc3RkZXJyLndyaXRlKCJBYmFuZG9uaW5nIHB1c2hpbmcgcHVsbC1yZXF1
ZXN0IGJlY2F1c2UgJ3t9JyBjb3VsZCBub3QgYmUgY3JlYXRlZFxuIi5mb3JtYXQoYXJncy5pc3N1
ZSkpCisgICAgICAgICAgICAgICAgcmV0dXJuIDEKKyAgICAgICAgZWxpZiBhcmdzLmlzc3VlIGFu
ZCByZXBvc2l0b3J5LmJyYW5jaCAhPSBhcmdzLmlzc3VlOgorICAgICAgICAgICAgc3lzLnN0ZGVy
ci53cml0ZSgiQ3JlYXRpbmcgYSBwdWxsLXJlcXVlc3QgZm9yICd7fScgYnV0IHdlJ3JlIG9uICd7
fSdcbiIuZm9ybWF0KGFyZ3MuaXNzdWUsIHJlcG9zaXRvcnkuYnJhbmNoKSkKKyAgICAgICAgICAg
IHJldHVybiAxCisKKyAgICAgICAgcmVzdWx0ID0gY2xzLmNyZWF0ZV9jb21taXQoYXJncywgcmVw
b3NpdG9yeSwgKiprd2FyZ3MpCisgICAgICAgIGlmIHJlc3VsdDoKKyAgICAgICAgICAgIHJldHVy
biByZXN1bHQKKworICAgICAgICBicmFuY2hfcG9pbnQgPSBjbHMuYnJhbmNoX3BvaW50KGFyZ3Ms
IHJlcG9zaXRvcnksICoqa3dhcmdzKQorCisgICAgICAgIHJtdCA9IHJlcG9zaXRvcnkucmVtb3Rl
KCkKKyAgICAgICAgaWYgbm90IHJtdDoKKyAgICAgICAgICAgIHN5cy5zdGRlcnIud3JpdGUoIid7
fScgZG9lc24ndCBoYXZlIGEgcmVjb2duaXplZCByZW1vdGVcbiIuZm9ybWF0KHJlcG9zaXRvcnku
cm9vdF9wYXRoKSkKKyAgICAgICAgICAgIHJldHVybiAxCisgICAgICAgIHRhcmdldCA9ICdmb3Jr
JyBpZiBpc2luc3RhbmNlKHJtdCwgcmVtb3RlLkdpdEh1YikgZWxzZSAnb3JpZ2luJworICAgICAg
ICBsb2cud2FybmluZygiUHVzaGluZyAne30nIHRvICd7fScuLi4iLmZvcm1hdChyZXBvc2l0b3J5
LmJyYW5jaCwgdGFyZ2V0KSkKKyAgICAgICAgaWYgcnVuKFtyZXBvc2l0b3J5LmV4ZWN1dGFibGUo
KSwgJ3B1c2gnLCAnLWYnLCB0YXJnZXQsIHJlcG9zaXRvcnkuYnJhbmNoXSwgY3dkPXJlcG9zaXRv
cnkucm9vdF9wYXRoKS5yZXR1cm5jb2RlOgorICAgICAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgi
RmFpbGVkIHRvIHB1c2ggJ3t9JyB0byAne30nXG4iLmZvcm1hdChyZXBvc2l0b3J5LmJyYW5jaCwg
dGFyZ2V0KSkKKyAgICAgICAgICAgIHJldHVybiAxCisKKyAgICAgICAgaWYgbm90IHJtdC5wdWxs
X3JlcXVlc3RzOgorICAgICAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgiJ3t9JyBjYW5ub3QgZ2Vu
ZXJhdGUgcHVsbC1yZXF1ZXN0c1xuIi5mb3JtYXQocm10LnVybCkpCisgICAgICAgICAgICByZXR1
cm4gMQorICAgICAgICB1c2VyLCBfID0gcm10LmNyZWRlbnRpYWxzKHJlcXVpcmVkPVRydWUpIGlm
IGlzaW5zdGFuY2Uocm10LCByZW1vdGUuR2l0SHViKSBlbHNlIChyZXBvc2l0b3J5LmNvbmZpZygp
Wyd1c2VyLmVtYWlsJ10sIE5vbmUpCisgICAgICAgIGNhbmRpZGF0ZXMgPSBsaXN0KHJtdC5wdWxs
X3JlcXVlc3RzLmZpbmQoaGVhZD1yZXBvc2l0b3J5LmJyYW5jaCkpCisgICAgICAgIGNvbW1pdHMg
PSBsaXN0KHJlcG9zaXRvcnkuY29tbWl0cyhiZWdpbj1kaWN0KGhhc2g9YnJhbmNoX3BvaW50Lmhh
c2gpLCBlbmQ9ZGljdChicmFuY2g9cmVwb3NpdG9yeS5icmFuY2gpKSkKKworICAgICAgICB0aXRs
ZSA9IGNvbW1pdHNbMF0ubWVzc2FnZS5zcGxpdGxpbmVzKClbMF0KKyAgICAgICAgZm9yIGNvbW1p
dCBpbiBjb21taXRzWzE6XToKKyAgICAgICAgICAgIHRpdGxlX2NhbmRpZGF0ZSA9IGNvbW1pdC5t
ZXNzYWdlLnNwbGl0bGluZXMoKVswXQorICAgICAgICAgICAgd2hpbGUgdGl0bGUgYW5kIG5vdCB0
aXRsZV9jYW5kaWRhdGUuc3RhcnRzd2l0aCh0aXRsZSk6CisgICAgICAgICAgICAgICAgdGl0bGUg
PSB0aXRsZVs6LTFdCisgICAgICAgIGlmIG5vdCB0aXRsZToKKyAgICAgICAgICAgIHRpdGxlID0g
Y29tbWl0c1swXS5tZXNzYWdlLnNwbGl0bGluZXMoKVswXQorICAgICAgICB0aXRsZSA9IHRpdGxl
LnJzdHJpcCgpLmxzdHJpcCgpCisgICAgICAgIGlmIHRpdGxlLmVuZHN3aXRoKCcoUGFydCcpOgor
ICAgICAgICAgICAgdGl0bGUgPSB0aXRsZVs6LTVdLnJzdHJpcCgpCisKKyAgICAgICAgaWYgY2Fu
ZGlkYXRlczoKKyAgICAgICAgICAgIGxvZy53YXJuaW5nKCJVcGRhdGluZyBwdWxsLXJlcXVlc3Qg
Zm9yICd7fScuLi4iLmZvcm1hdChyZXBvc2l0b3J5LmJyYW5jaCkpCisgICAgICAgICAgICBwciA9
IHJtdC5wdWxsX3JlcXVlc3RzLnVwZGF0ZSgKKyAgICAgICAgICAgICAgICBwdWxsX3JlcXVlc3Q9
Y2FuZGlkYXRlc1swXSwKKyAgICAgICAgICAgICAgICB0aXRsZT10aXRsZSwKKyAgICAgICAgICAg
ICAgICBjb21taXRzPWNvbW1pdHMsCisgICAgICAgICAgICAgICAgYmFzZT1icmFuY2hfcG9pbnQu
YnJhbmNoLAorICAgICAgICAgICAgICAgIGhlYWQ9cmVwb3NpdG9yeS5icmFuY2gsCisgICAgICAg
ICAgICApCisgICAgICAgICAgICBpZiBub3QgcHI6CisgICAgICAgICAgICAgICAgc3lzLnN0ZGVy
ci53cml0ZSgiRmFpbGVkIHRvIHVwZGF0ZSBwdWxsLXJlcXVlc3QgJ3t9J1xuIi5mb3JtYXQoY2Fu
ZGlkYXRlc1swXSkpCisgICAgICAgICAgICAgICAgcmV0dXJuIDEKKyAgICAgICAgICAgIGxvZy53
YXJuaW5nKCJVcGRhdGVkICd7fSchIi5mb3JtYXQocHIpKQorICAgICAgICBlbHNlOgorICAgICAg
ICAgICAgbG9nLndhcm5pbmcoIkNyZWF0aW5nIHB1bGwtcmVxdWVzdCBmb3IgJ3t9Jy4uLiIuZm9y
bWF0KHJlcG9zaXRvcnkuYnJhbmNoKSkKKyAgICAgICAgICAgIHByID0gcm10LnB1bGxfcmVxdWVz
dHMuY3JlYXRlKAorICAgICAgICAgICAgICAgIHRpdGxlPXRpdGxlLAorICAgICAgICAgICAgICAg
IGNvbW1pdHM9Y29tbWl0cywKKyAgICAgICAgICAgICAgICBiYXNlPWJyYW5jaF9wb2ludC5icmFu
Y2gsCisgICAgICAgICAgICAgICAgaGVhZD1yZXBvc2l0b3J5LmJyYW5jaCwKKyAgICAgICAgICAg
ICkKKyAgICAgICAgICAgIGlmIG5vdCBwcjoKKyAgICAgICAgICAgICAgICBzeXMuc3RkZXJyLndy
aXRlKCJGYWlsZWQgdG8gY3JlYXRlIHB1bGwtcmVxdWVzdCBmb3IgJ3t9J1xuIi5mb3JtYXQocmVw
b3NpdG9yeS5icmFuY2gpKQorICAgICAgICAgICAgICAgIHJldHVybiAxCisgICAgICAgICAgICBs
b2cud2FybmluZygiQ3JlYXRlZCAne30nISIuZm9ybWF0KHByKSkKKworICAgICAgICByZXR1cm4g
MApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0
c2NtcHkvcmVtb3RlL2JpdGJ1Y2tldC5weSBiL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtp
dHNjbXB5L3dlYmtpdHNjbXB5L3JlbW90ZS9iaXRidWNrZXQucHkKaW5kZXggZWEyZWU3ZDI1ZTM5
ZDUxOGMzNTRlNzM0NTNmZTFjODA1NThhNjZiNS4uYjZmZTExZGM1N2U4OGY1NDYwZDdlOTRmMzhj
MjQ0Y2VhNzVmNzNjYyAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0
c2NtcHkvd2Via2l0c2NtcHkvcmVtb3RlL2JpdGJ1Y2tldC5weQorKysgYi9Ub29scy9TY3JpcHRz
L2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS9yZW1vdGUvYml0YnVja2V0LnB5CkBA
IC0yNSwxNCArMjUsMTYwIEBAIGltcG9ydCByZXF1ZXN0cwogaW1wb3J0IHNpeAogaW1wb3J0IHN5
cwogCitpbXBvcnQganNvbgorCiBmcm9tIHdlYmtpdGNvcmVweSBpbXBvcnQgZGVjb3JhdG9ycwot
ZnJvbSB3ZWJraXRzY21weSBpbXBvcnQgQ29tbWl0Citmcm9tIHdlYmtpdHNjbXB5IGltcG9ydCBD
b21taXQsIFB1bGxSZXF1ZXN0CiBmcm9tIHdlYmtpdHNjbXB5LnJlbW90ZS5zY20gaW1wb3J0IFNj
bQogCiAKIGNsYXNzIEJpdEJ1Y2tldChTY20pOgogICAgIFVSTF9SRSA9IHJlLmNvbXBpbGUocidc
QWh0dHBzPzovLyg/UDxkb21haW4+XFMrKS9wcm9qZWN0cy8oP1A8cHJvamVjdD5cUyspL3JlcG9z
Lyg/UDxyZXBvc2l0b3J5PlxTKylcWicpCiAKKyAgICBjbGFzcyBQUkdlbmVyYXRvcihTY20uUFJH
ZW5lcmF0b3IpOgorICAgICAgICBUSVRMRV9DSEFSX0xJTUlUID0gMjU0CisgICAgICAgIEJPRFlf
Q0hBUl9MSU1JVCA9IDMyNzY2CisKKyAgICAgICAgZGVmIGZpbmQoc2VsZiwgc3RhdGU9Tm9uZSwg
aGVhZD1Ob25lLCBiYXNlPU5vbmUpOgorICAgICAgICAgICAgcGFyYW1zID0gZGljdCgKKyAgICAg
ICAgICAgICAgICBsaW1pdD0xMDAsCisgICAgICAgICAgICAgICAgd2l0aFByb3BlcnRpZXM9J2Zh
bHNlJywKKyAgICAgICAgICAgICAgICB3aXRoQXR0cmlidXRlcz0nZmFsc2UnLAorICAgICAgICAg
ICAgKQorICAgICAgICAgICAgaWYgc3RhdGUgPT0gUHVsbFJlcXVlc3QuU3RhdGUuT1BFTkVEOgor
ICAgICAgICAgICAgICAgIHBhcmFtc1snc3RhdGUnXSA9ICdPUEVOJworICAgICAgICAgICAgaWYg
c3RhdGUgPT0gUHVsbFJlcXVlc3QuU3RhdGUuQ0xPU0VEOgorICAgICAgICAgICAgICAgIHBhcmFt
c1snc3RhdGUnXSA9IFsnREVDTElORUQnLCAnTUVSR0VEJywgJ1NVUEVSU0VERUQnXQorICAgICAg
ICAgICAgaWYgaGVhZDoKKyAgICAgICAgICAgICAgICBwYXJhbXNbJ2RpcmVjdGlvbiddID0gJ09V
VEdPSU5HJworICAgICAgICAgICAgICAgIHBhcmFtc1snYXQnXSA9ICdyZWZzL2hlYWRzL3t9Jy5m
b3JtYXQoaGVhZCkKKyAgICAgICAgICAgIGRhdGEgPSBzZWxmLnJlcG9zaXRvcnkucmVxdWVzdCgn
cHVsbC1yZXF1ZXN0cycsIHBhcmFtcz1wYXJhbXMpCisgICAgICAgICAgICBmb3IgZGF0dW0gaW4g
ZGF0YSBvciBbXToKKyAgICAgICAgICAgICAgICBpZiBiYXNlIGFuZCBub3QgZGF0dW1bJ3RvUmVm
J11bJ2lkJ10uZW5kc3dpdGgoYmFzZSk6CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCisg
ICAgICAgICAgICAgICAgeWllbGQgUHVsbFJlcXVlc3QoCisgICAgICAgICAgICAgICAgICAgIG51
bWJlcj1kYXR1bVsnaWQnXSwKKyAgICAgICAgICAgICAgICAgICAgdGl0bGU9ZGF0dW0uZ2V0KCd0
aXRsZScpLAorICAgICAgICAgICAgICAgICAgICBib2R5PWRhdHVtLmdldCgnZGVzY3JpcHRpb24n
KSwKKyAgICAgICAgICAgICAgICAgICAgYXV0aG9yPXNlbGYucmVwb3NpdG9yeS5jb250cmlidXRv
cnMuY3JlYXRlKAorICAgICAgICAgICAgICAgICAgICAgICAgZGF0dW1bJ2F1dGhvciddWyd1c2Vy
J11bJ2Rpc3BsYXlOYW1lJ10sCisgICAgICAgICAgICAgICAgICAgICAgICBkYXR1bVsnYXV0aG9y
J11bJ3VzZXInXVsnZW1haWxBZGRyZXNzJ10sCisgICAgICAgICAgICAgICAgICAgICksIGhlYWQ9
ZGF0dW1bJ2Zyb21SZWYnXVsnZGlzcGxheUlkJ10sCisgICAgICAgICAgICAgICAgICAgIGJhc2U9
ZGF0dW1bJ3RvUmVmJ11bJ2Rpc3BsYXlJZCddLAorICAgICAgICAgICAgICAgICkKKworICAgICAg
ICBkZWYgY3JlYXRlKHNlbGYsIGhlYWQsIHRpdGxlLCBib2R5PU5vbmUsIGNvbW1pdHM9Tm9uZSwg
YmFzZT1Ob25lKToKKyAgICAgICAgICAgIGZvciBrZXksIHZhbHVlIGluIGRpY3QoaGVhZD1oZWFk
LCB0aXRsZT10aXRsZSkuaXRlbXMoKToKKyAgICAgICAgICAgICAgICBpZiBub3QgdmFsdWU6Cisg
ICAgICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIk11c3QgZGVmaW5lICd7fScgd2hl
biBjcmVhdGluZyBwdWxsLXJlcXVlc3QiLmZvcm1hdChrZXkpKQorCisgICAgICAgICAgICBpZiBs
ZW4odGl0bGUpID4gc2VsZi5USVRMRV9DSEFSX0xJTUlUOgorICAgICAgICAgICAgICAgIHJhaXNl
IFZhbHVlRXJyb3IoJ1RpdGxlIGxlbmd0aCB0b28gbG9uZy4gTGltaXQgaXM6IHt9Jy5mb3JtYXQo
c2VsZi5USVRMRV9DSEFSX0xJTUlUKSkKKyAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gUHVsbFJl
cXVlc3QuY3JlYXRlX2JvZHkoYm9keSwgY29tbWl0cykKKyAgICAgICAgICAgIGlmIGRlc2NyaXB0
aW9uIGFuZCBsZW4oZGVzY3JpcHRpb24pID4gc2VsZi5CT0RZX0NIQVJfTElNSVQ6CisgICAgICAg
ICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignQm9keSBsZW5ndGggdG9vIGxvbmcuIExpbWl0IGlz
OiB7fScuZm9ybWF0KHNlbGYuQk9EWV9DSEFSX0xJTUlUKSkKKyAgICAgICAgICAgIHJlc3BvbnNl
ID0gcmVxdWVzdHMucG9zdCgKKyAgICAgICAgICAgICAgICAnaHR0cHM6Ly97ZG9tYWlufS9yZXN0
L2FwaS8xLjAvcHJvamVjdHMve3Byb2plY3R9L3JlcG9zL3tuYW1lfS9wdWxsLXJlcXVlc3RzJy5m
b3JtYXQoCisgICAgICAgICAgICAgICAgICAgIGRvbWFpbj1zZWxmLnJlcG9zaXRvcnkuZG9tYWlu
LAorICAgICAgICAgICAgICAgICAgICBwcm9qZWN0PXNlbGYucmVwb3NpdG9yeS5wcm9qZWN0LAor
ICAgICAgICAgICAgICAgICAgICBuYW1lPXNlbGYucmVwb3NpdG9yeS5uYW1lLAorICAgICAgICAg
ICAgICAgICksIGpzb249ZGljdCgKKyAgICAgICAgICAgICAgICAgICAgdGl0bGU9dGl0bGUsCisg
ICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uPVB1bGxSZXF1ZXN0LmNyZWF0ZV9ib2R5KGJv
ZHksIGNvbW1pdHMpLAorICAgICAgICAgICAgICAgICAgICBmcm9tUmVmPWRpY3QoCisgICAgICAg
ICAgICAgICAgICAgICAgICBpZD0ncmVmcy9oZWFkcy97fScuZm9ybWF0KGhlYWQpLAorICAgICAg
ICAgICAgICAgICAgICAgICAgcmVwb3NpdG9yeT1kaWN0KAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHNsdWc9c2VsZi5yZXBvc2l0b3J5Lm5hbWUsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcHJvamVjdD1kaWN0KGtleT1zZWxmLnJlcG9zaXRvcnkucHJvamVjdCksCisgICAgICAg
ICAgICAgICAgICAgICAgICApLAorICAgICAgICAgICAgICAgICAgICApLCB0b1JlZj1kaWN0KAor
ICAgICAgICAgICAgICAgICAgICAgICAgaWQ9J3JlZnMvaGVhZHMve30nLmZvcm1hdChiYXNlIG9y
IHNlbGYucmVwb3NpdG9yeS5kZWZhdWx0X2JyYW5jaCksCisgICAgICAgICAgICAgICAgICAgICAg
ICByZXBvc2l0b3J5PWRpY3QoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2x1Zz1zZWxm
LnJlcG9zaXRvcnkubmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0PWRp
Y3Qoa2V5PXNlbGYucmVwb3NpdG9yeS5wcm9qZWN0KSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICksCisgICAgICAgICAgICAgICAgICAgICksCisgICAgICAgICAgICAgICAgKSwKKyAgICAgICAg
ICAgICkKKyAgICAgICAgICAgIGlmIHJlc3BvbnNlLnN0YXR1c19jb2RlIC8vIDEwMCAhPSAyOgor
ICAgICAgICAgICAgICAgIHJldHVybiBOb25lCisgICAgICAgICAgICBkYXRhID0gcmVzcG9uc2Uu
anNvbigpCisgICAgICAgICAgICByZXR1cm4gUHVsbFJlcXVlc3QoCisgICAgICAgICAgICAgICAg
bnVtYmVyPWRhdGFbJ2lkJ10sCisgICAgICAgICAgICAgICAgdGl0bGU9ZGF0YS5nZXQoJ3RpdGxl
JyksCisgICAgICAgICAgICAgICAgYm9keT1kYXRhLmdldCgnZGVzY3JpcHRpb24nKSwKKyAgICAg
ICAgICAgICAgICBhdXRob3I9c2VsZi5yZXBvc2l0b3J5LmNvbnRyaWJ1dG9ycy5jcmVhdGUoCisg
ICAgICAgICAgICAgICAgICAgIGRhdGFbJ2F1dGhvciddWyd1c2VyJ11bJ2Rpc3BsYXlOYW1lJ10s
CisgICAgICAgICAgICAgICAgICAgIGRhdGFbJ2F1dGhvciddWyd1c2VyJ11bJ2VtYWlsQWRkcmVz
cyddLAorICAgICAgICAgICAgICAgICksIGhlYWQ9ZGF0YVsnZnJvbVJlZiddWydkaXNwbGF5SWQn
XSwKKyAgICAgICAgICAgICAgICBiYXNlPWRhdGFbJ3RvUmVmJ11bJ2Rpc3BsYXlJZCddLAorICAg
ICAgICAgICAgKQorCisgICAgICAgIGRlZiB1cGRhdGUoc2VsZiwgcHVsbF9yZXF1ZXN0LCBoZWFk
PU5vbmUsIHRpdGxlPU5vbmUsIGJvZHk9Tm9uZSwgY29tbWl0cz1Ob25lLCBiYXNlPU5vbmUpOgor
ICAgICAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UocHVsbF9yZXF1ZXN0LCBQdWxsUmVxdWVzdCk6
CisgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigKKyAgICAgICAgICAgICAgICAgICAg
IkV4cGVjdGVkICdwdWxsX3JlcXVlc3QnIHRvIGJlIG9mIHR5cGUgJ3t9JyBub3QgJ3t9JyIuZm9y
bWF0KFB1bGxSZXF1ZXN0LCB0eXBlKHB1bGxfcmVxdWVzdCkpKQorICAgICAgICAgICAgaWYgbm90
IGFueSgoaGVhZCwgdGl0bGUsIGJvZHksIGNvbW1pdHMsIGJhc2UpKToKKyAgICAgICAgICAgICAg
ICByYWlzZSBWYWx1ZUVycm9yKCdObyBhcmd1bWVudHMgdG8gdXBkYXRlIHB1bGwtcmVxdWVzdCBw
cm92aWRlZCcpCisKKyAgICAgICAgICAgIHRvX2NoYW5nZSA9IGRpY3QoKQorICAgICAgICAgICAg
aWYgdGl0bGU6CisgICAgICAgICAgICAgICAgdG9fY2hhbmdlWyd0aXRsZSddID0gdGl0bGUKKyAg
ICAgICAgICAgIGlmIGJvZHkgb3IgY29tbWl0czoKKyAgICAgICAgICAgICAgICB0b19jaGFuZ2Vb
J2Rlc2NyaXB0aW9uJ10gPSBQdWxsUmVxdWVzdC5jcmVhdGVfYm9keShib2R5LCBjb21taXRzKQor
ICAgICAgICAgICAgaWYgaGVhZDoKKyAgICAgICAgICAgICAgICB0b19jaGFuZ2VbJ2Zyb21SZWYn
XSA9IGRpY3QoCisgICAgICAgICAgICAgICAgICAgIGlkPSdyZWZzL2hlYWRzL3t9Jy5mb3JtYXQo
aGVhZCksCisgICAgICAgICAgICAgICAgICAgIHJlcG9zaXRvcnk9ZGljdCgKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHNsdWc9c2VsZi5yZXBvc2l0b3J5Lm5hbWUsCisgICAgICAgICAgICAgICAg
ICAgICAgICBwcm9qZWN0PWRpY3Qoa2V5PXNlbGYucmVwb3NpdG9yeS5wcm9qZWN0KSwKKyAgICAg
ICAgICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICBpZiBjb21t
aXRzOgorICAgICAgICAgICAgICAgIGlmIHRvX2NoYW5nZS5nZXQoJ2Zyb21SZWYnKToKKyAgICAg
ICAgICAgICAgICAgICAgdG9fY2hhbmdlWydmcm9tUmVmJ11bJ2xhdGVzdENvbW1pdCddID0gY29t
bWl0c1swXS5oYXNoCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAg
dG9fY2hhbmdlWydmcm9tUmVmJ10gPSBkaWN0KGxhdGVzdENvbW1pdD1jb21taXRzWzBdLmhhc2gp
CisgICAgICAgICAgICBpZiBiYXNlOgorICAgICAgICAgICAgICAgIHRvX2NoYW5nZVsndG9SZWYn
XSA9IGRpY3QoCisgICAgICAgICAgICAgICAgICAgIGlkPSdyZWZzL2hlYWRzL3t9Jy5mb3JtYXQo
YmFzZSBvciBzZWxmLnJlcG9zaXRvcnkuZGVmYXVsdF9icmFuY2gpLAorICAgICAgICAgICAgICAg
ICAgICByZXBvc2l0b3J5PWRpY3QoCisgICAgICAgICAgICAgICAgICAgICAgICBzbHVnPXNlbGYu
cmVwb3NpdG9yeS5uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgcHJvamVjdD1kaWN0KGtl
eT1zZWxmLnJlcG9zaXRvcnkucHJvamVjdCksCisgICAgICAgICAgICAgICAgICAgICksCisgICAg
ICAgICAgICAgICAgKQorCisgICAgICAgICAgICBwcl91cmwgPSAnaHR0cHM6Ly97ZG9tYWlufS9y
ZXN0L2FwaS8xLjAvcHJvamVjdHMve3Byb2plY3R9L3JlcG9zL3tuYW1lfS9wdWxsLXJlcXVlc3Rz
L3tpZH0nLmZvcm1hdCgKKyAgICAgICAgICAgICAgICBkb21haW49c2VsZi5yZXBvc2l0b3J5LmRv
bWFpbiwKKyAgICAgICAgICAgICAgICBwcm9qZWN0PXNlbGYucmVwb3NpdG9yeS5wcm9qZWN0LAor
ICAgICAgICAgICAgICAgIG5hbWU9c2VsZi5yZXBvc2l0b3J5Lm5hbWUsCisgICAgICAgICAgICAg
ICAgaWQ9cHVsbF9yZXF1ZXN0Lm51bWJlciwKKyAgICAgICAgICAgICkKKyAgICAgICAgICAgIHJl
c3BvbnNlID0gcmVxdWVzdHMuZ2V0KHByX3VybCkKKyAgICAgICAgICAgIGlmIHJlc3BvbnNlLnN0
YXR1c19jb2RlIC8vIDEwMCAhPSAyOgorICAgICAgICAgICAgICAgIHJldHVybiBOb25lCisgICAg
ICAgICAgICBkYXRhID0gcmVzcG9uc2UuanNvbigpCisgICAgICAgICAgICBkZWwgZGF0YVsnYXV0
aG9yJ10KKyAgICAgICAgICAgIGRlbCBkYXRhWydwYXJ0aWNpcGFudHMnXQorICAgICAgICAgICAg
ZGF0YS51cGRhdGUodG9fY2hhbmdlKQorCisgICAgICAgICAgICByZXNwb25zZSA9IHJlcXVlc3Rz
LnB1dChwcl91cmwsIGpzb249ZGF0YSkKKyAgICAgICAgICAgIGlmIHJlc3BvbnNlLnN0YXR1c19j
b2RlIC8vIDEwMCAhPSAyOgorICAgICAgICAgICAgICAgIHJldHVybiBOb25lCisgICAgICAgICAg
ICBkYXRhID0gcmVzcG9uc2UuanNvbigpCisKKyAgICAgICAgICAgIHB1bGxfcmVxdWVzdC50aXRs
ZSA9IGRhdGEuZ2V0KCd0aXRsZScsIHB1bGxfcmVxdWVzdC50aXRsZSkKKyAgICAgICAgICAgIGlm
IGRhdGEuZ2V0KCdkZXNjcmlwdGlvbicpOgorICAgICAgICAgICAgICAgIHB1bGxfcmVxdWVzdC5i
b2R5LCBwdWxsX3JlcXVlc3QuY29tbWl0cyA9IHB1bGxfcmVxdWVzdC5wYXJzZV9ib2R5KGRhdGEu
Z2V0KCdkZXNjcmlwdGlvbicpKQorICAgICAgICAgICAgdXNlciA9IGRhdGEuZ2V0KCdhdXRob3In
LCB7fSkuZ2V0KCd1c2VyJywge30pCisgICAgICAgICAgICBpZiB1c2VyLmdldCgnZGlzcGxheU5h
bWUnKSBhbmQgdXNlci5nZXQoJ2VtYWlsQWRkcmVzcycpOgorICAgICAgICAgICAgICAgIHB1bGxf
cmVxdWVzdC5hdXRob3IgPSBzZWxmLnJlcG9zaXRvcnkuY29udHJpYnV0b3JzLmNyZWF0ZSh1c2Vy
WydkaXNwbGF5TmFtZSddLCB1c2VyWydlbWFpbEFkZHJlc3MnXSkKKyAgICAgICAgICAgIHB1bGxf
cmVxdWVzdC5oZWFkID0gZGF0YS5nZXQoJ2Zyb21SZWYnLCB7fSkuZ2V0KCdkaXNwbGF5SWQnLCBw
dWxsX3JlcXVlc3QuYmFzZSkKKyAgICAgICAgICAgIHB1bGxfcmVxdWVzdC5iYXNlID0gZGF0YS5n
ZXQoJ3RvUmVmJywge30pLmdldCgnZGlzcGxheUlkJywgcHVsbF9yZXF1ZXN0LmJhc2UpCisKKyAg
ICAgICAgICAgIHJldHVybiBwdWxsX3JlcXVlc3QKKworCiAgICAgQGNsYXNzbWV0aG9kCiAgICAg
ZGVmIGlzX3dlYnNlcnZlcihjbHMsIHVybCk6CiAgICAgICAgIHJldHVybiBUcnVlIGlmIGNscy5V
UkxfUkUubWF0Y2godXJsKSBlbHNlIEZhbHNlCkBAIC01Miw2ICsxOTgsOCBAQCBjbGFzcyBCaXRC
dWNrZXQoU2NtKToKICAgICAgICAgICAgIGlkPWlkIG9yIHNlbGYubmFtZS5sb3dlcigpLAogICAg
ICAgICApCiAKKyAgICAgICAgc2VsZi5wdWxsX3JlcXVlc3RzID0gc2VsZi5QUkdlbmVyYXRvcihz
ZWxmKQorCiAgICAgQHByb3BlcnR5CiAgICAgZGVmIGlzX2dpdChzZWxmKToKICAgICAgICAgcmV0
dXJuIFRydWUKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5
L3dlYmtpdHNjbXB5L3JlbW90ZS9naXRfaHViLnB5IGIvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMv
d2Via2l0c2NtcHkvd2Via2l0c2NtcHkvcmVtb3RlL2dpdF9odWIucHkKaW5kZXggYjA1MjlmMmNi
MTU4MGFiOWE1NWJiZTBhYTBmYzgwMWU2YmJmMTU3OC4uNjRlZGZjMmQ3NmQzN2YxMzFmYmI0OGFk
MmIxMjlmMmU1N2Q4MjA5YSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Vi
a2l0c2NtcHkvd2Via2l0c2NtcHkvcmVtb3RlL2dpdF9odWIucHkKKysrIGIvVG9vbHMvU2NyaXB0
cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvcmVtb3RlL2dpdF9odWIucHkKQEAg
LTI5LDcgKzI5LDcgQEAgaW1wb3J0IHN5cwogZnJvbSBkYXRldGltZSBpbXBvcnQgZGF0ZXRpbWUK
IGZyb20gcmVxdWVzdHMuYXV0aCBpbXBvcnQgSFRUUEJhc2ljQXV0aAogZnJvbSB3ZWJraXRjb3Jl
cHkgaW1wb3J0IGNyZWRlbnRpYWxzLCBkZWNvcmF0b3JzCi1mcm9tIHdlYmtpdHNjbXB5IGltcG9y
dCBDb21taXQKK2Zyb20gd2Via2l0c2NtcHkgaW1wb3J0IENvbW1pdCwgUHVsbFJlcXVlc3QKIGZy
b20gd2Via2l0c2NtcHkucmVtb3RlLnNjbSBpbXBvcnQgU2NtCiBmcm9tIHhtbC5kb20gaW1wb3J0
IG1pbmlkb20KIApAQCAtMzgsNiArMzgsMTAxIEBAIGNsYXNzIEdpdEh1YihTY20pOgogICAgIFVS
TF9SRSA9IHJlLmNvbXBpbGUocidcQWh0dHBzPzovL2dpdGh1Yi4oP1A8ZG9tYWluPlxTKykvKD9Q
PG93bmVyPlxTKykvKD9QPHJlcG9zaXRvcnk+XFMrKVxaJykKICAgICBFTUFJTF9SRSA9IHJlLmNv
bXBpbGUocicoP1A8ZW1haWw+W15AXStAW15AXSspKEAuKik/JykKIAorICAgIGNsYXNzIFBSR2Vu
ZXJhdG9yKFNjbS5QUkdlbmVyYXRvcik6CisgICAgICAgIGRlZiBmaW5kKHNlbGYsIHN0YXRlPU5v
bmUsIGhlYWQ9Tm9uZSwgYmFzZT1Ob25lKToKKyAgICAgICAgICAgIGlmIG5vdCBzdGF0ZToKKyAg
ICAgICAgICAgICAgICBzdGF0ZSA9ICdhbGwnCisgICAgICAgICAgICB1c2VyLCBfID0gc2VsZi5y
ZXBvc2l0b3J5LmNyZWRlbnRpYWxzKCkKKyAgICAgICAgICAgIGRhdGEgPSBzZWxmLnJlcG9zaXRv
cnkucmVxdWVzdCgncHVsbHMnLCBwYXJhbXM9ZGljdCgKKyAgICAgICAgICAgICAgICBzdGF0ZT1z
dGF0ZSwKKyAgICAgICAgICAgICAgICBiYXNlPWJhc2UsCisgICAgICAgICAgICAgICAgaGVhZD0n
e306e30nLmZvcm1hdCh1c2VyLCBoZWFkKSBpZiB1c2VyIGFuZCBoZWFkIGVsc2UgaGVhZCwKKyAg
ICAgICAgICAgICkpCisgICAgICAgICAgICBmb3IgZGF0dW0gaW4gZGF0YSBvciBbXToKKyAgICAg
ICAgICAgICAgICBpZiBiYXNlIGFuZCBkYXR1bVsnYmFzZSddWydyZWYnXSAhPSBiYXNlOgorICAg
ICAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgICAgIGlmIGhlYWQgYW5kIG5v
dCBkYXR1bVsnaGVhZCddWydyZWYnXS5lbmRzd2l0aChoZWFkKToKKyAgICAgICAgICAgICAgICAg
ICAgY29udGludWUKKyAgICAgICAgICAgICAgICB5aWVsZCBQdWxsUmVxdWVzdCgKKyAgICAgICAg
ICAgICAgICAgICAgbnVtYmVyPWRhdHVtWydudW1iZXInXSwKKyAgICAgICAgICAgICAgICAgICAg
dGl0bGU9ZGF0dW0uZ2V0KCd0aXRsZScpLAorICAgICAgICAgICAgICAgICAgICBib2R5PWRhdHVt
LmdldCgnYm9keScpLAorICAgICAgICAgICAgICAgICAgICBhdXRob3I9c2VsZi5yZXBvc2l0b3J5
LmNvbnRyaWJ1dG9ycy5jcmVhdGUoZGF0dW1bJ3VzZXInXVsnbG9naW4nXSksCisgICAgICAgICAg
ICAgICAgICAgIGhlYWQ9ZGF0dW1bJ2hlYWQnXVsncmVmJ10sCisgICAgICAgICAgICAgICAgICAg
IGJhc2U9ZGF0dW1bJ2Jhc2UnXVsncmVmJ10sCisgICAgICAgICAgICAgICAgKQorCisgICAgICAg
IGRlZiBjcmVhdGUoc2VsZiwgaGVhZCwgdGl0bGUsIGJvZHk9Tm9uZSwgY29tbWl0cz1Ob25lLCBi
YXNlPU5vbmUpOgorICAgICAgICAgICAgZm9yIGtleSwgdmFsdWUgaW4gZGljdChoZWFkPWhlYWQs
IHRpdGxlPXRpdGxlKS5pdGVtcygpOgorICAgICAgICAgICAgICAgIGlmIG5vdCB2YWx1ZToKKyAg
ICAgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiTXVzdCBkZWZpbmUgJ3t9JyB3aGVu
IGNyZWF0aW5nIHB1bGwtcmVxdWVzdCIuZm9ybWF0KGtleSkpCisKKyAgICAgICAgICAgIHVzZXIs
IF8gPSBzZWxmLnJlcG9zaXRvcnkuY3JlZGVudGlhbHMocmVxdWlyZWQ9VHJ1ZSkKKyAgICAgICAg
ICAgIHJlc3BvbnNlID0gcmVxdWVzdHMucG9zdCgKKyAgICAgICAgICAgICAgICAne2FwaV91cmx9
L3JlcG9zL3tvd25lcn0ve25hbWV9L3B1bGxzJy5mb3JtYXQoCisgICAgICAgICAgICAgICAgICAg
IGFwaV91cmw9c2VsZi5yZXBvc2l0b3J5LmFwaV91cmwsCisgICAgICAgICAgICAgICAgICAgIG93
bmVyPXNlbGYucmVwb3NpdG9yeS5vd25lciwKKyAgICAgICAgICAgICAgICAgICAgbmFtZT1zZWxm
LnJlcG9zaXRvcnkubmFtZSwKKyAgICAgICAgICAgICAgICApLCBhdXRoPUhUVFBCYXNpY0F1dGgo
KnNlbGYucmVwb3NpdG9yeS5jcmVkZW50aWFscyhyZXF1aXJlZD1UcnVlKSksCisgICAgICAgICAg
ICAgICAgaGVhZGVycz1kaWN0KEFjY2VwdD0nYXBwbGljYXRpb24vdm5kLmdpdGh1Yi52Mytqc29u
JyksCisgICAgICAgICAgICAgICAganNvbj1kaWN0KAorICAgICAgICAgICAgICAgICAgICB0aXRs
ZT10aXRsZSwKKyAgICAgICAgICAgICAgICAgICAgYm9keT1QdWxsUmVxdWVzdC5jcmVhdGVfYm9k
eShib2R5LCBjb21taXRzKSwKKyAgICAgICAgICAgICAgICAgICAgYmFzZT1iYXNlIG9yIHNlbGYu
cmVwb3NpdG9yeS5kZWZhdWx0X2JyYW5jaCwKKyAgICAgICAgICAgICAgICAgICAgaGVhZD0ne306
e30nLmZvcm1hdCh1c2VyLCBoZWFkKSwKKyAgICAgICAgICAgICAgICApLAorICAgICAgICAgICAg
KQorICAgICAgICAgICAgaWYgcmVzcG9uc2Uuc3RhdHVzX2NvZGUgLy8gMTAwICE9IDI6CisgICAg
ICAgICAgICAgICAgcmV0dXJuIE5vbmUKKyAgICAgICAgICAgIGRhdGEgPSByZXNwb25zZS5qc29u
KCkKKyAgICAgICAgICAgIHJldHVybiBQdWxsUmVxdWVzdCgKKyAgICAgICAgICAgICAgICBudW1i
ZXI9ZGF0YVsnbnVtYmVyJ10sCisgICAgICAgICAgICAgICAgdGl0bGU9ZGF0YS5nZXQoJ3RpdGxl
JyksCisgICAgICAgICAgICAgICAgYm9keT1kYXRhLmdldCgnYm9keScpLAorICAgICAgICAgICAg
ICAgIGF1dGhvcj1zZWxmLnJlcG9zaXRvcnkuY29udHJpYnV0b3JzLmNyZWF0ZShkYXRhWyd1c2Vy
J11bJ2xvZ2luJ10pLAorICAgICAgICAgICAgICAgIGhlYWQ9ZGF0YVsnaGVhZCddWydyZWYnXSwK
KyAgICAgICAgICAgICAgICBiYXNlPWRhdGFbJ2Jhc2UnXVsncmVmJ10sCisgICAgICAgICAgICAp
CisKKyAgICAgICAgZGVmIHVwZGF0ZShzZWxmLCBwdWxsX3JlcXVlc3QsIGhlYWQ9Tm9uZSwgdGl0
bGU9Tm9uZSwgYm9keT1Ob25lLCBjb21taXRzPU5vbmUsIGJhc2U9Tm9uZSk6CisgICAgICAgICAg
ICBpZiBub3QgaXNpbnN0YW5jZShwdWxsX3JlcXVlc3QsIFB1bGxSZXF1ZXN0KToKKyAgICAgICAg
ICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJFeHBlY3RlZCAncHVsbF9yZXF1ZXN0JyB0byBiZSBv
ZiB0eXBlICd7fScgbm90ICd7fSciLmZvcm1hdChQdWxsUmVxdWVzdCwgdHlwZShwdWxsX3JlcXVl
c3QpKSkKKyAgICAgICAgICAgIGlmIG5vdCBhbnkoKGhlYWQsIHRpdGxlLCBib2R5LCBjb21taXRz
LCBiYXNlKSk6CisgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignTm8gYXJndW1lbnRz
IHRvIHVwZGF0ZSBwdWxsLXJlcXVlc3QgcHJvdmlkZWQnKQorCisgICAgICAgICAgICB1c2VyLCBf
ID0gc2VsZi5yZXBvc2l0b3J5LmNyZWRlbnRpYWxzKHJlcXVpcmVkPVRydWUpCisgICAgICAgICAg
ICB1cGRhdGVzID0gZGljdCgKKyAgICAgICAgICAgICAgICB0aXRsZT10aXRsZSBvciBwdWxsX3Jl
cXVlc3QudGl0bGUsCisgICAgICAgICAgICAgICAgYmFzZT1iYXNlIG9yIHB1bGxfcmVxdWVzdC5i
YXNlLAorICAgICAgICAgICAgICAgIGhlYWQ9J3t9Ont9Jy5mb3JtYXQodXNlciwgaGVhZCkgaWYg
aGVhZCBlbHNlIHB1bGxfcmVxdWVzdC5oZWFkLAorICAgICAgICAgICAgKQorICAgICAgICAgICAg
aWYgYm9keSBvciBjb21taXRzOgorICAgICAgICAgICAgICAgIHVwZGF0ZXNbJ2JvZHknXSA9IFB1
bGxSZXF1ZXN0LmNyZWF0ZV9ib2R5KGJvZHksIGNvbW1pdHMpCisgICAgICAgICAgICByZXNwb25z
ZSA9IHJlcXVlc3RzLnBvc3QoCisgICAgICAgICAgICAgICAgJ3thcGlfdXJsfS9yZXBvcy97b3du
ZXJ9L3tuYW1lfS9wdWxscy97bnVtYmVyfScuZm9ybWF0KAorICAgICAgICAgICAgICAgICAgICBh
cGlfdXJsPXNlbGYucmVwb3NpdG9yeS5hcGlfdXJsLAorICAgICAgICAgICAgICAgICAgICBvd25l
cj1zZWxmLnJlcG9zaXRvcnkub3duZXIsCisgICAgICAgICAgICAgICAgICAgIG5hbWU9c2VsZi5y
ZXBvc2l0b3J5Lm5hbWUsCisgICAgICAgICAgICAgICAgICAgIG51bWJlcj1wdWxsX3JlcXVlc3Qu
bnVtYmVyLAorICAgICAgICAgICAgICAgICksIGF1dGg9SFRUUEJhc2ljQXV0aCgqc2VsZi5yZXBv
c2l0b3J5LmNyZWRlbnRpYWxzKHJlcXVpcmVkPVRydWUpKSwKKyAgICAgICAgICAgICAgICBoZWFk
ZXJzPWRpY3QoQWNjZXB0PSdhcHBsaWNhdGlvbi92bmQuZ2l0aHViLnYzK2pzb24nKSwKKyAgICAg
ICAgICAgICAgICBqc29uPXVwZGF0ZXMsCisgICAgICAgICAgICApCisgICAgICAgICAgICBpZiBy
ZXNwb25zZS5zdGF0dXNfY29kZSAvLyAxMDAgIT0gMjoKKyAgICAgICAgICAgICAgICByZXR1cm4g
Tm9uZQorICAgICAgICAgICAgZGF0YSA9IHJlc3BvbnNlLmpzb24oKQorCisgICAgICAgICAgICBw
dWxsX3JlcXVlc3QudGl0bGUgPSBkYXRhLmdldCgndGl0bGUnLCBwdWxsX3JlcXVlc3QudGl0bGUp
CisgICAgICAgICAgICBpZiBkYXRhLmdldCgnYm9keScpOgorICAgICAgICAgICAgICAgIHB1bGxf
cmVxdWVzdC5ib2R5LCBwdWxsX3JlcXVlc3QuY29tbWl0cyA9IHB1bGxfcmVxdWVzdC5wYXJzZV9i
b2R5KGRhdGEuZ2V0KCdib2R5JykpCisgICAgICAgICAgICBpZiBkYXRhLmdldCgndXNlcicsIHt9
KS5nZXQoJ2xvZ2luJyk6CisgICAgICAgICAgICAgICAgcHVsbF9yZXF1ZXN0LmF1dGhvciA9IHNl
bGYucmVwb3NpdG9yeS5jb250cmlidXRvcnMuY3JlYXRlKGRhdGFbJ3VzZXInXVsnbG9naW4nXSkK
KyAgICAgICAgICAgIHB1bGxfcmVxdWVzdC5oZWFkID0gZGF0YS5nZXQoJ2hlYWQnLCB7fSkuZ2V0
KCdkaXNwbGF5SWQnLCBwdWxsX3JlcXVlc3QuYmFzZSkKKyAgICAgICAgICAgIHB1bGxfcmVxdWVz
dC5iYXNlID0gZGF0YS5nZXQoJ2Jhc2UnLCB7fSkuZ2V0KCdkaXNwbGF5SWQnLCBwdWxsX3JlcXVl
c3QuYmFzZSkKKworICAgICAgICAgICAgcmV0dXJuIHB1bGxfcmVxdWVzdAorCisKICAgICBAY2xh
c3NtZXRob2QKICAgICBkZWYgaXNfd2Vic2VydmVyKGNscywgdXJsKToKICAgICAgICAgcmV0dXJu
IFRydWUgaWYgY2xzLlVSTF9SRS5tYXRjaCh1cmwpIGVsc2UgRmFsc2UKQEAgLTYyLDYgKzE1Nyw4
IEBAIGNsYXNzIEdpdEh1YihTY20pOgogICAgICAgICAgICAgaWQ9aWQgb3Igc2VsZi5uYW1lLmxv
d2VyKCksCiAgICAgICAgICkKIAorICAgICAgICBzZWxmLnB1bGxfcmVxdWVzdHMgPSBzZWxmLlBS
R2VuZXJhdG9yKHNlbGYpCisKICAgICBkZWYgY3JlZGVudGlhbHMoc2VsZiwgcmVxdWlyZWQ9VHJ1
ZSk6CiAgICAgICAgIHVzZXJuYW1lLCB0b2tlbiA9IGNyZWRlbnRpYWxzKAogICAgICAgICAgICAg
dXJsPXNlbGYuYXBpX3VybCwKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dl
YmtpdHNjbXB5L3dlYmtpdHNjbXB5L3JlbW90ZS9zY20ucHkgYi9Ub29scy9TY3JpcHRzL2xpYnJh
cmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS9yZW1vdGUvc2NtLnB5CmluZGV4IDlmODNmNTJh
ZDllYWZkYTZjMzdiOWQ2MGMxYzliM2UwOTc5ZDRkODMuLmZiZWJmZTg4YzlhZThjMTliNzk3ODJh
YjViMGExYjBkZjY5NzMyOTMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dl
YmtpdHNjbXB5L3dlYmtpdHNjbXB5L3JlbW90ZS9zY20ucHkKKysrIGIvVG9vbHMvU2NyaXB0cy9s
aWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvcmVtb3RlL3NjbS5weQpAQCAtMjYsNiAr
MjYsMjAgQEAgZnJvbSB3ZWJraXRzY21weS5zY21fYmFzZSBpbXBvcnQgU2NtQmFzZQogCiAKIGNs
YXNzIFNjbShTY21CYXNlKToKKyAgICBjbGFzcyBQUkdlbmVyYXRvcihvYmplY3QpOgorICAgICAg
ICBkZWYgX19pbml0X18oc2VsZiwgcmVwb3NpdG9yeSk6CisgICAgICAgICAgICBzZWxmLnJlcG9z
aXRvcnkgPSByZXBvc2l0b3J5CisKKyAgICAgICAgZGVmIGZpbmQoc2VsZiwgc3RhdGU9Tm9uZSwg
aGVhZD1Ob25lLCBiYXNlPU5vbmUpOgorICAgICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRF
cnJvcigpCisKKyAgICAgICAgZGVmIGNyZWF0ZShzZWxmLCBoZWFkLCB0aXRsZSwgYm9keT1Ob25l
LCBjb21taXRzPU5vbmUsIGJhc2U9Tm9uZSk6CisgICAgICAgICAgICByYWlzZSBOb3RJbXBsZW1l
bnRlZEVycm9yKCkKKworICAgICAgICBkZWYgdXBkYXRlKHNlbGYsIHB1bGxfcmVxdWVzdCwgaGVh
ZD1Ob25lLCB0aXRsZT1Ob25lLCBib2R5PU5vbmUsIGNvbW1pdHM9Tm9uZSwgYmFzZT1Ob25lKToK
KyAgICAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoKQorCisKICAgICBAY2xhc3Nt
ZXRob2QKICAgICBkZWYgZnJvbV91cmwoY2xzLCB1cmwsIGNvbnRyaWJ1dG9ycz1Ob25lKToKICAg
ICAgICAgZnJvbSB3ZWJraXRzY21weSBpbXBvcnQgcmVtb3RlCkBAIC00MiwzICs1Niw0IEBAIGNs
YXNzIFNjbShTY21CYXNlKToKICAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UodXJsLCBzaXguc3Ry
aW5nX3R5cGVzKToKICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIkV4cGVjdGVkICd1cmwn
IHRvIGJlIGEgc3RyaW5nIHR5cGUsIG5vdCAne30nIi5mb3JtYXQodHlwZSh1cmwpKSkKICAgICAg
ICAgc2VsZi51cmwgPSB1cmwKKyAgICAgICAgc2VsZi5wdWxsX3JlcXVlc3RzID0gTm9uZQpkaWZm
IC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkv
dGVzdC9wdWxsX3JlcXVlc3RfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy93
ZWJraXRzY21weS93ZWJraXRzY21weS90ZXN0L3B1bGxfcmVxdWVzdF91bml0dGVzdC5weQppbmRl
eCAyZmRiZTc0NTk5NGQ0ZjgzNGRkOGUwZGE5ZDlmZDg5ZDc1MzBmYWUwLi5mNmE1YjcxNTY4ZmQw
ODdmODVkMDM0ZTQ3MzRmZWExNmFhMDY1ZDBmIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL2xp
YnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS90ZXN0L3B1bGxfcmVxdWVzdF91bml0dGVz
dC5weQorKysgYi9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21w
eS90ZXN0L3B1bGxfcmVxdWVzdF91bml0dGVzdC5weQpAQCAtMjAsOSArMjAsMTEgQEAKICMgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMKICMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKK2ltcG9ydCBvcwogaW1wb3J0IHVuaXR0ZXN0CiAK
LWZyb20gd2Via2l0c2NtcHkgaW1wb3J0IENvbW1pdCwgUHVsbFJlcXVlc3QKK2Zyb20gd2Via2l0
Y29yZXB5IGltcG9ydCBPdXRwdXRDYXB0dXJlLCB0ZXN0aW5nCitmcm9tIHdlYmtpdHNjbXB5IGlt
cG9ydCBDb21taXQsIFB1bGxSZXF1ZXN0LCBwcm9ncmFtLCBtb2NrcwogCiAKIGNsYXNzIFRlc3RQ
dWxsUmVxdWVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CkBAIC0xNTAsMyArMTUyLDE2OSBAQCBSZXZp
ZXdlZCBieSBUaW0gQ29udHJpYnV0b3IuCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGNv
bW1pdHMpLCAxKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1pdHNbMF0uaGFzaCwgJzEx
YWE3NmY5ZmMzODBlOWZlMDYxNTcxNTRmMzJiMzA0ZThkYzQ3NDknKQogICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKGNvbW1pdHNbMF0ubWVzc2FnZSwgJ1tzY29waW5nXSBCdWcgdG8gZml4XG5cblJl
dmlld2VkIGJ5IFRpbSBDb250cmlidXRvci4nKQorCisKK2NsYXNzIFRlc3REb1B1bGxSZXF1ZXN0
KHRlc3RpbmcuUGF0aFRlc3RDYXNlKToKKyAgICBiYXNlcGF0aCA9ICdtb2NrL3JlcG9zaXRvcnkn
CisKKyAgICBkZWYgc2V0VXAoc2VsZik6CisgICAgICAgIHN1cGVyKFRlc3REb1B1bGxSZXF1ZXN0
LCBzZWxmKS5zZXRVcCgpCisgICAgICAgIG9zLm1rZGlyKG9zLnBhdGguam9pbihzZWxmLnBhdGgs
ICcuZ2l0JykpCisgICAgICAgIG9zLm1rZGlyKG9zLnBhdGguam9pbihzZWxmLnBhdGgsICcuc3Zu
JykpCisKKyAgICBkZWYgdGVzdF9zdm4oc2VsZik6CisgICAgICAgIHdpdGggT3V0cHV0Q2FwdHVy
ZSgpIGFzIGNhcHR1cmVkLCBtb2Nrcy5sb2NhbC5HaXQoKSwgbW9ja3MubG9jYWwuU3ZuKHNlbGYu
cGF0aCk6CisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDEsIHByb2dyYW0ubWFpbigKKyAg
ICAgICAgICAgICAgICBhcmdzPSgncHVsbC1yZXF1ZXN0JywpLAorICAgICAgICAgICAgICAgIHBh
dGg9c2VsZi5wYXRoLAorICAgICAgICAgICAgKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChj
YXB0dXJlZC5yb290LmxvZy5nZXR2YWx1ZSgpLCAnJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChjYXB0dXJlZC5zdGRlcnIuZ2V0dmFsdWUoKSwgIkNhbiBvbmx5ICdwdWxsLXJlcXVlc3QnIG9u
IGEgbmF0aXZlIEdpdCByZXBvc2l0b3J5XG4iKQorCisgICAgZGVmIHRlc3Rfbm9fbW9kaWZpZWQo
c2VsZik6CisgICAgICAgIHdpdGggT3V0cHV0Q2FwdHVyZSgpIGFzIGNhcHR1cmVkLCBtb2Nrcy5s
b2NhbC5HaXQoc2VsZi5wYXRoKSwgbW9ja3MubG9jYWwuU3ZuKCk6CisgICAgICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKDEsIHByb2dyYW0ubWFpbigKKyAgICAgICAgICAgICAgICBhcmdzPSgncHVs
bC1yZXF1ZXN0JywgJy1pJywgJ3ByLWJyYW5jaCcpLAorICAgICAgICAgICAgICAgIHBhdGg9c2Vs
Zi5wYXRoLAorICAgICAgICAgICAgKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjYXB0dXJl
ZC5yb290LmxvZy5nZXR2YWx1ZSgpLCAiQ3JlYXRpbmcgdGhlIGxvY2FsIGRldmVsb3BtZW50IGJy
YW5jaCAnZW5nL3ByLWJyYW5jaCcuLi5cbiIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY2Fw
dHVyZWQuc3RkZXJyLmdldHZhbHVlKCksICdObyBtb2RpZmllZCBmaWxlc1xuJykKKworICAgIGRl
ZiB0ZXN0X3N0YWdlZChzZWxmKToKKyAgICAgICAgd2l0aCBPdXRwdXRDYXB0dXJlKCkgYXMgY2Fw
dHVyZWQsIG1vY2tzLmxvY2FsLkdpdChzZWxmLnBhdGgpIGFzIHJlcG8sIG1vY2tzLmxvY2FsLlN2
bigpOgorICAgICAgICAgICAgcmVwby5zdGFnZWRbJ2FkZGVkLnR4dCddID0gJ2FkZGVkJworICAg
ICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxLCBwcm9ncmFtLm1haW4oCisgICAgICAgICAgICAg
ICAgYXJncz0oJ3B1bGwtcmVxdWVzdCcsICctaScsICdwci1icmFuY2gnKSwKKyAgICAgICAgICAg
ICAgICBwYXRoPXNlbGYucGF0aCwKKyAgICAgICAgICAgICkpCisgICAgICAgICAgICBzZWxmLmFz
c2VydERpY3RFcXVhbChyZXBvLnN0YWdlZCwge30pCisgICAgICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKHJlcG8uaGVhZC5oYXNoLCAnZTQzOTBhYmM5NWEyMDI2MzcwYjhjOTgxM2I3ZTU1YzYxYzVk
NmViYicpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjYXB0dXJlZC5yb290LmxvZy5nZXR2
YWx1ZSgpLCAnJydDcmVhdGluZyB0aGUgbG9jYWwgZGV2ZWxvcG1lbnQgYnJhbmNoICdlbmcvcHIt
YnJhbmNoJy4uLgorQ3JlYXRpbmcgY29tbWl0Li4uCisgICAgRm91bmQgMSBjb21taXQuLi4KKycn
JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjYXB0dXJlZC5zdGRlcnIuZ2V0dmFsdWUoKSwg
Iid7fScgZG9lc24ndCBoYXZlIGEgcmVjb2duaXplZCByZW1vdGVcbiIuZm9ybWF0KHNlbGYucGF0
aCkpCisKKyAgICBkZWYgdGVzdF9tb2RpZmllZChzZWxmKToKKyAgICAgICAgd2l0aCBPdXRwdXRD
YXB0dXJlKCkgYXMgY2FwdHVyZWQsIG1vY2tzLmxvY2FsLkdpdChzZWxmLnBhdGgpIGFzIHJlcG8s
IG1vY2tzLmxvY2FsLlN2bigpOgorICAgICAgICAgICAgcmVwby5tb2RpZmllZFsnbW9kaWZpZWQu
dHh0J10gPSAnZGlmZicKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMSwgcHJvZ3JhbS5t
YWluKAorICAgICAgICAgICAgICAgIGFyZ3M9KCdwdWxsLXJlcXVlc3QnLCAnLWknLCAncHItYnJh
bmNoJyksCisgICAgICAgICAgICAgICAgcGF0aD1zZWxmLnBhdGgsCisgICAgICAgICAgICApKQor
ICAgICAgICAgICAgc2VsZi5hc3NlcnREaWN0RXF1YWwocmVwby5tb2RpZmllZCwgZGljdCgpKQor
ICAgICAgICAgICAgc2VsZi5hc3NlcnREaWN0RXF1YWwocmVwby5zdGFnZWQsIGRpY3QoKSkKKyAg
ICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVwby5oZWFkLmhhc2gsICdkMDUwODJiZjY3MDcy
NTJhZWYzNDcyNjkyNTk4YTU4N2VkM2ZiMjEzJykKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KGNhcHR1cmVkLnN0ZGVyci5nZXR2YWx1ZSgpLCAiJ3t9JyBkb2Vzbid0IGhhdmUgYSByZWNvZ25p
emVkIHJlbW90ZVxuIi5mb3JtYXQoc2VsZi5wYXRoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChjYXB0dXJlZC5yb290LmxvZy5nZXR2YWx1ZSgpLCAnJydDcmVhdGluZyB0aGUgbG9jYWwgZGV2
ZWxvcG1lbnQgYnJhbmNoICdlbmcvcHItYnJhbmNoJy4uLgorICAgIEFkZGluZyBtb2RpZmllZC50
eHQuLi4KK0NyZWF0aW5nIGNvbW1pdC4uLgorICAgIEZvdW5kIDEgY29tbWl0Li4uCisnJycpCisK
KyAgICBkZWYgdGVzdF9naXRodWIoc2VsZik6CisgICAgICAgIHdpdGggT3V0cHV0Q2FwdHVyZSgp
IGFzIGNhcHR1cmVkLCBtb2Nrcy5yZW1vdGUuR2l0SHViKCkgYXMgcmVtb3RlLCBcCisgICAgICAg
ICAgICAgICAgbW9ja3MubG9jYWwuR2l0KHNlbGYucGF0aCwgcmVtb3RlPSdodHRwczovL3t9Jy5m
b3JtYXQocmVtb3RlLnJlbW90ZSkpIGFzIHJlcG8sIG1vY2tzLmxvY2FsLlN2bigpOgorCisgICAg
ICAgICAgICByZXBvLnN0YWdlZFsnYWRkZWQudHh0J10gPSAnYWRkZWQnCisgICAgICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKDAsIHByb2dyYW0ubWFpbigKKyAgICAgICAgICAgICAgICBhcmdzPSgn
cHVsbC1yZXF1ZXN0JywgJy1pJywgJ3ByLWJyYW5jaCcpLAorICAgICAgICAgICAgICAgIHBhdGg9
c2VsZi5wYXRoLAorICAgICAgICAgICAgKSkKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNh
cHR1cmVkLnN0ZGVyci5nZXR2YWx1ZSgpLCAnJykKKyAgICAgICAgbG9nID0gY2FwdHVyZWQucm9v
dC5sb2cuZ2V0dmFsdWUoKS5zcGxpdGxpbmVzKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgK
KyAgICAgICAgICAgIGxvZ1s6NF0gKyBsb2dbNzpdLCBbCisgICAgICAgICAgICAgICAgIkNyZWF0
aW5nIHRoZSBsb2NhbCBkZXZlbG9wbWVudCBicmFuY2ggJ2VuZy9wci1icmFuY2gnLi4uIiwKKyAg
ICAgICAgICAgICAgICAnQ3JlYXRpbmcgY29tbWl0Li4uJywKKyAgICAgICAgICAgICAgICAnICAg
IEZvdW5kIDEgY29tbWl0Li4uJywKKyAgICAgICAgICAgICAgICAiUHVzaGluZyAnZW5nL3ByLWJy
YW5jaCcgdG8gJ2ZvcmsnLi4uIiwKKyAgICAgICAgICAgICAgICAiQ3JlYXRpbmcgcHVsbC1yZXF1
ZXN0IGZvciAnZW5nL3ByLWJyYW5jaCcuLi4iLAorICAgICAgICAgICAgICAgICJDcmVhdGVkICdQ
UiAxIHwgQ3JlYXRlZCBjb21taXQnISIsCisgICAgICAgICAgICBdLAorICAgICAgICApCisKKyAg
ICBkZWYgdGVzdF9naXRodWJfdXBkYXRlKHNlbGYpOgorICAgICAgICB3aXRoIG1vY2tzLnJlbW90
ZS5HaXRIdWIoKSBhcyByZW1vdGUsIG1vY2tzLmxvY2FsLkdpdChzZWxmLnBhdGgsIHJlbW90ZT0n
aHR0cHM6Ly97fScuZm9ybWF0KHJlbW90ZS5yZW1vdGUpKSBhcyByZXBvLCBtb2Nrcy5sb2NhbC5T
dm4oKToKKyAgICAgICAgICAgIHdpdGggT3V0cHV0Q2FwdHVyZSgpOgorICAgICAgICAgICAgICAg
IHJlcG8uc3RhZ2VkWydhZGRlZC50eHQnXSA9ICdhZGRlZCcKKyAgICAgICAgICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKDAsIHByb2dyYW0ubWFpbigKKyAgICAgICAgICAgICAgICAgICAgYXJncz0o
J3B1bGwtcmVxdWVzdCcsICctaScsICdwci1icmFuY2gnKSwKKyAgICAgICAgICAgICAgICAgICAg
cGF0aD1zZWxmLnBhdGgsCisgICAgICAgICAgICAgICAgKSkKKworICAgICAgICAgICAgd2l0aCBP
dXRwdXRDYXB0dXJlKCkgYXMgY2FwdHVyZWQ6CisgICAgICAgICAgICAgICAgcmVwby5zdGFnZWRb
J2FkZGVkLnR4dCddID0gJ2RpZmYnCisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgw
LCBwcm9ncmFtLm1haW4oCisgICAgICAgICAgICAgICAgICAgIGFyZ3M9KCdwdWxsLXJlcXVlc3Qn
LCksCisgICAgICAgICAgICAgICAgICAgIHBhdGg9c2VsZi5wYXRoLAorICAgICAgICAgICAgICAg
ICkpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjYXB0dXJlZC5zdGRlcnIuZ2V0dmFsdWUo
KSwgJycpCisgICAgICAgIGxvZyA9IGNhcHR1cmVkLnJvb3QubG9nLmdldHZhbHVlKCkuc3BsaXRs
aW5lcygpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCisgICAgICAgICAgICBsb2dbOjNdICsg
bG9nWzY6XSwgWworICAgICAgICAgICAgICAgICJBbWVuZGluZyBjb21taXQuLi4iLAorICAgICAg
ICAgICAgICAgICcgICAgRm91bmQgMSBjb21taXQuLi4nLAorICAgICAgICAgICAgICAgICJQdXNo
aW5nICdlbmcvcHItYnJhbmNoJyB0byAnZm9yaycuLi4iLAorICAgICAgICAgICAgICAgICJVcGRh
dGluZyBwdWxsLXJlcXVlc3QgZm9yICdlbmcvcHItYnJhbmNoJy4uLiIsCisgICAgICAgICAgICAg
ICAgIlVwZGF0ZWQgJ1BSIDEgfCBBbWVuZGVkIGNvbW1pdCchIiwKKyAgICAgICAgICAgIF0sCisg
ICAgICAgICkKKworICAgIGRlZiB0ZXN0X3N0YXNoKHNlbGYpOgorICAgICAgICB3aXRoIE91dHB1
dENhcHR1cmUoKSBhcyBjYXB0dXJlZCwgbW9ja3MucmVtb3RlLkJpdEJ1Y2tldCgpIGFzIHJlbW90
ZSwgbW9ja3MubG9jYWwuR2l0KHNlbGYucGF0aCwgcmVtb3RlPSdzc2g6Ly9naXRAe30ve30ve30u
Z2l0Jy5mb3JtYXQoCisgICAgICAgICAgICByZW1vdGUuaG9zdHNbMF0sIHJlbW90ZS5wcm9qZWN0
LnNwbGl0KCcvJylbMV0sIHJlbW90ZS5wcm9qZWN0LnNwbGl0KCcvJylbM10sCisgICAgICAgICkp
IGFzIHJlcG8sIG1vY2tzLmxvY2FsLlN2bigpOgorCisgICAgICAgICAgICByZXBvLnN0YWdlZFsn
YWRkZWQudHh0J10gPSAnYWRkZWQnCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDAsIHBy
b2dyYW0ubWFpbigKKyAgICAgICAgICAgICAgICBhcmdzPSgncHVsbC1yZXF1ZXN0JywgJy1pJywg
J3ByLWJyYW5jaCcpLAorICAgICAgICAgICAgICAgIHBhdGg9c2VsZi5wYXRoLAorICAgICAgICAg
ICAgKSkKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNhcHR1cmVkLnN0ZGVyci5nZXR2YWx1
ZSgpLCAnJykKKyAgICAgICAgbG9nID0gY2FwdHVyZWQucm9vdC5sb2cuZ2V0dmFsdWUoKS5zcGxp
dGxpbmVzKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKKyAgICAgICAgICAgIGxvZ1s6NF0g
KyBsb2dbNzpdLCBbCisgICAgICAgICAgICAgICAgIkNyZWF0aW5nIHRoZSBsb2NhbCBkZXZlbG9w
bWVudCBicmFuY2ggJ2VuZy9wci1icmFuY2gnLi4uIiwKKyAgICAgICAgICAgICAgICAnQ3JlYXRp
bmcgY29tbWl0Li4uJywKKyAgICAgICAgICAgICAgICAnICAgIEZvdW5kIDEgY29tbWl0Li4uJywK
KyAgICAgICAgICAgICAgICAiUHVzaGluZyAnZW5nL3ByLWJyYW5jaCcgdG8gJ29yaWdpbicuLi4i
LAorICAgICAgICAgICAgICAgICJDcmVhdGluZyBwdWxsLXJlcXVlc3QgZm9yICdlbmcvcHItYnJh
bmNoJy4uLiIsCisgICAgICAgICAgICAgICAgIkNyZWF0ZWQgJ1BSIDEgfCBDcmVhdGVkIGNvbW1p
dCchIiwKKyAgICAgICAgICAgIF0sCisgICAgICAgICkKKworICAgIGRlZiB0ZXN0X3N0YXNoX3Vw
ZGF0ZShzZWxmKToKKyAgICAgICAgd2l0aCBtb2Nrcy5yZW1vdGUuQml0QnVja2V0KCkgYXMgcmVt
b3RlLCBtb2Nrcy5sb2NhbC5HaXQoc2VsZi5wYXRoLCByZW1vdGU9J3NzaDovL2dpdEB7fS97fS97
fS5naXQnLmZvcm1hdCgKKyAgICAgICAgICAgIHJlbW90ZS5ob3N0c1swXSwgcmVtb3RlLnByb2pl
Y3Quc3BsaXQoJy8nKVsxXSwgcmVtb3RlLnByb2plY3Quc3BsaXQoJy8nKVszXSwKKyAgICAgICAg
KSkgYXMgcmVwbywgbW9ja3MubG9jYWwuU3ZuKCk6CisgICAgICAgICAgICB3aXRoIE91dHB1dENh
cHR1cmUoKToKKyAgICAgICAgICAgICAgICByZXBvLnN0YWdlZFsnYWRkZWQudHh0J10gPSAnYWRk
ZWQnCisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgwLCBwcm9ncmFtLm1haW4oCisg
ICAgICAgICAgICAgICAgICAgIGFyZ3M9KCdwdWxsLXJlcXVlc3QnLCAnLWknLCAncHItYnJhbmNo
JyksCisgICAgICAgICAgICAgICAgICAgIHBhdGg9c2VsZi5wYXRoLAorICAgICAgICAgICAgICAg
ICkpCisKKyAgICAgICAgICAgIHdpdGggT3V0cHV0Q2FwdHVyZSgpIGFzIGNhcHR1cmVkOgorICAg
ICAgICAgICAgICAgIHJlcG8uc3RhZ2VkWydhZGRlZC50eHQnXSA9ICdkaWZmJworICAgICAgICAg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMCwgcHJvZ3JhbS5tYWluKAorICAgICAgICAgICAgICAg
ICAgICBhcmdzPSgncHVsbC1yZXF1ZXN0JywpLAorICAgICAgICAgICAgICAgICAgICBwYXRoPXNl
bGYucGF0aCwKKyAgICAgICAgICAgICAgICApKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
Y2FwdHVyZWQuc3RkZXJyLmdldHZhbHVlKCksICcnKQorICAgICAgICBsb2cgPSBjYXB0dXJlZC5y
b290LmxvZy5nZXR2YWx1ZSgpLnNwbGl0bGluZXMoKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KAorICAgICAgICAgICAgbG9nWzozXSArIGxvZ1s2Ol0sIFsKKyAgICAgICAgICAgICAgICAiQW1l
bmRpbmcgY29tbWl0Li4uIiwKKyAgICAgICAgICAgICAgICAnICAgIEZvdW5kIDEgY29tbWl0Li4u
JywKKyAgICAgICAgICAgICAgICAiUHVzaGluZyAnZW5nL3ByLWJyYW5jaCcgdG8gJ29yaWdpbicu
Li4iLAorICAgICAgICAgICAgICAgICJVcGRhdGluZyBwdWxsLXJlcXVlc3QgZm9yICdlbmcvcHIt
YnJhbmNoJy4uLiIsCisgICAgICAgICAgICAgICAgIlVwZGF0ZWQgJ1BSIDEgfCBBbWVuZGVkIGNv
bW1pdCchIiwKKyAgICAgICAgICAgIF0sCisgICAgICAgICkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>436288</attachid>
            <date>2021-08-24 08:20:58 -0700</date>
            <delta_ts>2021-08-27 07:45:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229089-20210824082056.patch</filename>
            <type>text/plain</type>
            <size>48877</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxNDkzCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZTZmOWU3NWE5YTAzNTk3YjI5M2MzYWE0OTM4M2RiZWZl
ODljZGZkYy4uOTA5MTgwYjI1MzhiMmVlODU5NmUxZTZiMDE3YTVmZmExMzA2ZGJiMCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU4
IEBACisyMDIxLTA4LTI0ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KKwor
ICAgICAgICBbZ2l0LXdlYmtpdF0gQWRkIHB1bGwtcmVxdWVzdCBjb21tYW5kIChQYXJ0IDYpCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjkwODkKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgxOTA4NzUxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkv
c2V0dXAucHk6IEJ1bXAgdmVyc2lvbi4KKyAgICAgICAgKiBTY3JpcHRzL2xpYnJhcmllcy93ZWJr
aXRzY21weS93ZWJraXRzY21weS9fX2luaXRfXy5weTogRGl0dG8uCisgICAgICAgICogU2NyaXB0
cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvbW9ja3MvbG9jYWwvZ2l0LnB5Ogor
ICAgICAgICAoR2l0Ll9faW5pdF9fKTogQWRkIGNvbW1pdCwgYWRkIGFuZCBwdXNoIGNvbW1hbmRz
LgorICAgICAgICAoR2l0LmNvbW1pdCk6IENyZWF0ZSBuZXcgY29tbWl0IGZyb20gc3RhZ2VkIGZp
bGVzLgorICAgICAgICAoR2l0LmFkZCk6IFN0YWdlIG1vZGlmaWVkIGZpbGVzLgorICAgICAgICAq
IFNjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L21vY2tzL3JlbW90ZS9i
aXRidWNrZXQucHk6CisgICAgICAgIChCaXRCdWNrZXQuX19pbml0X18pOiBBZGQgcHVsbF9yZXF1
ZXN0cy4KKyAgICAgICAgKEJpdEJ1Y2tldC5yZXF1ZXN0KTogQWRkIGFiaWxpdHkgdG8gbGlzdCBh
bmQgZWRpdCBwdWxsIHJlcXVldHMuCisgICAgICAgICogU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0
c2NtcHkvd2Via2l0c2NtcHkvbW9ja3MvcmVtb3RlL2dpdF9odWIucHk6CisgICAgICAgIChHaXRI
dWIuX19pbml0X18pOiBBZGQgcHVsbF9yZXF1ZXN0cy4KKyAgICAgICAgKEdpdEh1Yi5yZXF1ZXN0
KTogQWRkIGFiaWxpdHkgdG8gbGlzdCBhbmQgZWRpdCBwdWxsIHJlcXVldHMuCisgICAgICAgICog
U2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvcHJvZ3JhbS9fX2luaXRf
Xy5weTogQWRkIFB1bGxSZXF1ZXN0LgorICAgICAgICAqIFNjcmlwdHMvbGlicmFyaWVzL3dlYmtp
dHNjbXB5L3dlYmtpdHNjbXB5L3Byb2dyYW0vcHVsbF9yZXF1ZXN0LnB5OgorICAgICAgICAoUHVs
bFJlcXVlc3QucGFyc2VyKTogQWRkICctLWFkZCcgYW5kICctLW5vLWFkZCcgdG8gYWxsb3cgdXNl
ciB0byBzcGVjaWZ5IGhvdyBtb2RpZmllZCBmaWxlcworICAgICAgICBhcmUgaW5jb3JwZXJhdGVk
IGludG8gdGhlIHB1bGwtcmVxdWVzdC4KKyAgICAgICAgKFB1bGxSZXF1ZXN0LmNyZWF0ZV9jb21t
aXQpOiBCYXNlZCBvbiBjdXJyZW50bHkgbW9kaWZpZWQgZmlsZXMsIGVpdGhlciBjcmVhdGUgYSBu
ZXcgY29tbWl0IG9yCisgICAgICAgIGFkZCB0aG9zZSBmaWxlcyB0byBhbiBleGlzdGluZyBjb21t
aXQuCisgICAgICAgIChQdWxsUmVxdWVzdC5icmFuY2hfcG9pbnQpOiBEZXRlcm1pbmUgd2hlbiB0
aGlzIGJyYW5jaCBkaXZlcmdlZCBmcm9tIGEgcHJvZHVjdGlvbiBicmFuY2guCisgICAgICAgIChQ
dWxsUmVxdWVzdC5tYWluKTogQ3JlYXRlIGJyYW5jaCwgY3JlYXRlIGNvbW1pdCBvbiBicmFuY2gs
IHB1c2ggYnJhbmNoIGFuZCBlaXRoZXIgY3JlYXRlIG9yCisgICAgICAgIHVwZGF0ZSBhIHB1bGwt
cmVxdWVzdC4KKyAgICAgICAgKiBTY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRz
Y21weS9yZW1vdGUvYml0YnVja2V0LnB5OgorICAgICAgICAoQml0QnVja2V0LlBSR2VuZXJhdG9y
LmZpbmQpOgorICAgICAgICAoQml0QnVja2V0LlBSR2VuZXJhdG9yLmNyZWF0ZSk6CisgICAgICAg
IChCaXRCdWNrZXQuUFJHZW5lcmF0b3IudXBkYXRlKToKKyAgICAgICAgKEJpdEJ1Y2tldC5fX2lu
aXRfXyk6IEFkZCBwdWxsX3JlcXVlc3QgZ2VuZXJhdG9yLgorICAgICAgICAqIFNjcmlwdHMvbGli
cmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L3JlbW90ZS9naXRfaHViLnB5OgorICAgICAg
ICAoR2l0SHViLlBSR2VuZXJhdG9yLmZpbmQpOgorICAgICAgICAoR2l0SHViLlBSR2VuZXJhdG9y
LmNyZWF0ZSk6CisgICAgICAgIChHaXRIdWIuUFJHZW5lcmF0b3IudXBkYXRlKToKKyAgICAgICAg
KEdpdEh1Yi5fX2luaXRfXyk6IEFkZCBwdWxsX3JlcXVlc3QgZ2VuZXJhdG9yLgorICAgICAgICAq
IFNjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L3JlbW90ZS9zY20ucHk6
CisgICAgICAgIChTY20uUFJHZW5lcmF0b3IuX19pbml0X18pOgorICAgICAgICAoU2NtLlBSR2Vu
ZXJhdG9yLmZpbmQpOgorICAgICAgICAoU2NtLlBSR2VuZXJhdG9yLmNyZWF0ZSk6CisgICAgICAg
IChTY20uUFJHZW5lcmF0b3IudXBkYXRlKToKKyAgICAgICAgKiBTY3JpcHRzL2xpYnJhcmllcy93
ZWJraXRzY21weS93ZWJraXRzY21weS90ZXN0L3B1bGxfcmVxdWVzdF91bml0dGVzdC5weToKKyAg
ICAgICAgKFRlc3REb1B1bGxSZXF1ZXN0LnNldFVwKToKKyAgICAgICAgKFRlc3REb1B1bGxSZXF1
ZXN0LnRlc3Rfc3ZuKToKKyAgICAgICAgKFRlc3REb1B1bGxSZXF1ZXN0LnRlc3Rfbm9fbW9kaWZp
ZWQpOgorICAgICAgICAoVGVzdERvUHVsbFJlcXVlc3QudGVzdF9zdGFnZWQpOgorICAgICAgICAo
VGVzdERvUHVsbFJlcXVlc3QudGVzdF9tb2RpZmllZCk6CisgICAgICAgIChUZXN0RG9QdWxsUmVx
dWVzdC50ZXN0X2dpdGh1Yik6CisgICAgICAgIChUZXN0RG9QdWxsUmVxdWVzdC50ZXN0X2dpdGh1
Yl91cGRhdGUpOgorICAgICAgICAoVGVzdERvUHVsbFJlcXVlc3QudGVzdF9zdGFzaCk6CisgICAg
ICAgIChUZXN0RG9QdWxsUmVxdWVzdC50ZXN0X3N0YXNoX3VwZGF0ZSk6CisKIDIwMjEtMDgtMjMg
IEpvaG4gV2lsYW5kZXIgIDx3aWxhbmRlckBhcHBsZS5jb20+CiAKICAgICAgICAgUENNOiBTdXBw
b3J0IGVwaGVtZXJhbCBtZWFzdXJlbWVudCB3aXRoIG5vbi1wZXJzaXN0ZW50IFdlYkNvcmU6OlBy
aXZhdGVDbGlja01lYXN1cmVtZW50CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL2xpYnJhcmll
cy93ZWJraXRzY21weS9zZXR1cC5weSBiL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNj
bXB5L3NldHVwLnB5CmluZGV4IDdmOTYzOTFhZTM3OTQ2ZmJmNGUxNDhhMTQ2ZDk3N2U3MzAxNzll
OGIuLjcxYmNhZTJmNzBjNzA3MDQwZmQ0ZGJkNDI2OWU1YmJlMTJmYWViZjAgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3NldHVwLnB5CisrKyBiL1Rvb2xz
L1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3NldHVwLnB5CkBAIC0yOSw3ICsyOSw3IEBA
IGRlZiByZWFkbWUoKToKIAogc2V0dXAoCiAgICAgbmFtZT0nd2Via2l0c2NtcHknLAotICAgIHZl
cnNpb249JzEuMS45JywKKyAgICB2ZXJzaW9uPScyLjAuMCcsCiAgICAgZGVzY3JpcHRpb249J0xp
YnJhcnkgZGVzaWduZWQgdG8gaW50ZXJhY3Qgd2l0aCBnaXQgYW5kIHN2biByZXBvc2l0b3JpZXMu
JywKICAgICBsb25nX2Rlc2NyaXB0aW9uPXJlYWRtZSgpLAogICAgIGNsYXNzaWZpZXJzPVsKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5
L19faW5pdF9fLnB5IGIvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0
c2NtcHkvX19pbml0X18ucHkKaW5kZXggM2M3NDM5NjE0ZDI1N2VhOWExZWIzYTA5NDE1YTIwMTVk
MWJiYTVmZS4uOTdjMTBiMzFjY2ZlYTkyY2E3MTdhNWM2OWViOWIzYjY0OTcwZjhjNyAxMDA2NDQK
LS0tIGEvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvX19p
bml0X18ucHkKKysrIGIvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0
c2NtcHkvX19pbml0X18ucHkKQEAgLTQ2LDcgKzQ2LDcgQEAgZXhjZXB0IEltcG9ydEVycm9yOgog
ICAgICAgICAiUGxlYXNlIGluc3RhbGwgd2Via2l0Y29yZXB5IHdpdGggYHBpcCBpbnN0YWxsIHdl
YmtpdGNvcmVweSAtLWV4dHJhLWluZGV4LXVybCA8cGFja2FnZSBpbmRleCBVUkw+YCIKICAgICAp
CiAKLXZlcnNpb24gPSBWZXJzaW9uKDEsIDEsIDkpCit2ZXJzaW9uID0gVmVyc2lvbigyLCAwLCAw
KQogCiBBdXRvSW5zdGFsbC5yZWdpc3RlcihQYWNrYWdlKCdmYXN0ZW5lcnMnLCBWZXJzaW9uKDAs
IDE1LCAwKSkpCiBBdXRvSW5zdGFsbC5yZWdpc3RlcihQYWNrYWdlKCdtb25vdG9uaWMnLCBWZXJz
aW9uKDEsIDUpKSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNj
bXB5L3dlYmtpdHNjbXB5L21vY2tzL2xvY2FsL2dpdC5weSBiL1Rvb2xzL1NjcmlwdHMvbGlicmFy
aWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L21vY2tzL2xvY2FsL2dpdC5weQppbmRleCBhMTE5
ODVmNGUxYTNhNTYyMzJmNGYyNGQwNmJjMWE3NmM0Njk4ZWFmLi4yNmY1NjgzOWNkMzc4MGU3MGUz
MmU3YjQ0NGJmM2M0MDU5OTJkZDBiIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL2xpYnJhcmll
cy93ZWJraXRzY21weS93ZWJraXRzY21weS9tb2Nrcy9sb2NhbC9naXQucHkKKysrIGIvVG9vbHMv
U2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvbW9ja3MvbG9jYWwvZ2l0
LnB5CkBAIC0yMCw2ICsyMCw3IEBACiAjIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiAjIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCiAKK2ltcG9ydCBoYXNobGliCiBpbXBvcnQganNvbgogaW1wb3J0IG9zCiBpbXBvcnQgcmUK
QEAgLTI4LDcgKzI5LDcgQEAgaW1wb3J0IHRpbWUKIGZyb20gZGF0ZXRpbWUgaW1wb3J0IGRhdGV0
aW1lCiBmcm9tIG1vY2sgaW1wb3J0IHBhdGNoCiAKLWZyb20gd2Via2l0Y29yZXB5IGltcG9ydCBk
ZWNvcmF0b3JzLCBtb2NrcywgT3V0cHV0Q2FwdHVyZSwgU3RyaW5nSU8KK2Zyb20gd2Via2l0Y29y
ZXB5IGltcG9ydCBkZWNvcmF0b3JzLCBtb2Nrcywgc3RyaW5nX3V0aWxzLCBPdXRwdXRDYXB0dXJl
LCBTdHJpbmdJTwogZnJvbSB3ZWJraXRzY21weSBpbXBvcnQgbG9jYWwsIENvbW1pdCwgQ29udHJp
YnV0b3IKIGZyb20gd2Via2l0c2NtcHkucHJvZ3JhbS5jYW5vbmljYWxpemUuY29tbWl0dGVyIGlt
cG9ydCBtYWluIGFzIGNvbW1pdHRlcl9tYWluCiBmcm9tIHdlYmtpdHNjbXB5LnByb2dyYW0uY2Fu
b25pY2FsaXplLm1lc3NhZ2UgaW1wb3J0IG1haW4gYXMgbWVzc2FnZV9tYWluCkBAIC00MTEsNiAr
NDEyLDIyIEBAIG5vdGhpbmcgdG8gY29tbWl0LCB3b3JraW5nIHRyZWUgY2xlYW4KICAgICAgICAg
ICAgICAgICBzZWxmLmV4ZWN1dGFibGUsICdjaGVjay1yZWYtZm9ybWF0JywgcmUuY29tcGlsZShy
Jy4rJyksCiAgICAgICAgICAgICAgICAgZ2VuZXJhdG9yPWxhbWJkYSAqYXJncywgKiprd2FyZ3M6
CiAgICAgICAgICAgICAgICAgICAgIG1vY2tzLlByb2Nlc3NDb21wbGV0aW9uKHJldHVybmNvZGU9
MCkgaWYgcmUubWF0Y2gocideW0EtWmEtejAtOS1dKy9bQS1aYS16MC05Ly1dKyQnLCBhcmdzWzJd
KSBlbHNlIG1vY2tzLlByb2Nlc3NDb21wbGV0aW9uKCksCisgICAgICAgICAgICApLCBtb2Nrcy5T
dWJwcm9jZXNzLlJvdXRlKAorICAgICAgICAgICAgICAgIHNlbGYuZXhlY3V0YWJsZSwgJ2NvbW1p
dCcsCisgICAgICAgICAgICAgICAgY3dkPXNlbGYucGF0aCwKKyAgICAgICAgICAgICAgICBnZW5l
cmF0b3I9bGFtYmRhICphcmdzLCAqKmt3YXJnczogc2VsZi5jb21taXQoYW1lbmQ9RmFsc2UpLAor
ICAgICAgICAgICAgKSwgbW9ja3MuU3VicHJvY2Vzcy5Sb3V0ZSgKKyAgICAgICAgICAgICAgICBz
ZWxmLmV4ZWN1dGFibGUsICdjb21taXQnLCAnLS1hbWVuZCcsCisgICAgICAgICAgICAgICAgY3dk
PXNlbGYucGF0aCwKKyAgICAgICAgICAgICAgICBnZW5lcmF0b3I9bGFtYmRhICphcmdzLCAqKmt3
YXJnczogc2VsZi5jb21taXQoYW1lbmQ9VHJ1ZSksCisgICAgICAgICAgICApLCBtb2Nrcy5TdWJw
cm9jZXNzLlJvdXRlKAorICAgICAgICAgICAgICAgIHNlbGYuZXhlY3V0YWJsZSwgJ2FkZCcsIHJl
LmNvbXBpbGUocicuKycpLAorICAgICAgICAgICAgICAgIGN3ZD1zZWxmLnBhdGgsCisgICAgICAg
ICAgICAgICAgZ2VuZXJhdG9yPWxhbWJkYSAqYXJncywgKiprd2FyZ3M6IHNlbGYuYWRkKGFyZ3Nb
Ml0pLAorICAgICAgICAgICAgKSwgbW9ja3MuU3VicHJvY2Vzcy5Sb3V0ZSgKKyAgICAgICAgICAg
ICAgICBzZWxmLmV4ZWN1dGFibGUsICdwdXNoJywgJy1mJywKKyAgICAgICAgICAgICAgICBjd2Q9
c2VsZi5wYXRoLAorICAgICAgICAgICAgICAgIGdlbmVyYXRvcj1sYW1iZGEgKmFyZ3MsICoqa3dh
cmdzOiBtb2Nrcy5Qcm9jZXNzQ29tcGxldGlvbihyZXR1cm5jb2RlPTApLAogICAgICAgICAgICAg
KSwgbW9ja3MuU3VicHJvY2Vzcy5Sb3V0ZSgKICAgICAgICAgICAgICAgICBzZWxmLmV4ZWN1dGFi
bGUsCiAgICAgICAgICAgICAgICAgY3dkPXNlbGYucGF0aCwKQEAgLTUxOSw2ICs1MzYsOSBAQCBu
b3RoaW5nIHRvIGNvbW1pdCwgd29ya2luZyB0cmVlIGNsZWFuCiAgICAgICAgICAgICBzZWxmLmNv
bW1pdHNbc29tZXRoaW5nXVstMV0gPSBDb21taXQuZnJvbV9qc29uKENvbW1pdC5FbmNvZGVyKCku
ZGVmYXVsdChzZWxmLmhlYWQpKQogICAgICAgICAgICAgc2VsZi5oZWFkID0gc2VsZi5jb21taXRz
W3NvbWV0aGluZ11bLTFdCiAgICAgICAgICAgICBzZWxmLmhlYWQuYnJhbmNoID0gc29tZXRoaW5n
CisgICAgICAgICAgICBpZiBub3Qgc2VsZi5oZWFkLmJyYW5jaF9wb2ludDoKKyAgICAgICAgICAg
ICAgICBzZWxmLmhlYWQuYnJhbmNoX3BvaW50ID0gc2VsZi5oZWFkLmlkZW50aWZpZXIKKyAgICAg
ICAgICAgICAgICBzZWxmLmhlYWQuaWRlbnRpZmllciA9IDAKICAgICAgICAgICAgIHJldHVybiBU
cnVlCiAKICAgICAgICAgaWYgY29tbWl0OgpAQCAtNzA5LDMgKzcyOSwzNSBAQCBub3RoaW5nIHRv
IGNvbW1pdCwgd29ya2luZyB0cmVlIGNsZWFuCiAgICAgICAgICAgICAgICAgY29uZmlnZmlsZS53
cml0ZSgnXHR7fT17fVxuJy5mb3JtYXQoa2V5X2IsIHZhbHVlKSkKIAogICAgICAgICByZXR1cm4g
bW9ja3MuUHJvY2Vzc0NvbXBsZXRpb24ocmV0dXJuY29kZT0wKQorCisgICAgZGVmIGNvbW1pdChz
ZWxmLCBhbWVuZD1GYWxzZSk6CisgICAgICAgIGlmIG5vdCBzZWxmLmhlYWQ6CisgICAgICAgICAg
ICByZXR1cm4gbW9ja3MuUHJvY2Vzc0NvbXBsZXRpb24ocmV0dXJuY29kZT0xLCBzdGRvdXQ9J0Fs
bG93ZWQgaW4gZ2l0LCBidXQgZGlzYWxsb3dlZCBieSByZWFzb25hYmxlIHdvcmtmbG93cycpCisg
ICAgICAgIGlmIG5vdCBzZWxmLnN0YWdlZCBhbmQgbm90IGFtZW5kOgorICAgICAgICAgICAgcmV0
dXJuIG1vY2tzLlByb2Nlc3NDb21wbGV0aW9uKHJldHVybmNvZGU9MSwgc3Rkb3V0PSdubyBjaGFu
Z2VzIGFkZGVkIHRvIGNvbW1pdCAodXNlICJnaXQgYWRkIiBhbmQvb3IgImdpdCBjb21taXQgLWEi
KVxuJykKKworICAgICAgICBpZiBub3QgYW1lbmQ6CisgICAgICAgICAgICBzZWxmLmhlYWQgPSBD
b21taXQoCisgICAgICAgICAgICAgICAgYnJhbmNoPXNlbGYuYnJhbmNoLCByZXBvc2l0b3J5X2lk
PXNlbGYuaGVhZC5yZXBvc2l0b3J5X2lkLAorICAgICAgICAgICAgICAgIHRpbWVzdGFtcD1pbnQo
dGltZS50aW1lKCkpLAorICAgICAgICAgICAgICAgIGlkZW50aWZpZXI9c2VsZi5oZWFkLmlkZW50
aWZpZXIgKyAxIGlmIHNlbGYuaGVhZC5icmFuY2hfcG9pbnQgZWxzZSAxLAorICAgICAgICAgICAg
ICAgIGJyYW5jaF9wb2ludD1zZWxmLmhlYWQuYnJhbmNoX3BvaW50IG9yIHNlbGYuaGVhZC5pZGVu
dGlmaWVyLAorICAgICAgICAgICAgKQorICAgICAgICAgICAgc2VsZi5jb21taXRzW3NlbGYuYnJh
bmNoXS5hcHBlbmQoc2VsZi5oZWFkKQorCisgICAgICAgIHNlbGYuaGVhZC5hdXRob3IgPSBDb250
cmlidXRvcihzZWxmLmNvbmZpZygpWyd1c2VyLm5hbWUnXSwgW3NlbGYuY29uZmlnKClbJ3VzZXIu
ZW1haWwnXV0pCisgICAgICAgIHNlbGYuaGVhZC5tZXNzYWdlID0gJ3t9IGNvbW1pdFxuUmV2aWV3
ZWQgYnkgSm9uYXRoYW4gQmVkYXJkXG5cbiAqIHt9XG4nLmZvcm1hdCgKKyAgICAgICAgICAgICdB
bWVuZGVkJyBpZiBhbWVuZCBlbHNlICdDcmVhdGVkJywKKyAgICAgICAgICAgICdcbiAqICcuam9p
bihzZWxmLnN0YWdlZC5rZXlzKCkpLAorICAgICAgICApCisgICAgICAgIHNlbGYuaGVhZC5oYXNo
ID0gaGFzaGxpYi5zaGEyNTYoc3RyaW5nX3V0aWxzLmVuY29kZShzZWxmLmhlYWQubWVzc2FnZSkp
LmhleGRpZ2VzdCgpWzo0MF0KKyAgICAgICAgc2VsZi5zdGFnZWQgPSB7fQorICAgICAgICByZXR1
cm4gbW9ja3MuUHJvY2Vzc0NvbXBsZXRpb24ocmV0dXJuY29kZT0wKQorCisgICAgZGVmIGFkZChz
ZWxmLCBmaWxlKToKKyAgICAgICAgaWYgZmlsZSBub3QgaW4gc2VsZi5tb2RpZmllZDoKKyAgICAg
ICAgICAgIHJldHVybiBtb2Nrcy5Qcm9jZXNzQ29tcGxldGlvbihyZXR1cm5jb2RlPTEyOCwgc3Rk
b3V0PSJmYXRhbDogcGF0aHNwZWMgJ3t9JyBkaWQgbm90IG1hdGNoIGFueSBmaWxlc1xuIi5mb3Jt
YXQoZmlsZSkpCisgICAgICAgIGZvciBrZXksIHZhbHVlIGluIHNlbGYubW9kaWZpZWQuaXRlbXMo
KToKKyAgICAgICAgICAgIHNlbGYuc3RhZ2VkW2tleV0gPSB2YWx1ZQorICAgICAgICBzZWxmLm1v
ZGlmaWVkID0ge30KKyAgICAgICAgcmV0dXJuIG1vY2tzLlByb2Nlc3NDb21wbGV0aW9uKHJldHVy
bmNvZGU9MCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5
L3dlYmtpdHNjbXB5L21vY2tzL3JlbW90ZS9iaXRidWNrZXQucHkgYi9Ub29scy9TY3JpcHRzL2xp
YnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS9tb2Nrcy9yZW1vdGUvYml0YnVja2V0LnB5
CmluZGV4IGExZDE3MDcxZDA3YmY2ZDA2OGVhODg2ZmZjZTE0OWQxNGEyZjA1NDcuLjM4NjM3YzVm
YWMzZTZmMzAwNmRlN2QwOWYyMDJhMjcxOWI2OTIzNzkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Njcmlw
dHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L21vY2tzL3JlbW90ZS9iaXRidWNr
ZXQucHkKKysrIGIvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2Nt
cHkvbW9ja3MvcmVtb3RlL2JpdGJ1Y2tldC5weQpAQCAtNTMsNiArNTMsNyBAQCBjbGFzcyBCaXRC
dWNrZXQobW9ja3MuUmVxdWVzdHMpOgogCiAgICAgICAgIHNlbGYuaGVhZCA9IHNlbGYuY29tbWl0
c1tzZWxmLmRlZmF1bHRfYnJhbmNoXVstMV0KICAgICAgICAgc2VsZi50YWdzID0ge30KKyAgICAg
ICAgc2VsZi5wdWxsX3JlcXVlc3RzID0gW10KIAogICAgIGRlZiBjb21taXQoc2VsZiwgcmVmKToK
ICAgICAgICAgaWYgcmVmIGluIHNlbGYuY29tbWl0czoKQEAgLTE1Nyw3ICsxNTgsNyBAQCBjbGFz
cyBCaXRCdWNrZXQobW9ja3MuUmVxdWVzdHMpOgogICAgICAgICAgICAgXSwKICAgICAgICAgKSwg
dXJsPXVybCkKIAotICAgIGRlZiByZXF1ZXN0KHNlbGYsIG1ldGhvZCwgdXJsLCBkYXRhPU5vbmUs
IHBhcmFtcz1Ob25lLCAqKmt3YXJncyk6CisgICAgZGVmIHJlcXVlc3Qoc2VsZiwgbWV0aG9kLCB1
cmwsIGRhdGE9Tm9uZSwgcGFyYW1zPU5vbmUsIGpzb249Tm9uZSwgKiprd2FyZ3MpOgogICAgICAg
ICBpZiBub3QgdXJsLnN0YXJ0c3dpdGgoJ2h0dHA6Ly8nKSBhbmQgbm90IHVybC5zdGFydHN3aXRo
KCdodHRwczovLycpOgogICAgICAgICAgICAgcmV0dXJuIG1vY2tzLlJlc3BvbnNlLmNyZWF0ZTQw
NCh1cmwpCiAKQEAgLTE5NCw0ICsxOTUsNDcgQEAgY2xhc3MgQml0QnVja2V0KG1vY2tzLlJlcXVl
c3RzKToKICAgICAgICAgaWYgc3RyaXBwZWRfdXJsLnN0YXJ0c3dpdGgoJ3t9L3Jlc3QvYnJhbmNo
LXV0aWxzL2xhdGVzdC97fS9icmFuY2hlcy9pbmZvLycuZm9ybWF0KHNlbGYuaG9zdHNbMF0sIHNl
bGYucHJvamVjdCkpOgogICAgICAgICAgICAgcmV0dXJuIHNlbGYuX2JyYW5jaGVzX2ZvcihzdHJp
cHBlZF91cmwuc3BsaXQoJy8nKVstMV0sIHVybCwgcGFyYW1zIG9yIHt9KQogCisgICAgICAgICMg
QWxsIHB1bGwtcmVxdWVzdHMKKyAgICAgICAgcHJfYmFzZSA9ICd7fS9yZXN0L2FwaS8xLjAve30v
cHVsbC1yZXF1ZXN0cycuZm9ybWF0KHNlbGYuaG9zdHNbMF0sIHNlbGYucHJvamVjdCkKKyAgICAg
ICAgaWYgbWV0aG9kID09ICdHRVQnIGFuZCBzdHJpcHBlZF91cmwgPT0gcHJfYmFzZToKKyAgICAg
ICAgICAgIHBycyA9IFtdCisgICAgICAgICAgICBmb3IgY2FuZGlkYXRlIGluIHNlbGYucHVsbF9y
ZXF1ZXN0czoKKyAgICAgICAgICAgICAgICBzdGF0ZXMgPSBwYXJhbXMuZ2V0KCdzdGF0ZScsIFtd
KQorICAgICAgICAgICAgICAgIHN0YXRlcyA9IHN0YXRlcyBpZiBpc2luc3RhbmNlKHN0YXRlcywg
bGlzdCkgZWxzZSBbc3RhdGVzXQorICAgICAgICAgICAgICAgIGlmIHN0YXRlcyBhbmQgY2FuZGlk
YXRlLmdldCgnc3RhdGUnKSBub3QgaW4gc3RhdGVzOgorICAgICAgICAgICAgICAgICAgICBjb250
aW51ZQorICAgICAgICAgICAgICAgIGF0ID0gcGFyYW1zLmdldCgnYXQnKQorICAgICAgICAgICAg
ICAgIGlmIGF0IGFuZCBjYW5kaWRhdGUuZ2V0KCdmcm9tUmVmJywge30pLmdldCgnaWQnKSAhPSBh
dDoKKyAgICAgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgICAgICBwcnMuYXBw
ZW5kKGNhbmRpZGF0ZSkKKworICAgICAgICAgICAgcmV0dXJuIG1vY2tzLlJlc3BvbnNlLmZyb21K
c29uKGRpY3QoCisgICAgICAgICAgICAgICAgc2l6ZT1sZW4ocHJzKSwKKyAgICAgICAgICAgICAg
ICBpc0xhc3RQYWdlPVRydWUsCisgICAgICAgICAgICAgICAgdmFsdWVzPXBycywKKyAgICAgICAg
ICAgICkpCisKKyAgICAgICAgIyBDcmVhdGUgcHVsbC1yZXF1ZXN0CisgICAgICAgIGlmIG1ldGhv
ZCA9PSAnUE9TVCcgYW5kIHN0cmlwcGVkX3VybCA9PSBwcl9iYXNlOgorICAgICAgICAgICAganNv
blsnYXV0aG9yJ10gPSBkaWN0KHVzZXI9ZGljdChkaXNwbGF5TmFtZT0nVGltIENvbW1pdHRlcics
IGVtYWlsQWRkcmVzcz0nY29tbWl0dGVyQHdlYmtpdC5vcmcnKSkKKyAgICAgICAgICAgIGpzb25b
J3BhcnRpY2lwYW50cyddID0gW2pzb25bJ2F1dGhvciddXQorICAgICAgICAgICAganNvblsnaWQn
XSA9IDEgKyBtYXgoWzBdICsgW3ByLmdldCgnaWQnLCAwKSBmb3IgcHIgaW4gc2VsZi5wdWxsX3Jl
cXVlc3RzXSkKKyAgICAgICAgICAgIGpzb25bJ2Zyb21SZWYnXVsnZGlzcGxheUlkJ10gPSBqc29u
Wydmcm9tUmVmJ11bJ2lkJ10uc3BsaXQoJy8nKVstMjpdCisgICAgICAgICAgICBqc29uWyd0b1Jl
ZiddWydkaXNwbGF5SWQnXSA9IGpzb25bJ3RvUmVmJ11bJ2lkJ10uc3BsaXQoJy8nKVstMjpdCisg
ICAgICAgICAgICBzZWxmLnB1bGxfcmVxdWVzdHMuYXBwZW5kKGpzb24pCisgICAgICAgICAgICBy
ZXR1cm4gbW9ja3MuUmVzcG9uc2UuZnJvbUpzb24oanNvbikKKworICAgICAgICAjIFVwZGF0ZSBv
ciBhY2Nlc3MgcHVsbC1yZXF1ZXN0CisgICAgICAgIGlmIHN0cmlwcGVkX3VybC5zdGFydHN3aXRo
KHByX2Jhc2UpOgorICAgICAgICAgICAgbnVtYmVyID0gaW50KHN0cmlwcGVkX3VybC5zcGxpdCgn
LycpWy0xXSkKKyAgICAgICAgICAgIGV4aXN0aW5nID0gTm9uZQorICAgICAgICAgICAgZm9yIGkg
aW4gcmFuZ2UobGVuKHNlbGYucHVsbF9yZXF1ZXN0cykpOgorICAgICAgICAgICAgICAgIGlmIHNl
bGYucHVsbF9yZXF1ZXN0c1tpXS5nZXQoJ2lkJykgPT0gbnVtYmVyOgorICAgICAgICAgICAgICAg
ICAgICBleGlzdGluZyA9IGkKKyAgICAgICAgICAgIGlmIGV4aXN0aW5nIGlzIE5vbmU6CisgICAg
ICAgICAgICAgICAgcmV0dXJuIG1vY2tzLlJlc3BvbnNlLmNyZWF0ZTQwNCh1cmwpCisgICAgICAg
ICAgICBpZiBtZXRob2QgPT0gJ1BVVCc6CisgICAgICAgICAgICAgICAgc2VsZi5wdWxsX3JlcXVl
c3RzW2V4aXN0aW5nXS51cGRhdGUoanNvbikKKyAgICAgICAgICAgIHJldHVybiBtb2Nrcy5SZXNw
b25zZS5mcm9tSnNvbihzZWxmLnB1bGxfcmVxdWVzdHNbZXhpc3RpbmddKQorCiAgICAgICAgIHJl
dHVybiBtb2Nrcy5SZXNwb25zZS5jcmVhdGU0MDQodXJsKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2Ny
aXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvbW9ja3MvcmVtb3RlL2dpdF9o
dWIucHkgYi9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS9t
b2Nrcy9yZW1vdGUvZ2l0X2h1Yi5weQppbmRleCA2YzY4MDRkOTA0MDI0MWRhM2U2YTFkZWY4Mzg5
ZjZlZDdlMzJlNDI1Li5hNTUxNDUyMjYzZDI5ZGFlODYwMTg3NWQwYzg5YTkwOTYwY2VhMmJjIDEw
MDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21w
eS9tb2Nrcy9yZW1vdGUvZ2l0X2h1Yi5weQorKysgYi9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy93
ZWJraXRzY21weS93ZWJraXRzY21weS9tb2Nrcy9yZW1vdGUvZ2l0X2h1Yi5weQpAQCAtNTgsNiAr
NTgsNyBAQCBjbGFzcyBHaXRIdWIobW9ja3MuUmVxdWVzdHMpOgogCiAgICAgICAgIHNlbGYuaGVh
ZCA9IHNlbGYuY29tbWl0c1tzZWxmLmRlZmF1bHRfYnJhbmNoXVstMV0KICAgICAgICAgc2VsZi50
YWdzID0ge30KKyAgICAgICAgc2VsZi5wdWxsX3JlcXVlc3RzID0gW10KICAgICAgICAgc2VsZi5f
ZW52aXJvbm1lbnQgPSBOb25lCiAKICAgICBkZWYgX19lbnRlcl9fKHNlbGYpOgpAQCAtMjgwLDcg
KzI4MSw3IEBAIGNsYXNzIEdpdEh1Yihtb2Nrcy5SZXF1ZXN0cyk6CiAgICAgICAgICAgICApLCB1
cmw9dXJsCiAgICAgICAgICkKIAotICAgIGRlZiByZXF1ZXN0KHNlbGYsIG1ldGhvZCwgdXJsLCBk
YXRhPU5vbmUsIHBhcmFtcz1Ob25lLCAqKmt3YXJncyk6CisgICAgZGVmIHJlcXVlc3Qoc2VsZiwg
bWV0aG9kLCB1cmwsIGRhdGE9Tm9uZSwgcGFyYW1zPU5vbmUsIGF1dGg9Tm9uZSwganNvbj1Ob25l
LCAqKmt3YXJncyk6CiAgICAgICAgIGlmIG5vdCB1cmwuc3RhcnRzd2l0aCgnaHR0cDovLycpIGFu
ZCBub3QgdXJsLnN0YXJ0c3dpdGgoJ2h0dHBzOi8vJyk6CiAgICAgICAgICAgICByZXR1cm4gbW9j
a3MuUmVzcG9uc2UuY3JlYXRlNDA0KHVybCkKIApAQCAtMzMxLDkgKzMzMiw2NSBAQCBjbGFzcyBH
aXRIdWIobW9ja3MuUmVxdWVzdHMpOgogCiAgICAgICAgICMgQWRkIGZvcmsKICAgICAgICAgaWYg
c3RyaXBwZWRfdXJsLnN0YXJ0c3dpdGgoJ3t9L2ZvcmtzJy5mb3JtYXQoc2VsZi5hcGlfcmVtb3Rl
KSkgYW5kIG1ldGhvZCA9PSAnUE9TVCc6Ci0gICAgICAgICAgICB1c2VybmFtZSA9IGt3YXJncy5n
ZXQoJ2pzb24nLCB7fSkuZ2V0KCdvd25lcicsIE5vbmUpCisgICAgICAgICAgICB1c2VybmFtZSA9
IChqc29uIG9yIHt9KS5nZXQoJ293bmVyJywgTm9uZSkKICAgICAgICAgICAgIGlmIHVzZXJuYW1l
OgogICAgICAgICAgICAgICAgIHNlbGYuZm9ya3MuYXBwZW5kKHVzZXJuYW1lKQogICAgICAgICAg
ICAgcmV0dXJuIG1vY2tzLlJlc3BvbnNlLmZyb21Kc29uKHt9KSBpZiB1c2VybmFtZSBlbHNlIG1v
Y2tzLlJlc3BvbnNlLmNyZWF0ZTQwNCh1cmwpCiAKKyAgICAgICAgIyBBbGwgcHVsbC1yZXF1ZXN0
cworICAgICAgICBwcl9iYXNlID0gJ3t9L3B1bGxzJy5mb3JtYXQoc2VsZi5hcGlfcmVtb3RlKQor
ICAgICAgICBpZiBtZXRob2QgPT0gJ0dFVCcgYW5kIHN0cmlwcGVkX3VybCA9PSBwcl9iYXNlOgor
ICAgICAgICAgICAgcHJzID0gW10KKyAgICAgICAgICAgIGZvciBjYW5kaWRhdGUgaW4gc2VsZi5w
dWxsX3JlcXVlc3RzOgorICAgICAgICAgICAgICAgIHN0YXRlID0gcGFyYW1zLmdldCgnc3RhdGUn
LCAnYWxsJykKKyAgICAgICAgICAgICAgICBpZiBzdGF0ZSAhPSAnYWxsJyBhbmQgY2FuZGlkYXRl
LmdldCgnc3RhdGUnLCAnY2xvc2VkJykgIT0gc3RhdGU6CisgICAgICAgICAgICAgICAgICAgIGNv
bnRpbnVlCisgICAgICAgICAgICAgICAgYmFzZSA9IHBhcmFtcy5nZXQoJ2Jhc2UnKQorICAgICAg
ICAgICAgICAgIGlmIGJhc2UgYW5kIGNhbmRpZGF0ZS5nZXQoJ2Jhc2UnLCB7fSkuZ2V0KCdyZWYn
KSAhPSBiYXNlOgorICAgICAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgICAg
IGhlYWQgPSBwYXJhbXMuZ2V0KCdoZWFkJykKKyAgICAgICAgICAgICAgICBpZiBoZWFkIGFuZCBo
ZWFkIG5vdCBpbiBbY2FuZGlkYXRlLmdldCgnaGVhZCcsIHt9KS5nZXQoJ3JlZicpLCBjYW5kaWRh
dGUuZ2V0KCdoZWFkJywge30pLmdldCgnbGFiZWwnKV06CisgICAgICAgICAgICAgICAgICAgIGNv
bnRpbnVlCisgICAgICAgICAgICAgICAgcHJzLmFwcGVuZChjYW5kaWRhdGUpCisgICAgICAgICAg
ICByZXR1cm4gbW9ja3MuUmVzcG9uc2UuZnJvbUpzb24ocHJzKQorCisgICAgICAgICMgQ3JlYXRl
L3VwZGF0ZSBwdWxsLXJlcXVlc3QKKyAgICAgICAgcHIgPSBkaWN0KCkKKyAgICAgICAgaWYgbWV0
aG9kID09ICdQT1NUJyBhbmQgYXV0aCBhbmQgc3RyaXBwZWRfdXJsLnN0YXJ0c3dpdGgocHJfYmFz
ZSk6CisgICAgICAgICAgICBpZiBqc29uLmdldCgndGl0bGUnKToKKyAgICAgICAgICAgICAgICBw
clsndGl0bGUnXSA9IGpzb25bJ3RpdGxlJ10KKyAgICAgICAgICAgIGlmIGpzb24uZ2V0KCdib2R5
Jyk6CisgICAgICAgICAgICAgICAgcHJbJ2JvZHknXSA9IGpzb25bJ2JvZHknXQorICAgICAgICAg
ICAgaWYganNvbi5nZXQoJ2hlYWQnKToKKyAgICAgICAgICAgICAgICBwclsnaGVhZCddID0gZGlj
dCgKKyAgICAgICAgICAgICAgICAgICAgbGFiZWw9anNvblsnaGVhZCddLAorICAgICAgICAgICAg
ICAgICAgICByZWY9anNvblsnaGVhZCddLnNwbGl0KCc6JylbLTFdLAorICAgICAgICAgICAgICAg
ICAgICB1c2VyPWRpY3QobG9naW49YXV0aC51c2VybmFtZSksCisgICAgICAgICAgICAgICAgKQor
ICAgICAgICAgICAgaWYganNvbi5nZXQoJ2Jhc2UnKToKKyAgICAgICAgICAgICAgICBwclsnYmFz
ZSddID0gZGljdCgKKyAgICAgICAgICAgICAgICAgICAgbGFiZWw9J3t9Ont9Jy5mb3JtYXQoc2Vs
Zi5yZW1vdGUuc3BsaXQoJy8nKVstMl0sIGpzb25bJ2Jhc2UnXSksCisgICAgICAgICAgICAgICAg
ICAgIHJlZj1qc29uWydiYXNlJ10sCisgICAgICAgICAgICAgICAgICAgIHVzZXI9ZGljdChsb2dp
bj1zZWxmLnJlbW90ZS5zcGxpdCgnLycpWy0yXSksCisgICAgICAgICAgICAgICAgKQorCisgICAg
ICAgICMgQ3JlYXRlIHNwZWNpZmljYWxseQorICAgICAgICBpZiBtZXRob2QgPT0gJ1BPU1QnIGFu
ZCBhdXRoIGFuZCBzdHJpcHBlZF91cmwgPT0gcHJfYmFzZToKKyAgICAgICAgICAgIHByWydudW1i
ZXInXSA9IDEgKyBtYXgoWzBdICsgW3ByLmdldCgnbnVtYmVyJywgMCkgZm9yIHByIGluIHNlbGYu
cHVsbF9yZXF1ZXN0c10pCisgICAgICAgICAgICBwclsndXNlciddID0gZGljdChsb2dpbj1hdXRo
LnVzZXJuYW1lKQorICAgICAgICAgICAgc2VsZi5wdWxsX3JlcXVlc3RzLmFwcGVuZChwcikKKyAg
ICAgICAgICAgIHJldHVybiBtb2Nrcy5SZXNwb25zZS5mcm9tSnNvbihwcikKKworICAgICAgICAj
IFVwZGF0ZSBzcGVjaWZpY2FsbHkKKyAgICAgICAgaWYgbWV0aG9kID09ICdQT1NUJyBhbmQgYXV0
aCBhbmQgc3RyaXBwZWRfdXJsLnN0YXJ0c3dpdGgocHJfYmFzZSk6CisgICAgICAgICAgICBudW1i
ZXIgPSBpbnQoc3RyaXBwZWRfdXJsLnNwbGl0KCcvJylbLTFdKQorICAgICAgICAgICAgZXhpc3Rp
bmcgPSBOb25lCisgICAgICAgICAgICBmb3IgaSBpbiByYW5nZShsZW4oc2VsZi5wdWxsX3JlcXVl
c3RzKSk6CisgICAgICAgICAgICAgICAgaWYgc2VsZi5wdWxsX3JlcXVlc3RzW2ldLmdldCgnbnVt
YmVyJykgPT0gbnVtYmVyOgorICAgICAgICAgICAgICAgICAgICBleGlzdGluZyA9IGkKKyAgICAg
ICAgICAgIGlmIGV4aXN0aW5nIGlzIE5vbmU6CisgICAgICAgICAgICAgICAgcmV0dXJuIG1vY2tz
LlJlc3BvbnNlLmNyZWF0ZTQwNCh1cmwpCisgICAgICAgICAgICBzZWxmLnB1bGxfcmVxdWVzdHNb
ZXhpc3RpbmddLnVwZGF0ZShwcikKKyAgICAgICAgICAgIHJldHVybiBtb2Nrcy5SZXNwb25zZS5m
cm9tSnNvbihzZWxmLnB1bGxfcmVxdWVzdHNbaV0pCisKICAgICAgICAgcmV0dXJuIG1vY2tzLlJl
c3BvbnNlLmNyZWF0ZTQwNCh1cmwpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL2xpYnJhcmll
cy93ZWJraXRzY21weS93ZWJraXRzY21weS9wcm9ncmFtL19faW5pdF9fLnB5IGIvVG9vbHMvU2Ny
aXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvcHJvZ3JhbS9fX2luaXRfXy5w
eQppbmRleCBjOTM4YmQ5NjkwMmVhZjY3NTU0NTk1ZjQ4NzUyYjZmMzFlNDU0MmE5Li4yYTlhOTYw
MGFmNjNmZjE1OWZlNGJiYzE0MGFhNzRhNzllZTY2NzJkIDEwMDY0NAotLS0gYS9Ub29scy9TY3Jp
cHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS9wcm9ncmFtL19faW5pdF9fLnB5
CisrKyBiL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L3By
b2dyYW0vX19pbml0X18ucHkKQEAgLTM0LDYgKzM0LDcgQEAgZnJvbSAuY2hlY2tvdXQgaW1wb3J0
IENoZWNrb3V0CiBmcm9tIC5maW5kIGltcG9ydCBGaW5kLCBJbmZvCiBmcm9tIC5sb2cgaW1wb3J0
IExvZwogZnJvbSAucHVsbCBpbXBvcnQgUHVsbAorZnJvbSAucHVsbF9yZXF1ZXN0IGltcG9ydCBQ
dWxsUmVxdWVzdAogZnJvbSAuc2V0dXBfZ2l0X3N2biBpbXBvcnQgU2V0dXBHaXRTdm4KIGZyb20g
LnNldHVwIGltcG9ydCBTZXR1cAogCkBAIC02NSw4ICs2Niw3IEBAIGRlZiBtYWluKGFyZ3M9Tm9u
ZSwgcGF0aD1Ob25lLCBsb2dnZXJzPU5vbmUsIGNvbnRyaWJ1dG9ycz1Ob25lLCBpZGVudGlmaWVy
X3RlbXBsCiAgICAgKQogCiAgICAgc3VicGFyc2VycyA9IHBhcnNlci5hZGRfc3VicGFyc2Vycyho
ZWxwPSdzdWItY29tbWFuZCBoZWxwJykKLQotICAgIHByb2dyYW1zID0gW0JyYW5jaCwgQmxhbWUs
IENhbm9uaWNhbGl6ZSwgQ2hlY2tvdXQsIENsZWFuLCBGaW5kLCBJbmZvLCBMb2csIFB1bGwsIFNl
dHVwXQorICAgIHByb2dyYW1zID0gW0JsYW1lLCBCcmFuY2gsIENhbm9uaWNhbGl6ZSwgQ2hlY2tv
dXQsIENsZWFuLCBGaW5kLCBJbmZvLCBMb2csIFB1bGwsIFB1bGxSZXF1ZXN0LCBTZXR1cF0KICAg
ICBpZiBzdWJ2ZXJzaW9uOgogICAgICAgICBwcm9ncmFtcy5hcHBlbmQoU2V0dXBHaXRTdm4pCiAK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNj
bXB5L3Byb2dyYW0vcHVsbF9yZXF1ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Vi
a2l0c2NtcHkvd2Via2l0c2NtcHkvcHJvZ3JhbS9wdWxsX3JlcXVlc3QucHkKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
Njc0NzViZjkwOWU4ZjUwMmY4YWQ2Mjg2MTg0OTZmOThhNjkyODA5NAotLS0gL2Rldi9udWxsCisr
KyBiL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L3Byb2dy
YW0vcHVsbF9yZXF1ZXN0LnB5CkBAIC0wLDAgKzEsMTYzIEBACisjIENvcHlyaWdodCAoQykgMjAy
MSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIg
QU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorIyBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorCitpbXBvcnQgc3lzCisKK2Zyb20gLmNvbW1hbmQgaW1wb3J0IENv
bW1hbmQKK2Zyb20gLmJyYW5jaCBpbXBvcnQgQnJhbmNoCisKK2Zyb20gd2Via2l0Y29yZXB5IGlt
cG9ydCBhcmd1bWVudHMsIHJ1biwgc3RyaW5nX3V0aWxzCitmcm9tIHdlYmtpdHNjbXB5IGltcG9y
dCBsb2NhbCwgbG9nLCByZW1vdGUKKworCitjbGFzcyBQdWxsUmVxdWVzdChDb21tYW5kKToKKyAg
ICBuYW1lID0gJ3B1bGwtcmVxdWVzdCcKKyAgICBhbGlhc2VzID0gWydwcicsICdwZnInLCAndXBs
b2FkJ10KKyAgICBoZWxwID0gJ1B1c2ggdGhlIGN1cnJlbnQgY2hlY2tvdXQgc3RhdGUgYXMgYSBw
dWxsLXJlcXVlc3QnCisKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgcGFyc2VyKGNscywgcGFy
c2VyLCBsb2dnZXJzPU5vbmUpOgorICAgICAgICBCcmFuY2gucGFyc2VyKHBhcnNlciwgbG9nZ2Vy
cz1sb2dnZXJzKQorICAgICAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KAorICAgICAgICAgICAgJy0t
bm8tYWRkJywgJy0tYWRkJywKKyAgICAgICAgICAgIGRlc3Q9J3dpbGxfYWRkJywgZGVmYXVsdD1O
b25lLAorICAgICAgICAgICAgaGVscD0nV2hlbiBkcmFmdGluZyBhIGNoYW5nZSwgYWRkIChvciBu
ZXZlciBhZGQpIG1vZGlmaWVkIGZpbGVzIHRvIHNldCBvZiBzdGFnZWQgY2hhbmdlcyB0byBiZSBj
b21taXR0ZWQnLAorICAgICAgICAgICAgYWN0aW9uPWFyZ3VtZW50cy5Ob0FjdGlvbiwKKyAgICAg
ICAgKQorCisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIGNyZWF0ZV9jb21taXQoY2xzLCBhcmdz
LCByZXBvc2l0b3J5LCAqKmt3YXJncyk6CisgICAgICAgICMgRmlyc3QsIGZpbmQgdGhlIHNldCBv
ZiBmaWxlcyB0byBiZSBtb2RpZmllZAorICAgICAgICBtb2RpZmllZCA9IFtdIGlmIGFyZ3Mud2ls
bF9hZGQgaXMgRmFsc2UgZWxzZSByZXBvc2l0b3J5Lm1vZGlmaWVkKCkKKyAgICAgICAgaWYgYXJn
cy53aWxsX2FkZDoKKyAgICAgICAgICAgIG1vZGlmaWVkID0gbGlzdChzZXQobW9kaWZpZWQpLnVu
aW9uKHNldChyZXBvc2l0b3J5Lm1vZGlmaWVkKHN0YWdlZD1GYWxzZSkpKSkKKworICAgICAgICAj
IE5leHQsIGFkZCBhbGwgbW9kaWZpZWQgZmlsZQorICAgICAgICBmb3IgZmlsZSBpbiBzZXQobW9k
aWZpZWQpIC0gc2V0KHJlcG9zaXRvcnkubW9kaWZpZWQoc3RhZ2VkPVRydWUpKToKKyAgICAgICAg
ICAgIGxvZy53YXJuaW5nKCcgICAgQWRkaW5nIHt9Li4uJy5mb3JtYXQoZmlsZSkpCisgICAgICAg
ICAgICBpZiBydW4oW3JlcG9zaXRvcnkuZXhlY3V0YWJsZSgpLCAnYWRkJywgZmlsZV0sIGN3ZD1y
ZXBvc2l0b3J5LnJvb3RfcGF0aCkucmV0dXJuY29kZToKKyAgICAgICAgICAgICAgICBzeXMuc3Rk
ZXJyLndyaXRlKCJGYWlsZWQgdG8gYWRkICd7fSdcbiIuZm9ybWF0KGZpbGUpKQorICAgICAgICAg
ICAgICAgIHJldHVybiAxCisKKyAgICAgICAgIyBUaGVuLCBzZWUgaWYgd2UgYWxyZWFkeSBoYXZl
IGEgY29tbWl0IGFzc29jaWF0ZWQgd2l0aCB0aGlzIGJyYW5jaCB3ZSBuZWVkIHRvIG1vZGlmeQor
ICAgICAgICBoYXNfY29tbWl0ID0gcmVwb3NpdG9yeS5jb21taXQoaW5jbHVkZV9sb2c9RmFsc2Us
IGluY2x1ZGVfaWRlbnRpZmllcj1GYWxzZSkuYnJhbmNoID09IHJlcG9zaXRvcnkuYnJhbmNoIGFu
ZCByZXBvc2l0b3J5LmJyYW5jaCAhPSByZXBvc2l0b3J5LmRlZmF1bHRfYnJhbmNoCisgICAgICAg
IGlmIG5vdCBtb2RpZmllZCBhbmQgaGFzX2NvbW1pdDoKKyAgICAgICAgICAgIGxvZy53YXJuaW5n
KCdVc2luZyBjb21taXR0ZWQgY2hhbmdlcy4uLicpCisgICAgICAgICAgICByZXR1cm4gMAorCisg
ICAgICAgICMgT3RoZXJ3aXNlLCB3ZSBuZWVkIHRvIGNyZWF0ZSBhIGNvbW1pdAorICAgICAgICBp
ZiBub3QgbW9kaWZpZWQ6CisgICAgICAgICAgICBzeXMuc3RkZXJyLndyaXRlKCdObyBtb2RpZmll
ZCBmaWxlc1xuJykKKyAgICAgICAgICAgIHJldHVybiAxCisgICAgICAgIGxvZy53YXJuaW5nKCdB
bWVuZGluZyBjb21taXQuLi4nIGlmIGhhc19jb21taXQgZWxzZSAnQ3JlYXRpbmcgY29tbWl0Li4u
JykKKyAgICAgICAgaWYgcnVuKFtyZXBvc2l0b3J5LmV4ZWN1dGFibGUoKSwgJ2NvbW1pdCddICsg
KFsnLS1hbWVuZCddIGlmIGhhc19jb21taXQgZWxzZSBbXSksIGN3ZD1yZXBvc2l0b3J5LnJvb3Rf
cGF0aCkucmV0dXJuY29kZToKKyAgICAgICAgICAgIHN5cy5zdGRlcnIud3JpdGUoJ0ZhaWxlZCB0
byBnZW5lcmF0ZSBjb21taXRcbicpCisgICAgICAgICAgICByZXR1cm4gMQorCisgICAgICAgIHJl
dHVybiAwCisKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgYnJhbmNoX3BvaW50KGNscywgYXJn
cywgcmVwb3NpdG9yeSwgKiprd2FyZ3MpOgorICAgICAgICBjbnQgPSAwCisgICAgICAgIGNvbW1p
dCA9IE5vbmUKKyAgICAgICAgd2hpbGUgbm90IGNvbW1pdCBvciBjb21taXQuYnJhbmNoLnN0YXJ0
c3dpdGgoQnJhbmNoLlBSRUZJWCk6CisgICAgICAgICAgICBjbnQgKz0gMQorICAgICAgICAgICAg
Y29tbWl0ID0gcmVwb3NpdG9yeS5maW5kKGFyZ3VtZW50PSdIRUFEfnt9Jy5mb3JtYXQoY250KSwg
aW5jbHVkZV9sb2c9RmFsc2UsIGluY2x1ZGVfaWRlbnRpZmllcj1GYWxzZSkKKyAgICAgICAgICAg
IGxvZy53YXJuaW5nKCcgICAgRm91bmQge30uLi4nLmZvcm1hdChzdHJpbmdfdXRpbHMucGx1cmFs
aXplKGNudCwgJ2NvbW1pdCcpKSkKKworICAgICAgICByZXR1cm4gY29tbWl0CisKKyAgICBAY2xh
c3NtZXRob2QKKyAgICBkZWYgbWFpbihjbHMsIGFyZ3MsIHJlcG9zaXRvcnksICoqa3dhcmdzKToK
KyAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UocmVwb3NpdG9yeSwgbG9jYWwuR2l0KToKKyAgICAg
ICAgICAgIHN5cy5zdGRlcnIud3JpdGUoIkNhbiBvbmx5ICd7fScgb24gYSBuYXRpdmUgR2l0IHJl
cG9zaXRvcnlcbiIuZm9ybWF0KGNscy5uYW1lKSkKKyAgICAgICAgICAgIHJldHVybiAxCisKKyAg
ICAgICAgaWYgbm90IHJlcG9zaXRvcnkuYnJhbmNoLnN0YXJ0c3dpdGgoQnJhbmNoLlBSRUZJWCk6
CisgICAgICAgICAgICBpZiBCcmFuY2gubWFpbihhcmdzLCByZXBvc2l0b3J5LCAqKmt3YXJncyk6
CisgICAgICAgICAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgiQWJhbmRvbmluZyBwdXNoaW5nIHB1
bGwtcmVxdWVzdCBiZWNhdXNlICd7fScgY291bGQgbm90IGJlIGNyZWF0ZWRcbiIuZm9ybWF0KGFy
Z3MuaXNzdWUpKQorICAgICAgICAgICAgICAgIHJldHVybiAxCisgICAgICAgIGVsaWYgYXJncy5p
c3N1ZSBhbmQgcmVwb3NpdG9yeS5icmFuY2ggIT0gYXJncy5pc3N1ZToKKyAgICAgICAgICAgIHN5
cy5zdGRlcnIud3JpdGUoIkNyZWF0aW5nIGEgcHVsbC1yZXF1ZXN0IGZvciAne30nIGJ1dCB3ZSdy
ZSBvbiAne30nXG4iLmZvcm1hdChhcmdzLmlzc3VlLCByZXBvc2l0b3J5LmJyYW5jaCkpCisgICAg
ICAgICAgICByZXR1cm4gMQorCisgICAgICAgIHJlc3VsdCA9IGNscy5jcmVhdGVfY29tbWl0KGFy
Z3MsIHJlcG9zaXRvcnksICoqa3dhcmdzKQorICAgICAgICBpZiByZXN1bHQ6CisgICAgICAgICAg
ICByZXR1cm4gcmVzdWx0CisKKyAgICAgICAgYnJhbmNoX3BvaW50ID0gY2xzLmJyYW5jaF9wb2lu
dChhcmdzLCByZXBvc2l0b3J5LCAqKmt3YXJncykKKworICAgICAgICBybXQgPSByZXBvc2l0b3J5
LnJlbW90ZSgpCisgICAgICAgIGlmIG5vdCBybXQ6CisgICAgICAgICAgICBzeXMuc3RkZXJyLndy
aXRlKCIne30nIGRvZXNuJ3QgaGF2ZSBhIHJlY29nbml6ZWQgcmVtb3RlXG4iLmZvcm1hdChyZXBv
c2l0b3J5LnJvb3RfcGF0aCkpCisgICAgICAgICAgICByZXR1cm4gMQorICAgICAgICB0YXJnZXQg
PSAnZm9yaycgaWYgaXNpbnN0YW5jZShybXQsIHJlbW90ZS5HaXRIdWIpIGVsc2UgJ29yaWdpbicK
KyAgICAgICAgbG9nLndhcm5pbmcoIlB1c2hpbmcgJ3t9JyB0byAne30nLi4uIi5mb3JtYXQocmVw
b3NpdG9yeS5icmFuY2gsIHRhcmdldCkpCisgICAgICAgIGlmIHJ1bihbcmVwb3NpdG9yeS5leGVj
dXRhYmxlKCksICdwdXNoJywgJy1mJywgdGFyZ2V0LCByZXBvc2l0b3J5LmJyYW5jaF0sIGN3ZD1y
ZXBvc2l0b3J5LnJvb3RfcGF0aCkucmV0dXJuY29kZToKKyAgICAgICAgICAgIHN5cy5zdGRlcnIu
d3JpdGUoIkZhaWxlZCB0byBwdXNoICd7fScgdG8gJ3t9J1xuIi5mb3JtYXQocmVwb3NpdG9yeS5i
cmFuY2gsIHRhcmdldCkpCisgICAgICAgICAgICByZXR1cm4gMQorCisgICAgICAgIGlmIG5vdCBy
bXQucHVsbF9yZXF1ZXN0czoKKyAgICAgICAgICAgIHN5cy5zdGRlcnIud3JpdGUoIid7fScgY2Fu
bm90IGdlbmVyYXRlIHB1bGwtcmVxdWVzdHNcbiIuZm9ybWF0KHJtdC51cmwpKQorICAgICAgICAg
ICAgcmV0dXJuIDEKKyAgICAgICAgdXNlciwgXyA9IHJtdC5jcmVkZW50aWFscyhyZXF1aXJlZD1U
cnVlKSBpZiBpc2luc3RhbmNlKHJtdCwgcmVtb3RlLkdpdEh1YikgZWxzZSAocmVwb3NpdG9yeS5j
b25maWcoKVsndXNlci5lbWFpbCddLCBOb25lKQorICAgICAgICBjYW5kaWRhdGVzID0gbGlzdChy
bXQucHVsbF9yZXF1ZXN0cy5maW5kKGhlYWQ9cmVwb3NpdG9yeS5icmFuY2gpKQorICAgICAgICBj
b21taXRzID0gbGlzdChyZXBvc2l0b3J5LmNvbW1pdHMoYmVnaW49ZGljdChoYXNoPWJyYW5jaF9w
b2ludC5oYXNoKSwgZW5kPWRpY3QoYnJhbmNoPXJlcG9zaXRvcnkuYnJhbmNoKSkpCisKKyAgICAg
ICAgdGl0bGUgPSBjb21taXRzWzBdLm1lc3NhZ2Uuc3BsaXRsaW5lcygpWzBdCisgICAgICAgIGZv
ciBjb21taXQgaW4gY29tbWl0c1sxOl06CisgICAgICAgICAgICB0aXRsZV9jYW5kaWRhdGUgPSBj
b21taXQubWVzc2FnZS5zcGxpdGxpbmVzKClbMF0KKyAgICAgICAgICAgIHdoaWxlIHRpdGxlIGFu
ZCBub3QgdGl0bGVfY2FuZGlkYXRlLnN0YXJ0c3dpdGgodGl0bGUpOgorICAgICAgICAgICAgICAg
IHRpdGxlID0gdGl0bGVbOi0xXQorICAgICAgICBpZiBub3QgdGl0bGU6CisgICAgICAgICAgICB0
aXRsZSA9IGNvbW1pdHNbMF0ubWVzc2FnZS5zcGxpdGxpbmVzKClbMF0KKyAgICAgICAgdGl0bGUg
PSB0aXRsZS5yc3RyaXAoKS5sc3RyaXAoKQorICAgICAgICBpZiB0aXRsZS5lbmRzd2l0aCgnKFBh
cnQnKToKKyAgICAgICAgICAgIHRpdGxlID0gdGl0bGVbOi01XS5yc3RyaXAoKQorCisgICAgICAg
IGlmIGNhbmRpZGF0ZXM6CisgICAgICAgICAgICBsb2cud2FybmluZygiVXBkYXRpbmcgcHVsbC1y
ZXF1ZXN0IGZvciAne30nLi4uIi5mb3JtYXQocmVwb3NpdG9yeS5icmFuY2gpKQorICAgICAgICAg
ICAgcHIgPSBybXQucHVsbF9yZXF1ZXN0cy51cGRhdGUoCisgICAgICAgICAgICAgICAgcHVsbF9y
ZXF1ZXN0PWNhbmRpZGF0ZXNbMF0sCisgICAgICAgICAgICAgICAgdGl0bGU9dGl0bGUsCisgICAg
ICAgICAgICAgICAgY29tbWl0cz1jb21taXRzLAorICAgICAgICAgICAgICAgIGJhc2U9YnJhbmNo
X3BvaW50LmJyYW5jaCwKKyAgICAgICAgICAgICAgICBoZWFkPXJlcG9zaXRvcnkuYnJhbmNoLAor
ICAgICAgICAgICAgKQorICAgICAgICAgICAgaWYgbm90IHByOgorICAgICAgICAgICAgICAgIHN5
cy5zdGRlcnIud3JpdGUoIkZhaWxlZCB0byB1cGRhdGUgcHVsbC1yZXF1ZXN0ICd7fSdcbiIuZm9y
bWF0KGNhbmRpZGF0ZXNbMF0pKQorICAgICAgICAgICAgICAgIHJldHVybiAxCisgICAgICAgICAg
ICBsb2cud2FybmluZygiVXBkYXRlZCAne30nISIuZm9ybWF0KHByKSkKKyAgICAgICAgZWxzZToK
KyAgICAgICAgICAgIGxvZy53YXJuaW5nKCJDcmVhdGluZyBwdWxsLXJlcXVlc3QgZm9yICd7fScu
Li4iLmZvcm1hdChyZXBvc2l0b3J5LmJyYW5jaCkpCisgICAgICAgICAgICBwciA9IHJtdC5wdWxs
X3JlcXVlc3RzLmNyZWF0ZSgKKyAgICAgICAgICAgICAgICB0aXRsZT10aXRsZSwKKyAgICAgICAg
ICAgICAgICBjb21taXRzPWNvbW1pdHMsCisgICAgICAgICAgICAgICAgYmFzZT1icmFuY2hfcG9p
bnQuYnJhbmNoLAorICAgICAgICAgICAgICAgIGhlYWQ9cmVwb3NpdG9yeS5icmFuY2gsCisgICAg
ICAgICAgICApCisgICAgICAgICAgICBpZiBub3QgcHI6CisgICAgICAgICAgICAgICAgc3lzLnN0
ZGVyci53cml0ZSgiRmFpbGVkIHRvIGNyZWF0ZSBwdWxsLXJlcXVlc3QgZm9yICd7fSdcbiIuZm9y
bWF0KHJlcG9zaXRvcnkuYnJhbmNoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gMQorICAgICAg
ICAgICAgbG9nLndhcm5pbmcoIkNyZWF0ZWQgJ3t9JyEiLmZvcm1hdChwcikpCisKKyAgICAgICAg
cmV0dXJuIDAKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5
L3dlYmtpdHNjbXB5L3JlbW90ZS9iaXRidWNrZXQucHkgYi9Ub29scy9TY3JpcHRzL2xpYnJhcmll
cy93ZWJraXRzY21weS93ZWJraXRzY21weS9yZW1vdGUvYml0YnVja2V0LnB5CmluZGV4IGVhMmVl
N2QyNWUzOWQ1MThjMzU0ZTczNDUzZmUxYzgwNTU4YTY2YjUuLmI2ZmUxMWRjNTdlODhmNTQ2MGQ3
ZTk0ZjM4YzI0NGNlYTc1ZjczY2MgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVz
L3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L3JlbW90ZS9iaXRidWNrZXQucHkKKysrIGIvVG9vbHMv
U2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvcmVtb3RlL2JpdGJ1Y2tl
dC5weQpAQCAtMjUsMTQgKzI1LDE2MCBAQCBpbXBvcnQgcmVxdWVzdHMKIGltcG9ydCBzaXgKIGlt
cG9ydCBzeXMKIAoraW1wb3J0IGpzb24KKwogZnJvbSB3ZWJraXRjb3JlcHkgaW1wb3J0IGRlY29y
YXRvcnMKLWZyb20gd2Via2l0c2NtcHkgaW1wb3J0IENvbW1pdAorZnJvbSB3ZWJraXRzY21weSBp
bXBvcnQgQ29tbWl0LCBQdWxsUmVxdWVzdAogZnJvbSB3ZWJraXRzY21weS5yZW1vdGUuc2NtIGlt
cG9ydCBTY20KIAogCiBjbGFzcyBCaXRCdWNrZXQoU2NtKToKICAgICBVUkxfUkUgPSByZS5jb21w
aWxlKHInXEFodHRwcz86Ly8oP1A8ZG9tYWluPlxTKykvcHJvamVjdHMvKD9QPHByb2plY3Q+XFMr
KS9yZXBvcy8oP1A8cmVwb3NpdG9yeT5cUyspXFonKQogCisgICAgY2xhc3MgUFJHZW5lcmF0b3Io
U2NtLlBSR2VuZXJhdG9yKToKKyAgICAgICAgVElUTEVfQ0hBUl9MSU1JVCA9IDI1NAorICAgICAg
ICBCT0RZX0NIQVJfTElNSVQgPSAzMjc2NgorCisgICAgICAgIGRlZiBmaW5kKHNlbGYsIHN0YXRl
PU5vbmUsIGhlYWQ9Tm9uZSwgYmFzZT1Ob25lKToKKyAgICAgICAgICAgIHBhcmFtcyA9IGRpY3Qo
CisgICAgICAgICAgICAgICAgbGltaXQ9MTAwLAorICAgICAgICAgICAgICAgIHdpdGhQcm9wZXJ0
aWVzPSdmYWxzZScsCisgICAgICAgICAgICAgICAgd2l0aEF0dHJpYnV0ZXM9J2ZhbHNlJywKKyAg
ICAgICAgICAgICkKKyAgICAgICAgICAgIGlmIHN0YXRlID09IFB1bGxSZXF1ZXN0LlN0YXRlLk9Q
RU5FRDoKKyAgICAgICAgICAgICAgICBwYXJhbXNbJ3N0YXRlJ10gPSAnT1BFTicKKyAgICAgICAg
ICAgIGlmIHN0YXRlID09IFB1bGxSZXF1ZXN0LlN0YXRlLkNMT1NFRDoKKyAgICAgICAgICAgICAg
ICBwYXJhbXNbJ3N0YXRlJ10gPSBbJ0RFQ0xJTkVEJywgJ01FUkdFRCcsICdTVVBFUlNFREVEJ10K
KyAgICAgICAgICAgIGlmIGhlYWQ6CisgICAgICAgICAgICAgICAgcGFyYW1zWydkaXJlY3Rpb24n
XSA9ICdPVVRHT0lORycKKyAgICAgICAgICAgICAgICBwYXJhbXNbJ2F0J10gPSAncmVmcy9oZWFk
cy97fScuZm9ybWF0KGhlYWQpCisgICAgICAgICAgICBkYXRhID0gc2VsZi5yZXBvc2l0b3J5LnJl
cXVlc3QoJ3B1bGwtcmVxdWVzdHMnLCBwYXJhbXM9cGFyYW1zKQorICAgICAgICAgICAgZm9yIGRh
dHVtIGluIGRhdGEgb3IgW106CisgICAgICAgICAgICAgICAgaWYgYmFzZSBhbmQgbm90IGRhdHVt
Wyd0b1JlZiddWydpZCddLmVuZHN3aXRoKGJhc2UpOgorICAgICAgICAgICAgICAgICAgICBjb250
aW51ZQorICAgICAgICAgICAgICAgIHlpZWxkIFB1bGxSZXF1ZXN0KAorICAgICAgICAgICAgICAg
ICAgICBudW1iZXI9ZGF0dW1bJ2lkJ10sCisgICAgICAgICAgICAgICAgICAgIHRpdGxlPWRhdHVt
LmdldCgndGl0bGUnKSwKKyAgICAgICAgICAgICAgICAgICAgYm9keT1kYXR1bS5nZXQoJ2Rlc2Ny
aXB0aW9uJyksCisgICAgICAgICAgICAgICAgICAgIGF1dGhvcj1zZWxmLnJlcG9zaXRvcnkuY29u
dHJpYnV0b3JzLmNyZWF0ZSgKKyAgICAgICAgICAgICAgICAgICAgICAgIGRhdHVtWydhdXRob3In
XVsndXNlciddWydkaXNwbGF5TmFtZSddLAorICAgICAgICAgICAgICAgICAgICAgICAgZGF0dW1b
J2F1dGhvciddWyd1c2VyJ11bJ2VtYWlsQWRkcmVzcyddLAorICAgICAgICAgICAgICAgICAgICAp
LCBoZWFkPWRhdHVtWydmcm9tUmVmJ11bJ2Rpc3BsYXlJZCddLAorICAgICAgICAgICAgICAgICAg
ICBiYXNlPWRhdHVtWyd0b1JlZiddWydkaXNwbGF5SWQnXSwKKyAgICAgICAgICAgICAgICApCisK
KyAgICAgICAgZGVmIGNyZWF0ZShzZWxmLCBoZWFkLCB0aXRsZSwgYm9keT1Ob25lLCBjb21taXRz
PU5vbmUsIGJhc2U9Tm9uZSk6CisgICAgICAgICAgICBmb3Iga2V5LCB2YWx1ZSBpbiBkaWN0KGhl
YWQ9aGVhZCwgdGl0bGU9dGl0bGUpLml0ZW1zKCk6CisgICAgICAgICAgICAgICAgaWYgbm90IHZh
bHVlOgorICAgICAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJNdXN0IGRlZmluZSAn
e30nIHdoZW4gY3JlYXRpbmcgcHVsbC1yZXF1ZXN0Ii5mb3JtYXQoa2V5KSkKKworICAgICAgICAg
ICAgaWYgbGVuKHRpdGxlKSA+IHNlbGYuVElUTEVfQ0hBUl9MSU1JVDoKKyAgICAgICAgICAgICAg
ICByYWlzZSBWYWx1ZUVycm9yKCdUaXRsZSBsZW5ndGggdG9vIGxvbmcuIExpbWl0IGlzOiB7fScu
Zm9ybWF0KHNlbGYuVElUTEVfQ0hBUl9MSU1JVCkpCisgICAgICAgICAgICBkZXNjcmlwdGlvbiA9
IFB1bGxSZXF1ZXN0LmNyZWF0ZV9ib2R5KGJvZHksIGNvbW1pdHMpCisgICAgICAgICAgICBpZiBk
ZXNjcmlwdGlvbiBhbmQgbGVuKGRlc2NyaXB0aW9uKSA+IHNlbGYuQk9EWV9DSEFSX0xJTUlUOgor
ICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ0JvZHkgbGVuZ3RoIHRvbyBsb25nLiBM
aW1pdCBpczoge30nLmZvcm1hdChzZWxmLkJPRFlfQ0hBUl9MSU1JVCkpCisgICAgICAgICAgICBy
ZXNwb25zZSA9IHJlcXVlc3RzLnBvc3QoCisgICAgICAgICAgICAgICAgJ2h0dHBzOi8ve2RvbWFp
bn0vcmVzdC9hcGkvMS4wL3Byb2plY3RzL3twcm9qZWN0fS9yZXBvcy97bmFtZX0vcHVsbC1yZXF1
ZXN0cycuZm9ybWF0KAorICAgICAgICAgICAgICAgICAgICBkb21haW49c2VsZi5yZXBvc2l0b3J5
LmRvbWFpbiwKKyAgICAgICAgICAgICAgICAgICAgcHJvamVjdD1zZWxmLnJlcG9zaXRvcnkucHJv
amVjdCwKKyAgICAgICAgICAgICAgICAgICAgbmFtZT1zZWxmLnJlcG9zaXRvcnkubmFtZSwKKyAg
ICAgICAgICAgICAgICApLCBqc29uPWRpY3QoCisgICAgICAgICAgICAgICAgICAgIHRpdGxlPXRp
dGxlLAorICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbj1QdWxsUmVxdWVzdC5jcmVhdGVf
Ym9keShib2R5LCBjb21taXRzKSwKKyAgICAgICAgICAgICAgICAgICAgZnJvbVJlZj1kaWN0KAor
ICAgICAgICAgICAgICAgICAgICAgICAgaWQ9J3JlZnMvaGVhZHMve30nLmZvcm1hdChoZWFkKSwK
KyAgICAgICAgICAgICAgICAgICAgICAgIHJlcG9zaXRvcnk9ZGljdCgKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBzbHVnPXNlbGYucmVwb3NpdG9yeS5uYW1lLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHByb2plY3Q9ZGljdChrZXk9c2VsZi5yZXBvc2l0b3J5LnByb2plY3QpLAor
ICAgICAgICAgICAgICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICAgICAgICAgKSwgdG9SZWY9
ZGljdCgKKyAgICAgICAgICAgICAgICAgICAgICAgIGlkPSdyZWZzL2hlYWRzL3t9Jy5mb3JtYXQo
YmFzZSBvciBzZWxmLnJlcG9zaXRvcnkuZGVmYXVsdF9icmFuY2gpLAorICAgICAgICAgICAgICAg
ICAgICAgICAgcmVwb3NpdG9yeT1kaWN0KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNs
dWc9c2VsZi5yZXBvc2l0b3J5Lm5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJv
amVjdD1kaWN0KGtleT1zZWxmLnJlcG9zaXRvcnkucHJvamVjdCksCisgICAgICAgICAgICAgICAg
ICAgICAgICApLAorICAgICAgICAgICAgICAgICAgICApLAorICAgICAgICAgICAgICAgICksCisg
ICAgICAgICAgICApCisgICAgICAgICAgICBpZiByZXNwb25zZS5zdGF0dXNfY29kZSAvLyAxMDAg
IT0gMjoKKyAgICAgICAgICAgICAgICByZXR1cm4gTm9uZQorICAgICAgICAgICAgZGF0YSA9IHJl
c3BvbnNlLmpzb24oKQorICAgICAgICAgICAgcmV0dXJuIFB1bGxSZXF1ZXN0KAorICAgICAgICAg
ICAgICAgIG51bWJlcj1kYXRhWydpZCddLAorICAgICAgICAgICAgICAgIHRpdGxlPWRhdGEuZ2V0
KCd0aXRsZScpLAorICAgICAgICAgICAgICAgIGJvZHk9ZGF0YS5nZXQoJ2Rlc2NyaXB0aW9uJyks
CisgICAgICAgICAgICAgICAgYXV0aG9yPXNlbGYucmVwb3NpdG9yeS5jb250cmlidXRvcnMuY3Jl
YXRlKAorICAgICAgICAgICAgICAgICAgICBkYXRhWydhdXRob3InXVsndXNlciddWydkaXNwbGF5
TmFtZSddLAorICAgICAgICAgICAgICAgICAgICBkYXRhWydhdXRob3InXVsndXNlciddWydlbWFp
bEFkZHJlc3MnXSwKKyAgICAgICAgICAgICAgICApLCBoZWFkPWRhdGFbJ2Zyb21SZWYnXVsnZGlz
cGxheUlkJ10sCisgICAgICAgICAgICAgICAgYmFzZT1kYXRhWyd0b1JlZiddWydkaXNwbGF5SWQn
XSwKKyAgICAgICAgICAgICkKKworICAgICAgICBkZWYgdXBkYXRlKHNlbGYsIHB1bGxfcmVxdWVz
dCwgaGVhZD1Ob25lLCB0aXRsZT1Ob25lLCBib2R5PU5vbmUsIGNvbW1pdHM9Tm9uZSwgYmFzZT1O
b25lKToKKyAgICAgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKHB1bGxfcmVxdWVzdCwgUHVsbFJl
cXVlc3QpOgorICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoCisgICAgICAgICAgICAg
ICAgICAgICJFeHBlY3RlZCAncHVsbF9yZXF1ZXN0JyB0byBiZSBvZiB0eXBlICd7fScgbm90ICd7
fSciLmZvcm1hdChQdWxsUmVxdWVzdCwgdHlwZShwdWxsX3JlcXVlc3QpKSkKKyAgICAgICAgICAg
IGlmIG5vdCBhbnkoKGhlYWQsIHRpdGxlLCBib2R5LCBjb21taXRzLCBiYXNlKSk6CisgICAgICAg
ICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignTm8gYXJndW1lbnRzIHRvIHVwZGF0ZSBwdWxsLXJl
cXVlc3QgcHJvdmlkZWQnKQorCisgICAgICAgICAgICB0b19jaGFuZ2UgPSBkaWN0KCkKKyAgICAg
ICAgICAgIGlmIHRpdGxlOgorICAgICAgICAgICAgICAgIHRvX2NoYW5nZVsndGl0bGUnXSA9IHRp
dGxlCisgICAgICAgICAgICBpZiBib2R5IG9yIGNvbW1pdHM6CisgICAgICAgICAgICAgICAgdG9f
Y2hhbmdlWydkZXNjcmlwdGlvbiddID0gUHVsbFJlcXVlc3QuY3JlYXRlX2JvZHkoYm9keSwgY29t
bWl0cykKKyAgICAgICAgICAgIGlmIGhlYWQ6CisgICAgICAgICAgICAgICAgdG9fY2hhbmdlWydm
cm9tUmVmJ10gPSBkaWN0KAorICAgICAgICAgICAgICAgICAgICBpZD0ncmVmcy9oZWFkcy97fScu
Zm9ybWF0KGhlYWQpLAorICAgICAgICAgICAgICAgICAgICByZXBvc2l0b3J5PWRpY3QoCisgICAg
ICAgICAgICAgICAgICAgICAgICBzbHVnPXNlbGYucmVwb3NpdG9yeS5uYW1lLAorICAgICAgICAg
ICAgICAgICAgICAgICAgcHJvamVjdD1kaWN0KGtleT1zZWxmLnJlcG9zaXRvcnkucHJvamVjdCks
CisgICAgICAgICAgICAgICAgICAgICksCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAg
aWYgY29tbWl0czoKKyAgICAgICAgICAgICAgICBpZiB0b19jaGFuZ2UuZ2V0KCdmcm9tUmVmJyk6
CisgICAgICAgICAgICAgICAgICAgIHRvX2NoYW5nZVsnZnJvbVJlZiddWydsYXRlc3RDb21taXQn
XSA9IGNvbW1pdHNbMF0uaGFzaAorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAg
ICAgICAgIHRvX2NoYW5nZVsnZnJvbVJlZiddID0gZGljdChsYXRlc3RDb21taXQ9Y29tbWl0c1sw
XS5oYXNoKQorICAgICAgICAgICAgaWYgYmFzZToKKyAgICAgICAgICAgICAgICB0b19jaGFuZ2Vb
J3RvUmVmJ10gPSBkaWN0KAorICAgICAgICAgICAgICAgICAgICBpZD0ncmVmcy9oZWFkcy97fScu
Zm9ybWF0KGJhc2Ugb3Igc2VsZi5yZXBvc2l0b3J5LmRlZmF1bHRfYnJhbmNoKSwKKyAgICAgICAg
ICAgICAgICAgICAgcmVwb3NpdG9yeT1kaWN0KAorICAgICAgICAgICAgICAgICAgICAgICAgc2x1
Zz1zZWxmLnJlcG9zaXRvcnkubmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHByb2plY3Q9
ZGljdChrZXk9c2VsZi5yZXBvc2l0b3J5LnByb2plY3QpLAorICAgICAgICAgICAgICAgICAgICAp
LAorICAgICAgICAgICAgICAgICkKKworICAgICAgICAgICAgcHJfdXJsID0gJ2h0dHBzOi8ve2Rv
bWFpbn0vcmVzdC9hcGkvMS4wL3Byb2plY3RzL3twcm9qZWN0fS9yZXBvcy97bmFtZX0vcHVsbC1y
ZXF1ZXN0cy97aWR9Jy5mb3JtYXQoCisgICAgICAgICAgICAgICAgZG9tYWluPXNlbGYucmVwb3Np
dG9yeS5kb21haW4sCisgICAgICAgICAgICAgICAgcHJvamVjdD1zZWxmLnJlcG9zaXRvcnkucHJv
amVjdCwKKyAgICAgICAgICAgICAgICBuYW1lPXNlbGYucmVwb3NpdG9yeS5uYW1lLAorICAgICAg
ICAgICAgICAgIGlkPXB1bGxfcmVxdWVzdC5udW1iZXIsCisgICAgICAgICAgICApCisgICAgICAg
ICAgICByZXNwb25zZSA9IHJlcXVlc3RzLmdldChwcl91cmwpCisgICAgICAgICAgICBpZiByZXNw
b25zZS5zdGF0dXNfY29kZSAvLyAxMDAgIT0gMjoKKyAgICAgICAgICAgICAgICByZXR1cm4gTm9u
ZQorICAgICAgICAgICAgZGF0YSA9IHJlc3BvbnNlLmpzb24oKQorICAgICAgICAgICAgZGVsIGRh
dGFbJ2F1dGhvciddCisgICAgICAgICAgICBkZWwgZGF0YVsncGFydGljaXBhbnRzJ10KKyAgICAg
ICAgICAgIGRhdGEudXBkYXRlKHRvX2NoYW5nZSkKKworICAgICAgICAgICAgcmVzcG9uc2UgPSBy
ZXF1ZXN0cy5wdXQocHJfdXJsLCBqc29uPWRhdGEpCisgICAgICAgICAgICBpZiByZXNwb25zZS5z
dGF0dXNfY29kZSAvLyAxMDAgIT0gMjoKKyAgICAgICAgICAgICAgICByZXR1cm4gTm9uZQorICAg
ICAgICAgICAgZGF0YSA9IHJlc3BvbnNlLmpzb24oKQorCisgICAgICAgICAgICBwdWxsX3JlcXVl
c3QudGl0bGUgPSBkYXRhLmdldCgndGl0bGUnLCBwdWxsX3JlcXVlc3QudGl0bGUpCisgICAgICAg
ICAgICBpZiBkYXRhLmdldCgnZGVzY3JpcHRpb24nKToKKyAgICAgICAgICAgICAgICBwdWxsX3Jl
cXVlc3QuYm9keSwgcHVsbF9yZXF1ZXN0LmNvbW1pdHMgPSBwdWxsX3JlcXVlc3QucGFyc2VfYm9k
eShkYXRhLmdldCgnZGVzY3JpcHRpb24nKSkKKyAgICAgICAgICAgIHVzZXIgPSBkYXRhLmdldCgn
YXV0aG9yJywge30pLmdldCgndXNlcicsIHt9KQorICAgICAgICAgICAgaWYgdXNlci5nZXQoJ2Rp
c3BsYXlOYW1lJykgYW5kIHVzZXIuZ2V0KCdlbWFpbEFkZHJlc3MnKToKKyAgICAgICAgICAgICAg
ICBwdWxsX3JlcXVlc3QuYXV0aG9yID0gc2VsZi5yZXBvc2l0b3J5LmNvbnRyaWJ1dG9ycy5jcmVh
dGUodXNlclsnZGlzcGxheU5hbWUnXSwgdXNlclsnZW1haWxBZGRyZXNzJ10pCisgICAgICAgICAg
ICBwdWxsX3JlcXVlc3QuaGVhZCA9IGRhdGEuZ2V0KCdmcm9tUmVmJywge30pLmdldCgnZGlzcGxh
eUlkJywgcHVsbF9yZXF1ZXN0LmJhc2UpCisgICAgICAgICAgICBwdWxsX3JlcXVlc3QuYmFzZSA9
IGRhdGEuZ2V0KCd0b1JlZicsIHt9KS5nZXQoJ2Rpc3BsYXlJZCcsIHB1bGxfcmVxdWVzdC5iYXNl
KQorCisgICAgICAgICAgICByZXR1cm4gcHVsbF9yZXF1ZXN0CisKKwogICAgIEBjbGFzc21ldGhv
ZAogICAgIGRlZiBpc193ZWJzZXJ2ZXIoY2xzLCB1cmwpOgogICAgICAgICByZXR1cm4gVHJ1ZSBp
ZiBjbHMuVVJMX1JFLm1hdGNoKHVybCkgZWxzZSBGYWxzZQpAQCAtNTIsNiArMTk4LDggQEAgY2xh
c3MgQml0QnVja2V0KFNjbSk6CiAgICAgICAgICAgICBpZD1pZCBvciBzZWxmLm5hbWUubG93ZXIo
KSwKICAgICAgICAgKQogCisgICAgICAgIHNlbGYucHVsbF9yZXF1ZXN0cyA9IHNlbGYuUFJHZW5l
cmF0b3Ioc2VsZikKKwogICAgIEBwcm9wZXJ0eQogICAgIGRlZiBpc19naXQoc2VsZik6CiAgICAg
ICAgIHJldHVybiBUcnVlCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJr
aXRzY21weS93ZWJraXRzY21weS9yZW1vdGUvZ2l0X2h1Yi5weSBiL1Rvb2xzL1NjcmlwdHMvbGli
cmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L3JlbW90ZS9naXRfaHViLnB5CmluZGV4IGIw
NTI5ZjJjYjE1ODBhYjlhNTViYmUwYWEwZmM4MDFlNmJiZjE1NzguLjY0ZWRmYzJkNzZkMzdmMTMx
ZmJiNDhhZDJiMTI5ZjJlNTdkODIwOWEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvbGlicmFy
aWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L3JlbW90ZS9naXRfaHViLnB5CisrKyBiL1Rvb2xz
L1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L3JlbW90ZS9naXRfaHVi
LnB5CkBAIC0yOSw3ICsyOSw3IEBAIGltcG9ydCBzeXMKIGZyb20gZGF0ZXRpbWUgaW1wb3J0IGRh
dGV0aW1lCiBmcm9tIHJlcXVlc3RzLmF1dGggaW1wb3J0IEhUVFBCYXNpY0F1dGgKIGZyb20gd2Vi
a2l0Y29yZXB5IGltcG9ydCBjcmVkZW50aWFscywgZGVjb3JhdG9ycwotZnJvbSB3ZWJraXRzY21w
eSBpbXBvcnQgQ29tbWl0Citmcm9tIHdlYmtpdHNjbXB5IGltcG9ydCBDb21taXQsIFB1bGxSZXF1
ZXN0CiBmcm9tIHdlYmtpdHNjbXB5LnJlbW90ZS5zY20gaW1wb3J0IFNjbQogZnJvbSB4bWwuZG9t
IGltcG9ydCBtaW5pZG9tCiAKQEAgLTM4LDYgKzM4LDEwMSBAQCBjbGFzcyBHaXRIdWIoU2NtKToK
ICAgICBVUkxfUkUgPSByZS5jb21waWxlKHInXEFodHRwcz86Ly9naXRodWIuKD9QPGRvbWFpbj5c
UyspLyg/UDxvd25lcj5cUyspLyg/UDxyZXBvc2l0b3J5PlxTKylcWicpCiAgICAgRU1BSUxfUkUg
PSByZS5jb21waWxlKHInKD9QPGVtYWlsPlteQF0rQFteQF0rKShALiopPycpCiAKKyAgICBjbGFz
cyBQUkdlbmVyYXRvcihTY20uUFJHZW5lcmF0b3IpOgorICAgICAgICBkZWYgZmluZChzZWxmLCBz
dGF0ZT1Ob25lLCBoZWFkPU5vbmUsIGJhc2U9Tm9uZSk6CisgICAgICAgICAgICBpZiBub3Qgc3Rh
dGU6CisgICAgICAgICAgICAgICAgc3RhdGUgPSAnYWxsJworICAgICAgICAgICAgdXNlciwgXyA9
IHNlbGYucmVwb3NpdG9yeS5jcmVkZW50aWFscygpCisgICAgICAgICAgICBkYXRhID0gc2VsZi5y
ZXBvc2l0b3J5LnJlcXVlc3QoJ3B1bGxzJywgcGFyYW1zPWRpY3QoCisgICAgICAgICAgICAgICAg
c3RhdGU9c3RhdGUsCisgICAgICAgICAgICAgICAgYmFzZT1iYXNlLAorICAgICAgICAgICAgICAg
IGhlYWQ9J3t9Ont9Jy5mb3JtYXQodXNlciwgaGVhZCkgaWYgdXNlciBhbmQgaGVhZCBlbHNlIGhl
YWQsCisgICAgICAgICAgICApKQorICAgICAgICAgICAgZm9yIGRhdHVtIGluIGRhdGEgb3IgW106
CisgICAgICAgICAgICAgICAgaWYgYmFzZSBhbmQgZGF0dW1bJ2Jhc2UnXVsncmVmJ10gIT0gYmFz
ZToKKyAgICAgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgICAgICBpZiBoZWFk
IGFuZCBub3QgZGF0dW1bJ2hlYWQnXVsncmVmJ10uZW5kc3dpdGgoaGVhZCk6CisgICAgICAgICAg
ICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICAgICAgeWllbGQgUHVsbFJlcXVlc3QoCisg
ICAgICAgICAgICAgICAgICAgIG51bWJlcj1kYXR1bVsnbnVtYmVyJ10sCisgICAgICAgICAgICAg
ICAgICAgIHRpdGxlPWRhdHVtLmdldCgndGl0bGUnKSwKKyAgICAgICAgICAgICAgICAgICAgYm9k
eT1kYXR1bS5nZXQoJ2JvZHknKSwKKyAgICAgICAgICAgICAgICAgICAgYXV0aG9yPXNlbGYucmVw
b3NpdG9yeS5jb250cmlidXRvcnMuY3JlYXRlKGRhdHVtWyd1c2VyJ11bJ2xvZ2luJ10pLAorICAg
ICAgICAgICAgICAgICAgICBoZWFkPWRhdHVtWydoZWFkJ11bJ3JlZiddLAorICAgICAgICAgICAg
ICAgICAgICBiYXNlPWRhdHVtWydiYXNlJ11bJ3JlZiddLAorICAgICAgICAgICAgICAgICkKKwor
ICAgICAgICBkZWYgY3JlYXRlKHNlbGYsIGhlYWQsIHRpdGxlLCBib2R5PU5vbmUsIGNvbW1pdHM9
Tm9uZSwgYmFzZT1Ob25lKToKKyAgICAgICAgICAgIGZvciBrZXksIHZhbHVlIGluIGRpY3QoaGVh
ZD1oZWFkLCB0aXRsZT10aXRsZSkuaXRlbXMoKToKKyAgICAgICAgICAgICAgICBpZiBub3QgdmFs
dWU6CisgICAgICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIk11c3QgZGVmaW5lICd7
fScgd2hlbiBjcmVhdGluZyBwdWxsLXJlcXVlc3QiLmZvcm1hdChrZXkpKQorCisgICAgICAgICAg
ICB1c2VyLCBfID0gc2VsZi5yZXBvc2l0b3J5LmNyZWRlbnRpYWxzKHJlcXVpcmVkPVRydWUpCisg
ICAgICAgICAgICByZXNwb25zZSA9IHJlcXVlc3RzLnBvc3QoCisgICAgICAgICAgICAgICAgJ3th
cGlfdXJsfS9yZXBvcy97b3duZXJ9L3tuYW1lfS9wdWxscycuZm9ybWF0KAorICAgICAgICAgICAg
ICAgICAgICBhcGlfdXJsPXNlbGYucmVwb3NpdG9yeS5hcGlfdXJsLAorICAgICAgICAgICAgICAg
ICAgICBvd25lcj1zZWxmLnJlcG9zaXRvcnkub3duZXIsCisgICAgICAgICAgICAgICAgICAgIG5h
bWU9c2VsZi5yZXBvc2l0b3J5Lm5hbWUsCisgICAgICAgICAgICAgICAgKSwgYXV0aD1IVFRQQmFz
aWNBdXRoKCpzZWxmLnJlcG9zaXRvcnkuY3JlZGVudGlhbHMocmVxdWlyZWQ9VHJ1ZSkpLAorICAg
ICAgICAgICAgICAgIGhlYWRlcnM9ZGljdChBY2NlcHQ9J2FwcGxpY2F0aW9uL3ZuZC5naXRodWIu
djMranNvbicpLAorICAgICAgICAgICAgICAgIGpzb249ZGljdCgKKyAgICAgICAgICAgICAgICAg
ICAgdGl0bGU9dGl0bGUsCisgICAgICAgICAgICAgICAgICAgIGJvZHk9UHVsbFJlcXVlc3QuY3Jl
YXRlX2JvZHkoYm9keSwgY29tbWl0cyksCisgICAgICAgICAgICAgICAgICAgIGJhc2U9YmFzZSBv
ciBzZWxmLnJlcG9zaXRvcnkuZGVmYXVsdF9icmFuY2gsCisgICAgICAgICAgICAgICAgICAgIGhl
YWQ9J3t9Ont9Jy5mb3JtYXQodXNlciwgaGVhZCksCisgICAgICAgICAgICAgICAgKSwKKyAgICAg
ICAgICAgICkKKyAgICAgICAgICAgIGlmIHJlc3BvbnNlLnN0YXR1c19jb2RlIC8vIDEwMCAhPSAy
OgorICAgICAgICAgICAgICAgIHJldHVybiBOb25lCisgICAgICAgICAgICBkYXRhID0gcmVzcG9u
c2UuanNvbigpCisgICAgICAgICAgICByZXR1cm4gUHVsbFJlcXVlc3QoCisgICAgICAgICAgICAg
ICAgbnVtYmVyPWRhdGFbJ251bWJlciddLAorICAgICAgICAgICAgICAgIHRpdGxlPWRhdGEuZ2V0
KCd0aXRsZScpLAorICAgICAgICAgICAgICAgIGJvZHk9ZGF0YS5nZXQoJ2JvZHknKSwKKyAgICAg
ICAgICAgICAgICBhdXRob3I9c2VsZi5yZXBvc2l0b3J5LmNvbnRyaWJ1dG9ycy5jcmVhdGUoZGF0
YVsndXNlciddWydsb2dpbiddKSwKKyAgICAgICAgICAgICAgICBoZWFkPWRhdGFbJ2hlYWQnXVsn
cmVmJ10sCisgICAgICAgICAgICAgICAgYmFzZT1kYXRhWydiYXNlJ11bJ3JlZiddLAorICAgICAg
ICAgICAgKQorCisgICAgICAgIGRlZiB1cGRhdGUoc2VsZiwgcHVsbF9yZXF1ZXN0LCBoZWFkPU5v
bmUsIHRpdGxlPU5vbmUsIGJvZHk9Tm9uZSwgY29tbWl0cz1Ob25lLCBiYXNlPU5vbmUpOgorICAg
ICAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UocHVsbF9yZXF1ZXN0LCBQdWxsUmVxdWVzdCk6Cisg
ICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiRXhwZWN0ZWQgJ3B1bGxfcmVxdWVzdCcg
dG8gYmUgb2YgdHlwZSAne30nIG5vdCAne30nIi5mb3JtYXQoUHVsbFJlcXVlc3QsIHR5cGUocHVs
bF9yZXF1ZXN0KSkpCisgICAgICAgICAgICBpZiBub3QgYW55KChoZWFkLCB0aXRsZSwgYm9keSwg
Y29tbWl0cywgYmFzZSkpOgorICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ05vIGFy
Z3VtZW50cyB0byB1cGRhdGUgcHVsbC1yZXF1ZXN0IHByb3ZpZGVkJykKKworICAgICAgICAgICAg
dXNlciwgXyA9IHNlbGYucmVwb3NpdG9yeS5jcmVkZW50aWFscyhyZXF1aXJlZD1UcnVlKQorICAg
ICAgICAgICAgdXBkYXRlcyA9IGRpY3QoCisgICAgICAgICAgICAgICAgdGl0bGU9dGl0bGUgb3Ig
cHVsbF9yZXF1ZXN0LnRpdGxlLAorICAgICAgICAgICAgICAgIGJhc2U9YmFzZSBvciBwdWxsX3Jl
cXVlc3QuYmFzZSwKKyAgICAgICAgICAgICAgICBoZWFkPSd7fTp7fScuZm9ybWF0KHVzZXIsIGhl
YWQpIGlmIGhlYWQgZWxzZSBwdWxsX3JlcXVlc3QuaGVhZCwKKyAgICAgICAgICAgICkKKyAgICAg
ICAgICAgIGlmIGJvZHkgb3IgY29tbWl0czoKKyAgICAgICAgICAgICAgICB1cGRhdGVzWydib2R5
J10gPSBQdWxsUmVxdWVzdC5jcmVhdGVfYm9keShib2R5LCBjb21taXRzKQorICAgICAgICAgICAg
cmVzcG9uc2UgPSByZXF1ZXN0cy5wb3N0KAorICAgICAgICAgICAgICAgICd7YXBpX3VybH0vcmVw
b3Mve293bmVyfS97bmFtZX0vcHVsbHMve251bWJlcn0nLmZvcm1hdCgKKyAgICAgICAgICAgICAg
ICAgICAgYXBpX3VybD1zZWxmLnJlcG9zaXRvcnkuYXBpX3VybCwKKyAgICAgICAgICAgICAgICAg
ICAgb3duZXI9c2VsZi5yZXBvc2l0b3J5Lm93bmVyLAorICAgICAgICAgICAgICAgICAgICBuYW1l
PXNlbGYucmVwb3NpdG9yeS5uYW1lLAorICAgICAgICAgICAgICAgICAgICBudW1iZXI9cHVsbF9y
ZXF1ZXN0Lm51bWJlciwKKyAgICAgICAgICAgICAgICApLCBhdXRoPUhUVFBCYXNpY0F1dGgoKnNl
bGYucmVwb3NpdG9yeS5jcmVkZW50aWFscyhyZXF1aXJlZD1UcnVlKSksCisgICAgICAgICAgICAg
ICAgaGVhZGVycz1kaWN0KEFjY2VwdD0nYXBwbGljYXRpb24vdm5kLmdpdGh1Yi52Mytqc29uJyks
CisgICAgICAgICAgICAgICAganNvbj11cGRhdGVzLAorICAgICAgICAgICAgKQorICAgICAgICAg
ICAgaWYgcmVzcG9uc2Uuc3RhdHVzX2NvZGUgLy8gMTAwICE9IDI6CisgICAgICAgICAgICAgICAg
cmV0dXJuIE5vbmUKKyAgICAgICAgICAgIGRhdGEgPSByZXNwb25zZS5qc29uKCkKKworICAgICAg
ICAgICAgcHVsbF9yZXF1ZXN0LnRpdGxlID0gZGF0YS5nZXQoJ3RpdGxlJywgcHVsbF9yZXF1ZXN0
LnRpdGxlKQorICAgICAgICAgICAgaWYgZGF0YS5nZXQoJ2JvZHknKToKKyAgICAgICAgICAgICAg
ICBwdWxsX3JlcXVlc3QuYm9keSwgcHVsbF9yZXF1ZXN0LmNvbW1pdHMgPSBwdWxsX3JlcXVlc3Qu
cGFyc2VfYm9keShkYXRhLmdldCgnYm9keScpKQorICAgICAgICAgICAgaWYgZGF0YS5nZXQoJ3Vz
ZXInLCB7fSkuZ2V0KCdsb2dpbicpOgorICAgICAgICAgICAgICAgIHB1bGxfcmVxdWVzdC5hdXRo
b3IgPSBzZWxmLnJlcG9zaXRvcnkuY29udHJpYnV0b3JzLmNyZWF0ZShkYXRhWyd1c2VyJ11bJ2xv
Z2luJ10pCisgICAgICAgICAgICBwdWxsX3JlcXVlc3QuaGVhZCA9IGRhdGEuZ2V0KCdoZWFkJywg
e30pLmdldCgnZGlzcGxheUlkJywgcHVsbF9yZXF1ZXN0LmJhc2UpCisgICAgICAgICAgICBwdWxs
X3JlcXVlc3QuYmFzZSA9IGRhdGEuZ2V0KCdiYXNlJywge30pLmdldCgnZGlzcGxheUlkJywgcHVs
bF9yZXF1ZXN0LmJhc2UpCisKKyAgICAgICAgICAgIHJldHVybiBwdWxsX3JlcXVlc3QKKworCiAg
ICAgQGNsYXNzbWV0aG9kCiAgICAgZGVmIGlzX3dlYnNlcnZlcihjbHMsIHVybCk6CiAgICAgICAg
IHJldHVybiBUcnVlIGlmIGNscy5VUkxfUkUubWF0Y2godXJsKSBlbHNlIEZhbHNlCkBAIC02Miw2
ICsxNTcsOCBAQCBjbGFzcyBHaXRIdWIoU2NtKToKICAgICAgICAgICAgIGlkPWlkIG9yIHNlbGYu
bmFtZS5sb3dlcigpLAogICAgICAgICApCiAKKyAgICAgICAgc2VsZi5wdWxsX3JlcXVlc3RzID0g
c2VsZi5QUkdlbmVyYXRvcihzZWxmKQorCiAgICAgZGVmIGNyZWRlbnRpYWxzKHNlbGYsIHJlcXVp
cmVkPVRydWUpOgogICAgICAgICB1c2VybmFtZSwgdG9rZW4gPSBjcmVkZW50aWFscygKICAgICAg
ICAgICAgIHVybD1zZWxmLmFwaV91cmwsCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL2xpYnJh
cmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS9yZW1vdGUvc2NtLnB5IGIvVG9vbHMvU2NyaXB0
cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvcmVtb3RlL3NjbS5weQppbmRleCA5
ZjgzZjUyYWQ5ZWFmZGE2YzM3YjlkNjBjMWM5YjNlMDk3OWQ0ZDgzLi5mYmViZmU4OGM5YWU4YzE5
Yjc5NzgyYWI1YjBhMWIwZGY2OTczMjkzIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL2xpYnJh
cmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS9yZW1vdGUvc2NtLnB5CisrKyBiL1Rvb2xzL1Nj
cmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L3JlbW90ZS9zY20ucHkKQEAg
LTI2LDYgKzI2LDIwIEBAIGZyb20gd2Via2l0c2NtcHkuc2NtX2Jhc2UgaW1wb3J0IFNjbUJhc2UK
IAogCiBjbGFzcyBTY20oU2NtQmFzZSk6CisgICAgY2xhc3MgUFJHZW5lcmF0b3Iob2JqZWN0KToK
KyAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHJlcG9zaXRvcnkpOgorICAgICAgICAgICAgc2Vs
Zi5yZXBvc2l0b3J5ID0gcmVwb3NpdG9yeQorCisgICAgICAgIGRlZiBmaW5kKHNlbGYsIHN0YXRl
PU5vbmUsIGhlYWQ9Tm9uZSwgYmFzZT1Ob25lKToKKyAgICAgICAgICAgIHJhaXNlIE5vdEltcGxl
bWVudGVkRXJyb3IoKQorCisgICAgICAgIGRlZiBjcmVhdGUoc2VsZiwgaGVhZCwgdGl0bGUsIGJv
ZHk9Tm9uZSwgY29tbWl0cz1Ob25lLCBiYXNlPU5vbmUpOgorICAgICAgICAgICAgcmFpc2UgTm90
SW1wbGVtZW50ZWRFcnJvcigpCisKKyAgICAgICAgZGVmIHVwZGF0ZShzZWxmLCBwdWxsX3JlcXVl
c3QsIGhlYWQ9Tm9uZSwgdGl0bGU9Tm9uZSwgYm9keT1Ob25lLCBjb21taXRzPU5vbmUsIGJhc2U9
Tm9uZSk6CisgICAgICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKCkKKworCiAgICAg
QGNsYXNzbWV0aG9kCiAgICAgZGVmIGZyb21fdXJsKGNscywgdXJsLCBjb250cmlidXRvcnM9Tm9u
ZSk6CiAgICAgICAgIGZyb20gd2Via2l0c2NtcHkgaW1wb3J0IHJlbW90ZQpAQCAtNDIsMyArNTYs
NCBAQCBjbGFzcyBTY20oU2NtQmFzZSk6CiAgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKHVybCwg
c2l4LnN0cmluZ190eXBlcyk6CiAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJFeHBlY3Rl
ZCAndXJsJyB0byBiZSBhIHN0cmluZyB0eXBlLCBub3QgJ3t9JyIuZm9ybWF0KHR5cGUodXJsKSkp
CiAgICAgICAgIHNlbGYudXJsID0gdXJsCisgICAgICAgIHNlbGYucHVsbF9yZXF1ZXN0cyA9IE5v
bmUKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtp
dHNjbXB5L3Rlc3QvcHVsbF9yZXF1ZXN0X3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy9saWJy
YXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvdGVzdC9wdWxsX3JlcXVlc3RfdW5pdHRlc3Qu
cHkKaW5kZXggMmZkYmU3NDU5OTRkNGY4MzRkZDhlMGRhOWQ5ZmQ4OWQ3NTMwZmFlMC4uM2IwNmIx
Y2U1MTllYWIxNzY0OGY3YTZkZDVkOWFjNWI2MDdjYTJkMCAxMDA2NDQKLS0tIGEvVG9vbHMvU2Ny
aXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvdGVzdC9wdWxsX3JlcXVlc3Rf
dW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Vi
a2l0c2NtcHkvdGVzdC9wdWxsX3JlcXVlc3RfdW5pdHRlc3QucHkKQEAgLTIwLDkgKzIwLDEyIEBA
CiAjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCiAjIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCitpbXBvcnQgb3MKK2ltcG9ydCBzeXMK
IGltcG9ydCB1bml0dGVzdAogCi1mcm9tIHdlYmtpdHNjbXB5IGltcG9ydCBDb21taXQsIFB1bGxS
ZXF1ZXN0Citmcm9tIHdlYmtpdGNvcmVweSBpbXBvcnQgT3V0cHV0Q2FwdHVyZSwgdGVzdGluZwor
ZnJvbSB3ZWJraXRzY21weSBpbXBvcnQgQ29tbWl0LCBQdWxsUmVxdWVzdCwgcHJvZ3JhbSwgbW9j
a3MKIAogCiBjbGFzcyBUZXN0UHVsbFJlcXVlc3QodW5pdHRlc3QuVGVzdENhc2UpOgpAQCAtMTUw
LDMgKzE1MywxNjkgQEAgUmV2aWV3ZWQgYnkgVGltIENvbnRyaWJ1dG9yLgogICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKGxlbihjb21taXRzKSwgMSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChj
b21taXRzWzBdLmhhc2gsICcxMWFhNzZmOWZjMzgwZTlmZTA2MTU3MTU0ZjMyYjMwNGU4ZGM0NzQ5
JykKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21taXRzWzBdLm1lc3NhZ2UsICdbc2NvcGlu
Z10gQnVnIHRvIGZpeFxuXG5SZXZpZXdlZCBieSBUaW0gQ29udHJpYnV0b3IuJykKKworCitjbGFz
cyBUZXN0RG9QdWxsUmVxdWVzdCh0ZXN0aW5nLlBhdGhUZXN0Q2FzZSk6CisgICAgYmFzZXBhdGgg
PSAnbW9jay9yZXBvc2l0b3J5JworCisgICAgZGVmIHNldFVwKHNlbGYpOgorICAgICAgICBzdXBl
cihUZXN0RG9QdWxsUmVxdWVzdCwgc2VsZikuc2V0VXAoKQorICAgICAgICBvcy5ta2Rpcihvcy5w
YXRoLmpvaW4oc2VsZi5wYXRoLCAnLmdpdCcpKQorICAgICAgICBvcy5ta2Rpcihvcy5wYXRoLmpv
aW4oc2VsZi5wYXRoLCAnLnN2bicpKQorCisgICAgZGVmIHRlc3Rfc3ZuKHNlbGYpOgorICAgICAg
ICB3aXRoIE91dHB1dENhcHR1cmUoKSBhcyBjYXB0dXJlZCwgbW9ja3MubG9jYWwuR2l0KCksIG1v
Y2tzLmxvY2FsLlN2bihzZWxmLnBhdGgpOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgx
LCBwcm9ncmFtLm1haW4oCisgICAgICAgICAgICAgICAgYXJncz0oJ3B1bGwtcmVxdWVzdCcsKSwK
KyAgICAgICAgICAgICAgICBwYXRoPXNlbGYucGF0aCwKKyAgICAgICAgICAgICkpCisgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoY2FwdHVyZWQucm9vdC5sb2cuZ2V0dmFsdWUoKSwgJycpCisgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoY2FwdHVyZWQuc3RkZXJyLmdldHZhbHVlKCksICJDYW4gb25s
eSAncHVsbC1yZXF1ZXN0JyBvbiBhIG5hdGl2ZSBHaXQgcmVwb3NpdG9yeVxuIikKKworICAgIGRl
ZiB0ZXN0X25vX21vZGlmaWVkKHNlbGYpOgorICAgICAgICB3aXRoIE91dHB1dENhcHR1cmUoKSBh
cyBjYXB0dXJlZCwgbW9ja3MubG9jYWwuR2l0KHNlbGYucGF0aCksIG1vY2tzLmxvY2FsLlN2bigp
OgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxLCBwcm9ncmFtLm1haW4oCisgICAgICAg
ICAgICAgICAgYXJncz0oJ3B1bGwtcmVxdWVzdCcsICctaScsICdwci1icmFuY2gnKSwKKyAgICAg
ICAgICAgICAgICBwYXRoPXNlbGYucGF0aCwKKyAgICAgICAgICAgICkpCisgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoY2FwdHVyZWQucm9vdC5sb2cuZ2V0dmFsdWUoKSwgIkNyZWF0aW5nIHRoZSBs
b2NhbCBkZXZlbG9wbWVudCBicmFuY2ggJ2VuZy9wci1icmFuY2gnLi4uXG4iKQorICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKGNhcHR1cmVkLnN0ZGVyci5nZXR2YWx1ZSgpLCAnTm8gbW9kaWZpZWQg
ZmlsZXNcbicpCisKKyAgICBkZWYgdGVzdF9zdGFnZWQoc2VsZik6CisgICAgICAgIHdpdGggT3V0
cHV0Q2FwdHVyZSgpIGFzIGNhcHR1cmVkLCBtb2Nrcy5sb2NhbC5HaXQoc2VsZi5wYXRoKSBhcyBy
ZXBvLCBtb2Nrcy5sb2NhbC5Tdm4oKToKKyAgICAgICAgICAgIHJlcG8uc3RhZ2VkWydhZGRlZC50
eHQnXSA9ICdhZGRlZCcKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMSwgcHJvZ3JhbS5t
YWluKAorICAgICAgICAgICAgICAgIGFyZ3M9KCdwdWxsLXJlcXVlc3QnLCAnLWknLCAncHItYnJh
bmNoJyksCisgICAgICAgICAgICAgICAgcGF0aD1zZWxmLnBhdGgsCisgICAgICAgICAgICApKQor
ICAgICAgICAgICAgc2VsZi5hc3NlcnREaWN0RXF1YWwocmVwby5zdGFnZWQsIHt9KQorICAgICAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXBvLmhlYWQuaGFzaCwgJ2U0MzkwYWJjOTVhMjAyNjM3
MGI4Yzk4MTNiN2U1NWM2MWM1ZDZlYmInKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY2Fw
dHVyZWQucm9vdC5sb2cuZ2V0dmFsdWUoKSwgJycnQ3JlYXRpbmcgdGhlIGxvY2FsIGRldmVsb3Bt
ZW50IGJyYW5jaCAnZW5nL3ByLWJyYW5jaCcuLi4KK0NyZWF0aW5nIGNvbW1pdC4uLgorICAgIEZv
dW5kIDEgY29tbWl0Li4uCisnJycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY2FwdHVyZWQu
c3RkZXJyLmdldHZhbHVlKCksICIne30nIGRvZXNuJ3QgaGF2ZSBhIHJlY29nbml6ZWQgcmVtb3Rl
XG4iLmZvcm1hdChzZWxmLnBhdGgpKQorCisgICAgZGVmIHRlc3RfbW9kaWZpZWQoc2VsZik6Cisg
ICAgICAgIHdpdGggT3V0cHV0Q2FwdHVyZSgpIGFzIGNhcHR1cmVkLCBtb2Nrcy5sb2NhbC5HaXQo
c2VsZi5wYXRoKSBhcyByZXBvLCBtb2Nrcy5sb2NhbC5Tdm4oKToKKyAgICAgICAgICAgIHJlcG8u
bW9kaWZpZWRbJ21vZGlmaWVkLnR4dCddID0gJ2RpZmYnCisgICAgICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKDEsIHByb2dyYW0ubWFpbigKKyAgICAgICAgICAgICAgICBhcmdzPSgncHVsbC1yZXF1
ZXN0JywgJy1pJywgJ3ByLWJyYW5jaCcpLAorICAgICAgICAgICAgICAgIHBhdGg9c2VsZi5wYXRo
LAorICAgICAgICAgICAgKSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RGljdEVxdWFsKHJlcG8u
bW9kaWZpZWQsIGRpY3QoKSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RGljdEVxdWFsKHJlcG8u
c3RhZ2VkLCBkaWN0KCkpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlcG8uaGVhZC5o
YXNoLCAnZDA1MDgyYmY2NzA3MjUyYWVmMzQ3MjY5MjU5OGE1ODdlZDNmYjIxMycpCisKKyAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChjYXB0dXJlZC5zdGRlcnIuZ2V0dmFsdWUoKSwgIid7fScgZG9l
c24ndCBoYXZlIGEgcmVjb2duaXplZCByZW1vdGVcbiIuZm9ybWF0KHNlbGYucGF0aCkpCisgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoY2FwdHVyZWQucm9vdC5sb2cuZ2V0dmFsdWUoKSwgJycnQ3Jl
YXRpbmcgdGhlIGxvY2FsIGRldmVsb3BtZW50IGJyYW5jaCAnZW5nL3ByLWJyYW5jaCcuLi4KKyAg
ICBBZGRpbmcgbW9kaWZpZWQudHh0Li4uCitDcmVhdGluZyBjb21taXQuLi4KKyAgICBGb3VuZCAx
IGNvbW1pdC4uLgorJycnKQorCisgICAgZGVmIHRlc3RfZ2l0aHViKHNlbGYpOgorICAgICAgICB3
aXRoIE91dHB1dENhcHR1cmUoKSBhcyBjYXB0dXJlZCwgbW9ja3MucmVtb3RlLkdpdEh1YigpIGFz
IHJlbW90ZSwgXAorICAgICAgICAgICAgICAgIG1vY2tzLmxvY2FsLkdpdChzZWxmLnBhdGgsIHJl
bW90ZT0naHR0cHM6Ly97fScuZm9ybWF0KHJlbW90ZS5yZW1vdGUpKSBhcyByZXBvLCBtb2Nrcy5s
b2NhbC5Tdm4oKToKKworICAgICAgICAgICAgcmVwby5zdGFnZWRbJ2FkZGVkLnR4dCddID0gJ2Fk
ZGVkJworICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgwLCBwcm9ncmFtLm1haW4oCisgICAg
ICAgICAgICAgICAgYXJncz0oJ3B1bGwtcmVxdWVzdCcsICctaScsICdwci1icmFuY2gnKSwKKyAg
ICAgICAgICAgICAgICBwYXRoPXNlbGYucGF0aCwKKyAgICAgICAgICAgICkpCisKKyAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChjYXB0dXJlZC5zdGRlcnIuZ2V0dmFsdWUoKSwgJycpCisgICAgICAg
IGxvZyA9IGNhcHR1cmVkLnJvb3QubG9nLmdldHZhbHVlKCkuc3BsaXRsaW5lcygpCisgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoCisgICAgICAgICAgICBsb2dbOjRdICsgbG9nWzcgaWYgc3lzLnZl
cnNpb25faW5mbyA+ICgzLCAwKSBlbHNlIDU6XSwgWworICAgICAgICAgICAgICAgICJDcmVhdGlu
ZyB0aGUgbG9jYWwgZGV2ZWxvcG1lbnQgYnJhbmNoICdlbmcvcHItYnJhbmNoJy4uLiIsCisgICAg
ICAgICAgICAgICAgJ0NyZWF0aW5nIGNvbW1pdC4uLicsCisgICAgICAgICAgICAgICAgJyAgICBG
b3VuZCAxIGNvbW1pdC4uLicsCisgICAgICAgICAgICAgICAgIlB1c2hpbmcgJ2VuZy9wci1icmFu
Y2gnIHRvICdmb3JrJy4uLiIsCisgICAgICAgICAgICAgICAgIkNyZWF0aW5nIHB1bGwtcmVxdWVz
dCBmb3IgJ2VuZy9wci1icmFuY2gnLi4uIiwKKyAgICAgICAgICAgICAgICAiQ3JlYXRlZCAnUFIg
MSB8IENyZWF0ZWQgY29tbWl0JyEiLAorICAgICAgICAgICAgXSwKKyAgICAgICAgKQorCisgICAg
ZGVmIHRlc3RfZ2l0aHViX3VwZGF0ZShzZWxmKToKKyAgICAgICAgd2l0aCBtb2Nrcy5yZW1vdGUu
R2l0SHViKCkgYXMgcmVtb3RlLCBtb2Nrcy5sb2NhbC5HaXQoc2VsZi5wYXRoLCByZW1vdGU9J2h0
dHBzOi8ve30nLmZvcm1hdChyZW1vdGUucmVtb3RlKSkgYXMgcmVwbywgbW9ja3MubG9jYWwuU3Zu
KCk6CisgICAgICAgICAgICB3aXRoIE91dHB1dENhcHR1cmUoKToKKyAgICAgICAgICAgICAgICBy
ZXBvLnN0YWdlZFsnYWRkZWQudHh0J10gPSAnYWRkZWQnCisgICAgICAgICAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCgwLCBwcm9ncmFtLm1haW4oCisgICAgICAgICAgICAgICAgICAgIGFyZ3M9KCdw
dWxsLXJlcXVlc3QnLCAnLWknLCAncHItYnJhbmNoJyksCisgICAgICAgICAgICAgICAgICAgIHBh
dGg9c2VsZi5wYXRoLAorICAgICAgICAgICAgICAgICkpCisKKyAgICAgICAgICAgIHdpdGggT3V0
cHV0Q2FwdHVyZSgpIGFzIGNhcHR1cmVkOgorICAgICAgICAgICAgICAgIHJlcG8uc3RhZ2VkWydh
ZGRlZC50eHQnXSA9ICdkaWZmJworICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMCwg
cHJvZ3JhbS5tYWluKAorICAgICAgICAgICAgICAgICAgICBhcmdzPSgncHVsbC1yZXF1ZXN0Jywp
LAorICAgICAgICAgICAgICAgICAgICBwYXRoPXNlbGYucGF0aCwKKyAgICAgICAgICAgICAgICAp
KQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY2FwdHVyZWQuc3RkZXJyLmdldHZhbHVlKCks
ICcnKQorICAgICAgICBsb2cgPSBjYXB0dXJlZC5yb290LmxvZy5nZXR2YWx1ZSgpLnNwbGl0bGlu
ZXMoKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAorICAgICAgICAgICAgbG9nWzozXSArIGxv
Z1s2IGlmIHN5cy52ZXJzaW9uX2luZm8gPiAoMywgMCkgZWxzZSA0Ol0sIFsKKyAgICAgICAgICAg
ICAgICAiQW1lbmRpbmcgY29tbWl0Li4uIiwKKyAgICAgICAgICAgICAgICAnICAgIEZvdW5kIDEg
Y29tbWl0Li4uJywKKyAgICAgICAgICAgICAgICAiUHVzaGluZyAnZW5nL3ByLWJyYW5jaCcgdG8g
J2ZvcmsnLi4uIiwKKyAgICAgICAgICAgICAgICAiVXBkYXRpbmcgcHVsbC1yZXF1ZXN0IGZvciAn
ZW5nL3ByLWJyYW5jaCcuLi4iLAorICAgICAgICAgICAgICAgICJVcGRhdGVkICdQUiAxIHwgQW1l
bmRlZCBjb21taXQnISIsCisgICAgICAgICAgICBdLAorICAgICAgICApCisKKyAgICBkZWYgdGVz
dF9zdGFzaChzZWxmKToKKyAgICAgICAgd2l0aCBPdXRwdXRDYXB0dXJlKCkgYXMgY2FwdHVyZWQs
IG1vY2tzLnJlbW90ZS5CaXRCdWNrZXQoKSBhcyByZW1vdGUsIG1vY2tzLmxvY2FsLkdpdChzZWxm
LnBhdGgsIHJlbW90ZT0nc3NoOi8vZ2l0QHt9L3t9L3t9LmdpdCcuZm9ybWF0KAorICAgICAgICAg
ICAgcmVtb3RlLmhvc3RzWzBdLCByZW1vdGUucHJvamVjdC5zcGxpdCgnLycpWzFdLCByZW1vdGUu
cHJvamVjdC5zcGxpdCgnLycpWzNdLAorICAgICAgICApKSBhcyByZXBvLCBtb2Nrcy5sb2NhbC5T
dm4oKToKKworICAgICAgICAgICAgcmVwby5zdGFnZWRbJ2FkZGVkLnR4dCddID0gJ2FkZGVkJwor
ICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgwLCBwcm9ncmFtLm1haW4oCisgICAgICAgICAg
ICAgICAgYXJncz0oJ3B1bGwtcmVxdWVzdCcsICctaScsICdwci1icmFuY2gnKSwKKyAgICAgICAg
ICAgICAgICBwYXRoPXNlbGYucGF0aCwKKyAgICAgICAgICAgICkpCisKKyAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChjYXB0dXJlZC5zdGRlcnIuZ2V0dmFsdWUoKSwgJycpCisgICAgICAgIGxvZyA9
IGNhcHR1cmVkLnJvb3QubG9nLmdldHZhbHVlKCkuc3BsaXRsaW5lcygpCisgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoCisgICAgICAgICAgICBsb2dbOjRdICsgbG9nWzcgaWYgc3lzLnZlcnNpb25f
aW5mbyA+ICgzLCAwKSBlbHNlIDU6XSwgWworICAgICAgICAgICAgICAgICJDcmVhdGluZyB0aGUg
bG9jYWwgZGV2ZWxvcG1lbnQgYnJhbmNoICdlbmcvcHItYnJhbmNoJy4uLiIsCisgICAgICAgICAg
ICAgICAgJ0NyZWF0aW5nIGNvbW1pdC4uLicsCisgICAgICAgICAgICAgICAgJyAgICBGb3VuZCAx
IGNvbW1pdC4uLicsCisgICAgICAgICAgICAgICAgIlB1c2hpbmcgJ2VuZy9wci1icmFuY2gnIHRv
ICdvcmlnaW4nLi4uIiwKKyAgICAgICAgICAgICAgICAiQ3JlYXRpbmcgcHVsbC1yZXF1ZXN0IGZv
ciAnZW5nL3ByLWJyYW5jaCcuLi4iLAorICAgICAgICAgICAgICAgICJDcmVhdGVkICdQUiAxIHwg
Q3JlYXRlZCBjb21taXQnISIsCisgICAgICAgICAgICBdLAorICAgICAgICApCisKKyAgICBkZWYg
dGVzdF9zdGFzaF91cGRhdGUoc2VsZik6CisgICAgICAgIHdpdGggbW9ja3MucmVtb3RlLkJpdEJ1
Y2tldCgpIGFzIHJlbW90ZSwgbW9ja3MubG9jYWwuR2l0KHNlbGYucGF0aCwgcmVtb3RlPSdzc2g6
Ly9naXRAe30ve30ve30uZ2l0Jy5mb3JtYXQoCisgICAgICAgICAgICByZW1vdGUuaG9zdHNbMF0s
IHJlbW90ZS5wcm9qZWN0LnNwbGl0KCcvJylbMV0sIHJlbW90ZS5wcm9qZWN0LnNwbGl0KCcvJylb
M10sCisgICAgICAgICkpIGFzIHJlcG8sIG1vY2tzLmxvY2FsLlN2bigpOgorICAgICAgICAgICAg
d2l0aCBPdXRwdXRDYXB0dXJlKCk6CisgICAgICAgICAgICAgICAgcmVwby5zdGFnZWRbJ2FkZGVk
LnR4dCddID0gJ2FkZGVkJworICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMCwgcHJv
Z3JhbS5tYWluKAorICAgICAgICAgICAgICAgICAgICBhcmdzPSgncHVsbC1yZXF1ZXN0JywgJy1p
JywgJ3ByLWJyYW5jaCcpLAorICAgICAgICAgICAgICAgICAgICBwYXRoPXNlbGYucGF0aCwKKyAg
ICAgICAgICAgICAgICApKQorCisgICAgICAgICAgICB3aXRoIE91dHB1dENhcHR1cmUoKSBhcyBj
YXB0dXJlZDoKKyAgICAgICAgICAgICAgICByZXBvLnN0YWdlZFsnYWRkZWQudHh0J10gPSAnZGlm
ZicKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDAsIHByb2dyYW0ubWFpbigKKyAg
ICAgICAgICAgICAgICAgICAgYXJncz0oJ3B1bGwtcmVxdWVzdCcsKSwKKyAgICAgICAgICAgICAg
ICAgICAgcGF0aD1zZWxmLnBhdGgsCisgICAgICAgICAgICAgICAgKSkKKworICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKGNhcHR1cmVkLnN0ZGVyci5nZXR2YWx1ZSgpLCAnJykKKyAgICAgICAgbG9n
ID0gY2FwdHVyZWQucm9vdC5sb2cuZ2V0dmFsdWUoKS5zcGxpdGxpbmVzKCkKKyAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbCgKKyAgICAgICAgICAgIGxvZ1s6M10gKyBsb2dbNiBpZiBzeXMudmVyc2lv
bl9pbmZvID4gKDMsIDApIGVsc2UgNDpdLCBbCisgICAgICAgICAgICAgICAgIkFtZW5kaW5nIGNv
bW1pdC4uLiIsCisgICAgICAgICAgICAgICAgJyAgICBGb3VuZCAxIGNvbW1pdC4uLicsCisgICAg
ICAgICAgICAgICAgIlB1c2hpbmcgJ2VuZy9wci1icmFuY2gnIHRvICdvcmlnaW4nLi4uIiwKKyAg
ICAgICAgICAgICAgICAiVXBkYXRpbmcgcHVsbC1yZXF1ZXN0IGZvciAnZW5nL3ByLWJyYW5jaCcu
Li4iLAorICAgICAgICAgICAgICAgICJVcGRhdGVkICdQUiAxIHwgQW1lbmRlZCBjb21taXQnISIs
CisgICAgICAgICAgICBdLAorICAgICAgICApCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>436623</attachid>
            <date>2021-08-27 07:45:26 -0700</date>
            <delta_ts>2021-08-27 08:16:34 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-229089-20210827074526.patch</filename>
            <type>text/plain</type>
            <size>48848</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxNjkyCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMmU5NDBkMTViOTkxYTY3OGJmM2U1MTYzODkwZDIzMzA3
NmVlYzk5ZC4uNzkxODBmNmYwNjVjNjJmZTBmZjI4ZDU0OTdhODQ1NDEwMzRlYjYzNyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU4
IEBACisyMDIxLTA4LTI3ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KKwor
ICAgICAgICBbZ2l0LXdlYmtpdF0gQWRkIHB1bGwtcmVxdWVzdCBjb21tYW5kIChQYXJ0IDYpCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjkwODkKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgxOTA4NzUxPgorCisgICAgICAgIFJldmlld2VkIGJ5IERl
d2VpIFpodS4KKworICAgICAgICAqIFNjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3NldHVw
LnB5OiBCdW1wIHZlcnNpb24uCisgICAgICAgICogU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2Nt
cHkvd2Via2l0c2NtcHkvX19pbml0X18ucHk6IERpdHRvLgorICAgICAgICAqIFNjcmlwdHMvbGli
cmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L21vY2tzL2xvY2FsL2dpdC5weToKKyAgICAg
ICAgKEdpdC5fX2luaXRfXyk6IEFkZCBjb21taXQsIGFkZCBhbmQgcHVzaCBjb21tYW5kcy4KKyAg
ICAgICAgKEdpdC5jb21taXQpOiBDcmVhdGUgbmV3IGNvbW1pdCBmcm9tIHN0YWdlZCBmaWxlcy4K
KyAgICAgICAgKEdpdC5hZGQpOiBTdGFnZSBtb2RpZmllZCBmaWxlcy4KKyAgICAgICAgKiBTY3Jp
cHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS9tb2Nrcy9yZW1vdGUvYml0YnVj
a2V0LnB5OgorICAgICAgICAoQml0QnVja2V0Ll9faW5pdF9fKTogQWRkIHB1bGxfcmVxdWVzdHMu
CisgICAgICAgIChCaXRCdWNrZXQucmVxdWVzdCk6IEFkZCBhYmlsaXR5IHRvIGxpc3QgYW5kIGVk
aXQgcHVsbCByZXF1ZXRzLgorICAgICAgICAqIFNjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5
L3dlYmtpdHNjbXB5L21vY2tzL3JlbW90ZS9naXRfaHViLnB5OgorICAgICAgICAoR2l0SHViLl9f
aW5pdF9fKTogQWRkIHB1bGxfcmVxdWVzdHMuCisgICAgICAgIChHaXRIdWIucmVxdWVzdCk6IEFk
ZCBhYmlsaXR5IHRvIGxpc3QgYW5kIGVkaXQgcHVsbCByZXF1ZXRzLgorICAgICAgICAqIFNjcmlw
dHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L3Byb2dyYW0vX19pbml0X18ucHk6
IEFkZCBQdWxsUmVxdWVzdC4KKyAgICAgICAgKiBTY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21w
eS93ZWJraXRzY21weS9wcm9ncmFtL3B1bGxfcmVxdWVzdC5weToKKyAgICAgICAgKFB1bGxSZXF1
ZXN0LnBhcnNlcik6IEFkZCAnLS1hZGQnIGFuZCAnLS1uby1hZGQnIHRvIGFsbG93IHVzZXIgdG8g
c3BlY2lmeSBob3cgbW9kaWZpZWQgZmlsZXMKKyAgICAgICAgYXJlIGluY29ycGVyYXRlZCBpbnRv
IHRoZSBwdWxsLXJlcXVlc3QuCisgICAgICAgIChQdWxsUmVxdWVzdC5jcmVhdGVfY29tbWl0KTog
QmFzZWQgb24gY3VycmVudGx5IG1vZGlmaWVkIGZpbGVzLCBlaXRoZXIgY3JlYXRlIGEgbmV3IGNv
bW1pdCBvcgorICAgICAgICBhZGQgdGhvc2UgZmlsZXMgdG8gYW4gZXhpc3RpbmcgY29tbWl0Lgor
ICAgICAgICAoUHVsbFJlcXVlc3QuYnJhbmNoX3BvaW50KTogRGV0ZXJtaW5lIHdoZW4gdGhpcyBi
cmFuY2ggZGl2ZXJnZWQgZnJvbSBhIHByb2R1Y3Rpb24gYnJhbmNoLgorICAgICAgICAoUHVsbFJl
cXVlc3QubWFpbik6IENyZWF0ZSBicmFuY2gsIGNyZWF0ZSBjb21taXQgb24gYnJhbmNoLCBwdXNo
IGJyYW5jaCBhbmQgZWl0aGVyIGNyZWF0ZSBvcgorICAgICAgICB1cGRhdGUgYSBwdWxsLXJlcXVl
c3QuCisgICAgICAgICogU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkv
cmVtb3RlL2JpdGJ1Y2tldC5weToKKyAgICAgICAgKEJpdEJ1Y2tldC5QUkdlbmVyYXRvci5maW5k
KToKKyAgICAgICAgKEJpdEJ1Y2tldC5QUkdlbmVyYXRvci5jcmVhdGUpOgorICAgICAgICAoQml0
QnVja2V0LlBSR2VuZXJhdG9yLnVwZGF0ZSk6CisgICAgICAgIChCaXRCdWNrZXQuX19pbml0X18p
OiBBZGQgcHVsbF9yZXF1ZXN0IGdlbmVyYXRvci4KKyAgICAgICAgKiBTY3JpcHRzL2xpYnJhcmll
cy93ZWJraXRzY21weS93ZWJraXRzY21weS9yZW1vdGUvZ2l0X2h1Yi5weToKKyAgICAgICAgKEdp
dEh1Yi5QUkdlbmVyYXRvci5maW5kKToKKyAgICAgICAgKEdpdEh1Yi5QUkdlbmVyYXRvci5jcmVh
dGUpOgorICAgICAgICAoR2l0SHViLlBSR2VuZXJhdG9yLnVwZGF0ZSk6CisgICAgICAgIChHaXRI
dWIuX19pbml0X18pOiBBZGQgcHVsbF9yZXF1ZXN0IGdlbmVyYXRvci4KKyAgICAgICAgKiBTY3Jp
cHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS9yZW1vdGUvc2NtLnB5OgorICAg
ICAgICAoU2NtLlBSR2VuZXJhdG9yLl9faW5pdF9fKToKKyAgICAgICAgKFNjbS5QUkdlbmVyYXRv
ci5maW5kKToKKyAgICAgICAgKFNjbS5QUkdlbmVyYXRvci5jcmVhdGUpOgorICAgICAgICAoU2Nt
LlBSR2VuZXJhdG9yLnVwZGF0ZSk6CisgICAgICAgICogU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0
c2NtcHkvd2Via2l0c2NtcHkvdGVzdC9wdWxsX3JlcXVlc3RfdW5pdHRlc3QucHk6CisgICAgICAg
IChUZXN0RG9QdWxsUmVxdWVzdC5zZXRVcCk6CisgICAgICAgIChUZXN0RG9QdWxsUmVxdWVzdC50
ZXN0X3N2bik6CisgICAgICAgIChUZXN0RG9QdWxsUmVxdWVzdC50ZXN0X25vX21vZGlmaWVkKToK
KyAgICAgICAgKFRlc3REb1B1bGxSZXF1ZXN0LnRlc3Rfc3RhZ2VkKToKKyAgICAgICAgKFRlc3RE
b1B1bGxSZXF1ZXN0LnRlc3RfbW9kaWZpZWQpOgorICAgICAgICAoVGVzdERvUHVsbFJlcXVlc3Qu
dGVzdF9naXRodWIpOgorICAgICAgICAoVGVzdERvUHVsbFJlcXVlc3QudGVzdF9naXRodWJfdXBk
YXRlKToKKyAgICAgICAgKFRlc3REb1B1bGxSZXF1ZXN0LnRlc3Rfc3Rhc2gpOgorICAgICAgICAo
VGVzdERvUHVsbFJlcXVlc3QudGVzdF9zdGFzaF91cGRhdGUpOgorCiAyMDIxLTA4LTI3ICBKb25h
dGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KIAogICAgICAgICBbcnVuLXdlYmtpdC10
ZXN0c10gVXNlIFB5dGhvbiAzIChQYXJ0IDMpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL2xp
YnJhcmllcy93ZWJraXRzY21weS9zZXR1cC5weSBiL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dl
YmtpdHNjbXB5L3NldHVwLnB5CmluZGV4IDdmOTYzOTFhZTM3OTQ2ZmJmNGUxNDhhMTQ2ZDk3N2U3
MzAxNzllOGIuLjcxYmNhZTJmNzBjNzA3MDQwZmQ0ZGJkNDI2OWU1YmJlMTJmYWViZjAgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3NldHVwLnB5CisrKyBi
L1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3NldHVwLnB5CkBAIC0yOSw3ICsy
OSw3IEBAIGRlZiByZWFkbWUoKToKIAogc2V0dXAoCiAgICAgbmFtZT0nd2Via2l0c2NtcHknLAot
ICAgIHZlcnNpb249JzEuMS45JywKKyAgICB2ZXJzaW9uPScyLjAuMCcsCiAgICAgZGVzY3JpcHRp
b249J0xpYnJhcnkgZGVzaWduZWQgdG8gaW50ZXJhY3Qgd2l0aCBnaXQgYW5kIHN2biByZXBvc2l0
b3JpZXMuJywKICAgICBsb25nX2Rlc2NyaXB0aW9uPXJlYWRtZSgpLAogICAgIGNsYXNzaWZpZXJz
PVsKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtp
dHNjbXB5L19faW5pdF9fLnB5IGIvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkv
d2Via2l0c2NtcHkvX19pbml0X18ucHkKaW5kZXggM2M3NDM5NjE0ZDI1N2VhOWExZWIzYTA5NDE1
YTIwMTVkMWJiYTVmZS4uOTdjMTBiMzFjY2ZlYTkyY2E3MTdhNWM2OWViOWIzYjY0OTcwZjhjNyAx
MDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2Nt
cHkvX19pbml0X18ucHkKKysrIGIvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkv
d2Via2l0c2NtcHkvX19pbml0X18ucHkKQEAgLTQ2LDcgKzQ2LDcgQEAgZXhjZXB0IEltcG9ydEVy
cm9yOgogICAgICAgICAiUGxlYXNlIGluc3RhbGwgd2Via2l0Y29yZXB5IHdpdGggYHBpcCBpbnN0
YWxsIHdlYmtpdGNvcmVweSAtLWV4dHJhLWluZGV4LXVybCA8cGFja2FnZSBpbmRleCBVUkw+YCIK
ICAgICApCiAKLXZlcnNpb24gPSBWZXJzaW9uKDEsIDEsIDkpCit2ZXJzaW9uID0gVmVyc2lvbigy
LCAwLCAwKQogCiBBdXRvSW5zdGFsbC5yZWdpc3RlcihQYWNrYWdlKCdmYXN0ZW5lcnMnLCBWZXJz
aW9uKDAsIDE1LCAwKSkpCiBBdXRvSW5zdGFsbC5yZWdpc3RlcihQYWNrYWdlKCdtb25vdG9uaWMn
LCBWZXJzaW9uKDEsIDUpKSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dl
YmtpdHNjbXB5L3dlYmtpdHNjbXB5L21vY2tzL2xvY2FsL2dpdC5weSBiL1Rvb2xzL1NjcmlwdHMv
bGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L21vY2tzL2xvY2FsL2dpdC5weQppbmRl
eCBhMTE5ODVmNGUxYTNhNTYyMzJmNGYyNGQwNmJjMWE3NmM0Njk4ZWFmLi4yNmY1NjgzOWNkMzc4
MGU3MGUzMmU3YjQ0NGJmM2M0MDU5OTJkZDBiIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL2xp
YnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS9tb2Nrcy9sb2NhbC9naXQucHkKKysrIGIv
VG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvbW9ja3MvbG9j
YWwvZ2l0LnB5CkBAIC0yMCw2ICsyMCw3IEBACiAjIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiAjIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCiAKK2ltcG9ydCBoYXNobGliCiBpbXBvcnQganNvbgogaW1wb3J0IG9zCiBpbXBv
cnQgcmUKQEAgLTI4LDcgKzI5LDcgQEAgaW1wb3J0IHRpbWUKIGZyb20gZGF0ZXRpbWUgaW1wb3J0
IGRhdGV0aW1lCiBmcm9tIG1vY2sgaW1wb3J0IHBhdGNoCiAKLWZyb20gd2Via2l0Y29yZXB5IGlt
cG9ydCBkZWNvcmF0b3JzLCBtb2NrcywgT3V0cHV0Q2FwdHVyZSwgU3RyaW5nSU8KK2Zyb20gd2Vi
a2l0Y29yZXB5IGltcG9ydCBkZWNvcmF0b3JzLCBtb2Nrcywgc3RyaW5nX3V0aWxzLCBPdXRwdXRD
YXB0dXJlLCBTdHJpbmdJTwogZnJvbSB3ZWJraXRzY21weSBpbXBvcnQgbG9jYWwsIENvbW1pdCwg
Q29udHJpYnV0b3IKIGZyb20gd2Via2l0c2NtcHkucHJvZ3JhbS5jYW5vbmljYWxpemUuY29tbWl0
dGVyIGltcG9ydCBtYWluIGFzIGNvbW1pdHRlcl9tYWluCiBmcm9tIHdlYmtpdHNjbXB5LnByb2dy
YW0uY2Fub25pY2FsaXplLm1lc3NhZ2UgaW1wb3J0IG1haW4gYXMgbWVzc2FnZV9tYWluCkBAIC00
MTEsNiArNDEyLDIyIEBAIG5vdGhpbmcgdG8gY29tbWl0LCB3b3JraW5nIHRyZWUgY2xlYW4KICAg
ICAgICAgICAgICAgICBzZWxmLmV4ZWN1dGFibGUsICdjaGVjay1yZWYtZm9ybWF0JywgcmUuY29t
cGlsZShyJy4rJyksCiAgICAgICAgICAgICAgICAgZ2VuZXJhdG9yPWxhbWJkYSAqYXJncywgKipr
d2FyZ3M6CiAgICAgICAgICAgICAgICAgICAgIG1vY2tzLlByb2Nlc3NDb21wbGV0aW9uKHJldHVy
bmNvZGU9MCkgaWYgcmUubWF0Y2gocideW0EtWmEtejAtOS1dKy9bQS1aYS16MC05Ly1dKyQnLCBh
cmdzWzJdKSBlbHNlIG1vY2tzLlByb2Nlc3NDb21wbGV0aW9uKCksCisgICAgICAgICAgICApLCBt
b2Nrcy5TdWJwcm9jZXNzLlJvdXRlKAorICAgICAgICAgICAgICAgIHNlbGYuZXhlY3V0YWJsZSwg
J2NvbW1pdCcsCisgICAgICAgICAgICAgICAgY3dkPXNlbGYucGF0aCwKKyAgICAgICAgICAgICAg
ICBnZW5lcmF0b3I9bGFtYmRhICphcmdzLCAqKmt3YXJnczogc2VsZi5jb21taXQoYW1lbmQ9RmFs
c2UpLAorICAgICAgICAgICAgKSwgbW9ja3MuU3VicHJvY2Vzcy5Sb3V0ZSgKKyAgICAgICAgICAg
ICAgICBzZWxmLmV4ZWN1dGFibGUsICdjb21taXQnLCAnLS1hbWVuZCcsCisgICAgICAgICAgICAg
ICAgY3dkPXNlbGYucGF0aCwKKyAgICAgICAgICAgICAgICBnZW5lcmF0b3I9bGFtYmRhICphcmdz
LCAqKmt3YXJnczogc2VsZi5jb21taXQoYW1lbmQ9VHJ1ZSksCisgICAgICAgICAgICApLCBtb2Nr
cy5TdWJwcm9jZXNzLlJvdXRlKAorICAgICAgICAgICAgICAgIHNlbGYuZXhlY3V0YWJsZSwgJ2Fk
ZCcsIHJlLmNvbXBpbGUocicuKycpLAorICAgICAgICAgICAgICAgIGN3ZD1zZWxmLnBhdGgsCisg
ICAgICAgICAgICAgICAgZ2VuZXJhdG9yPWxhbWJkYSAqYXJncywgKiprd2FyZ3M6IHNlbGYuYWRk
KGFyZ3NbMl0pLAorICAgICAgICAgICAgKSwgbW9ja3MuU3VicHJvY2Vzcy5Sb3V0ZSgKKyAgICAg
ICAgICAgICAgICBzZWxmLmV4ZWN1dGFibGUsICdwdXNoJywgJy1mJywKKyAgICAgICAgICAgICAg
ICBjd2Q9c2VsZi5wYXRoLAorICAgICAgICAgICAgICAgIGdlbmVyYXRvcj1sYW1iZGEgKmFyZ3Ms
ICoqa3dhcmdzOiBtb2Nrcy5Qcm9jZXNzQ29tcGxldGlvbihyZXR1cm5jb2RlPTApLAogICAgICAg
ICAgICAgKSwgbW9ja3MuU3VicHJvY2Vzcy5Sb3V0ZSgKICAgICAgICAgICAgICAgICBzZWxmLmV4
ZWN1dGFibGUsCiAgICAgICAgICAgICAgICAgY3dkPXNlbGYucGF0aCwKQEAgLTUxOSw2ICs1MzYs
OSBAQCBub3RoaW5nIHRvIGNvbW1pdCwgd29ya2luZyB0cmVlIGNsZWFuCiAgICAgICAgICAgICBz
ZWxmLmNvbW1pdHNbc29tZXRoaW5nXVstMV0gPSBDb21taXQuZnJvbV9qc29uKENvbW1pdC5FbmNv
ZGVyKCkuZGVmYXVsdChzZWxmLmhlYWQpKQogICAgICAgICAgICAgc2VsZi5oZWFkID0gc2VsZi5j
b21taXRzW3NvbWV0aGluZ11bLTFdCiAgICAgICAgICAgICBzZWxmLmhlYWQuYnJhbmNoID0gc29t
ZXRoaW5nCisgICAgICAgICAgICBpZiBub3Qgc2VsZi5oZWFkLmJyYW5jaF9wb2ludDoKKyAgICAg
ICAgICAgICAgICBzZWxmLmhlYWQuYnJhbmNoX3BvaW50ID0gc2VsZi5oZWFkLmlkZW50aWZpZXIK
KyAgICAgICAgICAgICAgICBzZWxmLmhlYWQuaWRlbnRpZmllciA9IDAKICAgICAgICAgICAgIHJl
dHVybiBUcnVlCiAKICAgICAgICAgaWYgY29tbWl0OgpAQCAtNzA5LDMgKzcyOSwzNSBAQCBub3Ro
aW5nIHRvIGNvbW1pdCwgd29ya2luZyB0cmVlIGNsZWFuCiAgICAgICAgICAgICAgICAgY29uZmln
ZmlsZS53cml0ZSgnXHR7fT17fVxuJy5mb3JtYXQoa2V5X2IsIHZhbHVlKSkKIAogICAgICAgICBy
ZXR1cm4gbW9ja3MuUHJvY2Vzc0NvbXBsZXRpb24ocmV0dXJuY29kZT0wKQorCisgICAgZGVmIGNv
bW1pdChzZWxmLCBhbWVuZD1GYWxzZSk6CisgICAgICAgIGlmIG5vdCBzZWxmLmhlYWQ6CisgICAg
ICAgICAgICByZXR1cm4gbW9ja3MuUHJvY2Vzc0NvbXBsZXRpb24ocmV0dXJuY29kZT0xLCBzdGRv
dXQ9J0FsbG93ZWQgaW4gZ2l0LCBidXQgZGlzYWxsb3dlZCBieSByZWFzb25hYmxlIHdvcmtmbG93
cycpCisgICAgICAgIGlmIG5vdCBzZWxmLnN0YWdlZCBhbmQgbm90IGFtZW5kOgorICAgICAgICAg
ICAgcmV0dXJuIG1vY2tzLlByb2Nlc3NDb21wbGV0aW9uKHJldHVybmNvZGU9MSwgc3Rkb3V0PSdu
byBjaGFuZ2VzIGFkZGVkIHRvIGNvbW1pdCAodXNlICJnaXQgYWRkIiBhbmQvb3IgImdpdCBjb21t
aXQgLWEiKVxuJykKKworICAgICAgICBpZiBub3QgYW1lbmQ6CisgICAgICAgICAgICBzZWxmLmhl
YWQgPSBDb21taXQoCisgICAgICAgICAgICAgICAgYnJhbmNoPXNlbGYuYnJhbmNoLCByZXBvc2l0
b3J5X2lkPXNlbGYuaGVhZC5yZXBvc2l0b3J5X2lkLAorICAgICAgICAgICAgICAgIHRpbWVzdGFt
cD1pbnQodGltZS50aW1lKCkpLAorICAgICAgICAgICAgICAgIGlkZW50aWZpZXI9c2VsZi5oZWFk
LmlkZW50aWZpZXIgKyAxIGlmIHNlbGYuaGVhZC5icmFuY2hfcG9pbnQgZWxzZSAxLAorICAgICAg
ICAgICAgICAgIGJyYW5jaF9wb2ludD1zZWxmLmhlYWQuYnJhbmNoX3BvaW50IG9yIHNlbGYuaGVh
ZC5pZGVudGlmaWVyLAorICAgICAgICAgICAgKQorICAgICAgICAgICAgc2VsZi5jb21taXRzW3Nl
bGYuYnJhbmNoXS5hcHBlbmQoc2VsZi5oZWFkKQorCisgICAgICAgIHNlbGYuaGVhZC5hdXRob3Ig
PSBDb250cmlidXRvcihzZWxmLmNvbmZpZygpWyd1c2VyLm5hbWUnXSwgW3NlbGYuY29uZmlnKClb
J3VzZXIuZW1haWwnXV0pCisgICAgICAgIHNlbGYuaGVhZC5tZXNzYWdlID0gJ3t9IGNvbW1pdFxu
UmV2aWV3ZWQgYnkgSm9uYXRoYW4gQmVkYXJkXG5cbiAqIHt9XG4nLmZvcm1hdCgKKyAgICAgICAg
ICAgICdBbWVuZGVkJyBpZiBhbWVuZCBlbHNlICdDcmVhdGVkJywKKyAgICAgICAgICAgICdcbiAq
ICcuam9pbihzZWxmLnN0YWdlZC5rZXlzKCkpLAorICAgICAgICApCisgICAgICAgIHNlbGYuaGVh
ZC5oYXNoID0gaGFzaGxpYi5zaGEyNTYoc3RyaW5nX3V0aWxzLmVuY29kZShzZWxmLmhlYWQubWVz
c2FnZSkpLmhleGRpZ2VzdCgpWzo0MF0KKyAgICAgICAgc2VsZi5zdGFnZWQgPSB7fQorICAgICAg
ICByZXR1cm4gbW9ja3MuUHJvY2Vzc0NvbXBsZXRpb24ocmV0dXJuY29kZT0wKQorCisgICAgZGVm
IGFkZChzZWxmLCBmaWxlKToKKyAgICAgICAgaWYgZmlsZSBub3QgaW4gc2VsZi5tb2RpZmllZDoK
KyAgICAgICAgICAgIHJldHVybiBtb2Nrcy5Qcm9jZXNzQ29tcGxldGlvbihyZXR1cm5jb2RlPTEy
OCwgc3Rkb3V0PSJmYXRhbDogcGF0aHNwZWMgJ3t9JyBkaWQgbm90IG1hdGNoIGFueSBmaWxlc1xu
Ii5mb3JtYXQoZmlsZSkpCisgICAgICAgIGZvciBrZXksIHZhbHVlIGluIHNlbGYubW9kaWZpZWQu
aXRlbXMoKToKKyAgICAgICAgICAgIHNlbGYuc3RhZ2VkW2tleV0gPSB2YWx1ZQorICAgICAgICBz
ZWxmLm1vZGlmaWVkID0ge30KKyAgICAgICAgcmV0dXJuIG1vY2tzLlByb2Nlc3NDb21wbGV0aW9u
KHJldHVybmNvZGU9MCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtp
dHNjbXB5L3dlYmtpdHNjbXB5L21vY2tzL3JlbW90ZS9iaXRidWNrZXQucHkgYi9Ub29scy9TY3Jp
cHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS9tb2Nrcy9yZW1vdGUvYml0YnVj
a2V0LnB5CmluZGV4IGExZDE3MDcxZDA3YmY2ZDA2OGVhODg2ZmZjZTE0OWQxNGEyZjA1NDcuLmQy
ZjQ1ZjhjZDk2MjhkNTYwNTgzMGNjMWU5YzdhNWJmODRiNTlhMjAgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L21vY2tzL3JlbW90ZS9i
aXRidWNrZXQucHkKKysrIGIvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Vi
a2l0c2NtcHkvbW9ja3MvcmVtb3RlL2JpdGJ1Y2tldC5weQpAQCAtNTMsNiArNTMsNyBAQCBjbGFz
cyBCaXRCdWNrZXQobW9ja3MuUmVxdWVzdHMpOgogCiAgICAgICAgIHNlbGYuaGVhZCA9IHNlbGYu
Y29tbWl0c1tzZWxmLmRlZmF1bHRfYnJhbmNoXVstMV0KICAgICAgICAgc2VsZi50YWdzID0ge30K
KyAgICAgICAgc2VsZi5wdWxsX3JlcXVlc3RzID0gW10KIAogICAgIGRlZiBjb21taXQoc2VsZiwg
cmVmKToKICAgICAgICAgaWYgcmVmIGluIHNlbGYuY29tbWl0czoKQEAgLTE1Nyw3ICsxNTgsNyBA
QCBjbGFzcyBCaXRCdWNrZXQobW9ja3MuUmVxdWVzdHMpOgogICAgICAgICAgICAgXSwKICAgICAg
ICAgKSwgdXJsPXVybCkKIAotICAgIGRlZiByZXF1ZXN0KHNlbGYsIG1ldGhvZCwgdXJsLCBkYXRh
PU5vbmUsIHBhcmFtcz1Ob25lLCAqKmt3YXJncyk6CisgICAgZGVmIHJlcXVlc3Qoc2VsZiwgbWV0
aG9kLCB1cmwsIGRhdGE9Tm9uZSwgcGFyYW1zPU5vbmUsIGpzb249Tm9uZSwgKiprd2FyZ3MpOgog
ICAgICAgICBpZiBub3QgdXJsLnN0YXJ0c3dpdGgoJ2h0dHA6Ly8nKSBhbmQgbm90IHVybC5zdGFy
dHN3aXRoKCdodHRwczovLycpOgogICAgICAgICAgICAgcmV0dXJuIG1vY2tzLlJlc3BvbnNlLmNy
ZWF0ZTQwNCh1cmwpCiAKQEAgLTE5NCw0ICsxOTUsNDcgQEAgY2xhc3MgQml0QnVja2V0KG1vY2tz
LlJlcXVlc3RzKToKICAgICAgICAgaWYgc3RyaXBwZWRfdXJsLnN0YXJ0c3dpdGgoJ3t9L3Jlc3Qv
YnJhbmNoLXV0aWxzL2xhdGVzdC97fS9icmFuY2hlcy9pbmZvLycuZm9ybWF0KHNlbGYuaG9zdHNb
MF0sIHNlbGYucHJvamVjdCkpOgogICAgICAgICAgICAgcmV0dXJuIHNlbGYuX2JyYW5jaGVzX2Zv
cihzdHJpcHBlZF91cmwuc3BsaXQoJy8nKVstMV0sIHVybCwgcGFyYW1zIG9yIHt9KQogCisgICAg
ICAgICMgQWxsIHB1bGwtcmVxdWVzdHMKKyAgICAgICAgcHJfYmFzZSA9ICd7fS9yZXN0L2FwaS8x
LjAve30vcHVsbC1yZXF1ZXN0cycuZm9ybWF0KHNlbGYuaG9zdHNbMF0sIHNlbGYucHJvamVjdCkK
KyAgICAgICAgaWYgbWV0aG9kID09ICdHRVQnIGFuZCBzdHJpcHBlZF91cmwgPT0gcHJfYmFzZToK
KyAgICAgICAgICAgIHBycyA9IFtdCisgICAgICAgICAgICBmb3IgY2FuZGlkYXRlIGluIHNlbGYu
cHVsbF9yZXF1ZXN0czoKKyAgICAgICAgICAgICAgICBzdGF0ZXMgPSAocGFyYW1zIG9yIHt9KS5n
ZXQoJ3N0YXRlJywgW10pCisgICAgICAgICAgICAgICAgc3RhdGVzID0gc3RhdGVzIGlmIGlzaW5z
dGFuY2Uoc3RhdGVzLCBsaXN0KSBlbHNlIFtzdGF0ZXNdCisgICAgICAgICAgICAgICAgaWYgc3Rh
dGVzIGFuZCBjYW5kaWRhdGUuZ2V0KCdzdGF0ZScpIG5vdCBpbiBzdGF0ZXM6CisgICAgICAgICAg
ICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICAgICAgYXQgPSAocGFyYW1zIG9yIHt9KS5n
ZXQoJ2F0JywgTm9uZSkKKyAgICAgICAgICAgICAgICBpZiBhdCBhbmQgY2FuZGlkYXRlLmdldCgn
ZnJvbVJlZicsIHt9KS5nZXQoJ2lkJykgIT0gYXQ6CisgICAgICAgICAgICAgICAgICAgIGNvbnRp
bnVlCisgICAgICAgICAgICAgICAgcHJzLmFwcGVuZChjYW5kaWRhdGUpCisKKyAgICAgICAgICAg
IHJldHVybiBtb2Nrcy5SZXNwb25zZS5mcm9tSnNvbihkaWN0KAorICAgICAgICAgICAgICAgIHNp
emU9bGVuKHBycyksCisgICAgICAgICAgICAgICAgaXNMYXN0UGFnZT1UcnVlLAorICAgICAgICAg
ICAgICAgIHZhbHVlcz1wcnMsCisgICAgICAgICAgICApKQorCisgICAgICAgICMgQ3JlYXRlIHB1
bGwtcmVxdWVzdAorICAgICAgICBpZiBtZXRob2QgPT0gJ1BPU1QnIGFuZCBzdHJpcHBlZF91cmwg
PT0gcHJfYmFzZToKKyAgICAgICAgICAgIGpzb25bJ2F1dGhvciddID0gZGljdCh1c2VyPWRpY3Qo
ZGlzcGxheU5hbWU9J1RpbSBDb21taXR0ZXInLCBlbWFpbEFkZHJlc3M9J2NvbW1pdHRlckB3ZWJr
aXQub3JnJykpCisgICAgICAgICAgICBqc29uWydwYXJ0aWNpcGFudHMnXSA9IFtqc29uWydhdXRo
b3InXV0KKyAgICAgICAgICAgIGpzb25bJ2lkJ10gPSAxICsgbWF4KFswXSArIFtwci5nZXQoJ2lk
JywgMCkgZm9yIHByIGluIHNlbGYucHVsbF9yZXF1ZXN0c10pCisgICAgICAgICAgICBqc29uWydm
cm9tUmVmJ11bJ2Rpc3BsYXlJZCddID0ganNvblsnZnJvbVJlZiddWydpZCddLnNwbGl0KCcvJylb
LTI6XQorICAgICAgICAgICAganNvblsndG9SZWYnXVsnZGlzcGxheUlkJ10gPSBqc29uWyd0b1Jl
ZiddWydpZCddLnNwbGl0KCcvJylbLTI6XQorICAgICAgICAgICAgc2VsZi5wdWxsX3JlcXVlc3Rz
LmFwcGVuZChqc29uKQorICAgICAgICAgICAgcmV0dXJuIG1vY2tzLlJlc3BvbnNlLmZyb21Kc29u
KGpzb24pCisKKyAgICAgICAgIyBVcGRhdGUgb3IgYWNjZXNzIHB1bGwtcmVxdWVzdAorICAgICAg
ICBpZiBzdHJpcHBlZF91cmwuc3RhcnRzd2l0aChwcl9iYXNlKToKKyAgICAgICAgICAgIG51bWJl
ciA9IGludChzdHJpcHBlZF91cmwuc3BsaXQoJy8nKVstMV0pCisgICAgICAgICAgICBleGlzdGlu
ZyA9IE5vbmUKKyAgICAgICAgICAgIGZvciBpIGluIHJhbmdlKGxlbihzZWxmLnB1bGxfcmVxdWVz
dHMpKToKKyAgICAgICAgICAgICAgICBpZiBzZWxmLnB1bGxfcmVxdWVzdHNbaV0uZ2V0KCdpZCcp
ID09IG51bWJlcjoKKyAgICAgICAgICAgICAgICAgICAgZXhpc3RpbmcgPSBpCisgICAgICAgICAg
ICBpZiBleGlzdGluZyBpcyBOb25lOgorICAgICAgICAgICAgICAgIHJldHVybiBtb2Nrcy5SZXNw
b25zZS5jcmVhdGU0MDQodXJsKQorICAgICAgICAgICAgaWYgbWV0aG9kID09ICdQVVQnOgorICAg
ICAgICAgICAgICAgIHNlbGYucHVsbF9yZXF1ZXN0c1tleGlzdGluZ10udXBkYXRlKGpzb24pCisg
ICAgICAgICAgICByZXR1cm4gbW9ja3MuUmVzcG9uc2UuZnJvbUpzb24oc2VsZi5wdWxsX3JlcXVl
c3RzW2V4aXN0aW5nXSkKKwogICAgICAgICByZXR1cm4gbW9ja3MuUmVzcG9uc2UuY3JlYXRlNDA0
KHVybCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dl
YmtpdHNjbXB5L21vY2tzL3JlbW90ZS9naXRfaHViLnB5IGIvVG9vbHMvU2NyaXB0cy9saWJyYXJp
ZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvbW9ja3MvcmVtb3RlL2dpdF9odWIucHkKaW5kZXgg
NmM2ODA0ZDkwNDAyNDFkYTNlNmExZGVmODM4OWY2ZWQ3ZTMyZTQyNS4uYTU1MTQ1MjI2M2QyOWRh
ZTg2MDE4NzVkMGM4OWE5MDk2MGNlYTJiYyAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy9saWJy
YXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvbW9ja3MvcmVtb3RlL2dpdF9odWIucHkKKysr
IGIvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvbW9ja3Mv
cmVtb3RlL2dpdF9odWIucHkKQEAgLTU4LDYgKzU4LDcgQEAgY2xhc3MgR2l0SHViKG1vY2tzLlJl
cXVlc3RzKToKIAogICAgICAgICBzZWxmLmhlYWQgPSBzZWxmLmNvbW1pdHNbc2VsZi5kZWZhdWx0
X2JyYW5jaF1bLTFdCiAgICAgICAgIHNlbGYudGFncyA9IHt9CisgICAgICAgIHNlbGYucHVsbF9y
ZXF1ZXN0cyA9IFtdCiAgICAgICAgIHNlbGYuX2Vudmlyb25tZW50ID0gTm9uZQogCiAgICAgZGVm
IF9fZW50ZXJfXyhzZWxmKToKQEAgLTI4MCw3ICsyODEsNyBAQCBjbGFzcyBHaXRIdWIobW9ja3Mu
UmVxdWVzdHMpOgogICAgICAgICAgICAgKSwgdXJsPXVybAogICAgICAgICApCiAKLSAgICBkZWYg
cmVxdWVzdChzZWxmLCBtZXRob2QsIHVybCwgZGF0YT1Ob25lLCBwYXJhbXM9Tm9uZSwgKiprd2Fy
Z3MpOgorICAgIGRlZiByZXF1ZXN0KHNlbGYsIG1ldGhvZCwgdXJsLCBkYXRhPU5vbmUsIHBhcmFt
cz1Ob25lLCBhdXRoPU5vbmUsIGpzb249Tm9uZSwgKiprd2FyZ3MpOgogICAgICAgICBpZiBub3Qg
dXJsLnN0YXJ0c3dpdGgoJ2h0dHA6Ly8nKSBhbmQgbm90IHVybC5zdGFydHN3aXRoKCdodHRwczov
LycpOgogICAgICAgICAgICAgcmV0dXJuIG1vY2tzLlJlc3BvbnNlLmNyZWF0ZTQwNCh1cmwpCiAK
QEAgLTMzMSw5ICszMzIsNjUgQEAgY2xhc3MgR2l0SHViKG1vY2tzLlJlcXVlc3RzKToKIAogICAg
ICAgICAjIEFkZCBmb3JrCiAgICAgICAgIGlmIHN0cmlwcGVkX3VybC5zdGFydHN3aXRoKCd7fS9m
b3JrcycuZm9ybWF0KHNlbGYuYXBpX3JlbW90ZSkpIGFuZCBtZXRob2QgPT0gJ1BPU1QnOgotICAg
ICAgICAgICAgdXNlcm5hbWUgPSBrd2FyZ3MuZ2V0KCdqc29uJywge30pLmdldCgnb3duZXInLCBO
b25lKQorICAgICAgICAgICAgdXNlcm5hbWUgPSAoanNvbiBvciB7fSkuZ2V0KCdvd25lcicsIE5v
bmUpCiAgICAgICAgICAgICBpZiB1c2VybmFtZToKICAgICAgICAgICAgICAgICBzZWxmLmZvcmtz
LmFwcGVuZCh1c2VybmFtZSkKICAgICAgICAgICAgIHJldHVybiBtb2Nrcy5SZXNwb25zZS5mcm9t
SnNvbih7fSkgaWYgdXNlcm5hbWUgZWxzZSBtb2Nrcy5SZXNwb25zZS5jcmVhdGU0MDQodXJsKQog
CisgICAgICAgICMgQWxsIHB1bGwtcmVxdWVzdHMKKyAgICAgICAgcHJfYmFzZSA9ICd7fS9wdWxs
cycuZm9ybWF0KHNlbGYuYXBpX3JlbW90ZSkKKyAgICAgICAgaWYgbWV0aG9kID09ICdHRVQnIGFu
ZCBzdHJpcHBlZF91cmwgPT0gcHJfYmFzZToKKyAgICAgICAgICAgIHBycyA9IFtdCisgICAgICAg
ICAgICBmb3IgY2FuZGlkYXRlIGluIHNlbGYucHVsbF9yZXF1ZXN0czoKKyAgICAgICAgICAgICAg
ICBzdGF0ZSA9IHBhcmFtcy5nZXQoJ3N0YXRlJywgJ2FsbCcpCisgICAgICAgICAgICAgICAgaWYg
c3RhdGUgIT0gJ2FsbCcgYW5kIGNhbmRpZGF0ZS5nZXQoJ3N0YXRlJywgJ2Nsb3NlZCcpICE9IHN0
YXRlOgorICAgICAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgICAgIGJhc2Ug
PSBwYXJhbXMuZ2V0KCdiYXNlJykKKyAgICAgICAgICAgICAgICBpZiBiYXNlIGFuZCBjYW5kaWRh
dGUuZ2V0KCdiYXNlJywge30pLmdldCgncmVmJykgIT0gYmFzZToKKyAgICAgICAgICAgICAgICAg
ICAgY29udGludWUKKyAgICAgICAgICAgICAgICBoZWFkID0gcGFyYW1zLmdldCgnaGVhZCcpCisg
ICAgICAgICAgICAgICAgaWYgaGVhZCBhbmQgaGVhZCBub3QgaW4gW2NhbmRpZGF0ZS5nZXQoJ2hl
YWQnLCB7fSkuZ2V0KCdyZWYnKSwgY2FuZGlkYXRlLmdldCgnaGVhZCcsIHt9KS5nZXQoJ2xhYmVs
JyldOgorICAgICAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgICAgIHBycy5h
cHBlbmQoY2FuZGlkYXRlKQorICAgICAgICAgICAgcmV0dXJuIG1vY2tzLlJlc3BvbnNlLmZyb21K
c29uKHBycykKKworICAgICAgICAjIENyZWF0ZS91cGRhdGUgcHVsbC1yZXF1ZXN0CisgICAgICAg
IHByID0gZGljdCgpCisgICAgICAgIGlmIG1ldGhvZCA9PSAnUE9TVCcgYW5kIGF1dGggYW5kIHN0
cmlwcGVkX3VybC5zdGFydHN3aXRoKHByX2Jhc2UpOgorICAgICAgICAgICAgaWYganNvbi5nZXQo
J3RpdGxlJyk6CisgICAgICAgICAgICAgICAgcHJbJ3RpdGxlJ10gPSBqc29uWyd0aXRsZSddCisg
ICAgICAgICAgICBpZiBqc29uLmdldCgnYm9keScpOgorICAgICAgICAgICAgICAgIHByWydib2R5
J10gPSBqc29uWydib2R5J10KKyAgICAgICAgICAgIGlmIGpzb24uZ2V0KCdoZWFkJyk6CisgICAg
ICAgICAgICAgICAgcHJbJ2hlYWQnXSA9IGRpY3QoCisgICAgICAgICAgICAgICAgICAgIGxhYmVs
PWpzb25bJ2hlYWQnXSwKKyAgICAgICAgICAgICAgICAgICAgcmVmPWpzb25bJ2hlYWQnXS5zcGxp
dCgnOicpWy0xXSwKKyAgICAgICAgICAgICAgICAgICAgdXNlcj1kaWN0KGxvZ2luPWF1dGgudXNl
cm5hbWUpLAorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgIGlmIGpzb24uZ2V0KCdiYXNl
Jyk6CisgICAgICAgICAgICAgICAgcHJbJ2Jhc2UnXSA9IGRpY3QoCisgICAgICAgICAgICAgICAg
ICAgIGxhYmVsPSd7fTp7fScuZm9ybWF0KHNlbGYucmVtb3RlLnNwbGl0KCcvJylbLTJdLCBqc29u
WydiYXNlJ10pLAorICAgICAgICAgICAgICAgICAgICByZWY9anNvblsnYmFzZSddLAorICAgICAg
ICAgICAgICAgICAgICB1c2VyPWRpY3QobG9naW49c2VsZi5yZW1vdGUuc3BsaXQoJy8nKVstMl0p
LAorICAgICAgICAgICAgICAgICkKKworICAgICAgICAjIENyZWF0ZSBzcGVjaWZpY2FsbHkKKyAg
ICAgICAgaWYgbWV0aG9kID09ICdQT1NUJyBhbmQgYXV0aCBhbmQgc3RyaXBwZWRfdXJsID09IHBy
X2Jhc2U6CisgICAgICAgICAgICBwclsnbnVtYmVyJ10gPSAxICsgbWF4KFswXSArIFtwci5nZXQo
J251bWJlcicsIDApIGZvciBwciBpbiBzZWxmLnB1bGxfcmVxdWVzdHNdKQorICAgICAgICAgICAg
cHJbJ3VzZXInXSA9IGRpY3QobG9naW49YXV0aC51c2VybmFtZSkKKyAgICAgICAgICAgIHNlbGYu
cHVsbF9yZXF1ZXN0cy5hcHBlbmQocHIpCisgICAgICAgICAgICByZXR1cm4gbW9ja3MuUmVzcG9u
c2UuZnJvbUpzb24ocHIpCisKKyAgICAgICAgIyBVcGRhdGUgc3BlY2lmaWNhbGx5CisgICAgICAg
IGlmIG1ldGhvZCA9PSAnUE9TVCcgYW5kIGF1dGggYW5kIHN0cmlwcGVkX3VybC5zdGFydHN3aXRo
KHByX2Jhc2UpOgorICAgICAgICAgICAgbnVtYmVyID0gaW50KHN0cmlwcGVkX3VybC5zcGxpdCgn
LycpWy0xXSkKKyAgICAgICAgICAgIGV4aXN0aW5nID0gTm9uZQorICAgICAgICAgICAgZm9yIGkg
aW4gcmFuZ2UobGVuKHNlbGYucHVsbF9yZXF1ZXN0cykpOgorICAgICAgICAgICAgICAgIGlmIHNl
bGYucHVsbF9yZXF1ZXN0c1tpXS5nZXQoJ251bWJlcicpID09IG51bWJlcjoKKyAgICAgICAgICAg
ICAgICAgICAgZXhpc3RpbmcgPSBpCisgICAgICAgICAgICBpZiBleGlzdGluZyBpcyBOb25lOgor
ICAgICAgICAgICAgICAgIHJldHVybiBtb2Nrcy5SZXNwb25zZS5jcmVhdGU0MDQodXJsKQorICAg
ICAgICAgICAgc2VsZi5wdWxsX3JlcXVlc3RzW2V4aXN0aW5nXS51cGRhdGUocHIpCisgICAgICAg
ICAgICByZXR1cm4gbW9ja3MuUmVzcG9uc2UuZnJvbUpzb24oc2VsZi5wdWxsX3JlcXVlc3RzW2ld
KQorCiAgICAgICAgIHJldHVybiBtb2Nrcy5SZXNwb25zZS5jcmVhdGU0MDQodXJsKQpkaWZmIC0t
Z2l0IGEvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvcHJv
Z3JhbS9fX2luaXRfXy5weSBiL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dl
YmtpdHNjbXB5L3Byb2dyYW0vX19pbml0X18ucHkKaW5kZXggYzkzOGJkOTY5MDJlYWY2NzU1NDU5
NWY0ODc1MmI2ZjMxZTQ1NDJhOS4uMmE5YTk2MDBhZjYzZmYxNTlmZTRiYmMxNDBhYTc0YTc5ZWU2
NjcyZCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Vi
a2l0c2NtcHkvcHJvZ3JhbS9fX2luaXRfXy5weQorKysgYi9Ub29scy9TY3JpcHRzL2xpYnJhcmll
cy93ZWJraXRzY21weS93ZWJraXRzY21weS9wcm9ncmFtL19faW5pdF9fLnB5CkBAIC0zNCw2ICsz
NCw3IEBAIGZyb20gLmNoZWNrb3V0IGltcG9ydCBDaGVja291dAogZnJvbSAuZmluZCBpbXBvcnQg
RmluZCwgSW5mbwogZnJvbSAubG9nIGltcG9ydCBMb2cKIGZyb20gLnB1bGwgaW1wb3J0IFB1bGwK
K2Zyb20gLnB1bGxfcmVxdWVzdCBpbXBvcnQgUHVsbFJlcXVlc3QKIGZyb20gLnNldHVwX2dpdF9z
dm4gaW1wb3J0IFNldHVwR2l0U3ZuCiBmcm9tIC5zZXR1cCBpbXBvcnQgU2V0dXAKIApAQCAtNjUs
OCArNjYsNyBAQCBkZWYgbWFpbihhcmdzPU5vbmUsIHBhdGg9Tm9uZSwgbG9nZ2Vycz1Ob25lLCBj
b250cmlidXRvcnM9Tm9uZSwgaWRlbnRpZmllcl90ZW1wbAogICAgICkKIAogICAgIHN1YnBhcnNl
cnMgPSBwYXJzZXIuYWRkX3N1YnBhcnNlcnMoaGVscD0nc3ViLWNvbW1hbmQgaGVscCcpCi0KLSAg
ICBwcm9ncmFtcyA9IFtCcmFuY2gsIEJsYW1lLCBDYW5vbmljYWxpemUsIENoZWNrb3V0LCBDbGVh
biwgRmluZCwgSW5mbywgTG9nLCBQdWxsLCBTZXR1cF0KKyAgICBwcm9ncmFtcyA9IFtCbGFtZSwg
QnJhbmNoLCBDYW5vbmljYWxpemUsIENoZWNrb3V0LCBDbGVhbiwgRmluZCwgSW5mbywgTG9nLCBQ
dWxsLCBQdWxsUmVxdWVzdCwgU2V0dXBdCiAgICAgaWYgc3VidmVyc2lvbjoKICAgICAgICAgcHJv
Z3JhbXMuYXBwZW5kKFNldHVwR2l0U3ZuKQogCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL2xp
YnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS9wcm9ncmFtL3B1bGxfcmVxdWVzdC5weSBi
L1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L3Byb2dyYW0v
cHVsbF9yZXF1ZXN0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY3NDc1YmY5MDllOGY1MDJmOGFkNjI4NjE4NDk2
Zjk4YTY5MjgwOTQKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy93
ZWJraXRzY21weS93ZWJraXRzY21weS9wcm9ncmFtL3B1bGxfcmVxdWVzdC5weQpAQCAtMCwwICsx
LDE2MyBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAor
IyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IKKyMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwKKyMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworaW1wb3J0IHN5
cworCitmcm9tIC5jb21tYW5kIGltcG9ydCBDb21tYW5kCitmcm9tIC5icmFuY2ggaW1wb3J0IEJy
YW5jaAorCitmcm9tIHdlYmtpdGNvcmVweSBpbXBvcnQgYXJndW1lbnRzLCBydW4sIHN0cmluZ191
dGlscworZnJvbSB3ZWJraXRzY21weSBpbXBvcnQgbG9jYWwsIGxvZywgcmVtb3RlCisKKworY2xh
c3MgUHVsbFJlcXVlc3QoQ29tbWFuZCk6CisgICAgbmFtZSA9ICdwdWxsLXJlcXVlc3QnCisgICAg
YWxpYXNlcyA9IFsncHInLCAncGZyJywgJ3VwbG9hZCddCisgICAgaGVscCA9ICdQdXNoIHRoZSBj
dXJyZW50IGNoZWNrb3V0IHN0YXRlIGFzIGEgcHVsbC1yZXF1ZXN0JworCisgICAgQGNsYXNzbWV0
aG9kCisgICAgZGVmIHBhcnNlcihjbHMsIHBhcnNlciwgbG9nZ2Vycz1Ob25lKToKKyAgICAgICAg
QnJhbmNoLnBhcnNlcihwYXJzZXIsIGxvZ2dlcnM9bG9nZ2VycykKKyAgICAgICAgcGFyc2VyLmFk
ZF9hcmd1bWVudCgKKyAgICAgICAgICAgICctLW5vLWFkZCcsICctLWFkZCcsCisgICAgICAgICAg
ICBkZXN0PSd3aWxsX2FkZCcsIGRlZmF1bHQ9Tm9uZSwKKyAgICAgICAgICAgIGhlbHA9J1doZW4g
ZHJhZnRpbmcgYSBjaGFuZ2UsIGFkZCAob3IgbmV2ZXIgYWRkKSBtb2RpZmllZCBmaWxlcyB0byBz
ZXQgb2Ygc3RhZ2VkIGNoYW5nZXMgdG8gYmUgY29tbWl0dGVkJywKKyAgICAgICAgICAgIGFjdGlv
bj1hcmd1bWVudHMuTm9BY3Rpb24sCisgICAgICAgICkKKworICAgIEBjbGFzc21ldGhvZAorICAg
IGRlZiBjcmVhdGVfY29tbWl0KGNscywgYXJncywgcmVwb3NpdG9yeSwgKiprd2FyZ3MpOgorICAg
ICAgICAjIEZpcnN0LCBmaW5kIHRoZSBzZXQgb2YgZmlsZXMgdG8gYmUgbW9kaWZpZWQKKyAgICAg
ICAgbW9kaWZpZWQgPSBbXSBpZiBhcmdzLndpbGxfYWRkIGlzIEZhbHNlIGVsc2UgcmVwb3NpdG9y
eS5tb2RpZmllZCgpCisgICAgICAgIGlmIGFyZ3Mud2lsbF9hZGQ6CisgICAgICAgICAgICBtb2Rp
ZmllZCA9IGxpc3Qoc2V0KG1vZGlmaWVkKS51bmlvbihzZXQocmVwb3NpdG9yeS5tb2RpZmllZChz
dGFnZWQ9RmFsc2UpKSkpCisKKyAgICAgICAgIyBOZXh0LCBhZGQgYWxsIG1vZGlmaWVkIGZpbGUK
KyAgICAgICAgZm9yIGZpbGUgaW4gc2V0KG1vZGlmaWVkKSAtIHNldChyZXBvc2l0b3J5Lm1vZGlm
aWVkKHN0YWdlZD1UcnVlKSk6CisgICAgICAgICAgICBsb2cud2FybmluZygnICAgIEFkZGluZyB7
fS4uLicuZm9ybWF0KGZpbGUpKQorICAgICAgICAgICAgaWYgcnVuKFtyZXBvc2l0b3J5LmV4ZWN1
dGFibGUoKSwgJ2FkZCcsIGZpbGVdLCBjd2Q9cmVwb3NpdG9yeS5yb290X3BhdGgpLnJldHVybmNv
ZGU6CisgICAgICAgICAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgiRmFpbGVkIHRvIGFkZCAne30n
XG4iLmZvcm1hdChmaWxlKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gMQorCisgICAgICAgICMg
VGhlbiwgc2VlIGlmIHdlIGFscmVhZHkgaGF2ZSBhIGNvbW1pdCBhc3NvY2lhdGVkIHdpdGggdGhp
cyBicmFuY2ggd2UgbmVlZCB0byBtb2RpZnkKKyAgICAgICAgaGFzX2NvbW1pdCA9IHJlcG9zaXRv
cnkuY29tbWl0KGluY2x1ZGVfbG9nPUZhbHNlLCBpbmNsdWRlX2lkZW50aWZpZXI9RmFsc2UpLmJy
YW5jaCA9PSByZXBvc2l0b3J5LmJyYW5jaCBhbmQgcmVwb3NpdG9yeS5icmFuY2ggIT0gcmVwb3Np
dG9yeS5kZWZhdWx0X2JyYW5jaAorICAgICAgICBpZiBub3QgbW9kaWZpZWQgYW5kIGhhc19jb21t
aXQ6CisgICAgICAgICAgICBsb2cud2FybmluZygnVXNpbmcgY29tbWl0dGVkIGNoYW5nZXMuLi4n
KQorICAgICAgICAgICAgcmV0dXJuIDAKKworICAgICAgICAjIE90aGVyd2lzZSwgd2UgbmVlZCB0
byBjcmVhdGUgYSBjb21taXQKKyAgICAgICAgaWYgbm90IG1vZGlmaWVkOgorICAgICAgICAgICAg
c3lzLnN0ZGVyci53cml0ZSgnTm8gbW9kaWZpZWQgZmlsZXNcbicpCisgICAgICAgICAgICByZXR1
cm4gMQorICAgICAgICBsb2cud2FybmluZygnQW1lbmRpbmcgY29tbWl0Li4uJyBpZiBoYXNfY29t
bWl0IGVsc2UgJ0NyZWF0aW5nIGNvbW1pdC4uLicpCisgICAgICAgIGlmIHJ1bihbcmVwb3NpdG9y
eS5leGVjdXRhYmxlKCksICdjb21taXQnXSArIChbJy0tYW1lbmQnXSBpZiBoYXNfY29tbWl0IGVs
c2UgW10pLCBjd2Q9cmVwb3NpdG9yeS5yb290X3BhdGgpLnJldHVybmNvZGU6CisgICAgICAgICAg
ICBzeXMuc3RkZXJyLndyaXRlKCdGYWlsZWQgdG8gZ2VuZXJhdGUgY29tbWl0XG4nKQorICAgICAg
ICAgICAgcmV0dXJuIDEKKworICAgICAgICByZXR1cm4gMAorCisgICAgQGNsYXNzbWV0aG9kCisg
ICAgZGVmIGJyYW5jaF9wb2ludChjbHMsIGFyZ3MsIHJlcG9zaXRvcnksICoqa3dhcmdzKToKKyAg
ICAgICAgY250ID0gMAorICAgICAgICBjb21taXQgPSBOb25lCisgICAgICAgIHdoaWxlIG5vdCBj
b21taXQgb3IgY29tbWl0LmJyYW5jaC5zdGFydHN3aXRoKEJyYW5jaC5QUkVGSVgpOgorICAgICAg
ICAgICAgY250ICs9IDEKKyAgICAgICAgICAgIGNvbW1pdCA9IHJlcG9zaXRvcnkuZmluZChhcmd1
bWVudD0nSEVBRH57fScuZm9ybWF0KGNudCksIGluY2x1ZGVfbG9nPUZhbHNlLCBpbmNsdWRlX2lk
ZW50aWZpZXI9RmFsc2UpCisgICAgICAgICAgICBsb2cud2FybmluZygnICAgIEZvdW5kIHt9Li4u
Jy5mb3JtYXQoc3RyaW5nX3V0aWxzLnBsdXJhbGl6ZShjbnQsICdjb21taXQnKSkpCisKKyAgICAg
ICAgcmV0dXJuIGNvbW1pdAorCisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIG1haW4oY2xzLCBh
cmdzLCByZXBvc2l0b3J5LCAqKmt3YXJncyk6CisgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKHJl
cG9zaXRvcnksIGxvY2FsLkdpdCk6CisgICAgICAgICAgICBzeXMuc3RkZXJyLndyaXRlKCJDYW4g
b25seSAne30nIG9uIGEgbmF0aXZlIEdpdCByZXBvc2l0b3J5XG4iLmZvcm1hdChjbHMubmFtZSkp
CisgICAgICAgICAgICByZXR1cm4gMQorCisgICAgICAgIGlmIG5vdCByZXBvc2l0b3J5LmJyYW5j
aC5zdGFydHN3aXRoKEJyYW5jaC5QUkVGSVgpOgorICAgICAgICAgICAgaWYgQnJhbmNoLm1haW4o
YXJncywgcmVwb3NpdG9yeSwgKiprd2FyZ3MpOgorICAgICAgICAgICAgICAgIHN5cy5zdGRlcnIu
d3JpdGUoIkFiYW5kb25pbmcgcHVzaGluZyBwdWxsLXJlcXVlc3QgYmVjYXVzZSAne30nIGNvdWxk
IG5vdCBiZSBjcmVhdGVkXG4iLmZvcm1hdChhcmdzLmlzc3VlKSkKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gMQorICAgICAgICBlbGlmIGFyZ3MuaXNzdWUgYW5kIHJlcG9zaXRvcnkuYnJhbmNoICE9
IGFyZ3MuaXNzdWU6CisgICAgICAgICAgICBzeXMuc3RkZXJyLndyaXRlKCJDcmVhdGluZyBhIHB1
bGwtcmVxdWVzdCBmb3IgJ3t9JyBidXQgd2UncmUgb24gJ3t9J1xuIi5mb3JtYXQoYXJncy5pc3N1
ZSwgcmVwb3NpdG9yeS5icmFuY2gpKQorICAgICAgICAgICAgcmV0dXJuIDEKKworICAgICAgICBy
ZXN1bHQgPSBjbHMuY3JlYXRlX2NvbW1pdChhcmdzLCByZXBvc2l0b3J5LCAqKmt3YXJncykKKyAg
ICAgICAgaWYgcmVzdWx0OgorICAgICAgICAgICAgcmV0dXJuIHJlc3VsdAorCisgICAgICAgIGJy
YW5jaF9wb2ludCA9IGNscy5icmFuY2hfcG9pbnQoYXJncywgcmVwb3NpdG9yeSwgKiprd2FyZ3Mp
CisKKyAgICAgICAgcm10ID0gcmVwb3NpdG9yeS5yZW1vdGUoKQorICAgICAgICBpZiBub3Qgcm10
OgorICAgICAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgiJ3t9JyBkb2Vzbid0IGhhdmUgYSByZWNv
Z25pemVkIHJlbW90ZVxuIi5mb3JtYXQocmVwb3NpdG9yeS5yb290X3BhdGgpKQorICAgICAgICAg
ICAgcmV0dXJuIDEKKyAgICAgICAgdGFyZ2V0ID0gJ2ZvcmsnIGlmIGlzaW5zdGFuY2Uocm10LCBy
ZW1vdGUuR2l0SHViKSBlbHNlICdvcmlnaW4nCisgICAgICAgIGxvZy53YXJuaW5nKCJQdXNoaW5n
ICd7fScgdG8gJ3t9Jy4uLiIuZm9ybWF0KHJlcG9zaXRvcnkuYnJhbmNoLCB0YXJnZXQpKQorICAg
ICAgICBpZiBydW4oW3JlcG9zaXRvcnkuZXhlY3V0YWJsZSgpLCAncHVzaCcsICctZicsIHRhcmdl
dCwgcmVwb3NpdG9yeS5icmFuY2hdLCBjd2Q9cmVwb3NpdG9yeS5yb290X3BhdGgpLnJldHVybmNv
ZGU6CisgICAgICAgICAgICBzeXMuc3RkZXJyLndyaXRlKCJGYWlsZWQgdG8gcHVzaCAne30nIHRv
ICd7fSdcbiIuZm9ybWF0KHJlcG9zaXRvcnkuYnJhbmNoLCB0YXJnZXQpKQorICAgICAgICAgICAg
cmV0dXJuIDEKKworICAgICAgICBpZiBub3Qgcm10LnB1bGxfcmVxdWVzdHM6CisgICAgICAgICAg
ICBzeXMuc3RkZXJyLndyaXRlKCIne30nIGNhbm5vdCBnZW5lcmF0ZSBwdWxsLXJlcXVlc3RzXG4i
LmZvcm1hdChybXQudXJsKSkKKyAgICAgICAgICAgIHJldHVybiAxCisgICAgICAgIHVzZXIsIF8g
PSBybXQuY3JlZGVudGlhbHMocmVxdWlyZWQ9VHJ1ZSkgaWYgaXNpbnN0YW5jZShybXQsIHJlbW90
ZS5HaXRIdWIpIGVsc2UgKHJlcG9zaXRvcnkuY29uZmlnKClbJ3VzZXIuZW1haWwnXSwgTm9uZSkK
KyAgICAgICAgY2FuZGlkYXRlcyA9IGxpc3Qocm10LnB1bGxfcmVxdWVzdHMuZmluZChoZWFkPXJl
cG9zaXRvcnkuYnJhbmNoKSkKKyAgICAgICAgY29tbWl0cyA9IGxpc3QocmVwb3NpdG9yeS5jb21t
aXRzKGJlZ2luPWRpY3QoaGFzaD1icmFuY2hfcG9pbnQuaGFzaCksIGVuZD1kaWN0KGJyYW5jaD1y
ZXBvc2l0b3J5LmJyYW5jaCkpKQorCisgICAgICAgIHRpdGxlID0gY29tbWl0c1swXS5tZXNzYWdl
LnNwbGl0bGluZXMoKVswXQorICAgICAgICBmb3IgY29tbWl0IGluIGNvbW1pdHNbMTpdOgorICAg
ICAgICAgICAgdGl0bGVfY2FuZGlkYXRlID0gY29tbWl0Lm1lc3NhZ2Uuc3BsaXRsaW5lcygpWzBd
CisgICAgICAgICAgICB3aGlsZSB0aXRsZSBhbmQgbm90IHRpdGxlX2NhbmRpZGF0ZS5zdGFydHN3
aXRoKHRpdGxlKToKKyAgICAgICAgICAgICAgICB0aXRsZSA9IHRpdGxlWzotMV0KKyAgICAgICAg
aWYgbm90IHRpdGxlOgorICAgICAgICAgICAgdGl0bGUgPSBjb21taXRzWzBdLm1lc3NhZ2Uuc3Bs
aXRsaW5lcygpWzBdCisgICAgICAgIHRpdGxlID0gdGl0bGUucnN0cmlwKCkubHN0cmlwKCkKKyAg
ICAgICAgaWYgdGl0bGUuZW5kc3dpdGgoJyhQYXJ0Jyk6CisgICAgICAgICAgICB0aXRsZSA9IHRp
dGxlWzotNV0ucnN0cmlwKCkKKworICAgICAgICBpZiBjYW5kaWRhdGVzOgorICAgICAgICAgICAg
bG9nLndhcm5pbmcoIlVwZGF0aW5nIHB1bGwtcmVxdWVzdCBmb3IgJ3t9Jy4uLiIuZm9ybWF0KHJl
cG9zaXRvcnkuYnJhbmNoKSkKKyAgICAgICAgICAgIHByID0gcm10LnB1bGxfcmVxdWVzdHMudXBk
YXRlKAorICAgICAgICAgICAgICAgIHB1bGxfcmVxdWVzdD1jYW5kaWRhdGVzWzBdLAorICAgICAg
ICAgICAgICAgIHRpdGxlPXRpdGxlLAorICAgICAgICAgICAgICAgIGNvbW1pdHM9Y29tbWl0cywK
KyAgICAgICAgICAgICAgICBiYXNlPWJyYW5jaF9wb2ludC5icmFuY2gsCisgICAgICAgICAgICAg
ICAgaGVhZD1yZXBvc2l0b3J5LmJyYW5jaCwKKyAgICAgICAgICAgICkKKyAgICAgICAgICAgIGlm
IG5vdCBwcjoKKyAgICAgICAgICAgICAgICBzeXMuc3RkZXJyLndyaXRlKCJGYWlsZWQgdG8gdXBk
YXRlIHB1bGwtcmVxdWVzdCAne30nXG4iLmZvcm1hdChjYW5kaWRhdGVzWzBdKSkKKyAgICAgICAg
ICAgICAgICByZXR1cm4gMQorICAgICAgICAgICAgbG9nLndhcm5pbmcoIlVwZGF0ZWQgJ3t9JyEi
LmZvcm1hdChwcikpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBsb2cud2FybmluZygiQ3Jl
YXRpbmcgcHVsbC1yZXF1ZXN0IGZvciAne30nLi4uIi5mb3JtYXQocmVwb3NpdG9yeS5icmFuY2gp
KQorICAgICAgICAgICAgcHIgPSBybXQucHVsbF9yZXF1ZXN0cy5jcmVhdGUoCisgICAgICAgICAg
ICAgICAgdGl0bGU9dGl0bGUsCisgICAgICAgICAgICAgICAgY29tbWl0cz1jb21taXRzLAorICAg
ICAgICAgICAgICAgIGJhc2U9YnJhbmNoX3BvaW50LmJyYW5jaCwKKyAgICAgICAgICAgICAgICBo
ZWFkPXJlcG9zaXRvcnkuYnJhbmNoLAorICAgICAgICAgICAgKQorICAgICAgICAgICAgaWYgbm90
IHByOgorICAgICAgICAgICAgICAgIHN5cy5zdGRlcnIud3JpdGUoIkZhaWxlZCB0byBjcmVhdGUg
cHVsbC1yZXF1ZXN0IGZvciAne30nXG4iLmZvcm1hdChyZXBvc2l0b3J5LmJyYW5jaCkpCisgICAg
ICAgICAgICAgICAgcmV0dXJuIDEKKyAgICAgICAgICAgIGxvZy53YXJuaW5nKCJDcmVhdGVkICd7
fSchIi5mb3JtYXQocHIpKQorCisgICAgICAgIHJldHVybiAwCmRpZmYgLS1naXQgYS9Ub29scy9T
Y3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS9yZW1vdGUvYml0YnVja2V0
LnB5IGIvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvcmVt
b3RlL2JpdGJ1Y2tldC5weQppbmRleCBlYTJlZTdkMjVlMzlkNTE4YzM1NGU3MzQ1M2ZlMWM4MDU1
OGE2NmI1Li5iNmZlMTFkYzU3ZTg4ZjU0NjBkN2U5NGYzOGMyNDRjZWE3NWY3M2NjIDEwMDY0NAot
LS0gYS9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS9yZW1v
dGUvYml0YnVja2V0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5
L3dlYmtpdHNjbXB5L3JlbW90ZS9iaXRidWNrZXQucHkKQEAgLTI1LDE0ICsyNSwxNjAgQEAgaW1w
b3J0IHJlcXVlc3RzCiBpbXBvcnQgc2l4CiBpbXBvcnQgc3lzCiAKK2ltcG9ydCBqc29uCisKIGZy
b20gd2Via2l0Y29yZXB5IGltcG9ydCBkZWNvcmF0b3JzCi1mcm9tIHdlYmtpdHNjbXB5IGltcG9y
dCBDb21taXQKK2Zyb20gd2Via2l0c2NtcHkgaW1wb3J0IENvbW1pdCwgUHVsbFJlcXVlc3QKIGZy
b20gd2Via2l0c2NtcHkucmVtb3RlLnNjbSBpbXBvcnQgU2NtCiAKIAogY2xhc3MgQml0QnVja2V0
KFNjbSk6CiAgICAgVVJMX1JFID0gcmUuY29tcGlsZShyJ1xBaHR0cHM/Oi8vKD9QPGRvbWFpbj5c
UyspL3Byb2plY3RzLyg/UDxwcm9qZWN0PlxTKykvcmVwb3MvKD9QPHJlcG9zaXRvcnk+XFMrKVxa
JykKIAorICAgIGNsYXNzIFBSR2VuZXJhdG9yKFNjbS5QUkdlbmVyYXRvcik6CisgICAgICAgIFRJ
VExFX0NIQVJfTElNSVQgPSAyNTQKKyAgICAgICAgQk9EWV9DSEFSX0xJTUlUID0gMzI3NjYKKwor
ICAgICAgICBkZWYgZmluZChzZWxmLCBzdGF0ZT1Ob25lLCBoZWFkPU5vbmUsIGJhc2U9Tm9uZSk6
CisgICAgICAgICAgICBwYXJhbXMgPSBkaWN0KAorICAgICAgICAgICAgICAgIGxpbWl0PTEwMCwK
KyAgICAgICAgICAgICAgICB3aXRoUHJvcGVydGllcz0nZmFsc2UnLAorICAgICAgICAgICAgICAg
IHdpdGhBdHRyaWJ1dGVzPSdmYWxzZScsCisgICAgICAgICAgICApCisgICAgICAgICAgICBpZiBz
dGF0ZSA9PSBQdWxsUmVxdWVzdC5TdGF0ZS5PUEVORUQ6CisgICAgICAgICAgICAgICAgcGFyYW1z
WydzdGF0ZSddID0gJ09QRU4nCisgICAgICAgICAgICBpZiBzdGF0ZSA9PSBQdWxsUmVxdWVzdC5T
dGF0ZS5DTE9TRUQ6CisgICAgICAgICAgICAgICAgcGFyYW1zWydzdGF0ZSddID0gWydERUNMSU5F
RCcsICdNRVJHRUQnLCAnU1VQRVJTRURFRCddCisgICAgICAgICAgICBpZiBoZWFkOgorICAgICAg
ICAgICAgICAgIHBhcmFtc1snZGlyZWN0aW9uJ10gPSAnT1VUR09JTkcnCisgICAgICAgICAgICAg
ICAgcGFyYW1zWydhdCddID0gJ3JlZnMvaGVhZHMve30nLmZvcm1hdChoZWFkKQorICAgICAgICAg
ICAgZGF0YSA9IHNlbGYucmVwb3NpdG9yeS5yZXF1ZXN0KCdwdWxsLXJlcXVlc3RzJywgcGFyYW1z
PXBhcmFtcykKKyAgICAgICAgICAgIGZvciBkYXR1bSBpbiBkYXRhIG9yIFtdOgorICAgICAgICAg
ICAgICAgIGlmIGJhc2UgYW5kIG5vdCBkYXR1bVsndG9SZWYnXVsnaWQnXS5lbmRzd2l0aChiYXNl
KToKKyAgICAgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgICAgICB5aWVsZCBQ
dWxsUmVxdWVzdCgKKyAgICAgICAgICAgICAgICAgICAgbnVtYmVyPWRhdHVtWydpZCddLAorICAg
ICAgICAgICAgICAgICAgICB0aXRsZT1kYXR1bS5nZXQoJ3RpdGxlJyksCisgICAgICAgICAgICAg
ICAgICAgIGJvZHk9ZGF0dW0uZ2V0KCdkZXNjcmlwdGlvbicpLAorICAgICAgICAgICAgICAgICAg
ICBhdXRob3I9c2VsZi5yZXBvc2l0b3J5LmNvbnRyaWJ1dG9ycy5jcmVhdGUoCisgICAgICAgICAg
ICAgICAgICAgICAgICBkYXR1bVsnYXV0aG9yJ11bJ3VzZXInXVsnZGlzcGxheU5hbWUnXSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGRhdHVtWydhdXRob3InXVsndXNlciddWydlbWFpbEFkZHJl
c3MnXSwKKyAgICAgICAgICAgICAgICAgICAgKSwgaGVhZD1kYXR1bVsnZnJvbVJlZiddWydkaXNw
bGF5SWQnXSwKKyAgICAgICAgICAgICAgICAgICAgYmFzZT1kYXR1bVsndG9SZWYnXVsnZGlzcGxh
eUlkJ10sCisgICAgICAgICAgICAgICAgKQorCisgICAgICAgIGRlZiBjcmVhdGUoc2VsZiwgaGVh
ZCwgdGl0bGUsIGJvZHk9Tm9uZSwgY29tbWl0cz1Ob25lLCBiYXNlPU5vbmUpOgorICAgICAgICAg
ICAgZm9yIGtleSwgdmFsdWUgaW4gZGljdChoZWFkPWhlYWQsIHRpdGxlPXRpdGxlKS5pdGVtcygp
OgorICAgICAgICAgICAgICAgIGlmIG5vdCB2YWx1ZToKKyAgICAgICAgICAgICAgICAgICAgcmFp
c2UgVmFsdWVFcnJvcigiTXVzdCBkZWZpbmUgJ3t9JyB3aGVuIGNyZWF0aW5nIHB1bGwtcmVxdWVz
dCIuZm9ybWF0KGtleSkpCisKKyAgICAgICAgICAgIGlmIGxlbih0aXRsZSkgPiBzZWxmLlRJVExF
X0NIQVJfTElNSVQ6CisgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignVGl0bGUgbGVu
Z3RoIHRvbyBsb25nLiBMaW1pdCBpczoge30nLmZvcm1hdChzZWxmLlRJVExFX0NIQVJfTElNSVQp
KQorICAgICAgICAgICAgZGVzY3JpcHRpb24gPSBQdWxsUmVxdWVzdC5jcmVhdGVfYm9keShib2R5
LCBjb21taXRzKQorICAgICAgICAgICAgaWYgZGVzY3JpcHRpb24gYW5kIGxlbihkZXNjcmlwdGlv
bikgPiBzZWxmLkJPRFlfQ0hBUl9MSU1JVDoKKyAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVy
cm9yKCdCb2R5IGxlbmd0aCB0b28gbG9uZy4gTGltaXQgaXM6IHt9Jy5mb3JtYXQoc2VsZi5CT0RZ
X0NIQVJfTElNSVQpKQorICAgICAgICAgICAgcmVzcG9uc2UgPSByZXF1ZXN0cy5wb3N0KAorICAg
ICAgICAgICAgICAgICdodHRwczovL3tkb21haW59L3Jlc3QvYXBpLzEuMC9wcm9qZWN0cy97cHJv
amVjdH0vcmVwb3Mve25hbWV9L3B1bGwtcmVxdWVzdHMnLmZvcm1hdCgKKyAgICAgICAgICAgICAg
ICAgICAgZG9tYWluPXNlbGYucmVwb3NpdG9yeS5kb21haW4sCisgICAgICAgICAgICAgICAgICAg
IHByb2plY3Q9c2VsZi5yZXBvc2l0b3J5LnByb2plY3QsCisgICAgICAgICAgICAgICAgICAgIG5h
bWU9c2VsZi5yZXBvc2l0b3J5Lm5hbWUsCisgICAgICAgICAgICAgICAgKSwganNvbj1kaWN0KAor
ICAgICAgICAgICAgICAgICAgICB0aXRsZT10aXRsZSwKKyAgICAgICAgICAgICAgICAgICAgZGVz
Y3JpcHRpb249UHVsbFJlcXVlc3QuY3JlYXRlX2JvZHkoYm9keSwgY29tbWl0cyksCisgICAgICAg
ICAgICAgICAgICAgIGZyb21SZWY9ZGljdCgKKyAgICAgICAgICAgICAgICAgICAgICAgIGlkPSdy
ZWZzL2hlYWRzL3t9Jy5mb3JtYXQoaGVhZCksCisgICAgICAgICAgICAgICAgICAgICAgICByZXBv
c2l0b3J5PWRpY3QoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2x1Zz1zZWxmLnJlcG9z
aXRvcnkubmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0PWRpY3Qoa2V5
PXNlbGYucmVwb3NpdG9yeS5wcm9qZWN0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICksCisg
ICAgICAgICAgICAgICAgICAgICksIHRvUmVmPWRpY3QoCisgICAgICAgICAgICAgICAgICAgICAg
ICBpZD0ncmVmcy9oZWFkcy97fScuZm9ybWF0KGJhc2Ugb3Igc2VsZi5yZXBvc2l0b3J5LmRlZmF1
bHRfYnJhbmNoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlcG9zaXRvcnk9ZGljdCgKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBzbHVnPXNlbGYucmVwb3NpdG9yeS5uYW1lLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHByb2plY3Q9ZGljdChrZXk9c2VsZi5yZXBvc2l0b3J5
LnByb2plY3QpLAorICAgICAgICAgICAgICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICAgICAg
ICAgKSwKKyAgICAgICAgICAgICAgICApLAorICAgICAgICAgICAgKQorICAgICAgICAgICAgaWYg
cmVzcG9uc2Uuc3RhdHVzX2NvZGUgLy8gMTAwICE9IDI6CisgICAgICAgICAgICAgICAgcmV0dXJu
IE5vbmUKKyAgICAgICAgICAgIGRhdGEgPSByZXNwb25zZS5qc29uKCkKKyAgICAgICAgICAgIHJl
dHVybiBQdWxsUmVxdWVzdCgKKyAgICAgICAgICAgICAgICBudW1iZXI9ZGF0YVsnaWQnXSwKKyAg
ICAgICAgICAgICAgICB0aXRsZT1kYXRhLmdldCgndGl0bGUnKSwKKyAgICAgICAgICAgICAgICBi
b2R5PWRhdGEuZ2V0KCdkZXNjcmlwdGlvbicpLAorICAgICAgICAgICAgICAgIGF1dGhvcj1zZWxm
LnJlcG9zaXRvcnkuY29udHJpYnV0b3JzLmNyZWF0ZSgKKyAgICAgICAgICAgICAgICAgICAgZGF0
YVsnYXV0aG9yJ11bJ3VzZXInXVsnZGlzcGxheU5hbWUnXSwKKyAgICAgICAgICAgICAgICAgICAg
ZGF0YVsnYXV0aG9yJ11bJ3VzZXInXVsnZW1haWxBZGRyZXNzJ10sCisgICAgICAgICAgICAgICAg
KSwgaGVhZD1kYXRhWydmcm9tUmVmJ11bJ2Rpc3BsYXlJZCddLAorICAgICAgICAgICAgICAgIGJh
c2U9ZGF0YVsndG9SZWYnXVsnZGlzcGxheUlkJ10sCisgICAgICAgICAgICApCisKKyAgICAgICAg
ZGVmIHVwZGF0ZShzZWxmLCBwdWxsX3JlcXVlc3QsIGhlYWQ9Tm9uZSwgdGl0bGU9Tm9uZSwgYm9k
eT1Ob25lLCBjb21taXRzPU5vbmUsIGJhc2U9Tm9uZSk6CisgICAgICAgICAgICBpZiBub3QgaXNp
bnN0YW5jZShwdWxsX3JlcXVlc3QsIFB1bGxSZXF1ZXN0KToKKyAgICAgICAgICAgICAgICByYWlz
ZSBWYWx1ZUVycm9yKAorICAgICAgICAgICAgICAgICAgICAiRXhwZWN0ZWQgJ3B1bGxfcmVxdWVz
dCcgdG8gYmUgb2YgdHlwZSAne30nIG5vdCAne30nIi5mb3JtYXQoUHVsbFJlcXVlc3QsIHR5cGUo
cHVsbF9yZXF1ZXN0KSkpCisgICAgICAgICAgICBpZiBub3QgYW55KChoZWFkLCB0aXRsZSwgYm9k
eSwgY29tbWl0cywgYmFzZSkpOgorICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ05v
IGFyZ3VtZW50cyB0byB1cGRhdGUgcHVsbC1yZXF1ZXN0IHByb3ZpZGVkJykKKworICAgICAgICAg
ICAgdG9fY2hhbmdlID0gZGljdCgpCisgICAgICAgICAgICBpZiB0aXRsZToKKyAgICAgICAgICAg
ICAgICB0b19jaGFuZ2VbJ3RpdGxlJ10gPSB0aXRsZQorICAgICAgICAgICAgaWYgYm9keSBvciBj
b21taXRzOgorICAgICAgICAgICAgICAgIHRvX2NoYW5nZVsnZGVzY3JpcHRpb24nXSA9IFB1bGxS
ZXF1ZXN0LmNyZWF0ZV9ib2R5KGJvZHksIGNvbW1pdHMpCisgICAgICAgICAgICBpZiBoZWFkOgor
ICAgICAgICAgICAgICAgIHRvX2NoYW5nZVsnZnJvbVJlZiddID0gZGljdCgKKyAgICAgICAgICAg
ICAgICAgICAgaWQ9J3JlZnMvaGVhZHMve30nLmZvcm1hdChoZWFkKSwKKyAgICAgICAgICAgICAg
ICAgICAgcmVwb3NpdG9yeT1kaWN0KAorICAgICAgICAgICAgICAgICAgICAgICAgc2x1Zz1zZWxm
LnJlcG9zaXRvcnkubmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHByb2plY3Q9ZGljdChr
ZXk9c2VsZi5yZXBvc2l0b3J5LnByb2plY3QpLAorICAgICAgICAgICAgICAgICAgICApLAorICAg
ICAgICAgICAgICAgICkKKyAgICAgICAgICAgIGlmIGNvbW1pdHM6CisgICAgICAgICAgICAgICAg
aWYgdG9fY2hhbmdlLmdldCgnZnJvbVJlZicpOgorICAgICAgICAgICAgICAgICAgICB0b19jaGFu
Z2VbJ2Zyb21SZWYnXVsnbGF0ZXN0Q29tbWl0J10gPSBjb21taXRzWzBdLmhhc2gKKyAgICAgICAg
ICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICB0b19jaGFuZ2VbJ2Zyb21SZWYnXSA9
IGRpY3QobGF0ZXN0Q29tbWl0PWNvbW1pdHNbMF0uaGFzaCkKKyAgICAgICAgICAgIGlmIGJhc2U6
CisgICAgICAgICAgICAgICAgdG9fY2hhbmdlWyd0b1JlZiddID0gZGljdCgKKyAgICAgICAgICAg
ICAgICAgICAgaWQ9J3JlZnMvaGVhZHMve30nLmZvcm1hdChiYXNlIG9yIHNlbGYucmVwb3NpdG9y
eS5kZWZhdWx0X2JyYW5jaCksCisgICAgICAgICAgICAgICAgICAgIHJlcG9zaXRvcnk9ZGljdCgK
KyAgICAgICAgICAgICAgICAgICAgICAgIHNsdWc9c2VsZi5yZXBvc2l0b3J5Lm5hbWUsCisgICAg
ICAgICAgICAgICAgICAgICAgICBwcm9qZWN0PWRpY3Qoa2V5PXNlbGYucmVwb3NpdG9yeS5wcm9q
ZWN0KSwKKyAgICAgICAgICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICAgICApCisKKyAgICAg
ICAgICAgIHByX3VybCA9ICdodHRwczovL3tkb21haW59L3Jlc3QvYXBpLzEuMC9wcm9qZWN0cy97
cHJvamVjdH0vcmVwb3Mve25hbWV9L3B1bGwtcmVxdWVzdHMve2lkfScuZm9ybWF0KAorICAgICAg
ICAgICAgICAgIGRvbWFpbj1zZWxmLnJlcG9zaXRvcnkuZG9tYWluLAorICAgICAgICAgICAgICAg
IHByb2plY3Q9c2VsZi5yZXBvc2l0b3J5LnByb2plY3QsCisgICAgICAgICAgICAgICAgbmFtZT1z
ZWxmLnJlcG9zaXRvcnkubmFtZSwKKyAgICAgICAgICAgICAgICBpZD1wdWxsX3JlcXVlc3QubnVt
YmVyLAorICAgICAgICAgICAgKQorICAgICAgICAgICAgcmVzcG9uc2UgPSByZXF1ZXN0cy5nZXQo
cHJfdXJsKQorICAgICAgICAgICAgaWYgcmVzcG9uc2Uuc3RhdHVzX2NvZGUgLy8gMTAwICE9IDI6
CisgICAgICAgICAgICAgICAgcmV0dXJuIE5vbmUKKyAgICAgICAgICAgIGRhdGEgPSByZXNwb25z
ZS5qc29uKCkKKyAgICAgICAgICAgIGRlbCBkYXRhWydhdXRob3InXQorICAgICAgICAgICAgZGVs
IGRhdGFbJ3BhcnRpY2lwYW50cyddCisgICAgICAgICAgICBkYXRhLnVwZGF0ZSh0b19jaGFuZ2Up
CisKKyAgICAgICAgICAgIHJlc3BvbnNlID0gcmVxdWVzdHMucHV0KHByX3VybCwganNvbj1kYXRh
KQorICAgICAgICAgICAgaWYgcmVzcG9uc2Uuc3RhdHVzX2NvZGUgLy8gMTAwICE9IDI6CisgICAg
ICAgICAgICAgICAgcmV0dXJuIE5vbmUKKyAgICAgICAgICAgIGRhdGEgPSByZXNwb25zZS5qc29u
KCkKKworICAgICAgICAgICAgcHVsbF9yZXF1ZXN0LnRpdGxlID0gZGF0YS5nZXQoJ3RpdGxlJywg
cHVsbF9yZXF1ZXN0LnRpdGxlKQorICAgICAgICAgICAgaWYgZGF0YS5nZXQoJ2Rlc2NyaXB0aW9u
Jyk6CisgICAgICAgICAgICAgICAgcHVsbF9yZXF1ZXN0LmJvZHksIHB1bGxfcmVxdWVzdC5jb21t
aXRzID0gcHVsbF9yZXF1ZXN0LnBhcnNlX2JvZHkoZGF0YS5nZXQoJ2Rlc2NyaXB0aW9uJykpCisg
ICAgICAgICAgICB1c2VyID0gZGF0YS5nZXQoJ2F1dGhvcicsIHt9KS5nZXQoJ3VzZXInLCB7fSkK
KyAgICAgICAgICAgIGlmIHVzZXIuZ2V0KCdkaXNwbGF5TmFtZScpIGFuZCB1c2VyLmdldCgnZW1h
aWxBZGRyZXNzJyk6CisgICAgICAgICAgICAgICAgcHVsbF9yZXF1ZXN0LmF1dGhvciA9IHNlbGYu
cmVwb3NpdG9yeS5jb250cmlidXRvcnMuY3JlYXRlKHVzZXJbJ2Rpc3BsYXlOYW1lJ10sIHVzZXJb
J2VtYWlsQWRkcmVzcyddKQorICAgICAgICAgICAgcHVsbF9yZXF1ZXN0LmhlYWQgPSBkYXRhLmdl
dCgnZnJvbVJlZicsIHt9KS5nZXQoJ2Rpc3BsYXlJZCcsIHB1bGxfcmVxdWVzdC5iYXNlKQorICAg
ICAgICAgICAgcHVsbF9yZXF1ZXN0LmJhc2UgPSBkYXRhLmdldCgndG9SZWYnLCB7fSkuZ2V0KCdk
aXNwbGF5SWQnLCBwdWxsX3JlcXVlc3QuYmFzZSkKKworICAgICAgICAgICAgcmV0dXJuIHB1bGxf
cmVxdWVzdAorCisKICAgICBAY2xhc3NtZXRob2QKICAgICBkZWYgaXNfd2Vic2VydmVyKGNscywg
dXJsKToKICAgICAgICAgcmV0dXJuIFRydWUgaWYgY2xzLlVSTF9SRS5tYXRjaCh1cmwpIGVsc2Ug
RmFsc2UKQEAgLTUyLDYgKzE5OCw4IEBAIGNsYXNzIEJpdEJ1Y2tldChTY20pOgogICAgICAgICAg
ICAgaWQ9aWQgb3Igc2VsZi5uYW1lLmxvd2VyKCksCiAgICAgICAgICkKIAorICAgICAgICBzZWxm
LnB1bGxfcmVxdWVzdHMgPSBzZWxmLlBSR2VuZXJhdG9yKHNlbGYpCisKICAgICBAcHJvcGVydHkK
ICAgICBkZWYgaXNfZ2l0KHNlbGYpOgogICAgICAgICByZXR1cm4gVHJ1ZQpkaWZmIC0tZ2l0IGEv
VG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvcmVtb3RlL2dp
dF9odWIucHkgYi9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21w
eS9yZW1vdGUvZ2l0X2h1Yi5weQppbmRleCBiMDUyOWYyY2IxNTgwYWI5YTU1YmJlMGFhMGZjODAx
ZTZiYmYxNTc4Li42NGVkZmMyZDc2ZDM3ZjEzMWZiYjQ4YWQyYjEyOWYyZTU3ZDgyMDlhIDEwMDY0
NAotLS0gYS9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS9y
ZW1vdGUvZ2l0X2h1Yi5weQorKysgYi9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21w
eS93ZWJraXRzY21weS9yZW1vdGUvZ2l0X2h1Yi5weQpAQCAtMjksNyArMjksNyBAQCBpbXBvcnQg
c3lzCiBmcm9tIGRhdGV0aW1lIGltcG9ydCBkYXRldGltZQogZnJvbSByZXF1ZXN0cy5hdXRoIGlt
cG9ydCBIVFRQQmFzaWNBdXRoCiBmcm9tIHdlYmtpdGNvcmVweSBpbXBvcnQgY3JlZGVudGlhbHMs
IGRlY29yYXRvcnMKLWZyb20gd2Via2l0c2NtcHkgaW1wb3J0IENvbW1pdAorZnJvbSB3ZWJraXRz
Y21weSBpbXBvcnQgQ29tbWl0LCBQdWxsUmVxdWVzdAogZnJvbSB3ZWJraXRzY21weS5yZW1vdGUu
c2NtIGltcG9ydCBTY20KIGZyb20geG1sLmRvbSBpbXBvcnQgbWluaWRvbQogCkBAIC0zOCw2ICsz
OCwxMDEgQEAgY2xhc3MgR2l0SHViKFNjbSk6CiAgICAgVVJMX1JFID0gcmUuY29tcGlsZShyJ1xB
aHR0cHM/Oi8vZ2l0aHViLig/UDxkb21haW4+XFMrKS8oP1A8b3duZXI+XFMrKS8oP1A8cmVwb3Np
dG9yeT5cUyspXFonKQogICAgIEVNQUlMX1JFID0gcmUuY29tcGlsZShyJyg/UDxlbWFpbD5bXkBd
K0BbXkBdKykoQC4qKT8nKQogCisgICAgY2xhc3MgUFJHZW5lcmF0b3IoU2NtLlBSR2VuZXJhdG9y
KToKKyAgICAgICAgZGVmIGZpbmQoc2VsZiwgc3RhdGU9Tm9uZSwgaGVhZD1Ob25lLCBiYXNlPU5v
bmUpOgorICAgICAgICAgICAgaWYgbm90IHN0YXRlOgorICAgICAgICAgICAgICAgIHN0YXRlID0g
J2FsbCcKKyAgICAgICAgICAgIHVzZXIsIF8gPSBzZWxmLnJlcG9zaXRvcnkuY3JlZGVudGlhbHMo
KQorICAgICAgICAgICAgZGF0YSA9IHNlbGYucmVwb3NpdG9yeS5yZXF1ZXN0KCdwdWxscycsIHBh
cmFtcz1kaWN0KAorICAgICAgICAgICAgICAgIHN0YXRlPXN0YXRlLAorICAgICAgICAgICAgICAg
IGJhc2U9YmFzZSwKKyAgICAgICAgICAgICAgICBoZWFkPSd7fTp7fScuZm9ybWF0KHVzZXIsIGhl
YWQpIGlmIHVzZXIgYW5kIGhlYWQgZWxzZSBoZWFkLAorICAgICAgICAgICAgKSkKKyAgICAgICAg
ICAgIGZvciBkYXR1bSBpbiBkYXRhIG9yIFtdOgorICAgICAgICAgICAgICAgIGlmIGJhc2UgYW5k
IGRhdHVtWydiYXNlJ11bJ3JlZiddICE9IGJhc2U6CisgICAgICAgICAgICAgICAgICAgIGNvbnRp
bnVlCisgICAgICAgICAgICAgICAgaWYgaGVhZCBhbmQgbm90IGRhdHVtWydoZWFkJ11bJ3JlZidd
LmVuZHN3aXRoKGhlYWQpOgorICAgICAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAg
ICAgICAgIHlpZWxkIFB1bGxSZXF1ZXN0KAorICAgICAgICAgICAgICAgICAgICBudW1iZXI9ZGF0
dW1bJ251bWJlciddLAorICAgICAgICAgICAgICAgICAgICB0aXRsZT1kYXR1bS5nZXQoJ3RpdGxl
JyksCisgICAgICAgICAgICAgICAgICAgIGJvZHk9ZGF0dW0uZ2V0KCdib2R5JyksCisgICAgICAg
ICAgICAgICAgICAgIGF1dGhvcj1zZWxmLnJlcG9zaXRvcnkuY29udHJpYnV0b3JzLmNyZWF0ZShk
YXR1bVsndXNlciddWydsb2dpbiddKSwKKyAgICAgICAgICAgICAgICAgICAgaGVhZD1kYXR1bVsn
aGVhZCddWydyZWYnXSwKKyAgICAgICAgICAgICAgICAgICAgYmFzZT1kYXR1bVsnYmFzZSddWydy
ZWYnXSwKKyAgICAgICAgICAgICAgICApCisKKyAgICAgICAgZGVmIGNyZWF0ZShzZWxmLCBoZWFk
LCB0aXRsZSwgYm9keT1Ob25lLCBjb21taXRzPU5vbmUsIGJhc2U9Tm9uZSk6CisgICAgICAgICAg
ICBmb3Iga2V5LCB2YWx1ZSBpbiBkaWN0KGhlYWQ9aGVhZCwgdGl0bGU9dGl0bGUpLml0ZW1zKCk6
CisgICAgICAgICAgICAgICAgaWYgbm90IHZhbHVlOgorICAgICAgICAgICAgICAgICAgICByYWlz
ZSBWYWx1ZUVycm9yKCJNdXN0IGRlZmluZSAne30nIHdoZW4gY3JlYXRpbmcgcHVsbC1yZXF1ZXN0
Ii5mb3JtYXQoa2V5KSkKKworICAgICAgICAgICAgdXNlciwgXyA9IHNlbGYucmVwb3NpdG9yeS5j
cmVkZW50aWFscyhyZXF1aXJlZD1UcnVlKQorICAgICAgICAgICAgcmVzcG9uc2UgPSByZXF1ZXN0
cy5wb3N0KAorICAgICAgICAgICAgICAgICd7YXBpX3VybH0vcmVwb3Mve293bmVyfS97bmFtZX0v
cHVsbHMnLmZvcm1hdCgKKyAgICAgICAgICAgICAgICAgICAgYXBpX3VybD1zZWxmLnJlcG9zaXRv
cnkuYXBpX3VybCwKKyAgICAgICAgICAgICAgICAgICAgb3duZXI9c2VsZi5yZXBvc2l0b3J5Lm93
bmVyLAorICAgICAgICAgICAgICAgICAgICBuYW1lPXNlbGYucmVwb3NpdG9yeS5uYW1lLAorICAg
ICAgICAgICAgICAgICksIGF1dGg9SFRUUEJhc2ljQXV0aCgqc2VsZi5yZXBvc2l0b3J5LmNyZWRl
bnRpYWxzKHJlcXVpcmVkPVRydWUpKSwKKyAgICAgICAgICAgICAgICBoZWFkZXJzPWRpY3QoQWNj
ZXB0PSdhcHBsaWNhdGlvbi92bmQuZ2l0aHViLnYzK2pzb24nKSwKKyAgICAgICAgICAgICAgICBq
c29uPWRpY3QoCisgICAgICAgICAgICAgICAgICAgIHRpdGxlPXRpdGxlLAorICAgICAgICAgICAg
ICAgICAgICBib2R5PVB1bGxSZXF1ZXN0LmNyZWF0ZV9ib2R5KGJvZHksIGNvbW1pdHMpLAorICAg
ICAgICAgICAgICAgICAgICBiYXNlPWJhc2Ugb3Igc2VsZi5yZXBvc2l0b3J5LmRlZmF1bHRfYnJh
bmNoLAorICAgICAgICAgICAgICAgICAgICBoZWFkPSd7fTp7fScuZm9ybWF0KHVzZXIsIGhlYWQp
LAorICAgICAgICAgICAgICAgICksCisgICAgICAgICAgICApCisgICAgICAgICAgICBpZiByZXNw
b25zZS5zdGF0dXNfY29kZSAvLyAxMDAgIT0gMjoKKyAgICAgICAgICAgICAgICByZXR1cm4gTm9u
ZQorICAgICAgICAgICAgZGF0YSA9IHJlc3BvbnNlLmpzb24oKQorICAgICAgICAgICAgcmV0dXJu
IFB1bGxSZXF1ZXN0KAorICAgICAgICAgICAgICAgIG51bWJlcj1kYXRhWydudW1iZXInXSwKKyAg
ICAgICAgICAgICAgICB0aXRsZT1kYXRhLmdldCgndGl0bGUnKSwKKyAgICAgICAgICAgICAgICBi
b2R5PWRhdGEuZ2V0KCdib2R5JyksCisgICAgICAgICAgICAgICAgYXV0aG9yPXNlbGYucmVwb3Np
dG9yeS5jb250cmlidXRvcnMuY3JlYXRlKGRhdGFbJ3VzZXInXVsnbG9naW4nXSksCisgICAgICAg
ICAgICAgICAgaGVhZD1kYXRhWydoZWFkJ11bJ3JlZiddLAorICAgICAgICAgICAgICAgIGJhc2U9
ZGF0YVsnYmFzZSddWydyZWYnXSwKKyAgICAgICAgICAgICkKKworICAgICAgICBkZWYgdXBkYXRl
KHNlbGYsIHB1bGxfcmVxdWVzdCwgaGVhZD1Ob25lLCB0aXRsZT1Ob25lLCBib2R5PU5vbmUsIGNv
bW1pdHM9Tm9uZSwgYmFzZT1Ob25lKToKKyAgICAgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKHB1
bGxfcmVxdWVzdCwgUHVsbFJlcXVlc3QpOgorICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJy
b3IoIkV4cGVjdGVkICdwdWxsX3JlcXVlc3QnIHRvIGJlIG9mIHR5cGUgJ3t9JyBub3QgJ3t9JyIu
Zm9ybWF0KFB1bGxSZXF1ZXN0LCB0eXBlKHB1bGxfcmVxdWVzdCkpKQorICAgICAgICAgICAgaWYg
bm90IGFueSgoaGVhZCwgdGl0bGUsIGJvZHksIGNvbW1pdHMsIGJhc2UpKToKKyAgICAgICAgICAg
ICAgICByYWlzZSBWYWx1ZUVycm9yKCdObyBhcmd1bWVudHMgdG8gdXBkYXRlIHB1bGwtcmVxdWVz
dCBwcm92aWRlZCcpCisKKyAgICAgICAgICAgIHVzZXIsIF8gPSBzZWxmLnJlcG9zaXRvcnkuY3Jl
ZGVudGlhbHMocmVxdWlyZWQ9VHJ1ZSkKKyAgICAgICAgICAgIHVwZGF0ZXMgPSBkaWN0KAorICAg
ICAgICAgICAgICAgIHRpdGxlPXRpdGxlIG9yIHB1bGxfcmVxdWVzdC50aXRsZSwKKyAgICAgICAg
ICAgICAgICBiYXNlPWJhc2Ugb3IgcHVsbF9yZXF1ZXN0LmJhc2UsCisgICAgICAgICAgICAgICAg
aGVhZD0ne306e30nLmZvcm1hdCh1c2VyLCBoZWFkKSBpZiBoZWFkIGVsc2UgcHVsbF9yZXF1ZXN0
LmhlYWQsCisgICAgICAgICAgICApCisgICAgICAgICAgICBpZiBib2R5IG9yIGNvbW1pdHM6Cisg
ICAgICAgICAgICAgICAgdXBkYXRlc1snYm9keSddID0gUHVsbFJlcXVlc3QuY3JlYXRlX2JvZHko
Ym9keSwgY29tbWl0cykKKyAgICAgICAgICAgIHJlc3BvbnNlID0gcmVxdWVzdHMucG9zdCgKKyAg
ICAgICAgICAgICAgICAne2FwaV91cmx9L3JlcG9zL3tvd25lcn0ve25hbWV9L3B1bGxzL3tudW1i
ZXJ9Jy5mb3JtYXQoCisgICAgICAgICAgICAgICAgICAgIGFwaV91cmw9c2VsZi5yZXBvc2l0b3J5
LmFwaV91cmwsCisgICAgICAgICAgICAgICAgICAgIG93bmVyPXNlbGYucmVwb3NpdG9yeS5vd25l
ciwKKyAgICAgICAgICAgICAgICAgICAgbmFtZT1zZWxmLnJlcG9zaXRvcnkubmFtZSwKKyAgICAg
ICAgICAgICAgICAgICAgbnVtYmVyPXB1bGxfcmVxdWVzdC5udW1iZXIsCisgICAgICAgICAgICAg
ICAgKSwgYXV0aD1IVFRQQmFzaWNBdXRoKCpzZWxmLnJlcG9zaXRvcnkuY3JlZGVudGlhbHMocmVx
dWlyZWQ9VHJ1ZSkpLAorICAgICAgICAgICAgICAgIGhlYWRlcnM9ZGljdChBY2NlcHQ9J2FwcGxp
Y2F0aW9uL3ZuZC5naXRodWIudjMranNvbicpLAorICAgICAgICAgICAgICAgIGpzb249dXBkYXRl
cywKKyAgICAgICAgICAgICkKKyAgICAgICAgICAgIGlmIHJlc3BvbnNlLnN0YXR1c19jb2RlIC8v
IDEwMCAhPSAyOgorICAgICAgICAgICAgICAgIHJldHVybiBOb25lCisgICAgICAgICAgICBkYXRh
ID0gcmVzcG9uc2UuanNvbigpCisKKyAgICAgICAgICAgIHB1bGxfcmVxdWVzdC50aXRsZSA9IGRh
dGEuZ2V0KCd0aXRsZScsIHB1bGxfcmVxdWVzdC50aXRsZSkKKyAgICAgICAgICAgIGlmIGRhdGEu
Z2V0KCdib2R5Jyk6CisgICAgICAgICAgICAgICAgcHVsbF9yZXF1ZXN0LmJvZHksIHB1bGxfcmVx
dWVzdC5jb21taXRzID0gcHVsbF9yZXF1ZXN0LnBhcnNlX2JvZHkoZGF0YS5nZXQoJ2JvZHknKSkK
KyAgICAgICAgICAgIGlmIGRhdGEuZ2V0KCd1c2VyJywge30pLmdldCgnbG9naW4nKToKKyAgICAg
ICAgICAgICAgICBwdWxsX3JlcXVlc3QuYXV0aG9yID0gc2VsZi5yZXBvc2l0b3J5LmNvbnRyaWJ1
dG9ycy5jcmVhdGUoZGF0YVsndXNlciddWydsb2dpbiddKQorICAgICAgICAgICAgcHVsbF9yZXF1
ZXN0LmhlYWQgPSBkYXRhLmdldCgnaGVhZCcsIHt9KS5nZXQoJ2Rpc3BsYXlJZCcsIHB1bGxfcmVx
dWVzdC5iYXNlKQorICAgICAgICAgICAgcHVsbF9yZXF1ZXN0LmJhc2UgPSBkYXRhLmdldCgnYmFz
ZScsIHt9KS5nZXQoJ2Rpc3BsYXlJZCcsIHB1bGxfcmVxdWVzdC5iYXNlKQorCisgICAgICAgICAg
ICByZXR1cm4gcHVsbF9yZXF1ZXN0CisKKwogICAgIEBjbGFzc21ldGhvZAogICAgIGRlZiBpc193
ZWJzZXJ2ZXIoY2xzLCB1cmwpOgogICAgICAgICByZXR1cm4gVHJ1ZSBpZiBjbHMuVVJMX1JFLm1h
dGNoKHVybCkgZWxzZSBGYWxzZQpAQCAtNjIsNiArMTU3LDggQEAgY2xhc3MgR2l0SHViKFNjbSk6
CiAgICAgICAgICAgICBpZD1pZCBvciBzZWxmLm5hbWUubG93ZXIoKSwKICAgICAgICAgKQogCisg
ICAgICAgIHNlbGYucHVsbF9yZXF1ZXN0cyA9IHNlbGYuUFJHZW5lcmF0b3Ioc2VsZikKKwogICAg
IGRlZiBjcmVkZW50aWFscyhzZWxmLCByZXF1aXJlZD1UcnVlKToKICAgICAgICAgdXNlcm5hbWUs
IHRva2VuID0gY3JlZGVudGlhbHMoCiAgICAgICAgICAgICB1cmw9c2VsZi5hcGlfdXJsLApkaWZm
IC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkv
cmVtb3RlL3NjbS5weSBiL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtp
dHNjbXB5L3JlbW90ZS9zY20ucHkKaW5kZXggOWY4M2Y1MmFkOWVhZmRhNmMzN2I5ZDYwYzFjOWIz
ZTA5NzlkNGQ4My4uZmJlYmZlODhjOWFlOGMxOWI3OTc4MmFiNWIwYTFiMGRmNjk3MzI5MyAxMDA2
NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkv
cmVtb3RlL3NjbS5weQorKysgYi9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93
ZWJraXRzY21weS9yZW1vdGUvc2NtLnB5CkBAIC0yNiw2ICsyNiwyMCBAQCBmcm9tIHdlYmtpdHNj
bXB5LnNjbV9iYXNlIGltcG9ydCBTY21CYXNlCiAKIAogY2xhc3MgU2NtKFNjbUJhc2UpOgorICAg
IGNsYXNzIFBSR2VuZXJhdG9yKG9iamVjdCk6CisgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCBy
ZXBvc2l0b3J5KToKKyAgICAgICAgICAgIHNlbGYucmVwb3NpdG9yeSA9IHJlcG9zaXRvcnkKKwor
ICAgICAgICBkZWYgZmluZChzZWxmLCBzdGF0ZT1Ob25lLCBoZWFkPU5vbmUsIGJhc2U9Tm9uZSk6
CisgICAgICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKCkKKworICAgICAgICBkZWYg
Y3JlYXRlKHNlbGYsIGhlYWQsIHRpdGxlLCBib2R5PU5vbmUsIGNvbW1pdHM9Tm9uZSwgYmFzZT1O
b25lKToKKyAgICAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoKQorCisgICAgICAg
IGRlZiB1cGRhdGUoc2VsZiwgcHVsbF9yZXF1ZXN0LCBoZWFkPU5vbmUsIHRpdGxlPU5vbmUsIGJv
ZHk9Tm9uZSwgY29tbWl0cz1Ob25lLCBiYXNlPU5vbmUpOgorICAgICAgICAgICAgcmFpc2UgTm90
SW1wbGVtZW50ZWRFcnJvcigpCisKKwogICAgIEBjbGFzc21ldGhvZAogICAgIGRlZiBmcm9tX3Vy
bChjbHMsIHVybCwgY29udHJpYnV0b3JzPU5vbmUpOgogICAgICAgICBmcm9tIHdlYmtpdHNjbXB5
IGltcG9ydCByZW1vdGUKQEAgLTQyLDMgKzU2LDQgQEAgY2xhc3MgU2NtKFNjbUJhc2UpOgogICAg
ICAgICBpZiBub3QgaXNpbnN0YW5jZSh1cmwsIHNpeC5zdHJpbmdfdHlwZXMpOgogICAgICAgICAg
ICAgcmFpc2UgVmFsdWVFcnJvcigiRXhwZWN0ZWQgJ3VybCcgdG8gYmUgYSBzdHJpbmcgdHlwZSwg
bm90ICd7fSciLmZvcm1hdCh0eXBlKHVybCkpKQogICAgICAgICBzZWxmLnVybCA9IHVybAorICAg
ICAgICBzZWxmLnB1bGxfcmVxdWVzdHMgPSBOb25lCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRz
L2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS90ZXN0L3B1bGxfcmVxdWVzdF91bml0
dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5
L3Rlc3QvcHVsbF9yZXF1ZXN0X3VuaXR0ZXN0LnB5CmluZGV4IDJmZGJlNzQ1OTk0ZDRmODM0ZGQ4
ZTBkYTlkOWZkODlkNzUzMGZhZTAuLjNiMDZiMWNlNTE5ZWFiMTc2NDhmN2E2ZGQ1ZDlhYzViNjA3
Y2EyZDAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dl
YmtpdHNjbXB5L3Rlc3QvcHVsbF9yZXF1ZXN0X3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1Njcmlw
dHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L3Rlc3QvcHVsbF9yZXF1ZXN0X3Vu
aXR0ZXN0LnB5CkBAIC0yMCw5ICsyMCwxMiBAQAogIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUwogIyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KIAoraW1wb3J0IG9zCitpbXBvcnQgc3lzCiBpbXBvcnQgdW5pdHRlc3QKIAotZnJvbSB3ZWJr
aXRzY21weSBpbXBvcnQgQ29tbWl0LCBQdWxsUmVxdWVzdAorZnJvbSB3ZWJraXRjb3JlcHkgaW1w
b3J0IE91dHB1dENhcHR1cmUsIHRlc3RpbmcKK2Zyb20gd2Via2l0c2NtcHkgaW1wb3J0IENvbW1p
dCwgUHVsbFJlcXVlc3QsIHByb2dyYW0sIG1vY2tzCiAKIAogY2xhc3MgVGVzdFB1bGxSZXF1ZXN0
KHVuaXR0ZXN0LlRlc3RDYXNlKToKQEAgLTE1MCwzICsxNTMsMTY5IEBAIFJldmlld2VkIGJ5IFRp
bSBDb250cmlidXRvci4KICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oY29tbWl0cyksIDEp
CiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbWl0c1swXS5oYXNoLCAnMTFhYTc2ZjlmYzM4
MGU5ZmUwNjE1NzE1NGYzMmIzMDRlOGRjNDc0OScpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
Y29tbWl0c1swXS5tZXNzYWdlLCAnW3Njb3BpbmddIEJ1ZyB0byBmaXhcblxuUmV2aWV3ZWQgYnkg
VGltIENvbnRyaWJ1dG9yLicpCisKKworY2xhc3MgVGVzdERvUHVsbFJlcXVlc3QodGVzdGluZy5Q
YXRoVGVzdENhc2UpOgorICAgIGJhc2VwYXRoID0gJ21vY2svcmVwb3NpdG9yeScKKworICAgIGRl
ZiBzZXRVcChzZWxmKToKKyAgICAgICAgc3VwZXIoVGVzdERvUHVsbFJlcXVlc3QsIHNlbGYpLnNl
dFVwKCkKKyAgICAgICAgb3MubWtkaXIob3MucGF0aC5qb2luKHNlbGYucGF0aCwgJy5naXQnKSkK
KyAgICAgICAgb3MubWtkaXIob3MucGF0aC5qb2luKHNlbGYucGF0aCwgJy5zdm4nKSkKKworICAg
IGRlZiB0ZXN0X3N2bihzZWxmKToKKyAgICAgICAgd2l0aCBPdXRwdXRDYXB0dXJlKCkgYXMgY2Fw
dHVyZWQsIG1vY2tzLmxvY2FsLkdpdCgpLCBtb2Nrcy5sb2NhbC5Tdm4oc2VsZi5wYXRoKToKKyAg
ICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMSwgcHJvZ3JhbS5tYWluKAorICAgICAgICAgICAg
ICAgIGFyZ3M9KCdwdWxsLXJlcXVlc3QnLCksCisgICAgICAgICAgICAgICAgcGF0aD1zZWxmLnBh
dGgsCisgICAgICAgICAgICApKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNhcHR1cmVkLnJv
b3QubG9nLmdldHZhbHVlKCksICcnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNhcHR1cmVk
LnN0ZGVyci5nZXR2YWx1ZSgpLCAiQ2FuIG9ubHkgJ3B1bGwtcmVxdWVzdCcgb24gYSBuYXRpdmUg
R2l0IHJlcG9zaXRvcnlcbiIpCisKKyAgICBkZWYgdGVzdF9ub19tb2RpZmllZChzZWxmKToKKyAg
ICAgICAgd2l0aCBPdXRwdXRDYXB0dXJlKCkgYXMgY2FwdHVyZWQsIG1vY2tzLmxvY2FsLkdpdChz
ZWxmLnBhdGgpLCBtb2Nrcy5sb2NhbC5Tdm4oKToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoMSwgcHJvZ3JhbS5tYWluKAorICAgICAgICAgICAgICAgIGFyZ3M9KCdwdWxsLXJlcXVlc3Qn
LCAnLWknLCAncHItYnJhbmNoJyksCisgICAgICAgICAgICAgICAgcGF0aD1zZWxmLnBhdGgsCisg
ICAgICAgICAgICApKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNhcHR1cmVkLnJvb3QubG9n
LmdldHZhbHVlKCksICJDcmVhdGluZyB0aGUgbG9jYWwgZGV2ZWxvcG1lbnQgYnJhbmNoICdlbmcv
cHItYnJhbmNoJy4uLlxuIikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjYXB0dXJlZC5zdGRl
cnIuZ2V0dmFsdWUoKSwgJ05vIG1vZGlmaWVkIGZpbGVzXG4nKQorCisgICAgZGVmIHRlc3Rfc3Rh
Z2VkKHNlbGYpOgorICAgICAgICB3aXRoIE91dHB1dENhcHR1cmUoKSBhcyBjYXB0dXJlZCwgbW9j
a3MubG9jYWwuR2l0KHNlbGYucGF0aCkgYXMgcmVwbywgbW9ja3MubG9jYWwuU3ZuKCk6CisgICAg
ICAgICAgICByZXBvLnN0YWdlZFsnYWRkZWQudHh0J10gPSAnYWRkZWQnCisgICAgICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKDEsIHByb2dyYW0ubWFpbigKKyAgICAgICAgICAgICAgICBhcmdzPSgn
cHVsbC1yZXF1ZXN0JywgJy1pJywgJ3ByLWJyYW5jaCcpLAorICAgICAgICAgICAgICAgIHBhdGg9
c2VsZi5wYXRoLAorICAgICAgICAgICAgKSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RGljdEVx
dWFsKHJlcG8uc3RhZ2VkLCB7fSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVwby5o
ZWFkLmhhc2gsICdlNDM5MGFiYzk1YTIwMjYzNzBiOGM5ODEzYjdlNTVjNjFjNWQ2ZWJiJykKKwor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNhcHR1cmVkLnJvb3QubG9nLmdldHZhbHVlKCksICcn
J0NyZWF0aW5nIHRoZSBsb2NhbCBkZXZlbG9wbWVudCBicmFuY2ggJ2VuZy9wci1icmFuY2gnLi4u
CitDcmVhdGluZyBjb21taXQuLi4KKyAgICBGb3VuZCAxIGNvbW1pdC4uLgorJycnKQorICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKGNhcHR1cmVkLnN0ZGVyci5nZXR2YWx1ZSgpLCAiJ3t9JyBkb2Vz
bid0IGhhdmUgYSByZWNvZ25pemVkIHJlbW90ZVxuIi5mb3JtYXQoc2VsZi5wYXRoKSkKKworICAg
IGRlZiB0ZXN0X21vZGlmaWVkKHNlbGYpOgorICAgICAgICB3aXRoIE91dHB1dENhcHR1cmUoKSBh
cyBjYXB0dXJlZCwgbW9ja3MubG9jYWwuR2l0KHNlbGYucGF0aCkgYXMgcmVwbywgbW9ja3MubG9j
YWwuU3ZuKCk6CisgICAgICAgICAgICByZXBvLm1vZGlmaWVkWydtb2RpZmllZC50eHQnXSA9ICdk
aWZmJworICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxLCBwcm9ncmFtLm1haW4oCisgICAg
ICAgICAgICAgICAgYXJncz0oJ3B1bGwtcmVxdWVzdCcsICctaScsICdwci1icmFuY2gnKSwKKyAg
ICAgICAgICAgICAgICBwYXRoPXNlbGYucGF0aCwKKyAgICAgICAgICAgICkpCisgICAgICAgICAg
ICBzZWxmLmFzc2VydERpY3RFcXVhbChyZXBvLm1vZGlmaWVkLCBkaWN0KCkpCisgICAgICAgICAg
ICBzZWxmLmFzc2VydERpY3RFcXVhbChyZXBvLnN0YWdlZCwgZGljdCgpKQorICAgICAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChyZXBvLmhlYWQuaGFzaCwgJ2QwNTA4MmJmNjcwNzI1MmFlZjM0NzI2
OTI1OThhNTg3ZWQzZmIyMTMnKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY2FwdHVyZWQu
c3RkZXJyLmdldHZhbHVlKCksICIne30nIGRvZXNuJ3QgaGF2ZSBhIHJlY29nbml6ZWQgcmVtb3Rl
XG4iLmZvcm1hdChzZWxmLnBhdGgpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNhcHR1cmVk
LnJvb3QubG9nLmdldHZhbHVlKCksICcnJ0NyZWF0aW5nIHRoZSBsb2NhbCBkZXZlbG9wbWVudCBi
cmFuY2ggJ2VuZy9wci1icmFuY2gnLi4uCisgICAgQWRkaW5nIG1vZGlmaWVkLnR4dC4uLgorQ3Jl
YXRpbmcgY29tbWl0Li4uCisgICAgRm91bmQgMSBjb21taXQuLi4KKycnJykKKworICAgIGRlZiB0
ZXN0X2dpdGh1YihzZWxmKToKKyAgICAgICAgd2l0aCBPdXRwdXRDYXB0dXJlKCkgYXMgY2FwdHVy
ZWQsIG1vY2tzLnJlbW90ZS5HaXRIdWIoKSBhcyByZW1vdGUsIFwKKyAgICAgICAgICAgICAgICBt
b2Nrcy5sb2NhbC5HaXQoc2VsZi5wYXRoLCByZW1vdGU9J2h0dHBzOi8ve30nLmZvcm1hdChyZW1v
dGUucmVtb3RlKSkgYXMgcmVwbywgbW9ja3MubG9jYWwuU3ZuKCk6CisKKyAgICAgICAgICAgIHJl
cG8uc3RhZ2VkWydhZGRlZC50eHQnXSA9ICdhZGRlZCcKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoMCwgcHJvZ3JhbS5tYWluKAorICAgICAgICAgICAgICAgIGFyZ3M9KCdwdWxsLXJlcXVl
c3QnLCAnLWknLCAncHItYnJhbmNoJyksCisgICAgICAgICAgICAgICAgcGF0aD1zZWxmLnBhdGgs
CisgICAgICAgICAgICApKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY2FwdHVyZWQuc3Rk
ZXJyLmdldHZhbHVlKCksICcnKQorICAgICAgICBsb2cgPSBjYXB0dXJlZC5yb290LmxvZy5nZXR2
YWx1ZSgpLnNwbGl0bGluZXMoKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAorICAgICAgICAg
ICAgbG9nWzo0XSArIGxvZ1s3IGlmIHN5cy52ZXJzaW9uX2luZm8gPiAoMywgMCkgZWxzZSA1Ol0s
IFsKKyAgICAgICAgICAgICAgICAiQ3JlYXRpbmcgdGhlIGxvY2FsIGRldmVsb3BtZW50IGJyYW5j
aCAnZW5nL3ByLWJyYW5jaCcuLi4iLAorICAgICAgICAgICAgICAgICdDcmVhdGluZyBjb21taXQu
Li4nLAorICAgICAgICAgICAgICAgICcgICAgRm91bmQgMSBjb21taXQuLi4nLAorICAgICAgICAg
ICAgICAgICJQdXNoaW5nICdlbmcvcHItYnJhbmNoJyB0byAnZm9yaycuLi4iLAorICAgICAgICAg
ICAgICAgICJDcmVhdGluZyBwdWxsLXJlcXVlc3QgZm9yICdlbmcvcHItYnJhbmNoJy4uLiIsCisg
ICAgICAgICAgICAgICAgIkNyZWF0ZWQgJ1BSIDEgfCBDcmVhdGVkIGNvbW1pdCchIiwKKyAgICAg
ICAgICAgIF0sCisgICAgICAgICkKKworICAgIGRlZiB0ZXN0X2dpdGh1Yl91cGRhdGUoc2VsZik6
CisgICAgICAgIHdpdGggbW9ja3MucmVtb3RlLkdpdEh1YigpIGFzIHJlbW90ZSwgbW9ja3MubG9j
YWwuR2l0KHNlbGYucGF0aCwgcmVtb3RlPSdodHRwczovL3t9Jy5mb3JtYXQocmVtb3RlLnJlbW90
ZSkpIGFzIHJlcG8sIG1vY2tzLmxvY2FsLlN2bigpOgorICAgICAgICAgICAgd2l0aCBPdXRwdXRD
YXB0dXJlKCk6CisgICAgICAgICAgICAgICAgcmVwby5zdGFnZWRbJ2FkZGVkLnR4dCddID0gJ2Fk
ZGVkJworICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMCwgcHJvZ3JhbS5tYWluKAor
ICAgICAgICAgICAgICAgICAgICBhcmdzPSgncHVsbC1yZXF1ZXN0JywgJy1pJywgJ3ByLWJyYW5j
aCcpLAorICAgICAgICAgICAgICAgICAgICBwYXRoPXNlbGYucGF0aCwKKyAgICAgICAgICAgICAg
ICApKQorCisgICAgICAgICAgICB3aXRoIE91dHB1dENhcHR1cmUoKSBhcyBjYXB0dXJlZDoKKyAg
ICAgICAgICAgICAgICByZXBvLnN0YWdlZFsnYWRkZWQudHh0J10gPSAnZGlmZicKKyAgICAgICAg
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDAsIHByb2dyYW0ubWFpbigKKyAgICAgICAgICAgICAg
ICAgICAgYXJncz0oJ3B1bGwtcmVxdWVzdCcsKSwKKyAgICAgICAgICAgICAgICAgICAgcGF0aD1z
ZWxmLnBhdGgsCisgICAgICAgICAgICAgICAgKSkKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KGNhcHR1cmVkLnN0ZGVyci5nZXR2YWx1ZSgpLCAnJykKKyAgICAgICAgbG9nID0gY2FwdHVyZWQu
cm9vdC5sb2cuZ2V0dmFsdWUoKS5zcGxpdGxpbmVzKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCgKKyAgICAgICAgICAgIGxvZ1s6M10gKyBsb2dbNiBpZiBzeXMudmVyc2lvbl9pbmZvID4gKDMs
IDApIGVsc2UgNDpdLCBbCisgICAgICAgICAgICAgICAgIkFtZW5kaW5nIGNvbW1pdC4uLiIsCisg
ICAgICAgICAgICAgICAgJyAgICBGb3VuZCAxIGNvbW1pdC4uLicsCisgICAgICAgICAgICAgICAg
IlB1c2hpbmcgJ2VuZy9wci1icmFuY2gnIHRvICdmb3JrJy4uLiIsCisgICAgICAgICAgICAgICAg
IlVwZGF0aW5nIHB1bGwtcmVxdWVzdCBmb3IgJ2VuZy9wci1icmFuY2gnLi4uIiwKKyAgICAgICAg
ICAgICAgICAiVXBkYXRlZCAnUFIgMSB8IEFtZW5kZWQgY29tbWl0JyEiLAorICAgICAgICAgICAg
XSwKKyAgICAgICAgKQorCisgICAgZGVmIHRlc3Rfc3Rhc2goc2VsZik6CisgICAgICAgIHdpdGgg
T3V0cHV0Q2FwdHVyZSgpIGFzIGNhcHR1cmVkLCBtb2Nrcy5yZW1vdGUuQml0QnVja2V0KCkgYXMg
cmVtb3RlLCBtb2Nrcy5sb2NhbC5HaXQoc2VsZi5wYXRoLCByZW1vdGU9J3NzaDovL2dpdEB7fS97
fS97fS5naXQnLmZvcm1hdCgKKyAgICAgICAgICAgIHJlbW90ZS5ob3N0c1swXSwgcmVtb3RlLnBy
b2plY3Quc3BsaXQoJy8nKVsxXSwgcmVtb3RlLnByb2plY3Quc3BsaXQoJy8nKVszXSwKKyAgICAg
ICAgKSkgYXMgcmVwbywgbW9ja3MubG9jYWwuU3ZuKCk6CisKKyAgICAgICAgICAgIHJlcG8uc3Rh
Z2VkWydhZGRlZC50eHQnXSA9ICdhZGRlZCcKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
MCwgcHJvZ3JhbS5tYWluKAorICAgICAgICAgICAgICAgIGFyZ3M9KCdwdWxsLXJlcXVlc3QnLCAn
LWknLCAncHItYnJhbmNoJyksCisgICAgICAgICAgICAgICAgcGF0aD1zZWxmLnBhdGgsCisgICAg
ICAgICAgICApKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY2FwdHVyZWQuc3RkZXJyLmdl
dHZhbHVlKCksICcnKQorICAgICAgICBsb2cgPSBjYXB0dXJlZC5yb290LmxvZy5nZXR2YWx1ZSgp
LnNwbGl0bGluZXMoKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAorICAgICAgICAgICAgbG9n
Wzo0XSArIGxvZ1s3IGlmIHN5cy52ZXJzaW9uX2luZm8gPiAoMywgMCkgZWxzZSA1Ol0sIFsKKyAg
ICAgICAgICAgICAgICAiQ3JlYXRpbmcgdGhlIGxvY2FsIGRldmVsb3BtZW50IGJyYW5jaCAnZW5n
L3ByLWJyYW5jaCcuLi4iLAorICAgICAgICAgICAgICAgICdDcmVhdGluZyBjb21taXQuLi4nLAor
ICAgICAgICAgICAgICAgICcgICAgRm91bmQgMSBjb21taXQuLi4nLAorICAgICAgICAgICAgICAg
ICJQdXNoaW5nICdlbmcvcHItYnJhbmNoJyB0byAnb3JpZ2luJy4uLiIsCisgICAgICAgICAgICAg
ICAgIkNyZWF0aW5nIHB1bGwtcmVxdWVzdCBmb3IgJ2VuZy9wci1icmFuY2gnLi4uIiwKKyAgICAg
ICAgICAgICAgICAiQ3JlYXRlZCAnUFIgMSB8IENyZWF0ZWQgY29tbWl0JyEiLAorICAgICAgICAg
ICAgXSwKKyAgICAgICAgKQorCisgICAgZGVmIHRlc3Rfc3Rhc2hfdXBkYXRlKHNlbGYpOgorICAg
ICAgICB3aXRoIG1vY2tzLnJlbW90ZS5CaXRCdWNrZXQoKSBhcyByZW1vdGUsIG1vY2tzLmxvY2Fs
LkdpdChzZWxmLnBhdGgsIHJlbW90ZT0nc3NoOi8vZ2l0QHt9L3t9L3t9LmdpdCcuZm9ybWF0KAor
ICAgICAgICAgICAgcmVtb3RlLmhvc3RzWzBdLCByZW1vdGUucHJvamVjdC5zcGxpdCgnLycpWzFd
LCByZW1vdGUucHJvamVjdC5zcGxpdCgnLycpWzNdLAorICAgICAgICApKSBhcyByZXBvLCBtb2Nr
cy5sb2NhbC5Tdm4oKToKKyAgICAgICAgICAgIHdpdGggT3V0cHV0Q2FwdHVyZSgpOgorICAgICAg
ICAgICAgICAgIHJlcG8uc3RhZ2VkWydhZGRlZC50eHQnXSA9ICdhZGRlZCcKKyAgICAgICAgICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKDAsIHByb2dyYW0ubWFpbigKKyAgICAgICAgICAgICAgICAg
ICAgYXJncz0oJ3B1bGwtcmVxdWVzdCcsICctaScsICdwci1icmFuY2gnKSwKKyAgICAgICAgICAg
ICAgICAgICAgcGF0aD1zZWxmLnBhdGgsCisgICAgICAgICAgICAgICAgKSkKKworICAgICAgICAg
ICAgd2l0aCBPdXRwdXRDYXB0dXJlKCkgYXMgY2FwdHVyZWQ6CisgICAgICAgICAgICAgICAgcmVw
by5zdGFnZWRbJ2FkZGVkLnR4dCddID0gJ2RpZmYnCisgICAgICAgICAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbCgwLCBwcm9ncmFtLm1haW4oCisgICAgICAgICAgICAgICAgICAgIGFyZ3M9KCdwdWxs
LXJlcXVlc3QnLCksCisgICAgICAgICAgICAgICAgICAgIHBhdGg9c2VsZi5wYXRoLAorICAgICAg
ICAgICAgICAgICkpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjYXB0dXJlZC5zdGRlcnIu
Z2V0dmFsdWUoKSwgJycpCisgICAgICAgIGxvZyA9IGNhcHR1cmVkLnJvb3QubG9nLmdldHZhbHVl
KCkuc3BsaXRsaW5lcygpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCisgICAgICAgICAgICBs
b2dbOjNdICsgbG9nWzYgaWYgc3lzLnZlcnNpb25faW5mbyA+ICgzLCAwKSBlbHNlIDQ6XSwgWwor
ICAgICAgICAgICAgICAgICJBbWVuZGluZyBjb21taXQuLi4iLAorICAgICAgICAgICAgICAgICcg
ICAgRm91bmQgMSBjb21taXQuLi4nLAorICAgICAgICAgICAgICAgICJQdXNoaW5nICdlbmcvcHIt
YnJhbmNoJyB0byAnb3JpZ2luJy4uLiIsCisgICAgICAgICAgICAgICAgIlVwZGF0aW5nIHB1bGwt
cmVxdWVzdCBmb3IgJ2VuZy9wci1icmFuY2gnLi4uIiwKKyAgICAgICAgICAgICAgICAiVXBkYXRl
ZCAnUFIgMSB8IEFtZW5kZWQgY29tbWl0JyEiLAorICAgICAgICAgICAgXSwKKyAgICAgICAgKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>