<?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>103943</bug_id>
          
          <creation_ts>2012-12-03 16:13:08 -0800</creation_ts>
          <short_desc>nrwt: derive per-thread, per-worker stats from result summaries</short_desc>
          <delta_ts>2012-12-04 14:51:13 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>103824</blocked>
    
    <blocked>103951</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dirk Pranke">dpranke</reporter>
          <assigned_to name="Dirk Pranke">dpranke</assigned_to>
          <cc>abarth</cc>
    
    <cc>eric</cc>
    
    <cc>ojan</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>782005</commentid>
    <comment_count>0</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-12-03 16:13:08 -0800</bug_when>
    <thetext>nrwt: derive per-thread, per-worker stats from result summaries</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>782013</commentid>
    <comment_count>1</comment_count>
      <attachid>177367</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-12-03 16:20:49 -0800</bug_when>
    <thetext>Created attachment 177367
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>782698</commentid>
    <comment_count>2</comment_count>
      <attachid>177367</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-12-04 10:47:34 -0800</bug_when>
    <thetext>Comment on attachment 177367
Patch

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

&gt; Tools/ChangeLog:21
&gt; +        Also, this changes the stats so that we report only the time taken
&gt; +        to actually run the test, rather than the time taken to run the test
&gt; +        plus run matching reftests, compute diffs, etc. It&apos;s unclear which
&gt; +        number is actually more interesting, but I suspect most people
&gt; +        expect the stats to report the former; we can always add the latter
&gt; +        back in if needed.

I think for the individual test timings we care about the time actually spent in DRT. But for the aggregate numbers we care about the whole time. For example, all your numbers for the time spent in workers or per-directory will now not include time spent doing the other work, no? That seems less than ideal.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>782732</commentid>
    <comment_count>3</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-12-04 11:09:49 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 177367 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=177367&amp;action=review
&gt; 
&gt; &gt; Tools/ChangeLog:21
&gt; &gt; +        Also, this changes the stats so that we report only the time taken
&gt; &gt; +        to actually run the test, rather than the time taken to run the test
&gt; &gt; +        plus run matching reftests, compute diffs, etc. It&apos;s unclear which
&gt; &gt; +        number is actually more interesting, but I suspect most people
&gt; &gt; +        expect the stats to report the former; we can always add the latter
&gt; &gt; +        back in if needed.
&gt; 
&gt; I think for the individual test timings we care about the time actually spent in DRT. But for the aggregate numbers we care about the whole time. For example, all your numbers for the time spent in workers or per-directory will now not include time spent doing the other work, no? That seems less than ideal.

Yeah, you&apos;re right. I was being a little lazy. I will collect both numbers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>782770</commentid>
    <comment_count>4</comment_count>
      <attachid>177522</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-12-04 11:57:09 -0800</bug_when>
    <thetext>Created attachment 177522
collect both test_run_time and total_run_time</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>782796</commentid>
    <comment_count>5</comment_count>
      <attachid>177522</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-12-04 12:24:55 -0800</bug_when>
    <thetext>Comment on attachment 177522
collect both test_run_time and total_run_time

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

&gt; Tools/Scripts/webkitpy/layout_tests/models/test_results.py:54
&gt; +        self.total_run_time = 0  # The time taken to run the test plus any references, compute diffs, etc.

Where do we set this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>782801</commentid>
    <comment_count>6</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-12-04 12:26:38 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 177522 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=177522&amp;action=review
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/layout_tests/models/test_results.py:54
&gt; &gt; +        self.total_run_time = 0  # The time taken to run the test plus any references, compute diffs, etc.
&gt; 
&gt; Where do we set this?


Here, next to where we set the worker name and shard name:

&gt; Tools/Scripts/webkitpy/layout_tests/controllers/layout_test_runner.py:304
&gt; +        result.total_test_time = time.time() - start</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>782846</commentid>
    <comment_count>7</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-12-04 13:14:34 -0800</bug_when>
    <thetext>total_test_time != total_run_time</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>782850</commentid>
    <comment_count>8</comment_count>
      <attachid>177535</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-12-04 13:26:02 -0800</bug_when>
    <thetext>Created attachment 177535
fix typos, lint</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>782855</commentid>
    <comment_count>9</comment_count>
      <attachid>177537</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-12-04 13:29:41 -0800</bug_when>
    <thetext>Created attachment 177537
fix typos, lint, verify manually</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>782857</commentid>
    <comment_count>10</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-12-04 13:30:24 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; total_test_time != total_run_time

Whoops. Fixed now. Clearly I need some tests for this and don&apos;t have them, but if it&apos;s okay with you I&apos;d like to address that in a separate patch. I verified things look right manually.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>782979</commentid>
    <comment_count>11</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-12-04 14:51:13 -0800</bug_when>
    <thetext>Committed r136579: &lt;http://trac.webkit.org/changeset/136579&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>177367</attachid>
            <date>2012-12-03 16:20:49 -0800</date>
            <delta_ts>2012-12-04 11:57:07 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103943-20121203161815.patch</filename>
            <type>text/plain</type>
            <size>25617</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2NDQzCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNzQwOTk1MGM3MTkxOWEwZWIzY2I3ZmQ3YTY5ZGExZmI0
YWM3MmJlZS4uYjdiMmY5MjJkM2Y1OGIzOGUwMzMzMTA2OTdlNzkwY2ZjYjNmNjgyNCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDU4
IEBACiAyMDEyLTEyLTAzICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgogCisg
ICAgICAgIG5yd3Q6IGRlcml2ZSBwZXItdGhyZWFkLCBwZXItd29ya2VyIHN0YXRzIGZyb20gcmVz
dWx0IHN1bW1hcmllcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTAzOTQzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVGhpcyBwYXRjaCBjaGFuZ2VzIHRoZSBtYW5hZ2VyIGFuZCBwcmludGluZyBjb2RlIHRv
IHB1bGwgbW9yZQorICAgICAgICBpbmZvcm1hdGlvbiBmcm9tIHRoZSBSZXN1bHRTdW1tYXJ5IG9i
amVjdCByYXRoZXIgdGhhbiB0cmFja2luZworICAgICAgICBhZGRpdGlvbmFsIHN0YXRpc3RpY3Mg
b24gdGhlIHNpZGUuIFRoaXMgYWxsb3dzIHVzIHRvIGNvbnNvbGlkYXRlCisgICAgICAgIGEgYnVu
Y2ggb2YgbG9naWMgYW5kIHJlbW92ZSBhIGJ1bmNoIG9mIGZyZWUtZmxvYXRpbmcgbGlzdHMgYW5k
IGRpY3RzIG9mCisgICAgICAgIG9mIHZhbHVlcy4gV2UgYWRkIHRoZSBzaGFyZF9uYW1lIGFuZCB3
b3JrZXJfbmFtZSB0byBlYWNoIFRlc3RSZXN1bHQsCisgICAgICAgIGFuZCB0aGVuIG1vZGlmeSBw
cmludF90aW1pbmdfc3RhdGlzdGljcygpIGFuZCB1cGxvYWRfanNvbl9maWxlcygpCisgICAgICAg
IHRvIGp1c3QgbmVlZCB0aGUgcmVzdWx0IHN1bW1hcmllcy4KKworICAgICAgICBBbHNvLCB0aGlz
IGNoYW5nZXMgdGhlIHN0YXRzIHNvIHRoYXQgd2UgcmVwb3J0IG9ubHkgdGhlIHRpbWUgdGFrZW4K
KyAgICAgICAgdG8gYWN0dWFsbHkgcnVuIHRoZSB0ZXN0LCByYXRoZXIgdGhhbiB0aGUgdGltZSB0
YWtlbiB0byBydW4gdGhlIHRlc3QKKyAgICAgICAgcGx1cyBydW4gbWF0Y2hpbmcgcmVmdGVzdHMs
IGNvbXB1dGUgZGlmZnMsIGV0Yy4gSXQncyB1bmNsZWFyIHdoaWNoCisgICAgICAgIG51bWJlciBp
cyBhY3R1YWxseSBtb3JlIGludGVyZXN0aW5nLCBidXQgSSBzdXNwZWN0IG1vc3QgcGVvcGxlCisg
ICAgICAgIGV4cGVjdCB0aGUgc3RhdHMgdG8gcmVwb3J0IHRoZSBmb3JtZXI7IHdlIGNhbiBhbHdh
eXMgYWRkIHRoZSBsYXR0ZXIKKyAgICAgICAgYmFjayBpbiBpZiBuZWVkZWQuCisgICAgICAgIAor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL2xheW91
dF90ZXN0X3J1bm5lci5weToKKyAgICAgICAgKExheW91dFRlc3RSdW5uZXIuX19pbml0X18pOgor
ICAgICAgICAoTGF5b3V0VGVzdFJ1bm5lci5ydW5fdGVzdHMpOgorICAgICAgICAoTGF5b3V0VGVz
dFJ1bm5lci5fdXBkYXRlX3N1bW1hcnlfd2l0aF9yZXN1bHQpOgorICAgICAgICAoTGF5b3V0VGVz
dFJ1bm5lci5faGFuZGxlX2ZpbmlzaGVkX3Rlc3RfbGlzdCk6CisgICAgICAgIChMYXlvdXRUZXN0
UnVubmVyLl9oYW5kbGVfZmluaXNoZWRfdGVzdCk6CisgICAgICAgIChXb3JrZXIuaGFuZGxlKToK
KyAgICAgICAgKFdvcmtlci5fcnVuX3Rlc3QpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL21hbmFnZXIucHk6CisgICAgICAgIChzdW1tYXJpemVf
cmVzdWx0cyk6CisgICAgICAgIChNYW5hZ2VyLnJ1bik6CisgICAgICAgIChNYW5hZ2VyLl91cGxv
YWRfanNvbl9maWxlcyk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
Y29udHJvbGxlcnMvbWFuYWdlcl91bml0dGVzdC5weToKKyAgICAgICAgKFJlc3VsdFN1bW1hcnlU
ZXN0LnN1bW1hcml6ZWRfcmVzdWx0cyk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvanNvbl9sYXlvdXRfcmVzdWx0c19nZW5lcmF0b3IucHk6
CisgICAgICAgIChKU09OTGF5b3V0UmVzdWx0c0dlbmVyYXRvci5fX2luaXRfXyk6CisgICAgICAg
IChKU09OTGF5b3V0UmVzdWx0c0dlbmVyYXRvci5fZ2V0X3Rlc3RfdGltaW5nKToKKyAgICAgICAg
KiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVzdF9yZXN1bHRzLnB5Ogor
ICAgICAgICAoVGVzdFJlc3VsdC5fX2luaXRfXyk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvdmlld3MvcHJpbnRpbmcucHk6CisgICAgICAgIChQcmludGVyLnByaW50
X3Jlc3VsdHMpOgorICAgICAgICAoUHJpbnRlci5fcHJpbnRfdGltaW5nX3N0YXRpc3RpY3MpOgor
ICAgICAgICAoUHJpbnRlcik6CisgICAgICAgIChQcmludGVyLl9wcmludF93b3JrZXJfc3RhdGlz
dGljcyk6CisgICAgICAgIChQcmludGVyLl9wcmludF9hZ2dyZWdhdGVfdGVzdF9zdGF0aXN0aWNz
KToKKyAgICAgICAgKFByaW50ZXIuX3ByaW50X2luZGl2aWR1YWxfdGVzdF90aW1lcyk6CisgICAg
ICAgIChQcmludGVyLl9wcmludF9kaXJlY3RvcnlfdGltaW5ncyk6CisgICAgICAgICogU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvdmlld3MvcHJpbnRpbmdfdW5pdHRlc3QucHk6CisgICAg
ICAgIChUZXN0cHJpbnRlci50ZXN0X3ByaW50X3VuZXhwZWN0ZWRfcmVzdWx0cy5nZXRfdW5leHBl
Y3RlZF9yZXN1bHRzKToKKyAgICAgICAgKFRlc3RwcmludGVyKToKKworMjAxMi0xMi0wMyAgRGly
ayBQcmFua2UgIDxkcHJhbmtlQGNocm9taXVtLm9yZz4KKwogICAgICAgICB3ZWJraXRweSdzIHJ1
bl93ZWJraXRfdGVzdHMgc2hvdWxkIGluaXRpYWxpemUgdGhlIHByaW50ZXIgZWFybGllciBvbgog
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzNjYxCiAK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xs
ZXJzL2xheW91dF90ZXN0X3J1bm5lci5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL2NvbnRyb2xsZXJzL2xheW91dF90ZXN0X3J1bm5lci5weQppbmRleCBhZjIyNDdiOGEy
ZGViMzA2YjE4MjA0MTJiZWVkMzRkYjQ2MTYyMTFiLi5mYTk5NzUwZmQ4NmRiYTY3YmY0ZDAzOWIw
ODc1YzVkZGVhZTEzZDA1IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9jb250cm9sbGVycy9sYXlvdXRfdGVzdF9ydW5uZXIucHkKKysrIGIvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvbGF5b3V0X3Rlc3RfcnVubmVy
LnB5CkBAIC03NSwyMCArNzUsOSBAQCBjbGFzcyBMYXlvdXRUZXN0UnVubmVyKG9iamVjdCk6CiAg
ICAgICAgIHNlbGYuX25lZWRzX3dlYnNvY2tldHMgPSBOb25lCiAgICAgICAgIHNlbGYuX3JldHJ5
aW5nID0gRmFsc2UKICAgICAgICAgc2VsZi5fdGVzdF9maWxlc19saXN0ID0gW10KLSAgICAgICAg
c2VsZi5fYWxsX3Jlc3VsdHMgPSBbXQotICAgICAgICBzZWxmLl9ncm91cF9zdGF0cyA9IHt9Ci0g
ICAgICAgIHNlbGYuX3dvcmtlcl9zdGF0cyA9IHt9CiAgICAgICAgIHNlbGYuX2ZpbGVzeXN0ZW0g
PSBzZWxmLl9wb3J0Lmhvc3QuZmlsZXN5c3RlbQogCiAgICAgZGVmIHJ1bl90ZXN0cyhzZWxmLCB0
ZXN0X2lucHV0cywgZXhwZWN0YXRpb25zLCByZXN1bHRfc3VtbWFyeSwgbnVtX3dvcmtlcnMsIG5l
ZWRzX2h0dHAsIG5lZWRzX3dlYnNvY2tldHMsIHJldHJ5aW5nKToKLSAgICAgICAgIiIiUmV0dXJu
cyBhIHR1cGxlIG9mICh0aHJlYWRfdGltaW5ncywgdGVzdF90aW1pbmdzLCBpbmRpdmlkdWFsX3Rl
c3RfdGltaW5ncyk6Ci0gICAgICAgICAgICB0aHJlYWRfdGltaW5ncyBpcyBhIGxpc3Qgb2YgZGlj
dHMgd2l0aCB0aGUgdG90YWwgcnVudGltZQotICAgICAgICAgICAgICAgIG9mIGVhY2ggdGhyZWFk
IHdpdGggJ25hbWUnLCAnbnVtX3Rlc3RzJywgJ3RvdGFsX3RpbWUnIHByb3BlcnRpZXMKLSAgICAg
ICAgICAgIHRlc3RfdGltaW5ncyBpcyBhIGxpc3Qgb2YgdGltaW5ncyBmb3IgZWFjaCBzaGFyZGVk
IHN1YmRpcmVjdG9yeQotICAgICAgICAgICAgICAgIG9mIHRoZSBmb3JtIFt0aW1lLCBkaXJlY3Rv
cnlfbmFtZSwgbnVtX3Rlc3RzXQotICAgICAgICAgICAgaW5kaXZpZHVhbF90ZXN0X3RpbWluZ3Mg
aXMgYSBsaXN0IG9mIHJ1biB0aW1lcyBmb3IgZWFjaCB0ZXN0Ci0gICAgICAgICAgICAgICAgaW4g
dGhlIGZvcm0ge2ZpbGVuYW1lOmZpbGVuYW1lLCB0ZXN0X3J1bl90aW1lOnRlc3RfcnVuX3RpbWV9
Ci0gICAgICAgICIiIgogICAgICAgICBzZWxmLl9jdXJyZW50X3Jlc3VsdF9zdW1tYXJ5ID0gcmVz
dWx0X3N1bW1hcnkKICAgICAgICAgc2VsZi5fZXhwZWN0YXRpb25zID0gZXhwZWN0YXRpb25zCiAg
ICAgICAgIHNlbGYuX25lZWRzX2h0dHAgPSBuZWVkc19odHRwCkBAIC0xMjQsNyArMTEzLDcgQEAg
Y2xhc3MgTGF5b3V0VGVzdFJ1bm5lcihvYmplY3QpOgogICAgICAgICBzZWxmLl9wcmludGVyLnBy
aW50X3dvcmtlcnNfYW5kX3NoYXJkcyhudW1fd29ya2VycywgbGVuKGFsbF9zaGFyZHMpLCBsZW4o
bG9ja2VkX3NoYXJkcykpCiAKICAgICAgICAgaWYgc2VsZi5fb3B0aW9ucy5kcnlfcnVuOgotICAg
ICAgICAgICAgcmV0dXJuIChzZWxmLl93b3JrZXJfc3RhdHMudmFsdWVzKCksIHNlbGYuX2dyb3Vw
X3N0YXRzLCBzZWxmLl9hbGxfcmVzdWx0cykKKyAgICAgICAgICAgIHJldHVybiByZXN1bHRfc3Vt
bWFyeQogCiAgICAgICAgIHNlbGYuX3ByaW50ZXIud3JpdGVfdXBkYXRlKCdTdGFydGluZyAlcyAu
Li4nICUgZ3JhbW1hci5wbHVyYWxpemUoJ3dvcmtlcicsIG51bV93b3JrZXJzKSkKIApAQCAtMTQ0
LDggKzEzMyw3IEBAIGNsYXNzIExheW91dFRlc3RSdW5uZXIob2JqZWN0KToKICAgICAgICAgZmlu
YWxseToKICAgICAgICAgICAgIHNlbGYuc3RvcF9zZXJ2ZXJzX3dpdGhfbG9jaygpCiAKLSAgICAg
ICAgIyBGSVhNRTogTW92ZSB0aGVzZSBzdGF0cyBpbnRvIFJlc3VsdFN1bW1hcnkgYW5kIHJldHVy
biB0aGF0LgotICAgICAgICByZXR1cm4gKHNlbGYuX3dvcmtlcl9zdGF0cy52YWx1ZXMoKSwgc2Vs
Zi5fZ3JvdXBfc3RhdHMsIHNlbGYuX2FsbF9yZXN1bHRzKQorICAgICAgICByZXR1cm4gcmVzdWx0
X3N1bW1hcnkKIAogICAgIGRlZiBfd29ya2VyX2ZhY3Rvcnkoc2VsZiwgd29ya2VyX2Nvbm5lY3Rp
b24pOgogICAgICAgICByZXN1bHRzX2RpcmVjdG9yeSA9IHNlbGYuX3Jlc3VsdHNfZGlyZWN0b3J5
CkBAIC0yMzEsOSArMjE5LDcgQEAgY2xhc3MgTGF5b3V0VGVzdFJ1bm5lcihvYmplY3QpOgogICAg
IGRlZiBfaGFuZGxlX3N0YXJ0ZWRfdGVzdChzZWxmLCB3b3JrZXJfbmFtZSwgdGVzdF9pbnB1dCwg
dGVzdF90aW1lb3V0X3NlYyk6CiAgICAgICAgIHNlbGYuX3ByaW50ZXIucHJpbnRfc3RhcnRlZF90
ZXN0KHRlc3RfaW5wdXQudGVzdF9uYW1lKQogCi0gICAgZGVmIF9oYW5kbGVfZmluaXNoZWRfdGVz
dF9saXN0KHNlbGYsIHdvcmtlcl9uYW1lLCBsaXN0X25hbWUsIG51bV90ZXN0cywgZWxhcHNlZF90
aW1lKToKLSAgICAgICAgc2VsZi5fZ3JvdXBfc3RhdHNbbGlzdF9uYW1lXSA9IChudW1fdGVzdHMs
IGVsYXBzZWRfdGltZSkKLQorICAgIGRlZiBfaGFuZGxlX2ZpbmlzaGVkX3Rlc3RfbGlzdChzZWxm
LCB3b3JrZXJfbmFtZSwgbGlzdF9uYW1lKToKICAgICAgICAgZGVmIGZpbmQobmFtZSwgdGVzdF9s
aXN0cyk6CiAgICAgICAgICAgICBmb3IgaSBpbiByYW5nZShsZW4odGVzdF9saXN0cykpOgogICAg
ICAgICAgICAgICAgIGlmIHRlc3RfbGlzdHNbaV0ubmFtZSA9PSBuYW1lOgpAQCAtMjQ2LDExICsy
MzIsNyBAQCBjbGFzcyBMYXlvdXRUZXN0UnVubmVyKG9iamVjdCk6CiAgICAgICAgICAgICBpZiBu
b3Qgc2VsZi5fcmVtYWluaW5nX2xvY2tlZF9zaGFyZHMgYW5kIG5vdCBzZWxmLl9wb3J0LnJlcXVp
cmVzX2h0dHBfc2VydmVyKCk6CiAgICAgICAgICAgICAgICAgc2VsZi5zdG9wX3NlcnZlcnNfd2l0
aF9sb2NrKCkKIAotICAgIGRlZiBfaGFuZGxlX2ZpbmlzaGVkX3Rlc3Qoc2VsZiwgd29ya2VyX25h
bWUsIHJlc3VsdCwgZWxhcHNlZF90aW1lLCBsb2dfbWVzc2FnZXM9W10pOgotICAgICAgICBzZWxm
Ll93b3JrZXJfc3RhdHMuc2V0ZGVmYXVsdCh3b3JrZXJfbmFtZSwgeyduYW1lJzogd29ya2VyX25h
bWUsICdudW1fdGVzdHMnOiAwLCAndG90YWxfdGltZSc6IDB9KQotICAgICAgICBzZWxmLl93b3Jr
ZXJfc3RhdHNbd29ya2VyX25hbWVdWyd0b3RhbF90aW1lJ10gKz0gZWxhcHNlZF90aW1lCi0gICAg
ICAgIHNlbGYuX3dvcmtlcl9zdGF0c1t3b3JrZXJfbmFtZV1bJ251bV90ZXN0cyddICs9IDEKLSAg
ICAgICAgc2VsZi5fYWxsX3Jlc3VsdHMuYXBwZW5kKHJlc3VsdCkKKyAgICBkZWYgX2hhbmRsZV9m
aW5pc2hlZF90ZXN0KHNlbGYsIHdvcmtlcl9uYW1lLCByZXN1bHQsIGxvZ19tZXNzYWdlcz1bXSk6
CiAgICAgICAgIHNlbGYuX3VwZGF0ZV9zdW1tYXJ5X3dpdGhfcmVzdWx0KHNlbGYuX2N1cnJlbnRf
cmVzdWx0X3N1bW1hcnksIHJlc3VsdCkKIAogCkBAIC0yOTAsMTEgKzI3Miw5IEBAIGNsYXNzIFdv
cmtlcihvYmplY3QpOgogCiAgICAgZGVmIGhhbmRsZShzZWxmLCBuYW1lLCBzb3VyY2UsIHRlc3Rf
bGlzdF9uYW1lLCB0ZXN0X2lucHV0cyk6CiAgICAgICAgIGFzc2VydCBuYW1lID09ICd0ZXN0X2xp
c3QnCi0gICAgICAgIHN0YXJ0X3RpbWUgPSB0aW1lLnRpbWUoKQogICAgICAgICBmb3IgdGVzdF9p
bnB1dCBpbiB0ZXN0X2lucHV0czoKLSAgICAgICAgICAgIHNlbGYuX3J1bl90ZXN0KHRlc3RfaW5w
dXQpCi0gICAgICAgIGVsYXBzZWRfdGltZSA9IHRpbWUudGltZSgpIC0gc3RhcnRfdGltZQotICAg
ICAgICBzZWxmLl9jYWxsZXIucG9zdCgnZmluaXNoZWRfdGVzdF9saXN0JywgdGVzdF9saXN0X25h
bWUsIGxlbih0ZXN0X2lucHV0cyksIGVsYXBzZWRfdGltZSkKKyAgICAgICAgICAgIHNlbGYuX3J1
bl90ZXN0KHRlc3RfaW5wdXQsIHRlc3RfbGlzdF9uYW1lKQorICAgICAgICBzZWxmLl9jYWxsZXIu
cG9zdCgnZmluaXNoZWRfdGVzdF9saXN0JywgdGVzdF9saXN0X25hbWUpCiAKICAgICBkZWYgX3Vw
ZGF0ZV90ZXN0X2lucHV0KHNlbGYsIHRlc3RfaW5wdXQpOgogICAgICAgICBpZiB0ZXN0X2lucHV0
LnJlZmVyZW5jZV9maWxlcyBpcyBOb25lOgpAQCAtMzA1LDcgKzI4NSw3IEBAIGNsYXNzIFdvcmtl
cihvYmplY3QpOgogICAgICAgICBlbHNlOgogICAgICAgICAgICAgdGVzdF9pbnB1dC5zaG91bGRf
cnVuX3BpeGVsX3Rlc3QgPSBzZWxmLl9wb3J0LnNob3VsZF9ydW5fYXNfcGl4ZWxfdGVzdCh0ZXN0
X2lucHV0KQogCi0gICAgZGVmIF9ydW5fdGVzdChzZWxmLCB0ZXN0X2lucHV0KToKKyAgICBkZWYg
X3J1bl90ZXN0KHNlbGYsIHRlc3RfaW5wdXQsIHNoYXJkX25hbWUpOgogICAgICAgICBzZWxmLl9i
YXRjaF9jb3VudCArPSAxCiAKICAgICAgICAgc3RvcF93aGVuX2RvbmUgPSBGYWxzZQpAQCAtMzE1
LDEzICsyOTUsMTMgQEAgY2xhc3MgV29ya2VyKG9iamVjdCk6CiAKICAgICAgICAgc2VsZi5fdXBk
YXRlX3Rlc3RfaW5wdXQodGVzdF9pbnB1dCkKICAgICAgICAgdGVzdF90aW1lb3V0X3NlYyA9IHNl
bGYuX3RpbWVvdXQodGVzdF9pbnB1dCkKLSAgICAgICAgc3RhcnQgPSB0aW1lLnRpbWUoKQogICAg
ICAgICBzZWxmLl9jYWxsZXIucG9zdCgnc3RhcnRlZF90ZXN0JywgdGVzdF9pbnB1dCwgdGVzdF90
aW1lb3V0X3NlYykKIAogICAgICAgICByZXN1bHQgPSBzZWxmLl9ydW5fdGVzdF93aXRoX3RpbWVv
dXQodGVzdF9pbnB1dCwgdGVzdF90aW1lb3V0X3NlYywgc3RvcF93aGVuX2RvbmUpCisgICAgICAg
IHJlc3VsdC5zaGFyZF9uYW1lID0gc2hhcmRfbmFtZQorICAgICAgICByZXN1bHQud29ya2VyX25h
bWUgPSBzZWxmLl9uYW1lCiAKLSAgICAgICAgZWxhcHNlZF90aW1lID0gdGltZS50aW1lKCkgLSBz
dGFydAotICAgICAgICBzZWxmLl9jYWxsZXIucG9zdCgnZmluaXNoZWRfdGVzdCcsIHJlc3VsdCwg
ZWxhcHNlZF90aW1lKQorICAgICAgICBzZWxmLl9jYWxsZXIucG9zdCgnZmluaXNoZWRfdGVzdCcs
IHJlc3VsdCkKIAogICAgICAgICBzZWxmLl9jbGVhbl91cF9hZnRlcl90ZXN0KHRlc3RfaW5wdXQs
IHJlc3VsdCkKIApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvY29udHJvbGxlcnMvbWFuYWdlci5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL2NvbnRyb2xsZXJzL21hbmFnZXIucHkKaW5kZXggMDQ1OTIzMjcwMDNhNTEwMjE2ZDBk
OTcyZTBjMjRmODg4ODQ0MzVhMi4uMGM3OTgwNDIxMTk2Zjg0YTQ4NjBkY2E3ZjYyZjJmNWU1OTJi
ODI2YiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29u
dHJvbGxlcnMvbWFuYWdlci5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9jb250cm9sbGVycy9tYW5hZ2VyLnB5CkBAIC0xMDcsNyArMTA3LDcgQEAgZGVmIHVzZV90
cmFjX2xpbmtzX2luX3Jlc3VsdHNfaHRtbChwb3J0X29iaik6CiAjIG9yIHNwbGl0IG9mZiBmcm9t
IE1hbmFnZXIgb250byBhbm90aGVyIGhlbHBlciBjbGFzcywgYnV0IHNob3VsZCBub3QgYmUgYSBm
cmVlIGZ1bmN0aW9uLgogIyBNb3N0IGxpa2VseSB0aGlzIHNob3VsZCBiZSBtYWRlIGludG8gaXRz
IG93biBjbGFzcywgYW5kIHRoaXMgc3VwZXItbG9uZyBmdW5jdGlvbgogIyBzcGxpdCBpbnRvIG1h
bnkgaGVscGVyIGZ1bmN0aW9ucy4KLWRlZiBzdW1tYXJpemVfcmVzdWx0cyhwb3J0X29iaiwgZXhw
ZWN0YXRpb25zLCByZXN1bHRfc3VtbWFyeSwgcmV0cnlfc3VtbWFyeSwgdGVzdF90aW1pbmdzLCBv
bmx5X3VuZXhwZWN0ZWQpOgorZGVmIHN1bW1hcml6ZV9yZXN1bHRzKHBvcnRfb2JqLCBleHBlY3Rh
dGlvbnMsIHJlc3VsdF9zdW1tYXJ5LCByZXRyeV9zdW1tYXJ5LCBvbmx5X3VuZXhwZWN0ZWQpOgog
ICAgICIiIlN1bW1hcml6ZSBmYWlsaW5nIHJlc3VsdHMgYXMgYSBkaWN0LgogCiAgICAgRklYTUU6
IHNwbGl0IHRoaXMgZGF0YSBzdHJ1Y3R1cmUgaW50byBhIHNlcGFyYXRlIGNsYXNzPwpAQCAtMTE3
LDcgKzExNyw2IEBAIGRlZiBzdW1tYXJpemVfcmVzdWx0cyhwb3J0X29iaiwgZXhwZWN0YXRpb25z
LCByZXN1bHRfc3VtbWFyeSwgcmV0cnlfc3VtbWFyeSwgdGVzCiAgICAgICAgIGV4cGVjdGF0aW9u
czogdGVzdF9leHBlY3RhdGlvbnMuVGVzdEV4cGVjdGF0aW9ucyBvYmplY3QKICAgICAgICAgcmVz
dWx0X3N1bW1hcnk6IHN1bW1hcnkgb2JqZWN0IGZyb20gaW5pdGlhbCB0ZXN0IHJ1bnMKICAgICAg
ICAgcmV0cnlfc3VtbWFyeTogc3VtbWFyeSBvYmplY3QgZnJvbSBmaW5hbCB0ZXN0IHJ1biBvZiBy
ZXRyaWVkIHRlc3RzCi0gICAgICAgIHRlc3RfdGltaW5nczogYSBsaXN0IG9mIFRlc3RSZXN1bHQg
b2JqZWN0cyB3aGljaCBjb250YWluIHRlc3QgcnVudGltZXMgaW4gc2Vjb25kcwogICAgICAgICBv
bmx5X3VuZXhwZWN0ZWQ6IHdoZXRoZXIgdG8gcmV0dXJuIGEgc3VtbWFyeSBvbmx5IGZvciB0aGUg
dW5leHBlY3RlZCByZXN1bHRzCiAgICAgUmV0dXJuczoKICAgICAgICAgQSBkaWN0aW9uYXJ5IGNv
bnRhaW5pbmcgYSBzdW1tYXJ5IG9mIHRoZSB1bmV4cGVjdGVkIHJlc3VsdHMgZnJvbSB0aGUKQEAg
LTQwMiwxNCArNDAxLDEwIEBAIGNsYXNzIE1hbmFnZXIob2JqZWN0KToKICAgICAgICAgICAgIHJl
dHVybiAtMQogCiAgICAgICAgIHN0YXJ0X3RpbWUgPSB0aW1lLnRpbWUoKQotICAgICAgICByZXRy
eV9zdW1tYXJ5ID0gcmVzdWx0X3N1bW1hcnkKIAotICAgICAgICAjIEZJWE1FOiBtb3ZlIHRoZXNl
IGZpZWxkcyBpbnRvIHJlc3VsdF9zdW1tYXJ5IHNvIHdlIGRvbid0IGhhdmUgdG8gcGFzcyB0aGVt
IGFyb3VuZC4KLSAgICAgICAgdGhyZWFkX3RpbWluZ3MgPSB0ZXN0X3RpbWluZ3MgPSB7fQotICAg
ICAgICBpbmRpdmlkdWFsX3Rlc3RfdGltaW5ncyA9IFtdCisgICAgICAgIHJldHJ5X3N1bW1hcnkg
PSBOb25lCiAgICAgICAgIHRyeToKLSAgICAgICAgICAgIHRocmVhZF90aW1pbmdzLCB0ZXN0X3Rp
bWluZ3MsIGluZGl2aWR1YWxfdGVzdF90aW1pbmdzID0gXAotICAgICAgICAgICAgICAgIHNlbGYu
X3J1bl90ZXN0cyhzZWxmLl90ZXN0X25hbWVzLCByZXN1bHRfc3VtbWFyeSwgaW50KHNlbGYuX29w
dGlvbnMuY2hpbGRfcHJvY2Vzc2VzKSwgcmV0cnlpbmc9RmFsc2UpCisgICAgICAgICAgICByZXN1
bHRfc3VtbWFyeSA9IHNlbGYuX3J1bl90ZXN0cyhzZWxmLl90ZXN0X25hbWVzLCByZXN1bHRfc3Vt
bWFyeSwgaW50KHNlbGYuX29wdGlvbnMuY2hpbGRfcHJvY2Vzc2VzKSwgcmV0cnlpbmc9RmFsc2Up
CiAKICAgICAgICAgICAgICMgV2UgZXhjbHVkZSB0aGUgY3Jhc2hlcyBmcm9tIHRoZSBsaXN0IG9m
IHJlc3VsdHMgdG8gcmV0cnksIGJlY2F1c2UKICAgICAgICAgICAgICMgd2Ugd2FudCB0byB0cmVh
dCBldmVuIGEgcG90ZW50aWFsbHkgZmxha3kgY3Jhc2ggYXMgYW4gZXJyb3IuCkBAIC00MTksOSAr
NDE0LDcgQEAgY2xhc3MgTWFuYWdlcihvYmplY3QpOgogICAgICAgICAgICAgICAgIF9sb2cuaW5m
bygnJykKICAgICAgICAgICAgICAgICBfbG9nLmluZm8oIlJldHJ5aW5nICVkIHVuZXhwZWN0ZWQg
ZmFpbHVyZShzKSAuLi4iICUgbGVuKGZhaWx1cmVzKSkKICAgICAgICAgICAgICAgICBfbG9nLmlu
Zm8oJycpCi0gICAgICAgICAgICAgICAgIyBOb3RlIHRoYXQgd2UgZG9uJ3QgY2FyZSBhYm91dCB0
aGUgdmFsdWVzIHJldHVybmVkIGZyb20gdGhlIHJldHJ5IHBhc3MuCi0gICAgICAgICAgICAgICAg
cmV0cnlfc3VtbWFyeSA9IFJlc3VsdFN1bW1hcnkoc2VsZi5fZXhwZWN0YXRpb25zLCBmYWlsdXJl
cywgMSwgc2V0KCkpCi0gICAgICAgICAgICAgICAgXyA9IHNlbGYuX3J1bl90ZXN0cyhmYWlsdXJl
cywgcmV0cnlfc3VtbWFyeSwgMSwgcmV0cnlpbmc9VHJ1ZSkKKyAgICAgICAgICAgICAgICByZXRy
eV9zdW1tYXJ5ID0gc2VsZi5fcnVuX3Rlc3RzKGZhaWx1cmVzLCBSZXN1bHRTdW1tYXJ5KHNlbGYu
X2V4cGVjdGF0aW9ucywgZmFpbHVyZXMsIDEsIHNldCgpKSwgMSwgcmV0cnlpbmc9VHJ1ZSkKICAg
ICAgICAgZmluYWxseToKICAgICAgICAgICAgICMgSWYgd2UgYXJlIGN0cmwtYydlZDsgd2Ugc3Rp
bGwgd2FudCB0byB0cnkgYW5kIHByaW50IHRoZSByZXN1bHRzIHdlIGdvdCwgYW5kIGNsZWFuIHVw
LAogICAgICAgICAgICAgIyBidXQgd2UgZG9uJ3Qgd2FudCB0byB1cGxvYWQgYW55dGhpbmcuCkBA
IC00MzAsMjAgKzQyMywyNSBAQCBjbGFzcyBNYW5hZ2VyKG9iamVjdCk6CiAgICAgICAgICAgICAj
IFNvbWUgY3Jhc2ggbG9ncyBjYW4gdGFrZSBhIGxvbmcgdGltZSB0byBiZSB3cml0dGVuIG91dCBz
byBsb29rCiAgICAgICAgICAgICAjIGZvciBuZXcgbG9ncyBhZnRlciB0aGUgdGVzdCBydW4gZmlu
aXNoZXMuCiAgICAgICAgICAgICBzZWxmLl9sb29rX2Zvcl9uZXdfY3Jhc2hfbG9ncyhyZXN1bHRf
c3VtbWFyeSwgc3RhcnRfdGltZSkKLSAgICAgICAgICAgIHNlbGYuX2xvb2tfZm9yX25ld19jcmFz
aF9sb2dzKHJldHJ5X3N1bW1hcnksIHN0YXJ0X3RpbWUpCisgICAgICAgICAgICBpZiByZXRyeV9z
dW1tYXJ5OgorICAgICAgICAgICAgICAgIHNlbGYuX2xvb2tfZm9yX25ld19jcmFzaF9sb2dzKHJl
dHJ5X3N1bW1hcnksIHN0YXJ0X3RpbWUpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAg
ICAgICMgRklYTUU6IE1vZGlmeSBzdW1tYXJpemVfcmVzdWx0cyB0byBoYW5kbGUgcmV0cnlfc3Vt
bWFyeSA9PSBOb25lLgorICAgICAgICAgICAgICAgIHJldHJ5X3N1bW1hcnkgPSByZXN1bHRfc3Vt
bWFyeQorCiAgICAgICAgICAgICBzZWxmLl9jbGVhbl91cF9ydW4oKQogCi0gICAgICAgICAgICB1
bmV4cGVjdGVkX3Jlc3VsdHMgPSBzdW1tYXJpemVfcmVzdWx0cyhzZWxmLl9wb3J0LCBzZWxmLl9l
eHBlY3RhdGlvbnMsIHJlc3VsdF9zdW1tYXJ5LCByZXRyeV9zdW1tYXJ5LCBpbmRpdmlkdWFsX3Rl
c3RfdGltaW5ncywgb25seV91bmV4cGVjdGVkPVRydWUpCisgICAgICAgICAgICB1bmV4cGVjdGVk
X3Jlc3VsdHMgPSBzdW1tYXJpemVfcmVzdWx0cyhzZWxmLl9wb3J0LCBzZWxmLl9leHBlY3RhdGlv
bnMsIHJlc3VsdF9zdW1tYXJ5LCByZXRyeV9zdW1tYXJ5LCBvbmx5X3VuZXhwZWN0ZWQ9VHJ1ZSkK
IAotICAgICAgICAgICAgc2VsZi5fcHJpbnRlci5wcmludF9yZXN1bHRzKGVuZF90aW1lIC0gc3Rh
cnRfdGltZSwgdGhyZWFkX3RpbWluZ3MsIHRlc3RfdGltaW5ncywgaW5kaXZpZHVhbF90ZXN0X3Rp
bWluZ3MsIHJlc3VsdF9zdW1tYXJ5LCB1bmV4cGVjdGVkX3Jlc3VsdHMpCisgICAgICAgICAgICBz
ZWxmLl9wcmludGVyLnByaW50X3Jlc3VsdHMoZW5kX3RpbWUgLSBzdGFydF90aW1lLCByZXN1bHRf
c3VtbWFyeSwgdW5leHBlY3RlZF9yZXN1bHRzKQogCiAgICAgICAgICMgRklYTUU6IHJlbW92ZSBy
ZWNvcmRfcmVzdWx0cy4gSXQncyBqdXN0IHVzZWQgZm9yIHRlc3RpbmcuIFRoZXJlJ3Mgbm8gbmVl
ZAogICAgICAgICAjIGZvciBpdCB0byBiZSBhIGNvbW1hbmRsaW5lIGFyZ3VtZW50LgogICAgICAg
ICBpZiBzZWxmLl9vcHRpb25zLnJlY29yZF9yZXN1bHRzIGFuZCBub3Qgc2VsZi5fb3B0aW9ucy5k
cnlfcnVuOgogICAgICAgICAgICAgc2VsZi5fcG9ydC5wcmludF9sZWFrc19zdW1tYXJ5KCkKICAg
ICAgICAgICAgICMgV3JpdGUgdGhlIHNhbWUgZGF0YSB0byBsb2cgZmlsZXMgYW5kIHVwbG9hZCBn
ZW5lcmF0ZWQgSlNPTiBmaWxlcyB0byBhcHBlbmdpbmUgc2VydmVyLgotICAgICAgICAgICAgc3Vt
bWFyaXplZF9yZXN1bHRzID0gc3VtbWFyaXplX3Jlc3VsdHMoc2VsZi5fcG9ydCwgc2VsZi5fZXhw
ZWN0YXRpb25zLCByZXN1bHRfc3VtbWFyeSwgcmV0cnlfc3VtbWFyeSwgaW5kaXZpZHVhbF90ZXN0
X3RpbWluZ3MsIG9ubHlfdW5leHBlY3RlZD1GYWxzZSkKLSAgICAgICAgICAgIHNlbGYuX3VwbG9h
ZF9qc29uX2ZpbGVzKHN1bW1hcml6ZWRfcmVzdWx0cywgcmVzdWx0X3N1bW1hcnksIGluZGl2aWR1
YWxfdGVzdF90aW1pbmdzKQorICAgICAgICAgICAgc3VtbWFyaXplZF9yZXN1bHRzID0gc3VtbWFy
aXplX3Jlc3VsdHMoc2VsZi5fcG9ydCwgc2VsZi5fZXhwZWN0YXRpb25zLCByZXN1bHRfc3VtbWFy
eSwgcmV0cnlfc3VtbWFyeSwgb25seV91bmV4cGVjdGVkPUZhbHNlKQorICAgICAgICAgICAgc2Vs
Zi5fdXBsb2FkX2pzb25fZmlsZXMoc3VtbWFyaXplZF9yZXN1bHRzLCByZXN1bHRfc3VtbWFyeSkK
IAogICAgICAgICAjIFdyaXRlIHRoZSBzdW1tYXJ5IHRvIGRpc2sgKHJlc3VsdHMuaHRtbCkgYW5k
IGRpc3BsYXkgaXQgaWYgcmVxdWVzdGVkLgogICAgICAgICBpZiBub3Qgc2VsZi5fb3B0aW9ucy5k
cnlfcnVuOgpAQCAtNTE3LDIwICs1MTUsMTcgQEAgY2xhc3MgTWFuYWdlcihvYmplY3QpOgogCiAg
ICAgICAgIHJldHVybiBmYWlsZWRfdGVzdF9uYW1lcwogCi0gICAgZGVmIF91cGxvYWRfanNvbl9m
aWxlcyhzZWxmLCBzdW1tYXJpemVkX3Jlc3VsdHMsIHJlc3VsdF9zdW1tYXJ5LCBpbmRpdmlkdWFs
X3Rlc3RfdGltaW5ncyk6CisgICAgZGVmIF91cGxvYWRfanNvbl9maWxlcyhzZWxmLCBzdW1tYXJp
emVkX3Jlc3VsdHMsIHJlc3VsdF9zdW1tYXJ5KToKICAgICAgICAgIiIiV3JpdGVzIHRoZSByZXN1
bHRzIG9mIHRoZSB0ZXN0IHJ1biBhcyBKU09OIGZpbGVzIGludG8gdGhlIHJlc3VsdHMKICAgICAg
ICAgZGlyIGFuZCB1cGxvYWQgdGhlIGZpbGVzIHRvIHRoZSBhcHBlbmdpbmUgc2VydmVyLgogCiAg
ICAgICAgIEFyZ3M6Ci0gICAgICAgICAgdW5leHBlY3RlZF9yZXN1bHRzOiBkaWN0IG9mIHVuZXhw
ZWN0ZWQgcmVzdWx0cwogICAgICAgICAgIHN1bW1hcml6ZWRfcmVzdWx0czogZGljdCBvZiByZXN1
bHRzCiAgICAgICAgICAgcmVzdWx0X3N1bW1hcnk6IGZ1bGwgc3VtbWFyeSBvYmplY3QKLSAgICAg
ICAgICBpbmRpdmlkdWFsX3Rlc3RfdGltaW5nczogbGlzdCBvZiB0ZXN0IHRpbWVzICh1c2VkIGJ5
IHRoZSBmbGFraW5lc3MKLSAgICAgICAgICAgIGRhc2hib2FyZCkuCiAgICAgICAgICIiIgogICAg
ICAgICBfbG9nLmRlYnVnKCJXcml0aW5nIEpTT04gZmlsZXMgaW4gJXMuIiAlIHNlbGYuX3Jlc3Vs
dHNfZGlyZWN0b3J5KQogCi0gICAgICAgIHRpbWVzX3RyaWUgPSBqc29uX3Jlc3VsdHNfZ2VuZXJh
dG9yLnRlc3RfdGltaW5nc190cmllKHNlbGYuX3BvcnQsIGluZGl2aWR1YWxfdGVzdF90aW1pbmdz
KQorICAgICAgICB0aW1lc190cmllID0ganNvbl9yZXN1bHRzX2dlbmVyYXRvci50ZXN0X3RpbWlu
Z3NfdHJpZShzZWxmLl9wb3J0LCByZXN1bHRfc3VtbWFyeS5yZXN1bHRzLnZhbHVlcygpKQogICAg
ICAgICB0aW1lc19qc29uX3BhdGggPSBzZWxmLl9maWxlc3lzdGVtLmpvaW4oc2VsZi5fcmVzdWx0
c19kaXJlY3RvcnksICJ0aW1lc19tcy5qc29uIikKICAgICAgICAganNvbl9yZXN1bHRzX2dlbmVy
YXRvci53cml0ZV9qc29uKHNlbGYuX2ZpbGVzeXN0ZW0sIHRpbWVzX3RyaWUsIHRpbWVzX2pzb25f
cGF0aCkKIApAQCAtNTQxLDcgKzUzNiw3IEBAIGNsYXNzIE1hbmFnZXIob2JqZWN0KToKICAgICAg
ICAgZ2VuZXJhdG9yID0ganNvbl9sYXlvdXRfcmVzdWx0c19nZW5lcmF0b3IuSlNPTkxheW91dFJl
c3VsdHNHZW5lcmF0b3IoCiAgICAgICAgICAgICBzZWxmLl9wb3J0LCBzZWxmLl9vcHRpb25zLmJ1
aWxkZXJfbmFtZSwgc2VsZi5fb3B0aW9ucy5idWlsZF9uYW1lLAogICAgICAgICAgICAgc2VsZi5f
b3B0aW9ucy5idWlsZF9udW1iZXIsIHNlbGYuX3Jlc3VsdHNfZGlyZWN0b3J5LAotICAgICAgICAg
ICAgQlVJTERFUl9CQVNFX1VSTCwgaW5kaXZpZHVhbF90ZXN0X3RpbWluZ3MsCisgICAgICAgICAg
ICBCVUlMREVSX0JBU0VfVVJMLAogICAgICAgICAgICAgc2VsZi5fZXhwZWN0YXRpb25zLCByZXN1
bHRfc3VtbWFyeSwgc2VsZi5fdGVzdF9uYW1lcywKICAgICAgICAgICAgIHNlbGYuX29wdGlvbnMu
dGVzdF9yZXN1bHRzX3NlcnZlciwKICAgICAgICAgICAgICJsYXlvdXQtdGVzdHMiLApkaWZmIC0t
Z2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvbWFu
YWdlcl91bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2Nv
bnRyb2xsZXJzL21hbmFnZXJfdW5pdHRlc3QucHkKaW5kZXggMTdmY2VhZjU4MGUxMjA3MDM0NGIy
YjI1MmNkZGFmODdiMTM0MzU2Ni4uYmY4ODlhMzZjMzQwMmU3YWFiNmRkYjUzNWY2OGI5ODIzNWQz
YWU4MCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29u
dHJvbGxlcnMvbWFuYWdlcl91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9tYW5hZ2VyX3VuaXR0ZXN0LnB5CkBAIC0xNzgsOCAr
MTc4LDggQEAgY2xhc3MgUmVzdWx0U3VtbWFyeVRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAg
ICAgICAgICAgcmV0cnkuYWRkKHNlbGYuZ2V0X3Jlc3VsdCgncGFzc2VzL3RleHQuaHRtbCcpLCBU
cnVlLCB0ZXN0X2lzX3Nsb3cpCiAgICAgICAgICAgICByZXRyeS5hZGQoc2VsZi5nZXRfcmVzdWx0
KCdmYWlsdXJlcy9leHBlY3RlZC90aW1lb3V0Lmh0bWwnKSwgVHJ1ZSwgdGVzdF9pc19zbG93KQog
ICAgICAgICAgICAgcmV0cnkuYWRkKHNlbGYuZ2V0X3Jlc3VsdCgnZmFpbHVyZXMvZXhwZWN0ZWQv
Y3Jhc2guaHRtbCcpLCBUcnVlLCB0ZXN0X2lzX3Nsb3cpCi0gICAgICAgIHVuZXhwZWN0ZWRfcmVz
dWx0cyA9IHN1bW1hcml6ZV9yZXN1bHRzKHBvcnQsIGV4cCwgcnMsIHJldHJ5LCB0ZXN0X3RpbWlu
Z3M9e30sIG9ubHlfdW5leHBlY3RlZD1UcnVlKQotICAgICAgICBleHBlY3RlZF9yZXN1bHRzID0g
c3VtbWFyaXplX3Jlc3VsdHMocG9ydCwgZXhwLCBycywgcmV0cnksIHRlc3RfdGltaW5ncz17fSwg
b25seV91bmV4cGVjdGVkPUZhbHNlKQorICAgICAgICB1bmV4cGVjdGVkX3Jlc3VsdHMgPSBzdW1t
YXJpemVfcmVzdWx0cyhwb3J0LCBleHAsIHJzLCByZXRyeSwgb25seV91bmV4cGVjdGVkPVRydWUp
CisgICAgICAgIGV4cGVjdGVkX3Jlc3VsdHMgPSBzdW1tYXJpemVfcmVzdWx0cyhwb3J0LCBleHAs
IHJzLCByZXRyeSwgb25seV91bmV4cGVjdGVkPUZhbHNlKQogICAgICAgICByZXR1cm4gZXhwZWN0
ZWRfcmVzdWx0cywgdW5leHBlY3RlZF9yZXN1bHRzCiAKICAgICBkZWYgdGVzdF9ub19zdm5fcmV2
aXNpb24oc2VsZik6CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9sYXlvdXRfcGFja2FnZS9qc29uX2xheW91dF9yZXN1bHRzX2dlbmVyYXRvci5weSBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL2pzb25fbGF5
b3V0X3Jlc3VsdHNfZ2VuZXJhdG9yLnB5CmluZGV4IGYyNzdjOTNkZTgxM2IxYTU4ZjU3N2NjNmQy
YjI5ODYwOGU4M2I2N2EuLjJmOWEzMjFkOTdmZjg3YzJmMGZhZDY0OTE5NTY0NDQwMDQyOGNkNTkg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9w
YWNrYWdlL2pzb25fbGF5b3V0X3Jlc3VsdHNfZ2VuZXJhdG9yLnB5CisrKyBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL2pzb25fbGF5b3V0X3Jlc3Vs
dHNfZ2VuZXJhdG9yLnB5CkBAIC01Miw3ICs1Miw3IEBAIGNsYXNzIEpTT05MYXlvdXRSZXN1bHRz
R2VuZXJhdG9yKGpzb25fcmVzdWx0c19nZW5lcmF0b3IuSlNPTlJlc3VsdHNHZW5lcmF0b3JCYXNl
CiAKICAgICBkZWYgX19pbml0X18oc2VsZiwgcG9ydCwgYnVpbGRlcl9uYW1lLCBidWlsZF9uYW1l
LCBidWlsZF9udW1iZXIsCiAgICAgICAgIHJlc3VsdHNfZmlsZV9iYXNlX3BhdGgsIGJ1aWxkZXJf
YmFzZV91cmwsCi0gICAgICAgIHRlc3RfdGltaW5ncywgZXhwZWN0YXRpb25zLCByZXN1bHRfc3Vt
bWFyeSwgYWxsX3Rlc3RzLAorICAgICAgICBleHBlY3RhdGlvbnMsIHJlc3VsdF9zdW1tYXJ5LCBh
bGxfdGVzdHMsCiAgICAgICAgIHRlc3RfcmVzdWx0c19zZXJ2ZXI9Tm9uZSwgdGVzdF90eXBlPSIi
LCBtYXN0ZXJfbmFtZT0iIik6CiAgICAgICAgICIiIk1vZGlmaWVzIHRoZSByZXN1bHRzLmpzb24g
ZmlsZS4gR3JhYnMgaXQgb2ZmIHRoZSBhcmNoaXZlIGRpcmVjdG9yeQogICAgICAgICBpZiBpdCBp
cyBub3QgZm91bmQgbG9jYWxseS4KQEAgLTcxLDcgKzcxLDcgQEAgY2xhc3MgSlNPTkxheW91dFJl
c3VsdHNHZW5lcmF0b3IoanNvbl9yZXN1bHRzX2dlbmVyYXRvci5KU09OUmVzdWx0c0dlbmVyYXRv
ckJhc2UKICAgICAgICAgc2VsZi5fcmVzdWx0X3N1bW1hcnkgPSByZXN1bHRfc3VtbWFyeQogICAg
ICAgICBzZWxmLl9mYWlsdXJlcyA9IGRpY3QoKHRlc3RfbmFtZSwgcmVzdWx0X3N1bW1hcnkucmVz
dWx0c1t0ZXN0X25hbWVdLnR5cGUpIGZvciB0ZXN0X25hbWUgaW4gcmVzdWx0X3N1bW1hcnkuZmFp
bHVyZXMpCiAgICAgICAgIHNlbGYuX2FsbF90ZXN0cyA9IGFsbF90ZXN0cwotICAgICAgICBzZWxm
Ll90ZXN0X3RpbWluZ3MgPSBkaWN0KCh0ZXN0X3R1cGxlLnRlc3RfbmFtZSwgdGVzdF90dXBsZS50
ZXN0X3J1bl90aW1lKSBmb3IgdGVzdF90dXBsZSBpbiB0ZXN0X3RpbWluZ3MpCisgICAgICAgIHNl
bGYuX3Rlc3RfdGltaW5ncyA9IHJlc3VsdF9zdW1tYXJ5LnJlc3VsdHMKIAogICAgICAgICBzZWxm
LmdlbmVyYXRlX2pzb25fb3V0cHV0KCkKIApAQCAtOTksNyArOTksNyBAQCBjbGFzcyBKU09OTGF5
b3V0UmVzdWx0c0dlbmVyYXRvcihqc29uX3Jlc3VsdHNfZ2VuZXJhdG9yLkpTT05SZXN1bHRzR2Vu
ZXJhdG9yQmFzZQogICAgIGRlZiBfZ2V0X3Rlc3RfdGltaW5nKHNlbGYsIHRlc3RfbmFtZSk6CiAg
ICAgICAgIGlmIHRlc3RfbmFtZSBpbiBzZWxmLl90ZXN0X3RpbWluZ3M6CiAgICAgICAgICAgICAj
IEZsb29yIGZvciBub3cgdG8gZ2V0IHRpbWUgaW4gc2Vjb25kcy4KLSAgICAgICAgICAgIHJldHVy
biBpbnQoc2VsZi5fdGVzdF90aW1pbmdzW3Rlc3RfbmFtZV0pCisgICAgICAgICAgICByZXR1cm4g
aW50KHNlbGYuX3Rlc3RfdGltaW5nc1t0ZXN0X25hbWVdLnRlc3RfcnVuX3RpbWUpCiAgICAgICAg
IHJldHVybiAwCiAKICAgICAjIG92ZXJyaWRlCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVzdF9yZXN1bHRzLnB5IGIvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfcmVzdWx0cy5weQppbmRleCA2Yjlk
YjU1ODc2MWU1ZGU2NDQzNzc4NDEwMGViNzAzY2U2ODgyY2NjLi4yN2UxZGJjNDExZGNjODk5ZTFi
YzNiNTViZTVkY2ZhZTdiMWI3MTBlIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9tb2RlbHMvdGVzdF9yZXN1bHRzLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X3Jlc3VsdHMucHkKQEAgLTQ0LDkgKzQ0
LDE0IEBAIGNsYXNzIFRlc3RSZXN1bHQob2JqZWN0KToKICAgICAgICAgc2VsZi50ZXN0X3J1bl90
aW1lID0gdGVzdF9ydW5fdGltZSBvciAwCiAgICAgICAgIHNlbGYuaGFzX3N0ZGVyciA9IGhhc19z
dGRlcnIKICAgICAgICAgc2VsZi5yZWZ0ZXN0X3R5cGUgPSByZWZ0ZXN0X3R5cGUKKwogICAgICAg
ICAjIEZJWE1FOiBTZXR0aW5nIHRoaXMgaW4gdGhlIGNvbnN0cnVjdG9yIG1ha2VzIHRoaXMgY2xh
c3MgaGFyZCB0byBtdXRhdGUuCiAgICAgICAgIHNlbGYudHlwZSA9IHRlc3RfZmFpbHVyZXMuZGV0
ZXJtaW5lX3Jlc3VsdF90eXBlKGZhaWx1cmVzKQogCisgICAgICAgICMgVGhlc2UgYXJlIHNldCBi
eSB0aGUgd29ya2VyLCBub3QgYnkgdGhlIGRyaXZlciwgc28gdGhleSBhcmUgbm90IHBhc3NlZCB0
byB0aGUgY29uc3RydWN0b3IuCisgICAgICAgIHNlbGYud29ya2VyX25hbWUgPSAnJworICAgICAg
ICBzZWxmLnNoYXJkX25hbWUgPSAnJworCiAgICAgZGVmIF9fZXFfXyhzZWxmLCBvdGhlcik6CiAg
ICAgICAgIHJldHVybiAoc2VsZi50ZXN0X25hbWUgPT0gb3RoZXIudGVzdF9uYW1lIGFuZAogICAg
ICAgICAgICAgICAgIHNlbGYuZmFpbHVyZXMgPT0gb3RoZXIuZmFpbHVyZXMgYW5kCmRpZmYgLS1n
aXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy92aWV3cy9wcmludGluZy5w
eSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3ZpZXdzL3ByaW50aW5nLnB5
CmluZGV4IGI3YTkxOTVhODRjMjE5OWZlMjY3NDhjY2U3YmRiOWM5ZGZhMmUxZGYuLjkwNDEzY2I1
MmU2MjdmYWZmODAxMTg5NTc4YTg5ZmNkMDAxYzc0YWIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3ZpZXdzL3ByaW50aW5nLnB5CisrKyBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3ZpZXdzL3ByaW50aW5nLnB5CkBAIC0xNDksMzkg
KzE0OSw0NyBAQCBjbGFzcyBQcmludGVyKG9iamVjdCk6CiAgICAgICAgICAgICBuZGlnaXRzID0g
aW50KG1hdGgubG9nMTAobGVuKG51bSkpKSArIDEKICAgICAgICAgcmV0dXJuIG5kaWdpdHMKIAot
ICAgIGRlZiBwcmludF9yZXN1bHRzKHNlbGYsIHJ1bl90aW1lLCB0aHJlYWRfdGltaW5ncywgdGVz
dF90aW1pbmdzLCBpbmRpdmlkdWFsX3Rlc3RfdGltaW5ncywgcmVzdWx0X3N1bW1hcnksIHVuZXhw
ZWN0ZWRfcmVzdWx0cyk6Ci0gICAgICAgIHNlbGYuX3ByaW50X3RpbWluZ19zdGF0aXN0aWNzKHJ1
bl90aW1lLCB0aHJlYWRfdGltaW5ncywgdGVzdF90aW1pbmdzLCBpbmRpdmlkdWFsX3Rlc3RfdGlt
aW5ncywgcmVzdWx0X3N1bW1hcnkpCisgICAgZGVmIHByaW50X3Jlc3VsdHMoc2VsZiwgcnVuX3Rp
bWUsIHJlc3VsdF9zdW1tYXJ5LCB1bmV4cGVjdGVkX3Jlc3VsdHMpOgorICAgICAgICBzZWxmLl9w
cmludF90aW1pbmdfc3RhdGlzdGljcyhydW5fdGltZSwgcmVzdWx0X3N1bW1hcnkpCiAgICAgICAg
IHNlbGYuX3ByaW50X3Jlc3VsdF9zdW1tYXJ5KHJlc3VsdF9zdW1tYXJ5KQogICAgICAgICBzZWxm
Ll9wcmludF9vbmVfbGluZV9zdW1tYXJ5KHJlc3VsdF9zdW1tYXJ5LnRvdGFsIC0gcmVzdWx0X3N1
bW1hcnkuZXhwZWN0ZWRfc2tpcHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcmVzdWx0X3N1bW1hcnkuZXhwZWN0ZWQgLSByZXN1bHRfc3VtbWFyeS5leHBlY3RlZF9za2lw
cywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRfc3VtbWFyeS51
bmV4cGVjdGVkKQogICAgICAgICBzZWxmLl9wcmludF91bmV4cGVjdGVkX3Jlc3VsdHModW5leHBl
Y3RlZF9yZXN1bHRzKQogCi0gICAgZGVmIF9wcmludF90aW1pbmdfc3RhdGlzdGljcyhzZWxmLCB0
b3RhbF90aW1lLCB0aHJlYWRfdGltaW5ncywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGRpcmVjdG9yeV90ZXN0X3RpbWluZ3MsIGluZGl2aWR1YWxfdGVzdF90aW1pbmdzLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0X3N1bW1hcnkpOgorICAgIGRlZiBf
cHJpbnRfdGltaW5nX3N0YXRpc3RpY3Moc2VsZiwgdG90YWxfdGltZSwgcmVzdWx0X3N1bW1hcnkp
OgogICAgICAgICBzZWxmLl9wcmludF9kZWJ1ZygiVGVzdCB0aW1pbmc6IikKICAgICAgICAgc2Vs
Zi5fcHJpbnRfZGVidWcoIiAgJTYuMmYgdG90YWwgdGVzdGluZyB0aW1lIiAlIHRvdGFsX3RpbWUp
CiAgICAgICAgIHNlbGYuX3ByaW50X2RlYnVnKCIiKQorCisgICAgICAgIHNlbGYuX3ByaW50X3dv
cmtlcl9zdGF0aXN0aWNzKHJlc3VsdF9zdW1tYXJ5LCBpbnQoc2VsZi5fb3B0aW9ucy5jaGlsZF9w
cm9jZXNzZXMpKQorICAgICAgICBzZWxmLl9wcmludF9hZ2dyZWdhdGVfdGVzdF9zdGF0aXN0aWNz
KHJlc3VsdF9zdW1tYXJ5KQorICAgICAgICBzZWxmLl9wcmludF9pbmRpdmlkdWFsX3Rlc3RfdGlt
ZXMocmVzdWx0X3N1bW1hcnkpCisgICAgICAgIHNlbGYuX3ByaW50X2RpcmVjdG9yeV90aW1pbmdz
KHJlc3VsdF9zdW1tYXJ5KQorCisgICAgZGVmIF9wcmludF93b3JrZXJfc3RhdGlzdGljcyhzZWxm
LCByZXN1bHRfc3VtbWFyeSwgbnVtX3dvcmtlcnMpOgogICAgICAgICBzZWxmLl9wcmludF9kZWJ1
ZygiVGhyZWFkIHRpbWluZzoiKQorICAgICAgICBzdGF0cyA9IHt9CiAgICAgICAgIGN1bWxfdGlt
ZSA9IDAKLSAgICAgICAgZm9yIHQgaW4gdGhyZWFkX3RpbWluZ3M6Ci0gICAgICAgICAgICBzZWxm
Ll9wcmludF9kZWJ1ZygiICAgICUxMHM6ICU1ZCB0ZXN0cywgJTYuMmYgc2VjcyIgJSAodFsnbmFt
ZSddLCB0WydudW1fdGVzdHMnXSwgdFsndG90YWxfdGltZSddKSkKLSAgICAgICAgICAgIGN1bWxf
dGltZSArPSB0Wyd0b3RhbF90aW1lJ10KLSAgICAgICAgc2VsZi5fcHJpbnRfZGVidWcoIiAgICU2
LjJmIGN1bXVsYXRpdmUsICU2LjJmIG9wdGltYWwiICUgKGN1bWxfdGltZSwgY3VtbF90aW1lIC8g
aW50KHNlbGYuX29wdGlvbnMuY2hpbGRfcHJvY2Vzc2VzKSkpCisgICAgICAgIGZvciByZXN1bHQg
aW4gcmVzdWx0X3N1bW1hcnkucmVzdWx0cy52YWx1ZXMoKToKKyAgICAgICAgICAgIHN0YXRzLnNl
dGRlZmF1bHQocmVzdWx0Lndvcmtlcl9uYW1lLCB7J251bV90ZXN0cyc6IDAsICd0b3RhbF90aW1l
JzogMH0pCisgICAgICAgICAgICBzdGF0c1tyZXN1bHQud29ya2VyX25hbWVdWydudW1fdGVzdHMn
XSArPSAxCisgICAgICAgICAgICBzdGF0c1tyZXN1bHQud29ya2VyX25hbWVdWyd0b3RhbF90aW1l
J10gKz0gcmVzdWx0LnRlc3RfcnVuX3RpbWUKKyAgICAgICAgICAgIGN1bWxfdGltZSArPSByZXN1
bHQudGVzdF9ydW5fdGltZQorCisgICAgICAgIGZvciB3b3JrZXJfbmFtZSBpbiBzdGF0czoKKyAg
ICAgICAgICAgIHNlbGYuX3ByaW50X2RlYnVnKCIgICAgJTEwczogJTVkIHRlc3RzLCAlNi4yZiBz
ZWNzIiAlICh3b3JrZXJfbmFtZSwgc3RhdHNbd29ya2VyX25hbWVdWydudW1fdGVzdHMnXSwgc3Rh
dHNbd29ya2VyX25hbWVdWyd0b3RhbF90aW1lJ10pKQorICAgICAgICBzZWxmLl9wcmludF9kZWJ1
ZygiICAgJTYuMmYgY3VtdWxhdGl2ZSwgJTYuMmYgb3B0aW1hbCIgJSAoY3VtbF90aW1lLCBjdW1s
X3RpbWUgLyBudW1fd29ya2VycykpCiAgICAgICAgIHNlbGYuX3ByaW50X2RlYnVnKCIiKQogCi0g
ICAgICAgIHNlbGYuX3ByaW50X2FnZ3JlZ2F0ZV90ZXN0X3N0YXRpc3RpY3MoaW5kaXZpZHVhbF90
ZXN0X3RpbWluZ3MpCi0gICAgICAgIHNlbGYuX3ByaW50X2luZGl2aWR1YWxfdGVzdF90aW1lcyhp
bmRpdmlkdWFsX3Rlc3RfdGltaW5ncywgcmVzdWx0X3N1bW1hcnkpCi0gICAgICAgIHNlbGYuX3By
aW50X2RpcmVjdG9yeV90aW1pbmdzKGRpcmVjdG9yeV90ZXN0X3RpbWluZ3MpCi0KLSAgICBkZWYg
X3ByaW50X2FnZ3JlZ2F0ZV90ZXN0X3N0YXRpc3RpY3Moc2VsZiwgaW5kaXZpZHVhbF90ZXN0X3Rp
bWluZ3MpOgotICAgICAgICB0aW1lc19mb3JfZHVtcF9yZW5kZXJfdHJlZSA9IFt0ZXN0X3N0YXRz
LnRlc3RfcnVuX3RpbWUgZm9yIHRlc3Rfc3RhdHMgaW4gaW5kaXZpZHVhbF90ZXN0X3RpbWluZ3Nd
CisgICAgZGVmIF9wcmludF9hZ2dyZWdhdGVfdGVzdF9zdGF0aXN0aWNzKHNlbGYsIHJlc3VsdF9z
dW1tYXJ5KToKKyAgICAgICAgdGltZXNfZm9yX2R1bXBfcmVuZGVyX3RyZWUgPSBbcmVzdWx0LnRl
c3RfcnVuX3RpbWUgZm9yIHJlc3VsdCBpbiByZXN1bHRfc3VtbWFyeS5yZXN1bHRzLnZhbHVlcygp
XQogICAgICAgICBzZWxmLl9wcmludF9zdGF0aXN0aWNzX2Zvcl90ZXN0X3RpbWluZ3MoIlBFUiBU
RVNUIFRJTUUgSU4gVEVTVFNIRUxMIChzZWNvbmRzKToiLCB0aW1lc19mb3JfZHVtcF9yZW5kZXJf
dHJlZSkKIAotICAgIGRlZiBfcHJpbnRfaW5kaXZpZHVhbF90ZXN0X3RpbWVzKHNlbGYsIGluZGl2
aWR1YWxfdGVzdF90aW1pbmdzLCByZXN1bHRfc3VtbWFyeSk6CisgICAgZGVmIF9wcmludF9pbmRp
dmlkdWFsX3Rlc3RfdGltZXMoc2VsZiwgcmVzdWx0X3N1bW1hcnkpOgogICAgICAgICAjIFJldmVy
c2Utc29ydCBieSB0aGUgdGltZSBzcGVudCBpbiBEdW1wUmVuZGVyVHJlZS4KLSAgICAgICAgaW5k
aXZpZHVhbF90ZXN0X3RpbWluZ3Muc29ydChsYW1iZGEgYSwgYjogY21wKGIudGVzdF9ydW5fdGlt
ZSwgYS50ZXN0X3J1bl90aW1lKSkKKworICAgICAgICBpbmRpdmlkdWFsX3Rlc3RfdGltaW5ncyA9
IHNvcnRlZChyZXN1bHRfc3VtbWFyeS5yZXN1bHRzLnZhbHVlcygpLCBrZXk9bGFtYmRhIHJlc3Vs
dDogcmVzdWx0LnRlc3RfcnVuX3RpbWUpCiAgICAgICAgIG51bV9wcmludGVkID0gMAogICAgICAg
ICBzbG93X3Rlc3RzID0gW10KICAgICAgICAgdGltZW91dF9vcl9jcmFzaF90ZXN0cyA9IFtdCkBA
IC0yMTksMTEgKzIyNywxNiBAQCBjbGFzcyBQcmludGVyKG9iamVjdCk6CiAgICAgICAgICAgICB0
ZXN0X3J1bl90aW1lID0gcm91bmQodGVzdF90dXBsZS50ZXN0X3J1bl90aW1lLCAxKQogICAgICAg
ICAgICAgc2VsZi5fcHJpbnRfZGVidWcoIiAgJXMgdG9vayAlcyBzZWNvbmRzIiAlICh0ZXN0X3R1
cGxlLnRlc3RfbmFtZSwgdGVzdF9ydW5fdGltZSkpCiAKLSAgICBkZWYgX3ByaW50X2RpcmVjdG9y
eV90aW1pbmdzKHNlbGYsIGRpcmVjdG9yeV90ZXN0X3RpbWluZ3MpOgorICAgIGRlZiBfcHJpbnRf
ZGlyZWN0b3J5X3RpbWluZ3Moc2VsZiwgcmVzdWx0X3N1bW1hcnkpOgorICAgICAgICBzdGF0cyA9
IHt9CisgICAgICAgIGZvciByZXN1bHQgaW4gcmVzdWx0X3N1bW1hcnkucmVzdWx0cy52YWx1ZXMo
KToKKyAgICAgICAgICAgIHN0YXRzLnNldGRlZmF1bHQocmVzdWx0LnNoYXJkX25hbWUsIHsnbnVt
X3Rlc3RzJzogMCwgJ3RvdGFsX3RpbWUnOiAwfSkKKyAgICAgICAgICAgIHN0YXRzW3Jlc3VsdC5z
aGFyZF9uYW1lXVsnbnVtX3Rlc3RzJ10gKz0gMQorICAgICAgICAgICAgc3RhdHNbcmVzdWx0LnNo
YXJkX25hbWVdWyd0b3RhbF90aW1lJ10gKz0gcmVzdWx0LnRlc3RfcnVuX3RpbWUKKwogICAgICAg
ICB0aW1pbmdzID0gW10KLSAgICAgICAgZm9yIGRpcmVjdG9yeSBpbiBkaXJlY3RvcnlfdGVzdF90
aW1pbmdzOgotICAgICAgICAgICAgbnVtX3Rlc3RzLCB0aW1lX2Zvcl9kaXJlY3RvcnkgPSBkaXJl
Y3RvcnlfdGVzdF90aW1pbmdzW2RpcmVjdG9yeV0KLSAgICAgICAgICAgIHRpbWluZ3MuYXBwZW5k
KChyb3VuZCh0aW1lX2Zvcl9kaXJlY3RvcnksIDEpLCBkaXJlY3RvcnksIG51bV90ZXN0cykpCisg
ICAgICAgIGZvciBkaXJlY3RvcnkgaW4gc3RhdHM6CisgICAgICAgICAgICB0aW1pbmdzLmFwcGVu
ZCgocm91bmQoc3RhdHNbZGlyZWN0b3J5XVsndG90YWxfdGltZSddLCAxKSwgZGlyZWN0b3J5LCBz
dGF0c1tkaXJlY3RvcnldWydudW1fdGVzdHMnXSkpCiAgICAgICAgIHRpbWluZ3Muc29ydCgpCiAK
ICAgICAgICAgc2VsZi5fcHJpbnRfZGVidWcoIlRpbWUgdG8gcHJvY2VzcyBzbG93ZXN0IHN1YmRp
cmVjdG9yaWVzOiIpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy92aWV3cy9wcmludGluZ191bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL3ZpZXdzL3ByaW50aW5nX3VuaXR0ZXN0LnB5CmluZGV4IGQ0YzQxNjk2NmUy
YzkwMGY3YmNiYzc5MjVjMTFhNzBmMzYxZmFhNWEuLjQxMzY5ZmMyNzRlZTlmYTA0YTBlNTk1ZjZk
M2QwOWE1ZTI1OWMxNTMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL3ZpZXdzL3ByaW50aW5nX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL3ZpZXdzL3ByaW50aW5nX3VuaXR0ZXN0LnB5CkBAIC0yMDAsNyAr
MjAwLDcgQEAgY2xhc3MgIFRlc3RwcmludGVyKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAg
ICAgICAgICByZXRyeS5hZGQoc2VsZi5nZXRfcmVzdWx0KCdwYXNzZXMvdGV4dC5odG1sJyksIFRy
dWUsIHRlc3RfaXNfc2xvdykKICAgICAgICAgICAgICAgICByZXRyeS5hZGQoc2VsZi5nZXRfcmVz
dWx0KCdmYWlsdXJlcy9leHBlY3RlZC90aW1lb3V0Lmh0bWwnKSwgVHJ1ZSwgdGVzdF9pc19zbG93
KQogICAgICAgICAgICAgICAgIHJldHJ5LmFkZChzZWxmLmdldF9yZXN1bHQoJ2ZhaWx1cmVzL2V4
cGVjdGVkL2NyYXNoLmh0bWwnKSwgVHJ1ZSwgdGVzdF9pc19zbG93KQotICAgICAgICAgICAgdW5l
eHBlY3RlZF9yZXN1bHRzID0gbWFuYWdlci5zdW1tYXJpemVfcmVzdWx0cyhzZWxmLl9wb3J0LCBl
eHAsIHJzLCByZXRyeSwgdGVzdF90aW1pbmdzPXt9LCBvbmx5X3VuZXhwZWN0ZWQ9VHJ1ZSkKKyAg
ICAgICAgICAgIHVuZXhwZWN0ZWRfcmVzdWx0cyA9IG1hbmFnZXIuc3VtbWFyaXplX3Jlc3VsdHMo
c2VsZi5fcG9ydCwgZXhwLCBycywgcmV0cnksIG9ubHlfdW5leHBlY3RlZD1UcnVlKQogICAgICAg
ICAgICAgcmV0dXJuIHVuZXhwZWN0ZWRfcmVzdWx0cwogCiAgICAgICAgIHRlc3RzID0gWydwYXNz
ZXMvdGV4dC5odG1sJywgJ2ZhaWx1cmVzL2V4cGVjdGVkL3RpbWVvdXQuaHRtbCcsICdmYWlsdXJl
cy9leHBlY3RlZC9jcmFzaC5odG1sJ10K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>177522</attachid>
            <date>2012-12-04 11:57:09 -0800</date>
            <delta_ts>2012-12-04 13:25:59 -0800</delta_ts>
            <desc>collect both test_run_time and total_run_time</desc>
            <filename>bug-103943-20121204115434.patch</filename>
            <type>text/plain</type>
            <size>26322</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2NDQzCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNzQwOTk1MGM3MTkxOWEwZWIzY2I3ZmQ3YTY5ZGExZmI0
YWM3MmJlZS4uY2NkNjhkMjE5ODI4NDc0ZmQ2MTZmYWQ2ODcxYWY5NDI0MzZmZGEwNiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1
IEBACisyMDEyLTEyLTA0ICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIG5yd3Q6IGRlcml2ZSBwZXItdGhyZWFkLCBwZXItd29ya2VyIHN0YXRzIGZyb20gcmVz
dWx0IHN1bW1hcmllcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTAzOTQzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVGhpcyBwYXRjaCBjaGFuZ2VzIHRoZSBtYW5hZ2VyIGFuZCBwcmludGluZyBjb2RlIHRv
IHB1bGwgbW9yZSAgICAgICAgICAgCisgICAgICAgIGluZm9ybWF0aW9uIGZyb20gdGhlIFJlc3Vs
dFN1bW1hcnkgb2JqZWN0IHJhdGhlciB0aGFuIHRyYWNraW5nICAgICAgICAgIAorICAgICAgICBh
ZGRpdGlvbmFsIHN0YXRpc3RpY3Mgb24gdGhlIHNpZGUuIFRoaXMgYWxsb3dzIHVzIHRvIGNvbnNv
bGlkYXRlICAgICAgICAKKyAgICAgICAgYSBidW5jaCBvZiBsb2dpYyBhbmQgcmVtb3ZlIGEgYnVu
Y2ggb2YgZnJlZS1mbG9hdGluZyBsaXN0cyBhbmQgZGljdHMgb2YgCisgICAgICAgIG9mIHZhbHVl
cy4gV2UgYWRkIHRoZSBzaGFyZF9uYW1lIGFuZCB3b3JrZXJfbmFtZSB0byBlYWNoIFRlc3RSZXN1
bHQsICAgIAorICAgICAgICBhbmQgdGhlbiBtb2RpZnkgcHJpbnRfdGltaW5nX3N0YXRpc3RpY3Mo
KSBhbmQgdXBsb2FkX2pzb25fZmlsZXMoKSAgICAgICAKKyAgICAgICAgdG8ganVzdCBuZWVkIHRo
ZSByZXN1bHQgc3VtbWFyaWVzLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
CisKKyAgICAgICAgTm90ZSB0aGF0IHRoaXMgcGF0Y2ggYWxzbyBjaGFuZ2VzIHRoZSB0aW1pbmcg
c3RhdGlzdGljcyBzbGlnaHRseQorICAgICAgICBzbyB0aGF0IHRoZSBpbmRpdmlkdWFsIHRlc3Qg
dGltZXMgYXJlIHRoZSB0aW1lcyB0byBydW4ganVzdCB0aGUKKyAgICAgICAgdGVzdHMgdGhlbXNl
bHZlcyAoVGVzdFJlc3VsdC50ZXN0X3J1bl90aW1lKSBhbmQgZG8gbm90IGluY2x1ZGUgdGhlCisg
ICAgICAgIHRpbWVzIHRha2VuIHRvIHJ1biB0aGUgcmVmIHRlc3RzLCBjb21wdXRlIGRpZmZzLCBl
dGMuIFRoZSBhZ2dyZWdhdGVkCisgICAgICAgIHBlci13b3JrZXIgYW5kIHBlci1zaGFyZCBzdGF0
aXN0aWNzIHN0aWxsIHVzZSB0aGUgdG90YWwgdGltZSB0bworICAgICAgICBwcm9jZXNzIGVhY2gg
dGVzdCAoVGVzdFJlc3VsdC50b3RhbF9ydW5fdGltZSkuCisKKyAgICAgICAgKiBTY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9sYXlvdXRfdGVzdF9ydW5uZXIucHk6Cisg
ICAgICAgIChMYXlvdXRUZXN0UnVubmVyLl9faW5pdF9fKToKKyAgICAgICAgKExheW91dFRlc3RS
dW5uZXIucnVuX3Rlc3RzKToKKyAgICAgICAgKExheW91dFRlc3RSdW5uZXIuX2hhbmRsZV9maW5p
c2hlZF90ZXN0X2xpc3QpOgorICAgICAgICAoTGF5b3V0VGVzdFJ1bm5lci5faGFuZGxlX2Zpbmlz
aGVkX3Rlc3QpOgorICAgICAgICAoV29ya2VyLmhhbmRsZSk6CisgICAgICAgIChXb3JrZXIuX3J1
bl90ZXN0KToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9s
bGVycy9tYW5hZ2VyLnB5OgorICAgICAgICAoc3VtbWFyaXplX3Jlc3VsdHMpOgorICAgICAgICAo
TWFuYWdlci5ydW4pOgorICAgICAgICAoTWFuYWdlci5fdXBsb2FkX2pzb25fZmlsZXMpOgorICAg
ICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL21hbmFnZXJf
dW5pdHRlc3QucHk6CisgICAgICAgIChSZXN1bHRTdW1tYXJ5VGVzdC5zdW1tYXJpemVkX3Jlc3Vs
dHMpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNr
YWdlL2pzb25fbGF5b3V0X3Jlc3VsdHNfZ2VuZXJhdG9yLnB5OgorICAgICAgICAoSlNPTkxheW91
dFJlc3VsdHNHZW5lcmF0b3IuX19pbml0X18pOgorICAgICAgICAoSlNPTkxheW91dFJlc3VsdHNH
ZW5lcmF0b3IuX2dldF90ZXN0X3RpbWluZyk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfcmVzdWx0cy5weToKKyAgICAgICAgKFRlc3RSZXN1bHQu
X19pbml0X18pOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3ZpZXdz
L3ByaW50aW5nLnB5OgorICAgICAgICAoUHJpbnRlci5wcmludF9yZXN1bHRzKToKKyAgICAgICAg
KFByaW50ZXIuX3ByaW50X3RpbWluZ19zdGF0aXN0aWNzKToKKyAgICAgICAgKFByaW50ZXIpOgor
ICAgICAgICAoUHJpbnRlci5fcHJpbnRfd29ya2VyX3N0YXRpc3RpY3MpOgorICAgICAgICAoUHJp
bnRlci5fcHJpbnRfYWdncmVnYXRlX3Rlc3Rfc3RhdGlzdGljcyk6CisgICAgICAgIChQcmludGVy
Ll9wcmludF9pbmRpdmlkdWFsX3Rlc3RfdGltZXMpOgorICAgICAgICAoUHJpbnRlci5fcHJpbnRf
ZGlyZWN0b3J5X3RpbWluZ3MpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL3ZpZXdzL3ByaW50aW5nX3VuaXR0ZXN0LnB5OgorICAgICAgICAoVGVzdHByaW50ZXIudGVz
dF9wcmludF91bmV4cGVjdGVkX3Jlc3VsdHMuZ2V0X3VuZXhwZWN0ZWRfcmVzdWx0cyk6CisgICAg
ICAgIChUZXN0cHJpbnRlcik6CisKIDIwMTItMTItMDMgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgd2Via2l0cHkncyBydW5fd2Via2l0X3Rlc3RzIHNob3Vs
ZCBpbml0aWFsaXplIHRoZSBwcmludGVyIGVhcmxpZXIgb24KZGlmZiAtLWdpdCBhL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL2xheW91dF90ZXN0X3J1bm5l
ci5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL2xh
eW91dF90ZXN0X3J1bm5lci5weQppbmRleCBhZjIyNDdiOGEyZGViMzA2YjE4MjA0MTJiZWVkMzRk
YjQ2MTYyMTFiLi41YmExNjA5MWU3YTBlY2E2ODJlYTAzOTNkMzliNjc4Y2JhNTI4YzYyIDEwMDY0
NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9s
YXlvdXRfdGVzdF9ydW5uZXIucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvY29udHJvbGxlcnMvbGF5b3V0X3Rlc3RfcnVubmVyLnB5CkBAIC03NSwyMCArNzUsOSBA
QCBjbGFzcyBMYXlvdXRUZXN0UnVubmVyKG9iamVjdCk6CiAgICAgICAgIHNlbGYuX25lZWRzX3dl
YnNvY2tldHMgPSBOb25lCiAgICAgICAgIHNlbGYuX3JldHJ5aW5nID0gRmFsc2UKICAgICAgICAg
c2VsZi5fdGVzdF9maWxlc19saXN0ID0gW10KLSAgICAgICAgc2VsZi5fYWxsX3Jlc3VsdHMgPSBb
XQotICAgICAgICBzZWxmLl9ncm91cF9zdGF0cyA9IHt9Ci0gICAgICAgIHNlbGYuX3dvcmtlcl9z
dGF0cyA9IHt9CiAgICAgICAgIHNlbGYuX2ZpbGVzeXN0ZW0gPSBzZWxmLl9wb3J0Lmhvc3QuZmls
ZXN5c3RlbQogCiAgICAgZGVmIHJ1bl90ZXN0cyhzZWxmLCB0ZXN0X2lucHV0cywgZXhwZWN0YXRp
b25zLCByZXN1bHRfc3VtbWFyeSwgbnVtX3dvcmtlcnMsIG5lZWRzX2h0dHAsIG5lZWRzX3dlYnNv
Y2tldHMsIHJldHJ5aW5nKToKLSAgICAgICAgIiIiUmV0dXJucyBhIHR1cGxlIG9mICh0aHJlYWRf
dGltaW5ncywgdGVzdF90aW1pbmdzLCBpbmRpdmlkdWFsX3Rlc3RfdGltaW5ncyk6Ci0gICAgICAg
ICAgICB0aHJlYWRfdGltaW5ncyBpcyBhIGxpc3Qgb2YgZGljdHMgd2l0aCB0aGUgdG90YWwgcnVu
dGltZQotICAgICAgICAgICAgICAgIG9mIGVhY2ggdGhyZWFkIHdpdGggJ25hbWUnLCAnbnVtX3Rl
c3RzJywgJ3RvdGFsX3RpbWUnIHByb3BlcnRpZXMKLSAgICAgICAgICAgIHRlc3RfdGltaW5ncyBp
cyBhIGxpc3Qgb2YgdGltaW5ncyBmb3IgZWFjaCBzaGFyZGVkIHN1YmRpcmVjdG9yeQotICAgICAg
ICAgICAgICAgIG9mIHRoZSBmb3JtIFt0aW1lLCBkaXJlY3RvcnlfbmFtZSwgbnVtX3Rlc3RzXQot
ICAgICAgICAgICAgaW5kaXZpZHVhbF90ZXN0X3RpbWluZ3MgaXMgYSBsaXN0IG9mIHJ1biB0aW1l
cyBmb3IgZWFjaCB0ZXN0Ci0gICAgICAgICAgICAgICAgaW4gdGhlIGZvcm0ge2ZpbGVuYW1lOmZp
bGVuYW1lLCB0ZXN0X3J1bl90aW1lOnRlc3RfcnVuX3RpbWV9Ci0gICAgICAgICIiIgogICAgICAg
ICBzZWxmLl9jdXJyZW50X3Jlc3VsdF9zdW1tYXJ5ID0gcmVzdWx0X3N1bW1hcnkKICAgICAgICAg
c2VsZi5fZXhwZWN0YXRpb25zID0gZXhwZWN0YXRpb25zCiAgICAgICAgIHNlbGYuX25lZWRzX2h0
dHAgPSBuZWVkc19odHRwCkBAIC0xMjQsNyArMTEzLDcgQEAgY2xhc3MgTGF5b3V0VGVzdFJ1bm5l
cihvYmplY3QpOgogICAgICAgICBzZWxmLl9wcmludGVyLnByaW50X3dvcmtlcnNfYW5kX3NoYXJk
cyhudW1fd29ya2VycywgbGVuKGFsbF9zaGFyZHMpLCBsZW4obG9ja2VkX3NoYXJkcykpCiAKICAg
ICAgICAgaWYgc2VsZi5fb3B0aW9ucy5kcnlfcnVuOgotICAgICAgICAgICAgcmV0dXJuIChzZWxm
Ll93b3JrZXJfc3RhdHMudmFsdWVzKCksIHNlbGYuX2dyb3VwX3N0YXRzLCBzZWxmLl9hbGxfcmVz
dWx0cykKKyAgICAgICAgICAgIHJldHVybiByZXN1bHRfc3VtbWFyeQogCiAgICAgICAgIHNlbGYu
X3ByaW50ZXIud3JpdGVfdXBkYXRlKCdTdGFydGluZyAlcyAuLi4nICUgZ3JhbW1hci5wbHVyYWxp
emUoJ3dvcmtlcicsIG51bV93b3JrZXJzKSkKIApAQCAtMTQ0LDggKzEzMyw3IEBAIGNsYXNzIExh
eW91dFRlc3RSdW5uZXIob2JqZWN0KToKICAgICAgICAgZmluYWxseToKICAgICAgICAgICAgIHNl
bGYuc3RvcF9zZXJ2ZXJzX3dpdGhfbG9jaygpCiAKLSAgICAgICAgIyBGSVhNRTogTW92ZSB0aGVz
ZSBzdGF0cyBpbnRvIFJlc3VsdFN1bW1hcnkgYW5kIHJldHVybiB0aGF0LgotICAgICAgICByZXR1
cm4gKHNlbGYuX3dvcmtlcl9zdGF0cy52YWx1ZXMoKSwgc2VsZi5fZ3JvdXBfc3RhdHMsIHNlbGYu
X2FsbF9yZXN1bHRzKQorICAgICAgICByZXR1cm4gcmVzdWx0X3N1bW1hcnkKIAogICAgIGRlZiBf
d29ya2VyX2ZhY3Rvcnkoc2VsZiwgd29ya2VyX2Nvbm5lY3Rpb24pOgogICAgICAgICByZXN1bHRz
X2RpcmVjdG9yeSA9IHNlbGYuX3Jlc3VsdHNfZGlyZWN0b3J5CkBAIC0yMzEsOSArMjE5LDcgQEAg
Y2xhc3MgTGF5b3V0VGVzdFJ1bm5lcihvYmplY3QpOgogICAgIGRlZiBfaGFuZGxlX3N0YXJ0ZWRf
dGVzdChzZWxmLCB3b3JrZXJfbmFtZSwgdGVzdF9pbnB1dCwgdGVzdF90aW1lb3V0X3NlYyk6CiAg
ICAgICAgIHNlbGYuX3ByaW50ZXIucHJpbnRfc3RhcnRlZF90ZXN0KHRlc3RfaW5wdXQudGVzdF9u
YW1lKQogCi0gICAgZGVmIF9oYW5kbGVfZmluaXNoZWRfdGVzdF9saXN0KHNlbGYsIHdvcmtlcl9u
YW1lLCBsaXN0X25hbWUsIG51bV90ZXN0cywgZWxhcHNlZF90aW1lKToKLSAgICAgICAgc2VsZi5f
Z3JvdXBfc3RhdHNbbGlzdF9uYW1lXSA9IChudW1fdGVzdHMsIGVsYXBzZWRfdGltZSkKLQorICAg
IGRlZiBfaGFuZGxlX2ZpbmlzaGVkX3Rlc3RfbGlzdChzZWxmLCB3b3JrZXJfbmFtZSwgbGlzdF9u
YW1lKToKICAgICAgICAgZGVmIGZpbmQobmFtZSwgdGVzdF9saXN0cyk6CiAgICAgICAgICAgICBm
b3IgaSBpbiByYW5nZShsZW4odGVzdF9saXN0cykpOgogICAgICAgICAgICAgICAgIGlmIHRlc3Rf
bGlzdHNbaV0ubmFtZSA9PSBuYW1lOgpAQCAtMjQ2LDExICsyMzIsNyBAQCBjbGFzcyBMYXlvdXRU
ZXN0UnVubmVyKG9iamVjdCk6CiAgICAgICAgICAgICBpZiBub3Qgc2VsZi5fcmVtYWluaW5nX2xv
Y2tlZF9zaGFyZHMgYW5kIG5vdCBzZWxmLl9wb3J0LnJlcXVpcmVzX2h0dHBfc2VydmVyKCk6CiAg
ICAgICAgICAgICAgICAgc2VsZi5zdG9wX3NlcnZlcnNfd2l0aF9sb2NrKCkKIAotICAgIGRlZiBf
aGFuZGxlX2ZpbmlzaGVkX3Rlc3Qoc2VsZiwgd29ya2VyX25hbWUsIHJlc3VsdCwgZWxhcHNlZF90
aW1lLCBsb2dfbWVzc2FnZXM9W10pOgotICAgICAgICBzZWxmLl93b3JrZXJfc3RhdHMuc2V0ZGVm
YXVsdCh3b3JrZXJfbmFtZSwgeyduYW1lJzogd29ya2VyX25hbWUsICdudW1fdGVzdHMnOiAwLCAn
dG90YWxfdGltZSc6IDB9KQotICAgICAgICBzZWxmLl93b3JrZXJfc3RhdHNbd29ya2VyX25hbWVd
Wyd0b3RhbF90aW1lJ10gKz0gZWxhcHNlZF90aW1lCi0gICAgICAgIHNlbGYuX3dvcmtlcl9zdGF0
c1t3b3JrZXJfbmFtZV1bJ251bV90ZXN0cyddICs9IDEKLSAgICAgICAgc2VsZi5fYWxsX3Jlc3Vs
dHMuYXBwZW5kKHJlc3VsdCkKKyAgICBkZWYgX2hhbmRsZV9maW5pc2hlZF90ZXN0KHNlbGYsIHdv
cmtlcl9uYW1lLCByZXN1bHQsIGxvZ19tZXNzYWdlcz1bXSk6CiAgICAgICAgIHNlbGYuX3VwZGF0
ZV9zdW1tYXJ5X3dpdGhfcmVzdWx0KHNlbGYuX2N1cnJlbnRfcmVzdWx0X3N1bW1hcnksIHJlc3Vs
dCkKIAogCkBAIC0yOTAsMTEgKzI3Miw5IEBAIGNsYXNzIFdvcmtlcihvYmplY3QpOgogCiAgICAg
ZGVmIGhhbmRsZShzZWxmLCBuYW1lLCBzb3VyY2UsIHRlc3RfbGlzdF9uYW1lLCB0ZXN0X2lucHV0
cyk6CiAgICAgICAgIGFzc2VydCBuYW1lID09ICd0ZXN0X2xpc3QnCi0gICAgICAgIHN0YXJ0X3Rp
bWUgPSB0aW1lLnRpbWUoKQogICAgICAgICBmb3IgdGVzdF9pbnB1dCBpbiB0ZXN0X2lucHV0czoK
LSAgICAgICAgICAgIHNlbGYuX3J1bl90ZXN0KHRlc3RfaW5wdXQpCi0gICAgICAgIGVsYXBzZWRf
dGltZSA9IHRpbWUudGltZSgpIC0gc3RhcnRfdGltZQotICAgICAgICBzZWxmLl9jYWxsZXIucG9z
dCgnZmluaXNoZWRfdGVzdF9saXN0JywgdGVzdF9saXN0X25hbWUsIGxlbih0ZXN0X2lucHV0cyks
IGVsYXBzZWRfdGltZSkKKyAgICAgICAgICAgIHNlbGYuX3J1bl90ZXN0KHRlc3RfaW5wdXQsIHRl
c3RfbGlzdF9uYW1lKQorICAgICAgICBzZWxmLl9jYWxsZXIucG9zdCgnZmluaXNoZWRfdGVzdF9s
aXN0JywgdGVzdF9saXN0X25hbWUpCiAKICAgICBkZWYgX3VwZGF0ZV90ZXN0X2lucHV0KHNlbGYs
IHRlc3RfaW5wdXQpOgogICAgICAgICBpZiB0ZXN0X2lucHV0LnJlZmVyZW5jZV9maWxlcyBpcyBO
b25lOgpAQCAtMzA1LDcgKzI4NSw3IEBAIGNsYXNzIFdvcmtlcihvYmplY3QpOgogICAgICAgICBl
bHNlOgogICAgICAgICAgICAgdGVzdF9pbnB1dC5zaG91bGRfcnVuX3BpeGVsX3Rlc3QgPSBzZWxm
Ll9wb3J0LnNob3VsZF9ydW5fYXNfcGl4ZWxfdGVzdCh0ZXN0X2lucHV0KQogCi0gICAgZGVmIF9y
dW5fdGVzdChzZWxmLCB0ZXN0X2lucHV0KToKKyAgICBkZWYgX3J1bl90ZXN0KHNlbGYsIHRlc3Rf
aW5wdXQsIHNoYXJkX25hbWUpOgogICAgICAgICBzZWxmLl9iYXRjaF9jb3VudCArPSAxCiAKICAg
ICAgICAgc3RvcF93aGVuX2RvbmUgPSBGYWxzZQpAQCAtMzE5LDkgKzI5OSwxMSBAQCBjbGFzcyBX
b3JrZXIob2JqZWN0KToKICAgICAgICAgc2VsZi5fY2FsbGVyLnBvc3QoJ3N0YXJ0ZWRfdGVzdCcs
IHRlc3RfaW5wdXQsIHRlc3RfdGltZW91dF9zZWMpCiAKICAgICAgICAgcmVzdWx0ID0gc2VsZi5f
cnVuX3Rlc3Rfd2l0aF90aW1lb3V0KHRlc3RfaW5wdXQsIHRlc3RfdGltZW91dF9zZWMsIHN0b3Bf
d2hlbl9kb25lKQorICAgICAgICByZXN1bHQuc2hhcmRfbmFtZSA9IHNoYXJkX25hbWUKKyAgICAg
ICAgcmVzdWx0Lndvcmtlcl9uYW1lID0gc2VsZi5fbmFtZQorICAgICAgICByZXN1bHQudG90YWxf
dGVzdF90aW1lID0gdGltZS50aW1lKCkgLSBzdGFydAogCi0gICAgICAgIGVsYXBzZWRfdGltZSA9
IHRpbWUudGltZSgpIC0gc3RhcnQKLSAgICAgICAgc2VsZi5fY2FsbGVyLnBvc3QoJ2ZpbmlzaGVk
X3Rlc3QnLCByZXN1bHQsIGVsYXBzZWRfdGltZSkKKyAgICAgICAgc2VsZi5fY2FsbGVyLnBvc3Qo
J2ZpbmlzaGVkX3Rlc3QnLCByZXN1bHQpCiAKICAgICAgICAgc2VsZi5fY2xlYW5fdXBfYWZ0ZXJf
dGVzdCh0ZXN0X2lucHV0LCByZXN1bHQpCiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL21hbmFnZXIucHkgYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9tYW5hZ2VyLnB5CmluZGV4IDA0NTky
MzI3MDAzYTUxMDIxNmQwZDk3MmUwYzI0Zjg4ODg0NDM1YTIuLjBjNzk4MDQyMTE5NmY4NGE0ODYw
ZGNhN2Y2MmYyZjVlNTkyYjgyNmIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL21hbmFnZXIucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvbWFuYWdlci5weQpAQCAtMTA3LDcgKzEw
Nyw3IEBAIGRlZiB1c2VfdHJhY19saW5rc19pbl9yZXN1bHRzX2h0bWwocG9ydF9vYmopOgogIyBv
ciBzcGxpdCBvZmYgZnJvbSBNYW5hZ2VyIG9udG8gYW5vdGhlciBoZWxwZXIgY2xhc3MsIGJ1dCBz
aG91bGQgbm90IGJlIGEgZnJlZSBmdW5jdGlvbi4KICMgTW9zdCBsaWtlbHkgdGhpcyBzaG91bGQg
YmUgbWFkZSBpbnRvIGl0cyBvd24gY2xhc3MsIGFuZCB0aGlzIHN1cGVyLWxvbmcgZnVuY3Rpb24K
ICMgc3BsaXQgaW50byBtYW55IGhlbHBlciBmdW5jdGlvbnMuCi1kZWYgc3VtbWFyaXplX3Jlc3Vs
dHMocG9ydF9vYmosIGV4cGVjdGF0aW9ucywgcmVzdWx0X3N1bW1hcnksIHJldHJ5X3N1bW1hcnks
IHRlc3RfdGltaW5ncywgb25seV91bmV4cGVjdGVkKToKK2RlZiBzdW1tYXJpemVfcmVzdWx0cyhw
b3J0X29iaiwgZXhwZWN0YXRpb25zLCByZXN1bHRfc3VtbWFyeSwgcmV0cnlfc3VtbWFyeSwgb25s
eV91bmV4cGVjdGVkKToKICAgICAiIiJTdW1tYXJpemUgZmFpbGluZyByZXN1bHRzIGFzIGEgZGlj
dC4KIAogICAgIEZJWE1FOiBzcGxpdCB0aGlzIGRhdGEgc3RydWN0dXJlIGludG8gYSBzZXBhcmF0
ZSBjbGFzcz8KQEAgLTExNyw3ICsxMTcsNiBAQCBkZWYgc3VtbWFyaXplX3Jlc3VsdHMocG9ydF9v
YmosIGV4cGVjdGF0aW9ucywgcmVzdWx0X3N1bW1hcnksIHJldHJ5X3N1bW1hcnksIHRlcwogICAg
ICAgICBleHBlY3RhdGlvbnM6IHRlc3RfZXhwZWN0YXRpb25zLlRlc3RFeHBlY3RhdGlvbnMgb2Jq
ZWN0CiAgICAgICAgIHJlc3VsdF9zdW1tYXJ5OiBzdW1tYXJ5IG9iamVjdCBmcm9tIGluaXRpYWwg
dGVzdCBydW5zCiAgICAgICAgIHJldHJ5X3N1bW1hcnk6IHN1bW1hcnkgb2JqZWN0IGZyb20gZmlu
YWwgdGVzdCBydW4gb2YgcmV0cmllZCB0ZXN0cwotICAgICAgICB0ZXN0X3RpbWluZ3M6IGEgbGlz
dCBvZiBUZXN0UmVzdWx0IG9iamVjdHMgd2hpY2ggY29udGFpbiB0ZXN0IHJ1bnRpbWVzIGluIHNl
Y29uZHMKICAgICAgICAgb25seV91bmV4cGVjdGVkOiB3aGV0aGVyIHRvIHJldHVybiBhIHN1bW1h
cnkgb25seSBmb3IgdGhlIHVuZXhwZWN0ZWQgcmVzdWx0cwogICAgIFJldHVybnM6CiAgICAgICAg
IEEgZGljdGlvbmFyeSBjb250YWluaW5nIGEgc3VtbWFyeSBvZiB0aGUgdW5leHBlY3RlZCByZXN1
bHRzIGZyb20gdGhlCkBAIC00MDIsMTQgKzQwMSwxMCBAQCBjbGFzcyBNYW5hZ2VyKG9iamVjdCk6
CiAgICAgICAgICAgICByZXR1cm4gLTEKIAogICAgICAgICBzdGFydF90aW1lID0gdGltZS50aW1l
KCkKLSAgICAgICAgcmV0cnlfc3VtbWFyeSA9IHJlc3VsdF9zdW1tYXJ5CiAKLSAgICAgICAgIyBG
SVhNRTogbW92ZSB0aGVzZSBmaWVsZHMgaW50byByZXN1bHRfc3VtbWFyeSBzbyB3ZSBkb24ndCBo
YXZlIHRvIHBhc3MgdGhlbSBhcm91bmQuCi0gICAgICAgIHRocmVhZF90aW1pbmdzID0gdGVzdF90
aW1pbmdzID0ge30KLSAgICAgICAgaW5kaXZpZHVhbF90ZXN0X3RpbWluZ3MgPSBbXQorICAgICAg
ICByZXRyeV9zdW1tYXJ5ID0gTm9uZQogICAgICAgICB0cnk6Ci0gICAgICAgICAgICB0aHJlYWRf
dGltaW5ncywgdGVzdF90aW1pbmdzLCBpbmRpdmlkdWFsX3Rlc3RfdGltaW5ncyA9IFwKLSAgICAg
ICAgICAgICAgICBzZWxmLl9ydW5fdGVzdHMoc2VsZi5fdGVzdF9uYW1lcywgcmVzdWx0X3N1bW1h
cnksIGludChzZWxmLl9vcHRpb25zLmNoaWxkX3Byb2Nlc3NlcyksIHJldHJ5aW5nPUZhbHNlKQor
ICAgICAgICAgICAgcmVzdWx0X3N1bW1hcnkgPSBzZWxmLl9ydW5fdGVzdHMoc2VsZi5fdGVzdF9u
YW1lcywgcmVzdWx0X3N1bW1hcnksIGludChzZWxmLl9vcHRpb25zLmNoaWxkX3Byb2Nlc3Nlcyks
IHJldHJ5aW5nPUZhbHNlKQogCiAgICAgICAgICAgICAjIFdlIGV4Y2x1ZGUgdGhlIGNyYXNoZXMg
ZnJvbSB0aGUgbGlzdCBvZiByZXN1bHRzIHRvIHJldHJ5LCBiZWNhdXNlCiAgICAgICAgICAgICAj
IHdlIHdhbnQgdG8gdHJlYXQgZXZlbiBhIHBvdGVudGlhbGx5IGZsYWt5IGNyYXNoIGFzIGFuIGVy
cm9yLgpAQCAtNDE5LDkgKzQxNCw3IEBAIGNsYXNzIE1hbmFnZXIob2JqZWN0KToKICAgICAgICAg
ICAgICAgICBfbG9nLmluZm8oJycpCiAgICAgICAgICAgICAgICAgX2xvZy5pbmZvKCJSZXRyeWlu
ZyAlZCB1bmV4cGVjdGVkIGZhaWx1cmUocykgLi4uIiAlIGxlbihmYWlsdXJlcykpCiAgICAgICAg
ICAgICAgICAgX2xvZy5pbmZvKCcnKQotICAgICAgICAgICAgICAgICMgTm90ZSB0aGF0IHdlIGRv
bid0IGNhcmUgYWJvdXQgdGhlIHZhbHVlcyByZXR1cm5lZCBmcm9tIHRoZSByZXRyeSBwYXNzLgot
ICAgICAgICAgICAgICAgIHJldHJ5X3N1bW1hcnkgPSBSZXN1bHRTdW1tYXJ5KHNlbGYuX2V4cGVj
dGF0aW9ucywgZmFpbHVyZXMsIDEsIHNldCgpKQotICAgICAgICAgICAgICAgIF8gPSBzZWxmLl9y
dW5fdGVzdHMoZmFpbHVyZXMsIHJldHJ5X3N1bW1hcnksIDEsIHJldHJ5aW5nPVRydWUpCisgICAg
ICAgICAgICAgICAgcmV0cnlfc3VtbWFyeSA9IHNlbGYuX3J1bl90ZXN0cyhmYWlsdXJlcywgUmVz
dWx0U3VtbWFyeShzZWxmLl9leHBlY3RhdGlvbnMsIGZhaWx1cmVzLCAxLCBzZXQoKSksIDEsIHJl
dHJ5aW5nPVRydWUpCiAgICAgICAgIGZpbmFsbHk6CiAgICAgICAgICAgICAjIElmIHdlIGFyZSBj
dHJsLWMnZWQ7IHdlIHN0aWxsIHdhbnQgdG8gdHJ5IGFuZCBwcmludCB0aGUgcmVzdWx0cyB3ZSBn
b3QsIGFuZCBjbGVhbiB1cCwKICAgICAgICAgICAgICMgYnV0IHdlIGRvbid0IHdhbnQgdG8gdXBs
b2FkIGFueXRoaW5nLgpAQCAtNDMwLDIwICs0MjMsMjUgQEAgY2xhc3MgTWFuYWdlcihvYmplY3Qp
OgogICAgICAgICAgICAgIyBTb21lIGNyYXNoIGxvZ3MgY2FuIHRha2UgYSBsb25nIHRpbWUgdG8g
YmUgd3JpdHRlbiBvdXQgc28gbG9vawogICAgICAgICAgICAgIyBmb3IgbmV3IGxvZ3MgYWZ0ZXIg
dGhlIHRlc3QgcnVuIGZpbmlzaGVzLgogICAgICAgICAgICAgc2VsZi5fbG9va19mb3JfbmV3X2Ny
YXNoX2xvZ3MocmVzdWx0X3N1bW1hcnksIHN0YXJ0X3RpbWUpCi0gICAgICAgICAgICBzZWxmLl9s
b29rX2Zvcl9uZXdfY3Jhc2hfbG9ncyhyZXRyeV9zdW1tYXJ5LCBzdGFydF90aW1lKQorICAgICAg
ICAgICAgaWYgcmV0cnlfc3VtbWFyeToKKyAgICAgICAgICAgICAgICBzZWxmLl9sb29rX2Zvcl9u
ZXdfY3Jhc2hfbG9ncyhyZXRyeV9zdW1tYXJ5LCBzdGFydF90aW1lKQorICAgICAgICAgICAgZWxz
ZToKKyAgICAgICAgICAgICAgICAjIEZJWE1FOiBNb2RpZnkgc3VtbWFyaXplX3Jlc3VsdHMgdG8g
aGFuZGxlIHJldHJ5X3N1bW1hcnkgPT0gTm9uZS4KKyAgICAgICAgICAgICAgICByZXRyeV9zdW1t
YXJ5ID0gcmVzdWx0X3N1bW1hcnkKKwogICAgICAgICAgICAgc2VsZi5fY2xlYW5fdXBfcnVuKCkK
IAotICAgICAgICAgICAgdW5leHBlY3RlZF9yZXN1bHRzID0gc3VtbWFyaXplX3Jlc3VsdHMoc2Vs
Zi5fcG9ydCwgc2VsZi5fZXhwZWN0YXRpb25zLCByZXN1bHRfc3VtbWFyeSwgcmV0cnlfc3VtbWFy
eSwgaW5kaXZpZHVhbF90ZXN0X3RpbWluZ3MsIG9ubHlfdW5leHBlY3RlZD1UcnVlKQorICAgICAg
ICAgICAgdW5leHBlY3RlZF9yZXN1bHRzID0gc3VtbWFyaXplX3Jlc3VsdHMoc2VsZi5fcG9ydCwg
c2VsZi5fZXhwZWN0YXRpb25zLCByZXN1bHRfc3VtbWFyeSwgcmV0cnlfc3VtbWFyeSwgb25seV91
bmV4cGVjdGVkPVRydWUpCiAKLSAgICAgICAgICAgIHNlbGYuX3ByaW50ZXIucHJpbnRfcmVzdWx0
cyhlbmRfdGltZSAtIHN0YXJ0X3RpbWUsIHRocmVhZF90aW1pbmdzLCB0ZXN0X3RpbWluZ3MsIGlu
ZGl2aWR1YWxfdGVzdF90aW1pbmdzLCByZXN1bHRfc3VtbWFyeSwgdW5leHBlY3RlZF9yZXN1bHRz
KQorICAgICAgICAgICAgc2VsZi5fcHJpbnRlci5wcmludF9yZXN1bHRzKGVuZF90aW1lIC0gc3Rh
cnRfdGltZSwgcmVzdWx0X3N1bW1hcnksIHVuZXhwZWN0ZWRfcmVzdWx0cykKIAogICAgICAgICAj
IEZJWE1FOiByZW1vdmUgcmVjb3JkX3Jlc3VsdHMuIEl0J3MganVzdCB1c2VkIGZvciB0ZXN0aW5n
LiBUaGVyZSdzIG5vIG5lZWQKICAgICAgICAgIyBmb3IgaXQgdG8gYmUgYSBjb21tYW5kbGluZSBh
cmd1bWVudC4KICAgICAgICAgaWYgc2VsZi5fb3B0aW9ucy5yZWNvcmRfcmVzdWx0cyBhbmQgbm90
IHNlbGYuX29wdGlvbnMuZHJ5X3J1bjoKICAgICAgICAgICAgIHNlbGYuX3BvcnQucHJpbnRfbGVh
a3Nfc3VtbWFyeSgpCiAgICAgICAgICAgICAjIFdyaXRlIHRoZSBzYW1lIGRhdGEgdG8gbG9nIGZp
bGVzIGFuZCB1cGxvYWQgZ2VuZXJhdGVkIEpTT04gZmlsZXMgdG8gYXBwZW5naW5lIHNlcnZlci4K
LSAgICAgICAgICAgIHN1bW1hcml6ZWRfcmVzdWx0cyA9IHN1bW1hcml6ZV9yZXN1bHRzKHNlbGYu
X3BvcnQsIHNlbGYuX2V4cGVjdGF0aW9ucywgcmVzdWx0X3N1bW1hcnksIHJldHJ5X3N1bW1hcnks
IGluZGl2aWR1YWxfdGVzdF90aW1pbmdzLCBvbmx5X3VuZXhwZWN0ZWQ9RmFsc2UpCi0gICAgICAg
ICAgICBzZWxmLl91cGxvYWRfanNvbl9maWxlcyhzdW1tYXJpemVkX3Jlc3VsdHMsIHJlc3VsdF9z
dW1tYXJ5LCBpbmRpdmlkdWFsX3Rlc3RfdGltaW5ncykKKyAgICAgICAgICAgIHN1bW1hcml6ZWRf
cmVzdWx0cyA9IHN1bW1hcml6ZV9yZXN1bHRzKHNlbGYuX3BvcnQsIHNlbGYuX2V4cGVjdGF0aW9u
cywgcmVzdWx0X3N1bW1hcnksIHJldHJ5X3N1bW1hcnksIG9ubHlfdW5leHBlY3RlZD1GYWxzZSkK
KyAgICAgICAgICAgIHNlbGYuX3VwbG9hZF9qc29uX2ZpbGVzKHN1bW1hcml6ZWRfcmVzdWx0cywg
cmVzdWx0X3N1bW1hcnkpCiAKICAgICAgICAgIyBXcml0ZSB0aGUgc3VtbWFyeSB0byBkaXNrIChy
ZXN1bHRzLmh0bWwpIGFuZCBkaXNwbGF5IGl0IGlmIHJlcXVlc3RlZC4KICAgICAgICAgaWYgbm90
IHNlbGYuX29wdGlvbnMuZHJ5X3J1bjoKQEAgLTUxNywyMCArNTE1LDE3IEBAIGNsYXNzIE1hbmFn
ZXIob2JqZWN0KToKIAogICAgICAgICByZXR1cm4gZmFpbGVkX3Rlc3RfbmFtZXMKIAotICAgIGRl
ZiBfdXBsb2FkX2pzb25fZmlsZXMoc2VsZiwgc3VtbWFyaXplZF9yZXN1bHRzLCByZXN1bHRfc3Vt
bWFyeSwgaW5kaXZpZHVhbF90ZXN0X3RpbWluZ3MpOgorICAgIGRlZiBfdXBsb2FkX2pzb25fZmls
ZXMoc2VsZiwgc3VtbWFyaXplZF9yZXN1bHRzLCByZXN1bHRfc3VtbWFyeSk6CiAgICAgICAgICIi
IldyaXRlcyB0aGUgcmVzdWx0cyBvZiB0aGUgdGVzdCBydW4gYXMgSlNPTiBmaWxlcyBpbnRvIHRo
ZSByZXN1bHRzCiAgICAgICAgIGRpciBhbmQgdXBsb2FkIHRoZSBmaWxlcyB0byB0aGUgYXBwZW5n
aW5lIHNlcnZlci4KIAogICAgICAgICBBcmdzOgotICAgICAgICAgIHVuZXhwZWN0ZWRfcmVzdWx0
czogZGljdCBvZiB1bmV4cGVjdGVkIHJlc3VsdHMKICAgICAgICAgICBzdW1tYXJpemVkX3Jlc3Vs
dHM6IGRpY3Qgb2YgcmVzdWx0cwogICAgICAgICAgIHJlc3VsdF9zdW1tYXJ5OiBmdWxsIHN1bW1h
cnkgb2JqZWN0Ci0gICAgICAgICAgaW5kaXZpZHVhbF90ZXN0X3RpbWluZ3M6IGxpc3Qgb2YgdGVz
dCB0aW1lcyAodXNlZCBieSB0aGUgZmxha2luZXNzCi0gICAgICAgICAgICBkYXNoYm9hcmQpLgog
ICAgICAgICAiIiIKICAgICAgICAgX2xvZy5kZWJ1ZygiV3JpdGluZyBKU09OIGZpbGVzIGluICVz
LiIgJSBzZWxmLl9yZXN1bHRzX2RpcmVjdG9yeSkKIAotICAgICAgICB0aW1lc190cmllID0ganNv
bl9yZXN1bHRzX2dlbmVyYXRvci50ZXN0X3RpbWluZ3NfdHJpZShzZWxmLl9wb3J0LCBpbmRpdmlk
dWFsX3Rlc3RfdGltaW5ncykKKyAgICAgICAgdGltZXNfdHJpZSA9IGpzb25fcmVzdWx0c19nZW5l
cmF0b3IudGVzdF90aW1pbmdzX3RyaWUoc2VsZi5fcG9ydCwgcmVzdWx0X3N1bW1hcnkucmVzdWx0
cy52YWx1ZXMoKSkKICAgICAgICAgdGltZXNfanNvbl9wYXRoID0gc2VsZi5fZmlsZXN5c3RlbS5q
b2luKHNlbGYuX3Jlc3VsdHNfZGlyZWN0b3J5LCAidGltZXNfbXMuanNvbiIpCiAgICAgICAgIGpz
b25fcmVzdWx0c19nZW5lcmF0b3Iud3JpdGVfanNvbihzZWxmLl9maWxlc3lzdGVtLCB0aW1lc190
cmllLCB0aW1lc19qc29uX3BhdGgpCiAKQEAgLTU0MSw3ICs1MzYsNyBAQCBjbGFzcyBNYW5hZ2Vy
KG9iamVjdCk6CiAgICAgICAgIGdlbmVyYXRvciA9IGpzb25fbGF5b3V0X3Jlc3VsdHNfZ2VuZXJh
dG9yLkpTT05MYXlvdXRSZXN1bHRzR2VuZXJhdG9yKAogICAgICAgICAgICAgc2VsZi5fcG9ydCwg
c2VsZi5fb3B0aW9ucy5idWlsZGVyX25hbWUsIHNlbGYuX29wdGlvbnMuYnVpbGRfbmFtZSwKICAg
ICAgICAgICAgIHNlbGYuX29wdGlvbnMuYnVpbGRfbnVtYmVyLCBzZWxmLl9yZXN1bHRzX2RpcmVj
dG9yeSwKLSAgICAgICAgICAgIEJVSUxERVJfQkFTRV9VUkwsIGluZGl2aWR1YWxfdGVzdF90aW1p
bmdzLAorICAgICAgICAgICAgQlVJTERFUl9CQVNFX1VSTCwKICAgICAgICAgICAgIHNlbGYuX2V4
cGVjdGF0aW9ucywgcmVzdWx0X3N1bW1hcnksIHNlbGYuX3Rlc3RfbmFtZXMsCiAgICAgICAgICAg
ICBzZWxmLl9vcHRpb25zLnRlc3RfcmVzdWx0c19zZXJ2ZXIsCiAgICAgICAgICAgICAibGF5b3V0
LXRlc3RzIiwKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L2NvbnRyb2xsZXJzL21hbmFnZXJfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9tYW5hZ2VyX3VuaXR0ZXN0LnB5CmluZGV4IDE3ZmNl
YWY1ODBlMTIwNzAzNDRiMmIyNTJjZGRhZjg3YjEzNDM1NjYuLmJmODg5YTM2YzM0MDJlN2FhYjZk
ZGI1MzVmNjhiOTgyMzVkM2FlODAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL21hbmFnZXJfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvbWFuYWdlcl91bml0dGVz
dC5weQpAQCAtMTc4LDggKzE3OCw4IEBAIGNsYXNzIFJlc3VsdFN1bW1hcnlUZXN0KHVuaXR0ZXN0
LlRlc3RDYXNlKToKICAgICAgICAgICAgIHJldHJ5LmFkZChzZWxmLmdldF9yZXN1bHQoJ3Bhc3Nl
cy90ZXh0Lmh0bWwnKSwgVHJ1ZSwgdGVzdF9pc19zbG93KQogICAgICAgICAgICAgcmV0cnkuYWRk
KHNlbGYuZ2V0X3Jlc3VsdCgnZmFpbHVyZXMvZXhwZWN0ZWQvdGltZW91dC5odG1sJyksIFRydWUs
IHRlc3RfaXNfc2xvdykKICAgICAgICAgICAgIHJldHJ5LmFkZChzZWxmLmdldF9yZXN1bHQoJ2Zh
aWx1cmVzL2V4cGVjdGVkL2NyYXNoLmh0bWwnKSwgVHJ1ZSwgdGVzdF9pc19zbG93KQotICAgICAg
ICB1bmV4cGVjdGVkX3Jlc3VsdHMgPSBzdW1tYXJpemVfcmVzdWx0cyhwb3J0LCBleHAsIHJzLCBy
ZXRyeSwgdGVzdF90aW1pbmdzPXt9LCBvbmx5X3VuZXhwZWN0ZWQ9VHJ1ZSkKLSAgICAgICAgZXhw
ZWN0ZWRfcmVzdWx0cyA9IHN1bW1hcml6ZV9yZXN1bHRzKHBvcnQsIGV4cCwgcnMsIHJldHJ5LCB0
ZXN0X3RpbWluZ3M9e30sIG9ubHlfdW5leHBlY3RlZD1GYWxzZSkKKyAgICAgICAgdW5leHBlY3Rl
ZF9yZXN1bHRzID0gc3VtbWFyaXplX3Jlc3VsdHMocG9ydCwgZXhwLCBycywgcmV0cnksIG9ubHlf
dW5leHBlY3RlZD1UcnVlKQorICAgICAgICBleHBlY3RlZF9yZXN1bHRzID0gc3VtbWFyaXplX3Jl
c3VsdHMocG9ydCwgZXhwLCBycywgcmV0cnksIG9ubHlfdW5leHBlY3RlZD1GYWxzZSkKICAgICAg
ICAgcmV0dXJuIGV4cGVjdGVkX3Jlc3VsdHMsIHVuZXhwZWN0ZWRfcmVzdWx0cwogCiAgICAgZGVm
IHRlc3Rfbm9fc3ZuX3JldmlzaW9uKHNlbGYpOgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvanNvbl9sYXlvdXRfcmVzdWx0c19n
ZW5lcmF0b3IucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRf
cGFja2FnZS9qc29uX2xheW91dF9yZXN1bHRzX2dlbmVyYXRvci5weQppbmRleCBmMjc3YzkzZGU4
MTNiMWE1OGY1NzdjYzZkMmIyOTg2MDhlODNiNjdhLi4yZjlhMzIxZDk3ZmY4N2MyZjBmYWQ2NDkx
OTU2NDQ0MDA0MjhjZDU5IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9qc29uX2xheW91dF9yZXN1bHRzX2dlbmVyYXRvci5weQor
KysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9q
c29uX2xheW91dF9yZXN1bHRzX2dlbmVyYXRvci5weQpAQCAtNTIsNyArNTIsNyBAQCBjbGFzcyBK
U09OTGF5b3V0UmVzdWx0c0dlbmVyYXRvcihqc29uX3Jlc3VsdHNfZ2VuZXJhdG9yLkpTT05SZXN1
bHRzR2VuZXJhdG9yQmFzZQogCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBvcnQsIGJ1aWxkZXJf
bmFtZSwgYnVpbGRfbmFtZSwgYnVpbGRfbnVtYmVyLAogICAgICAgICByZXN1bHRzX2ZpbGVfYmFz
ZV9wYXRoLCBidWlsZGVyX2Jhc2VfdXJsLAotICAgICAgICB0ZXN0X3RpbWluZ3MsIGV4cGVjdGF0
aW9ucywgcmVzdWx0X3N1bW1hcnksIGFsbF90ZXN0cywKKyAgICAgICAgZXhwZWN0YXRpb25zLCBy
ZXN1bHRfc3VtbWFyeSwgYWxsX3Rlc3RzLAogICAgICAgICB0ZXN0X3Jlc3VsdHNfc2VydmVyPU5v
bmUsIHRlc3RfdHlwZT0iIiwgbWFzdGVyX25hbWU9IiIpOgogICAgICAgICAiIiJNb2RpZmllcyB0
aGUgcmVzdWx0cy5qc29uIGZpbGUuIEdyYWJzIGl0IG9mZiB0aGUgYXJjaGl2ZSBkaXJlY3RvcnkK
ICAgICAgICAgaWYgaXQgaXMgbm90IGZvdW5kIGxvY2FsbHkuCkBAIC03MSw3ICs3MSw3IEBAIGNs
YXNzIEpTT05MYXlvdXRSZXN1bHRzR2VuZXJhdG9yKGpzb25fcmVzdWx0c19nZW5lcmF0b3IuSlNP
TlJlc3VsdHNHZW5lcmF0b3JCYXNlCiAgICAgICAgIHNlbGYuX3Jlc3VsdF9zdW1tYXJ5ID0gcmVz
dWx0X3N1bW1hcnkKICAgICAgICAgc2VsZi5fZmFpbHVyZXMgPSBkaWN0KCh0ZXN0X25hbWUsIHJl
c3VsdF9zdW1tYXJ5LnJlc3VsdHNbdGVzdF9uYW1lXS50eXBlKSBmb3IgdGVzdF9uYW1lIGluIHJl
c3VsdF9zdW1tYXJ5LmZhaWx1cmVzKQogICAgICAgICBzZWxmLl9hbGxfdGVzdHMgPSBhbGxfdGVz
dHMKLSAgICAgICAgc2VsZi5fdGVzdF90aW1pbmdzID0gZGljdCgodGVzdF90dXBsZS50ZXN0X25h
bWUsIHRlc3RfdHVwbGUudGVzdF9ydW5fdGltZSkgZm9yIHRlc3RfdHVwbGUgaW4gdGVzdF90aW1p
bmdzKQorICAgICAgICBzZWxmLl90ZXN0X3RpbWluZ3MgPSByZXN1bHRfc3VtbWFyeS5yZXN1bHRz
CiAKICAgICAgICAgc2VsZi5nZW5lcmF0ZV9qc29uX291dHB1dCgpCiAKQEAgLTk5LDcgKzk5LDcg
QEAgY2xhc3MgSlNPTkxheW91dFJlc3VsdHNHZW5lcmF0b3IoanNvbl9yZXN1bHRzX2dlbmVyYXRv
ci5KU09OUmVzdWx0c0dlbmVyYXRvckJhc2UKICAgICBkZWYgX2dldF90ZXN0X3RpbWluZyhzZWxm
LCB0ZXN0X25hbWUpOgogICAgICAgICBpZiB0ZXN0X25hbWUgaW4gc2VsZi5fdGVzdF90aW1pbmdz
OgogICAgICAgICAgICAgIyBGbG9vciBmb3Igbm93IHRvIGdldCB0aW1lIGluIHNlY29uZHMuCi0g
ICAgICAgICAgICByZXR1cm4gaW50KHNlbGYuX3Rlc3RfdGltaW5nc1t0ZXN0X25hbWVdKQorICAg
ICAgICAgICAgcmV0dXJuIGludChzZWxmLl90ZXN0X3RpbWluZ3NbdGVzdF9uYW1lXS50ZXN0X3J1
bl90aW1lKQogICAgICAgICByZXR1cm4gMAogCiAgICAgIyBvdmVycmlkZQpkaWZmIC0tZ2l0IGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfcmVzdWx0cy5w
eSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X3Jlc3Vs
dHMucHkKaW5kZXggNmI5ZGI1NTg3NjFlNWRlNjQ0Mzc3ODQxMDBlYjcwM2NlNjg4MmNjYy4uZGNi
ZWY2MjVjY2EzMTcwZTEwMzgyZjcwODVhZDdhOWM4ZTRmZTIyZiAxMDA2NDQKLS0tIGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfcmVzdWx0cy5weQorKysg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVzdF9yZXN1bHRz
LnB5CkBAIC00MSwxMiArNDEsMTggQEAgY2xhc3MgVGVzdFJlc3VsdChvYmplY3QpOgogICAgIGRl
ZiBfX2luaXRfXyhzZWxmLCB0ZXN0X25hbWUsIGZhaWx1cmVzPU5vbmUsIHRlc3RfcnVuX3RpbWU9
Tm9uZSwgaGFzX3N0ZGVycj1GYWxzZSwgcmVmdGVzdF90eXBlPVtdKToKICAgICAgICAgc2VsZi50
ZXN0X25hbWUgPSB0ZXN0X25hbWUKICAgICAgICAgc2VsZi5mYWlsdXJlcyA9IGZhaWx1cmVzIG9y
IFtdCi0gICAgICAgIHNlbGYudGVzdF9ydW5fdGltZSA9IHRlc3RfcnVuX3RpbWUgb3IgMAorICAg
ICAgICBzZWxmLnRlc3RfcnVuX3RpbWUgPSB0ZXN0X3J1bl90aW1lIG9yIDAgICMgVGhlIHRpbWUg
dGFrZW4gdG8gZXhlY3V0ZSB0aGUgdGVzdCBpdHNlbGYuCiAgICAgICAgIHNlbGYuaGFzX3N0ZGVy
ciA9IGhhc19zdGRlcnIKICAgICAgICAgc2VsZi5yZWZ0ZXN0X3R5cGUgPSByZWZ0ZXN0X3R5cGUK
KwogICAgICAgICAjIEZJWE1FOiBTZXR0aW5nIHRoaXMgaW4gdGhlIGNvbnN0cnVjdG9yIG1ha2Vz
IHRoaXMgY2xhc3MgaGFyZCB0byBtdXRhdGUuCiAgICAgICAgIHNlbGYudHlwZSA9IHRlc3RfZmFp
bHVyZXMuZGV0ZXJtaW5lX3Jlc3VsdF90eXBlKGZhaWx1cmVzKQogCisgICAgICAgICMgVGhlc2Ug
YXJlIHNldCBieSB0aGUgd29ya2VyLCBub3QgYnkgdGhlIGRyaXZlciwgc28gdGhleSBhcmUgbm90
IHBhc3NlZCB0byB0aGUgY29uc3RydWN0b3IuCisgICAgICAgIHNlbGYud29ya2VyX25hbWUgPSAn
JworICAgICAgICBzZWxmLnNoYXJkX25hbWUgPSAnJworICAgICAgICBzZWxmLnRvdGFsX3J1bl90
aW1lID0gMCAgIyBUaGUgdGltZSB0YWtlbiB0byBydW4gdGhlIHRlc3QgcGx1cyBhbnkgcmVmZXJl
bmNlcywgY29tcHV0ZSBkaWZmcywgZXRjLgorCiAgICAgZGVmIF9fZXFfXyhzZWxmLCBvdGhlcik6
CiAgICAgICAgIHJldHVybiAoc2VsZi50ZXN0X25hbWUgPT0gb3RoZXIudGVzdF9uYW1lIGFuZAog
ICAgICAgICAgICAgICAgIHNlbGYuZmFpbHVyZXMgPT0gb3RoZXIuZmFpbHVyZXMgYW5kCmRpZmYg
LS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy92aWV3cy9wcmludGlu
Zy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3ZpZXdzL3ByaW50aW5n
LnB5CmluZGV4IGI3YTkxOTVhODRjMjE5OWZlMjY3NDhjY2U3YmRiOWM5ZGZhMmUxZGYuLjg1ODJk
MWY1NDEyZDQ1MzNkMGJmNTJhOTY0ODI1MTljOTk5ZTg3NGIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3ZpZXdzL3ByaW50aW5nLnB5CisrKyBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3ZpZXdzL3ByaW50aW5nLnB5CkBAIC0xNDks
MzkgKzE0OSw0NyBAQCBjbGFzcyBQcmludGVyKG9iamVjdCk6CiAgICAgICAgICAgICBuZGlnaXRz
ID0gaW50KG1hdGgubG9nMTAobGVuKG51bSkpKSArIDEKICAgICAgICAgcmV0dXJuIG5kaWdpdHMK
IAotICAgIGRlZiBwcmludF9yZXN1bHRzKHNlbGYsIHJ1bl90aW1lLCB0aHJlYWRfdGltaW5ncywg
dGVzdF90aW1pbmdzLCBpbmRpdmlkdWFsX3Rlc3RfdGltaW5ncywgcmVzdWx0X3N1bW1hcnksIHVu
ZXhwZWN0ZWRfcmVzdWx0cyk6Ci0gICAgICAgIHNlbGYuX3ByaW50X3RpbWluZ19zdGF0aXN0aWNz
KHJ1bl90aW1lLCB0aHJlYWRfdGltaW5ncywgdGVzdF90aW1pbmdzLCBpbmRpdmlkdWFsX3Rlc3Rf
dGltaW5ncywgcmVzdWx0X3N1bW1hcnkpCisgICAgZGVmIHByaW50X3Jlc3VsdHMoc2VsZiwgcnVu
X3RpbWUsIHJlc3VsdF9zdW1tYXJ5LCB1bmV4cGVjdGVkX3Jlc3VsdHMpOgorICAgICAgICBzZWxm
Ll9wcmludF90aW1pbmdfc3RhdGlzdGljcyhydW5fdGltZSwgcmVzdWx0X3N1bW1hcnkpCiAgICAg
ICAgIHNlbGYuX3ByaW50X3Jlc3VsdF9zdW1tYXJ5KHJlc3VsdF9zdW1tYXJ5KQogICAgICAgICBz
ZWxmLl9wcmludF9vbmVfbGluZV9zdW1tYXJ5KHJlc3VsdF9zdW1tYXJ5LnRvdGFsIC0gcmVzdWx0
X3N1bW1hcnkuZXhwZWN0ZWRfc2tpcHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcmVzdWx0X3N1bW1hcnkuZXhwZWN0ZWQgLSByZXN1bHRfc3VtbWFyeS5leHBlY3RlZF9z
a2lwcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRfc3VtbWFy
eS51bmV4cGVjdGVkKQogICAgICAgICBzZWxmLl9wcmludF91bmV4cGVjdGVkX3Jlc3VsdHModW5l
eHBlY3RlZF9yZXN1bHRzKQogCi0gICAgZGVmIF9wcmludF90aW1pbmdfc3RhdGlzdGljcyhzZWxm
LCB0b3RhbF90aW1lLCB0aHJlYWRfdGltaW5ncywKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGRpcmVjdG9yeV90ZXN0X3RpbWluZ3MsIGluZGl2aWR1YWxfdGVzdF90aW1pbmdzLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0X3N1bW1hcnkpOgorICAgIGRl
ZiBfcHJpbnRfdGltaW5nX3N0YXRpc3RpY3Moc2VsZiwgdG90YWxfdGltZSwgcmVzdWx0X3N1bW1h
cnkpOgogICAgICAgICBzZWxmLl9wcmludF9kZWJ1ZygiVGVzdCB0aW1pbmc6IikKICAgICAgICAg
c2VsZi5fcHJpbnRfZGVidWcoIiAgJTYuMmYgdG90YWwgdGVzdGluZyB0aW1lIiAlIHRvdGFsX3Rp
bWUpCiAgICAgICAgIHNlbGYuX3ByaW50X2RlYnVnKCIiKQorCisgICAgICAgIHNlbGYuX3ByaW50
X3dvcmtlcl9zdGF0aXN0aWNzKHJlc3VsdF9zdW1tYXJ5LCBpbnQoc2VsZi5fb3B0aW9ucy5jaGls
ZF9wcm9jZXNzZXMpKQorICAgICAgICBzZWxmLl9wcmludF9hZ2dyZWdhdGVfdGVzdF9zdGF0aXN0
aWNzKHJlc3VsdF9zdW1tYXJ5KQorICAgICAgICBzZWxmLl9wcmludF9pbmRpdmlkdWFsX3Rlc3Rf
dGltZXMocmVzdWx0X3N1bW1hcnkpCisgICAgICAgIHNlbGYuX3ByaW50X2RpcmVjdG9yeV90aW1p
bmdzKHJlc3VsdF9zdW1tYXJ5KQorCisgICAgZGVmIF9wcmludF93b3JrZXJfc3RhdGlzdGljcyhz
ZWxmLCByZXN1bHRfc3VtbWFyeSwgbnVtX3dvcmtlcnMpOgogICAgICAgICBzZWxmLl9wcmludF9k
ZWJ1ZygiVGhyZWFkIHRpbWluZzoiKQorICAgICAgICBzdGF0cyA9IHt9CiAgICAgICAgIGN1bWxf
dGltZSA9IDAKLSAgICAgICAgZm9yIHQgaW4gdGhyZWFkX3RpbWluZ3M6Ci0gICAgICAgICAgICBz
ZWxmLl9wcmludF9kZWJ1ZygiICAgICUxMHM6ICU1ZCB0ZXN0cywgJTYuMmYgc2VjcyIgJSAodFsn
bmFtZSddLCB0WydudW1fdGVzdHMnXSwgdFsndG90YWxfdGltZSddKSkKLSAgICAgICAgICAgIGN1
bWxfdGltZSArPSB0Wyd0b3RhbF90aW1lJ10KLSAgICAgICAgc2VsZi5fcHJpbnRfZGVidWcoIiAg
ICU2LjJmIGN1bXVsYXRpdmUsICU2LjJmIG9wdGltYWwiICUgKGN1bWxfdGltZSwgY3VtbF90aW1l
IC8gaW50KHNlbGYuX29wdGlvbnMuY2hpbGRfcHJvY2Vzc2VzKSkpCisgICAgICAgIGZvciByZXN1
bHQgaW4gcmVzdWx0X3N1bW1hcnkucmVzdWx0cy52YWx1ZXMoKToKKyAgICAgICAgICAgIHN0YXRz
LnNldGRlZmF1bHQocmVzdWx0Lndvcmtlcl9uYW1lLCB7J251bV90ZXN0cyc6IDAsICd0b3RhbF90
aW1lJzogMH0pCisgICAgICAgICAgICBzdGF0c1tyZXN1bHQud29ya2VyX25hbWVdWydudW1fdGVz
dHMnXSArPSAxCisgICAgICAgICAgICBzdGF0c1tyZXN1bHQud29ya2VyX25hbWVdWyd0b3RhbF90
aW1lJ10gKz0gcmVzdWx0LnRvdGFsX3J1bl90aW1lCisgICAgICAgICAgICBjdW1sX3RpbWUgKz0g
cmVzdWx0LnRvdGFsX3J1bl90aW1lCisKKyAgICAgICAgZm9yIHdvcmtlcl9uYW1lIGluIHN0YXRz
OgorICAgICAgICAgICAgc2VsZi5fcHJpbnRfZGVidWcoIiAgICAlMTBzOiAlNWQgdGVzdHMsICU2
LjJmIHNlY3MiICUgKHdvcmtlcl9uYW1lLCBzdGF0c1t3b3JrZXJfbmFtZV1bJ251bV90ZXN0cydd
LCBzdGF0c1t3b3JrZXJfbmFtZV1bJ3RvdGFsX3RpbWUnXSkpCisgICAgICAgIHNlbGYuX3ByaW50
X2RlYnVnKCIgICAlNi4yZiBjdW11bGF0aXZlLCAlNi4yZiBvcHRpbWFsIiAlIChjdW1sX3RpbWUs
IGN1bWxfdGltZSAvIG51bV93b3JrZXJzKSkKICAgICAgICAgc2VsZi5fcHJpbnRfZGVidWcoIiIp
CiAKLSAgICAgICAgc2VsZi5fcHJpbnRfYWdncmVnYXRlX3Rlc3Rfc3RhdGlzdGljcyhpbmRpdmlk
dWFsX3Rlc3RfdGltaW5ncykKLSAgICAgICAgc2VsZi5fcHJpbnRfaW5kaXZpZHVhbF90ZXN0X3Rp
bWVzKGluZGl2aWR1YWxfdGVzdF90aW1pbmdzLCByZXN1bHRfc3VtbWFyeSkKLSAgICAgICAgc2Vs
Zi5fcHJpbnRfZGlyZWN0b3J5X3RpbWluZ3MoZGlyZWN0b3J5X3Rlc3RfdGltaW5ncykKLQotICAg
IGRlZiBfcHJpbnRfYWdncmVnYXRlX3Rlc3Rfc3RhdGlzdGljcyhzZWxmLCBpbmRpdmlkdWFsX3Rl
c3RfdGltaW5ncyk6Ci0gICAgICAgIHRpbWVzX2Zvcl9kdW1wX3JlbmRlcl90cmVlID0gW3Rlc3Rf
c3RhdHMudGVzdF9ydW5fdGltZSBmb3IgdGVzdF9zdGF0cyBpbiBpbmRpdmlkdWFsX3Rlc3RfdGlt
aW5nc10KKyAgICBkZWYgX3ByaW50X2FnZ3JlZ2F0ZV90ZXN0X3N0YXRpc3RpY3Moc2VsZiwgcmVz
dWx0X3N1bW1hcnkpOgorICAgICAgICB0aW1lc19mb3JfZHVtcF9yZW5kZXJfdHJlZSA9IFtyZXN1
bHQudGVzdF9ydW5fdGltZSBmb3IgcmVzdWx0IGluIHJlc3VsdF9zdW1tYXJ5LnJlc3VsdHMudmFs
dWVzKCldCiAgICAgICAgIHNlbGYuX3ByaW50X3N0YXRpc3RpY3NfZm9yX3Rlc3RfdGltaW5ncygi
UEVSIFRFU1QgVElNRSBJTiBURVNUU0hFTEwgKHNlY29uZHMpOiIsIHRpbWVzX2Zvcl9kdW1wX3Jl
bmRlcl90cmVlKQogCi0gICAgZGVmIF9wcmludF9pbmRpdmlkdWFsX3Rlc3RfdGltZXMoc2VsZiwg
aW5kaXZpZHVhbF90ZXN0X3RpbWluZ3MsIHJlc3VsdF9zdW1tYXJ5KToKKyAgICBkZWYgX3ByaW50
X2luZGl2aWR1YWxfdGVzdF90aW1lcyhzZWxmLCByZXN1bHRfc3VtbWFyeSk6CiAgICAgICAgICMg
UmV2ZXJzZS1zb3J0IGJ5IHRoZSB0aW1lIHNwZW50IGluIER1bXBSZW5kZXJUcmVlLgotICAgICAg
ICBpbmRpdmlkdWFsX3Rlc3RfdGltaW5ncy5zb3J0KGxhbWJkYSBhLCBiOiBjbXAoYi50ZXN0X3J1
bl90aW1lLCBhLnRlc3RfcnVuX3RpbWUpKQorCisgICAgICAgIGluZGl2aWR1YWxfdGVzdF90aW1p
bmdzID0gc29ydGVkKHJlc3VsdF9zdW1tYXJ5LnJlc3VsdHMudmFsdWVzKCksIGtleT1sYW1iZGEg
cmVzdWx0OiByZXN1bHQudGVzdF9ydW5fdGltZSkKICAgICAgICAgbnVtX3ByaW50ZWQgPSAwCiAg
ICAgICAgIHNsb3dfdGVzdHMgPSBbXQogICAgICAgICB0aW1lb3V0X29yX2NyYXNoX3Rlc3RzID0g
W10KQEAgLTIxOSwxOCArMjI3LDIzIEBAIGNsYXNzIFByaW50ZXIob2JqZWN0KToKICAgICAgICAg
ICAgIHRlc3RfcnVuX3RpbWUgPSByb3VuZCh0ZXN0X3R1cGxlLnRlc3RfcnVuX3RpbWUsIDEpCiAg
ICAgICAgICAgICBzZWxmLl9wcmludF9kZWJ1ZygiICAlcyB0b29rICVzIHNlY29uZHMiICUgKHRl
c3RfdHVwbGUudGVzdF9uYW1lLCB0ZXN0X3J1bl90aW1lKSkKIAotICAgIGRlZiBfcHJpbnRfZGly
ZWN0b3J5X3RpbWluZ3Moc2VsZiwgZGlyZWN0b3J5X3Rlc3RfdGltaW5ncyk6CisgICAgZGVmIF9w
cmludF9kaXJlY3RvcnlfdGltaW5ncyhzZWxmLCByZXN1bHRfc3VtbWFyeSk6CisgICAgICAgIHN0
YXRzID0ge30KKyAgICAgICAgZm9yIHJlc3VsdCBpbiByZXN1bHRfc3VtbWFyeS5yZXN1bHRzLnZh
bHVlcygpOgorICAgICAgICAgICAgc3RhdHMuc2V0ZGVmYXVsdChyZXN1bHQuc2hhcmRfbmFtZSwg
eydudW1fdGVzdHMnOiAwLCAndG90YWxfdGltZSc6IDB9KQorICAgICAgICAgICAgc3RhdHNbcmVz
dWx0LnNoYXJkX25hbWVdWydudW1fdGVzdHMnXSArPSAxCisgICAgICAgICAgICBzdGF0c1tyZXN1
bHQuc2hhcmRfbmFtZV1bJ3RvdGFsX3RpbWUnXSArPSByZXN1bHQudG90YWxfcnVuX3RpbWUKKwog
ICAgICAgICB0aW1pbmdzID0gW10KLSAgICAgICAgZm9yIGRpcmVjdG9yeSBpbiBkaXJlY3Rvcnlf
dGVzdF90aW1pbmdzOgotICAgICAgICAgICAgbnVtX3Rlc3RzLCB0aW1lX2Zvcl9kaXJlY3Rvcnkg
PSBkaXJlY3RvcnlfdGVzdF90aW1pbmdzW2RpcmVjdG9yeV0KLSAgICAgICAgICAgIHRpbWluZ3Mu
YXBwZW5kKChyb3VuZCh0aW1lX2Zvcl9kaXJlY3RvcnksIDEpLCBkaXJlY3RvcnksIG51bV90ZXN0
cykpCisgICAgICAgIGZvciBkaXJlY3RvcnkgaW4gc3RhdHM6CisgICAgICAgICAgICB0aW1pbmdz
LmFwcGVuZCgoZGlyZWN0b3J5LCByb3VuZChzdGF0c1tkaXJlY3RvcnldWyd0b3RhbF90aW1lJ10s
IDEpLCBzdGF0c1tkaXJlY3RvcnldWydudW1fdGVzdHMnXSkpCiAgICAgICAgIHRpbWluZ3Muc29y
dCgpCiAKICAgICAgICAgc2VsZi5fcHJpbnRfZGVidWcoIlRpbWUgdG8gcHJvY2VzcyBzbG93ZXN0
IHN1YmRpcmVjdG9yaWVzOiIpCiAgICAgICAgIG1pbl9zZWNvbmRzX3RvX3ByaW50ID0gMTAKICAg
ICAgICAgZm9yIHRpbWluZyBpbiB0aW1pbmdzOgogICAgICAgICAgICAgaWYgdGltaW5nWzBdID4g
bWluX3NlY29uZHNfdG9fcHJpbnQ6Ci0gICAgICAgICAgICAgICAgc2VsZi5fcHJpbnRfZGVidWco
IiAgJXMgdG9vayAlcyBzZWNvbmRzIHRvIHJ1biAlcyB0ZXN0cy4iICUgKHRpbWluZ1sxXSwgdGlt
aW5nWzBdLCB0aW1pbmdbMl0pKQorICAgICAgICAgICAgICAgIHNlbGYuX3ByaW50X2RlYnVnKCIg
ICVzIHRvb2sgJXMgc2Vjb25kcyB0byBydW4gJXMgdGVzdHMuIiAlIHRpbWluZykKICAgICAgICAg
c2VsZi5fcHJpbnRfZGVidWcoIiIpCiAKICAgICBkZWYgX3ByaW50X3N0YXRpc3RpY3NfZm9yX3Rl
c3RfdGltaW5ncyhzZWxmLCB0aXRsZSwgdGltaW5ncyk6CmRpZmYgLS1naXQgYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy92aWV3cy9wcmludGluZ191bml0dGVzdC5weSBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3ZpZXdzL3ByaW50aW5nX3VuaXR0ZXN0
LnB5CmluZGV4IGQ0YzQxNjk2NmUyYzkwMGY3YmNiYzc5MjVjMTFhNzBmMzYxZmFhNWEuLjQxMzY5
ZmMyNzRlZTlmYTA0YTBlNTk1ZjZkM2QwOWE1ZTI1OWMxNTMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3ZpZXdzL3ByaW50aW5nX3VuaXR0ZXN0LnB5Cisr
KyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3ZpZXdzL3ByaW50aW5nX3Vu
aXR0ZXN0LnB5CkBAIC0yMDAsNyArMjAwLDcgQEAgY2xhc3MgIFRlc3RwcmludGVyKHVuaXR0ZXN0
LlRlc3RDYXNlKToKICAgICAgICAgICAgICAgICByZXRyeS5hZGQoc2VsZi5nZXRfcmVzdWx0KCdw
YXNzZXMvdGV4dC5odG1sJyksIFRydWUsIHRlc3RfaXNfc2xvdykKICAgICAgICAgICAgICAgICBy
ZXRyeS5hZGQoc2VsZi5nZXRfcmVzdWx0KCdmYWlsdXJlcy9leHBlY3RlZC90aW1lb3V0Lmh0bWwn
KSwgVHJ1ZSwgdGVzdF9pc19zbG93KQogICAgICAgICAgICAgICAgIHJldHJ5LmFkZChzZWxmLmdl
dF9yZXN1bHQoJ2ZhaWx1cmVzL2V4cGVjdGVkL2NyYXNoLmh0bWwnKSwgVHJ1ZSwgdGVzdF9pc19z
bG93KQotICAgICAgICAgICAgdW5leHBlY3RlZF9yZXN1bHRzID0gbWFuYWdlci5zdW1tYXJpemVf
cmVzdWx0cyhzZWxmLl9wb3J0LCBleHAsIHJzLCByZXRyeSwgdGVzdF90aW1pbmdzPXt9LCBvbmx5
X3VuZXhwZWN0ZWQ9VHJ1ZSkKKyAgICAgICAgICAgIHVuZXhwZWN0ZWRfcmVzdWx0cyA9IG1hbmFn
ZXIuc3VtbWFyaXplX3Jlc3VsdHMoc2VsZi5fcG9ydCwgZXhwLCBycywgcmV0cnksIG9ubHlfdW5l
eHBlY3RlZD1UcnVlKQogICAgICAgICAgICAgcmV0dXJuIHVuZXhwZWN0ZWRfcmVzdWx0cwogCiAg
ICAgICAgIHRlc3RzID0gWydwYXNzZXMvdGV4dC5odG1sJywgJ2ZhaWx1cmVzL2V4cGVjdGVkL3Rp
bWVvdXQuaHRtbCcsICdmYWlsdXJlcy9leHBlY3RlZC9jcmFzaC5odG1sJ10K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>177535</attachid>
            <date>2012-12-04 13:26:02 -0800</date>
            <delta_ts>2012-12-04 13:29:39 -0800</delta_ts>
            <desc>fix typos, lint</desc>
            <filename>bug-103943-20121204132327.patch</filename>
            <type>text/plain</type>
            <size>26831</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2NDQzCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNzQwOTk1MGM3MTkxOWEwZWIzY2I3ZmQ3YTY5ZGExZmI0
YWM3MmJlZS4uY2NkNjhkMjE5ODI4NDc0ZmQ2MTZmYWQ2ODcxYWY5NDI0MzZmZGEwNiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1
IEBACisyMDEyLTEyLTA0ICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIG5yd3Q6IGRlcml2ZSBwZXItdGhyZWFkLCBwZXItd29ya2VyIHN0YXRzIGZyb20gcmVz
dWx0IHN1bW1hcmllcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTAzOTQzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVGhpcyBwYXRjaCBjaGFuZ2VzIHRoZSBtYW5hZ2VyIGFuZCBwcmludGluZyBjb2RlIHRv
IHB1bGwgbW9yZSAgICAgICAgICAgCisgICAgICAgIGluZm9ybWF0aW9uIGZyb20gdGhlIFJlc3Vs
dFN1bW1hcnkgb2JqZWN0IHJhdGhlciB0aGFuIHRyYWNraW5nICAgICAgICAgIAorICAgICAgICBh
ZGRpdGlvbmFsIHN0YXRpc3RpY3Mgb24gdGhlIHNpZGUuIFRoaXMgYWxsb3dzIHVzIHRvIGNvbnNv
bGlkYXRlICAgICAgICAKKyAgICAgICAgYSBidW5jaCBvZiBsb2dpYyBhbmQgcmVtb3ZlIGEgYnVu
Y2ggb2YgZnJlZS1mbG9hdGluZyBsaXN0cyBhbmQgZGljdHMgb2YgCisgICAgICAgIG9mIHZhbHVl
cy4gV2UgYWRkIHRoZSBzaGFyZF9uYW1lIGFuZCB3b3JrZXJfbmFtZSB0byBlYWNoIFRlc3RSZXN1
bHQsICAgIAorICAgICAgICBhbmQgdGhlbiBtb2RpZnkgcHJpbnRfdGltaW5nX3N0YXRpc3RpY3Mo
KSBhbmQgdXBsb2FkX2pzb25fZmlsZXMoKSAgICAgICAKKyAgICAgICAgdG8ganVzdCBuZWVkIHRo
ZSByZXN1bHQgc3VtbWFyaWVzLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
CisKKyAgICAgICAgTm90ZSB0aGF0IHRoaXMgcGF0Y2ggYWxzbyBjaGFuZ2VzIHRoZSB0aW1pbmcg
c3RhdGlzdGljcyBzbGlnaHRseQorICAgICAgICBzbyB0aGF0IHRoZSBpbmRpdmlkdWFsIHRlc3Qg
dGltZXMgYXJlIHRoZSB0aW1lcyB0byBydW4ganVzdCB0aGUKKyAgICAgICAgdGVzdHMgdGhlbXNl
bHZlcyAoVGVzdFJlc3VsdC50ZXN0X3J1bl90aW1lKSBhbmQgZG8gbm90IGluY2x1ZGUgdGhlCisg
ICAgICAgIHRpbWVzIHRha2VuIHRvIHJ1biB0aGUgcmVmIHRlc3RzLCBjb21wdXRlIGRpZmZzLCBl
dGMuIFRoZSBhZ2dyZWdhdGVkCisgICAgICAgIHBlci13b3JrZXIgYW5kIHBlci1zaGFyZCBzdGF0
aXN0aWNzIHN0aWxsIHVzZSB0aGUgdG90YWwgdGltZSB0bworICAgICAgICBwcm9jZXNzIGVhY2gg
dGVzdCAoVGVzdFJlc3VsdC50b3RhbF9ydW5fdGltZSkuCisKKyAgICAgICAgKiBTY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9sYXlvdXRfdGVzdF9ydW5uZXIucHk6Cisg
ICAgICAgIChMYXlvdXRUZXN0UnVubmVyLl9faW5pdF9fKToKKyAgICAgICAgKExheW91dFRlc3RS
dW5uZXIucnVuX3Rlc3RzKToKKyAgICAgICAgKExheW91dFRlc3RSdW5uZXIuX2hhbmRsZV9maW5p
c2hlZF90ZXN0X2xpc3QpOgorICAgICAgICAoTGF5b3V0VGVzdFJ1bm5lci5faGFuZGxlX2Zpbmlz
aGVkX3Rlc3QpOgorICAgICAgICAoV29ya2VyLmhhbmRsZSk6CisgICAgICAgIChXb3JrZXIuX3J1
bl90ZXN0KToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9s
bGVycy9tYW5hZ2VyLnB5OgorICAgICAgICAoc3VtbWFyaXplX3Jlc3VsdHMpOgorICAgICAgICAo
TWFuYWdlci5ydW4pOgorICAgICAgICAoTWFuYWdlci5fdXBsb2FkX2pzb25fZmlsZXMpOgorICAg
ICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL21hbmFnZXJf
dW5pdHRlc3QucHk6CisgICAgICAgIChSZXN1bHRTdW1tYXJ5VGVzdC5zdW1tYXJpemVkX3Jlc3Vs
dHMpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNr
YWdlL2pzb25fbGF5b3V0X3Jlc3VsdHNfZ2VuZXJhdG9yLnB5OgorICAgICAgICAoSlNPTkxheW91
dFJlc3VsdHNHZW5lcmF0b3IuX19pbml0X18pOgorICAgICAgICAoSlNPTkxheW91dFJlc3VsdHNH
ZW5lcmF0b3IuX2dldF90ZXN0X3RpbWluZyk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfcmVzdWx0cy5weToKKyAgICAgICAgKFRlc3RSZXN1bHQu
X19pbml0X18pOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3ZpZXdz
L3ByaW50aW5nLnB5OgorICAgICAgICAoUHJpbnRlci5wcmludF9yZXN1bHRzKToKKyAgICAgICAg
KFByaW50ZXIuX3ByaW50X3RpbWluZ19zdGF0aXN0aWNzKToKKyAgICAgICAgKFByaW50ZXIpOgor
ICAgICAgICAoUHJpbnRlci5fcHJpbnRfd29ya2VyX3N0YXRpc3RpY3MpOgorICAgICAgICAoUHJp
bnRlci5fcHJpbnRfYWdncmVnYXRlX3Rlc3Rfc3RhdGlzdGljcyk6CisgICAgICAgIChQcmludGVy
Ll9wcmludF9pbmRpdmlkdWFsX3Rlc3RfdGltZXMpOgorICAgICAgICAoUHJpbnRlci5fcHJpbnRf
ZGlyZWN0b3J5X3RpbWluZ3MpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL3ZpZXdzL3ByaW50aW5nX3VuaXR0ZXN0LnB5OgorICAgICAgICAoVGVzdHByaW50ZXIudGVz
dF9wcmludF91bmV4cGVjdGVkX3Jlc3VsdHMuZ2V0X3VuZXhwZWN0ZWRfcmVzdWx0cyk6CisgICAg
ICAgIChUZXN0cHJpbnRlcik6CisKIDIwMTItMTItMDMgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgd2Via2l0cHkncyBydW5fd2Via2l0X3Rlc3RzIHNob3Vs
ZCBpbml0aWFsaXplIHRoZSBwcmludGVyIGVhcmxpZXIgb24KZGlmZiAtLWdpdCBhL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL2xheW91dF90ZXN0X3J1bm5l
ci5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL2xh
eW91dF90ZXN0X3J1bm5lci5weQppbmRleCBhZjIyNDdiOGEyZGViMzA2YjE4MjA0MTJiZWVkMzRk
YjQ2MTYyMTFiLi42ZjE0MTk1ZDEyMjgyYjQyODE1MmYwMzEzYzQ1ZWEyZDQ1ZGUyNzgxIDEwMDY0
NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9s
YXlvdXRfdGVzdF9ydW5uZXIucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvY29udHJvbGxlcnMvbGF5b3V0X3Rlc3RfcnVubmVyLnB5CkBAIC0yOCw3ICsyOCw2IEBA
CiAKIGltcG9ydCBsb2dnaW5nCiBpbXBvcnQgbWF0aAotaW1wb3J0IHJlCiBpbXBvcnQgdGhyZWFk
aW5nCiBpbXBvcnQgdGltZQogCkBAIC03NSwyMCArNzQsMTEgQEAgY2xhc3MgTGF5b3V0VGVzdFJ1
bm5lcihvYmplY3QpOgogICAgICAgICBzZWxmLl9uZWVkc193ZWJzb2NrZXRzID0gTm9uZQogICAg
ICAgICBzZWxmLl9yZXRyeWluZyA9IEZhbHNlCiAgICAgICAgIHNlbGYuX3Rlc3RfZmlsZXNfbGlz
dCA9IFtdCi0gICAgICAgIHNlbGYuX2FsbF9yZXN1bHRzID0gW10KLSAgICAgICAgc2VsZi5fZ3Jv
dXBfc3RhdHMgPSB7fQotICAgICAgICBzZWxmLl93b3JrZXJfc3RhdHMgPSB7fQorICAgICAgICBz
ZWxmLl9yZW1haW5pbmdfbG9ja2VkX3NoYXJkcyA9IFtdCisgICAgICAgIHNlbGYuX2hhc19odHRw
X2xvY2sgPSBGYWxzZQogICAgICAgICBzZWxmLl9maWxlc3lzdGVtID0gc2VsZi5fcG9ydC5ob3N0
LmZpbGVzeXN0ZW0KIAogICAgIGRlZiBydW5fdGVzdHMoc2VsZiwgdGVzdF9pbnB1dHMsIGV4cGVj
dGF0aW9ucywgcmVzdWx0X3N1bW1hcnksIG51bV93b3JrZXJzLCBuZWVkc19odHRwLCBuZWVkc193
ZWJzb2NrZXRzLCByZXRyeWluZyk6Ci0gICAgICAgICIiIlJldHVybnMgYSB0dXBsZSBvZiAodGhy
ZWFkX3RpbWluZ3MsIHRlc3RfdGltaW5ncywgaW5kaXZpZHVhbF90ZXN0X3RpbWluZ3MpOgotICAg
ICAgICAgICAgdGhyZWFkX3RpbWluZ3MgaXMgYSBsaXN0IG9mIGRpY3RzIHdpdGggdGhlIHRvdGFs
IHJ1bnRpbWUKLSAgICAgICAgICAgICAgICBvZiBlYWNoIHRocmVhZCB3aXRoICduYW1lJywgJ251
bV90ZXN0cycsICd0b3RhbF90aW1lJyBwcm9wZXJ0aWVzCi0gICAgICAgICAgICB0ZXN0X3RpbWlu
Z3MgaXMgYSBsaXN0IG9mIHRpbWluZ3MgZm9yIGVhY2ggc2hhcmRlZCBzdWJkaXJlY3RvcnkKLSAg
ICAgICAgICAgICAgICBvZiB0aGUgZm9ybSBbdGltZSwgZGlyZWN0b3J5X25hbWUsIG51bV90ZXN0
c10KLSAgICAgICAgICAgIGluZGl2aWR1YWxfdGVzdF90aW1pbmdzIGlzIGEgbGlzdCBvZiBydW4g
dGltZXMgZm9yIGVhY2ggdGVzdAotICAgICAgICAgICAgICAgIGluIHRoZSBmb3JtIHtmaWxlbmFt
ZTpmaWxlbmFtZSwgdGVzdF9ydW5fdGltZTp0ZXN0X3J1bl90aW1lfQotICAgICAgICAiIiIKICAg
ICAgICAgc2VsZi5fY3VycmVudF9yZXN1bHRfc3VtbWFyeSA9IHJlc3VsdF9zdW1tYXJ5CiAgICAg
ICAgIHNlbGYuX2V4cGVjdGF0aW9ucyA9IGV4cGVjdGF0aW9ucwogICAgICAgICBzZWxmLl9uZWVk
c19odHRwID0gbmVlZHNfaHR0cApAQCAtOTgsOSArODgsNiBAQCBjbGFzcyBMYXlvdXRUZXN0UnVu
bmVyKG9iamVjdCk6CiAgICAgICAgIHNlbGYuX3ByaW50ZXIubnVtX3Rlc3RzID0gbGVuKHNlbGYu
X3Rlc3RfZmlsZXNfbGlzdCkKICAgICAgICAgc2VsZi5fcHJpbnRlci5udW1fY29tcGxldGVkID0g
MAogCi0gICAgICAgIHNlbGYuX2FsbF9yZXN1bHRzID0gW10KLSAgICAgICAgc2VsZi5fZ3JvdXBf
c3RhdHMgPSB7fQotICAgICAgICBzZWxmLl93b3JrZXJfc3RhdHMgPSB7fQogICAgICAgICBzZWxm
Ll9oYXNfaHR0cF9sb2NrID0gRmFsc2UKICAgICAgICAgc2VsZi5fcmVtYWluaW5nX2xvY2tlZF9z
aGFyZHMgPSBbXQogCkBAIC0xMjQsNyArMTExLDcgQEAgY2xhc3MgTGF5b3V0VGVzdFJ1bm5lcihv
YmplY3QpOgogICAgICAgICBzZWxmLl9wcmludGVyLnByaW50X3dvcmtlcnNfYW5kX3NoYXJkcyhu
dW1fd29ya2VycywgbGVuKGFsbF9zaGFyZHMpLCBsZW4obG9ja2VkX3NoYXJkcykpCiAKICAgICAg
ICAgaWYgc2VsZi5fb3B0aW9ucy5kcnlfcnVuOgotICAgICAgICAgICAgcmV0dXJuIChzZWxmLl93
b3JrZXJfc3RhdHMudmFsdWVzKCksIHNlbGYuX2dyb3VwX3N0YXRzLCBzZWxmLl9hbGxfcmVzdWx0
cykKKyAgICAgICAgICAgIHJldHVybiByZXN1bHRfc3VtbWFyeQogCiAgICAgICAgIHNlbGYuX3By
aW50ZXIud3JpdGVfdXBkYXRlKCdTdGFydGluZyAlcyAuLi4nICUgZ3JhbW1hci5wbHVyYWxpemUo
J3dvcmtlcicsIG51bV93b3JrZXJzKSkKIApAQCAtMTQ0LDggKzEzMSw3IEBAIGNsYXNzIExheW91
dFRlc3RSdW5uZXIob2JqZWN0KToKICAgICAgICAgZmluYWxseToKICAgICAgICAgICAgIHNlbGYu
c3RvcF9zZXJ2ZXJzX3dpdGhfbG9jaygpCiAKLSAgICAgICAgIyBGSVhNRTogTW92ZSB0aGVzZSBz
dGF0cyBpbnRvIFJlc3VsdFN1bW1hcnkgYW5kIHJldHVybiB0aGF0LgotICAgICAgICByZXR1cm4g
KHNlbGYuX3dvcmtlcl9zdGF0cy52YWx1ZXMoKSwgc2VsZi5fZ3JvdXBfc3RhdHMsIHNlbGYuX2Fs
bF9yZXN1bHRzKQorICAgICAgICByZXR1cm4gcmVzdWx0X3N1bW1hcnkKIAogICAgIGRlZiBfd29y
a2VyX2ZhY3Rvcnkoc2VsZiwgd29ya2VyX2Nvbm5lY3Rpb24pOgogICAgICAgICByZXN1bHRzX2Rp
cmVjdG9yeSA9IHNlbGYuX3Jlc3VsdHNfZGlyZWN0b3J5CkBAIC0yMzEsOSArMjE3LDcgQEAgY2xh
c3MgTGF5b3V0VGVzdFJ1bm5lcihvYmplY3QpOgogICAgIGRlZiBfaGFuZGxlX3N0YXJ0ZWRfdGVz
dChzZWxmLCB3b3JrZXJfbmFtZSwgdGVzdF9pbnB1dCwgdGVzdF90aW1lb3V0X3NlYyk6CiAgICAg
ICAgIHNlbGYuX3ByaW50ZXIucHJpbnRfc3RhcnRlZF90ZXN0KHRlc3RfaW5wdXQudGVzdF9uYW1l
KQogCi0gICAgZGVmIF9oYW5kbGVfZmluaXNoZWRfdGVzdF9saXN0KHNlbGYsIHdvcmtlcl9uYW1l
LCBsaXN0X25hbWUsIG51bV90ZXN0cywgZWxhcHNlZF90aW1lKToKLSAgICAgICAgc2VsZi5fZ3Jv
dXBfc3RhdHNbbGlzdF9uYW1lXSA9IChudW1fdGVzdHMsIGVsYXBzZWRfdGltZSkKLQorICAgIGRl
ZiBfaGFuZGxlX2ZpbmlzaGVkX3Rlc3RfbGlzdChzZWxmLCB3b3JrZXJfbmFtZSwgbGlzdF9uYW1l
KToKICAgICAgICAgZGVmIGZpbmQobmFtZSwgdGVzdF9saXN0cyk6CiAgICAgICAgICAgICBmb3Ig
aSBpbiByYW5nZShsZW4odGVzdF9saXN0cykpOgogICAgICAgICAgICAgICAgIGlmIHRlc3RfbGlz
dHNbaV0ubmFtZSA9PSBuYW1lOgpAQCAtMjQ2LDExICsyMzAsNyBAQCBjbGFzcyBMYXlvdXRUZXN0
UnVubmVyKG9iamVjdCk6CiAgICAgICAgICAgICBpZiBub3Qgc2VsZi5fcmVtYWluaW5nX2xvY2tl
ZF9zaGFyZHMgYW5kIG5vdCBzZWxmLl9wb3J0LnJlcXVpcmVzX2h0dHBfc2VydmVyKCk6CiAgICAg
ICAgICAgICAgICAgc2VsZi5zdG9wX3NlcnZlcnNfd2l0aF9sb2NrKCkKIAotICAgIGRlZiBfaGFu
ZGxlX2ZpbmlzaGVkX3Rlc3Qoc2VsZiwgd29ya2VyX25hbWUsIHJlc3VsdCwgZWxhcHNlZF90aW1l
LCBsb2dfbWVzc2FnZXM9W10pOgotICAgICAgICBzZWxmLl93b3JrZXJfc3RhdHMuc2V0ZGVmYXVs
dCh3b3JrZXJfbmFtZSwgeyduYW1lJzogd29ya2VyX25hbWUsICdudW1fdGVzdHMnOiAwLCAndG90
YWxfdGltZSc6IDB9KQotICAgICAgICBzZWxmLl93b3JrZXJfc3RhdHNbd29ya2VyX25hbWVdWyd0
b3RhbF90aW1lJ10gKz0gZWxhcHNlZF90aW1lCi0gICAgICAgIHNlbGYuX3dvcmtlcl9zdGF0c1t3
b3JrZXJfbmFtZV1bJ251bV90ZXN0cyddICs9IDEKLSAgICAgICAgc2VsZi5fYWxsX3Jlc3VsdHMu
YXBwZW5kKHJlc3VsdCkKKyAgICBkZWYgX2hhbmRsZV9maW5pc2hlZF90ZXN0KHNlbGYsIHdvcmtl
cl9uYW1lLCByZXN1bHQsIGxvZ19tZXNzYWdlcz1bXSk6CiAgICAgICAgIHNlbGYuX3VwZGF0ZV9z
dW1tYXJ5X3dpdGhfcmVzdWx0KHNlbGYuX2N1cnJlbnRfcmVzdWx0X3N1bW1hcnksIHJlc3VsdCkK
IAogCkBAIC0yOTAsMTEgKzI3MCw5IEBAIGNsYXNzIFdvcmtlcihvYmplY3QpOgogCiAgICAgZGVm
IGhhbmRsZShzZWxmLCBuYW1lLCBzb3VyY2UsIHRlc3RfbGlzdF9uYW1lLCB0ZXN0X2lucHV0cyk6
CiAgICAgICAgIGFzc2VydCBuYW1lID09ICd0ZXN0X2xpc3QnCi0gICAgICAgIHN0YXJ0X3RpbWUg
PSB0aW1lLnRpbWUoKQogICAgICAgICBmb3IgdGVzdF9pbnB1dCBpbiB0ZXN0X2lucHV0czoKLSAg
ICAgICAgICAgIHNlbGYuX3J1bl90ZXN0KHRlc3RfaW5wdXQpCi0gICAgICAgIGVsYXBzZWRfdGlt
ZSA9IHRpbWUudGltZSgpIC0gc3RhcnRfdGltZQotICAgICAgICBzZWxmLl9jYWxsZXIucG9zdCgn
ZmluaXNoZWRfdGVzdF9saXN0JywgdGVzdF9saXN0X25hbWUsIGxlbih0ZXN0X2lucHV0cyksIGVs
YXBzZWRfdGltZSkKKyAgICAgICAgICAgIHNlbGYuX3J1bl90ZXN0KHRlc3RfaW5wdXQsIHRlc3Rf
bGlzdF9uYW1lKQorICAgICAgICBzZWxmLl9jYWxsZXIucG9zdCgnZmluaXNoZWRfdGVzdF9saXN0
JywgdGVzdF9saXN0X25hbWUpCiAKICAgICBkZWYgX3VwZGF0ZV90ZXN0X2lucHV0KHNlbGYsIHRl
c3RfaW5wdXQpOgogICAgICAgICBpZiB0ZXN0X2lucHV0LnJlZmVyZW5jZV9maWxlcyBpcyBOb25l
OgpAQCAtMzA1LDcgKzI4Myw3IEBAIGNsYXNzIFdvcmtlcihvYmplY3QpOgogICAgICAgICBlbHNl
OgogICAgICAgICAgICAgdGVzdF9pbnB1dC5zaG91bGRfcnVuX3BpeGVsX3Rlc3QgPSBzZWxmLl9w
b3J0LnNob3VsZF9ydW5fYXNfcGl4ZWxfdGVzdCh0ZXN0X2lucHV0KQogCi0gICAgZGVmIF9ydW5f
dGVzdChzZWxmLCB0ZXN0X2lucHV0KToKKyAgICBkZWYgX3J1bl90ZXN0KHNlbGYsIHRlc3RfaW5w
dXQsIHNoYXJkX25hbWUpOgogICAgICAgICBzZWxmLl9iYXRjaF9jb3VudCArPSAxCiAKICAgICAg
ICAgc3RvcF93aGVuX2RvbmUgPSBGYWxzZQpAQCAtMzE5LDkgKzI5NywxMSBAQCBjbGFzcyBXb3Jr
ZXIob2JqZWN0KToKICAgICAgICAgc2VsZi5fY2FsbGVyLnBvc3QoJ3N0YXJ0ZWRfdGVzdCcsIHRl
c3RfaW5wdXQsIHRlc3RfdGltZW91dF9zZWMpCiAKICAgICAgICAgcmVzdWx0ID0gc2VsZi5fcnVu
X3Rlc3Rfd2l0aF90aW1lb3V0KHRlc3RfaW5wdXQsIHRlc3RfdGltZW91dF9zZWMsIHN0b3Bfd2hl
bl9kb25lKQorICAgICAgICByZXN1bHQuc2hhcmRfbmFtZSA9IHNoYXJkX25hbWUKKyAgICAgICAg
cmVzdWx0Lndvcmtlcl9uYW1lID0gc2VsZi5fbmFtZQorICAgICAgICByZXN1bHQudG90YWxfcnVu
X3RpbWUgPSB0aW1lLnRpbWUoKSAtIHN0YXJ0CiAKLSAgICAgICAgZWxhcHNlZF90aW1lID0gdGlt
ZS50aW1lKCkgLSBzdGFydAotICAgICAgICBzZWxmLl9jYWxsZXIucG9zdCgnZmluaXNoZWRfdGVz
dCcsIHJlc3VsdCwgZWxhcHNlZF90aW1lKQorICAgICAgICBzZWxmLl9jYWxsZXIucG9zdCgnZmlu
aXNoZWRfdGVzdCcsIHJlc3VsdCkKIAogICAgICAgICBzZWxmLl9jbGVhbl91cF9hZnRlcl90ZXN0
KHRlc3RfaW5wdXQsIHJlc3VsdCkKIApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvbWFuYWdlci5weSBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL21hbmFnZXIucHkKaW5kZXggMDQ1OTIzMjcw
MDNhNTEwMjE2ZDBkOTcyZTBjMjRmODg4ODQ0MzVhMi4uMGM3OTgwNDIxMTk2Zjg0YTQ4NjBkY2E3
ZjYyZjJmNWU1OTJiODI2YiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvY29udHJvbGxlcnMvbWFuYWdlci5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9tYW5hZ2VyLnB5CkBAIC0xMDcsNyArMTA3LDcg
QEAgZGVmIHVzZV90cmFjX2xpbmtzX2luX3Jlc3VsdHNfaHRtbChwb3J0X29iaik6CiAjIG9yIHNw
bGl0IG9mZiBmcm9tIE1hbmFnZXIgb250byBhbm90aGVyIGhlbHBlciBjbGFzcywgYnV0IHNob3Vs
ZCBub3QgYmUgYSBmcmVlIGZ1bmN0aW9uLgogIyBNb3N0IGxpa2VseSB0aGlzIHNob3VsZCBiZSBt
YWRlIGludG8gaXRzIG93biBjbGFzcywgYW5kIHRoaXMgc3VwZXItbG9uZyBmdW5jdGlvbgogIyBz
cGxpdCBpbnRvIG1hbnkgaGVscGVyIGZ1bmN0aW9ucy4KLWRlZiBzdW1tYXJpemVfcmVzdWx0cyhw
b3J0X29iaiwgZXhwZWN0YXRpb25zLCByZXN1bHRfc3VtbWFyeSwgcmV0cnlfc3VtbWFyeSwgdGVz
dF90aW1pbmdzLCBvbmx5X3VuZXhwZWN0ZWQpOgorZGVmIHN1bW1hcml6ZV9yZXN1bHRzKHBvcnRf
b2JqLCBleHBlY3RhdGlvbnMsIHJlc3VsdF9zdW1tYXJ5LCByZXRyeV9zdW1tYXJ5LCBvbmx5X3Vu
ZXhwZWN0ZWQpOgogICAgICIiIlN1bW1hcml6ZSBmYWlsaW5nIHJlc3VsdHMgYXMgYSBkaWN0Lgog
CiAgICAgRklYTUU6IHNwbGl0IHRoaXMgZGF0YSBzdHJ1Y3R1cmUgaW50byBhIHNlcGFyYXRlIGNs
YXNzPwpAQCAtMTE3LDcgKzExNyw2IEBAIGRlZiBzdW1tYXJpemVfcmVzdWx0cyhwb3J0X29iaiwg
ZXhwZWN0YXRpb25zLCByZXN1bHRfc3VtbWFyeSwgcmV0cnlfc3VtbWFyeSwgdGVzCiAgICAgICAg
IGV4cGVjdGF0aW9uczogdGVzdF9leHBlY3RhdGlvbnMuVGVzdEV4cGVjdGF0aW9ucyBvYmplY3QK
ICAgICAgICAgcmVzdWx0X3N1bW1hcnk6IHN1bW1hcnkgb2JqZWN0IGZyb20gaW5pdGlhbCB0ZXN0
IHJ1bnMKICAgICAgICAgcmV0cnlfc3VtbWFyeTogc3VtbWFyeSBvYmplY3QgZnJvbSBmaW5hbCB0
ZXN0IHJ1biBvZiByZXRyaWVkIHRlc3RzCi0gICAgICAgIHRlc3RfdGltaW5nczogYSBsaXN0IG9m
IFRlc3RSZXN1bHQgb2JqZWN0cyB3aGljaCBjb250YWluIHRlc3QgcnVudGltZXMgaW4gc2Vjb25k
cwogICAgICAgICBvbmx5X3VuZXhwZWN0ZWQ6IHdoZXRoZXIgdG8gcmV0dXJuIGEgc3VtbWFyeSBv
bmx5IGZvciB0aGUgdW5leHBlY3RlZCByZXN1bHRzCiAgICAgUmV0dXJuczoKICAgICAgICAgQSBk
aWN0aW9uYXJ5IGNvbnRhaW5pbmcgYSBzdW1tYXJ5IG9mIHRoZSB1bmV4cGVjdGVkIHJlc3VsdHMg
ZnJvbSB0aGUKQEAgLTQwMiwxNCArNDAxLDEwIEBAIGNsYXNzIE1hbmFnZXIob2JqZWN0KToKICAg
ICAgICAgICAgIHJldHVybiAtMQogCiAgICAgICAgIHN0YXJ0X3RpbWUgPSB0aW1lLnRpbWUoKQot
ICAgICAgICByZXRyeV9zdW1tYXJ5ID0gcmVzdWx0X3N1bW1hcnkKIAotICAgICAgICAjIEZJWE1F
OiBtb3ZlIHRoZXNlIGZpZWxkcyBpbnRvIHJlc3VsdF9zdW1tYXJ5IHNvIHdlIGRvbid0IGhhdmUg
dG8gcGFzcyB0aGVtIGFyb3VuZC4KLSAgICAgICAgdGhyZWFkX3RpbWluZ3MgPSB0ZXN0X3RpbWlu
Z3MgPSB7fQotICAgICAgICBpbmRpdmlkdWFsX3Rlc3RfdGltaW5ncyA9IFtdCisgICAgICAgIHJl
dHJ5X3N1bW1hcnkgPSBOb25lCiAgICAgICAgIHRyeToKLSAgICAgICAgICAgIHRocmVhZF90aW1p
bmdzLCB0ZXN0X3RpbWluZ3MsIGluZGl2aWR1YWxfdGVzdF90aW1pbmdzID0gXAotICAgICAgICAg
ICAgICAgIHNlbGYuX3J1bl90ZXN0cyhzZWxmLl90ZXN0X25hbWVzLCByZXN1bHRfc3VtbWFyeSwg
aW50KHNlbGYuX29wdGlvbnMuY2hpbGRfcHJvY2Vzc2VzKSwgcmV0cnlpbmc9RmFsc2UpCisgICAg
ICAgICAgICByZXN1bHRfc3VtbWFyeSA9IHNlbGYuX3J1bl90ZXN0cyhzZWxmLl90ZXN0X25hbWVz
LCByZXN1bHRfc3VtbWFyeSwgaW50KHNlbGYuX29wdGlvbnMuY2hpbGRfcHJvY2Vzc2VzKSwgcmV0
cnlpbmc9RmFsc2UpCiAKICAgICAgICAgICAgICMgV2UgZXhjbHVkZSB0aGUgY3Jhc2hlcyBmcm9t
IHRoZSBsaXN0IG9mIHJlc3VsdHMgdG8gcmV0cnksIGJlY2F1c2UKICAgICAgICAgICAgICMgd2Ug
d2FudCB0byB0cmVhdCBldmVuIGEgcG90ZW50aWFsbHkgZmxha3kgY3Jhc2ggYXMgYW4gZXJyb3Iu
CkBAIC00MTksOSArNDE0LDcgQEAgY2xhc3MgTWFuYWdlcihvYmplY3QpOgogICAgICAgICAgICAg
ICAgIF9sb2cuaW5mbygnJykKICAgICAgICAgICAgICAgICBfbG9nLmluZm8oIlJldHJ5aW5nICVk
IHVuZXhwZWN0ZWQgZmFpbHVyZShzKSAuLi4iICUgbGVuKGZhaWx1cmVzKSkKICAgICAgICAgICAg
ICAgICBfbG9nLmluZm8oJycpCi0gICAgICAgICAgICAgICAgIyBOb3RlIHRoYXQgd2UgZG9uJ3Qg
Y2FyZSBhYm91dCB0aGUgdmFsdWVzIHJldHVybmVkIGZyb20gdGhlIHJldHJ5IHBhc3MuCi0gICAg
ICAgICAgICAgICAgcmV0cnlfc3VtbWFyeSA9IFJlc3VsdFN1bW1hcnkoc2VsZi5fZXhwZWN0YXRp
b25zLCBmYWlsdXJlcywgMSwgc2V0KCkpCi0gICAgICAgICAgICAgICAgXyA9IHNlbGYuX3J1bl90
ZXN0cyhmYWlsdXJlcywgcmV0cnlfc3VtbWFyeSwgMSwgcmV0cnlpbmc9VHJ1ZSkKKyAgICAgICAg
ICAgICAgICByZXRyeV9zdW1tYXJ5ID0gc2VsZi5fcnVuX3Rlc3RzKGZhaWx1cmVzLCBSZXN1bHRT
dW1tYXJ5KHNlbGYuX2V4cGVjdGF0aW9ucywgZmFpbHVyZXMsIDEsIHNldCgpKSwgMSwgcmV0cnlp
bmc9VHJ1ZSkKICAgICAgICAgZmluYWxseToKICAgICAgICAgICAgICMgSWYgd2UgYXJlIGN0cmwt
YydlZDsgd2Ugc3RpbGwgd2FudCB0byB0cnkgYW5kIHByaW50IHRoZSByZXN1bHRzIHdlIGdvdCwg
YW5kIGNsZWFuIHVwLAogICAgICAgICAgICAgIyBidXQgd2UgZG9uJ3Qgd2FudCB0byB1cGxvYWQg
YW55dGhpbmcuCkBAIC00MzAsMjAgKzQyMywyNSBAQCBjbGFzcyBNYW5hZ2VyKG9iamVjdCk6CiAg
ICAgICAgICAgICAjIFNvbWUgY3Jhc2ggbG9ncyBjYW4gdGFrZSBhIGxvbmcgdGltZSB0byBiZSB3
cml0dGVuIG91dCBzbyBsb29rCiAgICAgICAgICAgICAjIGZvciBuZXcgbG9ncyBhZnRlciB0aGUg
dGVzdCBydW4gZmluaXNoZXMuCiAgICAgICAgICAgICBzZWxmLl9sb29rX2Zvcl9uZXdfY3Jhc2hf
bG9ncyhyZXN1bHRfc3VtbWFyeSwgc3RhcnRfdGltZSkKLSAgICAgICAgICAgIHNlbGYuX2xvb2tf
Zm9yX25ld19jcmFzaF9sb2dzKHJldHJ5X3N1bW1hcnksIHN0YXJ0X3RpbWUpCisgICAgICAgICAg
ICBpZiByZXRyeV9zdW1tYXJ5OgorICAgICAgICAgICAgICAgIHNlbGYuX2xvb2tfZm9yX25ld19j
cmFzaF9sb2dzKHJldHJ5X3N1bW1hcnksIHN0YXJ0X3RpbWUpCisgICAgICAgICAgICBlbHNlOgor
ICAgICAgICAgICAgICAgICMgRklYTUU6IE1vZGlmeSBzdW1tYXJpemVfcmVzdWx0cyB0byBoYW5k
bGUgcmV0cnlfc3VtbWFyeSA9PSBOb25lLgorICAgICAgICAgICAgICAgIHJldHJ5X3N1bW1hcnkg
PSByZXN1bHRfc3VtbWFyeQorCiAgICAgICAgICAgICBzZWxmLl9jbGVhbl91cF9ydW4oKQogCi0g
ICAgICAgICAgICB1bmV4cGVjdGVkX3Jlc3VsdHMgPSBzdW1tYXJpemVfcmVzdWx0cyhzZWxmLl9w
b3J0LCBzZWxmLl9leHBlY3RhdGlvbnMsIHJlc3VsdF9zdW1tYXJ5LCByZXRyeV9zdW1tYXJ5LCBp
bmRpdmlkdWFsX3Rlc3RfdGltaW5ncywgb25seV91bmV4cGVjdGVkPVRydWUpCisgICAgICAgICAg
ICB1bmV4cGVjdGVkX3Jlc3VsdHMgPSBzdW1tYXJpemVfcmVzdWx0cyhzZWxmLl9wb3J0LCBzZWxm
Ll9leHBlY3RhdGlvbnMsIHJlc3VsdF9zdW1tYXJ5LCByZXRyeV9zdW1tYXJ5LCBvbmx5X3VuZXhw
ZWN0ZWQ9VHJ1ZSkKIAotICAgICAgICAgICAgc2VsZi5fcHJpbnRlci5wcmludF9yZXN1bHRzKGVu
ZF90aW1lIC0gc3RhcnRfdGltZSwgdGhyZWFkX3RpbWluZ3MsIHRlc3RfdGltaW5ncywgaW5kaXZp
ZHVhbF90ZXN0X3RpbWluZ3MsIHJlc3VsdF9zdW1tYXJ5LCB1bmV4cGVjdGVkX3Jlc3VsdHMpCisg
ICAgICAgICAgICBzZWxmLl9wcmludGVyLnByaW50X3Jlc3VsdHMoZW5kX3RpbWUgLSBzdGFydF90
aW1lLCByZXN1bHRfc3VtbWFyeSwgdW5leHBlY3RlZF9yZXN1bHRzKQogCiAgICAgICAgICMgRklY
TUU6IHJlbW92ZSByZWNvcmRfcmVzdWx0cy4gSXQncyBqdXN0IHVzZWQgZm9yIHRlc3RpbmcuIFRo
ZXJlJ3Mgbm8gbmVlZAogICAgICAgICAjIGZvciBpdCB0byBiZSBhIGNvbW1hbmRsaW5lIGFyZ3Vt
ZW50LgogICAgICAgICBpZiBzZWxmLl9vcHRpb25zLnJlY29yZF9yZXN1bHRzIGFuZCBub3Qgc2Vs
Zi5fb3B0aW9ucy5kcnlfcnVuOgogICAgICAgICAgICAgc2VsZi5fcG9ydC5wcmludF9sZWFrc19z
dW1tYXJ5KCkKICAgICAgICAgICAgICMgV3JpdGUgdGhlIHNhbWUgZGF0YSB0byBsb2cgZmlsZXMg
YW5kIHVwbG9hZCBnZW5lcmF0ZWQgSlNPTiBmaWxlcyB0byBhcHBlbmdpbmUgc2VydmVyLgotICAg
ICAgICAgICAgc3VtbWFyaXplZF9yZXN1bHRzID0gc3VtbWFyaXplX3Jlc3VsdHMoc2VsZi5fcG9y
dCwgc2VsZi5fZXhwZWN0YXRpb25zLCByZXN1bHRfc3VtbWFyeSwgcmV0cnlfc3VtbWFyeSwgaW5k
aXZpZHVhbF90ZXN0X3RpbWluZ3MsIG9ubHlfdW5leHBlY3RlZD1GYWxzZSkKLSAgICAgICAgICAg
IHNlbGYuX3VwbG9hZF9qc29uX2ZpbGVzKHN1bW1hcml6ZWRfcmVzdWx0cywgcmVzdWx0X3N1bW1h
cnksIGluZGl2aWR1YWxfdGVzdF90aW1pbmdzKQorICAgICAgICAgICAgc3VtbWFyaXplZF9yZXN1
bHRzID0gc3VtbWFyaXplX3Jlc3VsdHMoc2VsZi5fcG9ydCwgc2VsZi5fZXhwZWN0YXRpb25zLCBy
ZXN1bHRfc3VtbWFyeSwgcmV0cnlfc3VtbWFyeSwgb25seV91bmV4cGVjdGVkPUZhbHNlKQorICAg
ICAgICAgICAgc2VsZi5fdXBsb2FkX2pzb25fZmlsZXMoc3VtbWFyaXplZF9yZXN1bHRzLCByZXN1
bHRfc3VtbWFyeSkKIAogICAgICAgICAjIFdyaXRlIHRoZSBzdW1tYXJ5IHRvIGRpc2sgKHJlc3Vs
dHMuaHRtbCkgYW5kIGRpc3BsYXkgaXQgaWYgcmVxdWVzdGVkLgogICAgICAgICBpZiBub3Qgc2Vs
Zi5fb3B0aW9ucy5kcnlfcnVuOgpAQCAtNTE3LDIwICs1MTUsMTcgQEAgY2xhc3MgTWFuYWdlcihv
YmplY3QpOgogCiAgICAgICAgIHJldHVybiBmYWlsZWRfdGVzdF9uYW1lcwogCi0gICAgZGVmIF91
cGxvYWRfanNvbl9maWxlcyhzZWxmLCBzdW1tYXJpemVkX3Jlc3VsdHMsIHJlc3VsdF9zdW1tYXJ5
LCBpbmRpdmlkdWFsX3Rlc3RfdGltaW5ncyk6CisgICAgZGVmIF91cGxvYWRfanNvbl9maWxlcyhz
ZWxmLCBzdW1tYXJpemVkX3Jlc3VsdHMsIHJlc3VsdF9zdW1tYXJ5KToKICAgICAgICAgIiIiV3Jp
dGVzIHRoZSByZXN1bHRzIG9mIHRoZSB0ZXN0IHJ1biBhcyBKU09OIGZpbGVzIGludG8gdGhlIHJl
c3VsdHMKICAgICAgICAgZGlyIGFuZCB1cGxvYWQgdGhlIGZpbGVzIHRvIHRoZSBhcHBlbmdpbmUg
c2VydmVyLgogCiAgICAgICAgIEFyZ3M6Ci0gICAgICAgICAgdW5leHBlY3RlZF9yZXN1bHRzOiBk
aWN0IG9mIHVuZXhwZWN0ZWQgcmVzdWx0cwogICAgICAgICAgIHN1bW1hcml6ZWRfcmVzdWx0czog
ZGljdCBvZiByZXN1bHRzCiAgICAgICAgICAgcmVzdWx0X3N1bW1hcnk6IGZ1bGwgc3VtbWFyeSBv
YmplY3QKLSAgICAgICAgICBpbmRpdmlkdWFsX3Rlc3RfdGltaW5nczogbGlzdCBvZiB0ZXN0IHRp
bWVzICh1c2VkIGJ5IHRoZSBmbGFraW5lc3MKLSAgICAgICAgICAgIGRhc2hib2FyZCkuCiAgICAg
ICAgICIiIgogICAgICAgICBfbG9nLmRlYnVnKCJXcml0aW5nIEpTT04gZmlsZXMgaW4gJXMuIiAl
IHNlbGYuX3Jlc3VsdHNfZGlyZWN0b3J5KQogCi0gICAgICAgIHRpbWVzX3RyaWUgPSBqc29uX3Jl
c3VsdHNfZ2VuZXJhdG9yLnRlc3RfdGltaW5nc190cmllKHNlbGYuX3BvcnQsIGluZGl2aWR1YWxf
dGVzdF90aW1pbmdzKQorICAgICAgICB0aW1lc190cmllID0ganNvbl9yZXN1bHRzX2dlbmVyYXRv
ci50ZXN0X3RpbWluZ3NfdHJpZShzZWxmLl9wb3J0LCByZXN1bHRfc3VtbWFyeS5yZXN1bHRzLnZh
bHVlcygpKQogICAgICAgICB0aW1lc19qc29uX3BhdGggPSBzZWxmLl9maWxlc3lzdGVtLmpvaW4o
c2VsZi5fcmVzdWx0c19kaXJlY3RvcnksICJ0aW1lc19tcy5qc29uIikKICAgICAgICAganNvbl9y
ZXN1bHRzX2dlbmVyYXRvci53cml0ZV9qc29uKHNlbGYuX2ZpbGVzeXN0ZW0sIHRpbWVzX3RyaWUs
IHRpbWVzX2pzb25fcGF0aCkKIApAQCAtNTQxLDcgKzUzNiw3IEBAIGNsYXNzIE1hbmFnZXIob2Jq
ZWN0KToKICAgICAgICAgZ2VuZXJhdG9yID0ganNvbl9sYXlvdXRfcmVzdWx0c19nZW5lcmF0b3Iu
SlNPTkxheW91dFJlc3VsdHNHZW5lcmF0b3IoCiAgICAgICAgICAgICBzZWxmLl9wb3J0LCBzZWxm
Ll9vcHRpb25zLmJ1aWxkZXJfbmFtZSwgc2VsZi5fb3B0aW9ucy5idWlsZF9uYW1lLAogICAgICAg
ICAgICAgc2VsZi5fb3B0aW9ucy5idWlsZF9udW1iZXIsIHNlbGYuX3Jlc3VsdHNfZGlyZWN0b3J5
LAotICAgICAgICAgICAgQlVJTERFUl9CQVNFX1VSTCwgaW5kaXZpZHVhbF90ZXN0X3RpbWluZ3Ms
CisgICAgICAgICAgICBCVUlMREVSX0JBU0VfVVJMLAogICAgICAgICAgICAgc2VsZi5fZXhwZWN0
YXRpb25zLCByZXN1bHRfc3VtbWFyeSwgc2VsZi5fdGVzdF9uYW1lcywKICAgICAgICAgICAgIHNl
bGYuX29wdGlvbnMudGVzdF9yZXN1bHRzX3NlcnZlciwKICAgICAgICAgICAgICJsYXlvdXQtdGVz
dHMiLApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29u
dHJvbGxlcnMvbWFuYWdlcl91bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5
b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL21hbmFnZXJfdW5pdHRlc3QucHkKaW5kZXggMTdmY2VhZjU4
MGUxMjA3MDM0NGIyYjI1MmNkZGFmODdiMTM0MzU2Ni4uYmY4ODlhMzZjMzQwMmU3YWFiNmRkYjUz
NWY2OGI5ODIzNWQzYWU4MCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvY29udHJvbGxlcnMvbWFuYWdlcl91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9tYW5hZ2VyX3VuaXR0ZXN0LnB5
CkBAIC0xNzgsOCArMTc4LDggQEAgY2xhc3MgUmVzdWx0U3VtbWFyeVRlc3QodW5pdHRlc3QuVGVz
dENhc2UpOgogICAgICAgICAgICAgcmV0cnkuYWRkKHNlbGYuZ2V0X3Jlc3VsdCgncGFzc2VzL3Rl
eHQuaHRtbCcpLCBUcnVlLCB0ZXN0X2lzX3Nsb3cpCiAgICAgICAgICAgICByZXRyeS5hZGQoc2Vs
Zi5nZXRfcmVzdWx0KCdmYWlsdXJlcy9leHBlY3RlZC90aW1lb3V0Lmh0bWwnKSwgVHJ1ZSwgdGVz
dF9pc19zbG93KQogICAgICAgICAgICAgcmV0cnkuYWRkKHNlbGYuZ2V0X3Jlc3VsdCgnZmFpbHVy
ZXMvZXhwZWN0ZWQvY3Jhc2guaHRtbCcpLCBUcnVlLCB0ZXN0X2lzX3Nsb3cpCi0gICAgICAgIHVu
ZXhwZWN0ZWRfcmVzdWx0cyA9IHN1bW1hcml6ZV9yZXN1bHRzKHBvcnQsIGV4cCwgcnMsIHJldHJ5
LCB0ZXN0X3RpbWluZ3M9e30sIG9ubHlfdW5leHBlY3RlZD1UcnVlKQotICAgICAgICBleHBlY3Rl
ZF9yZXN1bHRzID0gc3VtbWFyaXplX3Jlc3VsdHMocG9ydCwgZXhwLCBycywgcmV0cnksIHRlc3Rf
dGltaW5ncz17fSwgb25seV91bmV4cGVjdGVkPUZhbHNlKQorICAgICAgICB1bmV4cGVjdGVkX3Jl
c3VsdHMgPSBzdW1tYXJpemVfcmVzdWx0cyhwb3J0LCBleHAsIHJzLCByZXRyeSwgb25seV91bmV4
cGVjdGVkPVRydWUpCisgICAgICAgIGV4cGVjdGVkX3Jlc3VsdHMgPSBzdW1tYXJpemVfcmVzdWx0
cyhwb3J0LCBleHAsIHJzLCByZXRyeSwgb25seV91bmV4cGVjdGVkPUZhbHNlKQogICAgICAgICBy
ZXR1cm4gZXhwZWN0ZWRfcmVzdWx0cywgdW5leHBlY3RlZF9yZXN1bHRzCiAKICAgICBkZWYgdGVz
dF9ub19zdm5fcmV2aXNpb24oc2VsZik6CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9qc29uX2xheW91dF9yZXN1bHRzX2dlbmVy
YXRvci5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNr
YWdlL2pzb25fbGF5b3V0X3Jlc3VsdHNfZ2VuZXJhdG9yLnB5CmluZGV4IGYyNzdjOTNkZTgxM2Ix
YTU4ZjU3N2NjNmQyYjI5ODYwOGU4M2I2N2EuLjJmOWEzMjFkOTdmZjg3YzJmMGZhZDY0OTE5NTY0
NDQwMDQyOGNkNTkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL2xheW91dF9wYWNrYWdlL2pzb25fbGF5b3V0X3Jlc3VsdHNfZ2VuZXJhdG9yLnB5CisrKyBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL2pzb25f
bGF5b3V0X3Jlc3VsdHNfZ2VuZXJhdG9yLnB5CkBAIC01Miw3ICs1Miw3IEBAIGNsYXNzIEpTT05M
YXlvdXRSZXN1bHRzR2VuZXJhdG9yKGpzb25fcmVzdWx0c19nZW5lcmF0b3IuSlNPTlJlc3VsdHNH
ZW5lcmF0b3JCYXNlCiAKICAgICBkZWYgX19pbml0X18oc2VsZiwgcG9ydCwgYnVpbGRlcl9uYW1l
LCBidWlsZF9uYW1lLCBidWlsZF9udW1iZXIsCiAgICAgICAgIHJlc3VsdHNfZmlsZV9iYXNlX3Bh
dGgsIGJ1aWxkZXJfYmFzZV91cmwsCi0gICAgICAgIHRlc3RfdGltaW5ncywgZXhwZWN0YXRpb25z
LCByZXN1bHRfc3VtbWFyeSwgYWxsX3Rlc3RzLAorICAgICAgICBleHBlY3RhdGlvbnMsIHJlc3Vs
dF9zdW1tYXJ5LCBhbGxfdGVzdHMsCiAgICAgICAgIHRlc3RfcmVzdWx0c19zZXJ2ZXI9Tm9uZSwg
dGVzdF90eXBlPSIiLCBtYXN0ZXJfbmFtZT0iIik6CiAgICAgICAgICIiIk1vZGlmaWVzIHRoZSBy
ZXN1bHRzLmpzb24gZmlsZS4gR3JhYnMgaXQgb2ZmIHRoZSBhcmNoaXZlIGRpcmVjdG9yeQogICAg
ICAgICBpZiBpdCBpcyBub3QgZm91bmQgbG9jYWxseS4KQEAgLTcxLDcgKzcxLDcgQEAgY2xhc3Mg
SlNPTkxheW91dFJlc3VsdHNHZW5lcmF0b3IoanNvbl9yZXN1bHRzX2dlbmVyYXRvci5KU09OUmVz
dWx0c0dlbmVyYXRvckJhc2UKICAgICAgICAgc2VsZi5fcmVzdWx0X3N1bW1hcnkgPSByZXN1bHRf
c3VtbWFyeQogICAgICAgICBzZWxmLl9mYWlsdXJlcyA9IGRpY3QoKHRlc3RfbmFtZSwgcmVzdWx0
X3N1bW1hcnkucmVzdWx0c1t0ZXN0X25hbWVdLnR5cGUpIGZvciB0ZXN0X25hbWUgaW4gcmVzdWx0
X3N1bW1hcnkuZmFpbHVyZXMpCiAgICAgICAgIHNlbGYuX2FsbF90ZXN0cyA9IGFsbF90ZXN0cwot
ICAgICAgICBzZWxmLl90ZXN0X3RpbWluZ3MgPSBkaWN0KCh0ZXN0X3R1cGxlLnRlc3RfbmFtZSwg
dGVzdF90dXBsZS50ZXN0X3J1bl90aW1lKSBmb3IgdGVzdF90dXBsZSBpbiB0ZXN0X3RpbWluZ3Mp
CisgICAgICAgIHNlbGYuX3Rlc3RfdGltaW5ncyA9IHJlc3VsdF9zdW1tYXJ5LnJlc3VsdHMKIAog
ICAgICAgICBzZWxmLmdlbmVyYXRlX2pzb25fb3V0cHV0KCkKIApAQCAtOTksNyArOTksNyBAQCBj
bGFzcyBKU09OTGF5b3V0UmVzdWx0c0dlbmVyYXRvcihqc29uX3Jlc3VsdHNfZ2VuZXJhdG9yLkpT
T05SZXN1bHRzR2VuZXJhdG9yQmFzZQogICAgIGRlZiBfZ2V0X3Rlc3RfdGltaW5nKHNlbGYsIHRl
c3RfbmFtZSk6CiAgICAgICAgIGlmIHRlc3RfbmFtZSBpbiBzZWxmLl90ZXN0X3RpbWluZ3M6CiAg
ICAgICAgICAgICAjIEZsb29yIGZvciBub3cgdG8gZ2V0IHRpbWUgaW4gc2Vjb25kcy4KLSAgICAg
ICAgICAgIHJldHVybiBpbnQoc2VsZi5fdGVzdF90aW1pbmdzW3Rlc3RfbmFtZV0pCisgICAgICAg
ICAgICByZXR1cm4gaW50KHNlbGYuX3Rlc3RfdGltaW5nc1t0ZXN0X25hbWVdLnRlc3RfcnVuX3Rp
bWUpCiAgICAgICAgIHJldHVybiAwCiAKICAgICAjIG92ZXJyaWRlCmRpZmYgLS1naXQgYS9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVzdF9yZXN1bHRzLnB5IGIv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfcmVzdWx0cy5w
eQppbmRleCA2YjlkYjU1ODc2MWU1ZGU2NDQzNzc4NDEwMGViNzAzY2U2ODgyY2NjLi5kY2JlZjYy
NWNjYTMxNzBlMTAzODJmNzA4NWFkN2E5YzhlNGZlMjJmIDEwMDY0NAotLS0gYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVzdF9yZXN1bHRzLnB5CisrKyBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X3Jlc3VsdHMucHkK
QEAgLTQxLDEyICs0MSwxOCBAQCBjbGFzcyBUZXN0UmVzdWx0KG9iamVjdCk6CiAgICAgZGVmIF9f
aW5pdF9fKHNlbGYsIHRlc3RfbmFtZSwgZmFpbHVyZXM9Tm9uZSwgdGVzdF9ydW5fdGltZT1Ob25l
LCBoYXNfc3RkZXJyPUZhbHNlLCByZWZ0ZXN0X3R5cGU9W10pOgogICAgICAgICBzZWxmLnRlc3Rf
bmFtZSA9IHRlc3RfbmFtZQogICAgICAgICBzZWxmLmZhaWx1cmVzID0gZmFpbHVyZXMgb3IgW10K
LSAgICAgICAgc2VsZi50ZXN0X3J1bl90aW1lID0gdGVzdF9ydW5fdGltZSBvciAwCisgICAgICAg
IHNlbGYudGVzdF9ydW5fdGltZSA9IHRlc3RfcnVuX3RpbWUgb3IgMCAgIyBUaGUgdGltZSB0YWtl
biB0byBleGVjdXRlIHRoZSB0ZXN0IGl0c2VsZi4KICAgICAgICAgc2VsZi5oYXNfc3RkZXJyID0g
aGFzX3N0ZGVycgogICAgICAgICBzZWxmLnJlZnRlc3RfdHlwZSA9IHJlZnRlc3RfdHlwZQorCiAg
ICAgICAgICMgRklYTUU6IFNldHRpbmcgdGhpcyBpbiB0aGUgY29uc3RydWN0b3IgbWFrZXMgdGhp
cyBjbGFzcyBoYXJkIHRvIG11dGF0ZS4KICAgICAgICAgc2VsZi50eXBlID0gdGVzdF9mYWlsdXJl
cy5kZXRlcm1pbmVfcmVzdWx0X3R5cGUoZmFpbHVyZXMpCiAKKyAgICAgICAgIyBUaGVzZSBhcmUg
c2V0IGJ5IHRoZSB3b3JrZXIsIG5vdCBieSB0aGUgZHJpdmVyLCBzbyB0aGV5IGFyZSBub3QgcGFz
c2VkIHRvIHRoZSBjb25zdHJ1Y3Rvci4KKyAgICAgICAgc2VsZi53b3JrZXJfbmFtZSA9ICcnCisg
ICAgICAgIHNlbGYuc2hhcmRfbmFtZSA9ICcnCisgICAgICAgIHNlbGYudG90YWxfcnVuX3RpbWUg
PSAwICAjIFRoZSB0aW1lIHRha2VuIHRvIHJ1biB0aGUgdGVzdCBwbHVzIGFueSByZWZlcmVuY2Vz
LCBjb21wdXRlIGRpZmZzLCBldGMuCisKICAgICBkZWYgX19lcV9fKHNlbGYsIG90aGVyKToKICAg
ICAgICAgcmV0dXJuIChzZWxmLnRlc3RfbmFtZSA9PSBvdGhlci50ZXN0X25hbWUgYW5kCiAgICAg
ICAgICAgICAgICAgc2VsZi5mYWlsdXJlcyA9PSBvdGhlci5mYWlsdXJlcyBhbmQKZGlmZiAtLWdp
dCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3ZpZXdzL3ByaW50aW5nLnB5
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvdmlld3MvcHJpbnRpbmcucHkK
aW5kZXggYjdhOTE5NWE4NGMyMTk5ZmUyNjc0OGNjZTdiZGI5YzlkZmEyZTFkZi4uODU4MmQxZjU0
MTJkNDUzM2QwYmY1MmE5NjQ4MjUxOWM5OTllODc0YiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvdmlld3MvcHJpbnRpbmcucHkKKysrIGIvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvdmlld3MvcHJpbnRpbmcucHkKQEAgLTE0OSwzOSAr
MTQ5LDQ3IEBAIGNsYXNzIFByaW50ZXIob2JqZWN0KToKICAgICAgICAgICAgIG5kaWdpdHMgPSBp
bnQobWF0aC5sb2cxMChsZW4obnVtKSkpICsgMQogICAgICAgICByZXR1cm4gbmRpZ2l0cwogCi0g
ICAgZGVmIHByaW50X3Jlc3VsdHMoc2VsZiwgcnVuX3RpbWUsIHRocmVhZF90aW1pbmdzLCB0ZXN0
X3RpbWluZ3MsIGluZGl2aWR1YWxfdGVzdF90aW1pbmdzLCByZXN1bHRfc3VtbWFyeSwgdW5leHBl
Y3RlZF9yZXN1bHRzKToKLSAgICAgICAgc2VsZi5fcHJpbnRfdGltaW5nX3N0YXRpc3RpY3MocnVu
X3RpbWUsIHRocmVhZF90aW1pbmdzLCB0ZXN0X3RpbWluZ3MsIGluZGl2aWR1YWxfdGVzdF90aW1p
bmdzLCByZXN1bHRfc3VtbWFyeSkKKyAgICBkZWYgcHJpbnRfcmVzdWx0cyhzZWxmLCBydW5fdGlt
ZSwgcmVzdWx0X3N1bW1hcnksIHVuZXhwZWN0ZWRfcmVzdWx0cyk6CisgICAgICAgIHNlbGYuX3By
aW50X3RpbWluZ19zdGF0aXN0aWNzKHJ1bl90aW1lLCByZXN1bHRfc3VtbWFyeSkKICAgICAgICAg
c2VsZi5fcHJpbnRfcmVzdWx0X3N1bW1hcnkocmVzdWx0X3N1bW1hcnkpCiAgICAgICAgIHNlbGYu
X3ByaW50X29uZV9saW5lX3N1bW1hcnkocmVzdWx0X3N1bW1hcnkudG90YWwgLSByZXN1bHRfc3Vt
bWFyeS5leHBlY3RlZF9za2lwcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICByZXN1bHRfc3VtbWFyeS5leHBlY3RlZCAtIHJlc3VsdF9zdW1tYXJ5LmV4cGVjdGVkX3NraXBz
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdF9zdW1tYXJ5LnVu
ZXhwZWN0ZWQpCiAgICAgICAgIHNlbGYuX3ByaW50X3VuZXhwZWN0ZWRfcmVzdWx0cyh1bmV4cGVj
dGVkX3Jlc3VsdHMpCiAKLSAgICBkZWYgX3ByaW50X3RpbWluZ19zdGF0aXN0aWNzKHNlbGYsIHRv
dGFsX3RpbWUsIHRocmVhZF90aW1pbmdzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZGlyZWN0b3J5X3Rlc3RfdGltaW5ncywgaW5kaXZpZHVhbF90ZXN0X3RpbWluZ3MsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRfc3VtbWFyeSk6CisgICAgZGVmIF9w
cmludF90aW1pbmdfc3RhdGlzdGljcyhzZWxmLCB0b3RhbF90aW1lLCByZXN1bHRfc3VtbWFyeSk6
CiAgICAgICAgIHNlbGYuX3ByaW50X2RlYnVnKCJUZXN0IHRpbWluZzoiKQogICAgICAgICBzZWxm
Ll9wcmludF9kZWJ1ZygiICAlNi4yZiB0b3RhbCB0ZXN0aW5nIHRpbWUiICUgdG90YWxfdGltZSkK
ICAgICAgICAgc2VsZi5fcHJpbnRfZGVidWcoIiIpCisKKyAgICAgICAgc2VsZi5fcHJpbnRfd29y
a2VyX3N0YXRpc3RpY3MocmVzdWx0X3N1bW1hcnksIGludChzZWxmLl9vcHRpb25zLmNoaWxkX3By
b2Nlc3NlcykpCisgICAgICAgIHNlbGYuX3ByaW50X2FnZ3JlZ2F0ZV90ZXN0X3N0YXRpc3RpY3Mo
cmVzdWx0X3N1bW1hcnkpCisgICAgICAgIHNlbGYuX3ByaW50X2luZGl2aWR1YWxfdGVzdF90aW1l
cyhyZXN1bHRfc3VtbWFyeSkKKyAgICAgICAgc2VsZi5fcHJpbnRfZGlyZWN0b3J5X3RpbWluZ3Mo
cmVzdWx0X3N1bW1hcnkpCisKKyAgICBkZWYgX3ByaW50X3dvcmtlcl9zdGF0aXN0aWNzKHNlbGYs
IHJlc3VsdF9zdW1tYXJ5LCBudW1fd29ya2Vycyk6CiAgICAgICAgIHNlbGYuX3ByaW50X2RlYnVn
KCJUaHJlYWQgdGltaW5nOiIpCisgICAgICAgIHN0YXRzID0ge30KICAgICAgICAgY3VtbF90aW1l
ID0gMAotICAgICAgICBmb3IgdCBpbiB0aHJlYWRfdGltaW5nczoKLSAgICAgICAgICAgIHNlbGYu
X3ByaW50X2RlYnVnKCIgICAgJTEwczogJTVkIHRlc3RzLCAlNi4yZiBzZWNzIiAlICh0WyduYW1l
J10sIHRbJ251bV90ZXN0cyddLCB0Wyd0b3RhbF90aW1lJ10pKQotICAgICAgICAgICAgY3VtbF90
aW1lICs9IHRbJ3RvdGFsX3RpbWUnXQotICAgICAgICBzZWxmLl9wcmludF9kZWJ1ZygiICAgJTYu
MmYgY3VtdWxhdGl2ZSwgJTYuMmYgb3B0aW1hbCIgJSAoY3VtbF90aW1lLCBjdW1sX3RpbWUgLyBp
bnQoc2VsZi5fb3B0aW9ucy5jaGlsZF9wcm9jZXNzZXMpKSkKKyAgICAgICAgZm9yIHJlc3VsdCBp
biByZXN1bHRfc3VtbWFyeS5yZXN1bHRzLnZhbHVlcygpOgorICAgICAgICAgICAgc3RhdHMuc2V0
ZGVmYXVsdChyZXN1bHQud29ya2VyX25hbWUsIHsnbnVtX3Rlc3RzJzogMCwgJ3RvdGFsX3RpbWUn
OiAwfSkKKyAgICAgICAgICAgIHN0YXRzW3Jlc3VsdC53b3JrZXJfbmFtZV1bJ251bV90ZXN0cydd
ICs9IDEKKyAgICAgICAgICAgIHN0YXRzW3Jlc3VsdC53b3JrZXJfbmFtZV1bJ3RvdGFsX3RpbWUn
XSArPSByZXN1bHQudG90YWxfcnVuX3RpbWUKKyAgICAgICAgICAgIGN1bWxfdGltZSArPSByZXN1
bHQudG90YWxfcnVuX3RpbWUKKworICAgICAgICBmb3Igd29ya2VyX25hbWUgaW4gc3RhdHM6Cisg
ICAgICAgICAgICBzZWxmLl9wcmludF9kZWJ1ZygiICAgICUxMHM6ICU1ZCB0ZXN0cywgJTYuMmYg
c2VjcyIgJSAod29ya2VyX25hbWUsIHN0YXRzW3dvcmtlcl9uYW1lXVsnbnVtX3Rlc3RzJ10sIHN0
YXRzW3dvcmtlcl9uYW1lXVsndG90YWxfdGltZSddKSkKKyAgICAgICAgc2VsZi5fcHJpbnRfZGVi
dWcoIiAgICU2LjJmIGN1bXVsYXRpdmUsICU2LjJmIG9wdGltYWwiICUgKGN1bWxfdGltZSwgY3Vt
bF90aW1lIC8gbnVtX3dvcmtlcnMpKQogICAgICAgICBzZWxmLl9wcmludF9kZWJ1ZygiIikKIAot
ICAgICAgICBzZWxmLl9wcmludF9hZ2dyZWdhdGVfdGVzdF9zdGF0aXN0aWNzKGluZGl2aWR1YWxf
dGVzdF90aW1pbmdzKQotICAgICAgICBzZWxmLl9wcmludF9pbmRpdmlkdWFsX3Rlc3RfdGltZXMo
aW5kaXZpZHVhbF90ZXN0X3RpbWluZ3MsIHJlc3VsdF9zdW1tYXJ5KQotICAgICAgICBzZWxmLl9w
cmludF9kaXJlY3RvcnlfdGltaW5ncyhkaXJlY3RvcnlfdGVzdF90aW1pbmdzKQotCi0gICAgZGVm
IF9wcmludF9hZ2dyZWdhdGVfdGVzdF9zdGF0aXN0aWNzKHNlbGYsIGluZGl2aWR1YWxfdGVzdF90
aW1pbmdzKToKLSAgICAgICAgdGltZXNfZm9yX2R1bXBfcmVuZGVyX3RyZWUgPSBbdGVzdF9zdGF0
cy50ZXN0X3J1bl90aW1lIGZvciB0ZXN0X3N0YXRzIGluIGluZGl2aWR1YWxfdGVzdF90aW1pbmdz
XQorICAgIGRlZiBfcHJpbnRfYWdncmVnYXRlX3Rlc3Rfc3RhdGlzdGljcyhzZWxmLCByZXN1bHRf
c3VtbWFyeSk6CisgICAgICAgIHRpbWVzX2Zvcl9kdW1wX3JlbmRlcl90cmVlID0gW3Jlc3VsdC50
ZXN0X3J1bl90aW1lIGZvciByZXN1bHQgaW4gcmVzdWx0X3N1bW1hcnkucmVzdWx0cy52YWx1ZXMo
KV0KICAgICAgICAgc2VsZi5fcHJpbnRfc3RhdGlzdGljc19mb3JfdGVzdF90aW1pbmdzKCJQRVIg
VEVTVCBUSU1FIElOIFRFU1RTSEVMTCAoc2Vjb25kcyk6IiwgdGltZXNfZm9yX2R1bXBfcmVuZGVy
X3RyZWUpCiAKLSAgICBkZWYgX3ByaW50X2luZGl2aWR1YWxfdGVzdF90aW1lcyhzZWxmLCBpbmRp
dmlkdWFsX3Rlc3RfdGltaW5ncywgcmVzdWx0X3N1bW1hcnkpOgorICAgIGRlZiBfcHJpbnRfaW5k
aXZpZHVhbF90ZXN0X3RpbWVzKHNlbGYsIHJlc3VsdF9zdW1tYXJ5KToKICAgICAgICAgIyBSZXZl
cnNlLXNvcnQgYnkgdGhlIHRpbWUgc3BlbnQgaW4gRHVtcFJlbmRlclRyZWUuCi0gICAgICAgIGlu
ZGl2aWR1YWxfdGVzdF90aW1pbmdzLnNvcnQobGFtYmRhIGEsIGI6IGNtcChiLnRlc3RfcnVuX3Rp
bWUsIGEudGVzdF9ydW5fdGltZSkpCisKKyAgICAgICAgaW5kaXZpZHVhbF90ZXN0X3RpbWluZ3Mg
PSBzb3J0ZWQocmVzdWx0X3N1bW1hcnkucmVzdWx0cy52YWx1ZXMoKSwga2V5PWxhbWJkYSByZXN1
bHQ6IHJlc3VsdC50ZXN0X3J1bl90aW1lKQogICAgICAgICBudW1fcHJpbnRlZCA9IDAKICAgICAg
ICAgc2xvd190ZXN0cyA9IFtdCiAgICAgICAgIHRpbWVvdXRfb3JfY3Jhc2hfdGVzdHMgPSBbXQpA
QCAtMjE5LDE4ICsyMjcsMjMgQEAgY2xhc3MgUHJpbnRlcihvYmplY3QpOgogICAgICAgICAgICAg
dGVzdF9ydW5fdGltZSA9IHJvdW5kKHRlc3RfdHVwbGUudGVzdF9ydW5fdGltZSwgMSkKICAgICAg
ICAgICAgIHNlbGYuX3ByaW50X2RlYnVnKCIgICVzIHRvb2sgJXMgc2Vjb25kcyIgJSAodGVzdF90
dXBsZS50ZXN0X25hbWUsIHRlc3RfcnVuX3RpbWUpKQogCi0gICAgZGVmIF9wcmludF9kaXJlY3Rv
cnlfdGltaW5ncyhzZWxmLCBkaXJlY3RvcnlfdGVzdF90aW1pbmdzKToKKyAgICBkZWYgX3ByaW50
X2RpcmVjdG9yeV90aW1pbmdzKHNlbGYsIHJlc3VsdF9zdW1tYXJ5KToKKyAgICAgICAgc3RhdHMg
PSB7fQorICAgICAgICBmb3IgcmVzdWx0IGluIHJlc3VsdF9zdW1tYXJ5LnJlc3VsdHMudmFsdWVz
KCk6CisgICAgICAgICAgICBzdGF0cy5zZXRkZWZhdWx0KHJlc3VsdC5zaGFyZF9uYW1lLCB7J251
bV90ZXN0cyc6IDAsICd0b3RhbF90aW1lJzogMH0pCisgICAgICAgICAgICBzdGF0c1tyZXN1bHQu
c2hhcmRfbmFtZV1bJ251bV90ZXN0cyddICs9IDEKKyAgICAgICAgICAgIHN0YXRzW3Jlc3VsdC5z
aGFyZF9uYW1lXVsndG90YWxfdGltZSddICs9IHJlc3VsdC50b3RhbF9ydW5fdGltZQorCiAgICAg
ICAgIHRpbWluZ3MgPSBbXQotICAgICAgICBmb3IgZGlyZWN0b3J5IGluIGRpcmVjdG9yeV90ZXN0
X3RpbWluZ3M6Ci0gICAgICAgICAgICBudW1fdGVzdHMsIHRpbWVfZm9yX2RpcmVjdG9yeSA9IGRp
cmVjdG9yeV90ZXN0X3RpbWluZ3NbZGlyZWN0b3J5XQotICAgICAgICAgICAgdGltaW5ncy5hcHBl
bmQoKHJvdW5kKHRpbWVfZm9yX2RpcmVjdG9yeSwgMSksIGRpcmVjdG9yeSwgbnVtX3Rlc3RzKSkK
KyAgICAgICAgZm9yIGRpcmVjdG9yeSBpbiBzdGF0czoKKyAgICAgICAgICAgIHRpbWluZ3MuYXBw
ZW5kKChkaXJlY3RvcnksIHJvdW5kKHN0YXRzW2RpcmVjdG9yeV1bJ3RvdGFsX3RpbWUnXSwgMSks
IHN0YXRzW2RpcmVjdG9yeV1bJ251bV90ZXN0cyddKSkKICAgICAgICAgdGltaW5ncy5zb3J0KCkK
IAogICAgICAgICBzZWxmLl9wcmludF9kZWJ1ZygiVGltZSB0byBwcm9jZXNzIHNsb3dlc3Qgc3Vi
ZGlyZWN0b3JpZXM6IikKICAgICAgICAgbWluX3NlY29uZHNfdG9fcHJpbnQgPSAxMAogICAgICAg
ICBmb3IgdGltaW5nIGluIHRpbWluZ3M6CiAgICAgICAgICAgICBpZiB0aW1pbmdbMF0gPiBtaW5f
c2Vjb25kc190b19wcmludDoKLSAgICAgICAgICAgICAgICBzZWxmLl9wcmludF9kZWJ1ZygiICAl
cyB0b29rICVzIHNlY29uZHMgdG8gcnVuICVzIHRlc3RzLiIgJSAodGltaW5nWzFdLCB0aW1pbmdb
MF0sIHRpbWluZ1syXSkpCisgICAgICAgICAgICAgICAgc2VsZi5fcHJpbnRfZGVidWcoIiAgJXMg
dG9vayAlcyBzZWNvbmRzIHRvIHJ1biAlcyB0ZXN0cy4iICUgdGltaW5nKQogICAgICAgICBzZWxm
Ll9wcmludF9kZWJ1ZygiIikKIAogICAgIGRlZiBfcHJpbnRfc3RhdGlzdGljc19mb3JfdGVzdF90
aW1pbmdzKHNlbGYsIHRpdGxlLCB0aW1pbmdzKToKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL3ZpZXdzL3ByaW50aW5nX3VuaXR0ZXN0LnB5IGIvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvdmlld3MvcHJpbnRpbmdfdW5pdHRlc3QucHkK
aW5kZXggZDRjNDE2OTY2ZTJjOTAwZjdiY2JjNzkyNWMxMWE3MGYzNjFmYWE1YS4uNDEzNjlmYzI3
NGVlOWZhMDRhMGU1OTVmNmQzZDA5YTVlMjU5YzE1MyAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvdmlld3MvcHJpbnRpbmdfdW5pdHRlc3QucHkKKysrIGIv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvdmlld3MvcHJpbnRpbmdfdW5pdHRl
c3QucHkKQEAgLTIwMCw3ICsyMDAsNyBAQCBjbGFzcyAgVGVzdHByaW50ZXIodW5pdHRlc3QuVGVz
dENhc2UpOgogICAgICAgICAgICAgICAgIHJldHJ5LmFkZChzZWxmLmdldF9yZXN1bHQoJ3Bhc3Nl
cy90ZXh0Lmh0bWwnKSwgVHJ1ZSwgdGVzdF9pc19zbG93KQogICAgICAgICAgICAgICAgIHJldHJ5
LmFkZChzZWxmLmdldF9yZXN1bHQoJ2ZhaWx1cmVzL2V4cGVjdGVkL3RpbWVvdXQuaHRtbCcpLCBU
cnVlLCB0ZXN0X2lzX3Nsb3cpCiAgICAgICAgICAgICAgICAgcmV0cnkuYWRkKHNlbGYuZ2V0X3Jl
c3VsdCgnZmFpbHVyZXMvZXhwZWN0ZWQvY3Jhc2guaHRtbCcpLCBUcnVlLCB0ZXN0X2lzX3Nsb3cp
Ci0gICAgICAgICAgICB1bmV4cGVjdGVkX3Jlc3VsdHMgPSBtYW5hZ2VyLnN1bW1hcml6ZV9yZXN1
bHRzKHNlbGYuX3BvcnQsIGV4cCwgcnMsIHJldHJ5LCB0ZXN0X3RpbWluZ3M9e30sIG9ubHlfdW5l
eHBlY3RlZD1UcnVlKQorICAgICAgICAgICAgdW5leHBlY3RlZF9yZXN1bHRzID0gbWFuYWdlci5z
dW1tYXJpemVfcmVzdWx0cyhzZWxmLl9wb3J0LCBleHAsIHJzLCByZXRyeSwgb25seV91bmV4cGVj
dGVkPVRydWUpCiAgICAgICAgICAgICByZXR1cm4gdW5leHBlY3RlZF9yZXN1bHRzCiAKICAgICAg
ICAgdGVzdHMgPSBbJ3Bhc3Nlcy90ZXh0Lmh0bWwnLCAnZmFpbHVyZXMvZXhwZWN0ZWQvdGltZW91
dC5odG1sJywgJ2ZhaWx1cmVzL2V4cGVjdGVkL2NyYXNoLmh0bWwnXQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>177537</attachid>
            <date>2012-12-04 13:29:41 -0800</date>
            <delta_ts>2012-12-04 14:04:36 -0800</delta_ts>
            <desc>fix typos, lint, verify manually</desc>
            <filename>bug-103943-20121204132706.patch</filename>
            <type>text/plain</type>
            <size>26845</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2NDQzCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNzQwOTk1MGM3MTkxOWEwZWIzY2I3ZmQ3YTY5ZGExZmI0
YWM3MmJlZS4uY2NkNjhkMjE5ODI4NDc0ZmQ2MTZmYWQ2ODcxYWY5NDI0MzZmZGEwNiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1
IEBACisyMDEyLTEyLTA0ICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIG5yd3Q6IGRlcml2ZSBwZXItdGhyZWFkLCBwZXItd29ya2VyIHN0YXRzIGZyb20gcmVz
dWx0IHN1bW1hcmllcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTAzOTQzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVGhpcyBwYXRjaCBjaGFuZ2VzIHRoZSBtYW5hZ2VyIGFuZCBwcmludGluZyBjb2RlIHRv
IHB1bGwgbW9yZSAgICAgICAgICAgCisgICAgICAgIGluZm9ybWF0aW9uIGZyb20gdGhlIFJlc3Vs
dFN1bW1hcnkgb2JqZWN0IHJhdGhlciB0aGFuIHRyYWNraW5nICAgICAgICAgIAorICAgICAgICBh
ZGRpdGlvbmFsIHN0YXRpc3RpY3Mgb24gdGhlIHNpZGUuIFRoaXMgYWxsb3dzIHVzIHRvIGNvbnNv
bGlkYXRlICAgICAgICAKKyAgICAgICAgYSBidW5jaCBvZiBsb2dpYyBhbmQgcmVtb3ZlIGEgYnVu
Y2ggb2YgZnJlZS1mbG9hdGluZyBsaXN0cyBhbmQgZGljdHMgb2YgCisgICAgICAgIG9mIHZhbHVl
cy4gV2UgYWRkIHRoZSBzaGFyZF9uYW1lIGFuZCB3b3JrZXJfbmFtZSB0byBlYWNoIFRlc3RSZXN1
bHQsICAgIAorICAgICAgICBhbmQgdGhlbiBtb2RpZnkgcHJpbnRfdGltaW5nX3N0YXRpc3RpY3Mo
KSBhbmQgdXBsb2FkX2pzb25fZmlsZXMoKSAgICAgICAKKyAgICAgICAgdG8ganVzdCBuZWVkIHRo
ZSByZXN1bHQgc3VtbWFyaWVzLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
CisKKyAgICAgICAgTm90ZSB0aGF0IHRoaXMgcGF0Y2ggYWxzbyBjaGFuZ2VzIHRoZSB0aW1pbmcg
c3RhdGlzdGljcyBzbGlnaHRseQorICAgICAgICBzbyB0aGF0IHRoZSBpbmRpdmlkdWFsIHRlc3Qg
dGltZXMgYXJlIHRoZSB0aW1lcyB0byBydW4ganVzdCB0aGUKKyAgICAgICAgdGVzdHMgdGhlbXNl
bHZlcyAoVGVzdFJlc3VsdC50ZXN0X3J1bl90aW1lKSBhbmQgZG8gbm90IGluY2x1ZGUgdGhlCisg
ICAgICAgIHRpbWVzIHRha2VuIHRvIHJ1biB0aGUgcmVmIHRlc3RzLCBjb21wdXRlIGRpZmZzLCBl
dGMuIFRoZSBhZ2dyZWdhdGVkCisgICAgICAgIHBlci13b3JrZXIgYW5kIHBlci1zaGFyZCBzdGF0
aXN0aWNzIHN0aWxsIHVzZSB0aGUgdG90YWwgdGltZSB0bworICAgICAgICBwcm9jZXNzIGVhY2gg
dGVzdCAoVGVzdFJlc3VsdC50b3RhbF9ydW5fdGltZSkuCisKKyAgICAgICAgKiBTY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9sYXlvdXRfdGVzdF9ydW5uZXIucHk6Cisg
ICAgICAgIChMYXlvdXRUZXN0UnVubmVyLl9faW5pdF9fKToKKyAgICAgICAgKExheW91dFRlc3RS
dW5uZXIucnVuX3Rlc3RzKToKKyAgICAgICAgKExheW91dFRlc3RSdW5uZXIuX2hhbmRsZV9maW5p
c2hlZF90ZXN0X2xpc3QpOgorICAgICAgICAoTGF5b3V0VGVzdFJ1bm5lci5faGFuZGxlX2Zpbmlz
aGVkX3Rlc3QpOgorICAgICAgICAoV29ya2VyLmhhbmRsZSk6CisgICAgICAgIChXb3JrZXIuX3J1
bl90ZXN0KToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9s
bGVycy9tYW5hZ2VyLnB5OgorICAgICAgICAoc3VtbWFyaXplX3Jlc3VsdHMpOgorICAgICAgICAo
TWFuYWdlci5ydW4pOgorICAgICAgICAoTWFuYWdlci5fdXBsb2FkX2pzb25fZmlsZXMpOgorICAg
ICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL21hbmFnZXJf
dW5pdHRlc3QucHk6CisgICAgICAgIChSZXN1bHRTdW1tYXJ5VGVzdC5zdW1tYXJpemVkX3Jlc3Vs
dHMpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNr
YWdlL2pzb25fbGF5b3V0X3Jlc3VsdHNfZ2VuZXJhdG9yLnB5OgorICAgICAgICAoSlNPTkxheW91
dFJlc3VsdHNHZW5lcmF0b3IuX19pbml0X18pOgorICAgICAgICAoSlNPTkxheW91dFJlc3VsdHNH
ZW5lcmF0b3IuX2dldF90ZXN0X3RpbWluZyk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfcmVzdWx0cy5weToKKyAgICAgICAgKFRlc3RSZXN1bHQu
X19pbml0X18pOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3ZpZXdz
L3ByaW50aW5nLnB5OgorICAgICAgICAoUHJpbnRlci5wcmludF9yZXN1bHRzKToKKyAgICAgICAg
KFByaW50ZXIuX3ByaW50X3RpbWluZ19zdGF0aXN0aWNzKToKKyAgICAgICAgKFByaW50ZXIpOgor
ICAgICAgICAoUHJpbnRlci5fcHJpbnRfd29ya2VyX3N0YXRpc3RpY3MpOgorICAgICAgICAoUHJp
bnRlci5fcHJpbnRfYWdncmVnYXRlX3Rlc3Rfc3RhdGlzdGljcyk6CisgICAgICAgIChQcmludGVy
Ll9wcmludF9pbmRpdmlkdWFsX3Rlc3RfdGltZXMpOgorICAgICAgICAoUHJpbnRlci5fcHJpbnRf
ZGlyZWN0b3J5X3RpbWluZ3MpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL3ZpZXdzL3ByaW50aW5nX3VuaXR0ZXN0LnB5OgorICAgICAgICAoVGVzdHByaW50ZXIudGVz
dF9wcmludF91bmV4cGVjdGVkX3Jlc3VsdHMuZ2V0X3VuZXhwZWN0ZWRfcmVzdWx0cyk6CisgICAg
ICAgIChUZXN0cHJpbnRlcik6CisKIDIwMTItMTItMDMgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgd2Via2l0cHkncyBydW5fd2Via2l0X3Rlc3RzIHNob3Vs
ZCBpbml0aWFsaXplIHRoZSBwcmludGVyIGVhcmxpZXIgb24KZGlmZiAtLWdpdCBhL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL2xheW91dF90ZXN0X3J1bm5l
ci5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL2xh
eW91dF90ZXN0X3J1bm5lci5weQppbmRleCBhZjIyNDdiOGEyZGViMzA2YjE4MjA0MTJiZWVkMzRk
YjQ2MTYyMTFiLi42ZjE0MTk1ZDEyMjgyYjQyODE1MmYwMzEzYzQ1ZWEyZDQ1ZGUyNzgxIDEwMDY0
NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9s
YXlvdXRfdGVzdF9ydW5uZXIucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvY29udHJvbGxlcnMvbGF5b3V0X3Rlc3RfcnVubmVyLnB5CkBAIC0yOCw3ICsyOCw2IEBA
CiAKIGltcG9ydCBsb2dnaW5nCiBpbXBvcnQgbWF0aAotaW1wb3J0IHJlCiBpbXBvcnQgdGhyZWFk
aW5nCiBpbXBvcnQgdGltZQogCkBAIC03NSwyMCArNzQsMTEgQEAgY2xhc3MgTGF5b3V0VGVzdFJ1
bm5lcihvYmplY3QpOgogICAgICAgICBzZWxmLl9uZWVkc193ZWJzb2NrZXRzID0gTm9uZQogICAg
ICAgICBzZWxmLl9yZXRyeWluZyA9IEZhbHNlCiAgICAgICAgIHNlbGYuX3Rlc3RfZmlsZXNfbGlz
dCA9IFtdCi0gICAgICAgIHNlbGYuX2FsbF9yZXN1bHRzID0gW10KLSAgICAgICAgc2VsZi5fZ3Jv
dXBfc3RhdHMgPSB7fQotICAgICAgICBzZWxmLl93b3JrZXJfc3RhdHMgPSB7fQorICAgICAgICBz
ZWxmLl9yZW1haW5pbmdfbG9ja2VkX3NoYXJkcyA9IFtdCisgICAgICAgIHNlbGYuX2hhc19odHRw
X2xvY2sgPSBGYWxzZQogICAgICAgICBzZWxmLl9maWxlc3lzdGVtID0gc2VsZi5fcG9ydC5ob3N0
LmZpbGVzeXN0ZW0KIAogICAgIGRlZiBydW5fdGVzdHMoc2VsZiwgdGVzdF9pbnB1dHMsIGV4cGVj
dGF0aW9ucywgcmVzdWx0X3N1bW1hcnksIG51bV93b3JrZXJzLCBuZWVkc19odHRwLCBuZWVkc193
ZWJzb2NrZXRzLCByZXRyeWluZyk6Ci0gICAgICAgICIiIlJldHVybnMgYSB0dXBsZSBvZiAodGhy
ZWFkX3RpbWluZ3MsIHRlc3RfdGltaW5ncywgaW5kaXZpZHVhbF90ZXN0X3RpbWluZ3MpOgotICAg
ICAgICAgICAgdGhyZWFkX3RpbWluZ3MgaXMgYSBsaXN0IG9mIGRpY3RzIHdpdGggdGhlIHRvdGFs
IHJ1bnRpbWUKLSAgICAgICAgICAgICAgICBvZiBlYWNoIHRocmVhZCB3aXRoICduYW1lJywgJ251
bV90ZXN0cycsICd0b3RhbF90aW1lJyBwcm9wZXJ0aWVzCi0gICAgICAgICAgICB0ZXN0X3RpbWlu
Z3MgaXMgYSBsaXN0IG9mIHRpbWluZ3MgZm9yIGVhY2ggc2hhcmRlZCBzdWJkaXJlY3RvcnkKLSAg
ICAgICAgICAgICAgICBvZiB0aGUgZm9ybSBbdGltZSwgZGlyZWN0b3J5X25hbWUsIG51bV90ZXN0
c10KLSAgICAgICAgICAgIGluZGl2aWR1YWxfdGVzdF90aW1pbmdzIGlzIGEgbGlzdCBvZiBydW4g
dGltZXMgZm9yIGVhY2ggdGVzdAotICAgICAgICAgICAgICAgIGluIHRoZSBmb3JtIHtmaWxlbmFt
ZTpmaWxlbmFtZSwgdGVzdF9ydW5fdGltZTp0ZXN0X3J1bl90aW1lfQotICAgICAgICAiIiIKICAg
ICAgICAgc2VsZi5fY3VycmVudF9yZXN1bHRfc3VtbWFyeSA9IHJlc3VsdF9zdW1tYXJ5CiAgICAg
ICAgIHNlbGYuX2V4cGVjdGF0aW9ucyA9IGV4cGVjdGF0aW9ucwogICAgICAgICBzZWxmLl9uZWVk
c19odHRwID0gbmVlZHNfaHR0cApAQCAtOTgsOSArODgsNiBAQCBjbGFzcyBMYXlvdXRUZXN0UnVu
bmVyKG9iamVjdCk6CiAgICAgICAgIHNlbGYuX3ByaW50ZXIubnVtX3Rlc3RzID0gbGVuKHNlbGYu
X3Rlc3RfZmlsZXNfbGlzdCkKICAgICAgICAgc2VsZi5fcHJpbnRlci5udW1fY29tcGxldGVkID0g
MAogCi0gICAgICAgIHNlbGYuX2FsbF9yZXN1bHRzID0gW10KLSAgICAgICAgc2VsZi5fZ3JvdXBf
c3RhdHMgPSB7fQotICAgICAgICBzZWxmLl93b3JrZXJfc3RhdHMgPSB7fQogICAgICAgICBzZWxm
Ll9oYXNfaHR0cF9sb2NrID0gRmFsc2UKICAgICAgICAgc2VsZi5fcmVtYWluaW5nX2xvY2tlZF9z
aGFyZHMgPSBbXQogCkBAIC0xMjQsNyArMTExLDcgQEAgY2xhc3MgTGF5b3V0VGVzdFJ1bm5lcihv
YmplY3QpOgogICAgICAgICBzZWxmLl9wcmludGVyLnByaW50X3dvcmtlcnNfYW5kX3NoYXJkcyhu
dW1fd29ya2VycywgbGVuKGFsbF9zaGFyZHMpLCBsZW4obG9ja2VkX3NoYXJkcykpCiAKICAgICAg
ICAgaWYgc2VsZi5fb3B0aW9ucy5kcnlfcnVuOgotICAgICAgICAgICAgcmV0dXJuIChzZWxmLl93
b3JrZXJfc3RhdHMudmFsdWVzKCksIHNlbGYuX2dyb3VwX3N0YXRzLCBzZWxmLl9hbGxfcmVzdWx0
cykKKyAgICAgICAgICAgIHJldHVybiByZXN1bHRfc3VtbWFyeQogCiAgICAgICAgIHNlbGYuX3By
aW50ZXIud3JpdGVfdXBkYXRlKCdTdGFydGluZyAlcyAuLi4nICUgZ3JhbW1hci5wbHVyYWxpemUo
J3dvcmtlcicsIG51bV93b3JrZXJzKSkKIApAQCAtMTQ0LDggKzEzMSw3IEBAIGNsYXNzIExheW91
dFRlc3RSdW5uZXIob2JqZWN0KToKICAgICAgICAgZmluYWxseToKICAgICAgICAgICAgIHNlbGYu
c3RvcF9zZXJ2ZXJzX3dpdGhfbG9jaygpCiAKLSAgICAgICAgIyBGSVhNRTogTW92ZSB0aGVzZSBz
dGF0cyBpbnRvIFJlc3VsdFN1bW1hcnkgYW5kIHJldHVybiB0aGF0LgotICAgICAgICByZXR1cm4g
KHNlbGYuX3dvcmtlcl9zdGF0cy52YWx1ZXMoKSwgc2VsZi5fZ3JvdXBfc3RhdHMsIHNlbGYuX2Fs
bF9yZXN1bHRzKQorICAgICAgICByZXR1cm4gcmVzdWx0X3N1bW1hcnkKIAogICAgIGRlZiBfd29y
a2VyX2ZhY3Rvcnkoc2VsZiwgd29ya2VyX2Nvbm5lY3Rpb24pOgogICAgICAgICByZXN1bHRzX2Rp
cmVjdG9yeSA9IHNlbGYuX3Jlc3VsdHNfZGlyZWN0b3J5CkBAIC0yMzEsOSArMjE3LDcgQEAgY2xh
c3MgTGF5b3V0VGVzdFJ1bm5lcihvYmplY3QpOgogICAgIGRlZiBfaGFuZGxlX3N0YXJ0ZWRfdGVz
dChzZWxmLCB3b3JrZXJfbmFtZSwgdGVzdF9pbnB1dCwgdGVzdF90aW1lb3V0X3NlYyk6CiAgICAg
ICAgIHNlbGYuX3ByaW50ZXIucHJpbnRfc3RhcnRlZF90ZXN0KHRlc3RfaW5wdXQudGVzdF9uYW1l
KQogCi0gICAgZGVmIF9oYW5kbGVfZmluaXNoZWRfdGVzdF9saXN0KHNlbGYsIHdvcmtlcl9uYW1l
LCBsaXN0X25hbWUsIG51bV90ZXN0cywgZWxhcHNlZF90aW1lKToKLSAgICAgICAgc2VsZi5fZ3Jv
dXBfc3RhdHNbbGlzdF9uYW1lXSA9IChudW1fdGVzdHMsIGVsYXBzZWRfdGltZSkKLQorICAgIGRl
ZiBfaGFuZGxlX2ZpbmlzaGVkX3Rlc3RfbGlzdChzZWxmLCB3b3JrZXJfbmFtZSwgbGlzdF9uYW1l
KToKICAgICAgICAgZGVmIGZpbmQobmFtZSwgdGVzdF9saXN0cyk6CiAgICAgICAgICAgICBmb3Ig
aSBpbiByYW5nZShsZW4odGVzdF9saXN0cykpOgogICAgICAgICAgICAgICAgIGlmIHRlc3RfbGlz
dHNbaV0ubmFtZSA9PSBuYW1lOgpAQCAtMjQ2LDExICsyMzAsNyBAQCBjbGFzcyBMYXlvdXRUZXN0
UnVubmVyKG9iamVjdCk6CiAgICAgICAgICAgICBpZiBub3Qgc2VsZi5fcmVtYWluaW5nX2xvY2tl
ZF9zaGFyZHMgYW5kIG5vdCBzZWxmLl9wb3J0LnJlcXVpcmVzX2h0dHBfc2VydmVyKCk6CiAgICAg
ICAgICAgICAgICAgc2VsZi5zdG9wX3NlcnZlcnNfd2l0aF9sb2NrKCkKIAotICAgIGRlZiBfaGFu
ZGxlX2ZpbmlzaGVkX3Rlc3Qoc2VsZiwgd29ya2VyX25hbWUsIHJlc3VsdCwgZWxhcHNlZF90aW1l
LCBsb2dfbWVzc2FnZXM9W10pOgotICAgICAgICBzZWxmLl93b3JrZXJfc3RhdHMuc2V0ZGVmYXVs
dCh3b3JrZXJfbmFtZSwgeyduYW1lJzogd29ya2VyX25hbWUsICdudW1fdGVzdHMnOiAwLCAndG90
YWxfdGltZSc6IDB9KQotICAgICAgICBzZWxmLl93b3JrZXJfc3RhdHNbd29ya2VyX25hbWVdWyd0
b3RhbF90aW1lJ10gKz0gZWxhcHNlZF90aW1lCi0gICAgICAgIHNlbGYuX3dvcmtlcl9zdGF0c1t3
b3JrZXJfbmFtZV1bJ251bV90ZXN0cyddICs9IDEKLSAgICAgICAgc2VsZi5fYWxsX3Jlc3VsdHMu
YXBwZW5kKHJlc3VsdCkKKyAgICBkZWYgX2hhbmRsZV9maW5pc2hlZF90ZXN0KHNlbGYsIHdvcmtl
cl9uYW1lLCByZXN1bHQsIGxvZ19tZXNzYWdlcz1bXSk6CiAgICAgICAgIHNlbGYuX3VwZGF0ZV9z
dW1tYXJ5X3dpdGhfcmVzdWx0KHNlbGYuX2N1cnJlbnRfcmVzdWx0X3N1bW1hcnksIHJlc3VsdCkK
IAogCkBAIC0yOTAsMTEgKzI3MCw5IEBAIGNsYXNzIFdvcmtlcihvYmplY3QpOgogCiAgICAgZGVm
IGhhbmRsZShzZWxmLCBuYW1lLCBzb3VyY2UsIHRlc3RfbGlzdF9uYW1lLCB0ZXN0X2lucHV0cyk6
CiAgICAgICAgIGFzc2VydCBuYW1lID09ICd0ZXN0X2xpc3QnCi0gICAgICAgIHN0YXJ0X3RpbWUg
PSB0aW1lLnRpbWUoKQogICAgICAgICBmb3IgdGVzdF9pbnB1dCBpbiB0ZXN0X2lucHV0czoKLSAg
ICAgICAgICAgIHNlbGYuX3J1bl90ZXN0KHRlc3RfaW5wdXQpCi0gICAgICAgIGVsYXBzZWRfdGlt
ZSA9IHRpbWUudGltZSgpIC0gc3RhcnRfdGltZQotICAgICAgICBzZWxmLl9jYWxsZXIucG9zdCgn
ZmluaXNoZWRfdGVzdF9saXN0JywgdGVzdF9saXN0X25hbWUsIGxlbih0ZXN0X2lucHV0cyksIGVs
YXBzZWRfdGltZSkKKyAgICAgICAgICAgIHNlbGYuX3J1bl90ZXN0KHRlc3RfaW5wdXQsIHRlc3Rf
bGlzdF9uYW1lKQorICAgICAgICBzZWxmLl9jYWxsZXIucG9zdCgnZmluaXNoZWRfdGVzdF9saXN0
JywgdGVzdF9saXN0X25hbWUpCiAKICAgICBkZWYgX3VwZGF0ZV90ZXN0X2lucHV0KHNlbGYsIHRl
c3RfaW5wdXQpOgogICAgICAgICBpZiB0ZXN0X2lucHV0LnJlZmVyZW5jZV9maWxlcyBpcyBOb25l
OgpAQCAtMzA1LDcgKzI4Myw3IEBAIGNsYXNzIFdvcmtlcihvYmplY3QpOgogICAgICAgICBlbHNl
OgogICAgICAgICAgICAgdGVzdF9pbnB1dC5zaG91bGRfcnVuX3BpeGVsX3Rlc3QgPSBzZWxmLl9w
b3J0LnNob3VsZF9ydW5fYXNfcGl4ZWxfdGVzdCh0ZXN0X2lucHV0KQogCi0gICAgZGVmIF9ydW5f
dGVzdChzZWxmLCB0ZXN0X2lucHV0KToKKyAgICBkZWYgX3J1bl90ZXN0KHNlbGYsIHRlc3RfaW5w
dXQsIHNoYXJkX25hbWUpOgogICAgICAgICBzZWxmLl9iYXRjaF9jb3VudCArPSAxCiAKICAgICAg
ICAgc3RvcF93aGVuX2RvbmUgPSBGYWxzZQpAQCAtMzE5LDkgKzI5NywxMSBAQCBjbGFzcyBXb3Jr
ZXIob2JqZWN0KToKICAgICAgICAgc2VsZi5fY2FsbGVyLnBvc3QoJ3N0YXJ0ZWRfdGVzdCcsIHRl
c3RfaW5wdXQsIHRlc3RfdGltZW91dF9zZWMpCiAKICAgICAgICAgcmVzdWx0ID0gc2VsZi5fcnVu
X3Rlc3Rfd2l0aF90aW1lb3V0KHRlc3RfaW5wdXQsIHRlc3RfdGltZW91dF9zZWMsIHN0b3Bfd2hl
bl9kb25lKQorICAgICAgICByZXN1bHQuc2hhcmRfbmFtZSA9IHNoYXJkX25hbWUKKyAgICAgICAg
cmVzdWx0Lndvcmtlcl9uYW1lID0gc2VsZi5fbmFtZQorICAgICAgICByZXN1bHQudG90YWxfcnVu
X3RpbWUgPSB0aW1lLnRpbWUoKSAtIHN0YXJ0CiAKLSAgICAgICAgZWxhcHNlZF90aW1lID0gdGlt
ZS50aW1lKCkgLSBzdGFydAotICAgICAgICBzZWxmLl9jYWxsZXIucG9zdCgnZmluaXNoZWRfdGVz
dCcsIHJlc3VsdCwgZWxhcHNlZF90aW1lKQorICAgICAgICBzZWxmLl9jYWxsZXIucG9zdCgnZmlu
aXNoZWRfdGVzdCcsIHJlc3VsdCkKIAogICAgICAgICBzZWxmLl9jbGVhbl91cF9hZnRlcl90ZXN0
KHRlc3RfaW5wdXQsIHJlc3VsdCkKIApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvbWFuYWdlci5weSBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL21hbmFnZXIucHkKaW5kZXggMDQ1OTIzMjcw
MDNhNTEwMjE2ZDBkOTcyZTBjMjRmODg4ODQ0MzVhMi4uMGM3OTgwNDIxMTk2Zjg0YTQ4NjBkY2E3
ZjYyZjJmNWU1OTJiODI2YiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvY29udHJvbGxlcnMvbWFuYWdlci5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9tYW5hZ2VyLnB5CkBAIC0xMDcsNyArMTA3LDcg
QEAgZGVmIHVzZV90cmFjX2xpbmtzX2luX3Jlc3VsdHNfaHRtbChwb3J0X29iaik6CiAjIG9yIHNw
bGl0IG9mZiBmcm9tIE1hbmFnZXIgb250byBhbm90aGVyIGhlbHBlciBjbGFzcywgYnV0IHNob3Vs
ZCBub3QgYmUgYSBmcmVlIGZ1bmN0aW9uLgogIyBNb3N0IGxpa2VseSB0aGlzIHNob3VsZCBiZSBt
YWRlIGludG8gaXRzIG93biBjbGFzcywgYW5kIHRoaXMgc3VwZXItbG9uZyBmdW5jdGlvbgogIyBz
cGxpdCBpbnRvIG1hbnkgaGVscGVyIGZ1bmN0aW9ucy4KLWRlZiBzdW1tYXJpemVfcmVzdWx0cyhw
b3J0X29iaiwgZXhwZWN0YXRpb25zLCByZXN1bHRfc3VtbWFyeSwgcmV0cnlfc3VtbWFyeSwgdGVz
dF90aW1pbmdzLCBvbmx5X3VuZXhwZWN0ZWQpOgorZGVmIHN1bW1hcml6ZV9yZXN1bHRzKHBvcnRf
b2JqLCBleHBlY3RhdGlvbnMsIHJlc3VsdF9zdW1tYXJ5LCByZXRyeV9zdW1tYXJ5LCBvbmx5X3Vu
ZXhwZWN0ZWQpOgogICAgICIiIlN1bW1hcml6ZSBmYWlsaW5nIHJlc3VsdHMgYXMgYSBkaWN0Lgog
CiAgICAgRklYTUU6IHNwbGl0IHRoaXMgZGF0YSBzdHJ1Y3R1cmUgaW50byBhIHNlcGFyYXRlIGNs
YXNzPwpAQCAtMTE3LDcgKzExNyw2IEBAIGRlZiBzdW1tYXJpemVfcmVzdWx0cyhwb3J0X29iaiwg
ZXhwZWN0YXRpb25zLCByZXN1bHRfc3VtbWFyeSwgcmV0cnlfc3VtbWFyeSwgdGVzCiAgICAgICAg
IGV4cGVjdGF0aW9uczogdGVzdF9leHBlY3RhdGlvbnMuVGVzdEV4cGVjdGF0aW9ucyBvYmplY3QK
ICAgICAgICAgcmVzdWx0X3N1bW1hcnk6IHN1bW1hcnkgb2JqZWN0IGZyb20gaW5pdGlhbCB0ZXN0
IHJ1bnMKICAgICAgICAgcmV0cnlfc3VtbWFyeTogc3VtbWFyeSBvYmplY3QgZnJvbSBmaW5hbCB0
ZXN0IHJ1biBvZiByZXRyaWVkIHRlc3RzCi0gICAgICAgIHRlc3RfdGltaW5nczogYSBsaXN0IG9m
IFRlc3RSZXN1bHQgb2JqZWN0cyB3aGljaCBjb250YWluIHRlc3QgcnVudGltZXMgaW4gc2Vjb25k
cwogICAgICAgICBvbmx5X3VuZXhwZWN0ZWQ6IHdoZXRoZXIgdG8gcmV0dXJuIGEgc3VtbWFyeSBv
bmx5IGZvciB0aGUgdW5leHBlY3RlZCByZXN1bHRzCiAgICAgUmV0dXJuczoKICAgICAgICAgQSBk
aWN0aW9uYXJ5IGNvbnRhaW5pbmcgYSBzdW1tYXJ5IG9mIHRoZSB1bmV4cGVjdGVkIHJlc3VsdHMg
ZnJvbSB0aGUKQEAgLTQwMiwxNCArNDAxLDEwIEBAIGNsYXNzIE1hbmFnZXIob2JqZWN0KToKICAg
ICAgICAgICAgIHJldHVybiAtMQogCiAgICAgICAgIHN0YXJ0X3RpbWUgPSB0aW1lLnRpbWUoKQot
ICAgICAgICByZXRyeV9zdW1tYXJ5ID0gcmVzdWx0X3N1bW1hcnkKIAotICAgICAgICAjIEZJWE1F
OiBtb3ZlIHRoZXNlIGZpZWxkcyBpbnRvIHJlc3VsdF9zdW1tYXJ5IHNvIHdlIGRvbid0IGhhdmUg
dG8gcGFzcyB0aGVtIGFyb3VuZC4KLSAgICAgICAgdGhyZWFkX3RpbWluZ3MgPSB0ZXN0X3RpbWlu
Z3MgPSB7fQotICAgICAgICBpbmRpdmlkdWFsX3Rlc3RfdGltaW5ncyA9IFtdCisgICAgICAgIHJl
dHJ5X3N1bW1hcnkgPSBOb25lCiAgICAgICAgIHRyeToKLSAgICAgICAgICAgIHRocmVhZF90aW1p
bmdzLCB0ZXN0X3RpbWluZ3MsIGluZGl2aWR1YWxfdGVzdF90aW1pbmdzID0gXAotICAgICAgICAg
ICAgICAgIHNlbGYuX3J1bl90ZXN0cyhzZWxmLl90ZXN0X25hbWVzLCByZXN1bHRfc3VtbWFyeSwg
aW50KHNlbGYuX29wdGlvbnMuY2hpbGRfcHJvY2Vzc2VzKSwgcmV0cnlpbmc9RmFsc2UpCisgICAg
ICAgICAgICByZXN1bHRfc3VtbWFyeSA9IHNlbGYuX3J1bl90ZXN0cyhzZWxmLl90ZXN0X25hbWVz
LCByZXN1bHRfc3VtbWFyeSwgaW50KHNlbGYuX29wdGlvbnMuY2hpbGRfcHJvY2Vzc2VzKSwgcmV0
cnlpbmc9RmFsc2UpCiAKICAgICAgICAgICAgICMgV2UgZXhjbHVkZSB0aGUgY3Jhc2hlcyBmcm9t
IHRoZSBsaXN0IG9mIHJlc3VsdHMgdG8gcmV0cnksIGJlY2F1c2UKICAgICAgICAgICAgICMgd2Ug
d2FudCB0byB0cmVhdCBldmVuIGEgcG90ZW50aWFsbHkgZmxha3kgY3Jhc2ggYXMgYW4gZXJyb3Iu
CkBAIC00MTksOSArNDE0LDcgQEAgY2xhc3MgTWFuYWdlcihvYmplY3QpOgogICAgICAgICAgICAg
ICAgIF9sb2cuaW5mbygnJykKICAgICAgICAgICAgICAgICBfbG9nLmluZm8oIlJldHJ5aW5nICVk
IHVuZXhwZWN0ZWQgZmFpbHVyZShzKSAuLi4iICUgbGVuKGZhaWx1cmVzKSkKICAgICAgICAgICAg
ICAgICBfbG9nLmluZm8oJycpCi0gICAgICAgICAgICAgICAgIyBOb3RlIHRoYXQgd2UgZG9uJ3Qg
Y2FyZSBhYm91dCB0aGUgdmFsdWVzIHJldHVybmVkIGZyb20gdGhlIHJldHJ5IHBhc3MuCi0gICAg
ICAgICAgICAgICAgcmV0cnlfc3VtbWFyeSA9IFJlc3VsdFN1bW1hcnkoc2VsZi5fZXhwZWN0YXRp
b25zLCBmYWlsdXJlcywgMSwgc2V0KCkpCi0gICAgICAgICAgICAgICAgXyA9IHNlbGYuX3J1bl90
ZXN0cyhmYWlsdXJlcywgcmV0cnlfc3VtbWFyeSwgMSwgcmV0cnlpbmc9VHJ1ZSkKKyAgICAgICAg
ICAgICAgICByZXRyeV9zdW1tYXJ5ID0gc2VsZi5fcnVuX3Rlc3RzKGZhaWx1cmVzLCBSZXN1bHRT
dW1tYXJ5KHNlbGYuX2V4cGVjdGF0aW9ucywgZmFpbHVyZXMsIDEsIHNldCgpKSwgMSwgcmV0cnlp
bmc9VHJ1ZSkKICAgICAgICAgZmluYWxseToKICAgICAgICAgICAgICMgSWYgd2UgYXJlIGN0cmwt
YydlZDsgd2Ugc3RpbGwgd2FudCB0byB0cnkgYW5kIHByaW50IHRoZSByZXN1bHRzIHdlIGdvdCwg
YW5kIGNsZWFuIHVwLAogICAgICAgICAgICAgIyBidXQgd2UgZG9uJ3Qgd2FudCB0byB1cGxvYWQg
YW55dGhpbmcuCkBAIC00MzAsMjAgKzQyMywyNSBAQCBjbGFzcyBNYW5hZ2VyKG9iamVjdCk6CiAg
ICAgICAgICAgICAjIFNvbWUgY3Jhc2ggbG9ncyBjYW4gdGFrZSBhIGxvbmcgdGltZSB0byBiZSB3
cml0dGVuIG91dCBzbyBsb29rCiAgICAgICAgICAgICAjIGZvciBuZXcgbG9ncyBhZnRlciB0aGUg
dGVzdCBydW4gZmluaXNoZXMuCiAgICAgICAgICAgICBzZWxmLl9sb29rX2Zvcl9uZXdfY3Jhc2hf
bG9ncyhyZXN1bHRfc3VtbWFyeSwgc3RhcnRfdGltZSkKLSAgICAgICAgICAgIHNlbGYuX2xvb2tf
Zm9yX25ld19jcmFzaF9sb2dzKHJldHJ5X3N1bW1hcnksIHN0YXJ0X3RpbWUpCisgICAgICAgICAg
ICBpZiByZXRyeV9zdW1tYXJ5OgorICAgICAgICAgICAgICAgIHNlbGYuX2xvb2tfZm9yX25ld19j
cmFzaF9sb2dzKHJldHJ5X3N1bW1hcnksIHN0YXJ0X3RpbWUpCisgICAgICAgICAgICBlbHNlOgor
ICAgICAgICAgICAgICAgICMgRklYTUU6IE1vZGlmeSBzdW1tYXJpemVfcmVzdWx0cyB0byBoYW5k
bGUgcmV0cnlfc3VtbWFyeSA9PSBOb25lLgorICAgICAgICAgICAgICAgIHJldHJ5X3N1bW1hcnkg
PSByZXN1bHRfc3VtbWFyeQorCiAgICAgICAgICAgICBzZWxmLl9jbGVhbl91cF9ydW4oKQogCi0g
ICAgICAgICAgICB1bmV4cGVjdGVkX3Jlc3VsdHMgPSBzdW1tYXJpemVfcmVzdWx0cyhzZWxmLl9w
b3J0LCBzZWxmLl9leHBlY3RhdGlvbnMsIHJlc3VsdF9zdW1tYXJ5LCByZXRyeV9zdW1tYXJ5LCBp
bmRpdmlkdWFsX3Rlc3RfdGltaW5ncywgb25seV91bmV4cGVjdGVkPVRydWUpCisgICAgICAgICAg
ICB1bmV4cGVjdGVkX3Jlc3VsdHMgPSBzdW1tYXJpemVfcmVzdWx0cyhzZWxmLl9wb3J0LCBzZWxm
Ll9leHBlY3RhdGlvbnMsIHJlc3VsdF9zdW1tYXJ5LCByZXRyeV9zdW1tYXJ5LCBvbmx5X3VuZXhw
ZWN0ZWQ9VHJ1ZSkKIAotICAgICAgICAgICAgc2VsZi5fcHJpbnRlci5wcmludF9yZXN1bHRzKGVu
ZF90aW1lIC0gc3RhcnRfdGltZSwgdGhyZWFkX3RpbWluZ3MsIHRlc3RfdGltaW5ncywgaW5kaXZp
ZHVhbF90ZXN0X3RpbWluZ3MsIHJlc3VsdF9zdW1tYXJ5LCB1bmV4cGVjdGVkX3Jlc3VsdHMpCisg
ICAgICAgICAgICBzZWxmLl9wcmludGVyLnByaW50X3Jlc3VsdHMoZW5kX3RpbWUgLSBzdGFydF90
aW1lLCByZXN1bHRfc3VtbWFyeSwgdW5leHBlY3RlZF9yZXN1bHRzKQogCiAgICAgICAgICMgRklY
TUU6IHJlbW92ZSByZWNvcmRfcmVzdWx0cy4gSXQncyBqdXN0IHVzZWQgZm9yIHRlc3RpbmcuIFRo
ZXJlJ3Mgbm8gbmVlZAogICAgICAgICAjIGZvciBpdCB0byBiZSBhIGNvbW1hbmRsaW5lIGFyZ3Vt
ZW50LgogICAgICAgICBpZiBzZWxmLl9vcHRpb25zLnJlY29yZF9yZXN1bHRzIGFuZCBub3Qgc2Vs
Zi5fb3B0aW9ucy5kcnlfcnVuOgogICAgICAgICAgICAgc2VsZi5fcG9ydC5wcmludF9sZWFrc19z
dW1tYXJ5KCkKICAgICAgICAgICAgICMgV3JpdGUgdGhlIHNhbWUgZGF0YSB0byBsb2cgZmlsZXMg
YW5kIHVwbG9hZCBnZW5lcmF0ZWQgSlNPTiBmaWxlcyB0byBhcHBlbmdpbmUgc2VydmVyLgotICAg
ICAgICAgICAgc3VtbWFyaXplZF9yZXN1bHRzID0gc3VtbWFyaXplX3Jlc3VsdHMoc2VsZi5fcG9y
dCwgc2VsZi5fZXhwZWN0YXRpb25zLCByZXN1bHRfc3VtbWFyeSwgcmV0cnlfc3VtbWFyeSwgaW5k
aXZpZHVhbF90ZXN0X3RpbWluZ3MsIG9ubHlfdW5leHBlY3RlZD1GYWxzZSkKLSAgICAgICAgICAg
IHNlbGYuX3VwbG9hZF9qc29uX2ZpbGVzKHN1bW1hcml6ZWRfcmVzdWx0cywgcmVzdWx0X3N1bW1h
cnksIGluZGl2aWR1YWxfdGVzdF90aW1pbmdzKQorICAgICAgICAgICAgc3VtbWFyaXplZF9yZXN1
bHRzID0gc3VtbWFyaXplX3Jlc3VsdHMoc2VsZi5fcG9ydCwgc2VsZi5fZXhwZWN0YXRpb25zLCBy
ZXN1bHRfc3VtbWFyeSwgcmV0cnlfc3VtbWFyeSwgb25seV91bmV4cGVjdGVkPUZhbHNlKQorICAg
ICAgICAgICAgc2VsZi5fdXBsb2FkX2pzb25fZmlsZXMoc3VtbWFyaXplZF9yZXN1bHRzLCByZXN1
bHRfc3VtbWFyeSkKIAogICAgICAgICAjIFdyaXRlIHRoZSBzdW1tYXJ5IHRvIGRpc2sgKHJlc3Vs
dHMuaHRtbCkgYW5kIGRpc3BsYXkgaXQgaWYgcmVxdWVzdGVkLgogICAgICAgICBpZiBub3Qgc2Vs
Zi5fb3B0aW9ucy5kcnlfcnVuOgpAQCAtNTE3LDIwICs1MTUsMTcgQEAgY2xhc3MgTWFuYWdlcihv
YmplY3QpOgogCiAgICAgICAgIHJldHVybiBmYWlsZWRfdGVzdF9uYW1lcwogCi0gICAgZGVmIF91
cGxvYWRfanNvbl9maWxlcyhzZWxmLCBzdW1tYXJpemVkX3Jlc3VsdHMsIHJlc3VsdF9zdW1tYXJ5
LCBpbmRpdmlkdWFsX3Rlc3RfdGltaW5ncyk6CisgICAgZGVmIF91cGxvYWRfanNvbl9maWxlcyhz
ZWxmLCBzdW1tYXJpemVkX3Jlc3VsdHMsIHJlc3VsdF9zdW1tYXJ5KToKICAgICAgICAgIiIiV3Jp
dGVzIHRoZSByZXN1bHRzIG9mIHRoZSB0ZXN0IHJ1biBhcyBKU09OIGZpbGVzIGludG8gdGhlIHJl
c3VsdHMKICAgICAgICAgZGlyIGFuZCB1cGxvYWQgdGhlIGZpbGVzIHRvIHRoZSBhcHBlbmdpbmUg
c2VydmVyLgogCiAgICAgICAgIEFyZ3M6Ci0gICAgICAgICAgdW5leHBlY3RlZF9yZXN1bHRzOiBk
aWN0IG9mIHVuZXhwZWN0ZWQgcmVzdWx0cwogICAgICAgICAgIHN1bW1hcml6ZWRfcmVzdWx0czog
ZGljdCBvZiByZXN1bHRzCiAgICAgICAgICAgcmVzdWx0X3N1bW1hcnk6IGZ1bGwgc3VtbWFyeSBv
YmplY3QKLSAgICAgICAgICBpbmRpdmlkdWFsX3Rlc3RfdGltaW5nczogbGlzdCBvZiB0ZXN0IHRp
bWVzICh1c2VkIGJ5IHRoZSBmbGFraW5lc3MKLSAgICAgICAgICAgIGRhc2hib2FyZCkuCiAgICAg
ICAgICIiIgogICAgICAgICBfbG9nLmRlYnVnKCJXcml0aW5nIEpTT04gZmlsZXMgaW4gJXMuIiAl
IHNlbGYuX3Jlc3VsdHNfZGlyZWN0b3J5KQogCi0gICAgICAgIHRpbWVzX3RyaWUgPSBqc29uX3Jl
c3VsdHNfZ2VuZXJhdG9yLnRlc3RfdGltaW5nc190cmllKHNlbGYuX3BvcnQsIGluZGl2aWR1YWxf
dGVzdF90aW1pbmdzKQorICAgICAgICB0aW1lc190cmllID0ganNvbl9yZXN1bHRzX2dlbmVyYXRv
ci50ZXN0X3RpbWluZ3NfdHJpZShzZWxmLl9wb3J0LCByZXN1bHRfc3VtbWFyeS5yZXN1bHRzLnZh
bHVlcygpKQogICAgICAgICB0aW1lc19qc29uX3BhdGggPSBzZWxmLl9maWxlc3lzdGVtLmpvaW4o
c2VsZi5fcmVzdWx0c19kaXJlY3RvcnksICJ0aW1lc19tcy5qc29uIikKICAgICAgICAganNvbl9y
ZXN1bHRzX2dlbmVyYXRvci53cml0ZV9qc29uKHNlbGYuX2ZpbGVzeXN0ZW0sIHRpbWVzX3RyaWUs
IHRpbWVzX2pzb25fcGF0aCkKIApAQCAtNTQxLDcgKzUzNiw3IEBAIGNsYXNzIE1hbmFnZXIob2Jq
ZWN0KToKICAgICAgICAgZ2VuZXJhdG9yID0ganNvbl9sYXlvdXRfcmVzdWx0c19nZW5lcmF0b3Iu
SlNPTkxheW91dFJlc3VsdHNHZW5lcmF0b3IoCiAgICAgICAgICAgICBzZWxmLl9wb3J0LCBzZWxm
Ll9vcHRpb25zLmJ1aWxkZXJfbmFtZSwgc2VsZi5fb3B0aW9ucy5idWlsZF9uYW1lLAogICAgICAg
ICAgICAgc2VsZi5fb3B0aW9ucy5idWlsZF9udW1iZXIsIHNlbGYuX3Jlc3VsdHNfZGlyZWN0b3J5
LAotICAgICAgICAgICAgQlVJTERFUl9CQVNFX1VSTCwgaW5kaXZpZHVhbF90ZXN0X3RpbWluZ3Ms
CisgICAgICAgICAgICBCVUlMREVSX0JBU0VfVVJMLAogICAgICAgICAgICAgc2VsZi5fZXhwZWN0
YXRpb25zLCByZXN1bHRfc3VtbWFyeSwgc2VsZi5fdGVzdF9uYW1lcywKICAgICAgICAgICAgIHNl
bGYuX29wdGlvbnMudGVzdF9yZXN1bHRzX3NlcnZlciwKICAgICAgICAgICAgICJsYXlvdXQtdGVz
dHMiLApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29u
dHJvbGxlcnMvbWFuYWdlcl91bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5
b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL21hbmFnZXJfdW5pdHRlc3QucHkKaW5kZXggMTdmY2VhZjU4
MGUxMjA3MDM0NGIyYjI1MmNkZGFmODdiMTM0MzU2Ni4uYmY4ODlhMzZjMzQwMmU3YWFiNmRkYjUz
NWY2OGI5ODIzNWQzYWU4MCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvY29udHJvbGxlcnMvbWFuYWdlcl91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9tYW5hZ2VyX3VuaXR0ZXN0LnB5
CkBAIC0xNzgsOCArMTc4LDggQEAgY2xhc3MgUmVzdWx0U3VtbWFyeVRlc3QodW5pdHRlc3QuVGVz
dENhc2UpOgogICAgICAgICAgICAgcmV0cnkuYWRkKHNlbGYuZ2V0X3Jlc3VsdCgncGFzc2VzL3Rl
eHQuaHRtbCcpLCBUcnVlLCB0ZXN0X2lzX3Nsb3cpCiAgICAgICAgICAgICByZXRyeS5hZGQoc2Vs
Zi5nZXRfcmVzdWx0KCdmYWlsdXJlcy9leHBlY3RlZC90aW1lb3V0Lmh0bWwnKSwgVHJ1ZSwgdGVz
dF9pc19zbG93KQogICAgICAgICAgICAgcmV0cnkuYWRkKHNlbGYuZ2V0X3Jlc3VsdCgnZmFpbHVy
ZXMvZXhwZWN0ZWQvY3Jhc2guaHRtbCcpLCBUcnVlLCB0ZXN0X2lzX3Nsb3cpCi0gICAgICAgIHVu
ZXhwZWN0ZWRfcmVzdWx0cyA9IHN1bW1hcml6ZV9yZXN1bHRzKHBvcnQsIGV4cCwgcnMsIHJldHJ5
LCB0ZXN0X3RpbWluZ3M9e30sIG9ubHlfdW5leHBlY3RlZD1UcnVlKQotICAgICAgICBleHBlY3Rl
ZF9yZXN1bHRzID0gc3VtbWFyaXplX3Jlc3VsdHMocG9ydCwgZXhwLCBycywgcmV0cnksIHRlc3Rf
dGltaW5ncz17fSwgb25seV91bmV4cGVjdGVkPUZhbHNlKQorICAgICAgICB1bmV4cGVjdGVkX3Jl
c3VsdHMgPSBzdW1tYXJpemVfcmVzdWx0cyhwb3J0LCBleHAsIHJzLCByZXRyeSwgb25seV91bmV4
cGVjdGVkPVRydWUpCisgICAgICAgIGV4cGVjdGVkX3Jlc3VsdHMgPSBzdW1tYXJpemVfcmVzdWx0
cyhwb3J0LCBleHAsIHJzLCByZXRyeSwgb25seV91bmV4cGVjdGVkPUZhbHNlKQogICAgICAgICBy
ZXR1cm4gZXhwZWN0ZWRfcmVzdWx0cywgdW5leHBlY3RlZF9yZXN1bHRzCiAKICAgICBkZWYgdGVz
dF9ub19zdm5fcmV2aXNpb24oc2VsZik6CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9qc29uX2xheW91dF9yZXN1bHRzX2dlbmVy
YXRvci5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNr
YWdlL2pzb25fbGF5b3V0X3Jlc3VsdHNfZ2VuZXJhdG9yLnB5CmluZGV4IGYyNzdjOTNkZTgxM2Ix
YTU4ZjU3N2NjNmQyYjI5ODYwOGU4M2I2N2EuLjJmOWEzMjFkOTdmZjg3YzJmMGZhZDY0OTE5NTY0
NDQwMDQyOGNkNTkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL2xheW91dF9wYWNrYWdlL2pzb25fbGF5b3V0X3Jlc3VsdHNfZ2VuZXJhdG9yLnB5CisrKyBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL2pzb25f
bGF5b3V0X3Jlc3VsdHNfZ2VuZXJhdG9yLnB5CkBAIC01Miw3ICs1Miw3IEBAIGNsYXNzIEpTT05M
YXlvdXRSZXN1bHRzR2VuZXJhdG9yKGpzb25fcmVzdWx0c19nZW5lcmF0b3IuSlNPTlJlc3VsdHNH
ZW5lcmF0b3JCYXNlCiAKICAgICBkZWYgX19pbml0X18oc2VsZiwgcG9ydCwgYnVpbGRlcl9uYW1l
LCBidWlsZF9uYW1lLCBidWlsZF9udW1iZXIsCiAgICAgICAgIHJlc3VsdHNfZmlsZV9iYXNlX3Bh
dGgsIGJ1aWxkZXJfYmFzZV91cmwsCi0gICAgICAgIHRlc3RfdGltaW5ncywgZXhwZWN0YXRpb25z
LCByZXN1bHRfc3VtbWFyeSwgYWxsX3Rlc3RzLAorICAgICAgICBleHBlY3RhdGlvbnMsIHJlc3Vs
dF9zdW1tYXJ5LCBhbGxfdGVzdHMsCiAgICAgICAgIHRlc3RfcmVzdWx0c19zZXJ2ZXI9Tm9uZSwg
dGVzdF90eXBlPSIiLCBtYXN0ZXJfbmFtZT0iIik6CiAgICAgICAgICIiIk1vZGlmaWVzIHRoZSBy
ZXN1bHRzLmpzb24gZmlsZS4gR3JhYnMgaXQgb2ZmIHRoZSBhcmNoaXZlIGRpcmVjdG9yeQogICAg
ICAgICBpZiBpdCBpcyBub3QgZm91bmQgbG9jYWxseS4KQEAgLTcxLDcgKzcxLDcgQEAgY2xhc3Mg
SlNPTkxheW91dFJlc3VsdHNHZW5lcmF0b3IoanNvbl9yZXN1bHRzX2dlbmVyYXRvci5KU09OUmVz
dWx0c0dlbmVyYXRvckJhc2UKICAgICAgICAgc2VsZi5fcmVzdWx0X3N1bW1hcnkgPSByZXN1bHRf
c3VtbWFyeQogICAgICAgICBzZWxmLl9mYWlsdXJlcyA9IGRpY3QoKHRlc3RfbmFtZSwgcmVzdWx0
X3N1bW1hcnkucmVzdWx0c1t0ZXN0X25hbWVdLnR5cGUpIGZvciB0ZXN0X25hbWUgaW4gcmVzdWx0
X3N1bW1hcnkuZmFpbHVyZXMpCiAgICAgICAgIHNlbGYuX2FsbF90ZXN0cyA9IGFsbF90ZXN0cwot
ICAgICAgICBzZWxmLl90ZXN0X3RpbWluZ3MgPSBkaWN0KCh0ZXN0X3R1cGxlLnRlc3RfbmFtZSwg
dGVzdF90dXBsZS50ZXN0X3J1bl90aW1lKSBmb3IgdGVzdF90dXBsZSBpbiB0ZXN0X3RpbWluZ3Mp
CisgICAgICAgIHNlbGYuX3Rlc3RfdGltaW5ncyA9IHJlc3VsdF9zdW1tYXJ5LnJlc3VsdHMKIAog
ICAgICAgICBzZWxmLmdlbmVyYXRlX2pzb25fb3V0cHV0KCkKIApAQCAtOTksNyArOTksNyBAQCBj
bGFzcyBKU09OTGF5b3V0UmVzdWx0c0dlbmVyYXRvcihqc29uX3Jlc3VsdHNfZ2VuZXJhdG9yLkpT
T05SZXN1bHRzR2VuZXJhdG9yQmFzZQogICAgIGRlZiBfZ2V0X3Rlc3RfdGltaW5nKHNlbGYsIHRl
c3RfbmFtZSk6CiAgICAgICAgIGlmIHRlc3RfbmFtZSBpbiBzZWxmLl90ZXN0X3RpbWluZ3M6CiAg
ICAgICAgICAgICAjIEZsb29yIGZvciBub3cgdG8gZ2V0IHRpbWUgaW4gc2Vjb25kcy4KLSAgICAg
ICAgICAgIHJldHVybiBpbnQoc2VsZi5fdGVzdF90aW1pbmdzW3Rlc3RfbmFtZV0pCisgICAgICAg
ICAgICByZXR1cm4gaW50KHNlbGYuX3Rlc3RfdGltaW5nc1t0ZXN0X25hbWVdLnRlc3RfcnVuX3Rp
bWUpCiAgICAgICAgIHJldHVybiAwCiAKICAgICAjIG92ZXJyaWRlCmRpZmYgLS1naXQgYS9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVzdF9yZXN1bHRzLnB5IGIv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfcmVzdWx0cy5w
eQppbmRleCA2YjlkYjU1ODc2MWU1ZGU2NDQzNzc4NDEwMGViNzAzY2U2ODgyY2NjLi5kY2JlZjYy
NWNjYTMxNzBlMTAzODJmNzA4NWFkN2E5YzhlNGZlMjJmIDEwMDY0NAotLS0gYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVzdF9yZXN1bHRzLnB5CisrKyBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X3Jlc3VsdHMucHkK
QEAgLTQxLDEyICs0MSwxOCBAQCBjbGFzcyBUZXN0UmVzdWx0KG9iamVjdCk6CiAgICAgZGVmIF9f
aW5pdF9fKHNlbGYsIHRlc3RfbmFtZSwgZmFpbHVyZXM9Tm9uZSwgdGVzdF9ydW5fdGltZT1Ob25l
LCBoYXNfc3RkZXJyPUZhbHNlLCByZWZ0ZXN0X3R5cGU9W10pOgogICAgICAgICBzZWxmLnRlc3Rf
bmFtZSA9IHRlc3RfbmFtZQogICAgICAgICBzZWxmLmZhaWx1cmVzID0gZmFpbHVyZXMgb3IgW10K
LSAgICAgICAgc2VsZi50ZXN0X3J1bl90aW1lID0gdGVzdF9ydW5fdGltZSBvciAwCisgICAgICAg
IHNlbGYudGVzdF9ydW5fdGltZSA9IHRlc3RfcnVuX3RpbWUgb3IgMCAgIyBUaGUgdGltZSB0YWtl
biB0byBleGVjdXRlIHRoZSB0ZXN0IGl0c2VsZi4KICAgICAgICAgc2VsZi5oYXNfc3RkZXJyID0g
aGFzX3N0ZGVycgogICAgICAgICBzZWxmLnJlZnRlc3RfdHlwZSA9IHJlZnRlc3RfdHlwZQorCiAg
ICAgICAgICMgRklYTUU6IFNldHRpbmcgdGhpcyBpbiB0aGUgY29uc3RydWN0b3IgbWFrZXMgdGhp
cyBjbGFzcyBoYXJkIHRvIG11dGF0ZS4KICAgICAgICAgc2VsZi50eXBlID0gdGVzdF9mYWlsdXJl
cy5kZXRlcm1pbmVfcmVzdWx0X3R5cGUoZmFpbHVyZXMpCiAKKyAgICAgICAgIyBUaGVzZSBhcmUg
c2V0IGJ5IHRoZSB3b3JrZXIsIG5vdCBieSB0aGUgZHJpdmVyLCBzbyB0aGV5IGFyZSBub3QgcGFz
c2VkIHRvIHRoZSBjb25zdHJ1Y3Rvci4KKyAgICAgICAgc2VsZi53b3JrZXJfbmFtZSA9ICcnCisg
ICAgICAgIHNlbGYuc2hhcmRfbmFtZSA9ICcnCisgICAgICAgIHNlbGYudG90YWxfcnVuX3RpbWUg
PSAwICAjIFRoZSB0aW1lIHRha2VuIHRvIHJ1biB0aGUgdGVzdCBwbHVzIGFueSByZWZlcmVuY2Vz
LCBjb21wdXRlIGRpZmZzLCBldGMuCisKICAgICBkZWYgX19lcV9fKHNlbGYsIG90aGVyKToKICAg
ICAgICAgcmV0dXJuIChzZWxmLnRlc3RfbmFtZSA9PSBvdGhlci50ZXN0X25hbWUgYW5kCiAgICAg
ICAgICAgICAgICAgc2VsZi5mYWlsdXJlcyA9PSBvdGhlci5mYWlsdXJlcyBhbmQKZGlmZiAtLWdp
dCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3ZpZXdzL3ByaW50aW5nLnB5
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvdmlld3MvcHJpbnRpbmcucHkK
aW5kZXggYjdhOTE5NWE4NGMyMTk5ZmUyNjc0OGNjZTdiZGI5YzlkZmEyZTFkZi4uYTBiYTY4MTE3
MDJiNTI2YjIxNDg0ODU5Y2NhMTIxMGNkYjNiMDdmNCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvdmlld3MvcHJpbnRpbmcucHkKKysrIGIvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvdmlld3MvcHJpbnRpbmcucHkKQEAgLTE0OSwzOSAr
MTQ5LDQ3IEBAIGNsYXNzIFByaW50ZXIob2JqZWN0KToKICAgICAgICAgICAgIG5kaWdpdHMgPSBp
bnQobWF0aC5sb2cxMChsZW4obnVtKSkpICsgMQogICAgICAgICByZXR1cm4gbmRpZ2l0cwogCi0g
ICAgZGVmIHByaW50X3Jlc3VsdHMoc2VsZiwgcnVuX3RpbWUsIHRocmVhZF90aW1pbmdzLCB0ZXN0
X3RpbWluZ3MsIGluZGl2aWR1YWxfdGVzdF90aW1pbmdzLCByZXN1bHRfc3VtbWFyeSwgdW5leHBl
Y3RlZF9yZXN1bHRzKToKLSAgICAgICAgc2VsZi5fcHJpbnRfdGltaW5nX3N0YXRpc3RpY3MocnVu
X3RpbWUsIHRocmVhZF90aW1pbmdzLCB0ZXN0X3RpbWluZ3MsIGluZGl2aWR1YWxfdGVzdF90aW1p
bmdzLCByZXN1bHRfc3VtbWFyeSkKKyAgICBkZWYgcHJpbnRfcmVzdWx0cyhzZWxmLCBydW5fdGlt
ZSwgcmVzdWx0X3N1bW1hcnksIHVuZXhwZWN0ZWRfcmVzdWx0cyk6CisgICAgICAgIHNlbGYuX3By
aW50X3RpbWluZ19zdGF0aXN0aWNzKHJ1bl90aW1lLCByZXN1bHRfc3VtbWFyeSkKICAgICAgICAg
c2VsZi5fcHJpbnRfcmVzdWx0X3N1bW1hcnkocmVzdWx0X3N1bW1hcnkpCiAgICAgICAgIHNlbGYu
X3ByaW50X29uZV9saW5lX3N1bW1hcnkocmVzdWx0X3N1bW1hcnkudG90YWwgLSByZXN1bHRfc3Vt
bWFyeS5leHBlY3RlZF9za2lwcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICByZXN1bHRfc3VtbWFyeS5leHBlY3RlZCAtIHJlc3VsdF9zdW1tYXJ5LmV4cGVjdGVkX3NraXBz
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdF9zdW1tYXJ5LnVu
ZXhwZWN0ZWQpCiAgICAgICAgIHNlbGYuX3ByaW50X3VuZXhwZWN0ZWRfcmVzdWx0cyh1bmV4cGVj
dGVkX3Jlc3VsdHMpCiAKLSAgICBkZWYgX3ByaW50X3RpbWluZ19zdGF0aXN0aWNzKHNlbGYsIHRv
dGFsX3RpbWUsIHRocmVhZF90aW1pbmdzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZGlyZWN0b3J5X3Rlc3RfdGltaW5ncywgaW5kaXZpZHVhbF90ZXN0X3RpbWluZ3MsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRfc3VtbWFyeSk6CisgICAgZGVmIF9w
cmludF90aW1pbmdfc3RhdGlzdGljcyhzZWxmLCB0b3RhbF90aW1lLCByZXN1bHRfc3VtbWFyeSk6
CiAgICAgICAgIHNlbGYuX3ByaW50X2RlYnVnKCJUZXN0IHRpbWluZzoiKQogICAgICAgICBzZWxm
Ll9wcmludF9kZWJ1ZygiICAlNi4yZiB0b3RhbCB0ZXN0aW5nIHRpbWUiICUgdG90YWxfdGltZSkK
ICAgICAgICAgc2VsZi5fcHJpbnRfZGVidWcoIiIpCisKKyAgICAgICAgc2VsZi5fcHJpbnRfd29y
a2VyX3N0YXRpc3RpY3MocmVzdWx0X3N1bW1hcnksIGludChzZWxmLl9vcHRpb25zLmNoaWxkX3By
b2Nlc3NlcykpCisgICAgICAgIHNlbGYuX3ByaW50X2FnZ3JlZ2F0ZV90ZXN0X3N0YXRpc3RpY3Mo
cmVzdWx0X3N1bW1hcnkpCisgICAgICAgIHNlbGYuX3ByaW50X2luZGl2aWR1YWxfdGVzdF90aW1l
cyhyZXN1bHRfc3VtbWFyeSkKKyAgICAgICAgc2VsZi5fcHJpbnRfZGlyZWN0b3J5X3RpbWluZ3Mo
cmVzdWx0X3N1bW1hcnkpCisKKyAgICBkZWYgX3ByaW50X3dvcmtlcl9zdGF0aXN0aWNzKHNlbGYs
IHJlc3VsdF9zdW1tYXJ5LCBudW1fd29ya2Vycyk6CiAgICAgICAgIHNlbGYuX3ByaW50X2RlYnVn
KCJUaHJlYWQgdGltaW5nOiIpCisgICAgICAgIHN0YXRzID0ge30KICAgICAgICAgY3VtbF90aW1l
ID0gMAotICAgICAgICBmb3IgdCBpbiB0aHJlYWRfdGltaW5nczoKLSAgICAgICAgICAgIHNlbGYu
X3ByaW50X2RlYnVnKCIgICAgJTEwczogJTVkIHRlc3RzLCAlNi4yZiBzZWNzIiAlICh0WyduYW1l
J10sIHRbJ251bV90ZXN0cyddLCB0Wyd0b3RhbF90aW1lJ10pKQotICAgICAgICAgICAgY3VtbF90
aW1lICs9IHRbJ3RvdGFsX3RpbWUnXQotICAgICAgICBzZWxmLl9wcmludF9kZWJ1ZygiICAgJTYu
MmYgY3VtdWxhdGl2ZSwgJTYuMmYgb3B0aW1hbCIgJSAoY3VtbF90aW1lLCBjdW1sX3RpbWUgLyBp
bnQoc2VsZi5fb3B0aW9ucy5jaGlsZF9wcm9jZXNzZXMpKSkKKyAgICAgICAgZm9yIHJlc3VsdCBp
biByZXN1bHRfc3VtbWFyeS5yZXN1bHRzLnZhbHVlcygpOgorICAgICAgICAgICAgc3RhdHMuc2V0
ZGVmYXVsdChyZXN1bHQud29ya2VyX25hbWUsIHsnbnVtX3Rlc3RzJzogMCwgJ3RvdGFsX3RpbWUn
OiAwfSkKKyAgICAgICAgICAgIHN0YXRzW3Jlc3VsdC53b3JrZXJfbmFtZV1bJ251bV90ZXN0cydd
ICs9IDEKKyAgICAgICAgICAgIHN0YXRzW3Jlc3VsdC53b3JrZXJfbmFtZV1bJ3RvdGFsX3RpbWUn
XSArPSByZXN1bHQudG90YWxfcnVuX3RpbWUKKyAgICAgICAgICAgIGN1bWxfdGltZSArPSByZXN1
bHQudG90YWxfcnVuX3RpbWUKKworICAgICAgICBmb3Igd29ya2VyX25hbWUgaW4gc3RhdHM6Cisg
ICAgICAgICAgICBzZWxmLl9wcmludF9kZWJ1ZygiICAgICUxMHM6ICU1ZCB0ZXN0cywgJTYuMmYg
c2VjcyIgJSAod29ya2VyX25hbWUsIHN0YXRzW3dvcmtlcl9uYW1lXVsnbnVtX3Rlc3RzJ10sIHN0
YXRzW3dvcmtlcl9uYW1lXVsndG90YWxfdGltZSddKSkKKyAgICAgICAgc2VsZi5fcHJpbnRfZGVi
dWcoIiAgICU2LjJmIGN1bXVsYXRpdmUsICU2LjJmIG9wdGltYWwiICUgKGN1bWxfdGltZSwgY3Vt
bF90aW1lIC8gbnVtX3dvcmtlcnMpKQogICAgICAgICBzZWxmLl9wcmludF9kZWJ1ZygiIikKIAot
ICAgICAgICBzZWxmLl9wcmludF9hZ2dyZWdhdGVfdGVzdF9zdGF0aXN0aWNzKGluZGl2aWR1YWxf
dGVzdF90aW1pbmdzKQotICAgICAgICBzZWxmLl9wcmludF9pbmRpdmlkdWFsX3Rlc3RfdGltZXMo
aW5kaXZpZHVhbF90ZXN0X3RpbWluZ3MsIHJlc3VsdF9zdW1tYXJ5KQotICAgICAgICBzZWxmLl9w
cmludF9kaXJlY3RvcnlfdGltaW5ncyhkaXJlY3RvcnlfdGVzdF90aW1pbmdzKQotCi0gICAgZGVm
IF9wcmludF9hZ2dyZWdhdGVfdGVzdF9zdGF0aXN0aWNzKHNlbGYsIGluZGl2aWR1YWxfdGVzdF90
aW1pbmdzKToKLSAgICAgICAgdGltZXNfZm9yX2R1bXBfcmVuZGVyX3RyZWUgPSBbdGVzdF9zdGF0
cy50ZXN0X3J1bl90aW1lIGZvciB0ZXN0X3N0YXRzIGluIGluZGl2aWR1YWxfdGVzdF90aW1pbmdz
XQorICAgIGRlZiBfcHJpbnRfYWdncmVnYXRlX3Rlc3Rfc3RhdGlzdGljcyhzZWxmLCByZXN1bHRf
c3VtbWFyeSk6CisgICAgICAgIHRpbWVzX2Zvcl9kdW1wX3JlbmRlcl90cmVlID0gW3Jlc3VsdC50
ZXN0X3J1bl90aW1lIGZvciByZXN1bHQgaW4gcmVzdWx0X3N1bW1hcnkucmVzdWx0cy52YWx1ZXMo
KV0KICAgICAgICAgc2VsZi5fcHJpbnRfc3RhdGlzdGljc19mb3JfdGVzdF90aW1pbmdzKCJQRVIg
VEVTVCBUSU1FIElOIFRFU1RTSEVMTCAoc2Vjb25kcyk6IiwgdGltZXNfZm9yX2R1bXBfcmVuZGVy
X3RyZWUpCiAKLSAgICBkZWYgX3ByaW50X2luZGl2aWR1YWxfdGVzdF90aW1lcyhzZWxmLCBpbmRp
dmlkdWFsX3Rlc3RfdGltaW5ncywgcmVzdWx0X3N1bW1hcnkpOgorICAgIGRlZiBfcHJpbnRfaW5k
aXZpZHVhbF90ZXN0X3RpbWVzKHNlbGYsIHJlc3VsdF9zdW1tYXJ5KToKICAgICAgICAgIyBSZXZl
cnNlLXNvcnQgYnkgdGhlIHRpbWUgc3BlbnQgaW4gRHVtcFJlbmRlclRyZWUuCi0gICAgICAgIGlu
ZGl2aWR1YWxfdGVzdF90aW1pbmdzLnNvcnQobGFtYmRhIGEsIGI6IGNtcChiLnRlc3RfcnVuX3Rp
bWUsIGEudGVzdF9ydW5fdGltZSkpCisKKyAgICAgICAgaW5kaXZpZHVhbF90ZXN0X3RpbWluZ3Mg
PSBzb3J0ZWQocmVzdWx0X3N1bW1hcnkucmVzdWx0cy52YWx1ZXMoKSwga2V5PWxhbWJkYSByZXN1
bHQ6IHJlc3VsdC50ZXN0X3J1bl90aW1lLCByZXZlcnNlPVRydWUpCiAgICAgICAgIG51bV9wcmlu
dGVkID0gMAogICAgICAgICBzbG93X3Rlc3RzID0gW10KICAgICAgICAgdGltZW91dF9vcl9jcmFz
aF90ZXN0cyA9IFtdCkBAIC0yMTksMTggKzIyNywyMyBAQCBjbGFzcyBQcmludGVyKG9iamVjdCk6
CiAgICAgICAgICAgICB0ZXN0X3J1bl90aW1lID0gcm91bmQodGVzdF90dXBsZS50ZXN0X3J1bl90
aW1lLCAxKQogICAgICAgICAgICAgc2VsZi5fcHJpbnRfZGVidWcoIiAgJXMgdG9vayAlcyBzZWNv
bmRzIiAlICh0ZXN0X3R1cGxlLnRlc3RfbmFtZSwgdGVzdF9ydW5fdGltZSkpCiAKLSAgICBkZWYg
X3ByaW50X2RpcmVjdG9yeV90aW1pbmdzKHNlbGYsIGRpcmVjdG9yeV90ZXN0X3RpbWluZ3MpOgor
ICAgIGRlZiBfcHJpbnRfZGlyZWN0b3J5X3RpbWluZ3Moc2VsZiwgcmVzdWx0X3N1bW1hcnkpOgor
ICAgICAgICBzdGF0cyA9IHt9CisgICAgICAgIGZvciByZXN1bHQgaW4gcmVzdWx0X3N1bW1hcnku
cmVzdWx0cy52YWx1ZXMoKToKKyAgICAgICAgICAgIHN0YXRzLnNldGRlZmF1bHQocmVzdWx0LnNo
YXJkX25hbWUsIHsnbnVtX3Rlc3RzJzogMCwgJ3RvdGFsX3RpbWUnOiAwfSkKKyAgICAgICAgICAg
IHN0YXRzW3Jlc3VsdC5zaGFyZF9uYW1lXVsnbnVtX3Rlc3RzJ10gKz0gMQorICAgICAgICAgICAg
c3RhdHNbcmVzdWx0LnNoYXJkX25hbWVdWyd0b3RhbF90aW1lJ10gKz0gcmVzdWx0LnRvdGFsX3J1
bl90aW1lCisKICAgICAgICAgdGltaW5ncyA9IFtdCi0gICAgICAgIGZvciBkaXJlY3RvcnkgaW4g
ZGlyZWN0b3J5X3Rlc3RfdGltaW5nczoKLSAgICAgICAgICAgIG51bV90ZXN0cywgdGltZV9mb3Jf
ZGlyZWN0b3J5ID0gZGlyZWN0b3J5X3Rlc3RfdGltaW5nc1tkaXJlY3RvcnldCi0gICAgICAgICAg
ICB0aW1pbmdzLmFwcGVuZCgocm91bmQodGltZV9mb3JfZGlyZWN0b3J5LCAxKSwgZGlyZWN0b3J5
LCBudW1fdGVzdHMpKQorICAgICAgICBmb3IgZGlyZWN0b3J5IGluIHN0YXRzOgorICAgICAgICAg
ICAgdGltaW5ncy5hcHBlbmQoKGRpcmVjdG9yeSwgcm91bmQoc3RhdHNbZGlyZWN0b3J5XVsndG90
YWxfdGltZSddLCAxKSwgc3RhdHNbZGlyZWN0b3J5XVsnbnVtX3Rlc3RzJ10pKQogICAgICAgICB0
aW1pbmdzLnNvcnQoKQogCiAgICAgICAgIHNlbGYuX3ByaW50X2RlYnVnKCJUaW1lIHRvIHByb2Nl
c3Mgc2xvd2VzdCBzdWJkaXJlY3RvcmllczoiKQogICAgICAgICBtaW5fc2Vjb25kc190b19wcmlu
dCA9IDEwCiAgICAgICAgIGZvciB0aW1pbmcgaW4gdGltaW5nczoKICAgICAgICAgICAgIGlmIHRp
bWluZ1swXSA+IG1pbl9zZWNvbmRzX3RvX3ByaW50OgotICAgICAgICAgICAgICAgIHNlbGYuX3By
aW50X2RlYnVnKCIgICVzIHRvb2sgJXMgc2Vjb25kcyB0byBydW4gJXMgdGVzdHMuIiAlICh0aW1p
bmdbMV0sIHRpbWluZ1swXSwgdGltaW5nWzJdKSkKKyAgICAgICAgICAgICAgICBzZWxmLl9wcmlu
dF9kZWJ1ZygiICAlcyB0b29rICVzIHNlY29uZHMgdG8gcnVuICVzIHRlc3RzLiIgJSB0aW1pbmcp
CiAgICAgICAgIHNlbGYuX3ByaW50X2RlYnVnKCIiKQogCiAgICAgZGVmIF9wcmludF9zdGF0aXN0
aWNzX2Zvcl90ZXN0X3RpbWluZ3Moc2VsZiwgdGl0bGUsIHRpbWluZ3MpOgpkaWZmIC0tZ2l0IGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvdmlld3MvcHJpbnRpbmdfdW5pdHRl
c3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy92aWV3cy9wcmludGlu
Z191bml0dGVzdC5weQppbmRleCBkNGM0MTY5NjZlMmM5MDBmN2JjYmM3OTI1YzExYTcwZjM2MWZh
YTVhLi40MTM2OWZjMjc0ZWU5ZmEwNGEwZTU5NWY2ZDNkMDlhNWUyNTljMTUzIDEwMDY0NAotLS0g
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy92aWV3cy9wcmludGluZ191bml0
dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy92aWV3cy9w
cmludGluZ191bml0dGVzdC5weQpAQCAtMjAwLDcgKzIwMCw3IEBAIGNsYXNzICBUZXN0cHJpbnRl
cih1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgICAgICAgICAgcmV0cnkuYWRkKHNlbGYuZ2V0
X3Jlc3VsdCgncGFzc2VzL3RleHQuaHRtbCcpLCBUcnVlLCB0ZXN0X2lzX3Nsb3cpCiAgICAgICAg
ICAgICAgICAgcmV0cnkuYWRkKHNlbGYuZ2V0X3Jlc3VsdCgnZmFpbHVyZXMvZXhwZWN0ZWQvdGlt
ZW91dC5odG1sJyksIFRydWUsIHRlc3RfaXNfc2xvdykKICAgICAgICAgICAgICAgICByZXRyeS5h
ZGQoc2VsZi5nZXRfcmVzdWx0KCdmYWlsdXJlcy9leHBlY3RlZC9jcmFzaC5odG1sJyksIFRydWUs
IHRlc3RfaXNfc2xvdykKLSAgICAgICAgICAgIHVuZXhwZWN0ZWRfcmVzdWx0cyA9IG1hbmFnZXIu
c3VtbWFyaXplX3Jlc3VsdHMoc2VsZi5fcG9ydCwgZXhwLCBycywgcmV0cnksIHRlc3RfdGltaW5n
cz17fSwgb25seV91bmV4cGVjdGVkPVRydWUpCisgICAgICAgICAgICB1bmV4cGVjdGVkX3Jlc3Vs
dHMgPSBtYW5hZ2VyLnN1bW1hcml6ZV9yZXN1bHRzKHNlbGYuX3BvcnQsIGV4cCwgcnMsIHJldHJ5
LCBvbmx5X3VuZXhwZWN0ZWQ9VHJ1ZSkKICAgICAgICAgICAgIHJldHVybiB1bmV4cGVjdGVkX3Jl
c3VsdHMKIAogICAgICAgICB0ZXN0cyA9IFsncGFzc2VzL3RleHQuaHRtbCcsICdmYWlsdXJlcy9l
eHBlY3RlZC90aW1lb3V0Lmh0bWwnLCAnZmFpbHVyZXMvZXhwZWN0ZWQvY3Jhc2guaHRtbCddCg==
</data>
<flag name="review"
          id="193736"
          type_id="1"
          status="+"
          setter="ojan"
    />
          </attachment>
      

    </bug>

</bugzilla>