<?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>217717</bug_id>
          
          <creation_ts>2020-10-14 10:49:22 -0700</creation_ts>
          <short_desc>[webkitscmpy] Use &apos;which&apos; to find git and svn paths</short_desc>
          <delta_ts>2020-10-23 12:20:18 -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=215862</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>dean_johnson</cc>
    
    <cc>dewei_zhu</cc>
    
    <cc>slewis</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1697780</commentid>
    <comment_count>0</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-10-14 10:49:22 -0700</bug_when>
    <thetext>We should be more flexible about where to find git and svn binaries.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697781</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-10-14 10:49:43 -0700</bug_when>
    <thetext>&lt;rdar://problem/70299192&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697795</commentid>
    <comment_count>2</comment_count>
      <attachid>411352</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-10-14 11:22:08 -0700</bug_when>
    <thetext>Created attachment 411352
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698187</commentid>
    <comment_count>3</comment_count>
      <attachid>411352</attachid>
    <who name="Dean Johnson">dean_johnson</who>
    <bug_when>2020-10-15 11:09:11 -0700</bug_when>
    <thetext>Comment on attachment 411352
Patch

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

LGTM other than comment about default return value. Unofficial r+.

&gt; Tools/Scripts/libraries/webkitscmpy/webkitscmpy/local/git.py:37
&gt; +    @decorators.Memoize()

Nit: `executable` seems more like an attribute (@property) than a function to me, but it doesn&apos;t need to change if you like this more.

&gt; Tools/Scripts/libraries/webkitscmpy/webkitscmpy/local/git.py:44
&gt; +            return which.stdout.rstrip()

Can we call os.path.realpath on this return value? `which` can return a symlink, and it&apos;s probably better for us to work with real paths where possible.

&gt; Tools/Scripts/libraries/webkitscmpy/webkitscmpy/local/git.py:45
&gt; +        return &apos;/usr/bin/git&apos;

If we can&apos;t find an executable, it seems like we should raise an exception to make it clear to the user that a git binary can&apos;t be found.

&gt; Tools/Scripts/libraries/webkitscmpy/webkitscmpy/local/svn.py:52
&gt; +        return &apos;/usr/bin/svn&apos;

Ditto to all of my comments in Git.

I&apos;m not sure if it&apos;s desirable, but you could abstract &apos;_executable&apos; to store &apos;git&apos; and &apos;svn&apos; on their respective classes, then join those against base search paths ([&apos;/usr/bin&apos;, &apos;/usr/local/bin&apos;]) so this `executable` function/property can live on the base Scm class.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698641</commentid>
    <comment_count>4</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-10-16 09:31:58 -0700</bug_when>
    <thetext>(In reply to Dean Johnson from comment #3)
&gt; Comment on attachment 411352 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=411352&amp;action=review
&gt; 
&gt; LGTM other than comment about default return value. Unofficial r+.
&gt; 
&gt; &gt; Tools/Scripts/libraries/webkitscmpy/webkitscmpy/local/git.py:37
&gt; &gt; +    @decorators.Memoize()
&gt; 
&gt; Nit: `executable` seems more like an attribute (@property) than a function
&gt; to me, but it doesn&apos;t need to change if you like this more.

Oh, I agree, but you can&apos;t make a classmethod a property. To get that to work, we would need to use a metaclass, I thought that was more confusing

&gt; 
&gt; &gt; Tools/Scripts/libraries/webkitscmpy/webkitscmpy/local/git.py:44
&gt; &gt; +            return which.stdout.rstrip()
&gt; 
&gt; Can we call os.path.realpath on this return value? `which` can return a
&gt; symlink, and it&apos;s probably better for us to work with real paths where
&gt; possible.

Good idea

&gt; 
&gt; &gt; Tools/Scripts/libraries/webkitscmpy/webkitscmpy/local/git.py:45
&gt; &gt; +        return &apos;/usr/bin/git&apos;
&gt; 
&gt; If we can&apos;t find an executable, it seems like we should raise an exception
&gt; to make it clear to the user that a git binary can&apos;t be found.
&gt; 
&gt; &gt; Tools/Scripts/libraries/webkitscmpy/webkitscmpy/local/svn.py:52
&gt; &gt; +        return &apos;/usr/bin/svn&apos;
&gt; 
&gt; Ditto to all of my comments in Git.
&gt; 
&gt; I&apos;m not sure if it&apos;s desirable, but you could abstract &apos;_executable&apos; to
&gt; store &apos;git&apos; and &apos;svn&apos; on their respective classes, then join those against
&gt; base search paths ([&apos;/usr/bin&apos;, &apos;/usr/local/bin&apos;]) so this `executable`
&gt; function/property can live on the base Scm class.

Didn&apos;t think of this!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698838</commentid>
    <comment_count>5</comment_count>
      <attachid>411636</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-10-16 17:43:28 -0700</bug_when>
    <thetext>Created attachment 411636
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1701052</commentid>
    <comment_count>6</comment_count>
      <attachid>411636</attachid>
    <who name="Dean Johnson">dean_johnson</who>
    <bug_when>2020-10-23 10:16:39 -0700</bug_when>
    <thetext>Comment on attachment 411636
Patch

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

Patch LGTM; unofficial r+.

&gt; Tools/Scripts/libraries/webkitscmpy/webkitscmpy/local/scm.py:46
&gt; +        for candidate in [&apos;/usr/bin/{}&apos;.format(program), &apos;/usr/local/bin/{}&apos;.format(program)]:

Nit: It&apos;d probably be slightly cleaner to join &apos;program&apos; to a base path in the if statement, rather than doing it twice here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1701057</commentid>
    <comment_count>7</comment_count>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2020-10-23 10:32:15 -0700</bug_when>
    <thetext>rs=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1701069</commentid>
    <comment_count>8</comment_count>
      <attachid>412198</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-10-23 10:59:48 -0700</bug_when>
    <thetext>Created attachment 412198
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1701074</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-10-23 11:05:37 -0700</bug_when>
    <thetext>ChangeLog entry in Tools/ChangeLog contains OOPS!.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1701092</commentid>
    <comment_count>10</comment_count>
      <attachid>412202</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-10-23 11:37:29 -0700</bug_when>
    <thetext>Created attachment 412202
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1701111</commentid>
    <comment_count>11</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-10-23 12:20:17 -0700</bug_when>
    <thetext>Committed r268936: &lt;https://trac.webkit.org/changeset/268936&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 412202.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411352</attachid>
            <date>2020-10-14 11:22:08 -0700</date>
            <delta_ts>2020-10-16 17:43:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217717-20201014112207.patch</filename>
            <type>text/plain</type>
            <size>26123</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI2ODQ3NikKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDIzIEBACisyMDIwLTEwLTE0ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICBbd2Via2l0c2NtcHldIFVzZSAnd2hpY2gnIHRvIGZpbmQgZ2l0IGFuZCBz
dm4gcGF0aHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIxNzcxNworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzAyOTkxOTI+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTY3JpcHRzL2xpYnJhcmllcy93
ZWJraXRzY21weS93ZWJraXRzY21weS9fX2luaXRfXy5weTogQnVtcCB2ZXJzaW9uLgorICAgICAg
ICAqIFNjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L2xvY2FsL2dpdC5w
eToKKyAgICAgICAgKEdpdCk6CisgICAgICAgIChHaXQuZXhlY3V0YWJsZSk6IEdlbmVyYXRlIGdp
dCBwYXRoIGZyb20gJ3doaWNoJyBjYWxsLgorICAgICAgICAqIFNjcmlwdHMvbGlicmFyaWVzL3dl
YmtpdHNjbXB5L3dlYmtpdHNjbXB5L2xvY2FsL3N2bi5weToKKyAgICAgICAgKFN2bik6CisgICAg
ICAgIChTdm4uZXhlY3V0YWJsZSk6IEdlbmVyYXRlIHN2biBwYXRoIGZyb20gJ3doaWNoJyBjYWxs
LgorICAgICAgICAqIFNjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L21v
Y2tzL2xvY2FsL2dpdC5weToKKyAgICAgICAgKEdpdCk6CisgICAgICAgICogU2NyaXB0cy9saWJy
YXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvbW9ja3MvbG9jYWwvc3ZuLnB5OgorICAgICAg
ICAoU3ZuLl9faW5pdF9fKToKKwogMjAyMC0xMC0xNCAgS2VpdGggUm9sbGluICA8a3JvbGxpbkBh
cHBsZS5jb20+CiAKICAgICAgICAgJ21ha2UgZGVidWcnIGZhaWxzIG9uIHRoZSByZXBvc2l0b3J5
IHJvb3QgaWYgY2NhY2hlIGlzIGluc3RhbGxlZCBvbiBtYWMgYWZ0ZXIgcjI2MjE0NwpJbmRleDog
VG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvX19pbml0X18u
cHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Vi
a2l0c2NtcHkvX19pbml0X18ucHkJKHJldmlzaW9uIDI2ODQ3MikKKysrIFRvb2xzL1NjcmlwdHMv
bGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L19faW5pdF9fLnB5CSh3b3JraW5nIGNv
cHkpCkBAIC00Niw3ICs0Niw3IEBAIGV4Y2VwdCBJbXBvcnRFcnJvcjoKICAgICAgICAgIlBsZWFz
ZSBpbnN0YWxsIHdlYmtpdGNvcmVweSB3aXRoIGBwaXAgaW5zdGFsbCB3ZWJraXRjb3JlcHkgLS1l
eHRyYS1pbmRleC11cmwgPHBhY2thZ2UgaW5kZXggVVJMPmAiCiAgICAgKQogCi12ZXJzaW9uID0g
VmVyc2lvbigwLCAyLCAwKQordmVyc2lvbiA9IFZlcnNpb24oMCwgMiwgMSkKIAogQXV0b0luc3Rh
bGwucmVnaXN0ZXIoUGFja2FnZSgnZGF0ZXV0aWwnLCBWZXJzaW9uKDIsIDgsIDEpLCBweXBpX25h
bWU9J3B5dGhvbi1kYXRldXRpbCcpKQogCkluZGV4OiBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93
ZWJraXRzY21weS93ZWJraXRzY21weS9sb2NhbC9naXQucHkKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMv
U2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvbG9jYWwvZ2l0LnB5CShy
ZXZpc2lvbiAyNjg0NzIpCisrKyBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93
ZWJraXRzY21weS9sb2NhbC9naXQucHkJKHdvcmtpbmcgY29weSkKQEAgLTIwLDcgKzIwLDcgQEAK
ICMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAotCitpbXBvcnQgb3MKIGlt
cG9ydCByZQogaW1wb3J0IHNpeAogCkBAIC0zMCwxMyArMzAsMjMgQEAgZnJvbSB3ZWJraXRzY21w
eSBpbXBvcnQgQ29tbWl0LCBDb250cmlidQogCiAKIGNsYXNzIEdpdChTY20pOgotICAgIGV4ZWN1
dGFibGUgPSAnL3Vzci9iaW4vZ2l0JwogICAgIEdJVF9DT01NSVQgPSByZS5jb21waWxlKHInY29t
bWl0ICg/UDxoYXNoPlswLTlhLWZdKyknKQogICAgIEdJVF9TVk5fUkVWSVNJT04gPSByZS5jb21w
aWxlKHInZ2l0LXN2bi1pZDogXFMrOlwvXC8uK0AoP1A8cmV2aXNpb24+XGQrKSAuKy0uKy0uKy0u
KycpCiAKICAgICBAY2xhc3NtZXRob2QKKyAgICBAZGVjb3JhdG9ycy5NZW1vaXplKCkKKyAgICBk
ZWYgZXhlY3V0YWJsZShjbHMpOgorICAgICAgICBmb3IgY2FuZGlkYXRlIGluIFsnL3Vzci9iaW4v
Z2l0JywgJy91c3IvbG9jYWwvYmluL2dpdCddOgorICAgICAgICAgICAgaWYgb3MucGF0aC5leGlz
dHMoY2FuZGlkYXRlKToKKyAgICAgICAgICAgICAgICByZXR1cm4gY2FuZGlkYXRlCisgICAgICAg
IHdoaWNoID0gcnVuKCcvdXNyL2Jpbi93aGljaCcsICdnaXQnLCBjYXB0dXJlX291dHB1dD1UcnVl
KQorICAgICAgICBpZiBub3Qgd2hpY2gucmV0dXJuY29kZToKKyAgICAgICAgICAgIHJldHVybiB3
aGljaC5zdGRvdXQucnN0cmlwKCkKKyAgICAgICAgcmV0dXJuICcvdXNyL2Jpbi9naXQnCisKKyAg
ICBAY2xhc3NtZXRob2QKICAgICBkZWYgaXNfY2hlY2tvdXQoY2xzLCBwYXRoKToKLSAgICAgICAg
cmV0dXJuIHJ1bihbY2xzLmV4ZWN1dGFibGUsICdyZXYtcGFyc2UnLCAnLS1zaG93LXRvcGxldmVs
J10sIGN3ZD1wYXRoLCBjYXB0dXJlX291dHB1dD1UcnVlKS5yZXR1cm5jb2RlID09IDAKKyAgICAg
ICAgcmV0dXJuIHJ1bihbY2xzLmV4ZWN1dGFibGUoKSwgJ3Jldi1wYXJzZScsICctLXNob3ctdG9w
bGV2ZWwnXSwgY3dkPXBhdGgsIGNhcHR1cmVfb3V0cHV0PVRydWUpLnJldHVybmNvZGUgPT0gMAog
CiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBhdGgsIGRldl9icmFuY2hlcz1Ob25lLCBwcm9kX2Jy
YW5jaGVzPU5vbmUpOgogICAgICAgICBzdXBlcihHaXQsIHNlbGYpLl9faW5pdF9fKHBhdGgsIGRl
dl9icmFuY2hlcz1kZXZfYnJhbmNoZXMsIHByb2RfYnJhbmNoZXM9cHJvZF9icmFuY2hlcykKQEAg
LTQ4LDcgKzU4LDcgQEAgY2xhc3MgR2l0KFNjbSk6CiAgICAgICAgIGlmIG5vdCBzZWxmLmlzX3N2
bjoKICAgICAgICAgICAgIHJhaXNlIHNlbGYuRXhjZXB0aW9uKCdDYW5ub3QgcnVuIFNWTiBpbmZv
IG9uIGEgZ2l0IGNoZWNrb3V0IHdoaWNoIGlzIG5vdCBnaXQtc3ZuJykKIAotICAgICAgICBpbmZv
X3Jlc3VsdCA9IHJ1bihbc2VsZi5leGVjdXRhYmxlLCAnc3ZuJywgJ2luZm8nXSwgY3dkPXNlbGYu
cGF0aCwgY2FwdHVyZV9vdXRwdXQ9VHJ1ZSwgZW5jb2Rpbmc9J3V0Zi04JykKKyAgICAgICAgaW5m
b19yZXN1bHQgPSBydW4oW3NlbGYuZXhlY3V0YWJsZSgpLCAnc3ZuJywgJ2luZm8nXSwgY3dkPXNl
bGYucGF0aCwgY2FwdHVyZV9vdXRwdXQ9VHJ1ZSwgZW5jb2Rpbmc9J3V0Zi04JykKICAgICAgICAg
aWYgaW5mb19yZXN1bHQucmV0dXJuY29kZToKICAgICAgICAgICAgIHJldHVybiB7fQogCkBAIC02
Myw3ICs3Myw3IEBAIGNsYXNzIEdpdChTY20pOgogICAgIGRlZiBpc19zdm4oc2VsZik6CiAgICAg
ICAgIHRyeToKICAgICAgICAgICAgIHJldHVybiBydW4oCi0gICAgICAgICAgICAgICAgW3NlbGYu
ZXhlY3V0YWJsZSwgJ3N2bicsICdmaW5kLXJldicsICdyMSddLAorICAgICAgICAgICAgICAgIFtz
ZWxmLmV4ZWN1dGFibGUoKSwgJ3N2bicsICdmaW5kLXJldicsICdyMSddLAogICAgICAgICAgICAg
ICAgIGN3ZD1zZWxmLnJvb3RfcGF0aCwKICAgICAgICAgICAgICAgICBjYXB0dXJlX291dHB1dD1U
cnVlLAogICAgICAgICAgICAgICAgIGVuY29kaW5nPSd1dGYtOCcsCkBAIC03OSwxNCArODksMTQg
QEAgY2xhc3MgR2l0KFNjbSk6CiAgICAgQHByb3BlcnR5CiAgICAgQGRlY29yYXRvcnMuTWVtb2l6
ZSgpCiAgICAgZGVmIHJvb3RfcGF0aChzZWxmKToKLSAgICAgICAgcmVzdWx0ID0gcnVuKFtzZWxm
LmV4ZWN1dGFibGUsICdyZXYtcGFyc2UnLCAnLS1zaG93LXRvcGxldmVsJ10sIGN3ZD1zZWxmLnBh
dGgsIGNhcHR1cmVfb3V0cHV0PVRydWUsIGVuY29kaW5nPSd1dGYtOCcpCisgICAgICAgIHJlc3Vs
dCA9IHJ1bihbc2VsZi5leGVjdXRhYmxlKCksICdyZXYtcGFyc2UnLCAnLS1zaG93LXRvcGxldmVs
J10sIGN3ZD1zZWxmLnBhdGgsIGNhcHR1cmVfb3V0cHV0PVRydWUsIGVuY29kaW5nPSd1dGYtOCcp
CiAgICAgICAgIGlmIHJlc3VsdC5yZXR1cm5jb2RlOgogICAgICAgICAgICAgcmV0dXJuIE5vbmUK
ICAgICAgICAgcmV0dXJuIHJlc3VsdC5zdGRvdXQucnN0cmlwKCkKIAogICAgIEBwcm9wZXJ0eQog
ICAgIGRlZiBkZWZhdWx0X2JyYW5jaChzZWxmKToKLSAgICAgICAgcmVzdWx0ID0gcnVuKFtzZWxm
LmV4ZWN1dGFibGUsICdyZXYtcGFyc2UnLCAnLS1hYmJyZXYtcmVmJywgJ29yaWdpbi9IRUFEJ10s
IGN3ZD1zZWxmLnBhdGgsIGNhcHR1cmVfb3V0cHV0PVRydWUsIGVuY29kaW5nPSd1dGYtOCcpCisg
ICAgICAgIHJlc3VsdCA9IHJ1bihbc2VsZi5leGVjdXRhYmxlKCksICdyZXYtcGFyc2UnLCAnLS1h
YmJyZXYtcmVmJywgJ29yaWdpbi9IRUFEJ10sIGN3ZD1zZWxmLnBhdGgsIGNhcHR1cmVfb3V0cHV0
PVRydWUsIGVuY29kaW5nPSd1dGYtOCcpCiAgICAgICAgIGlmIHJlc3VsdC5yZXR1cm5jb2RlOgog
ICAgICAgICAgICAgY2FuZGlkYXRlcyA9IHNlbGYuYnJhbmNoZXMKICAgICAgICAgICAgIGlmICdt
YXN0ZXInIGluIGNhbmRpZGF0ZXM6CkBAIC05OCwxMyArMTA4LDEzIEBAIGNsYXNzIEdpdChTY20p
OgogCiAgICAgQHByb3BlcnR5CiAgICAgZGVmIGJyYW5jaChzZWxmKToKLSAgICAgICAgc3RhdHVz
ID0gcnVuKFtzZWxmLmV4ZWN1dGFibGUsICdzdGF0dXMnXSwgY3dkPXNlbGYucm9vdF9wYXRoLCBj
YXB0dXJlX291dHB1dD1UcnVlLCBlbmNvZGluZz0ndXRmLTgnKQorICAgICAgICBzdGF0dXMgPSBy
dW4oW3NlbGYuZXhlY3V0YWJsZSgpLCAnc3RhdHVzJ10sIGN3ZD1zZWxmLnJvb3RfcGF0aCwgY2Fw
dHVyZV9vdXRwdXQ9VHJ1ZSwgZW5jb2Rpbmc9J3V0Zi04JykKICAgICAgICAgaWYgc3RhdHVzLnJl
dHVybmNvZGU6CiAgICAgICAgICAgICByYWlzZSBzZWxmLkV4Y2VwdGlvbignRmFpbGVkIHRvIHJ1
biBgZ2l0IHN0YXR1c2AgZm9yIHt9Jy5mb3JtYXQoc2VsZi5yb290X3BhdGgpKQogICAgICAgICBp
ZiBzdGF0dXMuc3Rkb3V0LnNwbGl0bGluZXMoKVswXS5zdGFydHN3aXRoKCdIRUFEIGRldGFjaGVk
IGF0Jyk6CiAgICAgICAgICAgICByZXR1cm4gTm9uZQogCi0gICAgICAgIHJlc3VsdCA9IHJ1bihb
c2VsZi5leGVjdXRhYmxlLCAncmV2LXBhcnNlJywgJy0tYWJicmV2LXJlZicsICdIRUFEJ10sIGN3
ZD1zZWxmLnJvb3RfcGF0aCwgY2FwdHVyZV9vdXRwdXQ9VHJ1ZSwgZW5jb2Rpbmc9J3V0Zi04JykK
KyAgICAgICAgcmVzdWx0ID0gcnVuKFtzZWxmLmV4ZWN1dGFibGUoKSwgJ3Jldi1wYXJzZScsICct
LWFiYnJldi1yZWYnLCAnSEVBRCddLCBjd2Q9c2VsZi5yb290X3BhdGgsIGNhcHR1cmVfb3V0cHV0
PVRydWUsIGVuY29kaW5nPSd1dGYtOCcpCiAgICAgICAgIGlmIHJlc3VsdC5yZXR1cm5jb2RlOgog
ICAgICAgICAgICAgcmFpc2Ugc2VsZi5FeGNlcHRpb24oJ0ZhaWxlZCB0byByZXRyaWV2ZSBicmFu
Y2ggZm9yIHt9Jy5mb3JtYXQoc2VsZi5yb290X3BhdGgpKQogICAgICAgICByZXR1cm4gcmVzdWx0
LnN0ZG91dC5yc3RyaXAoKQpAQCAtMTE1LDIwICsxMjUsMjAgQEAgY2xhc3MgR2l0KFNjbSk6CiAK
ICAgICBAcHJvcGVydHkKICAgICBkZWYgdGFncyhzZWxmKToKLSAgICAgICAgdGFncyA9IHJ1bihb
c2VsZi5leGVjdXRhYmxlLCAndGFnJ10sIGN3ZD1zZWxmLnJvb3RfcGF0aCwgY2FwdHVyZV9vdXRw
dXQ9VHJ1ZSwgZW5jb2Rpbmc9J3V0Zi04JykKKyAgICAgICAgdGFncyA9IHJ1bihbc2VsZi5leGVj
dXRhYmxlKCksICd0YWcnXSwgY3dkPXNlbGYucm9vdF9wYXRoLCBjYXB0dXJlX291dHB1dD1UcnVl
LCBlbmNvZGluZz0ndXRmLTgnKQogICAgICAgICBpZiB0YWdzLnJldHVybmNvZGU6CiAgICAgICAg
ICAgICByYWlzZSBzZWxmLkV4Y2VwdGlvbignRmFpbGVkIHRvIHJldHJpZXZlIHRhZyBsaXN0IGZv
ciB7fScuZm9ybWF0KHNlbGYucm9vdF9wYXRoKSkKICAgICAgICAgcmV0dXJuIHRhZ3Muc3Rkb3V0
LnNwbGl0bGluZXMoKQogCiAgICAgZGVmIHJlbW90ZShzZWxmLCBuYW1lPU5vbmUpOgotICAgICAg
ICByZXN1bHQgPSBydW4oW3NlbGYuZXhlY3V0YWJsZSwgJ3JlbW90ZScsICdnZXQtdXJsJywgbmFt
ZSBvciAnb3JpZ2luJ10sIGN3ZD1zZWxmLnJvb3RfcGF0aCwgY2FwdHVyZV9vdXRwdXQ9VHJ1ZSwg
ZW5jb2Rpbmc9J3V0Zi04JykKKyAgICAgICAgcmVzdWx0ID0gcnVuKFtzZWxmLmV4ZWN1dGFibGUo
KSwgJ3JlbW90ZScsICdnZXQtdXJsJywgbmFtZSBvciAnb3JpZ2luJ10sIGN3ZD1zZWxmLnJvb3Rf
cGF0aCwgY2FwdHVyZV9vdXRwdXQ9VHJ1ZSwgZW5jb2Rpbmc9J3V0Zi04JykKICAgICAgICAgaWYg
cmVzdWx0LnJldHVybmNvZGU6CiAgICAgICAgICAgICByYWlzZSBzZWxmLkV4Y2VwdGlvbignRmFp
bGVkIHRvIHJldHJpZXZlIHJlbW90ZSBmb3Ige30nLmZvcm1hdChzZWxmLnJvb3RfcGF0aCkpCiAg
ICAgICAgIHJldHVybiByZXN1bHQuc3Rkb3V0LnJzdHJpcCgpCiAKICAgICBkZWYgX2NvbW1pdF9j
b3VudChzZWxmLCBuYXRpdmVfcGFyYW1ldGVyKToKICAgICAgICAgcmV2aXNpb25fY291bnQgPSBy
dW4oCi0gICAgICAgICAgICBbc2VsZi5leGVjdXRhYmxlLCAncmV2LWxpc3QnLCAnLS1jb3VudCcs
ICctLW5vLW1lcmdlcycsIG5hdGl2ZV9wYXJhbWV0ZXJdLAorICAgICAgICAgICAgW3NlbGYuZXhl
Y3V0YWJsZSgpLCAncmV2LWxpc3QnLCAnLS1jb3VudCcsICctLW5vLW1lcmdlcycsIG5hdGl2ZV9w
YXJhbWV0ZXJdLAogICAgICAgICAgICAgY3dkPXNlbGYucm9vdF9wYXRoLCBjYXB0dXJlX291dHB1
dD1UcnVlLCBlbmNvZGluZz0ndXRmLTgnLAogICAgICAgICApCiAgICAgICAgIGlmIHJldmlzaW9u
X2NvdW50LnJldHVybmNvZGU6CkBAIC0xMzcsNyArMTQ3LDcgQEAgY2xhc3MgR2l0KFNjbSk6CiAK
ICAgICBkZWYgX2JyYW5jaGVzX2ZvcihzZWxmLCBoYXNoPU5vbmUpOgogICAgICAgICBicmFuY2gg
PSBydW4oCi0gICAgICAgICAgICBbc2VsZi5leGVjdXRhYmxlLCAnYnJhbmNoJywgJy1hJ10gKyAo
WyctLWNvbnRhaW5zJywgaGFzaF0gaWYgaGFzaCBlbHNlIFtdKSwKKyAgICAgICAgICAgIFtzZWxm
LmV4ZWN1dGFibGUoKSwgJ2JyYW5jaCcsICctYSddICsgKFsnLS1jb250YWlucycsIGhhc2hdIGlm
IGhhc2ggZWxzZSBbXSksCiAgICAgICAgICAgICBjd2Q9c2VsZi5yb290X3BhdGgsCiAgICAgICAg
ICAgICBjYXB0dXJlX291dHB1dD1UcnVlLAogICAgICAgICAgICAgZW5jb2Rpbmc9J3V0Zi04JywK
QEAgLTE1Myw3ICsxNjMsNyBAQCBjbGFzcyBHaXQoU2NtKToKICAgICAgICAgZWxpZiByZXZpc2lv
bjoKICAgICAgICAgICAgIHJldmlzaW9uID0gQ29tbWl0Ll9wYXJzZV9yZXZpc2lvbihyZXZpc2lv
biwgZG9fYXNzZXJ0PVRydWUpCiAgICAgICAgICAgICByZXZpc2lvbl9sb2cgPSBydW4oCi0gICAg
ICAgICAgICAgICAgW3NlbGYuZXhlY3V0YWJsZSwgJ3N2bicsICdmaW5kLXJldicsICdye30nLmZv
cm1hdChyZXZpc2lvbildLAorICAgICAgICAgICAgICAgIFtzZWxmLmV4ZWN1dGFibGUoKSwgJ3N2
bicsICdmaW5kLXJldicsICdye30nLmZvcm1hdChyZXZpc2lvbildLAogICAgICAgICAgICAgICAg
IGN3ZD1zZWxmLnJvb3RfcGF0aCwgY2FwdHVyZV9vdXRwdXQ9VHJ1ZSwgZW5jb2Rpbmc9J3V0Zi04
JywKICAgICAgICAgICAgICAgICB0aW1lb3V0PTMsCiAgICAgICAgICAgICApCkBAIC0xOTUsNyAr
MjA1LDcgQEAgY2xhc3MgR2l0KFNjbSk6CiAgICAgICAgICAgICBpZiBpZGVudGlmaWVyID4gYmFz
ZV9jb3VudDoKICAgICAgICAgICAgICAgICByYWlzZSBzZWxmLkV4Y2VwdGlvbignSWRlbnRpZmll
ciB7fSBjYW5ub3QgYmUgZm91bmQgb24gdGhlIHNwZWNpZmllZCBicmFuY2ggaW4gdGhlIGN1cnJl
bnQgY2hlY2tvdXQnLmZvcm1hdChpZGVudGlmaWVyKSkKICAgICAgICAgICAgIGxvZyA9IHJ1bigK
LSAgICAgICAgICAgICAgICBbc2VsZi5leGVjdXRhYmxlLCAnbG9nJywgJ3t9fnt9Jy5mb3JtYXQo
YnJhbmNoIG9yICdIRUFEJywgYmFzZV9jb3VudCAtIGlkZW50aWZpZXIpLCAnLTEnXSwKKyAgICAg
ICAgICAgICAgICBbc2VsZi5leGVjdXRhYmxlKCksICdsb2cnLCAne31+e30nLmZvcm1hdChicmFu
Y2ggb3IgJ0hFQUQnLCBiYXNlX2NvdW50IC0gaWRlbnRpZmllciksICctMSddLAogICAgICAgICAg
ICAgICAgIGN3ZD1zZWxmLnJvb3RfcGF0aCwKICAgICAgICAgICAgICAgICBjYXB0dXJlX291dHB1
dD1UcnVlLAogICAgICAgICAgICAgICAgIGVuY29kaW5nPSd1dGYtOCcsCkBAIC0yMTIsMTMgKzIy
MiwxMyBAQCBjbGFzcyBHaXQoU2NtKToKICAgICAgICAgZWxpZiBicmFuY2g6CiAgICAgICAgICAg
ICBpZiBoYXNoOgogICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ0Nhbm5vdCBkZWZp
bmUgYm90aCBicmFuY2ggYW5kIGhhc2gnKQotICAgICAgICAgICAgbG9nID0gcnVuKFtzZWxmLmV4
ZWN1dGFibGUsICdsb2cnLCBicmFuY2gsICctMSddLCBjd2Q9c2VsZi5yb290X3BhdGgsIGNhcHR1
cmVfb3V0cHV0PVRydWUsIGVuY29kaW5nPSd1dGYtOCcpCisgICAgICAgICAgICBsb2cgPSBydW4o
W3NlbGYuZXhlY3V0YWJsZSgpLCAnbG9nJywgYnJhbmNoLCAnLTEnXSwgY3dkPXNlbGYucm9vdF9w
YXRoLCBjYXB0dXJlX291dHB1dD1UcnVlLCBlbmNvZGluZz0ndXRmLTgnKQogICAgICAgICAgICAg
aWYgbG9nLnJldHVybmNvZGU6CiAgICAgICAgICAgICAgICAgcmFpc2Ugc2VsZi5FeGNlcHRpb24o
IkZhaWxlZCB0byByZXRyaWV2ZSBjb21taXQgaW5mb3JtYXRpb24gZm9yICd7fSciLmZvcm1hdChi
cmFuY2gpKQogCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICBoYXNoID0gQ29tbWl0Ll9wYXJz
ZV9oYXNoKGhhc2gsIGRvX2Fzc2VydD1UcnVlKQotICAgICAgICAgICAgbG9nID0gcnVuKFtzZWxm
LmV4ZWN1dGFibGUsICdsb2cnLCBoYXNoIG9yICdIRUFEJywgJy0xJ10sIGN3ZD1zZWxmLnJvb3Rf
cGF0aCwgY2FwdHVyZV9vdXRwdXQ9VHJ1ZSwgZW5jb2Rpbmc9J3V0Zi04JykKKyAgICAgICAgICAg
IGxvZyA9IHJ1bihbc2VsZi5leGVjdXRhYmxlKCksICdsb2cnLCBoYXNoIG9yICdIRUFEJywgJy0x
J10sIGN3ZD1zZWxmLnJvb3RfcGF0aCwgY2FwdHVyZV9vdXRwdXQ9VHJ1ZSwgZW5jb2Rpbmc9J3V0
Zi04JykKICAgICAgICAgICAgIGlmIGxvZy5yZXR1cm5jb2RlOgogICAgICAgICAgICAgICAgIHJh
aXNlIHNlbGYuRXhjZXB0aW9uKCJGYWlsZWQgdG8gcmV0cmlldmUgY29tbWl0IGluZm9ybWF0aW9u
IGZvciAne30nIi5mb3JtYXQoaGFzaCBvciAnSEVBRCcpKQogCkBAIC0yNDAsNyArMjUwLDcgQEAg
Y2xhc3MgR2l0KFNjbSk6CiAgICAgICAgICAgICByZXZpc2lvbiA9IGludChtYXRjaC5ncm91cCgn
cmV2aXNpb24nKSkgaWYgbWF0Y2ggZWxzZSBOb25lCiAKICAgICAgICAgY29tbWl0X3RpbWUgPSBy
dW4oCi0gICAgICAgICAgICBbc2VsZi5leGVjdXRhYmxlLCAnc2hvdycsICctcycsICctLWZvcm1h
dD0lY3QnLCBoYXNoXSwKKyAgICAgICAgICAgIFtzZWxmLmV4ZWN1dGFibGUoKSwgJ3Nob3cnLCAn
LXMnLCAnLS1mb3JtYXQ9JWN0JywgaGFzaF0sCiAgICAgICAgICAgICBjd2Q9c2VsZi5yb290X3Bh
dGgsIGNhcHR1cmVfb3V0cHV0PVRydWUsIGVuY29kaW5nPSd1dGYtOCcsCiAgICAgICAgICkKICAg
ICAgICAgaWYgY29tbWl0X3RpbWUucmV0dXJuY29kZToKQEAgLTI3MSw3ICsyODEsNyBAQCBjbGFz
cyBHaXQoU2NtKToKICAgICAgICAgICAgICkKIAogICAgICAgICBvdXRwdXQgPSBydW4oCi0gICAg
ICAgICAgICBbc2VsZi5leGVjdXRhYmxlLCAncmV2LXBhcnNlJywgYXJndW1lbnRdLAorICAgICAg
ICAgICAgW3NlbGYuZXhlY3V0YWJsZSgpLCAncmV2LXBhcnNlJywgYXJndW1lbnRdLAogICAgICAg
ICAgICAgY3dkPXNlbGYucm9vdF9wYXRoLCBjYXB0dXJlX291dHB1dD1UcnVlLCBlbmNvZGluZz0n
dXRmLTgnLAogICAgICAgICApCiAgICAgICAgIGlmIG91dHB1dC5yZXR1cm5jb2RlOgpJbmRleDog
VG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvbG9jYWwvc3Zu
LnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dl
YmtpdHNjbXB5L2xvY2FsL3N2bi5weQkocmV2aXNpb24gMjY4NDcyKQorKysgVG9vbHMvU2NyaXB0
cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvbG9jYWwvc3ZuLnB5CSh3b3JraW5n
IGNvcHkpCkBAIC0zNywxMyArMzcsMjMgQEAgZnJvbSB3ZWJraXRzY21weSBpbXBvcnQgQ29tbWl0
LCBDb250cmlidQogCiAKIGNsYXNzIFN2bihTY20pOgotICAgIGV4ZWN1dGFibGUgPSAnL3Vzci9i
aW4vc3ZuJyBpZiBvcy5wYXRoLmV4aXN0cygnL3Vzci9iaW4vc3ZuJykgZWxzZSAnL3Vzci9sb2Nh
bC9iaW4vc3ZuJwogICAgIExPR19SRSA9IHJlLmNvbXBpbGUocidyKD9QPHJldmlzaW9uPlxkKykg
XHwgKD9QPGVtYWlsPi4qKSBcfCAoP1A8ZGF0ZT4uKiknKQogICAgIENBQ0hFX1ZFUlNJT04gPSBW
ZXJzaW9uKDEpCiAKICAgICBAY2xhc3NtZXRob2QKKyAgICBAZGVjb3JhdG9ycy5NZW1vaXplKCkK
KyAgICBkZWYgZXhlY3V0YWJsZShjbHMpOgorICAgICAgICBmb3IgY2FuZGlkYXRlIGluIFsnL3Vz
ci9iaW4vc3ZuJywgJy91c3IvbG9jYWwvYmluL3N2biddOgorICAgICAgICAgICAgaWYgb3MucGF0
aC5leGlzdHMoY2FuZGlkYXRlKToKKyAgICAgICAgICAgICAgICByZXR1cm4gY2FuZGlkYXRlCisg
ICAgICAgIHdoaWNoID0gcnVuKCcvdXNyL2Jpbi93aGljaCcsICdzdm4nLCBjYXB0dXJlX291dHB1
dD1UcnVlKQorICAgICAgICBpZiBub3Qgd2hpY2gucmV0dXJuY29kZToKKyAgICAgICAgICAgIHJl
dHVybiB3aGljaC5zdGRvdXQucnN0cmlwKCkKKyAgICAgICAgcmV0dXJuICcvdXNyL2Jpbi9zdm4n
CisKKyAgICBAY2xhc3NtZXRob2QKICAgICBkZWYgaXNfY2hlY2tvdXQoY2xzLCBwYXRoKToKLSAg
ICAgICAgcmV0dXJuIHJ1bihbY2xzLmV4ZWN1dGFibGUsICdpbmZvJ10sIGN3ZD1wYXRoLCBjYXB0
dXJlX291dHB1dD1UcnVlKS5yZXR1cm5jb2RlID09IDAKKyAgICAgICAgcmV0dXJuIHJ1bihbY2xz
LmV4ZWN1dGFibGUoKSwgJ2luZm8nXSwgY3dkPXBhdGgsIGNhcHR1cmVfb3V0cHV0PVRydWUpLnJl
dHVybmNvZGUgPT0gMAogCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBhdGgsIGRldl9icmFuY2hl
cz1Ob25lLCBwcm9kX2JyYW5jaGVzPU5vbmUpOgogICAgICAgICBzdXBlcihTdm4sIHNlbGYpLl9f
aW5pdF9fKHBhdGgsIGRldl9icmFuY2hlcz1kZXZfYnJhbmNoZXMsIHByb2RfYnJhbmNoZXM9cHJv
ZF9icmFuY2hlcykKQEAgLTcwLDcgKzgwLDcgQEAgY2xhc3MgU3ZuKFNjbSk6CiAgICAgICAgIGFk
ZGl0aW9uYWxfYXJncyA9IFsnXi9icmFuY2hlcy97fScuZm9ybWF0KGJyYW5jaCldIGlmIGJyYW5j
aCBhbmQgYnJhbmNoICE9IHNlbGYuZGVmYXVsdF9icmFuY2ggZWxzZSBbXQogICAgICAgICBhZGRp
dGlvbmFsX2FyZ3MgKz0gWyctcicsIHN0cihyZXZpc2lvbildIGlmIHJldmlzaW9uIGVsc2UgW10K
IAotICAgICAgICBpbmZvX3Jlc3VsdCA9IHJ1bihbc2VsZi5leGVjdXRhYmxlLCAnaW5mbyddICsg
YWRkaXRpb25hbF9hcmdzLCBjd2Q9c2VsZi5yb290X3BhdGgsIGNhcHR1cmVfb3V0cHV0PVRydWUs
IGVuY29kaW5nPSd1dGYtOCcpCisgICAgICAgIGluZm9fcmVzdWx0ID0gcnVuKFtzZWxmLmV4ZWN1
dGFibGUoKSwgJ2luZm8nXSArIGFkZGl0aW9uYWxfYXJncywgY3dkPXNlbGYucm9vdF9wYXRoLCBj
YXB0dXJlX291dHB1dD1UcnVlLCBlbmNvZGluZz0ndXRmLTgnKQogICAgICAgICBpZiBpbmZvX3Jl
c3VsdC5yZXR1cm5jb2RlOgogICAgICAgICAgICAgcmV0dXJuIHt9CiAKQEAgLTEwMCw3ICsxMTAs
NyBAQCBjbGFzcyBTdm4oU2NtKToKICAgICAgICAgcmV0dXJuIHNlbGYuaW5mbygpWydSZWxhdGl2
ZSBVUkwnXVsyOl0KIAogICAgIGRlZiBsaXN0KHNlbGYsIGNhdGVnb3J5KToKLSAgICAgICAgbGlz
dF9yZXN1bHQgPSBydW4oW3NlbGYuZXhlY3V0YWJsZSwgJ2xpc3QnLCAnXi97fScuZm9ybWF0KGNh
dGVnb3J5KV0sIGN3ZD1zZWxmLnJvb3RfcGF0aCwgY2FwdHVyZV9vdXRwdXQ9VHJ1ZSwgZW5jb2Rp
bmc9J3V0Zi04JykKKyAgICAgICAgbGlzdF9yZXN1bHQgPSBydW4oW3NlbGYuZXhlY3V0YWJsZSgp
LCAnbGlzdCcsICdeL3t9Jy5mb3JtYXQoY2F0ZWdvcnkpXSwgY3dkPXNlbGYucm9vdF9wYXRoLCBj
YXB0dXJlX291dHB1dD1UcnVlLCBlbmNvZGluZz0ndXRmLTgnKQogICAgICAgICBpZiBsaXN0X3Jl
c3VsdC5yZXR1cm5jb2RlOgogICAgICAgICAgICAgcmV0dXJuIFtdCiAgICAgICAgIHJldHVybiBb
ZWxlbWVudC5yc3RyaXAoJy8nKSBmb3IgZWxlbWVudCBpbiBsaXN0X3Jlc3VsdC5zdGRvdXQuc3Bs
aXRsaW5lcygpXQpAQCAtMTQxLDcgKzE1MSw3IEBAIGNsYXNzIFN2bihTY20pOgogICAgICAgICAg
ICAgICAgIGt3YXJncyA9IGRpY3QoZW5jb2Rpbmc9J3V0Zi04JykKIAogICAgICAgICAgICAgbG9n
ID0gc3VicHJvY2Vzcy5Qb3BlbigKLSAgICAgICAgICAgICAgICBbc2VsZi5leGVjdXRhYmxlLCAn
bG9nJywgJy1xJywgYnJhbmNoX2FyZ10sCisgICAgICAgICAgICAgICAgW3NlbGYuZXhlY3V0YWJs
ZSgpLCAnbG9nJywgJy1xJywgYnJhbmNoX2FyZ10sCiAgICAgICAgICAgICAgICAgY3dkPXNlbGYu
cm9vdF9wYXRoLAogICAgICAgICAgICAgICAgIHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsCiAgICAg
ICAgICAgICAgICAgc3RkZXJyPXN1YnByb2Nlc3MuUElQRSwKQEAgLTIwNyw3ICsyMTcsNyBAQCBj
bGFzcyBTdm4oU2NtKToKICAgICAgICAgICAgIHJldHVybiBjYW5kaWRhdGUKIAogICAgICAgICBw
cm9jZXNzID0gcnVuKAotICAgICAgICAgICAgW3NlbGYuZXhlY3V0YWJsZSwgJ2xvZycsICctdics
ICctcScsIHNlbGYucmVtb3RlKCksICctcicsIHN0cihyZXZpc2lvbiksICctbCcsICcxJ10sCisg
ICAgICAgICAgICBbc2VsZi5leGVjdXRhYmxlKCksICdsb2cnLCAnLXYnLCAnLXEnLCBzZWxmLnJl
bW90ZSgpLCAnLXInLCBzdHIocmV2aXNpb24pLCAnLWwnLCAnMSddLAogICAgICAgICAgICAgY3dk
PXNlbGYucm9vdF9wYXRoLCBjYXB0dXJlX291dHB1dD1UcnVlLCBlbmNvZGluZz0ndXRmLTgnLAog
ICAgICAgICApCiAKQEAgLTMyMiw3ICszMzIsNyBAQCBjbGFzcyBTdm4oU2NtKToKIAogICAgICAg
ICBicmFuY2hfYXJnID0gJ14ve317fScuZm9ybWF0KCcnIGlmIGJyYW5jaCA9PSBzZWxmLmRlZmF1
bHRfYnJhbmNoIGVsc2UgJ2JyYW5jaGVzLycsIGJyYW5jaCkKICAgICAgICAgbG9nID0gcnVuKAot
ICAgICAgICAgICAgW3NlbGYuZXhlY3V0YWJsZSwgJ2xvZycsICctbCcsICcxJywgJy1yJywgc3Ry
KHJldmlzaW9uKSwgYnJhbmNoX2FyZ10sIGN3ZD1zZWxmLnJvb3RfcGF0aCwKKyAgICAgICAgICAg
IFtzZWxmLmV4ZWN1dGFibGUoKSwgJ2xvZycsICctbCcsICcxJywgJy1yJywgc3RyKHJldmlzaW9u
KSwgYnJhbmNoX2FyZ10sIGN3ZD1zZWxmLnJvb3RfcGF0aCwKICAgICAgICAgICAgIGNhcHR1cmVf
b3V0cHV0PVRydWUsIGVuY29kaW5nPSd1dGYtOCcsCiAgICAgICAgICkKICAgICAgICAgc3BsaXRf
bG9nID0gbG9nLnN0ZG91dC5zcGxpdGxpbmVzKCkKSW5kZXg6IFRvb2xzL1NjcmlwdHMvbGlicmFy
aWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L21vY2tzL2xvY2FsL2dpdC5weQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS9tb2Nr
cy9sb2NhbC9naXQucHkJKHJldmlzaW9uIDI2ODQ3MikKKysrIFRvb2xzL1NjcmlwdHMvbGlicmFy
aWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L21vY2tzL2xvY2FsL2dpdC5weQkod29ya2luZyBj
b3B5KQpAQCAtMTE3LDcgKzExNyw3IEBAIGNsYXNzIEdpdChtb2Nrcy5TdWJwcm9jZXNzKToKICAg
ICAgICAgaWYgZ2l0X3N2bjoKICAgICAgICAgICAgIGdpdF9zdm5fcm91dGVzID0gWwogICAgICAg
ICAgICAgICAgIG1vY2tzLlN1YnByb2Nlc3MuUm91dGUoCi0gICAgICAgICAgICAgICAgICAgIGxv
Y2FsLkdpdC5leGVjdXRhYmxlLCAnc3ZuJywgJ2ZpbmQtcmV2JywgcmUuY29tcGlsZShyJ3JcZCsn
KSwKKyAgICAgICAgICAgICAgICAgICAgbG9jYWwuR2l0LmV4ZWN1dGFibGUoKSwgJ3N2bicsICdm
aW5kLXJldicsIHJlLmNvbXBpbGUocidyXGQrJyksCiAgICAgICAgICAgICAgICAgICAgIGN3ZD1z
ZWxmLnBhdGgsCiAgICAgICAgICAgICAgICAgICAgIGdlbmVyYXRvcj1sYW1iZGEgKmFyZ3MsICoq
a3dhcmdzOgogICAgICAgICAgICAgICAgICAgICAgICAgbW9ja3MuUHJvY2Vzc0NvbXBsZXRpb24o
CkBAIC0xMjUsNyArMTI1LDcgQEAgY2xhc3MgR2l0KG1vY2tzLlN1YnByb2Nlc3MpOgogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHN0ZG91dD1nZXRhdHRyKHNlbGYuZmluZChhcmdzWzNdWzE6
XSksICdoYXNoJywgJ1xuJyksCiAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAg
ICAgICAgKSwgbW9ja3MuU3VicHJvY2Vzcy5Sb3V0ZSgKLSAgICAgICAgICAgICAgICAgICAgbG9j
YWwuR2l0LmV4ZWN1dGFibGUsICdzdm4nLCAnaW5mbycsCisgICAgICAgICAgICAgICAgICAgIGxv
Y2FsLkdpdC5leGVjdXRhYmxlKCksICdzdm4nLCAnaW5mbycsCiAgICAgICAgICAgICAgICAgICAg
IGN3ZD1zZWxmLnBhdGgsCiAgICAgICAgICAgICAgICAgICAgIGdlbmVyYXRvcj1sYW1iZGEgKmFy
Z3MsICoqa3dhcmdzOgogICAgICAgICAgICAgICAgICAgICAgICAgbW9ja3MuUHJvY2Vzc0NvbXBs
ZXRpb24oCkBAIC0xNTMsMTQgKzE1MywxNCBAQCBjbGFzcyBHaXQobW9ja3MuU3VicHJvY2Vzcyk6
CiAKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIGdpdF9zdm5fcm91dGVzID0gW21vY2tzLlN1
YnByb2Nlc3MuUm91dGUoCi0gICAgICAgICAgICAgICAgbG9jYWwuR2l0LmV4ZWN1dGFibGUsICdz
dm4nLAorICAgICAgICAgICAgICAgIGxvY2FsLkdpdC5leGVjdXRhYmxlKCksICdzdm4nLAogICAg
ICAgICAgICAgICAgIGN3ZD1zZWxmLnBhdGgsCiAgICAgICAgICAgICAgICAgY29tcGxldGlvbj1t
b2Nrcy5Qcm9jZXNzQ29tcGxldGlvbihyZXR1cm5jb2RlPTEsIGVsYXBzZWQ9MiksCiAgICAgICAg
ICAgICApXQogCiAgICAgICAgIHN1cGVyKEdpdCwgc2VsZikuX19pbml0X18oCiAgICAgICAgICAg
ICBtb2Nrcy5TdWJwcm9jZXNzLlJvdXRlKAotICAgICAgICAgICAgICAgIGxvY2FsLkdpdC5leGVj
dXRhYmxlLCAnc3RhdHVzJywKKyAgICAgICAgICAgICAgICBsb2NhbC5HaXQuZXhlY3V0YWJsZSgp
LCAnc3RhdHVzJywKICAgICAgICAgICAgICAgICBjd2Q9c2VsZi5wYXRoLAogICAgICAgICAgICAg
ICAgIGdlbmVyYXRvcj1sYW1iZGEgKmFyZ3MsICoqa3dhcmdzOgogICAgICAgICAgICAgICAgICAg
ICBtb2Nrcy5Qcm9jZXNzQ29tcGxldGlvbigKQEAgLTE3NSwyMSArMTc1LDIxIEBAIG5vdGhpbmcg
dG8gY29tbWl0LCB3b3JraW5nIHRyZWUgY2xlYW4KICAgICAgICAgICAgICAgICAgICAgKSwKICAg
ICAgICAgICAgICksCiAgICAgICAgICAgICBtb2Nrcy5TdWJwcm9jZXNzLlJvdXRlKAotICAgICAg
ICAgICAgICAgIGxvY2FsLkdpdC5leGVjdXRhYmxlLCAncmV2LXBhcnNlJywgJy0tc2hvdy10b3Bs
ZXZlbCcsCisgICAgICAgICAgICAgICAgbG9jYWwuR2l0LmV4ZWN1dGFibGUoKSwgJ3Jldi1wYXJz
ZScsICctLXNob3ctdG9wbGV2ZWwnLAogICAgICAgICAgICAgICAgIGN3ZD1zZWxmLnBhdGgsCiAg
ICAgICAgICAgICAgICAgY29tcGxldGlvbj1tb2Nrcy5Qcm9jZXNzQ29tcGxldGlvbigKICAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuY29kZT0wLAogICAgICAgICAgICAgICAgICAgICBzdGRvdXQ9
J3t9XG4nLmZvcm1hdChzZWxmLnBhdGgpLAogICAgICAgICAgICAgICAgICksCiAgICAgICAgICAg
ICApLCBtb2Nrcy5TdWJwcm9jZXNzLlJvdXRlKAotICAgICAgICAgICAgICAgIGxvY2FsLkdpdC5l
eGVjdXRhYmxlLCAncmV2LXBhcnNlJywgJy0tYWJicmV2LXJlZicsICdIRUFEJywKKyAgICAgICAg
ICAgICAgICBsb2NhbC5HaXQuZXhlY3V0YWJsZSgpLCAncmV2LXBhcnNlJywgJy0tYWJicmV2LXJl
ZicsICdIRUFEJywKICAgICAgICAgICAgICAgICBjd2Q9c2VsZi5wYXRoLAogICAgICAgICAgICAg
ICAgIGdlbmVyYXRvcj1sYW1iZGEgKmFyZ3MsICoqa3dhcmdzOiBtb2Nrcy5Qcm9jZXNzQ29tcGxl
dGlvbigKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuY29kZT0wLAogICAgICAgICAgICAgICAg
ICAgICBzdGRvdXQ9J3t9XG4nLmZvcm1hdCgnSEVBRCcgaWYgc2VsZi5kZXRhY2hlZCBlbHNlIHNl
bGYuYnJhbmNoKSwKICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgKSwgbW9ja3MuU3Vi
cHJvY2Vzcy5Sb3V0ZSgKLSAgICAgICAgICAgICAgICBsb2NhbC5HaXQuZXhlY3V0YWJsZSwgJ3Jl
bW90ZScsICdnZXQtdXJsJywgJy4qJywKKyAgICAgICAgICAgICAgICBsb2NhbC5HaXQuZXhlY3V0
YWJsZSgpLCAncmVtb3RlJywgJ2dldC11cmwnLCAnLionLAogICAgICAgICAgICAgICAgIGN3ZD1z
ZWxmLnBhdGgsCiAgICAgICAgICAgICAgICAgZ2VuZXJhdG9yPWxhbWJkYSAqYXJncywgKiprd2Fy
Z3M6IG1vY2tzLlByb2Nlc3NDb21wbGV0aW9uKAogICAgICAgICAgICAgICAgICAgICByZXR1cm5j
b2RlPTAsCkBAIC0xOTksNyArMTk5LDcgQEAgbm90aGluZyB0byBjb21taXQsIHdvcmtpbmcgdHJl
ZSBjbGVhbgogICAgICAgICAgICAgICAgICAgICBzdGRlcnI9ImZhdGFsOiBObyBzdWNoIHJlbW90
ZSAne30nXG4iLmZvcm1hdChhcmdzWzNdKSwKICAgICAgICAgICAgICAgICApLAogICAgICAgICAg
ICAgKSwgbW9ja3MuU3VicHJvY2Vzcy5Sb3V0ZSgKLSAgICAgICAgICAgICAgICBsb2NhbC5HaXQu
ZXhlY3V0YWJsZSwgJ2JyYW5jaCcsICctYScsCisgICAgICAgICAgICAgICAgbG9jYWwuR2l0LmV4
ZWN1dGFibGUoKSwgJ2JyYW5jaCcsICctYScsCiAgICAgICAgICAgICAgICAgY3dkPXNlbGYucGF0
aCwKICAgICAgICAgICAgICAgICBnZW5lcmF0b3I9bGFtYmRhICphcmdzLCAqKmt3YXJnczogbW9j
a3MuUHJvY2Vzc0NvbXBsZXRpb24oCiAgICAgICAgICAgICAgICAgICAgIHJldHVybmNvZGU9MCwK
QEAgLTIwNywyOCArMjA3LDI4IEBAIG5vdGhpbmcgdG8gY29tbWl0LCB3b3JraW5nIHRyZWUgY2xl
YW4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICdcbnJlbW90ZXMvb3JpZ2luL0hFQUQgLT4g
b3JpZ2luL3t9XG4nLmZvcm1hdChkZWZhdWx0X2JyYW5jaCksCiAgICAgICAgICAgICAgICAgKSwK
ICAgICAgICAgICAgICksIG1vY2tzLlN1YnByb2Nlc3MuUm91dGUoCi0gICAgICAgICAgICAgICAg
bG9jYWwuR2l0LmV4ZWN1dGFibGUsICd0YWcnLAorICAgICAgICAgICAgICAgIGxvY2FsLkdpdC5l
eGVjdXRhYmxlKCksICd0YWcnLAogICAgICAgICAgICAgICAgIGN3ZD1zZWxmLnBhdGgsCiAgICAg
ICAgICAgICAgICAgZ2VuZXJhdG9yPWxhbWJkYSAqYXJncywgKiprd2FyZ3M6IG1vY2tzLlByb2Nl
c3NDb21wbGV0aW9uKAogICAgICAgICAgICAgICAgICAgICByZXR1cm5jb2RlPTAsCiAgICAgICAg
ICAgICAgICAgICAgIHN0ZG91dD0nXG4nLmpvaW4oc2VsZi50YWdzKSArICdcbicsCiAgICAgICAg
ICAgICAgICAgKSwKICAgICAgICAgICAgICksIG1vY2tzLlN1YnByb2Nlc3MuUm91dGUoCi0gICAg
ICAgICAgICAgICAgbG9jYWwuR2l0LmV4ZWN1dGFibGUsICdyZXYtcGFyc2UnLCAnLS1hYmJyZXYt
cmVmJywgJ29yaWdpbi9IRUFEJywKKyAgICAgICAgICAgICAgICBsb2NhbC5HaXQuZXhlY3V0YWJs
ZSgpLCAncmV2LXBhcnNlJywgJy0tYWJicmV2LXJlZicsICdvcmlnaW4vSEVBRCcsCiAgICAgICAg
ICAgICAgICAgY3dkPXNlbGYucGF0aCwKICAgICAgICAgICAgICAgICBnZW5lcmF0b3I9bGFtYmRh
ICphcmdzLCAqKmt3YXJnczogbW9ja3MuUHJvY2Vzc0NvbXBsZXRpb24oCiAgICAgICAgICAgICAg
ICAgICAgIHJldHVybmNvZGU9MCwKICAgICAgICAgICAgICAgICAgICAgc3Rkb3V0PSdvcmlnaW4v
e31cbicuZm9ybWF0KGRlZmF1bHRfYnJhbmNoKSwKICAgICAgICAgICAgICAgICApLAogICAgICAg
ICAgICAgKSwgbW9ja3MuU3VicHJvY2Vzcy5Sb3V0ZSgKLSAgICAgICAgICAgICAgICBsb2NhbC5H
aXQuZXhlY3V0YWJsZSwgJ3Jldi1wYXJzZScsICcuKicsCisgICAgICAgICAgICAgICAgbG9jYWwu
R2l0LmV4ZWN1dGFibGUoKSwgJ3Jldi1wYXJzZScsICcuKicsCiAgICAgICAgICAgICAgICAgY3dk
PXNlbGYucGF0aCwKICAgICAgICAgICAgICAgICBnZW5lcmF0b3I9bGFtYmRhICphcmdzLCAqKmt3
YXJnczogbW9ja3MuUHJvY2Vzc0NvbXBsZXRpb24oCiAgICAgICAgICAgICAgICAgICAgIHJldHVy
bmNvZGU9MCwKICAgICAgICAgICAgICAgICAgICAgc3Rkb3V0PSd7fVxuJy5mb3JtYXQoc2VsZi5m
aW5kKGFyZ3NbMl0pLmhhc2gpLAogICAgICAgICAgICAgICAgICkgaWYgc2VsZi5maW5kKGFyZ3Nb
Ml0pIGVsc2UgbW9ja3MuUHJvY2Vzc0NvbXBsZXRpb24ocmV0dXJuY29kZT0xMjgpCiAgICAgICAg
ICAgICApLCBtb2Nrcy5TdWJwcm9jZXNzLlJvdXRlKAotICAgICAgICAgICAgICAgIGxvY2FsLkdp
dC5leGVjdXRhYmxlLCAnbG9nJywgcmUuY29tcGlsZShyJy4rJyksICctMScsCisgICAgICAgICAg
ICAgICAgbG9jYWwuR2l0LmV4ZWN1dGFibGUoKSwgJ2xvZycsIHJlLmNvbXBpbGUocicuKycpLCAn
LTEnLAogICAgICAgICAgICAgICAgIGN3ZD1zZWxmLnBhdGgsCiAgICAgICAgICAgICAgICAgZ2Vu
ZXJhdG9yPWxhbWJkYSAqYXJncywgKiprd2FyZ3M6IG1vY2tzLlByb2Nlc3NDb21wbGV0aW9uKAog
ICAgICAgICAgICAgICAgICAgICByZXR1cm5jb2RlPTAsCkBAIC0yNTMsMTQgKzI1MywxNCBAQCBu
b3RoaW5nIHRvIGNvbW1pdCwgd29ya2luZyB0cmVlIGNsZWFuCiAgICAgICAgICAgICAgICAgICAg
ICAgICApLAogICAgICAgICAgICAgICAgICkgaWYgc2VsZi5maW5kKGFyZ3NbMl0pIGVsc2UgbW9j
a3MuUHJvY2Vzc0NvbXBsZXRpb24ocmV0dXJuY29kZT0xMjgpLAogICAgICAgICAgICAgKSwgbW9j
a3MuU3VicHJvY2Vzcy5Sb3V0ZSgKLSAgICAgICAgICAgICAgICBsb2NhbC5HaXQuZXhlY3V0YWJs
ZSwgJ3Jldi1saXN0JywgJy0tY291bnQnLCAnLS1uby1tZXJnZXMnLCByZS5jb21waWxlKHInLisn
KSwKKyAgICAgICAgICAgICAgICBsb2NhbC5HaXQuZXhlY3V0YWJsZSgpLCAncmV2LWxpc3QnLCAn
LS1jb3VudCcsICctLW5vLW1lcmdlcycsIHJlLmNvbXBpbGUocicuKycpLAogICAgICAgICAgICAg
ICAgIGN3ZD1zZWxmLnBhdGgsCiAgICAgICAgICAgICAgICAgZ2VuZXJhdG9yPWxhbWJkYSAqYXJn
cywgKiprd2FyZ3M6IG1vY2tzLlByb2Nlc3NDb21wbGV0aW9uKAogICAgICAgICAgICAgICAgICAg
ICByZXR1cm5jb2RlPTAsCiAgICAgICAgICAgICAgICAgICAgIHN0ZG91dD0ne31cbicuZm9ybWF0
KHNlbGYuY291bnQoYXJnc1s0XSkpCiAgICAgICAgICAgICAgICAgKSBpZiBzZWxmLmZpbmQoYXJn
c1s0XSkgZWxzZSBtb2Nrcy5Qcm9jZXNzQ29tcGxldGlvbihyZXR1cm5jb2RlPTEyOCksCiAgICAg
ICAgICAgICApLCBtb2Nrcy5TdWJwcm9jZXNzLlJvdXRlKAotICAgICAgICAgICAgICAgIGxvY2Fs
LkdpdC5leGVjdXRhYmxlLCAnc2hvdycsICctcycsICctLWZvcm1hdD0lY3QnLCByZS5jb21waWxl
KHInLisnKSwKKyAgICAgICAgICAgICAgICBsb2NhbC5HaXQuZXhlY3V0YWJsZSgpLCAnc2hvdycs
ICctcycsICctLWZvcm1hdD0lY3QnLCByZS5jb21waWxlKHInLisnKSwKICAgICAgICAgICAgICAg
ICBjd2Q9c2VsZi5wYXRoLAogICAgICAgICAgICAgICAgIGdlbmVyYXRvcj1sYW1iZGEgKmFyZ3Ms
ICoqa3dhcmdzOiBtb2Nrcy5Qcm9jZXNzQ29tcGxldGlvbigKICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuY29kZT0wLApAQCAtMjY5LDIxICsyNjksMjEgQEAgbm90aGluZyB0byBjb21taXQsIHdv
cmtpbmcgdHJlZSBjbGVhbgogICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAg
KSBpZiBzZWxmLmZpbmQoYXJnc1s0XSkgZWxzZSBtb2Nrcy5Qcm9jZXNzQ29tcGxldGlvbihyZXR1
cm5jb2RlPTEyOCksCiAgICAgICAgICAgICApLCBtb2Nrcy5TdWJwcm9jZXNzLlJvdXRlKAotICAg
ICAgICAgICAgICAgIGxvY2FsLkdpdC5leGVjdXRhYmxlLCAnYnJhbmNoJywgJy1hJywgJy0tY29u
dGFpbnMnLCByZS5jb21waWxlKHInLisnKSwKKyAgICAgICAgICAgICAgICBsb2NhbC5HaXQuZXhl
Y3V0YWJsZSgpLCAnYnJhbmNoJywgJy1hJywgJy0tY29udGFpbnMnLCByZS5jb21waWxlKHInLisn
KSwKICAgICAgICAgICAgICAgICBjd2Q9c2VsZi5wYXRoLAogICAgICAgICAgICAgICAgIGdlbmVy
YXRvcj1sYW1iZGEgKmFyZ3MsICoqa3dhcmdzOiBtb2Nrcy5Qcm9jZXNzQ29tcGxldGlvbigKICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuY29kZT0wLAogICAgICAgICAgICAgICAgICAgICBzdGRv
dXQ9J1xuJy5qb2luKHNvcnRlZChzZWxmLmJyYW5jaGVzX29uKGFyZ3NbNF0pKSkgKyAnXG4nLAog
ICAgICAgICAgICAgICAgICkgaWYgc2VsZi5maW5kKGFyZ3NbNF0pIGVsc2UgbW9ja3MuUHJvY2Vz
c0NvbXBsZXRpb24ocmV0dXJuY29kZT0xMjgpLAogICAgICAgICAgICAgKSwgbW9ja3MuU3VicHJv
Y2Vzcy5Sb3V0ZSgKLSAgICAgICAgICAgICAgICBsb2NhbC5HaXQuZXhlY3V0YWJsZSwKKyAgICAg
ICAgICAgICAgICBsb2NhbC5HaXQuZXhlY3V0YWJsZSgpLAogICAgICAgICAgICAgICAgIGN3ZD1z
ZWxmLnBhdGgsCiAgICAgICAgICAgICAgICAgY29tcGxldGlvbj1tb2Nrcy5Qcm9jZXNzQ29tcGxl
dGlvbigKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuY29kZT0xLAogICAgICAgICAgICAgICAg
ICAgICBzdGRlcnI9J3VzYWdlOiBnaXQgWy0tdmVyc2lvbl0gWy0taGVscF0uLi5cbicsCiAgICAg
ICAgICAgICAgICAgKSwKICAgICAgICAgICAgICksIG1vY2tzLlN1YnByb2Nlc3MuUm91dGUoCi0g
ICAgICAgICAgICAgICAgbG9jYWwuR2l0LmV4ZWN1dGFibGUsCisgICAgICAgICAgICAgICAgbG9j
YWwuR2l0LmV4ZWN1dGFibGUoKSwKICAgICAgICAgICAgICAgICBjb21wbGV0aW9uPW1vY2tzLlBy
b2Nlc3NDb21wbGV0aW9uKAogICAgICAgICAgICAgICAgICAgICByZXR1cm5jb2RlPTEyOCwKICAg
ICAgICAgICAgICAgICAgICAgc3RkZXJyPSdmYXRhbDogbm90IGEgZ2l0IHJlcG9zaXRvcnkgKG9y
IGFueSBwYXJlbnQgdXAgdG8gbW91bnQgcG9pbnQpXG5TdG9wcGluZyBhdCBmaWxlc3lzdGVtIGJv
dW5kYXJ5IChHSVRfRElTQ09WRVJZX0FDUk9TU19GSUxFU1lTVEVNIG5vdCBzZXQpLlxuJywKSW5k
ZXg6IFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L21vY2tz
L2xvY2FsL3N2bi5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJr
aXRzY21weS93ZWJraXRzY21weS9tb2Nrcy9sb2NhbC9zdm4ucHkJKHJldmlzaW9uIDI2ODQ3MikK
KysrIFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L21vY2tz
L2xvY2FsL3N2bi5weQkod29ya2luZyBjb3B5KQpAQCAtMTE3LDI5ICsxMTcsMjkgQEAgY2xhc3Mg
U3ZuKG1vY2tzLlN1YnByb2Nlc3MpOgogCiAgICAgICAgIHN1cGVyKFN2biwgc2VsZikuX19pbml0
X18oCiAgICAgICAgICAgICBtb2Nrcy5TdWJwcm9jZXNzLlJvdXRlKAotICAgICAgICAgICAgICAg
IGxvY2FsLlN2bi5leGVjdXRhYmxlLCAnaW5mbycsCisgICAgICAgICAgICAgICAgbG9jYWwuU3Zu
LmV4ZWN1dGFibGUoKSwgJ2luZm8nLAogICAgICAgICAgICAgICAgIGN3ZD1zZWxmLnBhdGgsCiAg
ICAgICAgICAgICAgICAgZ2VuZXJhdG9yPWxhbWJkYSAqYXJncywgKiprd2FyZ3M6IHNlbGYuX2lu
Zm8oY3dkPWt3YXJncy5nZXQoJ2N3ZCcsJycpKQogICAgICAgICAgICAgKSwgbW9ja3MuU3VicHJv
Y2Vzcy5Sb3V0ZSgKLSAgICAgICAgICAgICAgICBsb2NhbC5Tdm4uZXhlY3V0YWJsZSwgJ2luZm8n
LCBzZWxmLkJSQU5DSF9SRSwKKyAgICAgICAgICAgICAgICBsb2NhbC5Tdm4uZXhlY3V0YWJsZSgp
LCAnaW5mbycsIHNlbGYuQlJBTkNIX1JFLAogICAgICAgICAgICAgICAgIGN3ZD1zZWxmLnBhdGgs
CiAgICAgICAgICAgICAgICAgZ2VuZXJhdG9yPWxhbWJkYSAqYXJncywgKiprd2FyZ3M6IHNlbGYu
X2luZm8oYnJhbmNoPXNlbGYuQlJBTkNIX1JFLm1hdGNoKGFyZ3NbMl0pLmdyb3VwKCdicmFuY2gn
KSwgY3dkPWt3YXJncy5nZXQoJ2N3ZCcsICcnKSkKICAgICAgICAgICAgICksIG1vY2tzLlN1YnBy
b2Nlc3MuUm91dGUoCi0gICAgICAgICAgICAgICAgbG9jYWwuU3ZuLmV4ZWN1dGFibGUsICdsaXN0
JywgJ14vYnJhbmNoZXMnLAorICAgICAgICAgICAgICAgIGxvY2FsLlN2bi5leGVjdXRhYmxlKCks
ICdsaXN0JywgJ14vYnJhbmNoZXMnLAogICAgICAgICAgICAgICAgIGN3ZD1zZWxmLnBhdGgsCiAg
ICAgICAgICAgICAgICAgZ2VuZXJhdG9yPWxhbWJkYSAqYXJncywgKiprd2FyZ3M6IG1vY2tzLlBy
b2Nlc3NDb21wbGV0aW9uKAogICAgICAgICAgICAgICAgICAgICByZXR1cm5jb2RlPTAsCiAgICAg
ICAgICAgICAgICAgICAgIHN0ZG91dD0nL1xuJy5qb2luKHNvcnRlZChzZXQoc2VsZi5icmFuY2hl
cykgfCBzZXQoc2VsZi5jb21taXRzLmtleXMoKSkgLSB7J3RydW5rJ30pKSArICcvXG4nLAogICAg
ICAgICAgICAgICAgICkgaWYgc2VsZi5jb25uZWN0ZWQgZWxzZSBtb2Nrcy5Qcm9jZXNzQ29tcGxl
dGlvbihyZXR1cm5jb2RlPTEpLAogICAgICAgICAgICAgKSwgbW9ja3MuU3VicHJvY2Vzcy5Sb3V0
ZSgKLSAgICAgICAgICAgICAgICBsb2NhbC5Tdm4uZXhlY3V0YWJsZSwgJ2xpc3QnLCAnXi90YWdz
JywKKyAgICAgICAgICAgICAgICBsb2NhbC5Tdm4uZXhlY3V0YWJsZSgpLCAnbGlzdCcsICdeL3Rh
Z3MnLAogICAgICAgICAgICAgICAgIGN3ZD1zZWxmLnBhdGgsCiAgICAgICAgICAgICAgICAgZ2Vu
ZXJhdG9yPWxhbWJkYSAqYXJncywgKiprd2FyZ3M6IG1vY2tzLlByb2Nlc3NDb21wbGV0aW9uKAog
ICAgICAgICAgICAgICAgICAgICByZXR1cm5jb2RlPTAsCiAgICAgICAgICAgICAgICAgICAgIHN0
ZG91dD0nL1xuJy5qb2luKHNlbGYudGFncykgKyAnL1xuJywKICAgICAgICAgICAgICAgICApIGlm
IHNlbGYuY29ubmVjdGVkIGVsc2UgbW9ja3MuUHJvY2Vzc0NvbXBsZXRpb24ocmV0dXJuY29kZT0x
KSwKICAgICAgICAgICAgICksIG1vY2tzLlN1YnByb2Nlc3MuUm91dGUoCi0gICAgICAgICAgICAg
ICAgbG9jYWwuU3ZuLmV4ZWN1dGFibGUsICdsb2cnLCAnLXYnLCAnLXEnLCBzZWxmLnJlbW90ZSwg
Jy1yJywgcmUuY29tcGlsZShyJ1xkKycpLAorICAgICAgICAgICAgICAgIGxvY2FsLlN2bi5leGVj
dXRhYmxlKCksICdsb2cnLCAnLXYnLCAnLXEnLCBzZWxmLnJlbW90ZSwgJy1yJywgcmUuY29tcGls
ZShyJ1xkKycpLAogICAgICAgICAgICAgICAgIGN3ZD1zZWxmLnBhdGgsCiAgICAgICAgICAgICAg
ICAgZ2VuZXJhdG9yPWxhbWJkYSAqYXJncywgKiprd2FyZ3M6IG1vY2tzLlByb2Nlc3NDb21wbGV0
aW9uKAogICAgICAgICAgICAgICAgICAgICByZXR1cm5jb2RlPTAsCkBAIC0xNTMsNyArMTUzLDcg
QEAgY2xhc3MgU3ZuKG1vY2tzLlN1YnByb2Nlc3MpOgogICAgICAgICAgICAgICAgICAgICAgICAg
KSwKICAgICAgICAgICAgICAgICApIGlmIHNlbGYuY29ubmVjdGVkIGFuZCBzZWxmLmZpbmQocmV2
aXNpb249YXJnc1s2XSkgZWxzZSBtb2Nrcy5Qcm9jZXNzQ29tcGxldGlvbihyZXR1cm5jb2RlPTEp
LAogICAgICAgICAgICAgKSwgbW9ja3MuU3VicHJvY2Vzcy5Sb3V0ZSgKLSAgICAgICAgICAgICAg
ICBsb2NhbC5Tdm4uZXhlY3V0YWJsZSwgJ2xvZycsICctcScsIHNlbGYuQlJBTkNIX1JFLAorICAg
ICAgICAgICAgICAgIGxvY2FsLlN2bi5leGVjdXRhYmxlKCksICdsb2cnLCAnLXEnLCBzZWxmLkJS
QU5DSF9SRSwKICAgICAgICAgICAgICAgICBjd2Q9c2VsZi5wYXRoLAogICAgICAgICAgICAgICAg
IGdlbmVyYXRvcj1sYW1iZGEgKmFyZ3MsICoqa3dhcmdzOiBtb2Nrcy5Qcm9jZXNzQ29tcGxldGlv
bigKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuY29kZT0wLApAQCAtMTYyLDIxICsxNjIsMjEg
QEAgY2xhc3MgU3ZuKG1vY2tzLlN1YnByb2Nlc3MpOgogICAgICAgICAgICAgICAgICAgICBdKSwK
ICAgICAgICAgICAgICAgICApIGlmIHNlbGYuY29ubmVjdGVkIGFuZCBzZWxmLkJSQU5DSF9SRS5t
YXRjaChhcmdzWzNdKS5ncm91cCgnYnJhbmNoJykgaW4gc2VsZi5jb21taXRzIGVsc2UgbW9ja3Mu
UHJvY2Vzc0NvbXBsZXRpb24ocmV0dXJuY29kZT0xKQogICAgICAgICAgICAgKSwgbW9ja3MuU3Vi
cHJvY2Vzcy5Sb3V0ZSgKLSAgICAgICAgICAgICAgICBsb2NhbC5Tdm4uZXhlY3V0YWJsZSwgJ2xv
ZycsICctbCcsICcxJywgJy1yJywgcmUuY29tcGlsZShyJ1xkKycpLCBzZWxmLkJSQU5DSF9SRSwK
KyAgICAgICAgICAgICAgICBsb2NhbC5Tdm4uZXhlY3V0YWJsZSgpLCAnbG9nJywgJy1sJywgJzEn
LCAnLXInLCByZS5jb21waWxlKHInXGQrJyksIHNlbGYuQlJBTkNIX1JFLAogICAgICAgICAgICAg
ICAgIGN3ZD1zZWxmLnBhdGgsCiAgICAgICAgICAgICAgICAgZ2VuZXJhdG9yPWxhbWJkYSAqYXJn
cywgKiprd2FyZ3M6IHNlbGYuX2xvZ19mb3IoCiAgICAgICAgICAgICAgICAgICAgIGJyYW5jaD1z
ZWxmLkJSQU5DSF9SRS5tYXRjaChhcmdzWzZdKS5ncm91cCgnYnJhbmNoJyksCiAgICAgICAgICAg
ICAgICAgICAgIHJldmlzaW9uPWFyZ3NbNV0sCiAgICAgICAgICAgICAgICAgKSBpZiBzZWxmLmNv
bm5lY3RlZCBlbHNlIG1vY2tzLlByb2Nlc3NDb21wbGV0aW9uKHJldHVybmNvZGU9MSkKICAgICAg
ICAgICAgICksIG1vY2tzLlN1YnByb2Nlc3MuUm91dGUoCi0gICAgICAgICAgICAgICAgbG9jYWwu
U3ZuLmV4ZWN1dGFibGUsCisgICAgICAgICAgICAgICAgbG9jYWwuU3ZuLmV4ZWN1dGFibGUoKSwK
ICAgICAgICAgICAgICAgICBjd2Q9c2VsZi5wYXRoLAogICAgICAgICAgICAgICAgIGNvbXBsZXRp
b249bW9ja3MuUHJvY2Vzc0NvbXBsZXRpb24oCiAgICAgICAgICAgICAgICAgICAgIHJldHVybmNv
ZGU9MSwKICAgICAgICAgICAgICAgICAgICAgc3RkZXJyPSJUeXBlICdzdm4gaGVscCcgZm9yIHVz
YWdlLlxuIiwKICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICApLCBtb2Nrcy5TdWJwcm9j
ZXNzLlJvdXRlKAotICAgICAgICAgICAgICAgIGxvY2FsLlN2bi5leGVjdXRhYmxlLAorICAgICAg
ICAgICAgICAgIGxvY2FsLlN2bi5leGVjdXRhYmxlKCksCiAgICAgICAgICAgICAgICAgZ2VuZXJh
dG9yPWxhbWJkYSAqYXJncywgKiprd2FyZ3M6IG1vY2tzLlByb2Nlc3NDb21wbGV0aW9uKAogICAg
ICAgICAgICAgICAgICAgICByZXR1cm5jb2RlPTEsCiAgICAgICAgICAgICAgICAgICAgIHN0ZGVy
cj0ic3ZuOiBFMTU1MDA3OiAne30nIGlzIG5vdCBhIHdvcmtpbmcgY29weVxuIi5mb3JtYXQoa3dh
cmdzLmdldCgnY3dkJykpLAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411636</attachid>
            <date>2020-10-16 17:43:28 -0700</date>
            <delta_ts>2020-10-23 10:59:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217717-20201016174327.patch</filename>
            <type>text/plain</type>
            <size>28094</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI2ODYyMykKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDI1IEBACisyMDIwLTEwLTE2ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICBbd2Via2l0c2NtcHldIFVzZSAnd2hpY2gnIHRvIGZpbmQgZ2l0IGFuZCBz
dm4gcGF0aHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIxNzcxNworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzAyOTkxOTI+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTY3JpcHRzL2xpYnJhcmllcy93
ZWJraXRzY21weS93ZWJraXRzY21weS9fX2luaXRfXy5weTogQnVtcCB2ZXJzaW9uLgorICAgICAg
ICAqIFNjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L2xvY2FsL2dpdC5w
eToKKyAgICAgICAgKEdpdCk6CisgICAgICAgIChHaXQuZXhlY3V0YWJsZSk6IEdlbmVyYXRlIGdp
dCBwYXRoIGZyb20gJ3doaWNoJyBjYWxsLgorICAgICAgICAqIFNjcmlwdHMvbGlicmFyaWVzL3dl
YmtpdHNjbXB5L3dlYmtpdHNjbXB5L2xvY2FsL3NjbS5weToKKyAgICAgICAgKFNjbS5leGVjdXRh
YmxlKTogR2VuZXJhdGUgYSBwcm9ncmFtIHBhdGggZnJvbSBhICd3aGljaCcgY2FsbC4KKyAgICAg
ICAgKiBTY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS9sb2NhbC9zdm4u
cHk6CisgICAgICAgIChTdm4pOgorICAgICAgICAoU3ZuLmV4ZWN1dGFibGUpOiBHZW5lcmF0ZSBz
dm4gcGF0aCBmcm9tICd3aGljaCcgY2FsbC4KKyAgICAgICAgKiBTY3JpcHRzL2xpYnJhcmllcy93
ZWJraXRzY21weS93ZWJraXRzY21weS9tb2Nrcy9sb2NhbC9naXQucHk6CisgICAgICAgIChHaXQp
OgorICAgICAgICAqIFNjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L21v
Y2tzL2xvY2FsL3N2bi5weToKKyAgICAgICAgKFN2bi5fX2luaXRfXyk6CisKIDIwMjAtMTAtMTYg
IEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQHdlYmtpdC5vcmc+CiAKICAgICAgICAgRW5hYmxlIGlu
ZGl2aWR1YWwgQ1NTIHRyYW5zZm9ybSBwcm9wZXJ0aWVzIGJ5IGRlZmF1bHQKSW5kZXg6IFRvb2xz
L1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L19faW5pdF9fLnB5Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNj
bXB5L19faW5pdF9fLnB5CShyZXZpc2lvbiAyNjg2MjApCisrKyBUb29scy9TY3JpcHRzL2xpYnJh
cmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS9fX2luaXRfXy5weQkod29ya2luZyBjb3B5KQpA
QCAtNDYsNyArNDYsNyBAQCBleGNlcHQgSW1wb3J0RXJyb3I6CiAgICAgICAgICJQbGVhc2UgaW5z
dGFsbCB3ZWJraXRjb3JlcHkgd2l0aCBgcGlwIGluc3RhbGwgd2Via2l0Y29yZXB5IC0tZXh0cmEt
aW5kZXgtdXJsIDxwYWNrYWdlIGluZGV4IFVSTD5gIgogICAgICkKIAotdmVyc2lvbiA9IFZlcnNp
b24oMCwgMiwgMikKK3ZlcnNpb24gPSBWZXJzaW9uKDAsIDIsIDMpCiAKIEF1dG9JbnN0YWxsLnJl
Z2lzdGVyKFBhY2thZ2UoJ2RhdGV1dGlsJywgVmVyc2lvbigyLCA4LCAxKSwgcHlwaV9uYW1lPSdw
eXRob24tZGF0ZXV0aWwnKSkKIApJbmRleDogVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0
c2NtcHkvd2Via2l0c2NtcHkvbG9jYWwvZ2l0LnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Njcmlw
dHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L2xvY2FsL2dpdC5weQkocmV2aXNp
b24gMjY4NjIwKQorKysgVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0
c2NtcHkvbG9jYWwvZ2l0LnB5CSh3b3JraW5nIGNvcHkpCkBAIC0yMCw3ICsyMCw3IEBACiAjIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKLQoraW1wb3J0IG9zCiBpbXBvcnQg
cmUKIGltcG9ydCBzaXgKIApAQCAtMzAsMTMgKzMwLDE3IEBAIGZyb20gd2Via2l0c2NtcHkgaW1w
b3J0IENvbW1pdCwgQ29udHJpYnUKIAogCiBjbGFzcyBHaXQoU2NtKToKLSAgICBleGVjdXRhYmxl
ID0gJy91c3IvYmluL2dpdCcKICAgICBHSVRfQ09NTUlUID0gcmUuY29tcGlsZShyJ2NvbW1pdCAo
P1A8aGFzaD5bMC05YS1mXSspJykKICAgICBHSVRfU1ZOX1JFVklTSU9OID0gcmUuY29tcGlsZShy
J2dpdC1zdm4taWQ6IFxTKzpcL1wvLitAKD9QPHJldmlzaW9uPlxkKykgListListListLisnKQog
CiAgICAgQGNsYXNzbWV0aG9kCisgICAgQGRlY29yYXRvcnMuTWVtb2l6ZSgpCisgICAgZGVmIGV4
ZWN1dGFibGUoY2xzKToKKyAgICAgICAgcmV0dXJuIFNjbS5leGVjdXRhYmxlKCdnaXQnKQorCisg
ICAgQGNsYXNzbWV0aG9kCiAgICAgZGVmIGlzX2NoZWNrb3V0KGNscywgcGF0aCk6Ci0gICAgICAg
IHJldHVybiBydW4oW2Nscy5leGVjdXRhYmxlLCAncmV2LXBhcnNlJywgJy0tc2hvdy10b3BsZXZl
bCddLCBjd2Q9cGF0aCwgY2FwdHVyZV9vdXRwdXQ9VHJ1ZSkucmV0dXJuY29kZSA9PSAwCisgICAg
ICAgIHJldHVybiBydW4oW2Nscy5leGVjdXRhYmxlKCksICdyZXYtcGFyc2UnLCAnLS1zaG93LXRv
cGxldmVsJ10sIGN3ZD1wYXRoLCBjYXB0dXJlX291dHB1dD1UcnVlKS5yZXR1cm5jb2RlID09IDAK
IAogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwYXRoLCBkZXZfYnJhbmNoZXM9Tm9uZSwgcHJvZF9i
cmFuY2hlcz1Ob25lKToKICAgICAgICAgc3VwZXIoR2l0LCBzZWxmKS5fX2luaXRfXyhwYXRoLCBk
ZXZfYnJhbmNoZXM9ZGV2X2JyYW5jaGVzLCBwcm9kX2JyYW5jaGVzPXByb2RfYnJhbmNoZXMpCkBA
IC00OCw3ICs1Miw3IEBAIGNsYXNzIEdpdChTY20pOgogICAgICAgICBpZiBub3Qgc2VsZi5pc19z
dm46CiAgICAgICAgICAgICByYWlzZSBzZWxmLkV4Y2VwdGlvbignQ2Fubm90IHJ1biBTVk4gaW5m
byBvbiBhIGdpdCBjaGVja291dCB3aGljaCBpcyBub3QgZ2l0LXN2bicpCiAKLSAgICAgICAgaW5m
b19yZXN1bHQgPSBydW4oW3NlbGYuZXhlY3V0YWJsZSwgJ3N2bicsICdpbmZvJ10sIGN3ZD1zZWxm
LnBhdGgsIGNhcHR1cmVfb3V0cHV0PVRydWUsIGVuY29kaW5nPSd1dGYtOCcpCisgICAgICAgIGlu
Zm9fcmVzdWx0ID0gcnVuKFtzZWxmLmV4ZWN1dGFibGUoKSwgJ3N2bicsICdpbmZvJ10sIGN3ZD1z
ZWxmLnBhdGgsIGNhcHR1cmVfb3V0cHV0PVRydWUsIGVuY29kaW5nPSd1dGYtOCcpCiAgICAgICAg
IGlmIGluZm9fcmVzdWx0LnJldHVybmNvZGU6CiAgICAgICAgICAgICByZXR1cm4ge30KIApAQCAt
NjMsNyArNjcsNyBAQCBjbGFzcyBHaXQoU2NtKToKICAgICBkZWYgaXNfc3ZuKHNlbGYpOgogICAg
ICAgICB0cnk6CiAgICAgICAgICAgICByZXR1cm4gcnVuKAotICAgICAgICAgICAgICAgIFtzZWxm
LmV4ZWN1dGFibGUsICdzdm4nLCAnZmluZC1yZXYnLCAncjEnXSwKKyAgICAgICAgICAgICAgICBb
c2VsZi5leGVjdXRhYmxlKCksICdzdm4nLCAnZmluZC1yZXYnLCAncjEnXSwKICAgICAgICAgICAg
ICAgICBjd2Q9c2VsZi5yb290X3BhdGgsCiAgICAgICAgICAgICAgICAgY2FwdHVyZV9vdXRwdXQ9
VHJ1ZSwKICAgICAgICAgICAgICAgICBlbmNvZGluZz0ndXRmLTgnLApAQCAtNzksMTQgKzgzLDE0
IEBAIGNsYXNzIEdpdChTY20pOgogICAgIEBwcm9wZXJ0eQogICAgIEBkZWNvcmF0b3JzLk1lbW9p
emUoKQogICAgIGRlZiByb290X3BhdGgoc2VsZik6Ci0gICAgICAgIHJlc3VsdCA9IHJ1bihbc2Vs
Zi5leGVjdXRhYmxlLCAncmV2LXBhcnNlJywgJy0tc2hvdy10b3BsZXZlbCddLCBjd2Q9c2VsZi5w
YXRoLCBjYXB0dXJlX291dHB1dD1UcnVlLCBlbmNvZGluZz0ndXRmLTgnKQorICAgICAgICByZXN1
bHQgPSBydW4oW3NlbGYuZXhlY3V0YWJsZSgpLCAncmV2LXBhcnNlJywgJy0tc2hvdy10b3BsZXZl
bCddLCBjd2Q9c2VsZi5wYXRoLCBjYXB0dXJlX291dHB1dD1UcnVlLCBlbmNvZGluZz0ndXRmLTgn
KQogICAgICAgICBpZiByZXN1bHQucmV0dXJuY29kZToKICAgICAgICAgICAgIHJldHVybiBOb25l
CiAgICAgICAgIHJldHVybiByZXN1bHQuc3Rkb3V0LnJzdHJpcCgpCiAKICAgICBAcHJvcGVydHkK
ICAgICBkZWYgZGVmYXVsdF9icmFuY2goc2VsZik6Ci0gICAgICAgIHJlc3VsdCA9IHJ1bihbc2Vs
Zi5leGVjdXRhYmxlLCAncmV2LXBhcnNlJywgJy0tYWJicmV2LXJlZicsICdvcmlnaW4vSEVBRCdd
LCBjd2Q9c2VsZi5wYXRoLCBjYXB0dXJlX291dHB1dD1UcnVlLCBlbmNvZGluZz0ndXRmLTgnKQor
ICAgICAgICByZXN1bHQgPSBydW4oW3NlbGYuZXhlY3V0YWJsZSgpLCAncmV2LXBhcnNlJywgJy0t
YWJicmV2LXJlZicsICdvcmlnaW4vSEVBRCddLCBjd2Q9c2VsZi5wYXRoLCBjYXB0dXJlX291dHB1
dD1UcnVlLCBlbmNvZGluZz0ndXRmLTgnKQogICAgICAgICBpZiByZXN1bHQucmV0dXJuY29kZToK
ICAgICAgICAgICAgIGNhbmRpZGF0ZXMgPSBzZWxmLmJyYW5jaGVzCiAgICAgICAgICAgICBpZiAn
bWFzdGVyJyBpbiBjYW5kaWRhdGVzOgpAQCAtOTgsMTMgKzEwMiwxMyBAQCBjbGFzcyBHaXQoU2Nt
KToKIAogICAgIEBwcm9wZXJ0eQogICAgIGRlZiBicmFuY2goc2VsZik6Ci0gICAgICAgIHN0YXR1
cyA9IHJ1bihbc2VsZi5leGVjdXRhYmxlLCAnc3RhdHVzJ10sIGN3ZD1zZWxmLnJvb3RfcGF0aCwg
Y2FwdHVyZV9vdXRwdXQ9VHJ1ZSwgZW5jb2Rpbmc9J3V0Zi04JykKKyAgICAgICAgc3RhdHVzID0g
cnVuKFtzZWxmLmV4ZWN1dGFibGUoKSwgJ3N0YXR1cyddLCBjd2Q9c2VsZi5yb290X3BhdGgsIGNh
cHR1cmVfb3V0cHV0PVRydWUsIGVuY29kaW5nPSd1dGYtOCcpCiAgICAgICAgIGlmIHN0YXR1cy5y
ZXR1cm5jb2RlOgogICAgICAgICAgICAgcmFpc2Ugc2VsZi5FeGNlcHRpb24oJ0ZhaWxlZCB0byBy
dW4gYGdpdCBzdGF0dXNgIGZvciB7fScuZm9ybWF0KHNlbGYucm9vdF9wYXRoKSkKICAgICAgICAg
aWYgc3RhdHVzLnN0ZG91dC5zcGxpdGxpbmVzKClbMF0uc3RhcnRzd2l0aCgnSEVBRCBkZXRhY2hl
ZCBhdCcpOgogICAgICAgICAgICAgcmV0dXJuIE5vbmUKIAotICAgICAgICByZXN1bHQgPSBydW4o
W3NlbGYuZXhlY3V0YWJsZSwgJ3Jldi1wYXJzZScsICctLWFiYnJldi1yZWYnLCAnSEVBRCddLCBj
d2Q9c2VsZi5yb290X3BhdGgsIGNhcHR1cmVfb3V0cHV0PVRydWUsIGVuY29kaW5nPSd1dGYtOCcp
CisgICAgICAgIHJlc3VsdCA9IHJ1bihbc2VsZi5leGVjdXRhYmxlKCksICdyZXYtcGFyc2UnLCAn
LS1hYmJyZXYtcmVmJywgJ0hFQUQnXSwgY3dkPXNlbGYucm9vdF9wYXRoLCBjYXB0dXJlX291dHB1
dD1UcnVlLCBlbmNvZGluZz0ndXRmLTgnKQogICAgICAgICBpZiByZXN1bHQucmV0dXJuY29kZToK
ICAgICAgICAgICAgIHJhaXNlIHNlbGYuRXhjZXB0aW9uKCdGYWlsZWQgdG8gcmV0cmlldmUgYnJh
bmNoIGZvciB7fScuZm9ybWF0KHNlbGYucm9vdF9wYXRoKSkKICAgICAgICAgcmV0dXJuIHJlc3Vs
dC5zdGRvdXQucnN0cmlwKCkKQEAgLTExNSwyMCArMTE5LDIwIEBAIGNsYXNzIEdpdChTY20pOgog
CiAgICAgQHByb3BlcnR5CiAgICAgZGVmIHRhZ3Moc2VsZik6Ci0gICAgICAgIHRhZ3MgPSBydW4o
W3NlbGYuZXhlY3V0YWJsZSwgJ3RhZyddLCBjd2Q9c2VsZi5yb290X3BhdGgsIGNhcHR1cmVfb3V0
cHV0PVRydWUsIGVuY29kaW5nPSd1dGYtOCcpCisgICAgICAgIHRhZ3MgPSBydW4oW3NlbGYuZXhl
Y3V0YWJsZSgpLCAndGFnJ10sIGN3ZD1zZWxmLnJvb3RfcGF0aCwgY2FwdHVyZV9vdXRwdXQ9VHJ1
ZSwgZW5jb2Rpbmc9J3V0Zi04JykKICAgICAgICAgaWYgdGFncy5yZXR1cm5jb2RlOgogICAgICAg
ICAgICAgcmFpc2Ugc2VsZi5FeGNlcHRpb24oJ0ZhaWxlZCB0byByZXRyaWV2ZSB0YWcgbGlzdCBm
b3Ige30nLmZvcm1hdChzZWxmLnJvb3RfcGF0aCkpCiAgICAgICAgIHJldHVybiB0YWdzLnN0ZG91
dC5zcGxpdGxpbmVzKCkKIAogICAgIGRlZiByZW1vdGUoc2VsZiwgbmFtZT1Ob25lKToKLSAgICAg
ICAgcmVzdWx0ID0gcnVuKFtzZWxmLmV4ZWN1dGFibGUsICdyZW1vdGUnLCAnZ2V0LXVybCcsIG5h
bWUgb3IgJ29yaWdpbiddLCBjd2Q9c2VsZi5yb290X3BhdGgsIGNhcHR1cmVfb3V0cHV0PVRydWUs
IGVuY29kaW5nPSd1dGYtOCcpCisgICAgICAgIHJlc3VsdCA9IHJ1bihbc2VsZi5leGVjdXRhYmxl
KCksICdyZW1vdGUnLCAnZ2V0LXVybCcsIG5hbWUgb3IgJ29yaWdpbiddLCBjd2Q9c2VsZi5yb290
X3BhdGgsIGNhcHR1cmVfb3V0cHV0PVRydWUsIGVuY29kaW5nPSd1dGYtOCcpCiAgICAgICAgIGlm
IHJlc3VsdC5yZXR1cm5jb2RlOgogICAgICAgICAgICAgcmFpc2Ugc2VsZi5FeGNlcHRpb24oJ0Zh
aWxlZCB0byByZXRyaWV2ZSByZW1vdGUgZm9yIHt9Jy5mb3JtYXQoc2VsZi5yb290X3BhdGgpKQog
ICAgICAgICByZXR1cm4gcmVzdWx0LnN0ZG91dC5yc3RyaXAoKQogCiAgICAgZGVmIF9jb21taXRf
Y291bnQoc2VsZiwgbmF0aXZlX3BhcmFtZXRlcik6CiAgICAgICAgIHJldmlzaW9uX2NvdW50ID0g
cnVuKAotICAgICAgICAgICAgW3NlbGYuZXhlY3V0YWJsZSwgJ3Jldi1saXN0JywgJy0tY291bnQn
LCAnLS1uby1tZXJnZXMnLCBuYXRpdmVfcGFyYW1ldGVyXSwKKyAgICAgICAgICAgIFtzZWxmLmV4
ZWN1dGFibGUoKSwgJ3Jldi1saXN0JywgJy0tY291bnQnLCAnLS1uby1tZXJnZXMnLCBuYXRpdmVf
cGFyYW1ldGVyXSwKICAgICAgICAgICAgIGN3ZD1zZWxmLnJvb3RfcGF0aCwgY2FwdHVyZV9vdXRw
dXQ9VHJ1ZSwgZW5jb2Rpbmc9J3V0Zi04JywKICAgICAgICAgKQogICAgICAgICBpZiByZXZpc2lv
bl9jb3VudC5yZXR1cm5jb2RlOgpAQCAtMTM3LDcgKzE0MSw3IEBAIGNsYXNzIEdpdChTY20pOgog
CiAgICAgZGVmIF9icmFuY2hlc19mb3Ioc2VsZiwgaGFzaD1Ob25lKToKICAgICAgICAgYnJhbmNo
ID0gcnVuKAotICAgICAgICAgICAgW3NlbGYuZXhlY3V0YWJsZSwgJ2JyYW5jaCcsICctYSddICsg
KFsnLS1jb250YWlucycsIGhhc2hdIGlmIGhhc2ggZWxzZSBbXSksCisgICAgICAgICAgICBbc2Vs
Zi5leGVjdXRhYmxlKCksICdicmFuY2gnLCAnLWEnXSArIChbJy0tY29udGFpbnMnLCBoYXNoXSBp
ZiBoYXNoIGVsc2UgW10pLAogICAgICAgICAgICAgY3dkPXNlbGYucm9vdF9wYXRoLAogICAgICAg
ICAgICAgY2FwdHVyZV9vdXRwdXQ9VHJ1ZSwKICAgICAgICAgICAgIGVuY29kaW5nPSd1dGYtOCcs
CkBAIC0xNTMsNyArMTU3LDcgQEAgY2xhc3MgR2l0KFNjbSk6CiAgICAgICAgIGVsaWYgcmV2aXNp
b246CiAgICAgICAgICAgICByZXZpc2lvbiA9IENvbW1pdC5fcGFyc2VfcmV2aXNpb24ocmV2aXNp
b24sIGRvX2Fzc2VydD1UcnVlKQogICAgICAgICAgICAgcmV2aXNpb25fbG9nID0gcnVuKAotICAg
ICAgICAgICAgICAgIFtzZWxmLmV4ZWN1dGFibGUsICdzdm4nLCAnZmluZC1yZXYnLCAncnt9Jy5m
b3JtYXQocmV2aXNpb24pXSwKKyAgICAgICAgICAgICAgICBbc2VsZi5leGVjdXRhYmxlKCksICdz
dm4nLCAnZmluZC1yZXYnLCAncnt9Jy5mb3JtYXQocmV2aXNpb24pXSwKICAgICAgICAgICAgICAg
ICBjd2Q9c2VsZi5yb290X3BhdGgsIGNhcHR1cmVfb3V0cHV0PVRydWUsIGVuY29kaW5nPSd1dGYt
OCcsCiAgICAgICAgICAgICAgICAgdGltZW91dD0zLAogICAgICAgICAgICAgKQpAQCAtMTk1LDcg
KzE5OSw3IEBAIGNsYXNzIEdpdChTY20pOgogICAgICAgICAgICAgaWYgaWRlbnRpZmllciA+IGJh
c2VfY291bnQ6CiAgICAgICAgICAgICAgICAgcmFpc2Ugc2VsZi5FeGNlcHRpb24oJ0lkZW50aWZp
ZXIge30gY2Fubm90IGJlIGZvdW5kIG9uIHRoZSBzcGVjaWZpZWQgYnJhbmNoIGluIHRoZSBjdXJy
ZW50IGNoZWNrb3V0Jy5mb3JtYXQoaWRlbnRpZmllcikpCiAgICAgICAgICAgICBsb2cgPSBydW4o
Ci0gICAgICAgICAgICAgICAgW3NlbGYuZXhlY3V0YWJsZSwgJ2xvZycsICd7fX57fScuZm9ybWF0
KGJyYW5jaCBvciAnSEVBRCcsIGJhc2VfY291bnQgLSBpZGVudGlmaWVyKSwgJy0xJ10sCisgICAg
ICAgICAgICAgICAgW3NlbGYuZXhlY3V0YWJsZSgpLCAnbG9nJywgJ3t9fnt9Jy5mb3JtYXQoYnJh
bmNoIG9yICdIRUFEJywgYmFzZV9jb3VudCAtIGlkZW50aWZpZXIpLCAnLTEnXSwKICAgICAgICAg
ICAgICAgICBjd2Q9c2VsZi5yb290X3BhdGgsCiAgICAgICAgICAgICAgICAgY2FwdHVyZV9vdXRw
dXQ9VHJ1ZSwKICAgICAgICAgICAgICAgICBlbmNvZGluZz0ndXRmLTgnLApAQCAtMjEyLDEzICsy
MTYsMTMgQEAgY2xhc3MgR2l0KFNjbSk6CiAgICAgICAgIGVsaWYgYnJhbmNoOgogICAgICAgICAg
ICAgaWYgaGFzaDoKICAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdDYW5ub3QgZGVm
aW5lIGJvdGggYnJhbmNoIGFuZCBoYXNoJykKLSAgICAgICAgICAgIGxvZyA9IHJ1bihbc2VsZi5l
eGVjdXRhYmxlLCAnbG9nJywgYnJhbmNoLCAnLTEnXSwgY3dkPXNlbGYucm9vdF9wYXRoLCBjYXB0
dXJlX291dHB1dD1UcnVlLCBlbmNvZGluZz0ndXRmLTgnKQorICAgICAgICAgICAgbG9nID0gcnVu
KFtzZWxmLmV4ZWN1dGFibGUoKSwgJ2xvZycsIGJyYW5jaCwgJy0xJ10sIGN3ZD1zZWxmLnJvb3Rf
cGF0aCwgY2FwdHVyZV9vdXRwdXQ9VHJ1ZSwgZW5jb2Rpbmc9J3V0Zi04JykKICAgICAgICAgICAg
IGlmIGxvZy5yZXR1cm5jb2RlOgogICAgICAgICAgICAgICAgIHJhaXNlIHNlbGYuRXhjZXB0aW9u
KCJGYWlsZWQgdG8gcmV0cmlldmUgY29tbWl0IGluZm9ybWF0aW9uIGZvciAne30nIi5mb3JtYXQo
YnJhbmNoKSkKIAogICAgICAgICBlbHNlOgogICAgICAgICAgICAgaGFzaCA9IENvbW1pdC5fcGFy
c2VfaGFzaChoYXNoLCBkb19hc3NlcnQ9VHJ1ZSkKLSAgICAgICAgICAgIGxvZyA9IHJ1bihbc2Vs
Zi5leGVjdXRhYmxlLCAnbG9nJywgaGFzaCBvciAnSEVBRCcsICctMSddLCBjd2Q9c2VsZi5yb290
X3BhdGgsIGNhcHR1cmVfb3V0cHV0PVRydWUsIGVuY29kaW5nPSd1dGYtOCcpCisgICAgICAgICAg
ICBsb2cgPSBydW4oW3NlbGYuZXhlY3V0YWJsZSgpLCAnbG9nJywgaGFzaCBvciAnSEVBRCcsICct
MSddLCBjd2Q9c2VsZi5yb290X3BhdGgsIGNhcHR1cmVfb3V0cHV0PVRydWUsIGVuY29kaW5nPSd1
dGYtOCcpCiAgICAgICAgICAgICBpZiBsb2cucmV0dXJuY29kZToKICAgICAgICAgICAgICAgICBy
YWlzZSBzZWxmLkV4Y2VwdGlvbigiRmFpbGVkIHRvIHJldHJpZXZlIGNvbW1pdCBpbmZvcm1hdGlv
biBmb3IgJ3t9JyIuZm9ybWF0KGhhc2ggb3IgJ0hFQUQnKSkKIApAQCAtMjM5LDcgKzI0Myw3IEBA
IGNsYXNzIEdpdChTY20pOgogICAgICAgICByZXZpc2lvbiA9IGludChtYXRjaC5ncm91cCgncmV2
aXNpb24nKSkgaWYgbWF0Y2ggZWxzZSBOb25lCiAKICAgICAgICAgY29tbWl0X3RpbWUgPSBydW4o
Ci0gICAgICAgICAgICBbc2VsZi5leGVjdXRhYmxlLCAnc2hvdycsICctcycsICctLWZvcm1hdD0l
Y3QnLCBoYXNoXSwKKyAgICAgICAgICAgIFtzZWxmLmV4ZWN1dGFibGUoKSwgJ3Nob3cnLCAnLXMn
LCAnLS1mb3JtYXQ9JWN0JywgaGFzaF0sCiAgICAgICAgICAgICBjd2Q9c2VsZi5yb290X3BhdGgs
IGNhcHR1cmVfb3V0cHV0PVRydWUsIGVuY29kaW5nPSd1dGYtOCcsCiAgICAgICAgICkKICAgICAg
ICAgaWYgY29tbWl0X3RpbWUucmV0dXJuY29kZToKQEAgLTI3MCw3ICsyNzQsNyBAQCBjbGFzcyBH
aXQoU2NtKToKICAgICAgICAgICAgICkKIAogICAgICAgICBvdXRwdXQgPSBydW4oCi0gICAgICAg
ICAgICBbc2VsZi5leGVjdXRhYmxlLCAncmV2LXBhcnNlJywgYXJndW1lbnRdLAorICAgICAgICAg
ICAgW3NlbGYuZXhlY3V0YWJsZSgpLCAncmV2LXBhcnNlJywgYXJndW1lbnRdLAogICAgICAgICAg
ICAgY3dkPXNlbGYucm9vdF9wYXRoLCBjYXB0dXJlX291dHB1dD1UcnVlLCBlbmNvZGluZz0ndXRm
LTgnLAogICAgICAgICApCiAgICAgICAgIGlmIG91dHB1dC5yZXR1cm5jb2RlOgpJbmRleDogVG9v
bHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvbG9jYWwvc2NtLnB5
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtp
dHNjbXB5L2xvY2FsL3NjbS5weQkocmV2aXNpb24gMjY4NjIwKQorKysgVG9vbHMvU2NyaXB0cy9s
aWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvbG9jYWwvc2NtLnB5CSh3b3JraW5nIGNv
cHkpCkBAIC0yMiwxMSArMjIsMTMgQEAKIAogCiBpbXBvcnQgbG9nZ2luZworaW1wb3J0IG9zCiBp
bXBvcnQgcmUKIGltcG9ydCBzaXgKIGltcG9ydCBzeXMKIAogZnJvbSBsb2dnaW5nIGltcG9ydCBO
dWxsSGFuZGxlcgorZnJvbSB3ZWJraXRjb3JlcHkgaW1wb3J0IHJ1bgogZnJvbSB3ZWJraXRzY21w
eSBpbXBvcnQgbG9nLCBDb21taXQKIAogCkBAIC0zOSw3ICs0MSwxNiBAQCBjbGFzcyBTY20ob2Jq
ZWN0KToKICAgICBERVZfQlJBTkNIRVMgPSByZS5jb21waWxlKHInLipbKGVuZykoZGV2KShidWcp
XS8uKycpCiAgICAgUFJPRF9CUkFOQ0hFUyA9IHJlLmNvbXBpbGUocidcUystW1xkK1wuXSstYnJh
bmNoJykKIAotICAgIGV4ZWN1dGFibGUgPSBOb25lCisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVm
IGV4ZWN1dGFibGUoY2xzLCBwcm9ncmFtKToKKyAgICAgICAgZm9yIGNhbmRpZGF0ZSBpbiBbJy91
c3IvYmluL3t9Jy5mb3JtYXQocHJvZ3JhbSksICcvdXNyL2xvY2FsL2Jpbi97fScuZm9ybWF0KHBy
b2dyYW0pXToKKyAgICAgICAgICAgIGlmIG9zLnBhdGguZXhpc3RzKGNhbmRpZGF0ZSk6CisgICAg
ICAgICAgICAgICAgcmV0dXJuIGNhbmRpZGF0ZQorCisgICAgICAgIHdoaWNoID0gcnVuKFsnL3Vz
ci9iaW4vd2hpY2gnLCBwcm9ncmFtXSwgY2FwdHVyZV9vdXRwdXQ9VHJ1ZSwgZW5jb2Rpbmc9J3V0
Zi04JykKKyAgICAgICAgaWYgbm90IHdoaWNoLnJldHVybmNvZGU6CisgICAgICAgICAgICByZXR1
cm4gb3MucGF0aC5yZWFscGF0aCh3aGljaC5zdGRvdXQucnN0cmlwKCkpCisgICAgICAgIHJhaXNl
IE9TRXJyb3IoIkNhbm5vdCBmaW5kICd7fScgcHJvZ3JhbSIuZm9ybWF0KHByb2dyYW0pKQogCiAg
ICAgQGNsYXNzbWV0aG9kCiAgICAgZGVmIGZyb21fcGF0aChjbHMsIHBhdGgpOgpJbmRleDogVG9v
bHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvbG9jYWwvc3ZuLnB5
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtp
dHNjbXB5L2xvY2FsL3N2bi5weQkocmV2aXNpb24gMjY4NjIwKQorKysgVG9vbHMvU2NyaXB0cy9s
aWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvbG9jYWwvc3ZuLnB5CSh3b3JraW5nIGNv
cHkpCkBAIC0zNywxMyArMzcsMTcgQEAgZnJvbSB3ZWJraXRzY21weSBpbXBvcnQgQ29tbWl0LCBD
b250cmlidQogCiAKIGNsYXNzIFN2bihTY20pOgotICAgIGV4ZWN1dGFibGUgPSAnL3Vzci9iaW4v
c3ZuJyBpZiBvcy5wYXRoLmV4aXN0cygnL3Vzci9iaW4vc3ZuJykgZWxzZSAnL3Vzci9sb2NhbC9i
aW4vc3ZuJwogICAgIExPR19SRSA9IHJlLmNvbXBpbGUocidyKD9QPHJldmlzaW9uPlxkKykgXHwg
KD9QPGVtYWlsPi4qKSBcfCAoP1A8ZGF0ZT4uKiknKQogICAgIENBQ0hFX1ZFUlNJT04gPSBWZXJz
aW9uKDEpCiAKICAgICBAY2xhc3NtZXRob2QKKyAgICBAZGVjb3JhdG9ycy5NZW1vaXplKCkKKyAg
ICBkZWYgZXhlY3V0YWJsZShjbHMpOgorICAgICAgICByZXR1cm4gU2NtLmV4ZWN1dGFibGUoJ3N2
bicpCisKKyAgICBAY2xhc3NtZXRob2QKICAgICBkZWYgaXNfY2hlY2tvdXQoY2xzLCBwYXRoKToK
LSAgICAgICAgcmV0dXJuIHJ1bihbY2xzLmV4ZWN1dGFibGUsICdpbmZvJ10sIGN3ZD1wYXRoLCBj
YXB0dXJlX291dHB1dD1UcnVlKS5yZXR1cm5jb2RlID09IDAKKyAgICAgICAgcmV0dXJuIHJ1bihb
Y2xzLmV4ZWN1dGFibGUoKSwgJ2luZm8nXSwgY3dkPXBhdGgsIGNhcHR1cmVfb3V0cHV0PVRydWUp
LnJldHVybmNvZGUgPT0gMAogCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBhdGgsIGRldl9icmFu
Y2hlcz1Ob25lLCBwcm9kX2JyYW5jaGVzPU5vbmUpOgogICAgICAgICBzdXBlcihTdm4sIHNlbGYp
Ll9faW5pdF9fKHBhdGgsIGRldl9icmFuY2hlcz1kZXZfYnJhbmNoZXMsIHByb2RfYnJhbmNoZXM9
cHJvZF9icmFuY2hlcykKQEAgLTcwLDcgKzc0LDcgQEAgY2xhc3MgU3ZuKFNjbSk6CiAgICAgICAg
IGFkZGl0aW9uYWxfYXJncyA9IFsnXi9icmFuY2hlcy97fScuZm9ybWF0KGJyYW5jaCldIGlmIGJy
YW5jaCBhbmQgYnJhbmNoICE9IHNlbGYuZGVmYXVsdF9icmFuY2ggZWxzZSBbXQogICAgICAgICBh
ZGRpdGlvbmFsX2FyZ3MgKz0gWyctcicsIHN0cihyZXZpc2lvbildIGlmIHJldmlzaW9uIGVsc2Ug
W10KIAotICAgICAgICBpbmZvX3Jlc3VsdCA9IHJ1bihbc2VsZi5leGVjdXRhYmxlLCAnaW5mbydd
ICsgYWRkaXRpb25hbF9hcmdzLCBjd2Q9c2VsZi5yb290X3BhdGgsIGNhcHR1cmVfb3V0cHV0PVRy
dWUsIGVuY29kaW5nPSd1dGYtOCcpCisgICAgICAgIGluZm9fcmVzdWx0ID0gcnVuKFtzZWxmLmV4
ZWN1dGFibGUoKSwgJ2luZm8nXSArIGFkZGl0aW9uYWxfYXJncywgY3dkPXNlbGYucm9vdF9wYXRo
LCBjYXB0dXJlX291dHB1dD1UcnVlLCBlbmNvZGluZz0ndXRmLTgnKQogICAgICAgICBpZiBpbmZv
X3Jlc3VsdC5yZXR1cm5jb2RlOgogICAgICAgICAgICAgcmV0dXJuIHt9CiAKQEAgLTEwMCw3ICsx
MDQsNyBAQCBjbGFzcyBTdm4oU2NtKToKICAgICAgICAgcmV0dXJuIHNlbGYuaW5mbygpWydSZWxh
dGl2ZSBVUkwnXVsyOl0KIAogICAgIGRlZiBsaXN0KHNlbGYsIGNhdGVnb3J5KToKLSAgICAgICAg
bGlzdF9yZXN1bHQgPSBydW4oW3NlbGYuZXhlY3V0YWJsZSwgJ2xpc3QnLCAnXi97fScuZm9ybWF0
KGNhdGVnb3J5KV0sIGN3ZD1zZWxmLnJvb3RfcGF0aCwgY2FwdHVyZV9vdXRwdXQ9VHJ1ZSwgZW5j
b2Rpbmc9J3V0Zi04JykKKyAgICAgICAgbGlzdF9yZXN1bHQgPSBydW4oW3NlbGYuZXhlY3V0YWJs
ZSgpLCAnbGlzdCcsICdeL3t9Jy5mb3JtYXQoY2F0ZWdvcnkpXSwgY3dkPXNlbGYucm9vdF9wYXRo
LCBjYXB0dXJlX291dHB1dD1UcnVlLCBlbmNvZGluZz0ndXRmLTgnKQogICAgICAgICBpZiBsaXN0
X3Jlc3VsdC5yZXR1cm5jb2RlOgogICAgICAgICAgICAgcmV0dXJuIFtdCiAgICAgICAgIHJldHVy
biBbZWxlbWVudC5yc3RyaXAoJy8nKSBmb3IgZWxlbWVudCBpbiBsaXN0X3Jlc3VsdC5zdGRvdXQu
c3BsaXRsaW5lcygpXQpAQCAtMTQxLDcgKzE0NSw3IEBAIGNsYXNzIFN2bihTY20pOgogICAgICAg
ICAgICAgICAgIGt3YXJncyA9IGRpY3QoZW5jb2Rpbmc9J3V0Zi04JykKIAogICAgICAgICAgICAg
bG9nID0gc3VicHJvY2Vzcy5Qb3BlbigKLSAgICAgICAgICAgICAgICBbc2VsZi5leGVjdXRhYmxl
LCAnbG9nJywgJy1xJywgYnJhbmNoX2FyZ10sCisgICAgICAgICAgICAgICAgW3NlbGYuZXhlY3V0
YWJsZSgpLCAnbG9nJywgJy1xJywgYnJhbmNoX2FyZ10sCiAgICAgICAgICAgICAgICAgY3dkPXNl
bGYucm9vdF9wYXRoLAogICAgICAgICAgICAgICAgIHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsCiAg
ICAgICAgICAgICAgICAgc3RkZXJyPXN1YnByb2Nlc3MuUElQRSwKQEAgLTIwNyw3ICsyMTEsNyBA
QCBjbGFzcyBTdm4oU2NtKToKICAgICAgICAgICAgIHJldHVybiBjYW5kaWRhdGUKIAogICAgICAg
ICBwcm9jZXNzID0gcnVuKAotICAgICAgICAgICAgW3NlbGYuZXhlY3V0YWJsZSwgJ2xvZycsICct
dicsICctcScsIHNlbGYucmVtb3RlKCksICctcicsIHN0cihyZXZpc2lvbiksICctbCcsICcxJ10s
CisgICAgICAgICAgICBbc2VsZi5leGVjdXRhYmxlKCksICdsb2cnLCAnLXYnLCAnLXEnLCBzZWxm
LnJlbW90ZSgpLCAnLXInLCBzdHIocmV2aXNpb24pLCAnLWwnLCAnMSddLAogICAgICAgICAgICAg
Y3dkPXNlbGYucm9vdF9wYXRoLCBjYXB0dXJlX291dHB1dD1UcnVlLCBlbmNvZGluZz0ndXRmLTgn
LAogICAgICAgICApCiAKQEAgLTMyMiw3ICszMjYsNyBAQCBjbGFzcyBTdm4oU2NtKToKIAogICAg
ICAgICBicmFuY2hfYXJnID0gJ14ve317fScuZm9ybWF0KCcnIGlmIGJyYW5jaCA9PSBzZWxmLmRl
ZmF1bHRfYnJhbmNoIGVsc2UgJ2JyYW5jaGVzLycsIGJyYW5jaCkKICAgICAgICAgbG9nID0gcnVu
KAotICAgICAgICAgICAgW3NlbGYuZXhlY3V0YWJsZSwgJ2xvZycsICctbCcsICcxJywgJy1yJywg
c3RyKHJldmlzaW9uKSwgYnJhbmNoX2FyZ10sIGN3ZD1zZWxmLnJvb3RfcGF0aCwKKyAgICAgICAg
ICAgIFtzZWxmLmV4ZWN1dGFibGUoKSwgJ2xvZycsICctbCcsICcxJywgJy1yJywgc3RyKHJldmlz
aW9uKSwgYnJhbmNoX2FyZ10sIGN3ZD1zZWxmLnJvb3RfcGF0aCwKICAgICAgICAgICAgIGNhcHR1
cmVfb3V0cHV0PVRydWUsIGVuY29kaW5nPSd1dGYtOCcsCiAgICAgICAgICkKICAgICAgICAgc3Bs
aXRfbG9nID0gbG9nLnN0ZG91dC5zcGxpdGxpbmVzKCkKSW5kZXg6IFRvb2xzL1NjcmlwdHMvbGli
cmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L21vY2tzL2xvY2FsL2dpdC5weQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS9t
b2Nrcy9sb2NhbC9naXQucHkJKHJldmlzaW9uIDI2ODYyMCkKKysrIFRvb2xzL1NjcmlwdHMvbGli
cmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L21vY2tzL2xvY2FsL2dpdC5weQkod29ya2lu
ZyBjb3B5KQpAQCAtNDUsNiArNDUsMTEgQEAgY2xhc3MgR2l0KG1vY2tzLlN1YnByb2Nlc3MpOgog
ICAgICAgICBzZWxmLmJyYW5jaGVzID0gYnJhbmNoZXMgb3IgW10KICAgICAgICAgc2VsZi50YWdz
ID0gdGFncyBvciBbXQogCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHNlbGYuZXhlY3V0YWJs
ZSA9IGxvY2FsLkdpdC5leGVjdXRhYmxlKCkKKyAgICAgICAgZXhjZXB0IChPU0Vycm9yLCBBc3Nl
cnRpb25FcnJvcik6CisgICAgICAgICAgICBzZWxmLmV4ZWN1dGFibGUgPSAnL3Vzci9iaW4vZ2l0
JworCiAgICAgICAgICMgUHJvdmlkZSBhIHJlYXNvbmFibGUgc2V0IG9mIGNvbW1pdHMgdG8gdGVz
dCBhZ2FpbnN0CiAgICAgICAgIGNvbnRyaWJ1dG9yID0gQ29udHJpYnV0b3IobmFtZT0nSm9uYXRo
YW4gQmVkYXJkJywgZW1haWxzPVsnamJlZGFyZEBhcHBsZS5jb20nXSkKICAgICAgICAgc2VsZi5j
b21taXRzID0gewpAQCAtMTE3LDcgKzEyMiw3IEBAIGNsYXNzIEdpdChtb2Nrcy5TdWJwcm9jZXNz
KToKICAgICAgICAgaWYgZ2l0X3N2bjoKICAgICAgICAgICAgIGdpdF9zdm5fcm91dGVzID0gWwog
ICAgICAgICAgICAgICAgIG1vY2tzLlN1YnByb2Nlc3MuUm91dGUoCi0gICAgICAgICAgICAgICAg
ICAgIGxvY2FsLkdpdC5leGVjdXRhYmxlLCAnc3ZuJywgJ2ZpbmQtcmV2JywgcmUuY29tcGlsZShy
J3JcZCsnKSwKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5leGVjdXRhYmxlLCAnc3ZuJywgJ2Zp
bmQtcmV2JywgcmUuY29tcGlsZShyJ3JcZCsnKSwKICAgICAgICAgICAgICAgICAgICAgY3dkPXNl
bGYucGF0aCwKICAgICAgICAgICAgICAgICAgICAgZ2VuZXJhdG9yPWxhbWJkYSAqYXJncywgKipr
d2FyZ3M6CiAgICAgICAgICAgICAgICAgICAgICAgICBtb2Nrcy5Qcm9jZXNzQ29tcGxldGlvbigK
QEAgLTEyNSw3ICsxMzAsNyBAQCBjbGFzcyBHaXQobW9ja3MuU3VicHJvY2Vzcyk6CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgc3Rkb3V0PWdldGF0dHIoc2VsZi5maW5kKGFyZ3NbM11bMTpd
KSwgJ2hhc2gnLCAnXG4nKSwKICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAg
ICAgICApLCBtb2Nrcy5TdWJwcm9jZXNzLlJvdXRlKAotICAgICAgICAgICAgICAgICAgICBsb2Nh
bC5HaXQuZXhlY3V0YWJsZSwgJ3N2bicsICdpbmZvJywKKyAgICAgICAgICAgICAgICAgICAgc2Vs
Zi5leGVjdXRhYmxlLCAnc3ZuJywgJ2luZm8nLAogICAgICAgICAgICAgICAgICAgICBjd2Q9c2Vs
Zi5wYXRoLAogICAgICAgICAgICAgICAgICAgICBnZW5lcmF0b3I9bGFtYmRhICphcmdzLCAqKmt3
YXJnczoKICAgICAgICAgICAgICAgICAgICAgICAgIG1vY2tzLlByb2Nlc3NDb21wbGV0aW9uKApA
QCAtMTUzLDE0ICsxNTgsMjAgQEAgY2xhc3MgR2l0KG1vY2tzLlN1YnByb2Nlc3MpOgogCiAgICAg
ICAgIGVsc2U6CiAgICAgICAgICAgICBnaXRfc3ZuX3JvdXRlcyA9IFttb2Nrcy5TdWJwcm9jZXNz
LlJvdXRlKAotICAgICAgICAgICAgICAgIGxvY2FsLkdpdC5leGVjdXRhYmxlLCAnc3ZuJywKKyAg
ICAgICAgICAgICAgICBzZWxmLmV4ZWN1dGFibGUsICdzdm4nLAogICAgICAgICAgICAgICAgIGN3
ZD1zZWxmLnBhdGgsCiAgICAgICAgICAgICAgICAgY29tcGxldGlvbj1tb2Nrcy5Qcm9jZXNzQ29t
cGxldGlvbihyZXR1cm5jb2RlPTEsIGVsYXBzZWQ9MiksCiAgICAgICAgICAgICApXQogCiAgICAg
ICAgIHN1cGVyKEdpdCwgc2VsZikuX19pbml0X18oCiAgICAgICAgICAgICBtb2Nrcy5TdWJwcm9j
ZXNzLlJvdXRlKAotICAgICAgICAgICAgICAgIGxvY2FsLkdpdC5leGVjdXRhYmxlLCAnc3RhdHVz
JywKKyAgICAgICAgICAgICAgICAnL3Vzci9iaW4vd2hpY2gnLCAnZ2l0JywKKyAgICAgICAgICAg
ICAgICBjb21wbGV0aW9uPW1vY2tzLlByb2Nlc3NDb21wbGV0aW9uKAorICAgICAgICAgICAgICAg
ICAgICByZXR1cm5jb2RlPTAsCisgICAgICAgICAgICAgICAgICAgIHN0ZG91dD0ne31cbicuZm9y
bWF0KHNlbGYuZXhlY3V0YWJsZSksCisgICAgICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICks
IG1vY2tzLlN1YnByb2Nlc3MuUm91dGUoCisgICAgICAgICAgICAgICAgc2VsZi5leGVjdXRhYmxl
LCAnc3RhdHVzJywKICAgICAgICAgICAgICAgICBjd2Q9c2VsZi5wYXRoLAogICAgICAgICAgICAg
ICAgIGdlbmVyYXRvcj1sYW1iZGEgKmFyZ3MsICoqa3dhcmdzOgogICAgICAgICAgICAgICAgICAg
ICBtb2Nrcy5Qcm9jZXNzQ29tcGxldGlvbigKQEAgLTE3NSwyMSArMTg2LDIxIEBAIG5vdGhpbmcg
dG8gY29tbWl0LCB3b3JraW5nIHRyZWUgY2xlYW4KICAgICAgICAgICAgICAgICAgICAgKSwKICAg
ICAgICAgICAgICksCiAgICAgICAgICAgICBtb2Nrcy5TdWJwcm9jZXNzLlJvdXRlKAotICAgICAg
ICAgICAgICAgIGxvY2FsLkdpdC5leGVjdXRhYmxlLCAncmV2LXBhcnNlJywgJy0tc2hvdy10b3Bs
ZXZlbCcsCisgICAgICAgICAgICAgICAgc2VsZi5leGVjdXRhYmxlLCAncmV2LXBhcnNlJywgJy0t
c2hvdy10b3BsZXZlbCcsCiAgICAgICAgICAgICAgICAgY3dkPXNlbGYucGF0aCwKICAgICAgICAg
ICAgICAgICBjb21wbGV0aW9uPW1vY2tzLlByb2Nlc3NDb21wbGV0aW9uKAogICAgICAgICAgICAg
ICAgICAgICByZXR1cm5jb2RlPTAsCiAgICAgICAgICAgICAgICAgICAgIHN0ZG91dD0ne31cbicu
Zm9ybWF0KHNlbGYucGF0aCksCiAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICksIG1v
Y2tzLlN1YnByb2Nlc3MuUm91dGUoCi0gICAgICAgICAgICAgICAgbG9jYWwuR2l0LmV4ZWN1dGFi
bGUsICdyZXYtcGFyc2UnLCAnLS1hYmJyZXYtcmVmJywgJ0hFQUQnLAorICAgICAgICAgICAgICAg
IHNlbGYuZXhlY3V0YWJsZSwgJ3Jldi1wYXJzZScsICctLWFiYnJldi1yZWYnLCAnSEVBRCcsCiAg
ICAgICAgICAgICAgICAgY3dkPXNlbGYucGF0aCwKICAgICAgICAgICAgICAgICBnZW5lcmF0b3I9
bGFtYmRhICphcmdzLCAqKmt3YXJnczogbW9ja3MuUHJvY2Vzc0NvbXBsZXRpb24oCiAgICAgICAg
ICAgICAgICAgICAgIHJldHVybmNvZGU9MCwKICAgICAgICAgICAgICAgICAgICAgc3Rkb3V0PSd7
fVxuJy5mb3JtYXQoJ0hFQUQnIGlmIHNlbGYuZGV0YWNoZWQgZWxzZSBzZWxmLmJyYW5jaCksCiAg
ICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICksIG1vY2tzLlN1YnByb2Nlc3MuUm91dGUo
Ci0gICAgICAgICAgICAgICAgbG9jYWwuR2l0LmV4ZWN1dGFibGUsICdyZW1vdGUnLCAnZ2V0LXVy
bCcsICcuKicsCisgICAgICAgICAgICAgICAgc2VsZi5leGVjdXRhYmxlLCAncmVtb3RlJywgJ2dl
dC11cmwnLCAnLionLAogICAgICAgICAgICAgICAgIGN3ZD1zZWxmLnBhdGgsCiAgICAgICAgICAg
ICAgICAgZ2VuZXJhdG9yPWxhbWJkYSAqYXJncywgKiprd2FyZ3M6IG1vY2tzLlByb2Nlc3NDb21w
bGV0aW9uKAogICAgICAgICAgICAgICAgICAgICByZXR1cm5jb2RlPTAsCkBAIC0xOTksNyArMjEw
LDcgQEAgbm90aGluZyB0byBjb21taXQsIHdvcmtpbmcgdHJlZSBjbGVhbgogICAgICAgICAgICAg
ICAgICAgICBzdGRlcnI9ImZhdGFsOiBObyBzdWNoIHJlbW90ZSAne30nXG4iLmZvcm1hdChhcmdz
WzNdKSwKICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgKSwgbW9ja3MuU3VicHJvY2Vz
cy5Sb3V0ZSgKLSAgICAgICAgICAgICAgICBsb2NhbC5HaXQuZXhlY3V0YWJsZSwgJ2JyYW5jaCcs
ICctYScsCisgICAgICAgICAgICAgICAgc2VsZi5leGVjdXRhYmxlLCAnYnJhbmNoJywgJy1hJywK
ICAgICAgICAgICAgICAgICBjd2Q9c2VsZi5wYXRoLAogICAgICAgICAgICAgICAgIGdlbmVyYXRv
cj1sYW1iZGEgKmFyZ3MsICoqa3dhcmdzOiBtb2Nrcy5Qcm9jZXNzQ29tcGxldGlvbigKICAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuY29kZT0wLApAQCAtMjA3LDI4ICsyMTgsMjggQEAgbm90aGlu
ZyB0byBjb21taXQsIHdvcmtpbmcgdHJlZSBjbGVhbgogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgJ1xucmVtb3Rlcy9vcmlnaW4vSEVBRCAtPiBvcmlnaW4ve31cbicuZm9ybWF0KGRlZmF1bHRf
YnJhbmNoKSwKICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgKSwgbW9ja3MuU3VicHJv
Y2Vzcy5Sb3V0ZSgKLSAgICAgICAgICAgICAgICBsb2NhbC5HaXQuZXhlY3V0YWJsZSwgJ3RhZycs
CisgICAgICAgICAgICAgICAgc2VsZi5leGVjdXRhYmxlLCAndGFnJywKICAgICAgICAgICAgICAg
ICBjd2Q9c2VsZi5wYXRoLAogICAgICAgICAgICAgICAgIGdlbmVyYXRvcj1sYW1iZGEgKmFyZ3Ms
ICoqa3dhcmdzOiBtb2Nrcy5Qcm9jZXNzQ29tcGxldGlvbigKICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuY29kZT0wLAogICAgICAgICAgICAgICAgICAgICBzdGRvdXQ9J1xuJy5qb2luKHNlbGYu
dGFncykgKyAnXG4nLAogICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICApLCBtb2Nrcy5T
dWJwcm9jZXNzLlJvdXRlKAotICAgICAgICAgICAgICAgIGxvY2FsLkdpdC5leGVjdXRhYmxlLCAn
cmV2LXBhcnNlJywgJy0tYWJicmV2LXJlZicsICdvcmlnaW4vSEVBRCcsCisgICAgICAgICAgICAg
ICAgc2VsZi5leGVjdXRhYmxlLCAncmV2LXBhcnNlJywgJy0tYWJicmV2LXJlZicsICdvcmlnaW4v
SEVBRCcsCiAgICAgICAgICAgICAgICAgY3dkPXNlbGYucGF0aCwKICAgICAgICAgICAgICAgICBn
ZW5lcmF0b3I9bGFtYmRhICphcmdzLCAqKmt3YXJnczogbW9ja3MuUHJvY2Vzc0NvbXBsZXRpb24o
CiAgICAgICAgICAgICAgICAgICAgIHJldHVybmNvZGU9MCwKICAgICAgICAgICAgICAgICAgICAg
c3Rkb3V0PSdvcmlnaW4ve31cbicuZm9ybWF0KGRlZmF1bHRfYnJhbmNoKSwKICAgICAgICAgICAg
ICAgICApLAogICAgICAgICAgICAgKSwgbW9ja3MuU3VicHJvY2Vzcy5Sb3V0ZSgKLSAgICAgICAg
ICAgICAgICBsb2NhbC5HaXQuZXhlY3V0YWJsZSwgJ3Jldi1wYXJzZScsICcuKicsCisgICAgICAg
ICAgICAgICAgc2VsZi5leGVjdXRhYmxlLCAncmV2LXBhcnNlJywgJy4qJywKICAgICAgICAgICAg
ICAgICBjd2Q9c2VsZi5wYXRoLAogICAgICAgICAgICAgICAgIGdlbmVyYXRvcj1sYW1iZGEgKmFy
Z3MsICoqa3dhcmdzOiBtb2Nrcy5Qcm9jZXNzQ29tcGxldGlvbigKICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuY29kZT0wLAogICAgICAgICAgICAgICAgICAgICBzdGRvdXQ9J3t9XG4nLmZvcm1h
dChzZWxmLmZpbmQoYXJnc1syXSkuaGFzaCksCiAgICAgICAgICAgICAgICAgKSBpZiBzZWxmLmZp
bmQoYXJnc1syXSkgZWxzZSBtb2Nrcy5Qcm9jZXNzQ29tcGxldGlvbihyZXR1cm5jb2RlPTEyOCkK
ICAgICAgICAgICAgICksIG1vY2tzLlN1YnByb2Nlc3MuUm91dGUoCi0gICAgICAgICAgICAgICAg
bG9jYWwuR2l0LmV4ZWN1dGFibGUsICdsb2cnLCByZS5jb21waWxlKHInLisnKSwgJy0xJywKKyAg
ICAgICAgICAgICAgICBzZWxmLmV4ZWN1dGFibGUsICdsb2cnLCByZS5jb21waWxlKHInLisnKSwg
Jy0xJywKICAgICAgICAgICAgICAgICBjd2Q9c2VsZi5wYXRoLAogICAgICAgICAgICAgICAgIGdl
bmVyYXRvcj1sYW1iZGEgKmFyZ3MsICoqa3dhcmdzOiBtb2Nrcy5Qcm9jZXNzQ29tcGxldGlvbigK
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuY29kZT0wLApAQCAtMjUzLDE0ICsyNjQsMTQgQEAg
bm90aGluZyB0byBjb21taXQsIHdvcmtpbmcgdHJlZSBjbGVhbgogICAgICAgICAgICAgICAgICAg
ICAgICAgKSwKICAgICAgICAgICAgICAgICApIGlmIHNlbGYuZmluZChhcmdzWzJdKSBlbHNlIG1v
Y2tzLlByb2Nlc3NDb21wbGV0aW9uKHJldHVybmNvZGU9MTI4KSwKICAgICAgICAgICAgICksIG1v
Y2tzLlN1YnByb2Nlc3MuUm91dGUoCi0gICAgICAgICAgICAgICAgbG9jYWwuR2l0LmV4ZWN1dGFi
bGUsICdyZXYtbGlzdCcsICctLWNvdW50JywgJy0tbm8tbWVyZ2VzJywgcmUuY29tcGlsZShyJy4r
JyksCisgICAgICAgICAgICAgICAgc2VsZi5leGVjdXRhYmxlLCAncmV2LWxpc3QnLCAnLS1jb3Vu
dCcsICctLW5vLW1lcmdlcycsIHJlLmNvbXBpbGUocicuKycpLAogICAgICAgICAgICAgICAgIGN3
ZD1zZWxmLnBhdGgsCiAgICAgICAgICAgICAgICAgZ2VuZXJhdG9yPWxhbWJkYSAqYXJncywgKipr
d2FyZ3M6IG1vY2tzLlByb2Nlc3NDb21wbGV0aW9uKAogICAgICAgICAgICAgICAgICAgICByZXR1
cm5jb2RlPTAsCiAgICAgICAgICAgICAgICAgICAgIHN0ZG91dD0ne31cbicuZm9ybWF0KHNlbGYu
Y291bnQoYXJnc1s0XSkpCiAgICAgICAgICAgICAgICAgKSBpZiBzZWxmLmZpbmQoYXJnc1s0XSkg
ZWxzZSBtb2Nrcy5Qcm9jZXNzQ29tcGxldGlvbihyZXR1cm5jb2RlPTEyOCksCiAgICAgICAgICAg
ICApLCBtb2Nrcy5TdWJwcm9jZXNzLlJvdXRlKAotICAgICAgICAgICAgICAgIGxvY2FsLkdpdC5l
eGVjdXRhYmxlLCAnc2hvdycsICctcycsICctLWZvcm1hdD0lY3QnLCByZS5jb21waWxlKHInLisn
KSwKKyAgICAgICAgICAgICAgICBzZWxmLmV4ZWN1dGFibGUsICdzaG93JywgJy1zJywgJy0tZm9y
bWF0PSVjdCcsIHJlLmNvbXBpbGUocicuKycpLAogICAgICAgICAgICAgICAgIGN3ZD1zZWxmLnBh
dGgsCiAgICAgICAgICAgICAgICAgZ2VuZXJhdG9yPWxhbWJkYSAqYXJncywgKiprd2FyZ3M6IG1v
Y2tzLlByb2Nlc3NDb21wbGV0aW9uKAogICAgICAgICAgICAgICAgICAgICByZXR1cm5jb2RlPTAs
CkBAIC0yNjksMjEgKzI4MCwyMSBAQCBub3RoaW5nIHRvIGNvbW1pdCwgd29ya2luZyB0cmVlIGNs
ZWFuCiAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICApIGlmIHNlbGYuZmlu
ZChhcmdzWzRdKSBlbHNlIG1vY2tzLlByb2Nlc3NDb21wbGV0aW9uKHJldHVybmNvZGU9MTI4KSwK
ICAgICAgICAgICAgICksIG1vY2tzLlN1YnByb2Nlc3MuUm91dGUoCi0gICAgICAgICAgICAgICAg
bG9jYWwuR2l0LmV4ZWN1dGFibGUsICdicmFuY2gnLCAnLWEnLCAnLS1jb250YWlucycsIHJlLmNv
bXBpbGUocicuKycpLAorICAgICAgICAgICAgICAgIHNlbGYuZXhlY3V0YWJsZSwgJ2JyYW5jaCcs
ICctYScsICctLWNvbnRhaW5zJywgcmUuY29tcGlsZShyJy4rJyksCiAgICAgICAgICAgICAgICAg
Y3dkPXNlbGYucGF0aCwKICAgICAgICAgICAgICAgICBnZW5lcmF0b3I9bGFtYmRhICphcmdzLCAq
Kmt3YXJnczogbW9ja3MuUHJvY2Vzc0NvbXBsZXRpb24oCiAgICAgICAgICAgICAgICAgICAgIHJl
dHVybmNvZGU9MCwKICAgICAgICAgICAgICAgICAgICAgc3Rkb3V0PSdcbicuam9pbihzb3J0ZWQo
c2VsZi5icmFuY2hlc19vbihhcmdzWzRdKSkpICsgJ1xuJywKICAgICAgICAgICAgICAgICApIGlm
IHNlbGYuZmluZChhcmdzWzRdKSBlbHNlIG1vY2tzLlByb2Nlc3NDb21wbGV0aW9uKHJldHVybmNv
ZGU9MTI4KSwKICAgICAgICAgICAgICksIG1vY2tzLlN1YnByb2Nlc3MuUm91dGUoCi0gICAgICAg
ICAgICAgICAgbG9jYWwuR2l0LmV4ZWN1dGFibGUsCisgICAgICAgICAgICAgICAgc2VsZi5leGVj
dXRhYmxlLAogICAgICAgICAgICAgICAgIGN3ZD1zZWxmLnBhdGgsCiAgICAgICAgICAgICAgICAg
Y29tcGxldGlvbj1tb2Nrcy5Qcm9jZXNzQ29tcGxldGlvbigKICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuY29kZT0xLAogICAgICAgICAgICAgICAgICAgICBzdGRlcnI9J3VzYWdlOiBnaXQgWy0t
dmVyc2lvbl0gWy0taGVscF0uLi5cbicsCiAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAg
ICksIG1vY2tzLlN1YnByb2Nlc3MuUm91dGUoCi0gICAgICAgICAgICAgICAgbG9jYWwuR2l0LmV4
ZWN1dGFibGUsCisgICAgICAgICAgICAgICAgc2VsZi5leGVjdXRhYmxlLAogICAgICAgICAgICAg
ICAgIGNvbXBsZXRpb249bW9ja3MuUHJvY2Vzc0NvbXBsZXRpb24oCiAgICAgICAgICAgICAgICAg
ICAgIHJldHVybmNvZGU9MTI4LAogICAgICAgICAgICAgICAgICAgICBzdGRlcnI9J2ZhdGFsOiBu
b3QgYSBnaXQgcmVwb3NpdG9yeSAob3IgYW55IHBhcmVudCB1cCB0byBtb3VudCBwb2ludClcblN0
b3BwaW5nIGF0IGZpbGVzeXN0ZW0gYm91bmRhcnkgKEdJVF9ESVNDT1ZFUllfQUNST1NTX0ZJTEVT
WVNURU0gbm90IHNldCkuXG4nLApJbmRleDogVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0
c2NtcHkvd2Via2l0c2NtcHkvbW9ja3MvbG9jYWwvc3ZuLnB5Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xz
L1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L21vY2tzL2xvY2FsL3N2
bi5weQkocmV2aXNpb24gMjY4NjIwKQorKysgVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0
c2NtcHkvd2Via2l0c2NtcHkvbW9ja3MvbG9jYWwvc3ZuLnB5CSh3b3JraW5nIGNvcHkpCkBAIC01
NCw2ICs1NCwxMSBAQCBjbGFzcyBTdm4obW9ja3MuU3VicHJvY2Vzcyk6CiAgICAgICAgIHNlbGYu
dGFncyA9IHRhZ3Mgb3IgW10KICAgICAgICAgc2VsZi5jb25uZWN0ZWQgPSBUcnVlCiAKKyAgICAg
ICAgdHJ5OgorICAgICAgICAgICAgc2VsZi5leGVjdXRhYmxlID0gbG9jYWwuU3ZuLmV4ZWN1dGFi
bGUoKQorICAgICAgICBleGNlcHQgKE9TRXJyb3IsIEFzc2VydGlvbkVycm9yKToKKyAgICAgICAg
ICAgIHNlbGYuZXhlY3V0YWJsZSA9ICcvdXNyL2Jpbi9zdm4nCisKICAgICAgICAgIyBQcm92aWRl
IGEgcmVhc29uYWJsZSBzZXQgb2YgY29tbWl0cyB0byB0ZXN0IGFnYWluc3QKICAgICAgICAgY29u
dHJpYnV0b3IgPSBDb250cmlidXRvcihuYW1lPSdKb25hdGhhbiBCZWRhcmQnLCBlbWFpbHM9Wydq
YmVkYXJkQGFwcGxlLmNvbSddKQogICAgICAgICBzZWxmLmNvbW1pdHMgPSB7CkBAIC0xMTcsMjkg
KzEyMiwzNSBAQCBjbGFzcyBTdm4obW9ja3MuU3VicHJvY2Vzcyk6CiAKICAgICAgICAgc3VwZXIo
U3ZuLCBzZWxmKS5fX2luaXRfXygKICAgICAgICAgICAgIG1vY2tzLlN1YnByb2Nlc3MuUm91dGUo
Ci0gICAgICAgICAgICAgICAgbG9jYWwuU3ZuLmV4ZWN1dGFibGUsICdpbmZvJywKKyAgICAgICAg
ICAgICAgICAnL3Vzci9iaW4vd2hpY2gnLCAnc3ZuJywKKyAgICAgICAgICAgICAgICBjb21wbGV0
aW9uPW1vY2tzLlByb2Nlc3NDb21wbGV0aW9uKAorICAgICAgICAgICAgICAgICAgICByZXR1cm5j
b2RlPTAsCisgICAgICAgICAgICAgICAgICAgIHN0ZG91dD0ne31cbicuZm9ybWF0KHNlbGYuZXhl
Y3V0YWJsZSksCisgICAgICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICksIG1vY2tzLlN1YnBy
b2Nlc3MuUm91dGUoCisgICAgICAgICAgICAgICAgc2VsZi5leGVjdXRhYmxlLCAnaW5mbycsCiAg
ICAgICAgICAgICAgICAgY3dkPXNlbGYucGF0aCwKICAgICAgICAgICAgICAgICBnZW5lcmF0b3I9
bGFtYmRhICphcmdzLCAqKmt3YXJnczogc2VsZi5faW5mbyhjd2Q9a3dhcmdzLmdldCgnY3dkJywn
JykpCiAgICAgICAgICAgICApLCBtb2Nrcy5TdWJwcm9jZXNzLlJvdXRlKAotICAgICAgICAgICAg
ICAgIGxvY2FsLlN2bi5leGVjdXRhYmxlLCAnaW5mbycsIHNlbGYuQlJBTkNIX1JFLAorICAgICAg
ICAgICAgICAgIHNlbGYuZXhlY3V0YWJsZSwgJ2luZm8nLCBzZWxmLkJSQU5DSF9SRSwKICAgICAg
ICAgICAgICAgICBjd2Q9c2VsZi5wYXRoLAogICAgICAgICAgICAgICAgIGdlbmVyYXRvcj1sYW1i
ZGEgKmFyZ3MsICoqa3dhcmdzOiBzZWxmLl9pbmZvKGJyYW5jaD1zZWxmLkJSQU5DSF9SRS5tYXRj
aChhcmdzWzJdKS5ncm91cCgnYnJhbmNoJyksIGN3ZD1rd2FyZ3MuZ2V0KCdjd2QnLCAnJykpCiAg
ICAgICAgICAgICApLCBtb2Nrcy5TdWJwcm9jZXNzLlJvdXRlKAotICAgICAgICAgICAgICAgIGxv
Y2FsLlN2bi5leGVjdXRhYmxlLCAnbGlzdCcsICdeL2JyYW5jaGVzJywKKyAgICAgICAgICAgICAg
ICBzZWxmLmV4ZWN1dGFibGUsICdsaXN0JywgJ14vYnJhbmNoZXMnLAogICAgICAgICAgICAgICAg
IGN3ZD1zZWxmLnBhdGgsCiAgICAgICAgICAgICAgICAgZ2VuZXJhdG9yPWxhbWJkYSAqYXJncywg
Kiprd2FyZ3M6IG1vY2tzLlByb2Nlc3NDb21wbGV0aW9uKAogICAgICAgICAgICAgICAgICAgICBy
ZXR1cm5jb2RlPTAsCiAgICAgICAgICAgICAgICAgICAgIHN0ZG91dD0nL1xuJy5qb2luKHNvcnRl
ZChzZXQoc2VsZi5icmFuY2hlcykgfCBzZXQoc2VsZi5jb21taXRzLmtleXMoKSkgLSB7J3RydW5r
J30pKSArICcvXG4nLAogICAgICAgICAgICAgICAgICkgaWYgc2VsZi5jb25uZWN0ZWQgZWxzZSBt
b2Nrcy5Qcm9jZXNzQ29tcGxldGlvbihyZXR1cm5jb2RlPTEpLAogICAgICAgICAgICAgKSwgbW9j
a3MuU3VicHJvY2Vzcy5Sb3V0ZSgKLSAgICAgICAgICAgICAgICBsb2NhbC5Tdm4uZXhlY3V0YWJs
ZSwgJ2xpc3QnLCAnXi90YWdzJywKKyAgICAgICAgICAgICAgICBzZWxmLmV4ZWN1dGFibGUsICds
aXN0JywgJ14vdGFncycsCiAgICAgICAgICAgICAgICAgY3dkPXNlbGYucGF0aCwKICAgICAgICAg
ICAgICAgICBnZW5lcmF0b3I9bGFtYmRhICphcmdzLCAqKmt3YXJnczogbW9ja3MuUHJvY2Vzc0Nv
bXBsZXRpb24oCiAgICAgICAgICAgICAgICAgICAgIHJldHVybmNvZGU9MCwKICAgICAgICAgICAg
ICAgICAgICAgc3Rkb3V0PScvXG4nLmpvaW4oc2VsZi50YWdzKSArICcvXG4nLAogICAgICAgICAg
ICAgICAgICkgaWYgc2VsZi5jb25uZWN0ZWQgZWxzZSBtb2Nrcy5Qcm9jZXNzQ29tcGxldGlvbihy
ZXR1cm5jb2RlPTEpLAogICAgICAgICAgICAgKSwgbW9ja3MuU3VicHJvY2Vzcy5Sb3V0ZSgKLSAg
ICAgICAgICAgICAgICBsb2NhbC5Tdm4uZXhlY3V0YWJsZSwgJ2xvZycsICctdicsICctcScsIHNl
bGYucmVtb3RlLCAnLXInLCByZS5jb21waWxlKHInXGQrJyksCisgICAgICAgICAgICAgICAgc2Vs
Zi5leGVjdXRhYmxlLCAnbG9nJywgJy12JywgJy1xJywgc2VsZi5yZW1vdGUsICctcicsIHJlLmNv
bXBpbGUocidcZCsnKSwKICAgICAgICAgICAgICAgICBjd2Q9c2VsZi5wYXRoLAogICAgICAgICAg
ICAgICAgIGdlbmVyYXRvcj1sYW1iZGEgKmFyZ3MsICoqa3dhcmdzOiBtb2Nrcy5Qcm9jZXNzQ29t
cGxldGlvbigKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuY29kZT0wLApAQCAtMTUzLDcgKzE2
NCw3IEBAIGNsYXNzIFN2bihtb2Nrcy5TdWJwcm9jZXNzKToKICAgICAgICAgICAgICAgICAgICAg
ICAgICksCiAgICAgICAgICAgICAgICAgKSBpZiBzZWxmLmNvbm5lY3RlZCBhbmQgc2VsZi5maW5k
KHJldmlzaW9uPWFyZ3NbNl0pIGVsc2UgbW9ja3MuUHJvY2Vzc0NvbXBsZXRpb24ocmV0dXJuY29k
ZT0xKSwKICAgICAgICAgICAgICksIG1vY2tzLlN1YnByb2Nlc3MuUm91dGUoCi0gICAgICAgICAg
ICAgICAgbG9jYWwuU3ZuLmV4ZWN1dGFibGUsICdsb2cnLCAnLXEnLCBzZWxmLkJSQU5DSF9SRSwK
KyAgICAgICAgICAgICAgICBzZWxmLmV4ZWN1dGFibGUsICdsb2cnLCAnLXEnLCBzZWxmLkJSQU5D
SF9SRSwKICAgICAgICAgICAgICAgICBjd2Q9c2VsZi5wYXRoLAogICAgICAgICAgICAgICAgIGdl
bmVyYXRvcj1sYW1iZGEgKmFyZ3MsICoqa3dhcmdzOiBtb2Nrcy5Qcm9jZXNzQ29tcGxldGlvbigK
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuY29kZT0wLApAQCAtMTYyLDIxICsxNzMsMjEgQEAg
Y2xhc3MgU3ZuKG1vY2tzLlN1YnByb2Nlc3MpOgogICAgICAgICAgICAgICAgICAgICBdKSwKICAg
ICAgICAgICAgICAgICApIGlmIHNlbGYuY29ubmVjdGVkIGFuZCBzZWxmLkJSQU5DSF9SRS5tYXRj
aChhcmdzWzNdKS5ncm91cCgnYnJhbmNoJykgaW4gc2VsZi5jb21taXRzIGVsc2UgbW9ja3MuUHJv
Y2Vzc0NvbXBsZXRpb24ocmV0dXJuY29kZT0xKQogICAgICAgICAgICAgKSwgbW9ja3MuU3VicHJv
Y2Vzcy5Sb3V0ZSgKLSAgICAgICAgICAgICAgICBsb2NhbC5Tdm4uZXhlY3V0YWJsZSwgJ2xvZycs
ICctbCcsICcxJywgJy1yJywgcmUuY29tcGlsZShyJ1xkKycpLCBzZWxmLkJSQU5DSF9SRSwKKyAg
ICAgICAgICAgICAgICBzZWxmLmV4ZWN1dGFibGUsICdsb2cnLCAnLWwnLCAnMScsICctcicsIHJl
LmNvbXBpbGUocidcZCsnKSwgc2VsZi5CUkFOQ0hfUkUsCiAgICAgICAgICAgICAgICAgY3dkPXNl
bGYucGF0aCwKICAgICAgICAgICAgICAgICBnZW5lcmF0b3I9bGFtYmRhICphcmdzLCAqKmt3YXJn
czogc2VsZi5fbG9nX2ZvcigKICAgICAgICAgICAgICAgICAgICAgYnJhbmNoPXNlbGYuQlJBTkNI
X1JFLm1hdGNoKGFyZ3NbNl0pLmdyb3VwKCdicmFuY2gnKSwKICAgICAgICAgICAgICAgICAgICAg
cmV2aXNpb249YXJnc1s1XSwKICAgICAgICAgICAgICAgICApIGlmIHNlbGYuY29ubmVjdGVkIGVs
c2UgbW9ja3MuUHJvY2Vzc0NvbXBsZXRpb24ocmV0dXJuY29kZT0xKQogICAgICAgICAgICAgKSwg
bW9ja3MuU3VicHJvY2Vzcy5Sb3V0ZSgKLSAgICAgICAgICAgICAgICBsb2NhbC5Tdm4uZXhlY3V0
YWJsZSwKKyAgICAgICAgICAgICAgICBzZWxmLmV4ZWN1dGFibGUsCiAgICAgICAgICAgICAgICAg
Y3dkPXNlbGYucGF0aCwKICAgICAgICAgICAgICAgICBjb21wbGV0aW9uPW1vY2tzLlByb2Nlc3ND
b21wbGV0aW9uKAogICAgICAgICAgICAgICAgICAgICByZXR1cm5jb2RlPTEsCiAgICAgICAgICAg
ICAgICAgICAgIHN0ZGVycj0iVHlwZSAnc3ZuIGhlbHAnIGZvciB1c2FnZS5cbiIsCiAgICAgICAg
ICAgICAgICAgKQogICAgICAgICAgICAgKSwgbW9ja3MuU3VicHJvY2Vzcy5Sb3V0ZSgKLSAgICAg
ICAgICAgICAgICBsb2NhbC5Tdm4uZXhlY3V0YWJsZSwKKyAgICAgICAgICAgICAgICBzZWxmLmV4
ZWN1dGFibGUsCiAgICAgICAgICAgICAgICAgZ2VuZXJhdG9yPWxhbWJkYSAqYXJncywgKiprd2Fy
Z3M6IG1vY2tzLlByb2Nlc3NDb21wbGV0aW9uKAogICAgICAgICAgICAgICAgICAgICByZXR1cm5j
b2RlPTEsCiAgICAgICAgICAgICAgICAgICAgIHN0ZGVycj0ic3ZuOiBFMTU1MDA3OiAne30nIGlz
IG5vdCBhIHdvcmtpbmcgY29weVxuIi5mb3JtYXQoa3dhcmdzLmdldCgnY3dkJykpLAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>412198</attachid>
            <date>2020-10-23 10:59:48 -0700</date>
            <delta_ts>2020-10-23 11:37:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217717-20201023105947.patch</filename>
            <type>text/plain</type>
            <size>28094</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI2ODkyNykKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDI1IEBACisyMDIwLTEwLTIzICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICBbd2Via2l0c2NtcHldIFVzZSAnd2hpY2gnIHRvIGZpbmQgZ2l0IGFuZCBz
dm4gcGF0aHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIxNzcxNworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzAyOTkxOTI+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTY3JpcHRzL2xpYnJhcmllcy93
ZWJraXRzY21weS93ZWJraXRzY21weS9fX2luaXRfXy5weTogQnVtcCB2ZXJzaW9uLgorICAgICAg
ICAqIFNjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L2xvY2FsL2dpdC5w
eToKKyAgICAgICAgKEdpdCk6CisgICAgICAgIChHaXQuZXhlY3V0YWJsZSk6IEdlbmVyYXRlIGdp
dCBwYXRoIGZyb20gJ3doaWNoJyBjYWxsLgorICAgICAgICAqIFNjcmlwdHMvbGlicmFyaWVzL3dl
YmtpdHNjbXB5L3dlYmtpdHNjbXB5L2xvY2FsL3NjbS5weToKKyAgICAgICAgKFNjbS5leGVjdXRh
YmxlKTogR2VuZXJhdGUgYSBwcm9ncmFtIHBhdGggZnJvbSBhICd3aGljaCcgY2FsbC4KKyAgICAg
ICAgKiBTY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS9sb2NhbC9zdm4u
cHk6CisgICAgICAgIChTdm4pOgorICAgICAgICAoU3ZuLmV4ZWN1dGFibGUpOiBHZW5lcmF0ZSBz
dm4gcGF0aCBmcm9tICd3aGljaCcgY2FsbC4KKyAgICAgICAgKiBTY3JpcHRzL2xpYnJhcmllcy93
ZWJraXRzY21weS93ZWJraXRzY21weS9tb2Nrcy9sb2NhbC9naXQucHk6CisgICAgICAgIChHaXQp
OgorICAgICAgICAqIFNjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L21v
Y2tzL2xvY2FsL3N2bi5weToKKyAgICAgICAgKFN2bi5fX2luaXRfXyk6CisKIDIwMjAtMTAtMjMg
IEFha2FzaCBKYWluICA8YWFrYXNoX2phaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJlbmFtZSBz
bGF2ZSB0byB3b3JrZXIgaW4gd2Via2l0cHkKSW5kZXg6IFRvb2xzL1NjcmlwdHMvbGlicmFyaWVz
L3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L19faW5pdF9fLnB5Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xz
L1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L19faW5pdF9fLnB5CShy
ZXZpc2lvbiAyNjg5MjcpCisrKyBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93
ZWJraXRzY21weS9fX2luaXRfXy5weQkod29ya2luZyBjb3B5KQpAQCAtNDYsNyArNDYsNyBAQCBl
eGNlcHQgSW1wb3J0RXJyb3I6CiAgICAgICAgICJQbGVhc2UgaW5zdGFsbCB3ZWJraXRjb3JlcHkg
d2l0aCBgcGlwIGluc3RhbGwgd2Via2l0Y29yZXB5IC0tZXh0cmEtaW5kZXgtdXJsIDxwYWNrYWdl
IGluZGV4IFVSTD5gIgogICAgICkKIAotdmVyc2lvbiA9IFZlcnNpb24oMCwgMiwgMykKK3ZlcnNp
b24gPSBWZXJzaW9uKDAsIDIsIDQpCiAKIEF1dG9JbnN0YWxsLnJlZ2lzdGVyKFBhY2thZ2UoJ2Rh
dGV1dGlsJywgVmVyc2lvbigyLCA4LCAxKSwgcHlwaV9uYW1lPSdweXRob24tZGF0ZXV0aWwnKSkK
IApJbmRleDogVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkv
bG9jYWwvZ2l0LnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtp
dHNjbXB5L3dlYmtpdHNjbXB5L2xvY2FsL2dpdC5weQkocmV2aXNpb24gMjY4OTI3KQorKysgVG9v
bHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvbG9jYWwvZ2l0LnB5
CSh3b3JraW5nIGNvcHkpCkBAIC0yMCw3ICsyMCw3IEBACiAjIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCiAKLQoraW1wb3J0IG9zCiBpbXBvcnQgcmUKIGltcG9ydCBzaXgKIApA
QCAtMzAsMTMgKzMwLDE3IEBAIGZyb20gd2Via2l0c2NtcHkgaW1wb3J0IENvbW1pdCwgQ29udHJp
YnUKIAogCiBjbGFzcyBHaXQoU2NtKToKLSAgICBleGVjdXRhYmxlID0gJy91c3IvYmluL2dpdCcK
ICAgICBHSVRfQ09NTUlUID0gcmUuY29tcGlsZShyJ2NvbW1pdCAoP1A8aGFzaD5bMC05YS1mXSsp
JykKICAgICBHSVRfU1ZOX1JFVklTSU9OID0gcmUuY29tcGlsZShyJ2dpdC1zdm4taWQ6IFxTKzpc
L1wvLitAKD9QPHJldmlzaW9uPlxkKykgListListListLisnKQogCiAgICAgQGNsYXNzbWV0aG9k
CisgICAgQGRlY29yYXRvcnMuTWVtb2l6ZSgpCisgICAgZGVmIGV4ZWN1dGFibGUoY2xzKToKKyAg
ICAgICAgcmV0dXJuIFNjbS5leGVjdXRhYmxlKCdnaXQnKQorCisgICAgQGNsYXNzbWV0aG9kCiAg
ICAgZGVmIGlzX2NoZWNrb3V0KGNscywgcGF0aCk6Ci0gICAgICAgIHJldHVybiBydW4oW2Nscy5l
eGVjdXRhYmxlLCAncmV2LXBhcnNlJywgJy0tc2hvdy10b3BsZXZlbCddLCBjd2Q9cGF0aCwgY2Fw
dHVyZV9vdXRwdXQ9VHJ1ZSkucmV0dXJuY29kZSA9PSAwCisgICAgICAgIHJldHVybiBydW4oW2Ns
cy5leGVjdXRhYmxlKCksICdyZXYtcGFyc2UnLCAnLS1zaG93LXRvcGxldmVsJ10sIGN3ZD1wYXRo
LCBjYXB0dXJlX291dHB1dD1UcnVlKS5yZXR1cm5jb2RlID09IDAKIAogICAgIGRlZiBfX2luaXRf
XyhzZWxmLCBwYXRoLCBkZXZfYnJhbmNoZXM9Tm9uZSwgcHJvZF9icmFuY2hlcz1Ob25lKToKICAg
ICAgICAgc3VwZXIoR2l0LCBzZWxmKS5fX2luaXRfXyhwYXRoLCBkZXZfYnJhbmNoZXM9ZGV2X2Jy
YW5jaGVzLCBwcm9kX2JyYW5jaGVzPXByb2RfYnJhbmNoZXMpCkBAIC00OCw3ICs1Miw3IEBAIGNs
YXNzIEdpdChTY20pOgogICAgICAgICBpZiBub3Qgc2VsZi5pc19zdm46CiAgICAgICAgICAgICBy
YWlzZSBzZWxmLkV4Y2VwdGlvbignQ2Fubm90IHJ1biBTVk4gaW5mbyBvbiBhIGdpdCBjaGVja291
dCB3aGljaCBpcyBub3QgZ2l0LXN2bicpCiAKLSAgICAgICAgaW5mb19yZXN1bHQgPSBydW4oW3Nl
bGYuZXhlY3V0YWJsZSwgJ3N2bicsICdpbmZvJ10sIGN3ZD1zZWxmLnBhdGgsIGNhcHR1cmVfb3V0
cHV0PVRydWUsIGVuY29kaW5nPSd1dGYtOCcpCisgICAgICAgIGluZm9fcmVzdWx0ID0gcnVuKFtz
ZWxmLmV4ZWN1dGFibGUoKSwgJ3N2bicsICdpbmZvJ10sIGN3ZD1zZWxmLnBhdGgsIGNhcHR1cmVf
b3V0cHV0PVRydWUsIGVuY29kaW5nPSd1dGYtOCcpCiAgICAgICAgIGlmIGluZm9fcmVzdWx0LnJl
dHVybmNvZGU6CiAgICAgICAgICAgICByZXR1cm4ge30KIApAQCAtNjMsNyArNjcsNyBAQCBjbGFz
cyBHaXQoU2NtKToKICAgICBkZWYgaXNfc3ZuKHNlbGYpOgogICAgICAgICB0cnk6CiAgICAgICAg
ICAgICByZXR1cm4gcnVuKAotICAgICAgICAgICAgICAgIFtzZWxmLmV4ZWN1dGFibGUsICdzdm4n
LCAnZmluZC1yZXYnLCAncjEnXSwKKyAgICAgICAgICAgICAgICBbc2VsZi5leGVjdXRhYmxlKCks
ICdzdm4nLCAnZmluZC1yZXYnLCAncjEnXSwKICAgICAgICAgICAgICAgICBjd2Q9c2VsZi5yb290
X3BhdGgsCiAgICAgICAgICAgICAgICAgY2FwdHVyZV9vdXRwdXQ9VHJ1ZSwKICAgICAgICAgICAg
ICAgICBlbmNvZGluZz0ndXRmLTgnLApAQCAtNzksMTQgKzgzLDE0IEBAIGNsYXNzIEdpdChTY20p
OgogICAgIEBwcm9wZXJ0eQogICAgIEBkZWNvcmF0b3JzLk1lbW9pemUoKQogICAgIGRlZiByb290
X3BhdGgoc2VsZik6Ci0gICAgICAgIHJlc3VsdCA9IHJ1bihbc2VsZi5leGVjdXRhYmxlLCAncmV2
LXBhcnNlJywgJy0tc2hvdy10b3BsZXZlbCddLCBjd2Q9c2VsZi5wYXRoLCBjYXB0dXJlX291dHB1
dD1UcnVlLCBlbmNvZGluZz0ndXRmLTgnKQorICAgICAgICByZXN1bHQgPSBydW4oW3NlbGYuZXhl
Y3V0YWJsZSgpLCAncmV2LXBhcnNlJywgJy0tc2hvdy10b3BsZXZlbCddLCBjd2Q9c2VsZi5wYXRo
LCBjYXB0dXJlX291dHB1dD1UcnVlLCBlbmNvZGluZz0ndXRmLTgnKQogICAgICAgICBpZiByZXN1
bHQucmV0dXJuY29kZToKICAgICAgICAgICAgIHJldHVybiBOb25lCiAgICAgICAgIHJldHVybiBy
ZXN1bHQuc3Rkb3V0LnJzdHJpcCgpCiAKICAgICBAcHJvcGVydHkKICAgICBkZWYgZGVmYXVsdF9i
cmFuY2goc2VsZik6Ci0gICAgICAgIHJlc3VsdCA9IHJ1bihbc2VsZi5leGVjdXRhYmxlLCAncmV2
LXBhcnNlJywgJy0tYWJicmV2LXJlZicsICdvcmlnaW4vSEVBRCddLCBjd2Q9c2VsZi5wYXRoLCBj
YXB0dXJlX291dHB1dD1UcnVlLCBlbmNvZGluZz0ndXRmLTgnKQorICAgICAgICByZXN1bHQgPSBy
dW4oW3NlbGYuZXhlY3V0YWJsZSgpLCAncmV2LXBhcnNlJywgJy0tYWJicmV2LXJlZicsICdvcmln
aW4vSEVBRCddLCBjd2Q9c2VsZi5wYXRoLCBjYXB0dXJlX291dHB1dD1UcnVlLCBlbmNvZGluZz0n
dXRmLTgnKQogICAgICAgICBpZiByZXN1bHQucmV0dXJuY29kZToKICAgICAgICAgICAgIGNhbmRp
ZGF0ZXMgPSBzZWxmLmJyYW5jaGVzCiAgICAgICAgICAgICBpZiAnbWFzdGVyJyBpbiBjYW5kaWRh
dGVzOgpAQCAtOTgsMTMgKzEwMiwxMyBAQCBjbGFzcyBHaXQoU2NtKToKIAogICAgIEBwcm9wZXJ0
eQogICAgIGRlZiBicmFuY2goc2VsZik6Ci0gICAgICAgIHN0YXR1cyA9IHJ1bihbc2VsZi5leGVj
dXRhYmxlLCAnc3RhdHVzJ10sIGN3ZD1zZWxmLnJvb3RfcGF0aCwgY2FwdHVyZV9vdXRwdXQ9VHJ1
ZSwgZW5jb2Rpbmc9J3V0Zi04JykKKyAgICAgICAgc3RhdHVzID0gcnVuKFtzZWxmLmV4ZWN1dGFi
bGUoKSwgJ3N0YXR1cyddLCBjd2Q9c2VsZi5yb290X3BhdGgsIGNhcHR1cmVfb3V0cHV0PVRydWUs
IGVuY29kaW5nPSd1dGYtOCcpCiAgICAgICAgIGlmIHN0YXR1cy5yZXR1cm5jb2RlOgogICAgICAg
ICAgICAgcmFpc2Ugc2VsZi5FeGNlcHRpb24oJ0ZhaWxlZCB0byBydW4gYGdpdCBzdGF0dXNgIGZv
ciB7fScuZm9ybWF0KHNlbGYucm9vdF9wYXRoKSkKICAgICAgICAgaWYgc3RhdHVzLnN0ZG91dC5z
cGxpdGxpbmVzKClbMF0uc3RhcnRzd2l0aCgnSEVBRCBkZXRhY2hlZCBhdCcpOgogICAgICAgICAg
ICAgcmV0dXJuIE5vbmUKIAotICAgICAgICByZXN1bHQgPSBydW4oW3NlbGYuZXhlY3V0YWJsZSwg
J3Jldi1wYXJzZScsICctLWFiYnJldi1yZWYnLCAnSEVBRCddLCBjd2Q9c2VsZi5yb290X3BhdGgs
IGNhcHR1cmVfb3V0cHV0PVRydWUsIGVuY29kaW5nPSd1dGYtOCcpCisgICAgICAgIHJlc3VsdCA9
IHJ1bihbc2VsZi5leGVjdXRhYmxlKCksICdyZXYtcGFyc2UnLCAnLS1hYmJyZXYtcmVmJywgJ0hF
QUQnXSwgY3dkPXNlbGYucm9vdF9wYXRoLCBjYXB0dXJlX291dHB1dD1UcnVlLCBlbmNvZGluZz0n
dXRmLTgnKQogICAgICAgICBpZiByZXN1bHQucmV0dXJuY29kZToKICAgICAgICAgICAgIHJhaXNl
IHNlbGYuRXhjZXB0aW9uKCdGYWlsZWQgdG8gcmV0cmlldmUgYnJhbmNoIGZvciB7fScuZm9ybWF0
KHNlbGYucm9vdF9wYXRoKSkKICAgICAgICAgcmV0dXJuIHJlc3VsdC5zdGRvdXQucnN0cmlwKCkK
QEAgLTExNSwyMCArMTE5LDIwIEBAIGNsYXNzIEdpdChTY20pOgogCiAgICAgQHByb3BlcnR5CiAg
ICAgZGVmIHRhZ3Moc2VsZik6Ci0gICAgICAgIHRhZ3MgPSBydW4oW3NlbGYuZXhlY3V0YWJsZSwg
J3RhZyddLCBjd2Q9c2VsZi5yb290X3BhdGgsIGNhcHR1cmVfb3V0cHV0PVRydWUsIGVuY29kaW5n
PSd1dGYtOCcpCisgICAgICAgIHRhZ3MgPSBydW4oW3NlbGYuZXhlY3V0YWJsZSgpLCAndGFnJ10s
IGN3ZD1zZWxmLnJvb3RfcGF0aCwgY2FwdHVyZV9vdXRwdXQ9VHJ1ZSwgZW5jb2Rpbmc9J3V0Zi04
JykKICAgICAgICAgaWYgdGFncy5yZXR1cm5jb2RlOgogICAgICAgICAgICAgcmFpc2Ugc2VsZi5F
eGNlcHRpb24oJ0ZhaWxlZCB0byByZXRyaWV2ZSB0YWcgbGlzdCBmb3Ige30nLmZvcm1hdChzZWxm
LnJvb3RfcGF0aCkpCiAgICAgICAgIHJldHVybiB0YWdzLnN0ZG91dC5zcGxpdGxpbmVzKCkKIAog
ICAgIGRlZiByZW1vdGUoc2VsZiwgbmFtZT1Ob25lKToKLSAgICAgICAgcmVzdWx0ID0gcnVuKFtz
ZWxmLmV4ZWN1dGFibGUsICdyZW1vdGUnLCAnZ2V0LXVybCcsIG5hbWUgb3IgJ29yaWdpbiddLCBj
d2Q9c2VsZi5yb290X3BhdGgsIGNhcHR1cmVfb3V0cHV0PVRydWUsIGVuY29kaW5nPSd1dGYtOCcp
CisgICAgICAgIHJlc3VsdCA9IHJ1bihbc2VsZi5leGVjdXRhYmxlKCksICdyZW1vdGUnLCAnZ2V0
LXVybCcsIG5hbWUgb3IgJ29yaWdpbiddLCBjd2Q9c2VsZi5yb290X3BhdGgsIGNhcHR1cmVfb3V0
cHV0PVRydWUsIGVuY29kaW5nPSd1dGYtOCcpCiAgICAgICAgIGlmIHJlc3VsdC5yZXR1cm5jb2Rl
OgogICAgICAgICAgICAgcmFpc2Ugc2VsZi5FeGNlcHRpb24oJ0ZhaWxlZCB0byByZXRyaWV2ZSBy
ZW1vdGUgZm9yIHt9Jy5mb3JtYXQoc2VsZi5yb290X3BhdGgpKQogICAgICAgICByZXR1cm4gcmVz
dWx0LnN0ZG91dC5yc3RyaXAoKQogCiAgICAgZGVmIF9jb21taXRfY291bnQoc2VsZiwgbmF0aXZl
X3BhcmFtZXRlcik6CiAgICAgICAgIHJldmlzaW9uX2NvdW50ID0gcnVuKAotICAgICAgICAgICAg
W3NlbGYuZXhlY3V0YWJsZSwgJ3Jldi1saXN0JywgJy0tY291bnQnLCAnLS1uby1tZXJnZXMnLCBu
YXRpdmVfcGFyYW1ldGVyXSwKKyAgICAgICAgICAgIFtzZWxmLmV4ZWN1dGFibGUoKSwgJ3Jldi1s
aXN0JywgJy0tY291bnQnLCAnLS1uby1tZXJnZXMnLCBuYXRpdmVfcGFyYW1ldGVyXSwKICAgICAg
ICAgICAgIGN3ZD1zZWxmLnJvb3RfcGF0aCwgY2FwdHVyZV9vdXRwdXQ9VHJ1ZSwgZW5jb2Rpbmc9
J3V0Zi04JywKICAgICAgICAgKQogICAgICAgICBpZiByZXZpc2lvbl9jb3VudC5yZXR1cm5jb2Rl
OgpAQCAtMTM3LDcgKzE0MSw3IEBAIGNsYXNzIEdpdChTY20pOgogCiAgICAgZGVmIF9icmFuY2hl
c19mb3Ioc2VsZiwgaGFzaD1Ob25lKToKICAgICAgICAgYnJhbmNoID0gcnVuKAotICAgICAgICAg
ICAgW3NlbGYuZXhlY3V0YWJsZSwgJ2JyYW5jaCcsICctYSddICsgKFsnLS1jb250YWlucycsIGhh
c2hdIGlmIGhhc2ggZWxzZSBbXSksCisgICAgICAgICAgICBbc2VsZi5leGVjdXRhYmxlKCksICdi
cmFuY2gnLCAnLWEnXSArIChbJy0tY29udGFpbnMnLCBoYXNoXSBpZiBoYXNoIGVsc2UgW10pLAog
ICAgICAgICAgICAgY3dkPXNlbGYucm9vdF9wYXRoLAogICAgICAgICAgICAgY2FwdHVyZV9vdXRw
dXQ9VHJ1ZSwKICAgICAgICAgICAgIGVuY29kaW5nPSd1dGYtOCcsCkBAIC0xNTMsNyArMTU3LDcg
QEAgY2xhc3MgR2l0KFNjbSk6CiAgICAgICAgIGVsaWYgcmV2aXNpb246CiAgICAgICAgICAgICBy
ZXZpc2lvbiA9IENvbW1pdC5fcGFyc2VfcmV2aXNpb24ocmV2aXNpb24sIGRvX2Fzc2VydD1UcnVl
KQogICAgICAgICAgICAgcmV2aXNpb25fbG9nID0gcnVuKAotICAgICAgICAgICAgICAgIFtzZWxm
LmV4ZWN1dGFibGUsICdzdm4nLCAnZmluZC1yZXYnLCAncnt9Jy5mb3JtYXQocmV2aXNpb24pXSwK
KyAgICAgICAgICAgICAgICBbc2VsZi5leGVjdXRhYmxlKCksICdzdm4nLCAnZmluZC1yZXYnLCAn
cnt9Jy5mb3JtYXQocmV2aXNpb24pXSwKICAgICAgICAgICAgICAgICBjd2Q9c2VsZi5yb290X3Bh
dGgsIGNhcHR1cmVfb3V0cHV0PVRydWUsIGVuY29kaW5nPSd1dGYtOCcsCiAgICAgICAgICAgICAg
ICAgdGltZW91dD0zLAogICAgICAgICAgICAgKQpAQCAtMTk1LDcgKzE5OSw3IEBAIGNsYXNzIEdp
dChTY20pOgogICAgICAgICAgICAgaWYgaWRlbnRpZmllciA+IGJhc2VfY291bnQ6CiAgICAgICAg
ICAgICAgICAgcmFpc2Ugc2VsZi5FeGNlcHRpb24oJ0lkZW50aWZpZXIge30gY2Fubm90IGJlIGZv
dW5kIG9uIHRoZSBzcGVjaWZpZWQgYnJhbmNoIGluIHRoZSBjdXJyZW50IGNoZWNrb3V0Jy5mb3Jt
YXQoaWRlbnRpZmllcikpCiAgICAgICAgICAgICBsb2cgPSBydW4oCi0gICAgICAgICAgICAgICAg
W3NlbGYuZXhlY3V0YWJsZSwgJ2xvZycsICd7fX57fScuZm9ybWF0KGJyYW5jaCBvciAnSEVBRCcs
IGJhc2VfY291bnQgLSBpZGVudGlmaWVyKSwgJy0xJ10sCisgICAgICAgICAgICAgICAgW3NlbGYu
ZXhlY3V0YWJsZSgpLCAnbG9nJywgJ3t9fnt9Jy5mb3JtYXQoYnJhbmNoIG9yICdIRUFEJywgYmFz
ZV9jb3VudCAtIGlkZW50aWZpZXIpLCAnLTEnXSwKICAgICAgICAgICAgICAgICBjd2Q9c2VsZi5y
b290X3BhdGgsCiAgICAgICAgICAgICAgICAgY2FwdHVyZV9vdXRwdXQ9VHJ1ZSwKICAgICAgICAg
ICAgICAgICBlbmNvZGluZz0ndXRmLTgnLApAQCAtMjEyLDEzICsyMTYsMTMgQEAgY2xhc3MgR2l0
KFNjbSk6CiAgICAgICAgIGVsaWYgYnJhbmNoOgogICAgICAgICAgICAgaWYgaGFzaDoKICAgICAg
ICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdDYW5ub3QgZGVmaW5lIGJvdGggYnJhbmNoIGFu
ZCBoYXNoJykKLSAgICAgICAgICAgIGxvZyA9IHJ1bihbc2VsZi5leGVjdXRhYmxlLCAnbG9nJywg
YnJhbmNoLCAnLTEnXSwgY3dkPXNlbGYucm9vdF9wYXRoLCBjYXB0dXJlX291dHB1dD1UcnVlLCBl
bmNvZGluZz0ndXRmLTgnKQorICAgICAgICAgICAgbG9nID0gcnVuKFtzZWxmLmV4ZWN1dGFibGUo
KSwgJ2xvZycsIGJyYW5jaCwgJy0xJ10sIGN3ZD1zZWxmLnJvb3RfcGF0aCwgY2FwdHVyZV9vdXRw
dXQ9VHJ1ZSwgZW5jb2Rpbmc9J3V0Zi04JykKICAgICAgICAgICAgIGlmIGxvZy5yZXR1cm5jb2Rl
OgogICAgICAgICAgICAgICAgIHJhaXNlIHNlbGYuRXhjZXB0aW9uKCJGYWlsZWQgdG8gcmV0cmll
dmUgY29tbWl0IGluZm9ybWF0aW9uIGZvciAne30nIi5mb3JtYXQoYnJhbmNoKSkKIAogICAgICAg
ICBlbHNlOgogICAgICAgICAgICAgaGFzaCA9IENvbW1pdC5fcGFyc2VfaGFzaChoYXNoLCBkb19h
c3NlcnQ9VHJ1ZSkKLSAgICAgICAgICAgIGxvZyA9IHJ1bihbc2VsZi5leGVjdXRhYmxlLCAnbG9n
JywgaGFzaCBvciAnSEVBRCcsICctMSddLCBjd2Q9c2VsZi5yb290X3BhdGgsIGNhcHR1cmVfb3V0
cHV0PVRydWUsIGVuY29kaW5nPSd1dGYtOCcpCisgICAgICAgICAgICBsb2cgPSBydW4oW3NlbGYu
ZXhlY3V0YWJsZSgpLCAnbG9nJywgaGFzaCBvciAnSEVBRCcsICctMSddLCBjd2Q9c2VsZi5yb290
X3BhdGgsIGNhcHR1cmVfb3V0cHV0PVRydWUsIGVuY29kaW5nPSd1dGYtOCcpCiAgICAgICAgICAg
ICBpZiBsb2cucmV0dXJuY29kZToKICAgICAgICAgICAgICAgICByYWlzZSBzZWxmLkV4Y2VwdGlv
bigiRmFpbGVkIHRvIHJldHJpZXZlIGNvbW1pdCBpbmZvcm1hdGlvbiBmb3IgJ3t9JyIuZm9ybWF0
KGhhc2ggb3IgJ0hFQUQnKSkKIApAQCAtMjM5LDcgKzI0Myw3IEBAIGNsYXNzIEdpdChTY20pOgog
ICAgICAgICByZXZpc2lvbiA9IGludChtYXRjaC5ncm91cCgncmV2aXNpb24nKSkgaWYgbWF0Y2gg
ZWxzZSBOb25lCiAKICAgICAgICAgY29tbWl0X3RpbWUgPSBydW4oCi0gICAgICAgICAgICBbc2Vs
Zi5leGVjdXRhYmxlLCAnc2hvdycsICctcycsICctLWZvcm1hdD0lY3QnLCBoYXNoXSwKKyAgICAg
ICAgICAgIFtzZWxmLmV4ZWN1dGFibGUoKSwgJ3Nob3cnLCAnLXMnLCAnLS1mb3JtYXQ9JWN0Jywg
aGFzaF0sCiAgICAgICAgICAgICBjd2Q9c2VsZi5yb290X3BhdGgsIGNhcHR1cmVfb3V0cHV0PVRy
dWUsIGVuY29kaW5nPSd1dGYtOCcsCiAgICAgICAgICkKICAgICAgICAgaWYgY29tbWl0X3RpbWUu
cmV0dXJuY29kZToKQEAgLTI3MCw3ICsyNzQsNyBAQCBjbGFzcyBHaXQoU2NtKToKICAgICAgICAg
ICAgICkKIAogICAgICAgICBvdXRwdXQgPSBydW4oCi0gICAgICAgICAgICBbc2VsZi5leGVjdXRh
YmxlLCAncmV2LXBhcnNlJywgYXJndW1lbnRdLAorICAgICAgICAgICAgW3NlbGYuZXhlY3V0YWJs
ZSgpLCAncmV2LXBhcnNlJywgYXJndW1lbnRdLAogICAgICAgICAgICAgY3dkPXNlbGYucm9vdF9w
YXRoLCBjYXB0dXJlX291dHB1dD1UcnVlLCBlbmNvZGluZz0ndXRmLTgnLAogICAgICAgICApCiAg
ICAgICAgIGlmIG91dHB1dC5yZXR1cm5jb2RlOgpJbmRleDogVG9vbHMvU2NyaXB0cy9saWJyYXJp
ZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvbG9jYWwvc2NtLnB5Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRv
b2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L2xvY2FsL3NjbS5w
eQkocmV2aXNpb24gMjY4OTI3KQorKysgVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2Nt
cHkvd2Via2l0c2NtcHkvbG9jYWwvc2NtLnB5CSh3b3JraW5nIGNvcHkpCkBAIC0yMiwxMSArMjIs
MTMgQEAKIAogCiBpbXBvcnQgbG9nZ2luZworaW1wb3J0IG9zCiBpbXBvcnQgcmUKIGltcG9ydCBz
aXgKIGltcG9ydCBzeXMKIAogZnJvbSBsb2dnaW5nIGltcG9ydCBOdWxsSGFuZGxlcgorZnJvbSB3
ZWJraXRjb3JlcHkgaW1wb3J0IHJ1bgogZnJvbSB3ZWJraXRzY21weSBpbXBvcnQgbG9nLCBDb21t
aXQKIAogCkBAIC0zOSw3ICs0MSwxNyBAQCBjbGFzcyBTY20ob2JqZWN0KToKICAgICBERVZfQlJB
TkNIRVMgPSByZS5jb21waWxlKHInLipbKGVuZykoZGV2KShidWcpXS8uKycpCiAgICAgUFJPRF9C
UkFOQ0hFUyA9IHJlLmNvbXBpbGUocidcUystW1xkK1wuXSstYnJhbmNoJykKIAotICAgIGV4ZWN1
dGFibGUgPSBOb25lCisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIGV4ZWN1dGFibGUoY2xzLCBw
cm9ncmFtKToKKyAgICAgICAgZm9yIGNhbmRpZGF0ZSBpbiBbJ3Vzci9iaW4nLCAndXNyL2Jpbi9s
b2NhbCddOgorICAgICAgICAgICAgY2FuZGlkYXRlID0gb3MucGF0aC5qb2luKGNhbmRpZGF0ZSwg
cHJvZ3JhbSkKKyAgICAgICAgICAgIGlmIG9zLnBhdGguZXhpc3RzKGNhbmRpZGF0ZSk6CisgICAg
ICAgICAgICAgICAgcmV0dXJuIGNhbmRpZGF0ZQorCisgICAgICAgIHdoaWNoID0gcnVuKFsnL3Vz
ci9iaW4vd2hpY2gnLCBwcm9ncmFtXSwgY2FwdHVyZV9vdXRwdXQ9VHJ1ZSwgZW5jb2Rpbmc9J3V0
Zi04JykKKyAgICAgICAgaWYgbm90IHdoaWNoLnJldHVybmNvZGU6CisgICAgICAgICAgICByZXR1
cm4gb3MucGF0aC5yZWFscGF0aCh3aGljaC5zdGRvdXQucnN0cmlwKCkpCisgICAgICAgIHJhaXNl
IE9TRXJyb3IoIkNhbm5vdCBmaW5kICd7fScgcHJvZ3JhbSIuZm9ybWF0KHByb2dyYW0pKQogCiAg
ICAgQGNsYXNzbWV0aG9kCiAgICAgZGVmIGZyb21fcGF0aChjbHMsIHBhdGgpOgpJbmRleDogVG9v
bHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvbG9jYWwvc3ZuLnB5
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtp
dHNjbXB5L2xvY2FsL3N2bi5weQkocmV2aXNpb24gMjY4OTI3KQorKysgVG9vbHMvU2NyaXB0cy9s
aWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvbG9jYWwvc3ZuLnB5CSh3b3JraW5nIGNv
cHkpCkBAIC0zNywxMyArMzcsMTcgQEAgZnJvbSB3ZWJraXRzY21weSBpbXBvcnQgQ29tbWl0LCBD
b250cmlidQogCiAKIGNsYXNzIFN2bihTY20pOgotICAgIGV4ZWN1dGFibGUgPSAnL3Vzci9iaW4v
c3ZuJyBpZiBvcy5wYXRoLmV4aXN0cygnL3Vzci9iaW4vc3ZuJykgZWxzZSAnL3Vzci9sb2NhbC9i
aW4vc3ZuJwogICAgIExPR19SRSA9IHJlLmNvbXBpbGUocidyKD9QPHJldmlzaW9uPlxkKykgXHwg
KD9QPGVtYWlsPi4qKSBcfCAoP1A8ZGF0ZT4uKiknKQogICAgIENBQ0hFX1ZFUlNJT04gPSBWZXJz
aW9uKDEpCiAKICAgICBAY2xhc3NtZXRob2QKKyAgICBAZGVjb3JhdG9ycy5NZW1vaXplKCkKKyAg
ICBkZWYgZXhlY3V0YWJsZShjbHMpOgorICAgICAgICByZXR1cm4gU2NtLmV4ZWN1dGFibGUoJ3N2
bicpCisKKyAgICBAY2xhc3NtZXRob2QKICAgICBkZWYgaXNfY2hlY2tvdXQoY2xzLCBwYXRoKToK
LSAgICAgICAgcmV0dXJuIHJ1bihbY2xzLmV4ZWN1dGFibGUsICdpbmZvJ10sIGN3ZD1wYXRoLCBj
YXB0dXJlX291dHB1dD1UcnVlKS5yZXR1cm5jb2RlID09IDAKKyAgICAgICAgcmV0dXJuIHJ1bihb
Y2xzLmV4ZWN1dGFibGUoKSwgJ2luZm8nXSwgY3dkPXBhdGgsIGNhcHR1cmVfb3V0cHV0PVRydWUp
LnJldHVybmNvZGUgPT0gMAogCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBhdGgsIGRldl9icmFu
Y2hlcz1Ob25lLCBwcm9kX2JyYW5jaGVzPU5vbmUpOgogICAgICAgICBzdXBlcihTdm4sIHNlbGYp
Ll9faW5pdF9fKHBhdGgsIGRldl9icmFuY2hlcz1kZXZfYnJhbmNoZXMsIHByb2RfYnJhbmNoZXM9
cHJvZF9icmFuY2hlcykKQEAgLTcwLDcgKzc0LDcgQEAgY2xhc3MgU3ZuKFNjbSk6CiAgICAgICAg
IGFkZGl0aW9uYWxfYXJncyA9IFsnXi9icmFuY2hlcy97fScuZm9ybWF0KGJyYW5jaCldIGlmIGJy
YW5jaCBhbmQgYnJhbmNoICE9IHNlbGYuZGVmYXVsdF9icmFuY2ggZWxzZSBbXQogICAgICAgICBh
ZGRpdGlvbmFsX2FyZ3MgKz0gWyctcicsIHN0cihyZXZpc2lvbildIGlmIHJldmlzaW9uIGVsc2Ug
W10KIAotICAgICAgICBpbmZvX3Jlc3VsdCA9IHJ1bihbc2VsZi5leGVjdXRhYmxlLCAnaW5mbydd
ICsgYWRkaXRpb25hbF9hcmdzLCBjd2Q9c2VsZi5yb290X3BhdGgsIGNhcHR1cmVfb3V0cHV0PVRy
dWUsIGVuY29kaW5nPSd1dGYtOCcpCisgICAgICAgIGluZm9fcmVzdWx0ID0gcnVuKFtzZWxmLmV4
ZWN1dGFibGUoKSwgJ2luZm8nXSArIGFkZGl0aW9uYWxfYXJncywgY3dkPXNlbGYucm9vdF9wYXRo
LCBjYXB0dXJlX291dHB1dD1UcnVlLCBlbmNvZGluZz0ndXRmLTgnKQogICAgICAgICBpZiBpbmZv
X3Jlc3VsdC5yZXR1cm5jb2RlOgogICAgICAgICAgICAgcmV0dXJuIHt9CiAKQEAgLTEwMCw3ICsx
MDQsNyBAQCBjbGFzcyBTdm4oU2NtKToKICAgICAgICAgcmV0dXJuIHNlbGYuaW5mbygpWydSZWxh
dGl2ZSBVUkwnXVsyOl0KIAogICAgIGRlZiBsaXN0KHNlbGYsIGNhdGVnb3J5KToKLSAgICAgICAg
bGlzdF9yZXN1bHQgPSBydW4oW3NlbGYuZXhlY3V0YWJsZSwgJ2xpc3QnLCAnXi97fScuZm9ybWF0
KGNhdGVnb3J5KV0sIGN3ZD1zZWxmLnJvb3RfcGF0aCwgY2FwdHVyZV9vdXRwdXQ9VHJ1ZSwgZW5j
b2Rpbmc9J3V0Zi04JykKKyAgICAgICAgbGlzdF9yZXN1bHQgPSBydW4oW3NlbGYuZXhlY3V0YWJs
ZSgpLCAnbGlzdCcsICdeL3t9Jy5mb3JtYXQoY2F0ZWdvcnkpXSwgY3dkPXNlbGYucm9vdF9wYXRo
LCBjYXB0dXJlX291dHB1dD1UcnVlLCBlbmNvZGluZz0ndXRmLTgnKQogICAgICAgICBpZiBsaXN0
X3Jlc3VsdC5yZXR1cm5jb2RlOgogICAgICAgICAgICAgcmV0dXJuIFtdCiAgICAgICAgIHJldHVy
biBbZWxlbWVudC5yc3RyaXAoJy8nKSBmb3IgZWxlbWVudCBpbiBsaXN0X3Jlc3VsdC5zdGRvdXQu
c3BsaXRsaW5lcygpXQpAQCAtMTQxLDcgKzE0NSw3IEBAIGNsYXNzIFN2bihTY20pOgogICAgICAg
ICAgICAgICAgIGt3YXJncyA9IGRpY3QoZW5jb2Rpbmc9J3V0Zi04JykKIAogICAgICAgICAgICAg
bG9nID0gc3VicHJvY2Vzcy5Qb3BlbigKLSAgICAgICAgICAgICAgICBbc2VsZi5leGVjdXRhYmxl
LCAnbG9nJywgJy1xJywgYnJhbmNoX2FyZ10sCisgICAgICAgICAgICAgICAgW3NlbGYuZXhlY3V0
YWJsZSgpLCAnbG9nJywgJy1xJywgYnJhbmNoX2FyZ10sCiAgICAgICAgICAgICAgICAgY3dkPXNl
bGYucm9vdF9wYXRoLAogICAgICAgICAgICAgICAgIHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsCiAg
ICAgICAgICAgICAgICAgc3RkZXJyPXN1YnByb2Nlc3MuUElQRSwKQEAgLTIwNyw3ICsyMTEsNyBA
QCBjbGFzcyBTdm4oU2NtKToKICAgICAgICAgICAgIHJldHVybiBjYW5kaWRhdGUKIAogICAgICAg
ICBwcm9jZXNzID0gcnVuKAotICAgICAgICAgICAgW3NlbGYuZXhlY3V0YWJsZSwgJ2xvZycsICct
dicsICctcScsIHNlbGYucmVtb3RlKCksICctcicsIHN0cihyZXZpc2lvbiksICctbCcsICcxJ10s
CisgICAgICAgICAgICBbc2VsZi5leGVjdXRhYmxlKCksICdsb2cnLCAnLXYnLCAnLXEnLCBzZWxm
LnJlbW90ZSgpLCAnLXInLCBzdHIocmV2aXNpb24pLCAnLWwnLCAnMSddLAogICAgICAgICAgICAg
Y3dkPXNlbGYucm9vdF9wYXRoLCBjYXB0dXJlX291dHB1dD1UcnVlLCBlbmNvZGluZz0ndXRmLTgn
LAogICAgICAgICApCiAKQEAgLTMyMiw3ICszMjYsNyBAQCBjbGFzcyBTdm4oU2NtKToKIAogICAg
ICAgICBicmFuY2hfYXJnID0gJ14ve317fScuZm9ybWF0KCcnIGlmIGJyYW5jaCA9PSBzZWxmLmRl
ZmF1bHRfYnJhbmNoIGVsc2UgJ2JyYW5jaGVzLycsIGJyYW5jaCkKICAgICAgICAgbG9nID0gcnVu
KAotICAgICAgICAgICAgW3NlbGYuZXhlY3V0YWJsZSwgJ2xvZycsICctbCcsICcxJywgJy1yJywg
c3RyKHJldmlzaW9uKSwgYnJhbmNoX2FyZ10sIGN3ZD1zZWxmLnJvb3RfcGF0aCwKKyAgICAgICAg
ICAgIFtzZWxmLmV4ZWN1dGFibGUoKSwgJ2xvZycsICctbCcsICcxJywgJy1yJywgc3RyKHJldmlz
aW9uKSwgYnJhbmNoX2FyZ10sIGN3ZD1zZWxmLnJvb3RfcGF0aCwKICAgICAgICAgICAgIGNhcHR1
cmVfb3V0cHV0PVRydWUsIGVuY29kaW5nPSd1dGYtOCcsCiAgICAgICAgICkKICAgICAgICAgc3Bs
aXRfbG9nID0gbG9nLnN0ZG91dC5zcGxpdGxpbmVzKCkKSW5kZXg6IFRvb2xzL1NjcmlwdHMvbGli
cmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L21vY2tzL2xvY2FsL2dpdC5weQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS9t
b2Nrcy9sb2NhbC9naXQucHkJKHJldmlzaW9uIDI2ODkyNykKKysrIFRvb2xzL1NjcmlwdHMvbGli
cmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L21vY2tzL2xvY2FsL2dpdC5weQkod29ya2lu
ZyBjb3B5KQpAQCAtNDUsNiArNDUsMTEgQEAgY2xhc3MgR2l0KG1vY2tzLlN1YnByb2Nlc3MpOgog
ICAgICAgICBzZWxmLmJyYW5jaGVzID0gYnJhbmNoZXMgb3IgW10KICAgICAgICAgc2VsZi50YWdz
ID0gdGFncyBvciBbXQogCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHNlbGYuZXhlY3V0YWJs
ZSA9IGxvY2FsLkdpdC5leGVjdXRhYmxlKCkKKyAgICAgICAgZXhjZXB0IChPU0Vycm9yLCBBc3Nl
cnRpb25FcnJvcik6CisgICAgICAgICAgICBzZWxmLmV4ZWN1dGFibGUgPSAnL3Vzci9iaW4vZ2l0
JworCiAgICAgICAgICMgUHJvdmlkZSBhIHJlYXNvbmFibGUgc2V0IG9mIGNvbW1pdHMgdG8gdGVz
dCBhZ2FpbnN0CiAgICAgICAgIGNvbnRyaWJ1dG9yID0gQ29udHJpYnV0b3IobmFtZT0nSm9uYXRo
YW4gQmVkYXJkJywgZW1haWxzPVsnamJlZGFyZEBhcHBsZS5jb20nXSkKICAgICAgICAgc2VsZi5j
b21taXRzID0gewpAQCAtMTE3LDcgKzEyMiw3IEBAIGNsYXNzIEdpdChtb2Nrcy5TdWJwcm9jZXNz
KToKICAgICAgICAgaWYgZ2l0X3N2bjoKICAgICAgICAgICAgIGdpdF9zdm5fcm91dGVzID0gWwog
ICAgICAgICAgICAgICAgIG1vY2tzLlN1YnByb2Nlc3MuUm91dGUoCi0gICAgICAgICAgICAgICAg
ICAgIGxvY2FsLkdpdC5leGVjdXRhYmxlLCAnc3ZuJywgJ2ZpbmQtcmV2JywgcmUuY29tcGlsZShy
J3JcZCsnKSwKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5leGVjdXRhYmxlLCAnc3ZuJywgJ2Zp
bmQtcmV2JywgcmUuY29tcGlsZShyJ3JcZCsnKSwKICAgICAgICAgICAgICAgICAgICAgY3dkPXNl
bGYucGF0aCwKICAgICAgICAgICAgICAgICAgICAgZ2VuZXJhdG9yPWxhbWJkYSAqYXJncywgKipr
d2FyZ3M6CiAgICAgICAgICAgICAgICAgICAgICAgICBtb2Nrcy5Qcm9jZXNzQ29tcGxldGlvbigK
QEAgLTEyNSw3ICsxMzAsNyBAQCBjbGFzcyBHaXQobW9ja3MuU3VicHJvY2Vzcyk6CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgc3Rkb3V0PWdldGF0dHIoc2VsZi5maW5kKGFyZ3NbM11bMTpd
KSwgJ2hhc2gnLCAnXG4nKSwKICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAg
ICAgICApLCBtb2Nrcy5TdWJwcm9jZXNzLlJvdXRlKAotICAgICAgICAgICAgICAgICAgICBsb2Nh
bC5HaXQuZXhlY3V0YWJsZSwgJ3N2bicsICdpbmZvJywKKyAgICAgICAgICAgICAgICAgICAgc2Vs
Zi5leGVjdXRhYmxlLCAnc3ZuJywgJ2luZm8nLAogICAgICAgICAgICAgICAgICAgICBjd2Q9c2Vs
Zi5wYXRoLAogICAgICAgICAgICAgICAgICAgICBnZW5lcmF0b3I9bGFtYmRhICphcmdzLCAqKmt3
YXJnczoKICAgICAgICAgICAgICAgICAgICAgICAgIG1vY2tzLlByb2Nlc3NDb21wbGV0aW9uKApA
QCAtMTUzLDE0ICsxNTgsMjAgQEAgY2xhc3MgR2l0KG1vY2tzLlN1YnByb2Nlc3MpOgogCiAgICAg
ICAgIGVsc2U6CiAgICAgICAgICAgICBnaXRfc3ZuX3JvdXRlcyA9IFttb2Nrcy5TdWJwcm9jZXNz
LlJvdXRlKAotICAgICAgICAgICAgICAgIGxvY2FsLkdpdC5leGVjdXRhYmxlLCAnc3ZuJywKKyAg
ICAgICAgICAgICAgICBzZWxmLmV4ZWN1dGFibGUsICdzdm4nLAogICAgICAgICAgICAgICAgIGN3
ZD1zZWxmLnBhdGgsCiAgICAgICAgICAgICAgICAgY29tcGxldGlvbj1tb2Nrcy5Qcm9jZXNzQ29t
cGxldGlvbihyZXR1cm5jb2RlPTEsIGVsYXBzZWQ9MiksCiAgICAgICAgICAgICApXQogCiAgICAg
ICAgIHN1cGVyKEdpdCwgc2VsZikuX19pbml0X18oCiAgICAgICAgICAgICBtb2Nrcy5TdWJwcm9j
ZXNzLlJvdXRlKAotICAgICAgICAgICAgICAgIGxvY2FsLkdpdC5leGVjdXRhYmxlLCAnc3RhdHVz
JywKKyAgICAgICAgICAgICAgICAnL3Vzci9iaW4vd2hpY2gnLCAnZ2l0JywKKyAgICAgICAgICAg
ICAgICBjb21wbGV0aW9uPW1vY2tzLlByb2Nlc3NDb21wbGV0aW9uKAorICAgICAgICAgICAgICAg
ICAgICByZXR1cm5jb2RlPTAsCisgICAgICAgICAgICAgICAgICAgIHN0ZG91dD0ne31cbicuZm9y
bWF0KHNlbGYuZXhlY3V0YWJsZSksCisgICAgICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICks
IG1vY2tzLlN1YnByb2Nlc3MuUm91dGUoCisgICAgICAgICAgICAgICAgc2VsZi5leGVjdXRhYmxl
LCAnc3RhdHVzJywKICAgICAgICAgICAgICAgICBjd2Q9c2VsZi5wYXRoLAogICAgICAgICAgICAg
ICAgIGdlbmVyYXRvcj1sYW1iZGEgKmFyZ3MsICoqa3dhcmdzOgogICAgICAgICAgICAgICAgICAg
ICBtb2Nrcy5Qcm9jZXNzQ29tcGxldGlvbigKQEAgLTE3NSwyMSArMTg2LDIxIEBAIG5vdGhpbmcg
dG8gY29tbWl0LCB3b3JraW5nIHRyZWUgY2xlYW4KICAgICAgICAgICAgICAgICAgICAgKSwKICAg
ICAgICAgICAgICksCiAgICAgICAgICAgICBtb2Nrcy5TdWJwcm9jZXNzLlJvdXRlKAotICAgICAg
ICAgICAgICAgIGxvY2FsLkdpdC5leGVjdXRhYmxlLCAncmV2LXBhcnNlJywgJy0tc2hvdy10b3Bs
ZXZlbCcsCisgICAgICAgICAgICAgICAgc2VsZi5leGVjdXRhYmxlLCAncmV2LXBhcnNlJywgJy0t
c2hvdy10b3BsZXZlbCcsCiAgICAgICAgICAgICAgICAgY3dkPXNlbGYucGF0aCwKICAgICAgICAg
ICAgICAgICBjb21wbGV0aW9uPW1vY2tzLlByb2Nlc3NDb21wbGV0aW9uKAogICAgICAgICAgICAg
ICAgICAgICByZXR1cm5jb2RlPTAsCiAgICAgICAgICAgICAgICAgICAgIHN0ZG91dD0ne31cbicu
Zm9ybWF0KHNlbGYucGF0aCksCiAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICksIG1v
Y2tzLlN1YnByb2Nlc3MuUm91dGUoCi0gICAgICAgICAgICAgICAgbG9jYWwuR2l0LmV4ZWN1dGFi
bGUsICdyZXYtcGFyc2UnLCAnLS1hYmJyZXYtcmVmJywgJ0hFQUQnLAorICAgICAgICAgICAgICAg
IHNlbGYuZXhlY3V0YWJsZSwgJ3Jldi1wYXJzZScsICctLWFiYnJldi1yZWYnLCAnSEVBRCcsCiAg
ICAgICAgICAgICAgICAgY3dkPXNlbGYucGF0aCwKICAgICAgICAgICAgICAgICBnZW5lcmF0b3I9
bGFtYmRhICphcmdzLCAqKmt3YXJnczogbW9ja3MuUHJvY2Vzc0NvbXBsZXRpb24oCiAgICAgICAg
ICAgICAgICAgICAgIHJldHVybmNvZGU9MCwKICAgICAgICAgICAgICAgICAgICAgc3Rkb3V0PSd7
fVxuJy5mb3JtYXQoJ0hFQUQnIGlmIHNlbGYuZGV0YWNoZWQgZWxzZSBzZWxmLmJyYW5jaCksCiAg
ICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICksIG1vY2tzLlN1YnByb2Nlc3MuUm91dGUo
Ci0gICAgICAgICAgICAgICAgbG9jYWwuR2l0LmV4ZWN1dGFibGUsICdyZW1vdGUnLCAnZ2V0LXVy
bCcsICcuKicsCisgICAgICAgICAgICAgICAgc2VsZi5leGVjdXRhYmxlLCAncmVtb3RlJywgJ2dl
dC11cmwnLCAnLionLAogICAgICAgICAgICAgICAgIGN3ZD1zZWxmLnBhdGgsCiAgICAgICAgICAg
ICAgICAgZ2VuZXJhdG9yPWxhbWJkYSAqYXJncywgKiprd2FyZ3M6IG1vY2tzLlByb2Nlc3NDb21w
bGV0aW9uKAogICAgICAgICAgICAgICAgICAgICByZXR1cm5jb2RlPTAsCkBAIC0xOTksNyArMjEw
LDcgQEAgbm90aGluZyB0byBjb21taXQsIHdvcmtpbmcgdHJlZSBjbGVhbgogICAgICAgICAgICAg
ICAgICAgICBzdGRlcnI9ImZhdGFsOiBObyBzdWNoIHJlbW90ZSAne30nXG4iLmZvcm1hdChhcmdz
WzNdKSwKICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgKSwgbW9ja3MuU3VicHJvY2Vz
cy5Sb3V0ZSgKLSAgICAgICAgICAgICAgICBsb2NhbC5HaXQuZXhlY3V0YWJsZSwgJ2JyYW5jaCcs
ICctYScsCisgICAgICAgICAgICAgICAgc2VsZi5leGVjdXRhYmxlLCAnYnJhbmNoJywgJy1hJywK
ICAgICAgICAgICAgICAgICBjd2Q9c2VsZi5wYXRoLAogICAgICAgICAgICAgICAgIGdlbmVyYXRv
cj1sYW1iZGEgKmFyZ3MsICoqa3dhcmdzOiBtb2Nrcy5Qcm9jZXNzQ29tcGxldGlvbigKICAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuY29kZT0wLApAQCAtMjA3LDI4ICsyMTgsMjggQEAgbm90aGlu
ZyB0byBjb21taXQsIHdvcmtpbmcgdHJlZSBjbGVhbgogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgJ1xucmVtb3Rlcy9vcmlnaW4vSEVBRCAtPiBvcmlnaW4ve31cbicuZm9ybWF0KGRlZmF1bHRf
YnJhbmNoKSwKICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgKSwgbW9ja3MuU3VicHJv
Y2Vzcy5Sb3V0ZSgKLSAgICAgICAgICAgICAgICBsb2NhbC5HaXQuZXhlY3V0YWJsZSwgJ3RhZycs
CisgICAgICAgICAgICAgICAgc2VsZi5leGVjdXRhYmxlLCAndGFnJywKICAgICAgICAgICAgICAg
ICBjd2Q9c2VsZi5wYXRoLAogICAgICAgICAgICAgICAgIGdlbmVyYXRvcj1sYW1iZGEgKmFyZ3Ms
ICoqa3dhcmdzOiBtb2Nrcy5Qcm9jZXNzQ29tcGxldGlvbigKICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuY29kZT0wLAogICAgICAgICAgICAgICAgICAgICBzdGRvdXQ9J1xuJy5qb2luKHNlbGYu
dGFncykgKyAnXG4nLAogICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICApLCBtb2Nrcy5T
dWJwcm9jZXNzLlJvdXRlKAotICAgICAgICAgICAgICAgIGxvY2FsLkdpdC5leGVjdXRhYmxlLCAn
cmV2LXBhcnNlJywgJy0tYWJicmV2LXJlZicsICdvcmlnaW4vSEVBRCcsCisgICAgICAgICAgICAg
ICAgc2VsZi5leGVjdXRhYmxlLCAncmV2LXBhcnNlJywgJy0tYWJicmV2LXJlZicsICdvcmlnaW4v
SEVBRCcsCiAgICAgICAgICAgICAgICAgY3dkPXNlbGYucGF0aCwKICAgICAgICAgICAgICAgICBn
ZW5lcmF0b3I9bGFtYmRhICphcmdzLCAqKmt3YXJnczogbW9ja3MuUHJvY2Vzc0NvbXBsZXRpb24o
CiAgICAgICAgICAgICAgICAgICAgIHJldHVybmNvZGU9MCwKICAgICAgICAgICAgICAgICAgICAg
c3Rkb3V0PSdvcmlnaW4ve31cbicuZm9ybWF0KGRlZmF1bHRfYnJhbmNoKSwKICAgICAgICAgICAg
ICAgICApLAogICAgICAgICAgICAgKSwgbW9ja3MuU3VicHJvY2Vzcy5Sb3V0ZSgKLSAgICAgICAg
ICAgICAgICBsb2NhbC5HaXQuZXhlY3V0YWJsZSwgJ3Jldi1wYXJzZScsICcuKicsCisgICAgICAg
ICAgICAgICAgc2VsZi5leGVjdXRhYmxlLCAncmV2LXBhcnNlJywgJy4qJywKICAgICAgICAgICAg
ICAgICBjd2Q9c2VsZi5wYXRoLAogICAgICAgICAgICAgICAgIGdlbmVyYXRvcj1sYW1iZGEgKmFy
Z3MsICoqa3dhcmdzOiBtb2Nrcy5Qcm9jZXNzQ29tcGxldGlvbigKICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuY29kZT0wLAogICAgICAgICAgICAgICAgICAgICBzdGRvdXQ9J3t9XG4nLmZvcm1h
dChzZWxmLmZpbmQoYXJnc1syXSkuaGFzaCksCiAgICAgICAgICAgICAgICAgKSBpZiBzZWxmLmZp
bmQoYXJnc1syXSkgZWxzZSBtb2Nrcy5Qcm9jZXNzQ29tcGxldGlvbihyZXR1cm5jb2RlPTEyOCkK
ICAgICAgICAgICAgICksIG1vY2tzLlN1YnByb2Nlc3MuUm91dGUoCi0gICAgICAgICAgICAgICAg
bG9jYWwuR2l0LmV4ZWN1dGFibGUsICdsb2cnLCByZS5jb21waWxlKHInLisnKSwgJy0xJywKKyAg
ICAgICAgICAgICAgICBzZWxmLmV4ZWN1dGFibGUsICdsb2cnLCByZS5jb21waWxlKHInLisnKSwg
Jy0xJywKICAgICAgICAgICAgICAgICBjd2Q9c2VsZi5wYXRoLAogICAgICAgICAgICAgICAgIGdl
bmVyYXRvcj1sYW1iZGEgKmFyZ3MsICoqa3dhcmdzOiBtb2Nrcy5Qcm9jZXNzQ29tcGxldGlvbigK
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuY29kZT0wLApAQCAtMjUzLDE0ICsyNjQsMTQgQEAg
bm90aGluZyB0byBjb21taXQsIHdvcmtpbmcgdHJlZSBjbGVhbgogICAgICAgICAgICAgICAgICAg
ICAgICAgKSwKICAgICAgICAgICAgICAgICApIGlmIHNlbGYuZmluZChhcmdzWzJdKSBlbHNlIG1v
Y2tzLlByb2Nlc3NDb21wbGV0aW9uKHJldHVybmNvZGU9MTI4KSwKICAgICAgICAgICAgICksIG1v
Y2tzLlN1YnByb2Nlc3MuUm91dGUoCi0gICAgICAgICAgICAgICAgbG9jYWwuR2l0LmV4ZWN1dGFi
bGUsICdyZXYtbGlzdCcsICctLWNvdW50JywgJy0tbm8tbWVyZ2VzJywgcmUuY29tcGlsZShyJy4r
JyksCisgICAgICAgICAgICAgICAgc2VsZi5leGVjdXRhYmxlLCAncmV2LWxpc3QnLCAnLS1jb3Vu
dCcsICctLW5vLW1lcmdlcycsIHJlLmNvbXBpbGUocicuKycpLAogICAgICAgICAgICAgICAgIGN3
ZD1zZWxmLnBhdGgsCiAgICAgICAgICAgICAgICAgZ2VuZXJhdG9yPWxhbWJkYSAqYXJncywgKipr
d2FyZ3M6IG1vY2tzLlByb2Nlc3NDb21wbGV0aW9uKAogICAgICAgICAgICAgICAgICAgICByZXR1
cm5jb2RlPTAsCiAgICAgICAgICAgICAgICAgICAgIHN0ZG91dD0ne31cbicuZm9ybWF0KHNlbGYu
Y291bnQoYXJnc1s0XSkpCiAgICAgICAgICAgICAgICAgKSBpZiBzZWxmLmZpbmQoYXJnc1s0XSkg
ZWxzZSBtb2Nrcy5Qcm9jZXNzQ29tcGxldGlvbihyZXR1cm5jb2RlPTEyOCksCiAgICAgICAgICAg
ICApLCBtb2Nrcy5TdWJwcm9jZXNzLlJvdXRlKAotICAgICAgICAgICAgICAgIGxvY2FsLkdpdC5l
eGVjdXRhYmxlLCAnc2hvdycsICctcycsICctLWZvcm1hdD0lY3QnLCByZS5jb21waWxlKHInLisn
KSwKKyAgICAgICAgICAgICAgICBzZWxmLmV4ZWN1dGFibGUsICdzaG93JywgJy1zJywgJy0tZm9y
bWF0PSVjdCcsIHJlLmNvbXBpbGUocicuKycpLAogICAgICAgICAgICAgICAgIGN3ZD1zZWxmLnBh
dGgsCiAgICAgICAgICAgICAgICAgZ2VuZXJhdG9yPWxhbWJkYSAqYXJncywgKiprd2FyZ3M6IG1v
Y2tzLlByb2Nlc3NDb21wbGV0aW9uKAogICAgICAgICAgICAgICAgICAgICByZXR1cm5jb2RlPTAs
CkBAIC0yNjksMjEgKzI4MCwyMSBAQCBub3RoaW5nIHRvIGNvbW1pdCwgd29ya2luZyB0cmVlIGNs
ZWFuCiAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICApIGlmIHNlbGYuZmlu
ZChhcmdzWzRdKSBlbHNlIG1vY2tzLlByb2Nlc3NDb21wbGV0aW9uKHJldHVybmNvZGU9MTI4KSwK
ICAgICAgICAgICAgICksIG1vY2tzLlN1YnByb2Nlc3MuUm91dGUoCi0gICAgICAgICAgICAgICAg
bG9jYWwuR2l0LmV4ZWN1dGFibGUsICdicmFuY2gnLCAnLWEnLCAnLS1jb250YWlucycsIHJlLmNv
bXBpbGUocicuKycpLAorICAgICAgICAgICAgICAgIHNlbGYuZXhlY3V0YWJsZSwgJ2JyYW5jaCcs
ICctYScsICctLWNvbnRhaW5zJywgcmUuY29tcGlsZShyJy4rJyksCiAgICAgICAgICAgICAgICAg
Y3dkPXNlbGYucGF0aCwKICAgICAgICAgICAgICAgICBnZW5lcmF0b3I9bGFtYmRhICphcmdzLCAq
Kmt3YXJnczogbW9ja3MuUHJvY2Vzc0NvbXBsZXRpb24oCiAgICAgICAgICAgICAgICAgICAgIHJl
dHVybmNvZGU9MCwKICAgICAgICAgICAgICAgICAgICAgc3Rkb3V0PSdcbicuam9pbihzb3J0ZWQo
c2VsZi5icmFuY2hlc19vbihhcmdzWzRdKSkpICsgJ1xuJywKICAgICAgICAgICAgICAgICApIGlm
IHNlbGYuZmluZChhcmdzWzRdKSBlbHNlIG1vY2tzLlByb2Nlc3NDb21wbGV0aW9uKHJldHVybmNv
ZGU9MTI4KSwKICAgICAgICAgICAgICksIG1vY2tzLlN1YnByb2Nlc3MuUm91dGUoCi0gICAgICAg
ICAgICAgICAgbG9jYWwuR2l0LmV4ZWN1dGFibGUsCisgICAgICAgICAgICAgICAgc2VsZi5leGVj
dXRhYmxlLAogICAgICAgICAgICAgICAgIGN3ZD1zZWxmLnBhdGgsCiAgICAgICAgICAgICAgICAg
Y29tcGxldGlvbj1tb2Nrcy5Qcm9jZXNzQ29tcGxldGlvbigKICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuY29kZT0xLAogICAgICAgICAgICAgICAgICAgICBzdGRlcnI9J3VzYWdlOiBnaXQgWy0t
dmVyc2lvbl0gWy0taGVscF0uLi5cbicsCiAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAg
ICksIG1vY2tzLlN1YnByb2Nlc3MuUm91dGUoCi0gICAgICAgICAgICAgICAgbG9jYWwuR2l0LmV4
ZWN1dGFibGUsCisgICAgICAgICAgICAgICAgc2VsZi5leGVjdXRhYmxlLAogICAgICAgICAgICAg
ICAgIGNvbXBsZXRpb249bW9ja3MuUHJvY2Vzc0NvbXBsZXRpb24oCiAgICAgICAgICAgICAgICAg
ICAgIHJldHVybmNvZGU9MTI4LAogICAgICAgICAgICAgICAgICAgICBzdGRlcnI9J2ZhdGFsOiBu
b3QgYSBnaXQgcmVwb3NpdG9yeSAob3IgYW55IHBhcmVudCB1cCB0byBtb3VudCBwb2ludClcblN0
b3BwaW5nIGF0IGZpbGVzeXN0ZW0gYm91bmRhcnkgKEdJVF9ESVNDT1ZFUllfQUNST1NTX0ZJTEVT
WVNURU0gbm90IHNldCkuXG4nLApJbmRleDogVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0
c2NtcHkvd2Via2l0c2NtcHkvbW9ja3MvbG9jYWwvc3ZuLnB5Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xz
L1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L21vY2tzL2xvY2FsL3N2
bi5weQkocmV2aXNpb24gMjY4OTI3KQorKysgVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0
c2NtcHkvd2Via2l0c2NtcHkvbW9ja3MvbG9jYWwvc3ZuLnB5CSh3b3JraW5nIGNvcHkpCkBAIC01
NCw2ICs1NCwxMSBAQCBjbGFzcyBTdm4obW9ja3MuU3VicHJvY2Vzcyk6CiAgICAgICAgIHNlbGYu
dGFncyA9IHRhZ3Mgb3IgW10KICAgICAgICAgc2VsZi5jb25uZWN0ZWQgPSBUcnVlCiAKKyAgICAg
ICAgdHJ5OgorICAgICAgICAgICAgc2VsZi5leGVjdXRhYmxlID0gbG9jYWwuU3ZuLmV4ZWN1dGFi
bGUoKQorICAgICAgICBleGNlcHQgKE9TRXJyb3IsIEFzc2VydGlvbkVycm9yKToKKyAgICAgICAg
ICAgIHNlbGYuZXhlY3V0YWJsZSA9ICcvdXNyL2Jpbi9zdm4nCisKICAgICAgICAgIyBQcm92aWRl
IGEgcmVhc29uYWJsZSBzZXQgb2YgY29tbWl0cyB0byB0ZXN0IGFnYWluc3QKICAgICAgICAgY29u
dHJpYnV0b3IgPSBDb250cmlidXRvcihuYW1lPSdKb25hdGhhbiBCZWRhcmQnLCBlbWFpbHM9Wydq
YmVkYXJkQGFwcGxlLmNvbSddKQogICAgICAgICBzZWxmLmNvbW1pdHMgPSB7CkBAIC0xMTcsMjkg
KzEyMiwzNSBAQCBjbGFzcyBTdm4obW9ja3MuU3VicHJvY2Vzcyk6CiAKICAgICAgICAgc3VwZXIo
U3ZuLCBzZWxmKS5fX2luaXRfXygKICAgICAgICAgICAgIG1vY2tzLlN1YnByb2Nlc3MuUm91dGUo
Ci0gICAgICAgICAgICAgICAgbG9jYWwuU3ZuLmV4ZWN1dGFibGUsICdpbmZvJywKKyAgICAgICAg
ICAgICAgICAnL3Vzci9iaW4vd2hpY2gnLCAnc3ZuJywKKyAgICAgICAgICAgICAgICBjb21wbGV0
aW9uPW1vY2tzLlByb2Nlc3NDb21wbGV0aW9uKAorICAgICAgICAgICAgICAgICAgICByZXR1cm5j
b2RlPTAsCisgICAgICAgICAgICAgICAgICAgIHN0ZG91dD0ne31cbicuZm9ybWF0KHNlbGYuZXhl
Y3V0YWJsZSksCisgICAgICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICksIG1vY2tzLlN1YnBy
b2Nlc3MuUm91dGUoCisgICAgICAgICAgICAgICAgc2VsZi5leGVjdXRhYmxlLCAnaW5mbycsCiAg
ICAgICAgICAgICAgICAgY3dkPXNlbGYucGF0aCwKICAgICAgICAgICAgICAgICBnZW5lcmF0b3I9
bGFtYmRhICphcmdzLCAqKmt3YXJnczogc2VsZi5faW5mbyhjd2Q9a3dhcmdzLmdldCgnY3dkJywn
JykpCiAgICAgICAgICAgICApLCBtb2Nrcy5TdWJwcm9jZXNzLlJvdXRlKAotICAgICAgICAgICAg
ICAgIGxvY2FsLlN2bi5leGVjdXRhYmxlLCAnaW5mbycsIHNlbGYuQlJBTkNIX1JFLAorICAgICAg
ICAgICAgICAgIHNlbGYuZXhlY3V0YWJsZSwgJ2luZm8nLCBzZWxmLkJSQU5DSF9SRSwKICAgICAg
ICAgICAgICAgICBjd2Q9c2VsZi5wYXRoLAogICAgICAgICAgICAgICAgIGdlbmVyYXRvcj1sYW1i
ZGEgKmFyZ3MsICoqa3dhcmdzOiBzZWxmLl9pbmZvKGJyYW5jaD1zZWxmLkJSQU5DSF9SRS5tYXRj
aChhcmdzWzJdKS5ncm91cCgnYnJhbmNoJyksIGN3ZD1rd2FyZ3MuZ2V0KCdjd2QnLCAnJykpCiAg
ICAgICAgICAgICApLCBtb2Nrcy5TdWJwcm9jZXNzLlJvdXRlKAotICAgICAgICAgICAgICAgIGxv
Y2FsLlN2bi5leGVjdXRhYmxlLCAnbGlzdCcsICdeL2JyYW5jaGVzJywKKyAgICAgICAgICAgICAg
ICBzZWxmLmV4ZWN1dGFibGUsICdsaXN0JywgJ14vYnJhbmNoZXMnLAogICAgICAgICAgICAgICAg
IGN3ZD1zZWxmLnBhdGgsCiAgICAgICAgICAgICAgICAgZ2VuZXJhdG9yPWxhbWJkYSAqYXJncywg
Kiprd2FyZ3M6IG1vY2tzLlByb2Nlc3NDb21wbGV0aW9uKAogICAgICAgICAgICAgICAgICAgICBy
ZXR1cm5jb2RlPTAsCiAgICAgICAgICAgICAgICAgICAgIHN0ZG91dD0nL1xuJy5qb2luKHNvcnRl
ZChzZXQoc2VsZi5icmFuY2hlcykgfCBzZXQoc2VsZi5jb21taXRzLmtleXMoKSkgLSB7J3RydW5r
J30pKSArICcvXG4nLAogICAgICAgICAgICAgICAgICkgaWYgc2VsZi5jb25uZWN0ZWQgZWxzZSBt
b2Nrcy5Qcm9jZXNzQ29tcGxldGlvbihyZXR1cm5jb2RlPTEpLAogICAgICAgICAgICAgKSwgbW9j
a3MuU3VicHJvY2Vzcy5Sb3V0ZSgKLSAgICAgICAgICAgICAgICBsb2NhbC5Tdm4uZXhlY3V0YWJs
ZSwgJ2xpc3QnLCAnXi90YWdzJywKKyAgICAgICAgICAgICAgICBzZWxmLmV4ZWN1dGFibGUsICds
aXN0JywgJ14vdGFncycsCiAgICAgICAgICAgICAgICAgY3dkPXNlbGYucGF0aCwKICAgICAgICAg
ICAgICAgICBnZW5lcmF0b3I9bGFtYmRhICphcmdzLCAqKmt3YXJnczogbW9ja3MuUHJvY2Vzc0Nv
bXBsZXRpb24oCiAgICAgICAgICAgICAgICAgICAgIHJldHVybmNvZGU9MCwKICAgICAgICAgICAg
ICAgICAgICAgc3Rkb3V0PScvXG4nLmpvaW4oc2VsZi50YWdzKSArICcvXG4nLAogICAgICAgICAg
ICAgICAgICkgaWYgc2VsZi5jb25uZWN0ZWQgZWxzZSBtb2Nrcy5Qcm9jZXNzQ29tcGxldGlvbihy
ZXR1cm5jb2RlPTEpLAogICAgICAgICAgICAgKSwgbW9ja3MuU3VicHJvY2Vzcy5Sb3V0ZSgKLSAg
ICAgICAgICAgICAgICBsb2NhbC5Tdm4uZXhlY3V0YWJsZSwgJ2xvZycsICctdicsICctcScsIHNl
bGYucmVtb3RlLCAnLXInLCByZS5jb21waWxlKHInXGQrJyksCisgICAgICAgICAgICAgICAgc2Vs
Zi5leGVjdXRhYmxlLCAnbG9nJywgJy12JywgJy1xJywgc2VsZi5yZW1vdGUsICctcicsIHJlLmNv
bXBpbGUocidcZCsnKSwKICAgICAgICAgICAgICAgICBjd2Q9c2VsZi5wYXRoLAogICAgICAgICAg
ICAgICAgIGdlbmVyYXRvcj1sYW1iZGEgKmFyZ3MsICoqa3dhcmdzOiBtb2Nrcy5Qcm9jZXNzQ29t
cGxldGlvbigKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuY29kZT0wLApAQCAtMTUzLDcgKzE2
NCw3IEBAIGNsYXNzIFN2bihtb2Nrcy5TdWJwcm9jZXNzKToKICAgICAgICAgICAgICAgICAgICAg
ICAgICksCiAgICAgICAgICAgICAgICAgKSBpZiBzZWxmLmNvbm5lY3RlZCBhbmQgc2VsZi5maW5k
KHJldmlzaW9uPWFyZ3NbNl0pIGVsc2UgbW9ja3MuUHJvY2Vzc0NvbXBsZXRpb24ocmV0dXJuY29k
ZT0xKSwKICAgICAgICAgICAgICksIG1vY2tzLlN1YnByb2Nlc3MuUm91dGUoCi0gICAgICAgICAg
ICAgICAgbG9jYWwuU3ZuLmV4ZWN1dGFibGUsICdsb2cnLCAnLXEnLCBzZWxmLkJSQU5DSF9SRSwK
KyAgICAgICAgICAgICAgICBzZWxmLmV4ZWN1dGFibGUsICdsb2cnLCAnLXEnLCBzZWxmLkJSQU5D
SF9SRSwKICAgICAgICAgICAgICAgICBjd2Q9c2VsZi5wYXRoLAogICAgICAgICAgICAgICAgIGdl
bmVyYXRvcj1sYW1iZGEgKmFyZ3MsICoqa3dhcmdzOiBtb2Nrcy5Qcm9jZXNzQ29tcGxldGlvbigK
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuY29kZT0wLApAQCAtMTYyLDIxICsxNzMsMjEgQEAg
Y2xhc3MgU3ZuKG1vY2tzLlN1YnByb2Nlc3MpOgogICAgICAgICAgICAgICAgICAgICBdKSwKICAg
ICAgICAgICAgICAgICApIGlmIHNlbGYuY29ubmVjdGVkIGFuZCBzZWxmLkJSQU5DSF9SRS5tYXRj
aChhcmdzWzNdKS5ncm91cCgnYnJhbmNoJykgaW4gc2VsZi5jb21taXRzIGVsc2UgbW9ja3MuUHJv
Y2Vzc0NvbXBsZXRpb24ocmV0dXJuY29kZT0xKQogICAgICAgICAgICAgKSwgbW9ja3MuU3VicHJv
Y2Vzcy5Sb3V0ZSgKLSAgICAgICAgICAgICAgICBsb2NhbC5Tdm4uZXhlY3V0YWJsZSwgJ2xvZycs
ICctbCcsICcxJywgJy1yJywgcmUuY29tcGlsZShyJ1xkKycpLCBzZWxmLkJSQU5DSF9SRSwKKyAg
ICAgICAgICAgICAgICBzZWxmLmV4ZWN1dGFibGUsICdsb2cnLCAnLWwnLCAnMScsICctcicsIHJl
LmNvbXBpbGUocidcZCsnKSwgc2VsZi5CUkFOQ0hfUkUsCiAgICAgICAgICAgICAgICAgY3dkPXNl
bGYucGF0aCwKICAgICAgICAgICAgICAgICBnZW5lcmF0b3I9bGFtYmRhICphcmdzLCAqKmt3YXJn
czogc2VsZi5fbG9nX2ZvcigKICAgICAgICAgICAgICAgICAgICAgYnJhbmNoPXNlbGYuQlJBTkNI
X1JFLm1hdGNoKGFyZ3NbNl0pLmdyb3VwKCdicmFuY2gnKSwKICAgICAgICAgICAgICAgICAgICAg
cmV2aXNpb249YXJnc1s1XSwKICAgICAgICAgICAgICAgICApIGlmIHNlbGYuY29ubmVjdGVkIGVs
c2UgbW9ja3MuUHJvY2Vzc0NvbXBsZXRpb24ocmV0dXJuY29kZT0xKQogICAgICAgICAgICAgKSwg
bW9ja3MuU3VicHJvY2Vzcy5Sb3V0ZSgKLSAgICAgICAgICAgICAgICBsb2NhbC5Tdm4uZXhlY3V0
YWJsZSwKKyAgICAgICAgICAgICAgICBzZWxmLmV4ZWN1dGFibGUsCiAgICAgICAgICAgICAgICAg
Y3dkPXNlbGYucGF0aCwKICAgICAgICAgICAgICAgICBjb21wbGV0aW9uPW1vY2tzLlByb2Nlc3ND
b21wbGV0aW9uKAogICAgICAgICAgICAgICAgICAgICByZXR1cm5jb2RlPTEsCiAgICAgICAgICAg
ICAgICAgICAgIHN0ZGVycj0iVHlwZSAnc3ZuIGhlbHAnIGZvciB1c2FnZS5cbiIsCiAgICAgICAg
ICAgICAgICAgKQogICAgICAgICAgICAgKSwgbW9ja3MuU3VicHJvY2Vzcy5Sb3V0ZSgKLSAgICAg
ICAgICAgICAgICBsb2NhbC5Tdm4uZXhlY3V0YWJsZSwKKyAgICAgICAgICAgICAgICBzZWxmLmV4
ZWN1dGFibGUsCiAgICAgICAgICAgICAgICAgZ2VuZXJhdG9yPWxhbWJkYSAqYXJncywgKiprd2Fy
Z3M6IG1vY2tzLlByb2Nlc3NDb21wbGV0aW9uKAogICAgICAgICAgICAgICAgICAgICByZXR1cm5j
b2RlPTEsCiAgICAgICAgICAgICAgICAgICAgIHN0ZGVycj0ic3ZuOiBFMTU1MDA3OiAne30nIGlz
IG5vdCBhIHdvcmtpbmcgY29weVxuIi5mb3JtYXQoa3dhcmdzLmdldCgnY3dkJykpLAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>412202</attachid>
            <date>2020-10-23 11:37:29 -0700</date>
            <delta_ts>2020-10-23 12:20:18 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-217717-20201023113728.patch</filename>
            <type>text/plain</type>
            <size>28118</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI2ODkzMSkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDI1IEBACisyMDIwLTEwLTIzICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICBbd2Via2l0c2NtcHldIFVzZSAnd2hpY2gnIHRvIGZpbmQgZ2l0IGFuZCBz
dm4gcGF0aHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIxNzcxNworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzAyOTkxOTI+CisKKyAgICAgICAgUnVi
YmVyLXN0YW1wZWQgYnkgQWFrYXNoIEphaW4uCisKKyAgICAgICAgKiBTY3JpcHRzL2xpYnJhcmll
cy93ZWJraXRzY21weS93ZWJraXRzY21weS9fX2luaXRfXy5weTogQnVtcCB2ZXJzaW9uLgorICAg
ICAgICAqIFNjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L2xvY2FsL2dp
dC5weToKKyAgICAgICAgKEdpdCk6CisgICAgICAgIChHaXQuZXhlY3V0YWJsZSk6IEdlbmVyYXRl
IGdpdCBwYXRoIGZyb20gJ3doaWNoJyBjYWxsLgorICAgICAgICAqIFNjcmlwdHMvbGlicmFyaWVz
L3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L2xvY2FsL3NjbS5weToKKyAgICAgICAgKFNjbS5leGVj
dXRhYmxlKTogR2VuZXJhdGUgYSBwcm9ncmFtIHBhdGggZnJvbSBhICd3aGljaCcgY2FsbC4KKyAg
ICAgICAgKiBTY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS9sb2NhbC9z
dm4ucHk6CisgICAgICAgIChTdm4pOgorICAgICAgICAoU3ZuLmV4ZWN1dGFibGUpOiBHZW5lcmF0
ZSBzdm4gcGF0aCBmcm9tICd3aGljaCcgY2FsbC4KKyAgICAgICAgKiBTY3JpcHRzL2xpYnJhcmll
cy93ZWJraXRzY21weS93ZWJraXRzY21weS9tb2Nrcy9sb2NhbC9naXQucHk6CisgICAgICAgIChH
aXQpOgorICAgICAgICAqIFNjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5
L21vY2tzL2xvY2FsL3N2bi5weToKKyAgICAgICAgKFN2bi5fX2luaXRfXyk6CisKIDIwMjAtMTAt
MjMgIEFha2FzaCBKYWluICA8YWFrYXNoX2phaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtidWls
ZC53ZWJraXQub3JnXSBDcmVhdGUgbWFzdGVyLmNmZyBmb3IgbmV3ZXIgYnVpbGRib3QKSW5kZXg6
IFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L19faW5pdF9f
LnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dl
YmtpdHNjbXB5L19faW5pdF9fLnB5CShyZXZpc2lvbiAyNjg5MzEpCisrKyBUb29scy9TY3JpcHRz
L2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS9fX2luaXRfXy5weQkod29ya2luZyBj
b3B5KQpAQCAtNDYsNyArNDYsNyBAQCBleGNlcHQgSW1wb3J0RXJyb3I6CiAgICAgICAgICJQbGVh
c2UgaW5zdGFsbCB3ZWJraXRjb3JlcHkgd2l0aCBgcGlwIGluc3RhbGwgd2Via2l0Y29yZXB5IC0t
ZXh0cmEtaW5kZXgtdXJsIDxwYWNrYWdlIGluZGV4IFVSTD5gIgogICAgICkKIAotdmVyc2lvbiA9
IFZlcnNpb24oMCwgMiwgMykKK3ZlcnNpb24gPSBWZXJzaW9uKDAsIDIsIDQpCiAKIEF1dG9JbnN0
YWxsLnJlZ2lzdGVyKFBhY2thZ2UoJ2RhdGV1dGlsJywgVmVyc2lvbigyLCA4LCAxKSwgcHlwaV9u
YW1lPSdweXRob24tZGF0ZXV0aWwnKSkKIApJbmRleDogVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMv
d2Via2l0c2NtcHkvd2Via2l0c2NtcHkvbG9jYWwvZ2l0LnB5Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xz
L1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L2xvY2FsL2dpdC5weQko
cmV2aXNpb24gMjY4OTMxKQorKysgVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkv
d2Via2l0c2NtcHkvbG9jYWwvZ2l0LnB5CSh3b3JraW5nIGNvcHkpCkBAIC0yMCw3ICsyMCw3IEBA
CiAjIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKLQoraW1wb3J0IG9zCiBp
bXBvcnQgcmUKIGltcG9ydCBzaXgKIApAQCAtMzAsMTMgKzMwLDE3IEBAIGZyb20gd2Via2l0c2Nt
cHkgaW1wb3J0IENvbW1pdCwgQ29udHJpYnUKIAogCiBjbGFzcyBHaXQoU2NtKToKLSAgICBleGVj
dXRhYmxlID0gJy91c3IvYmluL2dpdCcKICAgICBHSVRfQ09NTUlUID0gcmUuY29tcGlsZShyJ2Nv
bW1pdCAoP1A8aGFzaD5bMC05YS1mXSspJykKICAgICBHSVRfU1ZOX1JFVklTSU9OID0gcmUuY29t
cGlsZShyJ2dpdC1zdm4taWQ6IFxTKzpcL1wvLitAKD9QPHJldmlzaW9uPlxkKykgListListList
LisnKQogCiAgICAgQGNsYXNzbWV0aG9kCisgICAgQGRlY29yYXRvcnMuTWVtb2l6ZSgpCisgICAg
ZGVmIGV4ZWN1dGFibGUoY2xzKToKKyAgICAgICAgcmV0dXJuIFNjbS5leGVjdXRhYmxlKCdnaXQn
KQorCisgICAgQGNsYXNzbWV0aG9kCiAgICAgZGVmIGlzX2NoZWNrb3V0KGNscywgcGF0aCk6Ci0g
ICAgICAgIHJldHVybiBydW4oW2Nscy5leGVjdXRhYmxlLCAncmV2LXBhcnNlJywgJy0tc2hvdy10
b3BsZXZlbCddLCBjd2Q9cGF0aCwgY2FwdHVyZV9vdXRwdXQ9VHJ1ZSkucmV0dXJuY29kZSA9PSAw
CisgICAgICAgIHJldHVybiBydW4oW2Nscy5leGVjdXRhYmxlKCksICdyZXYtcGFyc2UnLCAnLS1z
aG93LXRvcGxldmVsJ10sIGN3ZD1wYXRoLCBjYXB0dXJlX291dHB1dD1UcnVlKS5yZXR1cm5jb2Rl
ID09IDAKIAogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwYXRoLCBkZXZfYnJhbmNoZXM9Tm9uZSwg
cHJvZF9icmFuY2hlcz1Ob25lKToKICAgICAgICAgc3VwZXIoR2l0LCBzZWxmKS5fX2luaXRfXyhw
YXRoLCBkZXZfYnJhbmNoZXM9ZGV2X2JyYW5jaGVzLCBwcm9kX2JyYW5jaGVzPXByb2RfYnJhbmNo
ZXMpCkBAIC00OCw3ICs1Miw3IEBAIGNsYXNzIEdpdChTY20pOgogICAgICAgICBpZiBub3Qgc2Vs
Zi5pc19zdm46CiAgICAgICAgICAgICByYWlzZSBzZWxmLkV4Y2VwdGlvbignQ2Fubm90IHJ1biBT
Vk4gaW5mbyBvbiBhIGdpdCBjaGVja291dCB3aGljaCBpcyBub3QgZ2l0LXN2bicpCiAKLSAgICAg
ICAgaW5mb19yZXN1bHQgPSBydW4oW3NlbGYuZXhlY3V0YWJsZSwgJ3N2bicsICdpbmZvJ10sIGN3
ZD1zZWxmLnBhdGgsIGNhcHR1cmVfb3V0cHV0PVRydWUsIGVuY29kaW5nPSd1dGYtOCcpCisgICAg
ICAgIGluZm9fcmVzdWx0ID0gcnVuKFtzZWxmLmV4ZWN1dGFibGUoKSwgJ3N2bicsICdpbmZvJ10s
IGN3ZD1zZWxmLnBhdGgsIGNhcHR1cmVfb3V0cHV0PVRydWUsIGVuY29kaW5nPSd1dGYtOCcpCiAg
ICAgICAgIGlmIGluZm9fcmVzdWx0LnJldHVybmNvZGU6CiAgICAgICAgICAgICByZXR1cm4ge30K
IApAQCAtNjMsNyArNjcsNyBAQCBjbGFzcyBHaXQoU2NtKToKICAgICBkZWYgaXNfc3ZuKHNlbGYp
OgogICAgICAgICB0cnk6CiAgICAgICAgICAgICByZXR1cm4gcnVuKAotICAgICAgICAgICAgICAg
IFtzZWxmLmV4ZWN1dGFibGUsICdzdm4nLCAnZmluZC1yZXYnLCAncjEnXSwKKyAgICAgICAgICAg
ICAgICBbc2VsZi5leGVjdXRhYmxlKCksICdzdm4nLCAnZmluZC1yZXYnLCAncjEnXSwKICAgICAg
ICAgICAgICAgICBjd2Q9c2VsZi5yb290X3BhdGgsCiAgICAgICAgICAgICAgICAgY2FwdHVyZV9v
dXRwdXQ9VHJ1ZSwKICAgICAgICAgICAgICAgICBlbmNvZGluZz0ndXRmLTgnLApAQCAtNzksMTQg
KzgzLDE0IEBAIGNsYXNzIEdpdChTY20pOgogICAgIEBwcm9wZXJ0eQogICAgIEBkZWNvcmF0b3Jz
Lk1lbW9pemUoKQogICAgIGRlZiByb290X3BhdGgoc2VsZik6Ci0gICAgICAgIHJlc3VsdCA9IHJ1
bihbc2VsZi5leGVjdXRhYmxlLCAncmV2LXBhcnNlJywgJy0tc2hvdy10b3BsZXZlbCddLCBjd2Q9
c2VsZi5wYXRoLCBjYXB0dXJlX291dHB1dD1UcnVlLCBlbmNvZGluZz0ndXRmLTgnKQorICAgICAg
ICByZXN1bHQgPSBydW4oW3NlbGYuZXhlY3V0YWJsZSgpLCAncmV2LXBhcnNlJywgJy0tc2hvdy10
b3BsZXZlbCddLCBjd2Q9c2VsZi5wYXRoLCBjYXB0dXJlX291dHB1dD1UcnVlLCBlbmNvZGluZz0n
dXRmLTgnKQogICAgICAgICBpZiByZXN1bHQucmV0dXJuY29kZToKICAgICAgICAgICAgIHJldHVy
biBOb25lCiAgICAgICAgIHJldHVybiByZXN1bHQuc3Rkb3V0LnJzdHJpcCgpCiAKICAgICBAcHJv
cGVydHkKICAgICBkZWYgZGVmYXVsdF9icmFuY2goc2VsZik6Ci0gICAgICAgIHJlc3VsdCA9IHJ1
bihbc2VsZi5leGVjdXRhYmxlLCAncmV2LXBhcnNlJywgJy0tYWJicmV2LXJlZicsICdvcmlnaW4v
SEVBRCddLCBjd2Q9c2VsZi5wYXRoLCBjYXB0dXJlX291dHB1dD1UcnVlLCBlbmNvZGluZz0ndXRm
LTgnKQorICAgICAgICByZXN1bHQgPSBydW4oW3NlbGYuZXhlY3V0YWJsZSgpLCAncmV2LXBhcnNl
JywgJy0tYWJicmV2LXJlZicsICdvcmlnaW4vSEVBRCddLCBjd2Q9c2VsZi5wYXRoLCBjYXB0dXJl
X291dHB1dD1UcnVlLCBlbmNvZGluZz0ndXRmLTgnKQogICAgICAgICBpZiByZXN1bHQucmV0dXJu
Y29kZToKICAgICAgICAgICAgIGNhbmRpZGF0ZXMgPSBzZWxmLmJyYW5jaGVzCiAgICAgICAgICAg
ICBpZiAnbWFzdGVyJyBpbiBjYW5kaWRhdGVzOgpAQCAtOTgsMTMgKzEwMiwxMyBAQCBjbGFzcyBH
aXQoU2NtKToKIAogICAgIEBwcm9wZXJ0eQogICAgIGRlZiBicmFuY2goc2VsZik6Ci0gICAgICAg
IHN0YXR1cyA9IHJ1bihbc2VsZi5leGVjdXRhYmxlLCAnc3RhdHVzJ10sIGN3ZD1zZWxmLnJvb3Rf
cGF0aCwgY2FwdHVyZV9vdXRwdXQ9VHJ1ZSwgZW5jb2Rpbmc9J3V0Zi04JykKKyAgICAgICAgc3Rh
dHVzID0gcnVuKFtzZWxmLmV4ZWN1dGFibGUoKSwgJ3N0YXR1cyddLCBjd2Q9c2VsZi5yb290X3Bh
dGgsIGNhcHR1cmVfb3V0cHV0PVRydWUsIGVuY29kaW5nPSd1dGYtOCcpCiAgICAgICAgIGlmIHN0
YXR1cy5yZXR1cm5jb2RlOgogICAgICAgICAgICAgcmFpc2Ugc2VsZi5FeGNlcHRpb24oJ0ZhaWxl
ZCB0byBydW4gYGdpdCBzdGF0dXNgIGZvciB7fScuZm9ybWF0KHNlbGYucm9vdF9wYXRoKSkKICAg
ICAgICAgaWYgc3RhdHVzLnN0ZG91dC5zcGxpdGxpbmVzKClbMF0uc3RhcnRzd2l0aCgnSEVBRCBk
ZXRhY2hlZCBhdCcpOgogICAgICAgICAgICAgcmV0dXJuIE5vbmUKIAotICAgICAgICByZXN1bHQg
PSBydW4oW3NlbGYuZXhlY3V0YWJsZSwgJ3Jldi1wYXJzZScsICctLWFiYnJldi1yZWYnLCAnSEVB
RCddLCBjd2Q9c2VsZi5yb290X3BhdGgsIGNhcHR1cmVfb3V0cHV0PVRydWUsIGVuY29kaW5nPSd1
dGYtOCcpCisgICAgICAgIHJlc3VsdCA9IHJ1bihbc2VsZi5leGVjdXRhYmxlKCksICdyZXYtcGFy
c2UnLCAnLS1hYmJyZXYtcmVmJywgJ0hFQUQnXSwgY3dkPXNlbGYucm9vdF9wYXRoLCBjYXB0dXJl
X291dHB1dD1UcnVlLCBlbmNvZGluZz0ndXRmLTgnKQogICAgICAgICBpZiByZXN1bHQucmV0dXJu
Y29kZToKICAgICAgICAgICAgIHJhaXNlIHNlbGYuRXhjZXB0aW9uKCdGYWlsZWQgdG8gcmV0cmll
dmUgYnJhbmNoIGZvciB7fScuZm9ybWF0KHNlbGYucm9vdF9wYXRoKSkKICAgICAgICAgcmV0dXJu
IHJlc3VsdC5zdGRvdXQucnN0cmlwKCkKQEAgLTExNSwyMCArMTE5LDIwIEBAIGNsYXNzIEdpdChT
Y20pOgogCiAgICAgQHByb3BlcnR5CiAgICAgZGVmIHRhZ3Moc2VsZik6Ci0gICAgICAgIHRhZ3Mg
PSBydW4oW3NlbGYuZXhlY3V0YWJsZSwgJ3RhZyddLCBjd2Q9c2VsZi5yb290X3BhdGgsIGNhcHR1
cmVfb3V0cHV0PVRydWUsIGVuY29kaW5nPSd1dGYtOCcpCisgICAgICAgIHRhZ3MgPSBydW4oW3Nl
bGYuZXhlY3V0YWJsZSgpLCAndGFnJ10sIGN3ZD1zZWxmLnJvb3RfcGF0aCwgY2FwdHVyZV9vdXRw
dXQ9VHJ1ZSwgZW5jb2Rpbmc9J3V0Zi04JykKICAgICAgICAgaWYgdGFncy5yZXR1cm5jb2RlOgog
ICAgICAgICAgICAgcmFpc2Ugc2VsZi5FeGNlcHRpb24oJ0ZhaWxlZCB0byByZXRyaWV2ZSB0YWcg
bGlzdCBmb3Ige30nLmZvcm1hdChzZWxmLnJvb3RfcGF0aCkpCiAgICAgICAgIHJldHVybiB0YWdz
LnN0ZG91dC5zcGxpdGxpbmVzKCkKIAogICAgIGRlZiByZW1vdGUoc2VsZiwgbmFtZT1Ob25lKToK
LSAgICAgICAgcmVzdWx0ID0gcnVuKFtzZWxmLmV4ZWN1dGFibGUsICdyZW1vdGUnLCAnZ2V0LXVy
bCcsIG5hbWUgb3IgJ29yaWdpbiddLCBjd2Q9c2VsZi5yb290X3BhdGgsIGNhcHR1cmVfb3V0cHV0
PVRydWUsIGVuY29kaW5nPSd1dGYtOCcpCisgICAgICAgIHJlc3VsdCA9IHJ1bihbc2VsZi5leGVj
dXRhYmxlKCksICdyZW1vdGUnLCAnZ2V0LXVybCcsIG5hbWUgb3IgJ29yaWdpbiddLCBjd2Q9c2Vs
Zi5yb290X3BhdGgsIGNhcHR1cmVfb3V0cHV0PVRydWUsIGVuY29kaW5nPSd1dGYtOCcpCiAgICAg
ICAgIGlmIHJlc3VsdC5yZXR1cm5jb2RlOgogICAgICAgICAgICAgcmFpc2Ugc2VsZi5FeGNlcHRp
b24oJ0ZhaWxlZCB0byByZXRyaWV2ZSByZW1vdGUgZm9yIHt9Jy5mb3JtYXQoc2VsZi5yb290X3Bh
dGgpKQogICAgICAgICByZXR1cm4gcmVzdWx0LnN0ZG91dC5yc3RyaXAoKQogCiAgICAgZGVmIF9j
b21taXRfY291bnQoc2VsZiwgbmF0aXZlX3BhcmFtZXRlcik6CiAgICAgICAgIHJldmlzaW9uX2Nv
dW50ID0gcnVuKAotICAgICAgICAgICAgW3NlbGYuZXhlY3V0YWJsZSwgJ3Jldi1saXN0JywgJy0t
Y291bnQnLCAnLS1uby1tZXJnZXMnLCBuYXRpdmVfcGFyYW1ldGVyXSwKKyAgICAgICAgICAgIFtz
ZWxmLmV4ZWN1dGFibGUoKSwgJ3Jldi1saXN0JywgJy0tY291bnQnLCAnLS1uby1tZXJnZXMnLCBu
YXRpdmVfcGFyYW1ldGVyXSwKICAgICAgICAgICAgIGN3ZD1zZWxmLnJvb3RfcGF0aCwgY2FwdHVy
ZV9vdXRwdXQ9VHJ1ZSwgZW5jb2Rpbmc9J3V0Zi04JywKICAgICAgICAgKQogICAgICAgICBpZiBy
ZXZpc2lvbl9jb3VudC5yZXR1cm5jb2RlOgpAQCAtMTM3LDcgKzE0MSw3IEBAIGNsYXNzIEdpdChT
Y20pOgogCiAgICAgZGVmIF9icmFuY2hlc19mb3Ioc2VsZiwgaGFzaD1Ob25lKToKICAgICAgICAg
YnJhbmNoID0gcnVuKAotICAgICAgICAgICAgW3NlbGYuZXhlY3V0YWJsZSwgJ2JyYW5jaCcsICct
YSddICsgKFsnLS1jb250YWlucycsIGhhc2hdIGlmIGhhc2ggZWxzZSBbXSksCisgICAgICAgICAg
ICBbc2VsZi5leGVjdXRhYmxlKCksICdicmFuY2gnLCAnLWEnXSArIChbJy0tY29udGFpbnMnLCBo
YXNoXSBpZiBoYXNoIGVsc2UgW10pLAogICAgICAgICAgICAgY3dkPXNlbGYucm9vdF9wYXRoLAog
ICAgICAgICAgICAgY2FwdHVyZV9vdXRwdXQ9VHJ1ZSwKICAgICAgICAgICAgIGVuY29kaW5nPSd1
dGYtOCcsCkBAIC0xNTMsNyArMTU3LDcgQEAgY2xhc3MgR2l0KFNjbSk6CiAgICAgICAgIGVsaWYg
cmV2aXNpb246CiAgICAgICAgICAgICByZXZpc2lvbiA9IENvbW1pdC5fcGFyc2VfcmV2aXNpb24o
cmV2aXNpb24sIGRvX2Fzc2VydD1UcnVlKQogICAgICAgICAgICAgcmV2aXNpb25fbG9nID0gcnVu
KAotICAgICAgICAgICAgICAgIFtzZWxmLmV4ZWN1dGFibGUsICdzdm4nLCAnZmluZC1yZXYnLCAn
cnt9Jy5mb3JtYXQocmV2aXNpb24pXSwKKyAgICAgICAgICAgICAgICBbc2VsZi5leGVjdXRhYmxl
KCksICdzdm4nLCAnZmluZC1yZXYnLCAncnt9Jy5mb3JtYXQocmV2aXNpb24pXSwKICAgICAgICAg
ICAgICAgICBjd2Q9c2VsZi5yb290X3BhdGgsIGNhcHR1cmVfb3V0cHV0PVRydWUsIGVuY29kaW5n
PSd1dGYtOCcsCiAgICAgICAgICAgICAgICAgdGltZW91dD0zLAogICAgICAgICAgICAgKQpAQCAt
MTk1LDcgKzE5OSw3IEBAIGNsYXNzIEdpdChTY20pOgogICAgICAgICAgICAgaWYgaWRlbnRpZmll
ciA+IGJhc2VfY291bnQ6CiAgICAgICAgICAgICAgICAgcmFpc2Ugc2VsZi5FeGNlcHRpb24oJ0lk
ZW50aWZpZXIge30gY2Fubm90IGJlIGZvdW5kIG9uIHRoZSBzcGVjaWZpZWQgYnJhbmNoIGluIHRo
ZSBjdXJyZW50IGNoZWNrb3V0Jy5mb3JtYXQoaWRlbnRpZmllcikpCiAgICAgICAgICAgICBsb2cg
PSBydW4oCi0gICAgICAgICAgICAgICAgW3NlbGYuZXhlY3V0YWJsZSwgJ2xvZycsICd7fX57fScu
Zm9ybWF0KGJyYW5jaCBvciAnSEVBRCcsIGJhc2VfY291bnQgLSBpZGVudGlmaWVyKSwgJy0xJ10s
CisgICAgICAgICAgICAgICAgW3NlbGYuZXhlY3V0YWJsZSgpLCAnbG9nJywgJ3t9fnt9Jy5mb3Jt
YXQoYnJhbmNoIG9yICdIRUFEJywgYmFzZV9jb3VudCAtIGlkZW50aWZpZXIpLCAnLTEnXSwKICAg
ICAgICAgICAgICAgICBjd2Q9c2VsZi5yb290X3BhdGgsCiAgICAgICAgICAgICAgICAgY2FwdHVy
ZV9vdXRwdXQ9VHJ1ZSwKICAgICAgICAgICAgICAgICBlbmNvZGluZz0ndXRmLTgnLApAQCAtMjEy
LDEzICsyMTYsMTMgQEAgY2xhc3MgR2l0KFNjbSk6CiAgICAgICAgIGVsaWYgYnJhbmNoOgogICAg
ICAgICAgICAgaWYgaGFzaDoKICAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdDYW5u
b3QgZGVmaW5lIGJvdGggYnJhbmNoIGFuZCBoYXNoJykKLSAgICAgICAgICAgIGxvZyA9IHJ1bihb
c2VsZi5leGVjdXRhYmxlLCAnbG9nJywgYnJhbmNoLCAnLTEnXSwgY3dkPXNlbGYucm9vdF9wYXRo
LCBjYXB0dXJlX291dHB1dD1UcnVlLCBlbmNvZGluZz0ndXRmLTgnKQorICAgICAgICAgICAgbG9n
ID0gcnVuKFtzZWxmLmV4ZWN1dGFibGUoKSwgJ2xvZycsIGJyYW5jaCwgJy0xJ10sIGN3ZD1zZWxm
LnJvb3RfcGF0aCwgY2FwdHVyZV9vdXRwdXQ9VHJ1ZSwgZW5jb2Rpbmc9J3V0Zi04JykKICAgICAg
ICAgICAgIGlmIGxvZy5yZXR1cm5jb2RlOgogICAgICAgICAgICAgICAgIHJhaXNlIHNlbGYuRXhj
ZXB0aW9uKCJGYWlsZWQgdG8gcmV0cmlldmUgY29tbWl0IGluZm9ybWF0aW9uIGZvciAne30nIi5m
b3JtYXQoYnJhbmNoKSkKIAogICAgICAgICBlbHNlOgogICAgICAgICAgICAgaGFzaCA9IENvbW1p
dC5fcGFyc2VfaGFzaChoYXNoLCBkb19hc3NlcnQ9VHJ1ZSkKLSAgICAgICAgICAgIGxvZyA9IHJ1
bihbc2VsZi5leGVjdXRhYmxlLCAnbG9nJywgaGFzaCBvciAnSEVBRCcsICctMSddLCBjd2Q9c2Vs
Zi5yb290X3BhdGgsIGNhcHR1cmVfb3V0cHV0PVRydWUsIGVuY29kaW5nPSd1dGYtOCcpCisgICAg
ICAgICAgICBsb2cgPSBydW4oW3NlbGYuZXhlY3V0YWJsZSgpLCAnbG9nJywgaGFzaCBvciAnSEVB
RCcsICctMSddLCBjd2Q9c2VsZi5yb290X3BhdGgsIGNhcHR1cmVfb3V0cHV0PVRydWUsIGVuY29k
aW5nPSd1dGYtOCcpCiAgICAgICAgICAgICBpZiBsb2cucmV0dXJuY29kZToKICAgICAgICAgICAg
ICAgICByYWlzZSBzZWxmLkV4Y2VwdGlvbigiRmFpbGVkIHRvIHJldHJpZXZlIGNvbW1pdCBpbmZv
cm1hdGlvbiBmb3IgJ3t9JyIuZm9ybWF0KGhhc2ggb3IgJ0hFQUQnKSkKIApAQCAtMjM5LDcgKzI0
Myw3IEBAIGNsYXNzIEdpdChTY20pOgogICAgICAgICByZXZpc2lvbiA9IGludChtYXRjaC5ncm91
cCgncmV2aXNpb24nKSkgaWYgbWF0Y2ggZWxzZSBOb25lCiAKICAgICAgICAgY29tbWl0X3RpbWUg
PSBydW4oCi0gICAgICAgICAgICBbc2VsZi5leGVjdXRhYmxlLCAnc2hvdycsICctcycsICctLWZv
cm1hdD0lY3QnLCBoYXNoXSwKKyAgICAgICAgICAgIFtzZWxmLmV4ZWN1dGFibGUoKSwgJ3Nob3cn
LCAnLXMnLCAnLS1mb3JtYXQ9JWN0JywgaGFzaF0sCiAgICAgICAgICAgICBjd2Q9c2VsZi5yb290
X3BhdGgsIGNhcHR1cmVfb3V0cHV0PVRydWUsIGVuY29kaW5nPSd1dGYtOCcsCiAgICAgICAgICkK
ICAgICAgICAgaWYgY29tbWl0X3RpbWUucmV0dXJuY29kZToKQEAgLTI3MCw3ICsyNzQsNyBAQCBj
bGFzcyBHaXQoU2NtKToKICAgICAgICAgICAgICkKIAogICAgICAgICBvdXRwdXQgPSBydW4oCi0g
ICAgICAgICAgICBbc2VsZi5leGVjdXRhYmxlLCAncmV2LXBhcnNlJywgYXJndW1lbnRdLAorICAg
ICAgICAgICAgW3NlbGYuZXhlY3V0YWJsZSgpLCAncmV2LXBhcnNlJywgYXJndW1lbnRdLAogICAg
ICAgICAgICAgY3dkPXNlbGYucm9vdF9wYXRoLCBjYXB0dXJlX291dHB1dD1UcnVlLCBlbmNvZGlu
Zz0ndXRmLTgnLAogICAgICAgICApCiAgICAgICAgIGlmIG91dHB1dC5yZXR1cm5jb2RlOgpJbmRl
eDogVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvbG9jYWwv
c2NtLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5
L3dlYmtpdHNjbXB5L2xvY2FsL3NjbS5weQkocmV2aXNpb24gMjY4OTMxKQorKysgVG9vbHMvU2Ny
aXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvbG9jYWwvc2NtLnB5CSh3b3Jr
aW5nIGNvcHkpCkBAIC0yMiwxMSArMjIsMTMgQEAKIAogCiBpbXBvcnQgbG9nZ2luZworaW1wb3J0
IG9zCiBpbXBvcnQgcmUKIGltcG9ydCBzaXgKIGltcG9ydCBzeXMKIAogZnJvbSBsb2dnaW5nIGlt
cG9ydCBOdWxsSGFuZGxlcgorZnJvbSB3ZWJraXRjb3JlcHkgaW1wb3J0IHJ1bgogZnJvbSB3ZWJr
aXRzY21weSBpbXBvcnQgbG9nLCBDb21taXQKIAogCkBAIC0zOSw3ICs0MSwxNyBAQCBjbGFzcyBT
Y20ob2JqZWN0KToKICAgICBERVZfQlJBTkNIRVMgPSByZS5jb21waWxlKHInLipbKGVuZykoZGV2
KShidWcpXS8uKycpCiAgICAgUFJPRF9CUkFOQ0hFUyA9IHJlLmNvbXBpbGUocidcUystW1xkK1wu
XSstYnJhbmNoJykKIAotICAgIGV4ZWN1dGFibGUgPSBOb25lCisgICAgQGNsYXNzbWV0aG9kCisg
ICAgZGVmIGV4ZWN1dGFibGUoY2xzLCBwcm9ncmFtKToKKyAgICAgICAgZm9yIGNhbmRpZGF0ZSBp
biBbJ3Vzci9iaW4nLCAndXNyL2Jpbi9sb2NhbCddOgorICAgICAgICAgICAgY2FuZGlkYXRlID0g
b3MucGF0aC5qb2luKGNhbmRpZGF0ZSwgcHJvZ3JhbSkKKyAgICAgICAgICAgIGlmIG9zLnBhdGgu
ZXhpc3RzKGNhbmRpZGF0ZSk6CisgICAgICAgICAgICAgICAgcmV0dXJuIGNhbmRpZGF0ZQorCisg
ICAgICAgIHdoaWNoID0gcnVuKFsnL3Vzci9iaW4vd2hpY2gnLCBwcm9ncmFtXSwgY2FwdHVyZV9v
dXRwdXQ9VHJ1ZSwgZW5jb2Rpbmc9J3V0Zi04JykKKyAgICAgICAgaWYgbm90IHdoaWNoLnJldHVy
bmNvZGU6CisgICAgICAgICAgICByZXR1cm4gb3MucGF0aC5yZWFscGF0aCh3aGljaC5zdGRvdXQu
cnN0cmlwKCkpCisgICAgICAgIHJhaXNlIE9TRXJyb3IoIkNhbm5vdCBmaW5kICd7fScgcHJvZ3Jh
bSIuZm9ybWF0KHByb2dyYW0pKQogCiAgICAgQGNsYXNzbWV0aG9kCiAgICAgZGVmIGZyb21fcGF0
aChjbHMsIHBhdGgpOgpJbmRleDogVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkv
d2Via2l0c2NtcHkvbG9jYWwvc3ZuLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvbGli
cmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L2xvY2FsL3N2bi5weQkocmV2aXNpb24gMjY4
OTMxKQorKysgVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkv
bG9jYWwvc3ZuLnB5CSh3b3JraW5nIGNvcHkpCkBAIC0zNywxMyArMzcsMTcgQEAgZnJvbSB3ZWJr
aXRzY21weSBpbXBvcnQgQ29tbWl0LCBDb250cmlidQogCiAKIGNsYXNzIFN2bihTY20pOgotICAg
IGV4ZWN1dGFibGUgPSAnL3Vzci9iaW4vc3ZuJyBpZiBvcy5wYXRoLmV4aXN0cygnL3Vzci9iaW4v
c3ZuJykgZWxzZSAnL3Vzci9sb2NhbC9iaW4vc3ZuJwogICAgIExPR19SRSA9IHJlLmNvbXBpbGUo
cidyKD9QPHJldmlzaW9uPlxkKykgXHwgKD9QPGVtYWlsPi4qKSBcfCAoP1A8ZGF0ZT4uKiknKQog
ICAgIENBQ0hFX1ZFUlNJT04gPSBWZXJzaW9uKDEpCiAKICAgICBAY2xhc3NtZXRob2QKKyAgICBA
ZGVjb3JhdG9ycy5NZW1vaXplKCkKKyAgICBkZWYgZXhlY3V0YWJsZShjbHMpOgorICAgICAgICBy
ZXR1cm4gU2NtLmV4ZWN1dGFibGUoJ3N2bicpCisKKyAgICBAY2xhc3NtZXRob2QKICAgICBkZWYg
aXNfY2hlY2tvdXQoY2xzLCBwYXRoKToKLSAgICAgICAgcmV0dXJuIHJ1bihbY2xzLmV4ZWN1dGFi
bGUsICdpbmZvJ10sIGN3ZD1wYXRoLCBjYXB0dXJlX291dHB1dD1UcnVlKS5yZXR1cm5jb2RlID09
IDAKKyAgICAgICAgcmV0dXJuIHJ1bihbY2xzLmV4ZWN1dGFibGUoKSwgJ2luZm8nXSwgY3dkPXBh
dGgsIGNhcHR1cmVfb3V0cHV0PVRydWUpLnJldHVybmNvZGUgPT0gMAogCiAgICAgZGVmIF9faW5p
dF9fKHNlbGYsIHBhdGgsIGRldl9icmFuY2hlcz1Ob25lLCBwcm9kX2JyYW5jaGVzPU5vbmUpOgog
ICAgICAgICBzdXBlcihTdm4sIHNlbGYpLl9faW5pdF9fKHBhdGgsIGRldl9icmFuY2hlcz1kZXZf
YnJhbmNoZXMsIHByb2RfYnJhbmNoZXM9cHJvZF9icmFuY2hlcykKQEAgLTcwLDcgKzc0LDcgQEAg
Y2xhc3MgU3ZuKFNjbSk6CiAgICAgICAgIGFkZGl0aW9uYWxfYXJncyA9IFsnXi9icmFuY2hlcy97
fScuZm9ybWF0KGJyYW5jaCldIGlmIGJyYW5jaCBhbmQgYnJhbmNoICE9IHNlbGYuZGVmYXVsdF9i
cmFuY2ggZWxzZSBbXQogICAgICAgICBhZGRpdGlvbmFsX2FyZ3MgKz0gWyctcicsIHN0cihyZXZp
c2lvbildIGlmIHJldmlzaW9uIGVsc2UgW10KIAotICAgICAgICBpbmZvX3Jlc3VsdCA9IHJ1bihb
c2VsZi5leGVjdXRhYmxlLCAnaW5mbyddICsgYWRkaXRpb25hbF9hcmdzLCBjd2Q9c2VsZi5yb290
X3BhdGgsIGNhcHR1cmVfb3V0cHV0PVRydWUsIGVuY29kaW5nPSd1dGYtOCcpCisgICAgICAgIGlu
Zm9fcmVzdWx0ID0gcnVuKFtzZWxmLmV4ZWN1dGFibGUoKSwgJ2luZm8nXSArIGFkZGl0aW9uYWxf
YXJncywgY3dkPXNlbGYucm9vdF9wYXRoLCBjYXB0dXJlX291dHB1dD1UcnVlLCBlbmNvZGluZz0n
dXRmLTgnKQogICAgICAgICBpZiBpbmZvX3Jlc3VsdC5yZXR1cm5jb2RlOgogICAgICAgICAgICAg
cmV0dXJuIHt9CiAKQEAgLTEwMCw3ICsxMDQsNyBAQCBjbGFzcyBTdm4oU2NtKToKICAgICAgICAg
cmV0dXJuIHNlbGYuaW5mbygpWydSZWxhdGl2ZSBVUkwnXVsyOl0KIAogICAgIGRlZiBsaXN0KHNl
bGYsIGNhdGVnb3J5KToKLSAgICAgICAgbGlzdF9yZXN1bHQgPSBydW4oW3NlbGYuZXhlY3V0YWJs
ZSwgJ2xpc3QnLCAnXi97fScuZm9ybWF0KGNhdGVnb3J5KV0sIGN3ZD1zZWxmLnJvb3RfcGF0aCwg
Y2FwdHVyZV9vdXRwdXQ9VHJ1ZSwgZW5jb2Rpbmc9J3V0Zi04JykKKyAgICAgICAgbGlzdF9yZXN1
bHQgPSBydW4oW3NlbGYuZXhlY3V0YWJsZSgpLCAnbGlzdCcsICdeL3t9Jy5mb3JtYXQoY2F0ZWdv
cnkpXSwgY3dkPXNlbGYucm9vdF9wYXRoLCBjYXB0dXJlX291dHB1dD1UcnVlLCBlbmNvZGluZz0n
dXRmLTgnKQogICAgICAgICBpZiBsaXN0X3Jlc3VsdC5yZXR1cm5jb2RlOgogICAgICAgICAgICAg
cmV0dXJuIFtdCiAgICAgICAgIHJldHVybiBbZWxlbWVudC5yc3RyaXAoJy8nKSBmb3IgZWxlbWVu
dCBpbiBsaXN0X3Jlc3VsdC5zdGRvdXQuc3BsaXRsaW5lcygpXQpAQCAtMTQxLDcgKzE0NSw3IEBA
IGNsYXNzIFN2bihTY20pOgogICAgICAgICAgICAgICAgIGt3YXJncyA9IGRpY3QoZW5jb2Rpbmc9
J3V0Zi04JykKIAogICAgICAgICAgICAgbG9nID0gc3VicHJvY2Vzcy5Qb3BlbigKLSAgICAgICAg
ICAgICAgICBbc2VsZi5leGVjdXRhYmxlLCAnbG9nJywgJy1xJywgYnJhbmNoX2FyZ10sCisgICAg
ICAgICAgICAgICAgW3NlbGYuZXhlY3V0YWJsZSgpLCAnbG9nJywgJy1xJywgYnJhbmNoX2FyZ10s
CiAgICAgICAgICAgICAgICAgY3dkPXNlbGYucm9vdF9wYXRoLAogICAgICAgICAgICAgICAgIHN0
ZG91dD1zdWJwcm9jZXNzLlBJUEUsCiAgICAgICAgICAgICAgICAgc3RkZXJyPXN1YnByb2Nlc3Mu
UElQRSwKQEAgLTIwNyw3ICsyMTEsNyBAQCBjbGFzcyBTdm4oU2NtKToKICAgICAgICAgICAgIHJl
dHVybiBjYW5kaWRhdGUKIAogICAgICAgICBwcm9jZXNzID0gcnVuKAotICAgICAgICAgICAgW3Nl
bGYuZXhlY3V0YWJsZSwgJ2xvZycsICctdicsICctcScsIHNlbGYucmVtb3RlKCksICctcicsIHN0
cihyZXZpc2lvbiksICctbCcsICcxJ10sCisgICAgICAgICAgICBbc2VsZi5leGVjdXRhYmxlKCks
ICdsb2cnLCAnLXYnLCAnLXEnLCBzZWxmLnJlbW90ZSgpLCAnLXInLCBzdHIocmV2aXNpb24pLCAn
LWwnLCAnMSddLAogICAgICAgICAgICAgY3dkPXNlbGYucm9vdF9wYXRoLCBjYXB0dXJlX291dHB1
dD1UcnVlLCBlbmNvZGluZz0ndXRmLTgnLAogICAgICAgICApCiAKQEAgLTMyMiw3ICszMjYsNyBA
QCBjbGFzcyBTdm4oU2NtKToKIAogICAgICAgICBicmFuY2hfYXJnID0gJ14ve317fScuZm9ybWF0
KCcnIGlmIGJyYW5jaCA9PSBzZWxmLmRlZmF1bHRfYnJhbmNoIGVsc2UgJ2JyYW5jaGVzLycsIGJy
YW5jaCkKICAgICAgICAgbG9nID0gcnVuKAotICAgICAgICAgICAgW3NlbGYuZXhlY3V0YWJsZSwg
J2xvZycsICctbCcsICcxJywgJy1yJywgc3RyKHJldmlzaW9uKSwgYnJhbmNoX2FyZ10sIGN3ZD1z
ZWxmLnJvb3RfcGF0aCwKKyAgICAgICAgICAgIFtzZWxmLmV4ZWN1dGFibGUoKSwgJ2xvZycsICct
bCcsICcxJywgJy1yJywgc3RyKHJldmlzaW9uKSwgYnJhbmNoX2FyZ10sIGN3ZD1zZWxmLnJvb3Rf
cGF0aCwKICAgICAgICAgICAgIGNhcHR1cmVfb3V0cHV0PVRydWUsIGVuY29kaW5nPSd1dGYtOCcs
CiAgICAgICAgICkKICAgICAgICAgc3BsaXRfbG9nID0gbG9nLnN0ZG91dC5zcGxpdGxpbmVzKCkK
SW5kZXg6IFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L21v
Y2tzL2xvY2FsL2dpdC5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93
ZWJraXRzY21weS93ZWJraXRzY21weS9tb2Nrcy9sb2NhbC9naXQucHkJKHJldmlzaW9uIDI2ODkz
MSkKKysrIFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L21v
Y2tzL2xvY2FsL2dpdC5weQkod29ya2luZyBjb3B5KQpAQCAtNDUsNiArNDUsMTEgQEAgY2xhc3Mg
R2l0KG1vY2tzLlN1YnByb2Nlc3MpOgogICAgICAgICBzZWxmLmJyYW5jaGVzID0gYnJhbmNoZXMg
b3IgW10KICAgICAgICAgc2VsZi50YWdzID0gdGFncyBvciBbXQogCisgICAgICAgIHRyeToKKyAg
ICAgICAgICAgIHNlbGYuZXhlY3V0YWJsZSA9IGxvY2FsLkdpdC5leGVjdXRhYmxlKCkKKyAgICAg
ICAgZXhjZXB0IChPU0Vycm9yLCBBc3NlcnRpb25FcnJvcik6CisgICAgICAgICAgICBzZWxmLmV4
ZWN1dGFibGUgPSAnL3Vzci9iaW4vZ2l0JworCiAgICAgICAgICMgUHJvdmlkZSBhIHJlYXNvbmFi
bGUgc2V0IG9mIGNvbW1pdHMgdG8gdGVzdCBhZ2FpbnN0CiAgICAgICAgIGNvbnRyaWJ1dG9yID0g
Q29udHJpYnV0b3IobmFtZT0nSm9uYXRoYW4gQmVkYXJkJywgZW1haWxzPVsnamJlZGFyZEBhcHBs
ZS5jb20nXSkKICAgICAgICAgc2VsZi5jb21taXRzID0gewpAQCAtMTE3LDcgKzEyMiw3IEBAIGNs
YXNzIEdpdChtb2Nrcy5TdWJwcm9jZXNzKToKICAgICAgICAgaWYgZ2l0X3N2bjoKICAgICAgICAg
ICAgIGdpdF9zdm5fcm91dGVzID0gWwogICAgICAgICAgICAgICAgIG1vY2tzLlN1YnByb2Nlc3Mu
Um91dGUoCi0gICAgICAgICAgICAgICAgICAgIGxvY2FsLkdpdC5leGVjdXRhYmxlLCAnc3ZuJywg
J2ZpbmQtcmV2JywgcmUuY29tcGlsZShyJ3JcZCsnKSwKKyAgICAgICAgICAgICAgICAgICAgc2Vs
Zi5leGVjdXRhYmxlLCAnc3ZuJywgJ2ZpbmQtcmV2JywgcmUuY29tcGlsZShyJ3JcZCsnKSwKICAg
ICAgICAgICAgICAgICAgICAgY3dkPXNlbGYucGF0aCwKICAgICAgICAgICAgICAgICAgICAgZ2Vu
ZXJhdG9yPWxhbWJkYSAqYXJncywgKiprd2FyZ3M6CiAgICAgICAgICAgICAgICAgICAgICAgICBt
b2Nrcy5Qcm9jZXNzQ29tcGxldGlvbigKQEAgLTEyNSw3ICsxMzAsNyBAQCBjbGFzcyBHaXQobW9j
a3MuU3VicHJvY2Vzcyk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Rkb3V0PWdldGF0
dHIoc2VsZi5maW5kKGFyZ3NbM11bMTpdKSwgJ2hhc2gnLCAnXG4nKSwKICAgICAgICAgICAgICAg
ICAgICAgICAgICkKICAgICAgICAgICAgICAgICApLCBtb2Nrcy5TdWJwcm9jZXNzLlJvdXRlKAot
ICAgICAgICAgICAgICAgICAgICBsb2NhbC5HaXQuZXhlY3V0YWJsZSwgJ3N2bicsICdpbmZvJywK
KyAgICAgICAgICAgICAgICAgICAgc2VsZi5leGVjdXRhYmxlLCAnc3ZuJywgJ2luZm8nLAogICAg
ICAgICAgICAgICAgICAgICBjd2Q9c2VsZi5wYXRoLAogICAgICAgICAgICAgICAgICAgICBnZW5l
cmF0b3I9bGFtYmRhICphcmdzLCAqKmt3YXJnczoKICAgICAgICAgICAgICAgICAgICAgICAgIG1v
Y2tzLlByb2Nlc3NDb21wbGV0aW9uKApAQCAtMTUzLDE0ICsxNTgsMjAgQEAgY2xhc3MgR2l0KG1v
Y2tzLlN1YnByb2Nlc3MpOgogCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICBnaXRfc3ZuX3Jv
dXRlcyA9IFttb2Nrcy5TdWJwcm9jZXNzLlJvdXRlKAotICAgICAgICAgICAgICAgIGxvY2FsLkdp
dC5leGVjdXRhYmxlLCAnc3ZuJywKKyAgICAgICAgICAgICAgICBzZWxmLmV4ZWN1dGFibGUsICdz
dm4nLAogICAgICAgICAgICAgICAgIGN3ZD1zZWxmLnBhdGgsCiAgICAgICAgICAgICAgICAgY29t
cGxldGlvbj1tb2Nrcy5Qcm9jZXNzQ29tcGxldGlvbihyZXR1cm5jb2RlPTEsIGVsYXBzZWQ9Miks
CiAgICAgICAgICAgICApXQogCiAgICAgICAgIHN1cGVyKEdpdCwgc2VsZikuX19pbml0X18oCiAg
ICAgICAgICAgICBtb2Nrcy5TdWJwcm9jZXNzLlJvdXRlKAotICAgICAgICAgICAgICAgIGxvY2Fs
LkdpdC5leGVjdXRhYmxlLCAnc3RhdHVzJywKKyAgICAgICAgICAgICAgICAnL3Vzci9iaW4vd2hp
Y2gnLCAnZ2l0JywKKyAgICAgICAgICAgICAgICBjb21wbGV0aW9uPW1vY2tzLlByb2Nlc3NDb21w
bGV0aW9uKAorICAgICAgICAgICAgICAgICAgICByZXR1cm5jb2RlPTAsCisgICAgICAgICAgICAg
ICAgICAgIHN0ZG91dD0ne31cbicuZm9ybWF0KHNlbGYuZXhlY3V0YWJsZSksCisgICAgICAgICAg
ICAgICAgKSwKKyAgICAgICAgICAgICksIG1vY2tzLlN1YnByb2Nlc3MuUm91dGUoCisgICAgICAg
ICAgICAgICAgc2VsZi5leGVjdXRhYmxlLCAnc3RhdHVzJywKICAgICAgICAgICAgICAgICBjd2Q9
c2VsZi5wYXRoLAogICAgICAgICAgICAgICAgIGdlbmVyYXRvcj1sYW1iZGEgKmFyZ3MsICoqa3dh
cmdzOgogICAgICAgICAgICAgICAgICAgICBtb2Nrcy5Qcm9jZXNzQ29tcGxldGlvbigKQEAgLTE3
NSwyMSArMTg2LDIxIEBAIG5vdGhpbmcgdG8gY29tbWl0LCB3b3JraW5nIHRyZWUgY2xlYW4KICAg
ICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICksCiAgICAgICAgICAgICBtb2Nrcy5T
dWJwcm9jZXNzLlJvdXRlKAotICAgICAgICAgICAgICAgIGxvY2FsLkdpdC5leGVjdXRhYmxlLCAn
cmV2LXBhcnNlJywgJy0tc2hvdy10b3BsZXZlbCcsCisgICAgICAgICAgICAgICAgc2VsZi5leGVj
dXRhYmxlLCAncmV2LXBhcnNlJywgJy0tc2hvdy10b3BsZXZlbCcsCiAgICAgICAgICAgICAgICAg
Y3dkPXNlbGYucGF0aCwKICAgICAgICAgICAgICAgICBjb21wbGV0aW9uPW1vY2tzLlByb2Nlc3ND
b21wbGV0aW9uKAogICAgICAgICAgICAgICAgICAgICByZXR1cm5jb2RlPTAsCiAgICAgICAgICAg
ICAgICAgICAgIHN0ZG91dD0ne31cbicuZm9ybWF0KHNlbGYucGF0aCksCiAgICAgICAgICAgICAg
ICAgKSwKICAgICAgICAgICAgICksIG1vY2tzLlN1YnByb2Nlc3MuUm91dGUoCi0gICAgICAgICAg
ICAgICAgbG9jYWwuR2l0LmV4ZWN1dGFibGUsICdyZXYtcGFyc2UnLCAnLS1hYmJyZXYtcmVmJywg
J0hFQUQnLAorICAgICAgICAgICAgICAgIHNlbGYuZXhlY3V0YWJsZSwgJ3Jldi1wYXJzZScsICct
LWFiYnJldi1yZWYnLCAnSEVBRCcsCiAgICAgICAgICAgICAgICAgY3dkPXNlbGYucGF0aCwKICAg
ICAgICAgICAgICAgICBnZW5lcmF0b3I9bGFtYmRhICphcmdzLCAqKmt3YXJnczogbW9ja3MuUHJv
Y2Vzc0NvbXBsZXRpb24oCiAgICAgICAgICAgICAgICAgICAgIHJldHVybmNvZGU9MCwKICAgICAg
ICAgICAgICAgICAgICAgc3Rkb3V0PSd7fVxuJy5mb3JtYXQoJ0hFQUQnIGlmIHNlbGYuZGV0YWNo
ZWQgZWxzZSBzZWxmLmJyYW5jaCksCiAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICks
IG1vY2tzLlN1YnByb2Nlc3MuUm91dGUoCi0gICAgICAgICAgICAgICAgbG9jYWwuR2l0LmV4ZWN1
dGFibGUsICdyZW1vdGUnLCAnZ2V0LXVybCcsICcuKicsCisgICAgICAgICAgICAgICAgc2VsZi5l
eGVjdXRhYmxlLCAncmVtb3RlJywgJ2dldC11cmwnLCAnLionLAogICAgICAgICAgICAgICAgIGN3
ZD1zZWxmLnBhdGgsCiAgICAgICAgICAgICAgICAgZ2VuZXJhdG9yPWxhbWJkYSAqYXJncywgKipr
d2FyZ3M6IG1vY2tzLlByb2Nlc3NDb21wbGV0aW9uKAogICAgICAgICAgICAgICAgICAgICByZXR1
cm5jb2RlPTAsCkBAIC0xOTksNyArMjEwLDcgQEAgbm90aGluZyB0byBjb21taXQsIHdvcmtpbmcg
dHJlZSBjbGVhbgogICAgICAgICAgICAgICAgICAgICBzdGRlcnI9ImZhdGFsOiBObyBzdWNoIHJl
bW90ZSAne30nXG4iLmZvcm1hdChhcmdzWzNdKSwKICAgICAgICAgICAgICAgICApLAogICAgICAg
ICAgICAgKSwgbW9ja3MuU3VicHJvY2Vzcy5Sb3V0ZSgKLSAgICAgICAgICAgICAgICBsb2NhbC5H
aXQuZXhlY3V0YWJsZSwgJ2JyYW5jaCcsICctYScsCisgICAgICAgICAgICAgICAgc2VsZi5leGVj
dXRhYmxlLCAnYnJhbmNoJywgJy1hJywKICAgICAgICAgICAgICAgICBjd2Q9c2VsZi5wYXRoLAog
ICAgICAgICAgICAgICAgIGdlbmVyYXRvcj1sYW1iZGEgKmFyZ3MsICoqa3dhcmdzOiBtb2Nrcy5Q
cm9jZXNzQ29tcGxldGlvbigKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuY29kZT0wLApAQCAt
MjA3LDI4ICsyMTgsMjggQEAgbm90aGluZyB0byBjb21taXQsIHdvcmtpbmcgdHJlZSBjbGVhbgog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xucmVtb3Rlcy9vcmlnaW4vSEVBRCAtPiBvcmln
aW4ve31cbicuZm9ybWF0KGRlZmF1bHRfYnJhbmNoKSwKICAgICAgICAgICAgICAgICApLAogICAg
ICAgICAgICAgKSwgbW9ja3MuU3VicHJvY2Vzcy5Sb3V0ZSgKLSAgICAgICAgICAgICAgICBsb2Nh
bC5HaXQuZXhlY3V0YWJsZSwgJ3RhZycsCisgICAgICAgICAgICAgICAgc2VsZi5leGVjdXRhYmxl
LCAndGFnJywKICAgICAgICAgICAgICAgICBjd2Q9c2VsZi5wYXRoLAogICAgICAgICAgICAgICAg
IGdlbmVyYXRvcj1sYW1iZGEgKmFyZ3MsICoqa3dhcmdzOiBtb2Nrcy5Qcm9jZXNzQ29tcGxldGlv
bigKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuY29kZT0wLAogICAgICAgICAgICAgICAgICAg
ICBzdGRvdXQ9J1xuJy5qb2luKHNlbGYudGFncykgKyAnXG4nLAogICAgICAgICAgICAgICAgICks
CiAgICAgICAgICAgICApLCBtb2Nrcy5TdWJwcm9jZXNzLlJvdXRlKAotICAgICAgICAgICAgICAg
IGxvY2FsLkdpdC5leGVjdXRhYmxlLCAncmV2LXBhcnNlJywgJy0tYWJicmV2LXJlZicsICdvcmln
aW4vSEVBRCcsCisgICAgICAgICAgICAgICAgc2VsZi5leGVjdXRhYmxlLCAncmV2LXBhcnNlJywg
Jy0tYWJicmV2LXJlZicsICdvcmlnaW4vSEVBRCcsCiAgICAgICAgICAgICAgICAgY3dkPXNlbGYu
cGF0aCwKICAgICAgICAgICAgICAgICBnZW5lcmF0b3I9bGFtYmRhICphcmdzLCAqKmt3YXJnczog
bW9ja3MuUHJvY2Vzc0NvbXBsZXRpb24oCiAgICAgICAgICAgICAgICAgICAgIHJldHVybmNvZGU9
MCwKICAgICAgICAgICAgICAgICAgICAgc3Rkb3V0PSdvcmlnaW4ve31cbicuZm9ybWF0KGRlZmF1
bHRfYnJhbmNoKSwKICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgKSwgbW9ja3MuU3Vi
cHJvY2Vzcy5Sb3V0ZSgKLSAgICAgICAgICAgICAgICBsb2NhbC5HaXQuZXhlY3V0YWJsZSwgJ3Jl
di1wYXJzZScsICcuKicsCisgICAgICAgICAgICAgICAgc2VsZi5leGVjdXRhYmxlLCAncmV2LXBh
cnNlJywgJy4qJywKICAgICAgICAgICAgICAgICBjd2Q9c2VsZi5wYXRoLAogICAgICAgICAgICAg
ICAgIGdlbmVyYXRvcj1sYW1iZGEgKmFyZ3MsICoqa3dhcmdzOiBtb2Nrcy5Qcm9jZXNzQ29tcGxl
dGlvbigKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuY29kZT0wLAogICAgICAgICAgICAgICAg
ICAgICBzdGRvdXQ9J3t9XG4nLmZvcm1hdChzZWxmLmZpbmQoYXJnc1syXSkuaGFzaCksCiAgICAg
ICAgICAgICAgICAgKSBpZiBzZWxmLmZpbmQoYXJnc1syXSkgZWxzZSBtb2Nrcy5Qcm9jZXNzQ29t
cGxldGlvbihyZXR1cm5jb2RlPTEyOCkKICAgICAgICAgICAgICksIG1vY2tzLlN1YnByb2Nlc3Mu
Um91dGUoCi0gICAgICAgICAgICAgICAgbG9jYWwuR2l0LmV4ZWN1dGFibGUsICdsb2cnLCByZS5j
b21waWxlKHInLisnKSwgJy0xJywKKyAgICAgICAgICAgICAgICBzZWxmLmV4ZWN1dGFibGUsICds
b2cnLCByZS5jb21waWxlKHInLisnKSwgJy0xJywKICAgICAgICAgICAgICAgICBjd2Q9c2VsZi5w
YXRoLAogICAgICAgICAgICAgICAgIGdlbmVyYXRvcj1sYW1iZGEgKmFyZ3MsICoqa3dhcmdzOiBt
b2Nrcy5Qcm9jZXNzQ29tcGxldGlvbigKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuY29kZT0w
LApAQCAtMjUzLDE0ICsyNjQsMTQgQEAgbm90aGluZyB0byBjb21taXQsIHdvcmtpbmcgdHJlZSBj
bGVhbgogICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICApIGlmIHNl
bGYuZmluZChhcmdzWzJdKSBlbHNlIG1vY2tzLlByb2Nlc3NDb21wbGV0aW9uKHJldHVybmNvZGU9
MTI4KSwKICAgICAgICAgICAgICksIG1vY2tzLlN1YnByb2Nlc3MuUm91dGUoCi0gICAgICAgICAg
ICAgICAgbG9jYWwuR2l0LmV4ZWN1dGFibGUsICdyZXYtbGlzdCcsICctLWNvdW50JywgJy0tbm8t
bWVyZ2VzJywgcmUuY29tcGlsZShyJy4rJyksCisgICAgICAgICAgICAgICAgc2VsZi5leGVjdXRh
YmxlLCAncmV2LWxpc3QnLCAnLS1jb3VudCcsICctLW5vLW1lcmdlcycsIHJlLmNvbXBpbGUocicu
KycpLAogICAgICAgICAgICAgICAgIGN3ZD1zZWxmLnBhdGgsCiAgICAgICAgICAgICAgICAgZ2Vu
ZXJhdG9yPWxhbWJkYSAqYXJncywgKiprd2FyZ3M6IG1vY2tzLlByb2Nlc3NDb21wbGV0aW9uKAog
ICAgICAgICAgICAgICAgICAgICByZXR1cm5jb2RlPTAsCiAgICAgICAgICAgICAgICAgICAgIHN0
ZG91dD0ne31cbicuZm9ybWF0KHNlbGYuY291bnQoYXJnc1s0XSkpCiAgICAgICAgICAgICAgICAg
KSBpZiBzZWxmLmZpbmQoYXJnc1s0XSkgZWxzZSBtb2Nrcy5Qcm9jZXNzQ29tcGxldGlvbihyZXR1
cm5jb2RlPTEyOCksCiAgICAgICAgICAgICApLCBtb2Nrcy5TdWJwcm9jZXNzLlJvdXRlKAotICAg
ICAgICAgICAgICAgIGxvY2FsLkdpdC5leGVjdXRhYmxlLCAnc2hvdycsICctcycsICctLWZvcm1h
dD0lY3QnLCByZS5jb21waWxlKHInLisnKSwKKyAgICAgICAgICAgICAgICBzZWxmLmV4ZWN1dGFi
bGUsICdzaG93JywgJy1zJywgJy0tZm9ybWF0PSVjdCcsIHJlLmNvbXBpbGUocicuKycpLAogICAg
ICAgICAgICAgICAgIGN3ZD1zZWxmLnBhdGgsCiAgICAgICAgICAgICAgICAgZ2VuZXJhdG9yPWxh
bWJkYSAqYXJncywgKiprd2FyZ3M6IG1vY2tzLlByb2Nlc3NDb21wbGV0aW9uKAogICAgICAgICAg
ICAgICAgICAgICByZXR1cm5jb2RlPTAsCkBAIC0yNjksMjEgKzI4MCwyMSBAQCBub3RoaW5nIHRv
IGNvbW1pdCwgd29ya2luZyB0cmVlIGNsZWFuCiAgICAgICAgICAgICAgICAgICAgICkKICAgICAg
ICAgICAgICAgICApIGlmIHNlbGYuZmluZChhcmdzWzRdKSBlbHNlIG1vY2tzLlByb2Nlc3NDb21w
bGV0aW9uKHJldHVybmNvZGU9MTI4KSwKICAgICAgICAgICAgICksIG1vY2tzLlN1YnByb2Nlc3Mu
Um91dGUoCi0gICAgICAgICAgICAgICAgbG9jYWwuR2l0LmV4ZWN1dGFibGUsICdicmFuY2gnLCAn
LWEnLCAnLS1jb250YWlucycsIHJlLmNvbXBpbGUocicuKycpLAorICAgICAgICAgICAgICAgIHNl
bGYuZXhlY3V0YWJsZSwgJ2JyYW5jaCcsICctYScsICctLWNvbnRhaW5zJywgcmUuY29tcGlsZShy
Jy4rJyksCiAgICAgICAgICAgICAgICAgY3dkPXNlbGYucGF0aCwKICAgICAgICAgICAgICAgICBn
ZW5lcmF0b3I9bGFtYmRhICphcmdzLCAqKmt3YXJnczogbW9ja3MuUHJvY2Vzc0NvbXBsZXRpb24o
CiAgICAgICAgICAgICAgICAgICAgIHJldHVybmNvZGU9MCwKICAgICAgICAgICAgICAgICAgICAg
c3Rkb3V0PSdcbicuam9pbihzb3J0ZWQoc2VsZi5icmFuY2hlc19vbihhcmdzWzRdKSkpICsgJ1xu
JywKICAgICAgICAgICAgICAgICApIGlmIHNlbGYuZmluZChhcmdzWzRdKSBlbHNlIG1vY2tzLlBy
b2Nlc3NDb21wbGV0aW9uKHJldHVybmNvZGU9MTI4KSwKICAgICAgICAgICAgICksIG1vY2tzLlN1
YnByb2Nlc3MuUm91dGUoCi0gICAgICAgICAgICAgICAgbG9jYWwuR2l0LmV4ZWN1dGFibGUsCisg
ICAgICAgICAgICAgICAgc2VsZi5leGVjdXRhYmxlLAogICAgICAgICAgICAgICAgIGN3ZD1zZWxm
LnBhdGgsCiAgICAgICAgICAgICAgICAgY29tcGxldGlvbj1tb2Nrcy5Qcm9jZXNzQ29tcGxldGlv
bigKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuY29kZT0xLAogICAgICAgICAgICAgICAgICAg
ICBzdGRlcnI9J3VzYWdlOiBnaXQgWy0tdmVyc2lvbl0gWy0taGVscF0uLi5cbicsCiAgICAgICAg
ICAgICAgICAgKSwKICAgICAgICAgICAgICksIG1vY2tzLlN1YnByb2Nlc3MuUm91dGUoCi0gICAg
ICAgICAgICAgICAgbG9jYWwuR2l0LmV4ZWN1dGFibGUsCisgICAgICAgICAgICAgICAgc2VsZi5l
eGVjdXRhYmxlLAogICAgICAgICAgICAgICAgIGNvbXBsZXRpb249bW9ja3MuUHJvY2Vzc0NvbXBs
ZXRpb24oCiAgICAgICAgICAgICAgICAgICAgIHJldHVybmNvZGU9MTI4LAogICAgICAgICAgICAg
ICAgICAgICBzdGRlcnI9J2ZhdGFsOiBub3QgYSBnaXQgcmVwb3NpdG9yeSAob3IgYW55IHBhcmVu
dCB1cCB0byBtb3VudCBwb2ludClcblN0b3BwaW5nIGF0IGZpbGVzeXN0ZW0gYm91bmRhcnkgKEdJ
VF9ESVNDT1ZFUllfQUNST1NTX0ZJTEVTWVNURU0gbm90IHNldCkuXG4nLApJbmRleDogVG9vbHMv
U2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvbW9ja3MvbG9jYWwvc3Zu
LnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dl
YmtpdHNjbXB5L21vY2tzL2xvY2FsL3N2bi5weQkocmV2aXNpb24gMjY4OTMxKQorKysgVG9vbHMv
U2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvbW9ja3MvbG9jYWwvc3Zu
LnB5CSh3b3JraW5nIGNvcHkpCkBAIC01NCw2ICs1NCwxMSBAQCBjbGFzcyBTdm4obW9ja3MuU3Vi
cHJvY2Vzcyk6CiAgICAgICAgIHNlbGYudGFncyA9IHRhZ3Mgb3IgW10KICAgICAgICAgc2VsZi5j
b25uZWN0ZWQgPSBUcnVlCiAKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgc2VsZi5leGVjdXRh
YmxlID0gbG9jYWwuU3ZuLmV4ZWN1dGFibGUoKQorICAgICAgICBleGNlcHQgKE9TRXJyb3IsIEFz
c2VydGlvbkVycm9yKToKKyAgICAgICAgICAgIHNlbGYuZXhlY3V0YWJsZSA9ICcvdXNyL2Jpbi9z
dm4nCisKICAgICAgICAgIyBQcm92aWRlIGEgcmVhc29uYWJsZSBzZXQgb2YgY29tbWl0cyB0byB0
ZXN0IGFnYWluc3QKICAgICAgICAgY29udHJpYnV0b3IgPSBDb250cmlidXRvcihuYW1lPSdKb25h
dGhhbiBCZWRhcmQnLCBlbWFpbHM9WydqYmVkYXJkQGFwcGxlLmNvbSddKQogICAgICAgICBzZWxm
LmNvbW1pdHMgPSB7CkBAIC0xMTcsMjkgKzEyMiwzNSBAQCBjbGFzcyBTdm4obW9ja3MuU3VicHJv
Y2Vzcyk6CiAKICAgICAgICAgc3VwZXIoU3ZuLCBzZWxmKS5fX2luaXRfXygKICAgICAgICAgICAg
IG1vY2tzLlN1YnByb2Nlc3MuUm91dGUoCi0gICAgICAgICAgICAgICAgbG9jYWwuU3ZuLmV4ZWN1
dGFibGUsICdpbmZvJywKKyAgICAgICAgICAgICAgICAnL3Vzci9iaW4vd2hpY2gnLCAnc3ZuJywK
KyAgICAgICAgICAgICAgICBjb21wbGV0aW9uPW1vY2tzLlByb2Nlc3NDb21wbGV0aW9uKAorICAg
ICAgICAgICAgICAgICAgICByZXR1cm5jb2RlPTAsCisgICAgICAgICAgICAgICAgICAgIHN0ZG91
dD0ne31cbicuZm9ybWF0KHNlbGYuZXhlY3V0YWJsZSksCisgICAgICAgICAgICAgICAgKSwKKyAg
ICAgICAgICAgICksIG1vY2tzLlN1YnByb2Nlc3MuUm91dGUoCisgICAgICAgICAgICAgICAgc2Vs
Zi5leGVjdXRhYmxlLCAnaW5mbycsCiAgICAgICAgICAgICAgICAgY3dkPXNlbGYucGF0aCwKICAg
ICAgICAgICAgICAgICBnZW5lcmF0b3I9bGFtYmRhICphcmdzLCAqKmt3YXJnczogc2VsZi5faW5m
byhjd2Q9a3dhcmdzLmdldCgnY3dkJywnJykpCiAgICAgICAgICAgICApLCBtb2Nrcy5TdWJwcm9j
ZXNzLlJvdXRlKAotICAgICAgICAgICAgICAgIGxvY2FsLlN2bi5leGVjdXRhYmxlLCAnaW5mbycs
IHNlbGYuQlJBTkNIX1JFLAorICAgICAgICAgICAgICAgIHNlbGYuZXhlY3V0YWJsZSwgJ2luZm8n
LCBzZWxmLkJSQU5DSF9SRSwKICAgICAgICAgICAgICAgICBjd2Q9c2VsZi5wYXRoLAogICAgICAg
ICAgICAgICAgIGdlbmVyYXRvcj1sYW1iZGEgKmFyZ3MsICoqa3dhcmdzOiBzZWxmLl9pbmZvKGJy
YW5jaD1zZWxmLkJSQU5DSF9SRS5tYXRjaChhcmdzWzJdKS5ncm91cCgnYnJhbmNoJyksIGN3ZD1r
d2FyZ3MuZ2V0KCdjd2QnLCAnJykpCiAgICAgICAgICAgICApLCBtb2Nrcy5TdWJwcm9jZXNzLlJv
dXRlKAotICAgICAgICAgICAgICAgIGxvY2FsLlN2bi5leGVjdXRhYmxlLCAnbGlzdCcsICdeL2Jy
YW5jaGVzJywKKyAgICAgICAgICAgICAgICBzZWxmLmV4ZWN1dGFibGUsICdsaXN0JywgJ14vYnJh
bmNoZXMnLAogICAgICAgICAgICAgICAgIGN3ZD1zZWxmLnBhdGgsCiAgICAgICAgICAgICAgICAg
Z2VuZXJhdG9yPWxhbWJkYSAqYXJncywgKiprd2FyZ3M6IG1vY2tzLlByb2Nlc3NDb21wbGV0aW9u
KAogICAgICAgICAgICAgICAgICAgICByZXR1cm5jb2RlPTAsCiAgICAgICAgICAgICAgICAgICAg
IHN0ZG91dD0nL1xuJy5qb2luKHNvcnRlZChzZXQoc2VsZi5icmFuY2hlcykgfCBzZXQoc2VsZi5j
b21taXRzLmtleXMoKSkgLSB7J3RydW5rJ30pKSArICcvXG4nLAogICAgICAgICAgICAgICAgICkg
aWYgc2VsZi5jb25uZWN0ZWQgZWxzZSBtb2Nrcy5Qcm9jZXNzQ29tcGxldGlvbihyZXR1cm5jb2Rl
PTEpLAogICAgICAgICAgICAgKSwgbW9ja3MuU3VicHJvY2Vzcy5Sb3V0ZSgKLSAgICAgICAgICAg
ICAgICBsb2NhbC5Tdm4uZXhlY3V0YWJsZSwgJ2xpc3QnLCAnXi90YWdzJywKKyAgICAgICAgICAg
ICAgICBzZWxmLmV4ZWN1dGFibGUsICdsaXN0JywgJ14vdGFncycsCiAgICAgICAgICAgICAgICAg
Y3dkPXNlbGYucGF0aCwKICAgICAgICAgICAgICAgICBnZW5lcmF0b3I9bGFtYmRhICphcmdzLCAq
Kmt3YXJnczogbW9ja3MuUHJvY2Vzc0NvbXBsZXRpb24oCiAgICAgICAgICAgICAgICAgICAgIHJl
dHVybmNvZGU9MCwKICAgICAgICAgICAgICAgICAgICAgc3Rkb3V0PScvXG4nLmpvaW4oc2VsZi50
YWdzKSArICcvXG4nLAogICAgICAgICAgICAgICAgICkgaWYgc2VsZi5jb25uZWN0ZWQgZWxzZSBt
b2Nrcy5Qcm9jZXNzQ29tcGxldGlvbihyZXR1cm5jb2RlPTEpLAogICAgICAgICAgICAgKSwgbW9j
a3MuU3VicHJvY2Vzcy5Sb3V0ZSgKLSAgICAgICAgICAgICAgICBsb2NhbC5Tdm4uZXhlY3V0YWJs
ZSwgJ2xvZycsICctdicsICctcScsIHNlbGYucmVtb3RlLCAnLXInLCByZS5jb21waWxlKHInXGQr
JyksCisgICAgICAgICAgICAgICAgc2VsZi5leGVjdXRhYmxlLCAnbG9nJywgJy12JywgJy1xJywg
c2VsZi5yZW1vdGUsICctcicsIHJlLmNvbXBpbGUocidcZCsnKSwKICAgICAgICAgICAgICAgICBj
d2Q9c2VsZi5wYXRoLAogICAgICAgICAgICAgICAgIGdlbmVyYXRvcj1sYW1iZGEgKmFyZ3MsICoq
a3dhcmdzOiBtb2Nrcy5Qcm9jZXNzQ29tcGxldGlvbigKICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuY29kZT0wLApAQCAtMTUzLDcgKzE2NCw3IEBAIGNsYXNzIFN2bihtb2Nrcy5TdWJwcm9jZXNz
KToKICAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgKSBpZiBzZWxm
LmNvbm5lY3RlZCBhbmQgc2VsZi5maW5kKHJldmlzaW9uPWFyZ3NbNl0pIGVsc2UgbW9ja3MuUHJv
Y2Vzc0NvbXBsZXRpb24ocmV0dXJuY29kZT0xKSwKICAgICAgICAgICAgICksIG1vY2tzLlN1YnBy
b2Nlc3MuUm91dGUoCi0gICAgICAgICAgICAgICAgbG9jYWwuU3ZuLmV4ZWN1dGFibGUsICdsb2cn
LCAnLXEnLCBzZWxmLkJSQU5DSF9SRSwKKyAgICAgICAgICAgICAgICBzZWxmLmV4ZWN1dGFibGUs
ICdsb2cnLCAnLXEnLCBzZWxmLkJSQU5DSF9SRSwKICAgICAgICAgICAgICAgICBjd2Q9c2VsZi5w
YXRoLAogICAgICAgICAgICAgICAgIGdlbmVyYXRvcj1sYW1iZGEgKmFyZ3MsICoqa3dhcmdzOiBt
b2Nrcy5Qcm9jZXNzQ29tcGxldGlvbigKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuY29kZT0w
LApAQCAtMTYyLDIxICsxNzMsMjEgQEAgY2xhc3MgU3ZuKG1vY2tzLlN1YnByb2Nlc3MpOgogICAg
ICAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgICApIGlmIHNlbGYuY29ubmVjdGVk
IGFuZCBzZWxmLkJSQU5DSF9SRS5tYXRjaChhcmdzWzNdKS5ncm91cCgnYnJhbmNoJykgaW4gc2Vs
Zi5jb21taXRzIGVsc2UgbW9ja3MuUHJvY2Vzc0NvbXBsZXRpb24ocmV0dXJuY29kZT0xKQogICAg
ICAgICAgICAgKSwgbW9ja3MuU3VicHJvY2Vzcy5Sb3V0ZSgKLSAgICAgICAgICAgICAgICBsb2Nh
bC5Tdm4uZXhlY3V0YWJsZSwgJ2xvZycsICctbCcsICcxJywgJy1yJywgcmUuY29tcGlsZShyJ1xk
KycpLCBzZWxmLkJSQU5DSF9SRSwKKyAgICAgICAgICAgICAgICBzZWxmLmV4ZWN1dGFibGUsICds
b2cnLCAnLWwnLCAnMScsICctcicsIHJlLmNvbXBpbGUocidcZCsnKSwgc2VsZi5CUkFOQ0hfUkUs
CiAgICAgICAgICAgICAgICAgY3dkPXNlbGYucGF0aCwKICAgICAgICAgICAgICAgICBnZW5lcmF0
b3I9bGFtYmRhICphcmdzLCAqKmt3YXJnczogc2VsZi5fbG9nX2ZvcigKICAgICAgICAgICAgICAg
ICAgICAgYnJhbmNoPXNlbGYuQlJBTkNIX1JFLm1hdGNoKGFyZ3NbNl0pLmdyb3VwKCdicmFuY2gn
KSwKICAgICAgICAgICAgICAgICAgICAgcmV2aXNpb249YXJnc1s1XSwKICAgICAgICAgICAgICAg
ICApIGlmIHNlbGYuY29ubmVjdGVkIGVsc2UgbW9ja3MuUHJvY2Vzc0NvbXBsZXRpb24ocmV0dXJu
Y29kZT0xKQogICAgICAgICAgICAgKSwgbW9ja3MuU3VicHJvY2Vzcy5Sb3V0ZSgKLSAgICAgICAg
ICAgICAgICBsb2NhbC5Tdm4uZXhlY3V0YWJsZSwKKyAgICAgICAgICAgICAgICBzZWxmLmV4ZWN1
dGFibGUsCiAgICAgICAgICAgICAgICAgY3dkPXNlbGYucGF0aCwKICAgICAgICAgICAgICAgICBj
b21wbGV0aW9uPW1vY2tzLlByb2Nlc3NDb21wbGV0aW9uKAogICAgICAgICAgICAgICAgICAgICBy
ZXR1cm5jb2RlPTEsCiAgICAgICAgICAgICAgICAgICAgIHN0ZGVycj0iVHlwZSAnc3ZuIGhlbHAn
IGZvciB1c2FnZS5cbiIsCiAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgKSwgbW9ja3Mu
U3VicHJvY2Vzcy5Sb3V0ZSgKLSAgICAgICAgICAgICAgICBsb2NhbC5Tdm4uZXhlY3V0YWJsZSwK
KyAgICAgICAgICAgICAgICBzZWxmLmV4ZWN1dGFibGUsCiAgICAgICAgICAgICAgICAgZ2VuZXJh
dG9yPWxhbWJkYSAqYXJncywgKiprd2FyZ3M6IG1vY2tzLlByb2Nlc3NDb21wbGV0aW9uKAogICAg
ICAgICAgICAgICAgICAgICByZXR1cm5jb2RlPTEsCiAgICAgICAgICAgICAgICAgICAgIHN0ZGVy
cj0ic3ZuOiBFMTU1MDA3OiAne30nIGlzIG5vdCBhIHdvcmtpbmcgY29weVxuIi5mb3JtYXQoa3dh
cmdzLmdldCgnY3dkJykpLAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>