<?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>82253</bug_id>
          
          <creation_ts>2012-03-26 16:07:42 -0700</creation_ts>
          <short_desc>test-webkitpy: split test-finding code into a different module</short_desc>
          <delta_ts>2012-03-26 16:36:17 -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>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</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>
          <cc>abarth</cc>
    
    <cc>ojan</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>588259</commentid>
    <comment_count>0</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-03-26 16:07:42 -0700</bug_when>
    <thetext>test-webkitpy: split test-finding code into a different module</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>588264</commentid>
    <comment_count>1</comment_count>
      <attachid>133919</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-03-26 16:10:08 -0700</bug_when>
    <thetext>Created attachment 133919
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>588273</commentid>
    <comment_count>2</comment_count>
      <attachid>133919</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-03-26 16:21:49 -0700</bug_when>
    <thetext>Comment on attachment 133919
Patch

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

&gt; Tools/Scripts/webkitpy/test/main.py:-33
&gt; -# NOTE: We intentionally do not depend on anything else in webkitpy here to avoid breaking test-webkitpy.

:)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>588287</commentid>
    <comment_count>3</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-03-26 16:31:15 -0700</bug_when>
    <thetext>Committed r112168: &lt;http://trac.webkit.org/changeset/112168&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>588293</commentid>
    <comment_count>4</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-03-26 16:36:17 -0700</bug_when>
    <thetext>Committed r112171: &lt;http://trac.webkit.org/changeset/112171&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>133919</attachid>
            <date>2012-03-26 16:10:08 -0700</date>
            <delta_ts>2012-03-26 16:21:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-82253-20120326161007.patch</filename>
            <type>text/plain</type>
            <size>20122</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEyMTUwCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggY2ViOTUwYWVhOWRmODljOTAyMjNjYjM5ZThkNmNjN2Qy
MDgyZDc4Ny4uYTQzY2I5MmU2MDQzODg2Y2ZmNDUzZjc5NDQ3MmEzYjM1MzQ2NGMwNSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDU4
IEBACiAyMDEyLTAzLTI2ICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgogCisg
ICAgICAgIHRlc3Qtd2Via2l0cHk6IHNwbGl0IHRlc3QtZmluZGluZyBjb2RlIGludG8gYSBkaWZm
ZXJlbnQgbW9kdWxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD04MjI1MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFBlciBzdWdnZXN0aW9uIGZyb20gYWJhcnRoLCB0aGlzIGNoYW5nZSBzcGxpdHMgYWxsIHRo
ZQorICAgICAgICBmaWxlc3lzdGVtLWNyYXdsaW5nLCB0ZXN0LWZpbmRpbmcgY29kZSBpbiB0ZXN0
LXdlYmtpdHB5IG91dCBpbnRvCisgICAgICAgIGEgc2VwYXJhdGUgbW9kdWxlIGFuZCBzd2l0Y2hl
cyB0byB1c2luZyBhIEZpbGVTeXN0ZW0gb2JqZWN0LgorICAgICAgICBUaGlzIG1ha2VzIHRoaW5n
cyBtdWNoIG1vcmUgdGVzdGFibGUsIHNvIHdlIGFsc28gYWRkIHRlc3RzIDopLgorCisgICAgICAg
IFdlIGFsc28gYWRkIGEgcmVhbHBhdGgoKSBtZXRob2QgdG8gdGhlIEZpbGVzeXN0ZW0gb2JqZWN0
LCBzaW5jZQorICAgICAgICB0ZXN0LXdlYmtpdHB5IG5lZWRzIHRoYXQgaW4gb3JkZXIgdG8gYmUg
YWJsZSB0byByZXNvbHZlIHN5bWxpbmtzCisgICAgICAgIHByb3Blcmx5IHRvIGRldGVybWluZSB3
aGV0aGVyIGEgZmlsZSBpcyB1bmRlciBhIHBhcnRpY3VsYXIgdHJlZQorICAgICAgICBvciBub3Qu
CisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vZmlsZXN5c3RlbS5w
eToKKyAgICAgICAgKEZpbGVTeXN0ZW0ucmVhbHBhdGgpOgorICAgICAgICAqIFNjcmlwdHMvd2Vi
a2l0cHkvY29tbW9uL3N5c3RlbS9maWxlc3lzdGVtX21vY2sucHk6CisgICAgICAgIChNb2NrRmls
ZVN5c3RlbS5yZWFscGF0aCk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90ZXN0L21haW4u
cHk6CisgICAgICAgIChUZXN0ZXIuX19pbml0X18pOgorICAgICAgICAoVGVzdGVyLmFkZF90cmVl
KToKKyAgICAgICAgKFRlc3Rlci5ydW4pOgorICAgICAgICAoVGVzdGVyLl9ydW5fdGVzdHMpOgor
ICAgICAgICAoVGVzdGVyLl9sb2dfZXhjZXB0aW9uKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dHB5L3Rlc3QvdGVzdF9maW5kZXIucHk6IEFkZGVkLgorICAgICAgICAoVGVzdERpcmVjdG9yeVRy
ZWUpOgorICAgICAgICAoVGVzdERpcmVjdG9yeVRyZWUuX19pbml0X18pOgorICAgICAgICAoVGVz
dERpcmVjdG9yeVRyZWUuZmluZF9tb2R1bGVzKToKKyAgICAgICAgKFRlc3REaXJlY3RvcnlUcmVl
LmZpbmRfbW9kdWxlcy5maWxlX2ZpbHRlcik6CisgICAgICAgIChUZXN0RGlyZWN0b3J5VHJlZS50
b19tb2R1bGUpOgorICAgICAgICAoVGVzdERpcmVjdG9yeVRyZWUuY2xlYW4pOgorICAgICAgICAo
VGVzdEZpbmRlcik6CisgICAgICAgIChUZXN0RmluZGVyLl9faW5pdF9fKToKKyAgICAgICAgKFRl
c3RGaW5kZXIuYWRkX3RyZWUpOgorICAgICAgICAoVGVzdEZpbmRlci5hZGRpdGlvbmFsX3BhdGhz
KToKKyAgICAgICAgKFRlc3RGaW5kZXIuY2xlYW5fdHJlZXMpOgorICAgICAgICAoVGVzdEZpbmRl
ci5pc19tb2R1bGUpOgorICAgICAgICAoVGVzdEZpbmRlci50b19tb2R1bGUpOgorICAgICAgICAo
VGVzdEZpbmRlci5maW5kX25hbWVzKToKKyAgICAgICAgKFRlc3RGaW5kZXIuX2V4Y2x1ZGUpOgor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdGVzdC90ZXN0X2ZpbmRlcl91bml0dGVzdC5weTog
QWRkZWQuCisgICAgICAgIChUZXN0RmluZGVyVGVzdCk6CisgICAgICAgIChUZXN0RmluZGVyVGVz
dC5zZXRVcCk6CisgICAgICAgIChUZXN0RmluZGVyVGVzdC50ZWFyRG93bik6CisgICAgICAgIChU
ZXN0RmluZGVyVGVzdC50ZXN0X2FkZGl0aW9uYWxfc3lzdGVtX3BhdGhzKToKKyAgICAgICAgKFRl
c3RGaW5kZXJUZXN0LnRlc3RfaXNfbW9kdWxlKToKKyAgICAgICAgKFRlc3RGaW5kZXJUZXN0LnRl
c3RfdG9fbW9kdWxlKToKKyAgICAgICAgKFRlc3RGaW5kZXJUZXN0LnRlc3RfY2xlYW4pOgorICAg
ICAgICAoVGVzdEZpbmRlclRlc3QudGVzdF9maW5kX25hbWVzKToKKworMjAxMi0wMy0yNiAgRGly
ayBQcmFua2UgIDxkcHJhbmtlQGNocm9taXVtLm9yZz4KKwogICAgICAgICBhZGQgYSBUcmVlIGFi
c3RyYWN0aW9uIHRvIHRlc3Qtd2Via2l0cHkgdG8gYmV0dGVyIGVuY2Fwc3VsYXRlIHRoaW5ncwog
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODIxNTgKIApk
aWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2ZpbGVzeXN0
ZW0ucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vZmlsZXN5c3RlbS5w
eQppbmRleCBjM2E2OWE1MWUzNzIzNThmNGMxYjY3ZjdiZTlkMGY1MDE5MzEwMjdkLi42ODdhMzEz
MjI0ZTZlMDE0M2IwODA1MDRjODdmYmE4NjE2MGNmZjFlIDEwMDY0NAotLS0gYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vZmlsZXN5c3RlbS5weQorKysgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vZmlsZXN5c3RlbS5weQpAQCAtNTUsNiArNTUsOSBA
QCBjbGFzcyBGaWxlU3lzdGVtKG9iamVjdCk6CiAgICAgZGVmIGFic3BhdGgoc2VsZiwgcGF0aCk6
CiAgICAgICAgIHJldHVybiBvcy5wYXRoLmFic3BhdGgocGF0aCkKIAorICAgIGRlZiByZWFscGF0
aChzZWxmLCBwYXRoKToKKyAgICAgICAgcmV0dXJuIG9zLnBhdGgucmVhbHBhdGgocGF0aCkKKwog
ICAgIGRlZiBwYXRoX3RvX21vZHVsZShzZWxmLCBtb2R1bGVfbmFtZSk6CiAgICAgICAgICIiIkEg
d3JhcHBlciBmb3IgYWxsIGNhbGxzIHRvIF9fZmlsZV9fIHRvIGFsbG93IGVhc3kgdW5pdCB0ZXN0
aW5nLiIiIgogICAgICAgICAjIEZJWE1FOiBUaGlzIGlzIHRoZSBvbmx5IHVzZSBvZiBzeXMgaW4g
dGhpcyBmaWxlLiBJdCdzIHBvc3NpYmxlIHRoaXMgZnVuY3Rpb24gc2hvdWxkIG1vdmUgZWxzZXdo
ZXJlLgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2Zp
bGVzeXN0ZW1fbW9jay5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9m
aWxlc3lzdGVtX21vY2sucHkKaW5kZXggMmZmNjg4YWY3ZWY4NDFkZjg5ZWZmNDc4MDQwNDBhZWNk
YWMzMmU1Yi4uODg5OTY2ODdjMTlhMGZjYzgwNTE3MGQ4NTU0MTMwMjdiNjQ4MTcwNyAxMDA2NDQK
LS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2ZpbGVzeXN0ZW1fbW9j
ay5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vZmlsZXN5c3Rl
bV9tb2NrLnB5CkBAIC04Miw2ICs4Miw5IEBAIGNsYXNzIE1vY2tGaWxlU3lzdGVtKG9iamVjdCk6
CiAgICAgICAgICAgICByZXR1cm4gc2VsZi5ub3JtcGF0aChwYXRoKQogICAgICAgICByZXR1cm4g
c2VsZi5hYnNwYXRoKHNlbGYuam9pbihzZWxmLmN3ZCwgcGF0aCkpCiAKKyAgICBkZWYgcmVhbHBh
dGgoc2VsZiwgcGF0aCk6CisgICAgICAgIHJldHVybiBzZWxmLmFic3BhdGgocGF0aCkKKwogICAg
IGRlZiBiYXNlbmFtZShzZWxmLCBwYXRoKToKICAgICAgICAgcmV0dXJuIHNlbGYuX3NwbGl0KHBh
dGgpWzFdCiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdGVzdC9tYWluLnB5
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90ZXN0L21haW4ucHkKaW5kZXggNGJmYTA4NzQwYzI5
MWFmNjZiMjRlY2I0ZjUxMzAyMWU3NTBhZTlmNC4uYjJlYmFiZTRjZjE5ZmNiZDBiMTJiNjIwNGU0
MTM5NGZiYzlmZGMxNCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90ZXN0L21h
aW4ucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90ZXN0L21haW4ucHkKQEAgLTMwLDE4
ICszMCwxOSBAQCBpbXBvcnQgc3lzCiBpbXBvcnQgdHJhY2ViYWNrCiBpbXBvcnQgdW5pdHRlc3QK
IAotIyBOT1RFOiBXZSBpbnRlbnRpb25hbGx5IGRvIG5vdCBkZXBlbmQgb24gYW55dGhpbmcgZWxz
ZSBpbiB3ZWJraXRweSBoZXJlIHRvIGF2b2lkIGJyZWFraW5nIHRlc3Qtd2Via2l0cHkuCitmcm9t
IHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZmlsZXN5c3RlbSBpbXBvcnQgRmlsZVN5c3RlbQorZnJv
bSB3ZWJraXRweS50ZXN0LnRlc3RfZmluZGVyIGltcG9ydCBUZXN0RmluZGVyCiAKIF9sb2cgPSBs
b2dnaW5nLmdldExvZ2dlcihfX25hbWVfXykKIAogCiBjbGFzcyBUZXN0ZXIob2JqZWN0KToKLSAg
ICBkZWYgX19pbml0X18oc2VsZik6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGZpbGVzeXN0ZW09
Tm9uZSk6CiAgICAgICAgIHNlbGYuX3ZlcmJvc2l0eSA9IDEKLSAgICAgICAgc2VsZi5fdHJlZXMg
PSBbXQorICAgICAgICBzZWxmLmZpbmRlciA9IFRlc3RGaW5kZXIoZmlsZXN5c3RlbSBvciBGaWxl
U3lzdGVtKCkpCiAKICAgICBkZWYgYWRkX3RyZWUoc2VsZiwgdG9wX2RpcmVjdG9yeSwgc3RhcnRp
bmdfc3ViZGlyZWN0b3J5PU5vbmUpOgotICAgICAgICBzZWxmLl90cmVlcy5hcHBlbmQoVGVzdERp
cmVjdG9yeVRyZWUodG9wX2RpcmVjdG9yeSwgc3RhcnRpbmdfc3ViZGlyZWN0b3J5KSkKKyAgICAg
ICAgc2VsZi5maW5kZXIuYWRkX3RyZWUodG9wX2RpcmVjdG9yeSwgc3RhcnRpbmdfc3ViZGlyZWN0
b3J5KQogCiAgICAgZGVmIF9wYXJzZV9hcmdzKHNlbGYpOgogICAgICAgICBwYXJzZXIgPSBvcHRw
YXJzZS5PcHRpb25QYXJzZXIodXNhZ2U9J3VzYWdlOiAlcHJvZyBbb3B0aW9uc10gW2FyZ3MuLi5d
JykKQEAgLTEzNiw0OSArMTM3LDEwIEBAIGNsYXNzIFRlc3RlcihvYmplY3QpOgogICAgICAgICBv
cHRpb25zLCBhcmdzID0gc2VsZi5fcGFyc2VfYXJncygpCiAgICAgICAgIHNlbGYuX2NvbmZpZ3Vy
ZShvcHRpb25zKQogCi0gICAgICAgIGZvciB0cmVlIGluIHNlbGYuX3RyZWVzOgotICAgICAgICAg
ICAgdHJlZS5jbGVhbigpCisgICAgICAgIHNlbGYuZmluZGVyLmNsZWFuX3RyZWVzKCkKIAotICAg
ICAgICBhcmdzID0gYXJncyBvciBzZWxmLl9maW5kX21vZHVsZXMoKQotICAgICAgICByZXR1cm4g
c2VsZi5fcnVuX3Rlc3RzKGFyZ3MpCi0KLSAgICBkZWYgX2ZpbmRfbW9kdWxlcyhzZWxmKToKLSAg
ICAgICAgc3VmZml4ZXMgPSBbJ191bml0dGVzdC5weSddCi0gICAgICAgIGlmIG5vdCBzZWxmLl9v
cHRpb25zLnNraXBfaW50ZWdyYXRpb250ZXN0czoKLSAgICAgICAgICAgIHN1ZmZpeGVzLmFwcGVu
ZCgnX2ludGVncmF0aW9udGVzdC5weScpCi0KLSAgICAgICAgbW9kdWxlcyA9IFtdCi0gICAgICAg
IGZvciB0cmVlIGluIHNlbGYuX3RyZWVzOgotICAgICAgICAgICAgbW9kdWxlcy5leHRlbmQodHJl
ZS5maW5kX21vZHVsZXMoc3VmZml4ZXMpKQotICAgICAgICBtb2R1bGVzLnNvcnQoKQotCi0gICAg
ICAgIGZvciBtb2R1bGUgaW4gbW9kdWxlczoKLSAgICAgICAgICAgIF9sb2cuZGVidWcoIkZvdW5k
OiAlcyIgJSBtb2R1bGUpCi0KLSAgICAgICAgIyBGSVhNRTogRmlndXJlIG91dCBob3cgdG8gbW92
ZSB0aGlzIHRvIHRlc3Qtd2Via2l0cHkgaW4gb3JkZXIgdG8gdG8gbWFrZSB0aGlzIGZpbGUgbW9y
ZSBnZW5lcmljLgotICAgICAgICBpZiBub3Qgc2VsZi5fb3B0aW9ucy5hbGw6Ci0gICAgICAgICAg
ICBzbG93X3Rlc3RzID0gKCd3ZWJraXRweS5jb21tb24uY2hlY2tvdXQuc2NtLnNjbV91bml0dGVz
dCcsKQotICAgICAgICAgICAgc2VsZi5fZXhjbHVkZShtb2R1bGVzLCBzbG93X3Rlc3RzLCAnYXJl
IHJlYWxseSwgcmVhbGx5IHNsb3cnLCAzMTgxOCkKLQotICAgICAgICAgICAgaWYgc3lzLnBsYXRm
b3JtID09ICd3aW4zMic6Ci0gICAgICAgICAgICAgICAgd2luMzJfYmxhY2tsaXN0ID0gKCd3ZWJr
aXRweS5jb21tb24uY2hlY2tvdXQnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAnd2Via2l0cHkuY29tbW9uLmNvbmZpZycsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICd3ZWJraXRweS50b29sJykKLSAgICAgICAgICAgICAgICBzZWxmLl9leGNsdWRlKG1v
ZHVsZXMsIHdpbjMyX2JsYWNrbGlzdCwgJ2ZhaWwgaG9ycmlibHkgb24gd2luMzInLCA1NDUyNikK
LQotICAgICAgICByZXR1cm4gbW9kdWxlcwotCi0gICAgZGVmIF9leGNsdWRlKHNlbGYsIG1vZHVs
ZXMsIG1vZHVsZV9wcmVmaXhlcywgcmVhc29uLCBidWdpZCk6Ci0gICAgICAgIF9sb2cuaW5mbygn
U2tpcHBpbmcgdGVzdHMgaW4gdGhlIGZvbGxvd2luZyBtb2R1bGVzIG9yIHBhY2thZ2VzIGJlY2F1
c2UgdGhleSAlczonICUgcmVhc29uKQotICAgICAgICBmb3IgcHJlZml4IGluIG1vZHVsZV9wcmVm
aXhlczoKLSAgICAgICAgICAgIF9sb2cuaW5mbygnICAgICVzJyAlIHByZWZpeCkKLSAgICAgICAg
ICAgIG1vZHVsZXNfdG9fZXhjbHVkZSA9IGZpbHRlcihsYW1iZGEgbTogbS5zdGFydHN3aXRoKHBy
ZWZpeCksIG1vZHVsZXMpCi0gICAgICAgICAgICBmb3IgbSBpbiBtb2R1bGVzX3RvX2V4Y2x1ZGU6
Ci0gICAgICAgICAgICAgICAgaWYgbGVuKG1vZHVsZXNfdG9fZXhjbHVkZSkgPiAxOgotICAgICAg
ICAgICAgICAgICAgICBfbG9nLmRlYnVnKCcgICAgICAgICVzJyAlIG0pCi0gICAgICAgICAgICAg
ICAgbW9kdWxlcy5yZW1vdmUobSkKLSAgICAgICAgX2xvZy5pbmZvKCcgICAgKGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0lZDsgdXNlIC0tYWxsIHRvIGluY2x1ZGUpJyAl
IGJ1Z2lkKQotICAgICAgICBfbG9nLmluZm8oJycpCisgICAgICAgIG5hbWVzID0gc2VsZi5maW5k
ZXIuZmluZF9uYW1lcyhhcmdzLCBzZWxmLl9vcHRpb25zLnNraXBfaW50ZWdyYXRpb250ZXN0cywg
c2VsZi5fb3B0aW9ucy5hbGwpCisgICAgICAgIHJldHVybiBzZWxmLl9ydW5fdGVzdHMobmFtZXMp
CiAKICAgICBkZWYgX3J1bl90ZXN0cyhzZWxmLCBhcmdzKToKICAgICAgICAgaWYgc2VsZi5fb3B0
aW9ucy5jb3ZlcmFnZToKQEAgLTE5MSwxNCArMTUzLDE0IEBAIGNsYXNzIFRlc3RlcihvYmplY3Qp
OgogICAgICAgICAgICAgY292LnN0YXJ0KCkKIAogICAgICAgICAjIE1ha2Ugc3VyZSBQWVRIT05Q
QVRIIGlzIHNldCB1cCBwcm9wZXJseS4KLSAgICAgICAgc3lzLnBhdGggPSBbdHJlZS50b3BfZGly
ZWN0b3J5IGZvciB0cmVlIGluIHNlbGYuX3RyZWVzIGlmIHRyZWUudG9wX2RpcmVjdG9yeSBub3Qg
aW4gc3lzLnBhdGhdICsgc3lzLnBhdGgKKyAgICAgICAgc3lzLnBhdGggPSBzZWxmLmZpbmRlci5h
ZGRpdGlvbmFsX3BhdGhzKHN5cy5wYXRoKSArIHN5cy5wYXRoCiAKICAgICAgICAgX2xvZy5kZWJ1
ZygiTG9hZGluZyB0aGUgdGVzdHMuLi4iKQogCiAgICAgICAgIGxvYWRlciA9IHVuaXR0ZXN0LmRl
ZmF1bHRUZXN0TG9hZGVyCiAgICAgICAgIHN1aXRlcyA9IFtdCiAgICAgICAgIGZvciBuYW1lIGlu
IGFyZ3M6Ci0gICAgICAgICAgICBpZiBzZWxmLl9pc19tb2R1bGUobmFtZSk6CisgICAgICAgICAg
ICBpZiBzZWxmLmZpbmRlci5pc19tb2R1bGUobmFtZSk6CiAgICAgICAgICAgICAgICAgIyBpbXBv
cnQgbW9kdWxlcyBleHBsaWNpdGx5IGJlZm9yZSBsb2FkaW5nIHRoZWlyIHRlc3RzIGJlY2F1c2UK
ICAgICAgICAgICAgICAgICAjIGxvYWRUZXN0c0Zyb21OYW1lKCkgcHJvZHVjZXMgbG91c3kgZXJy
b3IgbWVzc2FnZXMgZm9yIGJhZCBtb2R1bGVzLgogICAgICAgICAgICAgICAgIHRyeToKQEAgLTIy
NCw0MiArMTg2LDggQEAgY2xhc3MgVGVzdGVyKG9iamVjdCk6CiAgICAgICAgICAgICBjb3YucmVw
b3J0KHNob3dfbWlzc2luZz1GYWxzZSkKICAgICAgICAgcmV0dXJuIHJlc3VsdC53YXNTdWNjZXNz
ZnVsKCkKIAotICAgIGRlZiBfaXNfbW9kdWxlKHNlbGYsIG5hbWUpOgotICAgICAgICByZWxwYXRo
ID0gbmFtZS5yZXBsYWNlKCcuJywgb3Muc2VwKSArICcucHknCi0gICAgICAgIHJldHVybiBhbnko
b3MucGF0aC5leGlzdHMob3MucGF0aC5qb2luKHRyZWUudG9wX2RpcmVjdG9yeSwgcmVscGF0aCkp
IGZvciB0cmVlIGluIHNlbGYuX3RyZWVzKQotCiAgICAgZGVmIF9sb2dfZXhjZXB0aW9uKHNlbGYp
OgogICAgICAgICBzID0gU3RyaW5nSU8uU3RyaW5nSU8oKQogICAgICAgICB0cmFjZWJhY2sucHJp
bnRfZXhjKGZpbGU9cykKICAgICAgICAgZm9yIGwgaW4gcy5idWZsaXN0OgogICAgICAgICAgICAg
X2xvZy5lcnJvcignICAnICsgbC5yc3RyaXAoKSkKLQotCi1jbGFzcyBUZXN0RGlyZWN0b3J5VHJl
ZShvYmplY3QpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCB0b3BfZGlyZWN0b3J5LCBzdGFydGlu
Z19zdWJkaXJlY3RvcnkpOgotICAgICAgICBzZWxmLnRvcF9kaXJlY3RvcnkgPSBvcy5wYXRoLnJl
YWxwYXRoKHRvcF9kaXJlY3RvcnkpCi0gICAgICAgIHNlbGYuc2VhcmNoX2RpcmVjdG9yeSA9IHNl
bGYudG9wX2RpcmVjdG9yeQotICAgICAgICBzZWxmLnRvcF9wYWNrYWdlID0gJycKLSAgICAgICAg
aWYgc3RhcnRpbmdfc3ViZGlyZWN0b3J5OgotICAgICAgICAgICAgc2VsZi50b3BfcGFja2FnZSA9
IHN0YXJ0aW5nX3N1YmRpcmVjdG9yeS5yZXBsYWNlKG9zLnNlcCwgJy4nKSArICcuJwotICAgICAg
ICAgICAgc2VsZi5zZWFyY2hfZGlyZWN0b3J5ID0gb3MucGF0aC5qb2luKHNlbGYudG9wX2RpcmVj
dG9yeSwgc3RhcnRpbmdfc3ViZGlyZWN0b3J5KQotCi0gICAgZGVmIGZpbmRfbW9kdWxlcyhzZWxm
LCBzdWZmaXhlcyk6Ci0gICAgICAgIG1vZHVsZXMgPSBbXQotICAgICAgICBmb3IgZGlyX3BhdGgs
IF8sIGZpbGVuYW1lcyBpbiBvcy53YWxrKHNlbGYuc2VhcmNoX2RpcmVjdG9yeSk6Ci0gICAgICAg
ICAgICBkaXJfcGF0aCA9IG9zLnBhdGguam9pbihkaXJfcGF0aCwgJycpCi0gICAgICAgICAgICBw
YWNrYWdlID0gZGlyX3BhdGgucmVwbGFjZShzZWxmLnRvcF9kaXJlY3RvcnkgKyBvcy5zZXAsICcn
KS5yZXBsYWNlKG9zLnNlcCwgJy4nKQotICAgICAgICAgICAgZm9yIGYgaW4gZmlsZW5hbWVzOgot
ICAgICAgICAgICAgICAgIGlmIGFueShmLmVuZHN3aXRoKHN1ZmZpeCkgZm9yIHN1ZmZpeCBpbiBz
dWZmaXhlcyk6Ci0gICAgICAgICAgICAgICAgICAgIG1vZHVsZXMuYXBwZW5kKHBhY2thZ2UgKyBm
LnJlcGxhY2UoJy5weScsICcnKSkKLSAgICAgICAgcmV0dXJuIG1vZHVsZXMKLQotICAgIGRlZiBj
bGVhbihzZWxmKToKLSAgICAgICAgIiIiRGVsZXRlIGFsbCAucHljIGZpbGVzIGluIHRoZSB0cmVl
IHRoYXQgaGF2ZSBubyBtYXRjaGluZyAucHkgZmlsZS4iIiIKLSAgICAgICAgX2xvZy5kZWJ1Zygi
Q2xlYW5pbmcgb3JwaGFuZWQgKi5weWMgZmlsZXMgZnJvbTogJXMiICUgc2VsZi5zZWFyY2hfZGly
ZWN0b3J5KQotICAgICAgICBmb3IgZGlyX3BhdGgsIGRpcl9uYW1lcywgZmlsZV9uYW1lcyBpbiBv
cy53YWxrKHNlbGYuc2VhcmNoX2RpcmVjdG9yeSk6Ci0gICAgICAgICAgICBmb3IgZmlsZV9uYW1l
IGluIGZpbGVfbmFtZXM6Ci0gICAgICAgICAgICAgICAgaWYgZmlsZV9uYW1lLmVuZHN3aXRoKCIu
cHljIikgYW5kIGZpbGVfbmFtZVs6LTFdIG5vdCBpbiBmaWxlX25hbWVzOgotICAgICAgICAgICAg
ICAgICAgICBmaWxlX3BhdGggPSBvcy5wYXRoLmpvaW4oZGlyX3BhdGgsIGZpbGVfbmFtZSkKLSAg
ICAgICAgICAgICAgICAgICAgX2xvZy5pbmZvKCJEZWxldGluZyBvcnBoYW4gKi5weWMgZmlsZTog
JXMiICUgZmlsZV9wYXRoKQotICAgICAgICAgICAgICAgICAgICBvcy5yZW1vdmUoZmlsZV9wYXRo
KQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90ZXN0L3Rlc3RfZmluZGVyLnB5
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90ZXN0L3Rlc3RfZmluZGVyLnB5Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmNhZTQ2OTUzZmMxODA3Y2NhYTA3MmM2YzhmYWM2ZjlmNGIzYzA4NGUKLS0tIC9kZXYvbnVsbAor
KysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rlc3QvdGVzdF9maW5kZXIucHkKQEAgLTAsMCAr
MSwxMjggQEAKKyMgQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSwgSW5jLgorIyBDb3B5cmlnaHQg
KEMpIDIwMTAgQ2hyaXMgSmVyZG9uZWsgKGNqZXJkb25la0B3ZWJraXQub3JnKQorIworIyBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
IyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisj
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycgQU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUgorIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisiIiJ0aGlzIG1vZHVsZSBpcyByZXNw
b25zaWJsZSBmb3IgZmluZGluZyBweXRob24gdGVzdHMuIiIiCisKK2ltcG9ydCBsb2dnaW5nCitp
bXBvcnQgc3lzCisKKworX2xvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKQorCisKK2Ns
YXNzIFRlc3REaXJlY3RvcnlUcmVlKG9iamVjdCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGZp
bGVzeXN0ZW0sIHRvcF9kaXJlY3RvcnksIHN0YXJ0aW5nX3N1YmRpcmVjdG9yeSk6CisgICAgICAg
IHNlbGYuZmlsZXN5c3RlbSA9IGZpbGVzeXN0ZW0KKyAgICAgICAgc2VsZi50b3BfZGlyZWN0b3J5
ID0gZmlsZXN5c3RlbS5yZWFscGF0aCh0b3BfZGlyZWN0b3J5KQorICAgICAgICBzZWxmLnNlYXJj
aF9kaXJlY3RvcnkgPSBzZWxmLnRvcF9kaXJlY3RvcnkKKyAgICAgICAgc2VsZi50b3BfcGFja2Fn
ZSA9ICcnCisgICAgICAgIGlmIHN0YXJ0aW5nX3N1YmRpcmVjdG9yeToKKyAgICAgICAgICAgIHNl
bGYudG9wX3BhY2thZ2UgPSBzdGFydGluZ19zdWJkaXJlY3RvcnkucmVwbGFjZShmaWxlc3lzdGVt
LnNlcCwgJy4nKSArICcuJworICAgICAgICAgICAgc2VsZi5zZWFyY2hfZGlyZWN0b3J5ID0gZmls
ZXN5c3RlbS5qb2luKHNlbGYudG9wX2RpcmVjdG9yeSwgc3RhcnRpbmdfc3ViZGlyZWN0b3J5KQor
CisgICAgZGVmIGZpbmRfbW9kdWxlcyhzZWxmLCBzdWZmaXhlcyk6CisKKyAgICAgICAgZGVmIGZp
bGVfZmlsdGVyKGZpbGVzeXN0ZW0sIGRpcm5hbWUsIGJhc2VuYW1lKToKKyAgICAgICAgICAgIHJl
dHVybiBhbnkoYmFzZW5hbWUuZW5kc3dpdGgoc3VmZml4KSBmb3Igc3VmZml4IGluIHN1ZmZpeGVz
KQorCisgICAgICAgIGZpbGVuYW1lcyA9IHNlbGYuZmlsZXN5c3RlbS5maWxlc191bmRlcihzZWxm
LnNlYXJjaF9kaXJlY3RvcnksIGZpbGVfZmlsdGVyPWZpbGVfZmlsdGVyKQorICAgICAgICByZXR1
cm4gW3NlbGYudG9fbW9kdWxlKGZpbGVuYW1lKSBmb3IgZmlsZW5hbWUgaW4gZmlsZW5hbWVzXQor
CisgICAgZGVmIHRvX21vZHVsZShzZWxmLCBwYXRoKToKKyAgICAgICAgcmV0dXJuIHBhdGgucmVw
bGFjZShzZWxmLnRvcF9kaXJlY3RvcnkgKyBzZWxmLmZpbGVzeXN0ZW0uc2VwLCAnJykucmVwbGFj
ZShzZWxmLmZpbGVzeXN0ZW0uc2VwLCAnLicpWzotM10KKworICAgIGRlZiBjbGVhbihzZWxmKToK
KyAgICAgICAgIiIiRGVsZXRlIGFsbCAucHljIGZpbGVzIGluIHRoZSB0cmVlIHRoYXQgaGF2ZSBu
byBtYXRjaGluZyAucHkgZmlsZS4iIiIKKyAgICAgICAgX2xvZy5kZWJ1ZygiQ2xlYW5pbmcgb3Jw
aGFuZWQgKi5weWMgZmlsZXMgZnJvbTogJXMiICUgc2VsZi5zZWFyY2hfZGlyZWN0b3J5KQorICAg
ICAgICBmaWxlbmFtZXMgPSBzZWxmLmZpbGVzeXN0ZW0uZmlsZXNfdW5kZXIoc2VsZi5zZWFyY2hf
ZGlyZWN0b3J5KQorICAgICAgICBmb3IgZmlsZW5hbWUgaW4gZmlsZW5hbWVzOgorICAgICAgICAg
ICAgaWYgZmlsZW5hbWUuZW5kc3dpdGgoIi5weWMiKSBhbmQgZmlsZW5hbWVbOi0xXSBub3QgaW4g
ZmlsZW5hbWVzOgorICAgICAgICAgICAgICAgIF9sb2cuaW5mbygiRGVsZXRpbmcgb3JwaGFuICou
cHljIGZpbGU6ICVzIiAlIGZpbGVuYW1lKQorICAgICAgICAgICAgICAgIHNlbGYuZmlsZXN5c3Rl
bS5yZW1vdmUoZmlsZW5hbWUpCisKKworY2xhc3MgVGVzdEZpbmRlcihvYmplY3QpOgorICAgIGRl
ZiBfX2luaXRfXyhzZWxmLCBmaWxlc3lzdGVtKToKKyAgICAgICAgc2VsZi5maWxlc3lzdGVtID0g
ZmlsZXN5c3RlbQorICAgICAgICBzZWxmLnRyZWVzID0gW10KKworICAgIGRlZiBhZGRfdHJlZShz
ZWxmLCB0b3BfZGlyZWN0b3J5LCBzdGFydGluZ19zdWJkaXJlY3Rvcnk9Tm9uZSk6CisgICAgICAg
IHNlbGYudHJlZXMuYXBwZW5kKFRlc3REaXJlY3RvcnlUcmVlKHNlbGYuZmlsZXN5c3RlbSwgdG9w
X2RpcmVjdG9yeSwgc3RhcnRpbmdfc3ViZGlyZWN0b3J5KSkKKworICAgIGRlZiBhZGRpdGlvbmFs
X3BhdGhzKHNlbGYsIHBhdGhzKToKKyAgICAgICAgcmV0dXJuIFt0cmVlLnRvcF9kaXJlY3Rvcnkg
Zm9yIHRyZWUgaW4gc2VsZi50cmVlcyBpZiB0cmVlLnRvcF9kaXJlY3Rvcnkgbm90IGluIHBhdGhz
XQorCisgICAgZGVmIGNsZWFuX3RyZWVzKHNlbGYpOgorICAgICAgICBmb3IgdHJlZSBpbiBzZWxm
LnRyZWVzOgorICAgICAgICAgICAgdHJlZS5jbGVhbigpCisKKyAgICBkZWYgaXNfbW9kdWxlKHNl
bGYsIG5hbWUpOgorICAgICAgICByZWxwYXRoID0gbmFtZS5yZXBsYWNlKCcuJywgc2VsZi5maWxl
c3lzdGVtLnNlcCkgKyAnLnB5JworICAgICAgICByZXR1cm4gYW55KHNlbGYuZmlsZXN5c3RlbS5l
eGlzdHMoc2VsZi5maWxlc3lzdGVtLmpvaW4odHJlZS50b3BfZGlyZWN0b3J5LCByZWxwYXRoKSkg
Zm9yIHRyZWUgaW4gc2VsZi50cmVlcykKKworICAgIGRlZiB0b19tb2R1bGUoc2VsZiwgcGF0aCk6
CisgICAgICAgIGZvciB0cmVlIGluIHNlbGYudHJlZXM6CisgICAgICAgICAgICBpZiBwYXRoLnN0
YXJ0c3dpdGgodHJlZS50b3BfZGlyZWN0b3J5KToKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJl
ZS50b19tb2R1bGUocGF0aCkKKyAgICAgICAgcmV0dXJuIE5vbmUKKworICAgIGRlZiBmaW5kX25h
bWVzKHNlbGYsIGFyZ3MsIHNraXBfaW50ZWdyYXRpb250ZXN0cywgZmluZF9hbGwpOgorICAgICAg
ICBpZiBhcmdzOgorICAgICAgICAgICAgcmV0dXJuIGFyZ3MKKworICAgICAgICBzdWZmaXhlcyA9
IFsnX3VuaXR0ZXN0LnB5J10KKyAgICAgICAgaWYgbm90IHNraXBfaW50ZWdyYXRpb250ZXN0czoK
KyAgICAgICAgICAgIHN1ZmZpeGVzLmFwcGVuZCgnX2ludGVncmF0aW9udGVzdC5weScpCisKKyAg
ICAgICAgbW9kdWxlcyA9IFtdCisgICAgICAgIGZvciB0cmVlIGluIHNlbGYudHJlZXM6CisgICAg
ICAgICAgICBtb2R1bGVzLmV4dGVuZCh0cmVlLmZpbmRfbW9kdWxlcyhzdWZmaXhlcykpCisgICAg
ICAgIG1vZHVsZXMuc29ydCgpCisKKyAgICAgICAgZm9yIG1vZHVsZSBpbiBtb2R1bGVzOgorICAg
ICAgICAgICAgX2xvZy5kZWJ1ZygiRm91bmQ6ICVzIiAlIG1vZHVsZSkKKworICAgICAgICAjIEZJ
WE1FOiBGaWd1cmUgb3V0IGhvdyB0byBtb3ZlIHRoaXMgdG8gdGVzdC13ZWJraXRweSBpbiBvcmRl
ciB0byB0byBtYWtlIHRoaXMgZmlsZSBtb3JlIGdlbmVyaWMuCisgICAgICAgIGlmIG5vdCBmaW5k
X2FsbDoKKyAgICAgICAgICAgIHNsb3dfdGVzdHMgPSAoJ3dlYmtpdHB5LmNvbW1vbi5jaGVja291
dC5zY20uc2NtX3VuaXR0ZXN0JywpCisgICAgICAgICAgICBzZWxmLl9leGNsdWRlKG1vZHVsZXMs
IHNsb3dfdGVzdHMsICdhcmUgcmVhbGx5LCByZWFsbHkgc2xvdycsIDMxODE4KQorCisgICAgICAg
ICAgICBpZiBzeXMucGxhdGZvcm0gPT0gJ3dpbjMyJzoKKyAgICAgICAgICAgICAgICB3aW4zMl9i
bGFja2xpc3QgPSAoJ3dlYmtpdHB5LmNvbW1vbi5jaGVja291dCcsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICd3ZWJraXRweS5jb21tb24uY29uZmlnJywKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgJ3dlYmtpdHB5LnRvb2wnKQorICAgICAgICAgICAgICAg
IHNlbGYuX2V4Y2x1ZGUobW9kdWxlcywgd2luMzJfYmxhY2tsaXN0LCAnZmFpbCBob3JyaWJseSBv
biB3aW4zMicsIDU0NTI2KQorCisgICAgICAgIHJldHVybiBtb2R1bGVzCisKKyAgICBkZWYgX2V4
Y2x1ZGUoc2VsZiwgbW9kdWxlcywgbW9kdWxlX3ByZWZpeGVzLCByZWFzb24sIGJ1Z2lkKToKKyAg
ICAgICAgX2xvZy5pbmZvKCdTa2lwcGluZyB0ZXN0cyBpbiB0aGUgZm9sbG93aW5nIG1vZHVsZXMg
b3IgcGFja2FnZXMgYmVjYXVzZSB0aGV5ICVzOicgJSByZWFzb24pCisgICAgICAgIGZvciBwcmVm
aXggaW4gbW9kdWxlX3ByZWZpeGVzOgorICAgICAgICAgICAgX2xvZy5pbmZvKCcgICAgJXMnICUg
cHJlZml4KQorICAgICAgICAgICAgbW9kdWxlc190b19leGNsdWRlID0gZmlsdGVyKGxhbWJkYSBt
OiBtLnN0YXJ0c3dpdGgocHJlZml4KSwgbW9kdWxlcykKKyAgICAgICAgICAgIGZvciBtIGluIG1v
ZHVsZXNfdG9fZXhjbHVkZToKKyAgICAgICAgICAgICAgICBpZiBsZW4obW9kdWxlc190b19leGNs
dWRlKSA+IDE6CisgICAgICAgICAgICAgICAgICAgIF9sb2cuZGVidWcoJyAgICAgICAgJXMnICUg
bSkKKyAgICAgICAgICAgICAgICBtb2R1bGVzLnJlbW92ZShtKQorICAgICAgICBfbG9nLmluZm8o
JyAgICAoaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPSVkOyB1c2UgLS1h
bGwgdG8gaW5jbHVkZSknICUgYnVnaWQpCisgICAgICAgIF9sb2cuaW5mbygnJykKZGlmZiAtLWdp
dCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdGVzdC90ZXN0X2ZpbmRlcl91bml0dGVzdC5weSBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdGVzdC90ZXN0X2ZpbmRlcl91bml0dGVzdC5weQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4yZjc0NmRhZjU1YmI3YTBkZjE0ZTU5M2UxM2I0MTVlM2E1NDcwN2EyCi0tLSAvZGV2
L251bGwKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90ZXN0L3Rlc3RfZmluZGVyX3VuaXR0
ZXN0LnB5CkBAIC0wLDAgKzEsODggQEAKKyMgQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSwgSW5j
LgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
IyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisj
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUgorIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLAorIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitpbXBvcnQgbG9n
Z2luZworaW1wb3J0IHVuaXR0ZXN0CisKK2Zyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5maWxl
c3lzdGVtX21vY2sgaW1wb3J0IE1vY2tGaWxlU3lzdGVtCitmcm9tIHdlYmtpdHB5LnRlc3QudGVz
dF9maW5kZXIgaW1wb3J0IFRlc3RGaW5kZXIKKworCitjbGFzcyBUZXN0RmluZGVyVGVzdCh1bml0
dGVzdC5UZXN0Q2FzZSk6CisgICAgZGVmIHNldFVwKHNlbGYpOgorICAgICAgICBmaWxlcyA9IHsK
KyAgICAgICAgICAnL2Zvby9iYXIvYmF6LnB5JzogJycsCisgICAgICAgICAgJy9mb28vYmFyL2Jh
el91bml0dGVzdC5weSc6ICcnLAorICAgICAgICAgICcvZm9vMi9iYXIyL2JhejIucHknOiAnJywK
KyAgICAgICAgICAnL2ZvbzIvYmFyMi9iYXoyLnB5Yyc6ICcnLAorICAgICAgICAgICcvZm9vMi9i
YXIyL2JhejJfaW50ZWdyYXRpb250ZXN0LnB5JzogJycsCisgICAgICAgICAgJy9mb28yL2JhcjIv
bWlzc2luZy5weWMnOiAnJywKKyAgICAgICAgfQorICAgICAgICBzZWxmLmZzID0gTW9ja0ZpbGVT
eXN0ZW0oZmlsZXMpCisgICAgICAgIHNlbGYuZmluZGVyID0gVGVzdEZpbmRlcihzZWxmLmZzKQor
ICAgICAgICBzZWxmLmZpbmRlci5hZGRfdHJlZSgnL2ZvbycsICdiYXInKQorICAgICAgICBzZWxm
LmZpbmRlci5hZGRfdHJlZSgnL2ZvbzInKQorICAgICAgICBzZWxmLnJvb3RfbG9nZ2VyID0gbG9n
Z2luZy5nZXRMb2dnZXIoKQorICAgICAgICBzZWxmLmxvZ19sZXZlbCA9IHNlbGYucm9vdF9sb2dn
ZXIubGV2ZWwKKyAgICAgICAgc2VsZi5yb290X2xvZ2dlci5zZXRMZXZlbChsb2dnaW5nLldBUk5J
TkcpCisKKyAgICBkZWYgdGVhckRvd24oc2VsZik6CisgICAgICAgIHNlbGYucm9vdF9sb2dnZXIu
c2V0TGV2ZWwoc2VsZi5sb2dfbGV2ZWwpCisKKyAgICBkZWYgdGVzdF9hZGRpdGlvbmFsX3N5c3Rl
bV9wYXRocyhzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoc2VsZi5maW5kZXIuYWRk
aXRpb25hbF9wYXRocyhbJy91c3InXSksCisgICAgICAgICAgICAgICAgICAgICAgICAgIFsnL2Zv
bycsICcvZm9vMiddKQorCisgICAgZGVmIHRlc3RfaXNfbW9kdWxlKHNlbGYpOgorICAgICAgICBz
ZWxmLmFzc2VydFRydWUoc2VsZi5maW5kZXIuaXNfbW9kdWxlKCdiYXIuYmF6JykpCisgICAgICAg
IHNlbGYuYXNzZXJ0VHJ1ZShzZWxmLmZpbmRlci5pc19tb2R1bGUoJ2JhcjIuYmF6MicpKQorICAg
ICAgICBzZWxmLmFzc2VydFRydWUoc2VsZi5maW5kZXIuaXNfbW9kdWxlKCdiYXIyLmJhejJfaW50
ZWdyYXRpb250ZXN0JykpCisKKyAgICAgICAgIyBNaXNzaW5nIHRoZSBwcm9wZXIgbmFtZXNwYWNl
LgorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKHNlbGYuZmluZGVyLmlzX21vZHVsZSgnYmF6Jykp
CisKKyAgICBkZWYgdGVzdF90b19tb2R1bGUoc2VsZik6CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWxzKHNlbGYuZmluZGVyLnRvX21vZHVsZSgnL2Zvby90ZXN0LnB5JyksICd0ZXN0JykKKyAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbHMoc2VsZi5maW5kZXIudG9fbW9kdWxlKCcvZm9vL2Jhci90ZXN0
LnB5JyksICdiYXIudGVzdCcpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHNlbGYuZmluZGVy
LnRvX21vZHVsZSgnL2Zvby9iYXIvcHl0ZXN0LnB5JyksICdiYXIucHl0ZXN0JykKKworICAgIGRl
ZiB0ZXN0X2NsZWFuKHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydFRydWUoc2VsZi5mcy5leGlz
dHMoJy9mb28yL2JhcjIvbWlzc2luZy5weWMnKSkKKyAgICAgICAgc2VsZi5maW5kZXIuY2xlYW5f
dHJlZXMoKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKHNlbGYuZnMuZXhpc3RzKCcvZm9vMi9i
YXIyL21pc3NpbmcucHljJykpCisKKyAgICBkZWYgdGVzdF9maW5kX25hbWVzKHNlbGYpOgorICAg
ICAgICBzZWxmLmFzc2VydEVxdWFscyhzZWxmLmZpbmRlci5maW5kX25hbWVzKFtdLCBza2lwX2lu
dGVncmF0aW9udGVzdHM9RmFsc2UsIGZpbmRfYWxsPVRydWUpLAorICAgICAgICAgICAgWydiYXIu
YmF6X3VuaXR0ZXN0JywgJ2JhcjIuYmF6Ml9pbnRlZ3JhdGlvbnRlc3QnXSkKKworICAgICAgICBz
ZWxmLmFzc2VydEVxdWFscyhzZWxmLmZpbmRlci5maW5kX25hbWVzKFtdLCBza2lwX2ludGVncmF0
aW9udGVzdHM9VHJ1ZSwgZmluZF9hbGw9VHJ1ZSksCisgICAgICAgICAgICBbJ2Jhci5iYXpfdW5p
dHRlc3QnXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoc2VsZi5maW5kZXIuZmluZF9uYW1l
cyhbXSwgc2tpcF9pbnRlZ3JhdGlvbnRlc3RzPVRydWUsIGZpbmRfYWxsPUZhbHNlKSwKKyAgICAg
ICAgICAgIFsnYmFyLmJhel91bml0dGVzdCddKQorCisgICAgICAgICMgU2hvdWxkIHJldHVybiB0
aGUgbmFtZXMgZ2l2ZW4gaXQsIGV2ZW4gaWYgdGhleSBkb24ndCBleGlzdC4KKyAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbHMoc2VsZi5maW5kZXIuZmluZF9uYW1lcyhbJ2Zvb2JhciddLCBza2lwX2lu
dGVncmF0aW9udGVzdHM9VHJ1ZSwgZmluZF9hbGw9VHJ1ZSksCisgICAgICAgICAgICBbJ2Zvb2Jh
ciddKQorCisKK2lmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CisgICAgdW5pdHRlc3QubWFpbigp
Cg==
</data>
<flag name="review"
          id="138040"
          type_id="1"
          status="+"
          setter="abarth"
    />
          </attachment>
      

    </bug>

</bugzilla>