<?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>185090</bug_id>
          
          <creation_ts>2018-04-27 14:08:14 -0700</creation_ts>
          <short_desc>REGRESSION (r230998): Cannot stream API test output</short_desc>
          <delta_ts>2018-05-10 17:43:43 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=181043</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jonathan Bedard">jbedard</reporter>
          <assigned_to name="Jonathan Bedard">jbedard</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>lforschler</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1418613</commentid>
    <comment_count>0</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2018-04-27 14:08:14 -0700</bug_when>
    <thetext>It used to be the case that API tests would stream their output before timing out.  After r230998, this output was cached and only printed after a test timed out.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1418617</commentid>
    <comment_count>1</comment_count>
      <attachid>339025</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2018-04-27 14:11:24 -0700</bug_when>
    <thetext>Created attachment 339025
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1418633</commentid>
    <comment_count>2</comment_count>
      <attachid>339025</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-04-27 14:40:43 -0700</bug_when>
    <thetext>Comment on attachment 339025
Patch

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

&gt; Tools/Scripts/webkitpy/api_tests/runner.py:108
&gt; +                        self.printer.writeln(source)

Does this output with timestamps? I really don&apos;t want to see that in the streamed results.
Because it would make copying &amp; pasting multiple lines of output hard.
e.g. for dumping render tree, etc...

&gt; Tools/Scripts/webkitpy/api_tests/runner.py:159
&gt; +        status = Runner.STATUS_FAILED

Sounds like this is really STATUS_RUNNING?

&gt; Tools/Scripts/webkitpy/api_tests/runner.py:166
&gt; +            if status != Runner.STATUS_DISABLED:
&gt; +                server_process.start()

Why is this code change needed?

&gt; Tools/Scripts/webkitpy/api_tests/runner.py:177
&gt; +                    self._caller.post(&apos;log&apos;, None, None, stderr_line[:-1])

Name arguments to which you&apos;re specifying None. Otherwise, the reader of this code can&apos;t tell what&apos;s being set to None.

&gt; Tools/Scripts/webkitpy/api_tests/runner.py:183
&gt; +                        self._caller.post(&apos;log&apos;, None, None, stdout_line[:-1])

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1418635</commentid>
    <comment_count>3</comment_count>
      <attachid>339025</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-04-27 14:41:41 -0700</bug_when>
    <thetext>Comment on attachment 339025
Patch

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

&gt; Tools/Scripts/webkitpy/api_tests/runner.py:52
&gt; +        self._has_logged_for_test = True

Why this instance variable initially set to True?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1418996</commentid>
    <comment_count>4</comment_count>
      <attachid>339025</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2018-04-30 09:32:53 -0700</bug_when>
    <thetext>Comment on attachment 339025
Patch

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

&gt;&gt; Tools/Scripts/webkitpy/api_tests/runner.py:52
&gt;&gt; +        self._has_logged_for_test = True
&gt; 
&gt; Why this instance variable initially set to True?

This is basically a cosmetic difference.

False would mean an empty line between the output &apos;Running tests&apos;, true means there is no empty line. I thought that not having the empty line looked better.

&gt;&gt; Tools/Scripts/webkitpy/api_tests/runner.py:108
&gt;&gt; +                        self.printer.writeln(source)
&gt; 
&gt; Does this output with timestamps? I really don&apos;t want to see that in the streamed results.
&gt; Because it would make copying &amp; pasting multiple lines of output hard.
&gt; e.g. for dumping render tree, etc...

This would output timestamps in verbose mode, yes.

It sounds like that isn&apos;t desirable, I&apos;ll change it.

&gt;&gt; Tools/Scripts/webkitpy/api_tests/runner.py:166
&gt;&gt; +                server_process.start()
&gt; 
&gt; Why is this code change needed?

Because we really shouldn&apos;t have been starting the process if the test was disabled in the first place.

This code change isn&apos;t needed, exactly (the old way did work), but it is better because it doesn&apos;t spawn an extra process needlessly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1419028</commentid>
    <comment_count>5</comment_count>
      <attachid>339123</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2018-04-30 10:14:54 -0700</bug_when>
    <thetext>Created attachment 339123
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1419032</commentid>
    <comment_count>6</comment_count>
      <attachid>339123</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2018-04-30 10:21:52 -0700</bug_when>
    <thetext>Comment on attachment 339123
Patch

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

&gt; Tools/Scripts/webkitpy/api_tests/runner.py:100
&gt; +        source = &apos;&apos; if self._num_workers == 1 else source + &apos; &apos;

I wanted to call out what changed here, base on Ryosuke&apos;s request in comment 2: &apos;Does this output with timestamps? I really don&apos;t want to see that in the streamed results.&apos;

The new patch will not print timestamps unless specifically asked to do so. It will also not print the worker information if only one worker is used. This should make logs easy to copy paste.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1422879</commentid>
    <comment_count>7</comment_count>
      <attachid>339123</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-05-10 14:35:46 -0700</bug_when>
    <thetext>Comment on attachment 339123
Patch

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

&gt; Tools/Scripts/webkitpy/api_tests/runner.py:53
&gt; +        self._has_logged_for_test = True

We should add a comment here saying this would suppress an empty line between &quot;Running tests&quot; and the first test&apos;s output.

&gt; Tools/Scripts/webkitpy/layout_tests/views/metered_stream.py:57
&gt; +        self._print_timestamps = verbose if print_timestamps is None else print_timestamps

It&apos;s a bit odd that this falls back to verbose but I guess changing it everywhere would be a lot of code changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1422923</commentid>
    <comment_count>8</comment_count>
      <attachid>340142</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2018-05-10 16:08:35 -0700</bug_when>
    <thetext>Created attachment 340142
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1422969</commentid>
    <comment_count>9</comment_count>
      <attachid>340142</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-05-10 17:42:08 -0700</bug_when>
    <thetext>Comment on attachment 340142
Patch for landing

Clearing flags on attachment: 340142

Committed r231679: &lt;https://trac.webkit.org/changeset/231679&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1422970</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-05-10 17:42:10 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1422971</commentid>
    <comment_count>11</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-05-10 17:43:43 -0700</bug_when>
    <thetext>&lt;rdar://problem/40148803&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>339025</attachid>
            <date>2018-04-27 14:11:24 -0700</date>
            <delta_ts>2018-04-30 10:14:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-185090-20180427141123.patch</filename>
            <type>text/plain</type>
            <size>8102</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIzMTExMCkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDI1IEBACisyMDE4LTA0LTI3ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICBSRUdSRVNTSU9OIChyMjMwOTk4KTogQ2Fubm90IHN0cmVhbSBBUEkgdGVz
dCBvdXRwdXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE4NTA5MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IENoYW5nZSBydW4tYXBpLXRlc3RzIHNvIHRoYXQgdGhlIHN0ZG91dCBhbmQgc3RkZXJyIG9mIGEg
dGVzdCB3aWxsIGJlIHByaW50ZWQKKyAgICAgICAgYmVmb3JlIGl0J3MgcmVzdWx0LiBJZiAtdiBp
cyBwYXNzZWQsIHRoZSBvdXRwdXQgb2Ygc2luZ2xlIHRlc3QgcnVucyB3aWxsIGJlCisgICAgICAg
IHN0cmVhbWVkLiAKKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvYXBpX3Rlc3RzL3J1bm5l
ci5weToKKyAgICAgICAgKFJ1bm5lci5fX2luaXRfXyk6IEFkZCBudW1iZXIgb2Ygd29ya2VycyBh
bmQgYSBmbGFnIHRvIGRldGVjdCBpZiBhIG5ld2xpbmUKKyAgICAgICAgaXMgbmVlZGVkIGF0IHRo
ZSBiZWdpbm5pbmcgb2YgYSBsb2cgbGluZS4KKyAgICAgICAgKFJ1bm5lci5ydW4pOiBUdXJuIG9m
ZiBtb3N0IGxvZ2dpbmcgY29taW5nIGZyb20gc2VydmVyIHByb2Nlc3Mgc2luY2UgaXQgaXMKKyAg
ICAgICAgbm90IGNvbnN0cnVjdGl2ZSBmb3IgQVBJIHRlc3RzLgorICAgICAgICAoUnVubmVyLmhh
bmRsZSk6IEFkZCBuZXcgbG9nIG1lc3NhZ2UgdG8gc3RyZWFtIHN0ZG91dCBhbmQgc3RkZXJyIGlu
c3RlYWQgb2YKKyAgICAgICAgY2FjaGluZyB2YWx1ZXMgdW50aWwgdGhlIHRlc3QgcnVuIGZpbmlz
aGVkLgorICAgICAgICAoX1dvcmtlci5fcnVuX3NpbmdsZV90ZXN0KTogTG9nIHN0ZG91dCBhbmQg
c3RkZXJyIGluIHJlYWwgdGltZS4KKyAgICAgICAgKF9Xb3JrZXIuX3J1bl9zaGFyZF93aXRoX2Jp
bmFyeSk6IExvZyBzdGRlcnIgYW5kIHN0ZG91dCBidWZmZXIgYmVmb3JlIGVuZGluZworICAgICAg
ICB0aGUgdGVzdC4KKwogMjAxOC0wNC0yNyAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFw
cGxlLmNvbT4KIAogICAgICAgICBbRXh0cmEgem9vbSBtb2RlXSBBZGQgYSBtZWNoYW5pc20gdG8g
b3ZlcnJpZGUgZGVmYXVsdCB2aWV3cG9ydCBiZWhhdmlvcnMgaW4gZXh0cmEgem9vbSBtb2RlCklu
ZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2FwaV90ZXN0cy9ydW5uZXIucHkKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9hcGlfdGVzdHMvcnVubmVyLnB5CShyZXZpc2lv
biAyMzEwNzEpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2FwaV90ZXN0cy9ydW5uZXIucHkJ
KHdvcmtpbmcgY29weSkKQEAgLTIxLDEwICsyMSwxMSBAQAogIyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAogaW1wb3J0IG9zCitp
bXBvcnQgbG9nZ2luZwogaW1wb3J0IHRpbWUKIAogZnJvbSB3ZWJraXRweS5jb21tb24gaW1wb3J0
IG1lc3NhZ2VfcG9vbAotZnJvbSB3ZWJraXRweS5wb3J0LnNlcnZlcl9wcm9jZXNzIGltcG9ydCBT
ZXJ2ZXJQcm9jZXNzCitmcm9tIHdlYmtpdHB5LnBvcnQuc2VydmVyX3Byb2Nlc3MgaW1wb3J0IFNl
cnZlclByb2Nlc3MsIF9sb2cgYXMgc2VydmVyX3Byb2Nlc3NfbG9nZ2VyCiBmcm9tIHdlYmtpdHB5
Lnhjb2RlLnNpbXVsYXRlZF9kZXZpY2UgaW1wb3J0IFNpbXVsYXRlZERldmljZU1hbmFnZXIKIAog
CkBAIC00Nyw2ICs0OCw4IEBAIGNsYXNzIFJ1bm5lcihvYmplY3QpOgogICAgICAgICBzZWxmLnBv
cnQgPSBwb3J0CiAgICAgICAgIHNlbGYucHJpbnRlciA9IHByaW50ZXIKICAgICAgICAgc2VsZi50
ZXN0c19ydW4gPSAwCisgICAgICAgIHNlbGYuX251bV93b3JrZXJzID0gMQorICAgICAgICBzZWxm
Ll9oYXNfbG9nZ2VkX2Zvcl90ZXN0ID0gVHJ1ZQogICAgICAgICBzZWxmLnJlc3VsdHMgPSB7fQog
CiAgICAgQHN0YXRpY21ldGhvZApAQCAtNzgsMjQgKzgxLDQ3IEBAIGNsYXNzIFJ1bm5lcihvYmpl
Y3QpOgogICAgICAgICBzZWxmLnByaW50ZXIud3JpdGVfdXBkYXRlKCdTaGFyZGluZyB0ZXN0cyAu
Li4nKQogICAgICAgICBzaGFyZHMgPSBSdW5uZXIuX3NoYXJkX3Rlc3RzKHRlc3RzKQogCi0gICAg
ICAgIHdpdGggbWVzc2FnZV9wb29sLmdldChzZWxmLCBsYW1iZGEgY2FsbGVyOiBfV29ya2VyKGNh
bGxlciwgc2VsZi5wb3J0LCBzaGFyZHMpLCBtaW4obnVtX3dvcmtlcnMsIGxlbihzaGFyZHMpKSkg
YXMgcG9vbDoKLSAgICAgICAgICAgIHBvb2wucnVuKCgndGVzdCcsIHNoYXJkKSBmb3Igc2hhcmQs
IF8gaW4gc2hhcmRzLml0ZXJpdGVtcygpKQorICAgICAgICBvcmlnaW5hbF9sZXZlbCA9IHNlcnZl
cl9wcm9jZXNzX2xvZ2dlci5sZXZlbAorICAgICAgICBzZXJ2ZXJfcHJvY2Vzc19sb2dnZXIuc2V0
TGV2ZWwobG9nZ2luZy5DUklUSUNBTCkKKworICAgICAgICB0cnk6CisgICAgICAgICAgICBzZWxm
Ll9udW1fd29ya2VycyA9IG1pbihudW1fd29ya2VycywgbGVuKHNoYXJkcykpCisgICAgICAgICAg
ICB3aXRoIG1lc3NhZ2VfcG9vbC5nZXQoc2VsZiwgbGFtYmRhIGNhbGxlcjogX1dvcmtlcihjYWxs
ZXIsIHNlbGYucG9ydCwgc2hhcmRzKSwgc2VsZi5fbnVtX3dvcmtlcnMpIGFzIHBvb2w6CisgICAg
ICAgICAgICAgICAgcG9vbC5ydW4oKCd0ZXN0Jywgc2hhcmQpIGZvciBzaGFyZCwgXyBpbiBzaGFy
ZHMuaXRlcml0ZW1zKCkpCisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICBzZXJ2ZXJfcHJv
Y2Vzc19sb2dnZXIuc2V0TGV2ZWwob3JpZ2luYWxfbGV2ZWwpCisKIAogICAgIGRlZiBoYW5kbGUo
c2VsZiwgbWVzc2FnZV9uYW1lLCBzb3VyY2UsIHRlc3RfbmFtZT1Ob25lLCBzdGF0dXM9MCwgb3V0
cHV0PScnKToKICAgICAgICAgaWYgbWVzc2FnZV9uYW1lID09ICdkaWRfc3Bhd25fd29ya2VyJzoK
ICAgICAgICAgICAgIHJldHVybgorCisgICAgICAgIHdpbGxfc3RyZWFtX2xvZ3MgPSBzZWxmLl9u
dW1fd29ya2VycyA9PSAxIGFuZCBzZWxmLnBvcnQuZ2V0X29wdGlvbigndmVyYm9zZScpCiAgICAg
ICAgIGlmIG1lc3NhZ2VfbmFtZSA9PSAnZW5kZWRfdGVzdCc6CiAgICAgICAgICAgICB1cGRhdGUg
PSAne30ge30ge30nLmZvcm1hdChzb3VyY2UsIHRlc3RfbmFtZSwgUnVubmVyLk5BTUVfRk9SX1NU
QVRVU1tzdGF0dXNdKQogCiAgICAgICAgICAgICAjIERvbid0IHByaW50IHRlc3Qgb3V0cHV0IGlm
IC0tcXVpZXQuCiAgICAgICAgICAgICBpZiBzdGF0dXMgIT0gUnVubmVyLlNUQVRVU19QQVNTRUQg
b3IgKG91dHB1dCBhbmQgbm90IHNlbGYucG9ydC5nZXRfb3B0aW9uKCdxdWlldCcpKToKKyAgICAg
ICAgICAgICAgICBpZiBub3Qgd2lsbF9zdHJlYW1fbG9nczoKKyAgICAgICAgICAgICAgICAgICAg
aWYgbm90IHNlbGYuX2hhc19sb2dnZWRfZm9yX3Rlc3Q6CisgICAgICAgICAgICAgICAgICAgICAg
ICBzZWxmLl9oYXNfbG9nZ2VkX2Zvcl90ZXN0ID0gVHJ1ZQorICAgICAgICAgICAgICAgICAgICAg
ICAgc2VsZi5wcmludGVyLndyaXRlbG4oc291cmNlKQorICAgICAgICAgICAgICAgICAgICBmb3Ig
bGluZSBpbiBvdXRwdXQuc3BsaXRsaW5lcygpOgorICAgICAgICAgICAgICAgICAgICAgICAgc2Vs
Zi5wcmludGVyLndyaXRlbG4oJ3t9ICAgIHt9Jy5mb3JtYXQoc291cmNlLCBsaW5lKSkKICAgICAg
ICAgICAgICAgICBzZWxmLnByaW50ZXIud3JpdGVsbih1cGRhdGUpCi0gICAgICAgICAgICAgICAg
Zm9yIGxpbmUgaW4gb3V0cHV0LnNwbGl0bGluZXMoKToKLSAgICAgICAgICAgICAgICAgICAgc2Vs
Zi5wcmludGVyLndyaXRlbG4oJyAgICB7fScuZm9ybWF0KGxpbmUpKQogICAgICAgICAgICAgZWxz
ZToKICAgICAgICAgICAgICAgICBzZWxmLnByaW50ZXIud3JpdGVfdXBkYXRlKHVwZGF0ZSkKICAg
ICAgICAgICAgIHNlbGYudGVzdHNfcnVuICs9IDEKICAgICAgICAgICAgIHNlbGYucmVzdWx0c1t0
ZXN0X25hbWVdID0gKHN0YXR1cywgb3V0cHV0KQorICAgICAgICAgICAgc2VsZi5faGFzX2xvZ2dl
ZF9mb3JfdGVzdCA9IEZhbHNlCisKKyAgICAgICAgaWYgbWVzc2FnZV9uYW1lID09ICdsb2cnIGFu
ZCB3aWxsX3N0cmVhbV9sb2dzOgorICAgICAgICAgICAgaWYgbm90IHNlbGYuX2hhc19sb2dnZWRf
Zm9yX3Rlc3Q6CisgICAgICAgICAgICAgICAgc2VsZi5faGFzX2xvZ2dlZF9mb3JfdGVzdCA9IFRy
dWUKKyAgICAgICAgICAgICAgICBzZWxmLnByaW50ZXIud3JpdGVsbihzb3VyY2UpCisgICAgICAg
ICAgICBmb3IgbGluZSBpbiBvdXRwdXQuc3BsaXRsaW5lcygpOgorICAgICAgICAgICAgICAgIHNl
bGYucHJpbnRlci53cml0ZWxuKCcobG9nKSB7fSAgICB7fScuZm9ybWF0KHNvdXJjZSwgbGluZSkp
CisKIAogICAgIGRlZiByZXN1bHRfbWFwX2J5X3N0YXR1cyhzZWxmLCBzdGF0dXM9Tm9uZSk6CiAg
ICAgICAgIG1hcCA9IHt9CkBAIC0xMzAsMjggKzE1Niw0NCBAQCBjbGFzcyBfV29ya2VyKG9iamVj
dCk6CiAgICAgICAgICAgICBSdW5uZXIuY29tbWFuZF9mb3JfcG9ydChzZWxmLl9wb3J0LCBbc2Vs
Zi5fcG9ydC5fYnVpbGRfcGF0aChiaW5hcnlfbmFtZSksICctLWd0ZXN0X2ZpbHRlcj17fScuZm9y
bWF0KHRlc3QpXSksCiAgICAgICAgICAgICBlbnY9c2VsZi5fcG9ydC5lbnZpcm9ubWVudF9mb3Jf
YXBpX3Rlc3RzKCkpCiAKKyAgICAgICAgc3RhdHVzID0gUnVubmVyLlNUQVRVU19GQUlMRUQKKyAg
ICAgICAgaWYgdGVzdC5zcGxpdCgnLicpWzFdLnN0YXJ0c3dpdGgoJ0RJU0FCTEVEXycpOgorICAg
ICAgICAgICAgc3RhdHVzID0gUnVubmVyLlNUQVRVU19ESVNBQkxFRAorCiAgICAgICAgIHRyeToK
ICAgICAgICAgICAgIGRlYWRsaW5lID0gdGltZS50aW1lKCkgKyBzZWxmLl90aW1lb3V0Ci0gICAg
ICAgICAgICBzZXJ2ZXJfcHJvY2Vzcy5zdGFydCgpCisgICAgICAgICAgICBpZiBzdGF0dXMgIT0g
UnVubmVyLlNUQVRVU19ESVNBQkxFRDoKKyAgICAgICAgICAgICAgICBzZXJ2ZXJfcHJvY2Vzcy5z
dGFydCgpCiAKLSAgICAgICAgICAgIGlmIG5vdCB0ZXN0LnNwbGl0KCcuJylbMV0uc3RhcnRzd2l0
aCgnRElTQUJMRURfJyk6Ci0gICAgICAgICAgICAgICAgc3Rkb3V0X2xpbmUgPSBzZXJ2ZXJfcHJv
Y2Vzcy5yZWFkX3N0ZG91dF9saW5lKGRlYWRsaW5lKQotICAgICAgICAgICAgZWxzZToKLSAgICAg
ICAgICAgICAgICBzdGRvdXRfbGluZSA9IE5vbmUKKyAgICAgICAgICAgIHN0ZG91dF9idWZmZXIg
PSAnJworICAgICAgICAgICAgc3RkZXJyX2J1ZmZlciA9ICcnCisgICAgICAgICAgICB3aGlsZSBz
dGF0dXMgPT0gUnVubmVyLlNUQVRVU19GQUlMRUQ6CisgICAgICAgICAgICAgICAgc3Rkb3V0X2xp
bmUsIHN0ZGVycl9saW5lID0gc2VydmVyX3Byb2Nlc3MucmVhZF9laXRoZXJfc3Rkb3V0X29yX3N0
ZGVycl9saW5lKGRlYWRsaW5lKQorICAgICAgICAgICAgICAgIGlmIG5vdCBzdGRlcnJfbGluZSBh
bmQgbm90IHN0ZG91dF9saW5lOgorICAgICAgICAgICAgICAgICAgICBicmVhawogCi0gICAgICAg
ICAgICBpZiBub3Qgc3Rkb3V0X2xpbmUgYW5kIHNlcnZlcl9wcm9jZXNzLnRpbWVkX291dDoKKyAg
ICAgICAgICAgICAgICBpZiBzdGRlcnJfbGluZToKKyAgICAgICAgICAgICAgICAgICAgc3RkZXJy
X2J1ZmZlciArPSBzdGRlcnJfbGluZQorICAgICAgICAgICAgICAgICAgICBzZWxmLl9jYWxsZXIu
cG9zdCgnbG9nJywgTm9uZSwgTm9uZSwgc3RkZXJyX2xpbmVbOi0xXSkKKyAgICAgICAgICAgICAg
ICBpZiBzdGRvdXRfbGluZToKKyAgICAgICAgICAgICAgICAgICAgaWYgJyoqUEFTUyoqJyBpbiBz
dGRvdXRfbGluZToKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1cyA9IFJ1bm5lci5TVEFU
VVNfUEFTU0VECisgICAgICAgICAgICAgICAgICAgIGVsaWYgJyoqRkFJTCoqJyBub3QgaW4gc3Rk
b3V0X2xpbmU6CisgICAgICAgICAgICAgICAgICAgICAgICBzdGRvdXRfYnVmZmVyICs9IHN0ZG91
dF9saW5lCisgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9jYWxsZXIucG9zdCgnbG9nJywg
Tm9uZSwgTm9uZSwgc3Rkb3V0X2xpbmVbOi0xXSkKKworICAgICAgICAgICAgaWYgc3RhdHVzID09
IFJ1bm5lci5TVEFUVVNfRElTQUJMRUQ6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAg
ICAgZWxpZiBzZXJ2ZXJfcHJvY2Vzcy50aW1lZF9vdXQ6CiAgICAgICAgICAgICAgICAgc3RhdHVz
ID0gUnVubmVyLlNUQVRVU19USU1FT1VUCi0gICAgICAgICAgICBlbGlmIG5vdCBzdGRvdXRfbGlu
ZSBhbmQgc2VydmVyX3Byb2Nlc3MuaGFzX2NyYXNoZWQoKToKKyAgICAgICAgICAgIGVsaWYgc2Vy
dmVyX3Byb2Nlc3MuaGFzX2NyYXNoZWQoKToKICAgICAgICAgICAgICAgICBzdGF0dXMgPSBSdW5u
ZXIuU1RBVFVTX0NSQVNIRUQKLSAgICAgICAgICAgIGVsaWYgbm90IHN0ZG91dF9saW5lOgotICAg
ICAgICAgICAgICAgIHN0YXR1cyA9IFJ1bm5lci5TVEFUVVNfRElTQUJMRUQKLSAgICAgICAgICAg
IGVsaWYgJyoqUEFTUyoqJyBpbiBzdGRvdXRfbGluZToKLSAgICAgICAgICAgICAgICBzdGF0dXMg
PSBSdW5uZXIuU1RBVFVTX1BBU1NFRAotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAg
ICBzdGF0dXMgPSBSdW5uZXIuU1RBVFVTX0ZBSUxFRAogCiAgICAgICAgIGZpbmFsbHk6Ci0gICAg
ICAgICAgICBvdXRwdXRfYnVmZmVyID0gc2VydmVyX3Byb2Nlc3MucG9wX2FsbF9idWZmZXJlZF9z
dGRvdXQoKSArIHNlcnZlcl9wcm9jZXNzLnBvcF9hbGxfYnVmZmVyZWRfc3RkZXJyKCkKKyAgICAg
ICAgICAgIHJlbWFpbmluZ19zdGRlcnIgPSBzZXJ2ZXJfcHJvY2Vzcy5wb3BfYWxsX2J1ZmZlcmVk
X3N0ZGVycigpCisgICAgICAgICAgICByZW1haW5pbmdfc3Rkb3V0ID0gc2VydmVyX3Byb2Nlc3Mu
cG9wX2FsbF9idWZmZXJlZF9zdGRvdXQoKQorICAgICAgICAgICAgc2VsZi5fY2FsbGVyLnBvc3Qo
J2xvZycsIE5vbmUsIE5vbmUsIHJlbWFpbmluZ19zdGRlcnIgKyByZW1haW5pbmdfc3Rkb3V0KQor
ICAgICAgICAgICAgb3V0cHV0X2J1ZmZlciA9IHN0ZGVycl9idWZmZXIgKyBzdGRvdXRfYnVmZmVy
ICsgcmVtYWluaW5nX3N0ZGVyciArIHJlbWFpbmluZ19zdGRvdXQKICAgICAgICAgICAgIHNlcnZl
cl9wcm9jZXNzLnN0b3AoKQogCiAgICAgICAgIHNlbGYuX2NhbGxlci5wb3N0KCdlbmRlZF90ZXN0
JywgJ3t9Lnt9Jy5mb3JtYXQoYmluYXJ5X25hbWUsIHRlc3QpLCBzdGF0dXMsIHNlbGYuX2ZpbHRl
cl9ub2lzeV9vdXRwdXQob3V0cHV0X2J1ZmZlcikpCkBAIC0yMTEsNiArMjUzLDcgQEAgY2xhc3Mg
X1dvcmtlcihvYmplY3QpOgogICAgICAgICAgICAgICAgICAgICByZW1haW5pbmdfdGVzdHMucmVt
b3ZlKGxhc3RfdGVzdCkKICAgICAgICAgICAgICAgICAgICAgc3Rkb3V0X2J1ZmZlciArPSBzZXJ2
ZXJfcHJvY2Vzcy5wb3BfYWxsX2J1ZmZlcmVkX3N0ZG91dCgpCiAgICAgICAgICAgICAgICAgICAg
IHN0ZGVycl9idWZmZXIgPSBzZXJ2ZXJfcHJvY2Vzcy5wb3BfYWxsX2J1ZmZlcmVkX3N0ZGVycigp
IGlmIGxhc3Rfc3RhdHVzID09IFJ1bm5lci5TVEFUVVNfQ1JBU0hFRCBlbHNlICcnCisgICAgICAg
ICAgICAgICAgICAgIHNlbGYuX2NhbGxlci5wb3N0KCdsb2cnLCBOb25lLCBOb25lLCBzdGRvdXRf
YnVmZmVyICsgc3RkZXJyX2J1ZmZlcikKICAgICAgICAgICAgICAgICAgICAgc2VsZi5fY2FsbGVy
LnBvc3QoJ2VuZGVkX3Rlc3QnLCAne30ue30nLmZvcm1hdChiaW5hcnlfbmFtZSwgbGFzdF90ZXN0
KSwgbGFzdF9zdGF0dXMsIHNlbGYuX2ZpbHRlcl9ub2lzeV9vdXRwdXQoc3Rkb3V0X2J1ZmZlciAr
IHN0ZGVycl9idWZmZXIpKQogCiAgICAgICAgICAgICAgICAgaWYgc2VydmVyX3Byb2Nlc3MudGlt
ZWRfb3V0Ogo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>339123</attachid>
            <date>2018-04-30 10:14:54 -0700</date>
            <delta_ts>2018-05-10 16:08:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-185090-20180430101453.patch</filename>
            <type>text/plain</type>
            <size>16400</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIzMTE1NykKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDQwIEBACisyMDE4LTA0LTI3ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICBSRUdSRVNTSU9OIChyMjMwOTk4KTogQ2Fubm90IHN0cmVhbSBBUEkgdGVz
dCBvdXRwdXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE4NTA5MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IENoYW5nZSBydW4tYXBpLXRlc3RzIHNvIHRoYXQgdGhlIHN0ZG91dCBhbmQgc3RkZXJyIG9mIGEg
dGVzdCB3aWxsIGJlIHByaW50ZWQKKyAgICAgICAgYmVmb3JlIGl0J3MgcmVzdWx0LiBJZiAtdiBp
cyBwYXNzZWQsIHRoZSBvdXRwdXQgb2Ygc2luZ2xlIHRlc3QgcnVucyB3aWxsIGJlCisgICAgICAg
IHN0cmVhbWVkLiAKKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvYXBpX3Rlc3RzL3J1bl9h
cGlfdGVzdHMucHk6CisgICAgICAgIChydW4pOiBVc2UgcHJpbnRfdGltZXN0YW1wcyBmbGFnLgor
ICAgICAgICAocGFyc2VfYXJncyk6IEFkZCB0aW1lc3RhbXBzIG9wdGlvbiB0byBwcmludCB0aW1l
c3RhbXBzIGluIHRoZSBsb2cuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9hcGlfdGVzdHMv
cnVubmVyLnB5OgorICAgICAgICAoUnVubmVyKTogQWRkIHJ1bm5pbmcgc3RhdHVzLgorICAgICAg
ICAoUnVubmVyLl9faW5pdF9fKTogQWRkIG51bWJlciBvZiB3b3JrZXJzIGFuZCBhIGZsYWcgdG8g
ZGV0ZWN0IGlmIGEgbmV3bGluZQorICAgICAgICBpcyBuZWVkZWQgYXQgdGhlIGJlZ2lubmluZyBv
ZiBhIGxvZyBsaW5lLgorICAgICAgICAoUnVubmVyLnJ1bik6IFR1cm4gb2ZmIG1vc3QgbG9nZ2lu
ZyBjb21pbmcgZnJvbSBzZXJ2ZXIgcHJvY2VzcyBzaW5jZSBpdCBpcworICAgICAgICBub3QgY29u
c3RydWN0aXZlIGZvciBBUEkgdGVzdHMuCisgICAgICAgIChSdW5uZXIuaGFuZGxlKTogQWRkIG5l
dyBsb2cgbWVzc2FnZSB0byBzdHJlYW0gc3Rkb3V0IGFuZCBzdGRlcnIgaW5zdGVhZCBvZgorICAg
ICAgICBjYWNoaW5nIHZhbHVlcyB1bnRpbCB0aGUgdGVzdCBydW4gZmluaXNoZWQuCisgICAgICAg
IChfV29ya2VyLl9ydW5fc2luZ2xlX3Rlc3QpOiBMb2cgc3Rkb3V0IGFuZCBzdGRlcnIgaW4gcmVh
bCB0aW1lLgorICAgICAgICAoX1dvcmtlci5fcnVuX3NoYXJkX3dpdGhfYmluYXJ5KTogTG9nIHN0
ZGVyciBhbmQgc3Rkb3V0IGJ1ZmZlciBiZWZvcmUgZW5kaW5nCisgICAgICAgIHRoZSB0ZXN0Lgor
ICAgICAgICAoX1dvcmtlci5wb3N0KTogUHJvdmlkZSBhIHBvc3Qgd2l0aCBleHBsaWNpdGx5IGVu
dW1lcmF0ZWQgYXJndW1lbnQgbmFtZXMuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvdmlld3MvbWV0ZXJlZF9zdHJlYW0ucHk6CisgICAgICAgIChNZXRlcmVkU3RyZWFt
Ll9faW5pdF9fKTogRGlmZmVyZW50aWF0ZSB2ZXJib3NlIGxvZ2dpbmcgYW5kIGxvZ2dpbmcgd2l0
aCB0aW1lc3RhbXBzLgorICAgICAgICAoTWV0ZXJlZFN0cmVhbS53cml0ZSk6IEFsbG93IGZvciB2
ZXJib3NlIGxvZ2dpbmcgd2l0aG91dCB0aW1lc3RhbXBzLgorICAgICAgICAqIFNjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL3ZpZXdzL21ldGVyZWRfc3RyZWFtX3VuaXR0ZXN0LnB5OgorICAg
ICAgICAoUmVndWxhclRlc3QpOiBBZGQgcHJpbnRfdGltZXN0YW1wcyBmbGFnLgorICAgICAgICAo
UmVndWxhclRlc3Quc2V0VXApOgorICAgICAgICAoUmVndWxhclRlc3QudGVzdF9sb2dnaW5nX25v
dF9pbmNsdWRlZCk6CisgICAgICAgIChWZXJib3NlVGVzdC50ZXN0X2xvZ19hcmdzKToKKyAgICAg
ICAgKFZlcmJvc2VXaXRoT3V0VGltZXN0YW1wKToKKyAgICAgICAgKFZlcmJvc2VXaXRoT3V0VGlt
ZXN0YW1wLnRlc3RfYmFzaWMpOiBBZGQgdGVzdCBmb3IgdmVyYm9zZSBsb2dnaW5nIHdpdGhvdXQg
dGltZXN0YW1wcy4KKwogMjAxOC0wNC0zMCAgTWljaGFlbCBDYXRhbnphcm8gIDxtY2F0YW56YXJv
QGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gV2Via2l0IHNob3VsZCBzcG9vZiBhcyBTYWZh
cmkgb24gYSBNYWMgd2hlbiBvbiBDaGFzZS5jb20KSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0
cHkvYXBpX3Rlc3RzL3J1bl9hcGlfdGVzdHMucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9hcGlfdGVzdHMvcnVuX2FwaV90ZXN0cy5weQkocmV2aXNpb24gMjMxMTU2KQor
KysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS9hcGlfdGVzdHMvcnVuX2FwaV90ZXN0cy5weQkod29y
a2luZyBjb3B5KQpAQCAtNzAsNyArNzAsNyBAQCBkZWYgcnVuKHBvcnQsIG9wdGlvbnMsIGFyZ3Ms
IGxvZ2dpbmdfc3RyCiAgICAgbG9nZ2VyLnNldExldmVsKGxvZ2dpbmcuREVCVUcgaWYgb3B0aW9u
cy52ZXJib3NlIGVsc2UgbG9nZ2luZy5FUlJPUiBpZiBvcHRpb25zLnF1aWV0IGVsc2UgbG9nZ2lu
Zy5JTkZPKQogCiAgICAgdHJ5OgotICAgICAgICBzdHJlYW0gPSBNZXRlcmVkU3RyZWFtKGxvZ2dp
bmdfc3RyZWFtLCBvcHRpb25zLnZlcmJvc2UsIGxvZ2dlcj1sb2dnZXIsIG51bWJlcl9vZl9jb2x1
bW5zPXBvcnQuaG9zdC5wbGF0Zm9ybS50ZXJtaW5hbF93aWR0aCgpKQorICAgICAgICBzdHJlYW0g
PSBNZXRlcmVkU3RyZWFtKGxvZ2dpbmdfc3RyZWFtLCBvcHRpb25zLnZlcmJvc2UsIGxvZ2dlcj1s
b2dnZXIsIG51bWJlcl9vZl9jb2x1bW5zPXBvcnQuaG9zdC5wbGF0Zm9ybS50ZXJtaW5hbF93aWR0
aCgpLCBwcmludF90aW1lc3RhbXBzPW9wdGlvbnMudGltZXN0YW1wcykKICAgICAgICAgbWFuYWdl
ciA9IE1hbmFnZXIocG9ydCwgb3B0aW9ucywgc3RyZWFtKQogCiAgICAgICAgIHJlc3VsdCA9IG1h
bmFnZXIucnVuKGFyZ3MpCkBAIC05MCw2ICs5MCw4IEBAIGRlZiBwYXJzZV9hcmdzKGFyZ3MpOgog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSdSdW4gcXVpZXRseSAoZXJyb3JzLCB3
YXJuaW5ncywgYW5kIHByb2dyZXNzIG9ubHkpJyksCiAgICAgICAgIG9wdHBhcnNlLm1ha2Vfb3B0
aW9uKCctdicsICctLXZlcmJvc2UnLCBhY3Rpb249J3N0b3JlX3RydWUnLCBkZWZhdWx0PUZhbHNl
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSdFbmFibGUgdmVyYm9zZSBwcmlu
dGluZycpLAorICAgICAgICBvcHRwYXJzZS5tYWtlX29wdGlvbignLS10aW1lc3RhbXBzJywgYWN0
aW9uPSdzdG9yZV90cnVlJywgZGVmYXVsdD1GYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaGVscD0nUHJpbnQgdGltZXN0YW1wcyBmb3IgZWFjaCBsb2dnZWQgbGluZScpLAogICAg
IF0pKQogCiAgICAgb3B0aW9uX2dyb3VwX2RlZmluaXRpb25zLmFwcGVuZCgoJ1dlYktpdCBPcHRp
b25zJywgWwpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9hcGlfdGVzdHMvcnVubmVyLnB5
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvYXBpX3Rlc3RzL3J1bm5lci5w
eQkocmV2aXNpb24gMjMxMTU2KQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS9hcGlfdGVzdHMv
cnVubmVyLnB5CSh3b3JraW5nIGNvcHkpCkBAIC0yMSwxMCArMjEsMTEgQEAKICMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKIGlt
cG9ydCBvcworaW1wb3J0IGxvZ2dpbmcKIGltcG9ydCB0aW1lCiAKIGZyb20gd2Via2l0cHkuY29t
bW9uIGltcG9ydCBtZXNzYWdlX3Bvb2wKLWZyb20gd2Via2l0cHkucG9ydC5zZXJ2ZXJfcHJvY2Vz
cyBpbXBvcnQgU2VydmVyUHJvY2VzcworZnJvbSB3ZWJraXRweS5wb3J0LnNlcnZlcl9wcm9jZXNz
IGltcG9ydCBTZXJ2ZXJQcm9jZXNzLCBfbG9nIGFzIHNlcnZlcl9wcm9jZXNzX2xvZ2dlcgogZnJv
bSB3ZWJraXRweS54Y29kZS5zaW11bGF0ZWRfZGV2aWNlIGltcG9ydCBTaW11bGF0ZWREZXZpY2VN
YW5hZ2VyCiAKIApAQCAtMzQsNiArMzUsNyBAQCBjbGFzcyBSdW5uZXIob2JqZWN0KToKICAgICBT
VEFUVVNfQ1JBU0hFRCA9IDIKICAgICBTVEFUVVNfVElNRU9VVCA9IDMKICAgICBTVEFUVVNfRElT
QUJMRUQgPSA0CisgICAgU1RBVFVTX1JVTk5JTkcgPSA1CiAKICAgICBOQU1FX0ZPUl9TVEFUVVMg
PSBbCiAgICAgICAgICdQYXNzZWQnLApAQCAtNDcsNiArNDksOCBAQCBjbGFzcyBSdW5uZXIob2Jq
ZWN0KToKICAgICAgICAgc2VsZi5wb3J0ID0gcG9ydAogICAgICAgICBzZWxmLnByaW50ZXIgPSBw
cmludGVyCiAgICAgICAgIHNlbGYudGVzdHNfcnVuID0gMAorICAgICAgICBzZWxmLl9udW1fd29y
a2VycyA9IDEKKyAgICAgICAgc2VsZi5faGFzX2xvZ2dlZF9mb3JfdGVzdCA9IFRydWUKICAgICAg
ICAgc2VsZi5yZXN1bHRzID0ge30KIAogICAgIEBzdGF0aWNtZXRob2QKQEAgLTc4LDI0ICs4Miw0
OCBAQCBjbGFzcyBSdW5uZXIob2JqZWN0KToKICAgICAgICAgc2VsZi5wcmludGVyLndyaXRlX3Vw
ZGF0ZSgnU2hhcmRpbmcgdGVzdHMgLi4uJykKICAgICAgICAgc2hhcmRzID0gUnVubmVyLl9zaGFy
ZF90ZXN0cyh0ZXN0cykKIAotICAgICAgICB3aXRoIG1lc3NhZ2VfcG9vbC5nZXQoc2VsZiwgbGFt
YmRhIGNhbGxlcjogX1dvcmtlcihjYWxsZXIsIHNlbGYucG9ydCwgc2hhcmRzKSwgbWluKG51bV93
b3JrZXJzLCBsZW4oc2hhcmRzKSkpIGFzIHBvb2w6Ci0gICAgICAgICAgICBwb29sLnJ1bigoJ3Rl
c3QnLCBzaGFyZCkgZm9yIHNoYXJkLCBfIGluIHNoYXJkcy5pdGVyaXRlbXMoKSkKKyAgICAgICAg
b3JpZ2luYWxfbGV2ZWwgPSBzZXJ2ZXJfcHJvY2Vzc19sb2dnZXIubGV2ZWwKKyAgICAgICAgc2Vy
dmVyX3Byb2Nlc3NfbG9nZ2VyLnNldExldmVsKGxvZ2dpbmcuQ1JJVElDQUwpCisKKyAgICAgICAg
dHJ5OgorICAgICAgICAgICAgc2VsZi5fbnVtX3dvcmtlcnMgPSBtaW4obnVtX3dvcmtlcnMsIGxl
bihzaGFyZHMpKQorICAgICAgICAgICAgd2l0aCBtZXNzYWdlX3Bvb2wuZ2V0KHNlbGYsIGxhbWJk
YSBjYWxsZXI6IF9Xb3JrZXIoY2FsbGVyLCBzZWxmLnBvcnQsIHNoYXJkcyksIHNlbGYuX251bV93
b3JrZXJzKSBhcyBwb29sOgorICAgICAgICAgICAgICAgIHBvb2wucnVuKCgndGVzdCcsIHNoYXJk
KSBmb3Igc2hhcmQsIF8gaW4gc2hhcmRzLml0ZXJpdGVtcygpKQorICAgICAgICBmaW5hbGx5Ogor
ICAgICAgICAgICAgc2VydmVyX3Byb2Nlc3NfbG9nZ2VyLnNldExldmVsKG9yaWdpbmFsX2xldmVs
KQorCiAKICAgICBkZWYgaGFuZGxlKHNlbGYsIG1lc3NhZ2VfbmFtZSwgc291cmNlLCB0ZXN0X25h
bWU9Tm9uZSwgc3RhdHVzPTAsIG91dHB1dD0nJyk6CiAgICAgICAgIGlmIG1lc3NhZ2VfbmFtZSA9
PSAnZGlkX3NwYXduX3dvcmtlcic6CiAgICAgICAgICAgICByZXR1cm4KKworICAgICAgICBzb3Vy
Y2UgPSAnJyBpZiBzZWxmLl9udW1fd29ya2VycyA9PSAxIGVsc2Ugc291cmNlICsgJyAnCisgICAg
ICAgIHdpbGxfc3RyZWFtX2xvZ3MgPSBzZWxmLl9udW1fd29ya2VycyA9PSAxIGFuZCBzZWxmLnBv
cnQuZ2V0X29wdGlvbigndmVyYm9zZScpCiAgICAgICAgIGlmIG1lc3NhZ2VfbmFtZSA9PSAnZW5k
ZWRfdGVzdCc6Ci0gICAgICAgICAgICB1cGRhdGUgPSAne30ge30ge30nLmZvcm1hdChzb3VyY2Us
IHRlc3RfbmFtZSwgUnVubmVyLk5BTUVfRk9SX1NUQVRVU1tzdGF0dXNdKQorICAgICAgICAgICAg
dXBkYXRlID0gJ3t9e30ge30nLmZvcm1hdChzb3VyY2UsIHRlc3RfbmFtZSwgUnVubmVyLk5BTUVf
Rk9SX1NUQVRVU1tzdGF0dXNdKQogCiAgICAgICAgICAgICAjIERvbid0IHByaW50IHRlc3Qgb3V0
cHV0IGlmIC0tcXVpZXQuCiAgICAgICAgICAgICBpZiBzdGF0dXMgIT0gUnVubmVyLlNUQVRVU19Q
QVNTRUQgb3IgKG91dHB1dCBhbmQgbm90IHNlbGYucG9ydC5nZXRfb3B0aW9uKCdxdWlldCcpKToK
KyAgICAgICAgICAgICAgICBpZiBub3Qgd2lsbF9zdHJlYW1fbG9nczoKKyAgICAgICAgICAgICAg
ICAgICAgZm9yIGxpbmUgaW4gb3V0cHV0LnNwbGl0bGluZXMoKToKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGlmIG5vdCBzZWxmLl9oYXNfbG9nZ2VkX2Zvcl90ZXN0OgorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHNlbGYuX2hhc19sb2dnZWRfZm9yX3Rlc3QgPSBUcnVlCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc2VsZi5wcmludGVyLndyaXRlbG4oc291cmNlKQorICAgICAgICAg
ICAgICAgICAgICAgICAgc2VsZi5wcmludGVyLndyaXRlbG4oJ3t9ICAgIHt9Jy5mb3JtYXQoc291
cmNlLCBsaW5lKSkKICAgICAgICAgICAgICAgICBzZWxmLnByaW50ZXIud3JpdGVsbih1cGRhdGUp
Ci0gICAgICAgICAgICAgICAgZm9yIGxpbmUgaW4gb3V0cHV0LnNwbGl0bGluZXMoKToKLSAgICAg
ICAgICAgICAgICAgICAgc2VsZi5wcmludGVyLndyaXRlbG4oJyAgICB7fScuZm9ybWF0KGxpbmUp
KQogICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgICBzZWxmLnByaW50ZXIud3JpdGVf
dXBkYXRlKHVwZGF0ZSkKICAgICAgICAgICAgIHNlbGYudGVzdHNfcnVuICs9IDEKICAgICAgICAg
ICAgIHNlbGYucmVzdWx0c1t0ZXN0X25hbWVdID0gKHN0YXR1cywgb3V0cHV0KQorICAgICAgICAg
ICAgc2VsZi5faGFzX2xvZ2dlZF9mb3JfdGVzdCA9IEZhbHNlCisKKyAgICAgICAgaWYgbWVzc2Fn
ZV9uYW1lID09ICdsb2cnIGFuZCB3aWxsX3N0cmVhbV9sb2dzOgorICAgICAgICAgICAgZm9yIGxp
bmUgaW4gb3V0cHV0LnNwbGl0bGluZXMoKToKKyAgICAgICAgICAgICAgICBpZiBub3Qgc2VsZi5f
aGFzX2xvZ2dlZF9mb3JfdGVzdDoKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5faGFzX2xvZ2dl
ZF9mb3JfdGVzdCA9IFRydWUKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5wcmludGVyLndyaXRl
bG4oc291cmNlKQorICAgICAgICAgICAgICAgIHNlbGYucHJpbnRlci53cml0ZWxuKCd7fSAgICB7
fScuZm9ybWF0KHNvdXJjZSwgbGluZSkpCisKIAogICAgIGRlZiByZXN1bHRfbWFwX2J5X3N0YXR1
cyhzZWxmLCBzdGF0dXM9Tm9uZSk6CiAgICAgICAgIG1hcCA9IHt9CkBAIC0xMzAsMzEgKzE1OCw1
MSBAQCBjbGFzcyBfV29ya2VyKG9iamVjdCk6CiAgICAgICAgICAgICBSdW5uZXIuY29tbWFuZF9m
b3JfcG9ydChzZWxmLl9wb3J0LCBbc2VsZi5fcG9ydC5fYnVpbGRfcGF0aChiaW5hcnlfbmFtZSks
ICctLWd0ZXN0X2ZpbHRlcj17fScuZm9ybWF0KHRlc3QpXSksCiAgICAgICAgICAgICBlbnY9c2Vs
Zi5fcG9ydC5lbnZpcm9ubWVudF9mb3JfYXBpX3Rlc3RzKCkpCiAKKyAgICAgICAgc3RhdHVzID0g
UnVubmVyLlNUQVRVU19SVU5OSU5HCisgICAgICAgIGlmIHRlc3Quc3BsaXQoJy4nKVsxXS5zdGFy
dHN3aXRoKCdESVNBQkxFRF8nKToKKyAgICAgICAgICAgIHN0YXR1cyA9IFJ1bm5lci5TVEFUVVNf
RElTQUJMRUQKKwogICAgICAgICB0cnk6CiAgICAgICAgICAgICBkZWFkbGluZSA9IHRpbWUudGlt
ZSgpICsgc2VsZi5fdGltZW91dAotICAgICAgICAgICAgc2VydmVyX3Byb2Nlc3Muc3RhcnQoKQor
ICAgICAgICAgICAgaWYgc3RhdHVzICE9IFJ1bm5lci5TVEFUVVNfRElTQUJMRUQ6CisgICAgICAg
ICAgICAgICAgc2VydmVyX3Byb2Nlc3Muc3RhcnQoKQogCi0gICAgICAgICAgICBpZiBub3QgdGVz
dC5zcGxpdCgnLicpWzFdLnN0YXJ0c3dpdGgoJ0RJU0FCTEVEXycpOgotICAgICAgICAgICAgICAg
IHN0ZG91dF9saW5lID0gc2VydmVyX3Byb2Nlc3MucmVhZF9zdGRvdXRfbGluZShkZWFkbGluZSkK
LSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgc3Rkb3V0X2xpbmUgPSBOb25lCisg
ICAgICAgICAgICBzdGRvdXRfYnVmZmVyID0gJycKKyAgICAgICAgICAgIHN0ZGVycl9idWZmZXIg
PSAnJworICAgICAgICAgICAgd2hpbGUgc3RhdHVzID09IFJ1bm5lci5TVEFUVVNfUlVOTklORzoK
KyAgICAgICAgICAgICAgICBzdGRvdXRfbGluZSwgc3RkZXJyX2xpbmUgPSBzZXJ2ZXJfcHJvY2Vz
cy5yZWFkX2VpdGhlcl9zdGRvdXRfb3Jfc3RkZXJyX2xpbmUoZGVhZGxpbmUpCisgICAgICAgICAg
ICAgICAgaWYgbm90IHN0ZGVycl9saW5lIGFuZCBub3Qgc3Rkb3V0X2xpbmU6CisgICAgICAgICAg
ICAgICAgICAgIGJyZWFrCiAKLSAgICAgICAgICAgIGlmIG5vdCBzdGRvdXRfbGluZSBhbmQgc2Vy
dmVyX3Byb2Nlc3MudGltZWRfb3V0OgorICAgICAgICAgICAgICAgIGlmIHN0ZGVycl9saW5lOgor
ICAgICAgICAgICAgICAgICAgICBzdGRlcnJfYnVmZmVyICs9IHN0ZGVycl9saW5lCisgICAgICAg
ICAgICAgICAgICAgIHNlbGYucG9zdCgnbG9nJywgb3V0cHV0PXN0ZGVycl9saW5lWzotMV0pCisg
ICAgICAgICAgICAgICAgaWYgc3Rkb3V0X2xpbmU6CisgICAgICAgICAgICAgICAgICAgIGlmICcq
KlBBU1MqKicgaW4gc3Rkb3V0X2xpbmU6CisgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXMg
PSBSdW5uZXIuU1RBVFVTX1BBU1NFRAorICAgICAgICAgICAgICAgICAgICBlbGlmICcqKkZBSUwq
KicgaW4gc3Rkb3V0X2xpbmU6CisgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXMgPSBSdW5u
ZXIuU1RBVFVTX0ZBSUxFRAorICAgICAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAg
ICAgICAgICAgICAgc3Rkb3V0X2J1ZmZlciArPSBzdGRvdXRfbGluZQorICAgICAgICAgICAgICAg
ICAgICAgICAgc2VsZi5wb3N0KCdsb2cnLCBvdXRwdXQ9c3Rkb3V0X2xpbmVbOi0xXSkKKworICAg
ICAgICAgICAgaWYgc3RhdHVzID09IFJ1bm5lci5TVEFUVVNfRElTQUJMRUQ6CisgICAgICAgICAg
ICAgICAgcGFzcworICAgICAgICAgICAgZWxpZiBzZXJ2ZXJfcHJvY2Vzcy50aW1lZF9vdXQ6CiAg
ICAgICAgICAgICAgICAgc3RhdHVzID0gUnVubmVyLlNUQVRVU19USU1FT1VUCi0gICAgICAgICAg
ICBlbGlmIG5vdCBzdGRvdXRfbGluZSBhbmQgc2VydmVyX3Byb2Nlc3MuaGFzX2NyYXNoZWQoKToK
KyAgICAgICAgICAgIGVsaWYgc2VydmVyX3Byb2Nlc3MuaGFzX2NyYXNoZWQoKToKICAgICAgICAg
ICAgICAgICBzdGF0dXMgPSBSdW5uZXIuU1RBVFVTX0NSQVNIRUQKLSAgICAgICAgICAgIGVsaWYg
bm90IHN0ZG91dF9saW5lOgotICAgICAgICAgICAgICAgIHN0YXR1cyA9IFJ1bm5lci5TVEFUVVNf
RElTQUJMRUQKLSAgICAgICAgICAgIGVsaWYgJyoqUEFTUyoqJyBpbiBzdGRvdXRfbGluZToKLSAg
ICAgICAgICAgICAgICBzdGF0dXMgPSBSdW5uZXIuU1RBVFVTX1BBU1NFRAotICAgICAgICAgICAg
ZWxzZToKKyAgICAgICAgICAgIGVsaWYgc3RhdHVzID09IFJ1bm5lci5TVEFUVVNfUlVOTklORzoK
ICAgICAgICAgICAgICAgICBzdGF0dXMgPSBSdW5uZXIuU1RBVFVTX0ZBSUxFRAogCiAgICAgICAg
IGZpbmFsbHk6Ci0gICAgICAgICAgICBvdXRwdXRfYnVmZmVyID0gc2VydmVyX3Byb2Nlc3MucG9w
X2FsbF9idWZmZXJlZF9zdGRvdXQoKSArIHNlcnZlcl9wcm9jZXNzLnBvcF9hbGxfYnVmZmVyZWRf
c3RkZXJyKCkKKyAgICAgICAgICAgIHJlbWFpbmluZ19zdGRlcnIgPSBzZXJ2ZXJfcHJvY2Vzcy5w
b3BfYWxsX2J1ZmZlcmVkX3N0ZGVycigpCisgICAgICAgICAgICByZW1haW5pbmdfc3Rkb3V0ID0g
c2VydmVyX3Byb2Nlc3MucG9wX2FsbF9idWZmZXJlZF9zdGRvdXQoKQorICAgICAgICAgICAgc2Vs
Zi5wb3N0KCdsb2cnLCBvdXRwdXQ9cmVtYWluaW5nX3N0ZGVyciArIHJlbWFpbmluZ19zdGRvdXQp
CisgICAgICAgICAgICBvdXRwdXRfYnVmZmVyID0gc3RkZXJyX2J1ZmZlciArIHN0ZG91dF9idWZm
ZXIgKyByZW1haW5pbmdfc3RkZXJyICsgcmVtYWluaW5nX3N0ZG91dAogICAgICAgICAgICAgc2Vy
dmVyX3Byb2Nlc3Muc3RvcCgpCiAKLSAgICAgICAgc2VsZi5fY2FsbGVyLnBvc3QoJ2VuZGVkX3Rl
c3QnLCAne30ue30nLmZvcm1hdChiaW5hcnlfbmFtZSwgdGVzdCksIHN0YXR1cywgc2VsZi5fZmls
dGVyX25vaXN5X291dHB1dChvdXRwdXRfYnVmZmVyKSkKKyAgICAgICAgc2VsZi5wb3N0KCdlbmRl
ZF90ZXN0JywgJ3t9Lnt9Jy5mb3JtYXQoYmluYXJ5X25hbWUsIHRlc3QpLCBzdGF0dXMsIHNlbGYu
X2ZpbHRlcl9ub2lzeV9vdXRwdXQob3V0cHV0X2J1ZmZlcikpCiAKICAgICBkZWYgX3J1bl9zaGFy
ZF93aXRoX2JpbmFyeShzZWxmLCBiaW5hcnlfbmFtZSwgdGVzdHMpOgogICAgICAgICByZW1haW5p
bmdfdGVzdHMgPSBsaXN0KHRlc3RzKQpAQCAtMTk2LDcgKzI0NCw3IEBAIGNsYXNzIF9Xb3JrZXIo
b2JqZWN0KToKICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCiAgICAgICAgICAgICAg
ICAgICAgIGlmIGxhc3RfdGVzdCBpcyBub3QgTm9uZToKICAgICAgICAgICAgICAgICAgICAgICAg
IHJlbWFpbmluZ190ZXN0cy5yZW1vdmUobGFzdF90ZXN0KQotICAgICAgICAgICAgICAgICAgICAg
ICAgc2VsZi5fY2FsbGVyLnBvc3QoJ2VuZGVkX3Rlc3QnLCAne30ue30nLmZvcm1hdChiaW5hcnlf
bmFtZSwgbGFzdF90ZXN0KSwgbGFzdF9zdGF0dXMsIHN0ZG91dF9idWZmZXIpCisgICAgICAgICAg
ICAgICAgICAgICAgICBzZWxmLnBvc3QoJ2VuZGVkX3Rlc3QnLCAne30ue30nLmZvcm1hdChiaW5h
cnlfbmFtZSwgbGFzdF90ZXN0KSwgbGFzdF9zdGF0dXMsIHN0ZG91dF9idWZmZXIpCiAgICAgICAg
ICAgICAgICAgICAgICAgICBkZWFkbGluZSA9IHRpbWUudGltZSgpICsgc2VsZi5fdGltZW91dAog
ICAgICAgICAgICAgICAgICAgICAgICAgc3Rkb3V0X2J1ZmZlciA9ICcnCiAKQEAgLTIxMSw3ICsy
NTksOCBAQCBjbGFzcyBfV29ya2VyKG9iamVjdCk6CiAgICAgICAgICAgICAgICAgICAgIHJlbWFp
bmluZ190ZXN0cy5yZW1vdmUobGFzdF90ZXN0KQogICAgICAgICAgICAgICAgICAgICBzdGRvdXRf
YnVmZmVyICs9IHNlcnZlcl9wcm9jZXNzLnBvcF9hbGxfYnVmZmVyZWRfc3Rkb3V0KCkKICAgICAg
ICAgICAgICAgICAgICAgc3RkZXJyX2J1ZmZlciA9IHNlcnZlcl9wcm9jZXNzLnBvcF9hbGxfYnVm
ZmVyZWRfc3RkZXJyKCkgaWYgbGFzdF9zdGF0dXMgPT0gUnVubmVyLlNUQVRVU19DUkFTSEVEIGVs
c2UgJycKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fY2FsbGVyLnBvc3QoJ2VuZGVkX3Rlc3Qn
LCAne30ue30nLmZvcm1hdChiaW5hcnlfbmFtZSwgbGFzdF90ZXN0KSwgbGFzdF9zdGF0dXMsIHNl
bGYuX2ZpbHRlcl9ub2lzeV9vdXRwdXQoc3Rkb3V0X2J1ZmZlciArIHN0ZGVycl9idWZmZXIpKQor
ICAgICAgICAgICAgICAgICAgICBzZWxmLnBvc3QoJ2xvZycsIG91dHB1dD1zdGRvdXRfYnVmZmVy
ICsgc3RkZXJyX2J1ZmZlcikKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5wb3N0KCdlbmRlZF90
ZXN0JywgJ3t9Lnt9Jy5mb3JtYXQoYmluYXJ5X25hbWUsIGxhc3RfdGVzdCksIGxhc3Rfc3RhdHVz
LCBzZWxmLl9maWx0ZXJfbm9pc3lfb3V0cHV0KHN0ZG91dF9idWZmZXIgKyBzdGRlcnJfYnVmZmVy
KSkKIAogICAgICAgICAgICAgICAgIGlmIHNlcnZlcl9wcm9jZXNzLnRpbWVkX291dDoKICAgICAg
ICAgICAgICAgICAgICAgYnJlYWsKQEAgLTIyNiw5ICsyNzUsMTIgQEAgY2xhc3MgX1dvcmtlcihv
YmplY3QpOgogICAgICAgICBmb3IgdGVzdCBpbiByZW1haW5pbmdfdGVzdHM6CiAgICAgICAgICAg
ICBzZWxmLl9ydW5fc2luZ2xlX3Rlc3QoYmluYXJ5X25hbWUsIHRlc3QpCiAKKyAgICBkZWYgcG9z
dChzZWxmLCBtZXNzYWdlX25hbWUsIHRlc3RfbmFtZT1Ob25lLCBzdGF0dXM9MCwgb3V0cHV0PScn
KToKKyAgICAgICAgc2VsZi5fY2FsbGVyLnBvc3QobWVzc2FnZV9uYW1lLCB0ZXN0X25hbWUsIHN0
YXR1cywgb3V0cHV0KQorCiAgICAgZGVmIGhhbmRsZShzZWxmLCBtZXNzYWdlX25hbWUsIHNvdXJj
ZSwgc2hhcmRfbmFtZSk6CiAgICAgICAgIGFzc2VydCBtZXNzYWdlX25hbWUgPT0gJ3Rlc3QnCi0g
ICAgICAgIHNlbGYuX2NhbGxlci5wb3N0KCdzdGFydGVkX3NoYXJkJywgc2hhcmRfbmFtZSkKKyAg
ICAgICAgc2VsZi5wb3N0KCdzdGFydGVkX3NoYXJkJywgc2hhcmRfbmFtZSkKIAogICAgICAgICBi
aW5hcnlfbWFwID0ge30KICAgICAgICAgZm9yIHRlc3QgaW4gc2VsZi5fc2hhcmRfbWFwW3NoYXJk
X25hbWVdOgpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvdmlld3Mv
bWV0ZXJlZF9zdHJlYW0ucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvdmlld3MvbWV0ZXJlZF9zdHJlYW0ucHkJKHJldmlzaW9uIDIzMTE1NikKKysr
IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3ZpZXdzL21ldGVyZWRfc3RyZWFt
LnB5CSh3b3JraW5nIGNvcHkpCkBAIC01MSw5ICs1MSwxMCBAQCBjbGFzcyBNZXRlcmVkU3RyZWFt
KG9iamVjdCk6CiAgICAgZGVmIF9lbnN1cmVfbmV3bGluZSh0eHQpOgogICAgICAgICByZXR1cm4g
dHh0IGlmIHR4dC5lbmRzd2l0aCgnXG4nKSBlbHNlIHR4dCArICdcbicKIAotICAgIGRlZiBfX2lu
aXRfXyhzZWxmLCBzdHJlYW09Tm9uZSwgdmVyYm9zZT1GYWxzZSwgbG9nZ2VyPU5vbmUsIHRpbWVf
Zm49Tm9uZSwgcGlkPU5vbmUsIG51bWJlcl9vZl9jb2x1bW5zPU5vbmUpOgorICAgIGRlZiBfX2lu
aXRfXyhzZWxmLCBzdHJlYW09Tm9uZSwgdmVyYm9zZT1GYWxzZSwgbG9nZ2VyPU5vbmUsIHRpbWVf
Zm49Tm9uZSwgcGlkPU5vbmUsIG51bWJlcl9vZl9jb2x1bW5zPU5vbmUsIHByaW50X3RpbWVzdGFt
cHM9Tm9uZSk6CiAgICAgICAgIHNlbGYuX3N0cmVhbSA9IHN0cmVhbSBvciBzeXMuc3RkZXJyCiAg
ICAgICAgIHNlbGYuX3ZlcmJvc2UgPSB2ZXJib3NlCisgICAgICAgIHNlbGYuX3ByaW50X3RpbWVz
dGFtcHMgPSB2ZXJib3NlIGlmIHByaW50X3RpbWVzdGFtcHMgaXMgTm9uZSBlbHNlIHByaW50X3Rp
bWVzdGFtcHMKICAgICAgICAgc2VsZi5fdGltZV9mbiA9IHRpbWVfZm4gb3IgdGltZS50aW1lCiAg
ICAgICAgIHNlbGYuX3BpZCA9IHBpZCBvciBvcy5nZXRwaWQoKQogICAgICAgICBzZWxmLl9pc2F0
dHkgPSBzZWxmLl9zdHJlYW0uaXNhdHR5KCkKQEAgLTk3LDEzICs5OCwxNiBAQCBjbGFzcyBNZXRl
cmVkU3RyZWFtKG9iamVjdCk6CiAgICAgICAgIHNlbGYuX2xhc3Rfd3JpdGVfdGltZSA9IG5vdwog
ICAgICAgICBpZiBzZWxmLl9sYXN0X3BhcnRpYWxfbGluZToKICAgICAgICAgICAgIHNlbGYuX2Vy
YXNlX2xhc3RfcGFydGlhbF9saW5lKCkKLSAgICAgICAgaWYgc2VsZi5fdmVyYm9zZToKKworICAg
ICAgICB0aW1lc3RhbXBfc3RyaW5nID0gJycKKyAgICAgICAgaWYgc2VsZi5fcHJpbnRfdGltZXN0
YW1wczoKICAgICAgICAgICAgIG5vd190dXBsZSA9IHRpbWUubG9jYWx0aW1lKG5vdykKLSAgICAg
ICAgICAgIG1zZyA9ICclMDJkOiUwMmQ6JTAyZC4lMDNkICVkICVzJyAlIChub3dfdHVwbGUudG1f
aG91ciwgbm93X3R1cGxlLnRtX21pbiwgbm93X3R1cGxlLnRtX3NlYywgaW50KChub3cgKiAxMDAw
KSAlIDEwMDApLCBwaWQsIHNlbGYuX2Vuc3VyZV9uZXdsaW5lKHR4dCkpCi0gICAgICAgIGVsaWYg
c2VsZi5faXNhdHR5OgotICAgICAgICAgICAgbXNnID0gdHh0CisgICAgICAgICAgICB0aW1lc3Rh
bXBfc3RyaW5nID0gJyUwMmQ6JTAyZDolMDJkLiUwM2QgJWQgJyAlIChub3dfdHVwbGUudG1faG91
ciwgbm93X3R1cGxlLnRtX21pbiwgbm93X3R1cGxlLnRtX3NlYywgaW50KChub3cgKiAxMDAwKSAl
IDEwMDApLCBwaWQpCisKKyAgICAgICAgaWYgc2VsZi5faXNhdHR5IGFuZCBub3Qgc2VsZi5fdmVy
Ym9zZToKKyAgICAgICAgICAgIG1zZyA9ICd7fXt9Jy5mb3JtYXQodGltZXN0YW1wX3N0cmluZywg
dHh0KQogICAgICAgICBlbHNlOgotICAgICAgICAgICAgbXNnID0gc2VsZi5fZW5zdXJlX25ld2xp
bmUodHh0KQorICAgICAgICAgICAgbXNnID0gJ3t9e30nLmZvcm1hdCh0aW1lc3RhbXBfc3RyaW5n
LCBzZWxmLl9lbnN1cmVfbmV3bGluZSh0eHQpKQogCiAgICAgICAgIHNlbGYuX3N0cmVhbS53cml0
ZShtc2cpCiAKSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3ZpZXdz
L21ldGVyZWRfc3RyZWFtX3VuaXR0ZXN0LnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL3ZpZXdzL21ldGVyZWRfc3RyZWFtX3VuaXR0ZXN0LnB5CShy
ZXZpc2lvbiAyMzExNTYpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy92
aWV3cy9tZXRlcmVkX3N0cmVhbV91bml0dGVzdC5weQkod29ya2luZyBjb3B5KQpAQCAtMzcsNiAr
MzcsNyBAQCBmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy52aWV3cy5tZXRlcmVkCiBjbGFzcyBS
ZWd1bGFyVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgdmVyYm9zZSA9IEZhbHNlCiAgICAg
aXNhdHR5ID0gRmFsc2UKKyAgICBwcmludF90aW1lc3RhbXBzID0gTm9uZQogCiAgICAgZGVmIHNl
dFVwKHNlbGYpOgogICAgICAgICBzZWxmLnN0cmVhbSA9IFN0cmluZ0lPLlN0cmluZ0lPKCkKQEAg
LTUxLDcgKzUyLDcgQEAgY2xhc3MgUmVndWxhclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAg
ICAgICAjIGFkZCBhIGR1bW15IHRpbWUgY291bnRlciBmb3IgYSBkZWZhdWx0IGJlaGF2aW9yLgog
ICAgICAgICBzZWxmLnRpbWVzID0gcmFuZ2UoMTApCiAKLSAgICAgICAgc2VsZi5tZXRlciA9IE1l
dGVyZWRTdHJlYW0oc2VsZi5zdHJlYW0sIHNlbGYudmVyYm9zZSwgc2VsZi5sb2dnZXIsIHNlbGYu
dGltZV9mbiwgODY3NSkKKyAgICAgICAgc2VsZi5tZXRlciA9IE1ldGVyZWRTdHJlYW0oc2VsZi5z
dHJlYW0sIHNlbGYudmVyYm9zZSwgc2VsZi5sb2dnZXIsIHNlbGYudGltZV9mbiwgODY3NSwgcHJp
bnRfdGltZXN0YW1wcz1zZWxmLnByaW50X3RpbWVzdGFtcHMpCiAKICAgICBkZWYgdGVhckRvd24o
c2VsZik6CiAgICAgICAgIGlmIHNlbGYubWV0ZXI6CkBAIC03MSw3ICs3Miw3IEBAIGNsYXNzIFJl
Z3VsYXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgcm9vdF9sb2dnZXIuYWRkSGFu
ZGxlcihoYW5kbGVyKQogICAgICAgICByb290X2xvZ2dlci5zZXRMZXZlbChsb2dnaW5nLkRFQlVH
KQogICAgICAgICB0cnk6Ci0gICAgICAgICAgICBzZWxmLm1ldGVyID0gTWV0ZXJlZFN0cmVhbShz
ZWxmLnN0cmVhbSwgc2VsZi52ZXJib3NlLCBOb25lLCBzZWxmLnRpbWVfZm4sIDg2NzUpCisgICAg
ICAgICAgICBzZWxmLm1ldGVyID0gTWV0ZXJlZFN0cmVhbShzZWxmLnN0cmVhbSwgc2VsZi52ZXJi
b3NlLCBOb25lLCBzZWxmLnRpbWVfZm4sIDg2NzUsIHByaW50X3RpbWVzdGFtcHM9c2VsZi5wcmlu
dF90aW1lc3RhbXBzKQogICAgICAgICAgICAgc2VsZi5tZXRlci53cml0ZV90aHJvdHRsZWRfdXBk
YXRlKCdmb28nKQogICAgICAgICAgICAgc2VsZi5tZXRlci53cml0ZV91cGRhdGUoJ2JhcicpCiAg
ICAgICAgICAgICBzZWxmLm1ldGVyLndyaXRlKCdiYXonKQpAQCAtMTUyLDMgKzE1MywxNyBAQCBj
bGFzcyBWZXJib3NlVGVzdChSZWd1bGFyVGVzdCk6CiAgICAgICAgIHNlbGYubG9nZ2VyLmluZm8o
J2ZvbyAlcyAlZCcsICdiYXInLCAyKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihzZWxm
LmJ1Zmxpc3QpLCAxKQogICAgICAgICBzZWxmLmFzc2VydFRydWUoc2VsZi5idWZsaXN0WzBdLmVu
ZHN3aXRoKCdmb28gYmFyIDJcbicpKQorCisKK2NsYXNzIFZlcmJvc2VXaXRoT3V0VGltZXN0YW1w
KFJlZ3VsYXJUZXN0KToKKyAgICBpc2F0dHkgPSBUcnVlCisgICAgdmVyYm9zZSA9IFRydWUKKyAg
ICBwcmludF90aW1lc3RhbXBzID0gRmFsc2UKKworICAgIGRlZiB0ZXN0X2Jhc2ljKHNlbGYpOgor
ICAgICAgICBidWZsaXN0ID0gc2VsZi5fYmFzaWMoWzAsIDEsIDIuMSwgMTMsIDE0LjEyMzRdKQor
ICAgICAgICBzZWxmLmFzc2VydFRydWUocmUubWF0Y2goJ2Zvb1xuJywgYnVmbGlzdFswXSkpCisg
ICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZS5tYXRjaCgnYmFyXG4nLCBidWZsaXN0WzFdKSkKKyAg
ICAgICAgc2VsZi5hc3NlcnRUcnVlKHJlLm1hdGNoKCdiYXogMlxuJywgYnVmbGlzdFsyXSkpCisg
ICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZS5tYXRjaCgnZG9uZVxuJywgYnVmbGlzdFszXSkpCisg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGJ1Zmxpc3QpLCA0KQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>340142</attachid>
            <date>2018-05-10 16:08:35 -0700</date>
            <delta_ts>2018-05-10 17:42:08 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-185090-20180510180834.patch</filename>
            <type>text/plain</type>
            <size>16478</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIzMTY2MCkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDQwIEBACisyMDE4LTA1LTEwICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICBSRUdSRVNTSU9OIChyMjMwOTk4KTogQ2Fubm90IHN0cmVhbSBBUEkgdGVz
dCBvdXRwdXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE4NTA5MAorCisgICAgICAgIFJldmlld2VkIGJ5IFJ5b3N1a2UgTml3YS4KKworICAgICAgICBD
aGFuZ2UgcnVuLWFwaS10ZXN0cyBzbyB0aGF0IHRoZSBzdGRvdXQgYW5kIHN0ZGVyciBvZiBhIHRl
c3Qgd2lsbCBiZSBwcmludGVkCisgICAgICAgIGJlZm9yZSBpdCdzIHJlc3VsdC4gSWYgLXYgaXMg
cGFzc2VkLCB0aGUgb3V0cHV0IG9mIHNpbmdsZSB0ZXN0IHJ1bnMgd2lsbCBiZQorICAgICAgICBz
dHJlYW1lZC4gCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2FwaV90ZXN0cy9ydW5fYXBp
X3Rlc3RzLnB5OgorICAgICAgICAocnVuKTogVXNlIHByaW50X3RpbWVzdGFtcHMgZmxhZy4KKyAg
ICAgICAgKHBhcnNlX2FyZ3MpOiBBZGQgdGltZXN0YW1wcyBvcHRpb24gdG8gcHJpbnQgdGltZXN0
YW1wcyBpbiB0aGUgbG9nLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvYXBpX3Rlc3RzL3J1
bm5lci5weToKKyAgICAgICAgKFJ1bm5lcik6IEFkZCBydW5uaW5nIHN0YXR1cy4KKyAgICAgICAg
KFJ1bm5lci5fX2luaXRfXyk6IEFkZCBudW1iZXIgb2Ygd29ya2VycyBhbmQgYSBmbGFnIHRvIGRl
dGVjdCBpZiBhIG5ld2xpbmUKKyAgICAgICAgaXMgbmVlZGVkIGF0IHRoZSBiZWdpbm5pbmcgb2Yg
YSBsb2cgbGluZS4KKyAgICAgICAgKFJ1bm5lci5ydW4pOiBUdXJuIG9mZiBtb3N0IGxvZ2dpbmcg
Y29taW5nIGZyb20gc2VydmVyIHByb2Nlc3Mgc2luY2UgaXQgaXMKKyAgICAgICAgbm90IGNvbnN0
cnVjdGl2ZSBmb3IgQVBJIHRlc3RzLgorICAgICAgICAoUnVubmVyLmhhbmRsZSk6IEFkZCBuZXcg
bG9nIG1lc3NhZ2UgdG8gc3RyZWFtIHN0ZG91dCBhbmQgc3RkZXJyIGluc3RlYWQgb2YKKyAgICAg
ICAgY2FjaGluZyB2YWx1ZXMgdW50aWwgdGhlIHRlc3QgcnVuIGZpbmlzaGVkLgorICAgICAgICAo
X1dvcmtlci5fcnVuX3NpbmdsZV90ZXN0KTogTG9nIHN0ZG91dCBhbmQgc3RkZXJyIGluIHJlYWwg
dGltZS4KKyAgICAgICAgKF9Xb3JrZXIuX3J1bl9zaGFyZF93aXRoX2JpbmFyeSk6IExvZyBzdGRl
cnIgYW5kIHN0ZG91dCBidWZmZXIgYmVmb3JlIGVuZGluZworICAgICAgICB0aGUgdGVzdC4KKyAg
ICAgICAgKF9Xb3JrZXIucG9zdCk6IFByb3ZpZGUgYSBwb3N0IHdpdGggZXhwbGljaXRseSBlbnVt
ZXJhdGVkIGFyZ3VtZW50IG5hbWVzLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL3ZpZXdzL21ldGVyZWRfc3RyZWFtLnB5OgorICAgICAgICAoTWV0ZXJlZFN0cmVhbS5f
X2luaXRfXyk6IERpZmZlcmVudGlhdGUgdmVyYm9zZSBsb2dnaW5nIGFuZCBsb2dnaW5nIHdpdGgg
dGltZXN0YW1wcy4KKyAgICAgICAgKE1ldGVyZWRTdHJlYW0ud3JpdGUpOiBBbGxvdyBmb3IgdmVy
Ym9zZSBsb2dnaW5nIHdpdGhvdXQgdGltZXN0YW1wcy4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy92aWV3cy9tZXRlcmVkX3N0cmVhbV91bml0dGVzdC5weToKKyAgICAg
ICAgKFJlZ3VsYXJUZXN0KTogQWRkIHByaW50X3RpbWVzdGFtcHMgZmxhZy4KKyAgICAgICAgKFJl
Z3VsYXJUZXN0LnNldFVwKToKKyAgICAgICAgKFJlZ3VsYXJUZXN0LnRlc3RfbG9nZ2luZ19ub3Rf
aW5jbHVkZWQpOgorICAgICAgICAoVmVyYm9zZVRlc3QudGVzdF9sb2dfYXJncyk6CisgICAgICAg
IChWZXJib3NlV2l0aE91dFRpbWVzdGFtcCk6CisgICAgICAgIChWZXJib3NlV2l0aE91dFRpbWVz
dGFtcC50ZXN0X2Jhc2ljKTogQWRkIHRlc3QgZm9yIHZlcmJvc2UgbG9nZ2luZyB3aXRob3V0IHRp
bWVzdGFtcHMuCisKIDIwMTgtMDUtMTAgIEZ1amlpIEhpcm9ub3JpICA8SGlyb25vcmkuRnVqaWlA
c29ueS5jb20+CiAKICAgICAgICAgW1dpbl1bTWluaUJyb3dzZXJdIEFkZCBhIHNlcGFyYXRlIFdu
ZFByb2MgZm9yIHRoZSBsYXllcmVkIHdpbmRvdwpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9hcGlfdGVzdHMvcnVuX2FwaV90ZXN0cy5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRz
L3dlYmtpdHB5L2FwaV90ZXN0cy9ydW5fYXBpX3Rlc3RzLnB5CShyZXZpc2lvbiAyMzE2NjApCisr
KyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2FwaV90ZXN0cy9ydW5fYXBpX3Rlc3RzLnB5CSh3b3Jr
aW5nIGNvcHkpCkBAIC03MCw3ICs3MCw3IEBAIGRlZiBydW4ocG9ydCwgb3B0aW9ucywgYXJncywg
bG9nZ2luZ19zdHIKICAgICBsb2dnZXIuc2V0TGV2ZWwobG9nZ2luZy5ERUJVRyBpZiBvcHRpb25z
LnZlcmJvc2UgZWxzZSBsb2dnaW5nLkVSUk9SIGlmIG9wdGlvbnMucXVpZXQgZWxzZSBsb2dnaW5n
LklORk8pCiAKICAgICB0cnk6Ci0gICAgICAgIHN0cmVhbSA9IE1ldGVyZWRTdHJlYW0obG9nZ2lu
Z19zdHJlYW0sIG9wdGlvbnMudmVyYm9zZSwgbG9nZ2VyPWxvZ2dlciwgbnVtYmVyX29mX2NvbHVt
bnM9cG9ydC5ob3N0LnBsYXRmb3JtLnRlcm1pbmFsX3dpZHRoKCkpCisgICAgICAgIHN0cmVhbSA9
IE1ldGVyZWRTdHJlYW0obG9nZ2luZ19zdHJlYW0sIG9wdGlvbnMudmVyYm9zZSwgbG9nZ2VyPWxv
Z2dlciwgbnVtYmVyX29mX2NvbHVtbnM9cG9ydC5ob3N0LnBsYXRmb3JtLnRlcm1pbmFsX3dpZHRo
KCksIHByaW50X3RpbWVzdGFtcHM9b3B0aW9ucy50aW1lc3RhbXBzKQogICAgICAgICBtYW5hZ2Vy
ID0gTWFuYWdlcihwb3J0LCBvcHRpb25zLCBzdHJlYW0pCiAKICAgICAgICAgcmVzdWx0ID0gbWFu
YWdlci5ydW4oYXJncykKQEAgLTkwLDYgKzkwLDggQEAgZGVmIHBhcnNlX2FyZ3MoYXJncyk6CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J1J1biBxdWlldGx5IChlcnJvcnMsIHdh
cm5pbmdzLCBhbmQgcHJvZ3Jlc3Mgb25seSknKSwKICAgICAgICAgb3B0cGFyc2UubWFrZV9vcHRp
b24oJy12JywgJy0tdmVyYm9zZScsIGFjdGlvbj0nc3RvcmVfdHJ1ZScsIGRlZmF1bHQ9RmFsc2Us
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J0VuYWJsZSB2ZXJib3NlIHByaW50
aW5nJyksCisgICAgICAgIG9wdHBhcnNlLm1ha2Vfb3B0aW9uKCctLXRpbWVzdGFtcHMnLCBhY3Rp
b249J3N0b3JlX3RydWUnLCBkZWZhdWx0PUZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBoZWxwPSdQcmludCB0aW1lc3RhbXBzIGZvciBlYWNoIGxvZ2dlZCBsaW5lJyksCiAgICAg
XSkpCiAKICAgICBvcHRpb25fZ3JvdXBfZGVmaW5pdGlvbnMuYXBwZW5kKCgnV2ViS2l0IE9wdGlv
bnMnLCBbCkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2FwaV90ZXN0cy9ydW5uZXIucHkK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9hcGlfdGVzdHMvcnVubmVyLnB5
CShyZXZpc2lvbiAyMzE2NjApCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2FwaV90ZXN0cy9y
dW5uZXIucHkJKHdvcmtpbmcgY29weSkKQEAgLTIxLDEwICsyMSwxMSBAQAogIyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAogaW1w
b3J0IG9zCitpbXBvcnQgbG9nZ2luZwogaW1wb3J0IHRpbWUKIAogZnJvbSB3ZWJraXRweS5jb21t
b24gaW1wb3J0IG1lc3NhZ2VfcG9vbAotZnJvbSB3ZWJraXRweS5wb3J0LnNlcnZlcl9wcm9jZXNz
IGltcG9ydCBTZXJ2ZXJQcm9jZXNzCitmcm9tIHdlYmtpdHB5LnBvcnQuc2VydmVyX3Byb2Nlc3Mg
aW1wb3J0IFNlcnZlclByb2Nlc3MsIF9sb2cgYXMgc2VydmVyX3Byb2Nlc3NfbG9nZ2VyCiBmcm9t
IHdlYmtpdHB5Lnhjb2RlLnNpbXVsYXRlZF9kZXZpY2UgaW1wb3J0IFNpbXVsYXRlZERldmljZU1h
bmFnZXIKIAogCkBAIC0zNCw2ICszNSw3IEBAIGNsYXNzIFJ1bm5lcihvYmplY3QpOgogICAgIFNU
QVRVU19DUkFTSEVEID0gMgogICAgIFNUQVRVU19USU1FT1VUID0gMwogICAgIFNUQVRVU19ESVNB
QkxFRCA9IDQKKyAgICBTVEFUVVNfUlVOTklORyA9IDUKIAogICAgIE5BTUVfRk9SX1NUQVRVUyA9
IFsKICAgICAgICAgJ1Bhc3NlZCcsCkBAIC00Nyw2ICs0OSw4IEBAIGNsYXNzIFJ1bm5lcihvYmpl
Y3QpOgogICAgICAgICBzZWxmLnBvcnQgPSBwb3J0CiAgICAgICAgIHNlbGYucHJpbnRlciA9IHBy
aW50ZXIKICAgICAgICAgc2VsZi50ZXN0c19ydW4gPSAwCisgICAgICAgIHNlbGYuX251bV93b3Jr
ZXJzID0gMQorICAgICAgICBzZWxmLl9oYXNfbG9nZ2VkX2Zvcl90ZXN0ID0gVHJ1ZSAgIyBTdXBw
cmVzcyBhbiBlbXB0eSBsaW5lIGJldHdlZW4gIlJ1bm5pbmcgdGVzdHMiIGFuZCB0aGUgZmlyc3Qg
dGVzdCdzIG91dHB1dC4KICAgICAgICAgc2VsZi5yZXN1bHRzID0ge30KIAogICAgIEBzdGF0aWNt
ZXRob2QKQEAgLTc4LDI0ICs4Miw0OCBAQCBjbGFzcyBSdW5uZXIob2JqZWN0KToKICAgICAgICAg
c2VsZi5wcmludGVyLndyaXRlX3VwZGF0ZSgnU2hhcmRpbmcgdGVzdHMgLi4uJykKICAgICAgICAg
c2hhcmRzID0gUnVubmVyLl9zaGFyZF90ZXN0cyh0ZXN0cykKIAotICAgICAgICB3aXRoIG1lc3Nh
Z2VfcG9vbC5nZXQoc2VsZiwgbGFtYmRhIGNhbGxlcjogX1dvcmtlcihjYWxsZXIsIHNlbGYucG9y
dCwgc2hhcmRzKSwgbWluKG51bV93b3JrZXJzLCBsZW4oc2hhcmRzKSkpIGFzIHBvb2w6Ci0gICAg
ICAgICAgICBwb29sLnJ1bigoJ3Rlc3QnLCBzaGFyZCkgZm9yIHNoYXJkLCBfIGluIHNoYXJkcy5p
dGVyaXRlbXMoKSkKKyAgICAgICAgb3JpZ2luYWxfbGV2ZWwgPSBzZXJ2ZXJfcHJvY2Vzc19sb2dn
ZXIubGV2ZWwKKyAgICAgICAgc2VydmVyX3Byb2Nlc3NfbG9nZ2VyLnNldExldmVsKGxvZ2dpbmcu
Q1JJVElDQUwpCisKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgc2VsZi5fbnVtX3dvcmtlcnMg
PSBtaW4obnVtX3dvcmtlcnMsIGxlbihzaGFyZHMpKQorICAgICAgICAgICAgd2l0aCBtZXNzYWdl
X3Bvb2wuZ2V0KHNlbGYsIGxhbWJkYSBjYWxsZXI6IF9Xb3JrZXIoY2FsbGVyLCBzZWxmLnBvcnQs
IHNoYXJkcyksIHNlbGYuX251bV93b3JrZXJzKSBhcyBwb29sOgorICAgICAgICAgICAgICAgIHBv
b2wucnVuKCgndGVzdCcsIHNoYXJkKSBmb3Igc2hhcmQsIF8gaW4gc2hhcmRzLml0ZXJpdGVtcygp
KQorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgc2VydmVyX3Byb2Nlc3NfbG9nZ2VyLnNl
dExldmVsKG9yaWdpbmFsX2xldmVsKQorCiAKICAgICBkZWYgaGFuZGxlKHNlbGYsIG1lc3NhZ2Vf
bmFtZSwgc291cmNlLCB0ZXN0X25hbWU9Tm9uZSwgc3RhdHVzPTAsIG91dHB1dD0nJyk6CiAgICAg
ICAgIGlmIG1lc3NhZ2VfbmFtZSA9PSAnZGlkX3NwYXduX3dvcmtlcic6CiAgICAgICAgICAgICBy
ZXR1cm4KKworICAgICAgICBzb3VyY2UgPSAnJyBpZiBzZWxmLl9udW1fd29ya2VycyA9PSAxIGVs
c2Ugc291cmNlICsgJyAnCisgICAgICAgIHdpbGxfc3RyZWFtX2xvZ3MgPSBzZWxmLl9udW1fd29y
a2VycyA9PSAxIGFuZCBzZWxmLnBvcnQuZ2V0X29wdGlvbigndmVyYm9zZScpCiAgICAgICAgIGlm
IG1lc3NhZ2VfbmFtZSA9PSAnZW5kZWRfdGVzdCc6Ci0gICAgICAgICAgICB1cGRhdGUgPSAne30g
e30ge30nLmZvcm1hdChzb3VyY2UsIHRlc3RfbmFtZSwgUnVubmVyLk5BTUVfRk9SX1NUQVRVU1tz
dGF0dXNdKQorICAgICAgICAgICAgdXBkYXRlID0gJ3t9e30ge30nLmZvcm1hdChzb3VyY2UsIHRl
c3RfbmFtZSwgUnVubmVyLk5BTUVfRk9SX1NUQVRVU1tzdGF0dXNdKQogCiAgICAgICAgICAgICAj
IERvbid0IHByaW50IHRlc3Qgb3V0cHV0IGlmIC0tcXVpZXQuCiAgICAgICAgICAgICBpZiBzdGF0
dXMgIT0gUnVubmVyLlNUQVRVU19QQVNTRUQgb3IgKG91dHB1dCBhbmQgbm90IHNlbGYucG9ydC5n
ZXRfb3B0aW9uKCdxdWlldCcpKToKKyAgICAgICAgICAgICAgICBpZiBub3Qgd2lsbF9zdHJlYW1f
bG9nczoKKyAgICAgICAgICAgICAgICAgICAgZm9yIGxpbmUgaW4gb3V0cHV0LnNwbGl0bGluZXMo
KToKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIG5vdCBzZWxmLl9oYXNfbG9nZ2VkX2Zvcl90
ZXN0OgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX2hhc19sb2dnZWRfZm9yX3Rl
c3QgPSBUcnVlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5wcmludGVyLndyaXRl
bG4oc291cmNlKQorICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5wcmludGVyLndyaXRlbG4o
J3t9ICAgIHt9Jy5mb3JtYXQoc291cmNlLCBsaW5lKSkKICAgICAgICAgICAgICAgICBzZWxmLnBy
aW50ZXIud3JpdGVsbih1cGRhdGUpCi0gICAgICAgICAgICAgICAgZm9yIGxpbmUgaW4gb3V0cHV0
LnNwbGl0bGluZXMoKToKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5wcmludGVyLndyaXRlbG4o
JyAgICB7fScuZm9ybWF0KGxpbmUpKQogICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAg
ICBzZWxmLnByaW50ZXIud3JpdGVfdXBkYXRlKHVwZGF0ZSkKICAgICAgICAgICAgIHNlbGYudGVz
dHNfcnVuICs9IDEKICAgICAgICAgICAgIHNlbGYucmVzdWx0c1t0ZXN0X25hbWVdID0gKHN0YXR1
cywgb3V0cHV0KQorICAgICAgICAgICAgc2VsZi5faGFzX2xvZ2dlZF9mb3JfdGVzdCA9IEZhbHNl
CisKKyAgICAgICAgaWYgbWVzc2FnZV9uYW1lID09ICdsb2cnIGFuZCB3aWxsX3N0cmVhbV9sb2dz
OgorICAgICAgICAgICAgZm9yIGxpbmUgaW4gb3V0cHV0LnNwbGl0bGluZXMoKToKKyAgICAgICAg
ICAgICAgICBpZiBub3Qgc2VsZi5faGFzX2xvZ2dlZF9mb3JfdGVzdDoKKyAgICAgICAgICAgICAg
ICAgICAgc2VsZi5faGFzX2xvZ2dlZF9mb3JfdGVzdCA9IFRydWUKKyAgICAgICAgICAgICAgICAg
ICAgc2VsZi5wcmludGVyLndyaXRlbG4oc291cmNlKQorICAgICAgICAgICAgICAgIHNlbGYucHJp
bnRlci53cml0ZWxuKCd7fSAgICB7fScuZm9ybWF0KHNvdXJjZSwgbGluZSkpCisKIAogICAgIGRl
ZiByZXN1bHRfbWFwX2J5X3N0YXR1cyhzZWxmLCBzdGF0dXM9Tm9uZSk6CiAgICAgICAgIG1hcCA9
IHt9CkBAIC0xMzAsMzEgKzE1OCw1MSBAQCBjbGFzcyBfV29ya2VyKG9iamVjdCk6CiAgICAgICAg
ICAgICBSdW5uZXIuY29tbWFuZF9mb3JfcG9ydChzZWxmLl9wb3J0LCBbc2VsZi5fcG9ydC5fYnVp
bGRfcGF0aChiaW5hcnlfbmFtZSksICctLWd0ZXN0X2ZpbHRlcj17fScuZm9ybWF0KHRlc3QpXSks
CiAgICAgICAgICAgICBlbnY9c2VsZi5fcG9ydC5lbnZpcm9ubWVudF9mb3JfYXBpX3Rlc3RzKCkp
CiAKKyAgICAgICAgc3RhdHVzID0gUnVubmVyLlNUQVRVU19SVU5OSU5HCisgICAgICAgIGlmIHRl
c3Quc3BsaXQoJy4nKVsxXS5zdGFydHN3aXRoKCdESVNBQkxFRF8nKToKKyAgICAgICAgICAgIHN0
YXR1cyA9IFJ1bm5lci5TVEFUVVNfRElTQUJMRUQKKwogICAgICAgICB0cnk6CiAgICAgICAgICAg
ICBkZWFkbGluZSA9IHRpbWUudGltZSgpICsgc2VsZi5fdGltZW91dAotICAgICAgICAgICAgc2Vy
dmVyX3Byb2Nlc3Muc3RhcnQoKQorICAgICAgICAgICAgaWYgc3RhdHVzICE9IFJ1bm5lci5TVEFU
VVNfRElTQUJMRUQ6CisgICAgICAgICAgICAgICAgc2VydmVyX3Byb2Nlc3Muc3RhcnQoKQogCi0g
ICAgICAgICAgICBpZiBub3QgdGVzdC5zcGxpdCgnLicpWzFdLnN0YXJ0c3dpdGgoJ0RJU0FCTEVE
XycpOgotICAgICAgICAgICAgICAgIHN0ZG91dF9saW5lID0gc2VydmVyX3Byb2Nlc3MucmVhZF9z
dGRvdXRfbGluZShkZWFkbGluZSkKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAg
c3Rkb3V0X2xpbmUgPSBOb25lCisgICAgICAgICAgICBzdGRvdXRfYnVmZmVyID0gJycKKyAgICAg
ICAgICAgIHN0ZGVycl9idWZmZXIgPSAnJworICAgICAgICAgICAgd2hpbGUgc3RhdHVzID09IFJ1
bm5lci5TVEFUVVNfUlVOTklORzoKKyAgICAgICAgICAgICAgICBzdGRvdXRfbGluZSwgc3RkZXJy
X2xpbmUgPSBzZXJ2ZXJfcHJvY2Vzcy5yZWFkX2VpdGhlcl9zdGRvdXRfb3Jfc3RkZXJyX2xpbmUo
ZGVhZGxpbmUpCisgICAgICAgICAgICAgICAgaWYgbm90IHN0ZGVycl9saW5lIGFuZCBub3Qgc3Rk
b3V0X2xpbmU6CisgICAgICAgICAgICAgICAgICAgIGJyZWFrCiAKLSAgICAgICAgICAgIGlmIG5v
dCBzdGRvdXRfbGluZSBhbmQgc2VydmVyX3Byb2Nlc3MudGltZWRfb3V0OgorICAgICAgICAgICAg
ICAgIGlmIHN0ZGVycl9saW5lOgorICAgICAgICAgICAgICAgICAgICBzdGRlcnJfYnVmZmVyICs9
IHN0ZGVycl9saW5lCisgICAgICAgICAgICAgICAgICAgIHNlbGYucG9zdCgnbG9nJywgb3V0cHV0
PXN0ZGVycl9saW5lWzotMV0pCisgICAgICAgICAgICAgICAgaWYgc3Rkb3V0X2xpbmU6CisgICAg
ICAgICAgICAgICAgICAgIGlmICcqKlBBU1MqKicgaW4gc3Rkb3V0X2xpbmU6CisgICAgICAgICAg
ICAgICAgICAgICAgICBzdGF0dXMgPSBSdW5uZXIuU1RBVFVTX1BBU1NFRAorICAgICAgICAgICAg
ICAgICAgICBlbGlmICcqKkZBSUwqKicgaW4gc3Rkb3V0X2xpbmU6CisgICAgICAgICAgICAgICAg
ICAgICAgICBzdGF0dXMgPSBSdW5uZXIuU1RBVFVTX0ZBSUxFRAorICAgICAgICAgICAgICAgICAg
ICBlbHNlOgorICAgICAgICAgICAgICAgICAgICAgICAgc3Rkb3V0X2J1ZmZlciArPSBzdGRvdXRf
bGluZQorICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5wb3N0KCdsb2cnLCBvdXRwdXQ9c3Rk
b3V0X2xpbmVbOi0xXSkKKworICAgICAgICAgICAgaWYgc3RhdHVzID09IFJ1bm5lci5TVEFUVVNf
RElTQUJMRUQ6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgZWxpZiBzZXJ2ZXJf
cHJvY2Vzcy50aW1lZF9vdXQ6CiAgICAgICAgICAgICAgICAgc3RhdHVzID0gUnVubmVyLlNUQVRV
U19USU1FT1VUCi0gICAgICAgICAgICBlbGlmIG5vdCBzdGRvdXRfbGluZSBhbmQgc2VydmVyX3By
b2Nlc3MuaGFzX2NyYXNoZWQoKToKKyAgICAgICAgICAgIGVsaWYgc2VydmVyX3Byb2Nlc3MuaGFz
X2NyYXNoZWQoKToKICAgICAgICAgICAgICAgICBzdGF0dXMgPSBSdW5uZXIuU1RBVFVTX0NSQVNI
RUQKLSAgICAgICAgICAgIGVsaWYgbm90IHN0ZG91dF9saW5lOgotICAgICAgICAgICAgICAgIHN0
YXR1cyA9IFJ1bm5lci5TVEFUVVNfRElTQUJMRUQKLSAgICAgICAgICAgIGVsaWYgJyoqUEFTUyoq
JyBpbiBzdGRvdXRfbGluZToKLSAgICAgICAgICAgICAgICBzdGF0dXMgPSBSdW5uZXIuU1RBVFVT
X1BBU1NFRAotICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGVsaWYgc3RhdHVzID09IFJ1
bm5lci5TVEFUVVNfUlVOTklORzoKICAgICAgICAgICAgICAgICBzdGF0dXMgPSBSdW5uZXIuU1RB
VFVTX0ZBSUxFRAogCiAgICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICBvdXRwdXRfYnVmZmVy
ID0gc2VydmVyX3Byb2Nlc3MucG9wX2FsbF9idWZmZXJlZF9zdGRvdXQoKSArIHNlcnZlcl9wcm9j
ZXNzLnBvcF9hbGxfYnVmZmVyZWRfc3RkZXJyKCkKKyAgICAgICAgICAgIHJlbWFpbmluZ19zdGRl
cnIgPSBzZXJ2ZXJfcHJvY2Vzcy5wb3BfYWxsX2J1ZmZlcmVkX3N0ZGVycigpCisgICAgICAgICAg
ICByZW1haW5pbmdfc3Rkb3V0ID0gc2VydmVyX3Byb2Nlc3MucG9wX2FsbF9idWZmZXJlZF9zdGRv
dXQoKQorICAgICAgICAgICAgc2VsZi5wb3N0KCdsb2cnLCBvdXRwdXQ9cmVtYWluaW5nX3N0ZGVy
ciArIHJlbWFpbmluZ19zdGRvdXQpCisgICAgICAgICAgICBvdXRwdXRfYnVmZmVyID0gc3RkZXJy
X2J1ZmZlciArIHN0ZG91dF9idWZmZXIgKyByZW1haW5pbmdfc3RkZXJyICsgcmVtYWluaW5nX3N0
ZG91dAogICAgICAgICAgICAgc2VydmVyX3Byb2Nlc3Muc3RvcCgpCiAKLSAgICAgICAgc2VsZi5f
Y2FsbGVyLnBvc3QoJ2VuZGVkX3Rlc3QnLCAne30ue30nLmZvcm1hdChiaW5hcnlfbmFtZSwgdGVz
dCksIHN0YXR1cywgc2VsZi5fZmlsdGVyX25vaXN5X291dHB1dChvdXRwdXRfYnVmZmVyKSkKKyAg
ICAgICAgc2VsZi5wb3N0KCdlbmRlZF90ZXN0JywgJ3t9Lnt9Jy5mb3JtYXQoYmluYXJ5X25hbWUs
IHRlc3QpLCBzdGF0dXMsIHNlbGYuX2ZpbHRlcl9ub2lzeV9vdXRwdXQob3V0cHV0X2J1ZmZlcikp
CiAKICAgICBkZWYgX3J1bl9zaGFyZF93aXRoX2JpbmFyeShzZWxmLCBiaW5hcnlfbmFtZSwgdGVz
dHMpOgogICAgICAgICByZW1haW5pbmdfdGVzdHMgPSBsaXN0KHRlc3RzKQpAQCAtMTk2LDcgKzI0
NCw3IEBAIGNsYXNzIF9Xb3JrZXIob2JqZWN0KToKICAgICAgICAgICAgICAgICAgICAgICAgIGNv
bnRpbnVlCiAgICAgICAgICAgICAgICAgICAgIGlmIGxhc3RfdGVzdCBpcyBub3QgTm9uZToKICAg
ICAgICAgICAgICAgICAgICAgICAgIHJlbWFpbmluZ190ZXN0cy5yZW1vdmUobGFzdF90ZXN0KQot
ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fY2FsbGVyLnBvc3QoJ2VuZGVkX3Rlc3QnLCAn
e30ue30nLmZvcm1hdChiaW5hcnlfbmFtZSwgbGFzdF90ZXN0KSwgbGFzdF9zdGF0dXMsIHN0ZG91
dF9idWZmZXIpCisgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnBvc3QoJ2VuZGVkX3Rlc3Qn
LCAne30ue30nLmZvcm1hdChiaW5hcnlfbmFtZSwgbGFzdF90ZXN0KSwgbGFzdF9zdGF0dXMsIHN0
ZG91dF9idWZmZXIpCiAgICAgICAgICAgICAgICAgICAgICAgICBkZWFkbGluZSA9IHRpbWUudGlt
ZSgpICsgc2VsZi5fdGltZW91dAogICAgICAgICAgICAgICAgICAgICAgICAgc3Rkb3V0X2J1ZmZl
ciA9ICcnCiAKQEAgLTIxMSw3ICsyNTksOCBAQCBjbGFzcyBfV29ya2VyKG9iamVjdCk6CiAgICAg
ICAgICAgICAgICAgICAgIHJlbWFpbmluZ190ZXN0cy5yZW1vdmUobGFzdF90ZXN0KQogICAgICAg
ICAgICAgICAgICAgICBzdGRvdXRfYnVmZmVyICs9IHNlcnZlcl9wcm9jZXNzLnBvcF9hbGxfYnVm
ZmVyZWRfc3Rkb3V0KCkKICAgICAgICAgICAgICAgICAgICAgc3RkZXJyX2J1ZmZlciA9IHNlcnZl
cl9wcm9jZXNzLnBvcF9hbGxfYnVmZmVyZWRfc3RkZXJyKCkgaWYgbGFzdF9zdGF0dXMgPT0gUnVu
bmVyLlNUQVRVU19DUkFTSEVEIGVsc2UgJycKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fY2Fs
bGVyLnBvc3QoJ2VuZGVkX3Rlc3QnLCAne30ue30nLmZvcm1hdChiaW5hcnlfbmFtZSwgbGFzdF90
ZXN0KSwgbGFzdF9zdGF0dXMsIHNlbGYuX2ZpbHRlcl9ub2lzeV9vdXRwdXQoc3Rkb3V0X2J1ZmZl
ciArIHN0ZGVycl9idWZmZXIpKQorICAgICAgICAgICAgICAgICAgICBzZWxmLnBvc3QoJ2xvZycs
IG91dHB1dD1zdGRvdXRfYnVmZmVyICsgc3RkZXJyX2J1ZmZlcikKKyAgICAgICAgICAgICAgICAg
ICAgc2VsZi5wb3N0KCdlbmRlZF90ZXN0JywgJ3t9Lnt9Jy5mb3JtYXQoYmluYXJ5X25hbWUsIGxh
c3RfdGVzdCksIGxhc3Rfc3RhdHVzLCBzZWxmLl9maWx0ZXJfbm9pc3lfb3V0cHV0KHN0ZG91dF9i
dWZmZXIgKyBzdGRlcnJfYnVmZmVyKSkKIAogICAgICAgICAgICAgICAgIGlmIHNlcnZlcl9wcm9j
ZXNzLnRpbWVkX291dDoKICAgICAgICAgICAgICAgICAgICAgYnJlYWsKQEAgLTIyNiw5ICsyNzUs
MTIgQEAgY2xhc3MgX1dvcmtlcihvYmplY3QpOgogICAgICAgICBmb3IgdGVzdCBpbiByZW1haW5p
bmdfdGVzdHM6CiAgICAgICAgICAgICBzZWxmLl9ydW5fc2luZ2xlX3Rlc3QoYmluYXJ5X25hbWUs
IHRlc3QpCiAKKyAgICBkZWYgcG9zdChzZWxmLCBtZXNzYWdlX25hbWUsIHRlc3RfbmFtZT1Ob25l
LCBzdGF0dXM9MCwgb3V0cHV0PScnKToKKyAgICAgICAgc2VsZi5fY2FsbGVyLnBvc3QobWVzc2Fn
ZV9uYW1lLCB0ZXN0X25hbWUsIHN0YXR1cywgb3V0cHV0KQorCiAgICAgZGVmIGhhbmRsZShzZWxm
LCBtZXNzYWdlX25hbWUsIHNvdXJjZSwgc2hhcmRfbmFtZSk6CiAgICAgICAgIGFzc2VydCBtZXNz
YWdlX25hbWUgPT0gJ3Rlc3QnCi0gICAgICAgIHNlbGYuX2NhbGxlci5wb3N0KCdzdGFydGVkX3No
YXJkJywgc2hhcmRfbmFtZSkKKyAgICAgICAgc2VsZi5wb3N0KCdzdGFydGVkX3NoYXJkJywgc2hh
cmRfbmFtZSkKIAogICAgICAgICBiaW5hcnlfbWFwID0ge30KICAgICAgICAgZm9yIHRlc3QgaW4g
c2VsZi5fc2hhcmRfbWFwW3NoYXJkX25hbWVdOgpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvdmlld3MvbWV0ZXJlZF9zdHJlYW0ucHkKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvdmlld3MvbWV0ZXJlZF9zdHJlYW0ucHkJ
KHJldmlzaW9uIDIzMTY2MCkKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L3ZpZXdzL21ldGVyZWRfc3RyZWFtLnB5CSh3b3JraW5nIGNvcHkpCkBAIC01MSw5ICs1MSwxMCBA
QCBjbGFzcyBNZXRlcmVkU3RyZWFtKG9iamVjdCk6CiAgICAgZGVmIF9lbnN1cmVfbmV3bGluZSh0
eHQpOgogICAgICAgICByZXR1cm4gdHh0IGlmIHR4dC5lbmRzd2l0aCgnXG4nKSBlbHNlIHR4dCAr
ICdcbicKIAotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBzdHJlYW09Tm9uZSwgdmVyYm9zZT1GYWxz
ZSwgbG9nZ2VyPU5vbmUsIHRpbWVfZm49Tm9uZSwgcGlkPU5vbmUsIG51bWJlcl9vZl9jb2x1bW5z
PU5vbmUpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBzdHJlYW09Tm9uZSwgdmVyYm9zZT1GYWxz
ZSwgbG9nZ2VyPU5vbmUsIHRpbWVfZm49Tm9uZSwgcGlkPU5vbmUsIG51bWJlcl9vZl9jb2x1bW5z
PU5vbmUsIHByaW50X3RpbWVzdGFtcHM9Tm9uZSk6CiAgICAgICAgIHNlbGYuX3N0cmVhbSA9IHN0
cmVhbSBvciBzeXMuc3RkZXJyCiAgICAgICAgIHNlbGYuX3ZlcmJvc2UgPSB2ZXJib3NlCisgICAg
ICAgIHNlbGYuX3ByaW50X3RpbWVzdGFtcHMgPSB2ZXJib3NlIGlmIHByaW50X3RpbWVzdGFtcHMg
aXMgTm9uZSBlbHNlIHByaW50X3RpbWVzdGFtcHMKICAgICAgICAgc2VsZi5fdGltZV9mbiA9IHRp
bWVfZm4gb3IgdGltZS50aW1lCiAgICAgICAgIHNlbGYuX3BpZCA9IHBpZCBvciBvcy5nZXRwaWQo
KQogICAgICAgICBzZWxmLl9pc2F0dHkgPSBzZWxmLl9zdHJlYW0uaXNhdHR5KCkKQEAgLTk3LDEz
ICs5OCwxNiBAQCBjbGFzcyBNZXRlcmVkU3RyZWFtKG9iamVjdCk6CiAgICAgICAgIHNlbGYuX2xh
c3Rfd3JpdGVfdGltZSA9IG5vdwogICAgICAgICBpZiBzZWxmLl9sYXN0X3BhcnRpYWxfbGluZToK
ICAgICAgICAgICAgIHNlbGYuX2VyYXNlX2xhc3RfcGFydGlhbF9saW5lKCkKLSAgICAgICAgaWYg
c2VsZi5fdmVyYm9zZToKKworICAgICAgICB0aW1lc3RhbXBfc3RyaW5nID0gJycKKyAgICAgICAg
aWYgc2VsZi5fcHJpbnRfdGltZXN0YW1wczoKICAgICAgICAgICAgIG5vd190dXBsZSA9IHRpbWUu
bG9jYWx0aW1lKG5vdykKLSAgICAgICAgICAgIG1zZyA9ICclMDJkOiUwMmQ6JTAyZC4lMDNkICVk
ICVzJyAlIChub3dfdHVwbGUudG1faG91ciwgbm93X3R1cGxlLnRtX21pbiwgbm93X3R1cGxlLnRt
X3NlYywgaW50KChub3cgKiAxMDAwKSAlIDEwMDApLCBwaWQsIHNlbGYuX2Vuc3VyZV9uZXdsaW5l
KHR4dCkpCi0gICAgICAgIGVsaWYgc2VsZi5faXNhdHR5OgotICAgICAgICAgICAgbXNnID0gdHh0
CisgICAgICAgICAgICB0aW1lc3RhbXBfc3RyaW5nID0gJyUwMmQ6JTAyZDolMDJkLiUwM2QgJWQg
JyAlIChub3dfdHVwbGUudG1faG91ciwgbm93X3R1cGxlLnRtX21pbiwgbm93X3R1cGxlLnRtX3Nl
YywgaW50KChub3cgKiAxMDAwKSAlIDEwMDApLCBwaWQpCisKKyAgICAgICAgaWYgc2VsZi5faXNh
dHR5IGFuZCBub3Qgc2VsZi5fdmVyYm9zZToKKyAgICAgICAgICAgIG1zZyA9ICd7fXt9Jy5mb3Jt
YXQodGltZXN0YW1wX3N0cmluZywgdHh0KQogICAgICAgICBlbHNlOgotICAgICAgICAgICAgbXNn
ID0gc2VsZi5fZW5zdXJlX25ld2xpbmUodHh0KQorICAgICAgICAgICAgbXNnID0gJ3t9e30nLmZv
cm1hdCh0aW1lc3RhbXBfc3RyaW5nLCBzZWxmLl9lbnN1cmVfbmV3bGluZSh0eHQpKQogCiAgICAg
ICAgIHNlbGYuX3N0cmVhbS53cml0ZShtc2cpCiAKSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL3ZpZXdzL21ldGVyZWRfc3RyZWFtX3VuaXR0ZXN0LnB5Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3ZpZXdzL21ldGVyZWRf
c3RyZWFtX3VuaXR0ZXN0LnB5CShyZXZpc2lvbiAyMzE2NjApCisrKyBUb29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy92aWV3cy9tZXRlcmVkX3N0cmVhbV91bml0dGVzdC5weQkod29y
a2luZyBjb3B5KQpAQCAtMzcsNiArMzcsNyBAQCBmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy52
aWV3cy5tZXRlcmVkCiBjbGFzcyBSZWd1bGFyVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAg
dmVyYm9zZSA9IEZhbHNlCiAgICAgaXNhdHR5ID0gRmFsc2UKKyAgICBwcmludF90aW1lc3RhbXBz
ID0gTm9uZQogCiAgICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgICBzZWxmLnN0cmVhbSA9IFN0
cmluZ0lPLlN0cmluZ0lPKCkKQEAgLTUxLDcgKzUyLDcgQEAgY2xhc3MgUmVndWxhclRlc3QodW5p
dHRlc3QuVGVzdENhc2UpOgogICAgICAgICAjIGFkZCBhIGR1bW15IHRpbWUgY291bnRlciBmb3Ig
YSBkZWZhdWx0IGJlaGF2aW9yLgogICAgICAgICBzZWxmLnRpbWVzID0gcmFuZ2UoMTApCiAKLSAg
ICAgICAgc2VsZi5tZXRlciA9IE1ldGVyZWRTdHJlYW0oc2VsZi5zdHJlYW0sIHNlbGYudmVyYm9z
ZSwgc2VsZi5sb2dnZXIsIHNlbGYudGltZV9mbiwgODY3NSkKKyAgICAgICAgc2VsZi5tZXRlciA9
IE1ldGVyZWRTdHJlYW0oc2VsZi5zdHJlYW0sIHNlbGYudmVyYm9zZSwgc2VsZi5sb2dnZXIsIHNl
bGYudGltZV9mbiwgODY3NSwgcHJpbnRfdGltZXN0YW1wcz1zZWxmLnByaW50X3RpbWVzdGFtcHMp
CiAKICAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgIGlmIHNlbGYubWV0ZXI6CkBAIC03
MSw3ICs3Miw3IEBAIGNsYXNzIFJlZ3VsYXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAg
ICAgcm9vdF9sb2dnZXIuYWRkSGFuZGxlcihoYW5kbGVyKQogICAgICAgICByb290X2xvZ2dlci5z
ZXRMZXZlbChsb2dnaW5nLkRFQlVHKQogICAgICAgICB0cnk6Ci0gICAgICAgICAgICBzZWxmLm1l
dGVyID0gTWV0ZXJlZFN0cmVhbShzZWxmLnN0cmVhbSwgc2VsZi52ZXJib3NlLCBOb25lLCBzZWxm
LnRpbWVfZm4sIDg2NzUpCisgICAgICAgICAgICBzZWxmLm1ldGVyID0gTWV0ZXJlZFN0cmVhbShz
ZWxmLnN0cmVhbSwgc2VsZi52ZXJib3NlLCBOb25lLCBzZWxmLnRpbWVfZm4sIDg2NzUsIHByaW50
X3RpbWVzdGFtcHM9c2VsZi5wcmludF90aW1lc3RhbXBzKQogICAgICAgICAgICAgc2VsZi5tZXRl
ci53cml0ZV90aHJvdHRsZWRfdXBkYXRlKCdmb28nKQogICAgICAgICAgICAgc2VsZi5tZXRlci53
cml0ZV91cGRhdGUoJ2JhcicpCiAgICAgICAgICAgICBzZWxmLm1ldGVyLndyaXRlKCdiYXonKQpA
QCAtMTUyLDMgKzE1MywxNyBAQCBjbGFzcyBWZXJib3NlVGVzdChSZWd1bGFyVGVzdCk6CiAgICAg
ICAgIHNlbGYubG9nZ2VyLmluZm8oJ2ZvbyAlcyAlZCcsICdiYXInLCAyKQogICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKGxlbihzZWxmLmJ1Zmxpc3QpLCAxKQogICAgICAgICBzZWxmLmFzc2VydFRy
dWUoc2VsZi5idWZsaXN0WzBdLmVuZHN3aXRoKCdmb28gYmFyIDJcbicpKQorCisKK2NsYXNzIFZl
cmJvc2VXaXRoT3V0VGltZXN0YW1wKFJlZ3VsYXJUZXN0KToKKyAgICBpc2F0dHkgPSBUcnVlCisg
ICAgdmVyYm9zZSA9IFRydWUKKyAgICBwcmludF90aW1lc3RhbXBzID0gRmFsc2UKKworICAgIGRl
ZiB0ZXN0X2Jhc2ljKHNlbGYpOgorICAgICAgICBidWZsaXN0ID0gc2VsZi5fYmFzaWMoWzAsIDEs
IDIuMSwgMTMsIDE0LjEyMzRdKQorICAgICAgICBzZWxmLmFzc2VydFRydWUocmUubWF0Y2goJ2Zv
b1xuJywgYnVmbGlzdFswXSkpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZS5tYXRjaCgnYmFy
XG4nLCBidWZsaXN0WzFdKSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHJlLm1hdGNoKCdiYXog
MlxuJywgYnVmbGlzdFsyXSkpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZS5tYXRjaCgnZG9u
ZVxuJywgYnVmbGlzdFszXSkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGJ1Zmxpc3Qp
LCA0KQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>