<?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>312231</bug_id>
          
          <creation_ts>2026-04-13 20:45:12 -0700</creation_ts>
          <short_desc>REGRESSION(311151@main): Broke git-commit</short_desc>
          <delta_ts>2026-04-22 12:22:53 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>CONFIGURATION CHANGED</resolution>
          
          
          <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>
          
          <blocked>309535</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>ddkilzer</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>2200030</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2026-04-13 20:45:12 -0700</bug_when>
    <thetext>https://commits.webkit.org/311151@main introduced a regression:
Broke git-commit

This is an automatic bug report generated by webkitbot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests fail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2200031</commentid>
    <comment_count>1</comment_count>
      <attachid>479057</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2026-04-13 20:45:15 -0700</bug_when>
    <thetext>Created attachment 479057
REVERT of 311151@main

Any committer can land this patch automatically by marking it commit-queue+.  The commit-queue will build and test the patch before landing to ensure that the revert will be successful.  This process takes approximately 15 minutes.

If you would like to land the revert faster, you can use the following command:

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2202535</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2026-04-20 20:46:10 -0700</bug_when>
    <thetext>&lt;rdar://problem/175217641&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2203263</commentid>
    <comment_count>3</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2026-04-22 12:21:05 -0700</bug_when>
    <thetext>Fixed without need to revert:

Committed 311158@main (63ae187fab2d): &lt;https://commits.webkit.org/311158@main&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>479057</attachid>
            <date>2026-04-13 20:45:15 -0700</date>
            <delta_ts>2026-04-13 20:46:34 -0700</delta_ts>
            <desc>REVERT of 311151@main</desc>
            <filename>bug-312231-20260414034515.patch</filename>
            <type>text/plain</type>
            <size>66901</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">RnJvbSA3YTg0NDA4OWZiMjllNDdhNGE1MzdjMTVjYjVkMzZmNjBhYTU3NTMwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBDb21taXQgUXVldWUgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3Jn
PgpEYXRlOiBUdWUsIDE0IEFwciAyMDI2IDAzOjQ1OjEzICswMDAwClN1YmplY3Q6IFtQQVRDSF0g
VW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIDMxMTE1MUBtYWluLgogaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTMxMjIzMQoKQnJva2UgZ2l0LWNvbW1pdAoKUmV2ZXJ0ZWQgY2hh
bmdlc2V0OgoKImdpdC13ZWJraXQ6IGFkZCBgY3JlYXRlLWJ1Z2AgYW5kIGB0cmFja2VyLW1ldGFk
YXRhYCBzdWJjb21tYW5kcyIKaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTMwOTUzNQpodHRwczovL2NvbW1pdHMud2Via2l0Lm9yZy8zMTExNTFAbWFpbgotLS0KIC4uLi93
ZWJraXRidWdzcHkvd2Via2l0YnVnc3B5L2J1Z3ppbGxhLnB5ICAgICB8ICA4NSArLS0tLS0KIC4u
Li93ZWJraXRidWdzcHkvbW9ja3MvYnVnemlsbGEucHkgICAgICAgICAgICB8ICAgMiArLQogLi4u
L3dlYmtpdGJ1Z3NweS93ZWJraXRidWdzcHkvcmFkYXIucHkgICAgICAgIHwgIDczICstLS0tCiAu
Li4vdGVzdHMvYnVnemlsbGFfc2VjdXJpdHlfdW5pdHRlc3QucHkgICAgICAgfCAxNDQgLS0tLS0t
LS0tLQogLi4uL3dlYmtpdGJ1Z3NweS90ZXN0cy9yYWRhcl91bml0dGVzdC5weSAgICAgIHwgMTEz
IC0tLS0tLS0tCiAuLi4vd2Via2l0c2NtcHkvcHJvZ3JhbS9fX2luaXRfXy5weSAgICAgICAgICAg
fCAgIDYgKy0KIC4uLi93ZWJraXRzY21weS93ZWJraXRzY21weS9wcm9ncmFtL2JyYW5jaC5weSB8
ICAxMyArLQogLi4uL3dlYmtpdHNjbXB5L3Byb2dyYW0vY3JlYXRlX2J1Zy5weSAgICAgICAgIHwg
MjUyIC0tLS0tLS0tLS0tLS0tLS0tLQogLi4uL3dlYmtpdHNjbXB5L3Byb2dyYW0vdHJhY2tlcl9t
ZXRhZGF0YS5weSAgIHwgMTM4IC0tLS0tLS0tLS0KIC4uLi93ZWJraXRzY21weS90ZXN0L2NyZWF0
ZV9idWdfdW5pdHRlc3QucHkgICB8IDI1MiAtLS0tLS0tLS0tLS0tLS0tLS0KIC4uLi90ZXN0L3Ry
YWNrZXJfbWV0YWRhdGFfdW5pdHRlc3QucHkgICAgICAgICB8IDE5NSAtLS0tLS0tLS0tLS0tLQog
MTEgZmlsZXMgY2hhbmdlZCwgMjYgaW5zZXJ0aW9ucygrKSwgMTI0NyBkZWxldGlvbnMoLSkKIGRl
bGV0ZSBtb2RlIDEwMDY0NCBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRidWdzcHkvd2Vi
a2l0YnVnc3B5L3Rlc3RzL2J1Z3ppbGxhX3NlY3VyaXR5X3VuaXR0ZXN0LnB5CiBkZWxldGUgbW9k
ZSAxMDA2NDQgVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkv
cHJvZ3JhbS9jcmVhdGVfYnVnLnB5CiBkZWxldGUgbW9kZSAxMDA2NDQgVG9vbHMvU2NyaXB0cy9s
aWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvcHJvZ3JhbS90cmFja2VyX21ldGFkYXRh
LnB5CiBkZWxldGUgbW9kZSAxMDA2NDQgVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2Nt
cHkvd2Via2l0c2NtcHkvdGVzdC9jcmVhdGVfYnVnX3VuaXR0ZXN0LnB5CiBkZWxldGUgbW9kZSAx
MDA2NDQgVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvdGVz
dC90cmFja2VyX21ldGFkYXRhX3VuaXR0ZXN0LnB5CgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0
cy9saWJyYXJpZXMvd2Via2l0YnVnc3B5L3dlYmtpdGJ1Z3NweS9idWd6aWxsYS5weSBiL1Rvb2xz
L1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdGJ1Z3NweS93ZWJraXRidWdzcHkvYnVnemlsbGEucHkK
aW5kZXggOTdkZWZlYmU1N2Q5Li4xNzg0MWYyMmNmZjkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Njcmlw
dHMvbGlicmFyaWVzL3dlYmtpdGJ1Z3NweS93ZWJraXRidWdzcHkvYnVnemlsbGEucHkKKysrIGIv
VG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0YnVnc3B5L3dlYmtpdGJ1Z3NweS9idWd6aWxs
YS5weQpAQCAtNDgsODIgKzQ4LDYgQEAgY2xhc3MgVHJhY2tlcihHZW5lcmljVHJhY2tlcik6CiAg
ICAgTkFNRSA9ICdCdWd6aWxsYScKICAgICBERUZBVUxUX1RJTUVPVVQgPSAzMAogCi0gICAgIyBT
ZWN1cml0eSBrZXl3b3JkcyB0byBkZXRlY3QgaW4gdGl0bGUvZGVzY3JpcHRpb24uCi0gICAgIyBU
aGVzZSB0cmlnZ2VyIGEgcHJvbXB0IHRvIHVzZSBTZWN1cml0eSBwcm9kdWN0LgotICAgIFNFQ1VS
SVRZX0tFWVdPUkRTID0gWwotICAgICAgICAjIFdlYiBwbGF0Zm9ybSBzZWN1cml0eQotICAgICAg
ICByJ1xiWFNTXGInLCByJ2Nyb3NzWy0gXT9zaXRlWy0gXT9zY3JpcHRpbmcnLAotICAgICAgICBy
J1xiQ1NSRlxiJywgcidjcm9zc1stIF0/c2l0ZVstIF0/cmVxdWVzdFstIF0/Zm9yZ2VyeScsCi0g
ICAgICAgIHInU1FMWy0gXT9pbmplY3Rpb24nLCByJ2NvbW1hbmRbLSBdP2luamVjdGlvbicsIHIn
Y29kZVstIF0/aW5qZWN0aW9uJywKLSAgICAgICAgcidzYW1lWy0gXT9vcmlnaW4nLCByJ1xiQ09S
U1xiJywKLSAgICAgICAgIyBNZW1vcnkgc2FmZXR5Ci0gICAgICAgIHIndXNlWy0gXT9hZnRlclst
IF0/ZnJlZScsIHInXGJVQUZcYicsCi0gICAgICAgIHInb3V0Wy0gXT9vZlstIF0/Ym91bmRzJywg
cidcYk9PQlxiJywgcididWZmZXJbLSBdP292ZXJmbG93JywgcididWZmZXJbLSBdP292ZXJydW4n
LAotICAgICAgICByJ2RvdWJsZVstIF0/ZnJlZScsCi0gICAgICAgIHInaGVhcFstIF0/b3ZlcmZs
b3cnLCByJ3N0YWNrWy0gXT9vdmVyZmxvdycsCi0gICAgICAgIHInbnVsbFstIF0/cG9pbnRlclst
IF0/ZGVyZWZlcmVuY2UnLCByJ251bGxwdHJbLSBdP2RlcmVmZXJlbmNlJywKLSAgICAgICAgcid0
eXBlWy0gXT9jb25mdXNpb24nLAotICAgICAgICByJ2ludGVnZXJbLSBdP292ZXJmbG93Jywgcidp
bnRlZ2VyWy0gXT91bmRlcmZsb3cnLAotICAgICAgICByJ1xiVE9DVE9VXGInLCByJ3RpbWVbLSBd
P29mWy0gXT9jaGVjaycsIHIndGltZVstIF0/b2ZbLSBdP3VzZScsIHIncmFjZVstIF0/Y29uZGl0
aW9uJywKLSAgICAgICAgcid1bmluaXRpYWxpemVkWy0gXT9tZW1vcnknLCByJ3VuaW5pdGlhbGl6
ZWRbLSBdP3ZhcmlhYmxlJywKLSAgICAgICAgcidtZW1vcnlbLSBdP2NvcnJ1cHRpb24nLAotICAg
ICAgICAjIE90aGVyIHNlY3VyaXR5IHRlcm1zCi0gICAgICAgIHInXGJ2dWxuZXJhYmlsaXR5XGIn
LCByJ1xiZXhwbG9pdFxiJywgcidzZWN1cml0eVstIF0/YnVnJywgcidzZWN1cml0eVstIF0/aXNz
dWUnLAotICAgICAgICByJ2FyYml0cmFyeVstIF0/Y29kZVstIF0/ZXhlY3V0aW9uJywgcidcYlJD
RVxiJywgcidyZW1vdGVbLSBdP2NvZGVbLSBdP2V4ZWN1dGlvbicsCi0gICAgICAgIHIncHJpdmls
ZWdlWy0gXT9lc2NhbGF0aW9uJywgcidzYW5kYm94Wy0gXT9lc2NhcGUnLAotICAgICAgICByJ2lu
Zm9ybWF0aW9uWy0gXT9kaXNjbG9zdXJlJywgcidpbmZvcm1hdGlvblstIF0/bGVhaycsCi0gICAg
ICAgIHInZGVuaWFsWy0gXT9vZlstIF0/c2VydmljZScsIHInXGJEb1NcYicsCi0gICAgXQotCi0g
ICAgQGNsYXNzbWV0aG9kCi0gICAgZGVmIGNoZWNrX3NlY3VyaXR5X2tleXdvcmRzKGNscywgdGl0
bGUsIGRlc2NyaXB0aW9uKToKLSAgICAgICAgIiIiUmV0dXJuIGxpc3Qgb2YgbWF0Y2hlZCBzZWN1
cml0eSBrZXl3b3JkIHBhdHRlcm5zLiIiIgotICAgICAgICB0ZXh0ID0gJ3t9IHt9Jy5mb3JtYXQo
dGl0bGUgb3IgJycsIGRlc2NyaXB0aW9uIG9yICcnKQotICAgICAgICByZXR1cm4gW3AgZm9yIHAg
aW4gY2xzLlNFQ1VSSVRZX0tFWVdPUkRTIGlmIHJlLnNlYXJjaChwLCB0ZXh0LCByZS5JR05PUkVD
QVNFKV0KLQotICAgIEBjbGFzc21ldGhvZAotICAgIGRlZiBwcm9tcHRfc2VjdXJpdHlfY2xhc3Np
ZmljYXRpb24oY2xzLCBtYXRjaGVzLCBwcm9qZWN0LCBjb21wb25lbnQpOgotICAgICAgICAiIiIK
LSAgICAgICAgSWYgc2VjdXJpdHkga2V5d29yZHMgZm91bmQgYW5kIHByb2plY3QgaXMgbm90IGFs
cmVhZHkgJ1NlY3VyaXR5JywKLSAgICAgICAgcHJvbXB0IHVzZXIgdG8gY29uZmlybS4gIFJldHVy
bnMgKHByb2plY3QsIGNvbXBvbmVudCkuCi0gICAgICAgICIiIgotICAgICAgICBpZiBub3QgbWF0
Y2hlcyBvciBwcm9qZWN0ID09ICdTZWN1cml0eSc6Ci0gICAgICAgICAgICByZXR1cm4gcHJvamVj
dCwgY29tcG9uZW50Ci0gICAgICAgIHByaW50KCJXQVJOSU5HOiBUaGUgYnVnIGRlc2NyaXB0aW9u
IGNvbnRhaW5zIHNlY3VyaXR5LXJlbGF0ZWQga2V5d29yZHM6IikKLSAgICAgICAgZm9yIG1hdGNo
IGluIG1hdGNoZXNbOjVdOgotICAgICAgICAgICAgcmVhZGFibGUgPSBtYXRjaC5yZXBsYWNlKHIn
XGInLCAnJykucmVwbGFjZSgnWy0gXT8nLCAnLScpLnJlcGxhY2UocidcLicsICcuJykKLSAgICAg
ICAgICAgIHByaW50KCIgIC0ge30iLmZvcm1hdChyZWFkYWJsZSkpCi0gICAgICAgIHJlc3BvbnNl
ID0gd2Via2l0Y29yZXB5LlRlcm1pbmFsLmNob29zZSgKLSAgICAgICAgICAgICJUaGlzIG1heSBi
ZSBhIHNlY3VyaXR5IGJ1Zy4gVXNlIFNlY3VyaXR5IHByb2R1Y3Q/IiwKLSAgICAgICAgICAgIG9w
dGlvbnM9WydZZXMsIHVzZSBTZWN1cml0eScsICdObywga2VlcCB7fScuZm9ybWF0KHByb2plY3Qg
b3IgJ1dlYktpdCcpXSwKLSAgICAgICAgICAgIGRlZmF1bHQ9J1llcywgdXNlIFNlY3VyaXR5JywK
LSAgICAgICAgKQotICAgICAgICBpZiByZXNwb25zZS5zdGFydHN3aXRoKCdZZXMnKToKLSAgICAg
ICAgICAgIHJldHVybiAnU2VjdXJpdHknLCAnU2VjdXJpdHknCi0gICAgICAgIHJldHVybiBwcm9q
ZWN0LCBjb21wb25lbnQKLQotICAgIEBjbGFzc21ldGhvZAotICAgIGRlZiBjbGFzc2lmeV9mcm9t
X3JhZGFyKGNscywgcmFkYXJfaXNzdWUsIHByb2plY3QsIGNvbXBvbmVudCk6Ci0gICAgICAgICIi
IgotICAgICAgICBJZiByYWRhcl9pc3N1ZSBpcyByZWRhY3RlZCAoc2VjdXJpdHktc2Vuc2l0aXZl
KSwgb3ZlcnJpZGUgcHJvamVjdCBhbmQKLSAgICAgICAgY29tcG9uZW50IHRvICdTZWN1cml0eScu
ICBBbHdheXMgcHJpbnRzIGEgbm90aWNlIHdoZW4gZm9yY2luZyBTZWN1cml0eS4KLSAgICAgICAg
UHJpbnRzIGFuIGFkZGl0aW9uYWwgd2FybmluZyBpZiB1c2VyLXN1cHBsaWVkIHZhbHVlcyBhcmUg
YmVpbmcKLSAgICAgICAgb3ZlcnJpZGRlbi4gIFJldHVybnMgKHByb2plY3QsIGNvbXBvbmVudCwg
d2FzX2ZvcmNlZCkuCi0gICAgICAgICIiIgotICAgICAgICBpZiBub3QgcmFkYXJfaXNzdWUgb3Ig
bm90IHJhZGFyX2lzc3VlLnJlZGFjdGVkOgotICAgICAgICAgICAgcmV0dXJuIHByb2plY3QsIGNv
bXBvbmVudCwgRmFsc2UKLQotICAgICAgICBwcmludCgiUmFkYXIge30gaXMgc2VjdXJpdHktc2Vu
c2l0aXZlLCB1c2luZyBTZWN1cml0eSBwcm9kdWN0Ii5mb3JtYXQocmFkYXJfaXNzdWUubGluaykp
Ci0gICAgICAgIG92ZXJyaWRlcyA9IFtdCi0gICAgICAgIGlmIHByb2plY3QgYW5kIHByb2plY3Qg
IT0gJ1NlY3VyaXR5JzoKLSAgICAgICAgICAgIG92ZXJyaWRlcy5hcHBlbmQoIi0tcHJvamVjdCAn
e30nIi5mb3JtYXQocHJvamVjdCkpCi0gICAgICAgIGlmIGNvbXBvbmVudCBhbmQgY29tcG9uZW50
ICE9ICdTZWN1cml0eSc6Ci0gICAgICAgICAgICBvdmVycmlkZXMuYXBwZW5kKCItLWNvbXBvbmVu
dCAne30nIi5mb3JtYXQoY29tcG9uZW50KSkKLSAgICAgICAgaWYgb3ZlcnJpZGVzOgotICAgICAg
ICAgICAgcHJpbnQoIldBUk5JTkc6IE92ZXJyaWRpbmcge30gd2l0aCAnU2VjdXJpdHknIi5mb3Jt
YXQoJyBhbmQgJy5qb2luKG92ZXJyaWRlcykpKQotCi0gICAgICAgIHJldHVybiAnU2VjdXJpdHkn
LCAnU2VjdXJpdHknLCBUcnVlCi0KICAgICBjbGFzcyBCdWd6aWxsYVBhZ2VQYXJzZXIoSFRNTFBh
cnNlcik6CiAgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmKToKICAgICAgICAgICAgIEhUTUxQYXJz
ZXIuX19pbml0X18oc2VsZikKQEAgLTQxNyw3ICszNDEsNyBAQCBjbGFzcyBUcmFja2VyKEdlbmVy
aWNUcmFja2VyKToKIAogICAgICAgICByZXR1cm4gaXNzdWUKIAotICAgIGRlZiBzZXQoc2VsZiwg
aXNzdWUsIGFzc2lnbmVlPU5vbmUsIG9wZW5lZD1Ob25lLCB3aHk9Tm9uZSwgcHJvamVjdD1Ob25l
LCBjb21wb25lbnQ9Tm9uZSwgdmVyc2lvbj1Ob25lLCBvcmlnaW5hbD1Ob25lLCBrZXl3b3Jkcz1O
b25lLCBzb3VyY2VfY2hhbmdlcz1Ob25lLCBzdGF0ZT1Ob25lLCBzdWJzdGF0ZT1Ob25lLCBjYz1O
b25lLCBzZWVfYWxzbz1Ob25lLCAqKnByb3BlcnRpZXMpOgorICAgIGRlZiBzZXQoc2VsZiwgaXNz
dWUsIGFzc2lnbmVlPU5vbmUsIG9wZW5lZD1Ob25lLCB3aHk9Tm9uZSwgcHJvamVjdD1Ob25lLCBj
b21wb25lbnQ9Tm9uZSwgdmVyc2lvbj1Ob25lLCBvcmlnaW5hbD1Ob25lLCBrZXl3b3Jkcz1Ob25l
LCBzb3VyY2VfY2hhbmdlcz1Ob25lLCBzdGF0ZT1Ob25lLCBzdWJzdGF0ZT1Ob25lLCBzZWVfYWxz
bz1Ob25lLCAqKnByb3BlcnRpZXMpOgogICAgICAgICB1cGRhdGVfZGljdCA9IGRpY3QoKQogCiAg
ICAgICAgIGlmIHByb3BlcnRpZXM6CkBAIC00ODIsOSArNDA2LDYgQEAgY2xhc3MgVHJhY2tlcihH
ZW5lcmljVHJhY2tlcik6CiAgICAgICAgIGlmIHNlZV9hbHNvIGlzIG5vdCBOb25lOgogICAgICAg
ICAgICAgdXBkYXRlX2RpY3RbJ3NlZV9hbHNvJ10gPSBkaWN0KGFkZD1zZWVfYWxzbykKIAotICAg
ICAgICBpZiBjYyBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIHVwZGF0ZV9kaWN0WydjYyddID0g
ZGljdChhZGQ9Y2MpCi0KICAgICAgICAgaWYgdXBkYXRlX2RpY3Q6CiAgICAgICAgICAgICB1cGRh
dGVfZGljdFsnaWRzJ10gPSBbaXNzdWUuaWRdCiAgICAgICAgICAgICByZXNwb25zZSA9IE5vbmUK
QEAgLTY0OCw4ICs1NjksOCBAQCBjbGFzcyBUcmFja2VyKEdlbmVyaWNUcmFja2VyKToKICAgICAg
ICAgICAgIHNlbGYuX2xvZ2luc19sZWZ0IC09IDEKICAgICAgICAgaWYgcmVzcG9uc2Uuc3RhdHVz
X2NvZGUgLy8gMTAwICE9IDI6CiAgICAgICAgICAgICBzeXMuc3RkZXJyLndyaXRlKCJGYWlsZWQg
dG8gcmV0cmlldmUga2V5d29yZHMgbGlzdCdcbiIpCi0gICAgICAgICAgICByZXR1cm4ge30KLSAg
ICAgICAgcmV0dXJuIHt2YWx1ZS5nZXQoJ25hbWUnLCAnJyk6IHZhbHVlLmdldCgnZGVzY3JpcHRp
b24nLCAnJykgZm9yIHZhbHVlIGluIHJlc3BvbnNlLmpzb24oKS5nZXQoJ2ZpZWxkcycpWzBdLmdl
dCgndmFsdWVzJywgW10pfQorICAgICAgICAgICAgcmV0dXJuIFtdCisgICAgICAgIHJldHVybiBb
dmFsdWUuZ2V0KCduYW1lJywgJycpIGZvciB2YWx1ZSBpbiByZXNwb25zZS5qc29uKCkuZ2V0KCdm
aWVsZHMnKVswXS5nZXQoJ3ZhbHVlcycsIFtdKV0KIAogICAgIGRlZiBjcmVhdGUoCiAgICAgICAg
IHNlbGYsIHRpdGxlLCBkZXNjcmlwdGlvbiwKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvbGli
cmFyaWVzL3dlYmtpdGJ1Z3NweS93ZWJraXRidWdzcHkvbW9ja3MvYnVnemlsbGEucHkgYi9Ub29s
cy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRidWdzcHkvd2Via2l0YnVnc3B5L21vY2tzL2J1Z3pp
bGxhLnB5CmluZGV4IGM3ZTAxZDg5YzQyOC4uNjY5NThiN2JhNDI1IDEwMDY0NAotLS0gYS9Ub29s
cy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRidWdzcHkvd2Via2l0YnVnc3B5L21vY2tzL2J1Z3pp
bGxhLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdGJ1Z3NweS93ZWJraXRi
dWdzcHkvbW9ja3MvYnVnemlsbGEucHkKQEAgLTM1OCw3ICszNTgsNyBAQCBjbGFzcyBCdWd6aWxs
YShCYXNlLCBtb2Nrcy5SZXF1ZXN0cyk6CiAgICAgICAgICAgICAgICAgbmFtZT0na2V5d29yZHMn
LAogICAgICAgICAgICAgICAgIHR5cGU9OCwKICAgICAgICAgICAgICAgICBkaXNwbGF5X25hbWU9
J0tleXdvcmRzJywKLSAgICAgICAgICAgICAgICB2YWx1ZXM9W2RpY3QobmFtZT0nSW5SYWRhcics
IGRlc2NyaXB0aW9uPSdUaGlzIGJ1ZyBhbHNvIGhhcyBhIGNvcHkgaW4gQXBwbGUgUmFkYXIuJyld
CisgICAgICAgICAgICAgICAgdmFsdWVzPVtkaWN0KG5hbWU9J0luUmFkYXInKV0KICAgICAgICAg
ICAgICldKSwgdXJsPXVybAogICAgICAgICApCiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMv
bGlicmFyaWVzL3dlYmtpdGJ1Z3NweS93ZWJraXRidWdzcHkvcmFkYXIucHkgYi9Ub29scy9TY3Jp
cHRzL2xpYnJhcmllcy93ZWJraXRidWdzcHkvd2Via2l0YnVnc3B5L3JhZGFyLnB5CmluZGV4IGY3
ZWQyMjMxMGQ0Zi4uNTU0MWFkNjFhMDVmIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL2xpYnJh
cmllcy93ZWJraXRidWdzcHkvd2Via2l0YnVnc3B5L3JhZGFyLnB5CisrKyBiL1Rvb2xzL1Njcmlw
dHMvbGlicmFyaWVzL3dlYmtpdGJ1Z3NweS93ZWJraXRidWdzcHkvcmFkYXIucHkKQEAgLTIyLDEz
ICsyMiwxMiBAQAogCiBpbXBvcnQgY2FsZW5kYXIKIGltcG9ydCBvcworaW1wb3J0IHJlCiBpbXBv
cnQgc3VicHJvY2VzcwogaW1wb3J0IHN5cwogaW1wb3J0IHRpbWUKIGltcG9ydCB3ZWJraXRjb3Jl
cHkKIAotZnJvbSB1cmxsaWIucGFyc2UgaW1wb3J0IHVybHBhcnNlCi0KIGZyb20gd2Via2l0Y29y
ZXB5IGltcG9ydCBFbnZpcm9ubWVudCwgZGVjb3JhdG9ycwogZnJvbSB3ZWJraXRidWdzcHkgaW1w
b3J0IElzc3VlLCBUcmFja2VyIGFzIEdlbmVyaWNUcmFja2VyLCBVc2VyLCBuYW1lIGFzIGxpYnJh
cnlfbmFtZSwgdmVyc2lvbiBhcyBsaWJyYXJ5X3ZlcnNpb24KIApAQCAtNDIsNiArNDEsMTMgQEAg
Y2xhc3MgUHJpb3JpdHkob2JqZWN0KToKIAogCiBjbGFzcyBUcmFja2VyKEdlbmVyaWNUcmFja2Vy
KToKKyAgICBSRVMgPSBbCisgICAgICAgIHJlLmNvbXBpbGUocic8P3JkYXI6Ly9wcm9ibGVtLyg/
UDxpZD5cZCspPj8nKSwKKyAgICAgICAgcmUuY29tcGlsZShyJzw/cmFkYXI6Ly9wcm9ibGVtLyg/
UDxpZD5cZCspPj8nKSwKKyAgICAgICAgcmUuY29tcGlsZShyJzw/cmRhcjpcL1wvKD9QPGlkPlxk
Kyk+PycpLAorICAgICAgICByZS5jb21waWxlKHInPD9yYWRhcjpcL1wvKD9QPGlkPlxkKyk+Pycp
LAorICAgICAgICByZS5jb21waWxlKHInPD9odHRwczpcL1wvcmRhclwuYXBwbGVcLmNvbVwvKD9Q
PGlkPlxkKyk+PycpLAorICAgIF0KIAogICAgIE9USEVSX0JVRyA9ICdPdGhlciBCdWcnCiAgICAg
U0VDVVJJVFkgPSAnU2VjdXJpdHknCkBAIC0xNTAsNjUgKzE1NiwxMiBAQCBjbGFzcyBUcmFja2Vy
KEdlbmVyaWNUcmFja2VyKToKICAgICAgICAgICAgIHN5cy5zdGRlcnIud3JpdGUoJ05vIHZhbGlk
IGF1dGhlbnRpY2F0aW9uIHNlc3Npb24gZm9yIFJhZGFyXG4nKQogICAgICAgICAgICAgcmV0dXJu
IE5vbmUKIAotICAgIEBjbGFzc21ldGhvZAotICAgIGRlZiBwYXJzZV9pZChjbHMsIHN0cmluZyk6
Ci0gICAgICAgICIiIlBhcnNlIGEgcmFkYXIgVVJMIHN0cmluZyBhbmQgcmV0dXJuIHRoZSBudW1l
cmljIElEKHMpIGFzIHN0cmluZ3MuCi0KLSAgICAgICAgUmV0dXJucyBhIHNpbmdsZSBJRCBzdHJp
bmcgZm9yIG9uZSBJRCwgYSBsaXN0IG9mIElEIHN0cmluZ3MgZm9yCi0gICAgICAgIG11bHRpcGxl
IElEcyAoYW1wZXJzYW5kLXNlcGFyYXRlZCksIG9yIE5vbmUgZm9yIG5vIG1hdGNoLgotICAgICAg
ICBBY2NlcHRzIHJkYXI6Ly8sIHJhZGFyOi8vLCBhbmQgaHR0cHM6Ly9yZGFyLmFwcGxlLmNvbS8g
VVJMIGZvcm1zLAotICAgICAgICB3aXRoIG9wdGlvbmFsIGFuZ2xlIGJyYWNrZXRzLgotICAgICAg
ICAiIiIKLSAgICAgICAgdmFsdWUgPSBzdHJpbmcuc3RyaXAoKQotICAgICAgICBpZiBub3QgdmFs
dWU6Ci0gICAgICAgICAgICByZXR1cm4gTm9uZQotCi0gICAgICAgICMgU3RyaXAgb3B0aW9uYWwg
YW5nbGUgYnJhY2tldHMKLSAgICAgICAgaWYgdmFsdWUuc3RhcnRzd2l0aCgnPCcpIGFuZCB2YWx1
ZS5lbmRzd2l0aCgnPicpOgotICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZVsxOi0xXS5zdHJpcCgp
Ci0KLSAgICAgICAgcGFyc2VkID0gdXJscGFyc2UodmFsdWUpCi0KLSAgICAgICAgIyBodHRwczov
L3JkYXIuYXBwbGUuY29tL04gZm9ybQotICAgICAgICBpZiBwYXJzZWQuc2NoZW1lID09ICdodHRw
cycgYW5kIHBhcnNlZC5uZXRsb2MgPT0gJ3JkYXIuYXBwbGUuY29tJzoKLSAgICAgICAgICAgIGlk
X3BhcnQgPSBwYXJzZWQucGF0aC5sc3RyaXAoJy8nKQotICAgICAgICAgICAgaWYgbm90IGlkX3Bh
cnQ6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIE5vbmUKLSAgICAgICAgICAgIHBhcnRzID0gaWRf
cGFydC5zcGxpdCgnJicpCi0gICAgICAgICAgICBpZHMgPSBbcCBmb3IgcCBpbiBwYXJ0cyBpZiBw
LmlzZGlnaXQoKV0KLSAgICAgICAgICAgIGlmIG5vdCBpZHM6Ci0gICAgICAgICAgICAgICAgcmV0
dXJuIE5vbmUKLSAgICAgICAgICAgIGlmIGxlbihpZHMpID09IDE6Ci0gICAgICAgICAgICAgICAg
cmV0dXJuIGlkc1swXQotICAgICAgICAgICAgcmV0dXJuIGlkcwotCi0gICAgICAgICMgcmRhcjov
LyBvciByYWRhcjovLyBmb3JtcwotICAgICAgICBpZiBwYXJzZWQuc2NoZW1lIG5vdCBpbiAoJ3Jk
YXInLCAncmFkYXInKToKLSAgICAgICAgICAgIHJldHVybiBOb25lCi0KLSAgICAgICAgaWYgcGFy
c2VkLm5ldGxvYyA9PSAncHJvYmxlbSc6Ci0gICAgICAgICAgICBpZF9wYXJ0ID0gcGFyc2VkLnBh
dGgubHN0cmlwKCcvJykKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGlkX3BhcnQgPSBwYXJz
ZWQubmV0bG9jCi0KLSAgICAgICAgaWYgbm90IGlkX3BhcnQ6Ci0gICAgICAgICAgICByZXR1cm4g
Tm9uZQotCi0gICAgICAgIHBhcnRzID0gaWRfcGFydC5zcGxpdCgnJicpCi0gICAgICAgIGlkcyA9
IFtwIGZvciBwIGluIHBhcnRzIGlmIHAuaXNkaWdpdCgpXQotICAgICAgICBpZiBub3QgaWRzOgot
ICAgICAgICAgICAgcmV0dXJuIE5vbmUKLSAgICAgICAgaWYgbGVuKGlkcykgPT0gMToKLSAgICAg
ICAgICAgIHJldHVybiBpZHNbMF0KLSAgICAgICAgcmV0dXJuIGlkcwotCiAgICAgZGVmIGZyb21f
c3RyaW5nKHNlbGYsIHN0cmluZyk6Ci0gICAgICAgIHJlc3VsdCA9IHR5cGUoc2VsZikucGFyc2Vf
aWQoc3RyaW5nKQotICAgICAgICBpZiByZXN1bHQgaXMgTm9uZToKLSAgICAgICAgICAgIHJldHVy
biBOb25lCi0gICAgICAgIGlmIGlzaW5zdGFuY2UocmVzdWx0LCBsaXN0KToKLSAgICAgICAgICAg
IHJlc3VsdCA9IHJlc3VsdFswXQotICAgICAgICByZXR1cm4gc2VsZi5pc3N1ZShpbnQocmVzdWx0
KSkKKyAgICAgICAgZm9yIHJlZ2V4IGluIHNlbGYuUkVTOgorICAgICAgICAgICAgbWF0Y2ggPSBy
ZWdleC5tYXRjaChzdHJpbmcpCisgICAgICAgICAgICBpZiBtYXRjaDoKKyAgICAgICAgICAgICAg
ICByZXR1cm4gc2VsZi5pc3N1ZShpbnQobWF0Y2guZ3JvdXAoJ2lkJykpKQorICAgICAgICByZXR1
cm4gTm9uZQogCiAgICAgZGVmIHVzZXIoc2VsZiwgbmFtZT1Ob25lLCB1c2VybmFtZT1Ob25lLCBl
bWFpbD1Ob25lKToKICAgICAgICAgdXNlciA9IHN1cGVyKFRyYWNrZXIsIHNlbGYpLnVzZXIobmFt
ZT1uYW1lLCB1c2VybmFtZT11c2VybmFtZSwgZW1haWw9ZW1haWwpCmRpZmYgLS1naXQgYS9Ub29s
cy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRidWdzcHkvd2Via2l0YnVnc3B5L3Rlc3RzL2J1Z3pp
bGxhX3NlY3VyaXR5X3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0
YnVnc3B5L3dlYmtpdGJ1Z3NweS90ZXN0cy9idWd6aWxsYV9zZWN1cml0eV91bml0dGVzdC5weQpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWM5YjViYjBhNzBkLi4wMDAwMDAwMDAwMDAK
LS0tIGEvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0YnVnc3B5L3dlYmtpdGJ1Z3NweS90
ZXN0cy9idWd6aWxsYV9zZWN1cml0eV91bml0dGVzdC5weQorKysgL2Rldi9udWxsCkBAIC0xLDE0
NCArMCwwIEBACi0jIENvcHlyaWdodCAoQykgMjAyNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSMgYXJlIG1ldDoKLSMgMS4gIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0jICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCi0jIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotIyAgICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5ECi0jIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
Ci0jIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUKLSMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKLSMgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAot
IyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUgotIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgotIyBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLAotIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi1pbXBvcnQg
dW5pdHRlc3QKLWZyb20gd2Via2l0YnVnc3B5IGltcG9ydCBidWd6aWxsYQotCi0KLWNsYXNzIFRl
c3RCdWd6aWxsYVNlY3VyaXR5S2V5d29yZHModW5pdHRlc3QuVGVzdENhc2UpOgotICAgIGRlZiB0
ZXN0X2NoZWNrX3NlY3VyaXR5X2tleXdvcmRzX3VhZihzZWxmKToKLSAgICAgICAgbWF0Y2hlcyA9
IGJ1Z3ppbGxhLlRyYWNrZXIuY2hlY2tfc2VjdXJpdHlfa2V5d29yZHMoJ1VBRiBpbiBXZWJDb3Jl
JywgJ1RoaXMgYnVnIGNhdXNlcyBhIHVzZS1hZnRlci1mcmVlIGNyYXNoJykKLSAgICAgICAgc2Vs
Zi5hc3NlcnRUcnVlKGxlbihtYXRjaGVzKSA+IDApCi0KLSAgICBkZWYgdGVzdF9jaGVja19zZWN1
cml0eV9rZXl3b3Jkc194c3Moc2VsZik6Ci0gICAgICAgIG1hdGNoZXMgPSBidWd6aWxsYS5UcmFj
a2VyLmNoZWNrX3NlY3VyaXR5X2tleXdvcmRzKCdYU1MgdnVsbmVyYWJpbGl0eScsICdDcm9zcy1z
aXRlIHNjcmlwdGluZyBhdHRhY2sgcG9zc2libGUnKQotICAgICAgICBzZWxmLmFzc2VydFRydWUo
bGVuKG1hdGNoZXMpID4gMCkKLQotICAgIGRlZiB0ZXN0X2NoZWNrX3NlY3VyaXR5X2tleXdvcmRz
X29vYihzZWxmKToKLSAgICAgICAgbWF0Y2hlcyA9IGJ1Z3ppbGxhLlRyYWNrZXIuY2hlY2tfc2Vj
dXJpdHlfa2V5d29yZHMoJ09PQiBhY2Nlc3MgaW4gYXJyYXknLCAnT3V0LW9mLWJvdW5kcyByZWFk
IGluIGJ1ZmZlciBoYW5kbGluZycpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShsZW4obWF0Y2hl
cykgPiAwKQotCi0gICAgZGVmIHRlc3RfY2hlY2tfc2VjdXJpdHlfa2V5d29yZHNfdG9jdG91KHNl
bGYpOgotICAgICAgICBtYXRjaGVzID0gYnVnemlsbGEuVHJhY2tlci5jaGVja19zZWN1cml0eV9r
ZXl3b3JkcygnUmFjZSBjb25kaXRpb24gYnVnJywgJ1RPQ1RPVSB2dWxuZXJhYmlsaXR5IGluIGZp
bGUgYWNjZXNzJykKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGxlbihtYXRjaGVzKSA+IDApCi0K
LSAgICBkZWYgdGVzdF9jaGVja19zZWN1cml0eV9rZXl3b3Jkc19ub25lKHNlbGYpOgotICAgICAg
ICBtYXRjaGVzID0gYnVnemlsbGEuVHJhY2tlci5jaGVja19zZWN1cml0eV9rZXl3b3JkcygnTGF5
b3V0IGlzc3VlJywgJ1RleHQgd3JhcHBpbmcgaXMgYnJva2VuIGluIENTUyBmbGV4IGNvbnRhaW5l
cnMnKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihtYXRjaGVzKSwgMCkKLQotICAgIGRl
ZiB0ZXN0X3Byb21wdF9zZWN1cml0eV9jbGFzc2lmaWNhdGlvbl9hbHJlYWR5X3NlY3VyaXR5KHNl
bGYpOgotICAgICAgICBwcm9qZWN0LCBjb21wb25lbnQgPSBidWd6aWxsYS5UcmFja2VyLnByb21w
dF9zZWN1cml0eV9jbGFzc2lmaWNhdGlvbihbJ3VzZS1hZnRlci1mcmVlJ10sICdTZWN1cml0eScs
ICdTZWN1cml0eScpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocHJvamVjdCwgJ1NlY3VyaXR5
JykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21wb25lbnQsICdTZWN1cml0eScpCi0KLSAg
ICBkZWYgdGVzdF9wcm9tcHRfc2VjdXJpdHlfY2xhc3NpZmljYXRpb25fbm9fbWF0Y2hlcyhzZWxm
KToKLSAgICAgICAgcHJvamVjdCwgY29tcG9uZW50ID0gYnVnemlsbGEuVHJhY2tlci5wcm9tcHRf
c2VjdXJpdHlfY2xhc3NpZmljYXRpb24oW10sICdXZWJLaXQnLCAnQ1NTJykKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChwcm9qZWN0LCAnV2ViS2l0JykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChjb21wb25lbnQsICdDU1MnKQotCi0gICAgZGVmIHRlc3RfcHJvbXB0X3NlY3VyaXR5X2NsYXNz
aWZpY2F0aW9uX3VzZXJfYWNjZXB0cyhzZWxmKToKLSAgICAgICAgIiIiVXNlciBjaG9vc2VzICdZ
ZXMsIHVzZSBTZWN1cml0eScgYXQgdGhlIHByb21wdC4iIiIKLSAgICAgICAgZnJvbSB3ZWJraXRj
b3JlcHkgaW1wb3J0IE91dHB1dENhcHR1cmUKLSAgICAgICAgZnJvbSB3ZWJraXRjb3JlcHkubW9j
a3MgaW1wb3J0IFRlcm1pbmFsIGFzIE1vY2tUZXJtaW5hbAotICAgICAgICB3aXRoIE1vY2tUZXJt
aW5hbC5pbnB1dCgnWWVzJyksIE91dHB1dENhcHR1cmUoKSBhcyBjYXB0dXJlZDoKLSAgICAgICAg
ICAgIHByb2plY3QsIGNvbXBvbmVudCA9IGJ1Z3ppbGxhLlRyYWNrZXIucHJvbXB0X3NlY3VyaXR5
X2NsYXNzaWZpY2F0aW9uKAotICAgICAgICAgICAgICAgIFtyJ1xiVUFGXGInXSwgJ1dlYktpdCcs
ICdUZXh0JywKLSAgICAgICAgICAgICkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwcm9qZWN0
LCAnU2VjdXJpdHknKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbXBvbmVudCwgJ1NlY3Vy
aXR5JykKLSAgICAgICAgc2VsZi5hc3NlcnRJbignc2VjdXJpdHktcmVsYXRlZCBrZXl3b3Jkcycs
IGNhcHR1cmVkLnN0ZG91dC5nZXR2YWx1ZSgpKQotCi0gICAgZGVmIHRlc3RfcHJvbXB0X3NlY3Vy
aXR5X2NsYXNzaWZpY2F0aW9uX3VzZXJfZGVjbGluZXMoc2VsZik6Ci0gICAgICAgICIiIlVzZXIg
Y2hvb3NlcyAnTm8sIGtlZXAgV2ViS2l0JyBhdCB0aGUgcHJvbXB0LiIiIgotICAgICAgICBmcm9t
IHdlYmtpdGNvcmVweSBpbXBvcnQgT3V0cHV0Q2FwdHVyZQotICAgICAgICBmcm9tIHdlYmtpdGNv
cmVweS5tb2NrcyBpbXBvcnQgVGVybWluYWwgYXMgTW9ja1Rlcm1pbmFsCi0gICAgICAgIHdpdGgg
TW9ja1Rlcm1pbmFsLmlucHV0KCdObycpLCBPdXRwdXRDYXB0dXJlKCkgYXMgY2FwdHVyZWQ6Ci0g
ICAgICAgICAgICBwcm9qZWN0LCBjb21wb25lbnQgPSBidWd6aWxsYS5UcmFja2VyLnByb21wdF9z
ZWN1cml0eV9jbGFzc2lmaWNhdGlvbigKLSAgICAgICAgICAgICAgICBbcidcYlVBRlxiJ10sICdX
ZWJLaXQnLCAnVGV4dCcsCi0gICAgICAgICAgICApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
cHJvamVjdCwgJ1dlYktpdCcpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tcG9uZW50LCAn
VGV4dCcpCi0gICAgICAgIHNlbGYuYXNzZXJ0SW4oJ3NlY3VyaXR5LXJlbGF0ZWQga2V5d29yZHMn
LCBjYXB0dXJlZC5zdGRvdXQuZ2V0dmFsdWUoKSkKLQotCi1jbGFzcyBUZXN0QnVnemlsbGFDbGFz
c2lmeUZyb21SYWRhcih1bml0dGVzdC5UZXN0Q2FzZSk6Ci0KLSAgICBkZWYgdGVzdF9jbGFzc2lm
eV9mcm9tX3JhZGFyX25vX3JhZGFyKHNlbGYpOgotICAgICAgICBwcm9qZWN0LCBjb21wb25lbnQs
IGZvcmNlZCA9IGJ1Z3ppbGxhLlRyYWNrZXIuY2xhc3NpZnlfZnJvbV9yYWRhcihOb25lLCAnV2Vi
S2l0JywgJ1RleHQnKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHByb2plY3QsICdXZWJLaXQn
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbXBvbmVudCwgJ1RleHQnKQotICAgICAgICBz
ZWxmLmFzc2VydEZhbHNlKGZvcmNlZCkKLQotICAgIGRlZiB0ZXN0X2NsYXNzaWZ5X2Zyb21fcmFk
YXJfbm9uX3JlZGFjdGVkKHNlbGYpOgotICAgICAgICAiIiJOb24tcmVkYWN0ZWQgcmFkYXIgc2hv
dWxkIG5vdCBmb3JjZSBTZWN1cml0eS4iIiIKLSAgICAgICAgZnJvbSB1bml0dGVzdC5tb2NrIGlt
cG9ydCBNYWdpY01vY2sKLSAgICAgICAgcmFkYXJfaXNzdWUgPSBNYWdpY01vY2soKQotICAgICAg
ICByYWRhcl9pc3N1ZS5yZWRhY3RlZCA9IEZhbHNlCi0gICAgICAgIHByb2plY3QsIGNvbXBvbmVu
dCwgZm9yY2VkID0gYnVnemlsbGEuVHJhY2tlci5jbGFzc2lmeV9mcm9tX3JhZGFyKHJhZGFyX2lz
c3VlLCAnV2ViS2l0JywgJ1RleHQnKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHByb2plY3Qs
ICdXZWJLaXQnKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbXBvbmVudCwgJ1RleHQnKQot
ICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGZvcmNlZCkKLQotICAgIGRlZiB0ZXN0X2NsYXNzaWZ5
X2Zyb21fcmFkYXJfcmVkYWN0ZWRfZm9yY2VzX3NlY3VyaXR5KHNlbGYpOgotICAgICAgICAiIiJS
ZWRhY3RlZCByYWRhciBzaG91bGQgZm9yY2UgU2VjdXJpdHkgcHJvZHVjdC9jb21wb25lbnQgYW5k
IHByaW50IG5vdGljZS4iIiIKLSAgICAgICAgZnJvbSB1bml0dGVzdC5tb2NrIGltcG9ydCBNYWdp
Y01vY2sKLSAgICAgICAgZnJvbSB3ZWJraXRjb3JlcHkgaW1wb3J0IE91dHB1dENhcHR1cmUKLSAg
ICAgICAgcmFkYXJfaXNzdWUgPSBNYWdpY01vY2soKQotICAgICAgICByYWRhcl9pc3N1ZS5yZWRh
Y3RlZCA9IFRydWUKLSAgICAgICAgcmFkYXJfaXNzdWUubGluayA9ICdyZGFyOi8vMTIzNDU2Nzgn
Ci0gICAgICAgIHdpdGggT3V0cHV0Q2FwdHVyZSgpIGFzIGNhcHR1cmVkOgotICAgICAgICAgICAg
cHJvamVjdCwgY29tcG9uZW50LCBmb3JjZWQgPSBidWd6aWxsYS5UcmFja2VyLmNsYXNzaWZ5X2Zy
b21fcmFkYXIocmFkYXJfaXNzdWUsICdXZWJLaXQnLCAnVGV4dCcpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwocHJvamVjdCwgJ1NlY3VyaXR5JykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChj
b21wb25lbnQsICdTZWN1cml0eScpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShmb3JjZWQpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0SW4oJ3NlY3VyaXR5LXNlbnNpdGl2ZScsIGNhcHR1cmVkLnN0ZG91
dC5nZXR2YWx1ZSgpKQotICAgICAgICBzZWxmLmFzc2VydEluKCdPdmVycmlkaW5nJywgY2FwdHVy
ZWQuc3Rkb3V0LmdldHZhbHVlKCkpCi0KLSAgICBkZWYgdGVzdF9jbGFzc2lmeV9mcm9tX3JhZGFy
X3JlZGFjdGVkX2FscmVhZHlfc2VjdXJpdHkoc2VsZik6Ci0gICAgICAgICIiIlJlZGFjdGVkIHJh
ZGFyIHdpdGggU2VjdXJpdHkgYWxyZWFkeSBzZXQgc2hvdWxkIHByaW50IG5vdGljZSBidXQgbm90
IG92ZXJyaWRlIHdhcm5pbmcuIiIiCi0gICAgICAgIGZyb20gdW5pdHRlc3QubW9jayBpbXBvcnQg
TWFnaWNNb2NrCi0gICAgICAgIGZyb20gd2Via2l0Y29yZXB5IGltcG9ydCBPdXRwdXRDYXB0dXJl
Ci0gICAgICAgIHJhZGFyX2lzc3VlID0gTWFnaWNNb2NrKCkKLSAgICAgICAgcmFkYXJfaXNzdWUu
cmVkYWN0ZWQgPSBUcnVlCi0gICAgICAgIHJhZGFyX2lzc3VlLmxpbmsgPSAncmRhcjovLzEyMzQ1
Njc4JwotICAgICAgICB3aXRoIE91dHB1dENhcHR1cmUoKSBhcyBjYXB0dXJlZDoKLSAgICAgICAg
ICAgIHByb2plY3QsIGNvbXBvbmVudCwgZm9yY2VkID0gYnVnemlsbGEuVHJhY2tlci5jbGFzc2lm
eV9mcm9tX3JhZGFyKHJhZGFyX2lzc3VlLCAnU2VjdXJpdHknLCAnU2VjdXJpdHknKQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKHByb2plY3QsICdTZWN1cml0eScpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoY29tcG9uZW50LCAnU2VjdXJpdHknKQotICAgICAgICBzZWxmLmFzc2VydFRydWUo
Zm9yY2VkKQotICAgICAgICBzZWxmLmFzc2VydEluKCdzZWN1cml0eS1zZW5zaXRpdmUnLCBjYXB0
dXJlZC5zdGRvdXQuZ2V0dmFsdWUoKSkKLSAgICAgICAgc2VsZi5hc3NlcnROb3RJbignT3ZlcnJp
ZGluZycsIGNhcHR1cmVkLnN0ZG91dC5nZXR2YWx1ZSgpKQotCi0gICAgZGVmIHRlc3RfY2xhc3Np
ZnlfZnJvbV9yYWRhcl9yZWRhY3RlZF9ub25lX3ZhbHVlcyhzZWxmKToKLSAgICAgICAgIiIiUmVk
YWN0ZWQgcmFkYXIgd2l0aCBOb25lIHByb2plY3QvY29tcG9uZW50IHNob3VsZCBwcmludCBub3Rp
Y2UgKGJyYW5jaC5weSBwYXRoKS4iIiIKLSAgICAgICAgZnJvbSB1bml0dGVzdC5tb2NrIGltcG9y
dCBNYWdpY01vY2sKLSAgICAgICAgZnJvbSB3ZWJraXRjb3JlcHkgaW1wb3J0IE91dHB1dENhcHR1
cmUKLSAgICAgICAgcmFkYXJfaXNzdWUgPSBNYWdpY01vY2soKQotICAgICAgICByYWRhcl9pc3N1
ZS5yZWRhY3RlZCA9IFRydWUKLSAgICAgICAgcmFkYXJfaXNzdWUubGluayA9ICdyZGFyOi8vMTIz
NDU2NzgnCi0gICAgICAgIHdpdGggT3V0cHV0Q2FwdHVyZSgpIGFzIGNhcHR1cmVkOgotICAgICAg
ICAgICAgcHJvamVjdCwgY29tcG9uZW50LCBmb3JjZWQgPSBidWd6aWxsYS5UcmFja2VyLmNsYXNz
aWZ5X2Zyb21fcmFkYXIocmFkYXJfaXNzdWUsIE5vbmUsIE5vbmUpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwocHJvamVjdCwgJ1NlY3VyaXR5JykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChj
b21wb25lbnQsICdTZWN1cml0eScpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShmb3JjZWQpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0SW4oJ3NlY3VyaXR5LXNlbnNpdGl2ZScsIGNhcHR1cmVkLnN0ZG91
dC5nZXR2YWx1ZSgpKQotICAgICAgICBzZWxmLmFzc2VydE5vdEluKCdPdmVycmlkaW5nJywgY2Fw
dHVyZWQuc3Rkb3V0LmdldHZhbHVlKCkpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL2xpYnJh
cmllcy93ZWJraXRidWdzcHkvd2Via2l0YnVnc3B5L3Rlc3RzL3JhZGFyX3VuaXR0ZXN0LnB5IGIv
VG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0YnVnc3B5L3dlYmtpdGJ1Z3NweS90ZXN0cy9y
YWRhcl91bml0dGVzdC5weQppbmRleCA5MTE2ZTc1YTg1ZjQuLmM2MTMyOTE0MDcyOSAxMDA2NDQK
LS0tIGEvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0YnVnc3B5L3dlYmtpdGJ1Z3NweS90
ZXN0cy9yYWRhcl91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJr
aXRidWdzcHkvd2Via2l0YnVnc3B5L3Rlc3RzL3JhZGFyX3VuaXR0ZXN0LnB5CkBAIC01OTAsMTE2
ICs1OTAsMyBAQCBXaGF0IHZlcnNpb24gb2YgJ1dlYktpdCBUZXh0JyBzaG91bGQgdGhlIGJ1ZyBi
ZSBhc3NvY2lhdGVkIHdpdGg/OgogICAgICAgICAgICAgY2FwdHVyZWQuc3RkZXJyLmdldHZhbHVl
KCksCiAgICAgICAgICAgICAnUmFkYXIgZG9lcyBub3Qgc3VwcG9ydCB0aGUgc2VlX2Fsc28gZmll
bGQgYXQgdGhpcyB0aW1lXG4nLAogICAgICAgICApCi0KLQotY2xhc3MgVGVzdFJhZGFyUGFyc2VJ
ZCh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0gICAgIiIiVGVzdHMgZm9yIHJhZGFyLlRyYWNrZXIucGFy
c2VfaWQoKSDigJQgc2hhcmVkIHBhcnNpbmcgb2YgcmFkYXIgVVJMIHN0cmluZ3MuIiIiCi0KLSAg
ICAjIC0tLSBTaW5nbGUgSUQgZm9ybWF0cyAocmV0dXJucyBhbiBJRCBzdHJpbmcpIC0tLQotCi0g
ICAgZGVmIHRlc3RfcmRhcl9zaG9ydF91cmwoc2VsZik6Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwocmFkYXIuVHJhY2tlci5wYXJzZV9pZCgncmRhcjovLzEyMzQ1Njc4OScpLCAnMTIzNDU2Nzg5
JykKLQotICAgIGRlZiB0ZXN0X3JkYXJfcHJvYmxlbV91cmwoc2VsZik6Ci0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwocmFkYXIuVHJhY2tlci5wYXJzZV9pZCgncmRhcjovL3Byb2JsZW0vMTIzNDU2
Nzg5JyksICcxMjM0NTY3ODknKQotCi0gICAgZGVmIHRlc3RfcmFkYXJfc2hvcnRfdXJsKHNlbGYp
OgotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJhZGFyLlRyYWNrZXIucGFyc2VfaWQoJ3JhZGFy
Oi8vMTIzNDU2Nzg5JyksICcxMjM0NTY3ODknKQotCi0gICAgZGVmIHRlc3RfcmFkYXJfcHJvYmxl
bV91cmwoc2VsZik6Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmFkYXIuVHJhY2tlci5wYXJz
ZV9pZCgncmFkYXI6Ly9wcm9ibGVtLzEyMzQ1Njc4OScpLCAnMTIzNDU2Nzg5JykKLQotICAgIGRl
ZiB0ZXN0X2h0dHBzX3JkYXJfdXJsKHNlbGYpOgotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJh
ZGFyLlRyYWNrZXIucGFyc2VfaWQoJ2h0dHBzOi8vcmRhci5hcHBsZS5jb20vMTIzNDU2Nzg5Jyks
ICcxMjM0NTY3ODknKQotCi0gICAgZGVmIHRlc3RfcmRhcl9zaG9ydF91cmxfd2l0aF9hbmdsZV9i
cmFja2V0cyhzZWxmKToKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyYWRhci5UcmFja2VyLnBh
cnNlX2lkKCc8cmRhcjovLzEyMzQ1Njc4OT4nKSwgJzEyMzQ1Njc4OScpCi0KLSAgICBkZWYgdGVz
dF9yZGFyX3Byb2JsZW1fdXJsX3dpdGhfYW5nbGVfYnJhY2tldHMoc2VsZik6Ci0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwocmFkYXIuVHJhY2tlci5wYXJzZV9pZCgnPHJkYXI6Ly9wcm9ibGVtLzEy
MzQ1Njc4OT4nKSwgJzEyMzQ1Njc4OScpCi0KLSAgICBkZWYgdGVzdF9odHRwc19yZGFyX3VybF93
aXRoX2FuZ2xlX2JyYWNrZXRzKHNlbGYpOgotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJhZGFy
LlRyYWNrZXIucGFyc2VfaWQoJzxodHRwczovL3JkYXIuYXBwbGUuY29tLzEyMzQ1Njc4OT4nKSwg
JzEyMzQ1Njc4OScpCi0KLSAgICAjIC0tLSBNdWx0aXBsZSBJRHMgKHJldHVybnMgYSBsaXN0IG9m
IElEIHN0cmluZ3MpIC0tLQotCi0gICAgZGVmIHRlc3RfcmRhcl9hbXBlcnNhbmRfdHdvX2lkcyhz
ZWxmKToKLSAgICAgICAgcmVzdWx0ID0gcmFkYXIuVHJhY2tlci5wYXJzZV9pZCgncmRhcjovLzEy
MzQ1Njc4OSY5ODc2NTQzMjEnKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlc3VsdCwgWycx
MjM0NTY3ODknLCAnOTg3NjU0MzIxJ10pCi0KLSAgICBkZWYgdGVzdF9yZGFyX2FtcGVyc2FuZF90
aHJlZV9pZHMoc2VsZik6Ci0gICAgICAgIHJlc3VsdCA9IHJhZGFyLlRyYWNrZXIucGFyc2VfaWQo
J3JkYXI6Ly8xMjMmNDU2Jjc4OScpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzdWx0LCBb
JzEyMycsICc0NTYnLCAnNzg5J10pCi0KLSAgICBkZWYgdGVzdF9yZGFyX3Byb2JsZW1fYW1wZXJz
YW5kX2lkcyhzZWxmKToKLSAgICAgICAgcmVzdWx0ID0gcmFkYXIuVHJhY2tlci5wYXJzZV9pZCgn
cmRhcjovL3Byb2JsZW0vMTIzNDU2Nzg5Jjk4NzY1NDMyMSYxMTExMTExMTEnKQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKHJlc3VsdCwgWycxMjM0NTY3ODknLCAnOTg3NjU0MzIxJywgJzExMTEx
MTExMSddKQotCi0gICAgIyAtLS0gTm8gbWF0Y2ggKHJldHVybnMgTm9uZSkgLS0tCi0KLSAgICBk
ZWYgdGVzdF9iYXJlX2ludGVnZXJfcmV0dXJuc19ub25lKHNlbGYpOgotICAgICAgICBzZWxmLmFz
c2VydElzTm9uZShyYWRhci5UcmFja2VyLnBhcnNlX2lkKCcxMjM0NTY3ODknKSkKLQotICAgIGRl
ZiB0ZXN0X2ludmFsaWRfc3RyaW5nX3JldHVybnNfbm9uZShzZWxmKToKLSAgICAgICAgc2VsZi5h
c3NlcnRJc05vbmUocmFkYXIuVHJhY2tlci5wYXJzZV9pZCgnbm90LWEtcmFkYXInKSkKLQotICAg
IGRlZiB0ZXN0X2VtcHR5X3N0cmluZ19yZXR1cm5zX25vbmUoc2VsZik6Ci0gICAgICAgIHNlbGYu
YXNzZXJ0SXNOb25lKHJhZGFyLlRyYWNrZXIucGFyc2VfaWQoJycpKQotCi0gICAgZGVmIHRlc3Rf
aHR0cHNfb3RoZXJfdXJsX3JldHVybnNfbm9uZShzZWxmKToKLSAgICAgICAgc2VsZi5hc3NlcnRJ
c05vbmUocmFkYXIuVHJhY2tlci5wYXJzZV9pZCgnaHR0cHM6Ly9leGFtcGxlLmNvbS8xMjMnKSkK
LQotCi1jbGFzcyBUZXN0UmFkYXJGcm9tU3RyaW5nKHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAgICAi
IiJSZWdyZXNzaW9uIHRlc3RzIGZvciByYWRhci5UcmFja2VyLmZyb21fc3RyaW5nKCkgYWZ0ZXIg
cGFyc2VfaWQgcmVmYWN0b3IuIiIiCi0KLSAgICBkZWYgdGVzdF9yZGFyX3Nob3J0X3VybChzZWxm
KToKLSAgICAgICAgdHJhY2tlciA9IHJhZGFyLlRyYWNrZXIoKQotICAgICAgICBpc3N1ZSA9IHRy
YWNrZXIuZnJvbV9zdHJpbmcoJ3JkYXI6Ly8xMjM0JykKLSAgICAgICAgc2VsZi5hc3NlcnRJc05v
dE5vbmUoaXNzdWUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaXNzdWUuaWQsIDEyMzQpCi0K
LSAgICBkZWYgdGVzdF9yZGFyX3Byb2JsZW1fdXJsKHNlbGYpOgotICAgICAgICB0cmFja2VyID0g
cmFkYXIuVHJhY2tlcigpCi0gICAgICAgIGlzc3VlID0gdHJhY2tlci5mcm9tX3N0cmluZygncmRh
cjovL3Byb2JsZW0vNTY3OCcpCi0gICAgICAgIHNlbGYuYXNzZXJ0SXNOb3ROb25lKGlzc3VlKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGlzc3VlLmlkLCA1Njc4KQotCi0gICAgZGVmIHRlc3Rf
cmFkYXJfc2hvcnRfdXJsKHNlbGYpOgotICAgICAgICB0cmFja2VyID0gcmFkYXIuVHJhY2tlcigp
Ci0gICAgICAgIGlzc3VlID0gdHJhY2tlci5mcm9tX3N0cmluZygncmFkYXI6Ly85OTk5JykKLSAg
ICAgICAgc2VsZi5hc3NlcnRJc05vdE5vbmUoaXNzdWUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoaXNzdWUuaWQsIDk5OTkpCi0KLSAgICBkZWYgdGVzdF9yYWRhcl9wcm9ibGVtX3VybChzZWxm
KToKLSAgICAgICAgdHJhY2tlciA9IHJhZGFyLlRyYWNrZXIoKQotICAgICAgICBpc3N1ZSA9IHRy
YWNrZXIuZnJvbV9zdHJpbmcoJ3JhZGFyOi8vcHJvYmxlbS80NDQ0JykKLSAgICAgICAgc2VsZi5h
c3NlcnRJc05vdE5vbmUoaXNzdWUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaXNzdWUuaWQs
IDQ0NDQpCi0KLSAgICBkZWYgdGVzdF9odHRwc19yZGFyX3VybChzZWxmKToKLSAgICAgICAgdHJh
Y2tlciA9IHJhZGFyLlRyYWNrZXIoKQotICAgICAgICBpc3N1ZSA9IHRyYWNrZXIuZnJvbV9zdHJp
bmcoJ2h0dHBzOi8vcmRhci5hcHBsZS5jb20vNzc3NycpCi0gICAgICAgIHNlbGYuYXNzZXJ0SXNO
b3ROb25lKGlzc3VlKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGlzc3VlLmlkLCA3Nzc3KQot
Ci0gICAgZGVmIHRlc3RfYW5nbGVfYnJhY2tldHMoc2VsZik6Ci0gICAgICAgIHRyYWNrZXIgPSBy
YWRhci5UcmFja2VyKCkKLSAgICAgICAgaXNzdWUgPSB0cmFja2VyLmZyb21fc3RyaW5nKCc8cmRh
cjovLzMzMzM+JykKLSAgICAgICAgc2VsZi5hc3NlcnRJc05vdE5vbmUoaXNzdWUpCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoaXNzdWUuaWQsIDMzMzMpCi0KLSAgICBkZWYgdGVzdF9hbXBlcnNh
bmRfdGFrZXNfZmlyc3Qoc2VsZik6Ci0gICAgICAgICIiIk11bHRpLUlEIFVSTHMgc2hvdWxkIHRh
a2UgdGhlIGZpcnN0IElEIChleGlzdGluZyBiZWhhdmlvcikuIiIiCi0gICAgICAgIHRyYWNrZXIg
PSByYWRhci5UcmFja2VyKCkKLSAgICAgICAgaXNzdWUgPSB0cmFja2VyLmZyb21fc3RyaW5nKCdy
ZGFyOi8vMTExJjIyMicpCi0gICAgICAgIHNlbGYuYXNzZXJ0SXNOb3ROb25lKGlzc3VlKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKGlzc3VlLmlkLCAxMTEpCi0KLSAgICBkZWYgdGVzdF9pbnZh
bGlkX3JldHVybnNfbm9uZShzZWxmKToKLSAgICAgICAgdHJhY2tlciA9IHJhZGFyLlRyYWNrZXIo
KQotICAgICAgICBzZWxmLmFzc2VydElzTm9uZSh0cmFja2VyLmZyb21fc3RyaW5nKCdub3QtYS1y
YWRhcicpKQotCi0gICAgZGVmIHRlc3RfZW1wdHlfcmV0dXJuc19ub25lKHNlbGYpOgotICAgICAg
ICB0cmFja2VyID0gcmFkYXIuVHJhY2tlcigpCi0gICAgICAgIHNlbGYuYXNzZXJ0SXNOb25lKHRy
YWNrZXIuZnJvbV9zdHJpbmcoJycpKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy9saWJyYXJp
ZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvcHJvZ3JhbS9fX2luaXRfXy5weSBiL1Rvb2xzL1Nj
cmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L3Byb2dyYW0vX19pbml0X18u
cHkKaW5kZXggNGQ0YzhiYmM1OTQxLi5iMDY4MmMyOTZiZmMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Nj
cmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L3Byb2dyYW0vX19pbml0X18u
cHkKKysrIGIvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkv
cHJvZ3JhbS9fX2luaXRfXy5weQpAQCAtMzQsNyArMzQsNiBAQCBmcm9tIC5jbG9uZSBpbXBvcnQg
Q2xvbmUKIGZyb20gLmNvbW1hbmQgaW1wb3J0IENvbW1hbmQKIGZyb20gLmNvbW1pdCBpbXBvcnQg
Q29tbWl0CiBmcm9tIC5jb25mbGljdCBpbXBvcnQgQ29uZmxpY3QKLWZyb20gLmNyZWF0ZV9idWcg
aW1wb3J0IENyZWF0ZUJ1ZwogZnJvbSAuZGlmZiBpbXBvcnQgRGlmZgogZnJvbSAuc3F1YXNoIGlt
cG9ydCBTcXVhc2gKIGZyb20gLmNoZWNrb3V0IGltcG9ydCBDaGVja291dApAQCAtNTYsNyArNTUs
NiBAQCBmcm9tIC5zZXR1cCBpbXBvcnQgU2V0dXAKIGZyb20gLnNob3cgaW1wb3J0IFNob3cKIGZy
b20gLnRyYWNlIGltcG9ydCBUcmFjZQogZnJvbSAudHJhY2sgaW1wb3J0IFRyYWNrCi1mcm9tIC50
cmFja2VyX21ldGFkYXRhIGltcG9ydCBUcmFja2VyTWV0YWRhdGEKIAogZnJvbSB3ZWJraXRidWdz
cHkgaW1wb3J0IGxvZyBhcyB3ZWJraXRidWdzcHlfbG9nCiBmcm9tIHdlYmtpdGNvcmVweSBpbXBv
cnQgYXJndW1lbnRzLCBmaWx0ZXJlZF9jYWxsLCBsb2cgYXMgd2Via2l0Y29yZXB5X2xvZywgVGVy
bWluYWwKQEAgLTk3LDEwICs5NSwxMCBAQCBkZWYgbWFpbigKIAogICAgIHByb2dyYW1zID0gWwog
ICAgICAgICBCbGFtZSwgQnJhbmNoLCBDYW5vbmljYWxpemUsIENoZWNrb3V0LAotICAgICAgICBD
bGVhbiwgQ2xvbmUsIENvbmZsaWN0LCBDcmVhdGVCdWcsIERpZmYsIEZpbmQsIEluZm8sIExhbmQs
IExvZywgUHVsbCwKKyAgICAgICAgQ2xlYW4sIENsb25lLCBDb25mbGljdCwgRGlmZiwgRmluZCwg
SW5mbywgTGFuZCwgTG9nLCBQdWxsLAogICAgICAgICBQdWxsUmVxdWVzdCwgUmV2ZXJ0LCBSZXZp
ZXcsIFNldHVwLCBJbnN0YWxsR2l0TEZTLAogICAgICAgICBDcmVkZW50aWFscywgQ29tbWl0LCBE
ZWxldGVQUkJyYW5jaGVzLCBTcXVhc2gsCi0gICAgICAgIFBpY2thYmxlLCBDaGVycnlQaWNrLCBU
cmFjZSwgVHJhY2ssIFRyYWNrZXJNZXRhZGF0YSwgU2hvdywgUHVibGlzaCwKKyAgICAgICAgUGlj
a2FibGUsIENoZXJyeVBpY2ssIFRyYWNlLCBUcmFjaywgU2hvdywgUHVibGlzaCwKICAgICAgICAg
Q2xhc3NpZnksIEluc3RhbGxIb29rcywKICAgICBdICsgKHByb2dyYW1zIG9yIFtdKQogICAgIGlm
IHN1YnZlcnNpb246CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRz
Y21weS93ZWJraXRzY21weS9wcm9ncmFtL2JyYW5jaC5weSBiL1Rvb2xzL1NjcmlwdHMvbGlicmFy
aWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L3Byb2dyYW0vYnJhbmNoLnB5CmluZGV4IGQ3N2Ez
NDU1NzkxNS4uMTc4YTQ2N2EwYzA5IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL2xpYnJhcmll
cy93ZWJraXRzY21weS93ZWJraXRzY21weS9wcm9ncmFtL2JyYW5jaC5weQorKysgYi9Ub29scy9T
Y3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS9wcm9ncmFtL2JyYW5jaC5w
eQpAQCAtMjYsNyArMjYsNyBAQCBpbXBvcnQgc3lzCiBmcm9tIC5jb21tYW5kIGltcG9ydCBDb21t
YW5kCiBmcm9tIC5jb21taXQgaW1wb3J0IENvbW1pdAogCi1mcm9tIHdlYmtpdGJ1Z3NweSBpbXBv
cnQgVHJhY2tlciwgYnVnemlsbGEsIHJhZGFyCitmcm9tIHdlYmtpdGJ1Z3NweSBpbXBvcnQgVHJh
Y2tlciwgcmFkYXIKIGZyb20gd2Via2l0Y29yZXB5IGltcG9ydCBhcmd1bWVudHMsIHJ1biwgc3Ry
aW5nX3V0aWxzLCBUZXJtaW5hbAogZnJvbSB3ZWJraXRzY21weSBpbXBvcnQgbG9jYWwsIGxvZywg
cmVtb3RlCiAKQEAgLTE2MiwxMSArMTYyLDEyIEBAIGNsYXNzIEJyYW5jaChDb21tYW5kKToKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dCA9ICc8cmRhcjovL3Byb2JsZW0ve30+Jy5m
b3JtYXQoaW5wdXQpCiAgICAgICAgICAgICAgICAgICAgICAgICByZGFyX3RvX2NjID0gVHJhY2tl
ci5mcm9tX3N0cmluZyhpbnB1dCkgb3IgRmFsc2UKIAotICAgICAgICAgICAgICAgIGRlZmF1bHRf
cHJvaiA9IE5vbmUKLSAgICAgICAgICAgICAgICBpZiByZGFyX3RvX2NjOgotICAgICAgICAgICAg
ICAgICAgICBkZWZhdWx0X3Byb2osIF8sIF8gPSBidWd6aWxsYS5UcmFja2VyLmNsYXNzaWZ5X2Zy
b21fcmFkYXIoCi0gICAgICAgICAgICAgICAgICAgICAgICByZGFyX3RvX2NjLCBOb25lLCBOb25l
LAotICAgICAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAgZGVmYXVsdF9wcm9qID0g
bGlzdChUcmFja2VyLmluc3RhbmNlKCkucHJvamVjdHMua2V5cygpKVswXSBpZiByZGFyX3RvX2Nj
IGFuZCByZGFyX3RvX2NjLnJlZGFjdGVkIGVsc2UgTm9uZQorICAgICAgICAgICAgICAgIGlmIGRl
ZmF1bHRfcHJvaiBhbmQgVGVybWluYWwuY2hvb3NlKAorICAgICAgICAgICAgICAgICAgICBmIkF1
dG9tYXRpY2FsbHkgY2xhc3NpZnlpbmcgYnVnIGFzIHtkZWZhdWx0X3Byb2p9LiIsCisgICAgICAg
ICAgICAgICAgICAgIGRlZmF1bHQ9J0NvbnRpbnVlJywgb3B0aW9ucz0oJ0NvbnRpbnVlJywgJ01v
ZGlmeScpCisgICAgICAgICAgICAgICAgKSA9PSAnTW9kaWZ5JzoKKyAgICAgICAgICAgICAgICAg
ICAgZGVmYXVsdF9wcm9qID0gTm9uZQogCiAgICAgICAgICAgICAgICAgaXNzdWUgPSBUcmFja2Vy
Lmluc3RhbmNlKCkuY3JlYXRlKAogICAgICAgICAgICAgICAgICAgICB0aXRsZT1hcmdzLmlzc3Vl
LApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0
c2NtcHkvcHJvZ3JhbS9jcmVhdGVfYnVnLnB5IGIvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Vi
a2l0c2NtcHkvd2Via2l0c2NtcHkvcHJvZ3JhbS9jcmVhdGVfYnVnLnB5CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBlMWJhYjZhNjMyZDMuLjAwMDAwMDAwMDAwMAotLS0gYS9Ub29scy9T
Y3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS9wcm9ncmFtL2NyZWF0ZV9i
dWcucHkKKysrIC9kZXYvbnVsbApAQCAtMSwyNTIgKzAsMCBAQAotIyBDb3B5cmlnaHQgKEMpIDIw
MjYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCi0jIGFyZSBtZXQ6Ci0jIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAyLiAgUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKLSMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0jCi0jIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMi
IEFORAotIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0jIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SCi0jIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKLSMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKLSMgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIKLSMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKLSMgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KLQotaW1wb3J0IHN5cwotCi1mcm9tIC5jb21tYW5kIGltcG9ydCBD
b21tYW5kCi0KLWZyb20gd2Via2l0YnVnc3B5IGltcG9ydCBUcmFja2VyLCBidWd6aWxsYSwgcmFk
YXIKLWZyb20gd2Via2l0c2NtcHkgaW1wb3J0IGxvZwotCi0KLWNsYXNzIENyZWF0ZUJ1ZyhDb21t
YW5kKToKLSAgICBuYW1lID0gJ2NyZWF0ZS1idWcnCi0gICAgYWxpYXNlcyA9IFtdCi0gICAgaGVs
cCA9ICdDcmVhdGUgYSBuZXcgYnVnIG9uIHRoZSBjb25maWd1cmVkIGJ1ZyB0cmFja2VyJwotCi0g
ICAgQGNsYXNzbWV0aG9kCi0gICAgZGVmIHBhcnNlcihjbHMsIHBhcnNlciwgbG9nZ2Vycz1Ob25l
KToKLSAgICAgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgKLSAgICAgICAgICAgICctLXRpdGxlJywg
ZGVzdD0ndGl0bGUnLCB0eXBlPXN0ciwgcmVxdWlyZWQ9VHJ1ZSwKLSAgICAgICAgICAgIGhlbHA9
J0J1ZyB0aXRsZS9zdW1tYXJ5JywKLSAgICAgICAgKQotICAgICAgICBwYXJzZXIuYWRkX2FyZ3Vt
ZW50KAotICAgICAgICAgICAgJy1GJywgJy0tZmlsZScsIGRlc3Q9J2Rlc2NyaXB0aW9uX2ZpbGUn
LCB0eXBlPXN0ciwgZGVmYXVsdD1Ob25lLAotICAgICAgICAgICAgaGVscD0nUGF0aCB0byBmaWxl
IGNvbnRhaW5pbmcgYnVnIGRlc2NyaXB0aW9uJywKLSAgICAgICAgKQotICAgICAgICBwYXJzZXIu
YWRkX2FyZ3VtZW50KAotICAgICAgICAgICAgJy0tY29tcG9uZW50JywgZGVzdD0nY29tcG9uZW50
JywgdHlwZT1zdHIsIGRlZmF1bHQ9Tm9uZSwKLSAgICAgICAgICAgIGhlbHA9J1dlYktpdCBjb21w
b25lbnQgKHByb21wdHMgaWYgbm90IHNwZWNpZmllZCknLAotICAgICAgICApCi0gICAgICAgIHBh
cnNlci5hZGRfYXJndW1lbnQoCi0gICAgICAgICAgICAnLS1wcm9qZWN0JywgZGVzdD0ncHJvamVj
dCcsIHR5cGU9c3RyLCBkZWZhdWx0PU5vbmUsCi0gICAgICAgICAgICBoZWxwPSdQcm9kdWN0IG5h
bWUgKHByb21wdHMgaWYgbm90IHNwZWNpZmllZCknLAotICAgICAgICApCi0gICAgICAgIHBhcnNl
ci5hZGRfYXJndW1lbnQoCi0gICAgICAgICAgICAnLS1rZXl3b3JkcycsIGRlc3Q9J2tleXdvcmRz
JywgdHlwZT1zdHIsIGRlZmF1bHQ9Tm9uZSwKLSAgICAgICAgICAgIGhlbHA9J0NvbW1hLXNlcGFy
YXRlZCBsaXN0IG9mIGtleXdvcmRzJywKLSAgICAgICAgKQotICAgICAgICBwYXJzZXIuYWRkX2Fy
Z3VtZW50KAotICAgICAgICAgICAgJy0tY2MnLCBkZXN0PSdjYycsIHR5cGU9c3RyLCBkZWZhdWx0
PU5vbmUsCi0gICAgICAgICAgICBoZWxwPSdDb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiBlbWFpbCBh
ZGRyZXNzZXMgdG8gQ0MnLAotICAgICAgICApCi0gICAgICAgIHBhcnNlci5hZGRfYXJndW1lbnQo
Ci0gICAgICAgICAgICAnLS1hc3NpZ25lZScsIGRlc3Q9J2Fzc2lnbmVlJywgdHlwZT1zdHIsIGRl
ZmF1bHQ9Tm9uZSwKLSAgICAgICAgICAgIGhlbHA9J1VzZXJuYW1lIHRvIGFzc2lnbiBidWcgdG8g
KGRlZmF1bHRzIHRvIGN1cnJlbnQgdXNlciknLAotICAgICAgICApCi0gICAgICAgIHBhcnNlci5h
ZGRfYXJndW1lbnQoCi0gICAgICAgICAgICAnLS1kZXBlbmRzLW9uJywgZGVzdD0nZGVwZW5kc19v
bicsIHR5cGU9aW50LCBhY3Rpb249J2FwcGVuZCcsIGRlZmF1bHQ9Tm9uZSwKLSAgICAgICAgICAg
IGhlbHA9J0J1ZyBJRCB0aGF0IHRoaXMgYnVnIGRlcGVuZHMgb24gKGNhbiBiZSBzcGVjaWZpZWQg
bXVsdGlwbGUgdGltZXMpJywKLSAgICAgICAgKQotICAgICAgICBwYXJzZXIuYWRkX2FyZ3VtZW50
KAotICAgICAgICAgICAgJy0tYmxvY2tzJywgZGVzdD0nYmxvY2tzJywgdHlwZT1pbnQsIGFjdGlv
bj0nYXBwZW5kJywgZGVmYXVsdD1Ob25lLAotICAgICAgICAgICAgaGVscD0nQnVnIElEIHRoYXQg
dGhpcyBidWcgYmxvY2tzIChjYW4gYmUgc3BlY2lmaWVkIG11bHRpcGxlIHRpbWVzKScsCi0gICAg
ICAgICkKLSAgICAgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgKLSAgICAgICAgICAgICctLXNlZS1h
bHNvJywgZGVzdD0nc2VlX2Fsc28nLCBhY3Rpb249J2FwcGVuZCcsIGRlZmF1bHQ9Tm9uZSwKLSAg
ICAgICAgICAgIGhlbHA9J1VSTCB0byBhZGQgdG8gU2VlIEFsc28gKGNhbiBiZSBzcGVjaWZpZWQg
bXVsdGlwbGUgdGltZXMpJywKLSAgICAgICAgKQotICAgICAgICBwYXJzZXIuYWRkX2FyZ3VtZW50
KAotICAgICAgICAgICAgJy0tcmFkYXInLCBkZXN0PSdyYWRhcicsIHR5cGU9c3RyLCBkZWZhdWx0
PU5vbmUsCi0gICAgICAgICAgICBoZWxwPSdSYWRhciBJRCB0byBhc3NvY2lhdGUgd2hlbiBjcmVh
dGluZyB0aGlzIGJ1ZyAoZS5nLiwgcmRhcjovLzEyMzQ1Njc4KS4nLAotICAgICAgICApCi0KLSAg
ICBAY2xhc3NtZXRob2QKLSAgICBkZWYgcGFyc2VfcmFkYXJfYXJnKGNscywgdmFsdWUpOgotICAg
ICAgICAiIiJWYWxpZGF0ZSBhbmQgbm9ybWFsaXplIGEgLS1yYWRhciBhcmd1bWVudCB0byBhIHNp
bmdsZSByZGFyOi8vIHN0cmluZy4KLQotICAgICAgICBBY2NlcHRzIGEgYmFyZSBpbnRlZ2VyIElE
LCByZGFyOi8vTk5OTk4sIHJkYXI6Ly9wcm9ibGVtL05OTk5OLAotICAgICAgICBvciBodHRwczov
L3JkYXIuYXBwbGUuY29tL05OTk5OLgotICAgICAgICBSYWlzZXMgVmFsdWVFcnJvciBmb3IgbXVs
dGlwbGUgSURzIG9yIHVucmVjb2duaXplZCBmb3JtYXRzLgotICAgICAgICBSZXR1cm5zIHRoZSBu
b3JtYWxpemVkICdyZGFyOi8vTk5OTk4nIHN0cmluZy4KLSAgICAgICAgIiIiCi0gICAgICAgIHZh
bHVlID0gdmFsdWUuc3RyaXAoKQotCi0gICAgICAgICMgU3RyaXAgb3B0aW9uYWwgc3Vycm91bmRp
bmcgYW5nbGUgYnJhY2tldHMgKGUuZy4sIDxyZGFyOi8vTj4pCi0gICAgICAgIGlmIHZhbHVlLnN0
YXJ0c3dpdGgoJzwnKSBhbmQgdmFsdWUuZW5kc3dpdGgoJz4nKToKLSAgICAgICAgICAgIHZhbHVl
ID0gdmFsdWVbMTotMV0uc3RyaXAoKQotCi0gICAgICAgICMgQmFyZSBpbnRlZ2VyIElECi0gICAg
ICAgIGlmIHZhbHVlLmlzZGlnaXQoKToKLSAgICAgICAgICAgIHJldHVybiAncmRhcjovL3t9Jy5m
b3JtYXQodmFsdWUpCi0KLSAgICAgICAgIyBTcGFjZSBvciBjb21tYSDigJQgbXVsdGlwbGUgSURz
Ci0gICAgICAgIGlmICcgJyBpbiB2YWx1ZSBvciAnLCcgaW4gdmFsdWU6Ci0gICAgICAgICAgICBy
YWlzZSBWYWx1ZUVycm9yKCdvbmx5IG9uZSByYWRhciBJRCBpcyBhY2NlcHRlZCcpCi0KLSAgICAg
ICAgIyBEZWxlZ2F0ZSBVUkwgcGFyc2luZyB0byByYWRhci5UcmFja2VyLnBhcnNlX2lkKCkKLSAg
ICAgICAgcmVzdWx0ID0gcmFkYXIuVHJhY2tlci5wYXJzZV9pZCh2YWx1ZSkKLSAgICAgICAgaWYg
cmVzdWx0IGlzIE5vbmU6Ci0gICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJ1bnJlY29nbml6
ZWQgZm9ybWF0OyBleHBlY3RlZCBhIG51bWVyaWMgSUQgb3IgcmRhcjovL05OTk5OIikKLSAgICAg
ICAgaWYgaXNpbnN0YW5jZShyZXN1bHQsIGxpc3QpOgotICAgICAgICAgICAgcmFpc2UgVmFsdWVF
cnJvcignb25seSBvbmUgcmFkYXIgSUQgaXMgYWNjZXB0ZWQnKQotICAgICAgICByZXR1cm4gJ3Jk
YXI6Ly97fScuZm9ybWF0KHJlc3VsdCkKLQotICAgIEBjbGFzc21ldGhvZAotICAgIGRlZiBtYWlu
KGNscywgYXJncywgcmVwb3NpdG9yeSwgKiprd2FyZ3MpOgotICAgICAgICB0cmFja2VyID0gVHJh
Y2tlci5pbnN0YW5jZSgpCi0gICAgICAgIGlmIG5vdCB0cmFja2VyOgotICAgICAgICAgICAgc3lz
LnN0ZGVyci53cml0ZSgiTm8gYnVnIHRyYWNrZXIgY29uZmlndXJlZFxuIikKLSAgICAgICAgICAg
IHJldHVybiAxCi0KLSAgICAgICAgIyBFbnN1cmUgY3JlZGVudGlhbHMgYXJlIGF2YWlsYWJsZQot
ICAgICAgICBpZiBnZXRhdHRyKHRyYWNrZXIsICdjcmVkZW50aWFscycsIE5vbmUpOgotICAgICAg
ICAgICAgdHJhY2tlci5jcmVkZW50aWFscyhyZXF1aXJlZD1UcnVlLCB2YWxpZGF0ZT1UcnVlKQot
Ci0gICAgICAgICMgUmVhZCBkZXNjcmlwdGlvbiBmcm9tIGZpbGUKLSAgICAgICAgZGVzY3JpcHRp
b24gPSBOb25lCi0gICAgICAgIGlmIGFyZ3MuZGVzY3JpcHRpb25fZmlsZToKLSAgICAgICAgICAg
IHRyeToKLSAgICAgICAgICAgICAgICB3aXRoIG9wZW4oYXJncy5kZXNjcmlwdGlvbl9maWxlLCAn
cicpIGFzIGY6Ci0gICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gZi5yZWFkKCkKLSAg
ICAgICAgICAgIGV4Y2VwdCBJT0Vycm9yIGFzIGU6Ci0gICAgICAgICAgICAgICAgc3lzLnN0ZGVy
ci53cml0ZSgiRmFpbGVkIHRvIHJlYWQgZGVzY3JpcHRpb24gZmlsZSAne30nOiB7fVxuIi5mb3Jt
YXQoCi0gICAgICAgICAgICAgICAgICAgIGFyZ3MuZGVzY3JpcHRpb25fZmlsZSwgZSkpCi0gICAg
ICAgICAgICAgICAgcmV0dXJuIDEKLQotICAgICAgICBpZiBub3QgZGVzY3JpcHRpb246Ci0gICAg
ICAgICAgICBzeXMuc3RkZXJyLndyaXRlKCJCdWcgZGVzY3JpcHRpb24gaXMgcmVxdWlyZWQgKHVz
ZSAtRi8tLWZpbGUpXG4iKQotICAgICAgICAgICAgcmV0dXJuIDEKLQotICAgICAgICAjIFN0YXJ0
IHdpdGggdXNlci1zcGVjaWZpZWQgcHJvamVjdC9jb21wb25lbnQKLSAgICAgICAgcHJvamVjdCA9
IGFyZ3MucHJvamVjdAotICAgICAgICBjb21wb25lbnQgPSBhcmdzLmNvbXBvbmVudAotCi0gICAg
ICAgICMgQ2hlY2sgZm9yIHJhZGFyIGFuZCBhcHBseSBzZWN1cml0eSBvdmVycmlkZSBpZiByZWRh
Y3RlZAotICAgICAgICByYWRhcl9pc3N1ZSA9IE5vbmUKLSAgICAgICAgc2VjdXJpdHlfZm9yY2Vk
ID0gRmFsc2UKLSAgICAgICAgaWYgYXJncy5yYWRhcjoKLSAgICAgICAgICAgIHRyeToKLSAgICAg
ICAgICAgICAgICByYWRhcl9zdHIgPSBjbHMucGFyc2VfcmFkYXJfYXJnKGFyZ3MucmFkYXIpCi0g
ICAgICAgICAgICBleGNlcHQgVmFsdWVFcnJvciBhcyBlOgotICAgICAgICAgICAgICAgIHN5cy5z
dGRlcnIud3JpdGUoIkludmFsaWQgLS1yYWRhciB2YWx1ZSAne30nOiB7fVxuIi5mb3JtYXQoYXJn
cy5yYWRhciwgZSkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIDEKLSAgICAgICAgICAgIHJhZGFy
X2lzc3VlID0gVHJhY2tlci5mcm9tX3N0cmluZyhyYWRhcl9zdHIpCi0gICAgICAgICAgICBpZiBy
YWRhcl9pc3N1ZToKLSAgICAgICAgICAgICAgICBwcm9qZWN0LCBjb21wb25lbnQsIHNlY3VyaXR5
X2ZvcmNlZCA9IGJ1Z3ppbGxhLlRyYWNrZXIuY2xhc3NpZnlfZnJvbV9yYWRhcigKLSAgICAgICAg
ICAgICAgICAgICAgcmFkYXJfaXNzdWUsIHByb2plY3QsIGNvbXBvbmVudCwKLSAgICAgICAgICAg
ICAgICApCi0KLSAgICAgICAgIyBJZiBub3QgZm9yY2VkIHRvIFNlY3VyaXR5LCBjaGVjayBmb3Ig
c2VjdXJpdHkga2V5d29yZHMgaW4gdGl0bGUgKyBkZXNjcmlwdGlvbgotICAgICAgICBpZiBub3Qg
c2VjdXJpdHlfZm9yY2VkOgotICAgICAgICAgICAgbWF0Y2hlcyA9IGJ1Z3ppbGxhLlRyYWNrZXIu
Y2hlY2tfc2VjdXJpdHlfa2V5d29yZHMoYXJncy50aXRsZSwgZGVzY3JpcHRpb24pCi0gICAgICAg
ICAgICBpZiBtYXRjaGVzOgotICAgICAgICAgICAgICAgIHByb2plY3QsIGNvbXBvbmVudCA9IGJ1
Z3ppbGxhLlRyYWNrZXIucHJvbXB0X3NlY3VyaXR5X2NsYXNzaWZpY2F0aW9uKAotICAgICAgICAg
ICAgICAgICAgICBtYXRjaGVzLCBwcm9qZWN0LCBjb21wb25lbnQsCi0gICAgICAgICAgICAgICAg
KQotCi0gICAgICAgICMgUGFyc2Uga2V5d29yZHMKLSAgICAgICAga2V5d29yZHMgPSBOb25lCi0g
ICAgICAgIGlmIGFyZ3Mua2V5d29yZHM6Ci0gICAgICAgICAgICBrZXl3b3JkcyA9IFtrLnN0cmlw
KCkgZm9yIGsgaW4gYXJncy5rZXl3b3Jkcy5zcGxpdCgnLCcpXQotCi0gICAgICAgICMgQ3JlYXRl
IHRoZSBidWcgKHRyYWNrZXIuY3JlYXRlIHByb21wdHMgZm9yIHByb2plY3QvY29tcG9uZW50IGlm
IG5vdCBzcGVjaWZpZWQpCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGlzc3VlID0gdHJhY2tl
ci5jcmVhdGUoCi0gICAgICAgICAgICAgICAgdGl0bGU9YXJncy50aXRsZSwKLSAgICAgICAgICAg
ICAgICBkZXNjcmlwdGlvbj1kZXNjcmlwdGlvbiwKLSAgICAgICAgICAgICAgICBwcm9qZWN0PXBy
b2plY3QsCi0gICAgICAgICAgICAgICAgY29tcG9uZW50PWNvbXBvbmVudCwKLSAgICAgICAgICAg
ICAgICBrZXl3b3Jkcz1rZXl3b3JkcywKLSAgICAgICAgICAgICkKLSAgICAgICAgZXhjZXB0IEV4
Y2VwdGlvbiBhcyBlOgotICAgICAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgiRmFpbGVkIHRvIGNy
ZWF0ZSBidWc6IHt9XG4iLmZvcm1hdChlKSkKLSAgICAgICAgICAgIHJldHVybiAxCi0KLSAgICAg
ICAgaWYgbm90IGlzc3VlOgotICAgICAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgiRmFpbGVkIHRv
IGNyZWF0ZSBidWdcbiIpCi0gICAgICAgICAgICByZXR1cm4gMQotCi0gICAgICAgIHByaW50KCJD
cmVhdGVkIGJ1Zzoge30iLmZvcm1hdChpc3N1ZS5saW5rKSkKLQotICAgICAgICAjIFBvc3QtY3Jl
YXRpb24gb3BlcmF0aW9ucwotICAgICAgICBjbHMuX3Bvc3RfY3JlYXRlX29wZXJhdGlvbnMoaXNz
dWUsIHRyYWNrZXIsIGFyZ3MsIHJhZGFyX2lzc3VlPXJhZGFyX2lzc3VlKQotCi0gICAgICAgIHJl
dHVybiAwCi0KLSAgICBAY2xhc3NtZXRob2QKLSAgICBkZWYgX3Bvc3RfY3JlYXRlX29wZXJhdGlv
bnMoY2xzLCBpc3N1ZSwgdHJhY2tlciwgYXJncywgcmFkYXJfaXNzdWU9Tm9uZSk6Ci0gICAgICAg
ICIiIkhhbmRsZSBDQywgYXNzaWduZWUsIHNlZS1hbHNvLCBkZXBlbmRzLW9uLCBibG9ja3MsIGFu
ZCByYWRhciBsaW5raW5nIGFmdGVyIGJ1ZyBjcmVhdGlvbi4iIiIKLQotICAgICAgICAjIEhhbmRs
ZSBhc3NpZ25lZQotICAgICAgICBpZiBhcmdzLmFzc2lnbmVlOgotICAgICAgICAgICAgdHJ5Ogot
ICAgICAgICAgICAgICAgIGFzc2lnbmVlX3VzZXIgPSB0cmFja2VyLnVzZXIodXNlcm5hbWU9YXJn
cy5hc3NpZ25lZSkKLSAgICAgICAgICAgICAgICBpZiBhc3NpZ25lZV91c2VyOgotICAgICAgICAg
ICAgICAgICAgICB0cmFja2VyLnNldChpc3N1ZSwgYXNzaWduZWU9YXNzaWduZWVfdXNlcikKLSAg
ICAgICAgICAgICAgICAgICAgcHJpbnQoIkFzc2lnbmVkIHRvOiB7fSIuZm9ybWF0KGFyZ3MuYXNz
aWduZWUpKQotICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgotICAgICAgICAgICAg
ICAgIGxvZy53YXJuaW5nKCJGYWlsZWQgdG8gYXNzaWduOiB7fSIuZm9ybWF0KGUpKQotCi0gICAg
ICAgICMgSGFuZGxlIENDIGxpc3QKLSAgICAgICAgaWYgYXJncy5jYzoKLSAgICAgICAgICAgIGNj
X2xpc3QgPSBbZS5zdHJpcCgpIGZvciBlIGluIGFyZ3MuY2Muc3BsaXQoJywnKV0KLSAgICAgICAg
ICAgICMgUmVtb3ZlIHRoZSByYWRhciBpbXBvcnRlciBpZiBwcmVzZW50IOKAlCBjY19yYWRhcigp
IHdpbGwgaGFuZGxlIGl0Ci0gICAgICAgICAgICAjIHRvIGVuc3VyZSB0aGUgPHJkYXI6Ly9OPiBj
b21tZW50IGFuZCBJblJhZGFyIGtleXdvcmQgY29tZSBmaXJzdC4KLSAgICAgICAgICAgIGlmIGlz
aW5zdGFuY2UodHJhY2tlciwgYnVnemlsbGEuVHJhY2tlcikgYW5kIGdldGF0dHIodHJhY2tlciwg
J3JhZGFyX2ltcG9ydGVyJywgTm9uZSk6Ci0gICAgICAgICAgICAgICAgaW1wb3J0ZXIgPSB0cmFj
a2VyLnJhZGFyX2ltcG9ydGVyCi0gICAgICAgICAgICAgICAgaW1wb3J0ZXJfaWRzID0gc2V0KGZp
bHRlcihOb25lLCBbaW1wb3J0ZXIudXNlcm5hbWUsIGltcG9ydGVyLmVtYWlsXSArIGxpc3QoaW1w
b3J0ZXIuZW1haWxzKSkpCi0gICAgICAgICAgICAgICAgY2NfbGlzdCA9IFtjYyBmb3IgY2MgaW4g
Y2NfbGlzdCBpZiBjYyBub3QgaW4gaW1wb3J0ZXJfaWRzXQotICAgICAgICAgICAgaWYgY2NfbGlz
dDoKLSAgICAgICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgICAgIHRyYWNrZXIuc2V0
KGlzc3VlLCBjYz1jY19saXN0KQotICAgICAgICAgICAgICAgICAgICBwcmludCgiQWRkZWQgQ0M6
IHt9Ii5mb3JtYXQoJywgJy5qb2luKGNjX2xpc3QpKSkKLSAgICAgICAgICAgICAgICBleGNlcHQg
RXhjZXB0aW9uIGFzIGU6Ci0gICAgICAgICAgICAgICAgICAgIGxvZy53YXJuaW5nKCJGYWlsZWQg
dG8gYWRkIENDOiB7fSIuZm9ybWF0KGUpKQotCi0gICAgICAgICMgSGFuZGxlIFNlZSBBbHNvCi0g
ICAgICAgIGlmIGFyZ3Muc2VlX2Fsc286Ci0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAg
ICAgdHJhY2tlci5zZXQoaXNzdWUsIHNlZV9hbHNvPWFyZ3Muc2VlX2Fsc28pCi0gICAgICAgICAg
ICAgICAgcHJpbnQoIkFkZGVkIFNlZSBBbHNvOiB7fSIuZm9ybWF0KCcsICcuam9pbihhcmdzLnNl
ZV9hbHNvKSkpCi0gICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6Ci0gICAgICAgICAg
ICAgICAgbG9nLndhcm5pbmcoIkZhaWxlZCB0byBhZGQgU2VlIEFsc286IHt9Ii5mb3JtYXQoZSkp
Ci0KLSAgICAgICAgIyBIYW5kbGUgcmVsYXRpb25zaGlwcwotICAgICAgICBmb3IgYXR0ciwgbGFi
ZWwsIGFwcGx5IGluIFsKLSAgICAgICAgICAgICgnZGVwZW5kc19vbicsICdkZXBlbmRzIG9uJywg
bGFtYmRhIGJ1Z19pZDogdHJhY2tlci5yZWxhdGUoaXNzdWUsIGRlcGVuZHNfb249dHJhY2tlci5p
c3N1ZShidWdfaWQpKSksCi0gICAgICAgICAgICAoJ2Jsb2NrcycsICdibG9ja3MnLCBsYW1iZGEg
YnVnX2lkOiB0cmFja2VyLnJlbGF0ZShpc3N1ZSwgYmxvY2tzPXRyYWNrZXIuaXNzdWUoYnVnX2lk
KSkpLAotICAgICAgICBdOgotICAgICAgICAgICAgZm9yIGJ1Z19pZCBpbiBnZXRhdHRyKGFyZ3Ms
IGF0dHIpIG9yIFtdOgotICAgICAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICAgICAg
YXBwbHkoYnVnX2lkKQotICAgICAgICAgICAgICAgICAgICBwcmludCgiU2V0IHt9OiBCdWcge30i
LmZvcm1hdChsYWJlbCwgYnVnX2lkKSkKLSAgICAgICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9u
IGFzIGU6Ci0gICAgICAgICAgICAgICAgICAgIGxvZy53YXJuaW5nKCJGYWlsZWQgdG8gc2V0IHt9
IHt9OiB7fSIuZm9ybWF0KGF0dHIsIGJ1Z19pZCwgZSkpCi0KLSAgICAgICAgIyBMaW5rIHRvIHJh
ZGFyOiBwb3N0IDxyZGFyOi8vTj4gY29tbWVudCwgYWRkIEluUmFkYXIga2V5d29yZCwgQ0MgaW1w
b3J0ZXIuCi0gICAgICAgICMgY2NfcmFkYXIgaGFuZGxlcyB0aGUgc2FmZSBvcmRlcmluZyB0byBh
dm9pZCBkdXBsaWNhdGUgcmFkYXIgY3JlYXRpb24uCi0gICAgICAgIGlmIGlzaW5zdGFuY2UodHJh
Y2tlciwgYnVnemlsbGEuVHJhY2tlcik6Ci0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAg
ICAgdHJhY2tlci5jY19yYWRhcihpc3N1ZSwgcmFkYXI9cmFkYXJfaXNzdWUpCi0gICAgICAgICAg
ICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6Ci0gICAgICAgICAgICAgICAgbG9nLndhcm5pbmcoIkZh
aWxlZCB0byBjYyByYWRhciBpbXBvcnRlcjoge30iLmZvcm1hdChlKSkKZGlmZiAtLWdpdCBhL1Rv
b2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L3Byb2dyYW0vdHJh
Y2tlcl9tZXRhZGF0YS5weSBiL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dl
YmtpdHNjbXB5L3Byb2dyYW0vdHJhY2tlcl9tZXRhZGF0YS5weQpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggZmVlNGQzMmE3OGZiLi4wMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvU2NyaXB0
cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvcHJvZ3JhbS90cmFja2VyX21ldGFk
YXRhLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMTM4ICswLDAgQEAKLSMgQ29weXJpZ2h0IChDKSAy
MDI2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwotIyBhcmUgbWV0OgotIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgMi4gIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0jICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0jICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotIwotIyBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElT
IiBBTkQKLSMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotIyBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUgotIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCi0jIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCi0jIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSCi0jIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCi0jIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCi0KLWltcG9ydCBqc29uCi1pbXBvcnQgc3lzCi0KLWZyb20gLmNv
bW1hbmQgaW1wb3J0IENvbW1hbmQKLQotZnJvbSB3ZWJraXRidWdzcHkgaW1wb3J0IFRyYWNrZXIK
LQotCi1jbGFzcyBUcmFja2VyTWV0YWRhdGEoQ29tbWFuZCk6Ci0gICAgbmFtZSA9ICd0cmFja2Vy
LW1ldGFkYXRhJwotICAgIGFsaWFzZXMgPSBbXQotICAgIGhlbHAgPSAnRmV0Y2ggYW5kIGRpc3Bs
YXkgbWV0YWRhdGEgZnJvbSB0aGUgY29uZmlndXJlZCBidWcgdHJhY2tlcicKLQotICAgIFBST1BF
UlRJRVMgPSBbCi0gICAgICAgICdwcm9kdWN0cycsICdjb21wb25lbnRzJywgJ2NvbXBvbmVudF9k
ZXNjcmlwdGlvbnMnLAotICAgICAgICAna2V5d29yZHMnLCAna2V5d29yZF9kZXNjcmlwdGlvbnMn
LAotICAgIF0KLQotICAgIEBjbGFzc21ldGhvZAotICAgIGRlZiBwYXJzZXIoY2xzLCBwYXJzZXIs
IGxvZ2dlcnM9Tm9uZSk6Ci0gICAgICAgIHBhcnNlci5hZGRfYXJndW1lbnQoCi0gICAgICAgICAg
ICAnLS1mb3JtYXQnLCBkZXN0PSdvdXRwdXRfZm9ybWF0JywgdHlwZT1zdHIsIGRlZmF1bHQ9J2pz
b24nLAotICAgICAgICAgICAgY2hvaWNlcz1bJ2pzb24nLCAndGV4dCddLAotICAgICAgICAgICAg
aGVscD0nT3V0cHV0IGZvcm1hdCAoZGVmYXVsdDoganNvbiknLAotICAgICAgICApCi0gICAgICAg
IHBhcnNlci5hZGRfYXJndW1lbnQoCi0gICAgICAgICAgICAnLXAnLCAnLS1wcm9wZXJ0eScsIGRl
c3Q9J3Byb3BlcnRpZXMnLCBhY3Rpb249J2FwcGVuZCcsIGRlZmF1bHQ9Tm9uZSwKLSAgICAgICAg
ICAgIGhlbHA9J1Byb3BlcnR5IHRvIGRpc3BsYXkgKGNhbiBiZSBzcGVjaWZpZWQgbXVsdGlwbGUg
dGltZXMpLiAnCi0gICAgICAgICAgICAgICAgICdBdmFpbGFibGU6IHt9Jy5mb3JtYXQoJywgJy5q
b2luKGNscy5QUk9QRVJUSUVTKSksCi0gICAgICAgICkKLSAgICAgICAgcGFyc2VyLmFkZF9hcmd1
bWVudCgKLSAgICAgICAgICAgICctLXByb2plY3QnLCBkZXN0PSdwcm9qZWN0JywgdHlwZT1zdHIs
IGRlZmF1bHQ9Tm9uZSwKLSAgICAgICAgICAgIGhlbHA9J0ZpbHRlciBjb21wb25lbnRzIGFuZCBj
b21wb25lbnQgZGVzY3JpcHRpb25zIHRvIGEgc3BlY2lmaWMgcHJvamVjdCcsCi0gICAgICAgICkK
LQotICAgIEBjbGFzc21ldGhvZAotICAgIGRlZiBtYWluKGNscywgYXJncywgcmVwb3NpdG9yeSwg
Kiprd2FyZ3MpOgotICAgICAgICB0cmFja2VyID0gVHJhY2tlci5pbnN0YW5jZSgpCi0gICAgICAg
IGlmIG5vdCB0cmFja2VyOgotICAgICAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgiTm8gYnVnIHRy
YWNrZXIgY29uZmlndXJlZFxuIikKLSAgICAgICAgICAgIHJldHVybiAxCi0KLSAgICAgICAgcHJv
cGVydGllcyA9IGFyZ3MucHJvcGVydGllcyBvciBjbHMuUFJPUEVSVElFUwotCi0gICAgICAgIGZv
ciBwcm9wIGluIHByb3BlcnRpZXM6Ci0gICAgICAgICAgICBpZiBwcm9wIG5vdCBpbiBjbHMuUFJP
UEVSVElFUzoKLSAgICAgICAgICAgICAgICBzeXMuc3RkZXJyLndyaXRlKCJVbmtub3duIHByb3Bl
cnR5ICd7fScuIEF2YWlsYWJsZToge31cbiIuZm9ybWF0KAotICAgICAgICAgICAgICAgICAgICBw
cm9wLCAnLCAnLmpvaW4oY2xzLlBST1BFUlRJRVMpKSkKLSAgICAgICAgICAgICAgICByZXR1cm4g
MQotCi0gICAgICAgIHJlc3VsdCA9IGNscy5nZXRfdHJhY2tlcl9tZXRhZGF0YSh0cmFja2VyLCBw
cm9wZXJ0aWVzLCBhcmdzLnByb2plY3QpCi0gICAgICAgIGNscy5vdXRwdXRfcmVzdWx0KHJlc3Vs
dCwgYXJncy5vdXRwdXRfZm9ybWF0KQotICAgICAgICByZXR1cm4gMAotCi0gICAgQGNsYXNzbWV0
aG9kCi0gICAgZGVmIGdldF90cmFja2VyX21ldGFkYXRhKGNscywgdHJhY2tlciwgcHJvcGVydGll
cywgcHJvamVjdD1Ob25lKToKLSAgICAgICAgcmVzdWx0ID0ge30KLSAgICAgICAgcHJvamVjdHMg
PSB0cmFja2VyLnByb2plY3RzCi0KLSAgICAgICAgaWYgJ3Byb2R1Y3RzJyBpbiBwcm9wZXJ0aWVz
OgotICAgICAgICAgICAgcmVzdWx0Wydwcm9kdWN0cyddID0gc29ydGVkKHByb2plY3RzLmtleXMo
KSkKLQotICAgICAgICBpZiAnY29tcG9uZW50cycgaW4gcHJvcGVydGllczoKLSAgICAgICAgICAg
IGNvbXBvbmVudHMgPSB7fQotICAgICAgICAgICAgZm9yIG5hbWUsIGRldGFpbHMgaW4gc29ydGVk
KHByb2plY3RzLml0ZW1zKCkpOgotICAgICAgICAgICAgICAgIGlmIHByb2plY3QgYW5kIG5hbWUg
IT0gcHJvamVjdDoKLSAgICAgICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAgICAg
ICBjb21wb25lbnRzW25hbWVdID0gc29ydGVkKGRldGFpbHNbJ2NvbXBvbmVudHMnXS5rZXlzKCkp
Ci0gICAgICAgICAgICByZXN1bHRbJ2NvbXBvbmVudHMnXSA9IGNvbXBvbmVudHMKLQotICAgICAg
ICBpZiAnY29tcG9uZW50X2Rlc2NyaXB0aW9ucycgaW4gcHJvcGVydGllczoKLSAgICAgICAgICAg
IGNvbXBvbmVudF9kZXNjcmlwdGlvbnMgPSB7fQotICAgICAgICAgICAgZm9yIG5hbWUsIGRldGFp
bHMgaW4gc29ydGVkKHByb2plY3RzLml0ZW1zKCkpOgotICAgICAgICAgICAgICAgIGlmIHByb2pl
Y3QgYW5kIG5hbWUgIT0gcHJvamVjdDoKLSAgICAgICAgICAgICAgICAgICAgY29udGludWUKLSAg
ICAgICAgICAgICAgICBjb21wb25lbnRfZGVzY3JpcHRpb25zW25hbWVdID0gewotICAgICAgICAg
ICAgICAgICAgICBjb21wOiBpbmZvWydkZXNjcmlwdGlvbiddCi0gICAgICAgICAgICAgICAgICAg
IGZvciBjb21wLCBpbmZvIGluIHNvcnRlZChkZXRhaWxzWydjb21wb25lbnRzJ10uaXRlbXMoKSkK
LSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICByZXN1bHRbJ2NvbXBvbmVudF9kZXNjcmlw
dGlvbnMnXSA9IGNvbXBvbmVudF9kZXNjcmlwdGlvbnMKLQotICAgICAgICBpZiAna2V5d29yZHMn
IGluIHByb3BlcnRpZXMgb3IgJ2tleXdvcmRfZGVzY3JpcHRpb25zJyBpbiBwcm9wZXJ0aWVzOgot
ICAgICAgICAgICAgaWYgaGFzYXR0cih0cmFja2VyLCAndmFsaWRfa2V5d29yZHMnKToKLSAgICAg
ICAgICAgICAgICBrZXl3b3JkcyA9IHRyYWNrZXIudmFsaWRfa2V5d29yZHMoKQotICAgICAgICAg
ICAgZWxzZToKLSAgICAgICAgICAgICAgICBrZXl3b3JkcyA9IHt9Ci0gICAgICAgICAgICBpZiAn
a2V5d29yZHMnIGluIHByb3BlcnRpZXM6Ci0gICAgICAgICAgICAgICAgcmVzdWx0WydrZXl3b3Jk
cyddID0gc29ydGVkKGtleXdvcmRzLmtleXMoKSkKLSAgICAgICAgICAgIGlmICdrZXl3b3JkX2Rl
c2NyaXB0aW9ucycgaW4gcHJvcGVydGllczoKLSAgICAgICAgICAgICAgICByZXN1bHRbJ2tleXdv
cmRfZGVzY3JpcHRpb25zJ10gPSBkaWN0KHNvcnRlZChrZXl3b3Jkcy5pdGVtcygpKSkKLQotICAg
ICAgICByZXR1cm4gcmVzdWx0Ci0KLSAgICBAY2xhc3NtZXRob2QKLSAgICBkZWYgb3V0cHV0X3Jl
c3VsdChjbHMsIHJlc3VsdCwgb3V0cHV0X2Zvcm1hdCk6Ci0gICAgICAgIGlmIG91dHB1dF9mb3Jt
YXQgPT0gJ2pzb24nOgotICAgICAgICAgICAgcHJpbnQoanNvbi5kdW1wcyhyZXN1bHQsIGluZGVu
dD0yLCBkZWZhdWx0PXN0cikpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBpZiAncHJvZHVj
dHMnIGluIHJlc3VsdDoKLSAgICAgICAgICAgICAgICBwcmludCgicHJvZHVjdHM6IHt9Ii5mb3Jt
YXQoJywgJy5qb2luKHJlc3VsdFsncHJvZHVjdHMnXSkpKQotICAgICAgICAgICAgaWYgJ2NvbXBv
bmVudHMnIGluIHJlc3VsdDoKLSAgICAgICAgICAgICAgICBmb3IgcHJvZHVjdCwgY29tcG9uZW50
cyBpbiBzb3J0ZWQocmVzdWx0Wydjb21wb25lbnRzJ10uaXRlbXMoKSk6Ci0gICAgICAgICAgICAg
ICAgICAgIHByaW50KCJcbmNvbXBvbmVudHMgKHt9KToiLmZvcm1hdChwcm9kdWN0KSkKLSAgICAg
ICAgICAgICAgICAgICAgZm9yIGNvbXAgaW4gY29tcG9uZW50czoKLSAgICAgICAgICAgICAgICAg
ICAgICAgIHByaW50KCIgIHt9Ii5mb3JtYXQoY29tcCkpCi0gICAgICAgICAgICBpZiAnY29tcG9u
ZW50X2Rlc2NyaXB0aW9ucycgaW4gcmVzdWx0OgotICAgICAgICAgICAgICAgIGZvciBwcm9kdWN0
LCBkZXNjcyBpbiBzb3J0ZWQocmVzdWx0Wydjb21wb25lbnRfZGVzY3JpcHRpb25zJ10uaXRlbXMo
KSk6Ci0gICAgICAgICAgICAgICAgICAgIHByaW50KCJcbmNvbXBvbmVudF9kZXNjcmlwdGlvbnMg
KHt9KToiLmZvcm1hdChwcm9kdWN0KSkKLSAgICAgICAgICAgICAgICAgICAgZm9yIGNvbXAsIGRl
c2MgaW4gc29ydGVkKGRlc2NzLml0ZW1zKCkpOgotICAgICAgICAgICAgICAgICAgICAgICAgcHJp
bnQoIiAge306IHt9Ii5mb3JtYXQoY29tcCwgZGVzYykpCi0gICAgICAgICAgICBpZiAna2V5d29y
ZHMnIGluIHJlc3VsdDoKLSAgICAgICAgICAgICAgICBwcmludCgiXG5rZXl3b3Jkczoge30iLmZv
cm1hdCgnLCAnLmpvaW4ocmVzdWx0WydrZXl3b3JkcyddKSkpCi0gICAgICAgICAgICBpZiAna2V5
d29yZF9kZXNjcmlwdGlvbnMnIGluIHJlc3VsdDoKLSAgICAgICAgICAgICAgICBwcmludCgiXG5r
ZXl3b3JkX2Rlc2NyaXB0aW9uczoiKQotICAgICAgICAgICAgICAgIGZvciBrdywgZGVzYyBpbiBz
b3J0ZWQocmVzdWx0WydrZXl3b3JkX2Rlc2NyaXB0aW9ucyddLml0ZW1zKCkpOgotICAgICAgICAg
ICAgICAgICAgICBwcmludCgiICB7fToge30iLmZvcm1hdChrdywgZGVzYykpCmRpZmYgLS1naXQg
YS9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS90ZXN0L2Ny
ZWF0ZV9idWdfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21w
eS93ZWJraXRzY21weS90ZXN0L2NyZWF0ZV9idWdfdW5pdHRlc3QucHkKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDY4ZTgyNzkyNWZkMC4uMDAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1Nj
cmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L3Rlc3QvY3JlYXRlX2J1Z191
bml0dGVzdC5weQorKysgL2Rldi9udWxsCkBAIC0xLDI1MiArMCwwIEBACi0jIENvcHlyaWdodCAo
QykgMjAyNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
IyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSMgYXJlIG1ldDoKLSMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jIDIuICBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSMKLSMgVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTICJB
UyBJUyIgQU5ECi0jIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0jIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSMgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IKLSMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAotIyBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgotIyBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUgotIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAotIyBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi1pbXBvcnQgb3MKLWZyb20gdW5pdHRlc3QubW9jayBp
bXBvcnQgcGF0Y2gKLQotZnJvbSB3ZWJraXRidWdzcHkgaW1wb3J0IFRyYWNrZXIsIGJ1Z3ppbGxh
LCByYWRhcgotZnJvbSB3ZWJraXRidWdzcHkgaW1wb3J0IG1vY2tzIGFzIGJtb2NrcwotZnJvbSB3
ZWJraXRjb3JlcHkgaW1wb3J0IE91dHB1dENhcHR1cmUsIHRlc3RpbmcKLWZyb20gd2Via2l0Y29y
ZXB5Lm1vY2tzIGltcG9ydCBFbnZpcm9ubWVudAotZnJvbSB3ZWJraXRjb3JlcHkubW9ja3MgaW1w
b3J0IFRlcm1pbmFsIGFzIE1vY2tUZXJtaW5hbAotCi1mcm9tIHdlYmtpdHNjbXB5IGltcG9ydCBt
b2NrcywgcHJvZ3JhbQotZnJvbSB3ZWJraXRzY21weS5wcm9ncmFtLmNyZWF0ZV9idWcgaW1wb3J0
IENyZWF0ZUJ1ZwotCi0KLWNsYXNzIFRlc3RDcmVhdGVCdWcodGVzdGluZy5QYXRoVGVzdENhc2Up
OgotICAgIGJhc2VwYXRoID0gJ21vY2svcmVwb3NpdG9yeScKLSAgICBCVUdaSUxMQSA9ICdodHRw
czovL2J1Z3MuZXhhbXBsZS5jb20nCi0KLSAgICBkZWYgc2V0VXAoc2VsZik6Ci0gICAgICAgIHN1
cGVyKFRlc3RDcmVhdGVCdWcsIHNlbGYpLnNldFVwKCkKLSAgICAgICAgb3MubWtkaXIob3MucGF0
aC5qb2luKHNlbGYucGF0aCwgJy5naXQnKSkKLSAgICAgICAgIyBDcmVhdGUgZGVzY3JpcHRpb24g
ZmlsZSBmb3IgdGVzdHMKLSAgICAgICAgc2VsZi5kZXNjX2ZpbGUgPSBvcy5wYXRoLmpvaW4oc2Vs
Zi5wYXRoLCAnZGVzY3JpcHRpb24udHh0JykKLSAgICAgICAgd2l0aCBvcGVuKHNlbGYuZGVzY19m
aWxlLCAndycpIGFzIGY6Ci0gICAgICAgICAgICBmLndyaXRlKCdUZXN0IGJ1ZyBkZXNjcmlwdGlv
bicpCi0KLSAgICBkZWYgdGVzdF9ub19idWd6aWxsYV90cmFja2VyKHNlbGYpOgotICAgICAgICAi
IiJUZXN0IGVycm9yIHdoZW4gbm8gYnVnIHRyYWNrZXIgY29uZmlndXJlZCIiIgotICAgICAgICB3
aXRoIE91dHB1dENhcHR1cmUoKSBhcyBjYXB0dXJlZCwgbW9ja3MubG9jYWwuR2l0KHNlbGYucGF0
aCksIFwKLSAgICAgICAgICAgICBwYXRjaCgnd2Via2l0YnVnc3B5LlRyYWNrZXIuX3RyYWNrZXJz
JywgW10pOgotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxLCBwcm9ncmFtLm1haW4oCi0g
ICAgICAgICAgICAgICAgYXJncz0oJ2NyZWF0ZS1idWcnLCAnLS10aXRsZScsICdUZXN0IGJ1Zycs
ICctRicsIHNlbGYuZGVzY19maWxlKSwKLSAgICAgICAgICAgICAgICBwYXRoPXNlbGYucGF0aCwK
LSAgICAgICAgICAgICkpCi0gICAgICAgIHNlbGYuYXNzZXJ0SW4oJ05vIGJ1ZyB0cmFja2VyIGNv
bmZpZ3VyZWQnLCBjYXB0dXJlZC5zdGRlcnIuZ2V0dmFsdWUoKSkKLQotICAgIGRlZiB0ZXN0X2Rl
c2NyaXB0aW9uX2ZpbGVfbm90X2ZvdW5kKHNlbGYpOgotICAgICAgICAiIiJUZXN0IGVycm9yIHdo
ZW4gZGVzY3JpcHRpb24gZmlsZSBkb2Vzbid0IGV4aXN0IiIiCi0gICAgICAgIHdpdGggT3V0cHV0
Q2FwdHVyZSgpIGFzIGNhcHR1cmVkLCBtb2Nrcy5sb2NhbC5HaXQoc2VsZi5wYXRoKSwgYm1vY2tz
LkJ1Z3ppbGxhKAotICAgICAgICAgICAgc2VsZi5CVUdaSUxMQS5zcGxpdCgnOi8vJylbLTFdLAot
ICAgICAgICAgICAgcHJvamVjdHM9Ym1vY2tzLlBST0pFQ1RTLAotICAgICAgICAgICAgZW52aXJv
bm1lbnQ9RW52aXJvbm1lbnQoCi0gICAgICAgICAgICAgICAgQlVHU19FWEFNUExFX0NPTV9VU0VS
TkFNRT0ndGNvbnRyaWJ1dG9yQGV4YW1wbGUuY29tJywKLSAgICAgICAgICAgICAgICBCVUdTX0VY
QU1QTEVfQ09NX1BBU1NXT1JEPSdwYXNzd29yZCcsCi0gICAgICAgICAgICApLAotICAgICAgICAp
LCBwYXRjaCgnd2Via2l0YnVnc3B5LlRyYWNrZXIuX3RyYWNrZXJzJywgW2J1Z3ppbGxhLlRyYWNr
ZXIoc2VsZi5CVUdaSUxMQSldKToKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMSwgcHJv
Z3JhbS5tYWluKAotICAgICAgICAgICAgICAgIGFyZ3M9KCdjcmVhdGUtYnVnJywgJy0tdGl0bGUn
LCAnVGVzdCBidWcnLCAnLUYnLCAnL25vbmV4aXN0ZW50L2ZpbGUudHh0JyksCi0gICAgICAgICAg
ICAgICAgcGF0aD1zZWxmLnBhdGgsCi0gICAgICAgICAgICApKQotICAgICAgICBzZWxmLmFzc2Vy
dEluKCdGYWlsZWQgdG8gcmVhZCBkZXNjcmlwdGlvbiBmaWxlJywgY2FwdHVyZWQuc3RkZXJyLmdl
dHZhbHVlKCkpCi0KLSAgICBkZWYgdGVzdF9taXNzaW5nX2Rlc2NyaXB0aW9uKHNlbGYpOgotICAg
ICAgICAiIiJUZXN0IGVycm9yIHdoZW4gbm8gZGVzY3JpcHRpb24gZmlsZSBzcGVjaWZpZWQiIiIK
LSAgICAgICAgd2l0aCBPdXRwdXRDYXB0dXJlKCkgYXMgY2FwdHVyZWQsIG1vY2tzLmxvY2FsLkdp
dChzZWxmLnBhdGgpLCBibW9ja3MuQnVnemlsbGEoCi0gICAgICAgICAgICBzZWxmLkJVR1pJTExB
LnNwbGl0KCc6Ly8nKVstMV0sCi0gICAgICAgICAgICBwcm9qZWN0cz1ibW9ja3MuUFJPSkVDVFMs
Ci0gICAgICAgICAgICBlbnZpcm9ubWVudD1FbnZpcm9ubWVudCgKLSAgICAgICAgICAgICAgICBC
VUdTX0VYQU1QTEVfQ09NX1VTRVJOQU1FPSd0Y29udHJpYnV0b3JAZXhhbXBsZS5jb20nLAotICAg
ICAgICAgICAgICAgIEJVR1NfRVhBTVBMRV9DT01fUEFTU1dPUkQ9J3Bhc3N3b3JkJywKLSAgICAg
ICAgICAgICksCi0gICAgICAgICksIHBhdGNoKCd3ZWJraXRidWdzcHkuVHJhY2tlci5fdHJhY2tl
cnMnLCBbYnVnemlsbGEuVHJhY2tlcihzZWxmLkJVR1pJTExBKV0pOgotICAgICAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbCgxLCBwcm9ncmFtLm1haW4oCi0gICAgICAgICAgICAgICAgYXJncz0oJ2Ny
ZWF0ZS1idWcnLCAnLS10aXRsZScsICdUZXN0IGJ1ZycpLAotICAgICAgICAgICAgICAgIHBhdGg9
c2VsZi5wYXRoLAotICAgICAgICAgICAgKSkKLSAgICAgICAgc2VsZi5hc3NlcnRJbignQnVnIGRl
c2NyaXB0aW9uIGlzIHJlcXVpcmVkJywgY2FwdHVyZWQuc3RkZXJyLmdldHZhbHVlKCkpCi0KLSAg
ICBkZWYgdGVzdF9iYXNpY19idWdfY3JlYXRpb24oc2VsZik6Ci0gICAgICAgICIiIlRlc3QgYmFz
aWMgYnVnIGNyZWF0aW9uIHdpdGggdGl0bGUsIGRlc2NyaXB0aW9uIGZpbGUsIGFuZCBjb21wb25l
bnQiIiIKLSAgICAgICAgd2l0aCBPdXRwdXRDYXB0dXJlKCkgYXMgY2FwdHVyZWQsIG1vY2tzLmxv
Y2FsLkdpdChzZWxmLnBhdGgpLCBibW9ja3MuQnVnemlsbGEoCi0gICAgICAgICAgICBzZWxmLkJV
R1pJTExBLnNwbGl0KCc6Ly8nKVstMV0sCi0gICAgICAgICAgICBwcm9qZWN0cz1ibW9ja3MuUFJP
SkVDVFMsIGlzc3Vlcz1ibW9ja3MuSVNTVUVTLAotICAgICAgICAgICAgZW52aXJvbm1lbnQ9RW52
aXJvbm1lbnQoCi0gICAgICAgICAgICAgICAgQlVHU19FWEFNUExFX0NPTV9VU0VSTkFNRT0ndGNv
bnRyaWJ1dG9yQGV4YW1wbGUuY29tJywKLSAgICAgICAgICAgICAgICBCVUdTX0VYQU1QTEVfQ09N
X1BBU1NXT1JEPSdwYXNzd29yZCcsCi0gICAgICAgICAgICApLAotICAgICAgICApLCBwYXRjaCgn
d2Via2l0YnVnc3B5LlRyYWNrZXIuX3RyYWNrZXJzJywgW2J1Z3ppbGxhLlRyYWNrZXIoc2VsZi5C
VUdaSUxMQSldKToKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMCwgcHJvZ3JhbS5tYWlu
KAotICAgICAgICAgICAgICAgIGFyZ3M9KCdjcmVhdGUtYnVnJywgJy0tdGl0bGUnLCAnVGVzdCBi
dWcnLCAnLUYnLCBzZWxmLmRlc2NfZmlsZSwKLSAgICAgICAgICAgICAgICAgICAgICAnLS1jb21w
b25lbnQnLCAnVGV4dCcsICctLXByb2plY3QnLCAnV2ViS2l0JyksCi0gICAgICAgICAgICAgICAg
cGF0aD1zZWxmLnBhdGgsCi0gICAgICAgICAgICApKQotICAgICAgICBzZWxmLmFzc2VydEluKCdD
cmVhdGVkIGJ1ZzonLCBjYXB0dXJlZC5zdGRvdXQuZ2V0dmFsdWUoKSkKLQotICAgIGRlZiB0ZXN0
X2J1Z19jcmVhdGlvbl9wcm9tcHRzX2Zvcl9jb21wb25lbnQoc2VsZik6Ci0gICAgICAgICIiIlRl
c3QgaW50ZXJhY3RpdmUgcHJvbXB0IHdoZW4gY29tcG9uZW50IG5vdCBzcGVjaWZpZWQiIiIKLSAg
ICAgICAgIyBGaXJzdCBpbnB1dCBzZWxlY3RzIHByb2plY3QsIHNlY29uZCBzZWxlY3RzIGNvbXBv
bmVudAotICAgICAgICB3aXRoIE1vY2tUZXJtaW5hbC5pbnB1dCgnMScsICcxJyksIE91dHB1dENh
cHR1cmUoKSBhcyBjYXB0dXJlZCwgbW9ja3MubG9jYWwuR2l0KHNlbGYucGF0aCksIGJtb2Nrcy5C
dWd6aWxsYSgKLSAgICAgICAgICAgIHNlbGYuQlVHWklMTEEuc3BsaXQoJzovLycpWy0xXSwKLSAg
ICAgICAgICAgIHByb2plY3RzPWJtb2Nrcy5QUk9KRUNUUywgaXNzdWVzPWJtb2Nrcy5JU1NVRVMs
Ci0gICAgICAgICAgICBlbnZpcm9ubWVudD1FbnZpcm9ubWVudCgKLSAgICAgICAgICAgICAgICBC
VUdTX0VYQU1QTEVfQ09NX1VTRVJOQU1FPSd0Y29udHJpYnV0b3JAZXhhbXBsZS5jb20nLAotICAg
ICAgICAgICAgICAgIEJVR1NfRVhBTVBMRV9DT01fUEFTU1dPUkQ9J3Bhc3N3b3JkJywKLSAgICAg
ICAgICAgICksCi0gICAgICAgICksIHBhdGNoKCd3ZWJraXRidWdzcHkuVHJhY2tlci5fdHJhY2tl
cnMnLCBbYnVnemlsbGEuVHJhY2tlcihzZWxmLkJVR1pJTExBKV0pOgotICAgICAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbCgwLCBwcm9ncmFtLm1haW4oCi0gICAgICAgICAgICAgICAgYXJncz0oJ2Ny
ZWF0ZS1idWcnLCAnLS10aXRsZScsICdUZXN0IGJ1ZycsICctRicsIHNlbGYuZGVzY19maWxlKSwK
LSAgICAgICAgICAgICAgICBwYXRoPXNlbGYucGF0aCwKLSAgICAgICAgICAgICkpCi0gICAgICAg
IHNlbGYuYXNzZXJ0SW4oJ0NyZWF0ZWQgYnVnOicsIGNhcHR1cmVkLnN0ZG91dC5nZXR2YWx1ZSgp
KQotCi0gICAgZGVmIHRlc3RfcmFkYXJfYXJnX2FjY2VwdGVkKHNlbGYpOgotICAgICAgICAiIiJU
ZXN0IHRoYXQgLS1yYWRhciBpcyBhY2NlcHRlZCBhbmQgdGhlIGJ1ZyBpcyBjcmVhdGVkIHN1Y2Nl
c3NmdWxseS4KLSAgICAgICAgY2NfcmFkYXIgaXMgYSBuby1vcCBpbiB0aGlzIG1vY2sgZW52aXJv
bm1lbnQgKG5vIHJhZGFyX2ltcG9ydGVyIGNvbmZpZ3VyZWQpLiIiIgotICAgICAgICB3aXRoIE91
dHB1dENhcHR1cmUoKSBhcyBjYXB0dXJlZCwgbW9ja3MubG9jYWwuR2l0KHNlbGYucGF0aCksIGJt
b2Nrcy5CdWd6aWxsYSgKLSAgICAgICAgICAgIHNlbGYuQlVHWklMTEEuc3BsaXQoJzovLycpWy0x
XSwKLSAgICAgICAgICAgIHByb2plY3RzPWJtb2Nrcy5QUk9KRUNUUywgaXNzdWVzPWJtb2Nrcy5J
U1NVRVMsCi0gICAgICAgICAgICBlbnZpcm9ubWVudD1FbnZpcm9ubWVudCgKLSAgICAgICAgICAg
ICAgICBCVUdTX0VYQU1QTEVfQ09NX1VTRVJOQU1FPSd0Y29udHJpYnV0b3JAZXhhbXBsZS5jb20n
LAotICAgICAgICAgICAgICAgIEJVR1NfRVhBTVBMRV9DT01fUEFTU1dPUkQ9J3Bhc3N3b3JkJywK
LSAgICAgICAgICAgICksCi0gICAgICAgICksIHBhdGNoKCd3ZWJraXRidWdzcHkuVHJhY2tlci5f
dHJhY2tlcnMnLCBbYnVnemlsbGEuVHJhY2tlcihzZWxmLkJVR1pJTExBKV0pOgotICAgICAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbCgwLCBwcm9ncmFtLm1haW4oCi0gICAgICAgICAgICAgICAgYXJn
cz0oJ2NyZWF0ZS1idWcnLCAnLS10aXRsZScsICdMYXlvdXQgYnVnJywgJy1GJywgc2VsZi5kZXNj
X2ZpbGUsCi0gICAgICAgICAgICAgICAgICAgICAgJy0tY29tcG9uZW50JywgJ1RleHQnLCAnLS1w
cm9qZWN0JywgJ1dlYktpdCcsCi0gICAgICAgICAgICAgICAgICAgICAgJy0tcmFkYXInLCAncmRh
cjovLzEyMzQ1Njc4OScpLAotICAgICAgICAgICAgICAgIHBhdGg9c2VsZi5wYXRoLAotICAgICAg
ICAgICAgKSkKLSAgICAgICAgc2VsZi5hc3NlcnRJbignQ3JlYXRlZCBidWc6JywgY2FwdHVyZWQu
c3Rkb3V0LmdldHZhbHVlKCkpCi0KLSAgICBkZWYgdGVzdF9pbnZhbGlkX3JhZGFyX2FyZ19lcnJv
cnMoc2VsZik6Ci0gICAgICAgICIiIlRlc3QgdGhhdCBhIG1hbGZvcm1lZCAtLXJhZGFyIHZhbHVl
IHByb2R1Y2VzIGFuIGVycm9yIGFuZCBubyBidWcgaXMgY3JlYXRlZC4iIiIKLSAgICAgICAgd2l0
aCBPdXRwdXRDYXB0dXJlKCkgYXMgY2FwdHVyZWQsIG1vY2tzLmxvY2FsLkdpdChzZWxmLnBhdGgp
LCBibW9ja3MuQnVnemlsbGEoCi0gICAgICAgICAgICBzZWxmLkJVR1pJTExBLnNwbGl0KCc6Ly8n
KVstMV0sCi0gICAgICAgICAgICBwcm9qZWN0cz1ibW9ja3MuUFJPSkVDVFMsCi0gICAgICAgICAg
ICBlbnZpcm9ubWVudD1FbnZpcm9ubWVudCgKLSAgICAgICAgICAgICAgICBCVUdTX0VYQU1QTEVf
Q09NX1VTRVJOQU1FPSd0Y29udHJpYnV0b3JAZXhhbXBsZS5jb20nLAotICAgICAgICAgICAgICAg
IEJVR1NfRVhBTVBMRV9DT01fUEFTU1dPUkQ9J3Bhc3N3b3JkJywKLSAgICAgICAgICAgICksCi0g
ICAgICAgICksIHBhdGNoKCd3ZWJraXRidWdzcHkuVHJhY2tlci5fdHJhY2tlcnMnLCBbYnVnemls
bGEuVHJhY2tlcihzZWxmLkJVR1pJTExBKV0pOgotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCgxLCBwcm9ncmFtLm1haW4oCi0gICAgICAgICAgICAgICAgYXJncz0oJ2NyZWF0ZS1idWcnLCAn
LS10aXRsZScsICdMYXlvdXQgYnVnJywgJy1GJywgc2VsZi5kZXNjX2ZpbGUsCi0gICAgICAgICAg
ICAgICAgICAgICAgJy0tcmFkYXInLCAnbm90LWEtcmFkYXInKSwKLSAgICAgICAgICAgICAgICBw
YXRoPXNlbGYucGF0aCwKLSAgICAgICAgICAgICkpCi0gICAgICAgIHNlbGYuYXNzZXJ0SW4oJ0lu
dmFsaWQgLS1yYWRhciB2YWx1ZScsIGNhcHR1cmVkLnN0ZGVyci5nZXR2YWx1ZSgpKQotICAgICAg
ICBzZWxmLmFzc2VydE5vdEluKCdDcmVhdGVkIGJ1ZzonLCBjYXB0dXJlZC5zdGRvdXQuZ2V0dmFs
dWUoKSkKLQotICAgIGRlZiB0ZXN0X3JhZGFyX2ltcG9ydGVyX25vdF9kb3VibGVfY2NlZChzZWxm
KToKLSAgICAgICAgIiIiUmFkYXIgaW1wb3J0ZXIgaW4gLS1jYyBzaG91bGQgYmUgZmlsdGVyZWQg
b3V0OyBjY19yYWRhcigpIGhhbmRsZXMgaXQuIiIiCi0gICAgICAgIGltcG9ydGVyX2VtYWlsID0g
J3dlYmtpdC1idWctaW1wb3J0ZXJAd2Via2l0Lm9yZycKLSAgICAgICAgd2l0aCBPdXRwdXRDYXB0
dXJlKCkgYXMgY2FwdHVyZWQsIG1vY2tzLmxvY2FsLkdpdChzZWxmLnBhdGgpLCBibW9ja3MuQnVn
emlsbGEoCi0gICAgICAgICAgICBzZWxmLkJVR1pJTExBLnNwbGl0KCc6Ly8nKVstMV0sCi0gICAg
ICAgICAgICBwcm9qZWN0cz1ibW9ja3MuUFJPSkVDVFMsIGlzc3Vlcz1ibW9ja3MuSVNTVUVTLAot
ICAgICAgICAgICAgZW52aXJvbm1lbnQ9RW52aXJvbm1lbnQoCi0gICAgICAgICAgICAgICAgQlVH
U19FWEFNUExFX0NPTV9VU0VSTkFNRT0ndGNvbnRyaWJ1dG9yQGV4YW1wbGUuY29tJywKLSAgICAg
ICAgICAgICAgICBCVUdTX0VYQU1QTEVfQ09NX1BBU1NXT1JEPSdwYXNzd29yZCcsCi0gICAgICAg
ICAgICApLAotICAgICAgICApLCBwYXRjaCgnd2Via2l0YnVnc3B5LlRyYWNrZXIuX3RyYWNrZXJz
JywgW2J1Z3ppbGxhLlRyYWNrZXIoCi0gICAgICAgICAgICBzZWxmLkJVR1pJTExBLAotICAgICAg
ICAgICAgcmFkYXJfaW1wb3J0ZXI9eyduYW1lJzogJ1dlYktpdCBCdWcgSW1wb3J0ZXInLCAndXNl
cm5hbWUnOiBpbXBvcnRlcl9lbWFpbCwgJ2VtYWlscyc6IFtpbXBvcnRlcl9lbWFpbF19LAotICAg
ICAgICApXSk6Ci0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDAsIHByb2dyYW0ubWFpbigK
LSAgICAgICAgICAgICAgICBhcmdzPSgnY3JlYXRlLWJ1ZycsICctLXRpdGxlJywgJ1Rlc3QgYnVn
JywgJy1GJywgc2VsZi5kZXNjX2ZpbGUsCi0gICAgICAgICAgICAgICAgICAgICAgJy0tY29tcG9u
ZW50JywgJ1RleHQnLCAnLS1wcm9qZWN0JywgJ1dlYktpdCcsCi0gICAgICAgICAgICAgICAgICAg
ICAgJy0tY2MnLCAnb3RoZXJAZXhhbXBsZS5jb20se30nLmZvcm1hdChpbXBvcnRlcl9lbWFpbCkp
LAotICAgICAgICAgICAgICAgIHBhdGg9c2VsZi5wYXRoLAotICAgICAgICAgICAgKSkKLSAgICAg
ICAgc3Rkb3V0ID0gY2FwdHVyZWQuc3Rkb3V0LmdldHZhbHVlKCkKLSAgICAgICAgc2VsZi5hc3Nl
cnRJbignQ3JlYXRlZCBidWc6Jywgc3Rkb3V0KQotICAgICAgICAjIFRoZSBpbXBvcnRlciBzaG91
bGQgbm90IGFwcGVhciBpbiB0aGUgZXhwbGljaXQgQ0Mgb3V0cHV0IOKAlCBjY19yYWRhcigpIGhh
bmRsZXMgaXQuCi0gICAgICAgIGZvciBsaW5lIGluIHN0ZG91dC5zcGxpdGxpbmVzKCk6Ci0gICAg
ICAgICAgICBpZiBsaW5lLnN0YXJ0c3dpdGgoJ0FkZGVkIENDOicpOgotICAgICAgICAgICAgICAg
IHNlbGYuYXNzZXJ0Tm90SW4oaW1wb3J0ZXJfZW1haWwsIGxpbmUpCi0KLQotY2xhc3MgVGVzdENy
ZWF0ZUJ1Z1JhZGFyQXJnVmFsaWRhdGlvbih0ZXN0aW5nLlBhdGhUZXN0Q2FzZSk6Ci0gICAgYmFz
ZXBhdGggPSAnbW9jay9yZXBvc2l0b3J5JwotCi0gICAgZGVmIF92YWxpZChzZWxmLCB2YWx1ZSk6
Ci0gICAgICAgICIiIkFzc2VydCBwYXJzZV9yYWRhcl9hcmcgc3VjY2VlZHMgYW5kIHJldHVybnMg
YSBzdHJpbmcuIiIiCi0gICAgICAgIHJlc3VsdCA9IENyZWF0ZUJ1Zy5wYXJzZV9yYWRhcl9hcmco
dmFsdWUpCi0gICAgICAgIHNlbGYuYXNzZXJ0SXNJbnN0YW5jZShyZXN1bHQsIHN0cikKLSAgICAg
ICAgcmV0dXJuIHJlc3VsdAotCi0gICAgZGVmIF9pbnZhbGlkKHNlbGYsIHZhbHVlKToKLSAgICAg
ICAgIiIiQXNzZXJ0IHBhcnNlX3JhZGFyX2FyZyByYWlzZXMgVmFsdWVFcnJvci4iIiIKLSAgICAg
ICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yKToKLSAgICAgICAgICAgIENyZWF0
ZUJ1Zy5wYXJzZV9yYWRhcl9hcmcodmFsdWUpCi0KLSAgICAjIC0tLSBWYWxpZCBmb3JtYXRzIC0t
LQotCi0gICAgZGVmIHRlc3RfYmFyZV9pZChzZWxmKToKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChzZWxmLl92YWxpZCgnMTIzNDU2Nzg5JyksICdyZGFyOi8vMTIzNDU2Nzg5JykKLQotICAgIGRl
ZiB0ZXN0X3JkYXJfc2hvcnRfdXJsKHNlbGYpOgotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNl
bGYuX3ZhbGlkKCdyZGFyOi8vMTIzNDU2Nzg5JyksICdyZGFyOi8vMTIzNDU2Nzg5JykKLQotICAg
IGRlZiB0ZXN0X3JkYXJfbG9uZ191cmwoc2VsZik6Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
c2VsZi5fdmFsaWQoJ3JkYXI6Ly9wcm9ibGVtLzEyMzQ1Njc4OScpLCAncmRhcjovLzEyMzQ1Njc4
OScpCi0KLSAgICBkZWYgdGVzdF9yZGFyX3Nob3J0X3VybF93aXRoX2FuZ2xlX2JyYWNrZXRzKHNl
bGYpOgotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuX3ZhbGlkKCc8cmRhcjovLzEyMzQ1
Njc4OT4nKSwgJ3JkYXI6Ly8xMjM0NTY3ODknKQotCi0gICAgZGVmIHRlc3RfcmRhcl9sb25nX3Vy
bF93aXRoX2FuZ2xlX2JyYWNrZXRzKHNlbGYpOgotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNl
bGYuX3ZhbGlkKCc8cmRhcjovL3Byb2JsZW0vMTIzNDU2Nzg5PicpLCAncmRhcjovLzEyMzQ1Njc4
OScpCi0KLSAgICBkZWYgdGVzdF9yYWRhcl9zY2hlbWVfc2hvcnRfdXJsKHNlbGYpOgotICAgICAg
ICAiIiJyYWRhcjovLyBzY2hlbWUgKGFsdGVybmF0ZSkgaXMgYWxzbyB2YWxpZC4iIiIKLSAgICAg
ICAgcmVzdWx0ID0gc2VsZi5fdmFsaWQoJ3JhZGFyOi8vMTIzNDU2Nzg5JykKLSAgICAgICAgc2Vs
Zi5hc3NlcnRJbignMTIzNDU2Nzg5JywgcmVzdWx0KQotCi0gICAgIyAtLS0gSW52YWxpZCBmb3Jt
YXRzIChtdWx0aXBsZSBJRHMpIC0tLQotCi0gICAgZGVmIHRlc3Rfc3BhY2Vfc2VwYXJhdGVkX2lk
cyhzZWxmKToKLSAgICAgICAgc2VsZi5faW52YWxpZCgnMTIzNDU2Nzg5IDk4NzY1NDMyMScpCi0K
LSAgICBkZWYgdGVzdF9jb21tYV9zZXBhcmF0ZWRfaWRzKHNlbGYpOgotICAgICAgICBzZWxmLl9p
bnZhbGlkKCcxMjM0NTY3ODksOTg3NjU0MzIxJykKLQotICAgIGRlZiB0ZXN0X2NvbW1hX2FuZF9z
cGFjZV9zZXBhcmF0ZWRfaWRzKHNlbGYpOgotICAgICAgICBzZWxmLl9pbnZhbGlkKCcxMjM0NTY3
ODksIDk4NzY1NDMyMScpCi0KLSAgICBkZWYgdGVzdF9yZGFyX3Nob3J0X3VybF9hbXBlcnNhbmRf
aWRzKHNlbGYpOgotICAgICAgICBzZWxmLl9pbnZhbGlkKCdyZGFyOi8vMTIzNDU2Nzg5Jjk4NzY1
NDMyMSYxMTExMTExMTEnKQotCi0gICAgZGVmIHRlc3RfcmRhcl9sb25nX3VybF9hbXBlcnNhbmRf
aWRzKHNlbGYpOgotICAgICAgICBzZWxmLl9pbnZhbGlkKCdyZGFyOi8vcHJvYmxlbS8xMjM0NTY3
ODkmOTg3NjU0MzIxJjExMTExMTExMScpCi0KLSAgICAjIC0tLSBJbnZhbGlkIGZvcm1hdHMgKHVu
cmVjb2duaXplZCkgLS0tCi0KLSAgICBkZWYgdGVzdF9nYXJiYWdlX3N0cmluZyhzZWxmKToKLSAg
ICAgICAgc2VsZi5faW52YWxpZCgnbm90LWEtcmFkYXInKQotCi0gICAgZGVmIHRlc3RfaHR0cHNf
dXJsKHNlbGYpOgotICAgICAgICAiIiJodHRwczovL3JkYXIuYXBwbGUuY29tLyBVUkxzIGFyZSBu
b3cgc3VwcG9ydGVkIGJ5IC0tcmFkYXIgdmlhIHBhcnNlX2lkLiIiIgotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKHNlbGYuX3ZhbGlkKCdodHRwczovL3JkYXIuYXBwbGUuY29tLzEyMzQ1Njc4OScp
LCAncmRhcjovLzEyMzQ1Njc4OScpCi0KLSAgICBkZWYgdGVzdF9lbXB0eV9zdHJpbmcoc2VsZik6
Ci0gICAgICAgIHNlbGYuX2ludmFsaWQoJycpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL2xp
YnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS90ZXN0L3RyYWNrZXJfbWV0YWRhdGFfdW5p
dHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21w
eS90ZXN0L3RyYWNrZXJfbWV0YWRhdGFfdW5pdHRlc3QucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwNzE5MTdmM2RhNS4uMDAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1NjcmlwdHMv
bGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L3Rlc3QvdHJhY2tlcl9tZXRhZGF0YV91
bml0dGVzdC5weQorKysgL2Rldi9udWxsCkBAIC0xLDE5NSArMCwwIEBACi0jIENvcHlyaWdodCAo
QykgMjAyNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
IyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSMgYXJlIG1ldDoKLSMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jIDIuICBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSMKLSMgVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTICJB
UyBJUyIgQU5ECi0jIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0jIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSMgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IKLSMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAotIyBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgotIyBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUgotIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAotIyBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi1pbXBvcnQganNvbgotaW1wb3J0IG9zCi1mcm9tIHVu
aXR0ZXN0Lm1vY2sgaW1wb3J0IHBhdGNoCi0KLWZyb20gd2Via2l0YnVnc3B5IGltcG9ydCBUcmFj
a2VyLCBidWd6aWxsYQotZnJvbSB3ZWJraXRidWdzcHkgaW1wb3J0IG1vY2tzIGFzIGJtb2Nrcwot
ZnJvbSB3ZWJraXRjb3JlcHkgaW1wb3J0IE91dHB1dENhcHR1cmUsIHRlc3RpbmcKLWZyb20gd2Vi
a2l0Y29yZXB5Lm1vY2tzIGltcG9ydCBFbnZpcm9ubWVudAotCi1mcm9tIHdlYmtpdHNjbXB5IGlt
cG9ydCBtb2NrcywgcHJvZ3JhbQotCi0KLWNsYXNzIFRlc3RUcmFja2VyTWV0YWRhdGEodGVzdGlu
Zy5QYXRoVGVzdENhc2UpOgotICAgIGJhc2VwYXRoID0gJ21vY2svcmVwb3NpdG9yeScKLSAgICBC
VUdaSUxMQSA9ICdodHRwczovL2J1Z3MuZXhhbXBsZS5jb20nCi0KLSAgICBkZWYgc2V0VXAoc2Vs
Zik6Ci0gICAgICAgIHN1cGVyKFRlc3RUcmFja2VyTWV0YWRhdGEsIHNlbGYpLnNldFVwKCkKLSAg
ICAgICAgb3MubWtkaXIob3MucGF0aC5qb2luKHNlbGYucGF0aCwgJy5naXQnKSkKLQotICAgIGRl
ZiB0ZXN0X25vX3RyYWNrZXIoc2VsZik6Ci0gICAgICAgICIiIlRlc3QgZXJyb3Igd2hlbiBubyBi
dWcgdHJhY2tlciBjb25maWd1cmVkIiIiCi0gICAgICAgIHdpdGggT3V0cHV0Q2FwdHVyZSgpIGFz
IGNhcHR1cmVkLCBtb2Nrcy5sb2NhbC5HaXQoc2VsZi5wYXRoKSwgXAotICAgICAgICAgICAgIHBh
dGNoKCd3ZWJraXRidWdzcHkuVHJhY2tlci5fdHJhY2tlcnMnLCBbXSk6Ci0gICAgICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKDEsIHByb2dyYW0ubWFpbigKLSAgICAgICAgICAgICAgICBhcmdzPSgn
dHJhY2tlci1tZXRhZGF0YScsKSwKLSAgICAgICAgICAgICAgICBwYXRoPXNlbGYucGF0aCwKLSAg
ICAgICAgICAgICkpCi0gICAgICAgIHNlbGYuYXNzZXJ0SW4oJ05vIGJ1ZyB0cmFja2VyIGNvbmZp
Z3VyZWQnLCBjYXB0dXJlZC5zdGRlcnIuZ2V0dmFsdWUoKSkKLQotICAgIGRlZiB0ZXN0X2pzb25f
b3V0cHV0X2FsbF9wcm9wZXJ0aWVzKHNlbGYpOgotICAgICAgICAiIiJUZXN0IEpTT04gb3V0cHV0
IHdpdGggYWxsIGRlZmF1bHQgcHJvcGVydGllcyIiIgotICAgICAgICB3aXRoIE91dHB1dENhcHR1
cmUoKSBhcyBjYXB0dXJlZCwgbW9ja3MubG9jYWwuR2l0KHNlbGYucGF0aCksIGJtb2Nrcy5CdWd6
aWxsYSgKLSAgICAgICAgICAgIHNlbGYuQlVHWklMTEEuc3BsaXQoJzovLycpWy0xXSwKLSAgICAg
ICAgICAgIHByb2plY3RzPWJtb2Nrcy5QUk9KRUNUUywgaXNzdWVzPWJtb2Nrcy5JU1NVRVMsCi0g
ICAgICAgICAgICBlbnZpcm9ubWVudD1FbnZpcm9ubWVudCgKLSAgICAgICAgICAgICAgICBCVUdT
X0VYQU1QTEVfQ09NX1VTRVJOQU1FPSd0Y29udHJpYnV0b3JAZXhhbXBsZS5jb20nLAotICAgICAg
ICAgICAgICAgIEJVR1NfRVhBTVBMRV9DT01fUEFTU1dPUkQ9J3Bhc3N3b3JkJywKLSAgICAgICAg
ICAgICksCi0gICAgICAgICksIHBhdGNoKCd3ZWJraXRidWdzcHkuVHJhY2tlci5fdHJhY2tlcnMn
LCBbYnVnemlsbGEuVHJhY2tlcihzZWxmLkJVR1pJTExBKV0pOgotICAgICAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCgwLCBwcm9ncmFtLm1haW4oCi0gICAgICAgICAgICAgICAgYXJncz0oJ3RyYWNr
ZXItbWV0YWRhdGEnLCksCi0gICAgICAgICAgICAgICAgcGF0aD1zZWxmLnBhdGgsCi0gICAgICAg
ICAgICApKQotICAgICAgICBkYXRhID0ganNvbi5sb2FkcyhjYXB0dXJlZC5zdGRvdXQuZ2V0dmFs
dWUoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRJbigncHJvZHVjdHMnLCBkYXRhKQotICAgICAgICBz
ZWxmLmFzc2VydEluKCdjb21wb25lbnRzJywgZGF0YSkKLSAgICAgICAgc2VsZi5hc3NlcnRJbign
Y29tcG9uZW50X2Rlc2NyaXB0aW9ucycsIGRhdGEpCi0gICAgICAgIHNlbGYuYXNzZXJ0SW4oJ2tl
eXdvcmRzJywgZGF0YSkKLSAgICAgICAgc2VsZi5hc3NlcnRJbigna2V5d29yZF9kZXNjcmlwdGlv
bnMnLCBkYXRhKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNvcnRlZChkYXRhWydwcm9kdWN0
cyddKSwgWydDRk5ldHdvcmsnLCAnV2ViS2l0J10pCi0gICAgICAgIHNlbGYuYXNzZXJ0SW4oJ1dl
YktpdCcsIGRhdGFbJ2NvbXBvbmVudHMnXSkKLSAgICAgICAgc2VsZi5hc3NlcnRJbignU2Nyb2xs
aW5nJywgZGF0YVsnY29tcG9uZW50cyddWydXZWJLaXQnXSkKLSAgICAgICAgc2VsZi5hc3NlcnRJ
bignSW5SYWRhcicsIGRhdGFbJ2tleXdvcmRzJ10pCi0KLSAgICBkZWYgdGVzdF9wcm9qZWN0X2Zp
bHRlcihzZWxmKToKLSAgICAgICAgIiIiVGVzdCAtLXByb2plY3QgZmlsdGVycyBjb21wb25lbnRz
IHRvIGEgc2luZ2xlIHByb2plY3QiIiIKLSAgICAgICAgd2l0aCBPdXRwdXRDYXB0dXJlKCkgYXMg
Y2FwdHVyZWQsIG1vY2tzLmxvY2FsLkdpdChzZWxmLnBhdGgpLCBibW9ja3MuQnVnemlsbGEoCi0g
ICAgICAgICAgICBzZWxmLkJVR1pJTExBLnNwbGl0KCc6Ly8nKVstMV0sCi0gICAgICAgICAgICBw
cm9qZWN0cz1ibW9ja3MuUFJPSkVDVFMsIGlzc3Vlcz1ibW9ja3MuSVNTVUVTLAotICAgICAgICAg
ICAgZW52aXJvbm1lbnQ9RW52aXJvbm1lbnQoCi0gICAgICAgICAgICAgICAgQlVHU19FWEFNUExF
X0NPTV9VU0VSTkFNRT0ndGNvbnRyaWJ1dG9yQGV4YW1wbGUuY29tJywKLSAgICAgICAgICAgICAg
ICBCVUdTX0VYQU1QTEVfQ09NX1BBU1NXT1JEPSdwYXNzd29yZCcsCi0gICAgICAgICAgICApLAot
ICAgICAgICApLCBwYXRjaCgnd2Via2l0YnVnc3B5LlRyYWNrZXIuX3RyYWNrZXJzJywgW2J1Z3pp
bGxhLlRyYWNrZXIoc2VsZi5CVUdaSUxMQSldKToKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoMCwgcHJvZ3JhbS5tYWluKAotICAgICAgICAgICAgICAgIGFyZ3M9KCd0cmFja2VyLW1ldGFk
YXRhJywgJy0tcHJvamVjdCcsICdXZWJLaXQnKSwKLSAgICAgICAgICAgICAgICBwYXRoPXNlbGYu
cGF0aCwKLSAgICAgICAgICAgICkpCi0gICAgICAgIGRhdGEgPSBqc29uLmxvYWRzKGNhcHR1cmVk
LnN0ZG91dC5nZXR2YWx1ZSgpKQotICAgICAgICAjIFByb2R1Y3RzIGxpc3QgaXMgdW5maWx0ZXJl
ZAotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNvcnRlZChkYXRhWydwcm9kdWN0cyddKSwgWydD
Rk5ldHdvcmsnLCAnV2ViS2l0J10pCi0gICAgICAgICMgQ29tcG9uZW50cyBmaWx0ZXJlZCB0byBX
ZWJLaXQgb25seQotICAgICAgICBzZWxmLmFzc2VydEluKCdXZWJLaXQnLCBkYXRhWydjb21wb25l
bnRzJ10pCi0gICAgICAgIHNlbGYuYXNzZXJ0Tm90SW4oJ0NGTmV0d29yaycsIGRhdGFbJ2NvbXBv
bmVudHMnXSkKLSAgICAgICAgc2VsZi5hc3NlcnRJbignV2ViS2l0JywgZGF0YVsnY29tcG9uZW50
X2Rlc2NyaXB0aW9ucyddKQotICAgICAgICBzZWxmLmFzc2VydE5vdEluKCdDRk5ldHdvcmsnLCBk
YXRhWydjb21wb25lbnRfZGVzY3JpcHRpb25zJ10pCi0KLSAgICBkZWYgdGVzdF9zcGVjaWZpY19w
cm9wZXJ0aWVzKHNlbGYpOgotICAgICAgICAiIiJUZXN0IHNlbGVjdGluZyBzcGVjaWZpYyBwcm9w
ZXJ0aWVzIHdpdGggLXAiIiIKLSAgICAgICAgd2l0aCBPdXRwdXRDYXB0dXJlKCkgYXMgY2FwdHVy
ZWQsIG1vY2tzLmxvY2FsLkdpdChzZWxmLnBhdGgpLCBibW9ja3MuQnVnemlsbGEoCi0gICAgICAg
ICAgICBzZWxmLkJVR1pJTExBLnNwbGl0KCc6Ly8nKVstMV0sCi0gICAgICAgICAgICBwcm9qZWN0
cz1ibW9ja3MuUFJPSkVDVFMsIGlzc3Vlcz1ibW9ja3MuSVNTVUVTLAotICAgICAgICAgICAgZW52
aXJvbm1lbnQ9RW52aXJvbm1lbnQoCi0gICAgICAgICAgICAgICAgQlVHU19FWEFNUExFX0NPTV9V
U0VSTkFNRT0ndGNvbnRyaWJ1dG9yQGV4YW1wbGUuY29tJywKLSAgICAgICAgICAgICAgICBCVUdT
X0VYQU1QTEVfQ09NX1BBU1NXT1JEPSdwYXNzd29yZCcsCi0gICAgICAgICAgICApLAotICAgICAg
ICApLCBwYXRjaCgnd2Via2l0YnVnc3B5LlRyYWNrZXIuX3RyYWNrZXJzJywgW2J1Z3ppbGxhLlRy
YWNrZXIoc2VsZi5CVUdaSUxMQSldKToKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMCwg
cHJvZ3JhbS5tYWluKAotICAgICAgICAgICAgICAgIGFyZ3M9KCd0cmFja2VyLW1ldGFkYXRhJywg
Jy1wJywgJ3Byb2R1Y3RzJywgJy1wJywgJ2tleXdvcmRzJyksCi0gICAgICAgICAgICAgICAgcGF0
aD1zZWxmLnBhdGgsCi0gICAgICAgICAgICApKQotICAgICAgICBkYXRhID0ganNvbi5sb2Fkcyhj
YXB0dXJlZC5zdGRvdXQuZ2V0dmFsdWUoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRJbigncHJvZHVj
dHMnLCBkYXRhKQotICAgICAgICBzZWxmLmFzc2VydEluKCdrZXl3b3JkcycsIGRhdGEpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0Tm90SW4oJ2NvbXBvbmVudHMnLCBkYXRhKQotICAgICAgICBzZWxmLmFz
c2VydE5vdEluKCdjb21wb25lbnRfZGVzY3JpcHRpb25zJywgZGF0YSkKLSAgICAgICAgc2VsZi5h
c3NlcnROb3RJbigna2V5d29yZF9kZXNjcmlwdGlvbnMnLCBkYXRhKQotCi0gICAgZGVmIHRlc3Rf
dGV4dF9vdXRwdXQoc2VsZik6Ci0gICAgICAgICIiIlRlc3QgLS1mb3JtYXQgdGV4dCBvdXRwdXQi
IiIKLSAgICAgICAgd2l0aCBPdXRwdXRDYXB0dXJlKCkgYXMgY2FwdHVyZWQsIG1vY2tzLmxvY2Fs
LkdpdChzZWxmLnBhdGgpLCBibW9ja3MuQnVnemlsbGEoCi0gICAgICAgICAgICBzZWxmLkJVR1pJ
TExBLnNwbGl0KCc6Ly8nKVstMV0sCi0gICAgICAgICAgICBwcm9qZWN0cz1ibW9ja3MuUFJPSkVD
VFMsIGlzc3Vlcz1ibW9ja3MuSVNTVUVTLAotICAgICAgICAgICAgZW52aXJvbm1lbnQ9RW52aXJv
bm1lbnQoCi0gICAgICAgICAgICAgICAgQlVHU19FWEFNUExFX0NPTV9VU0VSTkFNRT0ndGNvbnRy
aWJ1dG9yQGV4YW1wbGUuY29tJywKLSAgICAgICAgICAgICAgICBCVUdTX0VYQU1QTEVfQ09NX1BB
U1NXT1JEPSdwYXNzd29yZCcsCi0gICAgICAgICAgICApLAotICAgICAgICApLCBwYXRjaCgnd2Vi
a2l0YnVnc3B5LlRyYWNrZXIuX3RyYWNrZXJzJywgW2J1Z3ppbGxhLlRyYWNrZXIoc2VsZi5CVUda
SUxMQSldKToKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMCwgcHJvZ3JhbS5tYWluKAot
ICAgICAgICAgICAgICAgIGFyZ3M9KCd0cmFja2VyLW1ldGFkYXRhJywgJy0tZm9ybWF0JywgJ3Rl
eHQnKSwKLSAgICAgICAgICAgICAgICBwYXRoPXNlbGYucGF0aCwKLSAgICAgICAgICAgICkpCi0g
ICAgICAgIG91dHB1dCA9IGNhcHR1cmVkLnN0ZG91dC5nZXR2YWx1ZSgpCi0gICAgICAgIHNlbGYu
YXNzZXJ0SW4oJ3Byb2R1Y3RzOicsIG91dHB1dCkKLSAgICAgICAgc2VsZi5hc3NlcnRJbignV2Vi
S2l0Jywgb3V0cHV0KQotICAgICAgICBzZWxmLmFzc2VydEluKCdrZXl3b3JkczonLCBvdXRwdXQp
Ci0KLSAgICBkZWYgdGVzdF9pbnZhbGlkX3Byb3BlcnR5KHNlbGYpOgotICAgICAgICAiIiJUZXN0
IGVycm9yIGZvciB1bmtub3duIHByb3BlcnR5IiIiCi0gICAgICAgIHdpdGggT3V0cHV0Q2FwdHVy
ZSgpIGFzIGNhcHR1cmVkLCBtb2Nrcy5sb2NhbC5HaXQoc2VsZi5wYXRoKSwgYm1vY2tzLkJ1Z3pp
bGxhKAotICAgICAgICAgICAgc2VsZi5CVUdaSUxMQS5zcGxpdCgnOi8vJylbLTFdLAotICAgICAg
ICAgICAgcHJvamVjdHM9Ym1vY2tzLlBST0pFQ1RTLCBpc3N1ZXM9Ym1vY2tzLklTU1VFUywKLSAg
ICAgICAgICAgIGVudmlyb25tZW50PUVudmlyb25tZW50KAotICAgICAgICAgICAgICAgIEJVR1Nf
RVhBTVBMRV9DT01fVVNFUk5BTUU9J3Rjb250cmlidXRvckBleGFtcGxlLmNvbScsCi0gICAgICAg
ICAgICAgICAgQlVHU19FWEFNUExFX0NPTV9QQVNTV09SRD0ncGFzc3dvcmQnLAotICAgICAgICAg
ICAgKSwKLSAgICAgICAgKSwgcGF0Y2goJ3dlYmtpdGJ1Z3NweS5UcmFja2VyLl90cmFja2Vycycs
IFtidWd6aWxsYS5UcmFja2VyKHNlbGYuQlVHWklMTEEpXSk6Ci0gICAgICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKDEsIHByb2dyYW0ubWFpbigKLSAgICAgICAgICAgICAgICBhcmdzPSgndHJhY2tl
ci1tZXRhZGF0YScsICctcCcsICdub25leGlzdGVudCcpLAotICAgICAgICAgICAgICAgIHBhdGg9
c2VsZi5wYXRoLAotICAgICAgICAgICAgKSkKLSAgICAgICAgc2VsZi5hc3NlcnRJbignVW5rbm93
biBwcm9wZXJ0eScsIGNhcHR1cmVkLnN0ZGVyci5nZXR2YWx1ZSgpKQotCi0gICAgZGVmIHRlc3Rf
Y29tcG9uZW50X2Rlc2NyaXB0aW9ucyhzZWxmKToKLSAgICAgICAgIiIiVGVzdCB0aGF0IGNvbXBv
bmVudCBkZXNjcmlwdGlvbnMgYXJlIGluY2x1ZGVkIiIiCi0gICAgICAgIHdpdGggT3V0cHV0Q2Fw
dHVyZSgpIGFzIGNhcHR1cmVkLCBtb2Nrcy5sb2NhbC5HaXQoc2VsZi5wYXRoKSwgYm1vY2tzLkJ1
Z3ppbGxhKAotICAgICAgICAgICAgc2VsZi5CVUdaSUxMQS5zcGxpdCgnOi8vJylbLTFdLAotICAg
ICAgICAgICAgcHJvamVjdHM9Ym1vY2tzLlBST0pFQ1RTLCBpc3N1ZXM9Ym1vY2tzLklTU1VFUywK
LSAgICAgICAgICAgIGVudmlyb25tZW50PUVudmlyb25tZW50KAotICAgICAgICAgICAgICAgIEJV
R1NfRVhBTVBMRV9DT01fVVNFUk5BTUU9J3Rjb250cmlidXRvckBleGFtcGxlLmNvbScsCi0gICAg
ICAgICAgICAgICAgQlVHU19FWEFNUExFX0NPTV9QQVNTV09SRD0ncGFzc3dvcmQnLAotICAgICAg
ICAgICAgKSwKLSAgICAgICAgKSwgcGF0Y2goJ3dlYmtpdGJ1Z3NweS5UcmFja2VyLl90cmFja2Vy
cycsIFtidWd6aWxsYS5UcmFja2VyKHNlbGYuQlVHWklMTEEpXSk6Ci0gICAgICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKDAsIHByb2dyYW0ubWFpbigKLSAgICAgICAgICAgICAgICBhcmdzPSgndHJh
Y2tlci1tZXRhZGF0YScsICctcCcsICdjb21wb25lbnRfZGVzY3JpcHRpb25zJywgJy0tcHJvamVj
dCcsICdXZWJLaXQnKSwKLSAgICAgICAgICAgICAgICBwYXRoPXNlbGYucGF0aCwKLSAgICAgICAg
ICAgICkpCi0gICAgICAgIGRhdGEgPSBqc29uLmxvYWRzKGNhcHR1cmVkLnN0ZG91dC5nZXR2YWx1
ZSgpKQotICAgICAgICBkZXNjcyA9IGRhdGFbJ2NvbXBvbmVudF9kZXNjcmlwdGlvbnMnXVsnV2Vi
S2l0J10KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkZXNjc1snU2Nyb2xsaW5nJ10sICdCdWdz
IHJlbGF0ZWQgdG8gbWFpbiB0aHJlYWQgYW5kIG9mZi1tYWluIHRocmVhZCBzY3JvbGxpbmcnKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGRlc2NzWydUZXh0J10sICdGb3IgYnVncyBpbiB0ZXh0
IGxheW91dCBhbmQgcmVuZGVyaW5nLCBpbmNsdWRpbmcgaW50ZXJuYXRpb25hbCB0ZXh0IHN1cHBv
cnQuJykKLQotICAgIGRlZiB0ZXN0X2tleXdvcmRfZGVzY3JpcHRpb25zKHNlbGYpOgotICAgICAg
ICAiIiJUZXN0IHRoYXQga2V5d29yZCBkZXNjcmlwdGlvbnMgYXJlIGluY2x1ZGVkIiIiCi0gICAg
ICAgIHdpdGggT3V0cHV0Q2FwdHVyZSgpIGFzIGNhcHR1cmVkLCBtb2Nrcy5sb2NhbC5HaXQoc2Vs
Zi5wYXRoKSwgYm1vY2tzLkJ1Z3ppbGxhKAotICAgICAgICAgICAgc2VsZi5CVUdaSUxMQS5zcGxp
dCgnOi8vJylbLTFdLAotICAgICAgICAgICAgcHJvamVjdHM9Ym1vY2tzLlBST0pFQ1RTLCBpc3N1
ZXM9Ym1vY2tzLklTU1VFUywKLSAgICAgICAgICAgIGVudmlyb25tZW50PUVudmlyb25tZW50KAot
ICAgICAgICAgICAgICAgIEJVR1NfRVhBTVBMRV9DT01fVVNFUk5BTUU9J3Rjb250cmlidXRvckBl
eGFtcGxlLmNvbScsCi0gICAgICAgICAgICAgICAgQlVHU19FWEFNUExFX0NPTV9QQVNTV09SRD0n
cGFzc3dvcmQnLAotICAgICAgICAgICAgKSwKLSAgICAgICAgKSwgcGF0Y2goJ3dlYmtpdGJ1Z3Nw
eS5UcmFja2VyLl90cmFja2VycycsIFtidWd6aWxsYS5UcmFja2VyKHNlbGYuQlVHWklMTEEpXSk6
Ci0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDAsIHByb2dyYW0ubWFpbigKLSAgICAgICAg
ICAgICAgICBhcmdzPSgndHJhY2tlci1tZXRhZGF0YScsICctcCcsICdrZXl3b3JkX2Rlc2NyaXB0
aW9ucycpLAotICAgICAgICAgICAgICAgIHBhdGg9c2VsZi5wYXRoLAotICAgICAgICAgICAgKSkK
LSAgICAgICAgZGF0YSA9IGpzb24ubG9hZHMoY2FwdHVyZWQuc3Rkb3V0LmdldHZhbHVlKCkpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0SW4oJ0luUmFkYXInLCBkYXRhWydrZXl3b3JkX2Rlc2NyaXB0aW9u
cyddKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgZGF0YVsna2V5d29y
ZF9kZXNjcmlwdGlvbnMnXVsnSW5SYWRhciddLAotICAgICAgICAgICAgJ1RoaXMgYnVnIGFsc28g
aGFzIGEgY29weSBpbiBBcHBsZSBSYWRhci4nLAotICAgICAgICApCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>