<?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>58753</bug_id>
          
          <creation_ts>2011-04-17 16:14:19 -0700</creation_ts>
          <short_desc>new-run-webkit-tests: obsolete old threading code, part 2: merge test_runner2 into test_runner</short_desc>
          <delta_ts>2011-04-21 19:48:58 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>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>
          <dependson>58752</dependson>
          <blocked>58754</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dirk Pranke">dpranke</reporter>
          <assigned_to name="Dirk Pranke">dpranke</assigned_to>
          <cc>abarth</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric</cc>
    
    <cc>ojan</cc>
    
    <cc>tony</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>387449</commentid>
    <comment_count>0</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-04-17 16:14:19 -0700</bug_when>
    <thetext>new-run-webkit-tests: obsolete old threading code, part 2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>387450</commentid>
    <comment_count>1</comment_count>
      <attachid>89968</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-04-17 16:16:13 -0700</bug_when>
    <thetext>Created attachment 89968
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>388546</commentid>
    <comment_count>2</comment_count>
      <attachid>89968</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-04-19 09:27:01 -0700</bug_when>
    <thetext>Comment on attachment 89968
Patch

rs=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>389801</commentid>
    <comment_count>3</comment_count>
      <attachid>89968</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-04-20 20:43:37 -0700</bug_when>
    <thetext>Comment on attachment 89968
Patch

Rejecting attachment 89968 from commit-queue.

Failed to run &quot;[&apos;./Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;--bot-id=cr-jail-4&apos;, &apos;apply-...&quot; exit_code: 2

Last 500 characters of output:
le Tools/Scripts/webkitpy/layout_tests/layout_package/test_runner2.py is not empty after patch, as expected
1 out of 1 hunk FAILED -- saving rejects to file Tools/Scripts/webkitpy/layout_tests/layout_package/test_runner2.py.rej
rm &apos;Tools/Scripts/webkitpy/layout_tests/layout_package/test_runner2.py&apos;
patching file Tools/Scripts/webkitpy/layout_tests/run_webkit_tests.py

Failed to run &quot;[u&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/svn-apply&apos;, u&apos;--reviewer&apos;, u&apos;Tony Chang&apos;, u&apos;--force&apos;]&quot; exit_code: 1

Full output: http://queues.webkit.org/results/8470937</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>390534</commentid>
    <comment_count>4</comment_count>
      <attachid>90649</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-04-21 18:55:05 -0700</bug_when>
    <thetext>Created attachment 90649
rebase to head</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>390556</commentid>
    <comment_count>5</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-04-21 19:48:58 -0700</bug_when>
    <thetext>Committed r84591: &lt;http://trac.webkit.org/changeset/84591&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>89968</attachid>
            <date>2011-04-17 16:16:13 -0700</date>
            <delta_ts>2011-04-21 18:55:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-58753-20110417161612.patch</filename>
            <type>text/plain</type>
            <size>21868</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODM4OTUKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCA5ZGY4MzlkZjFkMzNiZDE2YTg0Zjc2ZDc3YmMwZjA4Nzc4
NzAzODYxLi5jYmQ4NTA4NTQyNDYwNzNlYzcxM2VkMDg4Yzc1MTlhODg4MGI4MDdiIDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0yLDYgKzIsMjAg
QEAKIAogICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KIAorICAgICAgICBuZXct
cnVuLXdlYmtpdC10ZXN0czogb2Jzb2xldGUgb2xkIHRocmVhZGluZyBjb2RlLCBwYXJ0IDIKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU4NzUzCisKKyAg
ICAgICAgVGhpcyBtZXJnZXMgdGhlIHRlc3RfcnVubmVyMiBjb2RlIGJhY2sgaW50byB0ZXN0X3J1
bm5lciBzaW5jZQorICAgICAgICB0aGVyZSdzIG9ubHkgYSBzaW5nbGUgdHlwZSBvZiB0ZXN0IHJ1
bm5lciBub3cuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlv
dXRfcGFja2FnZS90ZXN0X3J1bm5lci5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS90ZXN0X3J1bm5lcjIucHk6IFJlbW92ZWQuCisgICAg
ICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0cy5weToK
KworMjAxMS0wNC0xNyAgRGlyayBQcmFua2UgIDxkcHJhbmtlQGNocm9taXVtLm9yZz4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwogICAgICAgICBuZXctcnVuLXdlYmtp
dC10ZXN0czogb2Jzb2xldGUgb2xkIHRocmVhZGluZyBjb2RlLCBwYXJ0IDEKICAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU4NzUyCiAKZGlmZiAtLWdpdCBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL3Rlc3Rf
cnVubmVyLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3Bh
Y2thZ2UvdGVzdF9ydW5uZXIucHkKaW5kZXggYTY2ODBlMzc2NTA4ODRiY2IyNWE1OWExMDcwMDJk
ODNlODQ0NGI2Yy4uNzYzMWRiNjBjZjZhYzNlMDI5MTU0MmZiOTRmN2Q5NTYyZWU2ODNlMCAxMDA2
NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2th
Z2UvdGVzdF9ydW5uZXIucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvbGF5b3V0X3BhY2thZ2UvdGVzdF9ydW5uZXIucHkKQEAgLTQ4LDE4ICs0OCwyMSBAQCBpbXBv
cnQgdGltZQogCiBmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5sYXlvdXRfcGFja2FnZSBpbXBv
cnQganNvbl9sYXlvdXRfcmVzdWx0c19nZW5lcmF0b3IKIGZyb20gd2Via2l0cHkubGF5b3V0X3Rl
c3RzLmxheW91dF9wYWNrYWdlIGltcG9ydCBqc29uX3Jlc3VsdHNfZ2VuZXJhdG9yCitmcm9tIHdl
YmtpdHB5LmxheW91dF90ZXN0cy5sYXlvdXRfcGFja2FnZSBpbXBvcnQgbWFuYWdlcl93b3JrZXJf
YnJva2VyCiBmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5sYXlvdXRfcGFja2FnZSBpbXBvcnQg
cHJpbnRpbmcKIGZyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLmxheW91dF9wYWNrYWdlIGltcG9y
dCB0ZXN0X2V4cGVjdGF0aW9ucwogZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMubGF5b3V0X3Bh
Y2thZ2UgaW1wb3J0IHRlc3RfZmFpbHVyZXMKIGZyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLmxh
eW91dF9wYWNrYWdlIGltcG9ydCB0ZXN0X3Jlc3VsdHMKIGZyb20gd2Via2l0cHkubGF5b3V0X3Rl
c3RzLmxheW91dF9wYWNrYWdlIGltcG9ydCB0ZXN0X3Jlc3VsdHNfdXBsb2FkZXIKK2Zyb20gd2Vi
a2l0cHkubGF5b3V0X3Rlc3RzLmxheW91dF9wYWNrYWdlIGltcG9ydCB3b3JrZXIKKwogZnJvbSB3
ZWJraXRweS5sYXlvdXRfdGVzdHMubGF5b3V0X3BhY2thZ2UucmVzdWx0X3N1bW1hcnkgaW1wb3J0
IFJlc3VsdFN1bW1hcnkKIGZyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLmxheW91dF9wYWNrYWdl
LnRlc3RfaW5wdXQgaW1wb3J0IFRlc3RJbnB1dAogCiBmcm9tIHdlYmtpdHB5LnRoaXJkcGFydHkg
aW1wb3J0IHNpbXBsZWpzb24KIGZyb20gd2Via2l0cHkudG9vbCBpbXBvcnQgZ3JhbW1hcgogCi1f
bG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoIndlYmtpdHB5LmxheW91dF90ZXN0cy5ydW5fd2Via2l0
X3Rlc3RzIikKK19sb2cgPSBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVfXykKIAogIyBCdWlsZGVy
IGJhc2UgVVJMIHdoZXJlIHdlIGhhdmUgdGhlIGFyY2hpdmVkIHRlc3QgcmVzdWx0cy4KIEJVSUxE
RVJfQkFTRV9VUkwgPSAiaHR0cDovL2J1aWxkLmNocm9taXVtLm9yZy9idWlsZGJvdC9sYXlvdXRf
dGVzdF9yZXN1bHRzLyIKQEAgLTIwNSw2ICsyMDgsMTQgQEAgY2xhc3MgVGVzdFJ1bm5lcjoKICAg
ICAgICAgc2VsZi5fcmV0cnlpbmcgPSBGYWxzZQogICAgICAgICBzZWxmLl9yZXN1bHRzX2RpcmVj
dG9yeSA9IHNlbGYuX3BvcnQucmVzdWx0c19kaXJlY3RvcnkoKQogCisgICAgICAgIHNlbGYuX2Fs
bF9yZXN1bHRzID0gW10KKyAgICAgICAgc2VsZi5fZ3JvdXBfc3RhdHMgPSB7fQorICAgICAgICBz
ZWxmLl9jdXJyZW50X3Jlc3VsdF9zdW1tYXJ5ID0gTm9uZQorCisgICAgICAgICMgVGhpcyBtYXBz
IHdvcmtlciBuYW1lcyB0byB0aGUgc3RhdGUgd2UgYXJlIHRyYWNraW5nIGZvciBlYWNoIG9mIHRo
ZW0uCisgICAgICAgIHNlbGYuX3dvcmtlcl9zdGF0ZXMgPSB7fQorCisKICAgICBkZWYgY29sbGVj
dF90ZXN0cyhzZWxmLCBhcmdzLCBsYXN0X3VuZXhwZWN0ZWRfcmVzdWx0cyk6CiAgICAgICAgICIi
IkZpbmQgYWxsIHRoZSBmaWxlcyB0byB0ZXN0LgogCkBAIC01MzAsNyArNTQxLDg4IEBAIGNsYXNz
IFRlc3RSdW5uZXI6CiAgICAgICAgICAgICAgIGluIHRoZSBmb3JtIHtmaWxlbmFtZTpmaWxlbmFt
ZSwgdGVzdF9ydW5fdGltZTp0ZXN0X3J1bl90aW1lfQogICAgICAgICAgICAgcmVzdWx0X3N1bW1h
cnk6IHN1bW1hcnkgb2JqZWN0IHRvIHBvcHVsYXRlIHdpdGggdGhlIHJlc3VsdHMKICAgICAgICAg
IiIiCi0gICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoKQorICAgICAgICBzZWxmLl9j
dXJyZW50X3Jlc3VsdF9zdW1tYXJ5ID0gcmVzdWx0X3N1bW1hcnkKKyAgICAgICAgc2VsZi5fYWxs
X3Jlc3VsdHMgPSBbXQorICAgICAgICBzZWxmLl9ncm91cF9zdGF0cyA9IHt9CisgICAgICAgIHNl
bGYuX3dvcmtlcl9zdGF0ZXMgPSB7fQorCisgICAgICAgIG51bV93b3JrZXJzID0gc2VsZi5fbnVt
X3dvcmtlcnMoKQorICAgICAgICBrZXlib2FyZF9pbnRlcnJ1cHRlZCA9IEZhbHNlCisgICAgICAg
IGludGVycnVwdGVkID0gRmFsc2UKKyAgICAgICAgdGhyZWFkX3RpbWluZ3MgPSBbXQorCisgICAg
ICAgIHNlbGYuX3ByaW50ZXIucHJpbnRfdXBkYXRlKCdTaGFyZGluZyB0ZXN0cyAuLi4nKQorICAg
ICAgICB0ZXN0X2xpc3RzID0gc2VsZi5fc2hhcmRfdGVzdHMoZmlsZV9saXN0LAorICAgICAgICAg
ICAgbnVtX3dvcmtlcnMgPiAxIGFuZCBub3Qgc2VsZi5fb3B0aW9ucy5leHBlcmltZW50YWxfZnVs
bHlfcGFyYWxsZWwpCisgICAgICAgIF9sb2cuZGVidWcoIlVzaW5nICVkIHNoYXJkcyIgJSBsZW4o
dGVzdF9saXN0cykpCisKKyAgICAgICAgbWFuYWdlcl9jb25uZWN0aW9uID0gbWFuYWdlcl93b3Jr
ZXJfYnJva2VyLmdldChzZWxmLl9wb3J0LCBzZWxmLl9vcHRpb25zLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYsIHdvcmtlci5Xb3Jr
ZXIpCisKKyAgICAgICAgaWYgc2VsZi5fb3B0aW9ucy5kcnlfcnVuOgorICAgICAgICAgICAgcmV0
dXJuIChrZXlib2FyZF9pbnRlcnJ1cHRlZCwgaW50ZXJydXB0ZWQsIHRocmVhZF90aW1pbmdzLAor
ICAgICAgICAgICAgICAgICAgICBzZWxmLl9ncm91cF9zdGF0cywgc2VsZi5fYWxsX3Jlc3VsdHMp
CisKKyAgICAgICAgc2VsZi5fcHJpbnRlci5wcmludF91cGRhdGUoJ1N0YXJ0aW5nICVzIC4uLicg
JQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmFtbWFyLnBsdXJhbGl6ZSgn
d29ya2VyJywgbnVtX3dvcmtlcnMpKQorICAgICAgICBmb3Igd29ya2VyX251bWJlciBpbiB4cmFu
Z2UobnVtX3dvcmtlcnMpOgorICAgICAgICAgICAgd29ya2VyX2Nvbm5lY3Rpb24gPSBtYW5hZ2Vy
X2Nvbm5lY3Rpb24uc3RhcnRfd29ya2VyKHdvcmtlcl9udW1iZXIpCisgICAgICAgICAgICB3b3Jr
ZXJfc3RhdGUgPSBfV29ya2VyU3RhdGUod29ya2VyX251bWJlciwgd29ya2VyX2Nvbm5lY3Rpb24p
CisgICAgICAgICAgICBzZWxmLl93b3JrZXJfc3RhdGVzW3dvcmtlcl9jb25uZWN0aW9uLm5hbWVd
ID0gd29ya2VyX3N0YXRlCisKKyAgICAgICAgICAgICMgRklYTUU6IElmIHdlIHN0YXJ0IHdvcmtl
cnMgdXAgdG9vIHF1aWNrbHksIER1bXBSZW5kZXJUcmVlIGFwcGVhcnMKKyAgICAgICAgICAgICMg
dG8gdGhyYXNoIG9uIHNvbWV0aGluZyBhbmQgdGltZSBvdXQgaXRzIGZpcnN0IGZldyB0ZXN0cy4g
VW50aWwKKyAgICAgICAgICAgICMgd2UgY2FuIGZpZ3VyZSBvdXQgd2hhdCdzIGdvaW5nIG9uLCBz
bGVlcCBhIGJpdCBpbiBiZXR3ZWVuCisgICAgICAgICAgICAjIHdvcmtlcnMuCisgICAgICAgICAg
ICB0aW1lLnNsZWVwKDAuMSkKKworICAgICAgICBzZWxmLl9wcmludGVyLnByaW50X3VwZGF0ZSgi
U3RhcnRpbmcgdGVzdGluZyAuLi4iKQorICAgICAgICBmb3IgdGVzdF9saXN0IGluIHRlc3RfbGlz
dHM6CisgICAgICAgICAgICBtYW5hZ2VyX2Nvbm5lY3Rpb24ucG9zdF9tZXNzYWdlKCd0ZXN0X2xp
c3QnLCB0ZXN0X2xpc3RbMF0sIHRlc3RfbGlzdFsxXSkKKworICAgICAgICAjIFdlIHBvc3Qgb25l
ICdzdG9wJyBtZXNzYWdlIGZvciBlYWNoIHdvcmtlci4gQmVjYXVzZSB0aGUgc3RvcCBtZXNzYWdl
CisgICAgICAgICMgYXJlIHNlbnQgYWZ0ZXIgYWxsIG9mIHRoZSB0ZXN0cywgYW5kIGJlY2F1c2Ug
ZWFjaCB3b3JrZXIgd2lsbCBzdG9wCisgICAgICAgICMgcmVhZGluZyBtZXNzc2FnZXMgYWZ0ZXIg
cmVjZWl2aW5nIGEgc3RvcCwgd2UgY2FuIGJlIHN1cmUgZWFjaAorICAgICAgICAjIHdvcmtlciB3
aWxsIGdldCBhIHN0b3AgbWVzc2FnZSBhbmQgaGVuY2UgdGhleSB3aWxsIGFsbCBzaHV0IGRvd24u
CisgICAgICAgIGZvciBpIGluIHhyYW5nZShudW1fd29ya2Vycyk6CisgICAgICAgICAgICBtYW5h
Z2VyX2Nvbm5lY3Rpb24ucG9zdF9tZXNzYWdlKCdzdG9wJykKKworICAgICAgICB0cnk6CisgICAg
ICAgICAgICB3aGlsZSBub3Qgc2VsZi5pc19kb25lKCk6CisgICAgICAgICAgICAgICAgIyBXZSBs
b29wIHdpdGggYSB0aW1lb3V0IGluIG9yZGVyIHRvIGJlIGFibGUgdG8gZGV0ZWN0IHdlZGdlZCB0
aHJlYWRzLgorICAgICAgICAgICAgICAgIG1hbmFnZXJfY29ubmVjdGlvbi5ydW5fbWVzc2FnZV9s
b29wKGRlbGF5X3NlY3M9MS4wKQorCisgICAgICAgICAgICBpZiBhbnkod29ya2VyX3N0YXRlLndl
ZGdlZCBmb3Igd29ya2VyX3N0YXRlIGluIHNlbGYuX3dvcmtlcl9zdGF0ZXMudmFsdWVzKCkpOgor
ICAgICAgICAgICAgICAgIF9sb2cuZXJyb3IoJycpCisgICAgICAgICAgICAgICAgX2xvZy5lcnJv
cignUmVtYWluaW5nIHdvcmtlcnMgYXJlIHdlZGdlZCwgYmFpbGluZyBvdXQuJykKKyAgICAgICAg
ICAgICAgICBfbG9nLmVycm9yKCcnKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAg
ICBfbG9nLmRlYnVnKCdObyB3ZWRnZWQgdGhyZWFkcycpCisKKyAgICAgICAgICAgICMgTWFrZSBz
dXJlIGFsbCBvZiB0aGUgd29ya2VycyBoYXZlIHNodXQgZG93biAoaWYgcG9zc2libGUpLgorICAg
ICAgICAgICAgZm9yIHdvcmtlcl9zdGF0ZSBpbiBzZWxmLl93b3JrZXJfc3RhdGVzLnZhbHVlcygp
OgorICAgICAgICAgICAgICAgIGlmIG5vdCB3b3JrZXJfc3RhdGUud2VkZ2VkIGFuZCB3b3JrZXJf
c3RhdGUud29ya2VyX2Nvbm5lY3Rpb24uaXNfYWxpdmUoKToKKyAgICAgICAgICAgICAgICAgICAg
d29ya2VyX3N0YXRlLndvcmtlcl9jb25uZWN0aW9uLmpvaW4oMC41KQorICAgICAgICAgICAgICAg
ICAgICBhc3NlcnQgbm90IHdvcmtlcl9zdGF0ZS53b3JrZXJfY29ubmVjdGlvbi5pc19hbGl2ZSgp
CisKKyAgICAgICAgZXhjZXB0IEtleWJvYXJkSW50ZXJydXB0OgorICAgICAgICAgICAgX2xvZy5p
bmZvKCJJbnRlcnJ1cHRlZCwgZXhpdGluZyIpCisgICAgICAgICAgICBzZWxmLmNhbmNlbF93b3Jr
ZXJzKCkKKyAgICAgICAgICAgIGtleWJvYXJkX2ludGVycnVwdGVkID0gVHJ1ZQorICAgICAgICBl
eGNlcHQgVGVzdFJ1bkludGVycnVwdGVkRXhjZXB0aW9uLCBlOgorICAgICAgICAgICAgX2xvZy5p
bmZvKGUucmVhc29uKQorICAgICAgICAgICAgc2VsZi5jYW5jZWxfd29ya2VycygpCisgICAgICAg
ICAgICBpbnRlcnJ1cHRlZCA9IFRydWUKKyAgICAgICAgZXhjZXB0OgorICAgICAgICAgICAgIyBV
bmV4cGVjdGVkIGV4Y2VwdGlvbjsgZG9uJ3QgdHJ5IHRvIGNsZWFuIHVwIHdvcmtlcnMuCisgICAg
ICAgICAgICBfbG9nLmluZm8oIkV4Y2VwdGlvbiByYWlzZWQsIGV4aXRpbmciKQorICAgICAgICAg
ICAgcmFpc2UKKworICAgICAgICB0aHJlYWRfdGltaW5ncyA9IFt3b3JrZXJfc3RhdGUuc3RhdHMg
Zm9yIHdvcmtlcl9zdGF0ZSBpbiBzZWxmLl93b3JrZXJfc3RhdGVzLnZhbHVlcygpXQorCisgICAg
ICAgICMgRklYTUU6IHNob3VsZCB0aGlzIGJlIGEgY2xhc3MgaW5zdGVhZCBvZiBhIHR1cGxlPwor
ICAgICAgICByZXR1cm4gKGludGVycnVwdGVkLCBrZXlib2FyZF9pbnRlcnJ1cHRlZCwgdGhyZWFk
X3RpbWluZ3MsCisgICAgICAgICAgICAgICAgc2VsZi5fZ3JvdXBfc3RhdHMsIHNlbGYuX2FsbF9y
ZXN1bHRzKQogCiAgICAgZGVmIHVwZGF0ZShzZWxmKToKICAgICAgICAgc2VsZi51cGRhdGVfc3Vt
bWFyeShzZWxmLl9jdXJyZW50X3Jlc3VsdF9zdW1tYXJ5KQpAQCAtMTE1NSw2ICsxMjQ3LDYyIEBA
IGNsYXNzIFRlc3RSdW5uZXI6CiAgICAgICAgIHJlc3VsdHNfZmlsZW5hbWUgPSBzZWxmLl9mcy5q
b2luKHNlbGYuX3Jlc3VsdHNfZGlyZWN0b3J5LCAicmVzdWx0cy5odG1sIikKICAgICAgICAgc2Vs
Zi5fcG9ydC5zaG93X3Jlc3VsdHNfaHRtbF9maWxlKHJlc3VsdHNfZmlsZW5hbWUpCiAKKyAgICBk
ZWYgbmFtZShzZWxmKToKKyAgICAgICAgcmV0dXJuICdUZXN0UnVubmVyJworCisgICAgZGVmIGlz
X2RvbmUoc2VsZik6CisgICAgICAgIHdvcmtlcl9zdGF0ZXMgPSBzZWxmLl93b3JrZXJfc3RhdGVz
LnZhbHVlcygpCisgICAgICAgIHJldHVybiB3b3JrZXJfc3RhdGVzIGFuZCBhbGwoc2VsZi5fd29y
a2VyX2lzX2RvbmUod29ya2VyX3N0YXRlKSBmb3Igd29ya2VyX3N0YXRlIGluIHdvcmtlcl9zdGF0
ZXMpCisKKyAgICBkZWYgX3dvcmtlcl9pc19kb25lKHNlbGYsIHdvcmtlcl9zdGF0ZSk6CisgICAg
ICAgIHQgPSB0aW1lLnRpbWUoKQorICAgICAgICBpZiB3b3JrZXJfc3RhdGUuZG9uZSBvciB3b3Jr
ZXJfc3RhdGUud2VkZ2VkOgorICAgICAgICAgICAgcmV0dXJuIFRydWUKKworICAgICAgICBuZXh0
X3RpbWVvdXQgPSB3b3JrZXJfc3RhdGUubmV4dF90aW1lb3V0CisgICAgICAgIFdFREdFX1BBRERJ
TkcgPSA0MC4wCisgICAgICAgIGlmIG5leHRfdGltZW91dCBhbmQgdCA+IG5leHRfdGltZW91dCAr
IFdFREdFX1BBRERJTkc6CisgICAgICAgICAgICBfbG9nLmVycm9yKCcnKQorICAgICAgICAgICAg
d29ya2VyX3N0YXRlLndvcmtlcl9jb25uZWN0aW9uLmxvZ193ZWRnZWRfd29ya2VyKHdvcmtlcl9z
dGF0ZS5jdXJyZW50X3Rlc3RfbmFtZSkKKyAgICAgICAgICAgIF9sb2cuZXJyb3IoJycpCisgICAg
ICAgICAgICB3b3JrZXJfc3RhdGUud2VkZ2VkID0gVHJ1ZQorICAgICAgICAgICAgcmV0dXJuIFRy
dWUKKyAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICBkZWYgY2FuY2VsX3dvcmtlcnMoc2VsZik6
CisgICAgICAgIGZvciB3b3JrZXJfc3RhdGUgaW4gc2VsZi5fd29ya2VyX3N0YXRlcy52YWx1ZXMo
KToKKyAgICAgICAgICAgIHdvcmtlcl9zdGF0ZS53b3JrZXJfY29ubmVjdGlvbi5jYW5jZWwoKQor
CisgICAgZGVmIGhhbmRsZV9zdGFydGVkX3Rlc3Qoc2VsZiwgc291cmNlLCB0ZXN0X2luZm8sIGhh
bmdfdGltZW91dCk6CisgICAgICAgIHdvcmtlcl9zdGF0ZSA9IHNlbGYuX3dvcmtlcl9zdGF0ZXNb
c291cmNlXQorICAgICAgICB3b3JrZXJfc3RhdGUuY3VycmVudF90ZXN0X25hbWUgPSBzZWxmLl9w
b3J0LnJlbGF0aXZlX3Rlc3RfZmlsZW5hbWUodGVzdF9pbmZvLmZpbGVuYW1lKQorICAgICAgICB3
b3JrZXJfc3RhdGUubmV4dF90aW1lb3V0ID0gdGltZS50aW1lKCkgKyBoYW5nX3RpbWVvdXQKKwor
ICAgIGRlZiBoYW5kbGVfZG9uZShzZWxmLCBzb3VyY2UpOgorICAgICAgICB3b3JrZXJfc3RhdGUg
PSBzZWxmLl93b3JrZXJfc3RhdGVzW3NvdXJjZV0KKyAgICAgICAgd29ya2VyX3N0YXRlLmRvbmUg
PSBUcnVlCisKKyAgICBkZWYgaGFuZGxlX2V4Y2VwdGlvbihzZWxmLCBzb3VyY2UsIGV4Y2VwdGlv
bl9pbmZvKToKKyAgICAgICAgZXhjZXB0aW9uX3R5cGUsIGV4Y2VwdGlvbl92YWx1ZSwgZXhjZXB0
aW9uX3RyYWNlYmFjayA9IGV4Y2VwdGlvbl9pbmZvCisgICAgICAgIHJhaXNlIGV4Y2VwdGlvbl90
eXBlLCBleGNlcHRpb25fdmFsdWUsIGV4Y2VwdGlvbl90cmFjZWJhY2sKKworICAgIGRlZiBoYW5k
bGVfZmluaXNoZWRfbGlzdChzZWxmLCBzb3VyY2UsIGxpc3RfbmFtZSwgbnVtX3Rlc3RzLCBlbGFw
c2VkX3RpbWUpOgorICAgICAgICBzZWxmLl9ncm91cF9zdGF0c1tsaXN0X25hbWVdID0gKG51bV90
ZXN0cywgZWxhcHNlZF90aW1lKQorCisgICAgZGVmIGhhbmRsZV9maW5pc2hlZF90ZXN0KHNlbGYs
IHNvdXJjZSwgcmVzdWx0LCBlbGFwc2VkX3RpbWUpOgorICAgICAgICB3b3JrZXJfc3RhdGUgPSBz
ZWxmLl93b3JrZXJfc3RhdGVzW3NvdXJjZV0KKyAgICAgICAgd29ya2VyX3N0YXRlLm5leHRfdGlt
ZW91dCA9IE5vbmUKKyAgICAgICAgd29ya2VyX3N0YXRlLmN1cnJlbnRfdGVzdF9uYW1lID0gTm9u
ZQorICAgICAgICB3b3JrZXJfc3RhdGUuc3RhdHNbJ3RvdGFsX3RpbWUnXSArPSBlbGFwc2VkX3Rp
bWUKKyAgICAgICAgd29ya2VyX3N0YXRlLnN0YXRzWydudW1fdGVzdHMnXSArPSAxCisKKyAgICAg
ICAgaWYgd29ya2VyX3N0YXRlLndlZGdlZDoKKyAgICAgICAgICAgICMgVGhpcyBzaG91bGRuJ3Qg
aGFwcGVuIGlmIHdlIGhhdmUgb3VyIHRpbWVvdXRzIHR1bmVkIHByb3Blcmx5LgorICAgICAgICAg
ICAgX2xvZy5lcnJvcigiJXMgdW53ZWRnZWQiLCBzb3VyY2UpCisKKyAgICAgICAgc2VsZi5fYWxs
X3Jlc3VsdHMuYXBwZW5kKHJlc3VsdCkKKyAgICAgICAgc2VsZi5fdXBkYXRlX3N1bW1hcnlfd2l0
aF9yZXN1bHQoc2VsZi5fY3VycmVudF9yZXN1bHRfc3VtbWFyeSwgcmVzdWx0KQorCiAKIGRlZiBy
ZWFkX3Rlc3RfZmlsZXMoZnMsIGZpbGVzKToKICAgICB0ZXN0cyA9IFtdCkBAIC0xMTcxLDMgKzEz
MTksMjIgQEAgZGVmIHJlYWRfdGVzdF9maWxlcyhmcywgZmlsZXMpOgogICAgICAgICAgICAgICAg
IF9sb2cuY3JpdGljYWwoJy0tdGVzdC1saXN0IGZpbGUgIiVzIiBub3QgZm91bmQnICUgZmlsZSkK
ICAgICAgICAgICAgIHJhaXNlCiAgICAgcmV0dXJuIHRlc3RzCisKKworY2xhc3MgX1dvcmtlclN0
YXRlKG9iamVjdCk6CisgICAgIiIiQSBjbGFzcyBmb3IgdGhlIFRlc3RSdW5uZXIvbWFuYWdlciB0
byB1c2UgdG8gdHJhY2sgdGhlIGN1cnJlbnQgc3RhdGUKKyAgICBvZiB0aGUgd29ya2Vycy4iIiIK
KyAgICBkZWYgX19pbml0X18oc2VsZiwgbnVtYmVyLCB3b3JrZXJfY29ubmVjdGlvbik6CisgICAg
ICAgIHNlbGYud29ya2VyX2Nvbm5lY3Rpb24gPSB3b3JrZXJfY29ubmVjdGlvbgorICAgICAgICBz
ZWxmLm51bWJlciA9IG51bWJlcgorICAgICAgICBzZWxmLmRvbmUgPSBGYWxzZQorICAgICAgICBz
ZWxmLmN1cnJlbnRfdGVzdF9uYW1lID0gTm9uZQorICAgICAgICBzZWxmLm5leHRfdGltZW91dCA9
IE5vbmUKKyAgICAgICAgc2VsZi53ZWRnZWQgPSBGYWxzZQorICAgICAgICBzZWxmLnN0YXRzID0g
e30KKyAgICAgICAgc2VsZi5zdGF0c1snbmFtZSddID0gd29ya2VyX2Nvbm5lY3Rpb24ubmFtZQor
ICAgICAgICBzZWxmLnN0YXRzWydudW1fdGVzdHMnXSA9IDAKKyAgICAgICAgc2VsZi5zdGF0c1sn
dG90YWxfdGltZSddID0gMAorCisgICAgZGVmIF9fcmVwcl9fKHNlbGYpOgorICAgICAgICByZXR1
cm4gIl9Xb3JrZXJTdGF0ZSgiICsgc3RyKHNlbGYuX19kaWN0X18pICsgIikiCmRpZmYgLS1naXQg
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS90ZXN0
X3J1bm5lcjIucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRf
cGFja2FnZS90ZXN0X3J1bm5lcjIucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVh
NjM0NGMxYTRlYTljZWIzMmYzYWE5MzEwZDY0NjFkY2I0YTUwZjQuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvdGVzdF9ydW5uZXIyLnB5CisrKyAvZGV2L251bGwKQEAg
LTEsMjMwICswLDAgQEAKLSMhL3Vzci9iaW4vZW52IHB5dGhvbgotIyBDb3B5cmlnaHQgKEMpIDIw
MTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMg
Y29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0
aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRv
cnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJv
bQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENP
UFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0K
LSIiIgotVGhlIFRlc3RSdW5uZXIyIHBhY2thZ2UgaXMgYW4gYWx0ZXJuYXRlIGltcGxlbWVudGF0
aW9uIG9mIHRoZSBUZXN0UnVubmVyCi1jbGFzcyB0aGF0IHVzZXMgdGhlIG1hbmFnZXJfd29ya2Vy
X2Jyb2tlciBtb2R1bGUgdG8gc2VuZCBzZXRzIG9mIHRlc3RzIHRvCi13b3JrZXJzIGFuZCByZWNl
aXZlIHRoZWlyIGNvbXBsZXRpb24gbWVzc2FnZXMgYWNjb3JkaW5nbHkuCi0iIiIKLQotaW1wb3J0
IGxvZ2dpbmcKLWltcG9ydCB0aW1lCi0KLWZyb20gd2Via2l0cHkudG9vbCBpbXBvcnQgZ3JhbW1h
cgotCi1mcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5sYXlvdXRfcGFja2FnZSBpbXBvcnQgbWFu
YWdlcl93b3JrZXJfYnJva2VyCi1mcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5sYXlvdXRfcGFj
a2FnZSBpbXBvcnQgdGVzdF9ydW5uZXIKLWZyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLmxheW91
dF9wYWNrYWdlIGltcG9ydCB3b3JrZXIKLQotCi1fbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoX19u
YW1lX18pCi0KLQotY2xhc3MgX1dvcmtlclN0YXRlKG9iamVjdCk6Ci0gICAgIiIiQSBjbGFzcyBm
b3IgdGhlIFRlc3RSdW5uZXIvbWFuYWdlciB0byB1c2UgdG8gdHJhY2sgdGhlIGN1cnJlbnQgc3Rh
dGUKLSAgICBvZiB0aGUgd29ya2Vycy4iIiIKLSAgICBkZWYgX19pbml0X18oc2VsZiwgbnVtYmVy
LCB3b3JrZXJfY29ubmVjdGlvbik6Ci0gICAgICAgIHNlbGYud29ya2VyX2Nvbm5lY3Rpb24gPSB3
b3JrZXJfY29ubmVjdGlvbgotICAgICAgICBzZWxmLm51bWJlciA9IG51bWJlcgotICAgICAgICBz
ZWxmLmRvbmUgPSBGYWxzZQotICAgICAgICBzZWxmLmN1cnJlbnRfdGVzdF9uYW1lID0gTm9uZQot
ICAgICAgICBzZWxmLm5leHRfdGltZW91dCA9IE5vbmUKLSAgICAgICAgc2VsZi53ZWRnZWQgPSBG
YWxzZQotICAgICAgICBzZWxmLnN0YXRzID0ge30KLSAgICAgICAgc2VsZi5zdGF0c1snbmFtZSdd
ID0gd29ya2VyX2Nvbm5lY3Rpb24ubmFtZQotICAgICAgICBzZWxmLnN0YXRzWydudW1fdGVzdHMn
XSA9IDAKLSAgICAgICAgc2VsZi5zdGF0c1sndG90YWxfdGltZSddID0gMAotCi0gICAgZGVmIF9f
cmVwcl9fKHNlbGYpOgotICAgICAgICByZXR1cm4gIl9Xb3JrZXJTdGF0ZSgiICsgc3RyKHNlbGYu
X19kaWN0X18pICsgIikiCi0KLQotY2xhc3MgVGVzdFJ1bm5lcjIodGVzdF9ydW5uZXIuVGVzdFJ1
bm5lcik6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHBvcnQsIG9wdGlvbnMsIHByaW50ZXIpOgot
ICAgICAgICB0ZXN0X3J1bm5lci5UZXN0UnVubmVyLl9faW5pdF9fKHNlbGYsIHBvcnQsIG9wdGlv
bnMsIHByaW50ZXIpCi0gICAgICAgIHNlbGYuX2FsbF9yZXN1bHRzID0gW10KLSAgICAgICAgc2Vs
Zi5fZ3JvdXBfc3RhdHMgPSB7fQotICAgICAgICBzZWxmLl9jdXJyZW50X3Jlc3VsdF9zdW1tYXJ5
ID0gTm9uZQotCi0gICAgICAgICMgVGhpcyBtYXBzIHdvcmtlciBuYW1lcyB0byB0aGUgc3RhdGUg
d2UgYXJlIHRyYWNraW5nIGZvciBlYWNoIG9mIHRoZW0uCi0gICAgICAgIHNlbGYuX3dvcmtlcl9z
dGF0ZXMgPSB7fQotCi0gICAgZGVmIGlzX2RvbmUoc2VsZik6Ci0gICAgICAgIHdvcmtlcl9zdGF0
ZXMgPSBzZWxmLl93b3JrZXJfc3RhdGVzLnZhbHVlcygpCi0gICAgICAgIHJldHVybiB3b3JrZXJf
c3RhdGVzIGFuZCBhbGwoc2VsZi5fd29ya2VyX2lzX2RvbmUod29ya2VyX3N0YXRlKSBmb3Igd29y
a2VyX3N0YXRlIGluIHdvcmtlcl9zdGF0ZXMpCi0KLSAgICBkZWYgX3dvcmtlcl9pc19kb25lKHNl
bGYsIHdvcmtlcl9zdGF0ZSk6Ci0gICAgICAgIHQgPSB0aW1lLnRpbWUoKQotICAgICAgICBpZiB3
b3JrZXJfc3RhdGUuZG9uZSBvciB3b3JrZXJfc3RhdGUud2VkZ2VkOgotICAgICAgICAgICAgcmV0
dXJuIFRydWUKLQotICAgICAgICBuZXh0X3RpbWVvdXQgPSB3b3JrZXJfc3RhdGUubmV4dF90aW1l
b3V0Ci0gICAgICAgIFdFREdFX1BBRERJTkcgPSA0MC4wCi0gICAgICAgIGlmIG5leHRfdGltZW91
dCBhbmQgdCA+IG5leHRfdGltZW91dCArIFdFREdFX1BBRERJTkc6Ci0gICAgICAgICAgICBfbG9n
LmVycm9yKCcnKQotICAgICAgICAgICAgd29ya2VyX3N0YXRlLndvcmtlcl9jb25uZWN0aW9uLmxv
Z193ZWRnZWRfd29ya2VyKHdvcmtlcl9zdGF0ZS5jdXJyZW50X3Rlc3RfbmFtZSkKLSAgICAgICAg
ICAgIF9sb2cuZXJyb3IoJycpCi0gICAgICAgICAgICB3b3JrZXJfc3RhdGUud2VkZ2VkID0gVHJ1
ZQotICAgICAgICAgICAgcmV0dXJuIFRydWUKLSAgICAgICAgcmV0dXJuIEZhbHNlCi0KLSAgICBk
ZWYgbmFtZShzZWxmKToKLSAgICAgICAgcmV0dXJuICdUZXN0UnVubmVyMicKLQotICAgIGRlZiBf
cnVuX3Rlc3RzKHNlbGYsIGZpbGVfbGlzdCwgcmVzdWx0X3N1bW1hcnkpOgotICAgICAgICAiIiJS
dW5zIHRoZSB0ZXN0cyBpbiB0aGUgZmlsZV9saXN0LgotCi0gICAgICAgIFJldHVybjogQSB0dXBs
ZSAoaW50ZXJydXB0ZWQsIGtleWJvYXJkX2ludGVycnVwdGVkLCB0aHJlYWRfdGltaW5ncywKLSAg
ICAgICAgICAgIHRlc3RfdGltaW5ncywgaW5kaXZpZHVhbF90ZXN0X3RpbWluZ3MpCi0gICAgICAg
ICAgICBpbnRlcnJ1cHRlZCBpcyB3aGV0aGVyIHRoZSBydW4gd2FzIGludGVycnVwdGVkCi0gICAg
ICAgICAgICBrZXlib2FyZF9pbnRlcnJ1cHRlZCBpcyB3aGV0aGVyIHNvbWVvbmUgdHlwZWQgQ3Ry
bF5DCi0gICAgICAgICAgICB0aHJlYWRfdGltaW5ncyBpcyBhIGxpc3Qgb2YgZGljdHMgd2l0aCB0
aGUgdG90YWwgcnVudGltZQotICAgICAgICAgICAgICBvZiBlYWNoIHRocmVhZCB3aXRoICduYW1l
JywgJ251bV90ZXN0cycsICd0b3RhbF90aW1lJyBwcm9wZXJ0aWVzCi0gICAgICAgICAgICB0ZXN0
X3RpbWluZ3MgaXMgYSBsaXN0IG9mIHRpbWluZ3MgZm9yIGVhY2ggc2hhcmRlZCBzdWJkaXJlY3Rv
cnkKLSAgICAgICAgICAgICAgb2YgdGhlIGZvcm0gW3RpbWUsIGRpcmVjdG9yeV9uYW1lLCBudW1f
dGVzdHNdCi0gICAgICAgICAgICBpbmRpdmlkdWFsX3Rlc3RfdGltaW5ncyBpcyBhIGxpc3Qgb2Yg
cnVuIHRpbWVzIGZvciBlYWNoIHRlc3QKLSAgICAgICAgICAgICAgaW4gdGhlIGZvcm0ge2ZpbGVu
YW1lOmZpbGVuYW1lLCB0ZXN0X3J1bl90aW1lOnRlc3RfcnVuX3RpbWV9Ci0gICAgICAgICAgICBy
ZXN1bHRfc3VtbWFyeTogc3VtbWFyeSBvYmplY3QgdG8gcG9wdWxhdGUgd2l0aCB0aGUgcmVzdWx0
cwotICAgICAgICAiIiIKLSAgICAgICAgc2VsZi5fY3VycmVudF9yZXN1bHRfc3VtbWFyeSA9IHJl
c3VsdF9zdW1tYXJ5Ci0gICAgICAgIHNlbGYuX2FsbF9yZXN1bHRzID0gW10KLSAgICAgICAgc2Vs
Zi5fZ3JvdXBfc3RhdHMgPSB7fQotICAgICAgICBzZWxmLl93b3JrZXJfc3RhdGVzID0ge30KLQot
ICAgICAgICBudW1fd29ya2VycyA9IHNlbGYuX251bV93b3JrZXJzKCkKLSAgICAgICAga2V5Ym9h
cmRfaW50ZXJydXB0ZWQgPSBGYWxzZQotICAgICAgICBpbnRlcnJ1cHRlZCA9IEZhbHNlCi0gICAg
ICAgIHRocmVhZF90aW1pbmdzID0gW10KLQotICAgICAgICBzZWxmLl9wcmludGVyLnByaW50X3Vw
ZGF0ZSgnU2hhcmRpbmcgdGVzdHMgLi4uJykKLSAgICAgICAgdGVzdF9saXN0cyA9IHNlbGYuX3No
YXJkX3Rlc3RzKGZpbGVfbGlzdCwKLSAgICAgICAgICAgIG51bV93b3JrZXJzID4gMSBhbmQgbm90
IHNlbGYuX29wdGlvbnMuZXhwZXJpbWVudGFsX2Z1bGx5X3BhcmFsbGVsKQotICAgICAgICBfbG9n
LmRlYnVnKCJVc2luZyAlZCBzaGFyZHMiICUgbGVuKHRlc3RfbGlzdHMpKQotCi0gICAgICAgIG1h
bmFnZXJfY29ubmVjdGlvbiA9IG1hbmFnZXJfd29ya2VyX2Jyb2tlci5nZXQoc2VsZi5fcG9ydCwg
c2VsZi5fb3B0aW9ucywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBzZWxmLCB3b3JrZXIuV29ya2VyKQotCi0gICAgICAgIGlmIHNlbGYuX29w
dGlvbnMuZHJ5X3J1bjoKLSAgICAgICAgICAgIHJldHVybiAoa2V5Ym9hcmRfaW50ZXJydXB0ZWQs
IGludGVycnVwdGVkLCB0aHJlYWRfdGltaW5ncywKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5f
Z3JvdXBfc3RhdHMsIHNlbGYuX2FsbF9yZXN1bHRzKQotCi0gICAgICAgIHNlbGYuX3ByaW50ZXIu
cHJpbnRfdXBkYXRlKCdTdGFydGluZyAlcyAuLi4nICUKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZ3JhbW1hci5wbHVyYWxpemUoJ3dvcmtlcicsIG51bV93b3JrZXJzKSkKLSAg
ICAgICAgZm9yIHdvcmtlcl9udW1iZXIgaW4geHJhbmdlKG51bV93b3JrZXJzKToKLSAgICAgICAg
ICAgIHdvcmtlcl9jb25uZWN0aW9uID0gbWFuYWdlcl9jb25uZWN0aW9uLnN0YXJ0X3dvcmtlcih3
b3JrZXJfbnVtYmVyKQotICAgICAgICAgICAgd29ya2VyX3N0YXRlID0gX1dvcmtlclN0YXRlKHdv
cmtlcl9udW1iZXIsIHdvcmtlcl9jb25uZWN0aW9uKQotICAgICAgICAgICAgc2VsZi5fd29ya2Vy
X3N0YXRlc1t3b3JrZXJfY29ubmVjdGlvbi5uYW1lXSA9IHdvcmtlcl9zdGF0ZQotCi0gICAgICAg
ICAgICAjIEZJWE1FOiBJZiB3ZSBzdGFydCB3b3JrZXJzIHVwIHRvbyBxdWlja2x5LCBEdW1wUmVu
ZGVyVHJlZSBhcHBlYXJzCi0gICAgICAgICAgICAjIHRvIHRocmFzaCBvbiBzb21ldGhpbmcgYW5k
IHRpbWUgb3V0IGl0cyBmaXJzdCBmZXcgdGVzdHMuIFVudGlsCi0gICAgICAgICAgICAjIHdlIGNh
biBmaWd1cmUgb3V0IHdoYXQncyBnb2luZyBvbiwgc2xlZXAgYSBiaXQgaW4gYmV0d2VlbgotICAg
ICAgICAgICAgIyB3b3JrZXJzLgotICAgICAgICAgICAgdGltZS5zbGVlcCgwLjEpCi0KLSAgICAg
ICAgc2VsZi5fcHJpbnRlci5wcmludF91cGRhdGUoIlN0YXJ0aW5nIHRlc3RpbmcgLi4uIikKLSAg
ICAgICAgZm9yIHRlc3RfbGlzdCBpbiB0ZXN0X2xpc3RzOgotICAgICAgICAgICAgbWFuYWdlcl9j
b25uZWN0aW9uLnBvc3RfbWVzc2FnZSgndGVzdF9saXN0JywgdGVzdF9saXN0WzBdLCB0ZXN0X2xp
c3RbMV0pCi0KLSAgICAgICAgIyBXZSBwb3N0IG9uZSAnc3RvcCcgbWVzc2FnZSBmb3IgZWFjaCB3
b3JrZXIuIEJlY2F1c2UgdGhlIHN0b3AgbWVzc2FnZQotICAgICAgICAjIGFyZSBzZW50IGFmdGVy
IGFsbCBvZiB0aGUgdGVzdHMsIGFuZCBiZWNhdXNlIGVhY2ggd29ya2VyIHdpbGwgc3RvcAotICAg
ICAgICAjIHJlYWRpbmcgbWVzc3NhZ2VzIGFmdGVyIHJlY2VpdmluZyBhIHN0b3AsIHdlIGNhbiBi
ZSBzdXJlIGVhY2gKLSAgICAgICAgIyB3b3JrZXIgd2lsbCBnZXQgYSBzdG9wIG1lc3NhZ2UgYW5k
IGhlbmNlIHRoZXkgd2lsbCBhbGwgc2h1dCBkb3duLgotICAgICAgICBmb3IgaSBpbiB4cmFuZ2Uo
bnVtX3dvcmtlcnMpOgotICAgICAgICAgICAgbWFuYWdlcl9jb25uZWN0aW9uLnBvc3RfbWVzc2Fn
ZSgnc3RvcCcpCi0KLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgd2hpbGUgbm90IHNlbGYuaXNf
ZG9uZSgpOgotICAgICAgICAgICAgICAgICMgV2UgbG9vcCB3aXRoIGEgdGltZW91dCBpbiBvcmRl
ciB0byBiZSBhYmxlIHRvIGRldGVjdCB3ZWRnZWQgdGhyZWFkcy4KLSAgICAgICAgICAgICAgICBt
YW5hZ2VyX2Nvbm5lY3Rpb24ucnVuX21lc3NhZ2VfbG9vcChkZWxheV9zZWNzPTEuMCkKLQotICAg
ICAgICAgICAgaWYgYW55KHdvcmtlcl9zdGF0ZS53ZWRnZWQgZm9yIHdvcmtlcl9zdGF0ZSBpbiBz
ZWxmLl93b3JrZXJfc3RhdGVzLnZhbHVlcygpKToKLSAgICAgICAgICAgICAgICBfbG9nLmVycm9y
KCcnKQotICAgICAgICAgICAgICAgIF9sb2cuZXJyb3IoJ1JlbWFpbmluZyB3b3JrZXJzIGFyZSB3
ZWRnZWQsIGJhaWxpbmcgb3V0LicpCi0gICAgICAgICAgICAgICAgX2xvZy5lcnJvcignJykKLSAg
ICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgX2xvZy5kZWJ1ZygnTm8gd2VkZ2VkIHRo
cmVhZHMnKQotCi0gICAgICAgICAgICAjIE1ha2Ugc3VyZSBhbGwgb2YgdGhlIHdvcmtlcnMgaGF2
ZSBzaHV0IGRvd24gKGlmIHBvc3NpYmxlKS4KLSAgICAgICAgICAgIGZvciB3b3JrZXJfc3RhdGUg
aW4gc2VsZi5fd29ya2VyX3N0YXRlcy52YWx1ZXMoKToKLSAgICAgICAgICAgICAgICBpZiBub3Qg
d29ya2VyX3N0YXRlLndlZGdlZCBhbmQgd29ya2VyX3N0YXRlLndvcmtlcl9jb25uZWN0aW9uLmlz
X2FsaXZlKCk6Ci0gICAgICAgICAgICAgICAgICAgIHdvcmtlcl9zdGF0ZS53b3JrZXJfY29ubmVj
dGlvbi5qb2luKDAuNSkKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IG5vdCB3b3JrZXJfc3Rh
dGUud29ya2VyX2Nvbm5lY3Rpb24uaXNfYWxpdmUoKQotCi0gICAgICAgIGV4Y2VwdCBLZXlib2Fy
ZEludGVycnVwdDoKLSAgICAgICAgICAgIF9sb2cuaW5mbygiSW50ZXJydXB0ZWQsIGV4aXRpbmci
KQotICAgICAgICAgICAgc2VsZi5jYW5jZWxfd29ya2VycygpCi0gICAgICAgICAgICBrZXlib2Fy
ZF9pbnRlcnJ1cHRlZCA9IFRydWUKLSAgICAgICAgZXhjZXB0IHRlc3RfcnVubmVyLlRlc3RSdW5J
bnRlcnJ1cHRlZEV4Y2VwdGlvbiwgZToKLSAgICAgICAgICAgIF9sb2cuaW5mbyhlLnJlYXNvbikK
LSAgICAgICAgICAgIHNlbGYuY2FuY2VsX3dvcmtlcnMoKQotICAgICAgICAgICAgaW50ZXJydXB0
ZWQgPSBUcnVlCi0gICAgICAgIGV4Y2VwdDoKLSAgICAgICAgICAgICMgVW5leHBlY3RlZCBleGNl
cHRpb247IGRvbid0IHRyeSB0byBjbGVhbiB1cCB3b3JrZXJzLgotICAgICAgICAgICAgX2xvZy5p
bmZvKCJFeGNlcHRpb24gcmFpc2VkLCBleGl0aW5nIikKLSAgICAgICAgICAgIHJhaXNlCi0KLSAg
ICAgICAgdGhyZWFkX3RpbWluZ3MgPSBbd29ya2VyX3N0YXRlLnN0YXRzIGZvciB3b3JrZXJfc3Rh
dGUgaW4gc2VsZi5fd29ya2VyX3N0YXRlcy52YWx1ZXMoKV0KLQotICAgICAgICAjIEZJWE1FOiBz
aG91bGQgdGhpcyBiZSBhIGNsYXNzIGluc3RlYWQgb2YgYSB0dXBsZT8KLSAgICAgICAgcmV0dXJu
IChpbnRlcnJ1cHRlZCwga2V5Ym9hcmRfaW50ZXJydXB0ZWQsIHRocmVhZF90aW1pbmdzLAotICAg
ICAgICAgICAgICAgIHNlbGYuX2dyb3VwX3N0YXRzLCBzZWxmLl9hbGxfcmVzdWx0cykKLQotICAg
IGRlZiBjYW5jZWxfd29ya2VycyhzZWxmKToKLSAgICAgICAgZm9yIHdvcmtlcl9zdGF0ZSBpbiBz
ZWxmLl93b3JrZXJfc3RhdGVzLnZhbHVlcygpOgotICAgICAgICAgICAgd29ya2VyX3N0YXRlLndv
cmtlcl9jb25uZWN0aW9uLmNhbmNlbCgpCi0KLSAgICBkZWYgaGFuZGxlX3N0YXJ0ZWRfdGVzdChz
ZWxmLCBzb3VyY2UsIHRlc3RfaW5mbywgaGFuZ190aW1lb3V0KToKLSAgICAgICAgd29ya2VyX3N0
YXRlID0gc2VsZi5fd29ya2VyX3N0YXRlc1tzb3VyY2VdCi0gICAgICAgIHdvcmtlcl9zdGF0ZS5j
dXJyZW50X3Rlc3RfbmFtZSA9IHNlbGYuX3BvcnQucmVsYXRpdmVfdGVzdF9maWxlbmFtZSh0ZXN0
X2luZm8uZmlsZW5hbWUpCi0gICAgICAgIHdvcmtlcl9zdGF0ZS5uZXh0X3RpbWVvdXQgPSB0aW1l
LnRpbWUoKSArIGhhbmdfdGltZW91dAotCi0gICAgZGVmIGhhbmRsZV9kb25lKHNlbGYsIHNvdXJj
ZSk6Ci0gICAgICAgIHdvcmtlcl9zdGF0ZSA9IHNlbGYuX3dvcmtlcl9zdGF0ZXNbc291cmNlXQot
ICAgICAgICB3b3JrZXJfc3RhdGUuZG9uZSA9IFRydWUKLQotICAgIGRlZiBoYW5kbGVfZXhjZXB0
aW9uKHNlbGYsIHNvdXJjZSwgZXhjZXB0aW9uX2luZm8pOgotICAgICAgICBleGNlcHRpb25fdHlw
ZSwgZXhjZXB0aW9uX3ZhbHVlLCBleGNlcHRpb25fdHJhY2ViYWNrID0gZXhjZXB0aW9uX2luZm8K
LSAgICAgICAgcmFpc2UgZXhjZXB0aW9uX3R5cGUsIGV4Y2VwdGlvbl92YWx1ZSwgZXhjZXB0aW9u
X3RyYWNlYmFjawotCi0gICAgZGVmIGhhbmRsZV9maW5pc2hlZF9saXN0KHNlbGYsIHNvdXJjZSwg
bGlzdF9uYW1lLCBudW1fdGVzdHMsIGVsYXBzZWRfdGltZSk6Ci0gICAgICAgIHNlbGYuX2dyb3Vw
X3N0YXRzW2xpc3RfbmFtZV0gPSAobnVtX3Rlc3RzLCBlbGFwc2VkX3RpbWUpCi0KLSAgICBkZWYg
aGFuZGxlX2ZpbmlzaGVkX3Rlc3Qoc2VsZiwgc291cmNlLCByZXN1bHQsIGVsYXBzZWRfdGltZSk6
Ci0gICAgICAgIHdvcmtlcl9zdGF0ZSA9IHNlbGYuX3dvcmtlcl9zdGF0ZXNbc291cmNlXQotICAg
ICAgICB3b3JrZXJfc3RhdGUubmV4dF90aW1lb3V0ID0gTm9uZQotICAgICAgICB3b3JrZXJfc3Rh
dGUuY3VycmVudF90ZXN0X25hbWUgPSBOb25lCi0gICAgICAgIHdvcmtlcl9zdGF0ZS5zdGF0c1sn
dG90YWxfdGltZSddICs9IGVsYXBzZWRfdGltZQotICAgICAgICB3b3JrZXJfc3RhdGUuc3RhdHNb
J251bV90ZXN0cyddICs9IDEKLQotICAgICAgICBpZiB3b3JrZXJfc3RhdGUud2VkZ2VkOgotICAg
ICAgICAgICAgIyBUaGlzIHNob3VsZG4ndCBoYXBwZW4gaWYgd2UgaGF2ZSBvdXIgdGltZW91dHMg
dHVuZWQgcHJvcGVybHkuCi0gICAgICAgICAgICBfbG9nLmVycm9yKCIlcyB1bndlZGdlZCIsIHNv
dXJjZSkKLQotICAgICAgICBzZWxmLl9hbGxfcmVzdWx0cy5hcHBlbmQocmVzdWx0KQotICAgICAg
ICBzZWxmLl91cGRhdGVfc3VtbWFyeV93aXRoX3Jlc3VsdChzZWxmLl9jdXJyZW50X3Jlc3VsdF9z
dW1tYXJ5LCByZXN1bHQpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0cy5weQppbmRleCA5NTRlMTA2OWFjNGU0OTA1ZWExNjdj
N2EzMTcxMjk4NWEwMWM2NDI3Li43MWZmNGQ4MDhlM2UxMDViZGMxM2NlZTBjNTU0ZjJhZWUyMDIy
MjY2IDEwMDc1NQotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5f
d2Via2l0X3Rlc3RzLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L3J1bl93ZWJraXRfdGVzdHMucHkKQEAgLTQwLDcgKzQwLDYgQEAgaW1wb3J0IHN5cwogZnJvbSBs
YXlvdXRfcGFja2FnZSBpbXBvcnQganNvbl9yZXN1bHRzX2dlbmVyYXRvcgogZnJvbSBsYXlvdXRf
cGFja2FnZSBpbXBvcnQgcHJpbnRpbmcKIGZyb20gbGF5b3V0X3BhY2thZ2UgaW1wb3J0IHRlc3Rf
cnVubmVyCi1mcm9tIGxheW91dF9wYWNrYWdlIGltcG9ydCB0ZXN0X3J1bm5lcjIKIAogZnJvbSB3
ZWJraXRweS5jb21tb24uc3lzdGVtIGltcG9ydCB1c2VyCiBmcm9tIHdlYmtpdHB5LnRoaXJkcGFy
dHkgaW1wb3J0IHNpbXBsZWpzb24KQEAgLTg5LDcgKzg4LDcgQEAgZGVmIHJ1bihwb3J0LCBvcHRp
b25zLCBhcmdzLCByZWd1bGFyX291dHB1dD1zeXMuc3RkZXJyLAogICAgICMgaW4gYSB0cnkvZmlu
YWxseSB0byBlbnN1cmUgdGhhdCB3ZSBjbGVhbiB1cCB0aGUgbG9nZ2luZyBjb25maWd1cmF0aW9u
LgogICAgIG51bV91bmV4cGVjdGVkX3Jlc3VsdHMgPSAtMQogICAgIHRyeToKLSAgICAgICAgcnVu
bmVyID0gdGVzdF9ydW5uZXIyLlRlc3RSdW5uZXIyKHBvcnQsIG9wdGlvbnMsIHByaW50ZXIpCisg
ICAgICAgIHJ1bm5lciA9IHRlc3RfcnVubmVyLlRlc3RSdW5uZXIocG9ydCwgb3B0aW9ucywgcHJp
bnRlcikKICAgICAgICAgcnVubmVyLl9wcmludF9jb25maWcoKQogCiAgICAgICAgIHByaW50ZXIu
cHJpbnRfdXBkYXRlKCJDb2xsZWN0aW5nIHRlc3RzIC4uLiIpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>90649</attachid>
            <date>2011-04-21 18:55:05 -0700</date>
            <delta_ts>2011-04-21 18:55:05 -0700</delta_ts>
            <desc>rebase to head</desc>
            <filename>bug-58753-20110421185503.patch</filename>
            <type>text/plain</type>
            <size>22664</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODQ1ODIKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCA0OWQ2ODJiNzFjMjRjN2EwOGZhOTcxZmU1YjA0OTY4ZWIx
YWQ1ZWY3Li45NDBiMmIyNzQwMjY4OTg5MmEzMDEzYzBkNzBkODg4MzE2ZjU5MjYzIDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYg
QEAKKzIwMTEtMDQtMTcgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgbmV3LXJ1bi13ZWJr
aXQtdGVzdHM6IG9ic29sZXRlIG9sZCB0aHJlYWRpbmcgY29kZSwgcGFydCAyCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01ODc1MworCisgICAgICAgIFRo
aXMgbWVyZ2VzIHRoZSB0ZXN0X3J1bm5lcjIgY29kZSBiYWNrIGludG8gdGVzdF9ydW5uZXIgc2lu
Y2UKKyAgICAgICAgdGhlcmUncyBvbmx5IGEgc2luZ2xlIHR5cGUgb2YgdGVzdCBydW5uZXIgbm93
LgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2th
Z2UvdGVzdF9ydW5uZXIucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvbGF5b3V0X3BhY2thZ2UvdGVzdF9ydW5uZXIyLnB5OiBSZW1vdmVkLgorICAgICAgICAqIFNj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHMucHk6CisKKzIwMTEt
MDQtMTcgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgbmV3LXJ1bi13ZWJraXQtdGVzdHM6
IG9ic29sZXRlIG9sZCB0aHJlYWRpbmcgY29kZSwgcGFydCAxCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01ODc1MgorCisgICAgICAgIFRoaXMgcGF0Y2gg
cmVtb3ZlcyBzdXBwb3J0IGZvciB0aGUgJ29sZC1pbmxpbmUnIGFuZAorICAgICAgICAnb2xkLXRo
cmVhZHMnIHdvcmtlciBtb2RlbHMsIGFuZCBkZWxldGVzIHRoZSBjb3JyZXNwb25kaW5nIGNvZGUu
CisgICAgICAgIE5vdyB0aGF0IHRoZSBuZXcgY29kZSBpcyBzdGFibGUsIHRoaXMgc3R1ZmYgaXMg
bm8gbG9uZ2VyCisgICAgICAgIG5lY2Vzc2FyeS4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL2R1bXBfcmVuZGVyX3RyZWVfdGhyZWFkLnB5
OiBSZW1vdmVkLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91
dF9wYWNrYWdlL21lc3NhZ2VfYnJva2VyLnB5OiBSZW1vdmVkLgorICAgICAgICAqIFNjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL21lc3NhZ2VfYnJva2VyX3VuaXR0
ZXN0LnB5OiBSZW1vdmVkLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L2xheW91dF9wYWNrYWdlL3Rlc3RfcnVubmVyLnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHMucHk6CisgICAgICAgICogU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0c191bml0dGVzdC5weToKKwogMjAx
MS0wNC0yMSAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IEVyaWMgU2VpZGVsLgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvdGVzdF9ydW5uZXIucHkgYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS90ZXN0X3J1bm5lci5weQppbmRl
eCBiN2EzZTFiN2Y5NDQ5NDg3MWQ2YzRhYzhmZTY1OGEwZGQxY2YwZDZlLi5hMjZkYjYwNTUxNTYy
ZTAyOWM3NWUyOWNhODhhZDVjN2IxYTU2YTZlIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS90ZXN0X3J1bm5lci5weQorKysgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS90ZXN0X3J1
bm5lci5weQpAQCAtNDgsMTggKzQ4LDIxIEBAIGltcG9ydCB0aW1lCiAKIGZyb20gd2Via2l0cHku
bGF5b3V0X3Rlc3RzLmxheW91dF9wYWNrYWdlIGltcG9ydCBqc29uX2xheW91dF9yZXN1bHRzX2dl
bmVyYXRvcgogZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMubGF5b3V0X3BhY2thZ2UgaW1wb3J0
IGpzb25fcmVzdWx0c19nZW5lcmF0b3IKK2Zyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLmxheW91
dF9wYWNrYWdlIGltcG9ydCBtYW5hZ2VyX3dvcmtlcl9icm9rZXIKIGZyb20gd2Via2l0cHkubGF5
b3V0X3Rlc3RzLmxheW91dF9wYWNrYWdlIGltcG9ydCBwcmludGluZwogZnJvbSB3ZWJraXRweS5s
YXlvdXRfdGVzdHMubGF5b3V0X3BhY2thZ2UgaW1wb3J0IHRlc3RfZXhwZWN0YXRpb25zCiBmcm9t
IHdlYmtpdHB5LmxheW91dF90ZXN0cy5sYXlvdXRfcGFja2FnZSBpbXBvcnQgdGVzdF9mYWlsdXJl
cwogZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMubGF5b3V0X3BhY2thZ2UgaW1wb3J0IHRlc3Rf
cmVzdWx0cwogZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMubGF5b3V0X3BhY2thZ2UgaW1wb3J0
IHRlc3RfcmVzdWx0c191cGxvYWRlcgorZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMubGF5b3V0
X3BhY2thZ2UgaW1wb3J0IHdvcmtlcgorCiBmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5sYXlv
dXRfcGFja2FnZS5yZXN1bHRfc3VtbWFyeSBpbXBvcnQgUmVzdWx0U3VtbWFyeQogZnJvbSB3ZWJr
aXRweS5sYXlvdXRfdGVzdHMubGF5b3V0X3BhY2thZ2UudGVzdF9pbnB1dCBpbXBvcnQgVGVzdElu
cHV0CiAKIGZyb20gd2Via2l0cHkudGhpcmRwYXJ0eSBpbXBvcnQgc2ltcGxlanNvbgogZnJvbSB3
ZWJraXRweS50b29sIGltcG9ydCBncmFtbWFyCiAKLV9sb2cgPSBsb2dnaW5nLmdldExvZ2dlcigi
d2Via2l0cHkubGF5b3V0X3Rlc3RzLnJ1bl93ZWJraXRfdGVzdHMiKQorX2xvZyA9IGxvZ2dpbmcu
Z2V0TG9nZ2VyKF9fbmFtZV9fKQogCiAjIEJ1aWxkZXIgYmFzZSBVUkwgd2hlcmUgd2UgaGF2ZSB0
aGUgYXJjaGl2ZWQgdGVzdCByZXN1bHRzLgogQlVJTERFUl9CQVNFX1VSTCA9ICJodHRwOi8vYnVp
bGQuY2hyb21pdW0ub3JnL2J1aWxkYm90L2xheW91dF90ZXN0X3Jlc3VsdHMvIgpAQCAtMjM0LDYg
KzIzNywxNCBAQCBjbGFzcyBUZXN0UnVubmVyOgogICAgICAgICBzZWxmLl9yZXRyeWluZyA9IEZh
bHNlCiAgICAgICAgIHNlbGYuX3Jlc3VsdHNfZGlyZWN0b3J5ID0gc2VsZi5fcG9ydC5yZXN1bHRz
X2RpcmVjdG9yeSgpCiAKKyAgICAgICAgc2VsZi5fYWxsX3Jlc3VsdHMgPSBbXQorICAgICAgICBz
ZWxmLl9ncm91cF9zdGF0cyA9IHt9CisgICAgICAgIHNlbGYuX2N1cnJlbnRfcmVzdWx0X3N1bW1h
cnkgPSBOb25lCisKKyAgICAgICAgIyBUaGlzIG1hcHMgd29ya2VyIG5hbWVzIHRvIHRoZSBzdGF0
ZSB3ZSBhcmUgdHJhY2tpbmcgZm9yIGVhY2ggb2YgdGhlbS4KKyAgICAgICAgc2VsZi5fd29ya2Vy
X3N0YXRlcyA9IHt9CisKKwogICAgIGRlZiBjb2xsZWN0X3Rlc3RzKHNlbGYsIGFyZ3MsIGxhc3Rf
dW5leHBlY3RlZF9yZXN1bHRzKToKICAgICAgICAgIiIiRmluZCBhbGwgdGhlIGZpbGVzIHRvIHRl
c3QuCiAKQEAgLTU2Nyw3ICs1NzgsODcgQEAgY2xhc3MgVGVzdFJ1bm5lcjoKICAgICAgICAgICAg
ICAgaW4gdGhlIGZvcm0ge2ZpbGVuYW1lOmZpbGVuYW1lLCB0ZXN0X3J1bl90aW1lOnRlc3RfcnVu
X3RpbWV9CiAgICAgICAgICAgICByZXN1bHRfc3VtbWFyeTogc3VtbWFyeSBvYmplY3QgdG8gcG9w
dWxhdGUgd2l0aCB0aGUgcmVzdWx0cwogICAgICAgICAiIiIKLSAgICAgICAgcmFpc2UgTm90SW1w
bGVtZW50ZWRFcnJvcigpCisgICAgICAgIHNlbGYuX2N1cnJlbnRfcmVzdWx0X3N1bW1hcnkgPSBy
ZXN1bHRfc3VtbWFyeQorICAgICAgICBzZWxmLl9hbGxfcmVzdWx0cyA9IFtdCisgICAgICAgIHNl
bGYuX2dyb3VwX3N0YXRzID0ge30KKyAgICAgICAgc2VsZi5fd29ya2VyX3N0YXRlcyA9IHt9CisK
KyAgICAgICAga2V5Ym9hcmRfaW50ZXJydXB0ZWQgPSBGYWxzZQorICAgICAgICBpbnRlcnJ1cHRl
ZCA9IEZhbHNlCisgICAgICAgIHRocmVhZF90aW1pbmdzID0gW10KKworICAgICAgICBzZWxmLl9w
cmludGVyLnByaW50X3VwZGF0ZSgnU2hhcmRpbmcgdGVzdHMgLi4uJykKKyAgICAgICAgdGVzdF9s
aXN0cyA9IHNlbGYuX3NoYXJkX3Rlc3RzKGZpbGVfbGlzdCwKKyAgICAgICAgICAgIGludChzZWxm
Ll9vcHRpb25zLmNoaWxkX3Byb2Nlc3NlcykgPiAxIGFuZCBub3Qgc2VsZi5fb3B0aW9ucy5leHBl
cmltZW50YWxfZnVsbHlfcGFyYWxsZWwpCisKKyAgICAgICAgbnVtX3dvcmtlcnMgPSBzZWxmLl9u
dW1fd29ya2VycyhsZW4odGVzdF9saXN0cykpCisgICAgICAgIG1hbmFnZXJfY29ubmVjdGlvbiA9
IG1hbmFnZXJfd29ya2VyX2Jyb2tlci5nZXQoc2VsZi5fcG9ydCwgc2VsZi5fb3B0aW9ucywKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxm
LCB3b3JrZXIuV29ya2VyKQorCisgICAgICAgIGlmIHNlbGYuX29wdGlvbnMuZHJ5X3J1bjoKKyAg
ICAgICAgICAgIHJldHVybiAoa2V5Ym9hcmRfaW50ZXJydXB0ZWQsIGludGVycnVwdGVkLCB0aHJl
YWRfdGltaW5ncywKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5fZ3JvdXBfc3RhdHMsIHNlbGYu
X2FsbF9yZXN1bHRzKQorCisgICAgICAgIHNlbGYuX3ByaW50ZXIucHJpbnRfdXBkYXRlKCdTdGFy
dGluZyAlcyAuLi4nICUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JhbW1h
ci5wbHVyYWxpemUoJ3dvcmtlcicsIG51bV93b3JrZXJzKSkKKyAgICAgICAgZm9yIHdvcmtlcl9u
dW1iZXIgaW4geHJhbmdlKG51bV93b3JrZXJzKToKKyAgICAgICAgICAgIHdvcmtlcl9jb25uZWN0
aW9uID0gbWFuYWdlcl9jb25uZWN0aW9uLnN0YXJ0X3dvcmtlcih3b3JrZXJfbnVtYmVyKQorICAg
ICAgICAgICAgd29ya2VyX3N0YXRlID0gX1dvcmtlclN0YXRlKHdvcmtlcl9udW1iZXIsIHdvcmtl
cl9jb25uZWN0aW9uKQorICAgICAgICAgICAgc2VsZi5fd29ya2VyX3N0YXRlc1t3b3JrZXJfY29u
bmVjdGlvbi5uYW1lXSA9IHdvcmtlcl9zdGF0ZQorCisgICAgICAgICAgICAjIEZJWE1FOiBJZiB3
ZSBzdGFydCB3b3JrZXJzIHVwIHRvbyBxdWlja2x5LCBEdW1wUmVuZGVyVHJlZSBhcHBlYXJzCisg
ICAgICAgICAgICAjIHRvIHRocmFzaCBvbiBzb21ldGhpbmcgYW5kIHRpbWUgb3V0IGl0cyBmaXJz
dCBmZXcgdGVzdHMuIFVudGlsCisgICAgICAgICAgICAjIHdlIGNhbiBmaWd1cmUgb3V0IHdoYXQn
cyBnb2luZyBvbiwgc2xlZXAgYSBiaXQgaW4gYmV0d2VlbgorICAgICAgICAgICAgIyB3b3JrZXJz
LgorICAgICAgICAgICAgdGltZS5zbGVlcCgwLjEpCisKKyAgICAgICAgc2VsZi5fcHJpbnRlci5w
cmludF91cGRhdGUoIlN0YXJ0aW5nIHRlc3RpbmcgLi4uIikKKyAgICAgICAgZm9yIHRlc3RfbGlz
dCBpbiB0ZXN0X2xpc3RzOgorICAgICAgICAgICAgbWFuYWdlcl9jb25uZWN0aW9uLnBvc3RfbWVz
c2FnZSgndGVzdF9saXN0JywgdGVzdF9saXN0WzBdLCB0ZXN0X2xpc3RbMV0pCisKKyAgICAgICAg
IyBXZSBwb3N0IG9uZSAnc3RvcCcgbWVzc2FnZSBmb3IgZWFjaCB3b3JrZXIuIEJlY2F1c2UgdGhl
IHN0b3AgbWVzc2FnZQorICAgICAgICAjIGFyZSBzZW50IGFmdGVyIGFsbCBvZiB0aGUgdGVzdHMs
IGFuZCBiZWNhdXNlIGVhY2ggd29ya2VyIHdpbGwgc3RvcAorICAgICAgICAjIHJlYWRpbmcgbWVz
c3NhZ2VzIGFmdGVyIHJlY2VpdmluZyBhIHN0b3AsIHdlIGNhbiBiZSBzdXJlIGVhY2gKKyAgICAg
ICAgIyB3b3JrZXIgd2lsbCBnZXQgYSBzdG9wIG1lc3NhZ2UgYW5kIGhlbmNlIHRoZXkgd2lsbCBh
bGwgc2h1dCBkb3duLgorICAgICAgICBmb3IgaSBpbiB4cmFuZ2UobnVtX3dvcmtlcnMpOgorICAg
ICAgICAgICAgbWFuYWdlcl9jb25uZWN0aW9uLnBvc3RfbWVzc2FnZSgnc3RvcCcpCisKKyAgICAg
ICAgdHJ5OgorICAgICAgICAgICAgd2hpbGUgbm90IHNlbGYuaXNfZG9uZSgpOgorICAgICAgICAg
ICAgICAgICMgV2UgbG9vcCB3aXRoIGEgdGltZW91dCBpbiBvcmRlciB0byBiZSBhYmxlIHRvIGRl
dGVjdCB3ZWRnZWQgdGhyZWFkcy4KKyAgICAgICAgICAgICAgICBtYW5hZ2VyX2Nvbm5lY3Rpb24u
cnVuX21lc3NhZ2VfbG9vcChkZWxheV9zZWNzPTEuMCkKKworICAgICAgICAgICAgaWYgYW55KHdv
cmtlcl9zdGF0ZS53ZWRnZWQgZm9yIHdvcmtlcl9zdGF0ZSBpbiBzZWxmLl93b3JrZXJfc3RhdGVz
LnZhbHVlcygpKToKKyAgICAgICAgICAgICAgICBfbG9nLmVycm9yKCcnKQorICAgICAgICAgICAg
ICAgIF9sb2cuZXJyb3IoJ1JlbWFpbmluZyB3b3JrZXJzIGFyZSB3ZWRnZWQsIGJhaWxpbmcgb3V0
LicpCisgICAgICAgICAgICAgICAgX2xvZy5lcnJvcignJykKKyAgICAgICAgICAgIGVsc2U6Cisg
ICAgICAgICAgICAgICAgX2xvZy5kZWJ1ZygnTm8gd2VkZ2VkIHRocmVhZHMnKQorCisgICAgICAg
ICAgICAjIE1ha2Ugc3VyZSBhbGwgb2YgdGhlIHdvcmtlcnMgaGF2ZSBzaHV0IGRvd24gKGlmIHBv
c3NpYmxlKS4KKyAgICAgICAgICAgIGZvciB3b3JrZXJfc3RhdGUgaW4gc2VsZi5fd29ya2VyX3N0
YXRlcy52YWx1ZXMoKToKKyAgICAgICAgICAgICAgICBpZiBub3Qgd29ya2VyX3N0YXRlLndlZGdl
ZCBhbmQgd29ya2VyX3N0YXRlLndvcmtlcl9jb25uZWN0aW9uLmlzX2FsaXZlKCk6CisgICAgICAg
ICAgICAgICAgICAgIHdvcmtlcl9zdGF0ZS53b3JrZXJfY29ubmVjdGlvbi5qb2luKDAuNSkKKyAg
ICAgICAgICAgICAgICAgICAgYXNzZXJ0IG5vdCB3b3JrZXJfc3RhdGUud29ya2VyX2Nvbm5lY3Rp
b24uaXNfYWxpdmUoKQorCisgICAgICAgIGV4Y2VwdCBLZXlib2FyZEludGVycnVwdDoKKyAgICAg
ICAgICAgIF9sb2cuaW5mbygiSW50ZXJydXB0ZWQsIGV4aXRpbmciKQorICAgICAgICAgICAgc2Vs
Zi5jYW5jZWxfd29ya2VycygpCisgICAgICAgICAgICBrZXlib2FyZF9pbnRlcnJ1cHRlZCA9IFRy
dWUKKyAgICAgICAgZXhjZXB0IFRlc3RSdW5JbnRlcnJ1cHRlZEV4Y2VwdGlvbiwgZToKKyAgICAg
ICAgICAgIF9sb2cuaW5mbyhlLnJlYXNvbikKKyAgICAgICAgICAgIHNlbGYuY2FuY2VsX3dvcmtl
cnMoKQorICAgICAgICAgICAgaW50ZXJydXB0ZWQgPSBUcnVlCisgICAgICAgIGV4Y2VwdDoKKyAg
ICAgICAgICAgICMgVW5leHBlY3RlZCBleGNlcHRpb247IGRvbid0IHRyeSB0byBjbGVhbiB1cCB3
b3JrZXJzLgorICAgICAgICAgICAgX2xvZy5pbmZvKCJFeGNlcHRpb24gcmFpc2VkLCBleGl0aW5n
IikKKyAgICAgICAgICAgIHJhaXNlCisKKyAgICAgICAgdGhyZWFkX3RpbWluZ3MgPSBbd29ya2Vy
X3N0YXRlLnN0YXRzIGZvciB3b3JrZXJfc3RhdGUgaW4gc2VsZi5fd29ya2VyX3N0YXRlcy52YWx1
ZXMoKV0KKworICAgICAgICAjIEZJWE1FOiBzaG91bGQgdGhpcyBiZSBhIGNsYXNzIGluc3RlYWQg
b2YgYSB0dXBsZT8KKyAgICAgICAgcmV0dXJuIChpbnRlcnJ1cHRlZCwga2V5Ym9hcmRfaW50ZXJy
dXB0ZWQsIHRocmVhZF90aW1pbmdzLAorICAgICAgICAgICAgICAgIHNlbGYuX2dyb3VwX3N0YXRz
LCBzZWxmLl9hbGxfcmVzdWx0cykKIAogICAgIGRlZiB1cGRhdGUoc2VsZik6CiAgICAgICAgIHNl
bGYudXBkYXRlX3N1bW1hcnkoc2VsZi5fY3VycmVudF9yZXN1bHRfc3VtbWFyeSkKQEAgLTExMzcs
NiArMTIyOCw2MiBAQCBjbGFzcyBUZXN0UnVubmVyOgogICAgICAgICByZXN1bHRzX2ZpbGVuYW1l
ID0gc2VsZi5fZnMuam9pbihzZWxmLl9yZXN1bHRzX2RpcmVjdG9yeSwgInJlc3VsdHMuaHRtbCIp
CiAgICAgICAgIHNlbGYuX3BvcnQuc2hvd19yZXN1bHRzX2h0bWxfZmlsZShyZXN1bHRzX2ZpbGVu
YW1lKQogCisgICAgZGVmIG5hbWUoc2VsZik6CisgICAgICAgIHJldHVybiAnVGVzdFJ1bm5lcicK
KworICAgIGRlZiBpc19kb25lKHNlbGYpOgorICAgICAgICB3b3JrZXJfc3RhdGVzID0gc2VsZi5f
d29ya2VyX3N0YXRlcy52YWx1ZXMoKQorICAgICAgICByZXR1cm4gd29ya2VyX3N0YXRlcyBhbmQg
YWxsKHNlbGYuX3dvcmtlcl9pc19kb25lKHdvcmtlcl9zdGF0ZSkgZm9yIHdvcmtlcl9zdGF0ZSBp
biB3b3JrZXJfc3RhdGVzKQorCisgICAgZGVmIF93b3JrZXJfaXNfZG9uZShzZWxmLCB3b3JrZXJf
c3RhdGUpOgorICAgICAgICB0ID0gdGltZS50aW1lKCkKKyAgICAgICAgaWYgd29ya2VyX3N0YXRl
LmRvbmUgb3Igd29ya2VyX3N0YXRlLndlZGdlZDoKKyAgICAgICAgICAgIHJldHVybiBUcnVlCisK
KyAgICAgICAgbmV4dF90aW1lb3V0ID0gd29ya2VyX3N0YXRlLm5leHRfdGltZW91dAorICAgICAg
ICBXRURHRV9QQURESU5HID0gNDAuMAorICAgICAgICBpZiBuZXh0X3RpbWVvdXQgYW5kIHQgPiBu
ZXh0X3RpbWVvdXQgKyBXRURHRV9QQURESU5HOgorICAgICAgICAgICAgX2xvZy5lcnJvcignJykK
KyAgICAgICAgICAgIHdvcmtlcl9zdGF0ZS53b3JrZXJfY29ubmVjdGlvbi5sb2dfd2VkZ2VkX3dv
cmtlcih3b3JrZXJfc3RhdGUuY3VycmVudF90ZXN0X25hbWUpCisgICAgICAgICAgICBfbG9nLmVy
cm9yKCcnKQorICAgICAgICAgICAgd29ya2VyX3N0YXRlLndlZGdlZCA9IFRydWUKKyAgICAgICAg
ICAgIHJldHVybiBUcnVlCisgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgZGVmIGNhbmNlbF93
b3JrZXJzKHNlbGYpOgorICAgICAgICBmb3Igd29ya2VyX3N0YXRlIGluIHNlbGYuX3dvcmtlcl9z
dGF0ZXMudmFsdWVzKCk6CisgICAgICAgICAgICB3b3JrZXJfc3RhdGUud29ya2VyX2Nvbm5lY3Rp
b24uY2FuY2VsKCkKKworICAgIGRlZiBoYW5kbGVfc3RhcnRlZF90ZXN0KHNlbGYsIHNvdXJjZSwg
dGVzdF9pbmZvLCBoYW5nX3RpbWVvdXQpOgorICAgICAgICB3b3JrZXJfc3RhdGUgPSBzZWxmLl93
b3JrZXJfc3RhdGVzW3NvdXJjZV0KKyAgICAgICAgd29ya2VyX3N0YXRlLmN1cnJlbnRfdGVzdF9u
YW1lID0gc2VsZi5fcG9ydC5yZWxhdGl2ZV90ZXN0X2ZpbGVuYW1lKHRlc3RfaW5mby5maWxlbmFt
ZSkKKyAgICAgICAgd29ya2VyX3N0YXRlLm5leHRfdGltZW91dCA9IHRpbWUudGltZSgpICsgaGFu
Z190aW1lb3V0CisKKyAgICBkZWYgaGFuZGxlX2RvbmUoc2VsZiwgc291cmNlKToKKyAgICAgICAg
d29ya2VyX3N0YXRlID0gc2VsZi5fd29ya2VyX3N0YXRlc1tzb3VyY2VdCisgICAgICAgIHdvcmtl
cl9zdGF0ZS5kb25lID0gVHJ1ZQorCisgICAgZGVmIGhhbmRsZV9leGNlcHRpb24oc2VsZiwgc291
cmNlLCBleGNlcHRpb25faW5mbyk6CisgICAgICAgIGV4Y2VwdGlvbl90eXBlLCBleGNlcHRpb25f
dmFsdWUsIGV4Y2VwdGlvbl90cmFjZWJhY2sgPSBleGNlcHRpb25faW5mbworICAgICAgICByYWlz
ZSBleGNlcHRpb25fdHlwZSwgZXhjZXB0aW9uX3ZhbHVlLCBleGNlcHRpb25fdHJhY2ViYWNrCisK
KyAgICBkZWYgaGFuZGxlX2ZpbmlzaGVkX2xpc3Qoc2VsZiwgc291cmNlLCBsaXN0X25hbWUsIG51
bV90ZXN0cywgZWxhcHNlZF90aW1lKToKKyAgICAgICAgc2VsZi5fZ3JvdXBfc3RhdHNbbGlzdF9u
YW1lXSA9IChudW1fdGVzdHMsIGVsYXBzZWRfdGltZSkKKworICAgIGRlZiBoYW5kbGVfZmluaXNo
ZWRfdGVzdChzZWxmLCBzb3VyY2UsIHJlc3VsdCwgZWxhcHNlZF90aW1lKToKKyAgICAgICAgd29y
a2VyX3N0YXRlID0gc2VsZi5fd29ya2VyX3N0YXRlc1tzb3VyY2VdCisgICAgICAgIHdvcmtlcl9z
dGF0ZS5uZXh0X3RpbWVvdXQgPSBOb25lCisgICAgICAgIHdvcmtlcl9zdGF0ZS5jdXJyZW50X3Rl
c3RfbmFtZSA9IE5vbmUKKyAgICAgICAgd29ya2VyX3N0YXRlLnN0YXRzWyd0b3RhbF90aW1lJ10g
Kz0gZWxhcHNlZF90aW1lCisgICAgICAgIHdvcmtlcl9zdGF0ZS5zdGF0c1snbnVtX3Rlc3RzJ10g
Kz0gMQorCisgICAgICAgIGlmIHdvcmtlcl9zdGF0ZS53ZWRnZWQ6CisgICAgICAgICAgICAjIFRo
aXMgc2hvdWxkbid0IGhhcHBlbiBpZiB3ZSBoYXZlIG91ciB0aW1lb3V0cyB0dW5lZCBwcm9wZXJs
eS4KKyAgICAgICAgICAgIF9sb2cuZXJyb3IoIiVzIHVud2VkZ2VkIiwgc291cmNlKQorCisgICAg
ICAgIHNlbGYuX2FsbF9yZXN1bHRzLmFwcGVuZChyZXN1bHQpCisgICAgICAgIHNlbGYuX3VwZGF0
ZV9zdW1tYXJ5X3dpdGhfcmVzdWx0KHNlbGYuX2N1cnJlbnRfcmVzdWx0X3N1bW1hcnksIHJlc3Vs
dCkKKwogCiBkZWYgcmVhZF90ZXN0X2ZpbGVzKGZzLCBmaWxlcyk6CiAgICAgdGVzdHMgPSBbXQpA
QCAtMTE1MywzICsxMzAwLDIyIEBAIGRlZiByZWFkX3Rlc3RfZmlsZXMoZnMsIGZpbGVzKToKICAg
ICAgICAgICAgICAgICBfbG9nLmNyaXRpY2FsKCctLXRlc3QtbGlzdCBmaWxlICIlcyIgbm90IGZv
dW5kJyAlIGZpbGUpCiAgICAgICAgICAgICByYWlzZQogICAgIHJldHVybiB0ZXN0cworCisKK2Ns
YXNzIF9Xb3JrZXJTdGF0ZShvYmplY3QpOgorICAgICIiIkEgY2xhc3MgZm9yIHRoZSBUZXN0UnVu
bmVyL21hbmFnZXIgdG8gdXNlIHRvIHRyYWNrIHRoZSBjdXJyZW50IHN0YXRlCisgICAgb2YgdGhl
IHdvcmtlcnMuIiIiCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIG51bWJlciwgd29ya2VyX2Nvbm5l
Y3Rpb24pOgorICAgICAgICBzZWxmLndvcmtlcl9jb25uZWN0aW9uID0gd29ya2VyX2Nvbm5lY3Rp
b24KKyAgICAgICAgc2VsZi5udW1iZXIgPSBudW1iZXIKKyAgICAgICAgc2VsZi5kb25lID0gRmFs
c2UKKyAgICAgICAgc2VsZi5jdXJyZW50X3Rlc3RfbmFtZSA9IE5vbmUKKyAgICAgICAgc2VsZi5u
ZXh0X3RpbWVvdXQgPSBOb25lCisgICAgICAgIHNlbGYud2VkZ2VkID0gRmFsc2UKKyAgICAgICAg
c2VsZi5zdGF0cyA9IHt9CisgICAgICAgIHNlbGYuc3RhdHNbJ25hbWUnXSA9IHdvcmtlcl9jb25u
ZWN0aW9uLm5hbWUKKyAgICAgICAgc2VsZi5zdGF0c1snbnVtX3Rlc3RzJ10gPSAwCisgICAgICAg
IHNlbGYuc3RhdHNbJ3RvdGFsX3RpbWUnXSA9IDAKKworICAgIGRlZiBfX3JlcHJfXyhzZWxmKToK
KyAgICAgICAgcmV0dXJuICJfV29ya2VyU3RhdGUoIiArIHN0cihzZWxmLl9fZGljdF9fKSArICIp
IgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0
X3BhY2thZ2UvdGVzdF9ydW5uZXIyLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvbGF5b3V0X3BhY2thZ2UvdGVzdF9ydW5uZXIyLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA4YzE5YmZlY2M4NTI4YmExYzgwZWJhZDM3YmEwOWMxMTQ0NGFhMTVmLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL3Rlc3RfcnVubmVyMi5weQorKysg
L2Rldi9udWxsCkBAIC0xLDIzMCArMCwwIEBACi0jIS91c3IvYmluL2VudiBweXRob24KLSMgQ29w
eXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAg
ICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMK
LSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0
cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdy
aXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUg
Q09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgotCi0iIiIKLVRoZSBUZXN0UnVubmVyMiBwYWNrYWdlIGlzIGFuIGFsdGVybmF0
ZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgVGVzdFJ1bm5lcgotY2xhc3MgdGhhdCB1c2VzIHRoZSBt
YW5hZ2VyX3dvcmtlcl9icm9rZXIgbW9kdWxlIHRvIHNlbmQgc2V0cyBvZiB0ZXN0cyB0bwotd29y
a2VycyBhbmQgcmVjZWl2ZSB0aGVpciBjb21wbGV0aW9uIG1lc3NhZ2VzIGFjY29yZGluZ2x5Lgot
IiIiCi0KLWltcG9ydCBsb2dnaW5nCi1pbXBvcnQgdGltZQotCi1mcm9tIHdlYmtpdHB5LnRvb2wg
aW1wb3J0IGdyYW1tYXIKLQotZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMubGF5b3V0X3BhY2th
Z2UgaW1wb3J0IG1hbmFnZXJfd29ya2VyX2Jyb2tlcgotZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVz
dHMubGF5b3V0X3BhY2thZ2UgaW1wb3J0IHRlc3RfcnVubmVyCi1mcm9tIHdlYmtpdHB5LmxheW91
dF90ZXN0cy5sYXlvdXRfcGFja2FnZSBpbXBvcnQgd29ya2VyCi0KLQotX2xvZyA9IGxvZ2dpbmcu
Z2V0TG9nZ2VyKF9fbmFtZV9fKQotCi0KLWNsYXNzIF9Xb3JrZXJTdGF0ZShvYmplY3QpOgotICAg
ICIiIkEgY2xhc3MgZm9yIHRoZSBUZXN0UnVubmVyL21hbmFnZXIgdG8gdXNlIHRvIHRyYWNrIHRo
ZSBjdXJyZW50IHN0YXRlCi0gICAgb2YgdGhlIHdvcmtlcnMuIiIiCi0gICAgZGVmIF9faW5pdF9f
KHNlbGYsIG51bWJlciwgd29ya2VyX2Nvbm5lY3Rpb24pOgotICAgICAgICBzZWxmLndvcmtlcl9j
b25uZWN0aW9uID0gd29ya2VyX2Nvbm5lY3Rpb24KLSAgICAgICAgc2VsZi5udW1iZXIgPSBudW1i
ZXIKLSAgICAgICAgc2VsZi5kb25lID0gRmFsc2UKLSAgICAgICAgc2VsZi5jdXJyZW50X3Rlc3Rf
bmFtZSA9IE5vbmUKLSAgICAgICAgc2VsZi5uZXh0X3RpbWVvdXQgPSBOb25lCi0gICAgICAgIHNl
bGYud2VkZ2VkID0gRmFsc2UKLSAgICAgICAgc2VsZi5zdGF0cyA9IHt9Ci0gICAgICAgIHNlbGYu
c3RhdHNbJ25hbWUnXSA9IHdvcmtlcl9jb25uZWN0aW9uLm5hbWUKLSAgICAgICAgc2VsZi5zdGF0
c1snbnVtX3Rlc3RzJ10gPSAwCi0gICAgICAgIHNlbGYuc3RhdHNbJ3RvdGFsX3RpbWUnXSA9IDAK
LQotICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKLSAgICAgICAgcmV0dXJuICJfV29ya2VyU3RhdGUo
IiArIHN0cihzZWxmLl9fZGljdF9fKSArICIpIgotCi0KLWNsYXNzIFRlc3RSdW5uZXIyKHRlc3Rf
cnVubmVyLlRlc3RSdW5uZXIpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwb3J0LCBvcHRpb25z
LCBwcmludGVyKToKLSAgICAgICAgdGVzdF9ydW5uZXIuVGVzdFJ1bm5lci5fX2luaXRfXyhzZWxm
LCBwb3J0LCBvcHRpb25zLCBwcmludGVyKQotICAgICAgICBzZWxmLl9hbGxfcmVzdWx0cyA9IFtd
Ci0gICAgICAgIHNlbGYuX2dyb3VwX3N0YXRzID0ge30KLSAgICAgICAgc2VsZi5fY3VycmVudF9y
ZXN1bHRfc3VtbWFyeSA9IE5vbmUKLQotICAgICAgICAjIFRoaXMgbWFwcyB3b3JrZXIgbmFtZXMg
dG8gdGhlIHN0YXRlIHdlIGFyZSB0cmFja2luZyBmb3IgZWFjaCBvZiB0aGVtLgotICAgICAgICBz
ZWxmLl93b3JrZXJfc3RhdGVzID0ge30KLQotICAgIGRlZiBpc19kb25lKHNlbGYpOgotICAgICAg
ICB3b3JrZXJfc3RhdGVzID0gc2VsZi5fd29ya2VyX3N0YXRlcy52YWx1ZXMoKQotICAgICAgICBy
ZXR1cm4gd29ya2VyX3N0YXRlcyBhbmQgYWxsKHNlbGYuX3dvcmtlcl9pc19kb25lKHdvcmtlcl9z
dGF0ZSkgZm9yIHdvcmtlcl9zdGF0ZSBpbiB3b3JrZXJfc3RhdGVzKQotCi0gICAgZGVmIF93b3Jr
ZXJfaXNfZG9uZShzZWxmLCB3b3JrZXJfc3RhdGUpOgotICAgICAgICB0ID0gdGltZS50aW1lKCkK
LSAgICAgICAgaWYgd29ya2VyX3N0YXRlLmRvbmUgb3Igd29ya2VyX3N0YXRlLndlZGdlZDoKLSAg
ICAgICAgICAgIHJldHVybiBUcnVlCi0KLSAgICAgICAgbmV4dF90aW1lb3V0ID0gd29ya2VyX3N0
YXRlLm5leHRfdGltZW91dAotICAgICAgICBXRURHRV9QQURESU5HID0gNDAuMAotICAgICAgICBp
ZiBuZXh0X3RpbWVvdXQgYW5kIHQgPiBuZXh0X3RpbWVvdXQgKyBXRURHRV9QQURESU5HOgotICAg
ICAgICAgICAgX2xvZy5lcnJvcignJykKLSAgICAgICAgICAgIHdvcmtlcl9zdGF0ZS53b3JrZXJf
Y29ubmVjdGlvbi5sb2dfd2VkZ2VkX3dvcmtlcih3b3JrZXJfc3RhdGUuY3VycmVudF90ZXN0X25h
bWUpCi0gICAgICAgICAgICBfbG9nLmVycm9yKCcnKQotICAgICAgICAgICAgd29ya2VyX3N0YXRl
LndlZGdlZCA9IFRydWUKLSAgICAgICAgICAgIHJldHVybiBUcnVlCi0gICAgICAgIHJldHVybiBG
YWxzZQotCi0gICAgZGVmIG5hbWUoc2VsZik6Ci0gICAgICAgIHJldHVybiAnVGVzdFJ1bm5lcjIn
Ci0KLSAgICBkZWYgX3J1bl90ZXN0cyhzZWxmLCBmaWxlX2xpc3QsIHJlc3VsdF9zdW1tYXJ5KToK
LSAgICAgICAgIiIiUnVucyB0aGUgdGVzdHMgaW4gdGhlIGZpbGVfbGlzdC4KLQotICAgICAgICBS
ZXR1cm46IEEgdHVwbGUgKGludGVycnVwdGVkLCBrZXlib2FyZF9pbnRlcnJ1cHRlZCwgdGhyZWFk
X3RpbWluZ3MsCi0gICAgICAgICAgICB0ZXN0X3RpbWluZ3MsIGluZGl2aWR1YWxfdGVzdF90aW1p
bmdzKQotICAgICAgICAgICAgaW50ZXJydXB0ZWQgaXMgd2hldGhlciB0aGUgcnVuIHdhcyBpbnRl
cnJ1cHRlZAotICAgICAgICAgICAga2V5Ym9hcmRfaW50ZXJydXB0ZWQgaXMgd2hldGhlciBzb21l
b25lIHR5cGVkIEN0cmxeQwotICAgICAgICAgICAgdGhyZWFkX3RpbWluZ3MgaXMgYSBsaXN0IG9m
IGRpY3RzIHdpdGggdGhlIHRvdGFsIHJ1bnRpbWUKLSAgICAgICAgICAgICAgb2YgZWFjaCB0aHJl
YWQgd2l0aCAnbmFtZScsICdudW1fdGVzdHMnLCAndG90YWxfdGltZScgcHJvcGVydGllcwotICAg
ICAgICAgICAgdGVzdF90aW1pbmdzIGlzIGEgbGlzdCBvZiB0aW1pbmdzIGZvciBlYWNoIHNoYXJk
ZWQgc3ViZGlyZWN0b3J5Ci0gICAgICAgICAgICAgIG9mIHRoZSBmb3JtIFt0aW1lLCBkaXJlY3Rv
cnlfbmFtZSwgbnVtX3Rlc3RzXQotICAgICAgICAgICAgaW5kaXZpZHVhbF90ZXN0X3RpbWluZ3Mg
aXMgYSBsaXN0IG9mIHJ1biB0aW1lcyBmb3IgZWFjaCB0ZXN0Ci0gICAgICAgICAgICAgIGluIHRo
ZSBmb3JtIHtmaWxlbmFtZTpmaWxlbmFtZSwgdGVzdF9ydW5fdGltZTp0ZXN0X3J1bl90aW1lfQot
ICAgICAgICAgICAgcmVzdWx0X3N1bW1hcnk6IHN1bW1hcnkgb2JqZWN0IHRvIHBvcHVsYXRlIHdp
dGggdGhlIHJlc3VsdHMKLSAgICAgICAgIiIiCi0gICAgICAgIHNlbGYuX2N1cnJlbnRfcmVzdWx0
X3N1bW1hcnkgPSByZXN1bHRfc3VtbWFyeQotICAgICAgICBzZWxmLl9hbGxfcmVzdWx0cyA9IFtd
Ci0gICAgICAgIHNlbGYuX2dyb3VwX3N0YXRzID0ge30KLSAgICAgICAgc2VsZi5fd29ya2VyX3N0
YXRlcyA9IHt9Ci0KLSAgICAgICAga2V5Ym9hcmRfaW50ZXJydXB0ZWQgPSBGYWxzZQotICAgICAg
ICBpbnRlcnJ1cHRlZCA9IEZhbHNlCi0gICAgICAgIHRocmVhZF90aW1pbmdzID0gW10KLQotICAg
ICAgICBzZWxmLl9wcmludGVyLnByaW50X3VwZGF0ZSgnU2hhcmRpbmcgdGVzdHMgLi4uJykKLSAg
ICAgICAgdGVzdF9saXN0cyA9IHNlbGYuX3NoYXJkX3Rlc3RzKGZpbGVfbGlzdCwKLSAgICAgICAg
ICAgIChpbnQoc2VsZi5fb3B0aW9ucy5jaGlsZF9wcm9jZXNzZXMpID4gMSkgYW5kIG5vdCBzZWxm
Ll9vcHRpb25zLmV4cGVyaW1lbnRhbF9mdWxseV9wYXJhbGxlbCkKLQotICAgICAgICBudW1fd29y
a2VycyA9IHNlbGYuX251bV93b3JrZXJzKGxlbih0ZXN0X2xpc3RzKSkKLQotICAgICAgICBtYW5h
Z2VyX2Nvbm5lY3Rpb24gPSBtYW5hZ2VyX3dvcmtlcl9icm9rZXIuZ2V0KHNlbGYuX3BvcnQsIHNl
bGYuX29wdGlvbnMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgc2VsZiwgd29ya2VyLldvcmtlcikKLQotICAgICAgICBpZiBzZWxmLl9vcHRp
b25zLmRyeV9ydW46Ci0gICAgICAgICAgICByZXR1cm4gKGtleWJvYXJkX2ludGVycnVwdGVkLCBp
bnRlcnJ1cHRlZCwgdGhyZWFkX3RpbWluZ3MsCi0gICAgICAgICAgICAgICAgICAgIHNlbGYuX2dy
b3VwX3N0YXRzLCBzZWxmLl9hbGxfcmVzdWx0cykKLQotICAgICAgICBzZWxmLl9wcmludGVyLnBy
aW50X3VwZGF0ZSgnU3RhcnRpbmcgJXMgLi4uJyAlCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGdyYW1tYXIucGx1cmFsaXplKCd3b3JrZXInLCBudW1fd29ya2VycykpCi0gICAg
ICAgIGZvciB3b3JrZXJfbnVtYmVyIGluIHhyYW5nZShudW1fd29ya2Vycyk6Ci0gICAgICAgICAg
ICB3b3JrZXJfY29ubmVjdGlvbiA9IG1hbmFnZXJfY29ubmVjdGlvbi5zdGFydF93b3JrZXIod29y
a2VyX251bWJlcikKLSAgICAgICAgICAgIHdvcmtlcl9zdGF0ZSA9IF9Xb3JrZXJTdGF0ZSh3b3Jr
ZXJfbnVtYmVyLCB3b3JrZXJfY29ubmVjdGlvbikKLSAgICAgICAgICAgIHNlbGYuX3dvcmtlcl9z
dGF0ZXNbd29ya2VyX2Nvbm5lY3Rpb24ubmFtZV0gPSB3b3JrZXJfc3RhdGUKLQotICAgICAgICAg
ICAgIyBGSVhNRTogSWYgd2Ugc3RhcnQgd29ya2VycyB1cCB0b28gcXVpY2tseSwgRHVtcFJlbmRl
clRyZWUgYXBwZWFycwotICAgICAgICAgICAgIyB0byB0aHJhc2ggb24gc29tZXRoaW5nIGFuZCB0
aW1lIG91dCBpdHMgZmlyc3QgZmV3IHRlc3RzLiBVbnRpbAotICAgICAgICAgICAgIyB3ZSBjYW4g
ZmlndXJlIG91dCB3aGF0J3MgZ29pbmcgb24sIHNsZWVwIGEgYml0IGluIGJldHdlZW4KLSAgICAg
ICAgICAgICMgd29ya2Vycy4KLSAgICAgICAgICAgIHRpbWUuc2xlZXAoMC4xKQotCi0gICAgICAg
IHNlbGYuX3ByaW50ZXIucHJpbnRfdXBkYXRlKCJTdGFydGluZyB0ZXN0aW5nIC4uLiIpCi0gICAg
ICAgIGZvciB0ZXN0X2xpc3QgaW4gdGVzdF9saXN0czoKLSAgICAgICAgICAgIG1hbmFnZXJfY29u
bmVjdGlvbi5wb3N0X21lc3NhZ2UoJ3Rlc3RfbGlzdCcsIHRlc3RfbGlzdFswXSwgdGVzdF9saXN0
WzFdKQotCi0gICAgICAgICMgV2UgcG9zdCBvbmUgJ3N0b3AnIG1lc3NhZ2UgZm9yIGVhY2ggd29y
a2VyLiBCZWNhdXNlIHRoZSBzdG9wIG1lc3NhZ2UKLSAgICAgICAgIyBhcmUgc2VudCBhZnRlciBh
bGwgb2YgdGhlIHRlc3RzLCBhbmQgYmVjYXVzZSBlYWNoIHdvcmtlciB3aWxsIHN0b3AKLSAgICAg
ICAgIyByZWFkaW5nIG1lc3NzYWdlcyBhZnRlciByZWNlaXZpbmcgYSBzdG9wLCB3ZSBjYW4gYmUg
c3VyZSBlYWNoCi0gICAgICAgICMgd29ya2VyIHdpbGwgZ2V0IGEgc3RvcCBtZXNzYWdlIGFuZCBo
ZW5jZSB0aGV5IHdpbGwgYWxsIHNodXQgZG93bi4KLSAgICAgICAgZm9yIGkgaW4geHJhbmdlKG51
bV93b3JrZXJzKToKLSAgICAgICAgICAgIG1hbmFnZXJfY29ubmVjdGlvbi5wb3N0X21lc3NhZ2Uo
J3N0b3AnKQotCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHdoaWxlIG5vdCBzZWxmLmlzX2Rv
bmUoKToKLSAgICAgICAgICAgICAgICAjIFdlIGxvb3Agd2l0aCBhIHRpbWVvdXQgaW4gb3JkZXIg
dG8gYmUgYWJsZSB0byBkZXRlY3Qgd2VkZ2VkIHRocmVhZHMuCi0gICAgICAgICAgICAgICAgbWFu
YWdlcl9jb25uZWN0aW9uLnJ1bl9tZXNzYWdlX2xvb3AoZGVsYXlfc2Vjcz0xLjApCi0KLSAgICAg
ICAgICAgIGlmIGFueSh3b3JrZXJfc3RhdGUud2VkZ2VkIGZvciB3b3JrZXJfc3RhdGUgaW4gc2Vs
Zi5fd29ya2VyX3N0YXRlcy52YWx1ZXMoKSk6Ci0gICAgICAgICAgICAgICAgX2xvZy5lcnJvcign
JykKLSAgICAgICAgICAgICAgICBfbG9nLmVycm9yKCdSZW1haW5pbmcgd29ya2VycyBhcmUgd2Vk
Z2VkLCBiYWlsaW5nIG91dC4nKQotICAgICAgICAgICAgICAgIF9sb2cuZXJyb3IoJycpCi0gICAg
ICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIF9sb2cuZGVidWcoJ05vIHdlZGdlZCB0aHJl
YWRzJykKLQotICAgICAgICAgICAgIyBNYWtlIHN1cmUgYWxsIG9mIHRoZSB3b3JrZXJzIGhhdmUg
c2h1dCBkb3duIChpZiBwb3NzaWJsZSkuCi0gICAgICAgICAgICBmb3Igd29ya2VyX3N0YXRlIGlu
IHNlbGYuX3dvcmtlcl9zdGF0ZXMudmFsdWVzKCk6Ci0gICAgICAgICAgICAgICAgaWYgbm90IHdv
cmtlcl9zdGF0ZS53ZWRnZWQgYW5kIHdvcmtlcl9zdGF0ZS53b3JrZXJfY29ubmVjdGlvbi5pc19h
bGl2ZSgpOgotICAgICAgICAgICAgICAgICAgICB3b3JrZXJfc3RhdGUud29ya2VyX2Nvbm5lY3Rp
b24uam9pbigwLjUpCi0gICAgICAgICAgICAgICAgICAgIGFzc2VydCBub3Qgd29ya2VyX3N0YXRl
Lndvcmtlcl9jb25uZWN0aW9uLmlzX2FsaXZlKCkKLQotICAgICAgICBleGNlcHQgS2V5Ym9hcmRJ
bnRlcnJ1cHQ6Ci0gICAgICAgICAgICBfbG9nLmluZm8oIkludGVycnVwdGVkLCBleGl0aW5nIikK
LSAgICAgICAgICAgIHNlbGYuY2FuY2VsX3dvcmtlcnMoKQotICAgICAgICAgICAga2V5Ym9hcmRf
aW50ZXJydXB0ZWQgPSBUcnVlCi0gICAgICAgIGV4Y2VwdCB0ZXN0X3J1bm5lci5UZXN0UnVuSW50
ZXJydXB0ZWRFeGNlcHRpb24sIGU6Ci0gICAgICAgICAgICBfbG9nLmluZm8oZS5yZWFzb24pCi0g
ICAgICAgICAgICBzZWxmLmNhbmNlbF93b3JrZXJzKCkKLSAgICAgICAgICAgIGludGVycnVwdGVk
ID0gVHJ1ZQotICAgICAgICBleGNlcHQ6Ci0gICAgICAgICAgICAjIFVuZXhwZWN0ZWQgZXhjZXB0
aW9uOyBkb24ndCB0cnkgdG8gY2xlYW4gdXAgd29ya2Vycy4KLSAgICAgICAgICAgIF9sb2cuaW5m
bygiRXhjZXB0aW9uIHJhaXNlZCwgZXhpdGluZyIpCi0gICAgICAgICAgICByYWlzZQotCi0gICAg
ICAgIHRocmVhZF90aW1pbmdzID0gW3dvcmtlcl9zdGF0ZS5zdGF0cyBmb3Igd29ya2VyX3N0YXRl
IGluIHNlbGYuX3dvcmtlcl9zdGF0ZXMudmFsdWVzKCldCi0KLSAgICAgICAgIyBGSVhNRTogc2hv
dWxkIHRoaXMgYmUgYSBjbGFzcyBpbnN0ZWFkIG9mIGEgdHVwbGU/Ci0gICAgICAgIHJldHVybiAo
aW50ZXJydXB0ZWQsIGtleWJvYXJkX2ludGVycnVwdGVkLCB0aHJlYWRfdGltaW5ncywKLSAgICAg
ICAgICAgICAgICBzZWxmLl9ncm91cF9zdGF0cywgc2VsZi5fYWxsX3Jlc3VsdHMpCi0KLSAgICBk
ZWYgY2FuY2VsX3dvcmtlcnMoc2VsZik6Ci0gICAgICAgIGZvciB3b3JrZXJfc3RhdGUgaW4gc2Vs
Zi5fd29ya2VyX3N0YXRlcy52YWx1ZXMoKToKLSAgICAgICAgICAgIHdvcmtlcl9zdGF0ZS53b3Jr
ZXJfY29ubmVjdGlvbi5jYW5jZWwoKQotCi0gICAgZGVmIGhhbmRsZV9zdGFydGVkX3Rlc3Qoc2Vs
Ziwgc291cmNlLCB0ZXN0X2luZm8sIGhhbmdfdGltZW91dCk6Ci0gICAgICAgIHdvcmtlcl9zdGF0
ZSA9IHNlbGYuX3dvcmtlcl9zdGF0ZXNbc291cmNlXQotICAgICAgICB3b3JrZXJfc3RhdGUuY3Vy
cmVudF90ZXN0X25hbWUgPSBzZWxmLl9wb3J0LnJlbGF0aXZlX3Rlc3RfZmlsZW5hbWUodGVzdF9p
bmZvLmZpbGVuYW1lKQotICAgICAgICB3b3JrZXJfc3RhdGUubmV4dF90aW1lb3V0ID0gdGltZS50
aW1lKCkgKyBoYW5nX3RpbWVvdXQKLQotICAgIGRlZiBoYW5kbGVfZG9uZShzZWxmLCBzb3VyY2Up
OgotICAgICAgICB3b3JrZXJfc3RhdGUgPSBzZWxmLl93b3JrZXJfc3RhdGVzW3NvdXJjZV0KLSAg
ICAgICAgd29ya2VyX3N0YXRlLmRvbmUgPSBUcnVlCi0KLSAgICBkZWYgaGFuZGxlX2V4Y2VwdGlv
bihzZWxmLCBzb3VyY2UsIGV4Y2VwdGlvbl9pbmZvKToKLSAgICAgICAgZXhjZXB0aW9uX3R5cGUs
IGV4Y2VwdGlvbl92YWx1ZSwgZXhjZXB0aW9uX3RyYWNlYmFjayA9IGV4Y2VwdGlvbl9pbmZvCi0g
ICAgICAgIHJhaXNlIGV4Y2VwdGlvbl90eXBlLCBleGNlcHRpb25fdmFsdWUsIGV4Y2VwdGlvbl90
cmFjZWJhY2sKLQotICAgIGRlZiBoYW5kbGVfZmluaXNoZWRfbGlzdChzZWxmLCBzb3VyY2UsIGxp
c3RfbmFtZSwgbnVtX3Rlc3RzLCBlbGFwc2VkX3RpbWUpOgotICAgICAgICBzZWxmLl9ncm91cF9z
dGF0c1tsaXN0X25hbWVdID0gKG51bV90ZXN0cywgZWxhcHNlZF90aW1lKQotCi0gICAgZGVmIGhh
bmRsZV9maW5pc2hlZF90ZXN0KHNlbGYsIHNvdXJjZSwgcmVzdWx0LCBlbGFwc2VkX3RpbWUpOgot
ICAgICAgICB3b3JrZXJfc3RhdGUgPSBzZWxmLl93b3JrZXJfc3RhdGVzW3NvdXJjZV0KLSAgICAg
ICAgd29ya2VyX3N0YXRlLm5leHRfdGltZW91dCA9IE5vbmUKLSAgICAgICAgd29ya2VyX3N0YXRl
LmN1cnJlbnRfdGVzdF9uYW1lID0gTm9uZQotICAgICAgICB3b3JrZXJfc3RhdGUuc3RhdHNbJ3Rv
dGFsX3RpbWUnXSArPSBlbGFwc2VkX3RpbWUKLSAgICAgICAgd29ya2VyX3N0YXRlLnN0YXRzWydu
dW1fdGVzdHMnXSArPSAxCi0KLSAgICAgICAgaWYgd29ya2VyX3N0YXRlLndlZGdlZDoKLSAgICAg
ICAgICAgICMgVGhpcyBzaG91bGRuJ3QgaGFwcGVuIGlmIHdlIGhhdmUgb3VyIHRpbWVvdXRzIHR1
bmVkIHByb3Blcmx5LgotICAgICAgICAgICAgX2xvZy5lcnJvcigiJXMgdW53ZWRnZWQiLCBzb3Vy
Y2UpCi0KLSAgICAgICAgc2VsZi5fYWxsX3Jlc3VsdHMuYXBwZW5kKHJlc3VsdCkKLSAgICAgICAg
c2VsZi5fdXBkYXRlX3N1bW1hcnlfd2l0aF9yZXN1bHQoc2VsZi5fY3VycmVudF9yZXN1bHRfc3Vt
bWFyeSwgcmVzdWx0KQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvcnVuX3dlYmtpdF90ZXN0cy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHMucHkKaW5kZXggZTgxNDAwOGExNjA2YzYyMjQxODI0ZTFj
MTIwMTM4ZDcwNzA2MDRlNC4uZTNkNWViYmE0YmFhYTUxMGFjZTE0NDRlNTgwZDNlZjIyODlmNDFk
OCAxMDA3NTUKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dl
YmtpdF90ZXN0cy5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9y
dW5fd2Via2l0X3Rlc3RzLnB5CkBAIC00MCw3ICs0MCw2IEBAIGltcG9ydCBzeXMKIGZyb20gbGF5
b3V0X3BhY2thZ2UgaW1wb3J0IGpzb25fcmVzdWx0c19nZW5lcmF0b3IKIGZyb20gbGF5b3V0X3Bh
Y2thZ2UgaW1wb3J0IHByaW50aW5nCiBmcm9tIGxheW91dF9wYWNrYWdlIGltcG9ydCB0ZXN0X3J1
bm5lcgotZnJvbSBsYXlvdXRfcGFja2FnZSBpbXBvcnQgdGVzdF9ydW5uZXIyCiAKIGZyb20gd2Vi
a2l0cHkuY29tbW9uLnN5c3RlbSBpbXBvcnQgdXNlcgogZnJvbSB3ZWJraXRweS50aGlyZHBhcnR5
IGltcG9ydCBzaW1wbGVqc29uCkBAIC04OSw3ICs4OCw3IEBAIGRlZiBydW4ocG9ydCwgb3B0aW9u
cywgYXJncywgcmVndWxhcl9vdXRwdXQ9c3lzLnN0ZGVyciwKICAgICAjIGluIGEgdHJ5L2ZpbmFs
bHkgdG8gZW5zdXJlIHRoYXQgd2UgY2xlYW4gdXAgdGhlIGxvZ2dpbmcgY29uZmlndXJhdGlvbi4K
ICAgICBudW1fdW5leHBlY3RlZF9yZXN1bHRzID0gLTEKICAgICB0cnk6Ci0gICAgICAgIHJ1bm5l
ciA9IHRlc3RfcnVubmVyMi5UZXN0UnVubmVyMihwb3J0LCBvcHRpb25zLCBwcmludGVyKQorICAg
ICAgICBydW5uZXIgPSB0ZXN0X3J1bm5lci5UZXN0UnVubmVyKHBvcnQsIG9wdGlvbnMsIHByaW50
ZXIpCiAgICAgICAgIHJ1bm5lci5fcHJpbnRfY29uZmlnKCkKIAogICAgICAgICBwcmludGVyLnBy
aW50X3VwZGF0ZSgiQ29sbGVjdGluZyB0ZXN0cyAuLi4iKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>