<?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>49299</bug_id>
          
          <creation_ts>2010-11-09 20:16:26 -0800</creation_ts>
          <short_desc>test-webkitpy: add support for directories, integration tests, general cleanup</short_desc>
          <delta_ts>2011-05-31 18:38:25 -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>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dirk Pranke">dpranke</reporter>
          <assigned_to name="Dirk Pranke">dpranke</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>307140</commentid>
    <comment_count>0</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-11-09 20:16:26 -0800</bug_when>
    <thetext>test-webkitpy: add support for directories, integration tests, general cleanup</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>307141</commentid>
    <comment_count>1</comment_count>
      <attachid>73455</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-11-09 20:17:15 -0800</bug_when>
    <thetext>Created attachment 73455
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>307694</commentid>
    <comment_count>2</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-11-10 19:29:11 -0800</bug_when>
    <thetext>*** Bug 49298 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>396858</commentid>
    <comment_count>3</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-05-02 18:13:07 -0700</bug_when>
    <thetext>Bug 59985 adds a mechanism for integration tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>413063</commentid>
    <comment_count>4</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-05-31 18:38:25 -0700</bug_when>
    <thetext>closing as WONTFIX; I have no plans to land this patch as-is, or anything particularly much like it.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>73455</attachid>
            <date>2010-11-09 20:17:15 -0800</date>
            <delta_ts>2010-11-09 20:17:15 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-49299-20101109201713.patch</filename>
            <type>text/plain</type>
            <size>30361</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCA1ODllZGM5YTgyMzliOWRhZTBiZTIzNDhhY2IzY2VmM2Y4NWE1ZWZjLi43ZGUwYThh
OTBhMTIyYmZmN2I4MDQ3ZDgxNjk1M2NhYjRhMmRiYzU2IDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAK
KzIwMTAtMTEtMDkgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgdGVzdC13ZWJraXRweTog
YWRkIHN1cHBvcnQgZm9yIGRpcmVjdG9yaWVzLCBpbnRlZ3JhdGlvbiB0ZXN0cywgZ2VuZXJhbCBj
bGVhbnVwCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00
OTI5OQorCisgICAgICAgICogUXVldWVTdGF0dXNTZXJ2ZXIvX19pbml0X18ucHk6CisgICAgICAg
ICogU2NyaXB0cy90ZXN0LXdlYmtpdHB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29t
bW9uL2NoZWNrb3V0L3NjbV9pbnR0ZXN0LnB5OiBSZW5hbWVkIGZyb20gV2ViS2l0VG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9jb21tb24vY2hlY2tvdXQvc2NtX3VuaXR0ZXN0LnB5LgorICAgICAgICAq
IFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL21ldGVyZWRfc3Ry
ZWFtX3VuaXR0ZXN0LnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L2xheW91dF9wYWNrYWdlL3ByaW50aW5nX3VuaXR0ZXN0LnB5OgorICAgICAgICAqIFNjcmlwdHMv
d2Via2l0cHkvdGVzdC9tYWluLnB5OiBSZW1vdmVkLgorCiAyMDEwLTExLTA4ICBEaXJrIFByYW5r
ZSA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlk
ZWwuCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9RdWV1ZVN0YXR1c1NlcnZlci9fX2luaXRfXy5w
eSBiL1dlYktpdFRvb2xzL1F1ZXVlU3RhdHVzU2VydmVyL19faW5pdF9fLnB5CmluZGV4IDIzNDZj
MjM3OGRjYmM4NDgwZGU4OTViYzM2NjI0NGJkNjZiZTYzOTcuLjdlOGYxYzJlYWE3MGU1MTYyYzlk
NmQ3Y2E2OTlkZTRmMDkxNTllMjUgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1F1ZXVlU3RhdHVz
U2VydmVyL19faW5pdF9fLnB5CisrKyBiL1dlYktpdFRvb2xzL1F1ZXVlU3RhdHVzU2VydmVyL19f
aW5pdF9fLnB5CkBAIC0xOCwxMiArMTgsNSBAQCBkZWYgZml4X3N5c19wYXRoKCk6CiAgICAgaW1w
b3J0IGRldl9hcHBzZXJ2ZXIKICAgICBkZXZfYXBwc2VydmVyLmZpeF9zeXNfcGF0aCgpCiAKLSAg
ICAjIHRlc3Qtd2Via2l0cHkgYWRkcyAkV0VCS0lUL1dlYktpdFRvb2xzIHRvIHRoZSBzeXMucGF0
aCBhbmQgaW1wb3J0cwotICAgICMgUXVldWVTdGF0dXNTZXJ2ZXIgdG8gcnVuIGFsbCB0aGUgdGVz
dHMuICBIb3dldmVyLCB3aGVuIEFwcEVuZ2luZSBydW5zCi0gICAgIyBvdXIgY29kZSBRdWV1ZVN0
YXR1c1NlcnZlciBpcyB0aGUgcm9vdCAoYW5kIHRodXMgaW4gdGhlIHBhdGgpLgotICAgICMgRW11
bGF0ZSB0aGF0IGhlcmUgZm9yIHRlc3Qtd2Via2l0cHkgc28gdGhhdCB3ZSBjYW4gaW1wb3J0ICJt
b2RlbC4iCi0gICAgIyBub3QgIlF1ZXVlU3RhdHVzU2VydmVyLm1vZGVsLiIsIGV0Yy4KLSAgICBz
eXMucGF0aC5hcHBlbmQob3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKSkKLQogCiBmaXhfc3lzX3Bh
dGgoKQpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy90ZXN0LXdlYmtpdHB5IGIvV2Vi
S2l0VG9vbHMvU2NyaXB0cy90ZXN0LXdlYmtpdHB5CmluZGV4IGZjZmY0YjRiMGVlZmU5MTczMjE3
ZTk3NzAzOGFjZmVmMzIwOTkwMDMuLmQ2ZDgyZmQzZTQwODIxOGEyZjQ0MzMzZDAyYjJhMDg1OGRh
NzNlZjQgMTAwNzU1Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvdGVzdC13ZWJraXRweQorKysg
Yi9XZWJLaXRUb29scy9TY3JpcHRzL3Rlc3Qtd2Via2l0cHkKQEAgLTI5LDIzOCArMjksMjYyIEBA
CiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCiAKIGltcG9ydCBsb2dnaW5nCitpbXBvcnQgb3B0cGFyc2UKIGltcG9y
dCBvcwogaW1wb3J0IHN5cwotCi0jIERvIG5vdCBpbXBvcnQgYW55dGhpbmcgZnJvbSB3ZWJraXRw
eSBwcmlvciB0byBjbGVhbmluZyB3ZWJraXRweSBvZgotIyBvcnBoYW5lZCAqLnB5YyBmaWxlcy4g
IFRoaXMgZW5zdXJlcyB0aGF0IG5vIG9ycGhhbmVkICoucHljIGZpbGVzIGFyZQotIyBhY2NpZGVu
dGFsbHkgaW1wb3J0ZWQgZHVyaW5nIHRoZSBjb3Vyc2Ugb2YgdGhpcyBzY3JpcHQuCi0jCi0jIEFs
c28sIGRvIG5vdCBpbXBvcnQgb3IgZXhlY3V0ZSBhbnkgUHl0aG9uIGNvZGUgaW5jb21wYXRpYmxl
IHdpdGgKLSMgUHl0aG9uIDIuNCB1bnRpbCBhZnRlciBleGVjdXRpb24gb2YgdGhlIGluaXQoKSBt
ZXRob2QgYmVsb3cuCi0KK2ltcG9ydCB1bml0dGVzdAogCiBfbG9nID0gbG9nZ2luZy5nZXRMb2dn
ZXIoInRlc3Qtd2Via2l0cHkiKQogCitfcHl0aG9uX3ZlcnNpb24gPSBOb25lCiAKLSMgVmVyYm9z
ZSBsb2dnaW5nIGlzIHVzZWZ1bCBmb3IgZGVidWdnaW5nIHRlc3Qtd2Via2l0cHkgY29kZSB0aGF0
IHJ1bnMKLSMgYmVmb3JlIHRoZSBhY3R1YWwgdW5pdCB0ZXN0cyAtLSB0aGluZ3MgbGlrZSBhdXRv
aW5zdGFsbCBkb3dubG9hZGluZyBhbmQKLSMgdW5pdC10ZXN0IGF1dG8tZGV0ZWN0aW9uIGxvZ2lj
LiAgVGhpcyBpcyBkaWZmZXJlbnQgZnJvbSB2ZXJib3NlIGxvZ2dpbmcKLSMgb2YgdGhlIHVuaXQg
dGVzdHMgdGhlbXNlbHZlcyAoaS5lLiB0aGUgdW5pdHRlc3QgbW9kdWxlJ3MgLS12ZXJib3NlIGZs
YWcpLgotZGVmIGNvbmZpZ3VyZV9sb2dnaW5nKGlzX3ZlcmJvc2VfbG9nZ2luZyk6Ci0gICAgIiIi
Q29uZmlndXJlIHRoZSByb290IGxvZ2dlci4KLQotICAgIENvbmZpZ3VyZSB0aGUgcm9vdCBsb2dn
ZXIgbm90IHRvIGxvZyBhbnkgbWVzc2FnZXMgZnJvbSB3ZWJraXRweSAtLQotICAgIGV4Y2VwdCBm
b3IgbWVzc2FnZXMgZnJvbSB0aGUgYXV0b2luc3RhbGwgbW9kdWxlLiAgQWxzbyBzZXQgdGhlCi0g
ICAgbG9nZ2luZyBsZXZlbCBhcyBkZXNjcmliZWQgYmVsb3cuCi0KLSAgICBBcmdzOgotICAgICAg
aXNfdmVyYm9zZV9sb2dnaW5nOiBBIGJvb2xlYW4gdmFsdWUgb2Ygd2hldGhlciBsb2dnaW5nIHNo
b3VsZCBiZQotICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJib3NlLiAgSWYgdGhpcyBwYXJh
bWV0ZXIgaXMgdHJ1ZSwgdGhlIGxvZ2dpbmcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgbGV2
ZWwgZm9yIHRoZSBoYW5kbGVyIG9uIHRoZSByb290IGxvZ2dlciBpcyBzZXQgdG8KLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgbG9nZ2luZy5ERUJVRy4gIE90aGVyd2lzZSwgaXQgaXMgc2V0IHRv
IGxvZ2dpbmcuSU5GTy4KLQotICAgICIiIgotICAgICMgRG9uJ3QgdXNlIHRoZSBQeXRob24gdGVy
bmFyeSBvcGVyYXRvciBoZXJlIHNvIHRoYXQgdGhpcyBtZXRob2Qgd2lsbAotICAgICMgd29yayB3
aXRoIFB5dGhvbiAyLjQuCi0gICAgaWYgaXNfdmVyYm9zZV9sb2dnaW5nOgotICAgICAgICBsb2dn
aW5nX2xldmVsID0gbG9nZ2luZy5ERUJVRwotICAgIGVsc2U6Ci0gICAgICAgIGxvZ2dpbmdfbGV2
ZWwgPSBsb2dnaW5nLklORk8KLQotICAgIGhhbmRsZXIgPSBsb2dnaW5nLlN0cmVhbUhhbmRsZXIo
c3lzLnN0ZGVycikKLSAgICAjIFdlIGNvbnN0cmFpbiB0aGUgbGV2ZWwgb24gdGhlIGhhbmRsZXIg
cmF0aGVyIHRoYW4gb24gdGhlIHJvb3QKLSAgICAjIGxvZ2dlciBpdHNlbGYuICBUaGlzIGlzIHBy
b2JhYmx5IGJldHRlciBiZWNhdXNlIHRoZSBoYW5kbGVyIGlzCi0gICAgIyBjb25maWd1cmVkIGFu
ZCBrbm93biBvbmx5IHRvIHRoaXMgbW9kdWxlLCB3aGVyZWFzIHRoZSByb290IGxvZ2dlcgotICAg
ICMgaXMgYW4gb2JqZWN0IHNoYXJlZCAoYW5kIHBvdGVudGlhbGx5IG1vZGlmaWVkKSBieSBtYW55
IG1vZHVsZXMuCi0gICAgIyBNb2RpZnlpbmcgdGhlIGhhbmRsZXIsIHRoZW4sIGlzIGxlc3MgaW50
cnVzaXZlIGFuZCBsZXNzIGxpa2VseSB0bwotICAgICMgaW50ZXJmZXJlIHdpdGggbW9kaWZpY2F0
aW9ucyBtYWRlIGJ5IG90aGVyIG1vZHVsZXMgKGUuZy4gaW4gdW5pdAotICAgICMgdGVzdHMpLgot
ICAgIGhhbmRsZXIuc2V0TGV2ZWwobG9nZ2luZ19sZXZlbCkKLSAgICBmb3JtYXR0ZXIgPSBsb2dn
aW5nLkZvcm1hdHRlcigiJShuYW1lKXM6ICUobGV2ZWxuYW1lKS04cyAlKG1lc3NhZ2UpcyIpCi0g
ICAgaGFuZGxlci5zZXRGb3JtYXR0ZXIoZm9ybWF0dGVyKQotCi0gICAgbG9nZ2VyID0gbG9nZ2lu
Zy5nZXRMb2dnZXIoKQotICAgIGxvZ2dlci5hZGRIYW5kbGVyKGhhbmRsZXIpCi0gICAgbG9nZ2Vy
LnNldExldmVsKGxvZ2dpbmcuTk9UU0VUKQotCi0gICAgIyBGaWx0ZXIgb3V0IG1vc3Qgd2Via2l0
cHkgbWVzc2FnZXMuCi0gICAgIwotICAgICMgTWVzc2FnZXMgY2FuIGJlIHNlbGVjdGl2ZWx5IHJl
LWVuYWJsZWQgZm9yIHRoaXMgc2NyaXB0IGJ5IHVwZGF0aW5nCi0gICAgIyB0aGlzIG1ldGhvZCBh
Y2NvcmRpbmdseS4KLSAgICBkZWYgZmlsdGVyKHJlY29yZCk6Ci0gICAgICAgICIiIkZpbHRlciBv
dXQgYXV0b2luc3RhbGwgYW5kIG5vbi10aGlyZC1wYXJ0eSB3ZWJraXRweSBtZXNzYWdlcy4iIiIK
LSAgICAgICAgIyBGSVhNRTogRmlndXJlIG91dCBhIHdheSBub3QgdG8gdXNlIHN0cmluZ3MgaGVy
ZSwgZm9yIGV4YW1wbGUgYnkKLSAgICAgICAgIyAgICAgICAgdXNpbmcgc3ludGF4IGxpa2Ugd2Vi
a2l0cHkudGVzdC5fX25hbWVfXy4gIFdlIHdhbnQgdG8gYmUKLSAgICAgICAgIyAgICAgICAgc3Vy
ZSBub3QgdG8gaW1wb3J0IGFueSBub24tUHl0aG9uIDIuNCBjb2RlLCB0aG91Z2gsIHVudGlsCi0g
ICAgICAgICMgICAgICAgIGFmdGVyIHRoZSB2ZXJzaW9uLWNoZWNraW5nIGNvZGUgaGFzIGV4ZWN1
dGVkLgotICAgICAgICBpZiAocmVjb3JkLm5hbWUuc3RhcnRzd2l0aCgid2Via2l0cHkuY29tbW9u
LnN5c3RlbS5hdXRvaW5zdGFsbCIpIG9yCi0gICAgICAgICAgICByZWNvcmQubmFtZS5zdGFydHN3
aXRoKCJ3ZWJraXRweS50ZXN0IikpOgotICAgICAgICAgICAgcmV0dXJuIFRydWUKLSAgICAgICAg
aWYgcmVjb3JkLm5hbWUuc3RhcnRzd2l0aCgid2Via2l0cHkiKToKK2RlZiBjaGVja192ZXJzaW9u
KHN0cmVhbSk6CisgICAgZ2xvYmFsIF9weXRob25fdmVyc2lvbgorICAgIGlmIG5vdCBfcHl0aG9u
X3ZlcnNpb246CisgICAgICAgIF9weXRob25fdmVyc2lvbiA9IHN5cy52ZXJzaW9uCisgICAgaWYg
X3B5dGhvbl92ZXJzaW9uIDwgJzIuNSc6CisgICAgICAgIHByaW50ID4+c3RyZWFtLCAnUHl0aG9u
IDIuNSBvciBuZXdlciBpcyByZXF1aXJlZC4gU2VlOiBodHRwOi8vdHJhYy53ZWJraXQub3JnL3dp
a2kvUHl0aG9uR3VpZGVsaW5lcycKKyAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgcmV0dXJuIFRy
dWUKKworCitjbGFzcyBUZXN0ZXIob2JqZWN0KToKKyAgICAiIiJSdW5zIHdlYmtpdCBweXRob24g
dGVzdHMuIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgc3RyZWFtKToKKyAgICAgICAgc2Vs
Zi5vcHRpb25zID0gTm9uZQorICAgICAgICBzZWxmLmFyZ3MgPSBOb25lCisgICAgICAgIHNlbGYu
c3RhcnR1cF9sb2dnaW5nX2hhbmRsZXIgPSBOb25lCisgICAgICAgIHNlbGYubG9nZ2VyID0gbG9n
Z2luZy5nZXRMb2dnZXIoKQorICAgICAgICBzZWxmLl93ZWJraXRfYmFzZV9kaXIgPSBOb25lCisg
ICAgICAgIHNlbGYuc3RyZWFtID0gc3RyZWFtCisgICAgICAgIGFzc2VydChjaGVja192ZXJzaW9u
KHN0cmVhbSkpCisgICAgICAgIHNlbGYudG9wX2RpcnMgPSBzZWxmLmRlZmF1bHRfZGlycygpCisK
KyAgICBkZWYgcGFyc2VfYXJncyhzZWxmLCBhcmd2PU5vbmUpOgorICAgICAgICBwYXJzZXIgPSBv
cHRwYXJzZS5PcHRpb25QYXJzZXIoKQorICAgICAgICBwYXJzZXIuYWRkX29wdGlvbignLXYnLCAn
LS12ZXJib3NlJywgYWN0aW9uPSdzdG9yZV90cnVlJywKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgaGVscD0ndmVyYm9zZSBvdXRwdXQnKQorICAgICAgICBwYXJzZXIuYWRkX29wdGlvbignLXEn
LCAnLS1xdWlldCcsIGFjdGlvbj0nc3RvcmVfdHJ1ZScsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgIGhlbHA9J01pbmltYWwgb3V0cHV0JykKKyAgICAgICAgcGFyc2VyLmFkZF9vcHRpb24oJy0t
bG9nLXN0YXJ0dXAnLCBhY3Rpb249J3N0b3JlX3RydWUnLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICBoZWxwPSdMb2cgc3RhcnR1cCBhY3Rpb25zJykKKyAgICAgICAgcGFyc2VyLmFkZF9vcHRp
b24oJy1pJywgJy0taW50ZWdyYXRpb24tdGVzdHMnLCBkZXN0PSdpbnRlZ3JhdGlvbl90ZXN0cycs
CisgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbj0nc3RvcmVfdHJ1ZScsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgIGhlbHA9J1J1biBpbnRlZ3JhdGlvbiB0ZXN0cyAoZmlsZXMgZW5k
aW5nIGluIF9pbnR0ZXN0LnB5KScpCisgICAgICAgIHBhcnNlci5hZGRfb3B0aW9uKCctdScsICct
LXVuaXQtdGVzdHMnLCBkZXN0PSd1bml0X3Rlc3RzJywKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgYWN0aW9uPSdzdG9yZV90cnVlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0n
UnVuIHVuaXQgdGVzdHMgKGZpbGVzIGVuZGluZyBpbiBfdW5pdHRlc3QucHkpJykKKyAgICAgICAg
cGFyc2VyLmFkZF9vcHRpb24oJy1sJywgJy0tbGlzdCcsIGRlc3Q9J2xpc3Rfb25seScsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbj0nc3RvcmVfdHJ1ZScsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgIGhlbHA9J09ubHkgbGlzdCB0ZXN0IGZpbGVzIGZvdW5kJykKKyAgICAgICAg
cGFyc2VyLmFkZF9vcHRpb24oJy1hJywgJy0tYWxsJywgYWN0aW9uPSdzdG9yZV90cnVlJywKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgZGVzdD0nYWxsX3Rlc3RzJywgaGVscD0nUnVuIGFsbCB0
ZXN0cycpCisgICAgICAgIHBhcnNlci5hZGRfb3B0aW9uKCctZCcsICctLWRpcicsIGFjdGlvbj0n
YXBwZW5kJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzdD0nZGlycycsIGRlZmF1bHQ9
W10sCisgICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J0RpcmVjdG9yeSBjb250YWluaW5n
IHRlc3RzJykKKyAgICAgICAgcGFyc2VyLmFkZF9vcHRpb24oJy0tZW5kaW5nLWluJywgYWN0aW9u
PSdhcHBlbmQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICBkZXN0PSdlbmRpbmdzJywgZGVm
YXVsdD1bXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0nRmlsZXMgZW5kaW5nIGlu
IEVORElOR1MgYXJlIHRlc3RzJykKKyAgICAgICAgaWYgbm90IGFyZ3Y6CisgICAgICAgICAgICBz
ZWxmLmFyZ3YwID0gc3lzLmFyZ3ZbMF0KKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYu
YXJndjAgPSBfX2ZpbGVfXworICAgICAgICBvcHRpb25zLCBhcmdzID0gcGFyc2VyLnBhcnNlX2Fy
Z3MoYXJndikKKyAgICAgICAgaWYgb3B0aW9ucy5hbGxfdGVzdHM6CisgICAgICAgICAgICBvcHRp
b25zLnVuaXRfdGVzdHMgPSBUcnVlCisgICAgICAgICAgICBvcHRpb25zLmludGVncmF0aW9uX3Rl
c3RzID0gVHJ1ZQorCisgICAgICAgIGlmIChub3Qgb3B0aW9ucy5lbmRpbmdzIGFuZAorICAgICAg
ICAgICAgbm90IG9wdGlvbnMudW5pdF90ZXN0cyBhbmQKKyAgICAgICAgICAgIG5vdCBvcHRpb25z
LmludGVncmF0aW9uX3Rlc3RzIGFuZAorICAgICAgICAgICAgbm90IGFyZ3MpOgorICAgICAgICAg
ICAgb3B0aW9ucy51bml0X3Rlc3RzID0gVHJ1ZQorCisgICAgICAgIGlmIG5vdCBvcHRpb25zLmRp
cnM6CisgICAgICAgICAgICBvcHRpb25zLmRpcnMgPSBzZWxmLnRvcF9kaXJzCisgCisgICAgICAg
IGlmIG5vdCBvcHRpb25zLmVuZGluZ3M6CisgICAgICAgICAgICBpZiBvcHRpb25zLnVuaXRfdGVz
dHM6CisgICAgICAgICAgICAgICAgb3B0aW9ucy5lbmRpbmdzLmFwcGVuZCgnX3VuaXR0ZXN0LnB5
JykKKyAgICAgICAgICAgIGlmIG9wdGlvbnMuaW50ZWdyYXRpb25fdGVzdHM6CisgICAgICAgICAg
ICAgICAgb3B0aW9ucy5lbmRpbmdzLmFwcGVuZCgnX2ludHRlc3QucHknKQorCisKKyAgICAgICAg
c2VsZi5vcHRpb25zID0gb3B0aW9ucworICAgICAgICBzZWxmLmFyZ3MgPSBhcmdzCisgICAgICAg
IHJldHVybiBvcHRpb25zLCBhcmdzCisKKyAgICBkZWYgZGVmYXVsdF9kaXJzKHNlbGYpOgorICAg
ICAgICBwID0gc2VsZi5wYXRoX2Zyb21fd2Via2l0X2Jhc2UKKyAgICAgICAgZGlycyA9IFtdCisg
ICAgICAgIGRpcnMuYXBwZW5kKHAoJ1dlYktpdFRvb2xzJywgJ1NjcmlwdHMnKSkKKyAgICAgICAg
ZGlycy5hcHBlbmQocCgnV2ViS2l0MicsICdTY3JpcHRzJywgJ3dlYmtpdDInKSkKKyAgICAgICAg
aWYgb3MucGF0aC5leGlzdHMoIi91c3IvbG9jYWwvZ29vZ2xlX2FwcGVuZ2luZSIpOgorICAgICAg
ICAgICAgc3lzLnBhdGguYXBwZW5kKCIvdXNyL2xvY2FsL2dvb2dsZV9hcHBlbmdpbmUiKQorICAg
ICAgICAgICAgaW1wb3J0IGRldl9hcHBzZXJ2ZXIKKyAgICAgICAgICAgIGRldl9hcHBzZXJ2ZXIu
Zml4X3N5c19wYXRoKCkKKyAgICAgICAgICAgIGRpcnMuYXBwZW5kKHAoJ1dlYktpdFRvb2xzJywg
J1F1ZXVlU3RhdHVzU2VydmVyJykpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBfbG9nLmRl
YnVnKCJTa2lwcGluZyBRdWV1ZVN0YXR1c1NlcnZlcjoiKQorICAgICAgICAgICAgX2xvZy5kZWJ1
ZygiICBObyBBcHBFbmdpbmUgU0RLIGluc3RhbGxlZCBpbiAvdXNyL2xvY2FsL2dvb2dsZV9hcHBl
bmdpbmUiKQorICAgICAgICAgICAgX2xvZy5kZWJ1ZygiICBodHRwOi8vY29kZS5nb29nbGUuY29t
L2FwcGVuZ2luZS9kb3dubG9hZHMuaHRtbCIpCisgICAgICAgIHJldHVybiBkaXJzCisKKyAgICBk
ZWYgc2NyaXB0X2RpcihzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYucGF0aF9mcm9tX3dlYmtp
dF9iYXNlKCdXZWJLaXRUb29scycsICdTY3JpcHRzJykKKworICAgIGRlZiBjb25maWd1cmVfbG9n
Z2luZyhzZWxmKToKKyAgICAgICAgIiIiQ29uZmlndXJlIHRoZSByb290IGxvZ2dlci4KKworICAg
ICAgICBDb25maWd1cmUgdGhlIHJvb3QgbG9nZ2VyIG5vdCB0byBsb2cgYW55IG1lc3NhZ2VzIGZy
b20gd2Via2l0cHkgLS0KKyAgICAgICAgZXhjZXB0IGZvciBtZXNzYWdlcyBmcm9tIHRoZSBhdXRv
aW5zdGFsbCBtb2R1bGUuICBBbHNvIHNldCB0aGUKKyAgICAgICAgbG9nZ2luZyBsZXZlbCBhcyBk
ZXNjcmliZWQgYmVsb3cuIiIiCisKKyAgICAgICAgIyBGaWx0ZXIgb3V0IG1vc3Qgd2Via2l0cHkg
bWVzc2FnZXMuCisgICAgICAgIGRlZiBmaWx0ZXIocmVjb3JkKToKKyAgICAgICAgICAgICIiIkZp
bHRlciBvdXQgYXV0b2luc3RhbGwgYW5kIG5vbi10aGlyZC1wYXJ0eSB3ZWJraXRweSBtZXNzYWdl
cy4iIiIKKyAgICAgICAgICAgIGlmIChyZWNvcmQubmFtZS5zdGFydHN3aXRoKCJ3ZWJraXRweS5j
b21tb24uc3lzdGVtLmF1dG9pbnN0YWxsIikgb3IKKyAgICAgICAgICAgICAgICByZWNvcmQubmFt
ZS5zdGFydHN3aXRoKCJ3ZWJraXRweS50ZXN0Iikgb3IKKyAgICAgICAgICAgICAgICByZWNvcmQu
bmFtZS5zdGFydHN3aXRoKCJ0ZXN0LXdlYmtpdHB5IikpOgorICAgICAgICAgICAgICAgIHJldHVy
biBUcnVlCiAgICAgICAgICAgICByZXR1cm4gRmFsc2UKLSAgICAgICAgcmV0dXJuIFRydWUKLQot
ICAgIHRlc3RpbmdfZmlsdGVyID0gbG9nZ2luZy5GaWx0ZXIoKQotICAgIHRlc3RpbmdfZmlsdGVy
LmZpbHRlciA9IGZpbHRlcgotCi0gICAgIyBEaXNwbGF5IGEgbWVzc2FnZSBzbyBkZXZlbG9wZXJz
IGFyZSBub3QgbXlzdGlmaWVkIGFzIHRvIHdoeQotICAgICMgbG9nZ2luZyBkb2VzIG5vdCB3b3Jr
IGluIHRoZSB1bml0IHRlc3RzLgotICAgIF9sb2cuaW5mbygiU3VwcHJlc3NpbmcgbW9zdCB3ZWJr
aXRweSBsb2dnaW5nIHdoaWxlIHJ1bm5pbmcgdW5pdCB0ZXN0cy4iKQotICAgIGhhbmRsZXIuYWRk
RmlsdGVyKHRlc3RpbmdfZmlsdGVyKQotCi0KLWRlZiBfY2xlYW5fcHljX2ZpbGVzKGRpcl90b19j
bGVhbiwgcGF0aHNfbm90X3RvX2xvZyk6Ci0gICAgIiIiRGVsZXRlIGZyb20gYSBkaXJlY3Rvcnkg
YWxsIC5weWMgZmlsZXMgdGhhdCBoYXZlIG5vIC5weSBmaWxlLgotCi0gICAgQXJnczoKLSAgICAg
IGRpcl90b19jbGVhbjogVGhlIHBhdGggdG8gdGhlIGRpcmVjdG9yeSB0byBjbGVhbi4KLSAgICAg
IHBhdGhzX25vdF90b19sb2c6IEEgbGlzdCBvZiBwYXRocyB0byAucHljIGZpbGVzIHdob3NlIGRl
bGV0aW9ucyBzaG91bGQKLSAgICAgICAgICAgICAgICAgICAgICAgIG5vdCBiZSBsb2dnZWQuICBU
aGlzIGxpc3Qgc2hvdWxkIG5vcm1hbGx5IGluY2x1ZGUKLSAgICAgICAgICAgICAgICAgICAgICAg
IG9ubHkgdGVzdCAucHljIGZpbGVzLgogCi0gICAgIiIiCi0gICAgX2xvZy5kZWJ1ZygiQ2xlYW5p
bmcgb3JwaGFuZWQgKi5weWMgZmlsZXMgZnJvbTogJXMiICUgZGlyX3RvX2NsZWFuKQorICAgICAg
ICBoYW5kbGVyID0gbG9nZ2luZy5TdHJlYW1IYW5kbGVyKHNlbGYuc3RyZWFtKQorICAgICAgICBp
ZiBzZWxmLm9wdGlvbnMudmVyYm9zZToKKyAgICAgICAgICAgIGhhbmRsZXIuc2V0TGV2ZWwobG9n
Z2luZy5ERUJVRykKKyAgICAgICAgZWxpZiBub3Qgc2VsZi5vcHRpb25zLnF1aWV0OgorICAgICAg
ICAgICAgaGFuZGxlci5zZXRMZXZlbChsb2dnaW5nLldBUk5JTkcpCisgICAgICAgIGVsc2U6Cisg
ICAgICAgICAgICBoYW5kbGVyLnNldExldmVsKGxvZ2dpbmcuSU5GTykKKyAgICAgICAgZm9ybWF0
dGVyID0gbG9nZ2luZy5Gb3JtYXR0ZXIoIiUobGV2ZWxuYW1lKS04czogJShtZXNzYWdlKXMiKQor
ICAgICAgICBoYW5kbGVyLnNldEZvcm1hdHRlcihmb3JtYXR0ZXIpCisKKyAgICAgICAgdGVzdGlu
Z19maWx0ZXIgPSBsb2dnaW5nLkZpbHRlcigpCisgICAgICAgIHRlc3RpbmdfZmlsdGVyLmZpbHRl
ciA9IGZpbHRlcgorICAgICAgICBoYW5kbGVyLmFkZEZpbHRlcih0ZXN0aW5nX2ZpbHRlcikKKwor
ICAgICAgICBzZWxmLmxvZ2dpbmdfaGFuZGxlciA9IGhhbmRsZXIKKyAgICAgICAgc2VsZi5sb2dn
ZXIgPSBsb2dnaW5nLmdldExvZ2dlcigpCisgICAgICAgIHNlbGYubG9nZ2VyLmFkZEhhbmRsZXIo
aGFuZGxlcikKKworICAgIGRlZiBwYXRoX2Zyb21fd2Via2l0X2Jhc2Uoc2VsZiwgKmNvbXBvbmVu
dHMpOgorICAgICAgICBpZiBub3Qgc2VsZi5fd2Via2l0X2Jhc2VfZGlyOgorICAgICAgICAgICAg
YWJzcGF0aCA9IG9zLnBhdGguYWJzcGF0aChfX2ZpbGVfXykKKyAgICAgICAgICAgIHNlbGYuX3dl
YmtpdF9iYXNlX2RpciA9IGFic3BhdGhbMDphYnNwYXRoLmZpbmQoJ1dlYktpdFRvb2xzJyldCisg
ICAgICAgIHJldHVybiBvcy5wYXRoLmpvaW4oc2VsZi5fd2Via2l0X2Jhc2VfZGlyLCAqY29tcG9u
ZW50cykKKworICAgIGRlZiBhZGRfZGlyKHNlbGYsICpjb21wb25lbnRzKToKKyAgICAgICAgcGF0
aCA9IHNlbGYucGF0aF9mcm9tX3dlYmtpdF9iYXNlKCpjb21wb25lbnRzKQorICAgICAgICBzZWxm
Lm9wdGlvbnMuZGlycy5hcHBlbmQocGF0aCkKKworICAgIGRlZiBjbGVhbl9vcnBoYW5lZF9weWNf
ZmlsZXNfdW5kZXIoc2VsZiwgZGlyX3RvX2NsZWFuKToKKyAgICAgICAgX2xvZy5kZWJ1ZygiQ2xl
YW5pbmcgb3JwaGFuZWQgKi5weWMgZmlsZXMgZnJvbTogJXMiICUgZGlyX3RvX2NsZWFuKQorCisg
ICAgICAgIGZvciBkaXJfcGF0aCwgZGlyX25hbWVzLCBmaWxlX25hbWVzIGluIG9zLndhbGsoZGly
X3RvX2NsZWFuKToKKyAgICAgICAgICAgIGZvciBmaWxlX25hbWUgaW4gZmlsZV9uYW1lczoKKyAg
ICAgICAgICAgICAgICBpZiBmaWxlX25hbWUuZW5kc3dpdGgoIi5weWMiKSBhbmQgZmlsZV9uYW1l
WzotMV0gbm90IGluIGZpbGVfbmFtZXM6CisgICAgICAgICAgICAgICAgICAgIGZpbGVfcGF0aCA9
IG9zLnBhdGguam9pbihkaXJfcGF0aCwgZmlsZV9uYW1lKQorICAgICAgICAgICAgICAgICAgICBf
bG9nLmRlYnVnKCJEZWxldGluZyBvcnBoYW4gKi5weWMgZmlsZTogJXMiICUgZmlsZV9wYXRoKQor
ICAgICAgICAgICAgICAgICAgICBvcy5yZW1vdmUoZmlsZV9wYXRoKQorCisKKyAgICBkZWYgbWFp
bihzZWxmLCBhcmd2PU5vbmUpOgorICAgICAgICBzZWxmLm9wdGlvbnMsIHNlbGYuYXJncyA9IHNl
bGYucGFyc2VfYXJncyhhcmd2KQorICAgICAgICBzZWxmLmNvbmZpZ3VyZV9sb2dnaW5nKCkKKyAg
ICAgICAgc2VsZi5zZXR1cF90ZXN0X3J1bigpCisgICAgICAgIHNlbGYucnVuKCkKKworCisgICAg
ZGVmIGZpbmRfZmlsZXMoc2VsZiwgc3RhcnRpbmdfZGlyLCBzdWZmaXhlcyk6CisgICAgICAgICIi
IlJldHVybiBhIGxpc3Qgb2YgcGF0aHMgdW5kZXIgc3RhcnRpbmdfZGlyIHRoYXQgZW5kIGluIG9u
ZSBvZiB0aGUgc3VmZml4ZXMuIiIiCisgICAgICAgIHN0YXJ0aW5nX2RpciA9IG9zLnBhdGguYWJz
cGF0aChzdGFydGluZ19kaXIpCisgICAgICAgIHByZWZpeF9sZW4gPSBsZW4oc3RhcnRpbmdfZGly
KSArIDEKKyAgICAgICAgcGF0aHMgPSBbXQorICAgICAgICBmb3IgZGlyX3BhdGgsIGRpcl9uYW1l
cywgZmlsZV9uYW1lcyBpbiBvcy53YWxrKHN0YXJ0aW5nX2Rpcik6CisgICAgICAgICAgICBmb3Ig
ZmlsZV9uYW1lIGluIGZpbGVfbmFtZXM6CisgICAgICAgICAgICAgICAgZm9yIGVuZGluZyBpbiBz
ZWxmLm9wdGlvbnMuZW5kaW5nczoKKyAgICAgICAgICAgICAgICAgICAgaWYgZmlsZV9uYW1lLmVu
ZHN3aXRoKGVuZGluZyk6CisgICAgICAgICAgICAgICAgICAgICAgICBmdWxsX3BhdGggPSBvcy5w
YXRoLmpvaW4oZGlyX3BhdGgsIGZpbGVfbmFtZSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHBh
dGhzLmFwcGVuZChmdWxsX3BhdGgpCisgICAgICAgIHJldHVybiBwYXRocworCisgICAgZGVmIG1v
ZHVsZXNfZnJvbV9wYXRocyhzZWxmLCBwYXRocyk6CisgICAgICAgICIiIlJldHVybiBhIGxpc3Qg
b2YgZnVsbHktcXVhbGlmaWVkIG1vZHVsZSBuYW1lcyBnaXZlbiBwYXRocy4iIiIKKyAgICAgICAg
bW9kdWxlcyA9IFtdCisgICAgICAgIGZvciBwYXRoIGluIHBhdGhzOgorICAgICAgICAgICAgZm9y
IGQgaW4gc2VsZi50b3BfZGlyczoKKyAgICAgICAgICAgICAgICBpZiBwYXRoLnN0YXJ0c3dpdGgo
ZCk6CisgICAgICAgICAgICAgICAgICAgIG1vZHVsZSA9IHBhdGgucmVwbGFjZShkICsgb3Muc2Vw
LCAnJykKKyAgICAgICAgICAgICAgICAgICAgbW9kdWxlID0gbW9kdWxlLnJlcGxhY2UoJy5weScs
ICcnKQorICAgICAgICAgICAgICAgICAgICBtb2R1bGUgPSBtb2R1bGUucmVwbGFjZShvcy5zZXAs
ICcuJykKKyAgICAgICAgICAgICAgICAgICAgbW9kdWxlcy5hcHBlbmQobW9kdWxlKQorICAgICAg
ICAgICAgICAgICAgICBicmVhaworICAgICAgICByZXR1cm4gbW9kdWxlcworCisgICAgZGVmIHRl
c3RfbW9kdWxlcyhzZWxmLCBtb2R1bGVzKToKKyAgICAgICAgIyBXZSBwYXNzIE5vbmUgZm9yIHRo
ZSBtb2R1bGUgYmVjYXVzZSB3ZSBkbyBub3Qgd2FudCB0aGUgdW5pdHRlc3QKKyAgICAgICAgIyBt
b2R1bGUgdG8gcmVzb2x2ZSBtb2R1bGUgbmFtZXMgcmVsYXRpdmUgdG8gYSBnaXZlbiBtb2R1bGUu
CisgICAgICAgICMgKFRoaXMgd291bGQgcmVxdWlyZSBpbXBvcnRpbmcgYWxsIG9mIHRoZSB1bml0
dGVzdCBtb2R1bGVzIGZyb20KKyAgICAgICAgIyB0aGlzIG1vZHVsZS4pICBTZWUgdGhlIGxvYWRU
ZXN0c0Zyb21OYW1lKCkgbWV0aG9kIG9mIHRoZQorICAgICAgICAjIHVuaXR0ZXN0LlRlc3RMb2Fk
ZXIgY2xhc3MgZm9yIG1vcmUgZGV0YWlscyBvbiB0aGlzIHBhcmFtZXRlci4KKyAgICAgICAgYXJn
cyA9IFtzZWxmLmFyZ3YwXQorICAgICAgICBpZiBzZWxmLm9wdGlvbnMudmVyYm9zZToKKyAgICAg
ICAgICAgIGFyZ3MuYXBwZW5kKCctdicpCisgICAgICAgIGlmIHNlbGYub3B0aW9ucy5xdWlldDoK
KyAgICAgICAgICAgIGFyZ3MuYXBwZW5kKCctcScpCisKKyAgICAgICAgbW9kdWxlc190b19ydW4g
PSBbXQorICAgICAgICBmb3IgbSBpbiBtb2R1bGVzOgorICAgICAgICAgICAgdHJ5OgorICAgICAg
ICAgICAgICAgIF9faW1wb3J0X18obSkKKyAgICAgICAgICAgICAgICBtb2R1bGVzX3RvX3J1bi5h
cHBlbmQobSkKKyAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24sIGU6CisgICAgICAgICAgICAg
ICAgaW1wb3J0IHBkYgorICAgICAgICAgICAgICAgIHBkYi5zZXRfdHJhY2UoKQorICAgICAgICAg
ICAgICAgIF9sb2cud2FybmluZygnZmFpbGVkIHRvIGxvYWQgJXMsIHNraXBwaW5nJyAlIG0pCisK
KyAgICAgICAgYXJncy5leHRlbmQobW9kdWxlc190b19ydW4pCisgICAgICAgIHVuaXR0ZXN0Lm1h
aW4oYXJndj1hcmdzLCBtb2R1bGU9Tm9uZSkKKworICAgIGRlZiBzZXR1cF90ZXN0X3J1bihzZWxm
KToKKyAgICAgICBmb3IgZCBpbiBzZWxmLm9wdGlvbnMuZGlyczoKKyAgICAgICAgICAgIGlmIG5v
dCBkIGluIHN5cy5wYXRoOgorICAgICAgICAgICAgICAgIHN5cy5wYXRoLmFwcGVuZChkKQorICAg
ICAgICAgICAgc2VsZi5jbGVhbl9vcnBoYW5lZF9weWNfZmlsZXNfdW5kZXIoZCkKKworICAgIGRl
ZiBmaW5kX21vZHVsZXMoc2VsZik6CisgICAgICAgIG1vZHVsZXMgPSBbXQorICAgICAgICBmaWxl
cyA9IFtdCisgICAgICAgIGZvciBkIGluIHNlbGYub3B0aW9ucy5kaXJzOgorICAgICAgICAgICAg
ZmlsZXMuZXh0ZW5kKHNlbGYuZmluZF9maWxlcyhkLCBzZWxmLm9wdGlvbnMuZW5kaW5ncykpCisg
ICAgICAgIG1vZHVsZXMgPSBzZWxmLm1vZHVsZXNfZnJvbV9wYXRocyhmaWxlcykKKyAgICAgICAg
bW9kdWxlcy5zb3J0KCkKKyAgICAgICAgcmV0dXJuIG1vZHVsZXMKKworICAgIGRlZiBydW4oc2Vs
Zik6CisgICAgICAgICIiIlJ1biB0aGUgd2Via2l0cHkgdGVzdHMuIiIiCisgICAgICAgIG1vZHVs
ZXMgPSBzZWxmLmFyZ3MKKyAgICAgICAgaWYgbm90IG1vZHVsZXM6CisgICAgICAgICAgICBtb2R1
bGVzID0gc2VsZi5maW5kX21vZHVsZXMoKQorCisgICAgICAgIGlmIG5vdCBtb2R1bGVzOgorICAg
ICAgICAgICAgX2xvZy5lcnJvcigiTm8gdGVzdHMgZm91bmQuIikKKyAgICAgICAgICAgIHN5cy5l
eGl0KDEpCisKKyAgICAgICAgaWYgc2VsZi5vcHRpb25zLmxpc3Rfb25seToKKyAgICAgICAgICAg
IHByaW50ICJcbiIuam9pbihtb2R1bGVzKQorICAgICAgICAgICAgc3lzLmV4aXQoMCkKKworICAg
ICAgICAjIERvZXMgbm90IHJldHVybi4KKyAgICAgICAgc2VsZi50ZXN0X21vZHVsZXMobW9kdWxl
cykKIAotICAgICMgTm9ybWFsaXplIHBhdGhzIG5vdCB0byBsb2cuCi0gICAgcGF0aHNfbm90X3Rv
X2xvZyA9IFtvcy5wYXRoLmFic3BhdGgocGF0aCkgZm9yIHBhdGggaW4gcGF0aHNfbm90X3RvX2xv
Z10KLQotICAgIGZvciBkaXJfcGF0aCwgZGlyX25hbWVzLCBmaWxlX25hbWVzIGluIG9zLndhbGso
ZGlyX3RvX2NsZWFuKToKLSAgICAgICAgZm9yIGZpbGVfbmFtZSBpbiBmaWxlX25hbWVzOgotICAg
ICAgICAgICAgaWYgZmlsZV9uYW1lLmVuZHN3aXRoKCIucHljIikgYW5kIGZpbGVfbmFtZVs6LTFd
IG5vdCBpbiBmaWxlX25hbWVzOgotICAgICAgICAgICAgICAgIGZpbGVfcGF0aCA9IG9zLnBhdGgu
am9pbihkaXJfcGF0aCwgZmlsZV9uYW1lKQotICAgICAgICAgICAgICAgIGlmIG9zLnBhdGguYWJz
cGF0aChmaWxlX3BhdGgpIG5vdCBpbiBwYXRoc19ub3RfdG9fbG9nOgotICAgICAgICAgICAgICAg
ICAgICBfbG9nLmluZm8oIkRlbGV0aW5nIG9ycGhhbiAqLnB5YyBmaWxlOiAlcyIgJSBmaWxlX3Bh
dGgpCi0gICAgICAgICAgICAgICAgb3MucmVtb3ZlKGZpbGVfcGF0aCkKLQotCi0jIEFzIGEgc3Vi
c3RpdHV0ZSBmb3IgYSB1bml0IHRlc3QsIHRoaXMgbWV0aG9kIHRlc3RzIF9jbGVhbl9weWNfZmls
ZXMoKQotIyBpbiBhZGRpdGlvbiB0byBjYWxsaW5nIGl0LiAgV2UgY2hvc2Ugbm90IHRvIHVzZSB0
aGUgdW5pdHRlc3QgbW9kdWxlCi0jIGJlY2F1c2UgX2NsZWFuX3B5Y19maWxlcygpIGlzIGNhbGxl
ZCBvbmx5IG9uY2UgYW5kIGlzIG5vdCB1c2VkIGVsc2V3aGVyZS4KLWRlZiBfY2xlYW5fcGFja2Fn
ZXNfd2l0aF90ZXN0KGV4dGVybmFsX3BhY2thZ2VfcGF0aHMpOgotICAgIHdlYmtpdHB5X2RpciA9
IG9zLnBhdGguam9pbihvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pLCAid2Via2l0cHkiKQotICAg
IHBhY2thZ2VfcGF0aHMgPSBbd2Via2l0cHlfZGlyXSArIGV4dGVybmFsX3BhY2thZ2VfcGF0aHMK
LQotICAgICMgVGhlIHRlc3QgLnB5YyBmaWxlIGlzLS0KLSAgICAjIHdlYmtpdHB5L3B5dGhvbjI0
L1RFTVBfdGVzdC13ZWJraXRweV90ZXN0X3B5Y19maWxlLnB5Yy4KLSAgICB0ZXN0X3BhdGggPSBv
cy5wYXRoLmpvaW4od2Via2l0cHlfZGlyLCAicHl0aG9uMjQiLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAiVEVNUF90ZXN0LXdlYmtpdHB5X3Rlc3RfcHljX2ZpbGUucHljIikKLQotICAg
IHRlc3RfZmlsZSA9IG9wZW4odGVzdF9wYXRoLCAidyIpCi0gICAgdHJ5OgotICAgICAgICB0ZXN0
X2ZpbGUud3JpdGUoIlRlc3QgLnB5YyBmaWxlIGdlbmVyYXRlZCBieSB0ZXN0LXdlYmtpdHB5LiIp
Ci0gICAgZmluYWxseToKLSAgICAgICAgdGVzdF9maWxlLmNsb3NlKCkKLQotICAgICMgQ29uZmly
bSB0aGF0IHRoZSB0ZXN0IGZpbGUgZXhpc3RzIHNvIHRoYXQgd2hlbiB3ZSBjaGVjayB0aGF0IGl0
IGRvZXMKLSAgICAjIG5vdCBleGlzdCwgdGhlIHJlc3VsdCBpcyBtZWFuaW5nZnVsLgotICAgIGlm
IG5vdCBvcy5wYXRoLmV4aXN0cyh0ZXN0X3BhdGgpOgotICAgICAgICByYWlzZSBFeGNlcHRpb24o
IlRlc3QgLnB5YyBmaWxlIG5vdCBjcmVhdGVkOiAlcyIgJSB0ZXN0X3BhdGgpCi0KLSAgICBmb3Ig
cGF0aCBpbiBwYWNrYWdlX3BhdGhzOgotICAgICAgICBfY2xlYW5fcHljX2ZpbGVzKHBhdGgsIFt0
ZXN0X3BhdGhdKQotCi0gICAgaWYgb3MucGF0aC5leGlzdHModGVzdF9wYXRoKToKLSAgICAgICAg
cmFpc2UgRXhjZXB0aW9uKCJUZXN0IC5weWMgZmlsZSBub3QgZGVsZXRlZDogJXMiICUgdGVzdF9w
YXRoKQotCi0KLWRlZiBpbml0KGNvbW1hbmRfYXJncywgZXh0ZXJuYWxfcGFja2FnZV9wYXRocyk6
Ci0gICAgIiIiRXhlY3V0ZSBjb2RlIHByaW9yIHRvIGltcG9ydGluZyBmcm9tIHdlYmtpdHB5LnVu
aXR0ZXN0cy4KLQotICAgIEFyZ3M6Ci0gICAgICAgIGNvbW1hbmRfYXJnczogVGhlIGxpc3Qgb2Yg
Y29tbWFuZC1saW5lIGFyZ3VtZW50cyAtLSB1c3VhbGx5Ci0gICAgICAgICAgICAgICAgICAgICAg
c3lzLmFyZ3ZbMTpdLgotCi0gICAgIiIiCi0gICAgdmVyYm9zZV9sb2dnaW5nX2ZsYWcgPSAiLS12
ZXJib3NlLWxvZ2dpbmciCi0gICAgaXNfdmVyYm9zZV9sb2dnaW5nID0gdmVyYm9zZV9sb2dnaW5n
X2ZsYWcgaW4gY29tbWFuZF9hcmdzCi0gICAgaWYgaXNfdmVyYm9zZV9sb2dnaW5nOgotICAgICAg
ICAjIFJlbW92ZSB0aGUgZmxhZyBzbyBpdCBkb2Vzbid0IGNhdXNlIHVuaXR0ZXN0Lm1haW4oKSB0
byBlcnJvciBvdXQuCi0gICAgICAgICMKLSAgICAgICAgIyBGSVhNRTogR2V0IGRvY3VtZW50YXRp
b24gZm9yIHRoZSAtLXZlcmJvc2UtbG9nZ2luZyBmbGFnIHRvIHNob3cKLSAgICAgICAgIyAgICAg
ICAgdXAgaW4gdGhlIHVzYWdlIGluc3RydWN0aW9ucywgd2hpY2ggYXJlIGN1cnJlbnRseSBnZW5l
cmF0ZWQKLSAgICAgICAgIyAgICAgICAgYnkgdW5pdHRlc3QubWFpbigpLiAgSXQncyBwb3NzaWJs
ZSB0aGF0IHRoaXMgd2lsbCByZXF1aXJlCi0gICAgICAgICMgICAgICAgIHJlLWltcGxlbWVudGlu
ZyB0aGUgb3B0aW9uIHBhcnNlciBmb3IgdW5pdHRlc3QubWFpbigpCi0gICAgICAgICMgICAgICAg
IHNpbmNlIHRoZXJlIG1heSBub3QgYmUgYW4gZWFzeSB3YXkgdG8gbW9kaWZ5IGl0cyBleGlzdGlu
ZwotICAgICAgICAjICAgICAgICBvcHRpb24gcGFyc2VyLgotICAgICAgICBzeXMuYXJndi5yZW1v
dmUodmVyYm9zZV9sb2dnaW5nX2ZsYWcpCi0KLSAgICBjb25maWd1cmVfbG9nZ2luZyhpc192ZXJi
b3NlX2xvZ2dpbmcpCi0gICAgX2xvZy5kZWJ1ZygiVmVyYm9zZSBXZWJLaXQgbG9nZ2luZyBlbmFi
bGVkLiIpCi0KLSAgICAjIFdlIGNsZWFuIG9ycGhhbmVkICoucHljIGZpbGVzIGZyb20gdGhlIHBh
Y2thZ2VzIHByaW9yIHRvIGltcG9ydGluZyBmcm9tCi0gICAgIyB0aGVtIHRvIG1ha2Ugc3VyZSB0
aGF0IG5vIGltcG9ydCBzdGF0ZW1lbnRzIGZhbHNlbHkgc3VjY2VlZC4KLSAgICAjIFRoaXMgaGVs
cHMgdG8gY2hlY2sgdGhhdCBpbXBvcnQgc3RhdGVtZW50cyBoYXZlIGJlZW4gdXBkYXRlZCBjb3Jy
ZWN0bHkKLSAgICAjIGFmdGVyIGFueSBmaWxlIG1vdmVzLiAgT3RoZXJ3aXNlLCBpbmNvcnJlY3Qg
aW1wb3J0IHN0YXRlbWVudHMgY2FuCi0gICAgIyBiZSBtYXNrZWQuCi0gICAgIwotICAgICMgRm9y
IGV4YW1wbGUsIGlmIHdlYmtpdHB5L3B5dGhvbjI0L3ZlcnNpb25pbmcucHkgd2VyZSBtb3ZlZCB0
byBhCi0gICAgIyBkaWZmZXJlbnQgbG9jYXRpb24gd2l0aG91dCBjaGFuZ2luZyBhbnkgaW1wb3J0
IHN0YXRlbWVudHMsIGFuZCBpZgotICAgICMgdGhlIGNvcnJlc3BvbmRpbmcgLnB5YyBmaWxlIHdl
cmUgbGVmdCBiZWhpbmQgd2l0aG91dCBkZWxldGluZyBpdCwKLSAgICAjIHRoZW4gImltcG9ydCB3
ZWJraXRweS5weXRob24yNC52ZXJzaW9uaW5nIiB3b3VsZCBjb250aW51ZSB0byBzdWNjZWVkCi0g
ICAgIyBldmVuIHRob3VnaCBpdCB3b3VsZCBmYWlsIGZvciBzb21lb25lIGNoZWNraW5nIG91dCBh
IGZyZXNoIGNvcHkKLSAgICAjIG9mIHRoZSBzb3VyY2UgdHJlZS4gIFRoaXMgaXMgYmVjYXVzZSBv
ZiBhIFB5dGhvbiBmZWF0dXJlOgotICAgICMKLSAgICAjICJJdCBpcyBwb3NzaWJsZSB0byBoYXZl
IGEgZmlsZSBjYWxsZWQgc3BhbS5weWMgKG9yIHNwYW0ucHlvIHdoZW4gLU8KLSAgICAjIGlzIHVz
ZWQpIHdpdGhvdXQgYSBmaWxlIHNwYW0ucHkgZm9yIHRoZSBzYW1lIG1vZHVsZS4gVGhpcyBjYW4g
YmUgdXNlZAotICAgICMgdG8gZGlzdHJpYnV0ZSBhIGxpYnJhcnkgb2YgUHl0aG9uIGNvZGUgaW4g
YSBmb3JtIHRoYXQgaXMgbW9kZXJhdGVseQotICAgICMgaGFyZCB0byByZXZlcnNlIGVuZ2luZWVy
LiIKLSAgICAjCi0gICAgIyAoIGh0dHA6Ly9kb2NzLnB5dGhvbi5vcmcvdHV0b3JpYWwvbW9kdWxl
cy5odG1sI2NvbXBpbGVkLXB5dGhvbi1maWxlcyApCi0gICAgIwotICAgICMgRGVsZXRpbmcgdGhl
IG9ycGhhbmVkIC5weWMgZmlsZSBwcmlvciB0byBpbXBvcnRpbmcsIGhvd2V2ZXIsIHdvdWxkCi0g
ICAgIyBjYXVzZSBhbiBJbXBvcnRFcnJvciB0byBvY2N1ciBvbiBpbXBvcnQgYXMgZGVzaXJlZC4K
LSAgICBfY2xlYW5fcGFja2FnZXNfd2l0aF90ZXN0KGV4dGVybmFsX3BhY2thZ2VfcGF0aHMpCi0K
LSAgICBpbXBvcnQgd2Via2l0cHkucHl0aG9uMjQudmVyc2lvbmluZyBhcyB2ZXJzaW9uaW5nCi0K
LSAgICB2ZXJzaW9uaW5nLmNoZWNrX3ZlcnNpb24obG9nPV9sb2cpCi0KLSAgICAoY29tcGFyaXNv
biwgY3VycmVudF92ZXJzaW9uLCBtaW5pbXVtX3ZlcnNpb24pID0gXAotICAgICAgICB2ZXJzaW9u
aW5nLmNvbXBhcmVfdmVyc2lvbigpCi0KLSAgICBpZiBjb21wYXJpc29uID4gMDoKLSAgICAgICAg
IyBUaGVuIHRoZSBjdXJyZW50IHZlcnNpb24gaXMgbGF0ZXIgdGhhbiB0aGUgbWluaW11bSB2ZXJz
aW9uLgotICAgICAgICBtZXNzYWdlID0gKCJZb3UgYXJlIHRlc3Rpbmcgd2Via2l0cHkgd2l0aCBh
IFB5dGhvbiB2ZXJzaW9uICglcykgIgotICAgICAgICAgICAgICAgICAgICJoaWdoZXIgdGhhbiB0
aGUgbWluaW11bSB2ZXJzaW9uICglcykgaXQgd2FzIG1lYW50ICIKLSAgICAgICAgICAgICAgICAg
ICAidG8gc3VwcG9ydC4iICUgKGN1cnJlbnRfdmVyc2lvbiwgbWluaW11bV92ZXJzaW9uKSkKLSAg
ICAgICAgX2xvZy53YXJuKG1lc3NhZ2UpCi0KLQotZGVmIF9wYXRoX2Zyb21fd2Via2l0X3Jvb3Qo
KmNvbXBvbmVudHMpOgotICAgIHdlYmtpdF9yb290ID0gb3MucGF0aC5kaXJuYW1lKG9zLnBhdGgu
ZGlybmFtZShvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pKSkKLSAgICByZXR1cm4gb3MucGF0aC5q
b2luKHdlYmtpdF9yb290LCAqY29tcG9uZW50cykKLQotCi1kZWYgX3Rlc3RfaW1wb3J0KG1vZHVs
ZV9wYXRoKToKLSAgICB0cnk6Ci0gICAgICAgIHN5cy5wYXRoLmFwcGVuZChvcy5wYXRoLmRpcm5h
bWUobW9kdWxlX3BhdGgpKQotICAgICAgICBtb2R1bGVfbmFtZSA9IG9zLnBhdGguYmFzZW5hbWUo
bW9kdWxlX3BhdGgpCi0gICAgICAgIF9faW1wb3J0X18obW9kdWxlX25hbWUpCi0gICAgICAgIHJl
dHVybiBUcnVlCi0gICAgZXhjZXB0IEV4Y2VwdGlvbiwgZToKLSAgICAgICAgbWVzc2FnZSA9ICJT
a2lwcGluZyB0ZXN0cyBpbiAlcyBkdWUgdG8gZmFpbHVyZSAoJXMpLiIgJSAobW9kdWxlX3BhdGgs
IGUpCi0gICAgICAgIGlmIG1vZHVsZV9uYW1lLmVuZHN3aXRoKCJRdWV1ZVN0YXR1c1NlcnZlciIp
OgotICAgICAgICAgICAgbWVzc2FnZSArPSAiICBUaGlzIG1vZHVsZSBpcyBvcHRpb25hbC4gIFRo
ZSBmYWlsdXJlIGlzIGxpa2VseSBkdWUgdG8gYSBtaXNzaW5nIEdvb2dsZSBBcHBFbmdpbmUgaW5z
dGFsbC4gIChodHRwOi8vY29kZS5nb29nbGUuY29tL2FwcGVuZ2luZS9kb3dubG9hZHMuaHRtbCki
Ci0gICAgICAgIF9sb2cud2FybihtZXNzYWdlKQotICAgICAgICByZXR1cm4gRmFsc2UKIAogaWYg
X19uYW1lX18gPT0gIl9fbWFpbl9fIjoKLSAgICAjIEZJWE1FOiBXZSBzaG91bGQgcHJvYmFibHkg
dGVzdCBlYWNoIHBhY2thZ2Ugc2VwYXJhdGVseSB0byBhdm9pZCBuYW1pbmcgY29uZmxpY3RzLgot
ICAgIGV4dGVybmFsX3BhY2thZ2VfcGF0aHMgPSBbCi0gICAgICAgIF9wYXRoX2Zyb21fd2Via2l0
X3Jvb3QoJ1dlYktpdDInLCAnU2NyaXB0cycsICd3ZWJraXQyJyksCi0gICAgICAgIF9wYXRoX2Zy
b21fd2Via2l0X3Jvb3QoJ1dlYktpdFRvb2xzJywgJ1F1ZXVlU3RhdHVzU2VydmVyJyksCi0gICAg
XQotICAgIGluaXQoc3lzLmFyZ3ZbMTpdLCBleHRlcm5hbF9wYWNrYWdlX3BhdGhzKQotCi0gICAg
IyBXZSBpbXBvcnQgdGhlIHVuaXQgdGVzdCBjb2RlIGFmdGVyIGluaXQoKSB0byBlbnN1cmUgdGhh
dCBhbnkKLSAgICAjIFB5dGhvbiB2ZXJzaW9uIHdhcm5pbmdzIGFyZSBkaXNwbGF5ZWQgaW4gY2Fz
ZSBhbiBlcnJvciBvY2N1cnMKLSAgICAjIHdoaWxlIGludGVycHJldGluZyB3ZWJraXRweS51bml0
dGVzdHMuICBUaGlzIGFsc28gYWxsb3dzCi0gICAgIyBsb2dnaW5nIHRvIGJlIGNvbmZpZ3VyZWQg
cHJpb3IgdG8gaW1wb3J0aW5nIC0tIGZvciBleGFtcGxlIHRvCi0gICAgIyBlbmFibGUgdGhlIGRp
c3BsYXkgb2YgYXV0b2luc3RhbGwgbG9nZ2luZy5sb2cgbWVzc2FnZXMgd2hpbGUKLSAgICAjIHJ1
bm5pbmcgdGhlIHVuaXQgdGVzdHMuCi0gICAgZnJvbSB3ZWJraXRweS50ZXN0Lm1haW4gaW1wb3J0
IFRlc3RlcgotCi0gICAgZXh0ZXJuYWxfcGFja2FnZV9wYXRocyA9IGZpbHRlcihfdGVzdF9pbXBv
cnQsIGV4dGVybmFsX3BhY2thZ2VfcGF0aHMpCi0KLSAgICBUZXN0ZXIoKS5ydW5fdGVzdHMoc3lz
LmFyZ3YsIGV4dGVybmFsX3BhY2thZ2VfcGF0aHMpCisgICAgdHJ5OgorICAgICAgICBUZXN0ZXIo
c3lzLnN0ZGVycikubWFpbigpCisgICAgZXhjZXB0IEtleWJvYXJkSW50ZXJydXB0OgorICAgICAg
ICBwcmludCAiXG5pbnRlcnJ1cHRlZCwgZXhpdGluZyIKKyAgICAgICAgcGFzcworICAgIGV4Y2Vw
dCBBc3NlcnRpb25FcnJvcjoKKyAgICAgICAgc3lzLmV4aXQoMSkKZGlmZiAtLWdpdCBhL1dlYktp
dFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL21ldGVy
ZWRfc3RyZWFtX3VuaXR0ZXN0LnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvbWV0ZXJlZF9zdHJlYW1fdW5pdHRlc3QucHkKaW5kZXgg
OTQyMWZmOGZhYTZlNmJlZjgzOWFmZmU3NTc1NjUxZjEzMjFlMmQ1MS4uM2RjZjRjMDdhMWEyM2Y4
MzdhZmFhY2IyMTNhOWU2NjQ0NmJiYTNkNCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvbWV0ZXJlZF9zdHJlYW1fdW5p
dHRlc3QucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
bGF5b3V0X3BhY2thZ2UvbWV0ZXJlZF9zdHJlYW1fdW5pdHRlc3QucHkKQEAgLTk4LDEzICs5OCwx
OSBAQCBjbGFzcyBUZXN0TWV0ZXJlZFN0cmVhbSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAKICAgICAg
ICAgaW1wb3J0IGxvZ2dpbmcKICAgICAgICAgYiA9IEFycmF5U3RyZWFtKCkKKyAgICAgICAgb2xk
X2xldmVsID0gTm9uZQogICAgICAgICBsb2dnZXIgPSBsb2dnaW5nLmdldExvZ2dlcigpCiAgICAg
ICAgIGhhbmRsZXIgPSBsb2dnaW5nLlN0cmVhbUhhbmRsZXIoYikKICAgICAgICAgbG9nZ2VyLmFk
ZEhhbmRsZXIoaGFuZGxlcikKLSAgICAgICAgbS51cGRhdGUoImJhciIpCi0gICAgICAgIGxvZ2dl
ci5oYW5kbGVycy5yZW1vdmUoaGFuZGxlcikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoYS5n
ZXQoKSwgWydmb28nXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoYi5nZXQoKSwgWydiYXJc
biddKQorICAgICAgICBvbGRfbGV2ZWwgPSBsb2dnZXIubGV2ZWwKKyAgICAgICAgdHJ5OgorICAg
ICAgICAgICAgbG9nZ2VyLnNldExldmVsKGxvZ2dpbmcuTk9UU0VUKQorICAgICAgICAgICAgbS51
cGRhdGUoImJhciIpCisgICAgICAgICAgICBsb2dnZXIuaGFuZGxlcnMucmVtb3ZlKGhhbmRsZXIp
CisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhhLmdldCgpLCBbJ2ZvbyddKQorICAgICAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoYi5nZXQoKSwgWydiYXJcbiddKQorICAgICAgICBmaW5h
bGx5OgorICAgICAgICAgICAgbG9nZ2VyLnNldExldmVsKG9sZF9sZXZlbCkKIAogICAgICAgICBt
LnByb2dyZXNzKCJkcm9wcGVkIikKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoYS5nZXQoKSwg
Wydmb28nXSkKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL2xheW91dF9wYWNrYWdlL3ByaW50aW5nX3VuaXR0ZXN0LnB5IGIvV2ViS2l0VG9vbHMv
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvcHJpbnRpbmdfdW5p
dHRlc3QucHkKaW5kZXggOWEwZjRlZWEyMDhkMjFjZjg4ZWY4ZDVlZWFmMTQ4M2E1MTE2MThlMy4u
OWVhMzc5ZjBiZTNlNTJjZTk4M2I1ODVkZjYwZTA0N2I2MGJmN2Q2OCAxMDA2NDQKLS0tIGEvV2Vi
S2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvcHJp
bnRpbmdfdW5pdHRlc3QucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvcHJpbnRpbmdfdW5pdHRlc3QucHkKQEAgLTE2MCw3ICsx
NjAsNyBAQCBjbGFzcyAgVGVzdHByaW50ZXIodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICAj
IEhlcmUgYW5kIGJlbG93IHdlJ2xsIGNhbGwgdGhlICJyZWd1bGFyIiBwcmludGVyIGVyciBhbmQg
dGhlCiAgICAgICAgICMgYnVpbGRib3QgcHJpbnRlciBvdXQ7IHRoaXMgY29ycmVzcG9uZHMgdG8g
aG93IHRoaW5ncyBydW4gb24gdGhlCiAgICAgICAgICMgYm90cyB3aXRoIHN0ZGVyciBhbmQgc3Rk
b3V0LgotICAgICAgICBwcmludGVyLCBlcnIsIG91dCA9IHNlbGYuZ2V0X3ByaW50ZXIoKQorICAg
ICAgICBwcmludGVyLCBlcnIsIG91dCA9IHNlbGYuZ2V0X3ByaW50ZXIoW10pCiAKICAgICAgICAg
IyBUaGlzIHJvdXRpbmUgc2hvdWxkIHByaW50IHNvbWV0aGluZyB0byBzdGRvdXQuIHRlc3Rpbmcg
d2hhdCBpdCBpcwogICAgICAgICAjIGlzIGtpbmQgb2YgcG9pbnRsZXNzLgpkaWZmIC0tZ2l0IGEv
V2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90ZXN0L21haW4ucHkgYi9XZWJLaXRUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L3Rlc3QvbWFpbi5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMTAzOGQ4MmU3MDk5MTk4ZTM2M2NjODZmZWMzMGZjZTE3YWE3MDg1MC4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dl
YmtpdHB5L3Rlc3QvbWFpbi5weQorKysgL2Rldi9udWxsCkBAIC0xLDE0MCArMCwwIEBACi0jIENv
cHlyaWdodCAoQykgMjAxMCBDaHJpcyBKZXJkb25layAoY2plcmRvbmVrQHdlYmtpdC5vcmcpCi0j
Ci0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSMgYXJlIG1ldDoKLSMgMS4gIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0jIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotIyAgICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKLSMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSMgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRQotIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgotIyBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCi0jIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SCi0jIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCi0jIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
Ci0jIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLSIiIkNvbnRhaW5zIHRo
ZSBlbnRyeSBtZXRob2QgZm9yIHRlc3Qtd2Via2l0cHkuIiIiCi0KLWltcG9ydCBsb2dnaW5nCi1p
bXBvcnQgb3MKLWltcG9ydCBzeXMKLWltcG9ydCB1bml0dGVzdAotCi1pbXBvcnQgd2Via2l0cHkK
LQotCi1fbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18pCi0KLQotY2xhc3MgVGVzdGVy
KG9iamVjdCk6Ci0KLSAgICAiIiJEaXNjb3ZlcnMgYW5kIHJ1bnMgd2Via2l0cHkgdW5pdCB0ZXN0
cy4iIiIKLQotICAgIGRlZiBfZmluZF91bml0dGVzdF9maWxlcyhzZWxmLCB3ZWJraXRweV9kaXIp
OgotICAgICAgICAiIiJSZXR1cm4gYSBsaXN0IG9mIHBhdGhzIHRvIGFsbCB1bml0LXRlc3QgZmls
ZXMuIiIiCi0gICAgICAgIHVuaXR0ZXN0X3BhdGhzID0gW10gICMgUmV0dXJuIHZhbHVlLgotCi0g
ICAgICAgIGZvciBkaXJfcGF0aCwgZGlyX25hbWVzLCBmaWxlX25hbWVzIGluIG9zLndhbGsod2Vi
a2l0cHlfZGlyKToKLSAgICAgICAgICAgIGZvciBmaWxlX25hbWUgaW4gZmlsZV9uYW1lczoKLSAg
ICAgICAgICAgICAgICBpZiBub3QgZmlsZV9uYW1lLmVuZHN3aXRoKCJfdW5pdHRlc3QucHkiKToK
LSAgICAgICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAgICAgICB1bml0dGVzdF9w
YXRoID0gb3MucGF0aC5qb2luKGRpcl9wYXRoLCBmaWxlX25hbWUpCi0gICAgICAgICAgICAgICAg
dW5pdHRlc3RfcGF0aHMuYXBwZW5kKHVuaXR0ZXN0X3BhdGgpCi0KLSAgICAgICAgcmV0dXJuIHVu
aXR0ZXN0X3BhdGhzCi0KLSAgICBkZWYgX21vZHVsZXNfZnJvbV9wYXRocyhzZWxmLCBwYWNrYWdl
X3Jvb3QsIHBhdGhzKToKLSAgICAgICAgIiIiUmV0dXJuIGEgbGlzdCBvZiBmdWxseS1xdWFsaWZp
ZWQgbW9kdWxlIG5hbWVzIGdpdmVuIHBhdGhzLiIiIgotICAgICAgICBwYWNrYWdlX3BhdGggPSBv
cy5wYXRoLmFic3BhdGgocGFja2FnZV9yb290KQotICAgICAgICByb290X3BhY2thZ2VfbmFtZSA9
IG9zLnBhdGguc3BsaXQocGFja2FnZV9wYXRoKVsxXSAgIyBFcXVhbHMgIndlYmtpdHB5Ii4KLQot
ICAgICAgICBwcmVmaXhfbGVuZ3RoID0gbGVuKHBhY2thZ2VfcGF0aCkKLQotICAgICAgICBtb2R1
bGVzID0gW10KLSAgICAgICAgZm9yIHBhdGggaW4gcGF0aHM6Ci0gICAgICAgICAgICBwYXRoID0g
b3MucGF0aC5hYnNwYXRoKHBhdGgpCi0gICAgICAgICAgICAjIFRoaXMgZ2l2ZXMgdXMsIGZvciBl
eGFtcGxlOiAvY29tbW9uL2NvbmZpZy9wb3J0c191bml0dGVzdC5weQotICAgICAgICAgICAgcmVs
X3BhdGggPSBwYXRoW3ByZWZpeF9sZW5ndGg6XQotICAgICAgICAgICAgIyBUaGlzIGdpdmVzIHVz
LCBmb3IgZXhhbXBsZTogL2NvbW1vbi9jb25maWcvcG9ydHNfdW5pdHRlc3QKLSAgICAgICAgICAg
IHJlbF9wYXRoID0gb3MucGF0aC5zcGxpdGV4dChyZWxfcGF0aClbMF0KLQotICAgICAgICAgICAg
cGFydHMgPSBbXQotICAgICAgICAgICAgd2hpbGUgVHJ1ZToKLSAgICAgICAgICAgICAgICAocmVs
X3BhdGgsIHRhaWwpID0gb3MucGF0aC5zcGxpdChyZWxfcGF0aCkKLSAgICAgICAgICAgICAgICBp
ZiBub3QgdGFpbDoKLSAgICAgICAgICAgICAgICAgICAgYnJlYWsKLSAgICAgICAgICAgICAgICBw
YXJ0cy5pbnNlcnQoMCwgdGFpbCkKLSAgICAgICAgICAgICMgV2Ugbm93IGhhdmUsIGZvciBleGFt
cGxlOiBjb21tb24uY29uZmlnLnBvcnRzX3VuaXR0ZXN0Ci0gICAgICAgICAgICAjIEZJWE1FOiBU
aGlzIGlzIGFsbCBhIGhhY2sgYXJvdW5kIHRoZSBmYWN0IHRoYXQgd2UgYWx3YXlzIHByZWZpeCB3
ZWJraXRweSBpbmNsdWRlcyB3aXRoICJ3ZWJraXRweS4iCi0gICAgICAgICAgICBwYXJ0cy5pbnNl
cnQoMCwgcm9vdF9wYWNrYWdlX25hbWUpICAjIFB1dCAid2Via2l0cHkiIGF0IHRoZSBiZWdpbm5p
bmcuCi0gICAgICAgICAgICBtb2R1bGUgPSAiLiIuam9pbihwYXJ0cykKLSAgICAgICAgICAgIG1v
ZHVsZXMuYXBwZW5kKG1vZHVsZSkKLQotICAgICAgICByZXR1cm4gbW9kdWxlcwotCi0gICAgZGVm
IHJ1bl90ZXN0cyhzZWxmLCBzeXNfYXJndiwgZXh0ZXJuYWxfcGFja2FnZV9wYXRocz1Ob25lKToK
LSAgICAgICAgIiIiUnVuIHRoZSB1bml0IHRlc3RzIGluIGFsbCAqX3VuaXR0ZXN0LnB5IG1vZHVs
ZXMgaW4gd2Via2l0cHkuCi0KLSAgICAgICAgVGhpcyBtZXRob2QgZXhjbHVkZXMgIndlYmtpdHB5
LmNvbW1vbi5jaGVja291dC5zY21fdW5pdHRlc3QiIHVubGVzcwotICAgICAgICB0aGUgLS1hbGwg
b3B0aW9uIGlzIHRoZSBzZWNvbmQgZWxlbWVudCBvZiBzeXNfYXJndi4KLQotICAgICAgICBBcmdz
OgotICAgICAgICAgIHN5c19hcmd2OiBBIHJlZmVyZW5jZSB0byBzeXMuYXJndi4KLQotICAgICAg
ICAiIiIKLSAgICAgICAgaWYgZXh0ZXJuYWxfcGFja2FnZV9wYXRocyBpcyBOb25lOgotICAgICAg
ICAgICAgZXh0ZXJuYWxfcGFja2FnZV9wYXRocyA9IFtdCi0gICAgICAgIGVsc2U6Ci0gICAgICAg
ICAgICAjIEZJWE1FOiBXZSBzaG91bGQgY29uc2lkZXIgbW92aW5nIHdlYmtpdHB5IG9mZiBvZiB1
c2luZyAid2Via2l0cHkuIiB0byBwcmVmaXgKLSAgICAgICAgICAgICMgYWxsIGluY2x1ZGVzLiAg
SWYgd2UgZGlkIHRoYXQsIHRoZW4gdGhpcyB3b3VsZCB1c2UgcGF0aCBpbnN0ZWFkIG9mIGRpcm5h
bWUocGF0aCkuCi0gICAgICAgICAgICAjIFF1ZXVlU3RhdHVzU2VydmVyLl9faW5pdF9fIGhhcyBh
IHN5cy5wYXRoIGltcG9ydCBoYWNrIGR1ZSB0byB0aGlzIGNvZGUuCi0gICAgICAgICAgICBzeXMu
cGF0aC5leHRlbmQoc2V0KG9zLnBhdGguZGlybmFtZShwYXRoKSBmb3IgcGF0aCBpbiBleHRlcm5h
bF9wYWNrYWdlX3BhdGhzKSkKLQotICAgICAgICBpZiBsZW4oc3lzX2FyZ3YpID4gMSBhbmQgbm90
IHN5c19hcmd2Wy0xXS5zdGFydHN3aXRoKCItIik6Ci0gICAgICAgICAgICAjIFRoZW4gZXhwbGlj
aXQgbW9kdWxlcyBvciB0ZXN0IG5hbWVzIHdlcmUgcHJvdmlkZWQsIHdoaWNoCi0gICAgICAgICAg
ICAjIHRoZSB1bml0dGVzdCBtb2R1bGUgaXMgZXF1aXBwZWQgdG8gaGFuZGxlLgotICAgICAgICAg
ICAgdW5pdHRlc3QubWFpbihhcmd2PXN5c19hcmd2LCBtb2R1bGU9Tm9uZSkKLSAgICAgICAgICAg
ICMgTm8gbmVlZCB0byByZXR1cm4gc2luY2UgdW5pdHR0ZXN0Lm1haW4oKSBleGl0cy4KLQotICAg
ICAgICAjIE90aGVyd2lzZSwgYXV0by1kZXRlY3QgYWxsIHVuaXQgdGVzdHMuCi0KLSAgICAgICAg
IyBGSVhNRTogVGhpcyBzaG91bGQgYmUgY29tYmluZWQgd2l0aCB0aGUgZXh0ZXJuYWxfcGFja2Fn
ZV9wYXRocyBjb2RlIGFib3ZlLgotICAgICAgICB3ZWJraXRweV9kaXIgPSBvcy5wYXRoLmRpcm5h
bWUod2Via2l0cHkuX19maWxlX18pCi0KLSAgICAgICAgbW9kdWxlcyA9IFtdCi0gICAgICAgIGZv
ciBwYXRoIGluIFt3ZWJraXRweV9kaXJdICsgZXh0ZXJuYWxfcGFja2FnZV9wYXRoczoKLSAgICAg
ICAgICAgIG1vZHVsZXMuZXh0ZW5kKHNlbGYuX21vZHVsZXNfZnJvbV9wYXRocyhwYXRoLCBzZWxm
Ll9maW5kX3VuaXR0ZXN0X2ZpbGVzKHBhdGgpKSkKLSAgICAgICAgbW9kdWxlcy5zb3J0KCkKLQot
ICAgICAgICAjIFRoaXMgaXMgYSBzYW5pdHkgY2hlY2sgdG8gZW5zdXJlIHRoYXQgdGhlIHVuaXQt
dGVzdCBkaXNjb3ZlcnkKLSAgICAgICAgIyBtZXRob2RzIGFyZSB3b3JraW5nLgotICAgICAgICBp
ZiBsZW4obW9kdWxlcykgPCAxOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJObyB1bml0
LXRlc3QgbW9kdWxlcyBmb3VuZC4iKQotCi0gICAgICAgIGZvciBtb2R1bGUgaW4gbW9kdWxlczoK
LSAgICAgICAgICAgIF9sb2cuZGVidWcoIkZvdW5kOiAlcyIgJSBtb2R1bGUpCi0KLSAgICAgICAg
IyBGSVhNRTogVGhpcyBpcyBhIGhhY2ssIGJ1dCBJJ20gdGlyZWQgb2YgY29tbWVudGluZyBvdXQg
dGhlIHRlc3QuCi0gICAgICAgICMgICAgICAgIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MzE4MTgKLSAgICAgICAgaWYgbGVuKHN5c19hcmd2KSA+IDEgYW5kIHN5
cy5hcmd2WzFdID09ICItLWFsbCI6Ci0gICAgICAgICAgICBzeXMuYXJndi5yZW1vdmUoIi0tYWxs
IikKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGV4Y2x1ZGVkX21vZHVsZSA9ICJ3ZWJraXRw
eS5jb21tb24uY2hlY2tvdXQuc2NtX3VuaXR0ZXN0IgotICAgICAgICAgICAgX2xvZy5pbmZvKCJF
eGNsdWRpbmc6ICVzICh1c2UgLS1hbGwgdG8gaW5jbHVkZSkiICUgZXhjbHVkZWRfbW9kdWxlKQot
ICAgICAgICAgICAgbW9kdWxlcy5yZW1vdmUoZXhjbHVkZWRfbW9kdWxlKQotCi0gICAgICAgIHN5
c19hcmd2LmV4dGVuZChtb2R1bGVzKQotCi0gICAgICAgICMgV2UgcGFzcyBOb25lIGZvciB0aGUg
bW9kdWxlIGJlY2F1c2Ugd2UgZG8gbm90IHdhbnQgdGhlIHVuaXR0ZXN0Ci0gICAgICAgICMgbW9k
dWxlIHRvIHJlc29sdmUgbW9kdWxlIG5hbWVzIHJlbGF0aXZlIHRvIGEgZ2l2ZW4gbW9kdWxlLgot
ICAgICAgICAjIChUaGlzIHdvdWxkIHJlcXVpcmUgaW1wb3J0aW5nIGFsbCBvZiB0aGUgdW5pdHRl
c3QgbW9kdWxlcyBmcm9tCi0gICAgICAgICMgdGhpcyBtb2R1bGUuKSAgU2VlIHRoZSBsb2FkVGVz
dHNGcm9tTmFtZSgpIG1ldGhvZCBvZiB0aGUKLSAgICAgICAgIyB1bml0dGVzdC5UZXN0TG9hZGVy
IGNsYXNzIGZvciBtb3JlIGRldGFpbHMgb24gdGhpcyBwYXJhbWV0ZXIuCi0gICAgICAgIHVuaXR0
ZXN0Lm1haW4oYXJndj1zeXNfYXJndiwgbW9kdWxlPU5vbmUpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>