<?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>189219</bug_id>
          
          <creation_ts>2018-08-31 18:22:55 -0700</creation_ts>
          <short_desc>run-webkit-tests prints confusing messages when test expectations list results that are not compatible with the run options</short_desc>
          <delta_ts>2018-09-06 16:28:55 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>ap</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>jbedard</cc>
    
    <cc>jonlee</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1455923</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2018-08-31 18:22:55 -0700</bug_when>
    <thetext>run-webkit-tests prints confusing messages when test expectations list results that are not compatible with the run options</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1455924</commentid>
    <comment_count>1</comment_count>
      <attachid>348694</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2018-08-31 18:23:21 -0700</bug_when>
    <thetext>Created attachment 348694
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1455925</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-08-31 18:25:34 -0700</bug_when>
    <thetext>Attachment 348694 did not pass style-queue:


ERROR: Tools/Scripts/webkitpy/layout_tests/controllers/layout_test_runner.py:187:  multiple statements on one line (semicolon)  [pep8/E702] [5]
ERROR: Tools/Scripts/webkitpy/layout_tests/controllers/layout_test_runner.py:206:  trailing whitespace  [pep8/W291] [5]
ERROR: Tools/Scripts/webkitpy/layout_tests/controllers/layout_test_runner.py:208:  multiple statements on one line (semicolon)  [pep8/E702] [5]
ERROR: Tools/Scripts/webkitpy/layout_tests/controllers/layout_test_runner.py:211:  trailing whitespace  [pep8/W291] [5]
ERROR: Tools/Scripts/webkitpy/layout_tests/models/test_expectations.py:615:  at least two spaces before inline comment  [pep8/E261] [5]
ERROR: Tools/Scripts/webkitpy/layout_tests/models/test_expectations.py:982:  at least two spaces before inline comment  [pep8/E261] [5]
ERROR: Tools/Scripts/webkitpy/layout_tests/models/test_expectations.py:988:  trailing whitespace  [pep8/W291] [5]
Total errors found: 7 in 10 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1456628</commentid>
    <comment_count>3</comment_count>
      <attachid>348894</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2018-09-04 21:57:34 -0700</bug_when>
    <thetext>Created attachment 348894
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1456833</commentid>
    <comment_count>4</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2018-09-05 13:26:25 -0700</bug_when>
    <thetext>Some sample output:

  fast/borders/border-image-fill-no-border.html -&gt; ref test hashes didn&apos;t match but diff passed  
[786/11865] fast/animation/request-animation-frame-unparented-iframe-crash.html passed unexpectedly
[1493/11865] fast/canvas/canvas-blending-fill-style.html passed unexpectedly                            
  fast/css3-text/css3-text-decoration/repaint/underline-outside-of-layout-rect-altered.html -&gt; test was a pass (expected) but is now a leak (unexpected)
  fast/canvas/canvas-ellipse-connecting-line.html -&gt; ref test hashes didn&apos;t match but diff passed             
[3799/11865] fast/encoding/mailto-always-utf-8.html passed unexpectedly         
[4038/11865] fast/forms/mailto/formenctype-attribute-button-html.html passed unexpectedly     
[4050/11865] fast/forms/mailto/formenctype-attribute-input-2.html passed unexpectedly
[4054/11865] fast/forms/mailto/formenctype-attribute-input-html.html passed unexpectedly
[4063/11865] fast/forms/append-children-during-form-submission.html passed unexpectedly
  fast/forms/mailto/formenctype-attribute-input-html.html -&gt; test was a pass (unexpected) but is now a leak (expected)
  fast/forms/mailto/formenctype-attribute-input-2.html -&gt; test was a pass (unexpected) but is now a leak (expected)
  fast/forms/mailto/formenctype-attribute-button-html.html -&gt; test was a pass (unexpected) but is now a leak (expected)
  fast/encoding/mailto-always-utf-8.html -&gt; test was a pass (unexpected) but is now a leak (expected)
[4826/11865] fast/forms/empty-textarea-toggle-disabled.html passed unexpectedly             
  fast/images/animated-gif-no-layout.html -&gt; ref test hashes didn&apos;t match but diff passed
[5266/11865] fast/history/page-cache-geolocation-active-watcher.html passed unexpectedly                  
[5306/11865] fast/canvas/webgl/webgl2-getActiveUniforms.html passed unexpectedly    
[5387/11865] fast/hidpi/image-srcset-svg-canvas.html passed unexpectedly         
[5483/11865] fast/hidpi/video-controls-in-hidpi.html passed unexpectedly                    
  fast/hidpi/video-controls-in-hidpi.html -&gt; test was a pass (unexpected) but is now a leak (expected)
  fast/history/page-cache-geolocation-active-watcher.html -&gt; test was a pass (unexpected) but is now a leak (expected)
[6092/11865] fast/images/drag-pdf-as-image.html passed unexpectedly                                        
  fast/images/gif-loop-count.html -&gt; ref test hashes didn&apos;t match but diff passed                              
  fast/images/hidpi-directly-composited-image-on-subpixel-position.html -&gt; ref test hashes didn&apos;t match but diff passed
[6976/11865] fast/loader/policy-delegate-action-hit-test-zoomed.html passed unexpectedly       
  fast/images/pdf-as-image-crop-box.html -&gt; ref test hashes didn&apos;t match but diff passed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1456849</commentid>
    <comment_count>5</comment_count>
      <attachid>348894</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2018-09-05 13:53:12 -0700</bug_when>
    <thetext>Comment on attachment 348894
Patch

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

&gt; Tools/Scripts/webkitpy/layout_tests/controllers/layout_test_runner_unittest.py:125
&gt; +        runner._options.world_leaks = False

Is this True by default?

&gt; Tools/Scripts/webkitpy/layout_tests/models/test_expectations.py:601
&gt; +    def get_expectations_or_pass(self, test):

Is there ever a case where this isn&apos;t what we want? I would be in favor of either baking this into get_expectations or providing a &apos;default&apos; argument to get_expectations.

&gt; Tools/Scripts/webkitpy/layout_tests/models/test_expectations.py:982
&gt; +    def filtered_expectations_for_test(self, test, pixel_tests_are_enabled, world_leaks_are_enabled):

Can we pass the options in instead so this would look like:

def filtered_expectations_for_test(self, test, is_ref_test, options):
    ....

That way, we don&apos;t need to unpack the options in 2 places.

&gt; Tools/Scripts/webkitpy/layout_tests/views/buildbot_results_unittest.py:92
&gt; +    def test_print_unexpected_results_with_options(self):

I&apos;m a little unclear what we&apos;re trying to test here. It looks like every change to pixel_tests and world_leaks results in the same DASHED_LINE output.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1456850</commentid>
    <comment_count>6</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2018-09-05 13:54:10 -0700</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #4)
&gt; Some sample output:
&gt; 
&gt;....
&gt;   fast/images/pdf-as-image-crop-box.html -&gt; ref test hashes didn&apos;t match but
&gt; diff passed

To be clear, this is the old output, right?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1456851</commentid>
    <comment_count>7</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2018-09-05 13:55:26 -0700</bug_when>
    <thetext>&gt;  fast/encoding/mailto-always-utf-8.html -&gt; test was a pass (unexpected) but is now a leak (expected)

I don&apos;t understand what this is saying (beyond &quot;something tricky is going on, you may need to dig into details&quot;).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1456870</commentid>
    <comment_count>8</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2018-09-05 14:50:08 -0700</bug_when>
    <thetext>(In reply to Jonathan Bedard from comment #5)
&gt; Comment on attachment 348894 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=348894&amp;action=review
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/layout_tests/controllers/layout_test_runner_unittest.py:125
&gt; &gt; +        runner._options.world_leaks = False
&gt; 
&gt; Is this True by default?

It&apos;s currently False by default but should be True by default on some platforms in future. I want to set it to an explicit value here.
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/layout_tests/models/test_expectations.py:601
&gt; &gt; +    def get_expectations_or_pass(self, test):
&gt; 
&gt; Is there ever a case where this isn&apos;t what we want? I would be in favor of
&gt; either baking this into get_expectations or providing a &apos;default&apos; argument
&gt; to get_expectations.

That would be the old function that still exists below.

&gt; &gt; Tools/Scripts/webkitpy/layout_tests/models/test_expectations.py:982
&gt; &gt; +    def filtered_expectations_for_test(self, test, pixel_tests_are_enabled, world_leaks_are_enabled):
&gt; 
&gt; Can we pass the options in instead so this would look like:
&gt; 
&gt; def filtered_expectations_for_test(self, test, is_ref_test, options):
&gt;     ....
&gt; 
&gt; That way, we don&apos;t need to unpack the options in 2 places.

Sure.
 
&gt; &gt; Tools/Scripts/webkitpy/layout_tests/views/buildbot_results_unittest.py:92
&gt; &gt; +    def test_print_unexpected_results_with_options(self):
&gt; 
&gt; I&apos;m a little unclear what we&apos;re trying to test here. It looks like every
&gt; change to pixel_tests and world_leaks results in the same DASHED_LINE output.

Right, it&apos;s testing that if you run without --world-leaks, but some tests have expected [ Leak ], those are NOT reported as unexpected failures (i.e. the output is blank other than the dashed line).

Similarly, if a non-ref test is [ ImageOnlyFailure ], and you run without --pixel-tests, we should not report that test as an unexpected pass.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1456871</commentid>
    <comment_count>9</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2018-09-05 14:50:26 -0700</bug_when>
    <thetext>(In reply to Jonathan Bedard from comment #6)
&gt; (In reply to Simon Fraser (smfr) from comment #4)
&gt; &gt; Some sample output:
&gt; &gt; 
&gt; &gt;....
&gt; &gt;   fast/images/pdf-as-image-crop-box.html -&gt; ref test hashes didn&apos;t match but
&gt; &gt; diff passed
&gt; 
&gt; To be clear, this is the old output, right?

I did not change this output.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1456872</commentid>
    <comment_count>10</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2018-09-05 14:51:29 -0700</bug_when>
    <thetext>(In reply to Alexey Proskuryakov from comment #7)
&gt; &gt;  fast/encoding/mailto-always-utf-8.html -&gt; test was a pass (unexpected) but is now a leak (expected)
&gt; 
&gt; I don&apos;t understand what this is saying (beyond &quot;something tricky is going
&gt; on, you may need to dig into details&quot;).

This is trying to communicate something to the user that is more complex because leak detection is async: when the test first ran, it passed, but later on, leak detection found a leak and turn the test into a Leak failure. I welcome suggestions at better wording.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1456913</commentid>
    <comment_count>11</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2018-09-05 16:15:20 -0700</bug_when>
    <thetext>I guess the main confusion for me comes from &quot;is now a leak (expected)&quot;, which sounds like there was some change with regards to leaking, but is actually trying to say that there was no change.

How about one of these?

fast/encoding/mailto-always-utf-8.html -&gt; test was an unexpected pass but it caused an expected world leak

fast/encoding/mailto-always-utf-8.html -&gt; additional result: still caused a world leak

fast/encoding/mailto-always-utf-8.html -&gt; additional result: leaked the world expectedly</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1456989</commentid>
    <comment_count>12</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2018-09-05 21:14:43 -0700</bug_when>
    <thetext>The logging output being discussed is actually the subject of bug 189293.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1457143</commentid>
    <comment_count>13</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2018-09-06 10:53:19 -0700</bug_when>
    <thetext>What parts of the sample output from comment 4 are subject of this bug?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1457149</commentid>
    <comment_count>14</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2018-09-06 11:00:47 -0700</bug_when>
    <thetext>Actually none! I pasted that output into the wrong bug!

This bug deals with the message at the end, that says you have unexpected failures when you don&apos;t have any that can be detected by the current run options.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1457153</commentid>
    <comment_count>15</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2018-09-06 11:08:41 -0700</bug_when>
    <thetext>That sounds like an indisputable improvement.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1457296</commentid>
    <comment_count>16</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2018-09-06 15:29:28 -0700</bug_when>
    <thetext>My only change would be that filtered_expectations_for_test(...) accept options so that we don&apos;t have to parse the options in two places. Other than that, unofficial r=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1457307</commentid>
    <comment_count>17</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2018-09-06 15:57:22 -0700</bug_when>
    <thetext>(In reply to Jonathan Bedard from comment #16)
&gt; My only change would be that filtered_expectations_for_test(...) accept
&gt; options so that we don&apos;t have to parse the options in two places. Other than
&gt; that, unofficial r=me.

test_expectations.py currently doesn&apos;t know anything about options, so I&apos;m a bit reluctant to do this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1457308</commentid>
    <comment_count>18</comment_count>
      <attachid>348894</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2018-09-06 15:58:44 -0700</bug_when>
    <thetext>Comment on attachment 348894
Patch

rs=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1457319</commentid>
    <comment_count>19</comment_count>
      <attachid>348894</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-09-06 16:25:46 -0700</bug_when>
    <thetext>Comment on attachment 348894
Patch

Clearing flags on attachment: 348894

Committed r235764: &lt;https://trac.webkit.org/changeset/235764&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1457320</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-09-06 16:25:48 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1457321</commentid>
    <comment_count>21</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-09-06 16:28:55 -0700</bug_when>
    <thetext>&lt;rdar://problem/44202453&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>348694</attachid>
            <date>2018-08-31 18:23:21 -0700</date>
            <delta_ts>2018-09-04 21:57:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-189219-20180831182320.patch</filename>
            <type>text/plain</type>
            <size>16527</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1NTcxCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggN2E0OTlmZDVmNDJlZGIxOGQ0NzZiYmIzYjQyOTA5MDc1
MDIwOWMxMS4uY2FmYzM1MGZlY2MxYmFkMjI4OWYzNDdlODQ2MDliNWRmYzE4MjA4ZCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0
IEBACisyMDE4LTA4LTMxICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgor
CisgICAgICAgIHJ1bi13ZWJraXQtdGVzdHMgcHJpbnRzIGNvbmZ1c2luZyBtZXNzYWdlcyB3aGVu
IHRlc3QgZXhwZWN0YXRpb25zIGxpc3QgcmVzdWx0cyB0aGF0IGFyZSBub3QgY29tcGF0aWJsZSB3
aXRoIHRoZSBydW4gb3B0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTg5MjE5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9s
YXlvdXRfdGVzdF9ydW5uZXIucHk6CisgICAgICAgIChMYXlvdXRUZXN0UnVubmVyLl91cGRhdGVf
c3VtbWFyeV93aXRoX3Jlc3VsdCk6CisgICAgICAgIChMYXlvdXRUZXN0UnVubmVyLl9hbm5vdGF0
ZV9yZXN1bHRzX3dpdGhfYWRkaXRpb25hbF9mYWlsdXJlcyk6CisgICAgICAgICogU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvbGF5b3V0X3Rlc3RfcnVubmVyX3VuaXR0
ZXN0LnB5OgorICAgICAgICAoTGF5b3V0VGVzdFJ1bm5lclRlc3RzLnRlc3RfdXBkYXRlX3N1bW1h
cnlfd2l0aF9yZXN1bHQpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L21vZGVscy90ZXN0X2V4cGVjdGF0aW9ucy5weToKKyAgICAgICAgKFRlc3RFeHBlY3RhdGlvbnNN
b2RlbC5nZXRfZXhwZWN0YXRpb25zX29yX3Bhc3MpOgorICAgICAgICAoVGVzdEV4cGVjdGF0aW9u
c01vZGVsKToKKyAgICAgICAgKFRlc3RFeHBlY3RhdGlvbnNNb2RlbC5leHBlY3RhdGlvbnNfdG9f
c3RyaW5nKToKKyAgICAgICAgKFRlc3RFeHBlY3RhdGlvbnNNb2RlbC5nZXRfZXhwZWN0YXRpb25z
X3N0cmluZyk6CisgICAgICAgIChUZXN0RXhwZWN0YXRpb25zLmZpbHRlcmVkX2V4cGVjdGF0aW9u
c19mb3JfdGVzdCk6CisgICAgICAgIChUZXN0RXhwZWN0YXRpb25zLm1hdGNoZXNfYW5fZXhwZWN0
ZWRfcmVzdWx0KToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9tb2Rl
bHMvdGVzdF9leHBlY3RhdGlvbnNfdW5pdHRlc3QucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfcnVuX3Jlc3VsdHMucHk6CisgICAgICAgIChz
dW1tYXJpemVfcmVzdWx0cyk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvbW9kZWxzL3Rlc3RfcnVuX3Jlc3VsdHNfdW5pdHRlc3QucHk6CisgICAgICAgIChTdW1tYXJp
emVkUmVzdWx0c1Rlc3QudGVzdF9zdm5fcmV2aXNpb24pOgorICAgICAgICAoU3VtbWFyaXplZFJl
c3VsdHNUZXN0LnRlc3Rfc3VtbWFyaXplZF9yZXN1bHRzX3dvbnRmaXgpOgorICAgICAgICAoU3Vt
bWFyaXplZFJlc3VsdHNUZXN0LnRlc3Rfc3VtbWFyaXplZF9yZXN1bHRzX2luY2x1ZGVfcGFzc2Vz
KToKKyAgICAgICAgKFN1bW1hcml6ZWRSZXN1bHRzVGVzdCk6CisgICAgICAgIChTdW1tYXJpemVk
UmVzdWx0c1Rlc3QudGVzdF9zdW1tYXJpemVkX3Jlc3VsdHNfd29ybGRfbGVha3NfZGlzYWJsZWQp
OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3ZpZXdzL3ByaW50aW5n
LnB5OgorICAgICAgICAoUHJpbnRlci5wcmludF90ZXN0X3Jlc3VsdF9jaGFuZ2VkKToKKwogMjAx
OC0wOC0zMSAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgogCiAgICAg
ICAgIFtXSExTTF0gUmVtb3ZlIHVzZWxlc3MgY29kZSBpbiBOYW1lUmVzb2x2ZXIKZGlmZiAtLWdp
dCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL2xheW91
dF90ZXN0X3J1bm5lci5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2Nv
bnRyb2xsZXJzL2xheW91dF90ZXN0X3J1bm5lci5weQppbmRleCA0YjE5OTc0ZDk4NzRkZDgyNmQz
YWI1ZDZkYjJiODBlZWQ5OWQxNDEyLi40YmI0OGZkNDY0NDQwMTA0MzVjYzVlNTYxY2ViYmQ0ZGY5
ZWRiYmM2IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9j
b250cm9sbGVycy9sYXlvdXRfdGVzdF9ydW5uZXIucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvbGF5b3V0X3Rlc3RfcnVubmVyLnB5CkBAIC0x
ODIsOCArMTgyLDkgQEAgY2xhc3MgTGF5b3V0VGVzdFJ1bm5lcihvYmplY3QpOgogICAgICAgICAg
ICAgZXhwX3N0ciA9IGdvdF9zdHIgPSAnU0tJUCcKICAgICAgICAgICAgIGV4cGVjdGVkID0gVHJ1
ZQogICAgICAgICBlbHNlOgotICAgICAgICAgICAgZXhwZWN0ZWQgPSBzZWxmLl9leHBlY3RhdGlv
bnMubWF0Y2hlc19hbl9leHBlY3RlZF9yZXN1bHQocmVzdWx0LnRlc3RfbmFtZSwgcmVzdWx0LnR5
cGUsIHNlbGYuX29wdGlvbnMucGl4ZWxfdGVzdHMgb3IgcmVzdWx0LnJlZnRlc3RfdHlwZSwgc2Vs
Zi5fb3B0aW9ucy53b3JsZF9sZWFrcykKLSAgICAgICAgICAgIGV4cF9zdHIgPSBzZWxmLl9leHBl
Y3RhdGlvbnMubW9kZWwoKS5nZXRfZXhwZWN0YXRpb25zX3N0cmluZyhyZXN1bHQudGVzdF9uYW1l
KQorICAgICAgICAgICAgZXhwZWN0YXRpb25zID0gc2VsZi5fZXhwZWN0YXRpb25zLmZpbHRlcmVk
X2V4cGVjdGF0aW9uc19mb3JfdGVzdChyZXN1bHQudGVzdF9uYW1lLCBzZWxmLl9vcHRpb25zLnBp
eGVsX3Rlc3RzIG9yIGJvb2wocmVzdWx0LnJlZnRlc3RfdHlwZSksIHNlbGYuX29wdGlvbnMud29y
bGRfbGVha3MpCisgICAgICAgICAgICBleHBlY3RlZCA9IHNlbGYuX2V4cGVjdGF0aW9ucy5tYXRj
aGVzX2FuX2V4cGVjdGVkX3Jlc3VsdChyZXN1bHQudGVzdF9uYW1lLCByZXN1bHQudHlwZSwgZXhw
ZWN0YXRpb25zKQorICAgICAgICAgICAgZXhwX3N0ciA9IHNlbGYuX2V4cGVjdGF0aW9ucy5tb2Rl
bCgpLmV4cGVjdGF0aW9uc190b19zdHJpbmcoZXhwZWN0YXRpb25zKTsKICAgICAgICAgICAgIGdv
dF9zdHIgPSBzZWxmLl9leHBlY3RhdGlvbnMubW9kZWwoKS5leHBlY3RhdGlvbl90b19zdHJpbmco
cmVzdWx0LnR5cGUpCiAKICAgICAgICAgcnVuX3Jlc3VsdHMuYWRkKHJlc3VsdCwgZXhwZWN0ZWQs
IHNlbGYuX3Rlc3RfaXNfc2xvdyhyZXN1bHQudGVzdF9uYW1lKSkKQEAgLTE5OCw5ICsxOTksMTYg
QEAgY2xhc3MgTGF5b3V0VGVzdFJ1bm5lcihvYmplY3QpOgogICAgICAgICAgICAgIyBXaGVuIHJ1
bm5pbmcgYSBjaHVuayAoLS1ydW4tY2h1bmspLCByZXN1bHRzX2J5X25hbWUgY29udGFpbnMgYWxs
IHRoZSB0ZXN0cywgYnV0IChjb25mdXNpbmdseSkgYWxsX3Rlc3RzIG9ubHkgY29udGFpbnMgdGhv
c2UgaW4gdGhlIGNodW5rIHRoYXQgd2FzIHJ1biwKICAgICAgICAgICAgICMgYW5kIHdlIGRvbid0
IHdhbnQgdG8gbW9kaWZ5IHRoZSByZXN1bHRzIG9mIGEgdGVzdCB0aGF0IGRpZG4ndCBydW4uIGV4
aXN0aW5nX3Jlc3VsdC50ZXN0X251bWJlciBpcyBvbmx5IG5vbi1Ob25lIGZvciB0ZXN0cyB0aGF0
IHJhbi4KICAgICAgICAgICAgIGlmIGV4aXN0aW5nX3Jlc3VsdCBhbmQgZXhpc3RpbmdfcmVzdWx0
LnRlc3RfbnVtYmVyIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgICAgIHdhc19leHBlY3RlZCA9
IHNlbGYuX2V4cGVjdGF0aW9ucy5tYXRjaGVzX2FuX2V4cGVjdGVkX3Jlc3VsdChuZXdfcmVzdWx0
LnRlc3RfbmFtZSwgZXhpc3RpbmdfcmVzdWx0LnR5cGUsIHNlbGYuX29wdGlvbnMucGl4ZWxfdGVz
dHMgb3IgZXhpc3RpbmdfcmVzdWx0LnJlZnRlc3RfdHlwZSwgc2VsZi5fb3B0aW9ucy53b3JsZF9s
ZWFrcykKLSAgICAgICAgICAgICAgICBub3dfZXhwZWN0ZWQgPSBzZWxmLl9leHBlY3RhdGlvbnMu
bWF0Y2hlc19hbl9leHBlY3RlZF9yZXN1bHQobmV3X3Jlc3VsdC50ZXN0X25hbWUsIG5ld19yZXN1
bHQudHlwZSwgc2VsZi5fb3B0aW9ucy5waXhlbF90ZXN0cyBvciBuZXdfcmVzdWx0LnJlZnRlc3Rf
dHlwZSwgc2VsZi5fb3B0aW9ucy53b3JsZF9sZWFrcykKKyAgICAgICAgICAgICAgICBleHBlY3Rh
dGlvbnMgPSBzZWxmLl9leHBlY3RhdGlvbnMuZmlsdGVyZWRfZXhwZWN0YXRpb25zX2Zvcl90ZXN0
KG5ld19yZXN1bHQudGVzdF9uYW1lLCBzZWxmLl9vcHRpb25zLnBpeGVsX3Rlc3RzIG9yIGJvb2wo
bmV3X3Jlc3VsdC5yZWZ0ZXN0X3R5cGUpLCBzZWxmLl9vcHRpb25zLndvcmxkX2xlYWtzKQorICAg
ICAgICAgICAgICAgIHdhc19leHBlY3RlZCA9IHNlbGYuX2V4cGVjdGF0aW9ucy5tYXRjaGVzX2Fu
X2V4cGVjdGVkX3Jlc3VsdChuZXdfcmVzdWx0LnRlc3RfbmFtZSwgZXhpc3RpbmdfcmVzdWx0LnR5
cGUsIGV4cGVjdGF0aW9ucykKKyAgICAgICAgICAgICAgICBub3dfZXhwZWN0ZWQgPSBzZWxmLl9l
eHBlY3RhdGlvbnMubWF0Y2hlc19hbl9leHBlY3RlZF9yZXN1bHQobmV3X3Jlc3VsdC50ZXN0X25h
bWUsIG5ld19yZXN1bHQudHlwZSwgZXhwZWN0YXRpb25zKQogICAgICAgICAgICAgICAgIHJ1bl9y
ZXN1bHRzLmNoYW5nZV9yZXN1bHRfdG9fZmFpbHVyZShleGlzdGluZ19yZXN1bHQsIG5ld19yZXN1
bHQsIHdhc19leHBlY3RlZCwgbm93X2V4cGVjdGVkKQorICAgICAgICAgICAgICAgIAorICAgICAg
ICAgICAgICAgIGlmIHdhc19leHBlY3RlZCBpcyBub3Qgbm93X2V4cGVjdGVkOgorICAgICAgICAg
ICAgICAgICAgICBleHBfc3RyID0gc2VsZi5fZXhwZWN0YXRpb25zLm1vZGVsKCkuZXhwZWN0YXRp
b25zX3RvX3N0cmluZyhleHBlY3RhdGlvbnMpOworICAgICAgICAgICAgICAgICAgICBnb3Rfc3Ry
ID0gc2VsZi5fZXhwZWN0YXRpb25zLm1vZGVsKCkuZXhwZWN0YXRpb25fdG9fc3RyaW5nKG5ld19y
ZXN1bHQudHlwZSkKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5fcHJpbnRlci5wcmludF90ZXN0
X3Jlc3VsdF9jaGFuZ2VkKG5ld19yZXN1bHQsIG5vd19leHBlY3RlZCwgZXhwX3N0ciwgZ290X3N0
cikKKyAgICAgICAgICAgICAgICAKIAogICAgIGRlZiBzdGFydF9zZXJ2ZXJzKHNlbGYpOgogICAg
ICAgICBpZiBzZWxmLl9uZWVkc19odHRwIGFuZCBub3Qgc2VsZi5fZGlkX3N0YXJ0X2h0dHBfc2Vy
dmVyIGFuZCBub3Qgc2VsZi5fcG9ydC5pc19odHRwX3NlcnZlcl9ydW5uaW5nKCk6CmRpZmYgLS1n
aXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9sYXlv
dXRfdGVzdF9ydW5uZXJfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9jb250cm9sbGVycy9sYXlvdXRfdGVzdF9ydW5uZXJfdW5pdHRlc3QucHkKaW5kZXgg
ZmZmOTZkZmU0ZGU4ODU2MTEyM2U5NjkxODA0OTQ4ZWNiMGQ4MzVjOS4uYjgwY2E0NTQ4NWEzMjk0
ZDAyZTI0NTVlNWVmM2RmYzE3NDNkMTg5ZiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvbGF5b3V0X3Rlc3RfcnVubmVyX3VuaXR0ZXN0
LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJz
L2xheW91dF90ZXN0X3J1bm5lcl91bml0dGVzdC5weQpAQCAtMTIyLDggKzEyMiwxMCBAQCBjbGFz
cyBMYXlvdXRUZXN0UnVubmVyVGVzdHModW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICAjIFJl
ZnRlc3RzIGV4cGVjdGVkIHRvIGJlIGltYWdlIG1pc21hdGNoIHNob3VsZCBiZSByZXNwZWN0ZWQg
d2hlbiBwaXhlbF90ZXN0cz1GYWxzZS4KICAgICAgICAgcnVubmVyID0gc2VsZi5fcnVubmVyKCkK
ICAgICAgICAgcnVubmVyLl9vcHRpb25zLnBpeGVsX3Rlc3RzID0gRmFsc2UKKyAgICAgICAgcnVu
bmVyLl9vcHRpb25zLndvcmxkX2xlYWtzID0gRmFsc2UKICAgICAgICAgdGVzdCA9ICdmYWlsdXJl
cy9leHBlY3RlZC9yZWZ0ZXN0Lmh0bWwnCi0gICAgICAgIGV4cGVjdGF0aW9ucyA9IFRlc3RFeHBl
Y3RhdGlvbnMocnVubmVyLl9wb3J0LCB0ZXN0cz1bdGVzdF0pCisgICAgICAgIGxlYWtfdGVzdCA9
ICdmYWlsdXJlcy9leHBlY3RlZC9sZWFrLmh0bWwnCisgICAgICAgIGV4cGVjdGF0aW9ucyA9IFRl
c3RFeHBlY3RhdGlvbnMocnVubmVyLl9wb3J0LCB0ZXN0cz1bdGVzdCwgbGVha190ZXN0XSkKICAg
ICAgICAgZXhwZWN0YXRpb25zLnBhcnNlX2FsbF9leHBlY3RhdGlvbnMoKQogICAgICAgICBydW5u
ZXIuX2V4cGVjdGF0aW9ucyA9IGV4cGVjdGF0aW9ucwogCkBAIC0xMzksNiArMTQxLDEyIEBAIGNs
YXNzIExheW91dFRlc3RSdW5uZXJUZXN0cyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoMCwgcnVuX3Jlc3VsdHMuZXhwZWN0ZWQpCiAgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoMSwgcnVuX3Jlc3VsdHMudW5leHBlY3RlZCkKIAorICAgICAgICBydW5fcmVzdWx0
cyA9IFRlc3RSdW5SZXN1bHRzKGV4cGVjdGF0aW9ucywgMSkKKyAgICAgICAgcmVzdWx0ID0gVGVz
dFJlc3VsdCh0ZXN0X25hbWU9bGVha190ZXN0LCBmYWlsdXJlcz1bXSkKKyAgICAgICAgcnVubmVy
Ll91cGRhdGVfc3VtbWFyeV93aXRoX3Jlc3VsdChydW5fcmVzdWx0cywgcmVzdWx0KQorICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKDEsIHJ1bl9yZXN1bHRzLmV4cGVjdGVkKQorICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKDAsIHJ1bl9yZXN1bHRzLnVuZXhwZWN0ZWQpCisKICAgICBkZWYgdGVzdF9z
ZXJ2ZXJzX3N0YXJ0ZWQoc2VsZik6CiAKICAgICAgICAgZGVmIHN0YXJ0X2h0dHBfc2VydmVyKCk6
CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMv
dGVzdF9leHBlY3RhdGlvbnMucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9tb2RlbHMvdGVzdF9leHBlY3RhdGlvbnMucHkKaW5kZXggYjNhY2M2NzI1YTc0ZTRhM2Y4Yjkz
OGE4ZDBkZjQ4Zjg3ZDY5OWIyMC4uOWE5MDU5ZTFjNTlmYmRkZTdkMjdhMTVkZmEwZjVhOTIxZDU5
Zjc2ZSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9k
ZWxzL3Rlc3RfZXhwZWN0YXRpb25zLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5
b3V0X3Rlc3RzL21vZGVscy90ZXN0X2V4cGVjdGF0aW9ucy5weQpAQCAtNTk4LDggKzU5OCwyMiBA
QCBjbGFzcyBUZXN0RXhwZWN0YXRpb25zTW9kZWwob2JqZWN0KToKICAgICBkZWYgZ2V0X2V4cGVj
dGF0aW9ucyhzZWxmLCB0ZXN0KToKICAgICAgICAgcmV0dXJuIHNlbGYuX3Rlc3RfdG9fZXhwZWN0
YXRpb25zW3Rlc3RdCiAKLSAgICBkZWYgZ2V0X2V4cGVjdGF0aW9uc19zdHJpbmcoc2VsZiwgdGVz
dCk6Ci0gICAgICAgICIiIlJldHVybnMgdGhlIGV4cGVjdGF0b25zIGZvciB0aGUgZ2l2ZW4gdGVz
dCBhcyBhbiB1cHBlcmNhc2Ugc3RyaW5nLgorICAgIGRlZiBnZXRfZXhwZWN0YXRpb25zX29yX3Bh
c3Moc2VsZiwgdGVzdCk6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLmdl
dF9leHBlY3RhdGlvbnModGVzdCkKKyAgICAgICAgZXhjZXB0OgorICAgICAgICAgICAgcmV0dXJu
ICJQQVNTIgorCisgICAgZGVmIGV4cGVjdGF0aW9uc190b19zdHJpbmcoc2VsZiwgZXhwZWN0YXRp
b25zKToKKyAgICAgICAgcmV0dmFsID0gW10KKworICAgICAgICBmb3IgZXhwZWN0YXRpb24gaW4g
ZXhwZWN0YXRpb25zOgorICAgICAgICAgICAgcmV0dmFsLmFwcGVuZChzZWxmLmV4cGVjdGF0aW9u
X3RvX3N0cmluZyhleHBlY3RhdGlvbikpCisKKyAgICAgICAgcmV0dXJuICIgIi5qb2luKHJldHZh
bCkKKworICAgIGRlZiBnZXRfZXhwZWN0YXRpb25zX3N0cmluZyhzZWxmLCB0ZXN0KTogIyBGSVhN
RTogcmVtb3ZlLgorICAgICAgICAiIiJSZXR1cm5zIHRoZSBleHBlY3RhdGlvbnMgZm9yIHRoZSBn
aXZlbiB0ZXN0IGFzIGFuIHVwcGVyY2FzZSBzdHJpbmcuCiAgICAgICAgIElmIHRoZXJlIGFyZSBu
byBleHBlY3RhdGlvbnMgZm9yIHRoZSB0ZXN0LCB0aGVuICJQQVNTIiBpcyByZXR1cm5lZC4iIiIK
ICAgICAgICAgdHJ5OgogICAgICAgICAgICAgZXhwZWN0YXRpb25zID0gc2VsZi5nZXRfZXhwZWN0
YXRpb25zKHRlc3QpCkBAIC05NjUsMTQgKzk3OSwxNiBAQCBjbGFzcyBUZXN0RXhwZWN0YXRpb25z
KG9iamVjdCk6CiAgICAgZGVmIGdldF9yZWJhc2VsaW5pbmdfZmFpbHVyZXMoc2VsZik6CiAgICAg
ICAgIHJldHVybiBzZWxmLl9tb2RlbC5nZXRfdGVzdF9zZXQoUkVCQVNFTElORSkKIAotICAgIGRl
ZiBtYXRjaGVzX2FuX2V4cGVjdGVkX3Jlc3VsdChzZWxmLCB0ZXN0LCByZXN1bHQsIHBpeGVsX3Rl
c3RzX2FyZV9lbmFibGVkLCB3b3JsZF9sZWFrc19hcmVfZW5hYmxlZCk6Ci0gICAgICAgIGV4cGVj
dGVkX3Jlc3VsdHMgPSBzZWxmLl9tb2RlbC5nZXRfZXhwZWN0YXRpb25zKHRlc3QpCisgICAgZGVm
IGZpbHRlcmVkX2V4cGVjdGF0aW9uc19mb3JfdGVzdChzZWxmLCB0ZXN0LCBwaXhlbF90ZXN0c19h
cmVfZW5hYmxlZCwgd29ybGRfbGVha3NfYXJlX2VuYWJsZWQpOiAjIEZJWE1FOiB1bml0IHRlc3Qu
CisgICAgICAgIGV4cGVjdGVkX3Jlc3VsdHMgPSBzZWxmLl9tb2RlbC5nZXRfZXhwZWN0YXRpb25z
X29yX3Bhc3ModGVzdCkKICAgICAgICAgaWYgbm90IHBpeGVsX3Rlc3RzX2FyZV9lbmFibGVkOgog
ICAgICAgICAgICAgZXhwZWN0ZWRfcmVzdWx0cyA9IHNlbGYucmVtb3ZlX3BpeGVsX2ZhaWx1cmVz
KGV4cGVjdGVkX3Jlc3VsdHMpCi0KICAgICAgICAgaWYgbm90IHdvcmxkX2xlYWtzX2FyZV9lbmFi
bGVkOgogICAgICAgICAgICAgZXhwZWN0ZWRfcmVzdWx0cyA9IHNlbGYucmVtb3ZlX2xlYWtfZmFp
bHVyZXMoZXhwZWN0ZWRfcmVzdWx0cykKKyAgICAgICAgICAgIAorICAgICAgICByZXR1cm4gZXhw
ZWN0ZWRfcmVzdWx0cwogCisgICAgZGVmIG1hdGNoZXNfYW5fZXhwZWN0ZWRfcmVzdWx0KHNlbGYs
IHRlc3QsIHJlc3VsdCwgZXhwZWN0ZWRfcmVzdWx0cyk6CiAgICAgICAgIHJldHVybiBzZWxmLnJl
c3VsdF93YXNfZXhwZWN0ZWQocmVzdWx0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBleHBlY3RlZF9yZXN1bHRzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzZWxmLmlzX3JlYmFzZWxpbmluZyh0ZXN0KSwKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X2V4cGVjdGF0aW9uc191bml0dGVzdC5w
eSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X2V4cGVj
dGF0aW9uc191bml0dGVzdC5weQppbmRleCA0ZDNmMGI2Njc2YmEzMDMzNmQyZjMzZGQyYzMxMGQ4
OTg3ZTRkY2VlLi4zMGFkYWJjYzIzMTk3NDdmMTA2ODEzNDBkNGI5ZWRmMGIxZTdhMjNiIDEwMDY0
NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVzdF9l
eHBlY3RhdGlvbnNfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvbW9kZWxzL3Rlc3RfZXhwZWN0YXRpb25zX3VuaXR0ZXN0LnB5CkBAIC0yMzQsNyAr
MjM0LDggQEAgY2xhc3MgTWlzY1Rlc3RzKEJhc2UpOgogCiAgICAgZGVmIHRlc3RfcGl4ZWxfdGVz
dHNfZmxhZyhzZWxmKToKICAgICAgICAgZGVmIG1hdGNoKHRlc3QsIHJlc3VsdCwgcGl4ZWxfdGVz
dHNfZW5hYmxlZCk6Ci0gICAgICAgICAgICByZXR1cm4gc2VsZi5fZXhwLm1hdGNoZXNfYW5fZXhw
ZWN0ZWRfcmVzdWx0KHRlc3QsIHJlc3VsdCwgcGl4ZWxfdGVzdHNfZW5hYmxlZCwgRmFsc2UpCisg
ICAgICAgICAgICBleHBlY3RhdGlvbnMgPSBzZWxmLl9leHAuZmlsdGVyZWRfZXhwZWN0YXRpb25z
X2Zvcl90ZXN0KHRlc3QsIHBpeGVsX3Rlc3RzX2VuYWJsZWQsIEZhbHNlKQorICAgICAgICAgICAg
cmV0dXJuIHNlbGYuX2V4cC5tYXRjaGVzX2FuX2V4cGVjdGVkX3Jlc3VsdCh0ZXN0LCByZXN1bHQs
IGV4cGVjdGF0aW9ucykKIAogICAgICAgICBzZWxmLnBhcnNlX2V4cChzZWxmLmdldF9iYXNpY19l
eHBlY3RhdGlvbnMoKSkKICAgICAgICAgcGl4ZWxfdGVzdHNfZW5hYmxlZCA9IFRydWUKQEAgLTI1
MCw3ICsyNTEsOCBAQCBjbGFzcyBNaXNjVGVzdHMoQmFzZSk6CiAKICAgICBkZWYgdGVzdF93b3Js
ZF9sZWFrc19mbGFnKHNlbGYpOgogICAgICAgICBkZWYgbWF0Y2godGVzdCwgcmVzdWx0LCBwaXhl
bF90ZXN0c19lbmFibGVkLCB3b3JsZF9sZWFrc19lbmFibGVkKToKLSAgICAgICAgICAgIHJldHVy
biBzZWxmLl9leHAubWF0Y2hlc19hbl9leHBlY3RlZF9yZXN1bHQodGVzdCwgcmVzdWx0LCBwaXhl
bF90ZXN0c19lbmFibGVkLCB3b3JsZF9sZWFrc19lbmFibGVkKQorICAgICAgICAgICAgZXhwZWN0
YXRpb25zID0gc2VsZi5fZXhwLmZpbHRlcmVkX2V4cGVjdGF0aW9uc19mb3JfdGVzdCh0ZXN0LCBw
aXhlbF90ZXN0c19lbmFibGVkLCB3b3JsZF9sZWFrc19lbmFibGVkKQorICAgICAgICAgICAgcmV0
dXJuIHNlbGYuX2V4cC5tYXRjaGVzX2FuX2V4cGVjdGVkX3Jlc3VsdCh0ZXN0LCByZXN1bHQsIGV4
cGVjdGF0aW9ucykKIAogICAgICAgICBwaXhlbF90ZXN0c19lbmFibGVkID0gVHJ1ZQogICAgICAg
ICBwaXhlbF90ZXN0c19kaXNhYmxlZCA9IEZhbHNlCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVzdF9ydW5fcmVzdWx0cy5weSBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X3J1bl9yZXN1bHRzLnB5
CmluZGV4IDQzNzBmZGRjNjcwOWM5Y2YxNGJlOTdiYTE4NzkyZTY2ODFiMWQwMGUuLjBlMmI4ZDJj
NmUxMDY0YjRhNzNiOGI1Nzc1YzUyMzBlOWQwYWEyN2UgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X3J1bl9yZXN1bHRzLnB5CisrKyBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X3J1bl9yZXN1
bHRzLnB5CkBAIC0yMzMsNyArMjMzLDExIEBAIGRlZiBzdW1tYXJpemVfcmVzdWx0cyhwb3J0X29i
aiwgZXhwZWN0YXRpb25zLCBpbml0aWFsX3Jlc3VsdHMsIHJldHJ5X3Jlc3VsdHMsIGVuCiAgICAg
ICAgICMgTm90ZSB0aGF0IGlmIGEgdGVzdCBjcmFzaGVkIGluIHRoZSBvcmlnaW5hbCBydW4sIHdl
IGlnbm9yZQogICAgICAgICAjIHdoZXRoZXIgb3Igbm90IGl0IGNyYXNoZWQgd2hlbiB3ZSByZXRy
aWVkIGl0IChpZiB3ZSByZXRyaWVkIGl0KSwKICAgICAgICAgIyBhbmQgYWx3YXlzIGNvbnNpZGVy
IHRoZSByZXN1bHQgbm90IGZsYWt5LgotICAgICAgICBleHBlY3RlZCA9IGV4cGVjdGF0aW9ucy5t
b2RlbCgpLmdldF9leHBlY3RhdGlvbnNfc3RyaW5nKHRlc3RfbmFtZSkKKyAgICAgICAgcGl4ZWxf
dGVzdHNfZW5hYmxlZCA9IGVuYWJsZWRfcGl4ZWxfdGVzdHNfaW5fcmV0cnkgb3IgcG9ydF9vYmou
X29wdGlvbnMucGl4ZWxfdGVzdHMgb3IgYm9vbChyZXN1bHQucmVmdGVzdF90eXBlKQorICAgICAg
ICB0ZXN0X2V4cGVjdGF0aW9uID0gZXhwZWN0YXRpb25zLmZpbHRlcmVkX2V4cGVjdGF0aW9uc19m
b3JfdGVzdCh0ZXN0X25hbWUsIHBpeGVsX3Rlc3RzX2VuYWJsZWQsIHBvcnRfb2JqLl9vcHRpb25z
LndvcmxkX2xlYWtzKQorICAgICAgICBleHBlY3RlZCA9IGV4cGVjdGF0aW9ucy5tb2RlbCgpLmV4
cGVjdGF0aW9uc190b19zdHJpbmcodGVzdF9leHBlY3RhdGlvbikKKworICAgICAgICAjIGV4cGVj
dGVkID0gZXhwZWN0YXRpb25zLm1vZGVsKCkuZ2V0X2V4cGVjdGF0aW9uc19zdHJpbmcodGVzdF9u
YW1lKQogICAgICAgICByZXN1bHRfdHlwZSA9IHJlc3VsdC50eXBlCiAgICAgICAgIGFjdHVhbCA9
IFtrZXl3b3Jkc1tyZXN1bHRfdHlwZV1dCiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X3J1bl9yZXN1bHRzX3VuaXR0ZXN0LnB5IGIv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfcnVuX3Jlc3Vs
dHNfdW5pdHRlc3QucHkKaW5kZXggY2JkYTE5OTgwNjVhM2M3YjdjOTc2ODkwYzAzM2RhNDFlODU2
YzJiOS4uODE5OGViZDEwOTJmZmI2NWY3OTg4NjllNDkzNzU3YjRkZDhlMzkyZCAxMDA2NDQKLS0t
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfcnVuX3Jl
c3VsdHNfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvbW9kZWxzL3Rlc3RfcnVuX3Jlc3VsdHNfdW5pdHRlc3QucHkKQEAgLTEzNCwxNSArMTM0LDI4
IEBAIGNsYXNzIFN1bW1hcml6ZWRSZXN1bHRzVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAKICAg
ICBkZWYgdGVzdF9zdm5fcmV2aXNpb24oc2VsZik6CiAgICAgICAgIHNlbGYucG9ydC5fb3B0aW9u
cy5idWlsZGVyX25hbWUgPSAnZHVtbXkgYnVpbGRlcicKKyAgICAgICAgc2VsZi5wb3J0Ll9vcHRp
b25zLnBpeGVsX3Rlc3RzID0gRmFsc2UKKyAgICAgICAgc2VsZi5wb3J0Ll9vcHRpb25zLndvcmxk
X2xlYWtzID0gRmFsc2UKICAgICAgICAgc3VtbWFyeSA9IHN1bW1hcml6ZWRfcmVzdWx0cyhzZWxm
LnBvcnQsIGV4cGVjdGVkPUZhbHNlLCBwYXNzaW5nPUZhbHNlLCBmbGFreT1GYWxzZSkKICAgICAg
ICAgc2VsZi5hc3NlcnROb3RFcXVhbHMoc3VtbWFyeVsncmV2aXNpb24nXSwgJycpCiAKICAgICBk
ZWYgdGVzdF9zdW1tYXJpemVkX3Jlc3VsdHNfd29udGZpeChzZWxmKToKICAgICAgICAgc2VsZi5w
b3J0Ll9vcHRpb25zLmJ1aWxkZXJfbmFtZSA9ICdkdW1teSBidWlsZGVyJworICAgICAgICBzZWxm
LnBvcnQuX29wdGlvbnMucGl4ZWxfdGVzdHMgPSBGYWxzZQorICAgICAgICBzZWxmLnBvcnQuX29w
dGlvbnMud29ybGRfbGVha3MgPSBGYWxzZQogICAgICAgICBzdW1tYXJ5ID0gc3VtbWFyaXplZF9y
ZXN1bHRzKHNlbGYucG9ydCwgZXhwZWN0ZWQ9RmFsc2UsIHBhc3Npbmc9RmFsc2UsIGZsYWt5PUZh
bHNlKQogICAgICAgICBzZWxmLmFzc2VydFRydWUoc3VtbWFyeVsndGVzdHMnXVsnZmFpbHVyZXMn
XVsnZXhwZWN0ZWQnXVsnaGFuZy5odG1sJ11bJ3dvbnRmaXgnXSkKIAogICAgIGRlZiB0ZXN0X3N1
bW1hcml6ZWRfcmVzdWx0c19pbmNsdWRlX3Bhc3NlcyhzZWxmKToKICAgICAgICAgc2VsZi5wb3J0
Ll9vcHRpb25zLmJ1aWxkZXJfbmFtZSA9ICdkdW1teSBidWlsZGVyJworICAgICAgICBzZWxmLnBv
cnQuX29wdGlvbnMucGl4ZWxfdGVzdHMgPSBGYWxzZQorICAgICAgICBzZWxmLnBvcnQuX29wdGlv
bnMud29ybGRfbGVha3MgPSBGYWxzZQogICAgICAgICBzdW1tYXJ5ID0gc3VtbWFyaXplZF9yZXN1
bHRzKHNlbGYucG9ydCwgZXhwZWN0ZWQ9RmFsc2UsIHBhc3Npbmc9VHJ1ZSwgZmxha3k9RmFsc2Us
IGluY2x1ZGVfcGFzc2VzPVRydWUpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3VtbWFyeVsn
dGVzdHMnXVsncGFzc2VzJ11bJ3RleHQuaHRtbCddWydleHBlY3RlZCddLCAnUEFTUycpCisKKyAg
ICBkZWYgdGVzdF9zdW1tYXJpemVkX3Jlc3VsdHNfd29ybGRfbGVha3NfZGlzYWJsZWQoc2VsZik6
CisgICAgICAgIHNlbGYucG9ydC5fb3B0aW9ucy5idWlsZGVyX25hbWUgPSAnZHVtbXkgYnVpbGRl
cicKKyAgICAgICAgc2VsZi5wb3J0Ll9vcHRpb25zLnBpeGVsX3Rlc3RzID0gRmFsc2UKKyAgICAg
ICAgc2VsZi5wb3J0Ll9vcHRpb25zLndvcmxkX2xlYWtzID0gRmFsc2UKKyAgICAgICAgc3VtbWFy
eSA9IHN1bW1hcml6ZWRfcmVzdWx0cyhzZWxmLnBvcnQsIGV4cGVjdGVkPUZhbHNlLCBwYXNzaW5n
PVRydWUsIGZsYWt5PUZhbHNlLCBpbmNsdWRlX3Bhc3Nlcz1UcnVlKQorICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKHN1bW1hcnlbJ3Rlc3RzJ11bJ2ZhaWx1cmVzJ11bJ2V4cGVjdGVkJ11bJ2xlYWsu
aHRtbCddWydleHBlY3RlZCddLCAnUEFTUycpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy92aWV3cy9wcmludGluZy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL3ZpZXdzL3ByaW50aW5nLnB5CmluZGV4IDBkZWM5YzgxYWM0ZDQ3
ODVkMTBhNzY3MzAzZjczMTk4NzNhMzlhMmUuLjkxOWEyMWQwNzJhNzI5MmEwYjVmMTllMTY2ZTJh
ZTZkMTE1M2YyYzcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL3ZpZXdzL3ByaW50aW5nLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL3ZpZXdzL3ByaW50aW5nLnB5CkBAIC0zMTgsNiArMzE4LDE2IEBAIGNsYXNzIFByaW50
ZXIob2JqZWN0KToKICAgICAgICAgICAgIHdyaXRlID0gc2VsZi5fbWV0ZXIud3JpdGVfdGhyb3R0
bGVkX3VwZGF0ZQogICAgICAgICB3cml0ZShzZWxmLl90ZXN0X3N0YXR1c19saW5lKHRlc3RfbmFt
ZSwgc3VmZml4KSkKIAorICAgIGRlZiBwcmludF90ZXN0X3Jlc3VsdF9jaGFuZ2VkKHNlbGYsIHJl
c3VsdCwgZXhwZWN0ZWQsIGV4cF9zdHIsIGdvdF9zdHIpOgorICAgICAgICByZXN1bHRfbWVzc2Fn
ZSA9IHNlbGYuX3Jlc3VsdF9tZXNzYWdlKHJlc3VsdC50eXBlLCByZXN1bHQuZmFpbHVyZXMsIGV4
cGVjdGVkLCBzZWxmLl9vcHRpb25zLnZlcmJvc2UpCisKKyAgICAgICAgaWYgc2VsZi5fb3B0aW9u
cy5kZXRhaWxzOgorICAgICAgICAgICAgc2VsZi5fcHJpbnRfdGVzdF90cmFjZShyZXN1bHQsIGV4
cF9zdHIsIGdvdF9zdHIpCisgICAgICAgIGVsaWYgKHNlbGYuX29wdGlvbnMudmVyYm9zZSBhbmQg
bm90IHNlbGYuX29wdGlvbnMuZGVidWdfcnd0X2xvZ2dpbmcpIG9yIG5vdCBleHBlY3RlZDoKKyAg
ICAgICAgICAgIHNlbGYud3JpdGVsbihzZWxmLl90ZXN0X3N0YXR1c19saW5lKHJlc3VsdC50ZXN0
X25hbWUsIHJlc3VsdF9tZXNzYWdlLCB0cnVuY2F0ZT1GYWxzZSkpCisgICAgICAgIGVsc2U6Cisg
ICAgICAgICAgICBzZWxmLl9tZXRlci53cml0ZV90aHJvdHRsZWRfdXBkYXRlKHNlbGYuX3Rlc3Rf
c3RhdHVzX2xpbmUocmVzdWx0LnRlc3RfbmFtZSwgcmVzdWx0X21lc3NhZ2UsIHRydW5jYXRlPUZh
bHNlKSkKKwogICAgIGRlZiBwcmludF9maW5pc2hlZF90ZXN0KHNlbGYsIHJlc3VsdCwgZXhwZWN0
ZWQsIGV4cF9zdHIsIGdvdF9zdHIpOgogICAgICAgICB0ZXN0X25hbWUgPSByZXN1bHQudGVzdF9u
YW1lCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwppbmRleCA0NTE3YjExODJjZTNhMTU1YjVlODEzN2JiODdmMDg1OWJjZWYwNGMyLi4z
NGQ3NGIyNjgxZDRlYjE3M2E5OGVlY2NlYzY2OWMxZmQyOWNhYWFlIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTIgQEAKKzIwMTgtMDgtMzEgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+
CisKKyAgICAgICAgcnVuLXdlYmtpdC10ZXN0cyBwcmludHMgY29uZnVzaW5nIG1lc3NhZ2VzIHdo
ZW4gdGVzdCBleHBlY3RhdGlvbnMgbGlzdCByZXN1bHRzIHRoYXQgYXJlIG5vdCBjb21wYXRpYmxl
IHdpdGggdGhlIHJ1biBvcHRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xODkyMTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIFRlc3RFeHBlY3RhdGlvbnM6CisKIDIwMTgtMDgtMzEgIFNpbW9uIEZy
YXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgQ2xlYW4gdXAgVGVzdEV4
cGVjdGF0aW9ucyBzbyB0aGF0IC4vVG9vbHMvU2NyaXB0cy9saW50LXRlc3QtZXhwZWN0YXRpb25z
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMv
VGVzdEV4cGVjdGF0aW9ucwppbmRleCAzMTkzYmEzMThmN2MyZTc4NzY3NjQxYjU5OTIyZThjNGM2
ODA1ZTJlLi42ZGMwOGI5ZTUwMjRjNDk2NGMzYzVjMDg2MWViZTIwMzhiM2JlNWM2IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL1Rlc3RF
eHBlY3RhdGlvbnMKQEAgLTIyNDEsMyArMjI0MSw1IEBAIHdlYmtpdC5vcmcvYi8xODUzMDggbGVn
YWN5LWFuaW1hdGlvbi1lbmdpbmUvYW5pbWF0aW9ucy9jb21iby10cmFuc2Zvcm0tdHJhbnNsYXRl
CiAKICMgVGhpcyB0ZXN0IGlzIGN1cnJlbnRseSBvbmx5IHJlbGV2YW50IG9uIG1hYy13azIKIGZh
c3QvY2FudmFzL3dlYmdsL2NvbnRleHQtdXBkYXRlLW9uLWRpc3BsYXktY29uZmlndXJhdGlvbi5o
dG1sIFsgU2tpcCBdCisKK2Zhc3QvY3NzL3VzZXItZHJhZy1ub25lLmh0bWwgWyBMZWFrIF0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>348894</attachid>
            <date>2018-09-04 21:57:34 -0700</date>
            <delta_ts>2018-09-06 16:25:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-189219-20180904215733.patch</filename>
            <type>text/plain</type>
            <size>23926</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1NjU2CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOWZjNzg4ZGM0MzA0MWM4OGMyMTcwOGRmYzhmYTJkNTI0
MDU5NzcyMy4uNThhN2RmZTc2NWE1NzQ4YWRkOTVmMWIxN2VjYzFiNWUxYTRiNjIwZiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5
IEBACisyMDE4LTA5LTA0ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgor
CisgICAgICAgIHJ1bi13ZWJraXQtdGVzdHMgcHJpbnRzIGNvbmZ1c2luZyBtZXNzYWdlcyB3aGVu
IHRlc3QgZXhwZWN0YXRpb25zIGxpc3QgcmVzdWx0cyB0aGF0IGFyZSBub3QgY29tcGF0aWJsZSB3
aXRoIHRoZSBydW4gb3B0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTg5MjE5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisgICAgICAgIAorICAgICAgICBJZiB5b3UgY2FsbCBydW4td2Via2l0LXRlc3RzIHdpdGhvdXQg
LS1waXhlbC10ZXN0cywgYW5kIGEgbm9uLXJlZiB0ZXN0IGlzIG1hcmtlZCBhcyBJbWFnZU9ubHlG
YWlsdXJlLAorICAgICAgICBpdCB3aWxsIGJlIHJlcG9ydGVkIGFzIHVuZXhwZWN0ZWRseSBwYXNz
aW5nLiBUaGlzIGlzIG1vcmUgY29uZnVzaW5nIGlmIHlvdSBydW4gd2l0aG91dCAtLXdvcmxkLWxl
YWtzLCB5ZXQKKyAgICAgICAgdGVzdHMgYXJlIG1hcmtlZCBhcyBbIExlYWsgXSBpbiBUZXN0RXhw
ZWN0YXRpb25zLgorICAgICAgICAKKyAgICAgICAgRml4IGJ5IGZpbHRlcmluZyBvdXQgZXhwZWN0
YXRpb25zIHRoYXQgZG9uJ3QgYXBwbHkgZ2l2ZW4gdGhlIHJ1biBvcHRpb25zLiBTbyB3aXRob3V0
IC0tcGl4ZWwtdGVzdHMsCisgICAgICAgIGEgbm9uLXJlZiBJbWFnZU9ubHlGYWlsdXJlIGJlY29t
ZXMgYSBQYXNzLCBhbmQgd2l0aG91dCAtLXdvcmxkLWxlYWtzLCBhIExlYWsgYmVjb21lcyBhIFBh
c3MuCisgICAgICAgIAorICAgICAgICBBZGQgdmFyaW91cyB1bml0IHRlc3RzIHRvIHRlc3QgdGhl
IHZhcmlvdXMgY29tYmluYXRpb25zLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvY29udHJvbGxlcnMvbGF5b3V0X3Rlc3RfcnVubmVyLnB5OgorICAgICAgICAoTGF5
b3V0VGVzdFJ1bm5lci5fdXBkYXRlX3N1bW1hcnlfd2l0aF9yZXN1bHQpOgorICAgICAgICAoTGF5
b3V0VGVzdFJ1bm5lci5fYW5ub3RhdGVfcmVzdWx0c193aXRoX2FkZGl0aW9uYWxfZmFpbHVyZXMp
OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL2xh
eW91dF90ZXN0X3J1bm5lcl91bml0dGVzdC5weToKKyAgICAgICAgKExheW91dFRlc3RSdW5uZXJU
ZXN0cy50ZXN0X3VwZGF0ZV9zdW1tYXJ5X3dpdGhfcmVzdWx0KToKKyAgICAgICAgKiBTY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVzdF9leHBlY3RhdGlvbnMucHk6CisgICAg
ICAgIChUZXN0RXhwZWN0YXRpb25zTW9kZWwuZ2V0X2V4cGVjdGF0aW9uc19vcl9wYXNzKToKKyAg
ICAgICAgKFRlc3RFeHBlY3RhdGlvbnNNb2RlbCk6CisgICAgICAgIChUZXN0RXhwZWN0YXRpb25z
TW9kZWwuZXhwZWN0YXRpb25zX3RvX3N0cmluZyk6CisgICAgICAgIChUZXN0RXhwZWN0YXRpb25z
TW9kZWwuZ2V0X2V4cGVjdGF0aW9uc19zdHJpbmcpOgorICAgICAgICAoVGVzdEV4cGVjdGF0aW9u
cy5maWx0ZXJlZF9leHBlY3RhdGlvbnNfZm9yX3Rlc3QpOgorICAgICAgICAoVGVzdEV4cGVjdGF0
aW9ucyk6CisgICAgICAgIChUZXN0RXhwZWN0YXRpb25zLm1hdGNoZXNfYW5fZXhwZWN0ZWRfcmVz
dWx0KToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVz
dF9leHBlY3RhdGlvbnNfdW5pdHRlc3QucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfcnVuX3Jlc3VsdHMucHk6CisgICAgICAgIChzdW1tYXJp
emVfcmVzdWx0cyk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9k
ZWxzL3Rlc3RfcnVuX3Jlc3VsdHNfdW5pdHRlc3QucHk6CisgICAgICAgIChzdW1tYXJpemVkX3Jl
c3VsdHMpOgorICAgICAgICAoU3VtbWFyaXplZFJlc3VsdHNUZXN0LnNldFVwKToKKyAgICAgICAg
KFN1bW1hcml6ZWRSZXN1bHRzVGVzdC50ZXN0X3N1bW1hcml6ZWRfcmVzdWx0c19pbmNsdWRlX3Bh
c3Nlcyk6CisgICAgICAgIChTdW1tYXJpemVkUmVzdWx0c1Rlc3QpOgorICAgICAgICAoU3VtbWFy
aXplZFJlc3VsdHNUZXN0LnRlc3Rfc3VtbWFyaXplZF9yZXN1bHRzX3dvcmxkX2xlYWtzX2Rpc2Fi
bGVkKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0
X3Rlc3RzX2ludGVncmF0aW9udGVzdC5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy92aWV3cy9idWlsZGJvdF9yZXN1bHRzX3VuaXR0ZXN0LnB5OgorICAgICAgICAo
QnVpbGRCb3RQcmludGVyVGVzdHMudGVzdF9wcmludF91bmV4cGVjdGVkX3Jlc3VsdHMpOgorICAg
ICAgICAoQnVpbGRCb3RQcmludGVyVGVzdHMudGVzdF9wcmludF91bmV4cGVjdGVkX3Jlc3VsdHNf
d2l0aF9vcHRpb25zKToKKyAgICAgICAgKEJ1aWxkQm90UHJpbnRlclRlc3RzLnRlc3RfcHJpbnRf
cmVzdWx0cyk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9wb3J0L3Rlc3QucHk6CisgICAg
ICAgICh1bml0X3Rlc3RfbGlzdCk6CisKIDIwMTgtMDktMDQgIERvbiBPbG1zdGVhZCAgPGRvbi5v
bG1zdGVhZEBzb255LmNvbT4KIAogICAgICAgICBBZGQgZ2VuZXJpYyBlbnRyeXBvaW50IGFuZCBy
dW4gbG9vcCBpbiBUZXN0V2ViS2l0QVBJCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9sYXlvdXRfdGVzdF9ydW5uZXIucHkgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9sYXlvdXRfdGVzdF9y
dW5uZXIucHkKaW5kZXggNGIxOTk3NGQ5ODc0ZGQ4MjZkM2FiNWQ2ZGIyYjgwZWVkOTlkMTQxMi4u
NTA2YmQwNjg5MDcyNWI0YjA3ZGM1NDdkMTU3OTUyZTZlMjkwYmYwMyAxMDA2NDQKLS0tIGEvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvbGF5b3V0X3Rlc3Rf
cnVubmVyLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRy
b2xsZXJzL2xheW91dF90ZXN0X3J1bm5lci5weQpAQCAtMTgyLDggKzE4Miw5IEBAIGNsYXNzIExh
eW91dFRlc3RSdW5uZXIob2JqZWN0KToKICAgICAgICAgICAgIGV4cF9zdHIgPSBnb3Rfc3RyID0g
J1NLSVAnCiAgICAgICAgICAgICBleHBlY3RlZCA9IFRydWUKICAgICAgICAgZWxzZToKLSAgICAg
ICAgICAgIGV4cGVjdGVkID0gc2VsZi5fZXhwZWN0YXRpb25zLm1hdGNoZXNfYW5fZXhwZWN0ZWRf
cmVzdWx0KHJlc3VsdC50ZXN0X25hbWUsIHJlc3VsdC50eXBlLCBzZWxmLl9vcHRpb25zLnBpeGVs
X3Rlc3RzIG9yIHJlc3VsdC5yZWZ0ZXN0X3R5cGUsIHNlbGYuX29wdGlvbnMud29ybGRfbGVha3Mp
Ci0gICAgICAgICAgICBleHBfc3RyID0gc2VsZi5fZXhwZWN0YXRpb25zLm1vZGVsKCkuZ2V0X2V4
cGVjdGF0aW9uc19zdHJpbmcocmVzdWx0LnRlc3RfbmFtZSkKKyAgICAgICAgICAgIGV4cGVjdGF0
aW9ucyA9IHNlbGYuX2V4cGVjdGF0aW9ucy5maWx0ZXJlZF9leHBlY3RhdGlvbnNfZm9yX3Rlc3Qo
cmVzdWx0LnRlc3RfbmFtZSwgc2VsZi5fb3B0aW9ucy5waXhlbF90ZXN0cyBvciBib29sKHJlc3Vs
dC5yZWZ0ZXN0X3R5cGUpLCBzZWxmLl9vcHRpb25zLndvcmxkX2xlYWtzKQorICAgICAgICAgICAg
ZXhwZWN0ZWQgPSBzZWxmLl9leHBlY3RhdGlvbnMubWF0Y2hlc19hbl9leHBlY3RlZF9yZXN1bHQo
cmVzdWx0LnRlc3RfbmFtZSwgcmVzdWx0LnR5cGUsIGV4cGVjdGF0aW9ucykKKyAgICAgICAgICAg
IGV4cF9zdHIgPSBzZWxmLl9leHBlY3RhdGlvbnMubW9kZWwoKS5leHBlY3RhdGlvbnNfdG9fc3Ry
aW5nKGV4cGVjdGF0aW9ucykKICAgICAgICAgICAgIGdvdF9zdHIgPSBzZWxmLl9leHBlY3RhdGlv
bnMubW9kZWwoKS5leHBlY3RhdGlvbl90b19zdHJpbmcocmVzdWx0LnR5cGUpCiAKICAgICAgICAg
cnVuX3Jlc3VsdHMuYWRkKHJlc3VsdCwgZXhwZWN0ZWQsIHNlbGYuX3Rlc3RfaXNfc2xvdyhyZXN1
bHQudGVzdF9uYW1lKSkKQEAgLTE5OCw4ICsxOTksOSBAQCBjbGFzcyBMYXlvdXRUZXN0UnVubmVy
KG9iamVjdCk6CiAgICAgICAgICAgICAjIFdoZW4gcnVubmluZyBhIGNodW5rICgtLXJ1bi1jaHVu
ayksIHJlc3VsdHNfYnlfbmFtZSBjb250YWlucyBhbGwgdGhlIHRlc3RzLCBidXQgKGNvbmZ1c2lu
Z2x5KSBhbGxfdGVzdHMgb25seSBjb250YWlucyB0aG9zZSBpbiB0aGUgY2h1bmsgdGhhdCB3YXMg
cnVuLAogICAgICAgICAgICAgIyBhbmQgd2UgZG9uJ3Qgd2FudCB0byBtb2RpZnkgdGhlIHJlc3Vs
dHMgb2YgYSB0ZXN0IHRoYXQgZGlkbid0IHJ1bi4gZXhpc3RpbmdfcmVzdWx0LnRlc3RfbnVtYmVy
IGlzIG9ubHkgbm9uLU5vbmUgZm9yIHRlc3RzIHRoYXQgcmFuLgogICAgICAgICAgICAgaWYgZXhp
c3RpbmdfcmVzdWx0IGFuZCBleGlzdGluZ19yZXN1bHQudGVzdF9udW1iZXIgaXMgbm90IE5vbmU6
Ci0gICAgICAgICAgICAgICAgd2FzX2V4cGVjdGVkID0gc2VsZi5fZXhwZWN0YXRpb25zLm1hdGNo
ZXNfYW5fZXhwZWN0ZWRfcmVzdWx0KG5ld19yZXN1bHQudGVzdF9uYW1lLCBleGlzdGluZ19yZXN1
bHQudHlwZSwgc2VsZi5fb3B0aW9ucy5waXhlbF90ZXN0cyBvciBleGlzdGluZ19yZXN1bHQucmVm
dGVzdF90eXBlLCBzZWxmLl9vcHRpb25zLndvcmxkX2xlYWtzKQotICAgICAgICAgICAgICAgIG5v
d19leHBlY3RlZCA9IHNlbGYuX2V4cGVjdGF0aW9ucy5tYXRjaGVzX2FuX2V4cGVjdGVkX3Jlc3Vs
dChuZXdfcmVzdWx0LnRlc3RfbmFtZSwgbmV3X3Jlc3VsdC50eXBlLCBzZWxmLl9vcHRpb25zLnBp
eGVsX3Rlc3RzIG9yIG5ld19yZXN1bHQucmVmdGVzdF90eXBlLCBzZWxmLl9vcHRpb25zLndvcmxk
X2xlYWtzKQorICAgICAgICAgICAgICAgIGV4cGVjdGF0aW9ucyA9IHNlbGYuX2V4cGVjdGF0aW9u
cy5maWx0ZXJlZF9leHBlY3RhdGlvbnNfZm9yX3Rlc3QobmV3X3Jlc3VsdC50ZXN0X25hbWUsIHNl
bGYuX29wdGlvbnMucGl4ZWxfdGVzdHMgb3IgYm9vbChuZXdfcmVzdWx0LnJlZnRlc3RfdHlwZSks
IHNlbGYuX29wdGlvbnMud29ybGRfbGVha3MpCisgICAgICAgICAgICAgICAgd2FzX2V4cGVjdGVk
ID0gc2VsZi5fZXhwZWN0YXRpb25zLm1hdGNoZXNfYW5fZXhwZWN0ZWRfcmVzdWx0KG5ld19yZXN1
bHQudGVzdF9uYW1lLCBleGlzdGluZ19yZXN1bHQudHlwZSwgZXhwZWN0YXRpb25zKQorICAgICAg
ICAgICAgICAgIG5vd19leHBlY3RlZCA9IHNlbGYuX2V4cGVjdGF0aW9ucy5tYXRjaGVzX2FuX2V4
cGVjdGVkX3Jlc3VsdChuZXdfcmVzdWx0LnRlc3RfbmFtZSwgbmV3X3Jlc3VsdC50eXBlLCBleHBl
Y3RhdGlvbnMpCiAgICAgICAgICAgICAgICAgcnVuX3Jlc3VsdHMuY2hhbmdlX3Jlc3VsdF90b19m
YWlsdXJlKGV4aXN0aW5nX3Jlc3VsdCwgbmV3X3Jlc3VsdCwgd2FzX2V4cGVjdGVkLCBub3dfZXhw
ZWN0ZWQpCiAKICAgICBkZWYgc3RhcnRfc2VydmVycyhzZWxmKToKZGlmZiAtLWdpdCBhL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL2xheW91dF90ZXN0X3J1
bm5lcl91bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2Nv
bnRyb2xsZXJzL2xheW91dF90ZXN0X3J1bm5lcl91bml0dGVzdC5weQppbmRleCBmZmY5NmRmZTRk
ZTg4NTYxMTIzZTk2OTE4MDQ5NDhlY2IwZDgzNWM5Li5iODBjYTQ1NDg1YTMyOTRkMDJlMjQ1NWU1
ZWYzZGZjMTc0M2QxODlmIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9jb250cm9sbGVycy9sYXlvdXRfdGVzdF9ydW5uZXJfdW5pdHRlc3QucHkKKysrIGIv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvbGF5b3V0X3Rl
c3RfcnVubmVyX3VuaXR0ZXN0LnB5CkBAIC0xMjIsOCArMTIyLDEwIEBAIGNsYXNzIExheW91dFRl
c3RSdW5uZXJUZXN0cyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgICMgUmVmdGVzdHMgZXhw
ZWN0ZWQgdG8gYmUgaW1hZ2UgbWlzbWF0Y2ggc2hvdWxkIGJlIHJlc3BlY3RlZCB3aGVuIHBpeGVs
X3Rlc3RzPUZhbHNlLgogICAgICAgICBydW5uZXIgPSBzZWxmLl9ydW5uZXIoKQogICAgICAgICBy
dW5uZXIuX29wdGlvbnMucGl4ZWxfdGVzdHMgPSBGYWxzZQorICAgICAgICBydW5uZXIuX29wdGlv
bnMud29ybGRfbGVha3MgPSBGYWxzZQogICAgICAgICB0ZXN0ID0gJ2ZhaWx1cmVzL2V4cGVjdGVk
L3JlZnRlc3QuaHRtbCcKLSAgICAgICAgZXhwZWN0YXRpb25zID0gVGVzdEV4cGVjdGF0aW9ucyhy
dW5uZXIuX3BvcnQsIHRlc3RzPVt0ZXN0XSkKKyAgICAgICAgbGVha190ZXN0ID0gJ2ZhaWx1cmVz
L2V4cGVjdGVkL2xlYWsuaHRtbCcKKyAgICAgICAgZXhwZWN0YXRpb25zID0gVGVzdEV4cGVjdGF0
aW9ucyhydW5uZXIuX3BvcnQsIHRlc3RzPVt0ZXN0LCBsZWFrX3Rlc3RdKQogICAgICAgICBleHBl
Y3RhdGlvbnMucGFyc2VfYWxsX2V4cGVjdGF0aW9ucygpCiAgICAgICAgIHJ1bm5lci5fZXhwZWN0
YXRpb25zID0gZXhwZWN0YXRpb25zCiAKQEAgLTEzOSw2ICsxNDEsMTIgQEAgY2xhc3MgTGF5b3V0
VGVzdFJ1bm5lclRlc3RzKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbCgwLCBydW5fcmVzdWx0cy5leHBlY3RlZCkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgx
LCBydW5fcmVzdWx0cy51bmV4cGVjdGVkKQogCisgICAgICAgIHJ1bl9yZXN1bHRzID0gVGVzdFJ1
blJlc3VsdHMoZXhwZWN0YXRpb25zLCAxKQorICAgICAgICByZXN1bHQgPSBUZXN0UmVzdWx0KHRl
c3RfbmFtZT1sZWFrX3Rlc3QsIGZhaWx1cmVzPVtdKQorICAgICAgICBydW5uZXIuX3VwZGF0ZV9z
dW1tYXJ5X3dpdGhfcmVzdWx0KHJ1bl9yZXN1bHRzLCByZXN1bHQpCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoMSwgcnVuX3Jlc3VsdHMuZXhwZWN0ZWQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoMCwgcnVuX3Jlc3VsdHMudW5leHBlY3RlZCkKKwogICAgIGRlZiB0ZXN0X3NlcnZlcnNfc3Rh
cnRlZChzZWxmKToKIAogICAgICAgICBkZWYgc3RhcnRfaHR0cF9zZXJ2ZXIoKToKZGlmZiAtLWdp
dCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X2V4cGVj
dGF0aW9ucy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90
ZXN0X2V4cGVjdGF0aW9ucy5weQppbmRleCBiM2FjYzY3MjVhNzRlNGEzZjhiOTM4YThkMGRmNDhm
ODdkNjk5YjIwLi5lNzBjNjVjZGExMDkzYzA4ZDYxMWM4NDdiYzk2YmZjMzk1YTcyNmZjIDEwMDY0
NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVzdF9l
eHBlY3RhdGlvbnMucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
bW9kZWxzL3Rlc3RfZXhwZWN0YXRpb25zLnB5CkBAIC01OTgsOCArNTk4LDIyIEBAIGNsYXNzIFRl
c3RFeHBlY3RhdGlvbnNNb2RlbChvYmplY3QpOgogICAgIGRlZiBnZXRfZXhwZWN0YXRpb25zKHNl
bGYsIHRlc3QpOgogICAgICAgICByZXR1cm4gc2VsZi5fdGVzdF90b19leHBlY3RhdGlvbnNbdGVz
dF0KIAorICAgIGRlZiBnZXRfZXhwZWN0YXRpb25zX29yX3Bhc3Moc2VsZiwgdGVzdCk6CisgICAg
ICAgIHRyeToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLmdldF9leHBlY3RhdGlvbnModGVzdCkK
KyAgICAgICAgZXhjZXB0OgorICAgICAgICAgICAgcmV0dXJuIHNldChbUEFTU10pCisKKyAgICBk
ZWYgZXhwZWN0YXRpb25zX3RvX3N0cmluZyhzZWxmLCBleHBlY3RhdGlvbnMpOgorICAgICAgICBy
ZXR2YWwgPSBbXQorCisgICAgICAgIGZvciBleHBlY3RhdGlvbiBpbiBleHBlY3RhdGlvbnM6Cisg
ICAgICAgICAgICByZXR2YWwuYXBwZW5kKHNlbGYuZXhwZWN0YXRpb25fdG9fc3RyaW5nKGV4cGVj
dGF0aW9uKSkKKworICAgICAgICByZXR1cm4gIiAiLmpvaW4ocmV0dmFsKQorCiAgICAgZGVmIGdl
dF9leHBlY3RhdGlvbnNfc3RyaW5nKHNlbGYsIHRlc3QpOgotICAgICAgICAiIiJSZXR1cm5zIHRo
ZSBleHBlY3RhdG9ucyBmb3IgdGhlIGdpdmVuIHRlc3QgYXMgYW4gdXBwZXJjYXNlIHN0cmluZy4K
KyAgICAgICAgIiIiUmV0dXJucyB0aGUgZXhwZWN0YXRpb25zIGZvciB0aGUgZ2l2ZW4gdGVzdCBh
cyBhbiB1cHBlcmNhc2Ugc3RyaW5nLgogICAgICAgICBJZiB0aGVyZSBhcmUgbm8gZXhwZWN0YXRp
b25zIGZvciB0aGUgdGVzdCwgdGhlbiAiUEFTUyIgaXMgcmV0dXJuZWQuIiIiCiAgICAgICAgIHRy
eToKICAgICAgICAgICAgIGV4cGVjdGF0aW9ucyA9IHNlbGYuZ2V0X2V4cGVjdGF0aW9ucyh0ZXN0
KQpAQCAtOTY1LDE0ICs5NzksMTYgQEAgY2xhc3MgVGVzdEV4cGVjdGF0aW9ucyhvYmplY3QpOgog
ICAgIGRlZiBnZXRfcmViYXNlbGluaW5nX2ZhaWx1cmVzKHNlbGYpOgogICAgICAgICByZXR1cm4g
c2VsZi5fbW9kZWwuZ2V0X3Rlc3Rfc2V0KFJFQkFTRUxJTkUpCiAKLSAgICBkZWYgbWF0Y2hlc19h
bl9leHBlY3RlZF9yZXN1bHQoc2VsZiwgdGVzdCwgcmVzdWx0LCBwaXhlbF90ZXN0c19hcmVfZW5h
YmxlZCwgd29ybGRfbGVha3NfYXJlX2VuYWJsZWQpOgotICAgICAgICBleHBlY3RlZF9yZXN1bHRz
ID0gc2VsZi5fbW9kZWwuZ2V0X2V4cGVjdGF0aW9ucyh0ZXN0KQorICAgIGRlZiBmaWx0ZXJlZF9l
eHBlY3RhdGlvbnNfZm9yX3Rlc3Qoc2VsZiwgdGVzdCwgcGl4ZWxfdGVzdHNfYXJlX2VuYWJsZWQs
IHdvcmxkX2xlYWtzX2FyZV9lbmFibGVkKToKKyAgICAgICAgZXhwZWN0ZWRfcmVzdWx0cyA9IHNl
bGYuX21vZGVsLmdldF9leHBlY3RhdGlvbnNfb3JfcGFzcyh0ZXN0KQogICAgICAgICBpZiBub3Qg
cGl4ZWxfdGVzdHNfYXJlX2VuYWJsZWQ6CiAgICAgICAgICAgICBleHBlY3RlZF9yZXN1bHRzID0g
c2VsZi5yZW1vdmVfcGl4ZWxfZmFpbHVyZXMoZXhwZWN0ZWRfcmVzdWx0cykKLQogICAgICAgICBp
ZiBub3Qgd29ybGRfbGVha3NfYXJlX2VuYWJsZWQ6CiAgICAgICAgICAgICBleHBlY3RlZF9yZXN1
bHRzID0gc2VsZi5yZW1vdmVfbGVha19mYWlsdXJlcyhleHBlY3RlZF9yZXN1bHRzKQogCisgICAg
ICAgIHJldHVybiBleHBlY3RlZF9yZXN1bHRzCisKKyAgICBkZWYgbWF0Y2hlc19hbl9leHBlY3Rl
ZF9yZXN1bHQoc2VsZiwgdGVzdCwgcmVzdWx0LCBleHBlY3RlZF9yZXN1bHRzKToKICAgICAgICAg
cmV0dXJuIHNlbGYucmVzdWx0X3dhc19leHBlY3RlZChyZXN1bHQsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkX3Jlc3VsdHMsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHNlbGYuaXNfcmViYXNlbGluaW5nKHRlc3QpLApkaWZmIC0tZ2l0IGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfZXhwZWN0YXRp
b25zX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9k
ZWxzL3Rlc3RfZXhwZWN0YXRpb25zX3VuaXR0ZXN0LnB5CmluZGV4IDRkM2YwYjY2NzZiYTMwMzM2
ZDJmMzNkZDJjMzEwZDg5ODdlNGRjZWUuLjMwYWRhYmNjMjMxOTc0N2YxMDY4MTM0MGQ0YjllZGYw
YjFlN2EyM2IgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L21vZGVscy90ZXN0X2V4cGVjdGF0aW9uc191bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVzdF9leHBlY3RhdGlvbnNfdW5pdHRlc3Qu
cHkKQEAgLTIzNCw3ICsyMzQsOCBAQCBjbGFzcyBNaXNjVGVzdHMoQmFzZSk6CiAKICAgICBkZWYg
dGVzdF9waXhlbF90ZXN0c19mbGFnKHNlbGYpOgogICAgICAgICBkZWYgbWF0Y2godGVzdCwgcmVz
dWx0LCBwaXhlbF90ZXN0c19lbmFibGVkKToKLSAgICAgICAgICAgIHJldHVybiBzZWxmLl9leHAu
bWF0Y2hlc19hbl9leHBlY3RlZF9yZXN1bHQodGVzdCwgcmVzdWx0LCBwaXhlbF90ZXN0c19lbmFi
bGVkLCBGYWxzZSkKKyAgICAgICAgICAgIGV4cGVjdGF0aW9ucyA9IHNlbGYuX2V4cC5maWx0ZXJl
ZF9leHBlY3RhdGlvbnNfZm9yX3Rlc3QodGVzdCwgcGl4ZWxfdGVzdHNfZW5hYmxlZCwgRmFsc2Up
CisgICAgICAgICAgICByZXR1cm4gc2VsZi5fZXhwLm1hdGNoZXNfYW5fZXhwZWN0ZWRfcmVzdWx0
KHRlc3QsIHJlc3VsdCwgZXhwZWN0YXRpb25zKQogCiAgICAgICAgIHNlbGYucGFyc2VfZXhwKHNl
bGYuZ2V0X2Jhc2ljX2V4cGVjdGF0aW9ucygpKQogICAgICAgICBwaXhlbF90ZXN0c19lbmFibGVk
ID0gVHJ1ZQpAQCAtMjUwLDcgKzI1MSw4IEBAIGNsYXNzIE1pc2NUZXN0cyhCYXNlKToKIAogICAg
IGRlZiB0ZXN0X3dvcmxkX2xlYWtzX2ZsYWcoc2VsZik6CiAgICAgICAgIGRlZiBtYXRjaCh0ZXN0
LCByZXN1bHQsIHBpeGVsX3Rlc3RzX2VuYWJsZWQsIHdvcmxkX2xlYWtzX2VuYWJsZWQpOgotICAg
ICAgICAgICAgcmV0dXJuIHNlbGYuX2V4cC5tYXRjaGVzX2FuX2V4cGVjdGVkX3Jlc3VsdCh0ZXN0
LCByZXN1bHQsIHBpeGVsX3Rlc3RzX2VuYWJsZWQsIHdvcmxkX2xlYWtzX2VuYWJsZWQpCisgICAg
ICAgICAgICBleHBlY3RhdGlvbnMgPSBzZWxmLl9leHAuZmlsdGVyZWRfZXhwZWN0YXRpb25zX2Zv
cl90ZXN0KHRlc3QsIHBpeGVsX3Rlc3RzX2VuYWJsZWQsIHdvcmxkX2xlYWtzX2VuYWJsZWQpCisg
ICAgICAgICAgICByZXR1cm4gc2VsZi5fZXhwLm1hdGNoZXNfYW5fZXhwZWN0ZWRfcmVzdWx0KHRl
c3QsIHJlc3VsdCwgZXhwZWN0YXRpb25zKQogCiAgICAgICAgIHBpeGVsX3Rlc3RzX2VuYWJsZWQg
PSBUcnVlCiAgICAgICAgIHBpeGVsX3Rlc3RzX2Rpc2FibGVkID0gRmFsc2UKZGlmZiAtLWdpdCBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X3J1bl9yZXN1
bHRzLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3Rf
cnVuX3Jlc3VsdHMucHkKaW5kZXggNDM3MGZkZGM2NzA5YzljZjE0YmU5N2JhMTg3OTJlNjY4MWIx
ZDAwZS4uNTY4MzAwMzhiYzFiMjJkYmYzZGUwMzU4OTBhYTNiMGU5ZDU4NTRjNSAxMDA2NDQKLS0t
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfcnVuX3Jl
c3VsdHMucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9kZWxz
L3Rlc3RfcnVuX3Jlc3VsdHMucHkKQEAgLTIzMyw3ICsyMzMsMTAgQEAgZGVmIHN1bW1hcml6ZV9y
ZXN1bHRzKHBvcnRfb2JqLCBleHBlY3RhdGlvbnMsIGluaXRpYWxfcmVzdWx0cywgcmV0cnlfcmVz
dWx0cywgZW4KICAgICAgICAgIyBOb3RlIHRoYXQgaWYgYSB0ZXN0IGNyYXNoZWQgaW4gdGhlIG9y
aWdpbmFsIHJ1biwgd2UgaWdub3JlCiAgICAgICAgICMgd2hldGhlciBvciBub3QgaXQgY3Jhc2hl
ZCB3aGVuIHdlIHJldHJpZWQgaXQgKGlmIHdlIHJldHJpZWQgaXQpLAogICAgICAgICAjIGFuZCBh
bHdheXMgY29uc2lkZXIgdGhlIHJlc3VsdCBub3QgZmxha3kuCi0gICAgICAgIGV4cGVjdGVkID0g
ZXhwZWN0YXRpb25zLm1vZGVsKCkuZ2V0X2V4cGVjdGF0aW9uc19zdHJpbmcodGVzdF9uYW1lKQor
ICAgICAgICBwaXhlbF90ZXN0c19lbmFibGVkID0gZW5hYmxlZF9waXhlbF90ZXN0c19pbl9yZXRy
eSBvciBwb3J0X29iai5fb3B0aW9ucy5waXhlbF90ZXN0cyBvciBib29sKHJlc3VsdC5yZWZ0ZXN0
X3R5cGUpCisgICAgICAgIHRlc3RfZXhwZWN0YXRpb24gPSBleHBlY3RhdGlvbnMuZmlsdGVyZWRf
ZXhwZWN0YXRpb25zX2Zvcl90ZXN0KHRlc3RfbmFtZSwgcGl4ZWxfdGVzdHNfZW5hYmxlZCwgcG9y
dF9vYmouX29wdGlvbnMud29ybGRfbGVha3MpCisgICAgICAgIGV4cGVjdGVkID0gZXhwZWN0YXRp
b25zLm1vZGVsKCkuZXhwZWN0YXRpb25zX3RvX3N0cmluZyh0ZXN0X2V4cGVjdGF0aW9uKQorCiAg
ICAgICAgIHJlc3VsdF90eXBlID0gcmVzdWx0LnR5cGUKICAgICAgICAgYWN0dWFsID0gW2tleXdv
cmRzW3Jlc3VsdF90eXBlXV0KIApAQCAtMjY3LDEwICsyNzAsNiBAQCBkZWYgc3VtbWFyaXplX3Jl
c3VsdHMocG9ydF9vYmosIGV4cGVjdGF0aW9ucywgaW5pdGlhbF9yZXN1bHRzLCByZXRyeV9yZXN1
bHRzLCBlbgogICAgICAgICAgICAgaWYgdGVzdF9uYW1lIGluIGluaXRpYWxfcmVzdWx0cy51bmV4
cGVjdGVkX3Jlc3VsdHNfYnlfbmFtZToKICAgICAgICAgICAgICAgICBudW1fbWlzc2luZyArPSAx
CiAgICAgICAgICAgICAgICAgdGVzdF9kaWN0WydyZXBvcnQnXSA9ICdNSVNTSU5HJwotICAgICAg
ICBlbGlmIHJlc3VsdF90eXBlID09IHRlc3RfZXhwZWN0YXRpb25zLkxFQUs6Ci0gICAgICAgICAg
ICBpZiB0ZXN0X25hbWUgaW4gaW5pdGlhbF9yZXN1bHRzLnVuZXhwZWN0ZWRfcmVzdWx0c19ieV9u
YW1lOgotICAgICAgICAgICAgICAgIG51bV9yZWdyZXNzaW9ucyArPSAxCi0gICAgICAgICAgICAg
ICAgdGVzdF9kaWN0WydyZXBvcnQnXSA9ICdSRUdSRVNTSU9OJwogICAgICAgICBlbGlmIHRlc3Rf
bmFtZSBpbiBpbml0aWFsX3Jlc3VsdHMudW5leHBlY3RlZF9yZXN1bHRzX2J5X25hbWU6CiAgICAg
ICAgICAgICBpZiByZXRyeV9yZXN1bHRzIGFuZCB0ZXN0X25hbWUgbm90IGluIHJldHJ5X3Jlc3Vs
dHMudW5leHBlY3RlZF9yZXN1bHRzX2J5X25hbWU6CiAgICAgICAgICAgICAgICAgYWN0dWFsLmV4
dGVuZChleHBlY3RhdGlvbnMubW9kZWwoKS5nZXRfZXhwZWN0YXRpb25zX3N0cmluZyh0ZXN0X25h
bWUpLnNwbGl0KCIgIikpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9tb2RlbHMvdGVzdF9ydW5fcmVzdWx0c191bml0dGVzdC5weSBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X3J1bl9yZXN1bHRzX3VuaXR0ZXN0
LnB5CmluZGV4IGNiZGExOTk4MDY1YTNjN2I3Yzk3Njg5MGMwMzNkYTQxZTg1NmMyYjkuLjI4Mzhl
MjlkZTVhZDMyOGNkNDc0OWI1YjAyNjMwNTdmMTE2Y2NlOTUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X3J1bl9yZXN1bHRzX3VuaXR0
ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90
ZXN0X3J1bl9yZXN1bHRzX3VuaXR0ZXN0LnB5CkBAIC0zMyw2ICszMyw3IEBAIGZyb20gd2Via2l0
cHkubGF5b3V0X3Rlc3RzLm1vZGVscyBpbXBvcnQgdGVzdF9leHBlY3RhdGlvbnMKIGZyb20gd2Vi
a2l0cHkubGF5b3V0X3Rlc3RzLm1vZGVscyBpbXBvcnQgdGVzdF9mYWlsdXJlcwogZnJvbSB3ZWJr
aXRweS5sYXlvdXRfdGVzdHMubW9kZWxzIGltcG9ydCB0ZXN0X3Jlc3VsdHMKIGZyb20gd2Via2l0
cHkubGF5b3V0X3Rlc3RzLm1vZGVscyBpbXBvcnQgdGVzdF9ydW5fcmVzdWx0cworZnJvbSB3ZWJr
aXRweS50b29sLm1vY2t0b29sIGltcG9ydCBNb2NrT3B0aW9ucwogCiAKIGRlZiBnZXRfcmVzdWx0
KHRlc3RfbmFtZSwgcmVzdWx0X3R5cGU9dGVzdF9leHBlY3RhdGlvbnMuUEFTUywgcnVuX3RpbWU9
MCk6CkBAIC02NSwxOCArNjYsMzggQEAgZGVmIHN1bW1hcml6ZWRfcmVzdWx0cyhwb3J0LCBleHBl
Y3RlZCwgcGFzc2luZywgZmxha3ksIGluY2x1ZGVfcGFzc2VzPUZhbHNlKToKICAgICAgICAgaW5p
dGlhbF9yZXN1bHRzLmFkZChnZXRfcmVzdWx0KCdmYWlsdXJlcy9leHBlY3RlZC9hdWRpby5odG1s
JywgdGVzdF9leHBlY3RhdGlvbnMuQVVESU8pLCBleHBlY3RlZCwgdGVzdF9pc19zbG93KQogICAg
ICAgICBpbml0aWFsX3Jlc3VsdHMuYWRkKGdldF9yZXN1bHQoJ2ZhaWx1cmVzL2V4cGVjdGVkL3Rp
bWVvdXQuaHRtbCcsIHRlc3RfZXhwZWN0YXRpb25zLlRJTUVPVVQpLCBleHBlY3RlZCwgdGVzdF9p
c19zbG93KQogICAgICAgICBpbml0aWFsX3Jlc3VsdHMuYWRkKGdldF9yZXN1bHQoJ2ZhaWx1cmVz
L2V4cGVjdGVkL2NyYXNoLmh0bWwnLCB0ZXN0X2V4cGVjdGF0aW9ucy5DUkFTSCksIGV4cGVjdGVk
LCB0ZXN0X2lzX3Nsb3cpCi0gICAgICAgIGluaXRpYWxfcmVzdWx0cy5hZGQoZ2V0X3Jlc3VsdCgn
ZmFpbHVyZXMvZXhwZWN0ZWQvbGVhay5odG1sJywgdGVzdF9leHBlY3RhdGlvbnMuTEVBSyksIGV4
cGVjdGVkLCB0ZXN0X2lzX3Nsb3cpCisKKyAgICAgICAgaWYgcG9ydC5fb3B0aW9ucy5waXhlbF90
ZXN0czoKKyAgICAgICAgICAgIGluaXRpYWxfcmVzdWx0cy5hZGQoZ2V0X3Jlc3VsdCgnZmFpbHVy
ZXMvZXhwZWN0ZWQvcGl4ZWwtZmFpbC5odG1sJywgdGVzdF9leHBlY3RhdGlvbnMuSU1BR0UpLCBl
eHBlY3RlZCwgdGVzdF9pc19zbG93KQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgaW5pdGlh
bF9yZXN1bHRzLmFkZChnZXRfcmVzdWx0KCdmYWlsdXJlcy9leHBlY3RlZC9waXhlbC1mYWlsLmh0
bWwnLCB0ZXN0X2V4cGVjdGF0aW9ucy5QQVNTKSwgZXhwZWN0ZWQsIHRlc3RfaXNfc2xvdykKKwor
ICAgICAgICBpZiBwb3J0Ll9vcHRpb25zLndvcmxkX2xlYWtzOgorICAgICAgICAgICAgaW5pdGlh
bF9yZXN1bHRzLmFkZChnZXRfcmVzdWx0KCdmYWlsdXJlcy9leHBlY3RlZC9sZWFrLmh0bWwnLCB0
ZXN0X2V4cGVjdGF0aW9ucy5MRUFLKSwgZXhwZWN0ZWQsIHRlc3RfaXNfc2xvdykKKyAgICAgICAg
ZWxzZToKKyAgICAgICAgICAgIGluaXRpYWxfcmVzdWx0cy5hZGQoZ2V0X3Jlc3VsdCgnZmFpbHVy
ZXMvZXhwZWN0ZWQvbGVhay5odG1sJywgdGVzdF9leHBlY3RhdGlvbnMuUEFTUyksIGV4cGVjdGVk
LCB0ZXN0X2lzX3Nsb3cpCisKICAgICBlbGlmIHBhc3Npbmc6CiAgICAgICAgIGluaXRpYWxfcmVz
dWx0cy5hZGQoZ2V0X3Jlc3VsdCgncGFzc2VzL3RleHQuaHRtbCcpLCBleHBlY3RlZCwgdGVzdF9p
c19zbG93KQogICAgICAgICBpbml0aWFsX3Jlc3VsdHMuYWRkKGdldF9yZXN1bHQoJ2ZhaWx1cmVz
L2V4cGVjdGVkL2F1ZGlvLmh0bWwnKSwgZXhwZWN0ZWQsIHRlc3RfaXNfc2xvdykKICAgICAgICAg
aW5pdGlhbF9yZXN1bHRzLmFkZChnZXRfcmVzdWx0KCdmYWlsdXJlcy9leHBlY3RlZC90aW1lb3V0
Lmh0bWwnKSwgZXhwZWN0ZWQsIHRlc3RfaXNfc2xvdykKICAgICAgICAgaW5pdGlhbF9yZXN1bHRz
LmFkZChnZXRfcmVzdWx0KCdmYWlsdXJlcy9leHBlY3RlZC9jcmFzaC5odG1sJyksIGV4cGVjdGVk
LCB0ZXN0X2lzX3Nsb3cpCi0gICAgICAgIGluaXRpYWxfcmVzdWx0cy5hZGQoZ2V0X3Jlc3VsdCgn
ZmFpbHVyZXMvZXhwZWN0ZWQvbGVhay5odG1sJyksIGV4cGVjdGVkLCB0ZXN0X2lzX3Nsb3cpCisK
KyAgICAgICAgaWYgcG9ydC5fb3B0aW9ucy5waXhlbF90ZXN0czoKKyAgICAgICAgICAgIGluaXRp
YWxfcmVzdWx0cy5hZGQoZ2V0X3Jlc3VsdCgnZmFpbHVyZXMvZXhwZWN0ZWQvcGl4ZWwtZmFpbC5o
dG1sJyksIGV4cGVjdGVkLCB0ZXN0X2lzX3Nsb3cpCisgICAgICAgIGVsc2U6CisgICAgICAgICAg
ICBpbml0aWFsX3Jlc3VsdHMuYWRkKGdldF9yZXN1bHQoJ2ZhaWx1cmVzL2V4cGVjdGVkL3BpeGVs
LWZhaWwuaHRtbCcsIHRlc3RfZXhwZWN0YXRpb25zLklNQUdFKSwgZXhwZWN0ZWQsIHRlc3RfaXNf
c2xvdykKKworICAgICAgICBpZiBwb3J0Ll9vcHRpb25zLndvcmxkX2xlYWtzOgorICAgICAgICAg
ICAgaW5pdGlhbF9yZXN1bHRzLmFkZChnZXRfcmVzdWx0KCdmYWlsdXJlcy9leHBlY3RlZC9sZWFr
Lmh0bWwnKSwgZXhwZWN0ZWQsIHRlc3RfaXNfc2xvdykKKyAgICAgICAgZWxzZToKKyAgICAgICAg
ICAgIGluaXRpYWxfcmVzdWx0cy5hZGQoZ2V0X3Jlc3VsdCgnZmFpbHVyZXMvZXhwZWN0ZWQvbGVh
ay5odG1sJywgdGVzdF9leHBlY3RhdGlvbnMuUEFTUyksIGV4cGVjdGVkLCB0ZXN0X2lzX3Nsb3cp
CiAgICAgZWxzZToKICAgICAgICAgaW5pdGlhbF9yZXN1bHRzLmFkZChnZXRfcmVzdWx0KCdwYXNz
ZXMvdGV4dC5odG1sJywgdGVzdF9leHBlY3RhdGlvbnMuVElNRU9VVCksIGV4cGVjdGVkLCB0ZXN0
X2lzX3Nsb3cpCiAgICAgICAgIGluaXRpYWxfcmVzdWx0cy5hZGQoZ2V0X3Jlc3VsdCgnZmFpbHVy
ZXMvZXhwZWN0ZWQvYXVkaW8uaHRtbCcsIHRlc3RfZXhwZWN0YXRpb25zLkFVRElPKSwgZXhwZWN0
ZWQsIHRlc3RfaXNfc2xvdykKICAgICAgICAgaW5pdGlhbF9yZXN1bHRzLmFkZChnZXRfcmVzdWx0
KCdmYWlsdXJlcy9leHBlY3RlZC90aW1lb3V0Lmh0bWwnLCB0ZXN0X2V4cGVjdGF0aW9ucy5DUkFT
SCksIGV4cGVjdGVkLCB0ZXN0X2lzX3Nsb3cpCiAgICAgICAgIGluaXRpYWxfcmVzdWx0cy5hZGQo
Z2V0X3Jlc3VsdCgnZmFpbHVyZXMvZXhwZWN0ZWQvY3Jhc2guaHRtbCcsIHRlc3RfZXhwZWN0YXRp
b25zLlRJTUVPVVQpLCBleHBlY3RlZCwgdGVzdF9pc19zbG93KQorICAgICAgICBpbml0aWFsX3Jl
c3VsdHMuYWRkKGdldF9yZXN1bHQoJ2ZhaWx1cmVzL2V4cGVjdGVkL3BpeGVsLWZhaWwuaHRtbCcs
IHRlc3RfZXhwZWN0YXRpb25zLlRJTUVPVVQpLCBleHBlY3RlZCwgdGVzdF9pc19zbG93KQogICAg
ICAgICBpbml0aWFsX3Jlc3VsdHMuYWRkKGdldF9yZXN1bHQoJ2ZhaWx1cmVzL2V4cGVjdGVkL2xl
YWsuaHRtbCcsIHRlc3RfZXhwZWN0YXRpb25zLkNSQVNIKSwgZXhwZWN0ZWQsIHRlc3RfaXNfc2xv
dykKIAogICAgICAgICAjIHdlIG9ubHkgbGlzdCBoYW5nLmh0bWwgaGVyZSwgc2luY2Ugbm9ybWFs
bHkgdGhpcyBpcyBXb250Rml4CkBAIC04Nyw2ICsxMDgsNyBAQCBkZWYgc3VtbWFyaXplZF9yZXN1
bHRzKHBvcnQsIGV4cGVjdGVkLCBwYXNzaW5nLCBmbGFreSwgaW5jbHVkZV9wYXNzZXM9RmFsc2Up
OgogICAgICAgICByZXRyeV9yZXN1bHRzLmFkZChnZXRfcmVzdWx0KCdwYXNzZXMvdGV4dC5odG1s
JyksIFRydWUsIHRlc3RfaXNfc2xvdykKICAgICAgICAgcmV0cnlfcmVzdWx0cy5hZGQoZ2V0X3Jl
c3VsdCgnZmFpbHVyZXMvZXhwZWN0ZWQvdGltZW91dC5odG1sJyksIFRydWUsIHRlc3RfaXNfc2xv
dykKICAgICAgICAgcmV0cnlfcmVzdWx0cy5hZGQoZ2V0X3Jlc3VsdCgnZmFpbHVyZXMvZXhwZWN0
ZWQvY3Jhc2guaHRtbCcpLCBUcnVlLCB0ZXN0X2lzX3Nsb3cpCisgICAgICAgIHJldHJ5X3Jlc3Vs
dHMuYWRkKGdldF9yZXN1bHQoJ2ZhaWx1cmVzL2V4cGVjdGVkL3BpeGVsLWZhaWwuaHRtbCcpLCBU
cnVlLCB0ZXN0X2lzX3Nsb3cpCiAgICAgICAgIHJldHJ5X3Jlc3VsdHMuYWRkKGdldF9yZXN1bHQo
J2ZhaWx1cmVzL2V4cGVjdGVkL2xlYWsuaHRtbCcpLCBUcnVlLCB0ZXN0X2lzX3Nsb3cpCiAgICAg
ZWxzZToKICAgICAgICAgcmV0cnlfcmVzdWx0cyA9IE5vbmUKQEAgLTEyNiw3ICsxNDgsNyBAQCBj
bGFzcyBJbnRlcnByZXRUZXN0RmFpbHVyZXNUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKIGNsYXNz
IFN1bW1hcml6ZWRSZXN1bHRzVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgZGVmIHNldFVw
KHNlbGYpOgogICAgICAgICBob3N0ID0gTW9ja0hvc3QoaW5pdGlhbGl6ZV9zY21fYnlfZGVmYXVs
dD1GYWxzZSkKLSAgICAgICAgc2VsZi5wb3J0ID0gaG9zdC5wb3J0X2ZhY3RvcnkuZ2V0KHBvcnRf
bmFtZT0ndGVzdCcpCisgICAgICAgIHNlbGYucG9ydCA9IGhvc3QucG9ydF9mYWN0b3J5LmdldChw
b3J0X25hbWU9J3Rlc3QnLCBvcHRpb25zPU1vY2tPcHRpb25zKGh0dHA9VHJ1ZSwgcGl4ZWxfdGVz
dHM9RmFsc2UsIHdvcmxkX2xlYWtzPUZhbHNlKSkKIAogICAgIGRlZiB0ZXN0X25vX3N2bl9yZXZp
c2lvbihzZWxmKToKICAgICAgICAgc3VtbWFyeSA9IHN1bW1hcml6ZWRfcmVzdWx0cyhzZWxmLnBv
cnQsIGV4cGVjdGVkPUZhbHNlLCBwYXNzaW5nPUZhbHNlLCBmbGFreT1GYWxzZSkKQEAgLTE0Niwz
ICsxNjgsOCBAQCBjbGFzcyBTdW1tYXJpemVkUmVzdWx0c1Rlc3QodW5pdHRlc3QuVGVzdENhc2Up
OgogICAgICAgICBzZWxmLnBvcnQuX29wdGlvbnMuYnVpbGRlcl9uYW1lID0gJ2R1bW15IGJ1aWxk
ZXInCiAgICAgICAgIHN1bW1hcnkgPSBzdW1tYXJpemVkX3Jlc3VsdHMoc2VsZi5wb3J0LCBleHBl
Y3RlZD1GYWxzZSwgcGFzc2luZz1UcnVlLCBmbGFreT1GYWxzZSwgaW5jbHVkZV9wYXNzZXM9VHJ1
ZSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdW1tYXJ5Wyd0ZXN0cyddWydwYXNzZXMnXVsn
dGV4dC5odG1sJ11bJ2V4cGVjdGVkJ10sICdQQVNTJykKKworICAgIGRlZiB0ZXN0X3N1bW1hcml6
ZWRfcmVzdWx0c193b3JsZF9sZWFrc19kaXNhYmxlZChzZWxmKToKKyAgICAgICAgc2VsZi5wb3J0
Ll9vcHRpb25zLmJ1aWxkZXJfbmFtZSA9ICdkdW1teSBidWlsZGVyJworICAgICAgICBzdW1tYXJ5
ID0gc3VtbWFyaXplZF9yZXN1bHRzKHNlbGYucG9ydCwgZXhwZWN0ZWQ9RmFsc2UsIHBhc3Npbmc9
VHJ1ZSwgZmxha3k9RmFsc2UsIGluY2x1ZGVfcGFzc2VzPVRydWUpCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoc3VtbWFyeVsndGVzdHMnXVsnZmFpbHVyZXMnXVsnZXhwZWN0ZWQnXVsnbGVhay5o
dG1sJ11bJ2V4cGVjdGVkJ10sICdQQVNTJykKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHNfaW50ZWdyYXRpb250ZXN0LnB5IGIv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0c19pbnRl
Z3JhdGlvbnRlc3QucHkKaW5kZXggZjA0Y2I1OGNkNjgwYWUxM2U4MDZmZTNlZDJiNjhlNDUwNmQ0
ZWVkNS4uYmI1N2E1NmNhZjEzNmFkZDhiNzZiZjRlODdlZTU5NWNjZGEwNmVhMiAxMDA2NDQKLS0t
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0c19p
bnRlZ3JhdGlvbnRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvcnVuX3dlYmtpdF90ZXN0c19pbnRlZ3JhdGlvbnRlc3QucHkKQEAgLTU0LDcgKzU0LDYgQEAg
ZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMubW9kZWxzLnRlc3RfcnVuX3Jlc3VsdHMgaW1wb3J0
IElOVEVSUlVQVEVEX0VYSVRfU1RBVFUKIGZyb20gd2Via2l0cHkucG9ydCBpbXBvcnQgUG9ydAog
ZnJvbSB3ZWJraXRweS5wb3J0IGltcG9ydCB0ZXN0CiBmcm9tIHdlYmtpdHB5LnRlc3Quc2tpcCBp
bXBvcnQgc2tpcF9pZgotZnJvbSB3ZWJraXRweS50b29sLm1vY2t0b29sIGltcG9ydCBNb2NrT3B0
aW9ucwogCiAKIGRlZiBwYXJzZV9hcmdzKGV4dHJhX2FyZ3M9Tm9uZSwgdGVzdHNfaW5jbHVkZWQ9
RmFsc2UsIG5ld19yZXN1bHRzPUZhbHNlLCBwcmludF9ub3RoaW5nPVRydWUpOgpkaWZmIC0tZ2l0
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvdmlld3MvYnVpbGRib3RfcmVz
dWx0c191bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Zp
ZXdzL2J1aWxkYm90X3Jlc3VsdHNfdW5pdHRlc3QucHkKaW5kZXggOGU1MzZhMzI3NWRlMzliYzQ3
YjE4Y2E2NWQ5MDQ0ZGRiY2FhOGRlZi4uNTU4YjBiZDAwN2JjNTMwZmQ1ODdlNTBhMDE0YWJhNjg4
NDA3OWVmYiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
dmlld3MvYnVpbGRib3RfcmVzdWx0c191bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy92aWV3cy9idWlsZGJvdF9yZXN1bHRzX3VuaXR0ZXN0LnB5CkBA
IC0zMCw2ICszMCw3IEBAIGltcG9ydCBTdHJpbmdJTwogaW1wb3J0IHVuaXR0ZXN0CiAKIGZyb20g
d2Via2l0cHkuY29tbW9uLmhvc3RfbW9jayBpbXBvcnQgTW9ja0hvc3QKK2Zyb20gd2Via2l0cHku
dG9vbC5tb2NrdG9vbCBpbXBvcnQgTW9ja09wdGlvbnMKIAogZnJvbSB3ZWJraXRweS5sYXlvdXRf
dGVzdHMubW9kZWxzIGltcG9ydCB0ZXN0X2V4cGVjdGF0aW9ucwogZnJvbSB3ZWJraXRweS5sYXlv
dXRfdGVzdHMubW9kZWxzIGltcG9ydCB0ZXN0X2ZhaWx1cmVzCkBAIC01Miw3ICs1Myw3IEBAIGNs
YXNzIEJ1aWxkQm90UHJpbnRlclRlc3RzKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgcmV0
dXJuIHByaW50ZXIsIHN0cmVhbQogCiAgICAgZGVmIHRlc3RfcHJpbnRfdW5leHBlY3RlZF9yZXN1
bHRzKHNlbGYpOgotICAgICAgICBwb3J0ID0gTW9ja0hvc3QoKS5wb3J0X2ZhY3RvcnkuZ2V0KCd0
ZXN0JykKKyAgICAgICAgcG9ydCA9IE1vY2tIb3N0KCkucG9ydF9mYWN0b3J5LmdldCgndGVzdCcs
IG9wdGlvbnM9TW9ja09wdGlvbnMocGl4ZWxfdGVzdHM9RmFsc2UsIHdvcmxkX2xlYWtzPUZhbHNl
KSkKICAgICAgICAgcHJpbnRlciwgb3V0ID0gc2VsZi5nZXRfcHJpbnRlcigpCiAKICAgICAgICAg
IyB0ZXN0IGV2ZXJ5dGhpbmcgcnVubmluZyBhcyBleHBlY3RlZApAQCAtODgsOCArODksMzQgQEAg
Y2xhc3MgQnVpbGRCb3RQcmludGVyVGVzdHModW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBw
cmludGVyLnByaW50X3VuZXhwZWN0ZWRfcmVzdWx0cyhzdW1tYXJ5KQogICAgICAgICBzZWxmLmFz
c2VydE5vdEVtcHR5KG91dCkKIAorICAgIGRlZiB0ZXN0X3ByaW50X3VuZXhwZWN0ZWRfcmVzdWx0
c193aXRoX29wdGlvbnMoc2VsZik6CisgICAgICAgIHBvcnQgPSBNb2NrSG9zdCgpLnBvcnRfZmFj
dG9yeS5nZXQoJ3Rlc3QnLCBvcHRpb25zPU1vY2tPcHRpb25zKHBpeGVsX3Rlc3RzPUZhbHNlLCB3
b3JsZF9sZWFrcz1GYWxzZSkpCisKKyAgICAgICAgREFTSEVEX0xJTkUgPSAiLSIgKiA3OCArICJc
biIKKworICAgICAgICBwb3J0Ll9vcHRpb25zLnBpeGVsX3Rlc3RzID0gVHJ1ZQorICAgICAgICBw
b3J0Ll9vcHRpb25zLndvcmxkX2xlYWtzID0gRmFsc2UKKyAgICAgICAgcHJpbnRlciwgb3V0ID0g
c2VsZi5nZXRfcHJpbnRlcigpCisgICAgICAgIHN1bW1hcnkgPSB0ZXN0X3J1bl9yZXN1bHRzX3Vu
aXR0ZXN0LnN1bW1hcml6ZWRfcmVzdWx0cyhwb3J0LCBleHBlY3RlZD1UcnVlLCBwYXNzaW5nPUZh
bHNlLCBmbGFreT1GYWxzZSkKKyAgICAgICAgcHJpbnRlci5wcmludF91bmV4cGVjdGVkX3Jlc3Vs
dHMoc3VtbWFyeSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChvdXQuZ2V0dmFsdWUoKSwgREFT
SEVEX0xJTkUpCisKKyAgICAgICAgcG9ydC5fb3B0aW9ucy5waXhlbF90ZXN0cyA9IEZhbHNlCisg
ICAgICAgIHBvcnQuX29wdGlvbnMud29ybGRfbGVha3MgPSBUcnVlCisgICAgICAgIHByaW50ZXIs
IG91dCA9IHNlbGYuZ2V0X3ByaW50ZXIoKQorICAgICAgICBzdW1tYXJ5ID0gdGVzdF9ydW5fcmVz
dWx0c191bml0dGVzdC5zdW1tYXJpemVkX3Jlc3VsdHMocG9ydCwgZXhwZWN0ZWQ9VHJ1ZSwgcGFz
c2luZz1GYWxzZSwgZmxha3k9RmFsc2UpCisgICAgICAgIHByaW50ZXIucHJpbnRfdW5leHBlY3Rl
ZF9yZXN1bHRzKHN1bW1hcnkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwob3V0LmdldHZhbHVl
KCksIERBU0hFRF9MSU5FKQorCisgICAgICAgIHBvcnQuX29wdGlvbnMucGl4ZWxfdGVzdHMgPSBU
cnVlCisgICAgICAgIHBvcnQuX29wdGlvbnMud29ybGRfbGVha3MgPSBUcnVlCisgICAgICAgIHBy
aW50ZXIsIG91dCA9IHNlbGYuZ2V0X3ByaW50ZXIoKQorICAgICAgICBzdW1tYXJ5ID0gdGVzdF9y
dW5fcmVzdWx0c191bml0dGVzdC5zdW1tYXJpemVkX3Jlc3VsdHMocG9ydCwgZXhwZWN0ZWQ9VHJ1
ZSwgcGFzc2luZz1GYWxzZSwgZmxha3k9RmFsc2UpCisgICAgICAgIHByaW50ZXIucHJpbnRfdW5l
eHBlY3RlZF9yZXN1bHRzKHN1bW1hcnkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwob3V0Lmdl
dHZhbHVlKCksIERBU0hFRF9MSU5FKQorCiAgICAgZGVmIHRlc3RfcHJpbnRfcmVzdWx0cyhzZWxm
KToKLSAgICAgICAgcG9ydCA9IE1vY2tIb3N0KCkucG9ydF9mYWN0b3J5LmdldCgndGVzdCcpCisg
ICAgICAgIHBvcnQgPSBNb2NrSG9zdCgpLnBvcnRfZmFjdG9yeS5nZXQoJ3Rlc3QnLCBvcHRpb25z
PU1vY2tPcHRpb25zKHBpeGVsX3Rlc3RzPUZhbHNlLCB3b3JsZF9sZWFrcz1GYWxzZSkpCiAgICAg
ICAgIHByaW50ZXIsIG91dCA9IHNlbGYuZ2V0X3ByaW50ZXIoKQogICAgICAgICBpbml0aWFsX3Jl
c3VsdHMgPSB0ZXN0X3J1bl9yZXN1bHRzX3VuaXR0ZXN0LnJ1bl9yZXN1bHRzKHBvcnQpCiAgICAg
ICAgIHN1bW1hcnkgPSB0ZXN0X3J1bl9yZXN1bHRzX3VuaXR0ZXN0LnN1bW1hcml6ZWRfcmVzdWx0
cyhwb3J0LCBleHBlY3RlZD1GYWxzZSwgcGFzc2luZz1UcnVlLCBmbGFreT1GYWxzZSkKZGlmZiAt
LWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC90ZXN0LnB5IGIvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9wb3J0L3Rlc3QucHkKaW5kZXggOTZkNzJkZGY0N2NjYjQ3OWY4ZGQ1YmRlNzYx
MDYyMWFiZDk1NGZiYy4uMzFmMzhhOWU5ZGZlMThlZDM0YWFkYWMxM2FlNWZlZTFkZTJlYjcyMyAx
MDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L3Rlc3QucHkKKysrIGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L3Rlc3QucHkKQEAgLTEwMiw3ICsxMDIsNyBAQCBjbGFz
cyBUZXN0TGlzdChvYmplY3QpOgogIwogIyBUaGVzZSBudW1iZXJzIG1heSBuZWVkIHRvIGJlIHVw
ZGF0ZWQgd2hlbmV2ZXIgd2UgYWRkIG9yIGRlbGV0ZSB0ZXN0cy4KICMKLVRPVEFMX1RFU1RTID0g
NzYKK1RPVEFMX1RFU1RTID0gNzcKIFRPVEFMX1NLSVBTID0gOQogVE9UQUxfUkVUUklFUyA9IDE1
CiAKQEAgLTEyNSw2ICsxMjUsOSBAQCBkZWYgdW5pdF90ZXN0X2xpc3QoKToKICAgICB0ZXN0cy5h
ZGQoJ2ZhaWx1cmVzL2V4cGVjdGVkL2ltYWdlLmh0bWwnLAogICAgICAgICAgICAgICBhY3R1YWxf
aW1hZ2U9J2ltYWdlX2ZhaWwtcG5ndEVYdGNoZWNrc3VtXHgwMGNoZWNrc3VtX2ZhaWwnLAogICAg
ICAgICAgICAgICBleHBlY3RlZF9pbWFnZT0naW1hZ2UtcG5ndEVYdGNoZWNrc3VtXHgwMGNoZWNr
c3VtLXBuZycpCisgICAgdGVzdHMuYWRkKCdmYWlsdXJlcy9leHBlY3RlZC9waXhlbC1mYWlsLmh0
bWwnLAorICAgICAgICAgICAgICBhY3R1YWxfaW1hZ2U9J2ltYWdlX2ZhaWwtcG5ndEVYdGNoZWNr
c3VtXHgwMGNoZWNrc3VtX2ZhaWwnLAorICAgICAgICAgICAgICBleHBlY3RlZF9pbWFnZT0naW1h
Z2UtcG5ndEVYdGNoZWNrc3VtXHgwMGNoZWNrc3VtLXBuZycpCiAgICAgdGVzdHMuYWRkKCdmYWls
dXJlcy9leHBlY3RlZC9pbWFnZV9jaGVja3N1bS5odG1sJywKICAgICAgICAgICAgICAgYWN0dWFs
X2NoZWNrc3VtPSdpbWFnZV9jaGVja3N1bV9mYWlsLWNoZWNrc3VtJywKICAgICAgICAgICAgICAg
YWN0dWFsX2ltYWdlPSdpbWFnZV9jaGVja3N1bV9mYWlsLXBuZycpCkBAIC0yOTMsNiArMjk2LDcg
QEAgQnVnKHRlc3QpIGZhaWx1cmVzL2V4cGVjdGVkL2xlYWsuaHRtbCBbIExlYWsgXQogQnVnKHRl
c3QpIGZhaWx1cmVzL2V4cGVjdGVkL2ZsYWt5LWxlYWsuaHRtbCBbIEZhaWx1cmUgTGVhayBdCiBC
dWcodGVzdCkgZmFpbHVyZXMvZXhwZWN0ZWQvbGVha3ktcmVmdGVzdC5odG1sIFsgSW1hZ2VPbmx5
RmFpbHVyZSBMZWFrIF0KIEJ1Zyh0ZXN0KSBmYWlsdXJlcy9leHBlY3RlZC9pbWFnZS5odG1sIFsg
SW1hZ2VPbmx5RmFpbHVyZSBdCitCdWcodGVzdCkgZmFpbHVyZXMvZXhwZWN0ZWQvcGl4ZWwtZmFp
bC5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiBCdWcodGVzdCkgZmFpbHVyZXMvZXhwZWN0ZWQv
YXVkaW8uaHRtbCBbIEZhaWx1cmUgXQogQnVnKHRlc3QpIGZhaWx1cmVzL2V4cGVjdGVkL2ltYWdl
X2NoZWNrc3VtLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIEJ1Zyh0ZXN0KSBmYWlsdXJlcy9l
eHBlY3RlZC9taXNtYXRjaC5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>