<?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>64531</bug_id>
          
          <creation_ts>2011-07-14 08:45:00 -0700</creation_ts>
          <short_desc>Introduce TestExpectationsModel, split out of TestExpectations.</short_desc>
          <delta_ts>2011-07-14 22:59:03 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</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>
          
          <blocked>64385</blocked>
    
    <blocked>64554</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dimitri Glazkov (Google)">dglazkov</reporter>
          <assigned_to name="Dimitri Glazkov (Google)">dglazkov</assigned_to>
          <cc>abarth</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>437105</commentid>
    <comment_count>0</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-07-14 08:45:00 -0700</bug_when>
    <thetext>Introduce TestExpectationsModel, split out of TestExpectations.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>437107</commentid>
    <comment_count>1</comment_count>
      <attachid>100811</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-07-14 08:49:41 -0700</bug_when>
    <thetext>Created attachment 100811
WIP: Switching computers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>437158</commentid>
    <comment_count>2</comment_count>
      <attachid>100823</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-07-14 10:10:06 -0700</bug_when>
    <thetext>Created attachment 100823
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>437562</commentid>
    <comment_count>3</comment_count>
      <attachid>100823</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-07-14 22:44:56 -0700</bug_when>
    <thetext>Comment on attachment 100823
Patch

rs=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>437569</commentid>
    <comment_count>4</comment_count>
      <attachid>100823</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-14 22:58:59 -0700</bug_when>
    <thetext>Comment on attachment 100823
Patch

Clearing flags on attachment: 100823

Committed r91050: &lt;http://trac.webkit.org/changeset/91050&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>437570</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-14 22:59:03 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>100811</attachid>
            <date>2011-07-14 08:49:41 -0700</date>
            <delta_ts>2011-07-14 10:10:03 -0700</delta_ts>
            <desc>WIP: Switching computers.</desc>
            <filename>bug-64531-20110714084939.patch</filename>
            <type>text/plain</type>
            <size>22333</size>
            <attacher name="Dimitri Glazkov (Google)">dglazkov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTA5OTgKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCA5OWFlNzc3OGMwYzM3YzNiOTY3NDFhNjgxYmNmYTg5N2Mz
MjU3ZDViLi5kMDkyZTM0M2RlM2RiMmVkY2U3ODIzNTQ0OTYwMmMwMmU1MTMyMjBhIDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIg
QEAKKzIwMTEtMDctMTQgIERpbWl0cmkgR2xhemtvdiAgPGRnbGF6a292QGNocm9taXVtLm9yZz4K
KworICAgICAgICBJbnRyb2R1Y2UgVGVzdEV4cGVjdGF0aW9uc01vZGVsLCBzcGxpdCBvdXQgb2Yg
VGVzdEV4cGVjdGF0aW9ucy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTY0NTMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVzdF9leHBl
Y3RhdGlvbnMucHk6CisKIDIwMTEtMDctMTMgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3Jn
PgogCiAgICAgICAgIE1vdmUgd2Via2l0cHkgb2ZmIG9mIGxvb3NlIG1vY2tzCmRpZmYgLS1naXQg
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVzdF9leHBlY3Rh
dGlvbnMucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVz
dF9leHBlY3RhdGlvbnMucHkKaW5kZXggMDliYzAyZWM1MGNmNWNiNDUwODczNDJiNzBiYWM4ZDdj
MjVlYWExNS4uMDgwNjVkMjNlMjZjZDUwODM3ODA1MTRlYjhmN2ZhYWJlN2QxNzQzZiAxMDA2NDQK
LS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfZXhw
ZWN0YXRpb25zLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21v
ZGVscy90ZXN0X2V4cGVjdGF0aW9ucy5weQpAQCAtMjQ0LDYgKzI0NCwyMTMgQEAgY2xhc3MgVGVz
dEV4cGVjdGF0aW9uTGluZToKICAgICAgICAgc2VsZi52YWxpZCA9IEZhbHNlCiAgICAgICAgIHNl
bGYubWFsZm9ybWVkID0gRmFsc2UKIAorIyBGSVhNRTogQ29udmVydCBBUEkgdG8gcHJvcGVyIENS
VUQuCitjbGFzcyBUZXN0RXhwZWN0YXRpb25zTW9kZWw6CisgICAgIiIiUmVwcmVzZW50cyByZWxh
dGlvbmFsIHN0b3JlIG9mIGFsbCBleHBlY3RhdGlvbnMgYW5kIHByb3ZpZGVzIENSVUQgc2VtYW50
aWNzIHRvIG1hYW5nZSBpdC4iIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwb3J0KToKKyAg
ICAgICAgc2VsZi5fcG9ydCA9IHBvcnQKKworICAgICAgICAjIE1hcHMgYSB0ZXN0IHRvIGl0cyBs
aXN0IG9mIGV4cGVjdGF0aW9ucy4KKyAgICAgICAgc2VsZi5fdGVzdF90b19leHBlY3RhdGlvbnMg
PSB7fQorCisgICAgICAgICMgTWFwcyBhIHRlc3QgdG8gaXRzIGxpc3Qgb2Ygb3B0aW9ucyAoc3Ry
aW5nIHZhbHVlcykKKyAgICAgICAgc2VsZi5fdGVzdF90b19vcHRpb25zID0ge30KKworICAgICAg
ICAjIE1hcHMgYSB0ZXN0IHRvIGl0cyBsaXN0IG9mIG1vZGlmaWVyczogdGhlIGNvbnN0YW50cyBh
c3NvY2lhdGVkIHdpdGgKKyAgICAgICAgIyB0aGUgb3B0aW9ucyBtaW51cyBhbnkgYnVnIG9yIHBs
YXRmb3JtIHN0cmluZ3MKKyAgICAgICAgc2VsZi5fdGVzdF90b19tb2RpZmllcnMgPSB7fQorCisg
ICAgICAgICMgTWFwcyBhIHRlc3QgdG8gdGhlIGJhc2UgcGF0aCB0aGF0IGl0IHdhcyBsaXN0ZWQg
d2l0aCBpbiB0aGUgbGlzdCBhbmQKKyAgICAgICAgIyB0aGUgbnVtYmVyIG9mIG1hdGNoZXMgdGhh
dCBiYXNlIHBhdGggaGFkLgorICAgICAgICBzZWxmLl90ZXN0X2xpc3RfcGF0aHMgPSB7fQorCisg
ICAgICAgIHNlbGYuX21vZGlmaWVyX3RvX3Rlc3RzID0gc2VsZi5fZGljdF9vZl9zZXRzKFRlc3RF
eHBlY3RhdGlvbnMuTU9ESUZJRVJTKQorICAgICAgICBzZWxmLl9leHBlY3RhdGlvbl90b190ZXN0
cyA9IHNlbGYuX2RpY3Rfb2Zfc2V0cyhUZXN0RXhwZWN0YXRpb25zLkVYUEVDVEFUSU9OUykKKyAg
ICAgICAgc2VsZi5fdGltZWxpbmVfdG9fdGVzdHMgPSBzZWxmLl9kaWN0X29mX3NldHMoVGVzdEV4
cGVjdGF0aW9ucy5USU1FTElORVMpCisgICAgICAgIHNlbGYuX3Jlc3VsdF90eXBlX3RvX3Rlc3Rz
ID0gc2VsZi5fZGljdF9vZl9zZXRzKFRlc3RFeHBlY3RhdGlvbnMuUkVTVUxUX1RZUEVTKQorCisg
ICAgZGVmIF9kaWN0X29mX3NldHMoc2VsZiwgc3RyaW5nc190b19jb25zdGFudHMpOgorICAgICAg
ICAiIiJUYWtlcyBhIGRpY3Qgb2Ygc3RyaW5ncy0+Y29uc3RhbnRzIGFuZCByZXR1cm5zIGEgZGlj
dCBtYXBwaW5nCisgICAgICAgIGVhY2ggY29uc3RhbnQgdG8gYW4gZW1wdHkgc2V0LiIiIgorICAg
ICAgICBkID0ge30KKyAgICAgICAgZm9yIGMgaW4gc3RyaW5nc190b19jb25zdGFudHMudmFsdWVz
KCk6CisgICAgICAgICAgICBkW2NdID0gc2V0KCkKKyAgICAgICAgcmV0dXJuIGQKKworICAgIGRl
ZiBnZXRfdGVzdF9zZXQoc2VsZiwgbW9kaWZpZXIsIGV4cGVjdGF0aW9uPU5vbmUsIGluY2x1ZGVf
c2tpcHM9VHJ1ZSk6CisgICAgICAgIGlmIGV4cGVjdGF0aW9uIGlzIE5vbmU6CisgICAgICAgICAg
ICB0ZXN0cyA9IHNlbGYuX21vZGlmaWVyX3RvX3Rlc3RzW21vZGlmaWVyXQorICAgICAgICBlbHNl
OgorICAgICAgICAgICAgdGVzdHMgPSAoc2VsZi5fZXhwZWN0YXRpb25fdG9fdGVzdHNbZXhwZWN0
YXRpb25dICYKKyAgICAgICAgICAgICAgICBzZWxmLl9tb2RpZmllcl90b190ZXN0c1ttb2RpZmll
cl0pCisKKyAgICAgICAgaWYgbm90IGluY2x1ZGVfc2tpcHM6CisgICAgICAgICAgICB0ZXN0cyA9
IHRlc3RzIC0gc2VsZi5nZXRfdGVzdF9zZXQoU0tJUCwgZXhwZWN0YXRpb24pCisKKyAgICAgICAg
cmV0dXJuIHRlc3RzCisKKyAgICBkZWYgZ2V0X3Rlc3RzX3dpdGhfcmVzdWx0X3R5cGUoc2VsZiwg
cmVzdWx0X3R5cGUpOgorICAgICAgICByZXR1cm4gc2VsZi5fcmVzdWx0X3R5cGVfdG9fdGVzdHNb
cmVzdWx0X3R5cGVdCisKKyAgICBkZWYgZ2V0X3Rlc3RzX3dpdGhfdGltZWxpbmUoc2VsZiwgdGlt
ZWxpbmUpOgorICAgICAgICByZXR1cm4gc2VsZi5fdGltZWxpbmVfdG9fdGVzdHNbdGltZWxpbmVd
CisKKyAgICBkZWYgZ2V0X29wdGlvbnMoc2VsZiwgdGVzdCk6CisgICAgICAgICIiIlRoaXMgcmV0
dXJucyB0aGUgZW50aXJlIHNldCBvZiBvcHRpb25zIGZvciB0aGUgZ2l2ZW4gdGVzdAorICAgICAg
ICAodGhlIG1vZGlmaWVycyBwbHVzIHRoZSBCVUdYWFhYIGlkZW50aWZpZXIpLiBUaGlzIGlzIHVz
ZWQgYnkgdGhlCisgICAgICAgIExUVEYgZGFzaGJvYXJkLiIiIgorICAgICAgICByZXR1cm4gc2Vs
Zi5fdGVzdF90b19vcHRpb25zW3Rlc3RdCisKKyAgICBkZWYgaGFzX21vZGlmaWVyKHNlbGYsIHRl
c3QsIG1vZGlmaWVyKToKKyAgICAgICAgcmV0dXJuIHRlc3QgaW4gc2VsZi5fbW9kaWZpZXJfdG9f
dGVzdHNbbW9kaWZpZXJdCisKKyAgICBkZWYgaGFzX3Rlc3Qoc2VsZiwgdGVzdCk6CisgICAgICAg
IHJldHVybiB0ZXN0IGluIHNlbGYuX3Rlc3RfbGlzdF9wYXRocyAKKworICAgIGRlZiBnZXRfZXhw
ZWN0YXRpb25zKHNlbGYsIHRlc3QpOgorICAgICAgICByZXR1cm4gc2VsZi5fdGVzdF90b19leHBl
Y3RhdGlvbnNbdGVzdF0KKworICAgIGRlZiBhZGRfdGVzdHMoc2VsZiwgdGVzdHMsIGV4cGVjdGF0
aW9ucywgdGVzdF9saXN0X3BhdGgsIGxpbmVubywKKyAgICAgICAgICAgICAgICAgICBtb2RpZmll
cnMsIG51bV9tYXRjaGVzLCBvcHRpb25zLCBvdmVycmlkZXNfYWxsb3dlZCk6CisgICAgICAgIGZv
ciB0ZXN0IGluIHRlc3RzOgorICAgICAgICAgICAgaWYgc2VsZi5hbHJlYWR5X3NlZW5fYmV0dGVy
X21hdGNoKHRlc3QsIHRlc3RfbGlzdF9wYXRoLCBudW1fbWF0Y2hlcywgbGluZW5vLCBvdmVycmlk
ZXNfYWxsb3dlZCk6CisgICAgICAgICAgICAgICAgY29udGludWUKKworICAgICAgICAgICAgc2Vs
Zi5jbGVhcl9leHBlY3RhdGlvbnNfZm9yX3Rlc3QodGVzdCwgdGVzdF9saXN0X3BhdGgpCisgICAg
ICAgICAgICBzZWxmLl90ZXN0X2xpc3RfcGF0aHNbdGVzdF0gPSAoc2VsZi5fcG9ydC5ub3JtYWxp
emVfdGVzdF9uYW1lKHRlc3RfbGlzdF9wYXRoKSwgbnVtX21hdGNoZXMsIGxpbmVubykKKyAgICAg
ICAgICAgIHNlbGYuYWRkX3Rlc3QodGVzdCwgbW9kaWZpZXJzLCBleHBlY3RhdGlvbnMsIG9wdGlv
bnMsIG92ZXJyaWRlc19hbGxvd2VkKQorCisgICAgZGVmIGFkZF90ZXN0KHNlbGYsIHRlc3QsIG1v
ZGlmaWVycywgZXhwZWN0YXRpb25zLCBvcHRpb25zLCBvdmVycmlkZXNfYWxsb3dlZCk6CisgICAg
ICAgICIiIlNldHMgdGhlIGV4cGVjdGVkIHN0YXRlIGZvciBhIGdpdmVuIHRlc3QuCisKKyAgICAg
ICAgVGhpcyByb3V0aW5lIGFzc3VtZXMgdGhlIHRlc3QgaGFzIG5vdCBiZWVuIGFkZGVkIGJlZm9y
ZS4gSWYgaXQgaGFzLAorICAgICAgICB1c2UgY2xlYXJfZXhwZWN0YXRpb25zX2Zvcl90ZXN0KCkg
dG8gcmVzZXQgdGhlIHN0YXRlIHByaW9yIHRvCisgICAgICAgIGNhbGxpbmcgdGhpcy4KKworICAg
ICAgICBBcmdzOgorICAgICAgICAgIHRlc3Q6IHRlc3QgdG8gYWRkCisgICAgICAgICAgbW9kaWZp
ZXJzOiBzZXF1ZW5jZSBvZiBtb2RpZmllciBrZXl3b3JkcyAoJ3dvbnRmaXgnLCAnc2xvdycsIGV0
Yy4pCisgICAgICAgICAgZXhwZWN0YXRpb25zOiBzZXF1ZW5jZSBvZiBleHBlY3RhdGlvbnMgKFBB
U1MsIElNQUdFLCBldGMuKQorICAgICAgICAgIG9wdGlvbnM6IHNlcXVlbmNlIG9mIGtleXdvcmRz
IGFuZCBidWcgaWRlbnRpZmllcnMuCisgICAgICAgICAgb3ZlcnJpZGVzX2FsbG93ZWQ6IHdoZXRo
ZXIgd2UncmUgcGFyc2luZyB0aGUgcmVndWxhciBleHBlY3RhdGlvbnMKKyAgICAgICAgICAgICAg
b3IgdGhlIG92ZXJyaWRkaW5nIGV4cGVjdGF0aW9ucyIiIgorICAgICAgICBzZWxmLl90ZXN0X3Rv
X2V4cGVjdGF0aW9uc1t0ZXN0XSA9IGV4cGVjdGF0aW9ucworICAgICAgICBmb3IgZXhwZWN0YXRp
b24gaW4gZXhwZWN0YXRpb25zOgorICAgICAgICAgICAgc2VsZi5fZXhwZWN0YXRpb25fdG9fdGVz
dHNbZXhwZWN0YXRpb25dLmFkZCh0ZXN0KQorCisgICAgICAgIHNlbGYuX3Rlc3RfdG9fb3B0aW9u
c1t0ZXN0XSA9IG9wdGlvbnMKKyAgICAgICAgc2VsZi5fdGVzdF90b19tb2RpZmllcnNbdGVzdF0g
PSBzZXQoKQorICAgICAgICBmb3IgbW9kaWZpZXIgaW4gbW9kaWZpZXJzOgorICAgICAgICAgICAg
bW9kX3ZhbHVlID0gVGVzdEV4cGVjdGF0aW9ucy5NT0RJRklFUlNbbW9kaWZpZXJdCisgICAgICAg
ICAgICBzZWxmLl9tb2RpZmllcl90b190ZXN0c1ttb2RfdmFsdWVdLmFkZCh0ZXN0KQorICAgICAg
ICAgICAgc2VsZi5fdGVzdF90b19tb2RpZmllcnNbdGVzdF0uYWRkKG1vZF92YWx1ZSkKKworICAg
ICAgICBpZiAnd29udGZpeCcgaW4gbW9kaWZpZXJzOgorICAgICAgICAgICAgc2VsZi5fdGltZWxp
bmVfdG9fdGVzdHNbV09OVEZJWF0uYWRkKHRlc3QpCisgICAgICAgIGVsc2U6CisgICAgICAgICAg
ICBzZWxmLl90aW1lbGluZV90b190ZXN0c1tOT1ddLmFkZCh0ZXN0KQorCisgICAgICAgIGlmICdz
a2lwJyBpbiBtb2RpZmllcnM6CisgICAgICAgICAgICBzZWxmLl9yZXN1bHRfdHlwZV90b190ZXN0
c1tTS0lQXS5hZGQodGVzdCkKKyAgICAgICAgZWxpZiBleHBlY3RhdGlvbnMgPT0gc2V0KFtQQVNT
XSk6CisgICAgICAgICAgICBzZWxmLl9yZXN1bHRfdHlwZV90b190ZXN0c1tQQVNTXS5hZGQodGVz
dCkKKyAgICAgICAgZWxpZiBsZW4oZXhwZWN0YXRpb25zKSA+IDE6CisgICAgICAgICAgICBzZWxm
Ll9yZXN1bHRfdHlwZV90b190ZXN0c1tGTEFLWV0uYWRkKHRlc3QpCisgICAgICAgIGVsc2U6Cisg
ICAgICAgICAgICBzZWxmLl9yZXN1bHRfdHlwZV90b190ZXN0c1tGQUlMXS5hZGQodGVzdCkKKwor
ICAgICAgICBpZiBvdmVycmlkZXNfYWxsb3dlZDoKKyAgICAgICAgICAgIHNlbGYuX292ZXJyaWRk
aW5nX3Rlc3RzLmFkZCh0ZXN0KQorCisgICAgZGVmIGNsZWFyX2V4cGVjdGF0aW9uc19mb3JfdGVz
dChzZWxmLCB0ZXN0LCB0ZXN0X2xpc3RfcGF0aCk6CisgICAgICAgICIiIlJlbW92ZSBwcmV4aXN0
aW5nIGV4cGVjdGF0aW9ucyBmb3IgdGhpcyB0ZXN0LgorICAgICAgICBUaGlzIGhhcHBlbnMgaWYg
d2UgYXJlIHNlZWluZyBhIG1vcmUgcHJlY2lzZSBwYXRoCisgICAgICAgIHRoYW4gYSBwcmV2aW91
cyBsaXN0aW5nLgorICAgICAgICAiIiIKKyAgICAgICAgaWYgc2VsZi5oYXNfdGVzdCh0ZXN0KToK
KyAgICAgICAgICAgIHNlbGYuX3Rlc3RfdG9fZXhwZWN0YXRpb25zLnBvcCh0ZXN0LCAnJykKKyAg
ICAgICAgICAgIHNlbGYuX3JlbW92ZV9mcm9tX3NldHModGVzdCwgc2VsZi5fZXhwZWN0YXRpb25f
dG9fdGVzdHMpCisgICAgICAgICAgICBzZWxmLl9yZW1vdmVfZnJvbV9zZXRzKHRlc3QsIHNlbGYu
X21vZGlmaWVyX3RvX3Rlc3RzKQorICAgICAgICAgICAgc2VsZi5fcmVtb3ZlX2Zyb21fc2V0cyh0
ZXN0LCBzZWxmLl90aW1lbGluZV90b190ZXN0cykKKyAgICAgICAgICAgIHNlbGYuX3JlbW92ZV9m
cm9tX3NldHModGVzdCwgc2VsZi5fcmVzdWx0X3R5cGVfdG9fdGVzdHMpCisKKyAgICAgICAgc2Vs
Zi5fdGVzdF9saXN0X3BhdGhzW3Rlc3RdID0gc2VsZi5fcG9ydC5ub3JtYWxpemVfdGVzdF9uYW1l
KHRlc3RfbGlzdF9wYXRoKQorCisgICAgZGVmIF9yZW1vdmVfZnJvbV9zZXRzKHNlbGYsIHRlc3Qs
IGRpY3QpOgorICAgICAgICAiIiJSZW1vdmVzIHRoZSBnaXZlbiB0ZXN0IGZyb20gdGhlIHNldHMg
aW4gdGhlIGRpY3Rpb25hcnkuCisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICB0ZXN0OiB0ZXN0
IHRvIGxvb2sgZm9yCisgICAgICAgICAgZGljdDogZGljdCBvZiBzZXRzIG9mIGZpbGVzIiIiCisg
ICAgICAgIGZvciBzZXRfb2ZfdGVzdHMgaW4gZGljdC5pdGVydmFsdWVzKCk6CisgICAgICAgICAg
ICBpZiB0ZXN0IGluIHNldF9vZl90ZXN0czoKKyAgICAgICAgICAgICAgICBzZXRfb2ZfdGVzdHMu
cmVtb3ZlKHRlc3QpCisKKyAgICBkZWYgYWxyZWFkeV9zZWVuX2JldHRlcl9tYXRjaChzZWxmLCB0
ZXN0LCB0ZXN0X2xpc3RfcGF0aCwgbnVtX21hdGNoZXMsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGxpbmVubywgb3ZlcnJpZGVzX2FsbG93ZWQpOgorICAgICAgICAiIiJSZXR1
cm5zIHdoZXRoZXIgd2UndmUgc2VlbiBhIGJldHRlciBtYXRjaCBhbHJlYWR5IGluIHRoZSBmaWxl
LgorCisgICAgICAgIFJldHVybnMgVHJ1ZSBpZiB3ZSd2ZSBhbHJlYWR5IHNlZW4gYSB0ZXN0X2xp
c3RfcGF0aCB0aGF0IG1hdGNoZXMgbW9yZSBvZiB0aGUgdGVzdAorICAgICAgICAgICAgdGhhbiB0
aGlzIHBhdGggZG9lcworICAgICAgICAiIiIKKyAgICAgICAgIyBGSVhNRTogU2VlIGNvbW1lbnQg
YmVsb3cgYWJvdXQgbWF0Y2hpbmcgdGVzdCBjb25maWdzIGFuZCBudW1fbWF0Y2hlcy4KKyAgICAg
ICAgaWYgbm90IHNlbGYuaGFzX3Rlc3QodGVzdCk6CisgICAgICAgICAgICAjIFdlJ3ZlIG5ldmVy
IHNlZW4gdGhpcyB0ZXN0IGJlZm9yZS4KKyAgICAgICAgICAgIHJldHVybiBGYWxzZQorCisgICAg
ICAgIHByZXZfYmFzZV9wYXRoLCBwcmV2X251bV9tYXRjaGVzLCBwcmV2X2xpbmVubyA9IHNlbGYu
X3Rlc3RfbGlzdF9wYXRoc1t0ZXN0XQorICAgICAgICBiYXNlX3BhdGggPSBzZWxmLl9wb3J0Lm5v
cm1hbGl6ZV90ZXN0X25hbWUodGVzdF9saXN0X3BhdGgpCisKKyAgICAgICAgaWYgbGVuKHByZXZf
YmFzZV9wYXRoKSA+IGxlbihiYXNlX3BhdGgpOgorICAgICAgICAgICAgIyBUaGUgcHJldmlvdXMg
cGF0aCBtYXRjaGVkIG1vcmUgb2YgdGhlIHRlc3QuCisgICAgICAgICAgICByZXR1cm4gVHJ1ZQor
CisgICAgICAgIGlmIGxlbihwcmV2X2Jhc2VfcGF0aCkgPCBsZW4oYmFzZV9wYXRoKToKKyAgICAg
ICAgICAgICMgVGhpcyBwYXRoIG1hdGNoZXMgbW9yZSBvZiB0aGUgdGVzdC4KKyAgICAgICAgICAg
IHJldHVybiBGYWxzZQorCisgICAgICAgIGlmIG92ZXJyaWRlc19hbGxvd2VkIGFuZCB0ZXN0IG5v
dCBpbiBzZWxmLl9vdmVycmlkZGluZ190ZXN0czoKKyAgICAgICAgICAgICMgV2UgaGF2ZSBzZWVu
IHRoaXMgcGF0aCwgYnV0IHRoYXQncyBva2F5IGJlY2F1c2UgaXQgaXMKKyAgICAgICAgICAgICMg
aW4gdGhlIG92ZXJyaWRlcyBhbmQgdGhlIGVhcmxpZXIgcGF0aCB3YXMgaW4gdGhlCisgICAgICAg
ICAgICAjIGV4cGVjdGF0aW9ucyAobm90IHRoZSBvdmVycmlkZXMpLgorICAgICAgICAgICAgcmV0
dXJuIEZhbHNlCisKKyAgICAgICAgIyBBdCB0aGlzIHBvaW50IHdlIGtub3cgd2UgaGF2ZSBzZWVu
IGEgcHJldmlvdXMgZXhhY3QgbWF0Y2ggb24gdGhpcworICAgICAgICAjIGJhc2UgcGF0aCwgc28g
d2UgbmVlZCB0byBjaGVjayB0aGUgdHdvIHNldHMgb2YgbW9kaWZpZXJzLgorCisgICAgICAgIGlm
IG92ZXJyaWRlc19hbGxvd2VkOgorICAgICAgICAgICAgZXhwZWN0YXRpb25fc291cmNlID0gIm92
ZXJyaWRlIgorICAgICAgICBlbHNlOgorICAgICAgICAgICAgZXhwZWN0YXRpb25fc291cmNlID0g
ImV4cGVjdGF0aW9uIgorCisgICAgICAgICMgRklYTUU6IFRoaXMgY29kZSB3YXMgb3JpZ2luYWxs
eSBkZXNpZ25lZCB0byBhbGxvdyBsaW5lcyB0aGF0IG1hdGNoZWQKKyAgICAgICAgIyBtb3JlIG1v
ZGlmaWVycyB0byBvdmVycmlkZSBsaW5lcyB0aGF0IG1hdGNoZWQgZmV3ZXIgbW9kaWZpZXJzLgor
ICAgICAgICAjIEhvd2V2ZXIsIHdlIGN1cnJlbnRseSB2aWV3IHRoZXNlIGFzIGVycm9ycy4gSWYg
d2UgZGVjaWRlIHRvIG1ha2UKKyAgICAgICAgIyB0aGlzIHBvbGljeSBwZXJtYW5lbnQsIHdlIGNh
biBwcm9iYWJseSBzaW1wbGlmeSB0aGlzIGNvZGUKKyAgICAgICAgIyBhbmQgdGhlIE1vZGlmaWVy
TWF0Y2hlciBjb2RlIGEgZmFpciBhbW91bnQuCisgICAgICAgICMKKyAgICAgICAgIyBUbyB1c2Ug
dGhlICJtb3JlIG1vZGlmaWVycyB3aW5zIiBwb2xpY3ksIGNoYW5nZSB0aGUgIl9hZGRfZXJyb3Ii
IGxpbmVzIGZvciBvdmVycmlkZXMKKyAgICAgICAgIyB0byBfbG9nX25vbl9mYXRhbF9lcnJvcigp
IGFuZCBjaGFuZ2UgdGhlIGNvbW1lbnRlZC1vdXQgInJldHVybiBGYWxzZSIuCisKKyAgICAgICAg
aWYgcHJldl9udW1fbWF0Y2hlcyA9PSBudW1fbWF0Y2hlczoKKyAgICAgICAgICAgIHNlbGYuX2Fk
ZF9lcnJvcihsaW5lbm8sCisgICAgICAgICAgICAgICAgJ0R1cGxpY2F0ZSBvciBhbWJpZ3VvdXMg
JXMuJyAlIGV4cGVjdGF0aW9uX3NvdXJjZSwKKyAgICAgICAgICAgICAgICB0ZXN0KQorICAgICAg
ICAgICAgcmV0dXJuIFRydWUKKworICAgICAgICBpZiBwcmV2X251bV9tYXRjaGVzIDwgbnVtX21h
dGNoZXM6CisgICAgICAgICAgICBzZWxmLl9hZGRfZXJyb3IobGluZW5vLAorICAgICAgICAgICAg
ICAgICdNb3JlIHNwZWNpZmljIGVudHJ5IG9uIGxpbmUgJWQgb3ZlcnJpZGVzIGxpbmUgJWQnICUK
KyAgICAgICAgICAgICAgICAobGluZW5vLCBwcmV2X2xpbmVubyksIHRlc3RfbGlzdF9wYXRoKQor
ICAgICAgICAgICAgIyBGSVhNRTogcmV0dXJuIEZhbHNlIGlmIHdlIHdhbnQgbW9yZSBzcGVjaWZp
YyB0byB3aW4uCisgICAgICAgICAgICByZXR1cm4gVHJ1ZQorCisgICAgICAgIHNlbGYuX2FkZF9l
cnJvcihsaW5lbm8sCisgICAgICAgICAgICAnTW9yZSBzcGVjaWZpYyBlbnRyeSBvbiBsaW5lICVk
IG92ZXJyaWRlcyBsaW5lICVkJyAlCisgICAgICAgICAgICAocHJldl9saW5lbm8sIGxpbmVubyks
IHRlc3RfbGlzdF9wYXRoKQorICAgICAgICByZXR1cm4gVHJ1ZQorCiAKIGNsYXNzIFRlc3RFeHBl
Y3RhdGlvbnM6CiAgICAgIiIiVGVzdCBleHBlY3RhdGlvbnMgY29uc2lzdCBvZiBsaW5lcyB3aXRo
IHNwZWNpZmljYXRpb25zIG9mIHdoYXQKQEAgLTM1Myw2ICs1NjAsNyBAQCBjbGFzcyBUZXN0RXhw
ZWN0YXRpb25zOgogICAgICAgICBzZWxmLl9pc19saW50X21vZGUgPSBpc19saW50X21vZGUKICAg
ICAgICAgc2VsZi5fZXJyb3JzID0gW10KICAgICAgICAgc2VsZi5fbm9uX2ZhdGFsX2Vycm9ycyA9
IFtdCisgICAgICAgIHNlbGYuX21vZGVsID0gVGVzdEV4cGVjdGF0aW9uc01vZGVsKHBvcnQpCiAK
ICAgICAgICAgIyBNYXBzIHJlbGF0aXZlIHRlc3QgcGF0aHMgYXMgbGlzdGVkIGluIHRoZSBleHBl
Y3RhdGlvbnMgZmlsZSB0byBhCiAgICAgICAgICMgbGlzdCBvZiBtYXBzIGNvbnRhaW5pbmcgbW9k
aWZpZXJzIGFuZCBleHBlY3RhdGlvbnMgZm9yIGVhY2ggdGltZQpAQCAtMzYxLDI1ICs1NjksNiBA
QCBjbGFzcyBUZXN0RXhwZWN0YXRpb25zOgogICAgICAgICAjIGludmFsaWQgb25lcy4KICAgICAg
ICAgc2VsZi5fYWxsX2V4cGVjdGF0aW9ucyA9IHt9CiAKLSAgICAgICAgIyBNYXBzIGEgdGVzdCB0
byBpdHMgbGlzdCBvZiBleHBlY3RhdGlvbnMuCi0gICAgICAgIHNlbGYuX3Rlc3RfdG9fZXhwZWN0
YXRpb25zID0ge30KLQotICAgICAgICAjIE1hcHMgYSB0ZXN0IHRvIGl0cyBsaXN0IG9mIG9wdGlv
bnMgKHN0cmluZyB2YWx1ZXMpCi0gICAgICAgIHNlbGYuX3Rlc3RfdG9fb3B0aW9ucyA9IHt9Ci0K
LSAgICAgICAgIyBNYXBzIGEgdGVzdCB0byBpdHMgbGlzdCBvZiBtb2RpZmllcnM6IHRoZSBjb25z
dGFudHMgYXNzb2NpYXRlZCB3aXRoCi0gICAgICAgICMgdGhlIG9wdGlvbnMgbWludXMgYW55IGJ1
ZyBvciBwbGF0Zm9ybSBzdHJpbmdzCi0gICAgICAgIHNlbGYuX3Rlc3RfdG9fbW9kaWZpZXJzID0g
e30KLQotICAgICAgICAjIE1hcHMgYSB0ZXN0IHRvIHRoZSBiYXNlIHBhdGggdGhhdCBpdCB3YXMg
bGlzdGVkIHdpdGggaW4gdGhlIGxpc3QgYW5kCi0gICAgICAgICMgdGhlIG51bWJlciBvZiBtYXRj
aGVzIHRoYXQgYmFzZSBwYXRoIGhhZC4KLSAgICAgICAgc2VsZi5fdGVzdF9saXN0X3BhdGhzID0g
e30KLQotICAgICAgICBzZWxmLl9tb2RpZmllcl90b190ZXN0cyA9IHNlbGYuX2RpY3Rfb2Zfc2V0
cyhzZWxmLk1PRElGSUVSUykKLSAgICAgICAgc2VsZi5fZXhwZWN0YXRpb25fdG9fdGVzdHMgPSBz
ZWxmLl9kaWN0X29mX3NldHMoc2VsZi5FWFBFQ1RBVElPTlMpCi0gICAgICAgIHNlbGYuX3RpbWVs
aW5lX3RvX3Rlc3RzID0gc2VsZi5fZGljdF9vZl9zZXRzKHNlbGYuVElNRUxJTkVTKQotICAgICAg
ICBzZWxmLl9yZXN1bHRfdHlwZV90b190ZXN0cyA9IHNlbGYuX2RpY3Rfb2Zfc2V0cyhzZWxmLlJF
U1VMVF9UWVBFUykKLQogICAgICAgICBzZWxmLl9tYXRjaGVyID0gTW9kaWZpZXJNYXRjaGVyKHNl
bGYuX3Rlc3RfY29uZmlnKQogICAgICAgICBzZWxmLl9vdmVycmlkZXNfYWxsb3dlZCA9IEZhbHNl
CiAgICAgICAgIHNlbGYuX2V4cGVjdGF0aW9ucyA9IFRlc3RFeHBlY3RhdGlvblBhcnNlci5wYXJz
ZV9saXN0KGV4cGVjdGF0aW9ucywgc2VsZikKQEAgLTQwMywxNiArNTkyLDE2IEBAIGNsYXNzIFRl
c3RFeHBlY3RhdGlvbnM6CiAgICAgIyB0ZXN0cyB0byBydW4sIGJ1dCBub3Qgd2hlbiBnZXR0aW5n
IG1ldHJpY3MuCiAKICAgICBkZWYgZ2V0X3JlYmFzZWxpbmluZ19mYWlsdXJlcyhzZWxmKToKLSAg
ICAgICAgcmV0dXJuIChzZWxmLmdldF90ZXN0X3NldChSRUJBU0VMSU5FLCBGQUlMKSB8Ci0gICAg
ICAgICAgICAgICAgc2VsZi5nZXRfdGVzdF9zZXQoUkVCQVNFTElORSwgSU1BR0UpIHwKLSAgICAg
ICAgICAgICAgICBzZWxmLmdldF90ZXN0X3NldChSRUJBU0VMSU5FLCBURVhUKSB8Ci0gICAgICAg
ICAgICAgICAgc2VsZi5nZXRfdGVzdF9zZXQoUkVCQVNFTElORSwgSU1BR0VfUExVU19URVhUKSB8
Ci0gICAgICAgICAgICAgICAgc2VsZi5nZXRfdGVzdF9zZXQoUkVCQVNFTElORSwgQVVESU8pKQor
ICAgICAgICByZXR1cm4gKHNlbGYuX21vZGVsLmdldF90ZXN0X3NldChSRUJBU0VMSU5FLCBGQUlM
KSB8CisgICAgICAgICAgICAgICAgc2VsZi5fbW9kZWwuZ2V0X3Rlc3Rfc2V0KFJFQkFTRUxJTkUs
IElNQUdFKSB8CisgICAgICAgICAgICAgICAgc2VsZi5fbW9kZWwuZ2V0X3Rlc3Rfc2V0KFJFQkFT
RUxJTkUsIFRFWFQpIHwKKyAgICAgICAgICAgICAgICBzZWxmLl9tb2RlbC5nZXRfdGVzdF9zZXQo
UkVCQVNFTElORSwgSU1BR0VfUExVU19URVhUKSB8CisgICAgICAgICAgICAgICAgc2VsZi5fbW9k
ZWwuZ2V0X3Rlc3Rfc2V0KFJFQkFTRUxJTkUsIEFVRElPKSkKIAogICAgIGRlZiBnZXRfZXhwZWN0
YXRpb25zX3N0cmluZyhzZWxmLCB0ZXN0KToKICAgICAgICAgIiIiUmV0dXJucyB0aGUgZXhwZWN0
YXRvbnMgZm9yIHRoZSBnaXZlbiB0ZXN0IGFzIGFuIHVwcGVyY2FzZSBzdHJpbmcuCiAgICAgICAg
IElmIHRoZXJlIGFyZSBubyBleHBlY3RhdGlvbnMgZm9yIHRoZSB0ZXN0LCB0aGVuICJQQVNTIiBp
cyByZXR1cm5lZC4iIiIKLSAgICAgICAgZXhwZWN0YXRpb25zID0gc2VsZi5nZXRfZXhwZWN0YXRp
b25zKHRlc3QpCisgICAgICAgIGV4cGVjdGF0aW9ucyA9IHNlbGYuX21vZGVsLmdldF9leHBlY3Rh
dGlvbnModGVzdCkKICAgICAgICAgcmV0dmFsID0gW10KIAogICAgICAgICBmb3IgZXhwZWN0YXRp
b24gaW4gZXhwZWN0YXRpb25zOgpAQCAtNDI4LDcgKzYxNyw3IEBAIGNsYXNzIFRlc3RFeHBlY3Rh
dGlvbnM6CiAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoZXhwZWN0YXRpb24pCiAKICAgICBkZWYg
bWF0Y2hlc19hbl9leHBlY3RlZF9yZXN1bHQoc2VsZiwgdGVzdCwgcmVzdWx0LCBwaXhlbF90ZXN0
c19hcmVfZW5hYmxlZCk6Ci0gICAgICAgIGV4cGVjdGVkX3Jlc3VsdHMgPSBzZWxmLmdldF9leHBl
Y3RhdGlvbnModGVzdCkKKyAgICAgICAgZXhwZWN0ZWRfcmVzdWx0cyA9IHNlbGYuX21vZGVsLmdl
dF9leHBlY3RhdGlvbnModGVzdCkKICAgICAgICAgaWYgbm90IHBpeGVsX3Rlc3RzX2FyZV9lbmFi
bGVkOgogICAgICAgICAgICAgZXhwZWN0ZWRfcmVzdWx0cyA9IHJlbW92ZV9waXhlbF9mYWlsdXJl
cyhleHBlY3RlZF9yZXN1bHRzKQogICAgICAgICByZXR1cm4gcmVzdWx0X3dhc19leHBlY3RlZChy
ZXN1bHQsCkBAIC00MzcsNyArNjI2LDcgQEAgY2xhc3MgVGVzdEV4cGVjdGF0aW9uczoKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5oYXNfbW9kaWZpZXIodGVzdCwgU0tJ
UCkpCiAKICAgICBkZWYgaXNfcmViYXNlbGluaW5nKHNlbGYsIHRlc3QpOgotICAgICAgICByZXR1
cm4gc2VsZi5oYXNfbW9kaWZpZXIodGVzdCwgUkVCQVNFTElORSkKKyAgICAgICAgcmV0dXJuIHNl
bGYuX21vZGVsLmhhc19tb2RpZmllcih0ZXN0LCBSRUJBU0VMSU5FKQogCiAgICAgZGVmIF9oYW5k
bGVfYW55X3JlYWRfZXJyb3JzKHNlbGYpOgogICAgICAgICBpZiBsZW4oc2VsZi5fZXJyb3JzKSBv
ciBsZW4oc2VsZi5fbm9uX2ZhdGFsX2Vycm9ycyk6CkBAIC00NTksNDYgKzY0OCw4IEBAIGNsYXNz
IFRlc3RFeHBlY3RhdGlvbnM6CiAgICAgICAgIG1vZGlmaWVycyA9IFtdCiAgICAgICAgIGlmIHNl
bGYuX2Z1bGxfdGVzdF9saXN0OgogICAgICAgICAgICAgZm9yIHRlc3QgaW4gc2VsZi5fZnVsbF90
ZXN0X2xpc3Q6Ci0gICAgICAgICAgICAgICAgaWYgbm90IHRlc3QgaW4gc2VsZi5fdGVzdF9saXN0
X3BhdGhzOgotICAgICAgICAgICAgICAgICAgICBzZWxmLl9hZGRfdGVzdCh0ZXN0LCBtb2RpZmll
cnMsIGV4cGVjdGF0aW9ucywgb3B0aW9ucywgb3ZlcnJpZGVzX2FsbG93ZWQ9RmFsc2UpCi0KLSAg
ICBkZWYgX2RpY3Rfb2Zfc2V0cyhzZWxmLCBzdHJpbmdzX3RvX2NvbnN0YW50cyk6Ci0gICAgICAg
ICIiIlRha2VzIGEgZGljdCBvZiBzdHJpbmdzLT5jb25zdGFudHMgYW5kIHJldHVybnMgYSBkaWN0
IG1hcHBpbmcKLSAgICAgICAgZWFjaCBjb25zdGFudCB0byBhbiBlbXB0eSBzZXQuIiIiCi0gICAg
ICAgIGQgPSB7fQotICAgICAgICBmb3IgYyBpbiBzdHJpbmdzX3RvX2NvbnN0YW50cy52YWx1ZXMo
KToKLSAgICAgICAgICAgIGRbY10gPSBzZXQoKQotICAgICAgICByZXR1cm4gZAotCi0gICAgZGVm
IGdldF90ZXN0X3NldChzZWxmLCBtb2RpZmllciwgZXhwZWN0YXRpb249Tm9uZSwgaW5jbHVkZV9z
a2lwcz1UcnVlKToKLSAgICAgICAgaWYgZXhwZWN0YXRpb24gaXMgTm9uZToKLSAgICAgICAgICAg
IHRlc3RzID0gc2VsZi5fbW9kaWZpZXJfdG9fdGVzdHNbbW9kaWZpZXJdCi0gICAgICAgIGVsc2U6
Ci0gICAgICAgICAgICB0ZXN0cyA9IChzZWxmLl9leHBlY3RhdGlvbl90b190ZXN0c1tleHBlY3Rh
dGlvbl0gJgotICAgICAgICAgICAgICAgIHNlbGYuX21vZGlmaWVyX3RvX3Rlc3RzW21vZGlmaWVy
XSkKLQotICAgICAgICBpZiBub3QgaW5jbHVkZV9za2lwczoKLSAgICAgICAgICAgIHRlc3RzID0g
dGVzdHMgLSBzZWxmLmdldF90ZXN0X3NldChTS0lQLCBleHBlY3RhdGlvbikKLQotICAgICAgICBy
ZXR1cm4gdGVzdHMKLQotICAgIGRlZiBnZXRfdGVzdHNfd2l0aF9yZXN1bHRfdHlwZShzZWxmLCBy
ZXN1bHRfdHlwZSk6Ci0gICAgICAgIHJldHVybiBzZWxmLl9yZXN1bHRfdHlwZV90b190ZXN0c1ty
ZXN1bHRfdHlwZV0KLQotICAgIGRlZiBnZXRfdGVzdHNfd2l0aF90aW1lbGluZShzZWxmLCB0aW1l
bGluZSk6Ci0gICAgICAgIHJldHVybiBzZWxmLl90aW1lbGluZV90b190ZXN0c1t0aW1lbGluZV0K
LQotICAgIGRlZiBnZXRfb3B0aW9ucyhzZWxmLCB0ZXN0KToKLSAgICAgICAgIiIiVGhpcyByZXR1
cm5zIHRoZSBlbnRpcmUgc2V0IG9mIG9wdGlvbnMgZm9yIHRoZSBnaXZlbiB0ZXN0Ci0gICAgICAg
ICh0aGUgbW9kaWZpZXJzIHBsdXMgdGhlIEJVR1hYWFggaWRlbnRpZmllcikuIFRoaXMgaXMgdXNl
ZCBieSB0aGUKLSAgICAgICAgTFRURiBkYXNoYm9hcmQuIiIiCi0gICAgICAgIHJldHVybiBzZWxm
Ll90ZXN0X3RvX29wdGlvbnNbdGVzdF0KLQotICAgIGRlZiBoYXNfbW9kaWZpZXIoc2VsZiwgdGVz
dCwgbW9kaWZpZXIpOgotICAgICAgICByZXR1cm4gdGVzdCBpbiBzZWxmLl9tb2RpZmllcl90b190
ZXN0c1ttb2RpZmllcl0KLQotICAgIGRlZiBnZXRfZXhwZWN0YXRpb25zKHNlbGYsIHRlc3QpOgot
ICAgICAgICByZXR1cm4gc2VsZi5fdGVzdF90b19leHBlY3RhdGlvbnNbdGVzdF0KKyAgICAgICAg
ICAgICAgICBpZiBub3Qgc2VsZi5fbW9kZWwuaGFzX3Rlc3QodGVzdCk6CisgICAgICAgICAgICAg
ICAgICAgIHNlbGYuX21vZGVsLmFkZF90ZXN0KHRlc3QsIG1vZGlmaWVycywgZXhwZWN0YXRpb25z
LCBvcHRpb25zLCBvdmVycmlkZXNfYWxsb3dlZD1GYWxzZSkKIAogICAgIGRlZiBnZXRfZXhwZWN0
YXRpb25zX2pzb25fZm9yX2FsbF9wbGF0Zm9ybXMoc2VsZik6CiAgICAgICAgICMgU3BlY2lmeSBz
ZXBhcmF0b3JzIGluIG9yZGVyIHRvIGdldCBjb21wYWN0IGVuY29kaW5nLgpAQCAtNTU4LDEwICs3
MDksMTEgQEAgY2xhc3MgVGVzdEV4cGVjdGF0aW9uczoKICAgICAgICAgICAgIHRlc3RzID0gc2Vs
Zi5fZXhwYW5kX3Rlc3RzKHRlc3RfbGlzdF9wYXRoKQogCiAgICAgICAgIG1vZGlmaWVycyA9IFtv
IGZvciBvIGluIG9wdGlvbnMgaWYgbyBpbiBzZWxmLk1PRElGSUVSU10KLSAgICAgICAgc2VsZi5f
YWRkX3Rlc3RzKHRlc3RzLCBleHBlY3RhdGlvbnMsIHRlc3RfbGlzdF9wYXRoLCBsaW5lbm8sIG1v
ZGlmaWVycywgbnVtX21hdGNoZXMsIG9wdGlvbnMsIG92ZXJyaWRlc19hbGxvd2VkKQorICAgICAg
ICBzZWxmLl9tb2RlbC5hZGRfdGVzdHModGVzdHMsIGV4cGVjdGF0aW9ucywgdGVzdF9saXN0X3Bh
dGgsIGxpbmVubywgbW9kaWZpZXJzLCBudW1fbWF0Y2hlcywgb3B0aW9ucywgb3ZlcnJpZGVzX2Fs
bG93ZWQpCiAKICAgICAgICAgcmV0dXJuIFRydWUKIAorICAgICMgRklYTUU6IFJlbW92ZSwgbm8g
bG9uZ2VyIHVzZWQgYW55d2hlcmU/CiAgICAgZGVmIF9nZXRfb3B0aW9uc19saXN0KHNlbGYsIGxp
c3RTdHJpbmcpOgogICAgICAgICByZXR1cm4gW3BhcnQuc3RyaXAoKS5sb3dlcigpIGZvciBwYXJ0
IGluIGxpc3RTdHJpbmcuc3RyaXAoKS5zcGxpdCgnICcpXQogCkBAIC02NTAsMTQ2ICs4MDIsNiBA
QCBjbGFzcyBUZXN0RXhwZWN0YXRpb25zOgogICAgICAgICAgICAgcmVzdWx0ID0gW3Rlc3RfbGlz
dF9wYXRoLCBdCiAgICAgICAgIHJldHVybiByZXN1bHQKIAotICAgIGRlZiBfYWRkX3Rlc3RzKHNl
bGYsIHRlc3RzLCBleHBlY3RhdGlvbnMsIHRlc3RfbGlzdF9wYXRoLCBsaW5lbm8sCi0gICAgICAg
ICAgICAgICAgICAgbW9kaWZpZXJzLCBudW1fbWF0Y2hlcywgb3B0aW9ucywgb3ZlcnJpZGVzX2Fs
bG93ZWQpOgotICAgICAgICBmb3IgdGVzdCBpbiB0ZXN0czoKLSAgICAgICAgICAgIGlmIHNlbGYu
X2FscmVhZHlfc2Vlbl9iZXR0ZXJfbWF0Y2godGVzdCwgdGVzdF9saXN0X3BhdGgsIG51bV9tYXRj
aGVzLCBsaW5lbm8sIG92ZXJyaWRlc19hbGxvd2VkKToKLSAgICAgICAgICAgICAgICBjb250aW51
ZQotCi0gICAgICAgICAgICBzZWxmLl9jbGVhcl9leHBlY3RhdGlvbnNfZm9yX3Rlc3QodGVzdCwg
dGVzdF9saXN0X3BhdGgpCi0gICAgICAgICAgICBzZWxmLl90ZXN0X2xpc3RfcGF0aHNbdGVzdF0g
PSAoc2VsZi5fcG9ydC5ub3JtYWxpemVfdGVzdF9uYW1lKHRlc3RfbGlzdF9wYXRoKSwgbnVtX21h
dGNoZXMsIGxpbmVubykKLSAgICAgICAgICAgIHNlbGYuX2FkZF90ZXN0KHRlc3QsIG1vZGlmaWVy
cywgZXhwZWN0YXRpb25zLCBvcHRpb25zLCBvdmVycmlkZXNfYWxsb3dlZCkKLQotICAgIGRlZiBf
YWRkX3Rlc3Qoc2VsZiwgdGVzdCwgbW9kaWZpZXJzLCBleHBlY3RhdGlvbnMsIG9wdGlvbnMsIG92
ZXJyaWRlc19hbGxvd2VkKToKLSAgICAgICAgIiIiU2V0cyB0aGUgZXhwZWN0ZWQgc3RhdGUgZm9y
IGEgZ2l2ZW4gdGVzdC4KLQotICAgICAgICBUaGlzIHJvdXRpbmUgYXNzdW1lcyB0aGUgdGVzdCBo
YXMgbm90IGJlZW4gYWRkZWQgYmVmb3JlLiBJZiBpdCBoYXMsCi0gICAgICAgIHVzZSBfY2xlYXJf
ZXhwZWN0YXRpb25zX2Zvcl90ZXN0KCkgdG8gcmVzZXQgdGhlIHN0YXRlIHByaW9yIHRvCi0gICAg
ICAgIGNhbGxpbmcgdGhpcy4KLQotICAgICAgICBBcmdzOgotICAgICAgICAgIHRlc3Q6IHRlc3Qg
dG8gYWRkCi0gICAgICAgICAgbW9kaWZpZXJzOiBzZXF1ZW5jZSBvZiBtb2RpZmllciBrZXl3b3Jk
cyAoJ3dvbnRmaXgnLCAnc2xvdycsIGV0Yy4pCi0gICAgICAgICAgZXhwZWN0YXRpb25zOiBzZXF1
ZW5jZSBvZiBleHBlY3RhdGlvbnMgKFBBU1MsIElNQUdFLCBldGMuKQotICAgICAgICAgIG9wdGlv
bnM6IHNlcXVlbmNlIG9mIGtleXdvcmRzIGFuZCBidWcgaWRlbnRpZmllcnMuCi0gICAgICAgICAg
b3ZlcnJpZGVzX2FsbG93ZWQ6IHdoZXRoZXIgd2UncmUgcGFyc2luZyB0aGUgcmVndWxhciBleHBl
Y3RhdGlvbnMKLSAgICAgICAgICAgICAgb3IgdGhlIG92ZXJyaWRkaW5nIGV4cGVjdGF0aW9ucyIi
IgotICAgICAgICBzZWxmLl90ZXN0X3RvX2V4cGVjdGF0aW9uc1t0ZXN0XSA9IGV4cGVjdGF0aW9u
cwotICAgICAgICBmb3IgZXhwZWN0YXRpb24gaW4gZXhwZWN0YXRpb25zOgotICAgICAgICAgICAg
c2VsZi5fZXhwZWN0YXRpb25fdG9fdGVzdHNbZXhwZWN0YXRpb25dLmFkZCh0ZXN0KQotCi0gICAg
ICAgIHNlbGYuX3Rlc3RfdG9fb3B0aW9uc1t0ZXN0XSA9IG9wdGlvbnMKLSAgICAgICAgc2VsZi5f
dGVzdF90b19tb2RpZmllcnNbdGVzdF0gPSBzZXQoKQotICAgICAgICBmb3IgbW9kaWZpZXIgaW4g
bW9kaWZpZXJzOgotICAgICAgICAgICAgbW9kX3ZhbHVlID0gc2VsZi5NT0RJRklFUlNbbW9kaWZp
ZXJdCi0gICAgICAgICAgICBzZWxmLl9tb2RpZmllcl90b190ZXN0c1ttb2RfdmFsdWVdLmFkZCh0
ZXN0KQotICAgICAgICAgICAgc2VsZi5fdGVzdF90b19tb2RpZmllcnNbdGVzdF0uYWRkKG1vZF92
YWx1ZSkKLQotICAgICAgICBpZiAnd29udGZpeCcgaW4gbW9kaWZpZXJzOgotICAgICAgICAgICAg
c2VsZi5fdGltZWxpbmVfdG9fdGVzdHNbV09OVEZJWF0uYWRkKHRlc3QpCi0gICAgICAgIGVsc2U6
Ci0gICAgICAgICAgICBzZWxmLl90aW1lbGluZV90b190ZXN0c1tOT1ddLmFkZCh0ZXN0KQotCi0g
ICAgICAgIGlmICdza2lwJyBpbiBtb2RpZmllcnM6Ci0gICAgICAgICAgICBzZWxmLl9yZXN1bHRf
dHlwZV90b190ZXN0c1tTS0lQXS5hZGQodGVzdCkKLSAgICAgICAgZWxpZiBleHBlY3RhdGlvbnMg
PT0gc2V0KFtQQVNTXSk6Ci0gICAgICAgICAgICBzZWxmLl9yZXN1bHRfdHlwZV90b190ZXN0c1tQ
QVNTXS5hZGQodGVzdCkKLSAgICAgICAgZWxpZiBsZW4oZXhwZWN0YXRpb25zKSA+IDE6Ci0gICAg
ICAgICAgICBzZWxmLl9yZXN1bHRfdHlwZV90b190ZXN0c1tGTEFLWV0uYWRkKHRlc3QpCi0gICAg
ICAgIGVsc2U6Ci0gICAgICAgICAgICBzZWxmLl9yZXN1bHRfdHlwZV90b190ZXN0c1tGQUlMXS5h
ZGQodGVzdCkKLQotICAgICAgICBpZiBvdmVycmlkZXNfYWxsb3dlZDoKLSAgICAgICAgICAgIHNl
bGYuX292ZXJyaWRkaW5nX3Rlc3RzLmFkZCh0ZXN0KQotCi0gICAgZGVmIF9jbGVhcl9leHBlY3Rh
dGlvbnNfZm9yX3Rlc3Qoc2VsZiwgdGVzdCwgdGVzdF9saXN0X3BhdGgpOgotICAgICAgICAiIiJS
ZW1vdmUgcHJleGlzdGluZyBleHBlY3RhdGlvbnMgZm9yIHRoaXMgdGVzdC4KLSAgICAgICAgVGhp
cyBoYXBwZW5zIGlmIHdlIGFyZSBzZWVpbmcgYSBtb3JlIHByZWNpc2UgcGF0aAotICAgICAgICB0
aGFuIGEgcHJldmlvdXMgbGlzdGluZy4KLSAgICAgICAgIiIiCi0gICAgICAgIGlmIHRlc3QgaW4g
c2VsZi5fdGVzdF9saXN0X3BhdGhzOgotICAgICAgICAgICAgc2VsZi5fdGVzdF90b19leHBlY3Rh
dGlvbnMucG9wKHRlc3QsICcnKQotICAgICAgICAgICAgc2VsZi5fcmVtb3ZlX2Zyb21fc2V0cyh0
ZXN0LCBzZWxmLl9leHBlY3RhdGlvbl90b190ZXN0cykKLSAgICAgICAgICAgIHNlbGYuX3JlbW92
ZV9mcm9tX3NldHModGVzdCwgc2VsZi5fbW9kaWZpZXJfdG9fdGVzdHMpCi0gICAgICAgICAgICBz
ZWxmLl9yZW1vdmVfZnJvbV9zZXRzKHRlc3QsIHNlbGYuX3RpbWVsaW5lX3RvX3Rlc3RzKQotICAg
ICAgICAgICAgc2VsZi5fcmVtb3ZlX2Zyb21fc2V0cyh0ZXN0LCBzZWxmLl9yZXN1bHRfdHlwZV90
b190ZXN0cykKLQotICAgICAgICBzZWxmLl90ZXN0X2xpc3RfcGF0aHNbdGVzdF0gPSBzZWxmLl9w
b3J0Lm5vcm1hbGl6ZV90ZXN0X25hbWUodGVzdF9saXN0X3BhdGgpCi0KLSAgICBkZWYgX3JlbW92
ZV9mcm9tX3NldHMoc2VsZiwgdGVzdCwgZGljdCk6Ci0gICAgICAgICIiIlJlbW92ZXMgdGhlIGdp
dmVuIHRlc3QgZnJvbSB0aGUgc2V0cyBpbiB0aGUgZGljdGlvbmFyeS4KLQotICAgICAgICBBcmdz
OgotICAgICAgICAgIHRlc3Q6IHRlc3QgdG8gbG9vayBmb3IKLSAgICAgICAgICBkaWN0OiBkaWN0
IG9mIHNldHMgb2YgZmlsZXMiIiIKLSAgICAgICAgZm9yIHNldF9vZl90ZXN0cyBpbiBkaWN0Lml0
ZXJ2YWx1ZXMoKToKLSAgICAgICAgICAgIGlmIHRlc3QgaW4gc2V0X29mX3Rlc3RzOgotICAgICAg
ICAgICAgICAgIHNldF9vZl90ZXN0cy5yZW1vdmUodGVzdCkKLQotICAgIGRlZiBfYWxyZWFkeV9z
ZWVuX2JldHRlcl9tYXRjaChzZWxmLCB0ZXN0LCB0ZXN0X2xpc3RfcGF0aCwgbnVtX21hdGNoZXMs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVubywgb3ZlcnJpZGVzX2Fs
bG93ZWQpOgotICAgICAgICAiIiJSZXR1cm5zIHdoZXRoZXIgd2UndmUgc2VlbiBhIGJldHRlciBt
YXRjaCBhbHJlYWR5IGluIHRoZSBmaWxlLgotCi0gICAgICAgIFJldHVybnMgVHJ1ZSBpZiB3ZSd2
ZSBhbHJlYWR5IHNlZW4gYSB0ZXN0X2xpc3RfcGF0aCB0aGF0IG1hdGNoZXMgbW9yZSBvZiB0aGUg
dGVzdAotICAgICAgICAgICAgdGhhbiB0aGlzIHBhdGggZG9lcwotICAgICAgICAiIiIKLSAgICAg
ICAgIyBGSVhNRTogU2VlIGNvbW1lbnQgYmVsb3cgYWJvdXQgbWF0Y2hpbmcgdGVzdCBjb25maWdz
IGFuZCBudW1fbWF0Y2hlcy4KLSAgICAgICAgaWYgbm90IHRlc3QgaW4gc2VsZi5fdGVzdF9saXN0
X3BhdGhzOgotICAgICAgICAgICAgIyBXZSd2ZSBuZXZlciBzZWVuIHRoaXMgdGVzdCBiZWZvcmUu
Ci0gICAgICAgICAgICByZXR1cm4gRmFsc2UKLQotICAgICAgICBwcmV2X2Jhc2VfcGF0aCwgcHJl
dl9udW1fbWF0Y2hlcywgcHJldl9saW5lbm8gPSBzZWxmLl90ZXN0X2xpc3RfcGF0aHNbdGVzdF0K
LSAgICAgICAgYmFzZV9wYXRoID0gc2VsZi5fcG9ydC5ub3JtYWxpemVfdGVzdF9uYW1lKHRlc3Rf
bGlzdF9wYXRoKQotCi0gICAgICAgIGlmIGxlbihwcmV2X2Jhc2VfcGF0aCkgPiBsZW4oYmFzZV9w
YXRoKToKLSAgICAgICAgICAgICMgVGhlIHByZXZpb3VzIHBhdGggbWF0Y2hlZCBtb3JlIG9mIHRo
ZSB0ZXN0LgotICAgICAgICAgICAgcmV0dXJuIFRydWUKLQotICAgICAgICBpZiBsZW4ocHJldl9i
YXNlX3BhdGgpIDwgbGVuKGJhc2VfcGF0aCk6Ci0gICAgICAgICAgICAjIFRoaXMgcGF0aCBtYXRj
aGVzIG1vcmUgb2YgdGhlIHRlc3QuCi0gICAgICAgICAgICByZXR1cm4gRmFsc2UKLQotICAgICAg
ICBpZiBvdmVycmlkZXNfYWxsb3dlZCBhbmQgdGVzdCBub3QgaW4gc2VsZi5fb3ZlcnJpZGRpbmdf
dGVzdHM6Ci0gICAgICAgICAgICAjIFdlIGhhdmUgc2VlbiB0aGlzIHBhdGgsIGJ1dCB0aGF0J3Mg
b2theSBiZWNhdXNlIGl0IGlzCi0gICAgICAgICAgICAjIGluIHRoZSBvdmVycmlkZXMgYW5kIHRo
ZSBlYXJsaWVyIHBhdGggd2FzIGluIHRoZQotICAgICAgICAgICAgIyBleHBlY3RhdGlvbnMgKG5v
dCB0aGUgb3ZlcnJpZGVzKS4KLSAgICAgICAgICAgIHJldHVybiBGYWxzZQotCi0gICAgICAgICMg
QXQgdGhpcyBwb2ludCB3ZSBrbm93IHdlIGhhdmUgc2VlbiBhIHByZXZpb3VzIGV4YWN0IG1hdGNo
IG9uIHRoaXMKLSAgICAgICAgIyBiYXNlIHBhdGgsIHNvIHdlIG5lZWQgdG8gY2hlY2sgdGhlIHR3
byBzZXRzIG9mIG1vZGlmaWVycy4KLQotICAgICAgICBpZiBvdmVycmlkZXNfYWxsb3dlZDoKLSAg
ICAgICAgICAgIGV4cGVjdGF0aW9uX3NvdXJjZSA9ICJvdmVycmlkZSIKLSAgICAgICAgZWxzZToK
LSAgICAgICAgICAgIGV4cGVjdGF0aW9uX3NvdXJjZSA9ICJleHBlY3RhdGlvbiIKLQotICAgICAg
ICAjIEZJWE1FOiBUaGlzIGNvZGUgd2FzIG9yaWdpbmFsbHkgZGVzaWduZWQgdG8gYWxsb3cgbGlu
ZXMgdGhhdCBtYXRjaGVkCi0gICAgICAgICMgbW9yZSBtb2RpZmllcnMgdG8gb3ZlcnJpZGUgbGlu
ZXMgdGhhdCBtYXRjaGVkIGZld2VyIG1vZGlmaWVycy4KLSAgICAgICAgIyBIb3dldmVyLCB3ZSBj
dXJyZW50bHkgdmlldyB0aGVzZSBhcyBlcnJvcnMuIElmIHdlIGRlY2lkZSB0byBtYWtlCi0gICAg
ICAgICMgdGhpcyBwb2xpY3kgcGVybWFuZW50LCB3ZSBjYW4gcHJvYmFibHkgc2ltcGxpZnkgdGhp
cyBjb2RlCi0gICAgICAgICMgYW5kIHRoZSBNb2RpZmllck1hdGNoZXIgY29kZSBhIGZhaXIgYW1v
dW50LgotICAgICAgICAjCi0gICAgICAgICMgVG8gdXNlIHRoZSAibW9yZSBtb2RpZmllcnMgd2lu
cyIgcG9saWN5LCBjaGFuZ2UgdGhlICJfYWRkX2Vycm9yIiBsaW5lcyBmb3Igb3ZlcnJpZGVzCi0g
ICAgICAgICMgdG8gX2xvZ19ub25fZmF0YWxfZXJyb3IoKSBhbmQgY2hhbmdlIHRoZSBjb21tZW50
ZWQtb3V0ICJyZXR1cm4gRmFsc2UiLgotCi0gICAgICAgIGlmIHByZXZfbnVtX21hdGNoZXMgPT0g
bnVtX21hdGNoZXM6Ci0gICAgICAgICAgICBzZWxmLl9hZGRfZXJyb3IobGluZW5vLAotICAgICAg
ICAgICAgICAgICdEdXBsaWNhdGUgb3IgYW1iaWd1b3VzICVzLicgJSBleHBlY3RhdGlvbl9zb3Vy
Y2UsCi0gICAgICAgICAgICAgICAgdGVzdCkKLSAgICAgICAgICAgIHJldHVybiBUcnVlCi0KLSAg
ICAgICAgaWYgcHJldl9udW1fbWF0Y2hlcyA8IG51bV9tYXRjaGVzOgotICAgICAgICAgICAgc2Vs
Zi5fYWRkX2Vycm9yKGxpbmVubywKLSAgICAgICAgICAgICAgICAnTW9yZSBzcGVjaWZpYyBlbnRy
eSBvbiBsaW5lICVkIG92ZXJyaWRlcyBsaW5lICVkJyAlCi0gICAgICAgICAgICAgICAgKGxpbmVu
bywgcHJldl9saW5lbm8pLCB0ZXN0X2xpc3RfcGF0aCkKLSAgICAgICAgICAgICMgRklYTUU6IHJl
dHVybiBGYWxzZSBpZiB3ZSB3YW50IG1vcmUgc3BlY2lmaWMgdG8gd2luLgotICAgICAgICAgICAg
cmV0dXJuIFRydWUKLQotICAgICAgICBzZWxmLl9hZGRfZXJyb3IobGluZW5vLAotICAgICAgICAg
ICAgJ01vcmUgc3BlY2lmaWMgZW50cnkgb24gbGluZSAlZCBvdmVycmlkZXMgbGluZSAlZCcgJQot
ICAgICAgICAgICAgKHByZXZfbGluZW5vLCBsaW5lbm8pLCB0ZXN0X2xpc3RfcGF0aCkKLSAgICAg
ICAgcmV0dXJuIFRydWUKLQogICAgIGRlZiBfYWRkX2Vycm9yKHNlbGYsIGxpbmVubywgbXNnLCBw
YXRoKToKICAgICAgICAgIiIiUmVwb3J0cyBhbiBlcnJvciB0aGF0IHdpbGwgcHJldmVudCBydW5u
aW5nIHRoZSB0ZXN0cy4gRG9lcyBub3QKICAgICAgICAgaW1tZWRpYXRlbHkgcmFpc2UgYW4gZXhj
ZXB0aW9uIGJlY2F1c2Ugd2UnZCBsaWtlIHRvIGFnZ3JlZ2F0ZSBhbGwgdGhlCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>100823</attachid>
            <date>2011-07-14 10:10:06 -0700</date>
            <delta_ts>2011-07-14 22:58:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-64531-20110714101005.patch</filename>
            <type>text/plain</type>
            <size>25167</size>
            <attacher name="Dimitri Glazkov (Google)">dglazkov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTEwMDIKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCAwOGNlMTRkOTZjYzM0MjgyNWQxMWYyNDEyMmZkOTVhMGIw
Mjc4MzU5Li4zOTdkMjZhYTBkODZkNTFjNDE1OWVmMzYzNDBjM2RiYzk3MjE0MjY3IDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUg
QEAKKzIwMTEtMDctMTQgIERpbWl0cmkgR2xhemtvdiAgPGRnbGF6a292QGNocm9taXVtLm9yZz4K
KworICAgICAgICBJbnRyb2R1Y2UgVGVzdEV4cGVjdGF0aW9uc01vZGVsLCBzcGxpdCBvdXQgb2Yg
VGVzdEV4cGVjdGF0aW9ucy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTY0NTMxCisKKyAgICAgICAgVGhpcyBpcyBhIHNpbXBsZSBzcGxpdC1hbmQtbWFr
ZS13b3JrIHJlZmFjdG9yaW5nLCBhIGZpcnN0IHN0ZXAgYW1vbmcgbWFueS4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X2V4cGVjdGF0aW9ucy5weTogTW92ZWQgYWxsIG1vZGVs
LXJlbGF0ZWQgbWVtYmVycworICAgICAgICAgICAgb3V0IG9mIFRlc3RFeHBlY3RhdGlvbnMgYW5k
IGludG8gVGVzdEV4cGVjdGF0aW9uc01vZGVsLgorCiAyMDExLTA3LTE0ICBBZGFtIEJhcnRoICA8
YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgRml4IFB5dGhvbiBleGNlcHRpb24gYmxvY2tp
bmcgdGhlIGNvbW1pdC1xdWV1ZS4KZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X2V4cGVjdGF0aW9ucy5weSBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X2V4cGVjdGF0aW9ucy5weQppbmRleCAw
OWJjMDJlYzUwY2Y1Y2I0NTA4NzM0MmI3MGJhYzhkN2MyNWVhYTE1Li45MmMyYzA0NmEyZjZlY2Yz
OGYzMThmNjQ5ZTI0ZTYxNjc1NWE4Y2Q4IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVzdF9leHBlY3RhdGlvbnMucHkKKysrIGIvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfZXhwZWN0YXRpb25zLnB5
CkBAIC0yNDUsNiArMjQ1LDIyMCBAQCBjbGFzcyBUZXN0RXhwZWN0YXRpb25MaW5lOgogICAgICAg
ICBzZWxmLm1hbGZvcm1lZCA9IEZhbHNlCiAKIAorIyBGSVhNRTogUmVmYWN0b3IgdG8gdXNlIFRl
c3RFeHBlY3RhdGlvbkxpbmUgYXMgZGF0YSBpdGVtCisjIEZJWE1FOiBSZWZhY3RvciBBUEkgdG8g
YmUgYSBwcm9wZXIgQ1JVRC4KK2NsYXNzIFRlc3RFeHBlY3RhdGlvbnNNb2RlbDoKKyAgICAiIiJS
ZXByZXNlbnRzIHJlbGF0aW9uYWwgc3RvcmUgb2YgYWxsIGV4cGVjdGF0aW9ucyBhbmQgcHJvdmlk
ZXMgQ1JVRCBzZW1hbnRpY3MgdG8gbWFuYWdlIGl0LiIiIgorCisgICAgZGVmIF9faW5pdF9fKHNl
bGYsIHBvcnQpOgorICAgICAgICBzZWxmLl9wb3J0ID0gcG9ydAorCisgICAgICAgICMgTWFwcyBh
IHRlc3QgdG8gaXRzIGxpc3Qgb2YgZXhwZWN0YXRpb25zLgorICAgICAgICBzZWxmLl90ZXN0X3Rv
X2V4cGVjdGF0aW9ucyA9IHt9CisKKyAgICAgICAgIyBNYXBzIGEgdGVzdCB0byBpdHMgbGlzdCBv
ZiBvcHRpb25zIChzdHJpbmcgdmFsdWVzKQorICAgICAgICBzZWxmLl90ZXN0X3RvX29wdGlvbnMg
PSB7fQorCisgICAgICAgICMgTWFwcyBhIHRlc3QgdG8gaXRzIGxpc3Qgb2YgbW9kaWZpZXJzOiB0
aGUgY29uc3RhbnRzIGFzc29jaWF0ZWQgd2l0aAorICAgICAgICAjIHRoZSBvcHRpb25zIG1pbnVz
IGFueSBidWcgb3IgcGxhdGZvcm0gc3RyaW5ncworICAgICAgICBzZWxmLl90ZXN0X3RvX21vZGlm
aWVycyA9IHt9CisKKyAgICAgICAgIyBNYXBzIGEgdGVzdCB0byB0aGUgYmFzZSBwYXRoIHRoYXQg
aXQgd2FzIGxpc3RlZCB3aXRoIGluIHRoZSBsaXN0IGFuZAorICAgICAgICAjIHRoZSBudW1iZXIg
b2YgbWF0Y2hlcyB0aGF0IGJhc2UgcGF0aCBoYWQuCisgICAgICAgIHNlbGYuX3Rlc3RfbGlzdF9w
YXRocyA9IHt9CisKKyAgICAgICAgIyBMaXN0IG9mIHRlc3RzIHRoYXQgYXJlIGluIHRoZSBvdmVy
cmlkZXMgZmlsZSAodXNlZCBmb3IgY2hlY2tpbmcgZm9yCisgICAgICAgICMgZHVwbGljYXRlcyBp
bnNpZGUgdGhlIG92ZXJyaWRlcyBmaWxlIGl0c2VsZikuIE5vdGUgdGhhdCBqdXN0IGJlY2F1c2UK
KyAgICAgICAgIyBhIHRlc3QgaXMgaW4gdGhpcyBzZXQgZG9lc24ndCBtZWFuIGl0J3MgbmVjZXNz
YXJpbHkgb3ZlcnJpZGRpbmcgYQorICAgICAgICAjIGV4cGVjdGF0aW9uIGluIHRoZSByZWd1bGFy
IGV4cGVjdGF0aW9uczsgdGhlIHRlc3QgbWlnaHQgbm90IGJlCisgICAgICAgICMgbWVudGlvbmVk
IGluIHRoZSByZWd1bGFyIGV4cGVjdGF0aW9ucyBmaWxlIGF0IGFsbC4KKyAgICAgICAgc2VsZi5f
b3ZlcnJpZGRpbmdfdGVzdHMgPSBzZXQoKQorCisgICAgICAgIHNlbGYuX21vZGlmaWVyX3RvX3Rl
c3RzID0gc2VsZi5fZGljdF9vZl9zZXRzKFRlc3RFeHBlY3RhdGlvbnMuTU9ESUZJRVJTKQorICAg
ICAgICBzZWxmLl9leHBlY3RhdGlvbl90b190ZXN0cyA9IHNlbGYuX2RpY3Rfb2Zfc2V0cyhUZXN0
RXhwZWN0YXRpb25zLkVYUEVDVEFUSU9OUykKKyAgICAgICAgc2VsZi5fdGltZWxpbmVfdG9fdGVz
dHMgPSBzZWxmLl9kaWN0X29mX3NldHMoVGVzdEV4cGVjdGF0aW9ucy5USU1FTElORVMpCisgICAg
ICAgIHNlbGYuX3Jlc3VsdF90eXBlX3RvX3Rlc3RzID0gc2VsZi5fZGljdF9vZl9zZXRzKFRlc3RF
eHBlY3RhdGlvbnMuUkVTVUxUX1RZUEVTKQorCisgICAgZGVmIF9kaWN0X29mX3NldHMoc2VsZiwg
c3RyaW5nc190b19jb25zdGFudHMpOgorICAgICAgICAiIiJUYWtlcyBhIGRpY3Qgb2Ygc3RyaW5n
cy0+Y29uc3RhbnRzIGFuZCByZXR1cm5zIGEgZGljdCBtYXBwaW5nCisgICAgICAgIGVhY2ggY29u
c3RhbnQgdG8gYW4gZW1wdHkgc2V0LiIiIgorICAgICAgICBkID0ge30KKyAgICAgICAgZm9yIGMg
aW4gc3RyaW5nc190b19jb25zdGFudHMudmFsdWVzKCk6CisgICAgICAgICAgICBkW2NdID0gc2V0
KCkKKyAgICAgICAgcmV0dXJuIGQKKworICAgIGRlZiBnZXRfdGVzdF9zZXQoc2VsZiwgbW9kaWZp
ZXIsIGV4cGVjdGF0aW9uPU5vbmUsIGluY2x1ZGVfc2tpcHM9VHJ1ZSk6CisgICAgICAgIGlmIGV4
cGVjdGF0aW9uIGlzIE5vbmU6CisgICAgICAgICAgICB0ZXN0cyA9IHNlbGYuX21vZGlmaWVyX3Rv
X3Rlc3RzW21vZGlmaWVyXQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgdGVzdHMgPSAoc2Vs
Zi5fZXhwZWN0YXRpb25fdG9fdGVzdHNbZXhwZWN0YXRpb25dICYKKyAgICAgICAgICAgICAgICBz
ZWxmLl9tb2RpZmllcl90b190ZXN0c1ttb2RpZmllcl0pCisKKyAgICAgICAgaWYgbm90IGluY2x1
ZGVfc2tpcHM6CisgICAgICAgICAgICB0ZXN0cyA9IHRlc3RzIC0gc2VsZi5nZXRfdGVzdF9zZXQo
U0tJUCwgZXhwZWN0YXRpb24pCisKKyAgICAgICAgcmV0dXJuIHRlc3RzCisKKyAgICBkZWYgZ2V0
X3Rlc3RzX3dpdGhfcmVzdWx0X3R5cGUoc2VsZiwgcmVzdWx0X3R5cGUpOgorICAgICAgICByZXR1
cm4gc2VsZi5fcmVzdWx0X3R5cGVfdG9fdGVzdHNbcmVzdWx0X3R5cGVdCisKKyAgICBkZWYgZ2V0
X3Rlc3RzX3dpdGhfdGltZWxpbmUoc2VsZiwgdGltZWxpbmUpOgorICAgICAgICByZXR1cm4gc2Vs
Zi5fdGltZWxpbmVfdG9fdGVzdHNbdGltZWxpbmVdCisKKyAgICBkZWYgZ2V0X29wdGlvbnMoc2Vs
ZiwgdGVzdCk6CisgICAgICAgICIiIlRoaXMgcmV0dXJucyB0aGUgZW50aXJlIHNldCBvZiBvcHRp
b25zIGZvciB0aGUgZ2l2ZW4gdGVzdAorICAgICAgICAodGhlIG1vZGlmaWVycyBwbHVzIHRoZSBC
VUdYWFhYIGlkZW50aWZpZXIpLiBUaGlzIGlzIHVzZWQgYnkgdGhlCisgICAgICAgIExUVEYgZGFz
aGJvYXJkLiIiIgorICAgICAgICByZXR1cm4gc2VsZi5fdGVzdF90b19vcHRpb25zW3Rlc3RdCisK
KyAgICBkZWYgaGFzX21vZGlmaWVyKHNlbGYsIHRlc3QsIG1vZGlmaWVyKToKKyAgICAgICAgcmV0
dXJuIHRlc3QgaW4gc2VsZi5fbW9kaWZpZXJfdG9fdGVzdHNbbW9kaWZpZXJdCisKKyAgICBkZWYg
aGFzX3Rlc3Qoc2VsZiwgdGVzdCk6CisgICAgICAgIHJldHVybiB0ZXN0IGluIHNlbGYuX3Rlc3Rf
bGlzdF9wYXRocworCisgICAgZGVmIGdldF9leHBlY3RhdGlvbnMoc2VsZiwgdGVzdCk6CisgICAg
ICAgIHJldHVybiBzZWxmLl90ZXN0X3RvX2V4cGVjdGF0aW9uc1t0ZXN0XQorCisgICAgZGVmIGFk
ZF90ZXN0cyhzZWxmLCB0ZXN0cywgZXhwZWN0YXRpb25zLCB0ZXN0X2xpc3RfcGF0aCwgbGluZW5v
LAorICAgICAgICAgICAgICAgICAgIG1vZGlmaWVycywgbnVtX21hdGNoZXMsIG9wdGlvbnMsIG92
ZXJyaWRlc19hbGxvd2VkKToKKyAgICAgICAgIiIiUmV0dXJucyBhIGxpc3Qgb2YgZXJyb3JzLCBl
bmNvdW50ZXJlZCB3aGlsZSBtYXRjaGluZyBtb2RpZmllcnMuIiIiCisgICAgICAgICMgRklYTUU6
IFNob3VsZG4ndCByZXR1cm4gYW55dGhpbmcsIHRoaXMgaXMgYSB0ZW1wb3JhcnkgbGF5ZXJpbmcg
dm9sYXRpb24uCisgICAgICAgIGVycm9ycyA9IFtdCisgICAgICAgIGZvciB0ZXN0IGluIHRlc3Rz
OgorICAgICAgICAgICAgaWYgc2VsZi5fYWxyZWFkeV9zZWVuX2JldHRlcl9tYXRjaCh0ZXN0LCB0
ZXN0X2xpc3RfcGF0aCwgbnVtX21hdGNoZXMsIGxpbmVubywgb3ZlcnJpZGVzX2FsbG93ZWQsIGVy
cm9ycyk6CisgICAgICAgICAgICAgICAgY29udGludWUKKworICAgICAgICAgICAgc2VsZi5fY2xl
YXJfZXhwZWN0YXRpb25zX2Zvcl90ZXN0KHRlc3QsIHRlc3RfbGlzdF9wYXRoKQorICAgICAgICAg
ICAgc2VsZi5fdGVzdF9saXN0X3BhdGhzW3Rlc3RdID0gKHNlbGYuX3BvcnQubm9ybWFsaXplX3Rl
c3RfbmFtZSh0ZXN0X2xpc3RfcGF0aCksIG51bV9tYXRjaGVzLCBsaW5lbm8pCisgICAgICAgICAg
ICBzZWxmLmFkZF90ZXN0KHRlc3QsIG1vZGlmaWVycywgZXhwZWN0YXRpb25zLCBvcHRpb25zLCBv
dmVycmlkZXNfYWxsb3dlZCkKKworICAgICAgICByZXR1cm4gZXJyb3JzCisKKyAgICBkZWYgYWRk
X3Rlc3Qoc2VsZiwgdGVzdCwgbW9kaWZpZXJzLCBleHBlY3RhdGlvbnMsIG9wdGlvbnMsIG92ZXJy
aWRlc19hbGxvd2VkKToKKyAgICAgICAgIiIiU2V0cyB0aGUgZXhwZWN0ZWQgc3RhdGUgZm9yIGEg
Z2l2ZW4gdGVzdC4KKworICAgICAgICBUaGlzIHJvdXRpbmUgYXNzdW1lcyB0aGUgdGVzdCBoYXMg
bm90IGJlZW4gYWRkZWQgYmVmb3JlLiBJZiBpdCBoYXMsCisgICAgICAgIHVzZSBfY2xlYXJfZXhw
ZWN0YXRpb25zX2Zvcl90ZXN0KCkgdG8gcmVzZXQgdGhlIHN0YXRlIHByaW9yIHRvCisgICAgICAg
IGNhbGxpbmcgdGhpcy4KKworICAgICAgICBBcmdzOgorICAgICAgICAgIHRlc3Q6IHRlc3QgdG8g
YWRkCisgICAgICAgICAgbW9kaWZpZXJzOiBzZXF1ZW5jZSBvZiBtb2RpZmllciBrZXl3b3JkcyAo
J3dvbnRmaXgnLCAnc2xvdycsIGV0Yy4pCisgICAgICAgICAgZXhwZWN0YXRpb25zOiBzZXF1ZW5j
ZSBvZiBleHBlY3RhdGlvbnMgKFBBU1MsIElNQUdFLCBldGMuKQorICAgICAgICAgIG9wdGlvbnM6
IHNlcXVlbmNlIG9mIGtleXdvcmRzIGFuZCBidWcgaWRlbnRpZmllcnMuCisgICAgICAgICAgb3Zl
cnJpZGVzX2FsbG93ZWQ6IHdoZXRoZXIgd2UncmUgcGFyc2luZyB0aGUgcmVndWxhciBleHBlY3Rh
dGlvbnMKKyAgICAgICAgICAgICAgb3IgdGhlIG92ZXJyaWRkaW5nIGV4cGVjdGF0aW9ucyIiIgor
ICAgICAgICBzZWxmLl90ZXN0X3RvX2V4cGVjdGF0aW9uc1t0ZXN0XSA9IGV4cGVjdGF0aW9ucwor
ICAgICAgICBmb3IgZXhwZWN0YXRpb24gaW4gZXhwZWN0YXRpb25zOgorICAgICAgICAgICAgc2Vs
Zi5fZXhwZWN0YXRpb25fdG9fdGVzdHNbZXhwZWN0YXRpb25dLmFkZCh0ZXN0KQorCisgICAgICAg
IHNlbGYuX3Rlc3RfdG9fb3B0aW9uc1t0ZXN0XSA9IG9wdGlvbnMKKyAgICAgICAgc2VsZi5fdGVz
dF90b19tb2RpZmllcnNbdGVzdF0gPSBzZXQoKQorICAgICAgICBmb3IgbW9kaWZpZXIgaW4gbW9k
aWZpZXJzOgorICAgICAgICAgICAgbW9kX3ZhbHVlID0gVGVzdEV4cGVjdGF0aW9ucy5NT0RJRklF
UlNbbW9kaWZpZXJdCisgICAgICAgICAgICBzZWxmLl9tb2RpZmllcl90b190ZXN0c1ttb2RfdmFs
dWVdLmFkZCh0ZXN0KQorICAgICAgICAgICAgc2VsZi5fdGVzdF90b19tb2RpZmllcnNbdGVzdF0u
YWRkKG1vZF92YWx1ZSkKKworICAgICAgICBpZiAnd29udGZpeCcgaW4gbW9kaWZpZXJzOgorICAg
ICAgICAgICAgc2VsZi5fdGltZWxpbmVfdG9fdGVzdHNbV09OVEZJWF0uYWRkKHRlc3QpCisgICAg
ICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLl90aW1lbGluZV90b190ZXN0c1tOT1ddLmFkZCh0
ZXN0KQorCisgICAgICAgIGlmICdza2lwJyBpbiBtb2RpZmllcnM6CisgICAgICAgICAgICBzZWxm
Ll9yZXN1bHRfdHlwZV90b190ZXN0c1tTS0lQXS5hZGQodGVzdCkKKyAgICAgICAgZWxpZiBleHBl
Y3RhdGlvbnMgPT0gc2V0KFtQQVNTXSk6CisgICAgICAgICAgICBzZWxmLl9yZXN1bHRfdHlwZV90
b190ZXN0c1tQQVNTXS5hZGQodGVzdCkKKyAgICAgICAgZWxpZiBsZW4oZXhwZWN0YXRpb25zKSA+
IDE6CisgICAgICAgICAgICBzZWxmLl9yZXN1bHRfdHlwZV90b190ZXN0c1tGTEFLWV0uYWRkKHRl
c3QpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLl9yZXN1bHRfdHlwZV90b190ZXN0
c1tGQUlMXS5hZGQodGVzdCkKKworICAgICAgICBpZiBvdmVycmlkZXNfYWxsb3dlZDoKKyAgICAg
ICAgICAgIHNlbGYuX292ZXJyaWRkaW5nX3Rlc3RzLmFkZCh0ZXN0KQorCisgICAgZGVmIF9jbGVh
cl9leHBlY3RhdGlvbnNfZm9yX3Rlc3Qoc2VsZiwgdGVzdCwgdGVzdF9saXN0X3BhdGgpOgorICAg
ICAgICAiIiJSZW1vdmUgcHJleGlzdGluZyBleHBlY3RhdGlvbnMgZm9yIHRoaXMgdGVzdC4KKyAg
ICAgICAgVGhpcyBoYXBwZW5zIGlmIHdlIGFyZSBzZWVpbmcgYSBtb3JlIHByZWNpc2UgcGF0aAor
ICAgICAgICB0aGFuIGEgcHJldmlvdXMgbGlzdGluZy4KKyAgICAgICAgIiIiCisgICAgICAgIGlm
IHNlbGYuaGFzX3Rlc3QodGVzdCk6CisgICAgICAgICAgICBzZWxmLl90ZXN0X3RvX2V4cGVjdGF0
aW9ucy5wb3AodGVzdCwgJycpCisgICAgICAgICAgICBzZWxmLl9yZW1vdmVfZnJvbV9zZXRzKHRl
c3QsIHNlbGYuX2V4cGVjdGF0aW9uX3RvX3Rlc3RzKQorICAgICAgICAgICAgc2VsZi5fcmVtb3Zl
X2Zyb21fc2V0cyh0ZXN0LCBzZWxmLl9tb2RpZmllcl90b190ZXN0cykKKyAgICAgICAgICAgIHNl
bGYuX3JlbW92ZV9mcm9tX3NldHModGVzdCwgc2VsZi5fdGltZWxpbmVfdG9fdGVzdHMpCisgICAg
ICAgICAgICBzZWxmLl9yZW1vdmVfZnJvbV9zZXRzKHRlc3QsIHNlbGYuX3Jlc3VsdF90eXBlX3Rv
X3Rlc3RzKQorCisgICAgICAgIHNlbGYuX3Rlc3RfbGlzdF9wYXRoc1t0ZXN0XSA9IHNlbGYuX3Bv
cnQubm9ybWFsaXplX3Rlc3RfbmFtZSh0ZXN0X2xpc3RfcGF0aCkKKworICAgIGRlZiBfcmVtb3Zl
X2Zyb21fc2V0cyhzZWxmLCB0ZXN0LCBkaWN0KToKKyAgICAgICAgIiIiUmVtb3ZlcyB0aGUgZ2l2
ZW4gdGVzdCBmcm9tIHRoZSBzZXRzIGluIHRoZSBkaWN0aW9uYXJ5LgorCisgICAgICAgIEFyZ3M6
CisgICAgICAgICAgdGVzdDogdGVzdCB0byBsb29rIGZvcgorICAgICAgICAgIGRpY3Q6IGRpY3Qg
b2Ygc2V0cyBvZiBmaWxlcyIiIgorICAgICAgICBmb3Igc2V0X29mX3Rlc3RzIGluIGRpY3QuaXRl
cnZhbHVlcygpOgorICAgICAgICAgICAgaWYgdGVzdCBpbiBzZXRfb2ZfdGVzdHM6CisgICAgICAg
ICAgICAgICAgc2V0X29mX3Rlc3RzLnJlbW92ZSh0ZXN0KQorCisgICAgZGVmIF9hbHJlYWR5X3Nl
ZW5fYmV0dGVyX21hdGNoKHNlbGYsIHRlc3QsIHRlc3RfbGlzdF9wYXRoLCBudW1fbWF0Y2hlcywg
bGluZW5vLCBvdmVycmlkZXNfYWxsb3dlZCwgZXJyb3JzKToKKyAgICAgICAgIiIiUmV0dXJucyB3
aGV0aGVyIHdlJ3ZlIHNlZW4gYSBiZXR0ZXIgbWF0Y2ggYWxyZWFkeSBpbiB0aGUgZmlsZS4KKwor
ICAgICAgICBSZXR1cm5zIFRydWUgaWYgd2UndmUgYWxyZWFkeSBzZWVuIGEgdGVzdF9saXN0X3Bh
dGggdGhhdCBtYXRjaGVzIG1vcmUgb2YgdGhlIHRlc3QKKyAgICAgICAgICAgIHRoYW4gdGhpcyBw
YXRoIGRvZXMKKyAgICAgICAgIiIiCisgICAgICAgICMgRklYTUU6IFNlZSBjb21tZW50IGJlbG93
IGFib3V0IG1hdGNoaW5nIHRlc3QgY29uZmlncyBhbmQgbnVtX21hdGNoZXMuCisgICAgICAgIGlm
IG5vdCBzZWxmLmhhc190ZXN0KHRlc3QpOgorICAgICAgICAgICAgIyBXZSd2ZSBuZXZlciBzZWVu
IHRoaXMgdGVzdCBiZWZvcmUuCisgICAgICAgICAgICByZXR1cm4gRmFsc2UKKworICAgICAgICBw
cmV2X2Jhc2VfcGF0aCwgcHJldl9udW1fbWF0Y2hlcywgcHJldl9saW5lbm8gPSBzZWxmLl90ZXN0
X2xpc3RfcGF0aHNbdGVzdF0KKyAgICAgICAgYmFzZV9wYXRoID0gc2VsZi5fcG9ydC5ub3JtYWxp
emVfdGVzdF9uYW1lKHRlc3RfbGlzdF9wYXRoKQorCisgICAgICAgIGlmIGxlbihwcmV2X2Jhc2Vf
cGF0aCkgPiBsZW4oYmFzZV9wYXRoKToKKyAgICAgICAgICAgICMgVGhlIHByZXZpb3VzIHBhdGgg
bWF0Y2hlZCBtb3JlIG9mIHRoZSB0ZXN0LgorICAgICAgICAgICAgcmV0dXJuIFRydWUKKworICAg
ICAgICBpZiBsZW4ocHJldl9iYXNlX3BhdGgpIDwgbGVuKGJhc2VfcGF0aCk6CisgICAgICAgICAg
ICAjIFRoaXMgcGF0aCBtYXRjaGVzIG1vcmUgb2YgdGhlIHRlc3QuCisgICAgICAgICAgICByZXR1
cm4gRmFsc2UKKworICAgICAgICBpZiBvdmVycmlkZXNfYWxsb3dlZCBhbmQgdGVzdCBub3QgaW4g
c2VsZi5fb3ZlcnJpZGRpbmdfdGVzdHM6CisgICAgICAgICAgICAjIFdlIGhhdmUgc2VlbiB0aGlz
IHBhdGgsIGJ1dCB0aGF0J3Mgb2theSBiZWNhdXNlIGl0IGlzCisgICAgICAgICAgICAjIGluIHRo
ZSBvdmVycmlkZXMgYW5kIHRoZSBlYXJsaWVyIHBhdGggd2FzIGluIHRoZQorICAgICAgICAgICAg
IyBleHBlY3RhdGlvbnMgKG5vdCB0aGUgb3ZlcnJpZGVzKS4KKyAgICAgICAgICAgIHJldHVybiBG
YWxzZQorCisgICAgICAgICMgQXQgdGhpcyBwb2ludCB3ZSBrbm93IHdlIGhhdmUgc2VlbiBhIHBy
ZXZpb3VzIGV4YWN0IG1hdGNoIG9uIHRoaXMKKyAgICAgICAgIyBiYXNlIHBhdGgsIHNvIHdlIG5l
ZWQgdG8gY2hlY2sgdGhlIHR3byBzZXRzIG9mIG1vZGlmaWVycy4KKworICAgICAgICBpZiBvdmVy
cmlkZXNfYWxsb3dlZDoKKyAgICAgICAgICAgIGV4cGVjdGF0aW9uX3NvdXJjZSA9ICJvdmVycmlk
ZSIKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGV4cGVjdGF0aW9uX3NvdXJjZSA9ICJleHBl
Y3RhdGlvbiIKKworICAgICAgICAjIEZJWE1FOiBUaGlzIGNvZGUgd2FzIG9yaWdpbmFsbHkgZGVz
aWduZWQgdG8gYWxsb3cgbGluZXMgdGhhdCBtYXRjaGVkCisgICAgICAgICMgbW9yZSBtb2RpZmll
cnMgdG8gb3ZlcnJpZGUgbGluZXMgdGhhdCBtYXRjaGVkIGZld2VyIG1vZGlmaWVycy4KKyAgICAg
ICAgIyBIb3dldmVyLCB3ZSBjdXJyZW50bHkgdmlldyB0aGVzZSBhcyBlcnJvcnMuIElmIHdlIGRl
Y2lkZSB0byBtYWtlCisgICAgICAgICMgdGhpcyBwb2xpY3kgcGVybWFuZW50LCB3ZSBjYW4gcHJv
YmFibHkgc2ltcGxpZnkgdGhpcyBjb2RlCisgICAgICAgICMgYW5kIHRoZSBNb2RpZmllck1hdGNo
ZXIgY29kZSBhIGZhaXIgYW1vdW50LgorICAgICAgICAjCisgICAgICAgICMgVG8gdXNlIHRoZSAi
bW9yZSBtb2RpZmllcnMgd2lucyIgcG9saWN5LCBjaGFuZ2UgdGhlICJfYWRkX2Vycm9yIiBsaW5l
cyBmb3Igb3ZlcnJpZGVzCisgICAgICAgICMgdG8gX2xvZ19ub25fZmF0YWxfZXJyb3IoKSBhbmQg
Y2hhbmdlIHRoZSBjb21tZW50ZWQtb3V0ICJyZXR1cm4gRmFsc2UiLgorCisgICAgICAgIGlmIHBy
ZXZfbnVtX21hdGNoZXMgPT0gbnVtX21hdGNoZXM6CisgICAgICAgICAgICBlcnJvcnMuYXBwZW5k
KCgnRHVwbGljYXRlIG9yIGFtYmlndW91cyAlcy4nICUgZXhwZWN0YXRpb25fc291cmNlLCB0ZXN0
KSkKKyAgICAgICAgICAgIHJldHVybiBUcnVlCisKKyAgICAgICAgaWYgcHJldl9udW1fbWF0Y2hl
cyA8IG51bV9tYXRjaGVzOgorICAgICAgICAgICAgZXJyb3JzLmFwcGVuZCgoJ01vcmUgc3BlY2lm
aWMgZW50cnkgb24gbGluZSAlZCBvdmVycmlkZXMgbGluZSAlZCcgJSAobGluZW5vLCBwcmV2X2xp
bmVubyksIHRlc3RfbGlzdF9wYXRoKSkKKyAgICAgICAgICAgICMgRklYTUU6IHJldHVybiBGYWxz
ZSBpZiB3ZSB3YW50IG1vcmUgc3BlY2lmaWMgdG8gd2luLgorICAgICAgICAgICAgcmV0dXJuIFRy
dWUKKworICAgICAgICBlcnJvcnMuYXBwZW5kKCgnTW9yZSBzcGVjaWZpYyBlbnRyeSBvbiBsaW5l
ICVkIG92ZXJyaWRlcyBsaW5lICVkJyAlIChwcmV2X2xpbmVubywgbGluZW5vKSwgdGVzdF9saXN0
X3BhdGgpKQorICAgICAgICByZXR1cm4gVHJ1ZQorCisKIGNsYXNzIFRlc3RFeHBlY3RhdGlvbnM6
CiAgICAgIiIiVGVzdCBleHBlY3RhdGlvbnMgY29uc2lzdCBvZiBsaW5lcyB3aXRoIHNwZWNpZmlj
YXRpb25zIG9mIHdoYXQKICAgICB0byBleHBlY3QgZnJvbSBsYXlvdXQgdGVzdCBjYXNlcy4gVGhl
IHRlc3QgY2FzZXMgY2FuIGJlIGRpcmVjdG9yaWVzCkBAIC0zNTMsNiArNTY3LDcgQEAgY2xhc3Mg
VGVzdEV4cGVjdGF0aW9uczoKICAgICAgICAgc2VsZi5faXNfbGludF9tb2RlID0gaXNfbGludF9t
b2RlCiAgICAgICAgIHNlbGYuX2Vycm9ycyA9IFtdCiAgICAgICAgIHNlbGYuX25vbl9mYXRhbF9l
cnJvcnMgPSBbXQorICAgICAgICBzZWxmLl9tb2RlbCA9IFRlc3RFeHBlY3RhdGlvbnNNb2RlbChw
b3J0KQogCiAgICAgICAgICMgTWFwcyByZWxhdGl2ZSB0ZXN0IHBhdGhzIGFzIGxpc3RlZCBpbiB0
aGUgZXhwZWN0YXRpb25zIGZpbGUgdG8gYQogICAgICAgICAjIGxpc3Qgb2YgbWFwcyBjb250YWlu
aW5nIG1vZGlmaWVycyBhbmQgZXhwZWN0YXRpb25zIGZvciBlYWNoIHRpbWUKQEAgLTM2MSwzNiAr
NTc2LDEwIEBAIGNsYXNzIFRlc3RFeHBlY3RhdGlvbnM6CiAgICAgICAgICMgaW52YWxpZCBvbmVz
LgogICAgICAgICBzZWxmLl9hbGxfZXhwZWN0YXRpb25zID0ge30KIAotICAgICAgICAjIE1hcHMg
YSB0ZXN0IHRvIGl0cyBsaXN0IG9mIGV4cGVjdGF0aW9ucy4KLSAgICAgICAgc2VsZi5fdGVzdF90
b19leHBlY3RhdGlvbnMgPSB7fQotCi0gICAgICAgICMgTWFwcyBhIHRlc3QgdG8gaXRzIGxpc3Qg
b2Ygb3B0aW9ucyAoc3RyaW5nIHZhbHVlcykKLSAgICAgICAgc2VsZi5fdGVzdF90b19vcHRpb25z
ID0ge30KLQotICAgICAgICAjIE1hcHMgYSB0ZXN0IHRvIGl0cyBsaXN0IG9mIG1vZGlmaWVyczog
dGhlIGNvbnN0YW50cyBhc3NvY2lhdGVkIHdpdGgKLSAgICAgICAgIyB0aGUgb3B0aW9ucyBtaW51
cyBhbnkgYnVnIG9yIHBsYXRmb3JtIHN0cmluZ3MKLSAgICAgICAgc2VsZi5fdGVzdF90b19tb2Rp
ZmllcnMgPSB7fQotCi0gICAgICAgICMgTWFwcyBhIHRlc3QgdG8gdGhlIGJhc2UgcGF0aCB0aGF0
IGl0IHdhcyBsaXN0ZWQgd2l0aCBpbiB0aGUgbGlzdCBhbmQKLSAgICAgICAgIyB0aGUgbnVtYmVy
IG9mIG1hdGNoZXMgdGhhdCBiYXNlIHBhdGggaGFkLgotICAgICAgICBzZWxmLl90ZXN0X2xpc3Rf
cGF0aHMgPSB7fQotCi0gICAgICAgIHNlbGYuX21vZGlmaWVyX3RvX3Rlc3RzID0gc2VsZi5fZGlj
dF9vZl9zZXRzKHNlbGYuTU9ESUZJRVJTKQotICAgICAgICBzZWxmLl9leHBlY3RhdGlvbl90b190
ZXN0cyA9IHNlbGYuX2RpY3Rfb2Zfc2V0cyhzZWxmLkVYUEVDVEFUSU9OUykKLSAgICAgICAgc2Vs
Zi5fdGltZWxpbmVfdG9fdGVzdHMgPSBzZWxmLl9kaWN0X29mX3NldHMoc2VsZi5USU1FTElORVMp
Ci0gICAgICAgIHNlbGYuX3Jlc3VsdF90eXBlX3RvX3Rlc3RzID0gc2VsZi5fZGljdF9vZl9zZXRz
KHNlbGYuUkVTVUxUX1RZUEVTKQotCiAgICAgICAgIHNlbGYuX21hdGNoZXIgPSBNb2RpZmllck1h
dGNoZXIoc2VsZi5fdGVzdF9jb25maWcpCiAgICAgICAgIHNlbGYuX292ZXJyaWRlc19hbGxvd2Vk
ID0gRmFsc2UKICAgICAgICAgc2VsZi5fZXhwZWN0YXRpb25zID0gVGVzdEV4cGVjdGF0aW9uUGFy
c2VyLnBhcnNlX2xpc3QoZXhwZWN0YXRpb25zLCBzZWxmKQogCi0gICAgICAgICMgTGlzdCBvZiB0
ZXN0cyB0aGF0IGFyZSBpbiB0aGUgb3ZlcnJpZGVzIGZpbGUgKHVzZWQgZm9yIGNoZWNraW5nIGZv
cgotICAgICAgICAjIGR1cGxpY2F0ZXMgaW5zaWRlIHRoZSBvdmVycmlkZXMgZmlsZSBpdHNlbGYp
LiBOb3RlIHRoYXQganVzdCBiZWNhdXNlCi0gICAgICAgICMgYSB0ZXN0IGlzIGluIHRoaXMgc2V0
IGRvZXNuJ3QgbWVhbiBpdCdzIG5lY2Vzc2FyaWx5IG92ZXJyaWRkaW5nIGEKLSAgICAgICAgIyBl
eHBlY3RhdGlvbiBpbiB0aGUgcmVndWxhciBleHBlY3RhdGlvbnM7IHRoZSB0ZXN0IG1pZ2h0IG5v
dCBiZQotICAgICAgICAjIG1lbnRpb25lZCBpbiB0aGUgcmVndWxhciBleHBlY3RhdGlvbnMgZmls
ZSBhdCBhbGwuCi0gICAgICAgIHNlbGYuX292ZXJyaWRkaW5nX3Rlc3RzID0gc2V0KCkKLQogICAg
ICAgICBpZiBvdmVycmlkZXM6CiAgICAgICAgICAgICBzZWxmLl9vdmVycmlkZXNfYWxsb3dlZCA9
IFRydWUKICAgICAgICAgICAgIHNlbGYuX2V4cGVjdGF0aW9ucyArPSBUZXN0RXhwZWN0YXRpb25Q
YXJzZXIucGFyc2VfbGlzdChvdmVycmlkZXMsIHNlbGYpCkBAIC00MDMsMTYgKzU5Miw0MCBAQCBj
bGFzcyBUZXN0RXhwZWN0YXRpb25zOgogICAgICMgdGVzdHMgdG8gcnVuLCBidXQgbm90IHdoZW4g
Z2V0dGluZyBtZXRyaWNzLgogCiAgICAgZGVmIGdldF9yZWJhc2VsaW5pbmdfZmFpbHVyZXMoc2Vs
Zik6Ci0gICAgICAgIHJldHVybiAoc2VsZi5nZXRfdGVzdF9zZXQoUkVCQVNFTElORSwgRkFJTCkg
fAotICAgICAgICAgICAgICAgIHNlbGYuZ2V0X3Rlc3Rfc2V0KFJFQkFTRUxJTkUsIElNQUdFKSB8
Ci0gICAgICAgICAgICAgICAgc2VsZi5nZXRfdGVzdF9zZXQoUkVCQVNFTElORSwgVEVYVCkgfAot
ICAgICAgICAgICAgICAgIHNlbGYuZ2V0X3Rlc3Rfc2V0KFJFQkFTRUxJTkUsIElNQUdFX1BMVVNf
VEVYVCkgfAotICAgICAgICAgICAgICAgIHNlbGYuZ2V0X3Rlc3Rfc2V0KFJFQkFTRUxJTkUsIEFV
RElPKSkKKyAgICAgICAgcmV0dXJuIChzZWxmLl9tb2RlbC5nZXRfdGVzdF9zZXQoUkVCQVNFTElO
RSwgRkFJTCkgfAorICAgICAgICAgICAgICAgIHNlbGYuX21vZGVsLmdldF90ZXN0X3NldChSRUJB
U0VMSU5FLCBJTUFHRSkgfAorICAgICAgICAgICAgICAgIHNlbGYuX21vZGVsLmdldF90ZXN0X3Nl
dChSRUJBU0VMSU5FLCBURVhUKSB8CisgICAgICAgICAgICAgICAgc2VsZi5fbW9kZWwuZ2V0X3Rl
c3Rfc2V0KFJFQkFTRUxJTkUsIElNQUdFX1BMVVNfVEVYVCkgfAorICAgICAgICAgICAgICAgIHNl
bGYuX21vZGVsLmdldF90ZXN0X3NldChSRUJBU0VMSU5FLCBBVURJTykpCisKKyAgICAjIEZJWE1F
OiBDaGFuZ2UgdGhlIGNhbGxzaXRlcyB0byB1c2UgVGVzdEV4cGVjdGF0aW9uc01vZGVsIGFuZCBy
ZW1vdmUuCisgICAgZGVmIGdldF9leHBlY3RhdGlvbnMoc2VsZiwgdGVzdCk6CisgICAgICAgIHJl
dHVybiBzZWxmLl9tb2RlbC5nZXRfZXhwZWN0YXRpb25zKHRlc3QpCisKKyAgICAjIEZJWE1FOiBD
aGFuZ2UgdGhlIGNhbGxzaXRlcyB0byB1c2UgVGVzdEV4cGVjdGF0aW9uc01vZGVsIGFuZCByZW1v
dmUuCisgICAgZGVmIGhhc19tb2RpZmllcihzZWxmLCB0ZXN0LCBtb2RpZmllcik6CisgICAgICAg
IHJldHVybiBzZWxmLl9tb2RlbC5oYXNfbW9kaWZpZXIodGVzdCwgbW9kaWZpZXIpCisKKyAgICAj
IEZJWE1FOiBDaGFuZ2UgdGhlIGNhbGxzaXRlcyB0byB1c2UgVGVzdEV4cGVjdGF0aW9uc01vZGVs
IGFuZCByZW1vdmUuCisgICAgZGVmIGdldF90ZXN0c193aXRoX3Jlc3VsdF90eXBlKHNlbGYsIHJl
c3VsdF90eXBlKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX21vZGVsLmdldF90ZXN0c193aXRoX3Jl
c3VsdF90eXBlKHJlc3VsdF90eXBlKQorCisgICAgIyBGSVhNRTogQ2hhbmdlIHRoZSBjYWxsc2l0
ZXMgdG8gdXNlIFRlc3RFeHBlY3RhdGlvbnNNb2RlbCBhbmQgcmVtb3ZlLgorICAgIGRlZiBnZXRf
dGVzdF9zZXQoc2VsZiwgbW9kaWZpZXIsIGV4cGVjdGF0aW9uPU5vbmUsIGluY2x1ZGVfc2tpcHM9
VHJ1ZSk6CisgICAgICAgIHJldHVybiBzZWxmLl9tb2RlbC5nZXRfdGVzdF9zZXQobW9kaWZpZXIs
IGV4cGVjdGF0aW9uLCBpbmNsdWRlX3NraXBzKQorCisgICAgIyBGSVhNRTogQ2hhbmdlIHRoZSBj
YWxsc2l0ZXMgdG8gdXNlIFRlc3RFeHBlY3RhdGlvbnNNb2RlbCBhbmQgcmVtb3ZlLgorICAgIGRl
ZiBnZXRfb3B0aW9ucyhzZWxmLCB0ZXN0KToKKyAgICAgICAgcmV0dXJuIHNlbGYuX21vZGVsLmdl
dF9vcHRpb25zKHRlc3QpCisKKyAgICAjIEZJWE1FOiBDaGFuZ2UgdGhlIGNhbGxzaXRlcyB0byB1
c2UgVGVzdEV4cGVjdGF0aW9uc01vZGVsIGFuZCByZW1vdmUuCisgICAgZGVmIGdldF90ZXN0c193
aXRoX3RpbWVsaW5lKHNlbGYsIHRpbWVsaW5lKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX21vZGVs
LmdldF90ZXN0c193aXRoX3RpbWVsaW5lKHRpbWVsaW5lKQogCiAgICAgZGVmIGdldF9leHBlY3Rh
dGlvbnNfc3RyaW5nKHNlbGYsIHRlc3QpOgogICAgICAgICAiIiJSZXR1cm5zIHRoZSBleHBlY3Rh
dG9ucyBmb3IgdGhlIGdpdmVuIHRlc3QgYXMgYW4gdXBwZXJjYXNlIHN0cmluZy4KICAgICAgICAg
SWYgdGhlcmUgYXJlIG5vIGV4cGVjdGF0aW9ucyBmb3IgdGhlIHRlc3QsIHRoZW4gIlBBU1MiIGlz
IHJldHVybmVkLiIiIgotICAgICAgICBleHBlY3RhdGlvbnMgPSBzZWxmLmdldF9leHBlY3RhdGlv
bnModGVzdCkKKyAgICAgICAgZXhwZWN0YXRpb25zID0gc2VsZi5fbW9kZWwuZ2V0X2V4cGVjdGF0
aW9ucyh0ZXN0KQogICAgICAgICByZXR2YWwgPSBbXQogCiAgICAgICAgIGZvciBleHBlY3RhdGlv
biBpbiBleHBlY3RhdGlvbnM6CkBAIC00MjgsMTYgKzY0MSwxNiBAQCBjbGFzcyBUZXN0RXhwZWN0
YXRpb25zOgogICAgICAgICByYWlzZSBWYWx1ZUVycm9yKGV4cGVjdGF0aW9uKQogCiAgICAgZGVm
IG1hdGNoZXNfYW5fZXhwZWN0ZWRfcmVzdWx0KHNlbGYsIHRlc3QsIHJlc3VsdCwgcGl4ZWxfdGVz
dHNfYXJlX2VuYWJsZWQpOgotICAgICAgICBleHBlY3RlZF9yZXN1bHRzID0gc2VsZi5nZXRfZXhw
ZWN0YXRpb25zKHRlc3QpCisgICAgICAgIGV4cGVjdGVkX3Jlc3VsdHMgPSBzZWxmLl9tb2RlbC5n
ZXRfZXhwZWN0YXRpb25zKHRlc3QpCiAgICAgICAgIGlmIG5vdCBwaXhlbF90ZXN0c19hcmVfZW5h
YmxlZDoKICAgICAgICAgICAgIGV4cGVjdGVkX3Jlc3VsdHMgPSByZW1vdmVfcGl4ZWxfZmFpbHVy
ZXMoZXhwZWN0ZWRfcmVzdWx0cykKICAgICAgICAgcmV0dXJuIHJlc3VsdF93YXNfZXhwZWN0ZWQo
cmVzdWx0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBlY3RlZF9yZXN1
bHRzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmlzX3JlYmFzZWxp
bmluZyh0ZXN0KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5oYXNf
bW9kaWZpZXIodGVzdCwgU0tJUCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHNlbGYuX21vZGVsLmhhc19tb2RpZmllcih0ZXN0LCBTS0lQKSkKIAogICAgIGRlZiBpc19yZWJh
c2VsaW5pbmcoc2VsZiwgdGVzdCk6Ci0gICAgICAgIHJldHVybiBzZWxmLmhhc19tb2RpZmllcih0
ZXN0LCBSRUJBU0VMSU5FKQorICAgICAgICByZXR1cm4gc2VsZi5fbW9kZWwuaGFzX21vZGlmaWVy
KHRlc3QsIFJFQkFTRUxJTkUpCiAKICAgICBkZWYgX2hhbmRsZV9hbnlfcmVhZF9lcnJvcnMoc2Vs
Zik6CiAgICAgICAgIGlmIGxlbihzZWxmLl9lcnJvcnMpIG9yIGxlbihzZWxmLl9ub25fZmF0YWxf
ZXJyb3JzKToKQEAgLTQ1OSw0NiArNjcyLDggQEAgY2xhc3MgVGVzdEV4cGVjdGF0aW9uczoKICAg
ICAgICAgbW9kaWZpZXJzID0gW10KICAgICAgICAgaWYgc2VsZi5fZnVsbF90ZXN0X2xpc3Q6CiAg
ICAgICAgICAgICBmb3IgdGVzdCBpbiBzZWxmLl9mdWxsX3Rlc3RfbGlzdDoKLSAgICAgICAgICAg
ICAgICBpZiBub3QgdGVzdCBpbiBzZWxmLl90ZXN0X2xpc3RfcGF0aHM6Ci0gICAgICAgICAgICAg
ICAgICAgIHNlbGYuX2FkZF90ZXN0KHRlc3QsIG1vZGlmaWVycywgZXhwZWN0YXRpb25zLCBvcHRp
b25zLCBvdmVycmlkZXNfYWxsb3dlZD1GYWxzZSkKLQotICAgIGRlZiBfZGljdF9vZl9zZXRzKHNl
bGYsIHN0cmluZ3NfdG9fY29uc3RhbnRzKToKLSAgICAgICAgIiIiVGFrZXMgYSBkaWN0IG9mIHN0
cmluZ3MtPmNvbnN0YW50cyBhbmQgcmV0dXJucyBhIGRpY3QgbWFwcGluZwotICAgICAgICBlYWNo
IGNvbnN0YW50IHRvIGFuIGVtcHR5IHNldC4iIiIKLSAgICAgICAgZCA9IHt9Ci0gICAgICAgIGZv
ciBjIGluIHN0cmluZ3NfdG9fY29uc3RhbnRzLnZhbHVlcygpOgotICAgICAgICAgICAgZFtjXSA9
IHNldCgpCi0gICAgICAgIHJldHVybiBkCi0KLSAgICBkZWYgZ2V0X3Rlc3Rfc2V0KHNlbGYsIG1v
ZGlmaWVyLCBleHBlY3RhdGlvbj1Ob25lLCBpbmNsdWRlX3NraXBzPVRydWUpOgotICAgICAgICBp
ZiBleHBlY3RhdGlvbiBpcyBOb25lOgotICAgICAgICAgICAgdGVzdHMgPSBzZWxmLl9tb2RpZmll
cl90b190ZXN0c1ttb2RpZmllcl0KLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHRlc3RzID0g
KHNlbGYuX2V4cGVjdGF0aW9uX3RvX3Rlc3RzW2V4cGVjdGF0aW9uXSAmCi0gICAgICAgICAgICAg
ICAgc2VsZi5fbW9kaWZpZXJfdG9fdGVzdHNbbW9kaWZpZXJdKQotCi0gICAgICAgIGlmIG5vdCBp
bmNsdWRlX3NraXBzOgotICAgICAgICAgICAgdGVzdHMgPSB0ZXN0cyAtIHNlbGYuZ2V0X3Rlc3Rf
c2V0KFNLSVAsIGV4cGVjdGF0aW9uKQotCi0gICAgICAgIHJldHVybiB0ZXN0cwotCi0gICAgZGVm
IGdldF90ZXN0c193aXRoX3Jlc3VsdF90eXBlKHNlbGYsIHJlc3VsdF90eXBlKToKLSAgICAgICAg
cmV0dXJuIHNlbGYuX3Jlc3VsdF90eXBlX3RvX3Rlc3RzW3Jlc3VsdF90eXBlXQotCi0gICAgZGVm
IGdldF90ZXN0c193aXRoX3RpbWVsaW5lKHNlbGYsIHRpbWVsaW5lKToKLSAgICAgICAgcmV0dXJu
IHNlbGYuX3RpbWVsaW5lX3RvX3Rlc3RzW3RpbWVsaW5lXQotCi0gICAgZGVmIGdldF9vcHRpb25z
KHNlbGYsIHRlc3QpOgotICAgICAgICAiIiJUaGlzIHJldHVybnMgdGhlIGVudGlyZSBzZXQgb2Yg
b3B0aW9ucyBmb3IgdGhlIGdpdmVuIHRlc3QKLSAgICAgICAgKHRoZSBtb2RpZmllcnMgcGx1cyB0
aGUgQlVHWFhYWCBpZGVudGlmaWVyKS4gVGhpcyBpcyB1c2VkIGJ5IHRoZQotICAgICAgICBMVFRG
IGRhc2hib2FyZC4iIiIKLSAgICAgICAgcmV0dXJuIHNlbGYuX3Rlc3RfdG9fb3B0aW9uc1t0ZXN0
XQotCi0gICAgZGVmIGhhc19tb2RpZmllcihzZWxmLCB0ZXN0LCBtb2RpZmllcik6Ci0gICAgICAg
IHJldHVybiB0ZXN0IGluIHNlbGYuX21vZGlmaWVyX3RvX3Rlc3RzW21vZGlmaWVyXQotCi0gICAg
ZGVmIGdldF9leHBlY3RhdGlvbnMoc2VsZiwgdGVzdCk6Ci0gICAgICAgIHJldHVybiBzZWxmLl90
ZXN0X3RvX2V4cGVjdGF0aW9uc1t0ZXN0XQorICAgICAgICAgICAgICAgIGlmIG5vdCBzZWxmLl9t
b2RlbC5oYXNfdGVzdCh0ZXN0KToKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5fbW9kZWwuYWRk
X3Rlc3QodGVzdCwgbW9kaWZpZXJzLCBleHBlY3RhdGlvbnMsIG9wdGlvbnMsIG92ZXJyaWRlc19h
bGxvd2VkPUZhbHNlKQogCiAgICAgZGVmIGdldF9leHBlY3RhdGlvbnNfanNvbl9mb3JfYWxsX3Bs
YXRmb3JtcyhzZWxmKToKICAgICAgICAgIyBTcGVjaWZ5IHNlcGFyYXRvcnMgaW4gb3JkZXIgdG8g
Z2V0IGNvbXBhY3QgZW5jb2RpbmcuCkBAIC01NTgsMTAgKzczMywxNCBAQCBjbGFzcyBUZXN0RXhw
ZWN0YXRpb25zOgogICAgICAgICAgICAgdGVzdHMgPSBzZWxmLl9leHBhbmRfdGVzdHModGVzdF9s
aXN0X3BhdGgpCiAKICAgICAgICAgbW9kaWZpZXJzID0gW28gZm9yIG8gaW4gb3B0aW9ucyBpZiBv
IGluIHNlbGYuTU9ESUZJRVJTXQotICAgICAgICBzZWxmLl9hZGRfdGVzdHModGVzdHMsIGV4cGVj
dGF0aW9ucywgdGVzdF9saXN0X3BhdGgsIGxpbmVubywgbW9kaWZpZXJzLCBudW1fbWF0Y2hlcywg
b3B0aW9ucywgb3ZlcnJpZGVzX2FsbG93ZWQpCisgICAgICAgICMgRklYTUU6IEVsaW1pbmF0ZSB0
aGlzIGF3ZnVsIGVycm9yIHBsdW1iaW5nCisgICAgICAgIG1vZGlmaWVyX2Vycm9ycyA9IHNlbGYu
X21vZGVsLmFkZF90ZXN0cyh0ZXN0cywgZXhwZWN0YXRpb25zLCB0ZXN0X2xpc3RfcGF0aCwgbGlu
ZW5vLCBtb2RpZmllcnMsIG51bV9tYXRjaGVzLCBvcHRpb25zLCBvdmVycmlkZXNfYWxsb3dlZCkK
KyAgICAgICAgZm9yIChtZXNzYWdlLCBzb3VyY2UpIGluIG1vZGlmaWVyX2Vycm9yczoKKyAgICAg
ICAgICAgIHNlbGYuX2FkZF9lcnJvcihsaW5lbm8sIG1lc3NhZ2UsIHNvdXJjZSkKIAogICAgICAg
ICByZXR1cm4gVHJ1ZQogCisgICAgIyBGSVhNRTogUmVtb3ZlLCBubyBsb25nZXIgdXNlZCBhbnl3
aGVyZT8KICAgICBkZWYgX2dldF9vcHRpb25zX2xpc3Qoc2VsZiwgbGlzdFN0cmluZyk6CiAgICAg
ICAgIHJldHVybiBbcGFydC5zdHJpcCgpLmxvd2VyKCkgZm9yIHBhcnQgaW4gbGlzdFN0cmluZy5z
dHJpcCgpLnNwbGl0KCcgJyldCiAKQEAgLTY1MCwxNDYgKzgyOSw2IEBAIGNsYXNzIFRlc3RFeHBl
Y3RhdGlvbnM6CiAgICAgICAgICAgICByZXN1bHQgPSBbdGVzdF9saXN0X3BhdGgsIF0KICAgICAg
ICAgcmV0dXJuIHJlc3VsdAogCi0gICAgZGVmIF9hZGRfdGVzdHMoc2VsZiwgdGVzdHMsIGV4cGVj
dGF0aW9ucywgdGVzdF9saXN0X3BhdGgsIGxpbmVubywKLSAgICAgICAgICAgICAgICAgICBtb2Rp
ZmllcnMsIG51bV9tYXRjaGVzLCBvcHRpb25zLCBvdmVycmlkZXNfYWxsb3dlZCk6Ci0gICAgICAg
IGZvciB0ZXN0IGluIHRlc3RzOgotICAgICAgICAgICAgaWYgc2VsZi5fYWxyZWFkeV9zZWVuX2Jl
dHRlcl9tYXRjaCh0ZXN0LCB0ZXN0X2xpc3RfcGF0aCwgbnVtX21hdGNoZXMsIGxpbmVubywgb3Zl
cnJpZGVzX2FsbG93ZWQpOgotICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0KLSAgICAgICAgICAg
IHNlbGYuX2NsZWFyX2V4cGVjdGF0aW9uc19mb3JfdGVzdCh0ZXN0LCB0ZXN0X2xpc3RfcGF0aCkK
LSAgICAgICAgICAgIHNlbGYuX3Rlc3RfbGlzdF9wYXRoc1t0ZXN0XSA9IChzZWxmLl9wb3J0Lm5v
cm1hbGl6ZV90ZXN0X25hbWUodGVzdF9saXN0X3BhdGgpLCBudW1fbWF0Y2hlcywgbGluZW5vKQot
ICAgICAgICAgICAgc2VsZi5fYWRkX3Rlc3QodGVzdCwgbW9kaWZpZXJzLCBleHBlY3RhdGlvbnMs
IG9wdGlvbnMsIG92ZXJyaWRlc19hbGxvd2VkKQotCi0gICAgZGVmIF9hZGRfdGVzdChzZWxmLCB0
ZXN0LCBtb2RpZmllcnMsIGV4cGVjdGF0aW9ucywgb3B0aW9ucywgb3ZlcnJpZGVzX2FsbG93ZWQp
OgotICAgICAgICAiIiJTZXRzIHRoZSBleHBlY3RlZCBzdGF0ZSBmb3IgYSBnaXZlbiB0ZXN0Lgot
Ci0gICAgICAgIFRoaXMgcm91dGluZSBhc3N1bWVzIHRoZSB0ZXN0IGhhcyBub3QgYmVlbiBhZGRl
ZCBiZWZvcmUuIElmIGl0IGhhcywKLSAgICAgICAgdXNlIF9jbGVhcl9leHBlY3RhdGlvbnNfZm9y
X3Rlc3QoKSB0byByZXNldCB0aGUgc3RhdGUgcHJpb3IgdG8KLSAgICAgICAgY2FsbGluZyB0aGlz
LgotCi0gICAgICAgIEFyZ3M6Ci0gICAgICAgICAgdGVzdDogdGVzdCB0byBhZGQKLSAgICAgICAg
ICBtb2RpZmllcnM6IHNlcXVlbmNlIG9mIG1vZGlmaWVyIGtleXdvcmRzICgnd29udGZpeCcsICdz
bG93JywgZXRjLikKLSAgICAgICAgICBleHBlY3RhdGlvbnM6IHNlcXVlbmNlIG9mIGV4cGVjdGF0
aW9ucyAoUEFTUywgSU1BR0UsIGV0Yy4pCi0gICAgICAgICAgb3B0aW9uczogc2VxdWVuY2Ugb2Yg
a2V5d29yZHMgYW5kIGJ1ZyBpZGVudGlmaWVycy4KLSAgICAgICAgICBvdmVycmlkZXNfYWxsb3dl
ZDogd2hldGhlciB3ZSdyZSBwYXJzaW5nIHRoZSByZWd1bGFyIGV4cGVjdGF0aW9ucwotICAgICAg
ICAgICAgICBvciB0aGUgb3ZlcnJpZGRpbmcgZXhwZWN0YXRpb25zIiIiCi0gICAgICAgIHNlbGYu
X3Rlc3RfdG9fZXhwZWN0YXRpb25zW3Rlc3RdID0gZXhwZWN0YXRpb25zCi0gICAgICAgIGZvciBl
eHBlY3RhdGlvbiBpbiBleHBlY3RhdGlvbnM6Ci0gICAgICAgICAgICBzZWxmLl9leHBlY3RhdGlv
bl90b190ZXN0c1tleHBlY3RhdGlvbl0uYWRkKHRlc3QpCi0KLSAgICAgICAgc2VsZi5fdGVzdF90
b19vcHRpb25zW3Rlc3RdID0gb3B0aW9ucwotICAgICAgICBzZWxmLl90ZXN0X3RvX21vZGlmaWVy
c1t0ZXN0XSA9IHNldCgpCi0gICAgICAgIGZvciBtb2RpZmllciBpbiBtb2RpZmllcnM6Ci0gICAg
ICAgICAgICBtb2RfdmFsdWUgPSBzZWxmLk1PRElGSUVSU1ttb2RpZmllcl0KLSAgICAgICAgICAg
IHNlbGYuX21vZGlmaWVyX3RvX3Rlc3RzW21vZF92YWx1ZV0uYWRkKHRlc3QpCi0gICAgICAgICAg
ICBzZWxmLl90ZXN0X3RvX21vZGlmaWVyc1t0ZXN0XS5hZGQobW9kX3ZhbHVlKQotCi0gICAgICAg
IGlmICd3b250Zml4JyBpbiBtb2RpZmllcnM6Ci0gICAgICAgICAgICBzZWxmLl90aW1lbGluZV90
b190ZXN0c1tXT05URklYXS5hZGQodGVzdCkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHNl
bGYuX3RpbWVsaW5lX3RvX3Rlc3RzW05PV10uYWRkKHRlc3QpCi0KLSAgICAgICAgaWYgJ3NraXAn
IGluIG1vZGlmaWVyczoKLSAgICAgICAgICAgIHNlbGYuX3Jlc3VsdF90eXBlX3RvX3Rlc3RzW1NL
SVBdLmFkZCh0ZXN0KQotICAgICAgICBlbGlmIGV4cGVjdGF0aW9ucyA9PSBzZXQoW1BBU1NdKToK
LSAgICAgICAgICAgIHNlbGYuX3Jlc3VsdF90eXBlX3RvX3Rlc3RzW1BBU1NdLmFkZCh0ZXN0KQot
ICAgICAgICBlbGlmIGxlbihleHBlY3RhdGlvbnMpID4gMToKLSAgICAgICAgICAgIHNlbGYuX3Jl
c3VsdF90eXBlX3RvX3Rlc3RzW0ZMQUtZXS5hZGQodGVzdCkKLSAgICAgICAgZWxzZToKLSAgICAg
ICAgICAgIHNlbGYuX3Jlc3VsdF90eXBlX3RvX3Rlc3RzW0ZBSUxdLmFkZCh0ZXN0KQotCi0gICAg
ICAgIGlmIG92ZXJyaWRlc19hbGxvd2VkOgotICAgICAgICAgICAgc2VsZi5fb3ZlcnJpZGRpbmdf
dGVzdHMuYWRkKHRlc3QpCi0KLSAgICBkZWYgX2NsZWFyX2V4cGVjdGF0aW9uc19mb3JfdGVzdChz
ZWxmLCB0ZXN0LCB0ZXN0X2xpc3RfcGF0aCk6Ci0gICAgICAgICIiIlJlbW92ZSBwcmV4aXN0aW5n
IGV4cGVjdGF0aW9ucyBmb3IgdGhpcyB0ZXN0LgotICAgICAgICBUaGlzIGhhcHBlbnMgaWYgd2Ug
YXJlIHNlZWluZyBhIG1vcmUgcHJlY2lzZSBwYXRoCi0gICAgICAgIHRoYW4gYSBwcmV2aW91cyBs
aXN0aW5nLgotICAgICAgICAiIiIKLSAgICAgICAgaWYgdGVzdCBpbiBzZWxmLl90ZXN0X2xpc3Rf
cGF0aHM6Ci0gICAgICAgICAgICBzZWxmLl90ZXN0X3RvX2V4cGVjdGF0aW9ucy5wb3AodGVzdCwg
JycpCi0gICAgICAgICAgICBzZWxmLl9yZW1vdmVfZnJvbV9zZXRzKHRlc3QsIHNlbGYuX2V4cGVj
dGF0aW9uX3RvX3Rlc3RzKQotICAgICAgICAgICAgc2VsZi5fcmVtb3ZlX2Zyb21fc2V0cyh0ZXN0
LCBzZWxmLl9tb2RpZmllcl90b190ZXN0cykKLSAgICAgICAgICAgIHNlbGYuX3JlbW92ZV9mcm9t
X3NldHModGVzdCwgc2VsZi5fdGltZWxpbmVfdG9fdGVzdHMpCi0gICAgICAgICAgICBzZWxmLl9y
ZW1vdmVfZnJvbV9zZXRzKHRlc3QsIHNlbGYuX3Jlc3VsdF90eXBlX3RvX3Rlc3RzKQotCi0gICAg
ICAgIHNlbGYuX3Rlc3RfbGlzdF9wYXRoc1t0ZXN0XSA9IHNlbGYuX3BvcnQubm9ybWFsaXplX3Rl
c3RfbmFtZSh0ZXN0X2xpc3RfcGF0aCkKLQotICAgIGRlZiBfcmVtb3ZlX2Zyb21fc2V0cyhzZWxm
LCB0ZXN0LCBkaWN0KToKLSAgICAgICAgIiIiUmVtb3ZlcyB0aGUgZ2l2ZW4gdGVzdCBmcm9tIHRo
ZSBzZXRzIGluIHRoZSBkaWN0aW9uYXJ5LgotCi0gICAgICAgIEFyZ3M6Ci0gICAgICAgICAgdGVz
dDogdGVzdCB0byBsb29rIGZvcgotICAgICAgICAgIGRpY3Q6IGRpY3Qgb2Ygc2V0cyBvZiBmaWxl
cyIiIgotICAgICAgICBmb3Igc2V0X29mX3Rlc3RzIGluIGRpY3QuaXRlcnZhbHVlcygpOgotICAg
ICAgICAgICAgaWYgdGVzdCBpbiBzZXRfb2ZfdGVzdHM6Ci0gICAgICAgICAgICAgICAgc2V0X29m
X3Rlc3RzLnJlbW92ZSh0ZXN0KQotCi0gICAgZGVmIF9hbHJlYWR5X3NlZW5fYmV0dGVyX21hdGNo
KHNlbGYsIHRlc3QsIHRlc3RfbGlzdF9wYXRoLCBudW1fbWF0Y2hlcywKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbGluZW5vLCBvdmVycmlkZXNfYWxsb3dlZCk6Ci0gICAgICAg
ICIiIlJldHVybnMgd2hldGhlciB3ZSd2ZSBzZWVuIGEgYmV0dGVyIG1hdGNoIGFscmVhZHkgaW4g
dGhlIGZpbGUuCi0KLSAgICAgICAgUmV0dXJucyBUcnVlIGlmIHdlJ3ZlIGFscmVhZHkgc2VlbiBh
IHRlc3RfbGlzdF9wYXRoIHRoYXQgbWF0Y2hlcyBtb3JlIG9mIHRoZSB0ZXN0Ci0gICAgICAgICAg
ICB0aGFuIHRoaXMgcGF0aCBkb2VzCi0gICAgICAgICIiIgotICAgICAgICAjIEZJWE1FOiBTZWUg
Y29tbWVudCBiZWxvdyBhYm91dCBtYXRjaGluZyB0ZXN0IGNvbmZpZ3MgYW5kIG51bV9tYXRjaGVz
LgotICAgICAgICBpZiBub3QgdGVzdCBpbiBzZWxmLl90ZXN0X2xpc3RfcGF0aHM6Ci0gICAgICAg
ICAgICAjIFdlJ3ZlIG5ldmVyIHNlZW4gdGhpcyB0ZXN0IGJlZm9yZS4KLSAgICAgICAgICAgIHJl
dHVybiBGYWxzZQotCi0gICAgICAgIHByZXZfYmFzZV9wYXRoLCBwcmV2X251bV9tYXRjaGVzLCBw
cmV2X2xpbmVubyA9IHNlbGYuX3Rlc3RfbGlzdF9wYXRoc1t0ZXN0XQotICAgICAgICBiYXNlX3Bh
dGggPSBzZWxmLl9wb3J0Lm5vcm1hbGl6ZV90ZXN0X25hbWUodGVzdF9saXN0X3BhdGgpCi0KLSAg
ICAgICAgaWYgbGVuKHByZXZfYmFzZV9wYXRoKSA+IGxlbihiYXNlX3BhdGgpOgotICAgICAgICAg
ICAgIyBUaGUgcHJldmlvdXMgcGF0aCBtYXRjaGVkIG1vcmUgb2YgdGhlIHRlc3QuCi0gICAgICAg
ICAgICByZXR1cm4gVHJ1ZQotCi0gICAgICAgIGlmIGxlbihwcmV2X2Jhc2VfcGF0aCkgPCBsZW4o
YmFzZV9wYXRoKToKLSAgICAgICAgICAgICMgVGhpcyBwYXRoIG1hdGNoZXMgbW9yZSBvZiB0aGUg
dGVzdC4KLSAgICAgICAgICAgIHJldHVybiBGYWxzZQotCi0gICAgICAgIGlmIG92ZXJyaWRlc19h
bGxvd2VkIGFuZCB0ZXN0IG5vdCBpbiBzZWxmLl9vdmVycmlkZGluZ190ZXN0czoKLSAgICAgICAg
ICAgICMgV2UgaGF2ZSBzZWVuIHRoaXMgcGF0aCwgYnV0IHRoYXQncyBva2F5IGJlY2F1c2UgaXQg
aXMKLSAgICAgICAgICAgICMgaW4gdGhlIG92ZXJyaWRlcyBhbmQgdGhlIGVhcmxpZXIgcGF0aCB3
YXMgaW4gdGhlCi0gICAgICAgICAgICAjIGV4cGVjdGF0aW9ucyAobm90IHRoZSBvdmVycmlkZXMp
LgotICAgICAgICAgICAgcmV0dXJuIEZhbHNlCi0KLSAgICAgICAgIyBBdCB0aGlzIHBvaW50IHdl
IGtub3cgd2UgaGF2ZSBzZWVuIGEgcHJldmlvdXMgZXhhY3QgbWF0Y2ggb24gdGhpcwotICAgICAg
ICAjIGJhc2UgcGF0aCwgc28gd2UgbmVlZCB0byBjaGVjayB0aGUgdHdvIHNldHMgb2YgbW9kaWZp
ZXJzLgotCi0gICAgICAgIGlmIG92ZXJyaWRlc19hbGxvd2VkOgotICAgICAgICAgICAgZXhwZWN0
YXRpb25fc291cmNlID0gIm92ZXJyaWRlIgotICAgICAgICBlbHNlOgotICAgICAgICAgICAgZXhw
ZWN0YXRpb25fc291cmNlID0gImV4cGVjdGF0aW9uIgotCi0gICAgICAgICMgRklYTUU6IFRoaXMg
Y29kZSB3YXMgb3JpZ2luYWxseSBkZXNpZ25lZCB0byBhbGxvdyBsaW5lcyB0aGF0IG1hdGNoZWQK
LSAgICAgICAgIyBtb3JlIG1vZGlmaWVycyB0byBvdmVycmlkZSBsaW5lcyB0aGF0IG1hdGNoZWQg
ZmV3ZXIgbW9kaWZpZXJzLgotICAgICAgICAjIEhvd2V2ZXIsIHdlIGN1cnJlbnRseSB2aWV3IHRo
ZXNlIGFzIGVycm9ycy4gSWYgd2UgZGVjaWRlIHRvIG1ha2UKLSAgICAgICAgIyB0aGlzIHBvbGlj
eSBwZXJtYW5lbnQsIHdlIGNhbiBwcm9iYWJseSBzaW1wbGlmeSB0aGlzIGNvZGUKLSAgICAgICAg
IyBhbmQgdGhlIE1vZGlmaWVyTWF0Y2hlciBjb2RlIGEgZmFpciBhbW91bnQuCi0gICAgICAgICMK
LSAgICAgICAgIyBUbyB1c2UgdGhlICJtb3JlIG1vZGlmaWVycyB3aW5zIiBwb2xpY3ksIGNoYW5n
ZSB0aGUgIl9hZGRfZXJyb3IiIGxpbmVzIGZvciBvdmVycmlkZXMKLSAgICAgICAgIyB0byBfbG9n
X25vbl9mYXRhbF9lcnJvcigpIGFuZCBjaGFuZ2UgdGhlIGNvbW1lbnRlZC1vdXQgInJldHVybiBG
YWxzZSIuCi0KLSAgICAgICAgaWYgcHJldl9udW1fbWF0Y2hlcyA9PSBudW1fbWF0Y2hlczoKLSAg
ICAgICAgICAgIHNlbGYuX2FkZF9lcnJvcihsaW5lbm8sCi0gICAgICAgICAgICAgICAgJ0R1cGxp
Y2F0ZSBvciBhbWJpZ3VvdXMgJXMuJyAlIGV4cGVjdGF0aW9uX3NvdXJjZSwKLSAgICAgICAgICAg
ICAgICB0ZXN0KQotICAgICAgICAgICAgcmV0dXJuIFRydWUKLQotICAgICAgICBpZiBwcmV2X251
bV9tYXRjaGVzIDwgbnVtX21hdGNoZXM6Ci0gICAgICAgICAgICBzZWxmLl9hZGRfZXJyb3IobGlu
ZW5vLAotICAgICAgICAgICAgICAgICdNb3JlIHNwZWNpZmljIGVudHJ5IG9uIGxpbmUgJWQgb3Zl
cnJpZGVzIGxpbmUgJWQnICUKLSAgICAgICAgICAgICAgICAobGluZW5vLCBwcmV2X2xpbmVubyks
IHRlc3RfbGlzdF9wYXRoKQotICAgICAgICAgICAgIyBGSVhNRTogcmV0dXJuIEZhbHNlIGlmIHdl
IHdhbnQgbW9yZSBzcGVjaWZpYyB0byB3aW4uCi0gICAgICAgICAgICByZXR1cm4gVHJ1ZQotCi0g
ICAgICAgIHNlbGYuX2FkZF9lcnJvcihsaW5lbm8sCi0gICAgICAgICAgICAnTW9yZSBzcGVjaWZp
YyBlbnRyeSBvbiBsaW5lICVkIG92ZXJyaWRlcyBsaW5lICVkJyAlCi0gICAgICAgICAgICAocHJl
dl9saW5lbm8sIGxpbmVubyksIHRlc3RfbGlzdF9wYXRoKQotICAgICAgICByZXR1cm4gVHJ1ZQot
CiAgICAgZGVmIF9hZGRfZXJyb3Ioc2VsZiwgbGluZW5vLCBtc2csIHBhdGgpOgogICAgICAgICAi
IiJSZXBvcnRzIGFuIGVycm9yIHRoYXQgd2lsbCBwcmV2ZW50IHJ1bm5pbmcgdGhlIHRlc3RzLiBE
b2VzIG5vdAogICAgICAgICBpbW1lZGlhdGVseSByYWlzZSBhbiBleGNlcHRpb24gYmVjYXVzZSB3
ZSdkIGxpa2UgdG8gYWdncmVnYXRlIGFsbCB0aGUK
</data>

          </attachment>
      

    </bug>

</bugzilla>