<?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>50372</bug_id>
          
          <creation_ts>2010-12-01 22:35:27 -0800</creation_ts>
          <short_desc>nrwt multiprocessing - minor cleanup</short_desc>
          <delta_ts>2010-12-14 20:48:14 -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>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>50367</dependson>
          <blocked>50374</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dirk Pranke">dpranke</reporter>
          <assigned_to name="Dirk Pranke">dpranke</assigned_to>
          <cc>eric</cc>
    
    <cc>hayato</cc>
    
    <cc>ojan</cc>
    
    <cc>ossy</cc>
    
    <cc>tony</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>316017</commentid>
    <comment_count>0</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-12-01 22:35:27 -0800</bug_when>
    <thetext>new-run-webkit-tests: minor cleanup for multiprocessing work</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>316019</commentid>
    <comment_count>1</comment_count>
      <attachid>75354</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-12-01 22:42:14 -0800</bug_when>
    <thetext>Created attachment 75354
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>316027</commentid>
    <comment_count>2</comment_count>
      <attachid>75356</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-12-01 23:42:14 -0800</bug_when>
    <thetext>Created attachment 75356
yet more cleanup</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>316197</commentid>
    <comment_count>3</comment_count>
      <attachid>75356</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-12-02 09:21:27 -0800</bug_when>
    <thetext>Comment on attachment 75356
yet more cleanup

I don&apos;t feel like line-wrapping patches are very useful.  But then again, I&apos;m in the anti-80c camp. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>316226</commentid>
    <comment_count>4</comment_count>
      <attachid>75356</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2010-12-02 10:17:27 -0800</bug_when>
    <thetext>Comment on attachment 75356
yet more cleanup

I agree with Eric. We&apos;ve decided not to do 80c in webkit python code, so changing a bunch of style to 80c just adds code churn. Can you upload this patch without the line-wrapping changes?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>316338</commentid>
    <comment_count>5</comment_count>
      <attachid>75404</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-12-02 12:27:04 -0800</bug_when>
    <thetext>Created attachment 75404
remove whitespace diffs / reformatting</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>316341</commentid>
    <comment_count>6</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-12-02 12:28:51 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 75356 [details])
&gt; I agree with Eric. We&apos;ve decided not to do 80c in webkit python code, so changing a bunch of style to 80c just adds code churn. Can you upload this patch without the line-wrapping changes?

Okay. Although I&apos;m obviously in the 80c camp, I only was reformatting this stuff because the rest of the file had already been formatted to 80c, so the mix of &lt; 80 and &gt; 80 made things awkward (I figured consistency one way or another was better).

I&apos;ve removed the line-wrapping, but I&apos;m curious to your thoughts on the above?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>316344</commentid>
    <comment_count>7</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-12-02 12:31:46 -0800</bug_when>
    <thetext>I think you didn&apos;t mean to upload a squashed diff.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>316410</commentid>
    <comment_count>8</comment_count>
      <attachid>75415</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-12-02 13:56:46 -0800</bug_when>
    <thetext>Created attachment 75415
upload the incremental diff, not the whole diff</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>316411</commentid>
    <comment_count>9</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-12-02 13:57:46 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; I think you didn&apos;t mean to upload a squashed diff.

Whoops, you&apos;re right. Sorry! I was rushing out to meet someone for lunch. Fixed now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>316498</commentid>
    <comment_count>10</comment_count>
      <attachid>75415</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2010-12-02 16:26:05 -0800</bug_when>
    <thetext>Comment on attachment 75415
upload the incremental diff, not the whole diff

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

&gt; WebKitTools/Scripts/webkitpy/layout_tests/layout_package/message_broker.py:117
&gt; +    def start_worker(self, worker_number):
&gt; +        thread = super(_MultiThreadedBroker, self).start_worker(worker_number)

thread = _MultiThreadedBroker.start_worker(self, worker_number) for explicitness</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>316520</commentid>
    <comment_count>11</comment_count>
      <attachid>75434</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-12-02 16:53:43 -0800</bug_when>
    <thetext>Created attachment 75434
add port.default_worker_model, merge in fix from bug 50420, other review feedback</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>316525</commentid>
    <comment_count>12</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-12-02 16:56:08 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; (From update of attachment 75415 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=75415&amp;action=review
&gt; 
&gt; &gt; WebKitTools/Scripts/webkitpy/layout_tests/layout_package/message_broker.py:117
&gt; &gt; +    def start_worker(self, worker_number):
&gt; &gt; +        thread = super(_MultiThreadedBroker, self).start_worker(worker_number)
&gt; 
&gt; thread = _MultiThreadedBroker.start_worker(self, worker_number) for explicitness

Actually, that would cause an infinite loop :) Correct version added.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>316526</commentid>
    <comment_count>13</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-12-02 16:56:56 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; Created an attachment (id=75434) [details]
&gt; add port.default_worker_model, merge in fix from bug 50420, other review feedback

This patch adds a way for us to do port-specific overrides to --worker-model, which I suspect we&apos;ll want as we stabilize this stuff and in case multiprocessing ends up not working that well on windows (or under cygwin).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>316809</commentid>
    <comment_count>14</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2010-12-03 06:54:47 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/73222 has very strange commit log. (same as 73220) I think it might be a webkit-patch bug. Could you check it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>316827</commentid>
    <comment_count>15</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-12-03 08:32:27 -0800</bug_when>
    <thetext>It&apos;s a problem when using git rebase.  It sometimes merges your changelog not to the top of the file.

We should have a SVN pre-commit hook, or webkit-patch step to validate that you&apos;re only adding to the top of the file (which is where we pull the commit message from).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>317035</commentid>
    <comment_count>16</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-12-03 13:55:24 -0800</bug_when>
    <thetext>(In reply to comment #15)
&gt; It&apos;s a problem when using git rebase.  It sometimes merges your changelog not to the top of the file.
&gt; 
&gt; We should have a SVN pre-commit hook, or webkit-patch step to validate that you&apos;re only adding to the top of the file (which is where we pull the commit message from).

In this case I think I was creating the patch using the -g foo..bar option, since I had a bunch of work on branches I was attempting to merge in. So I would bet this was user error, and not a bug in webkit-patch.

That said, I agree a presubmit check might be a good idea.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>322485</commentid>
    <comment_count>17</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-12-14 20:48:14 -0800</bug_when>
    <thetext>Marking as WONTFIX - will re-split up the patches and re-land a different way.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>75354</attachid>
            <date>2010-12-01 22:42:14 -0800</date>
            <delta_ts>2010-12-01 23:42:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-50372-20101201224212.patch</filename>
            <type>text/plain</type>
            <size>21032</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCAzZWIzYWNhOTM0MjkyZTY4NzdlNDk5NWZlMGFmYmJkNTBiZWE3ZGViLi5kZjg1NDM3
MTI3YWIzODU0ZWE5YmM5NzdhZWE1ZTgzZjE2OTM1YzRkIDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0yLDYgKzIsMzIgQEAK
IAogICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KIAorICAgICAgICBuZXctcnVu
LXdlYmtpdC10ZXN0czogbWlub3IgY2xlYW51cCBmb3IgbXVsdGlwcm9jZXNzaW5nIHdvcmsKKwor
ICAgICAgICBUaGlzIGNoYW5nZToKKyAgICAgICAgKiBtb3ZlcyB3b3JrZXIgbmFtaW5nIGludG8g
VGVzdFNoZWxsVGhyZWFkLCBlbGltaW5hdGluZyBhCisgICAgICAgICAgcGFyYW1ldGVyIHRvIHRo
ZSBjb25zdHJ1Y3RvciBhbmQgcHV0dGluZyB0aGUgcmVzcG9uc2liaWxpdHkgaW4KKyAgICAgICAg
ICB0aGUgY29ycmVjdCBwbGFjZS4KKyAgICAgICAgKiBlbGltaW5hdGVzIHRoZSBfV29ya2VyU3Rh
dGUoKSBjbGFzcyBpbiBtZXNzYWdlX2Jyb2tlciwgYmVjYXVzZQorICAgICAgICAgIGl0IHR1cm5z
IG91dCB0aGF0IHN0YXRlIHJlYWxseSBuZWVkcyB0byBiZSBpbiBydW5fd2Via2l0X3Rlc3RzCisg
ICAgICAgICogcmVuYW1lcyB0aGUgQnJva2VyIGNsYXNzZXMgdG8gYmUgbW9kdWxlLXByaXZhdGUu
CisgICAgICAgICogZml4ZXMgYSBidW5jaCBvZiBtaW5vciBjb21tZW50aW5nIGFuZCB3aGl0ZXNw
YWNlIGlzc3VlcyB0bworICAgICAgICAgIG1ha2Ugc3Vic2VxdWVudCBwYXRjaGVzIGEgYml0IGNs
ZWFyZXIuCisKKyAgICAgICAgVGhpcyBwYXRjaCBkZXBlbmRzIG9uIGJ1ZyA1MDM2Ny4KKworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTAzNzIKKworICAg
ICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL2R1bXBf
cmVuZGVyX3RyZWVfdGhyZWFkLnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL2xheW91dF9wYWNrYWdlL21lc3NhZ2VfYnJva2VyLnB5OgorICAgICAgICAqIFNjcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL21lc3NhZ2VfYnJva2VyX3Vu
aXR0ZXN0LnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93
ZWJraXRfdGVzdHMucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
cnVuX3dlYmtpdF90ZXN0c191bml0dGVzdC5weToKKworMjAxMC0xMi0wMSAgRGlyayBQcmFua2Ug
IDxkcHJhbmtlQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKwogICAgICAgICBUaGlzIGNoYW5nZSBpcyBhIGJ1bmNoIG9mIGNsZWFudXAgLyByZWZh
Y3RvcmluZyBvZiB0aGUgZmlsZQogICAgICAgICBiZWxvdy4gSXQgbW92ZXMgYSBidW5jaCBvZiBm
cmVlIGZ1bmN0aW9ucyB0byBtZXRob2RzIG9uIHRoZQogICAgICAgICBUZXN0U2hlbGxUaHJlYWQg
Y2xhc3MsIGFuZCByZXN0cnVjdHVyZXMgb3RoZXIgbWV0aG9kcyB0byBiZQpkaWZmIC0tZ2l0IGEv
V2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2Uv
ZHVtcF9yZW5kZXJfdHJlZV90aHJlYWQucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9kdW1wX3JlbmRlcl90cmVlX3RocmVhZC5weQpp
bmRleCBjNjhjYTU0Mjc0NjljOTY2YjgwNjgyNjA2ZGQ3NjEyNTFjNjkzMWM4Li5hZjQ4M2Y1NzZl
YmZlY2UxNWEzMzNmZGYzODRkMDQyNTMzYjY0MjQ0IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9kdW1wX3JlbmRlcl90
cmVlX3RocmVhZC5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9sYXlvdXRfcGFja2FnZS9kdW1wX3JlbmRlcl90cmVlX3RocmVhZC5weQpAQCAtOTgsNyAr
OTgsNyBAQCBjbGFzcyBXYXRjaGFibGVUaHJlYWQodGhyZWFkaW5nLlRocmVhZCk6CiAKIAogY2xh
c3MgVGVzdFNoZWxsVGhyZWFkKFdhdGNoYWJsZVRocmVhZCk6Ci0gICAgZGVmIF9faW5pdF9fKHNl
bGYsIHBvcnQsIG9wdGlvbnMsIHdvcmtlcl9udW1iZXIsIHdvcmtlcl9uYW1lLAorICAgIGRlZiBf
X2luaXRfXyhzZWxmLCBwb3J0LCBvcHRpb25zLCB3b3JrZXJfbnVtYmVyLAogICAgICAgICAgICAg
ICAgICBmaWxlbmFtZV9saXN0X3F1ZXVlLCByZXN1bHRfcXVldWUpOgogICAgICAgICAiIiJJbml0
aWFsaXplIGFsbCB0aGUgbG9jYWwgc3RhdGUgZm9yIHRoaXMgRHVtcFJlbmRlclRyZWUgdGhyZWFk
LgogCkBAIC0xMDYsNyArMTA2LDYgQEAgY2xhc3MgVGVzdFNoZWxsVGhyZWFkKFdhdGNoYWJsZVRo
cmVhZCk6CiAgICAgICAgICAgcG9ydDogaW50ZXJmYWNlIHRvIHBvcnQtc3BlY2lmaWMgaG9va3MK
ICAgICAgICAgICBvcHRpb25zOiBjb21tYW5kIGxpbmUgb3B0aW9ucyBhcmd1bWVudCBmcm9tIG9w
dHBhcnNlCiAgICAgICAgICAgd29ya2VyX251bWJlcjogaWRlbnRpZmllciBmb3IgYSBwYXJ0aWN1
bGFyIHdvcmtlciB0aHJlYWQuCi0gICAgICAgICAgd29ya2VyX25hbWU6IGZvciBsb2dnaW5nLgog
ICAgICAgICAgIGZpbGVuYW1lX2xpc3RfcXVldWU6IEEgdGhyZWFkIHNhZmUgUXVldWUgY2xhc3Mg
dGhhdCBjb250YWlucyBsaXN0cwogICAgICAgICAgICAgICBvZiB0dXBsZXMgb2YgKGZpbGVuYW1l
LCB1cmkpIHBhaXJzLgogICAgICAgICAgIHJlc3VsdF9xdWV1ZTogQSB0aHJlYWQgc2FmZSBRdWV1
ZSBjbGFzcyB0aGF0IHdpbGwgY29udGFpbgpAQCAtMTE2LDcgKzExNSw3IEBAIGNsYXNzIFRlc3RT
aGVsbFRocmVhZChXYXRjaGFibGVUaHJlYWQpOgogICAgICAgICBzZWxmLl9wb3J0ID0gcG9ydAog
ICAgICAgICBzZWxmLl9vcHRpb25zID0gb3B0aW9ucwogICAgICAgICBzZWxmLl93b3JrZXJfbnVt
YmVyID0gd29ya2VyX251bWJlcgotICAgICAgICBzZWxmLl9uYW1lID0gd29ya2VyX25hbWUKKyAg
ICAgICAgc2VsZi5fbmFtZSA9ICd3b3JrZXIvJWQnCiAgICAgICAgIHNlbGYuX2ZpbGVuYW1lX2xp
c3RfcXVldWUgPSBmaWxlbmFtZV9saXN0X3F1ZXVlCiAgICAgICAgIHNlbGYuX3Jlc3VsdF9xdWV1
ZSA9IHJlc3VsdF9xdWV1ZQogCkBAIC0xODEsNiArMTgwLDkgQEAgY2xhc3MgVGVzdFNoZWxsVGhy
ZWFkKFdhdGNoYWJsZVRocmVhZCk6CiAgICAgZGVmIGdldF9udW1fdGVzdHMoc2VsZik6CiAgICAg
ICAgIHJldHVybiBzZWxmLl9udW1fdGVzdHMKIAorICAgIGRlZiBuYW1lKHNlbGYpOgorICAgICAg
ICByZXR1cm4gc2VsZi5fbmFtZQorCiAgICAgZGVmIG5leHRfdGltZW91dChzZWxmKToKICAgICAg
ICAgIiIiUmV0dXJuIHRoZSB0aW1lIHRoZSB0ZXN0IGlzIHN1cHBvc2VkIHRvIGZpbmlzaCBieS4i
IiIKICAgICAgICAgaWYgc2VsZi5fbmV4dF90aW1lb3V0OgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9v
bHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvbWVzc2FnZV9i
cm9rZXIucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlv
dXRfcGFja2FnZS9tZXNzYWdlX2Jyb2tlci5weQppbmRleCBlNTIwYTljYWE2Yjc2ODJlYmZkZDJh
OThiYjIxN2ViODVkNzI1MWJjLi44NmYzYTJkNzBlYjcyY2U4NjQ5MDYyZjUzMjU5NjU0NDExNzUy
ZTk2IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9sYXlvdXRfcGFja2FnZS9tZXNzYWdlX2Jyb2tlci5weQorKysgYi9XZWJLaXRUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9tZXNzYWdlX2Jyb2tlci5w
eQpAQCAtMjYsNyArMjYsNyBAQAogIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKICMgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAotIiIi
TW9kdWxlIGZvciBoYW5kbGluZyBtZXNzYWdlcywgdGhyZWFkcywgcHJvY2Vzc2VzLCBhbmQgY29u
Y3VycmVuY3kgZm9yIHJ1bi13ZWJraXQtdGVzdHMuCisiIiJNb2R1bGUgZm9yIGhhbmRsaW5nIG1l
c3NhZ2VzIGFuZCBjb25jdXJyZW5jeSBmb3IgcnVuLXdlYmtpdC10ZXN0cy4KIAogVGVzdGluZyBp
cyBhY2NvbXBsaXNoZWQgYnkgaGF2aW5nIGEgbWFuYWdlciAoVGVzdFJ1bm5lcikgZ2F0aGVyIGFs
bCBvZiB0aGUKIHRlc3RzIHRvIGJlIHJ1biwgYW5kIHNlbmRpbmcgbWVzc2FnZXMgdG8gYSBwb29s
IG9mIHdvcmtlcnMgKFRlc3RTaGVsbFRocmVhZHMpCkBAIC01NCwyOSArNTQsMjMgQEAgZGVmIGdl
dChwb3J0LCBvcHRpb25zKToKICAgICAiIiJSZXR1cm4gYW4gaW5zdGFuY2Ugb2YgYSBXb3JrZXJN
ZXNzYWdlQnJva2VyLiIiIgogICAgIHdvcmtlcl9tb2RlbCA9IG9wdGlvbnMud29ya2VyX21vZGVs
CiAgICAgaWYgd29ya2VyX21vZGVsID09ICdpbmxpbmUnOgotICAgICAgICByZXR1cm4gSW5saW5l
QnJva2VyKHBvcnQsIG9wdGlvbnMpCisgICAgICAgIHJldHVybiBfSW5saW5lQnJva2VyKHBvcnQs
IG9wdGlvbnMpCiAgICAgaWYgd29ya2VyX21vZGVsID09ICd0aHJlYWRzJzoKLSAgICAgICAgcmV0
dXJuIE11bHRpVGhyZWFkZWRCcm9rZXIocG9ydCwgb3B0aW9ucykKKyAgICAgICAgcmV0dXJuIF9N
dWx0aVRocmVhZGVkQnJva2VyKHBvcnQsIG9wdGlvbnMpCiAgICAgcmFpc2UgVmFsdWVFcnJvcign
dW5zdXBwb3J0ZWQgdmFsdWUgZm9yIC0td29ya2VyLW1vZGVsOiAlcycgJSB3b3JrZXJfbW9kZWwp
CiAKIAotY2xhc3MgX1dvcmtlclN0YXRlKG9iamVjdCk6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYs
IG5hbWUpOgotICAgICAgICBzZWxmLm5hbWUgPSBuYW1lCi0gICAgICAgIHNlbGYudGhyZWFkID0g
Tm9uZQotCi0KLWNsYXNzIFdvcmtlck1lc3NhZ2VCcm9rZXIob2JqZWN0KToKK2NsYXNzIF9Xb3Jr
ZXJNZXNzYWdlQnJva2VyKG9iamVjdCk6CiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBvcnQsIG9w
dGlvbnMpOgogICAgICAgICBzZWxmLl9wb3J0ID0gcG9ydAogICAgICAgICBzZWxmLl9vcHRpb25z
ID0gb3B0aW9ucwogICAgICAgICBzZWxmLl9udW1fd29ya2VycyA9IGludChzZWxmLl9vcHRpb25z
LmNoaWxkX3Byb2Nlc3NlcykKIAotICAgICAgICAjIFRoaXMgbWFwcyB3b3JrZXIgbmFtZXMgdG8g
dGhlaXIgX1dvcmtlclN0YXRlIHZhbHVlcy4KKyAgICAgICAgIyBUaGlzIG1hcHMgd29ya2VyIG5h
bWVzIHRvIHRoZWlyIFRlc3RTaGVsbFRocmVhZCBvYmplY3RzLgogICAgICAgICBzZWxmLl93b3Jr
ZXJzID0ge30KIAogICAgIGRlZiBfdGhyZWFkcyhzZWxmKToKLSAgICAgICAgcmV0dXJuIHR1cGxl
KFt3LnRocmVhZCBmb3IgdyBpbiBzZWxmLl93b3JrZXJzLnZhbHVlcygpXSkKKyAgICAgICAgcmV0
dXJuIHNlbGYuX3dvcmtlcnMudmFsdWVzKCkKIAogICAgIGRlZiBzdGFydF93b3JrZXJzKHNlbGYs
IHRlc3RfcnVubmVyKToKICAgICAgICAgIiIiU3RhcnRzIHVwIHRoZSBwb29sIG9mIHdvcmtlcnMg
Zm9yIHJ1bm5pbmcgdGhlIHRlc3RzLgpAQCAtODYsMTMgKzgwLDE5IEBAIGNsYXNzIFdvcmtlck1l
c3NhZ2VCcm9rZXIob2JqZWN0KToKICAgICAgICAgIiIiCiAgICAgICAgIHNlbGYuX3Rlc3RfcnVu
bmVyID0gdGVzdF9ydW5uZXIKICAgICAgICAgZm9yIHdvcmtlcl9udW1iZXIgaW4geHJhbmdlKHNl
bGYuX251bV93b3JrZXJzKToKLSAgICAgICAgICAgIHdvcmtlciA9IF9Xb3JrZXJTdGF0ZSgnd29y
a2VyLSVkJyAlIHdvcmtlcl9udW1iZXIpCi0gICAgICAgICAgICB3b3JrZXIudGhyZWFkID0gc2Vs
Zi5fc3RhcnRfd29ya2VyKHdvcmtlcl9udW1iZXIsIHdvcmtlci5uYW1lKQotICAgICAgICAgICAg
c2VsZi5fd29ya2Vyc1t3b3JrZXIubmFtZV0gPSB3b3JrZXIKKyAgICAgICAgICAgIHRocmVhZCA9
IHNlbGYuc3RhcnRfd29ya2VyKHdvcmtlcl9udW1iZXIpCisgICAgICAgICAgICBzZWxmLl93b3Jr
ZXJzW3RocmVhZC5uYW1lKCldID0gdGhyZWFkCiAgICAgICAgIHJldHVybiBzZWxmLl90aHJlYWRz
KCkKIAotICAgIGRlZiBfc3RhcnRfd29ya2VyKHNlbGYsIHdvcmtlcl9udW1iZXIsIHdvcmtlcl9u
YW1lKToKLSAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcgorICAgIGRlZiBzdGFydF93
b3JrZXIoc2VsZiwgd29ya2VyX251bWJlcik6CisgICAgICAgICMgRklYTUU6IFJlcGxhY2Ugd2l0
aCBzb21ldGhpbmcgdGhhdCBpc24ndCBhIHRocmVhZC4KKyAgICAgICAgIyBOb3RlOiBEb24ndCBz
dGFydCgpIHRoZSB0aHJlYWQhIElmIHdlIGRpZCwgaXQgd291bGQgYWN0dWFsbHkKKyAgICAgICAg
IyBjcmVhdGUgYW5vdGhlciB0aHJlYWQgYW5kIHN0YXJ0IGV4ZWN1dGluZyBpdCwgYW5kIHdlJ2Qg
bm8gbG9uZ2VyCisgICAgICAgICMgYmUgc2luZ2xlLXRocmVhZGVkLgorICAgICAgICByZXR1cm4g
ZHVtcF9yZW5kZXJfdHJlZV90aHJlYWQuVGVzdFNoZWxsVGhyZWFkKHNlbGYuX3BvcnQsCisgICAg
ICAgICAgICBzZWxmLl9vcHRpb25zLCB3b3JrZXJfbnVtYmVyLAorICAgICAgICAgICAgc2VsZi5f
dGVzdF9ydW5uZXIuX2N1cnJlbnRfZmlsZW5hbWVfcXVldWUsCisgICAgICAgICAgICBzZWxmLl90
ZXN0X3J1bm5lci5fcmVzdWx0X3F1ZXVlKQogCiAgICAgZGVmIHJ1bl9tZXNzYWdlX2xvb3Aoc2Vs
Zik6CiAgICAgICAgICIiIkxvb3AgcHJvY2Vzc2luZyBtZXNzYWdlcyB1bnRpbCBkb25lLiIiIgpA
QCAtMTA3LDQzICsxMDcsMjggQEAgY2xhc3MgV29ya2VyTWVzc2FnZUJyb2tlcihvYmplY3QpOgog
ICAgICAgICBwYXNzCiAKIAotY2xhc3MgSW5saW5lQnJva2VyKFdvcmtlck1lc3NhZ2VCcm9rZXIp
OgotICAgIGRlZiBfc3RhcnRfd29ya2VyKHNlbGYsIHdvcmtlcl9udW1iZXIsIHdvcmtlcl9uYW1l
KToKLSAgICAgICAgIyBGSVhNRTogUmVwbGFjZSB3aXRoIHNvbWV0aGluZyB0aGF0IGlzbid0IGEg
dGhyZWFkLgotICAgICAgICB0aHJlYWQgPSBkdW1wX3JlbmRlcl90cmVlX3RocmVhZC5UZXN0U2hl
bGxUaHJlYWQoc2VsZi5fcG9ydCwKLSAgICAgICAgICAgIHNlbGYuX29wdGlvbnMsIHdvcmtlcl9u
dW1iZXIsIHdvcmtlcl9uYW1lLAotICAgICAgICAgICAgc2VsZi5fdGVzdF9ydW5uZXIuX2N1cnJl
bnRfZmlsZW5hbWVfcXVldWUsCi0gICAgICAgICAgICBzZWxmLl90ZXN0X3J1bm5lci5fcmVzdWx0
X3F1ZXVlKQotICAgICAgICAjIE5vdGU6IERvbid0IHN0YXJ0KCkgdGhlIHRocmVhZCEgSWYgd2Ug
ZGlkLCBpdCB3b3VsZCBhY3R1YWxseQotICAgICAgICAjIGNyZWF0ZSBhbm90aGVyIHRocmVhZCBh
bmQgc3RhcnQgZXhlY3V0aW5nIGl0LCBhbmQgd2UnZCBubyBsb25nZXIKLSAgICAgICAgIyBiZSBz
aW5nbGUtdGhyZWFkZWQuCi0gICAgICAgIHJldHVybiB0aHJlYWQKLQorY2xhc3MgX0lubGluZUJy
b2tlcihfV29ya2VyTWVzc2FnZUJyb2tlcik6CiAgICAgZGVmIHJ1bl9tZXNzYWdlX2xvb3Aoc2Vs
Zik6CisgICAgICAgICMgRklYTUU6IFRoaXMgaXMgYSBoYWNrIGZvciB0aGUgbW9tZW50LgogICAg
ICAgICB0aHJlYWQgPSBzZWxmLl90aHJlYWRzKClbMF0KICAgICAgICAgdGhyZWFkLnJ1bl9pbl9t
YWluX3RocmVhZChzZWxmLl90ZXN0X3J1bm5lciwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzZWxmLl90ZXN0X3J1bm5lci5fY3VycmVudF9yZXN1bHRfc3VtbWFyeSkKICAgICAg
ICAgc2VsZi5fdGVzdF9ydW5uZXIudXBkYXRlKCkKIAogCi1jbGFzcyBNdWx0aVRocmVhZGVkQnJv
a2VyKFdvcmtlck1lc3NhZ2VCcm9rZXIpOgotICAgIGRlZiBfc3RhcnRfd29ya2VyKHNlbGYsIHdv
cmtlcl9udW1iZXIsIHdvcmtlcl9uYW1lKToKLSAgICAgICAgdGhyZWFkID0gZHVtcF9yZW5kZXJf
dHJlZV90aHJlYWQuVGVzdFNoZWxsVGhyZWFkKHNlbGYuX3BvcnQsCi0gICAgICAgICAgICBzZWxm
Ll9vcHRpb25zLCB3b3JrZXJfbnVtYmVyLCB3b3JrZXJfbmFtZSwKLSAgICAgICAgICAgIHNlbGYu
X3Rlc3RfcnVubmVyLl9jdXJyZW50X2ZpbGVuYW1lX3F1ZXVlLAotICAgICAgICAgICAgc2VsZi5f
dGVzdF9ydW5uZXIuX3Jlc3VsdF9xdWV1ZSkKK2NsYXNzIF9NdWx0aVRocmVhZGVkQnJva2VyKF9X
b3JrZXJNZXNzYWdlQnJva2VyKToKKyAgICBkZWYgc3RhcnRfd29ya2VyKHNlbGYsIHdvcmtlcl9u
dW1iZXIpOgorICAgICAgICB0aHJlYWQgPSBzdXBlcihfTXVsdGlUaHJlYWRlZEJyb2tlciwgc2Vs
Zikuc3RhcnRfd29ya2VyKHdvcmtlcl9udW1iZXIpCiAgICAgICAgIHRocmVhZC5zdGFydCgpCiAg
ICAgICAgIHJldHVybiB0aHJlYWQKIAogICAgIGRlZiBydW5fbWVzc2FnZV9sb29wKHNlbGYpOgot
ICAgICAgICB0aHJlYWRzID0gc2VsZi5fdGhyZWFkcygpCi0KICAgICAgICAgIyBMb29wIHRocm91
Z2ggYWxsIHRoZSB0aHJlYWRzIHdhaXRpbmcgZm9yIHRoZW0gdG8gZmluaXNoLgogICAgICAgICBz
b21lX3RocmVhZF9pc19hbGl2ZSA9IFRydWUKICAgICAgICAgd2hpbGUgc29tZV90aHJlYWRfaXNf
YWxpdmU6CiAgICAgICAgICAgICBzb21lX3RocmVhZF9pc19hbGl2ZSA9IEZhbHNlCiAgICAgICAg
ICAgICB0ID0gdGltZS50aW1lKCkKLSAgICAgICAgICAgIGZvciB0aHJlYWQgaW4gdGhyZWFkczoK
KyAgICAgICAgICAgIGZvciB0aHJlYWQgaW4gc2VsZi5fdGhyZWFkcygpOgogICAgICAgICAgICAg
ICAgIGV4Y2VwdGlvbl9pbmZvID0gdGhyZWFkLmV4Y2VwdGlvbl9pbmZvKCkKICAgICAgICAgICAg
ICAgICBpZiBleGNlcHRpb25faW5mbyBpcyBub3QgTm9uZToKICAgICAgICAgICAgICAgICAgICAg
IyBSZS1yYWlzZSB0aGUgdGhyZWFkJ3MgZXhjZXB0aW9uIGhlcmUgdG8gbWFrZSBpdApAQCAtMTU2
LDcgKzE0MSw3IEBAIGNsYXNzIE11bHRpVGhyZWFkZWRCcm9rZXIoV29ya2VyTWVzc2FnZUJyb2tl
cik6CiAgICAgICAgICAgICAgICAgICAgIHNvbWVfdGhyZWFkX2lzX2FsaXZlID0gVHJ1ZQogICAg
ICAgICAgICAgICAgICAgICBuZXh0X3RpbWVvdXQgPSB0aHJlYWQubmV4dF90aW1lb3V0KCkKICAg
ICAgICAgICAgICAgICAgICAgaWYgbmV4dF90aW1lb3V0IGFuZCB0ID4gbmV4dF90aW1lb3V0Ogot
ICAgICAgICAgICAgICAgICAgICAgICAgbG9nX3dlZGdlZF93b3JrZXIodGhyZWFkLmdldE5hbWUo
KSwgdGhyZWFkLmlkKCkpCisgICAgICAgICAgICAgICAgICAgICAgICBsb2dfd2VkZ2VkX3dvcmtl
cih0aHJlYWQubmFtZSgpLCB0aHJlYWQuaWQoKSkKICAgICAgICAgICAgICAgICAgICAgICAgIHRo
cmVhZC5jbGVhcl9uZXh0X3RpbWVvdXQoKQogCiAgICAgICAgICAgICBzZWxmLl90ZXN0X3J1bm5l
ci51cGRhdGUoKQpAQCAtMTY1LDggKzE1MCw3IEBAIGNsYXNzIE11bHRpVGhyZWFkZWRCcm9rZXIo
V29ya2VyTWVzc2FnZUJyb2tlcik6CiAgICAgICAgICAgICAgICAgdGltZS5zbGVlcCgwLjAxKQog
CiAgICAgZGVmIGNhbmNlbF93b3JrZXJzKHNlbGYpOgotICAgICAgICB0aHJlYWRzID0gc2VsZi5f
dGhyZWFkcygpCi0gICAgICAgIGZvciB0aHJlYWQgaW4gdGhyZWFkczoKKyAgICAgICAgZm9yIHRo
cmVhZCBpbiBzZWxmLl90aHJlYWRzKCk6CiAgICAgICAgICAgICB0aHJlYWQuY2FuY2VsKCkKIAog
CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9s
YXlvdXRfcGFja2FnZS9tZXNzYWdlX2Jyb2tlcl91bml0dGVzdC5weSBiL1dlYktpdFRvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL21lc3NhZ2VfYnJva2Vy
X3VuaXR0ZXN0LnB5CmluZGV4IDZmMDRmZDM1NTE4YTA0ZWJkNjkxOWZmOGE5NzYxM2NmNGM1YmUx
ZjQuLjE1ZWE3NTllY2ZiZWNiNzkzM2QxZDhkOGVmYzYxMWQzYzhlYmI2ZTQgMTAwNjQ0Ci0tLSBh
L1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdl
L21lc3NhZ2VfYnJva2VyX3VuaXR0ZXN0LnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL21lc3NhZ2VfYnJva2VyX3VuaXR0ZXN0
LnB5CkBAIC00Niw3ICs0Niw3IEBAIGltcG9ydCBtZXNzYWdlX2Jyb2tlcgogY2xhc3MgVGVzdFRo
cmVhZCh0aHJlYWRpbmcuVGhyZWFkKToKICAgICBkZWYgX19pbml0X18oc2VsZiwgc3RhcnRlZF9x
dWV1ZSwgc3RvcHBpbmdfcXVldWUpOgogICAgICAgICB0aHJlYWRpbmcuVGhyZWFkLl9faW5pdF9f
KHNlbGYpCi0gICAgICAgIHNlbGYuX3RocmVhZF9pZCA9IE5vbmUKKyAgICAgICAgc2VsZi5faWQg
PSBOb25lCiAgICAgICAgIHNlbGYuX3N0YXJ0ZWRfcXVldWUgPSBzdGFydGVkX3F1ZXVlCiAgICAg
ICAgIHNlbGYuX3N0b3BwaW5nX3F1ZXVlID0gc3RvcHBpbmdfcXVldWUKICAgICAgICAgc2VsZi5f
dGltZW91dCA9IEZhbHNlCkBAIC01NCwxMCArNTQsMTAgQEAgY2xhc3MgVGVzdFRocmVhZCh0aHJl
YWRpbmcuVGhyZWFkKToKICAgICAgICAgc2VsZi5fZXhjZXB0aW9uX2luZm8gPSBOb25lCiAKICAg
ICBkZWYgaWQoc2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmLl90aHJlYWRfaWQKKyAgICAgICAg
cmV0dXJuIHNlbGYuX2lkCiAKLSAgICBkZWYgZ2V0TmFtZShzZWxmKToKLSAgICAgICAgcmV0dXJu
ICJ3b3JrZXItMCIKKyAgICBkZWYgbmFtZShzZWxmKToKKyAgICAgICAgcmV0dXJuICd3b3JrZXIv
MCcKIAogICAgIGRlZiBydW4oc2VsZik6CiAgICAgICAgIHNlbGYuX2NvdmVyZWRfcnVuKCkKQEAg
LTY1LDcgKzY1LDcgQEAgY2xhc3MgVGVzdFRocmVhZCh0aHJlYWRpbmcuVGhyZWFkKToKICAgICBk
ZWYgX2NvdmVyZWRfcnVuKHNlbGYpOgogICAgICAgICAjIEZJWE1FOiB0aGlzIGlzIGEgc2VwYXJh
dGUgcm91dGluZSB0byB3b3JrIGFyb3VuZCBhIGJ1ZwogICAgICAgICAjIGluIGNvdmVyYWdlOiBz
ZWUgaHR0cDovL2JpdGJ1Y2tldC5vcmcvbmVkL2NvdmVyYWdlcHkvaXNzdWUvODUuCi0gICAgICAg
IHNlbGYuX3RocmVhZF9pZCA9IHRocmVhZC5nZXRfaWRlbnQoKQorICAgICAgICBzZWxmLl9pZCA9
IHRocmVhZC5nZXRfaWRlbnQoKQogICAgICAgICB0cnk6CiAgICAgICAgICAgICBzZWxmLl9zdGFy
dGVkX3F1ZXVlLnB1dCgnJykKICAgICAgICAgICAgIG1zZyA9IHNlbGYuX3N0b3BwaW5nX3F1ZXVl
LmdldCgpCkBAIC0xMTcsMTEgKzExNywxMSBAQCBjbGFzcyBNdWx0aVRocmVhZGVkQnJva2VyVGVz
dCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIG9wdGlvbnMgPSBtb2NrdG9vbC5Nb2NrT3B0
aW9ucyhjaGlsZF9wcm9jZXNzZXM9JzEnKQogICAgICAgICBzdGFydGluZ19xdWV1ZSA9IFF1ZXVl
LlF1ZXVlKCkKICAgICAgICAgc3RvcHBpbmdfcXVldWUgPSBRdWV1ZS5RdWV1ZSgpCi0gICAgICAg
IGJyb2tlciA9IG1lc3NhZ2VfYnJva2VyLk11bHRpVGhyZWFkZWRCcm9rZXIocG9ydCwgb3B0aW9u
cykKKyAgICAgICAgYnJva2VyID0gbWVzc2FnZV9icm9rZXIuX011bHRpVGhyZWFkZWRCcm9rZXIo
cG9ydCwgb3B0aW9ucykKICAgICAgICAgYnJva2VyLl90ZXN0X3J1bm5lciA9IHJ1bm5lcgogICAg
ICAgICBjaGlsZF90aHJlYWQgPSBUZXN0VGhyZWFkKHN0YXJ0aW5nX3F1ZXVlLCBzdG9wcGluZ19x
dWV1ZSkKLSAgICAgICAgYnJva2VyLl93b3JrZXJzWyd3b3JrZXItMCddID0gbWVzc2FnZV9icm9r
ZXIuX1dvcmtlclN0YXRlKCd3b3JrZXItMCcpCi0gICAgICAgIGJyb2tlci5fd29ya2Vyc1snd29y
a2VyLTAnXS50aHJlYWQgPSBjaGlsZF90aHJlYWQKKyAgICAgICAgbmFtZSA9IGNoaWxkX3RocmVh
ZC5uYW1lKCkKKyAgICAgICAgYnJva2VyLl93b3JrZXJzW25hbWVdID0gY2hpbGRfdGhyZWFkCiAg
ICAgICAgIGNoaWxkX3RocmVhZC5zdGFydCgpCiAgICAgICAgIHN0YXJ0ZWRfbXNnID0gc3RhcnRp
bmdfcXVldWUuZ2V0KCkKICAgICAgICAgc3RvcHBpbmdfcXVldWUucHV0KG1zZykKQEAgLTE2OSw3
ICsxNjksNyBAQCBjbGFzcyBUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgY2hpbGRf
dGhyZWFkLnN0YXJ0KCkKICAgICAgICAgbXNnID0gc3RhcnRpbmdfcXVldWUuZ2V0KCkKIAotICAg
ICAgICBtZXNzYWdlX2Jyb2tlci5sb2dfd2VkZ2VkX3dvcmtlcihjaGlsZF90aHJlYWQuZ2V0TmFt
ZSgpLAorICAgICAgICBtZXNzYWdlX2Jyb2tlci5sb2dfd2VkZ2VkX3dvcmtlcihjaGlsZF90aHJl
YWQubmFtZSgpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGls
ZF90aHJlYWQuaWQoKSkKICAgICAgICAgc3RvcHBpbmdfcXVldWUucHV0KCcnKQogICAgICAgICBj
aGlsZF90aHJlYWQuam9pbih0aW1lb3V0PTEuMCkKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHMucHkgYi9XZWJLaXRU
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzLnB5Cmlu
ZGV4IGY0ZTkyYTY4Njk4ZDRiMDY5MDMxZDZiYjFiMzc4ODJkYmFmMWZhZjUuLjQ5NDdhNGM3OWVk
ZGM3NGRjMmEzZWFkNTc3MWRhMmYzMmY0ZWQ5NmUgMTAwNzU1Ci0tLSBhL1dlYktpdFRvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHMucHkKKysrIGIvV2Vi
S2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0cy5w
eQpAQCAtNjAzLDcgKzYwMyw3IEBAIGNsYXNzIFRlc3RSdW5uZXI6CiAgICAgICAgIGlmIG5vdCBz
ZWxmLl9vcHRpb25zLmRyeV9ydW46CiAgICAgICAgICAgICB0aHJlYWRzID0gbWVzc2FnZV9icm9r
ZXIuc3RhcnRfd29ya2VycyhzZWxmKQogICAgICAgICBlbHNlOgotICAgICAgICAgICAgdGhyZWFk
cyA9IHt9CisgICAgICAgICAgICB0aHJlYWRzID0gW10KIAogICAgICAgICBzZWxmLl9wcmludGVy
LnByaW50X3VwZGF0ZSgiU3RhcnRpbmcgdGVzdGluZyAuLi4iKQogICAgICAgICBrZXlib2FyZF9p
bnRlcnJ1cHRlZCA9IEZhbHNlCkBAIC0xNTcwLDggKzE1NzAsOCBAQCBkZWYgcGFyc2VfYXJncyhh
cmdzPU5vbmUpOgogICAgICAgICAgICAgaGVscD0iTnVtYmVyIG9mIER1bXBSZW5kZXJUcmVlcyB0
byBydW4gaW4gcGFyYWxsZWwuIiksCiAgICAgICAgICMgRklYTUU6IERpc3BsYXkgZGVmYXVsdCBu
dW1iZXIgb2YgY2hpbGQgcHJvY2Vzc2VzIHRoYXQgd2lsbCBydW4uCiAgICAgICAgIG9wdHBhcnNl
Lm1ha2Vfb3B0aW9uKCItLXdvcmtlci1tb2RlbCIsIGFjdGlvbj0ic3RvcmUiLAotICAgICAgICAg
ICAgZGVmYXVsdD0idGhyZWFkcyIsIGhlbHA9KCJjb250cm9scyB3b3JrZXIgbW9kZWwuIFZhbGlk
IHZhbHVlcyBhcmUgIgotICAgICAgICAgICAgIidpbmxpbmUnIGFuZCAndGhyZWFkcycgKGRlZmF1
bHQpLiIpKSwKKyAgICAgICAgICAgIGRlZmF1bHQ9InRocmVhZHMiLCBoZWxwPSgiY29udHJvbHMg
d29ya2VyIG1vZGVsLiBWYWxpZCB2YWx1ZXMgIgorICAgICAgICAgICAgImFyZSAnaW5saW5lJyBh
bmQgJ3RocmVhZHMnIChkZWZhdWx0OiAlZGVmYXVsdCkuIikpLAogICAgICAgICBvcHRwYXJzZS5t
YWtlX29wdGlvbigiLS1leHBlcmltZW50YWwtZnVsbHktcGFyYWxsZWwiLAogICAgICAgICAgICAg
YWN0aW9uPSJzdG9yZV90cnVlIiwgZGVmYXVsdD1GYWxzZSwKICAgICAgICAgICAgIGhlbHA9InJ1
biBhbGwgdGVzdHMgaW4gcGFyYWxsZWwiKSwKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHNfdW5pdHRlc3QucHkgYi9X
ZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3Rz
X3VuaXR0ZXN0LnB5CmluZGV4IDZiYjc0MWE1N2M5MWMwYjBlMjY0Y2ZkZTdkNjQxMGNiZjU4Mzk2
NmEuLjEzZjdjNmY1ZDk2NDY4MTY3MDA3YjllYmYxNzVkZDM5MGNlNTIwNDEgMTAwNjQ0Ci0tLSBh
L1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVz
dHNfdW5pdHRlc3QucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvcnVuX3dlYmtpdF90ZXN0c191bml0dGVzdC5weQpAQCAtMTg3LDcgKzE4Nyw4IEBAIGNs
YXNzIE1haW5UZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICBkZWYgdGVzdF9iYXRjaF9zaXpl
KHNlbGYpOgogICAgICAgICBiYXRjaF90ZXN0c19ydW4gPSBnZXRfdGVzdHNfcnVuKFsnLS1iYXRj
aC1zaXplJywgJzInXSkKICAgICAgICAgZm9yIGJhdGNoIGluIGJhdGNoX3Rlc3RzX3J1bjoKLSAg
ICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShsZW4oYmF0Y2gpIDw9IDIsICclcyBoYWQgdG9vIG1h
bnkgdGVzdHMnICUgJywgJy5qb2luKGJhdGNoKSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1
ZShsZW4oYmF0Y2gpIDw9IDIsICclcyBoYWQgdG9vIG1hbnkgdGVzdHMnICUKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAnLCAnLmpvaW4oYmF0Y2gpKQogCiAgICAgZGVmIHRlc3RfY2hpbGRf
cHJvY2Vzc18xKHNlbGYpOgogICAgICAgICAocmVzLCBidWlsZGJvdF9vdXRwdXQsIHJlZ3VsYXJf
b3V0cHV0LCB1c2VyKSA9IGxvZ2dpbmdfcnVuKApAQCAtMjcwLDEzICsyNzEsMTggQEAgY2xhc3Mg
TWFpblRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIGRlZiB0ZXN0X3J1bl9jaHVuayhzZWxm
KToKICAgICAgICAgIyBUZXN0IHRoYXQgd2UgYWN0dWFsbHkgc2VsZWN0IHRoZSByaWdodCBjaHVu
awogICAgICAgICBhbGxfdGVzdHNfcnVuID0gZ2V0X3Rlc3RzX3J1bihmbGF0dGVuX2JhdGNoZXM9
VHJ1ZSkKLSAgICAgICAgY2h1bmtfdGVzdHNfcnVuID0gZ2V0X3Rlc3RzX3J1bihbJy0tcnVuLWNo
dW5rJywgJzE6NCddLCBmbGF0dGVuX2JhdGNoZXM9VHJ1ZSkKKyAgICAgICAgY2h1bmtfdGVzdHNf
cnVuID0gZ2V0X3Rlc3RzX3J1bihbJy0tcnVuLWNodW5rJywgJzE6NCddLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsYXR0ZW5fYmF0Y2hlcz1UcnVlKQogICAgICAg
ICBzZWxmLmFzc2VydEVxdWFscyhhbGxfdGVzdHNfcnVuWzQ6OF0sIGNodW5rX3Rlc3RzX3J1bikK
IAotICAgICAgICAjIFRlc3QgdGhhdCB3ZSB3cmFwIGFyb3VuZCBpZiB0aGUgbnVtYmVyIG9mIHRl
c3RzIGlzIG5vdCBldmVubHkgZGl2aXNpYmxlIGJ5IHRoZSBjaHVuayBzaXplCi0gICAgICAgIHRl
c3RzX3RvX3J1biA9IFsncGFzc2VzL2Vycm9yLmh0bWwnLCAncGFzc2VzL2ltYWdlLmh0bWwnLCAn
cGFzc2VzL3BsYXRmb3JtX2ltYWdlLmh0bWwnLCAncGFzc2VzL3RleHQuaHRtbCddCi0gICAgICAg
IGNodW5rX3Rlc3RzX3J1biA9IGdldF90ZXN0c19ydW4oWyctLXJ1bi1jaHVuaycsICcxOjMnXSAr
IHRlc3RzX3RvX3J1biwgdGVzdHNfaW5jbHVkZWQ9VHJ1ZSwgZmxhdHRlbl9iYXRjaGVzPVRydWUp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKFsncGFzc2VzL3RleHQuaHRtbCcsICdwYXNzZXMv
ZXJyb3IuaHRtbCcsICdwYXNzZXMvaW1hZ2UuaHRtbCddLCBjaHVua190ZXN0c19ydW4pCisgICAg
ICAgICMgVGVzdCB0aGF0IHdlIHdyYXAgYXJvdW5kIGlmIHRoZSBudW1iZXIgb2YgdGVzdHMgaXMg
bm90IGV2ZW5seQorICAgICAgICAjIGRpdmlzaWJsZSBieSB0aGUgY2h1bmsgc2l6ZS4KKyAgICAg
ICAgdGVzdHNfdG9fcnVuID0gWydwYXNzZXMvZXJyb3IuaHRtbCcsICdwYXNzZXMvaW1hZ2UuaHRt
bCcsCisgICAgICAgICAgICAgICAgICAgICAgICAncGFzc2VzL3BsYXRmb3JtX2ltYWdlLmh0bWwn
LCAncGFzc2VzL3RleHQuaHRtbCddCisgICAgICAgIGNodW5rX3Rlc3RzX3J1biA9IGdldF90ZXN0
c19ydW4oWyctLXJ1bi1jaHVuaycsICcxOjMnXSArIHRlc3RzX3RvX3J1biwKKyAgICAgICAgICAg
IHRlc3RzX2luY2x1ZGVkPVRydWUsIGZsYXR0ZW5fYmF0Y2hlcz1UcnVlKQorICAgICAgICBzZWxm
LmFzc2VydEVxdWFscyhbJ3Bhc3Nlcy90ZXh0Lmh0bWwnLCAncGFzc2VzL2Vycm9yLmh0bWwnLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Bhc3Nlcy9pbWFnZS5odG1sJ10sIGNodW5rX3Rl
c3RzX3J1bikKIAogICAgIGRlZiB0ZXN0X3J1bl9mb3JjZShzZWxmKToKICAgICAgICAgIyBUaGlz
IHJhaXNlcyBhbiBleGNlcHRpb24gYmVjYXVzZSB3ZSBydW4KQEAgLTI4NSwyMyArMjkxLDMwIEBA
IGNsYXNzIE1haW5UZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKIAogICAgIGRlZiB0ZXN0X3J1bl9w
YXJ0KHNlbGYpOgogICAgICAgICAjIFRlc3QgdGhhdCB3ZSBhY3R1YWxseSBzZWxlY3QgdGhlIHJp
Z2h0IHBhcnQKLSAgICAgICAgdGVzdHNfdG9fcnVuID0gWydwYXNzZXMvZXJyb3IuaHRtbCcsICdw
YXNzZXMvaW1hZ2UuaHRtbCcsICdwYXNzZXMvcGxhdGZvcm1faW1hZ2UuaHRtbCcsICdwYXNzZXMv
dGV4dC5odG1sJ10KLSAgICAgICAgdGVzdHNfcnVuID0gZ2V0X3Rlc3RzX3J1bihbJy0tcnVuLXBh
cnQnLCAnMToyJ10gKyB0ZXN0c190b19ydW4sIHRlc3RzX2luY2x1ZGVkPVRydWUsIGZsYXR0ZW5f
YmF0Y2hlcz1UcnVlKQorICAgICAgICB0ZXN0c190b19ydW4gPSBbJ3Bhc3Nlcy9lcnJvci5odG1s
JywgJ3Bhc3Nlcy9pbWFnZS5odG1sJywKKyAgICAgICAgICAgICAgICAgICAgICAgICdwYXNzZXMv
cGxhdGZvcm1faW1hZ2UuaHRtbCcsICdwYXNzZXMvdGV4dC5odG1sJ10KKyAgICAgICAgdGVzdHNf
cnVuID0gZ2V0X3Rlc3RzX3J1bihbJy0tcnVuLXBhcnQnLCAnMToyJ10gKyB0ZXN0c190b19ydW4s
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdHNfaW5jbHVkZWQ9VHJ1ZSwg
ZmxhdHRlbl9iYXRjaGVzPVRydWUpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKFsncGFzc2Vz
L2Vycm9yLmh0bWwnLCAncGFzc2VzL2ltYWdlLmh0bWwnXSwgdGVzdHNfcnVuKQogCi0gICAgICAg
ICMgVGVzdCB0aGF0IHdlIHdyYXAgYXJvdW5kIGlmIHRoZSBudW1iZXIgb2YgdGVzdHMgaXMgbm90
IGV2ZW5seSBkaXZpc2libGUgYnkgdGhlIGNodW5rIHNpemUKLSAgICAgICAgIyAoaGVyZSB3ZSBl
bmQgdXAgd2l0aCAzIHBhcnRzLCBlYWNoIHdpdGggMiB0ZXN0cywgYW5kIHdlIG9ubHkgaGF2ZSA0
IHRlc3RzIHRvdGFsLCBzbyB0aGUKKyAgICAgICAgIyBUZXN0IHRoYXQgd2Ugd3JhcCBhcm91bmQg
aWYgdGhlIG51bWJlciBvZiB0ZXN0cyBpcyBub3QgZXZlbmx5CisgICAgICAgICMgZGl2aXNpYmxl
IGJ5IHRoZSBjaHVuayBzaXplIChoZXJlIHdlIGVuZCB1cCB3aXRoIDMgcGFydHMsIGVhY2gKKyAg
ICAgICAgIyB3aXRoIDIgdGVzdHMsIGFuZCB3ZSBvbmx5IGhhdmUgNCB0ZXN0cyB0b3RhbCwgc28g
dGhlCiAgICAgICAgICMgbGFzdCBwYXJ0IHJlcGVhdHMgdGhlIGZpcnN0IHR3byB0ZXN0cykuCi0g
ICAgICAgIGNodW5rX3Rlc3RzX3J1biA9IGdldF90ZXN0c19ydW4oWyctLXJ1bi1wYXJ0JywgJzM6
MyddICsgdGVzdHNfdG9fcnVuLCB0ZXN0c19pbmNsdWRlZD1UcnVlLCBmbGF0dGVuX2JhdGNoZXM9
VHJ1ZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoWydwYXNzZXMvZXJyb3IuaHRtbCcsICdw
YXNzZXMvaW1hZ2UuaHRtbCddLCBjaHVua190ZXN0c19ydW4pCisgICAgICAgIGNodW5rX3Rlc3Rz
X3J1biA9IGdldF90ZXN0c19ydW4oWyctLXJ1bi1wYXJ0JywgJzM6MyddICsgdGVzdHNfdG9fcnVu
LAorICAgICAgICAgICAgdGVzdHNfaW5jbHVkZWQ9VHJ1ZSwgZmxhdHRlbl9iYXRjaGVzPVRydWUp
CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKFsncGFzc2VzL2Vycm9yLmh0bWwnLCAncGFzc2Vz
L2ltYWdlLmh0bWwnXSwKKyAgICAgICAgICAgIGNodW5rX3Rlc3RzX3J1bikKIAogICAgIGRlZiB0
ZXN0X3J1bl9zaW5nbHkoc2VsZik6CiAgICAgICAgIGJhdGNoX3Rlc3RzX3J1biA9IGdldF90ZXN0
c19ydW4oWyctLXJ1bi1zaW5nbHknXSkKICAgICAgICAgZm9yIGJhdGNoIGluIGJhdGNoX3Rlc3Rz
X3J1bjoKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGxlbihiYXRjaCksIDEsICclcyBo
YWQgdG9vIG1hbnkgdGVzdHMnICUgJywgJy5qb2luKGJhdGNoKSkKKyAgICAgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWxzKGxlbihiYXRjaCksIDEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAnJXMgaGFkIHRvbyBtYW55IHRlc3RzJyAlICcsICcuam9pbihiYXRjaCkpCiAKICAgICBkZWYg
dGVzdF9zaW5nbGVfZmlsZShzZWxmKToKLSAgICAgICAgdGVzdHNfcnVuID0gZ2V0X3Rlc3RzX3J1
bihbJ3Bhc3Nlcy90ZXh0Lmh0bWwnXSwgdGVzdHNfaW5jbHVkZWQ9VHJ1ZSwgZmxhdHRlbl9iYXRj
aGVzPVRydWUpCisgICAgICAgIHRlc3RzX3J1biA9IGdldF90ZXN0c19ydW4oWydwYXNzZXMvdGV4
dC5odG1sJ10sIHRlc3RzX2luY2x1ZGVkPVRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZmxhdHRlbl9iYXRjaGVzPVRydWUpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxz
KFsncGFzc2VzL3RleHQuaHRtbCddLCB0ZXN0c19ydW4pCiAKICAgICBkZWYgdGVzdF90ZXN0X2xp
c3Qoc2VsZik6CkBAIC0zMDksNyArMzIyLDggQEAgY2xhc3MgTWFpblRlc3QodW5pdHRlc3QuVGVz
dENhc2UpOgogICAgICAgICB0bXBmaWxlID0gZmlsZShmaWxlbmFtZSwgbW9kZT0ndysnKQogICAg
ICAgICB0bXBmaWxlLndyaXRlKCdwYXNzZXMvdGV4dC5odG1sJykKICAgICAgICAgdG1wZmlsZS5j
bG9zZSgpCi0gICAgICAgIHRlc3RzX3J1biA9IGdldF90ZXN0c19ydW4oWyctLXRlc3QtbGlzdD0l
cycgJSBmaWxlbmFtZV0sIHRlc3RzX2luY2x1ZGVkPVRydWUsIGZsYXR0ZW5fYmF0Y2hlcz1UcnVl
KQorICAgICAgICB0ZXN0c19ydW4gPSBnZXRfdGVzdHNfcnVuKFsnLS10ZXN0LWxpc3Q9JXMnICUg
ZmlsZW5hbWVdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RzX2luY2x1
ZGVkPVRydWUsIGZsYXR0ZW5fYmF0Y2hlcz1UcnVlKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFs
cyhbJ3Bhc3Nlcy90ZXh0Lmh0bWwnXSwgdGVzdHNfcnVuKQogICAgICAgICBvcy5yZW1vdmUoZmls
ZW5hbWUpCiAgICAgICAgIHJlcywgb3V0LCBlcnIsIHVzZXIgPSBsb2dnaW5nX3J1bihbJy0tdGVz
dC1saXN0PSVzJyAlIGZpbGVuYW1lXSwKQEAgLTM3Myw4ICszODcsOCBAQCBjbGFzcyBNYWluVGVz
dCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIHRlc3RfcG9ydCA9IGdldF9wb3J0X2Zvcl9y
dW4oYmFzZV9hcmdzICsgWyctLXRvbGVyYW5jZScsICcwJ10pCiAgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoMCwgdGVzdF9wb3J0LnRvbGVyYW5jZV91c2VkX2Zvcl9kaWZmX2ltYWdlKQogCi0gICAg
ICAgICMgT3RoZXJ3aXNlIHRoZSBwb3J0J3MgZGVmYXVsdCB0b2xlcmFuY2UgYmVoYXZpb3IgKGlu
Y2x1ZGluZyBpZ25vcmluZyBpdCkKLSAgICAgICAgIyBzaG91bGQgYmUgdXNlZC4KKyAgICAgICAg
IyBPdGhlcndpc2UgdGhlIHBvcnQncyBkZWZhdWx0IHRvbGVyYW5jZSBiZWhhdmlvciAoaW5jbHVk
aW5nIGlnbm9yaW5nCisgICAgICAgICMgaXQpIHNob3VsZCBiZSB1c2VkLgogICAgICAgICB0ZXN0
X3BvcnQgPSBnZXRfcG9ydF9mb3JfcnVuKGJhc2VfYXJncykKICAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChOb25lLCB0ZXN0X3BvcnQudG9sZXJhbmNlX3VzZWRfZm9yX2RpZmZfaW1hZ2UpCiAKQEAg
LTQxNCw4ICs0MjgsOCBAQCBjbGFzcyBSZWJhc2VsaW5lVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6
CiAgICAgICAgICAgICBiYXNlbGluZSA9IGZpbGUgKyAiLWV4cGVjdGVkIiArIGV4dAogICAgICAg
ICAgICAgc2VsZi5hc3NlcnRUcnVlKGFueShmLmZpbmQoYmFzZWxpbmUpICE9IC0xIGZvciBmIGlu
IGZpbGVfbGlzdCkpCiAKLSAgICAjIEZJWE1FOiBBZGQgdGVzdHMgdG8gZW5zdXJlIHRoYXQgd2Un
cmUgKm5vdCogd3JpdGluZyBiYXNlbGluZXMgd2hlbiB3ZSdyZSBub3QKLSAgICAjIHN1cHBvc2Vk
IHRvIGJlLgorICAgICMgRklYTUU6IEFkZCB0ZXN0cyB0byBlbnN1cmUgdGhhdCB3ZSdyZSAqbm90
KiB3cml0aW5nIGJhc2VsaW5lcyB3aGVuCisgICAgIyB3ZSdyZSBub3Qgc3VwcG9zZWQgdG8gYmUu
CiAKICAgICBkZWYgZGlzYWJsZWRfdGVzdF9yZXNldF9yZXN1bHRzKHNlbGYpOgogICAgICAgICAj
IEZJWE1FOiBUaGlzIHRlc3QgaXMgZGlzYWJsZWQgdW50aWwgd2UgY2FuIHJld3JpdGUgaXQgdG8g
dXNlIGEKQEAgLTUxOCw5ICs1MzIsMTEgQEAgY2xhc3MgVGVzdFJ1bm5lclRlc3QodW5pdHRlc3Qu
VGVzdENhc2UpOgogICAgICAgICBtdWx0aV90aHJlYWRfcmVzdWx0cyA9IHJ1bm5lci5fc2hhcmRf
dGVzdHModGVzdF9saXN0LCBUcnVlKQogCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoInRlc3Rz
X3RvX2h0dHBfbG9jayIsIHNpbmdsZV90aHJlYWRfcmVzdWx0c1swXVswXSkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChleHBlY3RlZF90ZXN0c190b19odHRwX2xvY2ssIHNldChzaW5nbGVfdGhy
ZWFkX3Jlc3VsdHNbMF1bMV0pKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV4cGVjdGVkX3Rl
c3RzX3RvX2h0dHBfbG9jaywKKyAgICAgICAgICAgICAgICAgICAgICAgICBzZXQoc2luZ2xlX3Ro
cmVhZF9yZXN1bHRzWzBdWzFdKSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgidGVzdHNfdG9f
aHR0cF9sb2NrIiwgbXVsdGlfdGhyZWFkX3Jlc3VsdHNbMF1bMF0pCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoZXhwZWN0ZWRfdGVzdHNfdG9faHR0cF9sb2NrLCBzZXQobXVsdGlfdGhyZWFkX3Jl
c3VsdHNbMF1bMV0pKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV4cGVjdGVkX3Rlc3RzX3Rv
X2h0dHBfbG9jaywKKyAgICAgICAgICAgICAgICAgICAgICAgICBzZXQobXVsdGlfdGhyZWFkX3Jl
c3VsdHNbMF1bMV0pKQogCiAKIGNsYXNzIERyeXJ1blRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>75356</attachid>
            <date>2010-12-01 23:42:14 -0800</date>
            <delta_ts>2010-12-02 12:27:00 -0800</delta_ts>
            <desc>yet more cleanup</desc>
            <filename>bug-50372-20101201234213.patch</filename>
            <type>text/plain</type>
            <size>21577</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCAzZWIzYWNhOTM0MjkyZTY4NzdlNDk5NWZlMGFmYmJkNTBiZWE3ZGViLi5kZjg1NDM3
MTI3YWIzODU0ZWE5YmM5NzdhZWE1ZTgzZjE2OTM1YzRkIDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0yLDYgKzIsMzIgQEAK
IAogICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KIAorICAgICAgICBuZXctcnVu
LXdlYmtpdC10ZXN0czogbWlub3IgY2xlYW51cCBmb3IgbXVsdGlwcm9jZXNzaW5nIHdvcmsKKwor
ICAgICAgICBUaGlzIGNoYW5nZToKKyAgICAgICAgKiBtb3ZlcyB3b3JrZXIgbmFtaW5nIGludG8g
VGVzdFNoZWxsVGhyZWFkLCBlbGltaW5hdGluZyBhCisgICAgICAgICAgcGFyYW1ldGVyIHRvIHRo
ZSBjb25zdHJ1Y3RvciBhbmQgcHV0dGluZyB0aGUgcmVzcG9uc2liaWxpdHkgaW4KKyAgICAgICAg
ICB0aGUgY29ycmVjdCBwbGFjZS4KKyAgICAgICAgKiBlbGltaW5hdGVzIHRoZSBfV29ya2VyU3Rh
dGUoKSBjbGFzcyBpbiBtZXNzYWdlX2Jyb2tlciwgYmVjYXVzZQorICAgICAgICAgIGl0IHR1cm5z
IG91dCB0aGF0IHN0YXRlIHJlYWxseSBuZWVkcyB0byBiZSBpbiBydW5fd2Via2l0X3Rlc3RzCisg
ICAgICAgICogcmVuYW1lcyB0aGUgQnJva2VyIGNsYXNzZXMgdG8gYmUgbW9kdWxlLXByaXZhdGUu
CisgICAgICAgICogZml4ZXMgYSBidW5jaCBvZiBtaW5vciBjb21tZW50aW5nIGFuZCB3aGl0ZXNw
YWNlIGlzc3VlcyB0bworICAgICAgICAgIG1ha2Ugc3Vic2VxdWVudCBwYXRjaGVzIGEgYml0IGNs
ZWFyZXIuCisKKyAgICAgICAgVGhpcyBwYXRjaCBkZXBlbmRzIG9uIGJ1ZyA1MDM2Ny4KKworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTAzNzIKKworICAg
ICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL2R1bXBf
cmVuZGVyX3RyZWVfdGhyZWFkLnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL2xheW91dF9wYWNrYWdlL21lc3NhZ2VfYnJva2VyLnB5OgorICAgICAgICAqIFNjcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL21lc3NhZ2VfYnJva2VyX3Vu
aXR0ZXN0LnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93
ZWJraXRfdGVzdHMucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
cnVuX3dlYmtpdF90ZXN0c191bml0dGVzdC5weToKKworMjAxMC0xMi0wMSAgRGlyayBQcmFua2Ug
IDxkcHJhbmtlQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKwogICAgICAgICBUaGlzIGNoYW5nZSBpcyBhIGJ1bmNoIG9mIGNsZWFudXAgLyByZWZh
Y3RvcmluZyBvZiB0aGUgZmlsZQogICAgICAgICBiZWxvdy4gSXQgbW92ZXMgYSBidW5jaCBvZiBm
cmVlIGZ1bmN0aW9ucyB0byBtZXRob2RzIG9uIHRoZQogICAgICAgICBUZXN0U2hlbGxUaHJlYWQg
Y2xhc3MsIGFuZCByZXN0cnVjdHVyZXMgb3RoZXIgbWV0aG9kcyB0byBiZQpkaWZmIC0tZ2l0IGEv
V2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2Uv
ZHVtcF9yZW5kZXJfdHJlZV90aHJlYWQucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9kdW1wX3JlbmRlcl90cmVlX3RocmVhZC5weQpp
bmRleCBjNjhjYTU0Mjc0NjljOTY2YjgwNjgyNjA2ZGQ3NjEyNTFjNjkzMWM4Li5kMDhlYTBjZTFj
YzE5NDQ5OTRmZDBkMGVlYjAyYjkyMzdmYThjMDg1IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9kdW1wX3JlbmRlcl90
cmVlX3RocmVhZC5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9sYXlvdXRfcGFja2FnZS9kdW1wX3JlbmRlcl90cmVlX3RocmVhZC5weQpAQCAtOTgsNyAr
OTgsNyBAQCBjbGFzcyBXYXRjaGFibGVUaHJlYWQodGhyZWFkaW5nLlRocmVhZCk6CiAKIAogY2xh
c3MgVGVzdFNoZWxsVGhyZWFkKFdhdGNoYWJsZVRocmVhZCk6Ci0gICAgZGVmIF9faW5pdF9fKHNl
bGYsIHBvcnQsIG9wdGlvbnMsIHdvcmtlcl9udW1iZXIsIHdvcmtlcl9uYW1lLAorICAgIGRlZiBf
X2luaXRfXyhzZWxmLCBwb3J0LCBvcHRpb25zLCB3b3JrZXJfbnVtYmVyLAogICAgICAgICAgICAg
ICAgICBmaWxlbmFtZV9saXN0X3F1ZXVlLCByZXN1bHRfcXVldWUpOgogICAgICAgICAiIiJJbml0
aWFsaXplIGFsbCB0aGUgbG9jYWwgc3RhdGUgZm9yIHRoaXMgRHVtcFJlbmRlclRyZWUgdGhyZWFk
LgogCkBAIC0xMDYsNyArMTA2LDYgQEAgY2xhc3MgVGVzdFNoZWxsVGhyZWFkKFdhdGNoYWJsZVRo
cmVhZCk6CiAgICAgICAgICAgcG9ydDogaW50ZXJmYWNlIHRvIHBvcnQtc3BlY2lmaWMgaG9va3MK
ICAgICAgICAgICBvcHRpb25zOiBjb21tYW5kIGxpbmUgb3B0aW9ucyBhcmd1bWVudCBmcm9tIG9w
dHBhcnNlCiAgICAgICAgICAgd29ya2VyX251bWJlcjogaWRlbnRpZmllciBmb3IgYSBwYXJ0aWN1
bGFyIHdvcmtlciB0aHJlYWQuCi0gICAgICAgICAgd29ya2VyX25hbWU6IGZvciBsb2dnaW5nLgog
ICAgICAgICAgIGZpbGVuYW1lX2xpc3RfcXVldWU6IEEgdGhyZWFkIHNhZmUgUXVldWUgY2xhc3Mg
dGhhdCBjb250YWlucyBsaXN0cwogICAgICAgICAgICAgICBvZiB0dXBsZXMgb2YgKGZpbGVuYW1l
LCB1cmkpIHBhaXJzLgogICAgICAgICAgIHJlc3VsdF9xdWV1ZTogQSB0aHJlYWQgc2FmZSBRdWV1
ZSBjbGFzcyB0aGF0IHdpbGwgY29udGFpbgpAQCAtMTE2LDcgKzExNSw3IEBAIGNsYXNzIFRlc3RT
aGVsbFRocmVhZChXYXRjaGFibGVUaHJlYWQpOgogICAgICAgICBzZWxmLl9wb3J0ID0gcG9ydAog
ICAgICAgICBzZWxmLl9vcHRpb25zID0gb3B0aW9ucwogICAgICAgICBzZWxmLl93b3JrZXJfbnVt
YmVyID0gd29ya2VyX251bWJlcgotICAgICAgICBzZWxmLl9uYW1lID0gd29ya2VyX25hbWUKKyAg
ICAgICAgc2VsZi5fbmFtZSA9ICd3b3JrZXIvJWQnICUgd29ya2VyX251bWJlcgogICAgICAgICBz
ZWxmLl9maWxlbmFtZV9saXN0X3F1ZXVlID0gZmlsZW5hbWVfbGlzdF9xdWV1ZQogICAgICAgICBz
ZWxmLl9yZXN1bHRfcXVldWUgPSByZXN1bHRfcXVldWUKIApAQCAtMTgxLDYgKzE4MCw5IEBAIGNs
YXNzIFRlc3RTaGVsbFRocmVhZChXYXRjaGFibGVUaHJlYWQpOgogICAgIGRlZiBnZXRfbnVtX3Rl
c3RzKHNlbGYpOgogICAgICAgICByZXR1cm4gc2VsZi5fbnVtX3Rlc3RzCiAKKyAgICBkZWYgbmFt
ZShzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX25hbWUKKwogICAgIGRlZiBuZXh0X3RpbWVv
dXQoc2VsZik6CiAgICAgICAgICIiIlJldHVybiB0aGUgdGltZSB0aGUgdGVzdCBpcyBzdXBwb3Nl
ZCB0byBmaW5pc2ggYnkuIiIiCiAgICAgICAgIGlmIHNlbGYuX25leHRfdGltZW91dDoKZGlmZiAt
LWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9w
YWNrYWdlL21lc3NhZ2VfYnJva2VyLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvbWVzc2FnZV9icm9rZXIucHkKaW5kZXggZTUyMGE5
Y2FhNmI3NjgyZWJmZGQyYTk4YmIyMTdlYjg1ZDcyNTFiYy4uYzA2ZWU0ZThmYmQ4MmFmYTJiYWE0
ZjFhYzkwNjdkOGFhZmFiYWU1YyAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvbWVzc2FnZV9icm9rZXIucHkKKysrIGIv
V2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2Uv
bWVzc2FnZV9icm9rZXIucHkKQEAgLTI2LDcgKzI2LDcgQEAKICMgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiAjIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCiAKLSIiIk1vZHVsZSBmb3IgaGFuZGxpbmcgbWVzc2FnZXMsIHRocmVhZHMsIHBy
b2Nlc3NlcywgYW5kIGNvbmN1cnJlbmN5IGZvciBydW4td2Via2l0LXRlc3RzLgorIiIiTW9kdWxl
IGZvciBoYW5kbGluZyBtZXNzYWdlcyBhbmQgY29uY3VycmVuY3kgZm9yIHJ1bi13ZWJraXQtdGVz
dHMuCiAKIFRlc3RpbmcgaXMgYWNjb21wbGlzaGVkIGJ5IGhhdmluZyBhIG1hbmFnZXIgKFRlc3RS
dW5uZXIpIGdhdGhlciBhbGwgb2YgdGhlCiB0ZXN0cyB0byBiZSBydW4sIGFuZCBzZW5kaW5nIG1l
c3NhZ2VzIHRvIGEgcG9vbCBvZiB3b3JrZXJzIChUZXN0U2hlbGxUaHJlYWRzKQpAQCAtNTQsMjkg
KzU0LDIwIEBAIGRlZiBnZXQocG9ydCwgb3B0aW9ucyk6CiAgICAgIiIiUmV0dXJuIGFuIGluc3Rh
bmNlIG9mIGEgV29ya2VyTWVzc2FnZUJyb2tlci4iIiIKICAgICB3b3JrZXJfbW9kZWwgPSBvcHRp
b25zLndvcmtlcl9tb2RlbAogICAgIGlmIHdvcmtlcl9tb2RlbCA9PSAnaW5saW5lJzoKLSAgICAg
ICAgcmV0dXJuIElubGluZUJyb2tlcihwb3J0LCBvcHRpb25zKQorICAgICAgICByZXR1cm4gX0lu
bGluZUJyb2tlcihwb3J0LCBvcHRpb25zKQogICAgIGlmIHdvcmtlcl9tb2RlbCA9PSAndGhyZWFk
cyc6Ci0gICAgICAgIHJldHVybiBNdWx0aVRocmVhZGVkQnJva2VyKHBvcnQsIG9wdGlvbnMpCisg
ICAgICAgIHJldHVybiBfTXVsdGlUaHJlYWRlZEJyb2tlcihwb3J0LCBvcHRpb25zKQogICAgIHJh
aXNlIFZhbHVlRXJyb3IoJ3Vuc3VwcG9ydGVkIHZhbHVlIGZvciAtLXdvcmtlci1tb2RlbDogJXMn
ICUgd29ya2VyX21vZGVsKQogCiAKLWNsYXNzIF9Xb3JrZXJTdGF0ZShvYmplY3QpOgotICAgIGRl
ZiBfX2luaXRfXyhzZWxmLCBuYW1lKToKLSAgICAgICAgc2VsZi5uYW1lID0gbmFtZQotICAgICAg
ICBzZWxmLnRocmVhZCA9IE5vbmUKLQotCi1jbGFzcyBXb3JrZXJNZXNzYWdlQnJva2VyKG9iamVj
dCk6CitjbGFzcyBfV29ya2VyTWVzc2FnZUJyb2tlcihvYmplY3QpOgogICAgIGRlZiBfX2luaXRf
XyhzZWxmLCBwb3J0LCBvcHRpb25zKToKICAgICAgICAgc2VsZi5fcG9ydCA9IHBvcnQKICAgICAg
ICAgc2VsZi5fb3B0aW9ucyA9IG9wdGlvbnMKICAgICAgICAgc2VsZi5fbnVtX3dvcmtlcnMgPSBp
bnQoc2VsZi5fb3B0aW9ucy5jaGlsZF9wcm9jZXNzZXMpCiAKLSAgICAgICAgIyBUaGlzIG1hcHMg
d29ya2VyIG5hbWVzIHRvIHRoZWlyIF9Xb3JrZXJTdGF0ZSB2YWx1ZXMuCi0gICAgICAgIHNlbGYu
X3dvcmtlcnMgPSB7fQotCi0gICAgZGVmIF90aHJlYWRzKHNlbGYpOgotICAgICAgICByZXR1cm4g
dHVwbGUoW3cudGhyZWFkIGZvciB3IGluIHNlbGYuX3dvcmtlcnMudmFsdWVzKCldKQorICAgICAg
ICAjIFRoaXMgbWFwcyB3b3JrZXIgbmFtZXMgdG8gdGhlaXIgVGVzdFNoZWxsVGhyZWFkIG9iamVj
dHMuCisgICAgICAgIHNlbGYuX3RocmVhZHMgPSB7fQogCiAgICAgZGVmIHN0YXJ0X3dvcmtlcnMo
c2VsZiwgdGVzdF9ydW5uZXIpOgogICAgICAgICAiIiJTdGFydHMgdXAgdGhlIHBvb2wgb2Ygd29y
a2VycyBmb3IgcnVubmluZyB0aGUgdGVzdHMuCkBAIC04NiwxMyArNzcsMTkgQEAgY2xhc3MgV29y
a2VyTWVzc2FnZUJyb2tlcihvYmplY3QpOgogICAgICAgICAiIiIKICAgICAgICAgc2VsZi5fdGVz
dF9ydW5uZXIgPSB0ZXN0X3J1bm5lcgogICAgICAgICBmb3Igd29ya2VyX251bWJlciBpbiB4cmFu
Z2Uoc2VsZi5fbnVtX3dvcmtlcnMpOgotICAgICAgICAgICAgd29ya2VyID0gX1dvcmtlclN0YXRl
KCd3b3JrZXItJWQnICUgd29ya2VyX251bWJlcikKLSAgICAgICAgICAgIHdvcmtlci50aHJlYWQg
PSBzZWxmLl9zdGFydF93b3JrZXIod29ya2VyX251bWJlciwgd29ya2VyLm5hbWUpCi0gICAgICAg
ICAgICBzZWxmLl93b3JrZXJzW3dvcmtlci5uYW1lXSA9IHdvcmtlcgotICAgICAgICByZXR1cm4g
c2VsZi5fdGhyZWFkcygpCisgICAgICAgICAgICB0aHJlYWQgPSBzZWxmLnN0YXJ0X3dvcmtlcih3
b3JrZXJfbnVtYmVyKQorICAgICAgICAgICAgc2VsZi5fdGhyZWFkc1t0aHJlYWQubmFtZSgpXSA9
IHRocmVhZAorICAgICAgICByZXR1cm4gc2VsZi5fdGhyZWFkcy52YWx1ZXMoKQogCi0gICAgZGVm
IF9zdGFydF93b3JrZXIoc2VsZiwgd29ya2VyX251bWJlciwgd29ya2VyX25hbWUpOgotICAgICAg
ICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yCisgICAgZGVmIHN0YXJ0X3dvcmtlcihzZWxmLCB3
b3JrZXJfbnVtYmVyKToKKyAgICAgICAgIyBGSVhNRTogUmVwbGFjZSB3aXRoIHNvbWV0aGluZyB0
aGF0IGlzbid0IGEgdGhyZWFkLgorICAgICAgICAjIE5vdGU6IERvbid0IHN0YXJ0KCkgdGhlIHRo
cmVhZCEgSWYgd2UgZGlkLCBpdCB3b3VsZCBhY3R1YWxseQorICAgICAgICAjIGNyZWF0ZSBhbm90
aGVyIHRocmVhZCBhbmQgc3RhcnQgZXhlY3V0aW5nIGl0LCBhbmQgd2UnZCBubyBsb25nZXIKKyAg
ICAgICAgIyBiZSBzaW5nbGUtdGhyZWFkZWQuCisgICAgICAgIHJldHVybiBkdW1wX3JlbmRlcl90
cmVlX3RocmVhZC5UZXN0U2hlbGxUaHJlYWQoc2VsZi5fcG9ydCwKKyAgICAgICAgICAgIHNlbGYu
X29wdGlvbnMsIHdvcmtlcl9udW1iZXIsCisgICAgICAgICAgICBzZWxmLl90ZXN0X3J1bm5lci5f
Y3VycmVudF9maWxlbmFtZV9xdWV1ZSwKKyAgICAgICAgICAgIHNlbGYuX3Rlc3RfcnVubmVyLl9y
ZXN1bHRfcXVldWUpCiAKICAgICBkZWYgcnVuX21lc3NhZ2VfbG9vcChzZWxmKToKICAgICAgICAg
IiIiTG9vcCBwcm9jZXNzaW5nIG1lc3NhZ2VzIHVudGlsIGRvbmUuIiIiCkBAIC0xMDcsNDMgKzEw
NCwyNyBAQCBjbGFzcyBXb3JrZXJNZXNzYWdlQnJva2VyKG9iamVjdCk6CiAgICAgICAgIHBhc3MK
IAogCi1jbGFzcyBJbmxpbmVCcm9rZXIoV29ya2VyTWVzc2FnZUJyb2tlcik6Ci0gICAgZGVmIF9z
dGFydF93b3JrZXIoc2VsZiwgd29ya2VyX251bWJlciwgd29ya2VyX25hbWUpOgotICAgICAgICAj
IEZJWE1FOiBSZXBsYWNlIHdpdGggc29tZXRoaW5nIHRoYXQgaXNuJ3QgYSB0aHJlYWQuCi0gICAg
ICAgIHRocmVhZCA9IGR1bXBfcmVuZGVyX3RyZWVfdGhyZWFkLlRlc3RTaGVsbFRocmVhZChzZWxm
Ll9wb3J0LAotICAgICAgICAgICAgc2VsZi5fb3B0aW9ucywgd29ya2VyX251bWJlciwgd29ya2Vy
X25hbWUsCi0gICAgICAgICAgICBzZWxmLl90ZXN0X3J1bm5lci5fY3VycmVudF9maWxlbmFtZV9x
dWV1ZSwKLSAgICAgICAgICAgIHNlbGYuX3Rlc3RfcnVubmVyLl9yZXN1bHRfcXVldWUpCi0gICAg
ICAgICMgTm90ZTogRG9uJ3Qgc3RhcnQoKSB0aGUgdGhyZWFkISBJZiB3ZSBkaWQsIGl0IHdvdWxk
IGFjdHVhbGx5Ci0gICAgICAgICMgY3JlYXRlIGFub3RoZXIgdGhyZWFkIGFuZCBzdGFydCBleGVj
dXRpbmcgaXQsIGFuZCB3ZSdkIG5vIGxvbmdlcgotICAgICAgICAjIGJlIHNpbmdsZS10aHJlYWRl
ZC4KLSAgICAgICAgcmV0dXJuIHRocmVhZAotCitjbGFzcyBfSW5saW5lQnJva2VyKF9Xb3JrZXJN
ZXNzYWdlQnJva2VyKToKICAgICBkZWYgcnVuX21lc3NhZ2VfbG9vcChzZWxmKToKLSAgICAgICAg
dGhyZWFkID0gc2VsZi5fdGhyZWFkcygpWzBdCisgICAgICAgIHRocmVhZCA9IHNlbGYuX3RocmVh
ZHMudmFsdWVzKClbMF0KICAgICAgICAgdGhyZWFkLnJ1bl9pbl9tYWluX3RocmVhZChzZWxmLl90
ZXN0X3J1bm5lciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl90ZXN0
X3J1bm5lci5fY3VycmVudF9yZXN1bHRfc3VtbWFyeSkKICAgICAgICAgc2VsZi5fdGVzdF9ydW5u
ZXIudXBkYXRlKCkKIAogCi1jbGFzcyBNdWx0aVRocmVhZGVkQnJva2VyKFdvcmtlck1lc3NhZ2VC
cm9rZXIpOgotICAgIGRlZiBfc3RhcnRfd29ya2VyKHNlbGYsIHdvcmtlcl9udW1iZXIsIHdvcmtl
cl9uYW1lKToKLSAgICAgICAgdGhyZWFkID0gZHVtcF9yZW5kZXJfdHJlZV90aHJlYWQuVGVzdFNo
ZWxsVGhyZWFkKHNlbGYuX3BvcnQsCi0gICAgICAgICAgICBzZWxmLl9vcHRpb25zLCB3b3JrZXJf
bnVtYmVyLCB3b3JrZXJfbmFtZSwKLSAgICAgICAgICAgIHNlbGYuX3Rlc3RfcnVubmVyLl9jdXJy
ZW50X2ZpbGVuYW1lX3F1ZXVlLAotICAgICAgICAgICAgc2VsZi5fdGVzdF9ydW5uZXIuX3Jlc3Vs
dF9xdWV1ZSkKK2NsYXNzIF9NdWx0aVRocmVhZGVkQnJva2VyKF9Xb3JrZXJNZXNzYWdlQnJva2Vy
KToKKyAgICBkZWYgc3RhcnRfd29ya2VyKHNlbGYsIHdvcmtlcl9udW1iZXIpOgorICAgICAgICB0
aHJlYWQgPSBzdXBlcihfTXVsdGlUaHJlYWRlZEJyb2tlciwgc2VsZikuc3RhcnRfd29ya2VyKHdv
cmtlcl9udW1iZXIpCiAgICAgICAgIHRocmVhZC5zdGFydCgpCiAgICAgICAgIHJldHVybiB0aHJl
YWQKIAogICAgIGRlZiBydW5fbWVzc2FnZV9sb29wKHNlbGYpOgotICAgICAgICB0aHJlYWRzID0g
c2VsZi5fdGhyZWFkcygpCi0KICAgICAgICAgIyBMb29wIHRocm91Z2ggYWxsIHRoZSB0aHJlYWRz
IHdhaXRpbmcgZm9yIHRoZW0gdG8gZmluaXNoLgogICAgICAgICBzb21lX3RocmVhZF9pc19hbGl2
ZSA9IFRydWUKICAgICAgICAgd2hpbGUgc29tZV90aHJlYWRfaXNfYWxpdmU6CiAgICAgICAgICAg
ICBzb21lX3RocmVhZF9pc19hbGl2ZSA9IEZhbHNlCiAgICAgICAgICAgICB0ID0gdGltZS50aW1l
KCkKLSAgICAgICAgICAgIGZvciB0aHJlYWQgaW4gdGhyZWFkczoKKyAgICAgICAgICAgIGZvciB0
aHJlYWQgaW4gc2VsZi5fdGhyZWFkcy52YWx1ZXMoKToKICAgICAgICAgICAgICAgICBleGNlcHRp
b25faW5mbyA9IHRocmVhZC5leGNlcHRpb25faW5mbygpCiAgICAgICAgICAgICAgICAgaWYgZXhj
ZXB0aW9uX2luZm8gaXMgbm90IE5vbmU6CiAgICAgICAgICAgICAgICAgICAgICMgUmUtcmFpc2Ug
dGhlIHRocmVhZCdzIGV4Y2VwdGlvbiBoZXJlIHRvIG1ha2UgaXQKQEAgLTE1Niw3ICsxMzcsNyBA
QCBjbGFzcyBNdWx0aVRocmVhZGVkQnJva2VyKFdvcmtlck1lc3NhZ2VCcm9rZXIpOgogICAgICAg
ICAgICAgICAgICAgICBzb21lX3RocmVhZF9pc19hbGl2ZSA9IFRydWUKICAgICAgICAgICAgICAg
ICAgICAgbmV4dF90aW1lb3V0ID0gdGhyZWFkLm5leHRfdGltZW91dCgpCiAgICAgICAgICAgICAg
ICAgICAgIGlmIG5leHRfdGltZW91dCBhbmQgdCA+IG5leHRfdGltZW91dDoKLSAgICAgICAgICAg
ICAgICAgICAgICAgIGxvZ193ZWRnZWRfd29ya2VyKHRocmVhZC5nZXROYW1lKCksIHRocmVhZC5p
ZCgpKQorICAgICAgICAgICAgICAgICAgICAgICAgbG9nX3dlZGdlZF93b3JrZXIodGhyZWFkLm5h
bWUoKSwgdGhyZWFkLmlkKCkpCiAgICAgICAgICAgICAgICAgICAgICAgICB0aHJlYWQuY2xlYXJf
bmV4dF90aW1lb3V0KCkKIAogICAgICAgICAgICAgc2VsZi5fdGVzdF9ydW5uZXIudXBkYXRlKCkK
QEAgLTE2NSw4ICsxNDYsNyBAQCBjbGFzcyBNdWx0aVRocmVhZGVkQnJva2VyKFdvcmtlck1lc3Nh
Z2VCcm9rZXIpOgogICAgICAgICAgICAgICAgIHRpbWUuc2xlZXAoMC4wMSkKIAogICAgIGRlZiBj
YW5jZWxfd29ya2VycyhzZWxmKToKLSAgICAgICAgdGhyZWFkcyA9IHNlbGYuX3RocmVhZHMoKQot
ICAgICAgICBmb3IgdGhyZWFkIGluIHRocmVhZHM6CisgICAgICAgIGZvciB0aHJlYWQgaW4gc2Vs
Zi5fdGhyZWFkcy52YWx1ZXMoKToKICAgICAgICAgICAgIHRocmVhZC5jYW5jZWwoKQogCiAKZGlm
ZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91
dF9wYWNrYWdlL21lc3NhZ2VfYnJva2VyX3VuaXR0ZXN0LnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvbWVzc2FnZV9icm9rZXJfdW5p
dHRlc3QucHkKaW5kZXggNmYwNGZkMzU1MThhMDRlYmQ2OTE5ZmY4YTk3NjEzY2Y0YzViZTFmNC4u
YzAwNjQ3MWU0YTlmYjI1ZmUxYzY4MDk0NTc2ZjMyY2U1MTgxZjVkOSAxMDA2NDQKLS0tIGEvV2Vi
S2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvbWVz
c2FnZV9icm9rZXJfdW5pdHRlc3QucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvbWVzc2FnZV9icm9rZXJfdW5pdHRlc3QucHkK
QEAgLTQ2LDcgKzQ2LDcgQEAgaW1wb3J0IG1lc3NhZ2VfYnJva2VyCiBjbGFzcyBUZXN0VGhyZWFk
KHRocmVhZGluZy5UaHJlYWQpOgogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBzdGFydGVkX3F1ZXVl
LCBzdG9wcGluZ19xdWV1ZSk6CiAgICAgICAgIHRocmVhZGluZy5UaHJlYWQuX19pbml0X18oc2Vs
ZikKLSAgICAgICAgc2VsZi5fdGhyZWFkX2lkID0gTm9uZQorICAgICAgICBzZWxmLl9pZCA9IE5v
bmUKICAgICAgICAgc2VsZi5fc3RhcnRlZF9xdWV1ZSA9IHN0YXJ0ZWRfcXVldWUKICAgICAgICAg
c2VsZi5fc3RvcHBpbmdfcXVldWUgPSBzdG9wcGluZ19xdWV1ZQogICAgICAgICBzZWxmLl90aW1l
b3V0ID0gRmFsc2UKQEAgLTU0LDEwICs1NCwxMCBAQCBjbGFzcyBUZXN0VGhyZWFkKHRocmVhZGlu
Zy5UaHJlYWQpOgogICAgICAgICBzZWxmLl9leGNlcHRpb25faW5mbyA9IE5vbmUKIAogICAgIGRl
ZiBpZChzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYuX3RocmVhZF9pZAorICAgICAgICByZXR1
cm4gc2VsZi5faWQKIAotICAgIGRlZiBnZXROYW1lKHNlbGYpOgotICAgICAgICByZXR1cm4gIndv
cmtlci0wIgorICAgIGRlZiBuYW1lKHNlbGYpOgorICAgICAgICByZXR1cm4gJ3dvcmtlci8wJwog
CiAgICAgZGVmIHJ1bihzZWxmKToKICAgICAgICAgc2VsZi5fY292ZXJlZF9ydW4oKQpAQCAtNjUs
NyArNjUsNyBAQCBjbGFzcyBUZXN0VGhyZWFkKHRocmVhZGluZy5UaHJlYWQpOgogICAgIGRlZiBf
Y292ZXJlZF9ydW4oc2VsZik6CiAgICAgICAgICMgRklYTUU6IHRoaXMgaXMgYSBzZXBhcmF0ZSBy
b3V0aW5lIHRvIHdvcmsgYXJvdW5kIGEgYnVnCiAgICAgICAgICMgaW4gY292ZXJhZ2U6IHNlZSBo
dHRwOi8vYml0YnVja2V0Lm9yZy9uZWQvY292ZXJhZ2VweS9pc3N1ZS84NS4KLSAgICAgICAgc2Vs
Zi5fdGhyZWFkX2lkID0gdGhyZWFkLmdldF9pZGVudCgpCisgICAgICAgIHNlbGYuX2lkID0gdGhy
ZWFkLmdldF9pZGVudCgpCiAgICAgICAgIHRyeToKICAgICAgICAgICAgIHNlbGYuX3N0YXJ0ZWRf
cXVldWUucHV0KCcnKQogICAgICAgICAgICAgbXNnID0gc2VsZi5fc3RvcHBpbmdfcXVldWUuZ2V0
KCkKQEAgLTExNywxMSArMTE3LDExIEBAIGNsYXNzIE11bHRpVGhyZWFkZWRCcm9rZXJUZXN0KHVu
aXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgb3B0aW9ucyA9IG1vY2t0b29sLk1vY2tPcHRpb25z
KGNoaWxkX3Byb2Nlc3Nlcz0nMScpCiAgICAgICAgIHN0YXJ0aW5nX3F1ZXVlID0gUXVldWUuUXVl
dWUoKQogICAgICAgICBzdG9wcGluZ19xdWV1ZSA9IFF1ZXVlLlF1ZXVlKCkKLSAgICAgICAgYnJv
a2VyID0gbWVzc2FnZV9icm9rZXIuTXVsdGlUaHJlYWRlZEJyb2tlcihwb3J0LCBvcHRpb25zKQor
ICAgICAgICBicm9rZXIgPSBtZXNzYWdlX2Jyb2tlci5fTXVsdGlUaHJlYWRlZEJyb2tlcihwb3J0
LCBvcHRpb25zKQogICAgICAgICBicm9rZXIuX3Rlc3RfcnVubmVyID0gcnVubmVyCiAgICAgICAg
IGNoaWxkX3RocmVhZCA9IFRlc3RUaHJlYWQoc3RhcnRpbmdfcXVldWUsIHN0b3BwaW5nX3F1ZXVl
KQotICAgICAgICBicm9rZXIuX3dvcmtlcnNbJ3dvcmtlci0wJ10gPSBtZXNzYWdlX2Jyb2tlci5f
V29ya2VyU3RhdGUoJ3dvcmtlci0wJykKLSAgICAgICAgYnJva2VyLl93b3JrZXJzWyd3b3JrZXIt
MCddLnRocmVhZCA9IGNoaWxkX3RocmVhZAorICAgICAgICBuYW1lID0gY2hpbGRfdGhyZWFkLm5h
bWUoKQorICAgICAgICBicm9rZXIuX3RocmVhZHNbbmFtZV0gPSBjaGlsZF90aHJlYWQKICAgICAg
ICAgY2hpbGRfdGhyZWFkLnN0YXJ0KCkKICAgICAgICAgc3RhcnRlZF9tc2cgPSBzdGFydGluZ19x
dWV1ZS5nZXQoKQogICAgICAgICBzdG9wcGluZ19xdWV1ZS5wdXQobXNnKQpAQCAtMTY5LDcgKzE2
OSw3IEBAIGNsYXNzIFRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBjaGlsZF90aHJl
YWQuc3RhcnQoKQogICAgICAgICBtc2cgPSBzdGFydGluZ19xdWV1ZS5nZXQoKQogCi0gICAgICAg
IG1lc3NhZ2VfYnJva2VyLmxvZ193ZWRnZWRfd29ya2VyKGNoaWxkX3RocmVhZC5nZXROYW1lKCks
CisgICAgICAgIG1lc3NhZ2VfYnJva2VyLmxvZ193ZWRnZWRfd29ya2VyKGNoaWxkX3RocmVhZC5u
YW1lKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkX3Ro
cmVhZC5pZCgpKQogICAgICAgICBzdG9wcGluZ19xdWV1ZS5wdXQoJycpCiAgICAgICAgIGNoaWxk
X3RocmVhZC5qb2luKHRpbWVvdXQ9MS4wKQpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0cy5weSBiL1dlYktpdFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHMucHkKaW5kZXgg
ZjRlOTJhNjg2OThkNGIwNjkwMzFkNmJiMWIzNzg4MmRiYWYxZmFmNS4uNDk0N2E0Yzc5ZWRkYzc0
ZGMyYTNlYWQ1NzcxZGEyZjMyZjRlZDk2ZSAxMDA3NTUKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0cy5weQorKysgYi9XZWJLaXRU
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzLnB5CkBA
IC02MDMsNyArNjAzLDcgQEAgY2xhc3MgVGVzdFJ1bm5lcjoKICAgICAgICAgaWYgbm90IHNlbGYu
X29wdGlvbnMuZHJ5X3J1bjoKICAgICAgICAgICAgIHRocmVhZHMgPSBtZXNzYWdlX2Jyb2tlci5z
dGFydF93b3JrZXJzKHNlbGYpCiAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICB0aHJlYWRzID0g
e30KKyAgICAgICAgICAgIHRocmVhZHMgPSBbXQogCiAgICAgICAgIHNlbGYuX3ByaW50ZXIucHJp
bnRfdXBkYXRlKCJTdGFydGluZyB0ZXN0aW5nIC4uLiIpCiAgICAgICAgIGtleWJvYXJkX2ludGVy
cnVwdGVkID0gRmFsc2UKQEAgLTE1NzAsOCArMTU3MCw4IEBAIGRlZiBwYXJzZV9hcmdzKGFyZ3M9
Tm9uZSk6CiAgICAgICAgICAgICBoZWxwPSJOdW1iZXIgb2YgRHVtcFJlbmRlclRyZWVzIHRvIHJ1
biBpbiBwYXJhbGxlbC4iKSwKICAgICAgICAgIyBGSVhNRTogRGlzcGxheSBkZWZhdWx0IG51bWJl
ciBvZiBjaGlsZCBwcm9jZXNzZXMgdGhhdCB3aWxsIHJ1bi4KICAgICAgICAgb3B0cGFyc2UubWFr
ZV9vcHRpb24oIi0td29ya2VyLW1vZGVsIiwgYWN0aW9uPSJzdG9yZSIsCi0gICAgICAgICAgICBk
ZWZhdWx0PSJ0aHJlYWRzIiwgaGVscD0oImNvbnRyb2xzIHdvcmtlciBtb2RlbC4gVmFsaWQgdmFs
dWVzIGFyZSAiCi0gICAgICAgICAgICAiJ2lubGluZScgYW5kICd0aHJlYWRzJyAoZGVmYXVsdCku
IikpLAorICAgICAgICAgICAgZGVmYXVsdD0idGhyZWFkcyIsIGhlbHA9KCJjb250cm9scyB3b3Jr
ZXIgbW9kZWwuIFZhbGlkIHZhbHVlcyAiCisgICAgICAgICAgICAiYXJlICdpbmxpbmUnIGFuZCAn
dGhyZWFkcycgKGRlZmF1bHQ6ICVkZWZhdWx0KS4iKSksCiAgICAgICAgIG9wdHBhcnNlLm1ha2Vf
b3B0aW9uKCItLWV4cGVyaW1lbnRhbC1mdWxseS1wYXJhbGxlbCIsCiAgICAgICAgICAgICBhY3Rp
b249InN0b3JlX3RydWUiLCBkZWZhdWx0PUZhbHNlLAogICAgICAgICAgICAgaGVscD0icnVuIGFs
bCB0ZXN0cyBpbiBwYXJhbGxlbCIpLApkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0c191bml0dGVzdC5weSBiL1dlYktp
dFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHNfdW5p
dHRlc3QucHkKaW5kZXggNmJiNzQxYTU3YzkxYzBiMGUyNjRjZmRlN2Q2NDEwY2JmNTgzOTY2YS4u
ZTliOTdiMzRlNjYwOGYzZjIyZmM4M2U0ZGVmYWVmZTU3OTRhNDNlMSAxMDA2NDQKLS0tIGEvV2Vi
S2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0c191
bml0dGVzdC5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9ydW5fd2Via2l0X3Rlc3RzX3VuaXR0ZXN0LnB5CkBAIC0xODcsNyArMTg3LDggQEAgY2xhc3Mg
TWFpblRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIGRlZiB0ZXN0X2JhdGNoX3NpemUoc2Vs
Zik6CiAgICAgICAgIGJhdGNoX3Rlc3RzX3J1biA9IGdldF90ZXN0c19ydW4oWyctLWJhdGNoLXNp
emUnLCAnMiddKQogICAgICAgICBmb3IgYmF0Y2ggaW4gYmF0Y2hfdGVzdHNfcnVuOgotICAgICAg
ICAgICAgc2VsZi5hc3NlcnRUcnVlKGxlbihiYXRjaCkgPD0gMiwgJyVzIGhhZCB0b28gbWFueSB0
ZXN0cycgJSAnLCAnLmpvaW4oYmF0Y2gpKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGxl
bihiYXRjaCkgPD0gMiwgJyVzIGhhZCB0b28gbWFueSB0ZXN0cycgJQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICcsICcuam9pbihiYXRjaCkpCiAKICAgICBkZWYgdGVzdF9jaGlsZF9wcm9j
ZXNzXzEoc2VsZik6CiAgICAgICAgIChyZXMsIGJ1aWxkYm90X291dHB1dCwgcmVndWxhcl9vdXRw
dXQsIHVzZXIpID0gbG9nZ2luZ19ydW4oCkBAIC0yNzAsMTMgKzI3MSwxOCBAQCBjbGFzcyBNYWlu
VGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgZGVmIHRlc3RfcnVuX2NodW5rKHNlbGYpOgog
ICAgICAgICAjIFRlc3QgdGhhdCB3ZSBhY3R1YWxseSBzZWxlY3QgdGhlIHJpZ2h0IGNodW5rCiAg
ICAgICAgIGFsbF90ZXN0c19ydW4gPSBnZXRfdGVzdHNfcnVuKGZsYXR0ZW5fYmF0Y2hlcz1UcnVl
KQotICAgICAgICBjaHVua190ZXN0c19ydW4gPSBnZXRfdGVzdHNfcnVuKFsnLS1ydW4tY2h1bmsn
LCAnMTo0J10sIGZsYXR0ZW5fYmF0Y2hlcz1UcnVlKQorICAgICAgICBjaHVua190ZXN0c19ydW4g
PSBnZXRfdGVzdHNfcnVuKFsnLS1ydW4tY2h1bmsnLCAnMTo0J10sCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZmxhdHRlbl9iYXRjaGVzPVRydWUpCiAgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWxzKGFsbF90ZXN0c19ydW5bNDo4XSwgY2h1bmtfdGVzdHNfcnVuKQogCi0g
ICAgICAgICMgVGVzdCB0aGF0IHdlIHdyYXAgYXJvdW5kIGlmIHRoZSBudW1iZXIgb2YgdGVzdHMg
aXMgbm90IGV2ZW5seSBkaXZpc2libGUgYnkgdGhlIGNodW5rIHNpemUKLSAgICAgICAgdGVzdHNf
dG9fcnVuID0gWydwYXNzZXMvZXJyb3IuaHRtbCcsICdwYXNzZXMvaW1hZ2UuaHRtbCcsICdwYXNz
ZXMvcGxhdGZvcm1faW1hZ2UuaHRtbCcsICdwYXNzZXMvdGV4dC5odG1sJ10KLSAgICAgICAgY2h1
bmtfdGVzdHNfcnVuID0gZ2V0X3Rlc3RzX3J1bihbJy0tcnVuLWNodW5rJywgJzE6MyddICsgdGVz
dHNfdG9fcnVuLCB0ZXN0c19pbmNsdWRlZD1UcnVlLCBmbGF0dGVuX2JhdGNoZXM9VHJ1ZSkKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoWydwYXNzZXMvdGV4dC5odG1sJywgJ3Bhc3Nlcy9lcnJv
ci5odG1sJywgJ3Bhc3Nlcy9pbWFnZS5odG1sJ10sIGNodW5rX3Rlc3RzX3J1bikKKyAgICAgICAg
IyBUZXN0IHRoYXQgd2Ugd3JhcCBhcm91bmQgaWYgdGhlIG51bWJlciBvZiB0ZXN0cyBpcyBub3Qg
ZXZlbmx5CisgICAgICAgICMgZGl2aXNpYmxlIGJ5IHRoZSBjaHVuayBzaXplLgorICAgICAgICB0
ZXN0c190b19ydW4gPSBbJ3Bhc3Nlcy9lcnJvci5odG1sJywgJ3Bhc3Nlcy9pbWFnZS5odG1sJywK
KyAgICAgICAgICAgICAgICAgICAgICAgICdwYXNzZXMvcGxhdGZvcm1faW1hZ2UuaHRtbCcsICdw
YXNzZXMvdGV4dC5odG1sJ10KKyAgICAgICAgY2h1bmtfdGVzdHNfcnVuID0gZ2V0X3Rlc3RzX3J1
bihbJy0tcnVuLWNodW5rJywgJzE6MyddICsgdGVzdHNfdG9fcnVuLAorICAgICAgICAgICAgdGVz
dHNfaW5jbHVkZWQ9VHJ1ZSwgZmxhdHRlbl9iYXRjaGVzPVRydWUpCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWxzKFsncGFzc2VzL3RleHQuaHRtbCcsICdwYXNzZXMvZXJyb3IuaHRtbCcsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAncGFzc2VzL2ltYWdlLmh0bWwnXSwgY2h1bmtfdGVzdHNf
cnVuKQogCiAgICAgZGVmIHRlc3RfcnVuX2ZvcmNlKHNlbGYpOgogICAgICAgICAjIFRoaXMgcmFp
c2VzIGFuIGV4Y2VwdGlvbiBiZWNhdXNlIHdlIHJ1bgpAQCAtMjg1LDIzICsyOTEsMzEgQEAgY2xh
c3MgTWFpblRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogCiAgICAgZGVmIHRlc3RfcnVuX3BhcnQo
c2VsZik6CiAgICAgICAgICMgVGVzdCB0aGF0IHdlIGFjdHVhbGx5IHNlbGVjdCB0aGUgcmlnaHQg
cGFydAotICAgICAgICB0ZXN0c190b19ydW4gPSBbJ3Bhc3Nlcy9lcnJvci5odG1sJywgJ3Bhc3Nl
cy9pbWFnZS5odG1sJywgJ3Bhc3Nlcy9wbGF0Zm9ybV9pbWFnZS5odG1sJywgJ3Bhc3Nlcy90ZXh0
Lmh0bWwnXQotICAgICAgICB0ZXN0c19ydW4gPSBnZXRfdGVzdHNfcnVuKFsnLS1ydW4tcGFydCcs
ICcxOjInXSArIHRlc3RzX3RvX3J1biwgdGVzdHNfaW5jbHVkZWQ9VHJ1ZSwgZmxhdHRlbl9iYXRj
aGVzPVRydWUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKFsncGFzc2VzL2Vycm9yLmh0bWwn
LCAncGFzc2VzL2ltYWdlLmh0bWwnXSwgdGVzdHNfcnVuKQotCi0gICAgICAgICMgVGVzdCB0aGF0
IHdlIHdyYXAgYXJvdW5kIGlmIHRoZSBudW1iZXIgb2YgdGVzdHMgaXMgbm90IGV2ZW5seSBkaXZp
c2libGUgYnkgdGhlIGNodW5rIHNpemUKLSAgICAgICAgIyAoaGVyZSB3ZSBlbmQgdXAgd2l0aCAz
IHBhcnRzLCBlYWNoIHdpdGggMiB0ZXN0cywgYW5kIHdlIG9ubHkgaGF2ZSA0IHRlc3RzIHRvdGFs
LCBzbyB0aGUKKyAgICAgICAgdGVzdHNfdG9fcnVuID0gWydwYXNzZXMvZXJyb3IuaHRtbCcsICdw
YXNzZXMvaW1hZ2UuaHRtbCcsCisgICAgICAgICAgICAgICAgICAgICAgICAncGFzc2VzL3BsYXRm
b3JtX2ltYWdlLmh0bWwnLCAncGFzc2VzL3RleHQuaHRtbCddCisgICAgICAgIHRlc3RzX3J1biA9
IGdldF90ZXN0c19ydW4oWyctLXJ1bi1wYXJ0JywgJzE6MiddICsgdGVzdHNfdG9fcnVuLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RzX2luY2x1ZGVkPVRydWUsIGZsYXR0
ZW5fYmF0Y2hlcz1UcnVlKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhbJ3Bhc3Nlcy9lcnJv
ci5odG1sJywgJ3Bhc3Nlcy9pbWFnZS5odG1sJ10sCisgICAgICAgICAgICAgICAgICAgICAgICAg
IHRlc3RzX3J1bikKKworICAgICAgICAjIFRlc3QgdGhhdCB3ZSB3cmFwIGFyb3VuZCBpZiB0aGUg
bnVtYmVyIG9mIHRlc3RzIGlzIG5vdCBldmVubHkKKyAgICAgICAgIyBkaXZpc2libGUgYnkgdGhl
IGNodW5rIHNpemUgKGhlcmUgd2UgZW5kIHVwIHdpdGggMyBwYXJ0cywgZWFjaAorICAgICAgICAj
IHdpdGggMiB0ZXN0cywgYW5kIHdlIG9ubHkgaGF2ZSA0IHRlc3RzIHRvdGFsLCBzbyB0aGUKICAg
ICAgICAgIyBsYXN0IHBhcnQgcmVwZWF0cyB0aGUgZmlyc3QgdHdvIHRlc3RzKS4KLSAgICAgICAg
Y2h1bmtfdGVzdHNfcnVuID0gZ2V0X3Rlc3RzX3J1bihbJy0tcnVuLXBhcnQnLCAnMzozJ10gKyB0
ZXN0c190b19ydW4sIHRlc3RzX2luY2x1ZGVkPVRydWUsIGZsYXR0ZW5fYmF0Y2hlcz1UcnVlKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhbJ3Bhc3Nlcy9lcnJvci5odG1sJywgJ3Bhc3Nlcy9p
bWFnZS5odG1sJ10sIGNodW5rX3Rlc3RzX3J1bikKKyAgICAgICAgY2h1bmtfdGVzdHNfcnVuID0g
Z2V0X3Rlc3RzX3J1bihbJy0tcnVuLXBhcnQnLCAnMzozJ10gKyB0ZXN0c190b19ydW4sCisgICAg
ICAgICAgICB0ZXN0c19pbmNsdWRlZD1UcnVlLCBmbGF0dGVuX2JhdGNoZXM9VHJ1ZSkKKyAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbHMoWydwYXNzZXMvZXJyb3IuaHRtbCcsICdwYXNzZXMvaW1hZ2Uu
aHRtbCddLAorICAgICAgICAgICAgY2h1bmtfdGVzdHNfcnVuKQogCiAgICAgZGVmIHRlc3RfcnVu
X3NpbmdseShzZWxmKToKICAgICAgICAgYmF0Y2hfdGVzdHNfcnVuID0gZ2V0X3Rlc3RzX3J1bihb
Jy0tcnVuLXNpbmdseSddKQogICAgICAgICBmb3IgYmF0Y2ggaW4gYmF0Y2hfdGVzdHNfcnVuOgot
ICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMobGVuKGJhdGNoKSwgMSwgJyVzIGhhZCB0b28g
bWFueSB0ZXN0cycgJSAnLCAnLmpvaW4oYmF0Y2gpKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbHMobGVuKGJhdGNoKSwgMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICclcyBo
YWQgdG9vIG1hbnkgdGVzdHMnICUgJywgJy5qb2luKGJhdGNoKSkKIAogICAgIGRlZiB0ZXN0X3Np
bmdsZV9maWxlKHNlbGYpOgotICAgICAgICB0ZXN0c19ydW4gPSBnZXRfdGVzdHNfcnVuKFsncGFz
c2VzL3RleHQuaHRtbCddLCB0ZXN0c19pbmNsdWRlZD1UcnVlLCBmbGF0dGVuX2JhdGNoZXM9VHJ1
ZSkKKyAgICAgICAgdGVzdHNfcnVuID0gZ2V0X3Rlc3RzX3J1bihbJ3Bhc3Nlcy90ZXh0Lmh0bWwn
XSwgdGVzdHNfaW5jbHVkZWQ9VHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBmbGF0dGVuX2JhdGNoZXM9VHJ1ZSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoWydwYXNz
ZXMvdGV4dC5odG1sJ10sIHRlc3RzX3J1bikKIAogICAgIGRlZiB0ZXN0X3Rlc3RfbGlzdChzZWxm
KToKQEAgLTMwOSw3ICszMjMsOCBAQCBjbGFzcyBNYWluVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6
CiAgICAgICAgIHRtcGZpbGUgPSBmaWxlKGZpbGVuYW1lLCBtb2RlPSd3KycpCiAgICAgICAgIHRt
cGZpbGUud3JpdGUoJ3Bhc3Nlcy90ZXh0Lmh0bWwnKQogICAgICAgICB0bXBmaWxlLmNsb3NlKCkK
LSAgICAgICAgdGVzdHNfcnVuID0gZ2V0X3Rlc3RzX3J1bihbJy0tdGVzdC1saXN0PSVzJyAlIGZp
bGVuYW1lXSwgdGVzdHNfaW5jbHVkZWQ9VHJ1ZSwgZmxhdHRlbl9iYXRjaGVzPVRydWUpCisgICAg
ICAgIHRlc3RzX3J1biA9IGdldF90ZXN0c19ydW4oWyctLXRlc3QtbGlzdD0lcycgJSBmaWxlbmFt
ZV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdHNfaW5jbHVkZWQ9VHJ1
ZSwgZmxhdHRlbl9iYXRjaGVzPVRydWUpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKFsncGFz
c2VzL3RleHQuaHRtbCddLCB0ZXN0c19ydW4pCiAgICAgICAgIG9zLnJlbW92ZShmaWxlbmFtZSkK
ICAgICAgICAgcmVzLCBvdXQsIGVyciwgdXNlciA9IGxvZ2dpbmdfcnVuKFsnLS10ZXN0LWxpc3Q9
JXMnICUgZmlsZW5hbWVdLApAQCAtMzczLDggKzM4OCw4IEBAIGNsYXNzIE1haW5UZXN0KHVuaXR0
ZXN0LlRlc3RDYXNlKToKICAgICAgICAgdGVzdF9wb3J0ID0gZ2V0X3BvcnRfZm9yX3J1bihiYXNl
X2FyZ3MgKyBbJy0tdG9sZXJhbmNlJywgJzAnXSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgw
LCB0ZXN0X3BvcnQudG9sZXJhbmNlX3VzZWRfZm9yX2RpZmZfaW1hZ2UpCiAKLSAgICAgICAgIyBP
dGhlcndpc2UgdGhlIHBvcnQncyBkZWZhdWx0IHRvbGVyYW5jZSBiZWhhdmlvciAoaW5jbHVkaW5n
IGlnbm9yaW5nIGl0KQotICAgICAgICAjIHNob3VsZCBiZSB1c2VkLgorICAgICAgICAjIE90aGVy
d2lzZSB0aGUgcG9ydCdzIGRlZmF1bHQgdG9sZXJhbmNlIGJlaGF2aW9yIChpbmNsdWRpbmcgaWdu
b3JpbmcKKyAgICAgICAgIyBpdCkgc2hvdWxkIGJlIHVzZWQuCiAgICAgICAgIHRlc3RfcG9ydCA9
IGdldF9wb3J0X2Zvcl9ydW4oYmFzZV9hcmdzKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5v
bmUsIHRlc3RfcG9ydC50b2xlcmFuY2VfdXNlZF9mb3JfZGlmZl9pbWFnZSkKIApAQCAtNDE0LDgg
KzQyOSw4IEBAIGNsYXNzIFJlYmFzZWxpbmVUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAg
ICAgICAgIGJhc2VsaW5lID0gZmlsZSArICItZXhwZWN0ZWQiICsgZXh0CiAgICAgICAgICAgICBz
ZWxmLmFzc2VydFRydWUoYW55KGYuZmluZChiYXNlbGluZSkgIT0gLTEgZm9yIGYgaW4gZmlsZV9s
aXN0KSkKIAotICAgICMgRklYTUU6IEFkZCB0ZXN0cyB0byBlbnN1cmUgdGhhdCB3ZSdyZSAqbm90
KiB3cml0aW5nIGJhc2VsaW5lcyB3aGVuIHdlJ3JlIG5vdAotICAgICMgc3VwcG9zZWQgdG8gYmUu
CisgICAgIyBGSVhNRTogQWRkIHRlc3RzIHRvIGVuc3VyZSB0aGF0IHdlJ3JlICpub3QqIHdyaXRp
bmcgYmFzZWxpbmVzIHdoZW4KKyAgICAjIHdlJ3JlIG5vdCBzdXBwb3NlZCB0byBiZS4KIAogICAg
IGRlZiBkaXNhYmxlZF90ZXN0X3Jlc2V0X3Jlc3VsdHMoc2VsZik6CiAgICAgICAgICMgRklYTUU6
IFRoaXMgdGVzdCBpcyBkaXNhYmxlZCB1bnRpbCB3ZSBjYW4gcmV3cml0ZSBpdCB0byB1c2UgYQpA
QCAtNDg1LDcgKzUwMCw4IEBAIGNsYXNzIFRlc3RSdW5uZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNl
KToKIDwvcD4KIDwvYm9keT48L2h0bWw+CiAiIiIKLSAgICAgICAgaHRtbCA9IHJ1bm5lci5fcmVz
dWx0c19odG1sKFsidGVzdF9wYXRoIl0sIHt9LCAiVGl0bGUiLCBvdmVycmlkZV90aW1lPSJ0aW1l
IikKKyAgICAgICAgaHRtbCA9IHJ1bm5lci5fcmVzdWx0c19odG1sKFsidGVzdF9wYXRoIl0sIHt9
LCAiVGl0bGUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3ZlcnJpZGVf
dGltZT0idGltZSIpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaHRtbCwgZXhwZWN0ZWRfaHRt
bCkKIAogICAgIGRlZiB0ZXN0X3NoYXJkX3Rlc3RzKHNlbGYpOgpAQCAtNTE4LDkgKzUzNCwxMSBA
QCBjbGFzcyBUZXN0UnVubmVyVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIG11bHRp
X3RocmVhZF9yZXN1bHRzID0gcnVubmVyLl9zaGFyZF90ZXN0cyh0ZXN0X2xpc3QsIFRydWUpCiAK
ICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgidGVzdHNfdG9faHR0cF9sb2NrIiwgc2luZ2xlX3Ro
cmVhZF9yZXN1bHRzWzBdWzBdKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV4cGVjdGVkX3Rl
c3RzX3RvX2h0dHBfbG9jaywgc2V0KHNpbmdsZV90aHJlYWRfcmVzdWx0c1swXVsxXSkpCisgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXhwZWN0ZWRfdGVzdHNfdG9faHR0cF9sb2NrLAorICAgICAg
ICAgICAgICAgICAgICAgICAgIHNldChzaW5nbGVfdGhyZWFkX3Jlc3VsdHNbMF1bMV0pKQogICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKCJ0ZXN0c190b19odHRwX2xvY2siLCBtdWx0aV90aHJlYWRf
cmVzdWx0c1swXVswXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChleHBlY3RlZF90ZXN0c190
b19odHRwX2xvY2ssIHNldChtdWx0aV90aHJlYWRfcmVzdWx0c1swXVsxXSkpCisgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoZXhwZWN0ZWRfdGVzdHNfdG9faHR0cF9sb2NrLAorICAgICAgICAgICAg
ICAgICAgICAgICAgIHNldChtdWx0aV90aHJlYWRfcmVzdWx0c1swXVsxXSkpCiAKIAogY2xhc3Mg
RHJ5cnVuVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>75404</attachid>
            <date>2010-12-02 12:27:04 -0800</date>
            <delta_ts>2010-12-02 13:56:42 -0800</delta_ts>
            <desc>remove whitespace diffs / reformatting</desc>
            <filename>bug-50372-20101202122703.patch</filename>
            <type>text/plain</type>
            <size>42236</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCAwZThlYTZlNTdiM2Y4YzQ2M2ZkMDE3MTA3YjRhZTkzZDY0ODNkOGE0Li5kZjg1NDM3
MTI3YWIzODU0ZWE5YmM5NzdhZWE1ZTgzZjE2OTM1YzRkIDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNTEgQEAK
IDIwMTAtMTItMDEgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CiAKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgbmV3LXJ1bi13ZWJraXQt
dGVzdHM6IG1pbm9yIGNsZWFudXAgZm9yIG11bHRpcHJvY2Vzc2luZyB3b3JrCisKKyAgICAgICAg
VGhpcyBjaGFuZ2U6CisgICAgICAgICogbW92ZXMgd29ya2VyIG5hbWluZyBpbnRvIFRlc3RTaGVs
bFRocmVhZCwgZWxpbWluYXRpbmcgYQorICAgICAgICAgIHBhcmFtZXRlciB0byB0aGUgY29uc3Ry
dWN0b3IgYW5kIHB1dHRpbmcgdGhlIHJlc3BvbnNpYmlsaXR5IGluCisgICAgICAgICAgdGhlIGNv
cnJlY3QgcGxhY2UuCisgICAgICAgICogZWxpbWluYXRlcyB0aGUgX1dvcmtlclN0YXRlKCkgY2xh
c3MgaW4gbWVzc2FnZV9icm9rZXIsIGJlY2F1c2UKKyAgICAgICAgICBpdCB0dXJucyBvdXQgdGhh
dCBzdGF0ZSByZWFsbHkgbmVlZHMgdG8gYmUgaW4gcnVuX3dlYmtpdF90ZXN0cworICAgICAgICAq
IHJlbmFtZXMgdGhlIEJyb2tlciBjbGFzc2VzIHRvIGJlIG1vZHVsZS1wcml2YXRlLgorICAgICAg
ICAqIGZpeGVzIGEgYnVuY2ggb2YgbWlub3IgY29tbWVudGluZyBhbmQgd2hpdGVzcGFjZSBpc3N1
ZXMgdG8KKyAgICAgICAgICBtYWtlIHN1YnNlcXVlbnQgcGF0Y2hlcyBhIGJpdCBjbGVhcmVyLgor
CisgICAgICAgIFRoaXMgcGF0Y2ggZGVwZW5kcyBvbiBidWcgNTAzNjcuCisKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUwMzcyCisKKyAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9kdW1wX3JlbmRlcl90
cmVlX3RocmVhZC5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9s
YXlvdXRfcGFja2FnZS9tZXNzYWdlX2Jyb2tlci5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9tZXNzYWdlX2Jyb2tlcl91bml0dGVzdC5w
eToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rl
c3RzLnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJr
aXRfdGVzdHNfdW5pdHRlc3QucHk6CisKKzIwMTAtMTItMDEgIERpcmsgUHJhbmtlICA8ZHByYW5r
ZUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgVGhpcyBjaGFuZ2UgaXMgYSBidW5jaCBvZiBjbGVhbnVwIC8gcmVmYWN0b3Jpbmcg
b2YgdGhlIGZpbGUKKyAgICAgICAgYmVsb3cuIEl0IG1vdmVzIGEgYnVuY2ggb2YgZnJlZSBmdW5j
dGlvbnMgdG8gbWV0aG9kcyBvbiB0aGUKKyAgICAgICAgVGVzdFNoZWxsVGhyZWFkIGNsYXNzLCBh
bmQgcmVzdHJ1Y3R1cmVzIG90aGVyIG1ldGhvZHMgdG8gYmUKKyAgICAgICAgY2xvc2VyIHRvIHRo
ZSBzdHJ1Y3R1cmUgd2UnbGwgbmVlZCBmb3IgdGhlIG11bHRpcHJvY2Vzc2luZworICAgICAgICBy
ZXdyaXRlLgorCisgICAgICAgIEl0IGFsc28gbWFrZXMgdGhlIGxvZ2ljIG9mIC0tcnVuLXNpbmds
eSBhICpsb3QqIGVhc2llciB0byBmb2xsb3cKKyAgICAgICAgYnkgbmVzdGxpbmcgYWxsIG9mIHRo
ZSBzZXBhcmF0ZS10aHJlYWQgbG9naWMgaW50byBhIHNpbmdsZQorICAgICAgICByb3V0aW5lLgor
CisgICAgICAgIFRoZXJlIHNob3VsZCBiZSBubyBzZW1hbnRpYyBjaGFuZ2VzIGluIHRoaXMgcGF0
Y2gsIGp1c3QgY2xlYW51cC4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NTAzNjcKKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL2xheW91dF9wYWNrYWdlL2R1bXBfcmVuZGVyX3RyZWVfdGhyZWFkLnB5OgorCisyMDEwLTEy
LTAxICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgorCiAgICAgICAgIFJldmll
d2VkIGJ5IFRvbnkgQ2hhbmcuCiAKICAgICAgICAgbmV3LXJ1bi13ZWJraXQtdGVzdHM6IGFkZCBh
IC0tZHJ5LXJ1biAvIC1uIGZsYWcKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL2R1bXBfcmVuZGVyX3RyZWVfdGhyZWFk
LnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3Bh
Y2thZ2UvZHVtcF9yZW5kZXJfdHJlZV90aHJlYWQucHkKaW5kZXggZmRiOGRhNmNjODBiNzNlZTdk
ZmI3ZDYxZDlkYmJjYmJhYmJjYjQ3OC4uZDA4ZWEwY2UxY2MxOTQ0OTk0ZmQwZDBlZWIwMmI5MjM3
ZmE4YzA4NSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvbGF5b3V0X3BhY2thZ2UvZHVtcF9yZW5kZXJfdHJlZV90aHJlYWQucHkKKysrIGIvV2Vi
S2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvZHVt
cF9yZW5kZXJfdHJlZV90aHJlYWQucHkKQEAgLTYyLDE2NCArNjIsMjAgQEAgX2xvZyA9IGxvZ2dp
bmcuZ2V0TG9nZ2VyKCJ3ZWJraXRweS5sYXlvdXRfdGVzdHMubGF5b3V0X3BhY2thZ2UuIgogICAg
ICAgICAgICAgICAgICAgICAgICAgICJkdW1wX3JlbmRlcl90cmVlX3RocmVhZCIpCiAKIAotZGVm
IF9leHBlY3RlZF90ZXN0X291dHB1dChwb3J0LCBmaWxlbmFtZSk6Ci0gICAgIiIiUmV0dXJucyBh
biBleHBlY3RlZCBUZXN0T3V0cHV0IG9iamVjdC4iIiIKLSAgICByZXR1cm4gdGVzdF9vdXRwdXQu
VGVzdE91dHB1dChwb3J0LmV4cGVjdGVkX3RleHQoZmlsZW5hbWUpLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHBvcnQuZXhwZWN0ZWRfaW1hZ2UoZmlsZW5hbWUpLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcnQuZXhwZWN0ZWRfY2hlY2tzdW0oZmlsZW5h
bWUpKQotCi1kZWYgX3Byb2Nlc3Nfb3V0cHV0KHBvcnQsIG9wdGlvbnMsIHRlc3RfaW5wdXQsIHRl
c3RfdHlwZXMsIHRlc3RfYXJncywKLSAgICAgICAgICAgICAgICAgICAgdGVzdF9vdXRwdXQsIHdv
cmtlcl9uYW1lKToKLSAgICAiIiJSZWNlaXZlcyB0aGUgb3V0cHV0IGZyb20gYSBEdW1wUmVuZGVy
VHJlZSBwcm9jZXNzLCBzdWJqZWN0cyBpdCB0byBhCi0gICAgbnVtYmVyIG9mIHRlc3RzLCBhbmQg
cmV0dXJucyBhIGxpc3Qgb2YgZmFpbHVyZSB0eXBlcyB0aGUgdGVzdCBwcm9kdWNlZC4KLQotICAg
IEFyZ3M6Ci0gICAgICBwb3J0OiBwb3J0LXNwZWNpZmljIGhvb2tzCi0gICAgICBvcHRpb25zOiBj
b21tYW5kIGxpbmUgb3B0aW9ucyBhcmd1bWVudCBmcm9tIG9wdHBhcnNlCi0gICAgICBwcm9jOiBh
biBhY3RpdmUgRHVtcFJlbmRlclRyZWUgcHJvY2VzcwotICAgICAgdGVzdF9pbnB1dDogT2JqZWN0
IGNvbnRhaW5pbmcgdGhlIHRlc3QgZmlsZW5hbWUgYW5kIHRpbWVvdXQKLSAgICAgIHRlc3RfdHlw
ZXM6IGxpc3Qgb2YgdGVzdCB0eXBlcyB0byBzdWJqZWN0IHRoZSBvdXRwdXQgdG8KLSAgICAgIHRl
c3RfYXJnczogYXJndW1lbnRzIHRvIGJlIHBhc3NlZCB0byBlYWNoIHRlc3QKLSAgICAgIHRlc3Rf
b3V0cHV0OiBhIFRlc3RPdXRwdXQgb2JqZWN0IGNvbnRhaW5pbmcgdGhlIG91dHB1dCBvZiB0aGUg
dGVzdAotICAgICAgd29ya2VyX25hbWU6IHdvcmtlciBuYW1lIGZvciBsb2dnaW5nCi0KLSAgICBS
ZXR1cm5zOiBhIFRlc3RSZXN1bHQgb2JqZWN0Ci0gICAgIiIiCi0gICAgZmFpbHVyZXMgPSBbXQot
Ci0gICAgaWYgdGVzdF9vdXRwdXQuY3Jhc2g6Ci0gICAgICAgIGZhaWx1cmVzLmFwcGVuZCh0ZXN0
X2ZhaWx1cmVzLkZhaWx1cmVDcmFzaCgpKQotICAgIGlmIHRlc3Rfb3V0cHV0LnRpbWVvdXQ6Ci0g
ICAgICAgIGZhaWx1cmVzLmFwcGVuZCh0ZXN0X2ZhaWx1cmVzLkZhaWx1cmVUaW1lb3V0KCkpCi0K
LSAgICB0ZXN0X25hbWUgPSBwb3J0LnJlbGF0aXZlX3Rlc3RfZmlsZW5hbWUodGVzdF9pbnB1dC5m
aWxlbmFtZSkKLSAgICBpZiB0ZXN0X291dHB1dC5jcmFzaDoKLSAgICAgICAgX2xvZy5kZWJ1Zygi
JXMgU3RhY2t0cmFjZSBmb3IgJXM6XG4lcyIgJSAod29ya2VyX25hbWUsIHRlc3RfbmFtZSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9vdXRw
dXQuZXJyb3IpKQotICAgICAgICBmaWxlbmFtZSA9IG9zLnBhdGguam9pbihvcHRpb25zLnJlc3Vs
dHNfZGlyZWN0b3J5LCB0ZXN0X25hbWUpCi0gICAgICAgIGZpbGVuYW1lID0gb3MucGF0aC5zcGxp
dGV4dChmaWxlbmFtZSlbMF0gKyAiLXN0YWNrLnR4dCIKLSAgICAgICAgcG9ydC5tYXliZV9tYWtl
X2RpcmVjdG9yeShvcy5wYXRoLnNwbGl0KGZpbGVuYW1lKVswXSkKLSAgICAgICAgd2l0aCBjb2Rl
Y3Mub3BlbihmaWxlbmFtZSwgIndiIiwgInV0Zi04IikgYXMgZmlsZToKLSAgICAgICAgICAgIGZp
bGUud3JpdGUodGVzdF9vdXRwdXQuZXJyb3IpCi0gICAgZWxpZiB0ZXN0X291dHB1dC5lcnJvcjoK
LSAgICAgICAgX2xvZy5kZWJ1ZygiJXMgJXMgb3V0cHV0IHN0ZGVyciBsaW5lczpcbiVzIiAlICh3
b3JrZXJfbmFtZSwgdGVzdF9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHRlc3Rfb3V0cHV0LmVycm9yKSkKLQotICAgIGV4cGVjdGVk
X3Rlc3Rfb3V0cHV0ID0gX2V4cGVjdGVkX3Rlc3Rfb3V0cHV0KHBvcnQsIHRlc3RfaW5wdXQuZmls
ZW5hbWUpCi0KLSAgICAjIENoZWNrIHRoZSBvdXRwdXQgYW5kIHNhdmUgdGhlIHJlc3VsdHMuCi0g
ICAgc3RhcnRfdGltZSA9IHRpbWUudGltZSgpCi0gICAgdGltZV9mb3JfZGlmZnMgPSB7fQotICAg
IGZvciB0ZXN0X3R5cGUgaW4gdGVzdF90eXBlczoKLSAgICAgICAgc3RhcnRfZGlmZl90aW1lID0g
dGltZS50aW1lKCkKLSAgICAgICAgbmV3X2ZhaWx1cmVzID0gdGVzdF90eXBlLmNvbXBhcmVfb3V0
cHV0KHBvcnQsIHRlc3RfaW5wdXQuZmlsZW5hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2FyZ3MsIHRlc3Rfb3V0cHV0LAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRfdGVzdF9vdXRw
dXQpCi0gICAgICAgICMgRG9uJ3QgYWRkIGFueSBtb3JlIGZhaWx1cmVzIGlmIHdlIGFscmVhZHkg
aGF2ZSBhIGNyYXNoLCBzbyB3ZSBkb24ndAotICAgICAgICAjIGRvdWJsZS1yZXBvcnQgdGhvc2Ug
dGVzdHMuIFdlIGRvIGRvdWJsZS1yZXBvcnQgZm9yIHRpbWVvdXRzIHNpbmNlCi0gICAgICAgICMg
d2Ugc3RpbGwgd2FudCB0byBzZWUgdGhlIHRleHQgYW5kIGltYWdlIG91dHB1dC4KLSAgICAgICAg
aWYgbm90IHRlc3Rfb3V0cHV0LmNyYXNoOgotICAgICAgICAgICAgZmFpbHVyZXMuZXh0ZW5kKG5l
d19mYWlsdXJlcykKLSAgICAgICAgdGltZV9mb3JfZGlmZnNbdGVzdF90eXBlLl9fY2xhc3NfXy5f
X25hbWVfX10gPSAoCi0gICAgICAgICAgICB0aW1lLnRpbWUoKSAtIHN0YXJ0X2RpZmZfdGltZSkK
LQotICAgIHRvdGFsX3RpbWVfZm9yX2FsbF9kaWZmcyA9IHRpbWUudGltZSgpIC0gc3RhcnRfZGlm
Zl90aW1lCi0gICAgcmV0dXJuIHRlc3RfcmVzdWx0cy5UZXN0UmVzdWx0KHRlc3RfaW5wdXQuZmls
ZW5hbWUsIGZhaWx1cmVzLCB0ZXN0X291dHB1dC50ZXN0X3RpbWUsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHRvdGFsX3RpbWVfZm9yX2FsbF9kaWZmcywgdGltZV9mb3JfZGlm
ZnMpCi0KLQotZGVmIF9wYWRfdGltZW91dCh0aW1lb3V0KToKLSAgICAiIiJSZXR1cm5zIGEgc2Fm
ZSBtdWx0aXBsZSBvZiB0aGUgcGVyLXRlc3QgdGltZW91dCB2YWx1ZSB0byB1c2UKLSAgICB0byBk
ZXRlY3QgaHVuZyB0ZXN0IHRocmVhZHMuCi0KLSAgICAiIiIKLSAgICAjIFdoZW4gd2UncmUgcnVu
bmluZyBvbmUgdGVzdCBwZXIgRHVtcFJlbmRlclRyZWUgcHJvY2Vzcywgd2UgY2FuCi0gICAgIyBl
bmZvcmNlIGEgaGFyZCB0aW1lb3V0LiAgVGhlIER1bXBSZW5kZXJUcmVlIHdhdGNoZG9nIHVzZXMg
Mi41eAotICAgICMgdGhlIHRpbWVvdXQ7IHdlIHdhbnQgdG8gYmUgbGFyZ2VyIHRoYW4gdGhhdC4K
LSAgICByZXR1cm4gdGltZW91dCAqIDMKLQotCi1kZWYgX21pbGxpc2Vjb25kc190b19zZWNvbmRz
KG1zZWNzKToKLSAgICByZXR1cm4gZmxvYXQobXNlY3MpIC8gMTAwMC4wCi0KLQotZGVmIF9zaG91
bGRfZmV0Y2hfZXhwZWN0ZWRfY2hlY2tzdW0ob3B0aW9ucyk6Ci0gICAgcmV0dXJuIG9wdGlvbnMu
cGl4ZWxfdGVzdHMgYW5kIG5vdCAob3B0aW9ucy5uZXdfYmFzZWxpbmUgb3Igb3B0aW9ucy5yZXNl
dF9yZXN1bHRzKQotCi0KLWRlZiBfcnVuX3NpbmdsZV90ZXN0KHBvcnQsIG9wdGlvbnMsIHRlc3Rf
aW5wdXQsIHRlc3RfdHlwZXMsIHRlc3RfYXJncywgZHJpdmVyLCB3b3JrZXJfbmFtZSk6Ci0gICAg
IyBGSVhNRTogUHVsbCB0aGlzIGludG8gVGVzdFNoZWxsVGhyZWFkLl9ydW4oKS4KLQotICAgICMg
VGhlIGltYWdlIGhhc2ggaXMgdXNlZCB0byBhdm9pZCBkb2luZyBhbiBpbWFnZSBkdW1wIGlmIHRo
ZQotICAgICMgY2hlY2tzdW1zIG1hdGNoLCBzbyBpdCBzaG91bGQgYmUgc2V0IHRvIGEgYmxhbmsg
dmFsdWUgaWYgd2UKLSAgICAjIGFyZSBnZW5lcmF0aW5nIGEgbmV3IGJhc2VsaW5lLiAgKE90aGVy
d2lzZSwgYW4gaW1hZ2UgZnJvbSBhCi0gICAgIyBwcmV2aW91cyBydW4gd2lsbCBiZSBjb3BpZWQg
aW50byB0aGUgYmFzZWxpbmUuIiIiCi0gICAgaWYgX3Nob3VsZF9mZXRjaF9leHBlY3RlZF9jaGVj
a3N1bShvcHRpb25zKToKLSAgICAgICAgdGVzdF9pbnB1dC5pbWFnZV9oYXNoID0gcG9ydC5leHBl
Y3RlZF9jaGVja3N1bSh0ZXN0X2lucHV0LmZpbGVuYW1lKQotICAgIHRlc3Rfb3V0cHV0ID0gZHJp
dmVyLnJ1bl90ZXN0KHRlc3RfaW5wdXQpCi0gICAgcmV0dXJuIF9wcm9jZXNzX291dHB1dChwb3J0
LCBvcHRpb25zLCB0ZXN0X2lucHV0LCB0ZXN0X3R5cGVzLCB0ZXN0X2FyZ3MsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICB0ZXN0X291dHB1dCwgd29ya2VyX25hbWUpCi0KLQotY2xhc3MgU2lu
Z2xlVGVzdFRocmVhZCh0aHJlYWRpbmcuVGhyZWFkKToKLSAgICAiIiJUaHJlYWQgd3JhcHBlciBm
b3IgcnVubmluZyBhIHNpbmdsZSB0ZXN0IGZpbGUuIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2Vs
ZiwgcG9ydCwgb3B0aW9ucywgd29ya2VyX251bWJlciwgd29ya2VyX25hbWUsCi0gICAgICAgICAg
ICAgICAgIHRlc3RfaW5wdXQsIHRlc3RfdHlwZXMsIHRlc3RfYXJncyk6Ci0gICAgICAgICIiIgot
ICAgICAgICBBcmdzOgotICAgICAgICAgIHBvcnQ6IG9iamVjdCBpbXBsZW1lbnRpbmcgcG9ydC1z
cGVjaWZpYyBob29rcwotICAgICAgICAgIG9wdGlvbnM6IGNvbW1hbmQgbGluZSBhcmd1bWVudCBv
YmplY3QgZnJvbSBvcHRwYXJzZQotICAgICAgICAgIHdvcmtlcl9udW1iZXI6IHdvcmtlciBudW1i
ZXIgZm9yIHRlc3RzCi0gICAgICAgICAgd29ya2VyX25hbWU6IGZvciBsb2dnaW5nCi0gICAgICAg
ICAgdGVzdF9pbnB1dDogT2JqZWN0IGNvbnRhaW5pbmcgdGhlIHRlc3QgZmlsZW5hbWUgYW5kIHRp
bWVvdXQKLSAgICAgICAgICB0ZXN0X3R5cGVzOiBBIGxpc3Qgb2YgVGVzdFR5cGUgb2JqZWN0cyB0
byBydW4gdGhlIHRlc3Qgb3V0cHV0Ci0gICAgICAgICAgICAgIGFnYWluc3QuCi0gICAgICAgICAg
dGVzdF9hcmdzOiBBIFRlc3RBcmd1bWVudHMgb2JqZWN0IHRvIHBhc3MgdG8gZWFjaCBUZXN0VHlw
ZS4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgdGhyZWFkaW5nLlRocmVhZC5fX2luaXRfXyhzZWxm
KQotICAgICAgICBzZWxmLl9wb3J0ID0gcG9ydAotICAgICAgICBzZWxmLl9vcHRpb25zID0gb3B0
aW9ucwotICAgICAgICBzZWxmLl90ZXN0X2lucHV0ID0gdGVzdF9pbnB1dAotICAgICAgICBzZWxm
Ll90ZXN0X3R5cGVzID0gdGVzdF90eXBlcwotICAgICAgICBzZWxmLl90ZXN0X2FyZ3MgPSB0ZXN0
X2FyZ3MKLSAgICAgICAgc2VsZi5fZHJpdmVyID0gTm9uZQotICAgICAgICBzZWxmLl93b3JrZXJf
bnVtYmVyID0gd29ya2VyX251bWJlcgotICAgICAgICBzZWxmLl9uYW1lID0gd29ya2VyX25hbWUK
LQotICAgIGRlZiBydW4oc2VsZik6Ci0gICAgICAgIHNlbGYuX2NvdmVyZWRfcnVuKCkKLQotICAg
IGRlZiBfY292ZXJlZF9ydW4oc2VsZik6Ci0gICAgICAgICMgRklYTUU6IHRoaXMgaXMgYSBzZXBh
cmF0ZSByb3V0aW5lIHRvIHdvcmsgYXJvdW5kIGEgYnVnCi0gICAgICAgICMgaW4gY292ZXJhZ2U6
IHNlZSBodHRwOi8vYml0YnVja2V0Lm9yZy9uZWQvY292ZXJhZ2VweS9pc3N1ZS84NS4KLSAgICAg
ICAgc2VsZi5fZHJpdmVyID0gc2VsZi5fcG9ydC5jcmVhdGVfZHJpdmVyKHNlbGYuX3dvcmtlcl9u
dW1iZXIpCi0gICAgICAgIHNlbGYuX2RyaXZlci5zdGFydCgpCi0gICAgICAgIHNlbGYuX3Rlc3Rf
cmVzdWx0ID0gX3J1bl9zaW5nbGVfdGVzdChzZWxmLl9wb3J0LCBzZWxmLl9vcHRpb25zLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fdGVzdF9pbnB1
dCwgc2VsZi5fdGVzdF90eXBlcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHNlbGYuX3Rlc3RfYXJncywgc2VsZi5fZHJpdmVyLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fbmFtZSkKLSAgICAgICAgc2VsZi5f
ZHJpdmVyLnN0b3AoKQotCi0gICAgZGVmIGdldF90ZXN0X3Jlc3VsdChzZWxmKToKLSAgICAgICAg
cmV0dXJuIHNlbGYuX3Rlc3RfcmVzdWx0Ci0KLQogY2xhc3MgV2F0Y2hhYmxlVGhyZWFkKHRocmVh
ZGluZy5UaHJlYWQpOgogICAgICIiIlRoaXMgY2xhc3MgYWJzdHJhY3RzIGFuIGludGVyZmFjZSB1
c2VkIGJ5CiAgICAgcnVuX3dlYmtpdF90ZXN0cy5UZXN0UnVubmVyLl93YWl0X2Zvcl90aHJlYWRz
X3RvX2ZpbmlzaCBmb3IgdGhyZWFkCiAgICAgbWFuYWdlbWVudC4iIiIKICAgICBkZWYgX19pbml0
X18oc2VsZik6CiAgICAgICAgIHRocmVhZGluZy5UaHJlYWQuX19pbml0X18oc2VsZikKLSAgICAg
ICAgc2VsZi5fY2FuY2VsZWQgPSBGYWxzZQorICAgICAgICBzZWxmLl9jYW5jZWxsZWQgPSBGYWxz
ZQogICAgICAgICBzZWxmLl9leGNlcHRpb25faW5mbyA9IE5vbmUKICAgICAgICAgc2VsZi5fbmV4
dF90aW1lb3V0ID0gTm9uZQogICAgICAgICBzZWxmLl90aHJlYWRfaWQgPSBOb25lCiAKICAgICBk
ZWYgY2FuY2VsKHNlbGYpOgogICAgICAgICAiIiJTZXQgYSBmbGFnIHRlbGxpbmcgdGhpcyB0aHJl
YWQgdG8gcXVpdC4iIiIKLSAgICAgICAgc2VsZi5fY2FuY2VsZWQgPSBUcnVlCisgICAgICAgIHNl
bGYuX2NhbmNlbGxlZCA9IFRydWUKIAogICAgIGRlZiBjbGVhcl9uZXh0X3RpbWVvdXQoc2VsZik6
CiAgICAgICAgICIiIk1hcmsgYSBmbGFnIHRlbGxpbmcgdGhpcyB0aHJlYWQgdG8gc3RvcCBzZXR0
aW5nIHRpbWVvdXRzLiIiIgpAQCAtMjQyLDcgKzk4LDcgQEAgY2xhc3MgV2F0Y2hhYmxlVGhyZWFk
KHRocmVhZGluZy5UaHJlYWQpOgogCiAKIGNsYXNzIFRlc3RTaGVsbFRocmVhZChXYXRjaGFibGVU
aHJlYWQpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwb3J0LCBvcHRpb25zLCB3b3JrZXJfbnVt
YmVyLCB3b3JrZXJfbmFtZSwKKyAgICBkZWYgX19pbml0X18oc2VsZiwgcG9ydCwgb3B0aW9ucywg
d29ya2VyX251bWJlciwKICAgICAgICAgICAgICAgICAgZmlsZW5hbWVfbGlzdF9xdWV1ZSwgcmVz
dWx0X3F1ZXVlKToKICAgICAgICAgIiIiSW5pdGlhbGl6ZSBhbGwgdGhlIGxvY2FsIHN0YXRlIGZv
ciB0aGlzIER1bXBSZW5kZXJUcmVlIHRocmVhZC4KIApAQCAtMjUwLDcgKzEwNiw2IEBAIGNsYXNz
IFRlc3RTaGVsbFRocmVhZChXYXRjaGFibGVUaHJlYWQpOgogICAgICAgICAgIHBvcnQ6IGludGVy
ZmFjZSB0byBwb3J0LXNwZWNpZmljIGhvb2tzCiAgICAgICAgICAgb3B0aW9uczogY29tbWFuZCBs
aW5lIG9wdGlvbnMgYXJndW1lbnQgZnJvbSBvcHRwYXJzZQogICAgICAgICAgIHdvcmtlcl9udW1i
ZXI6IGlkZW50aWZpZXIgZm9yIGEgcGFydGljdWxhciB3b3JrZXIgdGhyZWFkLgotICAgICAgICAg
IHdvcmtlcl9uYW1lOiBmb3IgbG9nZ2luZy4KICAgICAgICAgICBmaWxlbmFtZV9saXN0X3F1ZXVl
OiBBIHRocmVhZCBzYWZlIFF1ZXVlIGNsYXNzIHRoYXQgY29udGFpbnMgbGlzdHMKICAgICAgICAg
ICAgICAgb2YgdHVwbGVzIG9mIChmaWxlbmFtZSwgdXJpKSBwYWlycy4KICAgICAgICAgICByZXN1
bHRfcXVldWU6IEEgdGhyZWFkIHNhZmUgUXVldWUgY2xhc3MgdGhhdCB3aWxsIGNvbnRhaW4KQEAg
LTI2MCwxNyArMTE1LDIyIEBAIGNsYXNzIFRlc3RTaGVsbFRocmVhZChXYXRjaGFibGVUaHJlYWQp
OgogICAgICAgICBzZWxmLl9wb3J0ID0gcG9ydAogICAgICAgICBzZWxmLl9vcHRpb25zID0gb3B0
aW9ucwogICAgICAgICBzZWxmLl93b3JrZXJfbnVtYmVyID0gd29ya2VyX251bWJlcgotICAgICAg
ICBzZWxmLl9uYW1lID0gd29ya2VyX25hbWUKKyAgICAgICAgc2VsZi5fbmFtZSA9ICd3b3JrZXIv
JWQnICUgd29ya2VyX251bWJlcgogICAgICAgICBzZWxmLl9maWxlbmFtZV9saXN0X3F1ZXVlID0g
ZmlsZW5hbWVfbGlzdF9xdWV1ZQogICAgICAgICBzZWxmLl9yZXN1bHRfcXVldWUgPSByZXN1bHRf
cXVldWUKLSAgICAgICAgc2VsZi5fZmlsZW5hbWVfbGlzdCA9IFtdCisKKyAgICAgICAgc2VsZi5f
YmF0Y2hfY291bnQgPSAwCisgICAgICAgIHNlbGYuX2JhdGNoX3NpemUgPSBzZWxmLl9vcHRpb25z
LmJhdGNoX3NpemUKICAgICAgICAgc2VsZi5fZHJpdmVyID0gTm9uZQotICAgICAgICBzZWxmLl90
ZXN0X2dyb3VwX3RpbWluZ19zdGF0cyA9IHt9CisgICAgICAgIHNlbGYuX2hhdmVfaHR0cF9sb2Nr
ID0gRmFsc2UKKworICAgICAgICBzZWxmLl90ZXN0X3J1bm5lciA9IE5vbmUKKyAgICAgICAgc2Vs
Zi5fcmVzdWx0X3N1bW1hcnkgPSBOb25lCisgICAgICAgIHNlbGYuX3Rlc3RfbGlzdF90aW1pbmdf
c3RhdHMgPSB7fQogICAgICAgICBzZWxmLl90ZXN0X3Jlc3VsdHMgPSBbXQogICAgICAgICBzZWxm
Ll9udW1fdGVzdHMgPSAwCiAgICAgICAgIHNlbGYuX3N0YXJ0X3RpbWUgPSAwCiAgICAgICAgIHNl
bGYuX3N0b3BfdGltZSA9IDAKLSAgICAgICAgc2VsZi5faGF2ZV9odHRwX2xvY2sgPSBGYWxzZQog
ICAgICAgICBzZWxmLl9odHRwX2xvY2tfd2FpdF9iZWdpbiA9IDAKICAgICAgICAgc2VsZi5faHR0
cF9sb2NrX3dhaXRfZW5kID0gMAogCkBAIC0yODAsMTIgKzE0MCwxMSBAQCBjbGFzcyBUZXN0U2hl
bGxUaHJlYWQoV2F0Y2hhYmxlVGhyZWFkKToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzZWxmLl9vcHRpb25zLnJlc3VsdHNfZGlyZWN0b3J5KSkKICAgICAgICAgc2Vs
Zi5fdGVzdF9hcmdzID0gc2VsZi5fZ2V0X3Rlc3RfYXJncyh3b3JrZXJfbnVtYmVyKQogCi0gICAg
ICAgICMgQ3VycmVudCBncm91cCBvZiB0ZXN0cyB3ZSdyZSBydW5uaW5nLgotICAgICAgICBzZWxm
Ll9jdXJyZW50X2dyb3VwID0gTm9uZQotICAgICAgICAjIE51bWJlciBvZiB0ZXN0cyBpbiBzZWxm
Ll9jdXJyZW50X2dyb3VwLgotICAgICAgICBzZWxmLl9udW1fdGVzdHNfaW5fY3VycmVudF9ncm91
cCA9IE5vbmUKLSAgICAgICAgIyBUaW1lIGF0IHdoaWNoIHdlIHN0YXJ0ZWQgcnVubmluZyB0ZXN0
cyBmcm9tIHNlbGYuX2N1cnJlbnRfZ3JvdXAuCi0gICAgICAgIHNlbGYuX2N1cnJlbnRfZ3JvdXBf
c3RhcnRfdGltZSA9IE5vbmUKKyAgICAgICAgIyBBcHBlbmQgdGVzdHMgd2UncmUgcnVubmluZyB0
byB0aGUgZXhpc3RpbmcgdGVzdHNfcnVuLnR4dCBmaWxlLgorICAgICAgICAjIFRoaXMgaXMgY3Jl
YXRlZCBpbiBydW5fd2Via2l0X3Rlc3RzLnB5Ol9QcmVwYXJlTGlzdHNBbmRQcmludE91dHB1dC4K
KyAgICAgICAgdGVzdHNfcnVuX2ZpbGVuYW1lID0gb3MucGF0aC5qb2luKHNlbGYuX29wdGlvbnMu
cmVzdWx0c19kaXJlY3RvcnksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAidGVzdHNfcnVuLnR4dCIpCisgICAgICAgIHNlbGYuX3Rlc3RzX3J1bl9maWxlID0gY29k
ZWNzLm9wZW4odGVzdHNfcnVuX2ZpbGVuYW1lLCAiYSIsICJ1dGYtOCIpCiAKICAgICBkZWYgX2dl
dF90ZXN0X2FyZ3Moc2VsZiwgd29ya2VyX251bWJlcik6CiAgICAgICAgICIiIlJldHVybnMgdGhl
IHR1cGxlIG9mIGFyZ3VtZW50cyBmb3IgdGVzdHMgYW5kIGZvciBEdW1wUmVuZGVyVHJlZS4iIiIK
QEAgLTMwNCw3ICsxNjMsNyBAQCBjbGFzcyBUZXN0U2hlbGxUaHJlYWQoV2F0Y2hhYmxlVGhyZWFk
KToKICAgICBkZWYgZ2V0X3Rlc3RfZ3JvdXBfdGltaW5nX3N0YXRzKHNlbGYpOgogICAgICAgICAi
IiJSZXR1cm5zIGEgZGljdGlvbmFyeSBtYXBwaW5nIHRlc3QgZ3JvdXAgdG8gYSB0dXBsZSBvZgog
ICAgICAgICAobnVtYmVyIG9mIHRlc3RzIGluIHRoYXQgZ3JvdXAsIHRpbWUgdG8gcnVuIHRoZSB0
ZXN0cykiIiIKLSAgICAgICAgcmV0dXJuIHNlbGYuX3Rlc3RfZ3JvdXBfdGltaW5nX3N0YXRzCisg
ICAgICAgIHJldHVybiBzZWxmLl90ZXN0X2xpc3RfdGltaW5nX3N0YXRzCiAKICAgICBkZWYgZ2V0
X3Rlc3RfcmVzdWx0cyhzZWxmKToKICAgICAgICAgIiIiUmV0dXJuIHRoZSBsaXN0IG9mIGFsbCB0
ZXN0cyBydW4gb24gdGhpcyB0aHJlYWQuCkBAIC0zMjEsNiArMTgwLDE1IEBAIGNsYXNzIFRlc3RT
aGVsbFRocmVhZChXYXRjaGFibGVUaHJlYWQpOgogICAgIGRlZiBnZXRfbnVtX3Rlc3RzKHNlbGYp
OgogICAgICAgICByZXR1cm4gc2VsZi5fbnVtX3Rlc3RzCiAKKyAgICBkZWYgbmFtZShzZWxmKToK
KyAgICAgICAgcmV0dXJuIHNlbGYuX25hbWUKKworICAgIGRlZiBuZXh0X3RpbWVvdXQoc2VsZik6
CisgICAgICAgICIiIlJldHVybiB0aGUgdGltZSB0aGUgdGVzdCBpcyBzdXBwb3NlZCB0byBmaW5p
c2ggYnkuIiIiCisgICAgICAgIGlmIHNlbGYuX25leHRfdGltZW91dDoKKyAgICAgICAgICAgIHJl
dHVybiBzZWxmLl9uZXh0X3RpbWVvdXQgKyBzZWxmLl9odHRwX2xvY2tfd2FpdF90aW1lKCkKKyAg
ICAgICAgcmV0dXJuIHNlbGYuX25leHRfdGltZW91dAorCiAgICAgZGVmIHJ1bihzZWxmKToKICAg
ICAgICAgIiIiRGVsZWdhdGUgbWFpbiB3b3JrIHRvIGEgaGVscGVyIG1ldGhvZCBhbmQgd2F0Y2gg
Zm9yIHVuY2F1Z2h0CiAgICAgICAgIGV4Y2VwdGlvbnMuIiIiCkBAIC0zMzEsMjAgKzE5OSwxOCBA
QCBjbGFzcyBUZXN0U2hlbGxUaHJlYWQoV2F0Y2hhYmxlVGhyZWFkKToKICAgICAgICAgIyBpbiBj
b3ZlcmFnZTogc2VlIGh0dHA6Ly9iaXRidWNrZXQub3JnL25lZC9jb3ZlcmFnZXB5L2lzc3VlLzg1
LgogICAgICAgICBzZWxmLl90aHJlYWRfaWQgPSB0aHJlYWQuZ2V0X2lkZW50KCkKICAgICAgICAg
c2VsZi5fc3RhcnRfdGltZSA9IHRpbWUudGltZSgpCi0gICAgICAgIHNlbGYuX251bV90ZXN0cyA9
IDAKICAgICAgICAgdHJ5OgotICAgICAgICAgICAgX2xvZy5kZWJ1ZygnJXMgc3RhcnRpbmcnICUg
KHNlbGYuZ2V0TmFtZSgpKSkKKyAgICAgICAgICAgIF9sb2cuZGVidWcoJyVzIHN0YXJ0aW5nJyAl
IChzZWxmLl9uYW1lKSkKICAgICAgICAgICAgIHNlbGYuX3J1bih0ZXN0X3J1bm5lcj1Ob25lLCBy
ZXN1bHRfc3VtbWFyeT1Ob25lKQotICAgICAgICAgICAgX2xvZy5kZWJ1ZygnJXMgZG9uZSAoJWQg
dGVzdHMpJyAlIChzZWxmLmdldE5hbWUoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5n
ZXRfbnVtX3Rlc3RzKCkpKQorICAgICAgICAgICAgX2xvZy5kZWJ1ZygnJXMgZG9uZSAoJWQgdGVz
dHMpJyAlIChzZWxmLl9uYW1lLCBzZWxmLl9udW1fdGVzdHMpKQogICAgICAgICBleGNlcHQgS2V5
Ym9hcmRJbnRlcnJ1cHQ6CiAgICAgICAgICAgICBzZWxmLl9leGNlcHRpb25faW5mbyA9IHN5cy5l
eGNfaW5mbygpCi0gICAgICAgICAgICBfbG9nLmRlYnVnKCIlcyBpbnRlcnJ1cHRlZCIgJSBzZWxm
LmdldE5hbWUoKSkKKyAgICAgICAgICAgIF9sb2cuZGVidWcoIiVzIGludGVycnVwdGVkIiAlIHNl
bGYuX25hbWUpCiAgICAgICAgIGV4Y2VwdDoKICAgICAgICAgICAgICMgU2F2ZSB0aGUgZXhjZXB0
aW9uIGZvciBvdXIgY2FsbGVyIHRvIHNlZS4KICAgICAgICAgICAgIHNlbGYuX2V4Y2VwdGlvbl9p
bmZvID0gc3lzLmV4Y19pbmZvKCkKICAgICAgICAgICAgIHNlbGYuX3N0b3BfdGltZSA9IHRpbWUu
dGltZSgpCi0gICAgICAgICAgICBfbG9nLmVycm9yKCclcyBkeWluZywgZXhjZXB0aW9uIHJhaXNl
ZCcgJSBzZWxmLmdldE5hbWUoKSkKKyAgICAgICAgICAgIF9sb2cuZXJyb3IoJyVzIGR5aW5nLCBl
eGNlcHRpb24gcmFpc2VkJyAlIHNlbGYuX25hbWUpCiAKICAgICAgICAgc2VsZi5fc3RvcF90aW1l
ID0gdGltZS50aW1lKCkKIApAQCAtMzU1LDEwOCArMjIxLDk3IEBAIGNsYXNzIFRlc3RTaGVsbFRo
cmVhZChXYXRjaGFibGVUaHJlYWQpOgogICAgICAgICBkbyBtdWx0aS10aHJlYWRlZCBkZWJ1Z2dp
bmcuIiIiCiAgICAgICAgIHNlbGYuX3J1bih0ZXN0X3J1bm5lciwgcmVzdWx0X3N1bW1hcnkpCiAK
LSAgICBkZWYgY2FuY2VsKHNlbGYpOgotICAgICAgICAiIiJDbGVhbiB1cCBodHRwIGxvY2sgYW5k
IHNldCBhIGZsYWcgdGVsbGluZyB0aGlzIHRocmVhZCB0byBxdWl0LiIiIgotICAgICAgICBzZWxm
Ll9zdG9wX3NlcnZlcnNfd2l0aF9sb2NrKCkKLSAgICAgICAgV2F0Y2hhYmxlVGhyZWFkLmNhbmNl
bChzZWxmKQotCi0gICAgZGVmIG5leHRfdGltZW91dChzZWxmKToKLSAgICAgICAgIiIiUmV0dXJu
IHRoZSB0aW1lIHRoZSB0ZXN0IGlzIHN1cHBvc2VkIHRvIGZpbmlzaCBieS4iIiIKLSAgICAgICAg
aWYgc2VsZi5fbmV4dF90aW1lb3V0OgotICAgICAgICAgICAgcmV0dXJuIHNlbGYuX25leHRfdGlt
ZW91dCArIHNlbGYuX2h0dHBfbG9ja193YWl0X3RpbWUoKQotICAgICAgICByZXR1cm4gc2VsZi5f
bmV4dF90aW1lb3V0Ci0KLSAgICBkZWYgX2h0dHBfbG9ja193YWl0X3RpbWUoc2VsZik6Ci0gICAg
ICAgICIiIlJldHVybiB0aGUgdGltZSB3aGF0IGh0dHAgbG9ja2luZyB0YWtlcy4iIiIKLSAgICAg
ICAgaWYgc2VsZi5faHR0cF9sb2NrX3dhaXRfYmVnaW4gPT0gMDoKLSAgICAgICAgICAgIHJldHVy
biAwCi0gICAgICAgIGlmIHNlbGYuX2h0dHBfbG9ja193YWl0X2VuZCA9PSAwOgotICAgICAgICAg
ICAgcmV0dXJuIHRpbWUudGltZSgpIC0gc2VsZi5faHR0cF9sb2NrX3dhaXRfYmVnaW4KLSAgICAg
ICAgcmV0dXJuIHNlbGYuX2h0dHBfbG9ja193YWl0X2VuZCAtIHNlbGYuX2h0dHBfbG9ja193YWl0
X2JlZ2luCi0KICAgICBkZWYgX3J1bihzZWxmLCB0ZXN0X3J1bm5lciwgcmVzdWx0X3N1bW1hcnkp
OgogICAgICAgICAiIiJNYWluIHdvcmsgZW50cnkgcG9pbnQgb2YgdGhlIHRocmVhZC4gQmFzaWNh
bGx5IHdlIHB1bGwgdXJscyBmcm9tIHRoZQogICAgICAgICBmaWxlbmFtZSBxdWV1ZSBhbmQgcnVu
IHRoZSB0ZXN0cyB1bnRpbCB3ZSBydW4gb3V0IG9mIHVybHMuCiAKICAgICAgICAgSWYgdGVzdF9y
dW5uZXIgaXMgbm90IE5vbmUsIHRoZW4gd2UgY2FsbCB0ZXN0X3J1bm5lci5VcGRhdGVTdW1tYXJ5
KCkKLSAgICAgICAgd2l0aCB0aGUgcmVzdWx0cyBvZiBlYWNoIHRlc3QuIiIiCi0gICAgICAgIGJh
dGNoX3NpemUgPSBzZWxmLl9vcHRpb25zLmJhdGNoX3NpemUKLSAgICAgICAgYmF0Y2hfY291bnQg
PSAwCisgICAgICAgIHdpdGggdGhlIHJlc3VsdHMgb2YgZWFjaCB0ZXN0IGR1cmluZyBfdGVhcl9k
b3duX3Rlc3QoKSwgYmVsb3cuIiIiCisgICAgICAgIHNlbGYuX3Rlc3RfcnVubmVyID0gdGVzdF9y
dW5uZXIKKyAgICAgICAgc2VsZi5fcmVzdWx0X3N1bW1hcnkgPSByZXN1bHRfc3VtbWFyeQogCi0g
ICAgICAgICMgQXBwZW5kIHRlc3RzIHdlJ3JlIHJ1bm5pbmcgdG8gdGhlIGV4aXN0aW5nIHRlc3Rz
X3J1bi50eHQgZmlsZS4KLSAgICAgICAgIyBUaGlzIGlzIGNyZWF0ZWQgaW4gcnVuX3dlYmtpdF90
ZXN0cy5weTpfUHJlcGFyZUxpc3RzQW5kUHJpbnRPdXRwdXQuCi0gICAgICAgIHRlc3RzX3J1bl9m
aWxlbmFtZSA9IG9zLnBhdGguam9pbihzZWxmLl9vcHRpb25zLnJlc3VsdHNfZGlyZWN0b3J5LAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInRlc3RzX3J1bi50eHQi
KQotICAgICAgICB0ZXN0c19ydW5fZmlsZSA9IGNvZGVjcy5vcGVuKHRlc3RzX3J1bl9maWxlbmFt
ZSwgImEiLCAidXRmLTgiKQotCi0gICAgICAgIHdoaWxlIFRydWU6Ci0gICAgICAgICAgICBpZiBz
ZWxmLl9jYW5jZWxlZDoKLSAgICAgICAgICAgICAgICBfbG9nLmRlYnVnKCdUZXN0aW5nIGNhbmNl
bGxlZCcpCi0gICAgICAgICAgICAgICAgdGVzdHNfcnVuX2ZpbGUuY2xvc2UoKQotICAgICAgICAg
ICAgICAgIHJldHVybgotCi0gICAgICAgICAgICBpZiBsZW4oc2VsZi5fZmlsZW5hbWVfbGlzdCkg
aXMgMDoKLSAgICAgICAgICAgICAgICBpZiBzZWxmLl9jdXJyZW50X2dyb3VwIGlzIG5vdCBOb25l
OgotICAgICAgICAgICAgICAgICAgICBzZWxmLl90ZXN0X2dyb3VwX3RpbWluZ19zdGF0c1tzZWxm
Ll9jdXJyZW50X2dyb3VwXSA9IFwKLSAgICAgICAgICAgICAgICAgICAgICAgIChzZWxmLl9udW1f
dGVzdHNfaW5fY3VycmVudF9ncm91cCwKLSAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lLnRp
bWUoKSAtIHNlbGYuX2N1cnJlbnRfZ3JvdXBfc3RhcnRfdGltZSkKLQotICAgICAgICAgICAgICAg
IHRyeToKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fY3VycmVudF9ncm91cCwgc2VsZi5fZmls
ZW5hbWVfbGlzdCA9IFwKLSAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX2ZpbGVuYW1lX2xp
c3RfcXVldWUuZ2V0X25vd2FpdCgpCi0gICAgICAgICAgICAgICAgZXhjZXB0IFF1ZXVlLkVtcHR5
OgotICAgICAgICAgICAgICAgICAgICBzZWxmLl9zdG9wX3NlcnZlcnNfd2l0aF9sb2NrKCkKLSAg
ICAgICAgICAgICAgICAgICAgc2VsZi5fa2lsbF9kdW1wX3JlbmRlcl90cmVlKCkKLSAgICAgICAg
ICAgICAgICAgICAgdGVzdHNfcnVuX2ZpbGUuY2xvc2UoKQotICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4KLQotICAgICAgICAgICAgICAgIGlmIHNlbGYuX2N1cnJlbnRfZ3JvdXAgPT0gInRlc3Rz
X3RvX2h0dHBfbG9jayI6Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYuX3N0YXJ0X3NlcnZlcnNf
d2l0aF9sb2NrKCkKLSAgICAgICAgICAgICAgICBlbGlmIHNlbGYuX2hhdmVfaHR0cF9sb2NrOgot
ICAgICAgICAgICAgICAgICAgICBzZWxmLl9zdG9wX3NlcnZlcnNfd2l0aF9sb2NrKCkKLQotICAg
ICAgICAgICAgICAgIHNlbGYuX251bV90ZXN0c19pbl9jdXJyZW50X2dyb3VwID0gbGVuKHNlbGYu
X2ZpbGVuYW1lX2xpc3QpCi0gICAgICAgICAgICAgICAgc2VsZi5fY3VycmVudF9ncm91cF9zdGFy
dF90aW1lID0gdGltZS50aW1lKCkKLQotICAgICAgICAgICAgdGVzdF9pbnB1dCA9IHNlbGYuX2Zp
bGVuYW1lX2xpc3QucG9wKCkKLQotICAgICAgICAgICAgIyBXZSBoYXZlIGEgdXJsLCBydW4gdGVz
dHMuCi0gICAgICAgICAgICBiYXRjaF9jb3VudCArPSAxCi0gICAgICAgICAgICBzZWxmLl9udW1f
dGVzdHMgKz0gMQotICAgICAgICAgICAgaWYgc2VsZi5fb3B0aW9ucy5ydW5fc2luZ2x5OgotICAg
ICAgICAgICAgICAgIHJlc3VsdCA9IHNlbGYuX3J1bl90ZXN0X2luX2Fub3RoZXJfdGhyZWFkKHRl
c3RfaW5wdXQpCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHJlc3VsdCA9IHNl
bGYuX3J1bl90ZXN0X2luX3RoaXNfdGhyZWFkKHRlc3RfaW5wdXQpCi0KLSAgICAgICAgICAgIGZp
bGVuYW1lID0gdGVzdF9pbnB1dC5maWxlbmFtZQotICAgICAgICAgICAgdGVzdHNfcnVuX2ZpbGUu
d3JpdGUoZmlsZW5hbWUgKyAiXG4iKQotICAgICAgICAgICAgaWYgcmVzdWx0LmZhaWx1cmVzOgot
ICAgICAgICAgICAgICAgICMgQ2hlY2sgYW5kIGtpbGwgRHVtcFJlbmRlclRyZWUgaWYgd2UgbmVl
ZCB0by4KLSAgICAgICAgICAgICAgICBpZiBsZW4oWzEgZm9yIGYgaW4gcmVzdWx0LmZhaWx1cmVz
Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiBmLnNob3VsZF9raWxsX2R1bXBfcmVuZGVyX3Ry
ZWUoKV0pOgotICAgICAgICAgICAgICAgICAgICBzZWxmLl9raWxsX2R1bXBfcmVuZGVyX3RyZWUo
KQotICAgICAgICAgICAgICAgICAgICAjIFJlc2V0IHRoZSBiYXRjaCBjb3VudCBzaW5jZSB0aGUg
c2hlbGwganVzdCBib3VuY2VkLgotICAgICAgICAgICAgICAgICAgICBiYXRjaF9jb3VudCA9IDAK
LSAgICAgICAgICAgICAgICAjIFByaW50IHRoZSBlcnJvciBtZXNzYWdlKHMpLgotICAgICAgICAg
ICAgICAgIGVycm9yX3N0ciA9ICdcbicuam9pbihbJyAgJyArIGYubWVzc2FnZSgpIGZvcgotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZiBpbiByZXN1bHQuZmFpbHVyZXNd
KQotICAgICAgICAgICAgICAgIF9sb2cuZGVidWcoIiVzICVzIGZhaWxlZDpcbiVzIiAlIChzZWxm
LmdldE5hbWUoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3BvcnQucmVsYXRp
dmVfdGVzdF9maWxlbmFtZShmaWxlbmFtZSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBl
cnJvcl9zdHIpKQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBfbG9nLmRlYnVn
KCIlcyAlcyBwYXNzZWQiICUgKHNlbGYuZ2V0TmFtZSgpLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc2VsZi5fcG9ydC5yZWxhdGl2ZV90ZXN0X2ZpbGVuYW1lKGZpbGVuYW1lKSkpCi0gICAg
ICAgICAgICBzZWxmLl9yZXN1bHRfcXVldWUucHV0KHJlc3VsdC5kdW1wcygpKQotCi0gICAgICAg
ICAgICBpZiBiYXRjaF9zaXplID4gMCBhbmQgYmF0Y2hfY291bnQgPj0gYmF0Y2hfc2l6ZToKLSAg
ICAgICAgICAgICAgICAjIEJvdW5jZSB0aGUgc2hlbGwgYW5kIHJlc2V0IGNvdW50LgotICAgICAg
ICAgICAgICAgIHNlbGYuX2tpbGxfZHVtcF9yZW5kZXJfdHJlZSgpCi0gICAgICAgICAgICAgICAg
YmF0Y2hfY291bnQgPSAwCisgICAgICAgIHdoaWxlIG5vdCBzZWxmLl9jYW5jZWxsZWQ6CisgICAg
ICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgY3VycmVudF9ncm91cCwgZmlsZW5hbWVfbGlz
dCA9IFwKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5fZmlsZW5hbWVfbGlzdF9xdWV1ZS5nZXRf
bm93YWl0KCkKKyAgICAgICAgICAgICAgICBzZWxmLmhhbmRsZV90ZXN0X2xpc3QoY3VycmVudF9n
cm91cCwgZmlsZW5hbWVfbGlzdCkKKyAgICAgICAgICAgIGV4Y2VwdCBRdWV1ZS5FbXB0eToKKyAg
ICAgICAgICAgICAgICBicmVhaworCisgICAgICAgIGlmIHNlbGYuX2NhbmNlbGxlZDoKKyAgICAg
ICAgICAgIF9sb2cuZGVidWcoJ1Rlc3RpbmcgY2FuY2VsbGVkJykKKworICAgICAgICBzZWxmLl9j
bGVhbnVwKCkKIAotICAgICAgICAgICAgaWYgdGVzdF9ydW5uZXI6Ci0gICAgICAgICAgICAgICAg
dGVzdF9ydW5uZXIudXBkYXRlX3N1bW1hcnkocmVzdWx0X3N1bW1hcnkpCisgICAgZGVmIF9jbGVh
bnVwKHNlbGYpOgorICAgICAgICBzZWxmLl9raWxsX2R1bXBfcmVuZGVyX3RyZWUoKQorICAgICAg
ICBpZiBzZWxmLl9oYXZlX2h0dHBfbG9jazoKKyAgICAgICAgICAgIHNlbGYuX3N0b3Bfc2VydmVy
c193aXRoX2xvY2soKQorICAgICAgICBpZiBzZWxmLl90ZXN0c19ydW5fZmlsZToKKyAgICAgICAg
ICAgIHNlbGYuX3Rlc3RzX3J1bl9maWxlLmNsb3NlKCkKKyAgICAgICAgICAgIHNlbGYuX3Rlc3Rz
X3J1bl9maWxlID0gTm9uZQorCisgICAgZGVmIGhhbmRsZV90ZXN0X2xpc3Qoc2VsZiwgbGlzdF9u
YW1lLCB0ZXN0X2xpc3QpOgorICAgICAgICBpZiBsaXN0X25hbWUgPT0gInRlc3RzX3RvX2h0dHBf
bG9jayI6CisgICAgICAgICAgICBzZWxmLl9zdGFydF9zZXJ2ZXJzX3dpdGhfbG9jaygpCisKKyAg
ICAgICAgc3RhcnRfdGltZSA9IHRpbWUudGltZSgpCisgICAgICAgIG51bV90ZXN0cyA9IDAKKyAg
ICAgICAgZm9yIHRlc3RfaW5wdXQgaW4gdGVzdF9saXN0OgorICAgICAgICAgICAgc2VsZi5fcnVu
X3Rlc3QodGVzdF9pbnB1dCkKKyAgICAgICAgICAgIGlmIHNlbGYuX2NhbmNlbGxlZDoKKyAgICAg
ICAgICAgICAgICBicmVhaworICAgICAgICAgICAgbnVtX3Rlc3RzICs9IDEKIAotICAgIGRlZiBf
cnVuX3Rlc3RfaW5fYW5vdGhlcl90aHJlYWQoc2VsZiwgdGVzdF9pbnB1dCk6CisgICAgICAgIGVs
YXBzZWRfdGltZSA9IHRpbWUudGltZSgpIC0gc3RhcnRfdGltZQorCisgICAgICAgIGlmIHNlbGYu
X2hhdmVfaHR0cF9sb2NrOgorICAgICAgICAgICAgc2VsZi5fc3RvcF9zZXJ2ZXJzX3dpdGhfbG9j
aygpCisKKyAgICAgICAgc2VsZi5fdGVzdF9saXN0X3RpbWluZ19zdGF0c1tsaXN0X25hbWVdID0g
XAorICAgICAgICAgICAobnVtX3Rlc3RzLCBlbGFwc2VkX3RpbWUpCisKKyAgICBkZWYgX3J1bl90
ZXN0KHNlbGYsIHRlc3RfaW5wdXQpOgorICAgICAgICBzZWxmLl9zZXRfdXBfdGVzdCh0ZXN0X2lu
cHV0KQorCisgICAgICAgICMgV2UgY2FsY3VsYXRlIGhvdyBsb25nIHdlIGV4cGVjdCB0aGUgdGVz
dCB0byB0YWtlLgorICAgICAgICAjCisgICAgICAgICMgVGhlIER1bXBSZW5kZXJUcmVlIHdhdGNo
ZG9nIHVzZXMgMi41eCB0aGUgdGltZW91dDsgd2Ugd2FudCB0byBiZQorICAgICAgICAjIGxhcmdl
ciB0aGFuIHRoYXQuIFdlIGFsc28gYWRkIGEgbGl0dGxlIG1vcmUgcGFkZGluZyBpZiB3ZSdyZQor
ICAgICAgICAjIHJ1bm5pbmcgdGVzdHMgaW4gYSBzZXBhcmF0ZSB0aHJlYWQuCisgICAgICAgICMK
KyAgICAgICAgIyBOb3RlIHRoYXQgd2UgbmVlZCB0byBjb252ZXJ0IHRoZSB0ZXN0IHRpbWVvdXQg
ZnJvbSBhCisgICAgICAgICMgc3RyaW5nIHZhbHVlIGluIG1pbGxpc2Vjb25kcyB0byBhIGZsb2F0
IGZvciBQeXRob24uCisgICAgICAgIGRyaXZlcl90aW1lb3V0ID0gMy4wICogZmxvYXQodGVzdF9p
bnB1dC50aW1lb3V0KSAvIDEwMDAuMAorICAgICAgICB0aHJlYWRfcGFkZGluZyA9IDEuMAorICAg
ICAgICB0aHJlYWRfdGltZW91dCA9IGRyaXZlcl90aW1lb3V0ICsgdGhyZWFkX3BhZGRpbmcKKyAg
ICAgICAgaWYgc2VsZi5fb3B0aW9ucy5ydW5fc2luZ2x5OgorICAgICAgICAgICAgdGVzdF90aW1l
b3V0ID0gdGhyZWFkX3RpbWVvdXQKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHRlc3RfdGlt
ZW91dCA9IGRyaXZlcl90aW1lb3V0CisKKyAgICAgICAgc3RhcnQgPSB0aW1lLnRpbWUoKQorICAg
ICAgICBzZWxmLl9uZXh0X3RpbWVvdXQgPSBzdGFydCArIHRlc3RfdGltZW91dAorCisgICAgICAg
IGlmIHNlbGYuX29wdGlvbnMucnVuX3NpbmdseToKKyAgICAgICAgICAgIHJlc3VsdCA9IHNlbGYu
X3J1bl90ZXN0X2luX2Fub3RoZXJfdGhyZWFkKHRlc3RfaW5wdXQsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJlYWRfdGltZW91dCkKKyAg
ICAgICAgZWxzZToKKyAgICAgICAgICAgIHJlc3VsdCA9IHNlbGYuX3J1bl90ZXN0X2luX3RoaXNf
dGhyZWFkKHRlc3RfaW5wdXQpCisKKyAgICAgICAgc2VsZi5fdGVhcl9kb3duX3Rlc3QodGVzdF9p
bnB1dCwgcmVzdWx0KQorCisgICAgZGVmIF9zZXRfdXBfdGVzdChzZWxmLCB0ZXN0X2lucHV0KToK
KyAgICAgICAgdGVzdF9pbnB1dC51cmkgPSBzZWxmLl9wb3J0LmZpbGVuYW1lX3RvX3VyaSh0ZXN0
X2lucHV0LmZpbGVuYW1lKQorICAgICAgICBpZiBzZWxmLl9zaG91bGRfZmV0Y2hfZXhwZWN0ZWRf
Y2hlY2tzdW0oKToKKyAgICAgICAgICAgIHRlc3RfaW5wdXQuaW1hZ2VfY2hlY2tzdW0gPSBzZWxm
Ll9wb3J0LmV4cGVjdGVkX2NoZWNrc3VtKAorICAgICAgICAgICAgICAgIHRlc3RfaW5wdXQuZmls
ZW5hbWUpCisKKyAgICBkZWYgX3Nob3VsZF9mZXRjaF9leHBlY3RlZF9jaGVja3N1bShzZWxmKToK
KyAgICAgICAgcmV0dXJuIChzZWxmLl9vcHRpb25zLnBpeGVsX3Rlc3RzIGFuZCBub3QKKyAgICAg
ICAgICAgICAgICAoc2VsZi5fb3B0aW9ucy5uZXdfYmFzZWxpbmUgb3Igc2VsZi5fb3B0aW9ucy5y
ZXNldF9yZXN1bHRzKSkKKworICAgIGRlZiBfcnVuX3Rlc3RfaW5fYW5vdGhlcl90aHJlYWQoc2Vs
ZiwgdGVzdF9pbnB1dCwgdGhyZWFkX3RpbWVvdXQpOgogICAgICAgICAiIiJSdW4gYSB0ZXN0IGlu
IGEgc2VwYXJhdGUgdGhyZWFkLCBlbmZvcmNpbmcgYSBoYXJkIHRpbWUgbGltaXQuCiAKICAgICAg
ICAgU2luY2Ugd2UgY2FuIG9ubHkgZGV0ZWN0IHRoZSB0ZXJtaW5hdGlvbiBvZiBhIHRocmVhZCwg
bm90IGFueSBpbnRlcm5hbApAQCAtNDY5LDIxICszMjQsMjAgQEAgY2xhc3MgVGVzdFNoZWxsVGhy
ZWFkKFdhdGNoYWJsZVRocmVhZCk6CiAgICAgICAgIFJldHVybnM6CiAgICAgICAgICAgQSBUZXN0
UmVzdWx0CiAgICAgICAgICIiIgotICAgICAgICB3b3JrZXIgPSBTaW5nbGVUZXN0VGhyZWFkKHNl
bGYuX3BvcnQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fb3B0aW9u
cywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl93b3JrZXJfbnVtYmVy
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX25hbWUsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9pbnB1dCwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzZWxmLl90ZXN0X3R5cGVzLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHNlbGYuX3Rlc3RfYXJncykKLQotICAgICAgICB3b3JrZXIuc3RhcnQoKQot
Ci0gICAgICAgIHRocmVhZF90aW1lb3V0ID0gX21pbGxpc2Vjb25kc190b19zZWNvbmRzKAotICAg
ICAgICAgICAgX3BhZF90aW1lb3V0KGludCh0ZXN0X2lucHV0LnRpbWVvdXQpKSkKLSAgICAgICAg
dGhyZWFkLl9uZXh0X3RpbWVvdXQgPSB0aW1lLnRpbWUoKSArIHRocmVhZF90aW1lb3V0Ci0gICAg
ICAgIHdvcmtlci5qb2luKHRocmVhZF90aW1lb3V0KQotICAgICAgICBpZiB3b3JrZXIuaXNBbGl2
ZSgpOgorICAgICAgICB3b3JrZXIgPSBzZWxmCisgICAgICAgIHJlc3VsdCA9IE5vbmUKKworICAg
ICAgICBkcml2ZXIgPSB3b3JrZXIuX3BvcnQuY3JlYXRlX2RyaXZlcih3b3JrZXIuX3dvcmtlcl9u
dW1iZXIpCisgICAgICAgIGRyaXZlci5zdGFydCgpCisKKyAgICAgICAgY2xhc3MgU2luZ2xlVGVz
dFRocmVhZCh0aHJlYWRpbmcuVGhyZWFkKToKKyAgICAgICAgICAgIGRlZiBydW4oc2VsZik6Cisg
ICAgICAgICAgICAgICAgcmVzdWx0ID0gd29ya2VyLl9ydW5fc2luZ2xlX3Rlc3QoZHJpdmVyLCB0
ZXN0X2lucHV0KQorCisgICAgICAgIHRocmVhZCA9IFNpbmdsZVRlc3RUaHJlYWQoKQorICAgICAg
ICB0aHJlYWQuc3RhcnQoKQorICAgICAgICB0aHJlYWQuam9pbih0aHJlYWRfdGltZW91dCkKKyAg
ICAgICAgaWYgdGhyZWFkLmlzQWxpdmUoKToKICAgICAgICAgICAgICMgSWYgam9pbigpIHJldHVy
bmVkIHdpdGggdGhlIHRocmVhZCBzdGlsbCBydW5uaW5nLCB0aGUKICAgICAgICAgICAgICMgRHVt
cFJlbmRlclRyZWUgaXMgY29tcGxldGVseSBodW5nIGFuZCB0aGVyZSdzIG5vdGhpbmcKICAgICAg
ICAgICAgICMgbW9yZSB3ZSBjYW4gZG8gd2l0aCBpdC4gIFdlIGhhdmUgdG8ga2lsbCBhbGwgdGhl
CkBAIC00OTMsMTYgKzM0NywxMCBAQCBjbGFzcyBUZXN0U2hlbGxUaHJlYWQoV2F0Y2hhYmxlVGhy
ZWFkKToKICAgICAgICAgICAgICMgdGhhdCB0cmFkZW9mZiBpbiBvcmRlciB0byBhdm9pZCBsb3Np
bmcgdGhlIHJlc3Qgb2YgdGhpcwogICAgICAgICAgICAgIyB0aHJlYWQncyByZXN1bHRzLgogICAg
ICAgICAgICAgX2xvZy5lcnJvcignVGVzdCB0aHJlYWQgaHVuZzoga2lsbGluZyBhbGwgRHVtcFJl
bmRlclRyZWVzJykKLSAgICAgICAgICAgIGlmIHdvcmtlci5fZHJpdmVyOgotICAgICAgICAgICAg
ICAgIHdvcmtlci5fZHJpdmVyLnN0b3AoKQogCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHJl
c3VsdCA9IHdvcmtlci5nZXRfdGVzdF9yZXN1bHQoKQotICAgICAgICBleGNlcHQgQXR0cmlidXRl
RXJyb3IsIGU6Ci0gICAgICAgICAgICAjIFRoaXMgZ2V0cyByYWlzZWQgaWYgdGhlIHdvcmtlciB0
aHJlYWQgaGFzIGFscmVhZHkgZXhpdGVkLgotICAgICAgICAgICAgZmFpbHVyZXMgPSBbXQotICAg
ICAgICAgICAgX2xvZy5lcnJvcignQ2Fubm90IGdldCByZXN1bHRzIG9mIHRlc3Q6ICVzJyAlCi0g
ICAgICAgICAgICAgICAgICAgICAgIHRlc3RfaW5wdXQuZmlsZW5hbWUpCisgICAgICAgIGRyaXZl
ci5zdG9wKCkKKworICAgICAgICBpZiBub3QgcmVzdWx0OgogICAgICAgICAgICAgcmVzdWx0ID0g
dGVzdF9yZXN1bHRzLlRlc3RSZXN1bHQodGVzdF9pbnB1dC5maWxlbmFtZSwgZmFpbHVyZXM9W10s
CiAgICAgICAgICAgICAgICAgdGVzdF9ydW5fdGltZT0wLCB0b3RhbF90aW1lX2Zvcl9hbGxfZGlm
ZnM9MCwgdGltZV9mb3JfZGlmZnM9e30pCiAKQEAgLTUxNiwzMyArMzY0LDEyMyBAQCBjbGFzcyBU
ZXN0U2hlbGxUaHJlYWQoV2F0Y2hhYmxlVGhyZWFkKToKIAogICAgICAgICBSZXR1cm5zOiBhIFRl
c3RSZXN1bHQgb2JqZWN0LgogICAgICAgICAiIiIKLSAgICAgICAgc2VsZi5fZW5zdXJlX2R1bXBf
cmVuZGVyX3RyZWVfaXNfcnVubmluZygpCi0gICAgICAgIHRocmVhZF90aW1lb3V0ID0gX21pbGxp
c2Vjb25kc190b19zZWNvbmRzKAotICAgICAgICAgICAgIF9wYWRfdGltZW91dChpbnQodGVzdF9p
bnB1dC50aW1lb3V0KSkpCi0gICAgICAgIHNlbGYuX25leHRfdGltZW91dCA9IHRpbWUudGltZSgp
ICsgdGhyZWFkX3RpbWVvdXQKLSAgICAgICAgdGVzdF9yZXN1bHQgPSBfcnVuX3NpbmdsZV90ZXN0
KHNlbGYuX3BvcnQsIHNlbGYuX29wdGlvbnMsIHRlc3RfaW5wdXQsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl90ZXN0X3R5cGVzLCBzZWxmLl90ZXN0X2FyZ3Ms
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9kcml2ZXIsIHNl
bGYuX25hbWUpCisgICAgICAgICMgcG9sbCgpIGlzIG5vdCB0aHJlYWRzYWZlIGFuZCBjYW4gdGhy
b3cgT1NFcnJvciBkdWUgdG86CisgICAgICAgICMgaHR0cDovL2J1Z3MucHl0aG9uLm9yZy9pc3N1
ZTE3MzE3MTcKKyAgICAgICAgaWYgbm90IHNlbGYuX2RyaXZlciBvciBzZWxmLl9kcml2ZXIucG9s
bCgpIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgc2VsZi5fZHJpdmVyID0gc2VsZi5fcG9ydC5j
cmVhdGVfZHJpdmVyKHNlbGYuX3dvcmtlcl9udW1iZXIpCisgICAgICAgICAgICBzZWxmLl9kcml2
ZXIuc3RhcnQoKQorCisgICAgICAgIHRlc3RfcmVzdWx0ID0gc2VsZi5fcnVuX3NpbmdsZV90ZXN0
KHRlc3RfaW5wdXQsIHNlbGYuX2RyaXZlcikKICAgICAgICAgc2VsZi5fdGVzdF9yZXN1bHRzLmFw
cGVuZCh0ZXN0X3Jlc3VsdCkKICAgICAgICAgcmV0dXJuIHRlc3RfcmVzdWx0CiAKLSAgICBkZWYg
X2Vuc3VyZV9kdW1wX3JlbmRlcl90cmVlX2lzX3J1bm5pbmcoc2VsZik6Ci0gICAgICAgICIiIlN0
YXJ0IHRoZSBzaGFyZWQgRHVtcFJlbmRlclRyZWUsIGlmIGl0J3Mgbm90IHJ1bm5pbmcuCisgICAg
ZGVmIF9ydW5fc2luZ2xlX3Rlc3Qoc2VsZiwgdGVzdF9pbnB1dCwgZHJpdmVyKToKKyAgICAgICAg
IyBUaGUgaW1hZ2UgaGFzaCBpcyB1c2VkIHRvIGF2b2lkIGRvaW5nIGFuIGltYWdlIGR1bXAgaWYg
dGhlCisgICAgICAgICMgY2hlY2tzdW1zIG1hdGNoLCBzbyBpdCBzaG91bGQgYmUgc2V0IHRvIGEg
YmxhbmsgdmFsdWUgaWYgd2UKKyAgICAgICAgIyBhcmUgZ2VuZXJhdGluZyBhIG5ldyBiYXNlbGlu
ZS4gIChPdGhlcndpc2UsIGFuIGltYWdlIGZyb20gYQorICAgICAgICAjIHByZXZpb3VzIHJ1biB3
aWxsIGJlIGNvcGllZCBpbnRvIHRoZSBiYXNlbGluZS4iIiIKKyAgICAgICAgaWYgc2VsZi5fc2hv
dWxkX2ZldGNoX2V4cGVjdGVkX2NoZWNrc3VtKCk6CisgICAgICAgICAgICB0ZXN0X2lucHV0Lmlt
YWdlX2hhc2ggPSBzZWxmLl9wb3J0LmV4cGVjdGVkX2NoZWNrc3VtKAorICAgICAgICAgICAgICAg
IHRlc3RfaW5wdXQuZmlsZW5hbWUpCisgICAgICAgIHRlc3Rfb3V0cHV0ID0gZHJpdmVyLnJ1bl90
ZXN0KHRlc3RfaW5wdXQpCisgICAgICAgIHJldHVybiBzZWxmLl9wcm9jZXNzX291dHB1dCh0ZXN0
X2lucHV0LmZpbGVuYW1lLCB0ZXN0X291dHB1dCkKKworICAgIGRlZiBfcHJvY2Vzc19vdXRwdXQo
c2VsZiwgdGVzdF9maWxlbmFtZSwgdGVzdF9vdXRwdXQpOgorICAgICAgICAiIiJSZWNlaXZlcyB0
aGUgb3V0cHV0IGZyb20gYSBEdW1wUmVuZGVyVHJlZSBwcm9jZXNzLCBzdWJqZWN0cyBpdCB0byBh
CisgICAgICAgIG51bWJlciBvZiB0ZXN0cywgYW5kIHJldHVybnMgYSBsaXN0IG9mIGZhaWx1cmUg
dHlwZXMgdGhlIHRlc3QgcHJvZHVjZWQuCiAKLSAgICAgICAgVGhpcyBpcyBub3QgZm9yIHVzZSB3
aGVuIHJ1bm5pbmcgdGVzdHMgc2luZ2x5LCBzaW5jZSB0aG9zZSBlYWNoIHN0YXJ0Ci0gICAgICAg
IGEgc2VwYXJhdGUgRHVtcFJlbmRlclRyZWUgaW4gdGhlaXIgb3duIHRocmVhZC4KKyAgICAgICAg
QXJnczoKKyAgICAgICAgdGVzdF9maWxlbmFtZTogZnVsbCBwYXRoIHRvIHRoZSB0ZXN0IGluIHF1
ZXN0aW9uLgorICAgICAgICB0ZXN0X291dHB1dDogYSBUZXN0T3V0cHV0IG9iamVjdCBjb250YWlu
aW5nIHRoZSBvdXRwdXQgb2YgdGhlIHRlc3QKIAorICAgICAgICBSZXR1cm5zOiBhIFRlc3RSZXN1
bHQgb2JqZWN0CiAgICAgICAgICIiIgotICAgICAgICAjIHBvbGwoKSBpcyBub3QgdGhyZWFkc2Fm
ZSBhbmQgY2FuIHRocm93IE9TRXJyb3IgZHVlIHRvOgotICAgICAgICAjIGh0dHA6Ly9idWdzLnB5
dGhvbi5vcmcvaXNzdWUxNzMxNzE3Ci0gICAgICAgIGlmIG5vdCBzZWxmLl9kcml2ZXIgb3Igc2Vs
Zi5fZHJpdmVyLnBvbGwoKSBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIHNlbGYuX2RyaXZlciA9
IHNlbGYuX3BvcnQuY3JlYXRlX2RyaXZlcihzZWxmLl93b3JrZXJfbnVtYmVyKQotICAgICAgICAg
ICAgc2VsZi5fZHJpdmVyLnN0YXJ0KCkKKyAgICAgICAgZmFpbHVyZXMgPSBbXQorCisgICAgICAg
IGlmIHRlc3Rfb3V0cHV0LmNyYXNoOgorICAgICAgICAgICAgZmFpbHVyZXMuYXBwZW5kKHRlc3Rf
ZmFpbHVyZXMuRmFpbHVyZUNyYXNoKCkpCisgICAgICAgIGlmIHRlc3Rfb3V0cHV0LnRpbWVvdXQ6
CisgICAgICAgICAgICBmYWlsdXJlcy5hcHBlbmQodGVzdF9mYWlsdXJlcy5GYWlsdXJlVGltZW91
dCgpKQorCisgICAgICAgIHRlc3RfbmFtZSA9IHNlbGYuX3BvcnQucmVsYXRpdmVfdGVzdF9maWxl
bmFtZSh0ZXN0X2ZpbGVuYW1lKQorICAgICAgICBpZiB0ZXN0X291dHB1dC5jcmFzaDoKKyAgICAg
ICAgICAgIF9sb2cuZGVidWcoIiVzIFN0YWNrdHJhY2UgZm9yICVzOlxuJXMiICUKKyAgICAgICAg
ICAgICAgICAgICAgICAgKHNlbGYuX25hbWUsIHRlc3RfbmFtZSwgdGVzdF9vdXRwdXQuZXJyb3Ip
KQorICAgICAgICAgICAgZmlsZW5hbWUgPSBvcy5wYXRoLmpvaW4oc2VsZi5fb3B0aW9ucy5yZXN1
bHRzX2RpcmVjdG9yeSwgdGVzdF9uYW1lKQorICAgICAgICAgICAgZmlsZW5hbWUgPSBvcy5wYXRo
LnNwbGl0ZXh0KGZpbGVuYW1lKVswXSArICItc3RhY2sudHh0IgorICAgICAgICAgICAgc2VsZi5f
cG9ydC5tYXliZV9tYWtlX2RpcmVjdG9yeShvcy5wYXRoLnNwbGl0KGZpbGVuYW1lKVswXSkKKyAg
ICAgICAgICAgIHdpdGggY29kZWNzLm9wZW4oZmlsZW5hbWUsICJ3YiIsICJ1dGYtOCIpIGFzIGZp
bGU6CisgICAgICAgICAgICAgICAgZmlsZS53cml0ZSh0ZXN0X291dHB1dC5lcnJvcikKKyAgICAg
ICAgZWxpZiB0ZXN0X291dHB1dC5lcnJvcjoKKyAgICAgICAgICAgIF9sb2cuZGVidWcoIiVzICVz
IG91dHB1dCBzdGRlcnIgbGluZXM6XG4lcyIgJQorICAgICAgICAgICAgICAgICAgICAgICAoc2Vs
Zi5fbmFtZSwgdGVzdF9uYW1lLCB0ZXN0X291dHB1dC5lcnJvcikpCisKKyAgICAgICAgZXhwZWN0
ZWRfdGVzdF9vdXRwdXQgPSBzZWxmLl9leHBlY3RlZF90ZXN0X291dHB1dCh0ZXN0X2ZpbGVuYW1l
KQorCisgICAgICAgICMgQ2hlY2sgdGhlIG91dHB1dCBhbmQgc2F2ZSB0aGUgcmVzdWx0cy4KKyAg
ICAgICAgc3RhcnRfdGltZSA9IHRpbWUudGltZSgpCisgICAgICAgIHRpbWVfZm9yX2RpZmZzID0g
e30KKyAgICAgICAgZm9yIHRlc3RfdHlwZSBpbiBzZWxmLl90ZXN0X3R5cGVzOgorICAgICAgICAg
ICAgc3RhcnRfZGlmZl90aW1lID0gdGltZS50aW1lKCkKKyAgICAgICAgICAgIG5ld19mYWlsdXJl
cyA9IHRlc3RfdHlwZS5jb21wYXJlX291dHB1dChzZWxmLl9wb3J0LAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfZmlsZW5hbWUsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fdGVz
dF9hcmdzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHRlc3Rfb3V0cHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGV4cGVjdGVkX3Rlc3Rfb3V0cHV0KQorICAgICAgICAgICAgIyBEb24ndCBh
ZGQgYW55IG1vcmUgZmFpbHVyZXMgaWYgd2UgYWxyZWFkeSBoYXZlIGEgY3Jhc2gsIHNvIHdlCisg
ICAgICAgICAgICAjIGRvbid0IGRvdWJsZS1yZXBvcnQgdGhvc2UgdGVzdHMuIFdlIGRvIGRvdWJs
ZS1yZXBvcnQgZm9yIHRpbWVvdXRzCisgICAgICAgICAgICAjIHNpbmNlIHdlIHN0aWxsIHdhbnQg
dG8gc2VlIHRoZSB0ZXh0IGFuZCBpbWFnZSBvdXRwdXQuCisgICAgICAgICAgICBpZiBub3QgdGVz
dF9vdXRwdXQuY3Jhc2g6CisgICAgICAgICAgICAgICAgZmFpbHVyZXMuZXh0ZW5kKG5ld19mYWls
dXJlcykKKyAgICAgICAgICAgIHRpbWVfZm9yX2RpZmZzW3Rlc3RfdHlwZS5fX2NsYXNzX18uX19u
YW1lX19dID0gKAorICAgICAgICAgICAgICAgIHRpbWUudGltZSgpIC0gc3RhcnRfZGlmZl90aW1l
KQorCisgICAgICAgIHRvdGFsX3RpbWVfZm9yX2FsbF9kaWZmcyA9IHRpbWUudGltZSgpIC0gc3Rh
cnRfZGlmZl90aW1lCisgICAgICAgIHJldHVybiB0ZXN0X3Jlc3VsdHMuVGVzdFJlc3VsdCh0ZXN0
X2ZpbGVuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFpbHVy
ZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X291dHB1dC50
ZXN0X3RpbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3RhbF90
aW1lX2Zvcl9hbGxfZGlmZnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB0aW1lX2Zvcl9kaWZmcykKKworICAgIGRlZiBfZXhwZWN0ZWRfdGVzdF9vdXRwdXQoc2VsZiwg
ZmlsZW5hbWUpOgorICAgICAgICAiIiJSZXR1cm5zIGFuIGV4cGVjdGVkIFRlc3RPdXRwdXQgb2Jq
ZWN0LiIiIgorICAgICAgICByZXR1cm4gdGVzdF9vdXRwdXQuVGVzdE91dHB1dChzZWxmLl9wb3J0
LmV4cGVjdGVkX3RleHQoZmlsZW5hbWUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc2VsZi5fcG9ydC5leHBlY3RlZF9pbWFnZShmaWxlbmFtZSksCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9wb3J0LmV4cGVjdGVkX2NoZWNrc3VtKGZpbGVu
YW1lKSkKKworICAgIGRlZiBfdGVhcl9kb3duX3Rlc3Qoc2VsZiwgdGVzdF9pbnB1dCwgcmVzdWx0
KToKKyAgICAgICAgc2VsZi5fbnVtX3Rlc3RzICs9IDEKKyAgICAgICAgc2VsZi5fYmF0Y2hfY291
bnQgKz0gMQorICAgICAgICBzZWxmLl90ZXN0c19ydW5fZmlsZS53cml0ZSh0ZXN0X2lucHV0LmZp
bGVuYW1lICsgIlxuIikKKyAgICAgICAgdGVzdF9uYW1lID0gc2VsZi5fcG9ydC5yZWxhdGl2ZV90
ZXN0X2ZpbGVuYW1lKHRlc3RfaW5wdXQuZmlsZW5hbWUpCisKKyAgICAgICAgaWYgcmVzdWx0LmZh
aWx1cmVzOgorICAgICAgICAgICAgIyBDaGVjayBhbmQga2lsbCBEdW1wUmVuZGVyVHJlZSBpZiB3
ZSBuZWVkIHRvLgorICAgICAgICAgICAgaWYgYW55KFtmLnNob3VsZF9raWxsX2R1bXBfcmVuZGVy
X3RyZWUoKSBmb3IgZiBpbiByZXN1bHQuZmFpbHVyZXNdKToKKyAgICAgICAgICAgICAgICBzZWxm
Ll9raWxsX2R1bXBfcmVuZGVyX3RyZWUoKQorICAgICAgICAgICAgICAgICMgUmVzZXQgdGhlIGJh
dGNoIGNvdW50IHNpbmNlIHRoZSBzaGVsbCBqdXN0IGJvdW5jZWQuCisgICAgICAgICAgICAgICAg
c2VsZi5fYmF0Y2hfY291bnQgPSAwCisKKyAgICAgICAgICAgICMgUHJpbnQgdGhlIGVycm9yIG1l
c3NhZ2UocykuCisgICAgICAgICAgICBfbG9nLmRlYnVnKCIlcyAlcyBmYWlsZWQ6IiAlIChzZWxm
Ll9uYW1lLCB0ZXN0X25hbWUpKQorICAgICAgICAgICAgZm9yIGYgaW4gcmVzdWx0LmZhaWx1cmVz
OgorICAgICAgICAgICAgICAgIF9sb2cuZGVidWcoIiVzICAlcyIgJSAoc2VsZi5fbmFtZSwgZi5t
ZXNzYWdlKCkpKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgX2xvZy5kZWJ1ZygiJXMgJXMg
cGFzc2VkIiAlIChzZWxmLl9uYW1lLCB0ZXN0X25hbWUpKQorCisgICAgICAgIHNlbGYuX3Jlc3Vs
dF9xdWV1ZS5wdXQocmVzdWx0LmR1bXBzKCkpCisKKyAgICAgICAgaWYgc2VsZi5fYmF0Y2hfc2l6
ZSA+IDAgYW5kIHNlbGYuX2JhdGNoX2NvdW50ID49IHNlbGYuX2JhdGNoX3NpemU6CisgICAgICAg
ICAgICAjIEJvdW5jZSB0aGUgc2hlbGwgYW5kIHJlc2V0IGNvdW50LgorICAgICAgICAgICAgc2Vs
Zi5fa2lsbF9kdW1wX3JlbmRlcl90cmVlKCkKKyAgICAgICAgICAgIHNlbGYuX2JhdGNoX2NvdW50
ID0gMAorCisgICAgICAgIGlmIHNlbGYuX3Rlc3RfcnVubmVyOgorICAgICAgICAgICAgc2VsZi5f
dGVzdF9ydW5uZXIudXBkYXRlX3N1bW1hcnkoc2VsZi5fcmVzdWx0X3N1bW1hcnkpCiAKICAgICBk
ZWYgX3N0YXJ0X3NlcnZlcnNfd2l0aF9sb2NrKHNlbGYpOgotICAgICAgICAiIiJBY3F1aXJlIGh0
dHAgbG9jayBhbmQgc3RhcnQgdGhlIHNlcnZlcnMuIiIiCiAgICAgICAgIHNlbGYuX2h0dHBfbG9j
a193YWl0X2JlZ2luID0gdGltZS50aW1lKCkKLSAgICAgICAgX2xvZy5kZWJ1ZygnQWNxdWlyZSBo
dHRwIGxvY2sgLi4uJykKKyAgICAgICAgX2xvZy5kZWJ1ZygnQWNxdWlyaW5nIGh0dHAgbG9jayAu
Li4nKQogICAgICAgICBzZWxmLl9wb3J0LmFjcXVpcmVfaHR0cF9sb2NrKCkKICAgICAgICAgX2xv
Zy5kZWJ1ZygnU3RhcnRpbmcgSFRUUCBzZXJ2ZXIgLi4uJykKICAgICAgICAgc2VsZi5fcG9ydC5z
dGFydF9odHRwX3NlcnZlcigpCkBAIC01NTEsNiArNDg5LDE0IEBAIGNsYXNzIFRlc3RTaGVsbFRo
cmVhZChXYXRjaGFibGVUaHJlYWQpOgogICAgICAgICBzZWxmLl9odHRwX2xvY2tfd2FpdF9lbmQg
PSB0aW1lLnRpbWUoKQogICAgICAgICBzZWxmLl9oYXZlX2h0dHBfbG9jayA9IFRydWUKIAorICAg
IGRlZiBfaHR0cF9sb2NrX3dhaXRfdGltZShzZWxmKToKKyAgICAgICAgIiIiUmV0dXJuIHRoZSB0
aW1lIHdoYXQgaHR0cCBsb2NraW5nIHRha2VzLiIiIgorICAgICAgICBpZiBzZWxmLl9odHRwX2xv
Y2tfd2FpdF9iZWdpbiA9PSAwOgorICAgICAgICAgICAgcmV0dXJuIDAKKyAgICAgICAgaWYgc2Vs
Zi5faHR0cF9sb2NrX3dhaXRfZW5kID09IDA6CisgICAgICAgICAgICByZXR1cm4gdGltZS50aW1l
KCkgLSBzZWxmLl9odHRwX2xvY2tfd2FpdF9iZWdpbgorICAgICAgICByZXR1cm4gc2VsZi5faHR0
cF9sb2NrX3dhaXRfZW5kIC0gc2VsZi5faHR0cF9sb2NrX3dhaXRfYmVnaW4KKwogICAgIGRlZiBf
c3RvcF9zZXJ2ZXJzX3dpdGhfbG9jayhzZWxmKToKICAgICAgICAgIiIiU3RvcCB0aGUgc2VydmVy
cyBhbmQgcmVsZWFzZSBodHRwIGxvY2suIiIiCiAgICAgICAgIGlmIHNlbGYuX2hhdmVfaHR0cF9s
b2NrOgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvbGF5b3V0X3BhY2thZ2UvbWVzc2FnZV9icm9rZXIucHkgYi9XZWJLaXRUb29scy9TY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9tZXNzYWdlX2Jyb2tlci5weQpp
bmRleCBlNTIwYTljYWE2Yjc2ODJlYmZkZDJhOThiYjIxN2ViODVkNzI1MWJjLi5jMDZlZTRlOGZi
ZDgyYWZhMmJhYTRmMWFjOTA2N2Q4YWFmYWJhZTVjIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9tZXNzYWdlX2Jyb2tl
ci5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlv
dXRfcGFja2FnZS9tZXNzYWdlX2Jyb2tlci5weQpAQCAtMjYsNyArMjYsNyBAQAogIyAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KIAotIiIiTW9kdWxlIGZvciBoYW5kbGluZyBtZXNzYWdlcywg
dGhyZWFkcywgcHJvY2Vzc2VzLCBhbmQgY29uY3VycmVuY3kgZm9yIHJ1bi13ZWJraXQtdGVzdHMu
CisiIiJNb2R1bGUgZm9yIGhhbmRsaW5nIG1lc3NhZ2VzIGFuZCBjb25jdXJyZW5jeSBmb3IgcnVu
LXdlYmtpdC10ZXN0cy4KIAogVGVzdGluZyBpcyBhY2NvbXBsaXNoZWQgYnkgaGF2aW5nIGEgbWFu
YWdlciAoVGVzdFJ1bm5lcikgZ2F0aGVyIGFsbCBvZiB0aGUKIHRlc3RzIHRvIGJlIHJ1biwgYW5k
IHNlbmRpbmcgbWVzc2FnZXMgdG8gYSBwb29sIG9mIHdvcmtlcnMgKFRlc3RTaGVsbFRocmVhZHMp
CkBAIC01NCwyOSArNTQsMjAgQEAgZGVmIGdldChwb3J0LCBvcHRpb25zKToKICAgICAiIiJSZXR1
cm4gYW4gaW5zdGFuY2Ugb2YgYSBXb3JrZXJNZXNzYWdlQnJva2VyLiIiIgogICAgIHdvcmtlcl9t
b2RlbCA9IG9wdGlvbnMud29ya2VyX21vZGVsCiAgICAgaWYgd29ya2VyX21vZGVsID09ICdpbmxp
bmUnOgotICAgICAgICByZXR1cm4gSW5saW5lQnJva2VyKHBvcnQsIG9wdGlvbnMpCisgICAgICAg
IHJldHVybiBfSW5saW5lQnJva2VyKHBvcnQsIG9wdGlvbnMpCiAgICAgaWYgd29ya2VyX21vZGVs
ID09ICd0aHJlYWRzJzoKLSAgICAgICAgcmV0dXJuIE11bHRpVGhyZWFkZWRCcm9rZXIocG9ydCwg
b3B0aW9ucykKKyAgICAgICAgcmV0dXJuIF9NdWx0aVRocmVhZGVkQnJva2VyKHBvcnQsIG9wdGlv
bnMpCiAgICAgcmFpc2UgVmFsdWVFcnJvcigndW5zdXBwb3J0ZWQgdmFsdWUgZm9yIC0td29ya2Vy
LW1vZGVsOiAlcycgJSB3b3JrZXJfbW9kZWwpCiAKIAotY2xhc3MgX1dvcmtlclN0YXRlKG9iamVj
dCk6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIG5hbWUpOgotICAgICAgICBzZWxmLm5hbWUgPSBu
YW1lCi0gICAgICAgIHNlbGYudGhyZWFkID0gTm9uZQotCi0KLWNsYXNzIFdvcmtlck1lc3NhZ2VC
cm9rZXIob2JqZWN0KToKK2NsYXNzIF9Xb3JrZXJNZXNzYWdlQnJva2VyKG9iamVjdCk6CiAgICAg
ZGVmIF9faW5pdF9fKHNlbGYsIHBvcnQsIG9wdGlvbnMpOgogICAgICAgICBzZWxmLl9wb3J0ID0g
cG9ydAogICAgICAgICBzZWxmLl9vcHRpb25zID0gb3B0aW9ucwogICAgICAgICBzZWxmLl9udW1f
d29ya2VycyA9IGludChzZWxmLl9vcHRpb25zLmNoaWxkX3Byb2Nlc3NlcykKIAotICAgICAgICAj
IFRoaXMgbWFwcyB3b3JrZXIgbmFtZXMgdG8gdGhlaXIgX1dvcmtlclN0YXRlIHZhbHVlcy4KLSAg
ICAgICAgc2VsZi5fd29ya2VycyA9IHt9Ci0KLSAgICBkZWYgX3RocmVhZHMoc2VsZik6Ci0gICAg
ICAgIHJldHVybiB0dXBsZShbdy50aHJlYWQgZm9yIHcgaW4gc2VsZi5fd29ya2Vycy52YWx1ZXMo
KV0pCisgICAgICAgICMgVGhpcyBtYXBzIHdvcmtlciBuYW1lcyB0byB0aGVpciBUZXN0U2hlbGxU
aHJlYWQgb2JqZWN0cy4KKyAgICAgICAgc2VsZi5fdGhyZWFkcyA9IHt9CiAKICAgICBkZWYgc3Rh
cnRfd29ya2VycyhzZWxmLCB0ZXN0X3J1bm5lcik6CiAgICAgICAgICIiIlN0YXJ0cyB1cCB0aGUg
cG9vbCBvZiB3b3JrZXJzIGZvciBydW5uaW5nIHRoZSB0ZXN0cy4KQEAgLTg2LDEzICs3NywxOSBA
QCBjbGFzcyBXb3JrZXJNZXNzYWdlQnJva2VyKG9iamVjdCk6CiAgICAgICAgICIiIgogICAgICAg
ICBzZWxmLl90ZXN0X3J1bm5lciA9IHRlc3RfcnVubmVyCiAgICAgICAgIGZvciB3b3JrZXJfbnVt
YmVyIGluIHhyYW5nZShzZWxmLl9udW1fd29ya2Vycyk6Ci0gICAgICAgICAgICB3b3JrZXIgPSBf
V29ya2VyU3RhdGUoJ3dvcmtlci0lZCcgJSB3b3JrZXJfbnVtYmVyKQotICAgICAgICAgICAgd29y
a2VyLnRocmVhZCA9IHNlbGYuX3N0YXJ0X3dvcmtlcih3b3JrZXJfbnVtYmVyLCB3b3JrZXIubmFt
ZSkKLSAgICAgICAgICAgIHNlbGYuX3dvcmtlcnNbd29ya2VyLm5hbWVdID0gd29ya2VyCi0gICAg
ICAgIHJldHVybiBzZWxmLl90aHJlYWRzKCkKKyAgICAgICAgICAgIHRocmVhZCA9IHNlbGYuc3Rh
cnRfd29ya2VyKHdvcmtlcl9udW1iZXIpCisgICAgICAgICAgICBzZWxmLl90aHJlYWRzW3RocmVh
ZC5uYW1lKCldID0gdGhyZWFkCisgICAgICAgIHJldHVybiBzZWxmLl90aHJlYWRzLnZhbHVlcygp
CiAKLSAgICBkZWYgX3N0YXJ0X3dvcmtlcihzZWxmLCB3b3JrZXJfbnVtYmVyLCB3b3JrZXJfbmFt
ZSk6Ci0gICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IKKyAgICBkZWYgc3RhcnRfd29y
a2VyKHNlbGYsIHdvcmtlcl9udW1iZXIpOgorICAgICAgICAjIEZJWE1FOiBSZXBsYWNlIHdpdGgg
c29tZXRoaW5nIHRoYXQgaXNuJ3QgYSB0aHJlYWQuCisgICAgICAgICMgTm90ZTogRG9uJ3Qgc3Rh
cnQoKSB0aGUgdGhyZWFkISBJZiB3ZSBkaWQsIGl0IHdvdWxkIGFjdHVhbGx5CisgICAgICAgICMg
Y3JlYXRlIGFub3RoZXIgdGhyZWFkIGFuZCBzdGFydCBleGVjdXRpbmcgaXQsIGFuZCB3ZSdkIG5v
IGxvbmdlcgorICAgICAgICAjIGJlIHNpbmdsZS10aHJlYWRlZC4KKyAgICAgICAgcmV0dXJuIGR1
bXBfcmVuZGVyX3RyZWVfdGhyZWFkLlRlc3RTaGVsbFRocmVhZChzZWxmLl9wb3J0LAorICAgICAg
ICAgICAgc2VsZi5fb3B0aW9ucywgd29ya2VyX251bWJlciwKKyAgICAgICAgICAgIHNlbGYuX3Rl
c3RfcnVubmVyLl9jdXJyZW50X2ZpbGVuYW1lX3F1ZXVlLAorICAgICAgICAgICAgc2VsZi5fdGVz
dF9ydW5uZXIuX3Jlc3VsdF9xdWV1ZSkKIAogICAgIGRlZiBydW5fbWVzc2FnZV9sb29wKHNlbGYp
OgogICAgICAgICAiIiJMb29wIHByb2Nlc3NpbmcgbWVzc2FnZXMgdW50aWwgZG9uZS4iIiIKQEAg
LTEwNyw0MyArMTA0LDI3IEBAIGNsYXNzIFdvcmtlck1lc3NhZ2VCcm9rZXIob2JqZWN0KToKICAg
ICAgICAgcGFzcwogCiAKLWNsYXNzIElubGluZUJyb2tlcihXb3JrZXJNZXNzYWdlQnJva2VyKToK
LSAgICBkZWYgX3N0YXJ0X3dvcmtlcihzZWxmLCB3b3JrZXJfbnVtYmVyLCB3b3JrZXJfbmFtZSk6
Ci0gICAgICAgICMgRklYTUU6IFJlcGxhY2Ugd2l0aCBzb21ldGhpbmcgdGhhdCBpc24ndCBhIHRo
cmVhZC4KLSAgICAgICAgdGhyZWFkID0gZHVtcF9yZW5kZXJfdHJlZV90aHJlYWQuVGVzdFNoZWxs
VGhyZWFkKHNlbGYuX3BvcnQsCi0gICAgICAgICAgICBzZWxmLl9vcHRpb25zLCB3b3JrZXJfbnVt
YmVyLCB3b3JrZXJfbmFtZSwKLSAgICAgICAgICAgIHNlbGYuX3Rlc3RfcnVubmVyLl9jdXJyZW50
X2ZpbGVuYW1lX3F1ZXVlLAotICAgICAgICAgICAgc2VsZi5fdGVzdF9ydW5uZXIuX3Jlc3VsdF9x
dWV1ZSkKLSAgICAgICAgIyBOb3RlOiBEb24ndCBzdGFydCgpIHRoZSB0aHJlYWQhIElmIHdlIGRp
ZCwgaXQgd291bGQgYWN0dWFsbHkKLSAgICAgICAgIyBjcmVhdGUgYW5vdGhlciB0aHJlYWQgYW5k
IHN0YXJ0IGV4ZWN1dGluZyBpdCwgYW5kIHdlJ2Qgbm8gbG9uZ2VyCi0gICAgICAgICMgYmUgc2lu
Z2xlLXRocmVhZGVkLgotICAgICAgICByZXR1cm4gdGhyZWFkCi0KK2NsYXNzIF9JbmxpbmVCcm9r
ZXIoX1dvcmtlck1lc3NhZ2VCcm9rZXIpOgogICAgIGRlZiBydW5fbWVzc2FnZV9sb29wKHNlbGYp
OgotICAgICAgICB0aHJlYWQgPSBzZWxmLl90aHJlYWRzKClbMF0KKyAgICAgICAgdGhyZWFkID0g
c2VsZi5fdGhyZWFkcy52YWx1ZXMoKVswXQogICAgICAgICB0aHJlYWQucnVuX2luX21haW5fdGhy
ZWFkKHNlbGYuX3Rlc3RfcnVubmVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHNlbGYuX3Rlc3RfcnVubmVyLl9jdXJyZW50X3Jlc3VsdF9zdW1tYXJ5KQogICAgICAgICBzZWxm
Ll90ZXN0X3J1bm5lci51cGRhdGUoKQogCiAKLWNsYXNzIE11bHRpVGhyZWFkZWRCcm9rZXIoV29y
a2VyTWVzc2FnZUJyb2tlcik6Ci0gICAgZGVmIF9zdGFydF93b3JrZXIoc2VsZiwgd29ya2VyX251
bWJlciwgd29ya2VyX25hbWUpOgotICAgICAgICB0aHJlYWQgPSBkdW1wX3JlbmRlcl90cmVlX3Ro
cmVhZC5UZXN0U2hlbGxUaHJlYWQoc2VsZi5fcG9ydCwKLSAgICAgICAgICAgIHNlbGYuX29wdGlv
bnMsIHdvcmtlcl9udW1iZXIsIHdvcmtlcl9uYW1lLAotICAgICAgICAgICAgc2VsZi5fdGVzdF9y
dW5uZXIuX2N1cnJlbnRfZmlsZW5hbWVfcXVldWUsCi0gICAgICAgICAgICBzZWxmLl90ZXN0X3J1
bm5lci5fcmVzdWx0X3F1ZXVlKQorY2xhc3MgX011bHRpVGhyZWFkZWRCcm9rZXIoX1dvcmtlck1l
c3NhZ2VCcm9rZXIpOgorICAgIGRlZiBzdGFydF93b3JrZXIoc2VsZiwgd29ya2VyX251bWJlcik6
CisgICAgICAgIHRocmVhZCA9IHN1cGVyKF9NdWx0aVRocmVhZGVkQnJva2VyLCBzZWxmKS5zdGFy
dF93b3JrZXIod29ya2VyX251bWJlcikKICAgICAgICAgdGhyZWFkLnN0YXJ0KCkKICAgICAgICAg
cmV0dXJuIHRocmVhZAogCiAgICAgZGVmIHJ1bl9tZXNzYWdlX2xvb3Aoc2VsZik6Ci0gICAgICAg
IHRocmVhZHMgPSBzZWxmLl90aHJlYWRzKCkKLQogICAgICAgICAjIExvb3AgdGhyb3VnaCBhbGwg
dGhlIHRocmVhZHMgd2FpdGluZyBmb3IgdGhlbSB0byBmaW5pc2guCiAgICAgICAgIHNvbWVfdGhy
ZWFkX2lzX2FsaXZlID0gVHJ1ZQogICAgICAgICB3aGlsZSBzb21lX3RocmVhZF9pc19hbGl2ZToK
ICAgICAgICAgICAgIHNvbWVfdGhyZWFkX2lzX2FsaXZlID0gRmFsc2UKICAgICAgICAgICAgIHQg
PSB0aW1lLnRpbWUoKQotICAgICAgICAgICAgZm9yIHRocmVhZCBpbiB0aHJlYWRzOgorICAgICAg
ICAgICAgZm9yIHRocmVhZCBpbiBzZWxmLl90aHJlYWRzLnZhbHVlcygpOgogICAgICAgICAgICAg
ICAgIGV4Y2VwdGlvbl9pbmZvID0gdGhyZWFkLmV4Y2VwdGlvbl9pbmZvKCkKICAgICAgICAgICAg
ICAgICBpZiBleGNlcHRpb25faW5mbyBpcyBub3QgTm9uZToKICAgICAgICAgICAgICAgICAgICAg
IyBSZS1yYWlzZSB0aGUgdGhyZWFkJ3MgZXhjZXB0aW9uIGhlcmUgdG8gbWFrZSBpdApAQCAtMTU2
LDcgKzEzNyw3IEBAIGNsYXNzIE11bHRpVGhyZWFkZWRCcm9rZXIoV29ya2VyTWVzc2FnZUJyb2tl
cik6CiAgICAgICAgICAgICAgICAgICAgIHNvbWVfdGhyZWFkX2lzX2FsaXZlID0gVHJ1ZQogICAg
ICAgICAgICAgICAgICAgICBuZXh0X3RpbWVvdXQgPSB0aHJlYWQubmV4dF90aW1lb3V0KCkKICAg
ICAgICAgICAgICAgICAgICAgaWYgbmV4dF90aW1lb3V0IGFuZCB0ID4gbmV4dF90aW1lb3V0Ogot
ICAgICAgICAgICAgICAgICAgICAgICAgbG9nX3dlZGdlZF93b3JrZXIodGhyZWFkLmdldE5hbWUo
KSwgdGhyZWFkLmlkKCkpCisgICAgICAgICAgICAgICAgICAgICAgICBsb2dfd2VkZ2VkX3dvcmtl
cih0aHJlYWQubmFtZSgpLCB0aHJlYWQuaWQoKSkKICAgICAgICAgICAgICAgICAgICAgICAgIHRo
cmVhZC5jbGVhcl9uZXh0X3RpbWVvdXQoKQogCiAgICAgICAgICAgICBzZWxmLl90ZXN0X3J1bm5l
ci51cGRhdGUoKQpAQCAtMTY1LDggKzE0Niw3IEBAIGNsYXNzIE11bHRpVGhyZWFkZWRCcm9rZXIo
V29ya2VyTWVzc2FnZUJyb2tlcik6CiAgICAgICAgICAgICAgICAgdGltZS5zbGVlcCgwLjAxKQog
CiAgICAgZGVmIGNhbmNlbF93b3JrZXJzKHNlbGYpOgotICAgICAgICB0aHJlYWRzID0gc2VsZi5f
dGhyZWFkcygpCi0gICAgICAgIGZvciB0aHJlYWQgaW4gdGhyZWFkczoKKyAgICAgICAgZm9yIHRo
cmVhZCBpbiBzZWxmLl90aHJlYWRzLnZhbHVlcygpOgogICAgICAgICAgICAgdGhyZWFkLmNhbmNl
bCgpCiAKIApkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvbGF5b3V0X3BhY2thZ2UvbWVzc2FnZV9icm9rZXJfdW5pdHRlc3QucHkgYi9XZWJLaXRU
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9tZXNzYWdl
X2Jyb2tlcl91bml0dGVzdC5weQppbmRleCA2ZjA0ZmQzNTUxOGEwNGViZDY5MTlmZjhhOTc2MTNj
ZjRjNWJlMWY0Li5jMDA2NDcxZTRhOWZiMjVmZTFjNjgwOTQ1NzZmMzJjZTUxODFmNWQ5IDEwMDY0
NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRf
cGFja2FnZS9tZXNzYWdlX2Jyb2tlcl91bml0dGVzdC5weQorKysgYi9XZWJLaXRUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9tZXNzYWdlX2Jyb2tlcl91
bml0dGVzdC5weQpAQCAtNDYsNyArNDYsNyBAQCBpbXBvcnQgbWVzc2FnZV9icm9rZXIKIGNsYXNz
IFRlc3RUaHJlYWQodGhyZWFkaW5nLlRocmVhZCk6CiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHN0
YXJ0ZWRfcXVldWUsIHN0b3BwaW5nX3F1ZXVlKToKICAgICAgICAgdGhyZWFkaW5nLlRocmVhZC5f
X2luaXRfXyhzZWxmKQotICAgICAgICBzZWxmLl90aHJlYWRfaWQgPSBOb25lCisgICAgICAgIHNl
bGYuX2lkID0gTm9uZQogICAgICAgICBzZWxmLl9zdGFydGVkX3F1ZXVlID0gc3RhcnRlZF9xdWV1
ZQogICAgICAgICBzZWxmLl9zdG9wcGluZ19xdWV1ZSA9IHN0b3BwaW5nX3F1ZXVlCiAgICAgICAg
IHNlbGYuX3RpbWVvdXQgPSBGYWxzZQpAQCAtNTQsMTAgKzU0LDEwIEBAIGNsYXNzIFRlc3RUaHJl
YWQodGhyZWFkaW5nLlRocmVhZCk6CiAgICAgICAgIHNlbGYuX2V4Y2VwdGlvbl9pbmZvID0gTm9u
ZQogCiAgICAgZGVmIGlkKHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi5fdGhyZWFkX2lkCisg
ICAgICAgIHJldHVybiBzZWxmLl9pZAogCi0gICAgZGVmIGdldE5hbWUoc2VsZik6Ci0gICAgICAg
IHJldHVybiAid29ya2VyLTAiCisgICAgZGVmIG5hbWUoc2VsZik6CisgICAgICAgIHJldHVybiAn
d29ya2VyLzAnCiAKICAgICBkZWYgcnVuKHNlbGYpOgogICAgICAgICBzZWxmLl9jb3ZlcmVkX3J1
bigpCkBAIC02NSw3ICs2NSw3IEBAIGNsYXNzIFRlc3RUaHJlYWQodGhyZWFkaW5nLlRocmVhZCk6
CiAgICAgZGVmIF9jb3ZlcmVkX3J1bihzZWxmKToKICAgICAgICAgIyBGSVhNRTogdGhpcyBpcyBh
IHNlcGFyYXRlIHJvdXRpbmUgdG8gd29yayBhcm91bmQgYSBidWcKICAgICAgICAgIyBpbiBjb3Zl
cmFnZTogc2VlIGh0dHA6Ly9iaXRidWNrZXQub3JnL25lZC9jb3ZlcmFnZXB5L2lzc3VlLzg1Lgot
ICAgICAgICBzZWxmLl90aHJlYWRfaWQgPSB0aHJlYWQuZ2V0X2lkZW50KCkKKyAgICAgICAgc2Vs
Zi5faWQgPSB0aHJlYWQuZ2V0X2lkZW50KCkKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgc2Vs
Zi5fc3RhcnRlZF9xdWV1ZS5wdXQoJycpCiAgICAgICAgICAgICBtc2cgPSBzZWxmLl9zdG9wcGlu
Z19xdWV1ZS5nZXQoKQpAQCAtMTE3LDExICsxMTcsMTEgQEAgY2xhc3MgTXVsdGlUaHJlYWRlZEJy
b2tlclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBvcHRpb25zID0gbW9ja3Rvb2wu
TW9ja09wdGlvbnMoY2hpbGRfcHJvY2Vzc2VzPScxJykKICAgICAgICAgc3RhcnRpbmdfcXVldWUg
PSBRdWV1ZS5RdWV1ZSgpCiAgICAgICAgIHN0b3BwaW5nX3F1ZXVlID0gUXVldWUuUXVldWUoKQot
ICAgICAgICBicm9rZXIgPSBtZXNzYWdlX2Jyb2tlci5NdWx0aVRocmVhZGVkQnJva2VyKHBvcnQs
IG9wdGlvbnMpCisgICAgICAgIGJyb2tlciA9IG1lc3NhZ2VfYnJva2VyLl9NdWx0aVRocmVhZGVk
QnJva2VyKHBvcnQsIG9wdGlvbnMpCiAgICAgICAgIGJyb2tlci5fdGVzdF9ydW5uZXIgPSBydW5u
ZXIKICAgICAgICAgY2hpbGRfdGhyZWFkID0gVGVzdFRocmVhZChzdGFydGluZ19xdWV1ZSwgc3Rv
cHBpbmdfcXVldWUpCi0gICAgICAgIGJyb2tlci5fd29ya2Vyc1snd29ya2VyLTAnXSA9IG1lc3Nh
Z2VfYnJva2VyLl9Xb3JrZXJTdGF0ZSgnd29ya2VyLTAnKQotICAgICAgICBicm9rZXIuX3dvcmtl
cnNbJ3dvcmtlci0wJ10udGhyZWFkID0gY2hpbGRfdGhyZWFkCisgICAgICAgIG5hbWUgPSBjaGls
ZF90aHJlYWQubmFtZSgpCisgICAgICAgIGJyb2tlci5fdGhyZWFkc1tuYW1lXSA9IGNoaWxkX3Ro
cmVhZAogICAgICAgICBjaGlsZF90aHJlYWQuc3RhcnQoKQogICAgICAgICBzdGFydGVkX21zZyA9
IHN0YXJ0aW5nX3F1ZXVlLmdldCgpCiAgICAgICAgIHN0b3BwaW5nX3F1ZXVlLnB1dChtc2cpCkBA
IC0xNjksNyArMTY5LDcgQEAgY2xhc3MgVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAg
IGNoaWxkX3RocmVhZC5zdGFydCgpCiAgICAgICAgIG1zZyA9IHN0YXJ0aW5nX3F1ZXVlLmdldCgp
CiAKLSAgICAgICAgbWVzc2FnZV9icm9rZXIubG9nX3dlZGdlZF93b3JrZXIoY2hpbGRfdGhyZWFk
LmdldE5hbWUoKSwKKyAgICAgICAgbWVzc2FnZV9icm9rZXIubG9nX3dlZGdlZF93b3JrZXIoY2hp
bGRfdGhyZWFkLm5hbWUoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY2hpbGRfdGhyZWFkLmlkKCkpCiAgICAgICAgIHN0b3BwaW5nX3F1ZXVlLnB1dCgnJykKICAg
ICAgICAgY2hpbGRfdGhyZWFkLmpvaW4odGltZW91dD0xLjApCmRpZmYgLS1naXQgYS9XZWJLaXRU
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzLnB5IGIv
V2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0
cy5weQppbmRleCBmNGU5MmE2ODY5OGQ0YjA2OTAzMWQ2YmIxYjM3ODgyZGJhZjFmYWY1Li5iY2M5
MzQ4NDY4Y2JjOTAyNzk1Yjc2MzViNDM2MjFlYzMwNTBkZDVjIDEwMDc1NQotLS0gYS9XZWJLaXRU
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzLnB5Cisr
KyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRf
dGVzdHMucHkKQEAgLTYwMyw3ICs2MDMsNyBAQCBjbGFzcyBUZXN0UnVubmVyOgogICAgICAgICBp
ZiBub3Qgc2VsZi5fb3B0aW9ucy5kcnlfcnVuOgogICAgICAgICAgICAgdGhyZWFkcyA9IG1lc3Nh
Z2VfYnJva2VyLnN0YXJ0X3dvcmtlcnMoc2VsZikKICAgICAgICAgZWxzZToKLSAgICAgICAgICAg
IHRocmVhZHMgPSB7fQorICAgICAgICAgICAgdGhyZWFkcyA9IFtdCiAKICAgICAgICAgc2VsZi5f
cHJpbnRlci5wcmludF91cGRhdGUoIlN0YXJ0aW5nIHRlc3RpbmcgLi4uIikKICAgICAgICAga2V5
Ym9hcmRfaW50ZXJydXB0ZWQgPSBGYWxzZQpAQCAtMTU3MSw3ICsxNTcxLDcgQEAgZGVmIHBhcnNl
X2FyZ3MoYXJncz1Ob25lKToKICAgICAgICAgIyBGSVhNRTogRGlzcGxheSBkZWZhdWx0IG51bWJl
ciBvZiBjaGlsZCBwcm9jZXNzZXMgdGhhdCB3aWxsIHJ1bi4KICAgICAgICAgb3B0cGFyc2UubWFr
ZV9vcHRpb24oIi0td29ya2VyLW1vZGVsIiwgYWN0aW9uPSJzdG9yZSIsCiAgICAgICAgICAgICBk
ZWZhdWx0PSJ0aHJlYWRzIiwgaGVscD0oImNvbnRyb2xzIHdvcmtlciBtb2RlbC4gVmFsaWQgdmFs
dWVzIGFyZSAiCi0gICAgICAgICAgICAiJ2lubGluZScgYW5kICd0aHJlYWRzJyAoZGVmYXVsdCku
IikpLAorICAgICAgICAgICAgIidpbmxpbmUnIGFuZCAndGhyZWFkcycgKGRlZmF1bHQ6ICVkZWZh
dWx0KS4iKSksCiAgICAgICAgIG9wdHBhcnNlLm1ha2Vfb3B0aW9uKCItLWV4cGVyaW1lbnRhbC1m
dWxseS1wYXJhbGxlbCIsCiAgICAgICAgICAgICBhY3Rpb249InN0b3JlX3RydWUiLCBkZWZhdWx0
PUZhbHNlLAogICAgICAgICAgICAgaGVscD0icnVuIGFsbCB0ZXN0cyBpbiBwYXJhbGxlbCIpLAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>75415</attachid>
            <date>2010-12-02 13:56:46 -0800</date>
            <delta_ts>2010-12-02 16:53:39 -0800</delta_ts>
            <desc>upload the incremental diff, not the whole diff</desc>
            <filename>bug-50372-20101202135645.patch</filename>
            <type>text/plain</type>
            <size>13725</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCAzZWIzYWNhOTM0MjkyZTY4NzdlNDk5NWZlMGFmYmJkNTBiZWE3ZGViLi5kZjg1NDM3
MTI3YWIzODU0ZWE5YmM5NzdhZWE1ZTgzZjE2OTM1YzRkIDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0yLDYgKzIsMzIgQEAK
IAogICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KIAorICAgICAgICBuZXctcnVu
LXdlYmtpdC10ZXN0czogbWlub3IgY2xlYW51cCBmb3IgbXVsdGlwcm9jZXNzaW5nIHdvcmsKKwor
ICAgICAgICBUaGlzIGNoYW5nZToKKyAgICAgICAgKiBtb3ZlcyB3b3JrZXIgbmFtaW5nIGludG8g
VGVzdFNoZWxsVGhyZWFkLCBlbGltaW5hdGluZyBhCisgICAgICAgICAgcGFyYW1ldGVyIHRvIHRo
ZSBjb25zdHJ1Y3RvciBhbmQgcHV0dGluZyB0aGUgcmVzcG9uc2liaWxpdHkgaW4KKyAgICAgICAg
ICB0aGUgY29ycmVjdCBwbGFjZS4KKyAgICAgICAgKiBlbGltaW5hdGVzIHRoZSBfV29ya2VyU3Rh
dGUoKSBjbGFzcyBpbiBtZXNzYWdlX2Jyb2tlciwgYmVjYXVzZQorICAgICAgICAgIGl0IHR1cm5z
IG91dCB0aGF0IHN0YXRlIHJlYWxseSBuZWVkcyB0byBiZSBpbiBydW5fd2Via2l0X3Rlc3RzCisg
ICAgICAgICogcmVuYW1lcyB0aGUgQnJva2VyIGNsYXNzZXMgdG8gYmUgbW9kdWxlLXByaXZhdGUu
CisgICAgICAgICogZml4ZXMgYSBidW5jaCBvZiBtaW5vciBjb21tZW50aW5nIGFuZCB3aGl0ZXNw
YWNlIGlzc3VlcyB0bworICAgICAgICAgIG1ha2Ugc3Vic2VxdWVudCBwYXRjaGVzIGEgYml0IGNs
ZWFyZXIuCisKKyAgICAgICAgVGhpcyBwYXRjaCBkZXBlbmRzIG9uIGJ1ZyA1MDM2Ny4KKworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTAzNzIKKworICAg
ICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL2R1bXBf
cmVuZGVyX3RyZWVfdGhyZWFkLnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL2xheW91dF9wYWNrYWdlL21lc3NhZ2VfYnJva2VyLnB5OgorICAgICAgICAqIFNjcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL21lc3NhZ2VfYnJva2VyX3Vu
aXR0ZXN0LnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93
ZWJraXRfdGVzdHMucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
cnVuX3dlYmtpdF90ZXN0c191bml0dGVzdC5weToKKworMjAxMC0xMi0wMSAgRGlyayBQcmFua2Ug
IDxkcHJhbmtlQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKwogICAgICAgICBUaGlzIGNoYW5nZSBpcyBhIGJ1bmNoIG9mIGNsZWFudXAgLyByZWZh
Y3RvcmluZyBvZiB0aGUgZmlsZQogICAgICAgICBiZWxvdy4gSXQgbW92ZXMgYSBidW5jaCBvZiBm
cmVlIGZ1bmN0aW9ucyB0byBtZXRob2RzIG9uIHRoZQogICAgICAgICBUZXN0U2hlbGxUaHJlYWQg
Y2xhc3MsIGFuZCByZXN0cnVjdHVyZXMgb3RoZXIgbWV0aG9kcyB0byBiZQpkaWZmIC0tZ2l0IGEv
V2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2Uv
ZHVtcF9yZW5kZXJfdHJlZV90aHJlYWQucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9kdW1wX3JlbmRlcl90cmVlX3RocmVhZC5weQpp
bmRleCBjNjhjYTU0Mjc0NjljOTY2YjgwNjgyNjA2ZGQ3NjEyNTFjNjkzMWM4Li5kMDhlYTBjZTFj
YzE5NDQ5OTRmZDBkMGVlYjAyYjkyMzdmYThjMDg1IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9kdW1wX3JlbmRlcl90
cmVlX3RocmVhZC5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9sYXlvdXRfcGFja2FnZS9kdW1wX3JlbmRlcl90cmVlX3RocmVhZC5weQpAQCAtOTgsNyAr
OTgsNyBAQCBjbGFzcyBXYXRjaGFibGVUaHJlYWQodGhyZWFkaW5nLlRocmVhZCk6CiAKIAogY2xh
c3MgVGVzdFNoZWxsVGhyZWFkKFdhdGNoYWJsZVRocmVhZCk6Ci0gICAgZGVmIF9faW5pdF9fKHNl
bGYsIHBvcnQsIG9wdGlvbnMsIHdvcmtlcl9udW1iZXIsIHdvcmtlcl9uYW1lLAorICAgIGRlZiBf
X2luaXRfXyhzZWxmLCBwb3J0LCBvcHRpb25zLCB3b3JrZXJfbnVtYmVyLAogICAgICAgICAgICAg
ICAgICBmaWxlbmFtZV9saXN0X3F1ZXVlLCByZXN1bHRfcXVldWUpOgogICAgICAgICAiIiJJbml0
aWFsaXplIGFsbCB0aGUgbG9jYWwgc3RhdGUgZm9yIHRoaXMgRHVtcFJlbmRlclRyZWUgdGhyZWFk
LgogCkBAIC0xMDYsNyArMTA2LDYgQEAgY2xhc3MgVGVzdFNoZWxsVGhyZWFkKFdhdGNoYWJsZVRo
cmVhZCk6CiAgICAgICAgICAgcG9ydDogaW50ZXJmYWNlIHRvIHBvcnQtc3BlY2lmaWMgaG9va3MK
ICAgICAgICAgICBvcHRpb25zOiBjb21tYW5kIGxpbmUgb3B0aW9ucyBhcmd1bWVudCBmcm9tIG9w
dHBhcnNlCiAgICAgICAgICAgd29ya2VyX251bWJlcjogaWRlbnRpZmllciBmb3IgYSBwYXJ0aWN1
bGFyIHdvcmtlciB0aHJlYWQuCi0gICAgICAgICAgd29ya2VyX25hbWU6IGZvciBsb2dnaW5nLgog
ICAgICAgICAgIGZpbGVuYW1lX2xpc3RfcXVldWU6IEEgdGhyZWFkIHNhZmUgUXVldWUgY2xhc3Mg
dGhhdCBjb250YWlucyBsaXN0cwogICAgICAgICAgICAgICBvZiB0dXBsZXMgb2YgKGZpbGVuYW1l
LCB1cmkpIHBhaXJzLgogICAgICAgICAgIHJlc3VsdF9xdWV1ZTogQSB0aHJlYWQgc2FmZSBRdWV1
ZSBjbGFzcyB0aGF0IHdpbGwgY29udGFpbgpAQCAtMTE2LDcgKzExNSw3IEBAIGNsYXNzIFRlc3RT
aGVsbFRocmVhZChXYXRjaGFibGVUaHJlYWQpOgogICAgICAgICBzZWxmLl9wb3J0ID0gcG9ydAog
ICAgICAgICBzZWxmLl9vcHRpb25zID0gb3B0aW9ucwogICAgICAgICBzZWxmLl93b3JrZXJfbnVt
YmVyID0gd29ya2VyX251bWJlcgotICAgICAgICBzZWxmLl9uYW1lID0gd29ya2VyX25hbWUKKyAg
ICAgICAgc2VsZi5fbmFtZSA9ICd3b3JrZXIvJWQnICUgd29ya2VyX251bWJlcgogICAgICAgICBz
ZWxmLl9maWxlbmFtZV9saXN0X3F1ZXVlID0gZmlsZW5hbWVfbGlzdF9xdWV1ZQogICAgICAgICBz
ZWxmLl9yZXN1bHRfcXVldWUgPSByZXN1bHRfcXVldWUKIApAQCAtMTgxLDYgKzE4MCw5IEBAIGNs
YXNzIFRlc3RTaGVsbFRocmVhZChXYXRjaGFibGVUaHJlYWQpOgogICAgIGRlZiBnZXRfbnVtX3Rl
c3RzKHNlbGYpOgogICAgICAgICByZXR1cm4gc2VsZi5fbnVtX3Rlc3RzCiAKKyAgICBkZWYgbmFt
ZShzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX25hbWUKKwogICAgIGRlZiBuZXh0X3RpbWVv
dXQoc2VsZik6CiAgICAgICAgICIiIlJldHVybiB0aGUgdGltZSB0aGUgdGVzdCBpcyBzdXBwb3Nl
ZCB0byBmaW5pc2ggYnkuIiIiCiAgICAgICAgIGlmIHNlbGYuX25leHRfdGltZW91dDoKZGlmZiAt
LWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9w
YWNrYWdlL21lc3NhZ2VfYnJva2VyLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvbWVzc2FnZV9icm9rZXIucHkKaW5kZXggZTUyMGE5
Y2FhNmI3NjgyZWJmZGQyYTk4YmIyMTdlYjg1ZDcyNTFiYy4uYzA2ZWU0ZThmYmQ4MmFmYTJiYWE0
ZjFhYzkwNjdkOGFhZmFiYWU1YyAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvbWVzc2FnZV9icm9rZXIucHkKKysrIGIv
V2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2Uv
bWVzc2FnZV9icm9rZXIucHkKQEAgLTI2LDcgKzI2LDcgQEAKICMgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiAjIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCiAKLSIiIk1vZHVsZSBmb3IgaGFuZGxpbmcgbWVzc2FnZXMsIHRocmVhZHMsIHBy
b2Nlc3NlcywgYW5kIGNvbmN1cnJlbmN5IGZvciBydW4td2Via2l0LXRlc3RzLgorIiIiTW9kdWxl
IGZvciBoYW5kbGluZyBtZXNzYWdlcyBhbmQgY29uY3VycmVuY3kgZm9yIHJ1bi13ZWJraXQtdGVz
dHMuCiAKIFRlc3RpbmcgaXMgYWNjb21wbGlzaGVkIGJ5IGhhdmluZyBhIG1hbmFnZXIgKFRlc3RS
dW5uZXIpIGdhdGhlciBhbGwgb2YgdGhlCiB0ZXN0cyB0byBiZSBydW4sIGFuZCBzZW5kaW5nIG1l
c3NhZ2VzIHRvIGEgcG9vbCBvZiB3b3JrZXJzIChUZXN0U2hlbGxUaHJlYWRzKQpAQCAtNTQsMjkg
KzU0LDIwIEBAIGRlZiBnZXQocG9ydCwgb3B0aW9ucyk6CiAgICAgIiIiUmV0dXJuIGFuIGluc3Rh
bmNlIG9mIGEgV29ya2VyTWVzc2FnZUJyb2tlci4iIiIKICAgICB3b3JrZXJfbW9kZWwgPSBvcHRp
b25zLndvcmtlcl9tb2RlbAogICAgIGlmIHdvcmtlcl9tb2RlbCA9PSAnaW5saW5lJzoKLSAgICAg
ICAgcmV0dXJuIElubGluZUJyb2tlcihwb3J0LCBvcHRpb25zKQorICAgICAgICByZXR1cm4gX0lu
bGluZUJyb2tlcihwb3J0LCBvcHRpb25zKQogICAgIGlmIHdvcmtlcl9tb2RlbCA9PSAndGhyZWFk
cyc6Ci0gICAgICAgIHJldHVybiBNdWx0aVRocmVhZGVkQnJva2VyKHBvcnQsIG9wdGlvbnMpCisg
ICAgICAgIHJldHVybiBfTXVsdGlUaHJlYWRlZEJyb2tlcihwb3J0LCBvcHRpb25zKQogICAgIHJh
aXNlIFZhbHVlRXJyb3IoJ3Vuc3VwcG9ydGVkIHZhbHVlIGZvciAtLXdvcmtlci1tb2RlbDogJXMn
ICUgd29ya2VyX21vZGVsKQogCiAKLWNsYXNzIF9Xb3JrZXJTdGF0ZShvYmplY3QpOgotICAgIGRl
ZiBfX2luaXRfXyhzZWxmLCBuYW1lKToKLSAgICAgICAgc2VsZi5uYW1lID0gbmFtZQotICAgICAg
ICBzZWxmLnRocmVhZCA9IE5vbmUKLQotCi1jbGFzcyBXb3JrZXJNZXNzYWdlQnJva2VyKG9iamVj
dCk6CitjbGFzcyBfV29ya2VyTWVzc2FnZUJyb2tlcihvYmplY3QpOgogICAgIGRlZiBfX2luaXRf
XyhzZWxmLCBwb3J0LCBvcHRpb25zKToKICAgICAgICAgc2VsZi5fcG9ydCA9IHBvcnQKICAgICAg
ICAgc2VsZi5fb3B0aW9ucyA9IG9wdGlvbnMKICAgICAgICAgc2VsZi5fbnVtX3dvcmtlcnMgPSBp
bnQoc2VsZi5fb3B0aW9ucy5jaGlsZF9wcm9jZXNzZXMpCiAKLSAgICAgICAgIyBUaGlzIG1hcHMg
d29ya2VyIG5hbWVzIHRvIHRoZWlyIF9Xb3JrZXJTdGF0ZSB2YWx1ZXMuCi0gICAgICAgIHNlbGYu
X3dvcmtlcnMgPSB7fQotCi0gICAgZGVmIF90aHJlYWRzKHNlbGYpOgotICAgICAgICByZXR1cm4g
dHVwbGUoW3cudGhyZWFkIGZvciB3IGluIHNlbGYuX3dvcmtlcnMudmFsdWVzKCldKQorICAgICAg
ICAjIFRoaXMgbWFwcyB3b3JrZXIgbmFtZXMgdG8gdGhlaXIgVGVzdFNoZWxsVGhyZWFkIG9iamVj
dHMuCisgICAgICAgIHNlbGYuX3RocmVhZHMgPSB7fQogCiAgICAgZGVmIHN0YXJ0X3dvcmtlcnMo
c2VsZiwgdGVzdF9ydW5uZXIpOgogICAgICAgICAiIiJTdGFydHMgdXAgdGhlIHBvb2wgb2Ygd29y
a2VycyBmb3IgcnVubmluZyB0aGUgdGVzdHMuCkBAIC04NiwxMyArNzcsMTkgQEAgY2xhc3MgV29y
a2VyTWVzc2FnZUJyb2tlcihvYmplY3QpOgogICAgICAgICAiIiIKICAgICAgICAgc2VsZi5fdGVz
dF9ydW5uZXIgPSB0ZXN0X3J1bm5lcgogICAgICAgICBmb3Igd29ya2VyX251bWJlciBpbiB4cmFu
Z2Uoc2VsZi5fbnVtX3dvcmtlcnMpOgotICAgICAgICAgICAgd29ya2VyID0gX1dvcmtlclN0YXRl
KCd3b3JrZXItJWQnICUgd29ya2VyX251bWJlcikKLSAgICAgICAgICAgIHdvcmtlci50aHJlYWQg
PSBzZWxmLl9zdGFydF93b3JrZXIod29ya2VyX251bWJlciwgd29ya2VyLm5hbWUpCi0gICAgICAg
ICAgICBzZWxmLl93b3JrZXJzW3dvcmtlci5uYW1lXSA9IHdvcmtlcgotICAgICAgICByZXR1cm4g
c2VsZi5fdGhyZWFkcygpCisgICAgICAgICAgICB0aHJlYWQgPSBzZWxmLnN0YXJ0X3dvcmtlcih3
b3JrZXJfbnVtYmVyKQorICAgICAgICAgICAgc2VsZi5fdGhyZWFkc1t0aHJlYWQubmFtZSgpXSA9
IHRocmVhZAorICAgICAgICByZXR1cm4gc2VsZi5fdGhyZWFkcy52YWx1ZXMoKQogCi0gICAgZGVm
IF9zdGFydF93b3JrZXIoc2VsZiwgd29ya2VyX251bWJlciwgd29ya2VyX25hbWUpOgotICAgICAg
ICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yCisgICAgZGVmIHN0YXJ0X3dvcmtlcihzZWxmLCB3
b3JrZXJfbnVtYmVyKToKKyAgICAgICAgIyBGSVhNRTogUmVwbGFjZSB3aXRoIHNvbWV0aGluZyB0
aGF0IGlzbid0IGEgdGhyZWFkLgorICAgICAgICAjIE5vdGU6IERvbid0IHN0YXJ0KCkgdGhlIHRo
cmVhZCEgSWYgd2UgZGlkLCBpdCB3b3VsZCBhY3R1YWxseQorICAgICAgICAjIGNyZWF0ZSBhbm90
aGVyIHRocmVhZCBhbmQgc3RhcnQgZXhlY3V0aW5nIGl0LCBhbmQgd2UnZCBubyBsb25nZXIKKyAg
ICAgICAgIyBiZSBzaW5nbGUtdGhyZWFkZWQuCisgICAgICAgIHJldHVybiBkdW1wX3JlbmRlcl90
cmVlX3RocmVhZC5UZXN0U2hlbGxUaHJlYWQoc2VsZi5fcG9ydCwKKyAgICAgICAgICAgIHNlbGYu
X29wdGlvbnMsIHdvcmtlcl9udW1iZXIsCisgICAgICAgICAgICBzZWxmLl90ZXN0X3J1bm5lci5f
Y3VycmVudF9maWxlbmFtZV9xdWV1ZSwKKyAgICAgICAgICAgIHNlbGYuX3Rlc3RfcnVubmVyLl9y
ZXN1bHRfcXVldWUpCiAKICAgICBkZWYgcnVuX21lc3NhZ2VfbG9vcChzZWxmKToKICAgICAgICAg
IiIiTG9vcCBwcm9jZXNzaW5nIG1lc3NhZ2VzIHVudGlsIGRvbmUuIiIiCkBAIC0xMDcsNDMgKzEw
NCwyNyBAQCBjbGFzcyBXb3JrZXJNZXNzYWdlQnJva2VyKG9iamVjdCk6CiAgICAgICAgIHBhc3MK
IAogCi1jbGFzcyBJbmxpbmVCcm9rZXIoV29ya2VyTWVzc2FnZUJyb2tlcik6Ci0gICAgZGVmIF9z
dGFydF93b3JrZXIoc2VsZiwgd29ya2VyX251bWJlciwgd29ya2VyX25hbWUpOgotICAgICAgICAj
IEZJWE1FOiBSZXBsYWNlIHdpdGggc29tZXRoaW5nIHRoYXQgaXNuJ3QgYSB0aHJlYWQuCi0gICAg
ICAgIHRocmVhZCA9IGR1bXBfcmVuZGVyX3RyZWVfdGhyZWFkLlRlc3RTaGVsbFRocmVhZChzZWxm
Ll9wb3J0LAotICAgICAgICAgICAgc2VsZi5fb3B0aW9ucywgd29ya2VyX251bWJlciwgd29ya2Vy
X25hbWUsCi0gICAgICAgICAgICBzZWxmLl90ZXN0X3J1bm5lci5fY3VycmVudF9maWxlbmFtZV9x
dWV1ZSwKLSAgICAgICAgICAgIHNlbGYuX3Rlc3RfcnVubmVyLl9yZXN1bHRfcXVldWUpCi0gICAg
ICAgICMgTm90ZTogRG9uJ3Qgc3RhcnQoKSB0aGUgdGhyZWFkISBJZiB3ZSBkaWQsIGl0IHdvdWxk
IGFjdHVhbGx5Ci0gICAgICAgICMgY3JlYXRlIGFub3RoZXIgdGhyZWFkIGFuZCBzdGFydCBleGVj
dXRpbmcgaXQsIGFuZCB3ZSdkIG5vIGxvbmdlcgotICAgICAgICAjIGJlIHNpbmdsZS10aHJlYWRl
ZC4KLSAgICAgICAgcmV0dXJuIHRocmVhZAotCitjbGFzcyBfSW5saW5lQnJva2VyKF9Xb3JrZXJN
ZXNzYWdlQnJva2VyKToKICAgICBkZWYgcnVuX21lc3NhZ2VfbG9vcChzZWxmKToKLSAgICAgICAg
dGhyZWFkID0gc2VsZi5fdGhyZWFkcygpWzBdCisgICAgICAgIHRocmVhZCA9IHNlbGYuX3RocmVh
ZHMudmFsdWVzKClbMF0KICAgICAgICAgdGhyZWFkLnJ1bl9pbl9tYWluX3RocmVhZChzZWxmLl90
ZXN0X3J1bm5lciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl90ZXN0
X3J1bm5lci5fY3VycmVudF9yZXN1bHRfc3VtbWFyeSkKICAgICAgICAgc2VsZi5fdGVzdF9ydW5u
ZXIudXBkYXRlKCkKIAogCi1jbGFzcyBNdWx0aVRocmVhZGVkQnJva2VyKFdvcmtlck1lc3NhZ2VC
cm9rZXIpOgotICAgIGRlZiBfc3RhcnRfd29ya2VyKHNlbGYsIHdvcmtlcl9udW1iZXIsIHdvcmtl
cl9uYW1lKToKLSAgICAgICAgdGhyZWFkID0gZHVtcF9yZW5kZXJfdHJlZV90aHJlYWQuVGVzdFNo
ZWxsVGhyZWFkKHNlbGYuX3BvcnQsCi0gICAgICAgICAgICBzZWxmLl9vcHRpb25zLCB3b3JrZXJf
bnVtYmVyLCB3b3JrZXJfbmFtZSwKLSAgICAgICAgICAgIHNlbGYuX3Rlc3RfcnVubmVyLl9jdXJy
ZW50X2ZpbGVuYW1lX3F1ZXVlLAotICAgICAgICAgICAgc2VsZi5fdGVzdF9ydW5uZXIuX3Jlc3Vs
dF9xdWV1ZSkKK2NsYXNzIF9NdWx0aVRocmVhZGVkQnJva2VyKF9Xb3JrZXJNZXNzYWdlQnJva2Vy
KToKKyAgICBkZWYgc3RhcnRfd29ya2VyKHNlbGYsIHdvcmtlcl9udW1iZXIpOgorICAgICAgICB0
aHJlYWQgPSBzdXBlcihfTXVsdGlUaHJlYWRlZEJyb2tlciwgc2VsZikuc3RhcnRfd29ya2VyKHdv
cmtlcl9udW1iZXIpCiAgICAgICAgIHRocmVhZC5zdGFydCgpCiAgICAgICAgIHJldHVybiB0aHJl
YWQKIAogICAgIGRlZiBydW5fbWVzc2FnZV9sb29wKHNlbGYpOgotICAgICAgICB0aHJlYWRzID0g
c2VsZi5fdGhyZWFkcygpCi0KICAgICAgICAgIyBMb29wIHRocm91Z2ggYWxsIHRoZSB0aHJlYWRz
IHdhaXRpbmcgZm9yIHRoZW0gdG8gZmluaXNoLgogICAgICAgICBzb21lX3RocmVhZF9pc19hbGl2
ZSA9IFRydWUKICAgICAgICAgd2hpbGUgc29tZV90aHJlYWRfaXNfYWxpdmU6CiAgICAgICAgICAg
ICBzb21lX3RocmVhZF9pc19hbGl2ZSA9IEZhbHNlCiAgICAgICAgICAgICB0ID0gdGltZS50aW1l
KCkKLSAgICAgICAgICAgIGZvciB0aHJlYWQgaW4gdGhyZWFkczoKKyAgICAgICAgICAgIGZvciB0
aHJlYWQgaW4gc2VsZi5fdGhyZWFkcy52YWx1ZXMoKToKICAgICAgICAgICAgICAgICBleGNlcHRp
b25faW5mbyA9IHRocmVhZC5leGNlcHRpb25faW5mbygpCiAgICAgICAgICAgICAgICAgaWYgZXhj
ZXB0aW9uX2luZm8gaXMgbm90IE5vbmU6CiAgICAgICAgICAgICAgICAgICAgICMgUmUtcmFpc2Ug
dGhlIHRocmVhZCdzIGV4Y2VwdGlvbiBoZXJlIHRvIG1ha2UgaXQKQEAgLTE1Niw3ICsxMzcsNyBA
QCBjbGFzcyBNdWx0aVRocmVhZGVkQnJva2VyKFdvcmtlck1lc3NhZ2VCcm9rZXIpOgogICAgICAg
ICAgICAgICAgICAgICBzb21lX3RocmVhZF9pc19hbGl2ZSA9IFRydWUKICAgICAgICAgICAgICAg
ICAgICAgbmV4dF90aW1lb3V0ID0gdGhyZWFkLm5leHRfdGltZW91dCgpCiAgICAgICAgICAgICAg
ICAgICAgIGlmIG5leHRfdGltZW91dCBhbmQgdCA+IG5leHRfdGltZW91dDoKLSAgICAgICAgICAg
ICAgICAgICAgICAgIGxvZ193ZWRnZWRfd29ya2VyKHRocmVhZC5nZXROYW1lKCksIHRocmVhZC5p
ZCgpKQorICAgICAgICAgICAgICAgICAgICAgICAgbG9nX3dlZGdlZF93b3JrZXIodGhyZWFkLm5h
bWUoKSwgdGhyZWFkLmlkKCkpCiAgICAgICAgICAgICAgICAgICAgICAgICB0aHJlYWQuY2xlYXJf
bmV4dF90aW1lb3V0KCkKIAogICAgICAgICAgICAgc2VsZi5fdGVzdF9ydW5uZXIudXBkYXRlKCkK
QEAgLTE2NSw4ICsxNDYsNyBAQCBjbGFzcyBNdWx0aVRocmVhZGVkQnJva2VyKFdvcmtlck1lc3Nh
Z2VCcm9rZXIpOgogICAgICAgICAgICAgICAgIHRpbWUuc2xlZXAoMC4wMSkKIAogICAgIGRlZiBj
YW5jZWxfd29ya2VycyhzZWxmKToKLSAgICAgICAgdGhyZWFkcyA9IHNlbGYuX3RocmVhZHMoKQot
ICAgICAgICBmb3IgdGhyZWFkIGluIHRocmVhZHM6CisgICAgICAgIGZvciB0aHJlYWQgaW4gc2Vs
Zi5fdGhyZWFkcy52YWx1ZXMoKToKICAgICAgICAgICAgIHRocmVhZC5jYW5jZWwoKQogCiAKZGlm
ZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91
dF9wYWNrYWdlL21lc3NhZ2VfYnJva2VyX3VuaXR0ZXN0LnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvbWVzc2FnZV9icm9rZXJfdW5p
dHRlc3QucHkKaW5kZXggNmYwNGZkMzU1MThhMDRlYmQ2OTE5ZmY4YTk3NjEzY2Y0YzViZTFmNC4u
YzAwNjQ3MWU0YTlmYjI1ZmUxYzY4MDk0NTc2ZjMyY2U1MTgxZjVkOSAxMDA2NDQKLS0tIGEvV2Vi
S2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvbWVz
c2FnZV9icm9rZXJfdW5pdHRlc3QucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvbWVzc2FnZV9icm9rZXJfdW5pdHRlc3QucHkK
QEAgLTQ2LDcgKzQ2LDcgQEAgaW1wb3J0IG1lc3NhZ2VfYnJva2VyCiBjbGFzcyBUZXN0VGhyZWFk
KHRocmVhZGluZy5UaHJlYWQpOgogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBzdGFydGVkX3F1ZXVl
LCBzdG9wcGluZ19xdWV1ZSk6CiAgICAgICAgIHRocmVhZGluZy5UaHJlYWQuX19pbml0X18oc2Vs
ZikKLSAgICAgICAgc2VsZi5fdGhyZWFkX2lkID0gTm9uZQorICAgICAgICBzZWxmLl9pZCA9IE5v
bmUKICAgICAgICAgc2VsZi5fc3RhcnRlZF9xdWV1ZSA9IHN0YXJ0ZWRfcXVldWUKICAgICAgICAg
c2VsZi5fc3RvcHBpbmdfcXVldWUgPSBzdG9wcGluZ19xdWV1ZQogICAgICAgICBzZWxmLl90aW1l
b3V0ID0gRmFsc2UKQEAgLTU0LDEwICs1NCwxMCBAQCBjbGFzcyBUZXN0VGhyZWFkKHRocmVhZGlu
Zy5UaHJlYWQpOgogICAgICAgICBzZWxmLl9leGNlcHRpb25faW5mbyA9IE5vbmUKIAogICAgIGRl
ZiBpZChzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYuX3RocmVhZF9pZAorICAgICAgICByZXR1
cm4gc2VsZi5faWQKIAotICAgIGRlZiBnZXROYW1lKHNlbGYpOgotICAgICAgICByZXR1cm4gIndv
cmtlci0wIgorICAgIGRlZiBuYW1lKHNlbGYpOgorICAgICAgICByZXR1cm4gJ3dvcmtlci8wJwog
CiAgICAgZGVmIHJ1bihzZWxmKToKICAgICAgICAgc2VsZi5fY292ZXJlZF9ydW4oKQpAQCAtNjUs
NyArNjUsNyBAQCBjbGFzcyBUZXN0VGhyZWFkKHRocmVhZGluZy5UaHJlYWQpOgogICAgIGRlZiBf
Y292ZXJlZF9ydW4oc2VsZik6CiAgICAgICAgICMgRklYTUU6IHRoaXMgaXMgYSBzZXBhcmF0ZSBy
b3V0aW5lIHRvIHdvcmsgYXJvdW5kIGEgYnVnCiAgICAgICAgICMgaW4gY292ZXJhZ2U6IHNlZSBo
dHRwOi8vYml0YnVja2V0Lm9yZy9uZWQvY292ZXJhZ2VweS9pc3N1ZS84NS4KLSAgICAgICAgc2Vs
Zi5fdGhyZWFkX2lkID0gdGhyZWFkLmdldF9pZGVudCgpCisgICAgICAgIHNlbGYuX2lkID0gdGhy
ZWFkLmdldF9pZGVudCgpCiAgICAgICAgIHRyeToKICAgICAgICAgICAgIHNlbGYuX3N0YXJ0ZWRf
cXVldWUucHV0KCcnKQogICAgICAgICAgICAgbXNnID0gc2VsZi5fc3RvcHBpbmdfcXVldWUuZ2V0
KCkKQEAgLTExNywxMSArMTE3LDExIEBAIGNsYXNzIE11bHRpVGhyZWFkZWRCcm9rZXJUZXN0KHVu
aXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgb3B0aW9ucyA9IG1vY2t0b29sLk1vY2tPcHRpb25z
KGNoaWxkX3Byb2Nlc3Nlcz0nMScpCiAgICAgICAgIHN0YXJ0aW5nX3F1ZXVlID0gUXVldWUuUXVl
dWUoKQogICAgICAgICBzdG9wcGluZ19xdWV1ZSA9IFF1ZXVlLlF1ZXVlKCkKLSAgICAgICAgYnJv
a2VyID0gbWVzc2FnZV9icm9rZXIuTXVsdGlUaHJlYWRlZEJyb2tlcihwb3J0LCBvcHRpb25zKQor
ICAgICAgICBicm9rZXIgPSBtZXNzYWdlX2Jyb2tlci5fTXVsdGlUaHJlYWRlZEJyb2tlcihwb3J0
LCBvcHRpb25zKQogICAgICAgICBicm9rZXIuX3Rlc3RfcnVubmVyID0gcnVubmVyCiAgICAgICAg
IGNoaWxkX3RocmVhZCA9IFRlc3RUaHJlYWQoc3RhcnRpbmdfcXVldWUsIHN0b3BwaW5nX3F1ZXVl
KQotICAgICAgICBicm9rZXIuX3dvcmtlcnNbJ3dvcmtlci0wJ10gPSBtZXNzYWdlX2Jyb2tlci5f
V29ya2VyU3RhdGUoJ3dvcmtlci0wJykKLSAgICAgICAgYnJva2VyLl93b3JrZXJzWyd3b3JrZXIt
MCddLnRocmVhZCA9IGNoaWxkX3RocmVhZAorICAgICAgICBuYW1lID0gY2hpbGRfdGhyZWFkLm5h
bWUoKQorICAgICAgICBicm9rZXIuX3RocmVhZHNbbmFtZV0gPSBjaGlsZF90aHJlYWQKICAgICAg
ICAgY2hpbGRfdGhyZWFkLnN0YXJ0KCkKICAgICAgICAgc3RhcnRlZF9tc2cgPSBzdGFydGluZ19x
dWV1ZS5nZXQoKQogICAgICAgICBzdG9wcGluZ19xdWV1ZS5wdXQobXNnKQpAQCAtMTY5LDcgKzE2
OSw3IEBAIGNsYXNzIFRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBjaGlsZF90aHJl
YWQuc3RhcnQoKQogICAgICAgICBtc2cgPSBzdGFydGluZ19xdWV1ZS5nZXQoKQogCi0gICAgICAg
IG1lc3NhZ2VfYnJva2VyLmxvZ193ZWRnZWRfd29ya2VyKGNoaWxkX3RocmVhZC5nZXROYW1lKCks
CisgICAgICAgIG1lc3NhZ2VfYnJva2VyLmxvZ193ZWRnZWRfd29ya2VyKGNoaWxkX3RocmVhZC5u
YW1lKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkX3Ro
cmVhZC5pZCgpKQogICAgICAgICBzdG9wcGluZ19xdWV1ZS5wdXQoJycpCiAgICAgICAgIGNoaWxk
X3RocmVhZC5qb2luKHRpbWVvdXQ9MS4wKQpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0cy5weSBiL1dlYktpdFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHMucHkKaW5kZXgg
ZjRlOTJhNjg2OThkNGIwNjkwMzFkNmJiMWIzNzg4MmRiYWYxZmFmNS4uYmNjOTM0ODQ2OGNiYzkw
Mjc5NWI3NjM1YjQzNjIxZWMzMDUwZGQ1YyAxMDA3NTUKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0cy5weQorKysgYi9XZWJLaXRU
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzLnB5CkBA
IC02MDMsNyArNjAzLDcgQEAgY2xhc3MgVGVzdFJ1bm5lcjoKICAgICAgICAgaWYgbm90IHNlbGYu
X29wdGlvbnMuZHJ5X3J1bjoKICAgICAgICAgICAgIHRocmVhZHMgPSBtZXNzYWdlX2Jyb2tlci5z
dGFydF93b3JrZXJzKHNlbGYpCiAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICB0aHJlYWRzID0g
e30KKyAgICAgICAgICAgIHRocmVhZHMgPSBbXQogCiAgICAgICAgIHNlbGYuX3ByaW50ZXIucHJp
bnRfdXBkYXRlKCJTdGFydGluZyB0ZXN0aW5nIC4uLiIpCiAgICAgICAgIGtleWJvYXJkX2ludGVy
cnVwdGVkID0gRmFsc2UKQEAgLTE1NzEsNyArMTU3MSw3IEBAIGRlZiBwYXJzZV9hcmdzKGFyZ3M9
Tm9uZSk6CiAgICAgICAgICMgRklYTUU6IERpc3BsYXkgZGVmYXVsdCBudW1iZXIgb2YgY2hpbGQg
cHJvY2Vzc2VzIHRoYXQgd2lsbCBydW4uCiAgICAgICAgIG9wdHBhcnNlLm1ha2Vfb3B0aW9uKCIt
LXdvcmtlci1tb2RlbCIsIGFjdGlvbj0ic3RvcmUiLAogICAgICAgICAgICAgZGVmYXVsdD0idGhy
ZWFkcyIsIGhlbHA9KCJjb250cm9scyB3b3JrZXIgbW9kZWwuIFZhbGlkIHZhbHVlcyBhcmUgIgot
ICAgICAgICAgICAgIidpbmxpbmUnIGFuZCAndGhyZWFkcycgKGRlZmF1bHQpLiIpKSwKKyAgICAg
ICAgICAgICInaW5saW5lJyBhbmQgJ3RocmVhZHMnIChkZWZhdWx0OiAlZGVmYXVsdCkuIikpLAog
ICAgICAgICBvcHRwYXJzZS5tYWtlX29wdGlvbigiLS1leHBlcmltZW50YWwtZnVsbHktcGFyYWxs
ZWwiLAogICAgICAgICAgICAgYWN0aW9uPSJzdG9yZV90cnVlIiwgZGVmYXVsdD1GYWxzZSwKICAg
ICAgICAgICAgIGhlbHA9InJ1biBhbGwgdGVzdHMgaW4gcGFyYWxsZWwiKSwK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>75434</attachid>
            <date>2010-12-02 16:53:43 -0800</date>
            <delta_ts>2010-12-02 17:00:04 -0800</delta_ts>
            <desc>add port.default_worker_model, merge in fix from bug 50420, other review feedback</desc>
            <filename>bug-50372-20101202165342.patch</filename>
            <type>text/plain</type>
            <size>18138</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCAzZWIzYWNhOTM0MjkyZTY4NzdlNDk5NWZlMGFmYmJkNTBiZWE3ZGViLi45MTlhYmYz
NzcyMzA0Y2RjODA2MDMzOTVjYzIxNTMwYjViNGI2NmUxIDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0yLDYgKzIsMzggQEAK
IAogICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KIAorICAgICAgICBuZXctcnVu
LXdlYmtpdC10ZXN0czogbWlub3IgY2xlYW51cCBmb3IgbXVsdGlwcm9jZXNzaW5nIHdvcmsKKwor
ICAgICAgICBUaGlzIGNoYW5nZToKKyAgICAgICAgKiBtb3ZlcyB3b3JrZXIgbmFtaW5nIGludG8g
VGVzdFNoZWxsVGhyZWFkLCBlbGltaW5hdGluZyBhCisgICAgICAgICAgcGFyYW1ldGVyIHRvIHRo
ZSBjb25zdHJ1Y3RvciBhbmQgcHV0dGluZyB0aGUgcmVzcG9uc2liaWxpdHkgaW4KKyAgICAgICAg
ICB0aGUgY29ycmVjdCBwbGFjZS4KKyAgICAgICAgKiBlbGltaW5hdGVzIHRoZSBfV29ya2VyU3Rh
dGUoKSBjbGFzcyBpbiBtZXNzYWdlX2Jyb2tlciwgYmVjYXVzZQorICAgICAgICAgIGl0IHR1cm5z
IG91dCB0aGF0IHN0YXRlIHJlYWxseSBuZWVkcyB0byBiZSBpbiBydW5fd2Via2l0X3Rlc3RzCisg
ICAgICAgICogcmVuYW1lcyB0aGUgQnJva2VyIGNsYXNzZXMgdG8gYmUgbW9kdWxlLXByaXZhdGUu
CisgICAgICAgICogZml4ZXMgYSBidW5jaCBvZiBtaW5vciBjb21tZW50aW5nIGFuZCB3aGl0ZXNw
YWNlIGlzc3VlcyB0bworICAgICAgICAgIG1ha2Ugc3Vic2VxdWVudCBwYXRjaGVzIGEgYml0IGNs
ZWFyZXIuCisgICAgICAgICogQWRkcyBhIFBvcnQgaG9vayBmb3IgZGVmYXVsdF93b3JrZXJfbW9k
ZWwoKSBzbyB0aGF0IHdlIGNhbgorICAgICAgICAgIGFjY29tb2RhdGUgdGhlIHBvdGVudGlhbCBm
b3IgZGlmZmVyZW50IHdvcmtlciBtb2RlbHMgb24KKyAgICAgICAgICBkaWZmZXJlbnQgcG9ydHMu
CisgICAgICAgICogbWVyZ2UgaW4gdGhlIGZpeCBmcm9tIDUwNDIwIGZvciB0aGUgYnJva2VubmVz
cyBpbnRyb2R1Y2VkIGluCisgICAgICAgICAgYnVnIDUwMzY3LgorCisgICAgICAgIFRoaXMgcGF0
Y2ggZGVwZW5kcyBvbiBidWcgNTAzNjcuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTUwMzcyCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9kdW1wX3JlbmRlcl90cmVlX3RocmVhZC5weToKKyAg
ICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9tZXNz
YWdlX2Jyb2tlci5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9s
YXlvdXRfcGFja2FnZS9tZXNzYWdlX2Jyb2tlcl91bml0dGVzdC5weToKKyAgICAgICAgKiBTY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Jhc2UucHk6CisgICAgICAgICogU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0cy5weToKKyAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzX3VuaXR0ZXN0LnB5
OgorCisyMDEwLTEyLTAxICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IFRvbnkgQ2hhbmcuCisKICAgICAgICAgVGhpcyBjaGFuZ2UgaXMg
YSBidW5jaCBvZiBjbGVhbnVwIC8gcmVmYWN0b3Jpbmcgb2YgdGhlIGZpbGUKICAgICAgICAgYmVs
b3cuIEl0IG1vdmVzIGEgYnVuY2ggb2YgZnJlZSBmdW5jdGlvbnMgdG8gbWV0aG9kcyBvbiB0aGUK
ICAgICAgICAgVGVzdFNoZWxsVGhyZWFkIGNsYXNzLCBhbmQgcmVzdHJ1Y3R1cmVzIG90aGVyIG1l
dGhvZHMgdG8gYmUKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5
b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL2R1bXBfcmVuZGVyX3RyZWVfdGhyZWFkLnB5IGIvV2Vi
S2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvZHVt
cF9yZW5kZXJfdHJlZV90aHJlYWQucHkKaW5kZXggNjVkMGIwOTEyZTk1ZDg4Y2E2MjdlYjI3MDlk
OWE1NzU2MGRkYmZiZi4uODgwY2M2MGE4ODJjY2JmNjMyNWMyMTJlZjQ5MDBjNWQ5ZWMxNGZkMyAx
MDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5
b3V0X3BhY2thZ2UvZHVtcF9yZW5kZXJfdHJlZV90aHJlYWQucHkKKysrIGIvV2ViS2l0VG9vbHMv
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvZHVtcF9yZW5kZXJf
dHJlZV90aHJlYWQucHkKQEAgLTk4LDcgKzk4LDcgQEAgY2xhc3MgV2F0Y2hhYmxlVGhyZWFkKHRo
cmVhZGluZy5UaHJlYWQpOgogCiAKIGNsYXNzIFRlc3RTaGVsbFRocmVhZChXYXRjaGFibGVUaHJl
YWQpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwb3J0LCBvcHRpb25zLCB3b3JrZXJfbnVtYmVy
LCB3b3JrZXJfbmFtZSwKKyAgICBkZWYgX19pbml0X18oc2VsZiwgcG9ydCwgb3B0aW9ucywgd29y
a2VyX251bWJlciwKICAgICAgICAgICAgICAgICAgZmlsZW5hbWVfbGlzdF9xdWV1ZSwgcmVzdWx0
X3F1ZXVlKToKICAgICAgICAgIiIiSW5pdGlhbGl6ZSBhbGwgdGhlIGxvY2FsIHN0YXRlIGZvciB0
aGlzIER1bXBSZW5kZXJUcmVlIHRocmVhZC4KIApAQCAtMTA2LDcgKzEwNiw2IEBAIGNsYXNzIFRl
c3RTaGVsbFRocmVhZChXYXRjaGFibGVUaHJlYWQpOgogICAgICAgICAgIHBvcnQ6IGludGVyZmFj
ZSB0byBwb3J0LXNwZWNpZmljIGhvb2tzCiAgICAgICAgICAgb3B0aW9uczogY29tbWFuZCBsaW5l
IG9wdGlvbnMgYXJndW1lbnQgZnJvbSBvcHRwYXJzZQogICAgICAgICAgIHdvcmtlcl9udW1iZXI6
IGlkZW50aWZpZXIgZm9yIGEgcGFydGljdWxhciB3b3JrZXIgdGhyZWFkLgotICAgICAgICAgIHdv
cmtlcl9uYW1lOiBmb3IgbG9nZ2luZy4KICAgICAgICAgICBmaWxlbmFtZV9saXN0X3F1ZXVlOiBB
IHRocmVhZCBzYWZlIFF1ZXVlIGNsYXNzIHRoYXQgY29udGFpbnMgbGlzdHMKICAgICAgICAgICAg
ICAgb2YgdHVwbGVzIG9mIChmaWxlbmFtZSwgdXJpKSBwYWlycy4KICAgICAgICAgICByZXN1bHRf
cXVldWU6IEEgdGhyZWFkIHNhZmUgUXVldWUgY2xhc3MgdGhhdCB3aWxsIGNvbnRhaW4KQEAgLTEx
Niw3ICsxMTUsNyBAQCBjbGFzcyBUZXN0U2hlbGxUaHJlYWQoV2F0Y2hhYmxlVGhyZWFkKToKICAg
ICAgICAgc2VsZi5fcG9ydCA9IHBvcnQKICAgICAgICAgc2VsZi5fb3B0aW9ucyA9IG9wdGlvbnMK
ICAgICAgICAgc2VsZi5fd29ya2VyX251bWJlciA9IHdvcmtlcl9udW1iZXIKLSAgICAgICAgc2Vs
Zi5fbmFtZSA9IHdvcmtlcl9uYW1lCisgICAgICAgIHNlbGYuX25hbWUgPSAnd29ya2VyLyVkJyAl
IHdvcmtlcl9udW1iZXIKICAgICAgICAgc2VsZi5fZmlsZW5hbWVfbGlzdF9xdWV1ZSA9IGZpbGVu
YW1lX2xpc3RfcXVldWUKICAgICAgICAgc2VsZi5fcmVzdWx0X3F1ZXVlID0gcmVzdWx0X3F1ZXVl
CiAKQEAgLTE4NCw2ICsxODMsOSBAQCBjbGFzcyBUZXN0U2hlbGxUaHJlYWQoV2F0Y2hhYmxlVGhy
ZWFkKToKICAgICBkZWYgZ2V0X251bV90ZXN0cyhzZWxmKToKICAgICAgICAgcmV0dXJuIHNlbGYu
X251bV90ZXN0cwogCisgICAgZGVmIG5hbWUoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl9u
YW1lCisKICAgICBkZWYgbmV4dF90aW1lb3V0KHNlbGYpOgogICAgICAgICAiIiJSZXR1cm4gdGhl
IHRpbWUgdGhlIHRlc3QgaXMgc3VwcG9zZWQgdG8gZmluaXNoIGJ5LiIiIgogICAgICAgICBpZiBz
ZWxmLl9uZXh0X3RpbWVvdXQ6CkBAIC0zMzMsNyArMzM1LDcgQEAgY2xhc3MgVGVzdFNoZWxsVGhy
ZWFkKFdhdGNoYWJsZVRocmVhZCk6CiAKICAgICAgICAgY2xhc3MgU2luZ2xlVGVzdFRocmVhZCh0
aHJlYWRpbmcuVGhyZWFkKToKICAgICAgICAgICAgIGRlZiBydW4oc2VsZik6Ci0gICAgICAgICAg
ICAgICAgcmVzdWx0ID0gd29ya2VyLl9ydW5fc2luZ2xlX3Rlc3QoZHJpdmVyLCB0ZXN0X2lucHV0
KQorICAgICAgICAgICAgICAgIHJlc3VsdCA9IHdvcmtlci5fcnVuX3NpbmdsZV90ZXN0KHRlc3Rf
aW5wdXQsIGRyaXZlcikKIAogICAgICAgICB0aHJlYWQgPSBTaW5nbGVUZXN0VGhyZWFkKCkKICAg
ICAgICAgdGhyZWFkLnN0YXJ0KCkKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL21lc3NhZ2VfYnJva2VyLnB5IGIvV2Vi
S2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvbWVz
c2FnZV9icm9rZXIucHkKaW5kZXggZTUyMGE5Y2FhNmI3NjgyZWJmZGQyYTk4YmIyMTdlYjg1ZDcy
NTFiYy4uMjg1YjJlN2IxZmQ0OTAyOWYyMzhhZTg1ZDU0YTI1MDg3NWRlZGQxZiAxMDA2NDQKLS0t
IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2th
Z2UvbWVzc2FnZV9icm9rZXIucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvbWVzc2FnZV9icm9rZXIucHkKQEAgLTI2LDcgKzI2
LDcgQEAKICMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKLSIiIk1vZHVsZSBmb3IgaGFu
ZGxpbmcgbWVzc2FnZXMsIHRocmVhZHMsIHByb2Nlc3NlcywgYW5kIGNvbmN1cnJlbmN5IGZvciBy
dW4td2Via2l0LXRlc3RzLgorIiIiTW9kdWxlIGZvciBoYW5kbGluZyBtZXNzYWdlcyBhbmQgY29u
Y3VycmVuY3kgZm9yIHJ1bi13ZWJraXQtdGVzdHMuCiAKIFRlc3RpbmcgaXMgYWNjb21wbGlzaGVk
IGJ5IGhhdmluZyBhIG1hbmFnZXIgKFRlc3RSdW5uZXIpIGdhdGhlciBhbGwgb2YgdGhlCiB0ZXN0
cyB0byBiZSBydW4sIGFuZCBzZW5kaW5nIG1lc3NhZ2VzIHRvIGEgcG9vbCBvZiB3b3JrZXJzIChU
ZXN0U2hlbGxUaHJlYWRzKQpAQCAtNTQsMjkgKzU0LDIwIEBAIGRlZiBnZXQocG9ydCwgb3B0aW9u
cyk6CiAgICAgIiIiUmV0dXJuIGFuIGluc3RhbmNlIG9mIGEgV29ya2VyTWVzc2FnZUJyb2tlci4i
IiIKICAgICB3b3JrZXJfbW9kZWwgPSBvcHRpb25zLndvcmtlcl9tb2RlbAogICAgIGlmIHdvcmtl
cl9tb2RlbCA9PSAnaW5saW5lJzoKLSAgICAgICAgcmV0dXJuIElubGluZUJyb2tlcihwb3J0LCBv
cHRpb25zKQorICAgICAgICByZXR1cm4gX0lubGluZUJyb2tlcihwb3J0LCBvcHRpb25zKQogICAg
IGlmIHdvcmtlcl9tb2RlbCA9PSAndGhyZWFkcyc6Ci0gICAgICAgIHJldHVybiBNdWx0aVRocmVh
ZGVkQnJva2VyKHBvcnQsIG9wdGlvbnMpCisgICAgICAgIHJldHVybiBfTXVsdGlUaHJlYWRlZEJy
b2tlcihwb3J0LCBvcHRpb25zKQogICAgIHJhaXNlIFZhbHVlRXJyb3IoJ3Vuc3VwcG9ydGVkIHZh
bHVlIGZvciAtLXdvcmtlci1tb2RlbDogJXMnICUgd29ya2VyX21vZGVsKQogCiAKLWNsYXNzIF9X
b3JrZXJTdGF0ZShvYmplY3QpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBuYW1lKToKLSAgICAg
ICAgc2VsZi5uYW1lID0gbmFtZQotICAgICAgICBzZWxmLnRocmVhZCA9IE5vbmUKLQotCi1jbGFz
cyBXb3JrZXJNZXNzYWdlQnJva2VyKG9iamVjdCk6CitjbGFzcyBfV29ya2VyTWVzc2FnZUJyb2tl
cihvYmplY3QpOgogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwb3J0LCBvcHRpb25zKToKICAgICAg
ICAgc2VsZi5fcG9ydCA9IHBvcnQKICAgICAgICAgc2VsZi5fb3B0aW9ucyA9IG9wdGlvbnMKICAg
ICAgICAgc2VsZi5fbnVtX3dvcmtlcnMgPSBpbnQoc2VsZi5fb3B0aW9ucy5jaGlsZF9wcm9jZXNz
ZXMpCiAKLSAgICAgICAgIyBUaGlzIG1hcHMgd29ya2VyIG5hbWVzIHRvIHRoZWlyIF9Xb3JrZXJT
dGF0ZSB2YWx1ZXMuCi0gICAgICAgIHNlbGYuX3dvcmtlcnMgPSB7fQotCi0gICAgZGVmIF90aHJl
YWRzKHNlbGYpOgotICAgICAgICByZXR1cm4gdHVwbGUoW3cudGhyZWFkIGZvciB3IGluIHNlbGYu
X3dvcmtlcnMudmFsdWVzKCldKQorICAgICAgICAjIFRoaXMgbWFwcyB3b3JrZXIgbmFtZXMgdG8g
dGhlaXIgVGVzdFNoZWxsVGhyZWFkIG9iamVjdHMuCisgICAgICAgIHNlbGYuX3RocmVhZHMgPSB7
fQogCiAgICAgZGVmIHN0YXJ0X3dvcmtlcnMoc2VsZiwgdGVzdF9ydW5uZXIpOgogICAgICAgICAi
IiJTdGFydHMgdXAgdGhlIHBvb2wgb2Ygd29ya2VycyBmb3IgcnVubmluZyB0aGUgdGVzdHMuCkBA
IC04NiwxMyArNzcsMTkgQEAgY2xhc3MgV29ya2VyTWVzc2FnZUJyb2tlcihvYmplY3QpOgogICAg
ICAgICAiIiIKICAgICAgICAgc2VsZi5fdGVzdF9ydW5uZXIgPSB0ZXN0X3J1bm5lcgogICAgICAg
ICBmb3Igd29ya2VyX251bWJlciBpbiB4cmFuZ2Uoc2VsZi5fbnVtX3dvcmtlcnMpOgotICAgICAg
ICAgICAgd29ya2VyID0gX1dvcmtlclN0YXRlKCd3b3JrZXItJWQnICUgd29ya2VyX251bWJlcikK
LSAgICAgICAgICAgIHdvcmtlci50aHJlYWQgPSBzZWxmLl9zdGFydF93b3JrZXIod29ya2VyX251
bWJlciwgd29ya2VyLm5hbWUpCi0gICAgICAgICAgICBzZWxmLl93b3JrZXJzW3dvcmtlci5uYW1l
XSA9IHdvcmtlcgotICAgICAgICByZXR1cm4gc2VsZi5fdGhyZWFkcygpCisgICAgICAgICAgICB0
aHJlYWQgPSBzZWxmLnN0YXJ0X3dvcmtlcih3b3JrZXJfbnVtYmVyKQorICAgICAgICAgICAgc2Vs
Zi5fdGhyZWFkc1t0aHJlYWQubmFtZSgpXSA9IHRocmVhZAorICAgICAgICByZXR1cm4gc2VsZi5f
dGhyZWFkcy52YWx1ZXMoKQogCi0gICAgZGVmIF9zdGFydF93b3JrZXIoc2VsZiwgd29ya2VyX251
bWJlciwgd29ya2VyX25hbWUpOgotICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yCisg
ICAgZGVmIHN0YXJ0X3dvcmtlcihzZWxmLCB3b3JrZXJfbnVtYmVyKToKKyAgICAgICAgIyBGSVhN
RTogUmVwbGFjZSB3aXRoIHNvbWV0aGluZyB0aGF0IGlzbid0IGEgdGhyZWFkLgorICAgICAgICAj
IE5vdGU6IERvbid0IHN0YXJ0KCkgdGhlIHRocmVhZCEgSWYgd2UgZGlkLCBpdCB3b3VsZCBhY3R1
YWxseQorICAgICAgICAjIGNyZWF0ZSBhbm90aGVyIHRocmVhZCBhbmQgc3RhcnQgZXhlY3V0aW5n
IGl0LCBhbmQgd2UnZCBubyBsb25nZXIKKyAgICAgICAgIyBiZSBzaW5nbGUtdGhyZWFkZWQuCisg
ICAgICAgIHJldHVybiBkdW1wX3JlbmRlcl90cmVlX3RocmVhZC5UZXN0U2hlbGxUaHJlYWQoc2Vs
Zi5fcG9ydCwKKyAgICAgICAgICAgIHNlbGYuX29wdGlvbnMsIHdvcmtlcl9udW1iZXIsCisgICAg
ICAgICAgICBzZWxmLl90ZXN0X3J1bm5lci5fY3VycmVudF9maWxlbmFtZV9xdWV1ZSwKKyAgICAg
ICAgICAgIHNlbGYuX3Rlc3RfcnVubmVyLl9yZXN1bHRfcXVldWUpCiAKICAgICBkZWYgcnVuX21l
c3NhZ2VfbG9vcChzZWxmKToKICAgICAgICAgIiIiTG9vcCBwcm9jZXNzaW5nIG1lc3NhZ2VzIHVu
dGlsIGRvbmUuIiIiCkBAIC0xMDcsNDMgKzEwNCwyNyBAQCBjbGFzcyBXb3JrZXJNZXNzYWdlQnJv
a2VyKG9iamVjdCk6CiAgICAgICAgIHBhc3MKIAogCi1jbGFzcyBJbmxpbmVCcm9rZXIoV29ya2Vy
TWVzc2FnZUJyb2tlcik6Ci0gICAgZGVmIF9zdGFydF93b3JrZXIoc2VsZiwgd29ya2VyX251bWJl
ciwgd29ya2VyX25hbWUpOgotICAgICAgICAjIEZJWE1FOiBSZXBsYWNlIHdpdGggc29tZXRoaW5n
IHRoYXQgaXNuJ3QgYSB0aHJlYWQuCi0gICAgICAgIHRocmVhZCA9IGR1bXBfcmVuZGVyX3RyZWVf
dGhyZWFkLlRlc3RTaGVsbFRocmVhZChzZWxmLl9wb3J0LAotICAgICAgICAgICAgc2VsZi5fb3B0
aW9ucywgd29ya2VyX251bWJlciwgd29ya2VyX25hbWUsCi0gICAgICAgICAgICBzZWxmLl90ZXN0
X3J1bm5lci5fY3VycmVudF9maWxlbmFtZV9xdWV1ZSwKLSAgICAgICAgICAgIHNlbGYuX3Rlc3Rf
cnVubmVyLl9yZXN1bHRfcXVldWUpCi0gICAgICAgICMgTm90ZTogRG9uJ3Qgc3RhcnQoKSB0aGUg
dGhyZWFkISBJZiB3ZSBkaWQsIGl0IHdvdWxkIGFjdHVhbGx5Ci0gICAgICAgICMgY3JlYXRlIGFu
b3RoZXIgdGhyZWFkIGFuZCBzdGFydCBleGVjdXRpbmcgaXQsIGFuZCB3ZSdkIG5vIGxvbmdlcgot
ICAgICAgICAjIGJlIHNpbmdsZS10aHJlYWRlZC4KLSAgICAgICAgcmV0dXJuIHRocmVhZAotCitj
bGFzcyBfSW5saW5lQnJva2VyKF9Xb3JrZXJNZXNzYWdlQnJva2VyKToKICAgICBkZWYgcnVuX21l
c3NhZ2VfbG9vcChzZWxmKToKLSAgICAgICAgdGhyZWFkID0gc2VsZi5fdGhyZWFkcygpWzBdCisg
ICAgICAgIHRocmVhZCA9IHNlbGYuX3RocmVhZHMudmFsdWVzKClbMF0KICAgICAgICAgdGhyZWFk
LnJ1bl9pbl9tYWluX3RocmVhZChzZWxmLl90ZXN0X3J1bm5lciwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzZWxmLl90ZXN0X3J1bm5lci5fY3VycmVudF9yZXN1bHRfc3VtbWFy
eSkKICAgICAgICAgc2VsZi5fdGVzdF9ydW5uZXIudXBkYXRlKCkKIAogCi1jbGFzcyBNdWx0aVRo
cmVhZGVkQnJva2VyKFdvcmtlck1lc3NhZ2VCcm9rZXIpOgotICAgIGRlZiBfc3RhcnRfd29ya2Vy
KHNlbGYsIHdvcmtlcl9udW1iZXIsIHdvcmtlcl9uYW1lKToKLSAgICAgICAgdGhyZWFkID0gZHVt
cF9yZW5kZXJfdHJlZV90aHJlYWQuVGVzdFNoZWxsVGhyZWFkKHNlbGYuX3BvcnQsCi0gICAgICAg
ICAgICBzZWxmLl9vcHRpb25zLCB3b3JrZXJfbnVtYmVyLCB3b3JrZXJfbmFtZSwKLSAgICAgICAg
ICAgIHNlbGYuX3Rlc3RfcnVubmVyLl9jdXJyZW50X2ZpbGVuYW1lX3F1ZXVlLAotICAgICAgICAg
ICAgc2VsZi5fdGVzdF9ydW5uZXIuX3Jlc3VsdF9xdWV1ZSkKK2NsYXNzIF9NdWx0aVRocmVhZGVk
QnJva2VyKF9Xb3JrZXJNZXNzYWdlQnJva2VyKToKKyAgICBkZWYgc3RhcnRfd29ya2VyKHNlbGYs
IHdvcmtlcl9udW1iZXIpOgorICAgICAgICB0aHJlYWQgPSBfV29ya2VyTWVzc2FnZUJyb2tlci5z
dGFydF93b3JrZXIoc2VsZiwgd29ya2VyX251bWJlcikKICAgICAgICAgdGhyZWFkLnN0YXJ0KCkK
ICAgICAgICAgcmV0dXJuIHRocmVhZAogCiAgICAgZGVmIHJ1bl9tZXNzYWdlX2xvb3Aoc2VsZik6
Ci0gICAgICAgIHRocmVhZHMgPSBzZWxmLl90aHJlYWRzKCkKLQogICAgICAgICAjIExvb3AgdGhy
b3VnaCBhbGwgdGhlIHRocmVhZHMgd2FpdGluZyBmb3IgdGhlbSB0byBmaW5pc2guCiAgICAgICAg
IHNvbWVfdGhyZWFkX2lzX2FsaXZlID0gVHJ1ZQogICAgICAgICB3aGlsZSBzb21lX3RocmVhZF9p
c19hbGl2ZToKICAgICAgICAgICAgIHNvbWVfdGhyZWFkX2lzX2FsaXZlID0gRmFsc2UKICAgICAg
ICAgICAgIHQgPSB0aW1lLnRpbWUoKQotICAgICAgICAgICAgZm9yIHRocmVhZCBpbiB0aHJlYWRz
OgorICAgICAgICAgICAgZm9yIHRocmVhZCBpbiBzZWxmLl90aHJlYWRzLnZhbHVlcygpOgogICAg
ICAgICAgICAgICAgIGV4Y2VwdGlvbl9pbmZvID0gdGhyZWFkLmV4Y2VwdGlvbl9pbmZvKCkKICAg
ICAgICAgICAgICAgICBpZiBleGNlcHRpb25faW5mbyBpcyBub3QgTm9uZToKICAgICAgICAgICAg
ICAgICAgICAgIyBSZS1yYWlzZSB0aGUgdGhyZWFkJ3MgZXhjZXB0aW9uIGhlcmUgdG8gbWFrZSBp
dApAQCAtMTU2LDcgKzEzNyw3IEBAIGNsYXNzIE11bHRpVGhyZWFkZWRCcm9rZXIoV29ya2VyTWVz
c2FnZUJyb2tlcik6CiAgICAgICAgICAgICAgICAgICAgIHNvbWVfdGhyZWFkX2lzX2FsaXZlID0g
VHJ1ZQogICAgICAgICAgICAgICAgICAgICBuZXh0X3RpbWVvdXQgPSB0aHJlYWQubmV4dF90aW1l
b3V0KCkKICAgICAgICAgICAgICAgICAgICAgaWYgbmV4dF90aW1lb3V0IGFuZCB0ID4gbmV4dF90
aW1lb3V0OgotICAgICAgICAgICAgICAgICAgICAgICAgbG9nX3dlZGdlZF93b3JrZXIodGhyZWFk
LmdldE5hbWUoKSwgdGhyZWFkLmlkKCkpCisgICAgICAgICAgICAgICAgICAgICAgICBsb2dfd2Vk
Z2VkX3dvcmtlcih0aHJlYWQubmFtZSgpLCB0aHJlYWQuaWQoKSkKICAgICAgICAgICAgICAgICAg
ICAgICAgIHRocmVhZC5jbGVhcl9uZXh0X3RpbWVvdXQoKQogCiAgICAgICAgICAgICBzZWxmLl90
ZXN0X3J1bm5lci51cGRhdGUoKQpAQCAtMTY1LDggKzE0Niw3IEBAIGNsYXNzIE11bHRpVGhyZWFk
ZWRCcm9rZXIoV29ya2VyTWVzc2FnZUJyb2tlcik6CiAgICAgICAgICAgICAgICAgdGltZS5zbGVl
cCgwLjAxKQogCiAgICAgZGVmIGNhbmNlbF93b3JrZXJzKHNlbGYpOgotICAgICAgICB0aHJlYWRz
ID0gc2VsZi5fdGhyZWFkcygpCi0gICAgICAgIGZvciB0aHJlYWQgaW4gdGhyZWFkczoKKyAgICAg
ICAgZm9yIHRocmVhZCBpbiBzZWxmLl90aHJlYWRzLnZhbHVlcygpOgogICAgICAgICAgICAgdGhy
ZWFkLmNhbmNlbCgpCiAKIApkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvbWVzc2FnZV9icm9rZXJfdW5pdHRlc3QucHkg
Yi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2Fn
ZS9tZXNzYWdlX2Jyb2tlcl91bml0dGVzdC5weQppbmRleCA2ZjA0ZmQzNTUxOGEwNGViZDY5MTlm
ZjhhOTc2MTNjZjRjNWJlMWY0Li5jMDA2NDcxZTRhOWZiMjVmZTFjNjgwOTQ1NzZmMzJjZTUxODFm
NWQ5IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9sYXlvdXRfcGFja2FnZS9tZXNzYWdlX2Jyb2tlcl91bml0dGVzdC5weQorKysgYi9XZWJLaXRU
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9tZXNzYWdl
X2Jyb2tlcl91bml0dGVzdC5weQpAQCAtNDYsNyArNDYsNyBAQCBpbXBvcnQgbWVzc2FnZV9icm9r
ZXIKIGNsYXNzIFRlc3RUaHJlYWQodGhyZWFkaW5nLlRocmVhZCk6CiAgICAgZGVmIF9faW5pdF9f
KHNlbGYsIHN0YXJ0ZWRfcXVldWUsIHN0b3BwaW5nX3F1ZXVlKToKICAgICAgICAgdGhyZWFkaW5n
LlRocmVhZC5fX2luaXRfXyhzZWxmKQotICAgICAgICBzZWxmLl90aHJlYWRfaWQgPSBOb25lCisg
ICAgICAgIHNlbGYuX2lkID0gTm9uZQogICAgICAgICBzZWxmLl9zdGFydGVkX3F1ZXVlID0gc3Rh
cnRlZF9xdWV1ZQogICAgICAgICBzZWxmLl9zdG9wcGluZ19xdWV1ZSA9IHN0b3BwaW5nX3F1ZXVl
CiAgICAgICAgIHNlbGYuX3RpbWVvdXQgPSBGYWxzZQpAQCAtNTQsMTAgKzU0LDEwIEBAIGNsYXNz
IFRlc3RUaHJlYWQodGhyZWFkaW5nLlRocmVhZCk6CiAgICAgICAgIHNlbGYuX2V4Y2VwdGlvbl9p
bmZvID0gTm9uZQogCiAgICAgZGVmIGlkKHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi5fdGhy
ZWFkX2lkCisgICAgICAgIHJldHVybiBzZWxmLl9pZAogCi0gICAgZGVmIGdldE5hbWUoc2VsZik6
Ci0gICAgICAgIHJldHVybiAid29ya2VyLTAiCisgICAgZGVmIG5hbWUoc2VsZik6CisgICAgICAg
IHJldHVybiAnd29ya2VyLzAnCiAKICAgICBkZWYgcnVuKHNlbGYpOgogICAgICAgICBzZWxmLl9j
b3ZlcmVkX3J1bigpCkBAIC02NSw3ICs2NSw3IEBAIGNsYXNzIFRlc3RUaHJlYWQodGhyZWFkaW5n
LlRocmVhZCk6CiAgICAgZGVmIF9jb3ZlcmVkX3J1bihzZWxmKToKICAgICAgICAgIyBGSVhNRTog
dGhpcyBpcyBhIHNlcGFyYXRlIHJvdXRpbmUgdG8gd29yayBhcm91bmQgYSBidWcKICAgICAgICAg
IyBpbiBjb3ZlcmFnZTogc2VlIGh0dHA6Ly9iaXRidWNrZXQub3JnL25lZC9jb3ZlcmFnZXB5L2lz
c3VlLzg1LgotICAgICAgICBzZWxmLl90aHJlYWRfaWQgPSB0aHJlYWQuZ2V0X2lkZW50KCkKKyAg
ICAgICAgc2VsZi5faWQgPSB0aHJlYWQuZ2V0X2lkZW50KCkKICAgICAgICAgdHJ5OgogICAgICAg
ICAgICAgc2VsZi5fc3RhcnRlZF9xdWV1ZS5wdXQoJycpCiAgICAgICAgICAgICBtc2cgPSBzZWxm
Ll9zdG9wcGluZ19xdWV1ZS5nZXQoKQpAQCAtMTE3LDExICsxMTcsMTEgQEAgY2xhc3MgTXVsdGlU
aHJlYWRlZEJyb2tlclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBvcHRpb25zID0g
bW9ja3Rvb2wuTW9ja09wdGlvbnMoY2hpbGRfcHJvY2Vzc2VzPScxJykKICAgICAgICAgc3RhcnRp
bmdfcXVldWUgPSBRdWV1ZS5RdWV1ZSgpCiAgICAgICAgIHN0b3BwaW5nX3F1ZXVlID0gUXVldWUu
UXVldWUoKQotICAgICAgICBicm9rZXIgPSBtZXNzYWdlX2Jyb2tlci5NdWx0aVRocmVhZGVkQnJv
a2VyKHBvcnQsIG9wdGlvbnMpCisgICAgICAgIGJyb2tlciA9IG1lc3NhZ2VfYnJva2VyLl9NdWx0
aVRocmVhZGVkQnJva2VyKHBvcnQsIG9wdGlvbnMpCiAgICAgICAgIGJyb2tlci5fdGVzdF9ydW5u
ZXIgPSBydW5uZXIKICAgICAgICAgY2hpbGRfdGhyZWFkID0gVGVzdFRocmVhZChzdGFydGluZ19x
dWV1ZSwgc3RvcHBpbmdfcXVldWUpCi0gICAgICAgIGJyb2tlci5fd29ya2Vyc1snd29ya2VyLTAn
XSA9IG1lc3NhZ2VfYnJva2VyLl9Xb3JrZXJTdGF0ZSgnd29ya2VyLTAnKQotICAgICAgICBicm9r
ZXIuX3dvcmtlcnNbJ3dvcmtlci0wJ10udGhyZWFkID0gY2hpbGRfdGhyZWFkCisgICAgICAgIG5h
bWUgPSBjaGlsZF90aHJlYWQubmFtZSgpCisgICAgICAgIGJyb2tlci5fdGhyZWFkc1tuYW1lXSA9
IGNoaWxkX3RocmVhZAogICAgICAgICBjaGlsZF90aHJlYWQuc3RhcnQoKQogICAgICAgICBzdGFy
dGVkX21zZyA9IHN0YXJ0aW5nX3F1ZXVlLmdldCgpCiAgICAgICAgIHN0b3BwaW5nX3F1ZXVlLnB1
dChtc2cpCkBAIC0xNjksNyArMTY5LDcgQEAgY2xhc3MgVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6
CiAgICAgICAgIGNoaWxkX3RocmVhZC5zdGFydCgpCiAgICAgICAgIG1zZyA9IHN0YXJ0aW5nX3F1
ZXVlLmdldCgpCiAKLSAgICAgICAgbWVzc2FnZV9icm9rZXIubG9nX3dlZGdlZF93b3JrZXIoY2hp
bGRfdGhyZWFkLmdldE5hbWUoKSwKKyAgICAgICAgbWVzc2FnZV9icm9rZXIubG9nX3dlZGdlZF93
b3JrZXIoY2hpbGRfdGhyZWFkLm5hbWUoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY2hpbGRfdGhyZWFkLmlkKCkpCiAgICAgICAgIHN0b3BwaW5nX3F1ZXVlLnB1
dCgnJykKICAgICAgICAgY2hpbGRfdGhyZWFkLmpvaW4odGltZW91dD0xLjApCmRpZmYgLS1naXQg
YS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Jhc2UucHkg
Yi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Jhc2UucHkK
aW5kZXggYmM1YTlhYTNlNGQyNTVjMWY3NDkyMTI5ZDA0Y2QyNjY0Yzg3NjIwOC4uOTQ1MjRmYzgz
ZTE5ZmEwYmI5MWRjZjAxZjIxZGNjOTZjMDNmNTdkNCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMv
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9iYXNlLnB5CisrKyBiL1dlYktpdFRv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvYmFzZS5weQpAQCAtMTI3LDYg
KzEyNywxMCBAQCBjbGFzcyBQb3J0KG9iamVjdCk6CiAgICAgICAgIHBvcnQuIiIiCiAgICAgICAg
IHJldHVybiBzZWxmLl9leGVjdXRpdmUuY3B1X2NvdW50KCkKIAorICAgIGRlZiBkZWZhdWx0X3dv
cmtlcl9tb2RlbChzZWxmKToKKyAgICAgICAgIiIiUmV0dXJuIHRoZSBjb25jdXJyZW5jeSBtb2Rl
bCB0aGUgcG9ydCBzaG91bGQgdXNlLiIiIgorICAgICAgICByZXR1cm4gJ3RocmVhZHMnCisKICAg
ICBkZWYgYmFzZWxpbmVfcGF0aChzZWxmKToKICAgICAgICAgIiIiUmV0dXJuIHRoZSBhYnNvbHV0
ZSBwYXRoIHRvIHRoZSBkaXJlY3RvcnkgdG8gc3RvcmUgbmV3IGJhc2VsaW5lcwogICAgICAgICBp
biBmb3IgdGhpcyBwb3J0LiIiIgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0cy5weSBiL1dlYktpdFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHMucHkKaW5kZXggZjRlOTJh
Njg2OThkNGIwNjkwMzFkNmJiMWIzNzg4MmRiYWYxZmFmNS4uMGIxMWQ5Yjg4YjIzY2UxOWZlNWFm
MDFhNjY5ODRhYzk0MjQzNjA0OSAxMDA3NTUKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0cy5weQorKysgYi9XZWJLaXRUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzLnB5CkBAIC02MDMs
NyArNjAzLDcgQEAgY2xhc3MgVGVzdFJ1bm5lcjoKICAgICAgICAgaWYgbm90IHNlbGYuX29wdGlv
bnMuZHJ5X3J1bjoKICAgICAgICAgICAgIHRocmVhZHMgPSBtZXNzYWdlX2Jyb2tlci5zdGFydF93
b3JrZXJzKHNlbGYpCiAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICB0aHJlYWRzID0ge30KKyAg
ICAgICAgICAgIHRocmVhZHMgPSBbXQogCiAgICAgICAgIHNlbGYuX3ByaW50ZXIucHJpbnRfdXBk
YXRlKCJTdGFydGluZyB0ZXN0aW5nIC4uLiIpCiAgICAgICAgIGtleWJvYXJkX2ludGVycnVwdGVk
ID0gRmFsc2UKQEAgLTEzMzgsNyArMTMzOCw4IEBAIGRlZiBydW4ocG9ydCwgb3B0aW9ucywgYXJn
cywgcmVndWxhcl9vdXRwdXQ9c3lzLnN0ZGVyciwKIAogZGVmIF9zZXRfdXBfZGVyaXZlZF9vcHRp
b25zKHBvcnRfb2JqLCBvcHRpb25zKToKICAgICAiIiJTZXRzIHRoZSBvcHRpb25zIHZhbHVlcyB0
aGF0IGRlcGVuZCBvbiBvdGhlciBvcHRpb25zIHZhbHVlcy4iIiIKLQorICAgIGlmIG9wdGlvbnMu
d29ya2VyX21vZGVsIGlzIE5vbmU6CisgICAgICAgIG9wdGlvbnMud29ya2VyX21vZGVsID0gcG9y
dF9vYmouZGVmYXVsdF93b3JrZXJfbW9kZWwoKQogICAgIGlmIG9wdGlvbnMud29ya2VyX21vZGVs
ID09ICdpbmxpbmUnOgogICAgICAgICBpZiBvcHRpb25zLmNoaWxkX3Byb2Nlc3NlcyBhbmQgaW50
KG9wdGlvbnMuY2hpbGRfcHJvY2Vzc2VzKSA+IDE6CiAgICAgICAgICAgICBfbG9nLndhcm5pbmco
Ii0td29ya2VyLW1vZGVsPWlubGluZSBvdmVycmlkZXMgLS1jaGlsZC1wcm9jZXNzZXMiKQpAQCAt
MTU2OSw5ICsxNTcwLDEwIEBAIGRlZiBwYXJzZV9hcmdzKGFyZ3M9Tm9uZSk6CiAgICAgICAgIG9w
dHBhcnNlLm1ha2Vfb3B0aW9uKCItLWNoaWxkLXByb2Nlc3NlcyIsCiAgICAgICAgICAgICBoZWxw
PSJOdW1iZXIgb2YgRHVtcFJlbmRlclRyZWVzIHRvIHJ1biBpbiBwYXJhbGxlbC4iKSwKICAgICAg
ICAgIyBGSVhNRTogRGlzcGxheSBkZWZhdWx0IG51bWJlciBvZiBjaGlsZCBwcm9jZXNzZXMgdGhh
dCB3aWxsIHJ1bi4KKyAgICAgICAgIyBGSVhNRTogRGlzcGxheSBkZWZhdWx0IHRocmVhZGluZyBt
b2RlbCAod2lsbCBiZSBwb3J0LXNwZWNpZmljKS4KICAgICAgICAgb3B0cGFyc2UubWFrZV9vcHRp
b24oIi0td29ya2VyLW1vZGVsIiwgYWN0aW9uPSJzdG9yZSIsCi0gICAgICAgICAgICBkZWZhdWx0
PSJ0aHJlYWRzIiwgaGVscD0oImNvbnRyb2xzIHdvcmtlciBtb2RlbC4gVmFsaWQgdmFsdWVzIGFy
ZSAiCi0gICAgICAgICAgICAiJ2lubGluZScgYW5kICd0aHJlYWRzJyAoZGVmYXVsdCkuIikpLAor
ICAgICAgICAgICAgaGVscD0oImNvbnRyb2xzIHdvcmtlciBtb2RlbC4gVmFsaWQgdmFsdWVzIGFy
ZSAiCisgICAgICAgICAgICAiJ2lubGluZScgYW5kICd0aHJlYWRzJy4iKSksCiAgICAgICAgIG9w
dHBhcnNlLm1ha2Vfb3B0aW9uKCItLWV4cGVyaW1lbnRhbC1mdWxseS1wYXJhbGxlbCIsCiAgICAg
ICAgICAgICBhY3Rpb249InN0b3JlX3RydWUiLCBkZWZhdWx0PUZhbHNlLAogICAgICAgICAgICAg
aGVscD0icnVuIGFsbCB0ZXN0cyBpbiBwYXJhbGxlbCIpLApkaWZmIC0tZ2l0IGEvV2ViS2l0VG9v
bHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0c191bml0dGVz
dC5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJr
aXRfdGVzdHNfdW5pdHRlc3QucHkKaW5kZXggNmJiNzQxYTU3YzkxYzBiMGUyNjRjZmRlN2Q2NDEw
Y2JmNTgzOTY2YS4uMGFlOWEwOWM3ODgwZTI5NjIwZDAyNzYzNDM4ZmMxM2EyODQxM2NkOSAxMDA2
NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dl
YmtpdF90ZXN0c191bml0dGVzdC5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzX3VuaXR0ZXN0LnB5CkBAIC00Nyw2ICs0Nyw3
IEBAIGZyb20gd2Via2l0cHkuY29tbW9uIGltcG9ydCBhcnJheV9zdHJlYW0KIGZyb20gd2Via2l0
cHkuY29tbW9uLnN5c3RlbSBpbXBvcnQgb3V0cHV0Y2FwdHVyZQogZnJvbSB3ZWJraXRweS5jb21t
b24uc3lzdGVtIGltcG9ydCB1c2VyCiBmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cyBpbXBvcnQg
cG9ydAorZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMucG9ydCBpbXBvcnQgdGVzdAogZnJvbSB3
ZWJraXRweS5sYXlvdXRfdGVzdHMgaW1wb3J0IHJ1bl93ZWJraXRfdGVzdHMKIGZyb20gd2Via2l0
cHkubGF5b3V0X3Rlc3RzLmxheW91dF9wYWNrYWdlIGltcG9ydCBkdW1wX3JlbmRlcl90cmVlX3Ro
cmVhZAogZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMucG9ydC50ZXN0IGltcG9ydCBUZXN0UG9y
dCwgVGVzdERyaXZlcgpAQCAtMTg2LDYgKzE4Nyw3IEBAIGNsYXNzIE1haW5UZXN0KHVuaXR0ZXN0
LlRlc3RDYXNlKToKIAogICAgIGRlZiB0ZXN0X2JhdGNoX3NpemUoc2VsZik6CiAgICAgICAgIGJh
dGNoX3Rlc3RzX3J1biA9IGdldF90ZXN0c19ydW4oWyctLWJhdGNoLXNpemUnLCAnMiddKQorICAg
ICAgICBzZWxmLmFzc2VydEVxdWFscyhsZW4oYmF0Y2hfdGVzdHNfcnVuKSwgOSkKICAgICAgICAg
Zm9yIGJhdGNoIGluIGJhdGNoX3Rlc3RzX3J1bjoKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1
ZShsZW4oYmF0Y2gpIDw9IDIsICclcyBoYWQgdG9vIG1hbnkgdGVzdHMnICUgJywgJy5qb2luKGJh
dGNoKSkKIApAQCAtMjk3LDYgKzI5OSw3IEBAIGNsYXNzIE1haW5UZXN0KHVuaXR0ZXN0LlRlc3RD
YXNlKToKIAogICAgIGRlZiB0ZXN0X3J1bl9zaW5nbHkoc2VsZik6CiAgICAgICAgIGJhdGNoX3Rl
c3RzX3J1biA9IGdldF90ZXN0c19ydW4oWyctLXJ1bi1zaW5nbHknXSkKKyAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChsZW4oYmF0Y2hfdGVzdHNfcnVuKSwgMTQpCiAgICAgICAgIGZvciBiYXRjaCBp
biBiYXRjaF90ZXN0c19ydW46CiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhsZW4oYmF0
Y2gpLCAxLCAnJXMgaGFkIHRvbyBtYW55IHRlc3RzJyAlICcsICcuam9pbihiYXRjaCkpCiAKQEAg
LTM5Miw2ICszOTUsMTggQEAgY2xhc3MgTWFpblRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAg
ICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBsb2dnaW5nX3J1biwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgWyctLXdvcmtlci1tb2RlbCcsICd1bmtub3duJ10pCiAKKyAgICBk
ZWYgdGVzdF93b3JrZXJfbW9kZWxfX3BvcnRfb3ZlcnJpZGUoc2VsZik6CisgICAgICAgIGNsYXNz
IE92ZXJyaWRlUG9ydCh0ZXN0LlRlc3RQb3J0KToKKyAgICAgICAgICAgIGRlZiBkZWZhdWx0X3dv
cmtlcl9tb2RlbChzZWxmKToKKyAgICAgICAgICAgICAgICByZXR1cm4gJ0lOVkFMSUQnCisKKyAg
ICAgICAgb3B0aW9ucywgcGFyc2VkX2FyZ3MgPSBydW5fd2Via2l0X3Rlc3RzLnBhcnNlX2FyZ3Mo
CisgICAgICAgICAgICBbJy0tcHJpbnQnLCAnbm90aGluZycsICctLXBsYXRmb3JtJywgJ3Rlc3Qn
LCAnLS1ub3Nob3ctcmVzdWx0cyddKQorICAgICAgICBwb3J0X29iaiA9IE92ZXJyaWRlUG9ydChv
cHRpb25zPW9wdGlvbnMpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIHJ1
bl93ZWJraXRfdGVzdHMucnVuLCBwb3J0X29iaiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
b3B0aW9ucywgcGFyc2VkX2FyZ3MpCisKKwogTWFpblRlc3QgPSBza2lwX2lmKE1haW5UZXN0LCBz
eXMucGxhdGZvcm0gPT0gJ2N5Z3dpbicgYW5kIGNvbXBhcmVfdmVyc2lvbihzeXMsICcyLjYnKVsw
XSA8IDAsICduZXctcnVuLXdlYmtpdC10ZXN0cyB0ZXN0cyBoYW5nIG9uIEN5Z3dpbiBQeXRob24g
Mi41LjInKQogCiAK
</data>
<flag name="review"
          id="66235"
          type_id="1"
          status="+"
          setter="ojan"
    />
          </attachment>
      

    </bug>

</bugzilla>