<?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>161310</bug_id>
          
          <creation_ts>2016-08-29 08:33:14 -0700</creation_ts>
          <short_desc>Test infrastructure should allow to filter out text output before doing a comparison with the baseline</short_desc>
          <delta_ts>2023-02-14 15:09:54 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</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=161601</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=161626</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=161693</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>252269</blocked>
    
    <blocked>160546</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>achristensen</cc>
    
    <cc>ap</cc>
    
    <cc>commit-queue</cc>
    
    <cc>glenn</cc>
    
    <cc>lforschler</cc>
    
    <cc>mkwst</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1224169</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-08-29 08:33:14 -0700</bug_when>
    <thetext>As illustrated in bug 160546, some tests may be flaky due to one or two lines in the text output that always change run after run.
Sometimes the test can be corrected, sometimes it cannot.
It would be good if the test infrastructure could filter out these lines before doing the baseline comparison.
This could be triggered for instance with a new expectation in LayoutTests/TestExpectations.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1224202</commentid>
    <comment_count>1</comment_count>
      <attachid>287278</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-08-29 10:19:52 -0700</bug_when>
    <thetext>Created attachment 287278
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1224325</commentid>
    <comment_count>2</comment_count>
      <attachid>287278</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-08-29 13:55:24 -0700</bug_when>
    <thetext>Comment on attachment 287278
Patch

I don&apos;t think we should make this change.  We should make WebKit / test output deterministic instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1225769</commentid>
    <comment_count>3</comment_count>
      <attachid>287760</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-09-02 08:13:51 -0700</bug_when>
    <thetext>Created attachment 287760
DumpJSConsoleLogInStderr option</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1225770</commentid>
    <comment_count>4</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-09-02 08:16:26 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Created attachment 287760 [details]
&gt; DumpJSConsoleLogInStderr option

New option redirects JS console log to stderr.
This retains the ability to access it while allowing to removing potential flakiness.

It seems a bit odd to add that keyword to TestExpectations since it is becoming more like a setup option. This applies also a bit to Slow keyword.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1225775</commentid>
    <comment_count>5</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-09-02 08:48:29 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #3)
&gt; &gt; Created attachment 287760 [details]
&gt; &gt; DumpJSConsoleLogInStderr option
&gt; 
&gt; New option redirects JS console log to stderr.
&gt; This retains the ability to access it while allowing to removing potential
&gt; flakiness.
&gt; 
&gt; It seems a bit odd to add that keyword to TestExpectations since it is
&gt; becoming more like a setup option. This applies also a bit to Slow keyword.

New option only applies to WK2. A future patch would do that for WK1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1225778</commentid>
    <comment_count>6</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2016-09-02 09:11:12 -0700</bug_when>
    <thetext>&gt; It seems a bit odd to add that keyword to TestExpectations since it is becoming more like a setup option.

Setup options are normally put in tests themselves as WebKitTestRunner comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1225780</commentid>
    <comment_count>7</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-09-02 09:18:05 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; &gt; It seems a bit odd to add that keyword to TestExpectations since it is becoming more like a setup option.
&gt; 
&gt; Setup options are normally put in tests themselves as WebKitTestRunner
&gt; comments.

I never came across such tests. Do you have any example?

As of WPT tests, although test importer could put those options in tests based on a test configuration list, I think it is best to keep the WPT tests as unchanged as possible.
If that is better, I am fine putting that information in a separate place.
If so, we should also do that for Slow tests, since that information can be gathered automatically for WPT tests (meta timeout element).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1225789</commentid>
    <comment_count>8</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2016-09-02 09:35:35 -0700</bug_when>
    <thetext>LayoutTests/fast/text/combining-character-sequence-vertical.html and LayoutTests/fast/text/international/system-language/system-font-punctuation.html are two examples.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1225797</commentid>
    <comment_count>9</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-09-02 09:55:36 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; LayoutTests/fast/text/combining-character-sequence-vertical.html and
&gt; LayoutTests/fast/text/international/system-language/system-font-punctuation.
&gt; html are two examples.

Does the same principle apply to DRT?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1225803</commentid>
    <comment_count>10</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2016-09-02 10:09:29 -0700</bug_when>
    <thetext>I don&apos;t think that DRT checks any of these flags at this time - they were needed because we had to relaunch WebContent processes for certain options to apply. A more normal way to change settings is via testRunner functions, of course.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1226398</commentid>
    <comment_count>11</comment_count>
      <attachid>287943</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-09-05 02:50:45 -0700</bug_when>
    <thetext>Created attachment 287943
Separate tests options file</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1226429</commentid>
    <comment_count>12</comment_count>
      <attachid>287954</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-09-05 07:36:55 -0700</bug_when>
    <thetext>Created attachment 287954
Renaming file to tests-options.json</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1227150</commentid>
    <comment_count>13</comment_count>
      <attachid>288132</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-09-07 06:30:19 -0700</bug_when>
    <thetext>Created attachment 288132
Rebasing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1232058</commentid>
    <comment_count>14</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-09-21 06:56:15 -0700</bug_when>
    <thetext>Ping review?

LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/request-cache.html exhibits the same issue after implementing fetch cache mode (in WK2 only as the tests causing always changing console log are failing early in WK1 currently).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1233678</commentid>
    <comment_count>15</comment_count>
      <attachid>288132</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-09-26 17:41:49 -0700</bug_when>
    <thetext>Comment on attachment 288132
Rebasing

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

I do not understand why this is a good option. I am not happy about our current handling of stderr where we note that there was stderr output as if it’s always a bad ting but it does not cause test failures. This causes us to ignore the stderr output most of the time and the list of tests with stderr output becomes a source of noise.

&gt; Tools/DumpRenderTree/DumpRenderTreeCommon.cpp:80
&gt; +        } else if (arg == std::string(&quot;--dump-jsconsolelog-in-stderr&quot;))

The conversion to std::string is not needed here, or is it needed in the three other places above.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1233690</commentid>
    <comment_count>16</comment_count>
      <attachid>288132</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-09-26 19:18:50 -0700</bug_when>
    <thetext>Comment on attachment 288132
Rebasing

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

&gt; LayoutTests/tests-options.json:116
&gt; +    &quot;imported/w3c/web-platform-tests/fetch/api/cors/cors-preflight.html&quot;: [

This file shouldn&apos;t be in LayoutTests/tests-options.json.
It should be in LayoutTests/imported/w3c/web-platform-tests/w3c/web-platform-tests/

&gt; LayoutTests/tests-options.json:119
&gt; +    &quot;imported/w3c/web-platform-tests/fetch/api/cors/cors-preflight-worker.html&quot;: [

We should just have W3C modify these tests to not spit out non-deterministic outputs instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1233783</commentid>
    <comment_count>17</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-09-27 02:42:24 -0700</bug_when>
    <thetext>&gt; I do not understand why this is a good option. I am not happy about our
&gt; current handling of stderr where we note that there was stderr output as if
&gt; it’s always a bad ting but it does not cause test failures. This causes us
&gt; to ignore the stderr output most of the time and the list of tests with
&gt; stderr output becomes a source of noise.

I mostly see the stderr as useful information for debugging.
If some bits of the stderr contains information that should be part of non regression, we might want to update the code to output those messages in the dumped results.


&gt; &gt; Tools/DumpRenderTree/DumpRenderTreeCommon.cpp:80
&gt; &gt; +        } else if (arg == std::string(&quot;--dump-jsconsolelog-in-stderr&quot;))
&gt; 
&gt; The conversion to std::string is not needed here, or is it needed in the
&gt; three other places above.

OK</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1233785</commentid>
    <comment_count>18</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-09-27 02:46:41 -0700</bug_when>
    <thetext>
&gt; &gt; LayoutTests/tests-options.json:116
&gt; &gt; +    &quot;imported/w3c/web-platform-tests/fetch/api/cors/cors-preflight.html&quot;: [
&gt; 
&gt; This file shouldn&apos;t be in LayoutTests/tests-options.json.
&gt; It should be in
&gt; LayoutTests/imported/w3c/web-platform-tests/w3c/web-platform-tests/

We could do that.
Putting the file here makes it possible to remove slow modifier from TestExpectations.
It feels odd to me when seeing something like: my-wonderful-test [ Slow Crash ]
The slow modifier is just setting the timeout option, so it seems more like a test option than a text expectation.

Also, I am not very fond of the TestExpectations format in general.
It is difficult to write new expectations/update expectations on them for instance.

&gt; &gt; LayoutTests/tests-options.json:119
&gt; &gt; +    &quot;imported/w3c/web-platform-tests/fetch/api/cors/cors-preflight-worker.html&quot;: [
&gt; 
&gt; We should just have W3C modify these tests to not spit out non-deterministic
&gt; outputs instead.

It spits non-deterministic outputs on WebKit test environment not on other test environments.

One purpose of using dynamic URLs is cache busting.
Doing so ensures more stable tests, for instance when running several times the same test.

There might be the possibility to use specific test-runner API, triggered by some metadata.
But then, the tests would no longer be stable on web browsers. That is not attractive to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1235228</commentid>
    <comment_count>19</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-09-30 08:47:06 -0700</bug_when>
    <thetext>If that helps, I can update the patch so that no logs gets to the stderr</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1239265</commentid>
    <comment_count>20</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-10-12 06:23:38 -0700</bug_when>
    <thetext>Now that http://trac.webkit.org/changeset/207086&gt; landed, I would like to improve on it based on request-cache.html for WK2.
Would it be possible to move this patch forward?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1253376</commentid>
    <comment_count>21</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-11-22 04:41:51 -0800</bug_when>
    <thetext>Talking briefly with rniwa, he seems to have hard feelings for removing all console log from dumped text, but for a hand-selected set of tests, this might be ok.

Can we go forward on that? I need this kind of feature to ship fetch API console logging without disabling WPT fetch API tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1259199</commentid>
    <comment_count>22</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-12-12 14:22:53 -0800</bug_when>
    <thetext>(In reply to comment #18)
&gt; &gt; &gt; LayoutTests/tests-options.json:116
&gt; &gt; &gt; +    &quot;imported/w3c/web-platform-tests/fetch/api/cors/cors-preflight.html&quot;: [
&gt; &gt; 
&gt; &gt; This file shouldn&apos;t be in LayoutTests/tests-options.json.
&gt; &gt; It should be in
&gt; &gt; LayoutTests/imported/w3c/web-platform-tests/w3c/web-platform-tests/
&gt; 
&gt; We could do that.
&gt; Putting the file here makes it possible to remove slow modifier from
&gt; TestExpectations.
&gt; It feels odd to me when seeing something like: my-wonderful-test [ Slow
&gt; Crash ]
&gt; The slow modifier is just setting the timeout option, so it seems more like
&gt; a test option than a text expectation.

This is really by design.  We didn’t want to have 3-4 configuration files to figure out what a test does.

In the case of W3C tests, we don’t want to modify test files, but for all other test cases, we should be using in-file test options instead.  This whole concept of test-options.json should only exist for the imported W3C tests.

&gt; Also, I am not very fond of the TestExpectations format in general.
&gt; It is difficult to write new expectations/update expectations on them for
&gt; instance.

We can have that debate on webkit-dev. There was a long &amp; heated debate about what format we use for TestExpectations back in 2012: https://lists.webkit.org/pipermail/webkit-dev/2012-June/021131.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1259200</commentid>
    <comment_count>23</comment_count>
      <attachid>288132</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-12-12 14:23:05 -0800</bug_when>
    <thetext>Comment on attachment 288132
Rebasing

r- based on past review comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1259361</commentid>
    <comment_count>24</comment_count>
      <attachid>296998</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-12-13 01:59:45 -0800</bug_when>
    <thetext>Created attachment 296998
Back to TestExpectation modifier option</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1259543</commentid>
    <comment_count>25</comment_count>
      <attachid>296998</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-12-13 14:35:01 -0800</bug_when>
    <thetext>Comment on attachment 296998
Back to TestExpectation modifier option

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

r=me provided you have a good explanation for how stderr is piped from WTR’s WebContent process to UIProcess.

&gt; Tools/ChangeLog:17
&gt; +
&gt; +

Nit: There are two blank lines here.

&gt; Tools/Scripts/webkitpy/layout_tests/models/test_expectations.py:349
&gt; -            if &apos;SKIP&apos; not in modifiers and &apos;REBASELINE&apos; not in modifiers and &apos;SLOW&apos; not in modifiers:
&gt; +            if &apos;SKIP&apos; not in modifiers and &apos;REBASELINE&apos; not in modifiers and &apos;SLOW&apos; not in modifiers and &apos;DUMPJSCONSOLELOGINSTDERR&apos; not in modifiers:

This is getting really long. Instead, we should just check whether modifiers is empty or it only contains “WontFix”.

&gt; Tools/WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp:1466
&gt; +        fprintf(stderr, &quot;%s&quot;, stringBuilder.toString().utf8().data());

How does this even work? injectedBundle.outputText sends TextOutput message to UIProcess.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1259681</commentid>
    <comment_count>26</comment_count>
      <attachid>297077</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-12-14 02:22:52 -0800</bug_when>
    <thetext>Created attachment 297077
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1259687</commentid>
    <comment_count>27</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-12-14 02:44:53 -0800</bug_when>
    <thetext>(In reply to comment #25)
&gt; Comment on attachment 296998 [details]
&gt; Back to TestExpectation modifier option
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=296998&amp;action=review
&gt; 
&gt; r=me provided you have a good explanation for how stderr is piped from WTR’s
&gt; WebContent process to UIProcess.
&gt; 
&gt; &gt; Tools/ChangeLog:17
&gt; &gt; +
&gt; &gt; +
&gt; 
&gt; Nit: There are two blank lines here.

OK

&gt; &gt; Tools/Scripts/webkitpy/layout_tests/models/test_expectations.py:349
&gt; &gt; -            if &apos;SKIP&apos; not in modifiers and &apos;REBASELINE&apos; not in modifiers and &apos;SLOW&apos; not in modifiers:
&gt; &gt; +            if &apos;SKIP&apos; not in modifiers and &apos;REBASELINE&apos; not in modifiers and &apos;SLOW&apos; not in modifiers and &apos;DUMPJSCONSOLELOGINSTDERR&apos; not in modifiers:
&gt; 
&gt; This is getting really long. Instead, we should just check whether modifiers
&gt; is empty or it only contains “WontFix”.

I tried changing this but it fails some webkitpy unit tests.
I added a FIXME though.

&gt; &gt; Tools/WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp:1466
&gt; &gt; +        fprintf(stderr, &quot;%s&quot;, stringBuilder.toString().utf8().data());
&gt; 
&gt; How does this even work? injectedBundle.outputText sends TextOutput message
&gt; to UIProcess.

I think the UIProcess is taking care of sharing the stdout/stderr descriptors to the WebProcess.
But you are right, this is not clean.
I updated the patch by adding a DumpToStdErr message.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1259689</commentid>
    <comment_count>28</comment_count>
      <attachid>297079</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-12-14 03:12:05 -0800</bug_when>
    <thetext>Created attachment 297079
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1259698</commentid>
    <comment_count>29</comment_count>
      <attachid>297079</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-12-14 04:23:22 -0800</bug_when>
    <thetext>Comment on attachment 297079
Patch

Clearing flags on attachment: 297079

Committed r209798: &lt;http://trac.webkit.org/changeset/209798&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1259699</commentid>
    <comment_count>30</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-12-14 04:23:30 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>287278</attachid>
            <date>2016-08-29 10:19:52 -0700</date>
            <delta_ts>2016-09-02 08:13:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-161310-20160829191742.patch</filename>
            <type>text/plain</type>
            <size>19335</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA1MTE4CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNDVhMzYyOTRhNzFjZmQ3MDVhYTliNjZhNDIwNTdkNzVl
OWUwYjY0Mi4uODIyYTM5Yjg3ZDQ3MjZjNTMyYTg1ZmU5YTQyNWI0YjQ2NWU4YWQ1ZiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3
IEBACisyMDE2LTA4LTI5ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAg
ICAgICBUZXN0IGluZnJhc3RydWN0dXJlIHNob3VsZCBhbGxvdyB0byBmaWx0ZXIgb3V0IHRleHQg
b3V0cHV0IGJlZm9yZSBkb2luZyBhIGNvbXBhcmlzb24gd2l0aCB0aGUgYmFzZWxpbmUKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MTMxMAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENvdmVyZWQgYnkgYWRk
ZWQgdW5pdCB0ZXN0cy4KKworICAgICAgICBBZGRpbmcgVGV4dERpZmY9WFggbW9kaWZpZXIuCisg
ICAgICAgIEludHJvZHVjaW5nIFRlc3RFeHBlY3RhdGlvbnNNb2RlbC5nZXRfbW9kaWZpZXJzX3N0
YXJ0aW5nX3dpdGggdG8gcmV0cmlldmUgbW9kaWZpZXJzIGJhc2VkIGEgcHJlZml4LgorICAgICAg
ICBNYWtpbmcgc29tZSBjbGVhbi11cCBjaGFuZ2VzIHRvIHRoZSBtb2RpZmllZCBweXRob24gc2Ny
aXB0IGZpbGVzLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29u
dHJvbGxlcnMvbWFuYWdlci5weToKKyAgICAgICAgKE1hbmFnZXIuX3Rlc3RfaW5wdXRfZm9yX2Zp
bGUpOiBDb21wdXRpbmcgdGV4dF9kaWZmX29wdGlvbnMgZnJvbSBleHBlY3RhdGlvbnMKKyAgICAg
ICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9zaW5nbGVfdGVz
dF9ydW5uZXIucHk6CisgICAgICAgIChTaW5nbGVUZXN0UnVubmVyLl9faW5pdF9fKToKKyAgICAg
ICAgKFNpbmdsZVRlc3RSdW5uZXIuY29tcHV0ZV90ZXN0X3Jlc3VsdCk6IEludHJvZHVjZWQgdG8g
ZG8gc29tZSB1bml0IHRlc3RpbmcuCisgICAgICAgIFdoZW4gTk9KU0NPTlNPTEVMT0cgdGV4dCBk
aWZmIG9wdGlvbiBpcyBzZXQsIG91dHB1dCBhbmQgZXhwZWN0ZWQgb3V0cHV0IGFyZSBwcm9jZXNz
ZWQgd2l0aCBhIHJlZ3VsYXIgZXhwcmVzc2lvbgorICAgICAgICBiZWZvcmUgYmVpbmcgY29tcGFy
ZWQuIFRoaXMgYWxsb3dzIHJlbW92aW5nIGxpbmVzIHN0YXJ0aW5nIHdpdGggJ0NPTlNPTEUgTUVT
U0FHRTogJworICAgICAgICAoU2luZ2xlVGVzdFJ1bm5lcik6CisgICAgICAgIChTaW5nbGVUZXN0
UnVubmVyLl9ydW5fY29tcGFyZV90ZXN0KToKKyAgICAgICAgKFNpbmdsZVRlc3RSdW5uZXIuX2hh
bmRsZV9lcnJvcik6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29u
dHJvbGxlcnMvc2luZ2xlX3Rlc3RfcnVubmVyX3VuaXR0ZXN0LnB5OiBBZGRlZC4KKyAgICAgICAg
KFNpbmdsZVRlc3RSdW5uZXJUZXN0cyk6CisgICAgICAgIChTaW5nbGVUZXN0UnVubmVyVGVzdHMu
c2V0VXApOgorICAgICAgICAoU2luZ2xlVGVzdFJ1bm5lclRlc3RzLl90ZXN0X3RleHRfZGlmZl9u
b2pzY29uc29sZWxvZyk6CisgICAgICAgIChTaW5nbGVUZXN0UnVubmVyVGVzdHMuX3Rlc3RfdGV4
dF9kaWZmX25vanNjb25zb2xlbG9nLk9wdGlvbnMpOgorICAgICAgICAoU2luZ2xlVGVzdFJ1bm5l
clRlc3RzLnRlc3RfdGV4dF9kaWZmX25vanNjb25zb2xlbG9nKToKKyAgICAgICAgKiBTY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVzdF9leHBlY3RhdGlvbnMucHk6CisgICAg
ICAgIChUZXN0RXhwZWN0YXRpb25QYXJzZXIuX3BhcnNlX21vZGlmaWVycyk6CisgICAgICAgIChU
ZXN0RXhwZWN0YXRpb25QYXJzZXIuX3Rva2VuaXplX2xpbmUpOgorICAgICAgICAoVGVzdEV4cGVj
dGF0aW9uc01vZGVsLmhhc19rZXl3b3JkKToKKyAgICAgICAgKFRlc3RFeHBlY3RhdGlvbnNNb2Rl
bCk6CisgICAgICAgIChUZXN0RXhwZWN0YXRpb25zTW9kZWwubW9kaWZpZXJzX3N0YXJ0aW5nX3dp
dGgpOgorICAgICAgICAoVGVzdEV4cGVjdGF0aW9uc01vZGVsLmdldF9tb2RpZmllcnNfc3RhcnRp
bmdfd2l0aCk6CisgICAgICAgIChUZXN0RXhwZWN0YXRpb25zTW9kZWwuX2FkZF90ZXN0KToKKyAg
ICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVzdF9leHBlY3Rh
dGlvbnNfdW5pdHRlc3QucHk6CisgICAgICAgIChFeHBlY3RhdGlvblN5bnRheFRlc3RzLnRlc3Rf
dGV4dGRpZmYpOgorICAgICAgICAoRXhwZWN0YXRpb25TeW50YXhUZXN0cy50ZXN0X3Nsb3cpOiBE
ZWxldGVkLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90
ZXN0X2lucHV0LnB5OgorICAgICAgICAoVGVzdElucHV0Ll9faW5pdF9fKToKKyAgICAgICAgKFRl
c3RJbnB1dC5fX3JlcHJfXyk6CisKIDIwMTYtMDgtMjkgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xs
YW5AYXBwbGUuY29tPgogCiAgICAgICAgIEF0dGVtcHQgdG8gZml4IFdpbmRvd3MgYnVpbGQgYWZ0
ZXIgcjIwNTA5MC4KZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL2NvbnRyb2xsZXJzL21hbmFnZXIucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9jb250cm9sbGVycy9tYW5hZ2VyLnB5CmluZGV4IGFmZWYwODE4MzY5NjM1Y2QwN2Y4
MmUyOTMwNmUzOTIzYzllYzkwYWEuLmRiYjYxOWIyZGM1YTJhNjA5YWQwYWIyYmY1N2E4ZmQyMzcw
MDhlYTcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2Nv
bnRyb2xsZXJzL21hbmFnZXIucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvY29udHJvbGxlcnMvbWFuYWdlci5weQpAQCAtMTI4LDcgKzEyOCw4IEBAIGNsYXNzIE1h
bmFnZXIob2JqZWN0KToKICAgICBkZWYgX3Rlc3RfaW5wdXRfZm9yX2ZpbGUoc2VsZiwgdGVzdF9m
aWxlKToKICAgICAgICAgcmV0dXJuIFRlc3RJbnB1dCh0ZXN0X2ZpbGUsCiAgICAgICAgICAgICBz
ZWxmLl9vcHRpb25zLnNsb3dfdGltZV9vdXRfbXMgaWYgc2VsZi5fdGVzdF9pc19zbG93KHRlc3Rf
ZmlsZSkgZWxzZSBzZWxmLl9vcHRpb25zLnRpbWVfb3V0X21zLAotICAgICAgICAgICAgc2VsZi5f
aXNfaHR0cF90ZXN0KHRlc3RfZmlsZSkpCisgICAgICAgICAgICBzZWxmLl9pc19odHRwX3Rlc3Qo
dGVzdF9maWxlKSwKKyAgICAgICAgICAgIHRleHRfZGlmZl9vcHRpb25zPXNlbGYuX2V4cGVjdGF0
aW9ucy5tb2RlbCgpLmdldF9tb2RpZmllcnNfc3RhcnRpbmdfd2l0aCh0ZXN0X2ZpbGUsIHRlc3Rf
ZXhwZWN0YXRpb25zLlRFWFRfRElGRl9QUkVGSVgpKQogCiAgICAgZGVmIF90ZXN0X2lzX3Nsb3co
c2VsZiwgdGVzdF9maWxlKToKICAgICAgICAgcmV0dXJuIHNlbGYuX2V4cGVjdGF0aW9ucy5tb2Rl
bCgpLmhhc19tb2RpZmllcih0ZXN0X2ZpbGUsIHRlc3RfZXhwZWN0YXRpb25zLlNMT1cpCmRpZmYg
LS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9z
aW5nbGVfdGVzdF9ydW5uZXIucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9jb250cm9sbGVycy9zaW5nbGVfdGVzdF9ydW5uZXIucHkKaW5kZXggZTg1ODM1MjQ3MDNlMmJm
Mzg2YWVkOGRmZGY2NjY1NzBkZThmOGEyZS4uNjY2Y2ZmM2I0OWI4ZDcyMWYxNDRjZGUyNWU1ZTZm
MTU3M2ZmODU1MyAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvY29udHJvbGxlcnMvc2luZ2xlX3Rlc3RfcnVubmVyLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL3NpbmdsZV90ZXN0X3J1bm5lci5weQpA
QCAtMjksNyArMjksNiBAQAogCiBpbXBvcnQgbG9nZ2luZwogaW1wb3J0IHJlCi1pbXBvcnQgdGlt
ZQogCiBmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5jb250cm9sbGVycyBpbXBvcnQgdGVzdF9y
ZXN1bHRfd3JpdGVyCiBmcm9tIHdlYmtpdHB5LnBvcnQuZHJpdmVyIGltcG9ydCBEcml2ZXJJbnB1
dCwgRHJpdmVyT3V0cHV0CkBAIC02MSw2ICs2MCw3IEBAIGNsYXNzIFNpbmdsZVRlc3RSdW5uZXIo
b2JqZWN0KToKICAgICAgICAgc2VsZi5fcmVmZXJlbmNlX2ZpbGVzID0gdGVzdF9pbnB1dC5yZWZl
cmVuY2VfZmlsZXMKICAgICAgICAgc2VsZi5fc3RvcF93aGVuX2RvbmUgPSBzdG9wX3doZW5fZG9u
ZQogICAgICAgICBzZWxmLl90aW1lb3V0ID0gdGVzdF9pbnB1dC50aW1lb3V0CisgICAgICAgIHNl
bGYuX3RleHRfZGlmZl9vcHRpb25zID0gdGVzdF9pbnB1dC50ZXh0X2RpZmZfb3B0aW9ucwogCiAg
ICAgICAgIGlmIHNlbGYuX3JlZmVyZW5jZV9maWxlczoKICAgICAgICAgICAgICMgRGV0ZWN0IGFu
ZCByZXBvcnQgYSB0ZXN0IHdoaWNoIGhhcyBhIHdyb25nIGNvbWJpbmF0aW9uIG9mIGV4cGVjdGF0
aW9uIGZpbGVzLgpAQCAtMTAzLDIxICsxMDMsMzAgQEAgY2xhc3MgU2luZ2xlVGVzdFJ1bm5lcihv
YmplY3QpOgogICAgICAgICAgICAgcmV0dXJuIHNlbGYuX3J1bl9yZWJhc2VsaW5lKCkKICAgICAg
ICAgcmV0dXJuIHNlbGYuX3J1bl9jb21wYXJlX3Rlc3QoKQogCi0gICAgZGVmIF9ydW5fY29tcGFy
ZV90ZXN0KHNlbGYpOgotICAgICAgICBkcml2ZXJfb3V0cHV0ID0gc2VsZi5fZHJpdmVyLnJ1bl90
ZXN0KHNlbGYuX2RyaXZlcl9pbnB1dCgpLCBzZWxmLl9zdG9wX3doZW5fZG9uZSkKLSAgICAgICAg
ZXhwZWN0ZWRfZHJpdmVyX291dHB1dCA9IHNlbGYuX2V4cGVjdGVkX2RyaXZlcl9vdXRwdXQoKQot
CisgICAgZGVmIGNvbXB1dGVfdGVzdF9yZXN1bHQoc2VsZiwgZHJpdmVyX291dHB1dCwgZXhwZWN0
ZWRfZHJpdmVyX291dHB1dCk6CiAgICAgICAgIGlmIHNlbGYuX29wdGlvbnMuaWdub3JlX21ldHJp
Y3M6CiAgICAgICAgICAgICBleHBlY3RlZF9kcml2ZXJfb3V0cHV0LnN0cmlwX21ldHJpY3MoKQog
ICAgICAgICAgICAgZHJpdmVyX291dHB1dC5zdHJpcF9tZXRyaWNzKCkKIAogICAgICAgICBwYXR0
ZXJucyA9IHNlbGYuX3BvcnQubG9nZ2luZ19wYXR0ZXJuc190b19zdHJpcCgpCisKKyAgICAgICAg
aWYgIk5PSlNDT05TT0xFTE9HIiBpbiBzZWxmLl90ZXh0X2RpZmZfb3B0aW9uczoKKyAgICAgICAg
ICAgIHBhdHRlcm5zID0gbGlzdChwYXR0ZXJucykKKyAgICAgICAgICAgIHBhdHRlcm5zLmFwcGVu
ZCgocmUuY29tcGlsZSgnQ09OU09MRSBNRVNTQUdFOiAuKlxuJyksICcnKSkKKwogICAgICAgICBl
eHBlY3RlZF9kcml2ZXJfb3V0cHV0LnN0cmlwX3BhdHRlcm5zKHBhdHRlcm5zKQogICAgICAgICBk
cml2ZXJfb3V0cHV0LnN0cmlwX3BhdHRlcm5zKHBhdHRlcm5zKQogCiAgICAgICAgIGRyaXZlcl9v
dXRwdXQuc3RyaXBfc3RkZXJyb3JfcGF0dGVybnMoc2VsZi5fcG9ydC5zdGRlcnJfcGF0dGVybnNf
dG9fc3RyaXAoKSkKIAotICAgICAgICB0ZXN0X3Jlc3VsdCA9IHNlbGYuX2NvbXBhcmVfb3V0cHV0
KGV4cGVjdGVkX2RyaXZlcl9vdXRwdXQsIGRyaXZlcl9vdXRwdXQpCisgICAgICAgIHJldHVybiBz
ZWxmLl9jb21wYXJlX291dHB1dChleHBlY3RlZF9kcml2ZXJfb3V0cHV0LCBkcml2ZXJfb3V0cHV0
KQorCisgICAgZGVmIF9ydW5fY29tcGFyZV90ZXN0KHNlbGYpOgorICAgICAgICBkcml2ZXJfb3V0
cHV0ID0gc2VsZi5fZHJpdmVyLnJ1bl90ZXN0KHNlbGYuX2RyaXZlcl9pbnB1dCgpLCBzZWxmLl9z
dG9wX3doZW5fZG9uZSkKKyAgICAgICAgZXhwZWN0ZWRfZHJpdmVyX291dHB1dCA9IHNlbGYuX2V4
cGVjdGVkX2RyaXZlcl9vdXRwdXQoKQorCisgICAgICAgIHRlc3RfcmVzdWx0ID0gc2VsZi5jb21w
dXRlX3Rlc3RfcmVzdWx0KGRyaXZlcl9vdXRwdXQsIGV4cGVjdGVkX2RyaXZlcl9vdXRwdXQpCisK
ICAgICAgICAgaWYgc2VsZi5fb3B0aW9ucy5uZXdfdGVzdF9yZXN1bHRzOgogICAgICAgICAgICAg
c2VsZi5fYWRkX21pc3NpbmdfYmFzZWxpbmVzKHRlc3RfcmVzdWx0LCBkcml2ZXJfb3V0cHV0KQog
ICAgICAgICB0ZXN0X3Jlc3VsdF93cml0ZXIud3JpdGVfdGVzdF9yZXN1bHQoc2VsZi5fZmlsZXN5
c3RlbSwgc2VsZi5fcG9ydCwgc2VsZi5fcmVzdWx0c19kaXJlY3RvcnksIHNlbGYuX3Rlc3RfbmFt
ZSwgZHJpdmVyX291dHB1dCwgZXhwZWN0ZWRfZHJpdmVyX291dHB1dCwgdGVzdF9yZXN1bHQuZmFp
bHVyZXMpCkBAIC0xOTMsNyArMjAyLDYgQEAgY2xhc3MgU2luZ2xlVGVzdFJ1bm5lcihvYmplY3Qp
OgogICAgICAgICAgICAgICB3aGljaCBodG1sIGZpbGUgaXMgdXNlZCBmb3IgcHJvZHVjaW5nIHRo
ZSBkcml2ZXJfb3V0cHV0LgogICAgICAgICAiIiIKICAgICAgICAgZmFpbHVyZXMgPSBbXQotICAg
ICAgICBmcyA9IHNlbGYuX2ZpbGVzeXN0ZW0KICAgICAgICAgaWYgZHJpdmVyX291dHB1dC50aW1l
b3V0OgogICAgICAgICAgICAgZmFpbHVyZXMuYXBwZW5kKHRlc3RfZmFpbHVyZXMuRmFpbHVyZVRp
bWVvdXQoYm9vbChyZWZlcmVuY2VfZmlsZW5hbWUpKSkKIApkaWZmIC0tZ2l0IGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvc2luZ2xlX3Rlc3RfcnVubmVy
X3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJv
bGxlcnMvc2luZ2xlX3Rlc3RfcnVubmVyX3VuaXR0ZXN0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkxYTgyM2Y1
NjhlNzg5MmU3ZTVlNGUxNWM2OWEzMWQzZTQ4OTJiMGUKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9zaW5nbGVfdGVzdF9y
dW5uZXJfdW5pdHRlc3QucHkKQEAgLTAsMCArMSwxMDYgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDE2
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucyBhcmUKKyMgbWV0OgorIworIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyMgY29w
eXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lcgorIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlCisjIGRpc3RyaWJ1dGlvbi4KKyMgICAgICogTmVpdGhlciB0aGUg
bmFtZSBvZiBBcHBsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisjIGNvbnRyaWJ1dG9ycyBt
YXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisj
IHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24u
CisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJT
IEFORCBDT05UUklCVVRPUlMKKyMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisjIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJ
R0hUCisjIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLAorIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorIyBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkKKyMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworaW1w
b3J0IHVuaXR0ZXN0CisKK2Zyb20gd2Via2l0cHkuY29tbW9uLmhvc3RfbW9jayBpbXBvcnQgTW9j
a0hvc3QKK2Zyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLmNvbnRyb2xsZXJzLnNpbmdsZV90ZXN0
X3J1bm5lciBpbXBvcnQgU2luZ2xlVGVzdFJ1bm5lcgorZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVz
dHMubW9kZWxzLnRlc3RfaW5wdXQgaW1wb3J0IFRlc3RJbnB1dAorZnJvbSB3ZWJraXRweS5wb3J0
IGltcG9ydCBEcml2ZXJPdXRwdXQKKworCitjbGFzcyBTaW5nbGVUZXN0UnVubmVyVGVzdHModW5p
dHRlc3QuVGVzdENhc2UpOgorICAgIGRlZiBzZXRVcChzZWxmKToKKyAgICAgICAgaG9zdCA9IE1v
Y2tIb3N0KCkKKyAgICAgICAgc2VsZi5wb3J0ID0gaG9zdC5wb3J0X2ZhY3RvcnkuZ2V0KHBvcnRf
bmFtZT0ndGVzdCcpCisKKyAgICBkZWYgX3Rlc3RfdGV4dF9kaWZmX25vanNjb25zb2xlbG9nKHNl
bGYsIHRleHRfZGlmZl9vcHRpb25zLCBvdXRwdXQsIGV4cGVjdGVkX291dHB1dCwgaXNfcGFzc2lu
Zz1UcnVlKToKKyAgICAgICAgdGVzdF9pbnB1dCA9IFRlc3RJbnB1dCgiZmFrZV9uYW1lIiwgRmFs
c2UsIEZhbHNlLCBbXSwgRmFsc2UsIHRleHRfZGlmZl9vcHRpb25zKQorICAgICAgICB0ZXN0X2lu
cHV0LnNob3VsZF9ydW5fcGl4ZWxfdGVzdCA9IEZhbHNlCisKKyAgICAgICAgY2xhc3MgT3B0aW9u
cyhvYmplY3QpOgorICAgICAgICAgICAgcGFzcworICAgICAgICBvcHRpb25zID0gT3B0aW9ucygp
CisgICAgICAgIG9wdGlvbnMuaWdub3JlX21ldHJpY3MgPSBGYWxzZQorICAgICAgICBydW5uZXIg
PSBTaW5nbGVUZXN0UnVubmVyKHNlbGYucG9ydCwgb3B0aW9ucywgIiIsICIiLCBOb25lLCB0ZXN0
X2lucHV0LCBGYWxzZSkKKworICAgICAgICBkcml2ZXJfb3V0cHV0ID0gRHJpdmVyT3V0cHV0KG91
dHB1dCwgTm9uZSwgTm9uZSwgTm9uZSkKKyAgICAgICAgZXhwZWN0ZWRfZHJpdmVyX291dHB1dCA9
IERyaXZlck91dHB1dChleHBlY3RlZF9vdXRwdXQsIE5vbmUsIE5vbmUsIE5vbmUpCisgICAgICAg
IHRlc3RfcmVzdWx0ID0gcnVubmVyLmNvbXB1dGVfdGVzdF9yZXN1bHQoZHJpdmVyX291dHB1dCwg
ZXhwZWN0ZWRfZHJpdmVyX291dHB1dCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4odGVz
dF9yZXN1bHQuZmFpbHVyZXMpLCAwIGlmIGlzX3Bhc3NpbmcgZWxzZSAxKQorCisgICAgICAgIGlm
IGlzX3Bhc3Npbmc6CisgICAgICAgICAgICBkcml2ZXJfb3V0cHV0ID0gRHJpdmVyT3V0cHV0KG91
dHB1dCArICJcbmEiLCBOb25lLCBOb25lLCBOb25lKQorICAgICAgICAgICAgZXhwZWN0ZWRfZHJp
dmVyX291dHB1dCA9IERyaXZlck91dHB1dChleHBlY3RlZF9vdXRwdXQgKyAiXG5iIiwgTm9uZSwg
Tm9uZSwgTm9uZSkKKyAgICAgICAgICAgIHRlc3RfcmVzdWx0ID0gcnVubmVyLmNvbXB1dGVfdGVz
dF9yZXN1bHQoZHJpdmVyX291dHB1dCwgZXhwZWN0ZWRfZHJpdmVyX291dHB1dCkKKyAgICAgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKHRlc3RfcmVzdWx0LmZhaWx1cmVzKSwgMSkKKworICAg
IGRlZiB0ZXN0X3RleHRfZGlmZl9ub2pzY29uc29sZWxvZyhzZWxmKToKKyAgICAgICAgc2VsZi5f
dGVzdF90ZXh0X2RpZmZfbm9qc2NvbnNvbGVsb2coWyJOT0pTQ09OU09MRUxPRyJdLCAiIiIKK0NP
TlNPTEUgTUVTU0FHRTogbGluZSAxOiBXYXJuaW5nOiBQcm9ibGVtIHBhcnNpbmcgdmlld0JveD0i
MCAwLCwgMSAxIgorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlclZpZXcgYXQg
KDAsMCkgc2l6ZSA4MDB4NjAwCitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyIiIiwgIiIi
CitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTogV2FybmluZzogUHJvYmxlbSBwYXJzaW5nIHZpZXdC
b3g9IjAgMCwsIDEgMiIKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJWaWV3
IGF0ICgwLDApIHNpemUgODAweDYwMAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisiIiIp
CisgICAgICAgIHNlbGYuX3Rlc3RfdGV4dF9kaWZmX25vanNjb25zb2xlbG9nKFsiTk9KU0NPTlNP
TEVMT0ciXSwgIiIiCitDT05TT0xFIE1FU1NBR0U6IFRoZSBwYWdlIGF0IGh0dHBzOi8vMTI3LjAu
MC4xOjg0NDMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L3Jlc291cmNlcy9mcmFtZS13aXRoLWluc2Vj
dXJlLWF1ZGlvLXZpZGVvLmh0bWwgd2FzIGFsbG93ZWQgdG8gZGlzcGxheSBpbnNlY3VyZSBjb250
ZW50IGZyb20gaHR0cDovLzEyNy4wLjAuMTo4MDgwL3JlZGlyZWN0LnB5P3Nlc3Npb249MTIyMTQ0
NDQxMzEzJnVybD1yZXNvdXJjZXMvdGVzdC5tcDQuCisKK1RoaXMgdGVzdCBkb2VzIHNvbWV0aGlu
Zy4KK1BBU1MKKyIiIiwgIiIiCitDT05TT0xFIE1FU1NBR0U6IFRoZSBwYWdlIGF0IGh0dHBzOi8v
MTI3LjAuMC4xOjg0NDMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L3Jlc291cmNlcy9mcmFtZS13aXRo
LWluc2VjdXJlLWF1ZGlvLXZpZGVvLmh0bWwgd2FzIGFsbG93ZWQgdG8gZGlzcGxheSBpbnNlY3Vy
ZSBjb250ZW50IGZyb20gaHR0cDovLzEyNy4wLjAuMTo4MDgwL3JlZGlyZWN0LnB5P3Nlc3Npb249
ODkyODMyOTg1Mzg1JnVybD1yZXNvdXJjZXMvdGVzdC5tcDQuCisKK1RoaXMgdGVzdCBkb2VzIHNv
bWV0aGluZy4KK1BBU1MKKyIiIikKKyAgICAgICAgc2VsZi5fdGVzdF90ZXh0X2RpZmZfbm9qc2Nv
bnNvbGVsb2coWyJOT0pTQ09OU09MRUxPRyJdLCAiIiIKK0NPTlNPTEUgTUVTU0FHRTogVGhlIHBh
Z2UgYXQgaHR0cHM6Ly8xMjcuMC4wLjE6ODQ0My9zZWN1cml0eS9taXhlZENvbnRlbnQvcmVzb3Vy
Y2VzL2ZyYW1lLXdpdGgtaW5zZWN1cmUtYXVkaW8tdmlkZW8uaHRtbCB3YXMgYWxsb3dlZCB0byBk
aXNwbGF5IGluc2VjdXJlIGNvbnRlbnQgZnJvbSBodHRwOi8vMTI3LjAuMC4xOjgwODAvcmVkaXJl
Y3QucHk/c2Vzc2lvbj0xMjIxNDQ0NDEzMTMmdXJsPXJlc291cmNlcy90ZXN0Lm1wNC4KK0NPTlNP
TEUgTUVTU0FHRToxMjIxNDQ0NDEzMTMKK1RoaXMgdGVzdCBkb2VzIHNvbWV0aGluZy4KK1BBU1MK
KyIiIiwgIiIiCitDT05TT0xFIE1FU1NBR0U6IFRoZSBwYWdlIGF0IGh0dHBzOi8vMTI3LjAuMC4x
Ojg0NDMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L3Jlc291cmNlcy9mcmFtZS13aXRoLWluc2VjdXJl
LWF1ZGlvLXZpZGVvLmh0bWwgd2FzIGFsbG93ZWQgdG8gZGlzcGxheSBpbnNlY3VyZSBjb250ZW50
IGZyb20gaHR0cDovLzEyNy4wLjAuMTo4MDgwL3JlZGlyZWN0LnB5P3Nlc3Npb249ODkyODMyOTg1
Mzg1JnVybD1yZXNvdXJjZXMvdGVzdC5tcDQuCitDT05TT0xFIE1FU1NBR0U6IHRlc3Q4OTI4MzI5
ODUzODUKK1RoaXMgdGVzdCBkb2VzIHNvbWV0aGluZy4KK1BBU1MKKyIiIiwgRmFsc2UpCisgICAg
ICAgIHNlbGYuX3Rlc3RfdGV4dF9kaWZmX25vanNjb25zb2xlbG9nKFsiTk9KU0NPTlNPTEVMT0ci
XSwgIiIiCitDT05TT0xFIE1FU1NBR0U6IFRoZSBwYWdlIGF0IGh0dHBzOi8vMTI3LjAuMC4xOjg0
NDMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L3Jlc291cmNlcy9mcmFtZS13aXRoLWluc2VjdXJlLWF1
ZGlvLXZpZGVvLmh0bWwgd2FzIGFsbG93ZWQgdG8gZGlzcGxheSBpbnNlY3VyZSBjb250ZW50IGZy
b20gaHR0cDovLzEyNy4wLjAuMTo4MDgwL3JlZGlyZWN0LnB5P3Nlc3Npb249MTIyMTQ0NDQxMzEz
JnVybD1yZXNvdXJjZXMvdGVzdC5tcDQuCisKK1RoaXMgdGVzdCBkb2VzIHNvbWV0aGluZy4KK1BB
U1MKKyIiIiwgIiIiCitDT05TT0xFIE1FU1NBR0U6IFRoZSBwYWdlIGF0IGh0dHBzOi8vMTI3LjAu
MC4xOjg0NDMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L3Jlc291cmNlcy9mcmFtZS13aXRoLWluc2Vj
dXJlLWF1ZGlvLXZpZGVvLmh0bWwgd2FzIGFsbG93ZWQgdG8gZGlzcGxheSBpbnNlY3VyZSBjb250
ZW50IGZyb20gaHR0cDovLzEyNy4wLjAuMTo4MDgwL3JlZGlyZWN0LnB5P3Nlc3Npb249ODkyODMy
OTg1Mzg1JnVybD1yZXNvdXJjZXMvdGVzdC5tcDQuCitUaGlzIHRlc3QgZG9lcyBzb21ldGhpbmcu
CitQQVNTCisiIiIsIEZhbHNlKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfZXhwZWN0YXRpb25zLnB5IGIvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfZXhwZWN0YXRpb25zLnB5CmluZGV4IGJi
NTU4Yzk4MzQ1YTFiOTNjMmFhMjUxNDQxMmY4MzJhYjU1YTRhYzguLjJiM2I1MjE1YTQ4NWFlMGE3
OWNjYTM3YTBhYjQzYmYzNjQxMjg0OWMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X2V4cGVjdGF0aW9ucy5weQorKysgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVzdF9leHBlY3RhdGlvbnMucHkK
QEAgLTQ1LDkgKzQ1LDEwIEBAIF9sb2cgPSBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVfXykKIChQ
QVNTLCBGQUlMLCBURVhULCBJTUFHRSwgSU1BR0VfUExVU19URVhULCBBVURJTywgVElNRU9VVCwg
Q1JBU0gsIFNLSVAsIFdPTlRGSVgsCiAgU0xPVywgUkVCQVNFTElORSwgTUlTU0lORywgRkxBS1ks
IE5PVywgTk9ORSkgPSByYW5nZSgxNikKIAotIyBGSVhNRTogUGVyaGFzIHRoZXNlIHR3byByb3V0
aW5lcyBzaG91bGQgYmUgcGFydCBvZiB0aGUgUG9ydCBpbnN0ZWFkPworIyBGSVhNRTogUGVyaGFw
cyB0aGVzZSB0d28gcm91dGluZXMgc2hvdWxkIGJlIHBhcnQgb2YgdGhlIFBvcnQgaW5zdGVhZD8K
IEJBU0VMSU5FX1NVRkZJWF9MSVNUID0gKCdwbmcnLCAnd2F2JywgJ3R4dCcpCiAKK1RFWFRfRElG
Rl9QUkVGSVggPSAnVEVYVERJRkY9JwogCiBjbGFzcyBQYXJzZUVycm9yKEV4Y2VwdGlvbik6CiAg
ICAgZGVmIF9faW5pdF9fKHNlbGYsIHdhcm5pbmdzKToKQEAgLTE1Miw2ICsxNTMsOCBAQCBjbGFz
cyBUZXN0RXhwZWN0YXRpb25QYXJzZXIob2JqZWN0KToKICAgICAgICAgICAgICAgICAgICAgZXhw
ZWN0YXRpb25fbGluZS53YXJuaW5ncy5hcHBlbmQoJ0JVR1xkKyBpcyBub3QgYWxsb3dlZCwgbXVz
dCBiZSBvbmUgb2YgQlVHV0tcZCssIG9yIGEgbm9uLW51bWVyaWMgYnVnIGlkZW50aWZpZXIuJykK
ICAgICAgICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgICAgICBleHBlY3RhdGlvbl9s
aW5lLnBhcnNlZF9idWdfbW9kaWZpZXJzLmFwcGVuZChtb2RpZmllcikKKyAgICAgICAgICAgIGVs
aWYgbW9kaWZpZXIuc3RhcnRzd2l0aCgidGV4dGRpZmY9Iik6CisgICAgICAgICAgICAgICAgZXhw
ZWN0YXRpb25fbGluZS5wYXJzZWRfbW9kaWZpZXJzLmFwcGVuZChtb2RpZmllcikKICAgICAgICAg
ICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgcGFyc2VkX3NwZWNpZmllcnMuYWRkKG1vZGlmaWVy
KQogCkBAIC0zMTksNyArMzIyLDcgQEAgY2xhc3MgVGVzdEV4cGVjdGF0aW9uUGFyc2VyKG9iamVj
dCk6CiAgICAgICAgICAgICBlbGlmIHN0YXRlID09ICdjb25maWd1cmF0aW9uJzoKICAgICAgICAg
ICAgICAgICBtb2RpZmllcnMuYXBwZW5kKGNscy5fY29uZmlndXJhdGlvbl90b2tlbnMuZ2V0KHRv
a2VuLCB0b2tlbikpCiAgICAgICAgICAgICBlbGlmIHN0YXRlID09ICdleHBlY3RhdGlvbnMnOgot
ICAgICAgICAgICAgICAgIGlmIHRva2VuIGluICgnUmViYXNlbGluZScsICdTa2lwJywgJ1Nsb3cn
LCAnV29udEZpeCcpOgorICAgICAgICAgICAgICAgIGlmIHRva2VuIGluICgnUmViYXNlbGluZScs
ICdTa2lwJywgJ1Nsb3cnLCAnV29udEZpeCcpIG9yIHRva2VuLnN0YXJ0c3dpdGgoJ1RleHREaWZm
PScpOgogICAgICAgICAgICAgICAgICAgICBtb2RpZmllcnMuYXBwZW5kKHRva2VuLnVwcGVyKCkp
CiAgICAgICAgICAgICAgICAgZWxpZiB0b2tlbiBub3QgaW4gY2xzLl9leHBlY3RhdGlvbl90b2tl
bnM6CiAgICAgICAgICAgICAgICAgICAgIHdhcm5pbmdzLmFwcGVuZCgnVW5yZWNvZ25pemVkIGV4
cGVjdGF0aW9uICIlcyInICUgdG9rZW4pCkBAIC0zNDUsNyArMzQ4LDcgQEAgY2xhc3MgVGVzdEV4
cGVjdGF0aW9uUGFyc2VyKG9iamVjdCk6CiAgICAgICAgICAgICAjIEZJWE1FOiBUaGlzIGlzIHJl
YWxseSBhIHNlbWFudGljIHdhcm5pbmcgYW5kIHNob3VsZG4ndCBiZSBoZXJlLiBSZW1vdmUgd2hl
biB3ZSBkcm9wIHRoZSBvbGQgc3ludGF4LgogICAgICAgICAgICAgd2FybmluZ3MuYXBwZW5kKCdB
IHRlc3QgbWFya2VkIFNraXAgbXVzdCBub3QgaGF2ZSBvdGhlciBleHBlY3RhdGlvbnMuJykKICAg
ICAgICAgZWxpZiBub3QgZXhwZWN0YXRpb25zOgotICAgICAgICAgICAgaWYgJ1NLSVAnIG5vdCBp
biBtb2RpZmllcnMgYW5kICdSRUJBU0VMSU5FJyBub3QgaW4gbW9kaWZpZXJzIGFuZCAnU0xPVycg
bm90IGluIG1vZGlmaWVyczoKKyAgICAgICAgICAgIGlmICdTS0lQJyBub3QgaW4gbW9kaWZpZXJz
IGFuZCAnUkVCQVNFTElORScgbm90IGluIG1vZGlmaWVycyBhbmQgJ1NMT1cnIG5vdCBpbiBtb2Rp
ZmllcnMgYW5kIG5vdCBUZXN0RXhwZWN0YXRpb25zTW9kZWwubW9kaWZpZXJzX3N0YXJ0aW5nX3dp
dGgobW9kaWZpZXJzLCAnVEVYVERJRkYnKToKICAgICAgICAgICAgICAgICBtb2RpZmllcnMuYXBw
ZW5kKCdTS0lQJykKICAgICAgICAgICAgIGV4cGVjdGF0aW9ucyA9IFsnUEFTUyddCiAKQEAgLTU2
Niw2ICs1NjksMTYgQEAgY2xhc3MgVGVzdEV4cGVjdGF0aW9uc01vZGVsKG9iamVjdCk6CiAgICAg
ICAgIHJldHVybiAoa2V5d29yZC51cHBlcigpIGluIHNlbGYuZ2V0X2V4cGVjdGF0aW9uc19zdHJp
bmcodGVzdCkgb3IKICAgICAgICAgICAgICAgICBrZXl3b3JkLmxvd2VyKCkgaW4gc2VsZi5nZXRf
bW9kaWZpZXJzKHRlc3QpKQogCisgICAgQHN0YXRpY21ldGhvZAorICAgIGRlZiBtb2RpZmllcnNf
c3RhcnRpbmdfd2l0aChtb2RpZmllcnMsIHByZWZpeCk6CisgICAgICAgIHJldHVybiBbbW9kaWZp
ZXJbbGVuKHByZWZpeCk6XSBmb3IgbW9kaWZpZXIgaW4gbW9kaWZpZXJzIGlmIG1vZGlmaWVyLnN0
YXJ0c3dpdGgocHJlZml4KV0KKworICAgIGRlZiBnZXRfbW9kaWZpZXJzX3N0YXJ0aW5nX3dpdGgo
c2VsZiwgdGVzdCwgcHJlZml4KToKKyAgICAgICAgbW9kaWZpZXJzID0gc2VsZi5fdGVzdF90b19t
b2RpZmllcnNbdGVzdF0KKyAgICAgICAgaWYgbm90IG1vZGlmaWVyczoKKyAgICAgICAgICAgIHJl
dHVybiBbXQorICAgICAgICByZXR1cm4gc2VsZi5tb2RpZmllcnNfc3RhcnRpbmdfd2l0aChtb2Rp
ZmllcnMsIHByZWZpeCkKKwogICAgIGRlZiBoYXNfdGVzdChzZWxmLCB0ZXN0KToKICAgICAgICAg
cmV0dXJuIHRlc3QgaW4gc2VsZi5fdGVzdF90b19leHBlY3RhdGlvbl9saW5lCiAKQEAgLTYyMiw4
ICs2MzUsOSBAQCBjbGFzcyBUZXN0RXhwZWN0YXRpb25zTW9kZWwob2JqZWN0KToKIAogICAgICAg
ICBzZWxmLl90ZXN0X3RvX21vZGlmaWVyc1t0ZXN0XSA9IGV4cGVjdGF0aW9uX2xpbmUubW9kaWZp
ZXJzCiAgICAgICAgIGZvciBtb2RpZmllciBpbiBleHBlY3RhdGlvbl9saW5lLnBhcnNlZF9tb2Rp
ZmllcnM6Ci0gICAgICAgICAgICBtb2RfdmFsdWUgPSBUZXN0RXhwZWN0YXRpb25zLk1PRElGSUVS
U1ttb2RpZmllcl0KLSAgICAgICAgICAgIHNlbGYuX21vZGlmaWVyX3RvX3Rlc3RzW21vZF92YWx1
ZV0uYWRkKHRlc3QpCisgICAgICAgICAgICBpZiBtb2RpZmllciBpbiBUZXN0RXhwZWN0YXRpb25z
Lk1PRElGSUVSUzoKKyAgICAgICAgICAgICAgICBtb2RfdmFsdWUgPSBUZXN0RXhwZWN0YXRpb25z
Lk1PRElGSUVSU1ttb2RpZmllcl0KKyAgICAgICAgICAgICAgICBzZWxmLl9tb2RpZmllcl90b190
ZXN0c1ttb2RfdmFsdWVdLmFkZCh0ZXN0KQogCiAgICAgICAgIGlmIFRlc3RFeHBlY3RhdGlvblBh
cnNlci5XT05URklYX01PRElGSUVSIGluIGV4cGVjdGF0aW9uX2xpbmUucGFyc2VkX21vZGlmaWVy
czoKICAgICAgICAgICAgIHNlbGYuX3RpbWVsaW5lX3RvX3Rlc3RzW1dPTlRGSVhdLmFkZCh0ZXN0
KQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9kZWxz
L3Rlc3RfZXhwZWN0YXRpb25zX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfZXhwZWN0YXRpb25zX3VuaXR0ZXN0LnB5CmluZGV4IDYz
OTAwNWJlYmY1YjQyYzE0YTkwOGFmNDY1NDBlYWY0OWRlNDU1MjkuLmQ1NjM3NTljZDRiMmY2M2Y5
NTNmNWVmNmYzYjkyYTlhNzEyMjVkZDYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X2V4cGVjdGF0aW9uc191bml0dGVzdC5weQorKysg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVzdF9leHBlY3Rh
dGlvbnNfdW5pdHRlc3QucHkKQEAgLTM0NSw2ICszNDUsOSBAQCBjbGFzcyBFeHBlY3RhdGlvblN5
bnRheFRlc3RzKEJhc2UpOgogICAgIGRlZiB0ZXN0X3Nsb3coc2VsZik6CiAgICAgICAgIHNlbGYu
YXNzZXJ0X3Rva2VuaXplX2V4cCgnZm9vLmh0bWwgWyBTbG93IF0nLCBtb2RpZmllcnM9WydTTE9X
J10sIGV4cGVjdGF0aW9ucz1bJ1BBU1MnXSkKIAorICAgIGRlZiB0ZXN0X3RleHRkaWZmKHNlbGYp
OgorICAgICAgICBzZWxmLmFzc2VydF90b2tlbml6ZV9leHAoJ2Zvby5odG1sIFsgVGV4dERpZmY9
Tm9KU0NvbnNvbGVMb2cgXScsIG1vZGlmaWVycz1bJ1RFWFRESUZGPU5PSlNDT05TT0xFTE9HJ10s
IGV4cGVjdGF0aW9ucz1bJ1BBU1MnXSkKKwogICAgIGRlZiB0ZXN0X3dvbnRmaXgoc2VsZik6CiAg
ICAgICAgIHNlbGYuYXNzZXJ0X3Rva2VuaXplX2V4cCgnZm9vLmh0bWwgWyBXb250Rml4IF0nLCBt
b2RpZmllcnM9WydXT05URklYJywgJ1NLSVAnXSwgZXhwZWN0YXRpb25zPVsnUEFTUyddKQogICAg
ICAgICBzZWxmLmFzc2VydF90b2tlbml6ZV9leHAoJ2Zvby5odG1sIFsgV29udEZpeCBJbWFnZU9u
bHlGYWlsdXJlIF0nLCBtb2RpZmllcnM9WydXT05URklYJ10sIGV4cGVjdGF0aW9ucz1bJ0lNQUdF
J10pCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9tb2Rl
bHMvdGVzdF9pbnB1dC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21v
ZGVscy90ZXN0X2lucHV0LnB5CmluZGV4IDMzZTQ0NThjZWJlYTViOWFhNWZiYTRkNDZjZTZmNWZj
YzY5ZDE2NGEuLjM2ZDdjZWUwMDc0OGFhMjI5OGZmOTE5NzE2MWIwZDIzMmQ3ZmMwNjkgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X2lu
cHV0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90
ZXN0X2lucHV0LnB5CkBAIC0zMSw3ICszMSw3IEBACiBjbGFzcyBUZXN0SW5wdXQob2JqZWN0KToK
ICAgICAiIiJHcm91cHMgaW5mb3JtYXRpb24gYWJvdXQgYSB0ZXN0IGZvciBlYXN5IHBhc3Npbmcg
b2YgZGF0YS4iIiIKIAotICAgIGRlZiBfX2luaXRfXyhzZWxmLCB0ZXN0X25hbWUsIHRpbWVvdXQ9
Tm9uZSwgbmVlZHNfc2VydmVycz1Ob25lLCByZWZlcmVuY2VfZmlsZXM9Tm9uZSwgc2hvdWxkX3J1
bl9waXhlbF90ZXN0cz1Ob25lKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgdGVzdF9uYW1lLCB0
aW1lb3V0PU5vbmUsIG5lZWRzX3NlcnZlcnM9Tm9uZSwgcmVmZXJlbmNlX2ZpbGVzPU5vbmUsIHNo
b3VsZF9ydW5fcGl4ZWxfdGVzdHM9Tm9uZSwgdGV4dF9kaWZmX29wdGlvbnM9W10pOgogICAgICAg
ICAjIFRlc3RJbnB1dCBvYmplY3RzIGFyZSBub3JtYWxseSBjb25zdHJ1Y3RlZCBieSB0aGUgbWFu
YWdlciBhbmQgcGFzc2VkCiAgICAgICAgICMgdG8gdGhlIHdvcmtlcnMsIGJ1dCB0aGVzZSBzb21l
IGZpZWxkcyBhcmUgc2V0IGxhemlseSBpbiB0aGUgd29ya2VycyB3aGVyZSBwb3NzaWJsZQogICAg
ICAgICAjIGJlY2F1c2UgdGhleSByZXF1aXJlIHVzIHRvIGxvb2sgYXQgdGhlIGZpbGVzeXN0ZW0g
YW5kIHdlIHdhbnQgdG8gYmUgYWJsZSB0byBkbyB0aGF0IGluIHBhcmFsbGVsLgpAQCAtNDAsNiAr
NDAsOCBAQCBjbGFzcyBUZXN0SW5wdXQob2JqZWN0KToKICAgICAgICAgc2VsZi5uZWVkc19zZXJ2
ZXJzID0gbmVlZHNfc2VydmVycwogICAgICAgICBzZWxmLnJlZmVyZW5jZV9maWxlcyA9IHJlZmVy
ZW5jZV9maWxlcwogICAgICAgICBzZWxmLnNob3VsZF9ydW5fcGl4ZWxfdGVzdHMgPSBzaG91bGRf
cnVuX3BpeGVsX3Rlc3RzCisgICAgICAgIHNlbGYudGV4dF9kaWZmX29wdGlvbnMgPSB0ZXh0X2Rp
ZmZfb3B0aW9ucwogCiAgICAgZGVmIF9fcmVwcl9fKHNlbGYpOgotICAgICAgICByZXR1cm4gIlRl
c3RJbnB1dCgnJXMnLCB0aW1lb3V0PSVzLCBuZWVkc19zZXJ2ZXJzPSVzLCByZWZlcmVuY2VfZmls
ZXM9JXMsIHNob3VsZF9ydW5fcGl4ZWxfdGVzdHM9JXMpIiAlIChzZWxmLnRlc3RfbmFtZSwgc2Vs
Zi50aW1lb3V0LCBzZWxmLm5lZWRzX3NlcnZlcnMsIHNlbGYucmVmZXJlbmNlX2ZpbGVzLCBzZWxm
LnNob3VsZF9ydW5fcGl4ZWxfdGVzdHMpCisgICAgICAgIHRleHRfZGlmZl9vcHRpb25fcmVwciA9
ICIsICIuam9pbihzZWxmLnRleHRfZGlmZl9vcHRpb25zKQorICAgICAgICByZXR1cm4gIlRlc3RJ
bnB1dCgnJXMnLCB0aW1lb3V0PSVzLCBuZWVkc19zZXJ2ZXJzPSVzLCByZWZlcmVuY2VfZmlsZXM9
JXMsIHNob3VsZF9ydW5fcGl4ZWxfdGVzdHM9JXMsIHRleHRfZGlmZl9vcHRpb25zPVslc10pIiAl
IChzZWxmLnRlc3RfbmFtZSwgc2VsZi50aW1lb3V0LCBzZWxmLm5lZWRzX3NlcnZlcnMsIHNlbGYu
cmVmZXJlbmNlX2ZpbGVzLCBzZWxmLnNob3VsZF9ydW5fcGl4ZWxfdGVzdHMsIHRleHRfZGlmZl9v
cHRpb25fcmVwcikK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>287760</attachid>
            <date>2016-09-02 08:13:51 -0700</date>
            <delta_ts>2016-09-05 02:50:34 -0700</delta_ts>
            <desc>DumpJSConsoleLogInStderr option</desc>
            <filename>bug-161310-20160902171134.patch</filename>
            <type>text/plain</type>
            <size>19778</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA1MzM5CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMzY1MmQ0MGU3ODcyYTkyYmI2NjEzMDFhZjIzOWM2ZjJh
NjY2NGE4NC4uZjU0NGE3NTRlOWRhNjlhYjU5N2RmMTNlMTYzMTY2MWQ0ZGY1MWRhOSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3
IEBACisyMDE2LTA5LTAyICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAg
ICAgICBUZXN0IGluZnJhc3RydWN0dXJlIHNob3VsZCBhbGxvdyB0byBmaWx0ZXIgb3V0IHRleHQg
b3V0cHV0IGJlZm9yZSBkb2luZyBhIGNvbXBhcmlzb24gd2l0aCB0aGUgYmFzZWxpbmUKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MTMxMAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGluZyBhIER1bXBK
U0NvbnNvbGVMb2dJblN0ZGVyciB0ZXN0IGV4cGVjdGF0aW9uLgorICAgICAgICBXaGVuIHNldCwg
V1RSIChhbmQgRFJUIGluIHRoZSBmdXR1cmUpIHdpbGwgb3V0cHV0IEpTIGNvbnNvbGUgbG9nIGlu
IHRoZSBzdGRlcnIgYW5kIG5vdCB0aGUgdGVzdCBvdXRwdXQuCisgICAgICAgIFRoaXMgYWxsb3dz
IHJlbW92aW5nIHBvdGVudGlhbGx5IGZsYWt5IGluZm9ybWF0aW9uIHdoaWxlIHN0aWxsIGJlaW5n
IGFibGUgdG8gcmVhZCBpdCBmb3IgaW52ZXN0aWdhdGlvbi4KKworICAgICAgICAqIFNjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL21hbmFnZXIucHk6CisgICAgICAgIChN
YW5hZ2VyLl90ZXN0X2lucHV0X2Zvcl9maWxlKTogQWN0aXZhdGluZyBzaG91bGRfZHVtcF9qc2Nv
bnNvbGVsb2dfaW5fc3RkZXJyIGJhc2VkIG9uIHRoZSB0ZXN0IGV4cGVjdGF0aW9uLgorICAgICAg
ICAoTWFuYWdlci5fdGVzdF9zaG91bGRfZHVtcF9qc2NvbnNvbGVsb2dfaW5fc3RkZXJyKToKKyAg
ICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9zaW5nbGVf
dGVzdF9ydW5uZXIucHk6CisgICAgICAgIChTaW5nbGVUZXN0UnVubmVyLl9faW5pdF9fKToKKyAg
ICAgICAgKFNpbmdsZVRlc3RSdW5uZXIuX2RyaXZlcl9pbnB1dCk6IEFkZGluZyBzaG91bGRfZHVt
cF9qc2NvbnNvbGVsb2dfaW5fc3RkZXJyIGRyaXZlciBpbnB1dCBvcHRpb24uCisgICAgICAgICog
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfZXhwZWN0YXRpb25zLnB5
OiBBZGRpbmcgcGFyc2luZyBmb3IgdGhlIG5ldyBEdW1wSlNDb25zb2xlTG9nSW5TdGRlcnIga2V5
d29yZC4KKyAgICAgICAgKFRlc3RFeHBlY3RhdGlvblBhcnNlcik6CisgICAgICAgIChUZXN0RXhw
ZWN0YXRpb25QYXJzZXIuX3Rva2VuaXplX2xpbmUpOgorICAgICAgICAoVGVzdEV4cGVjdGF0aW9u
TGluZS5fZm9ybWF0X2xpbmUpOgorICAgICAgICAoVGVzdEV4cGVjdGF0aW9ucyk6CisgICAgICAg
ICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfaW5wdXQucHk6IEFk
ZGluZyBzaG91bGRfZHVtcF9qc2NvbnNvbGVsb2dfaW5fc3RkZXJyIG9wdGlvbi4KKyAgICAgICAg
KFRlc3RJbnB1dC5fX2luaXRfXyk6CisgICAgICAgIChUZXN0SW5wdXQuX19yZXByX18pOgorICAg
ICAgICAqIFNjcmlwdHMvd2Via2l0cHkvcG9ydC9kcml2ZXIucHk6CisgICAgICAgIChEcml2ZXJJ
bnB1dC5fX2luaXRfXyk6CisgICAgICAgIChEcml2ZXJJbnB1dC5fX3JlcHJfXyk6CisgICAgICAg
IChEcml2ZXIuX2NvbW1hbmRfZnJvbV9kcml2ZXJfaW5wdXQpOiBTZXR0aW5nIC0tanNjb25zb2xl
bG9nLWluLXN0ZGVyciBhY2NvcmRpbmcgc2hvdWxkX2R1bXBfanNjb25zb2xlbG9nX2luX3N0ZGVy
ciBvcHRpb24uCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9Jbmpl
Y3RlZEJ1bmRsZS5jcHA6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlOjpkaWRSZWNlaXZl
TWVzc2FnZVRvUGFnZSk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9JbmplY3RlZEJ1bmRsZS5oOgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZTo6c2hvdWxk
RHVtcEpTQ29uc29sZUxvZ0luU3RkZXJyKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHA6CisgICAgICAgIChXVFI6OkluamVj
dGVkQnVuZGxlUGFnZTo6d2lsbEFkZE1lc3NhZ2VUb0NvbnNvbGUpOiBQcmludGluZyB0aGUgY29u
c29sZSBsb2cgbWVzc2FnZSBpbiB0aGUgc3RkZXJyIGluIGxpZXUgb2YKKyAgICAgICAgcmVndWxh
ciBvdXRwdXQgaWYgc2hvdWxkX2R1bXBfanNjb25zb2xlbG9nX2luX3N0ZGVyciBpcyBzZXQuCisg
ICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChX
VFI6OnBhcnNlSW5wdXRMaW5lKTogQ29tcHV0aW5nIHNob3VsZF9kdW1wX2pzY29uc29sZWxvZ19p
bl9zdGRlcnIgYmFzZWQgb24gLS1qc2NvbnNvbGVsb2ctaW4tc3RkZXJyLgorICAgICAgICAoV1RS
OjpUZXN0Q29udHJvbGxlcjo6cnVuVGVzdCk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9U
ZXN0SW52b2NhdGlvbi5jcHA6CisgICAgICAgIChXVFI6OlRlc3RJbnZvY2F0aW9uOjppbnZva2Up
OgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uaDoKKyAgICAgICAg
KFdUUjo6VGVzdEludm9jYXRpb246OnNldFNob3VsZER1bXBKU0NvbnNvbGVMb2dJblN0ZGVycik6
CisKIDIwMTYtMDktMDEgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KIAogICAgICAg
ICBCdWlsZCBmaXguCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9jb250cm9sbGVycy9tYW5hZ2VyLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvY29udHJvbGxlcnMvbWFuYWdlci5weQppbmRleCBhZmVmMDgxODM2OTYzNWNkMDdm
ODJlMjkzMDZlMzkyM2M5ZWM5MGFhLi5mNzFkYWYyNDNiNTMyNGRlMTBiNTA5ZGVjMDYzYmI5ZjMx
MGNlODY5IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9j
b250cm9sbGVycy9tYW5hZ2VyLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL2NvbnRyb2xsZXJzL21hbmFnZXIucHkKQEAgLTEyOCwxMSArMTI4LDE1IEBAIGNsYXNz
IE1hbmFnZXIob2JqZWN0KToKICAgICBkZWYgX3Rlc3RfaW5wdXRfZm9yX2ZpbGUoc2VsZiwgdGVz
dF9maWxlKToKICAgICAgICAgcmV0dXJuIFRlc3RJbnB1dCh0ZXN0X2ZpbGUsCiAgICAgICAgICAg
ICBzZWxmLl9vcHRpb25zLnNsb3dfdGltZV9vdXRfbXMgaWYgc2VsZi5fdGVzdF9pc19zbG93KHRl
c3RfZmlsZSkgZWxzZSBzZWxmLl9vcHRpb25zLnRpbWVfb3V0X21zLAotICAgICAgICAgICAgc2Vs
Zi5faXNfaHR0cF90ZXN0KHRlc3RfZmlsZSkpCisgICAgICAgICAgICBzZWxmLl9pc19odHRwX3Rl
c3QodGVzdF9maWxlKSwKKyAgICAgICAgICAgIHNob3VsZF9kdW1wX2pzY29uc29sZWxvZ19pbl9z
dGRlcnI9c2VsZi5fdGVzdF9zaG91bGRfZHVtcF9qc2NvbnNvbGVsb2dfaW5fc3RkZXJyKHRlc3Rf
ZmlsZSkpCiAKICAgICBkZWYgX3Rlc3RfaXNfc2xvdyhzZWxmLCB0ZXN0X2ZpbGUpOgogICAgICAg
ICByZXR1cm4gc2VsZi5fZXhwZWN0YXRpb25zLm1vZGVsKCkuaGFzX21vZGlmaWVyKHRlc3RfZmls
ZSwgdGVzdF9leHBlY3RhdGlvbnMuU0xPVykKIAorICAgIGRlZiBfdGVzdF9zaG91bGRfZHVtcF9q
c2NvbnNvbGVsb2dfaW5fc3RkZXJyKHNlbGYsIHRlc3RfZmlsZSk6CisgICAgICAgIHJldHVybiBz
ZWxmLl9leHBlY3RhdGlvbnMubW9kZWwoKS5oYXNfbW9kaWZpZXIodGVzdF9maWxlLCB0ZXN0X2V4
cGVjdGF0aW9ucy5EVU1QSlNDT05TT0xFTE9HSU5TVERFUlIpCisKICAgICBkZWYgbmVlZHNfc2Vy
dmVycyhzZWxmLCB0ZXN0X25hbWVzKToKICAgICAgICAgcmV0dXJuIGFueShzZWxmLl9pc19odHRw
X3Rlc3QodGVzdF9uYW1lKSBmb3IgdGVzdF9uYW1lIGluIHRlc3RfbmFtZXMpIGFuZCBzZWxmLl9v
cHRpb25zLmh0dHAKIApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvY29udHJvbGxlcnMvc2luZ2xlX3Rlc3RfcnVubmVyLnB5IGIvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvc2luZ2xlX3Rlc3RfcnVubmVyLnB5Cmlu
ZGV4IGU4NTgzNTI0NzAzZTJiZjM4NmFlZDhkZmRmNjY2NTcwZGU4ZjhhMmUuLjUwMjhhZTdlMzZj
ZGE2NzBjOTUyZmJlOGI3MzRmMjBiNzJmMWRlMzUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL3NpbmdsZV90ZXN0X3J1bm5lci5weQor
KysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9zaW5n
bGVfdGVzdF9ydW5uZXIucHkKQEAgLTU4LDYgKzU4LDcgQEAgY2xhc3MgU2luZ2xlVGVzdFJ1bm5l
cihvYmplY3QpOgogICAgICAgICBzZWxmLl93b3JrZXJfbmFtZSA9IHdvcmtlcl9uYW1lCiAgICAg
ICAgIHNlbGYuX3Rlc3RfbmFtZSA9IHRlc3RfaW5wdXQudGVzdF9uYW1lCiAgICAgICAgIHNlbGYu
X3Nob3VsZF9ydW5fcGl4ZWxfdGVzdCA9IHRlc3RfaW5wdXQuc2hvdWxkX3J1bl9waXhlbF90ZXN0
CisgICAgICAgIHNlbGYuX3Nob3VsZF9kdW1wX2pzY29uc29sZWxvZ19pbl9zdGRlcnIgPSB0ZXN0
X2lucHV0LnNob3VsZF9kdW1wX2pzY29uc29sZWxvZ19pbl9zdGRlcnIKICAgICAgICAgc2VsZi5f
cmVmZXJlbmNlX2ZpbGVzID0gdGVzdF9pbnB1dC5yZWZlcmVuY2VfZmlsZXMKICAgICAgICAgc2Vs
Zi5fc3RvcF93aGVuX2RvbmUgPSBzdG9wX3doZW5fZG9uZQogICAgICAgICBzZWxmLl90aW1lb3V0
ID0gdGVzdF9pbnB1dC50aW1lb3V0CkBAIC04OSw3ICs5MCw3IEBAIGNsYXNzIFNpbmdsZVRlc3RS
dW5uZXIob2JqZWN0KToKICAgICAgICAgaW1hZ2VfaGFzaCA9IE5vbmUKICAgICAgICAgaWYgc2Vs
Zi5fc2hvdWxkX2ZldGNoX2V4cGVjdGVkX2NoZWNrc3VtKCk6CiAgICAgICAgICAgICBpbWFnZV9o
YXNoID0gc2VsZi5fcG9ydC5leHBlY3RlZF9jaGVja3N1bShzZWxmLl90ZXN0X25hbWUpCi0gICAg
ICAgIHJldHVybiBEcml2ZXJJbnB1dChzZWxmLl90ZXN0X25hbWUsIHNlbGYuX3RpbWVvdXQsIGlt
YWdlX2hhc2gsIHNlbGYuX3Nob3VsZF9ydW5fcGl4ZWxfdGVzdCkKKyAgICAgICAgcmV0dXJuIERy
aXZlcklucHV0KHNlbGYuX3Rlc3RfbmFtZSwgc2VsZi5fdGltZW91dCwgaW1hZ2VfaGFzaCwgc2Vs
Zi5fc2hvdWxkX3J1bl9waXhlbF90ZXN0LCBzZWxmLl9zaG91bGRfZHVtcF9qc2NvbnNvbGVsb2df
aW5fc3RkZXJyKQogCiAgICAgZGVmIHJ1bihzZWxmKToKICAgICAgICAgaWYgc2VsZi5fcmVmZXJl
bmNlX2ZpbGVzOgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvbW9kZWxzL3Rlc3RfZXhwZWN0YXRpb25zLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfZXhwZWN0YXRpb25zLnB5CmluZGV4IGJiNTU4Yzk4MzQ1
YTFiOTNjMmFhMjUxNDQxMmY4MzJhYjU1YTRhYzguLmIyZjVlZDkzOGRlY2Y1OGRlODFlNWU3NTM5
MmViMzI3ZDA5YTEwOTQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL21vZGVscy90ZXN0X2V4cGVjdGF0aW9ucy5weQorKysgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVzdF9leHBlY3RhdGlvbnMucHkKQEAgLTQzLDcg
KzQzLDcgQEAgX2xvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKQogIyBGSVhNRTogcmFu
Z2UoKSBzdGFydHMgd2l0aCAwIHdoaWNoIG1ha2VzIGlmIGV4cGVjdGF0aW9uIGNoZWNrcyBoYXJk
ZXIKICMgYXMgUEFTUyBpcyAwLgogKFBBU1MsIEZBSUwsIFRFWFQsIElNQUdFLCBJTUFHRV9QTFVT
X1RFWFQsIEFVRElPLCBUSU1FT1VULCBDUkFTSCwgU0tJUCwgV09OVEZJWCwKLSBTTE9XLCBSRUJB
U0VMSU5FLCBNSVNTSU5HLCBGTEFLWSwgTk9XLCBOT05FKSA9IHJhbmdlKDE2KQorIFNMT1csIERV
TVBKU0NPTlNPTEVMT0dJTlNUREVSUiwgUkVCQVNFTElORSwgTUlTU0lORywgRkxBS1ksIE5PVywg
Tk9ORSkgPSByYW5nZSgxNykKIAogIyBGSVhNRTogUGVyaGFzIHRoZXNlIHR3byByb3V0aW5lcyBz
aG91bGQgYmUgcGFydCBvZiB0aGUgUG9ydCBpbnN0ZWFkPwogQkFTRUxJTkVfU1VGRklYX0xJU1Qg
PSAoJ3BuZycsICd3YXYnLCAndHh0JykKQEAgLTcxLDYgKzcxLDcgQEAgY2xhc3MgVGVzdEV4cGVj
dGF0aW9uUGFyc2VyKG9iamVjdCk6CiAgICAgUEFTU19FWFBFQ1RBVElPTiA9ICdwYXNzJwogICAg
IFNLSVBfTU9ESUZJRVIgPSAnc2tpcCcKICAgICBTTE9XX01PRElGSUVSID0gJ3Nsb3cnCisgICAg
RFVNUEpTQ09OU09MRUxPR0lOU1RERVJSX01PRElGSUVSID0gJ2R1bXBqc2NvbnNvbGVsb2dpbnN0
ZGVycicKICAgICBXT05URklYX01PRElGSUVSID0gJ3dvbnRmaXgnCiAKICAgICBUSU1FT1VUX0VY
UEVDVEFUSU9OID0gJ3RpbWVvdXQnCkBAIC0zMTksNyArMzIwLDcgQEAgY2xhc3MgVGVzdEV4cGVj
dGF0aW9uUGFyc2VyKG9iamVjdCk6CiAgICAgICAgICAgICBlbGlmIHN0YXRlID09ICdjb25maWd1
cmF0aW9uJzoKICAgICAgICAgICAgICAgICBtb2RpZmllcnMuYXBwZW5kKGNscy5fY29uZmlndXJh
dGlvbl90b2tlbnMuZ2V0KHRva2VuLCB0b2tlbikpCiAgICAgICAgICAgICBlbGlmIHN0YXRlID09
ICdleHBlY3RhdGlvbnMnOgotICAgICAgICAgICAgICAgIGlmIHRva2VuIGluICgnUmViYXNlbGlu
ZScsICdTa2lwJywgJ1Nsb3cnLCAnV29udEZpeCcpOgorICAgICAgICAgICAgICAgIGlmIHRva2Vu
IGluICgnUmViYXNlbGluZScsICdTa2lwJywgJ1Nsb3cnLCAnV29udEZpeCcsICdEdW1wSlNDb25z
b2xlTG9nSW5TVERFUlInKToKICAgICAgICAgICAgICAgICAgICAgbW9kaWZpZXJzLmFwcGVuZCh0
b2tlbi51cHBlcigpKQogICAgICAgICAgICAgICAgIGVsaWYgdG9rZW4gbm90IGluIGNscy5fZXhw
ZWN0YXRpb25fdG9rZW5zOgogICAgICAgICAgICAgICAgICAgICB3YXJuaW5ncy5hcHBlbmQoJ1Vu
cmVjb2duaXplZCBleHBlY3RhdGlvbiAiJXMiJyAlIHRva2VuKQpAQCAtMzQ1LDcgKzM0Niw3IEBA
IGNsYXNzIFRlc3RFeHBlY3RhdGlvblBhcnNlcihvYmplY3QpOgogICAgICAgICAgICAgIyBGSVhN
RTogVGhpcyBpcyByZWFsbHkgYSBzZW1hbnRpYyB3YXJuaW5nIGFuZCBzaG91bGRuJ3QgYmUgaGVy
ZS4gUmVtb3ZlIHdoZW4gd2UgZHJvcCB0aGUgb2xkIHN5bnRheC4KICAgICAgICAgICAgIHdhcm5p
bmdzLmFwcGVuZCgnQSB0ZXN0IG1hcmtlZCBTa2lwIG11c3Qgbm90IGhhdmUgb3RoZXIgZXhwZWN0
YXRpb25zLicpCiAgICAgICAgIGVsaWYgbm90IGV4cGVjdGF0aW9uczoKLSAgICAgICAgICAgIGlm
ICdTS0lQJyBub3QgaW4gbW9kaWZpZXJzIGFuZCAnUkVCQVNFTElORScgbm90IGluIG1vZGlmaWVy
cyBhbmQgJ1NMT1cnIG5vdCBpbiBtb2RpZmllcnM6CisgICAgICAgICAgICBpZiAnU0tJUCcgbm90
IGluIG1vZGlmaWVycyBhbmQgJ1JFQkFTRUxJTkUnIG5vdCBpbiBtb2RpZmllcnMgYW5kICdTTE9X
JyBub3QgaW4gbW9kaWZpZXJzIGFuZCAnRFVNUEpTQ09OU09MRUxPR0lOU1RERVJSJyBub3QgaW4g
bW9kaWZpZXJzOgogICAgICAgICAgICAgICAgIG1vZGlmaWVycy5hcHBlbmQoJ1NLSVAnKQogICAg
ICAgICAgICAgZXhwZWN0YXRpb25zID0gWydQQVNTJ10KIApAQCAtNDY3LDcgKzQ2OCw3IEBAIGNs
YXNzIFRlc3RFeHBlY3RhdGlvbkxpbmUob2JqZWN0KToKICAgICAgICAgICAgIGVsaWYgbW9kaWZp
ZXIuc3RhcnRzd2l0aCgnQlVHJyk6CiAgICAgICAgICAgICAgICAgIyBGSVhNRTogd2Ugc2hvdWxk
IHByZXNlcnZlIGNhc2Ugb25jZSB3ZSBjYW4gZHJvcCB0aGUgb2xkIHN5bnRheC4KICAgICAgICAg
ICAgICAgICBidWdzLmFwcGVuZCgnQnVnKCcgKyBtb2RpZmllclszOl0ubG93ZXIoKSArICcpJykK
LSAgICAgICAgICAgIGVsaWYgbW9kaWZpZXIgaW4gKCdTTE9XJywgJ1NLSVAnLCAnUkVCQVNFTElO
RScsICdXT05URklYJyk6CisgICAgICAgICAgICBlbGlmIG1vZGlmaWVyIGluICgnU0xPVycsICdT
S0lQJywgJ1JFQkFTRUxJTkUnLCAnV09OVEZJWCcsICdEVU1QSlNDT05TT0xFTE9HSU5TVERFUlIn
KToKICAgICAgICAgICAgICAgICBuZXdfZXhwZWN0YXRpb25zLmFwcGVuZChUZXN0RXhwZWN0YXRp
b25QYXJzZXIuX2ludmVydGVkX2V4cGVjdGF0aW9uX3Rva2Vucy5nZXQobW9kaWZpZXIpKQogICAg
ICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgICBuZXdfbW9kaWZpZXJzLmFwcGVuZChUZXN0
RXhwZWN0YXRpb25QYXJzZXIuX2ludmVydGVkX2NvbmZpZ3VyYXRpb25fdG9rZW5zLmdldChtb2Rp
ZmllciwgbW9kaWZpZXIpKQpAQCAtNzg2LDYgKzc4Nyw3IEBAIGNsYXNzIFRlc3RFeHBlY3RhdGlv
bnMob2JqZWN0KToKICAgICBNT0RJRklFUlMgPSB7VGVzdEV4cGVjdGF0aW9uUGFyc2VyLlNLSVBf
TU9ESUZJRVI6IFNLSVAsCiAgICAgICAgICAgICAgICAgIFRlc3RFeHBlY3RhdGlvblBhcnNlci5X
T05URklYX01PRElGSUVSOiBXT05URklYLAogICAgICAgICAgICAgICAgICBUZXN0RXhwZWN0YXRp
b25QYXJzZXIuU0xPV19NT0RJRklFUjogU0xPVywKKyAgICAgICAgICAgICAgICAgVGVzdEV4cGVj
dGF0aW9uUGFyc2VyLkRVTVBKU0NPTlNPTEVMT0dJTlNUREVSUl9NT0RJRklFUjogRFVNUEpTQ09O
U09MRUxPR0lOU1RERVJSLAogICAgICAgICAgICAgICAgICBUZXN0RXhwZWN0YXRpb25QYXJzZXIu
UkVCQVNFTElORV9NT0RJRklFUjogUkVCQVNFTElORSwKICAgICAgICAgICAgICAgICAgJ25vbmUn
OiBOT05FfQogCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9tb2RlbHMvdGVzdF9pbnB1dC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL21vZGVscy90ZXN0X2lucHV0LnB5CmluZGV4IDMzZTQ0NThjZWJlYTViOWFhNWZiYTRkNDZj
ZTZmNWZjYzY5ZDE2NGEuLmU0YTY5ZTEzNTFjMTJiN2IyNTBjYzYzZTMwYTVhZGZmOTdkOGZlMjgg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90
ZXN0X2lucHV0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21v
ZGVscy90ZXN0X2lucHV0LnB5CkBAIC0zMSw3ICszMSw3IEBACiBjbGFzcyBUZXN0SW5wdXQob2Jq
ZWN0KToKICAgICAiIiJHcm91cHMgaW5mb3JtYXRpb24gYWJvdXQgYSB0ZXN0IGZvciBlYXN5IHBh
c3Npbmcgb2YgZGF0YS4iIiIKIAotICAgIGRlZiBfX2luaXRfXyhzZWxmLCB0ZXN0X25hbWUsIHRp
bWVvdXQ9Tm9uZSwgbmVlZHNfc2VydmVycz1Ob25lLCByZWZlcmVuY2VfZmlsZXM9Tm9uZSwgc2hv
dWxkX3J1bl9waXhlbF90ZXN0cz1Ob25lKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgdGVzdF9u
YW1lLCB0aW1lb3V0PU5vbmUsIG5lZWRzX3NlcnZlcnM9Tm9uZSwgcmVmZXJlbmNlX2ZpbGVzPU5v
bmUsIHNob3VsZF9ydW5fcGl4ZWxfdGVzdHM9Tm9uZSwgc2hvdWxkX2R1bXBfanNjb25zb2xlbG9n
X2luX3N0ZGVycj1Ob25lKToKICAgICAgICAgIyBUZXN0SW5wdXQgb2JqZWN0cyBhcmUgbm9ybWFs
bHkgY29uc3RydWN0ZWQgYnkgdGhlIG1hbmFnZXIgYW5kIHBhc3NlZAogICAgICAgICAjIHRvIHRo
ZSB3b3JrZXJzLCBidXQgdGhlc2Ugc29tZSBmaWVsZHMgYXJlIHNldCBsYXppbHkgaW4gdGhlIHdv
cmtlcnMgd2hlcmUgcG9zc2libGUKICAgICAgICAgIyBiZWNhdXNlIHRoZXkgcmVxdWlyZSB1cyB0
byBsb29rIGF0IHRoZSBmaWxlc3lzdGVtIGFuZCB3ZSB3YW50IHRvIGJlIGFibGUgdG8gZG8gdGhh
dCBpbiBwYXJhbGxlbC4KQEAgLTQwLDYgKzQwLDcgQEAgY2xhc3MgVGVzdElucHV0KG9iamVjdCk6
CiAgICAgICAgIHNlbGYubmVlZHNfc2VydmVycyA9IG5lZWRzX3NlcnZlcnMKICAgICAgICAgc2Vs
Zi5yZWZlcmVuY2VfZmlsZXMgPSByZWZlcmVuY2VfZmlsZXMKICAgICAgICAgc2VsZi5zaG91bGRf
cnVuX3BpeGVsX3Rlc3RzID0gc2hvdWxkX3J1bl9waXhlbF90ZXN0cworICAgICAgICBzZWxmLnNo
b3VsZF9kdW1wX2pzY29uc29sZWxvZ19pbl9zdGRlcnIgPSBzaG91bGRfZHVtcF9qc2NvbnNvbGVs
b2dfaW5fc3RkZXJyCiAKICAgICBkZWYgX19yZXByX18oc2VsZik6Ci0gICAgICAgIHJldHVybiAi
VGVzdElucHV0KCclcycsIHRpbWVvdXQ9JXMsIG5lZWRzX3NlcnZlcnM9JXMsIHJlZmVyZW5jZV9m
aWxlcz0lcywgc2hvdWxkX3J1bl9waXhlbF90ZXN0cz0lcykiICUgKHNlbGYudGVzdF9uYW1lLCBz
ZWxmLnRpbWVvdXQsIHNlbGYubmVlZHNfc2VydmVycywgc2VsZi5yZWZlcmVuY2VfZmlsZXMsIHNl
bGYuc2hvdWxkX3J1bl9waXhlbF90ZXN0cykKKyAgICAgICAgcmV0dXJuICJUZXN0SW5wdXQoJyVz
JywgdGltZW91dD0lcywgbmVlZHNfc2VydmVycz0lcywgcmVmZXJlbmNlX2ZpbGVzPSVzLCBzaG91
bGRfcnVuX3BpeGVsX3Rlc3RzPSVzLCBzaG91bGRfZHVtcF9qc2NvbnNvbGVsb2dfaW5fc3RkZXJy
PSVzKSIgJSAoc2VsZi50ZXN0X25hbWUsIHNlbGYudGltZW91dCwgc2VsZi5uZWVkc19zZXJ2ZXJz
LCBzZWxmLnJlZmVyZW5jZV9maWxlcywgc2VsZi5zaG91bGRfcnVuX3BpeGVsX3Rlc3RzLCBzZWxm
LnNob3VsZF9kdW1wX2pzY29uc29sZWxvZ19pbl9zdGRlcnIpCmRpZmYgLS1naXQgYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L3BvcnQvZHJpdmVyLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9w
b3J0L2RyaXZlci5weQppbmRleCA0MGRmOTFlYzgyMTEzYzkwMDY2ODQ2NzMwNDk1ZjBmNTMyYzc1
ZGYxLi45ODIzZWQxOGM4ZTQyYTkzZTMyMTcxNzdjMzc1ZjQ5OGE0YjY3OGUwIDEwMDY0NAotLS0g
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvZHJpdmVyLnB5CisrKyBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvcG9ydC9kcml2ZXIucHkKQEAgLTI4LDcgKzI4LDYgQEAKICMgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KIAogaW1wb3J0IGJhc2U2NAotaW1wb3J0IGNvcHkKIGltcG9ydCBsb2dnaW5nCiBpbXBvcnQg
cmUKIGltcG9ydCBzaGxleApAQCAtMzgsMjIgKzM3LDIyIEBAIGltcG9ydCBvcwogCiBmcm9tIHdl
YmtpdHB5LmNvbW1vbi5zeXN0ZW0gaW1wb3J0IHBhdGgKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5
c3RlbS5wcm9maWxlciBpbXBvcnQgUHJvZmlsZXJGYWN0b3J5Ci1mcm9tIHdlYmtpdHB5LmxheW91
dF90ZXN0cy5zZXJ2ZXJzLndlYl9wbGF0Zm9ybV90ZXN0X3NlcnZlciBpbXBvcnQgV2ViUGxhdGZv
cm1UZXN0U2VydmVyCiAKIAogX2xvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKQogCiAK
IGNsYXNzIERyaXZlcklucHV0KG9iamVjdCk6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHRlc3Rf
bmFtZSwgdGltZW91dCwgaW1hZ2VfaGFzaCwgc2hvdWxkX3J1bl9waXhlbF90ZXN0LCBhcmdzPU5v
bmUpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCB0ZXN0X25hbWUsIHRpbWVvdXQsIGltYWdlX2hh
c2gsIHNob3VsZF9ydW5fcGl4ZWxfdGVzdCwgc2hvdWxkX2R1bXBfanNjb25zb2xlbG9nX2luX3N0
ZGVycj1Ob25lLCBhcmdzPU5vbmUpOgogICAgICAgICBzZWxmLnRlc3RfbmFtZSA9IHRlc3RfbmFt
ZQogICAgICAgICBzZWxmLnRpbWVvdXQgPSB0aW1lb3V0ICAjIGluIG1zCiAgICAgICAgIHNlbGYu
aW1hZ2VfaGFzaCA9IGltYWdlX2hhc2gKICAgICAgICAgc2VsZi5zaG91bGRfcnVuX3BpeGVsX3Rl
c3QgPSBzaG91bGRfcnVuX3BpeGVsX3Rlc3QKKyAgICAgICAgc2VsZi5zaG91bGRfZHVtcF9qc2Nv
bnNvbGVsb2dfaW5fc3RkZXJyID0gc2hvdWxkX2R1bXBfanNjb25zb2xlbG9nX2luX3N0ZGVycgog
ICAgICAgICBzZWxmLmFyZ3MgPSBhcmdzIG9yIFtdCiAKICAgICBkZWYgX19yZXByX18oc2VsZik6
Ci0gICAgICAgIHJldHVybiAiRHJpdmVySW5wdXQodGVzdF9uYW1lPSd7fScsIHRpbWVvdXQ9e30s
IGltYWdlX2hhc2g9e30sIHNob3VsZF9ydW5fcGl4ZWxfdGVzdD17fSciLmZvcm1hdChzZWxmLnRl
c3RfbmFtZSwgc2VsZi50aW1lb3V0LCBzZWxmLmltYWdlX2hhc2gsIHNlbGYuc2hvdWxkX3J1bl9w
aXhlbF90ZXN0KQorICAgICAgICByZXR1cm4gIkRyaXZlcklucHV0KHRlc3RfbmFtZT0ne30nLCB0
aW1lb3V0PXt9LCBpbWFnZV9oYXNoPXt9LCBzaG91bGRfcnVuX3BpeGVsX3Rlc3Q9e30sIHNob3Vs
ZF9kdW1wX2pzY29uc29sZWxvZ19pbl9zdGRlcnI9e30nIi5mb3JtYXQoc2VsZi50ZXN0X25hbWUs
IHNlbGYudGltZW91dCwgc2VsZi5pbWFnZV9oYXNoLCBzZWxmLnNob3VsZF9ydW5fcGl4ZWxfdGVz
dCwgc2VsZi5zaG91bGRfZHVtcF9qc2NvbnNvbGVsb2dfaW5fc3RkZXJyKQogCiAKIGNsYXNzIERy
aXZlck91dHB1dChvYmplY3QpOgpAQCAtNDgzLDYgKzQ4Miw4IEBAIGNsYXNzIERyaXZlcihvYmpl
Y3QpOgogICAgICAgICAgICAgY29tbWFuZCArPSAiJy0tdGltZW91dCclcyIgJSBkcml2ZXJfaW5w
dXQudGltZW91dAogICAgICAgICBpZiBkcml2ZXJfaW5wdXQuc2hvdWxkX3J1bl9waXhlbF90ZXN0
OgogICAgICAgICAgICAgY29tbWFuZCArPSAiJy0tcGl4ZWwtdGVzdCIKKyAgICAgICAgaWYgZHJp
dmVyX2lucHV0LnNob3VsZF9kdW1wX2pzY29uc29sZWxvZ19pbl9zdGRlcnI6CisgICAgICAgICAg
ICBjb21tYW5kICs9ICInLS1qc2NvbnNvbGVsb2ctaW4tc3RkZXJyIgogICAgICAgICBpZiBkcml2
ZXJfaW5wdXQuaW1hZ2VfaGFzaDoKICAgICAgICAgICAgIGNvbW1hbmQgKz0gIiciICsgZHJpdmVy
X2lucHV0LmltYWdlX2hhc2gKICAgICAgICAgcmV0dXJuIGNvbW1hbmQgKyAiXG4iCmRpZmYgLS1n
aXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxl
LmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5k
bGUuY3BwCmluZGV4IGU2YzkyYzI1ZTVhOTIwZTJmMTg1MGFmN2E1YmM5OTMwOWE4Y2QxMzUuLjUz
NGNhMzg4MWU4ZmY3YzcwNmM1OTBhY2E0MTA0NDgzMWZlYjc3YWIgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCisrKyBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3Bw
CkBAIC0xNTUsNiArMTU1LDkgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZTo6ZGlkUmVjZWl2ZU1lc3Nh
Z2VUb1BhZ2UoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLU3RyaW5nUmVmIG0KICAgICAgICAgV0tS
ZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHRpbWVvdXRLZXkoQWRvcHRXSywgV0tTdHJpbmdDcmVhdGVX
aXRoVVRGOENTdHJpbmcoIlRpbWVvdXQiKSk7CiAgICAgICAgIG1fdGltZW91dCA9IChpbnQpV0tV
SW50NjRHZXRWYWx1ZShzdGF0aWNfY2FzdDxXS1VJbnQ2NFJlZj4oV0tEaWN0aW9uYXJ5R2V0SXRl
bUZvcktleShtZXNzYWdlQm9keURpY3Rpb25hcnksIHRpbWVvdXRLZXkuZ2V0KCkpKSk7CiAKKyAg
ICAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHNob3VsZER1bXBKU0NvbnNvbGVMb2dJblN0
ZGVycktleShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiU2hvdWxkRHVt
cEpTQ29uc29sZUxvZ0luU3RkZXJyIikpOworICAgICAgICBtX3Nob3VsZER1bXBKU0NvbnNvbGVM
b2dJblN0ZGVyciA9IFdLQm9vbGVhbkdldFZhbHVlKHN0YXRpY19jYXN0PFdLQm9vbGVhblJlZj4o
V0tEaWN0aW9uYXJ5R2V0SXRlbUZvcktleShtZXNzYWdlQm9keURpY3Rpb25hcnksIHNob3VsZER1
bXBKU0NvbnNvbGVMb2dJblN0ZGVycktleS5nZXQoKSkpKTsKKwogICAgICAgICBXS1JldGFpblB0
cjxXS1N0cmluZ1JlZj4gYWNrTWVzc2FnZU5hbWUoQWRvcHRXSywgV0tTdHJpbmdDcmVhdGVXaXRo
VVRGOENTdHJpbmcoIkFjayIpKTsKICAgICAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IGFj
a01lc3NhZ2VCb2R5KEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJCZWdp
blRlc3QiKSk7CiAgICAgICAgIFdLQnVuZGxlUGFnZVBvc3RNZXNzYWdlKHBhZ2UsIGFja01lc3Nh
Z2VOYW1lLmdldCgpLCBhY2tNZXNzYWdlQm9keS5nZXQoKSk7CmRpZmYgLS1naXQgYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmggYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmgKaW5kZXggZDUx
NzcwYWNiODc0ZTNlMjQ2NTJlMTEwZDBjNDFiNTM5NTE1ZTljYS4uMTAzNjczOTM4MzJkODU4ZDBh
NWQwNTA5ZWM1MGZiZmU4ODA5YjQ4MyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuaApAQCAtNzcsNyArNzcsOCBAQCBw
dWJsaWM6CiAKICAgICBib29sIHNob3VsZER1bXBQaXhlbHMoKSBjb25zdCB7IHJldHVybiBtX2R1
bXBQaXhlbHM7IH0KICAgICBib29sIHVzZVdhaXRUb0R1bXBXYXRjaGRvZ1RpbWVyKCkgY29uc3Qg
eyByZXR1cm4gbV91c2VXYWl0VG9EdW1wV2F0Y2hkb2dUaW1lcjsgfQotICAgIAorICAgIGJvb2wg
c2hvdWxkRHVtcEpTQ29uc29sZUxvZ0luU3RkZXJyKCkgY29uc3QgeyByZXR1cm4gbV9zaG91bGRE
dW1wSlNDb25zb2xlTG9nSW5TdGRlcnI7IH07CisKICAgICB2b2lkIG91dHB1dFRleHQoY29uc3Qg
U3RyaW5nJik7CiAgICAgdm9pZCBwb3N0TmV3QmVmb3JlVW5sb2FkUmV0dXJuVmFsdWUoYm9vbCk7
CiAgICAgdm9pZCBwb3N0QWRkQ2hyb21lSW5wdXRGaWVsZCgpOwpAQCAtMTcyLDYgKzE3Myw3IEBA
IHByaXZhdGU6CiAgICAgYm9vbCBtX3VzZVdvcmtRdWV1ZTsKICAgICBpbnQgbV90aW1lb3V0Owog
ICAgIGJvb2wgbV9waXhlbFJlc3VsdElzUGVuZGluZyB7IGZhbHNlIH07CisgICAgYm9vbCBtX3No
b3VsZER1bXBKU0NvbnNvbGVMb2dJblN0ZGVyciB7IGZhbHNlIH07CiAKICAgICBXS1JldGFpblB0
cjxXS0RhdGFSZWY+IG1fYXVkaW9SZXN1bHQ7CiAgICAgV0tSZXRhaW5QdHI8V0tJbWFnZVJlZj4g
bV9waXhlbFJlc3VsdDsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcAppbmRleCAxODk5YThiM2EzZjRk
N2MyYmNiNGY3ZjU5ODE1ZGZhODJhNjQwZjZmLi5hYjhjZDIyZDExYzc0NjNiYzY3MTRjN2IwZmQ2
OGY2MzcyOTQxMTE4IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3BwCkBAIC0xNDU3LDcgKzE0NTcs
MTEgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OndpbGxBZGRNZXNzYWdlVG9Db25zb2xlKFdL
U3RyaW5nUmVmIG1lc3NhZ2UsIHVpbnQzMl90IGwKICAgICB9CiAgICAgc3RyaW5nQnVpbGRlci5h
cHBlbmQobWVzc2FnZVN0cmluZyk7CiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoJ1xuJyk7Ci0g
ICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dChzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOwor
CisgICAgaWYgKGluamVjdGVkQnVuZGxlLnNob3VsZER1bXBKU0NvbnNvbGVMb2dJblN0ZGVycigp
KQorICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIiVzIiwgc3RyaW5nQnVpbGRlci50b1N0cmluZygp
LnV0ZjgoKS5kYXRhKCkpOworICAgIGVsc2UKKyAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0
VGV4dChzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOwogfQogCiB2b2lkIEluamVjdGVkQnVuZGxl
UGFnZTo6d2lsbFNldFN0YXR1c2JhclRleHQoV0tTdHJpbmdSZWYgc3RhdHVzYmFyVGV4dCkKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKaW5kZXggZDJlNDliYjVkYTg4
ZWJkMzdkYTBlZGY2YjIyZDM1MWY3YTJhZWZkOS4uM2U0OGM1NjI0MGQwMzFmZjRkMDUzNzQxOWE5
NWVhNzBjMGUxZjMwMCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29u
dHJvbGxlci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5j
cHAKQEAgLTk5NywxMiArOTk3LDExIEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OmNvbmZpZ3VyZVZp
ZXdGb3JUZXN0KGNvbnN0IFRlc3RJbnZvY2F0aW9uJiB0ZXN0KQogfQogCiBzdHJ1Y3QgVGVzdENv
bW1hbmQgewotICAgIFRlc3RDb21tYW5kKCkgOiBzaG91bGREdW1wUGl4ZWxzKGZhbHNlKSwgdGlt
ZW91dCgwKSB7IH0KLQogICAgIHN0ZDo6c3RyaW5nIHBhdGhPclVSTDsKLSAgICBib29sIHNob3Vs
ZER1bXBQaXhlbHM7CisgICAgYm9vbCBzaG91bGREdW1wUGl4ZWxzIHsgZmFsc2UgfTsKICAgICBz
dGQ6OnN0cmluZyBleHBlY3RlZFBpeGVsSGFzaDsKLSAgICBpbnQgdGltZW91dDsKKyAgICBpbnQg
dGltZW91dCB7IDAgfTsKKyAgICBib29sIHNob3VsZER1bXBKU0NvbnNvbGVMb2dJblN0ZGVyciB7
IGZhbHNlIH07CiB9OwogCiBjbGFzcyBDb21tYW5kVG9rZW5pemVyIHsKQEAgLTEwNzUsNyArMTA3
NCw5IEBAIFRlc3RDb21tYW5kIHBhcnNlSW5wdXRMaW5lKGNvbnN0IHN0ZDo6c3RyaW5nJiBpbnB1
dExpbmUpCiAgICAgICAgICAgICByZXN1bHQuc2hvdWxkRHVtcFBpeGVscyA9IHRydWU7CiAgICAg
ICAgICAgICBpZiAodG9rZW5pemVyLmhhc05leHQoKSkKICAgICAgICAgICAgICAgICByZXN1bHQu
ZXhwZWN0ZWRQaXhlbEhhc2ggPSB0b2tlbml6ZXIubmV4dCgpOwotICAgICAgICB9IGVsc2UKKyAg
ICAgICAgfSBlbHNlIGlmIChhcmcgPT0gc3RkOjpzdHJpbmcoIi0tanNjb25zb2xlbG9nLWluLXN0
ZGVyciIpKQorICAgICAgICAgICAgcmVzdWx0LnNob3VsZER1bXBKU0NvbnNvbGVMb2dJblN0ZGVy
ciA9IHRydWU7CisgICAgICAgIGVsc2UKICAgICAgICAgICAgIGRpZShpbnB1dExpbmUpOwogICAg
IH0KICAgICByZXR1cm4gcmVzdWx0OwpAQCAtMTA5Niw2ICsxMDk3LDcgQEAgYm9vbCBUZXN0Q29u
dHJvbGxlcjo6cnVuVGVzdChjb25zdCBjaGFyKiBpbnB1dExpbmUpCiAgICAgICAgIG1fY3VycmVu
dEludm9jYXRpb24tPnNldElzUGl4ZWxUZXN0KGNvbW1hbmQuZXhwZWN0ZWRQaXhlbEhhc2gpOwog
ICAgIGlmIChjb21tYW5kLnRpbWVvdXQgPiAwKQogICAgICAgICBtX2N1cnJlbnRJbnZvY2F0aW9u
LT5zZXRDdXN0b21UaW1lb3V0KGNvbW1hbmQudGltZW91dCk7CisgICAgbV9jdXJyZW50SW52b2Nh
dGlvbi0+c2V0U2hvdWxkRHVtcEpTQ29uc29sZUxvZ0luU3RkZXJyKGNvbW1hbmQuc2hvdWxkRHVt
cEpTQ29uc29sZUxvZ0luU3RkZXJyKTsKIAogICAgIHBsYXRmb3JtV2lsbFJ1blRlc3QoKm1fY3Vy
cmVudEludm9jYXRpb24pOwogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RJbnZvY2F0aW9uLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24u
Y3BwCmluZGV4IGQ5NDAwNmU5ZjU2ZWQ2YjdhMWQ2ZDBlZDgzNjYzMTMxNzQ1NzlkNTEuLmIzYWZl
NGViM2NlOTBkYTkyNTZiMDAzYTFiOWY4ZWUxYTUxNTQ0YWUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvVGVzdEludm9jYXRpb24uY3BwCkBAIC0xNDUsNiArMTQ1LDEwIEBAIHZvaWQgVGVzdElu
dm9jYXRpb246Omludm9rZSgpCiAgICAgV0tSZXRhaW5QdHI8V0tVSW50NjRSZWY+IHRpbWVvdXRW
YWx1ZSA9IGFkb3B0V0soV0tVSW50NjRDcmVhdGUobV90aW1lb3V0KSk7CiAgICAgV0tEaWN0aW9u
YXJ5U2V0SXRlbShiZWdpblRlc3RNZXNzYWdlQm9keS5nZXQoKSwgdGltZW91dEtleS5nZXQoKSwg
dGltZW91dFZhbHVlLmdldCgpKTsKIAorICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBzaG91
bGREdW1wSlNDb25zb2xlTG9nSW5TdGRlcnJLZXkgPSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0
aFVURjhDU3RyaW5nKCJTaG91bGREdW1wSlNDb25zb2xlTG9nSW5TdGRlcnIiKSk7CisgICAgV0tS
ZXRhaW5QdHI8V0tCb29sZWFuUmVmPiBzaG91bGREdW1wSlNDb25zb2xlTG9nSW5TdGRlcnJWYWx1
ZSA9IGFkb3B0V0soV0tCb29sZWFuQ3JlYXRlKG1fc2hvdWxkRHVtcEpTQ29uc29sZUxvZ0luU3Rk
ZXJyKSk7CisgICAgV0tEaWN0aW9uYXJ5U2V0SXRlbShiZWdpblRlc3RNZXNzYWdlQm9keS5nZXQo
KSwgc2hvdWxkRHVtcEpTQ29uc29sZUxvZ0luU3RkZXJyS2V5LmdldCgpLCBzaG91bGREdW1wSlND
b25zb2xlTG9nSW5TdGRlcnJWYWx1ZS5nZXQoKSk7CisKICAgICBXS1BhZ2VQb3N0TWVzc2FnZVRv
SW5qZWN0ZWRCdW5kbGUoVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLm1haW5XZWJWaWV3KCkt
PnBhZ2UoKSwgbWVzc2FnZU5hbWUuZ2V0KCksIGJlZ2luVGVzdE1lc3NhZ2VCb2R5LmdldCgpKTsK
IAogICAgIGJvb2wgc2hvdWxkT3BlbkV4dGVybmFsVVJMcyA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5oIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9UZXN0SW52b2NhdGlvbi5oCmluZGV4IDZhYjE2MmZmODc5MzE0MTU2MzYyMzllNTNj
OWYxMmNmMjBjZWVlY2QuLmU2OTViNWMwYTMzOTM3M2JhMzlkNzU4NDc0NjMxMjNiMTEyNmVmYmMg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uaAorKysg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmgKQEAgLTUxLDYgKzUxLDcg
QEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRDdXN0b21UaW1lb3V0KGludCBkdXJhdGlvbikgeyBt
X3RpbWVvdXQgPSBkdXJhdGlvbjsgfQogICAgIGludCBjdXN0b21UaW1lb3V0KCkgY29uc3QgeyBy
ZXR1cm4gbV90aW1lb3V0OyB9CisgICAgdm9pZCBzZXRTaG91bGREdW1wSlNDb25zb2xlTG9nSW5T
dGRlcnIoYm9vbCB2YWx1ZSkgeyBtX3Nob3VsZER1bXBKU0NvbnNvbGVMb2dJblN0ZGVyciA9IHZh
bHVlOyB9CiAKICAgICB2b2lkIGludm9rZSgpOwogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2VG
cm9tSW5qZWN0ZWRCdW5kbGUoV0tTdHJpbmdSZWYgbWVzc2FnZU5hbWUsIFdLVHlwZVJlZiBtZXNz
YWdlQm9keSk7CkBAIC05OSw2ICsxMDAsNyBAQCBwcml2YXRlOgogICAgIHN0ZDo6c3RyaW5nIG1f
ZXhwZWN0ZWRQaXhlbEhhc2g7CiAKICAgICBpbnQgbV90aW1lb3V0IHsgMCB9OworICAgIGJvb2wg
bV9zaG91bGREdW1wSlNDb25zb2xlTG9nSW5TdGRlcnIgeyBmYWxzZSB9OwogCiAgICAgLy8gSW52
b2NhdGlvbiBzdGF0ZQogICAgIGJvb2wgbV9nb3RJbml0aWFsUmVzcG9uc2UgeyBmYWxzZSB9Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>287943</attachid>
            <date>2016-09-05 02:50:45 -0700</date>
            <delta_ts>2016-09-05 07:36:45 -0700</delta_ts>
            <desc>Separate tests options file</desc>
            <filename>bug-161310-20160905114822.patch</filename>
            <type>text/plain</type>
            <size>29285</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA1NDI2CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZWVlN2Y3MGRlOTEzZDc1ZGZlNzY0YzQwNjNjZjQyMmI2
YzkzMzRhMy4uZTVhZjJkYzVlMzk5YjkzYjIwZWUwYzJhOWIyNDI2NDQ3YjAxMDI2OSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcz
IEBACisyMDE2LTA5LTA1ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAg
ICAgICBUZXN0IGluZnJhc3RydWN0dXJlIHNob3VsZCBhbGxvdyB0byBmaWx0ZXIgb3V0IHRleHQg
b3V0cHV0IGJlZm9yZSBkb2luZyBhIGNvbXBhcmlzb24gd2l0aCB0aGUgYmFzZWxpbmUKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MTMxMAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGluZyAtLWR1bXAt
anNjb25zb2xlbG9nLWluLXN0ZGVyciB0ZXN0IG9wdGlvbiBmb3IgRFJUIGFuZCBXVFIuCisgICAg
ICAgIFdoZW4gc2V0LCBXVFIgYW5kIERSVCBvdXRwdXQgSlMgY29uc29sZSBsb2cgaW4gdGhlIHN0
ZGVyciBhbmQgbm90IHRoZSB0ZXN0IG91dHB1dC4KKyAgICAgICAgVGhpcyBhbGxvd3MgcmVtb3Zp
bmcgcG90ZW50aWFsbHkgZmxha3kgaW5mb3JtYXRpb24gd2hpbGUgc3RpbGwgYmVpbmcgYWJsZSB0
byByZWFkIGl0IGZvciBpbnZlc3RpZ2F0aW9uLgorCisgICAgICAgIFVwZGF0ZWQgd2Via2l0cHkg
aW5mcmFzdHJ1Y3R1cmUgdG8gbG9vayBmb3IgdGVzdCBvcHRpb25zIGluIGEgZmlsZSBMYXlvdXRU
ZXN0cy90ZXN0LW9wdGlvbnMuanNvbi4KKyAgICAgICAgVGhpcyBmaWxlIGNvbnRhaW5zIGEgc2V0
IG9mIG9wdGlvbnMgZm9yIHNwZWNpZmljIHRlc3RzLgorICAgICAgICBPcHRpb25zIHN0YXJ0aW5n
IHdpdGggJy0tJyBhcmUgcGFzc2VkIGRpcmVjdGx5IGFzIHRlc3Qgb3B0aW9ucyB0byBEUlQgYW5k
IFdUUi4KKyAgICAgICAgT3RoZXIgb3B0aW9ucyBhcmUgcHJvY2Vzc2VkIGludGVybmFsbHkuCisK
KyAgICAgICAgQWRkZWQgc3VwcG9ydCBmb3IgYSAnc2xvdycgb3B0aW9uIHdoaWNoIGFsbG93cyB0
byBpbmNyZWFzZSB0aGUgdGltZW91dC4KKyAgICAgICAgVGhpcyBpcyBzaW1saWFyIHRvIFNMT1cg
dGVzdCBleHBlY3RhdGlvbi4KKyAgICAgICAgVGhlIGJlbmVmaXQgb2YgcHV0dGluZyB0aGF0IGlu
Zm9ybWF0aW9uIGluIExheW91dFRlc3RzL3Rlc3Qtb3B0aW9ucy5qc29uLCBpcyB0aGF0IHRoaXMg
ZmlsZSBjYW4gYmUgbW9kaWZpZWQgYnkgc2NyaXB0cy4KKyAgICAgICAgVGhpcyB3aWxsIGFsbG93
IHVzIHRvIGV4dHJhY3QgJzxtZXRhIG5hbWU9dGltZW91dCBjb250ZW50PWxvbmc+JyBmcm9tIFcz
QyB0ZXN0cyBhbmQgc2V0IHRoZSAnc2xvdycgb3B0aW9uIGF1dG9tYXRpY2FsbHkgd2hlbiBpbXBv
cnRpbmcgdGhlbS4KKworICAgICAgICBDaGFuZ2VzIGFyZSBjb3ZlcmVkIGJ5IHVwZGF0aW5nIGEg
ZmV0Y2ggdGVzdCB0byBvdXRwdXQgY29uc29sZSBsb2cgYW5kIHNldCBpdHMgb3B0aW9uIHRvIC0t
ZHVtcC1qc2NvbnNvbGVsb2ctaW4tc3RkZXJyIGluIHRlc3Qtb3B0aW9ucy5qc29uLgorICAgICAg
ICBUaGlzIHRlc3Qgc2hvdWxkIGhhdmUgdGhpcyBvcHRpb24gd2hlbiBmZXRjaCBBUEkgd2lsbCBz
dGFydCBsb2dnaW5nIHJlc291cmNlIGxvYWRlciBlcnJvcnMuCisKKyAgICAgICAgQ2hhbmdlcyBh
cmUgYWxzbyBjb3ZlcmVkIGJ5IHJlbW92aW5nIHRoZSBzbG93IGV4cGVjdGF0aW9uIGZvciBzb21l
IFczQyBYSFIgdGVzdHMuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJl
ZS5oOgorICAgICAgICAoVGVzdENvbW1hbmQ6OlRlc3RDb21tYW5kKToKKyAgICAgICAgKiBEdW1w
UmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZUNvbW1vbi5jcHA6CisgICAgICAgIChwYXJzZUlucHV0
TGluZSk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5oOgorICAgICAgICAo
VGVzdFJ1bm5lcjo6c2V0RHVtcEpTQ29uc29sZUxvZ0luU3RkZXJyKToKKyAgICAgICAgKFRlc3RS
dW5uZXI6OmR1bXBKU0NvbnNvbGVMb2dJblN0ZGVycik6CisgICAgICAgICogRHVtcFJlbmRlclRy
ZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tOgorICAgICAgICAocnVuVGVzdCk6CisgICAgICAgICog
RHVtcFJlbmRlclRyZWUvbWFjL1VJRGVsZWdhdGUubW06CisgICAgICAgICgtW1VJRGVsZWdhdGUg
d2ViVmlldzphZGRNZXNzYWdlVG9Db25zb2xlOndpdGhTb3VyY2U6XSk6CisgICAgICAgICogRHVt
cFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcDoKKyAgICAgICAgKHJ1blRlc3QpOgor
ICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3dpbi9VSURlbGVnYXRlLmNwcDoKKyAgICAgICAgKFVJ
RGVsZWdhdGU6OndlYlZpZXdBZGRNZXNzYWdlVG9Db25zb2xlKToKKyAgICAgICAgKiBTY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9tYW5hZ2VyLnB5OgorICAgICAgICAo
TWFuYWdlci5fX2luaXRfXyk6CisgICAgICAgIChNYW5hZ2VyLl90ZXN0X2lucHV0X2Zvcl9maWxl
KToKKyAgICAgICAgKE1hbmFnZXIuX3Rlc3RfaXNfc2xvdyk6CisgICAgICAgICogU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvc2luZ2xlX3Rlc3RfcnVubmVyLnB5Ogor
ICAgICAgICAoU2luZ2xlVGVzdFJ1bm5lci5fX2luaXRfXyk6CisgICAgICAgIChTaW5nbGVUZXN0
UnVubmVyLl9kcml2ZXJfaW5wdXQpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL21vZGVscy90ZXN0X2lucHV0LnB5OgorICAgICAgICAoVGVzdElucHV0Ll9faW5pdF9f
KToKKyAgICAgICAgKFRlc3RJbnB1dC5fX3JlcHJfXyk6CisgICAgICAgICogU2NyaXB0cy93ZWJr
aXRweS9wb3J0L2RyaXZlci5weToKKyAgICAgICAgKERyaXZlcklucHV0Ll9faW5pdF9fKToKKyAg
ICAgICAgKERyaXZlci5fY29tbWFuZF9mcm9tX2RyaXZlcl9pbnB1dCk6CisgICAgICAgICogV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHA6CisgICAgICAg
IChXVFI6OkluamVjdGVkQnVuZGxlOjpkaWRSZWNlaXZlTWVzc2FnZVRvUGFnZSk6CisgICAgICAg
ICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5oOgorICAg
ICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZTo6ZHVtcEpTQ29uc29sZUxvZ0luU3RkZXJyKToKKyAg
ICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFn
ZS5jcHA6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6d2lsbEFkZE1lc3NhZ2VU
b0NvbnNvbGUpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3Bw
OgorICAgICAgICAoV1RSOjpwYXJzZUlucHV0TGluZSk6CisgICAgICAgIChXVFI6OlRlc3RDb250
cm9sbGVyOjpydW5UZXN0KToKKyAgICAgICAgKFdUUjo6VGVzdENvbW1hbmQ6OlRlc3RDb21tYW5k
KTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNw
cDoKKyAgICAgICAgKFdUUjo6VGVzdEludm9jYXRpb246Omludm9rZSk6CisgICAgICAgICogV2Vi
S2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5oOgorICAgICAgICAoV1RSOjpUZXN0SW52b2Nh
dGlvbjo6c2V0RHVtcEpTQ29uc29sZUxvZ0luU3RkZXJyKToKKyAgICAgICAgKFdUUjo6VGVzdElu
dm9jYXRpb246OmN1c3RvbVRpbWVvdXQpOiBEZWxldGVkLgorCiAyMDE2LTA5LTAzICBXZW5zb24g
SHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIE1lZGlhIGNvbnRyb2xz
IGJlaGF2ZSBzdHJhbmdlbHkgd2hlbiB2aWRlb3MgbXV0ZSBmcm9tIHdpdGhpbiBhIHBsYXlpbmcg
aGFuZGxlcgpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWUu
aCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlLmgKaW5kZXggMmEyZWExNDY3
MDg4OGI2NGI0ODczMTkxMjhiMjA1NjgzZGVhYTViMy4uMWViYzE4ZWU2ZGY4ZmZmZTdjNGY3YWI1
OGJiZjZhZjg0MjA0ODE5YSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvRHVtcFJl
bmRlclRyZWUuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZS5oCkBA
IC02MiwxMiArNjIsMTEgQEAgdm9pZCBkdW1wKCk7CiB2b2lkIGRpc3BsYXlXZWJWaWV3KCk7CiAK
IHN0cnVjdCBUZXN0Q29tbWFuZCB7Ci0gICAgVGVzdENvbW1hbmQoKSA6IHNob3VsZER1bXBQaXhl
bHMoZmFsc2UpLCB0aW1lb3V0KDMwMDAwKSB7IH0KLQogICAgIHN0ZDo6c3RyaW5nIHBhdGhPclVS
TDsKLSAgICBib29sIHNob3VsZER1bXBQaXhlbHM7CisgICAgYm9vbCBzaG91bGREdW1wUGl4ZWxz
IHsgZmFsc2UgfTsKICAgICBzdGQ6OnN0cmluZyBleHBlY3RlZFBpeGVsSGFzaDsKLSAgICBpbnQg
dGltZW91dDsgLy8gaW4gbXMKKyAgICBpbnQgdGltZW91dCB7IDMwMDAwIH07IC8vIGluIG1zCisg
ICAgYm9vbCBkdW1wSlNDb25zb2xlTG9nSW5TdGRlcnIgeyBmYWxzZSB9OwogfTsKIAogVGVzdENv
bW1hbmQgcGFyc2VJbnB1dExpbmUoY29uc3Qgc3RkOjpzdHJpbmcmKTsKZGlmZiAtLWdpdCBhL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlQ29tbW9uLmNwcCBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlQ29tbW9uLmNwcAppbmRleCAzY2I5N2ViZmQyOGQ4NTlj
MGI2MWE3YzQ2ZDQ1OTAwNmE2NjhhYzZkLi5kNzMxOGZjZGFhNzBmODhmMGVmMDliOTE2NWY1NWEx
ZjhjMWMwOWNkIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJl
ZUNvbW1vbi5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWVDb21t
b24uY3BwCkBAIC03Nyw3ICs3Nyw5IEBAIFRlc3RDb21tYW5kIHBhcnNlSW5wdXRMaW5lKGNvbnN0
IHN0ZDo6c3RyaW5nJiBpbnB1dExpbmUpCiAgICAgICAgICAgICByZXN1bHQuc2hvdWxkRHVtcFBp
eGVscyA9IHRydWU7CiAgICAgICAgICAgICBpZiAodG9rZW5pemVyLmhhc05leHQoKSkKICAgICAg
ICAgICAgICAgICByZXN1bHQuZXhwZWN0ZWRQaXhlbEhhc2ggPSB0b2tlbml6ZXIubmV4dCgpOwot
ICAgICAgICB9IGVsc2UKKyAgICAgICAgfSBlbHNlIGlmIChhcmcgPT0gc3RkOjpzdHJpbmcoIi0t
ZHVtcC1qc2NvbnNvbGVsb2ctaW4tc3RkZXJyIikpCisgICAgICAgICAgICByZXN1bHQuZHVtcEpT
Q29uc29sZUxvZ0luU3RkZXJyID0gdHJ1ZTsKKyAgICAgICAgZWxzZQogICAgICAgICAgICAgZGll
KGlucHV0TGluZSk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9U
ZXN0UnVubmVyLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmgKaW5kZXggMjUy
NzU4N2ViYTBmNGQ0MzAxMWZjNjc5OTgwNGUyZjI3MGRiNDM0YS4uMGZkZDJkMGFkOWE3YTBjZWQw
ODllYjc0ODM3NzU5NmY4MjU2YzVlMCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUv
VGVzdFJ1bm5lci5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuaApAQCAt
MzY4LDkgKzM2OCwxMiBAQCBwdWJsaWM6CiAgICAgZG91YmxlIHRpbWVvdXQoKSB7IHJldHVybiBt
X3RpbWVvdXQ7IH0KIAogICAgIHVuc2lnbmVkIGltYWdlQ291bnRJbkdlbmVyYWxQYXN0ZWJvYXJk
KCkgY29uc3Q7Ci0gICAgCisKICAgICB2b2lkIGNhbGxVSVNjcmlwdENhbGxiYWNrKHVuc2lnbmVk
IGNhbGxiYWNrSUQsIEpTU3RyaW5nUmVmIHJlc3VsdCk7CiAKKyAgICB2b2lkIHNldER1bXBKU0Nv
bnNvbGVMb2dJblN0ZGVycihib29sIGluU3RkZXJyKSB7IG1fZHVtcEpTQ29uc29sZUxvZ0luU3Rk
ZXJyID0gaW5TdGRlcnI7IH0KKyAgICBib29sIGR1bXBKU0NvbnNvbGVMb2dJblN0ZGVycigpIGNv
bnN0IHsgcmV0dXJuIG1fZHVtcEpTQ29uc29sZUxvZ0luU3RkZXJyOyB9CisKIHByaXZhdGU6CiAg
ICAgVGVzdFJ1bm5lcihjb25zdCBzdGQ6OnN0cmluZyYgdGVzdFVSTCwgY29uc3Qgc3RkOjpzdHJp
bmcmIGV4cGVjdGVkUGl4ZWxIYXNoKTsKIApAQCAtNDM1LDYgKzQzOCw3IEBAIHByaXZhdGU6CiAg
ICAgYm9vbCBtX2FyZUxlZ2FjeVdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0c0lnbm9y
ZWQ7CiAgICAgYm9vbCBtX2N1c3RvbUZ1bGxTY3JlZW5CZWhhdmlvcjsKICAgICBib29sIG1faGFz
UGVuZGluZ1dlYk5vdGlmaWNhdGlvbkNsaWNrOworICAgIGJvb2wgbV9kdW1wSlNDb25zb2xlTG9n
SW5TdGRlcnIgeyBmYWxzZSB9OwogCiAgICAgZG91YmxlIG1fZGF0YWJhc2VEZWZhdWx0UXVvdGE7
CiAgICAgZG91YmxlIG1fZGF0YWJhc2VNYXhRdW90YTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21h
Yy9EdW1wUmVuZGVyVHJlZS5tbQppbmRleCBiZTJkZDZjOWU0ZmQ5NjYyODJmMzQwYzg0NGEwYzNm
NjQzYjNkMDg3Li42M2I0ZGVlYzQ3NGEyZWIzYzc4OTg1ZWFkZDBiOTllNjk2MTkwNGJiIDEwMDY0
NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KKysrIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCkBAIC0xOTkzLDYgKzE5
OTMsNyBAQCBzdGF0aWMgdm9pZCBydW5UZXN0KGNvbnN0IHN0cmluZyYgaW5wdXRMaW5lKQogICAg
IGdUZXN0UnVubmVyID0gVGVzdFJ1bm5lcjo6Y3JlYXRlKHRlc3RVUkwsIGNvbW1hbmQuZXhwZWN0
ZWRQaXhlbEhhc2gpOwogICAgIGdUZXN0UnVubmVyLT5zZXRBbGxvd2VkSG9zdHMoYWxsb3dlZEhv
c3RzKTsKICAgICBnVGVzdFJ1bm5lci0+c2V0Q3VzdG9tVGltZW91dChjb21tYW5kLnRpbWVvdXQp
OworICAgIGdUZXN0UnVubmVyLT5zZXREdW1wSlNDb25zb2xlTG9nSW5TdGRlcnIoY29tbWFuZC5k
dW1wSlNDb25zb2xlTG9nSW5TdGRlcnIpOwogICAgIHRvcExvYWRpbmdGcmFtZSA9IG5pbDsKICNp
ZiAhUExBVEZPUk0oSU9TKQogICAgIEFTU0VSVCghZHJhZ2dpbmdJbmZvKTsgLy8gdGhlIHByZXZp
b3VzIHRlc3Qgc2hvdWxkIGhhdmUgY2FsbGVkIGV2ZW50U2VuZGVyLm1vdXNlVXAgdG8gZHJvcCEK
ZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9VSURlbGVnYXRlLm1tIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvbWFjL1VJRGVsZWdhdGUubW0KaW5kZXggMThhNThjZTM4ODA5MWRh
MDc0NDQ5YjEzNWRiOWNjNjBkNzJhZDI2NC4uYzkxNzQ5ZTE1NzIxZmQ3ZWZlNzI1YWZkNjFiMWE2
NDgxNGY3NmY5OCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1VJRGVsZWdh
dGUubW0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1VJRGVsZWdhdGUubW0KQEAgLTgy
LDEwICs4MiwxMSBAQCBEdW1wUmVuZGVyVHJlZURyYWdnaW5nSW5mbyAqZHJhZ2dpbmdJbmZvID0g
bmlsOwogICAgIGlmIChyYW5nZS5sb2NhdGlvbiAhPSBOU05vdEZvdW5kKQogICAgICAgICBtZXNz
YWdlID0gW1ttZXNzYWdlIHN1YnN0cmluZ1RvSW5kZXg6cmFuZ2UubG9jYXRpb25dIHN0cmluZ0J5
QXBwZW5kaW5nU3RyaW5nOltbbWVzc2FnZSBzdWJzdHJpbmdGcm9tSW5kZXg6TlNNYXhSYW5nZShy
YW5nZSldIGxhc3RQYXRoQ29tcG9uZW50XV07CiAKLSAgICBwcmludGYgKCJDT05TT0xFIE1FU1NB
R0U6ICIpOworICAgIGF1dG8gb3V0ID0gZ1Rlc3RSdW5uZXItPmR1bXBKU0NvbnNvbGVMb2dJblN0
ZGVycigpID8gc3RkZXJyIDogc3Rkb3V0OworICAgIGZwcmludGYob3V0LCAiQ09OU09MRSBNRVNT
QUdFOiAiKTsKICAgICBpZiAoW2xpbmVOdW1iZXIgaW50VmFsdWVdKQotICAgICAgICBwcmludGYg
KCJsaW5lICVkOiAiLCBbbGluZU51bWJlciBpbnRWYWx1ZV0pOwotICAgIHByaW50ZiAoIiVzXG4i
LCBbbWVzc2FnZSBVVEY4U3RyaW5nXSk7CisgICAgICAgIGZwcmludGYob3V0LCAibGluZSAlZDog
IiwgW2xpbmVOdW1iZXIgaW50VmFsdWVdKTsKKyAgICBmcHJpbnRmKG91dCwgIiVzXG4iLCBbbWVz
c2FnZSBVVEY4U3RyaW5nXSk7CiB9CiAKIC0gKHZvaWQpbW9kYWxXaW5kb3dXaWxsQ2xvc2U6KE5T
Tm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9uCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0R1
bXBSZW5kZXJUcmVlLmNwcAppbmRleCBmM2JjZDVmY2I4ZjdlYmJlYzVhYzI3ZTdkMzJhY2JkZTYz
YjUwMmEwLi5lYjAzNDA2Zjk5OGJkZWRjN2YyMDcxNjBmOWVlMWYzMjYzMDg2OWQwIDEwMDY0NAot
LS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwCisrKyBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHAKQEAgLTEwODIsNiArMTA4
Miw4IEBAIHN0YXRpYyB2b2lkIHJ1blRlc3QoY29uc3Qgc3RyaW5nJiBpbnB1dExpbmUpCiAKICAg
ICA6OmdUZXN0UnVubmVyID0gVGVzdFJ1bm5lcjo6Y3JlYXRlKHRlc3RVUkwuZGF0YSgpLCBjb21t
YW5kLmV4cGVjdGVkUGl4ZWxIYXNoKTsKICAgICA6OmdUZXN0UnVubmVyLT5zZXRDdXN0b21UaW1l
b3V0KGNvbW1hbmQudGltZW91dCk7CisgICAgOjpnVGVzdFJ1bm5lci0+c2V0RHVtcEpTQ29uc29s
ZUxvZ0luU3RkZXJyKGNvbW1hbmQuZHVtcEpTQ29uc29sZUxvZ0luU3RkZXJyKTsKKwogICAgIHRv
cExvYWRpbmdGcmFtZSA9IG51bGxwdHI7CiAgICAgZG9uZSA9IGZhbHNlOwogCmRpZmYgLS1naXQg
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vVUlEZWxlZ2F0ZS5jcHAgYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS93aW4vVUlEZWxlZ2F0ZS5jcHAKaW5kZXggZGRkOGVhZDhkMjQzZDAyZjRhZDYzZDUy
NzFiMzRiMGE2MTg0Zjc4Yy4uZTc0YmI0NGYxN2U4MTczMjc4YjNkOTEzNTJiYjAyNjFlNzA3ZTgw
NSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL1VJRGVsZWdhdGUuY3BwCisr
KyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9VSURlbGVnYXRlLmNwcApAQCAtNTA3LDEwICs1
MDcsMTEgQEAgSFJFU1VMVCBVSURlbGVnYXRlOjp3ZWJWaWV3QWRkTWVzc2FnZVRvQ29uc29sZShf
SW5fb3B0XyBJV2ViVmlldyogLypzZW5kZXIqLywgX0kKICAgICAgICAgICAgIG5ld01lc3NhZ2Ug
PSBuZXdNZXNzYWdlLnN1YnN0cigwLCBmaWxlUHJvdG9jb2wpICsgbGFzdFBhdGhDb21wb25lbnQo
bmV3TWVzc2FnZS5zdWJzdHIoZmlsZVByb3RvY29sICsgZmlsZVVSTC5zaXplKCkpKTsKICAgICB9
CiAKLSAgICBwcmludGYoIkNPTlNPTEUgTUVTU0FHRTogIik7CisgICAgYXV0byBvdXQgPSBnVGVz
dFJ1bm5lci0+ZHVtcEpTQ29uc29sZUxvZ0luU3RkZXJyKCkgPyBzdGRlcnIgOiBzdGRvdXQ7Cisg
ICAgZnByaW50ZihvdXQsICJDT05TT0xFIE1FU1NBR0U6ICIpOwogICAgIGlmIChsaW5lTnVtYmVy
KQotICAgICAgICBwcmludGYoImxpbmUgJWQ6ICIsIGxpbmVOdW1iZXIpOwotICAgIHByaW50Zigi
JXNcbiIsIHRvVVRGOChuZXdNZXNzYWdlKS5jX3N0cigpKTsKKyAgICAgICAgZnByaW50ZihvdXQs
ICJsaW5lICVkOiAiLCBsaW5lTnVtYmVyKTsKKyAgICBmcHJpbnRmKG91dCwgIiVzXG4iLCB0b1VU
RjgobmV3TWVzc2FnZSkuY19zdHIoKSk7CiAgICAgcmV0dXJuIFNfT0s7CiB9CiAKZGlmZiAtLWdp
dCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL21hbmFn
ZXIucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9t
YW5hZ2VyLnB5CmluZGV4IGFmZWYwODE4MzY5NjM1Y2QwN2Y4MmUyOTMwNmUzOTIzYzllYzkwYWEu
LjQwN2M4YzU2NjhjNTgzNGE0MDMxY2UyYTQ4N2Q3NmRjZDc0YzA2ODEgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL21hbmFnZXIucHkK
KysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvbWFu
YWdlci5weQpAQCAtODUsNiArODUsNyBAQCBjbGFzcyBNYW5hZ2VyKG9iamVjdCk6CiAgICAgICAg
IHNlbGYuX3Jlc3VsdHNfZGlyZWN0b3J5ID0gc2VsZi5fcG9ydC5yZXN1bHRzX2RpcmVjdG9yeSgp
CiAgICAgICAgIHNlbGYuX2ZpbmRlciA9IExheW91dFRlc3RGaW5kZXIoc2VsZi5fcG9ydCwgc2Vs
Zi5fb3B0aW9ucykKICAgICAgICAgc2VsZi5fcnVubmVyID0gTGF5b3V0VGVzdFJ1bm5lcihzZWxm
Ll9vcHRpb25zLCBzZWxmLl9wb3J0LCBzZWxmLl9wcmludGVyLCBzZWxmLl9yZXN1bHRzX2RpcmVj
dG9yeSwgc2VsZi5fdGVzdF9pc19zbG93KQorICAgICAgICBzZWxmLl90ZXN0X2FyZ3VtZW50cyA9
IGpzb24ubG9hZHMoc2VsZi5fZmlsZXN5c3RlbS5yZWFkX3RleHRfZmlsZShzZWxmLl9wb3J0LnBh
dGhfZnJvbV93ZWJraXRfYmFzZShzZWxmLkxBWU9VVF9URVNUU19ESVJFQ1RPUlksICJ0ZXN0LW9w
dGlvbnMuanNvbiIpKSkKIAogICAgIGRlZiBfY29sbGVjdF90ZXN0cyhzZWxmLCBhcmdzKToKICAg
ICAgICAgcmV0dXJuIHNlbGYuX2ZpbmRlci5maW5kX3Rlc3RzKHNlbGYuX29wdGlvbnMsIGFyZ3Mp
CkBAIC0xMjgsMTAgKzEyOSwxMyBAQCBjbGFzcyBNYW5hZ2VyKG9iamVjdCk6CiAgICAgZGVmIF90
ZXN0X2lucHV0X2Zvcl9maWxlKHNlbGYsIHRlc3RfZmlsZSk6CiAgICAgICAgIHJldHVybiBUZXN0
SW5wdXQodGVzdF9maWxlLAogICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy5zbG93X3RpbWVfb3V0
X21zIGlmIHNlbGYuX3Rlc3RfaXNfc2xvdyh0ZXN0X2ZpbGUpIGVsc2Ugc2VsZi5fb3B0aW9ucy50
aW1lX291dF9tcywKLSAgICAgICAgICAgIHNlbGYuX2lzX2h0dHBfdGVzdCh0ZXN0X2ZpbGUpKQor
ICAgICAgICAgICAgc2VsZi5faXNfaHR0cF90ZXN0KHRlc3RfZmlsZSksCisgICAgICAgICAgICBv
cHRpb25zPVthcmd1bWVudCBmb3IgYXJndW1lbnQgaW4gc2VsZi5fdGVzdF9hcmd1bWVudHNbdGVz
dF9maWxlXSBpZiBhcmd1bWVudC5zdGFydHN3aXRoKCItLSIpXSBpZiB0ZXN0X2ZpbGUgaW4gc2Vs
Zi5fdGVzdF9hcmd1bWVudHMgZWxzZSBbXSkKIAogICAgIGRlZiBfdGVzdF9pc19zbG93KHNlbGYs
IHRlc3RfZmlsZSk6Ci0gICAgICAgIHJldHVybiBzZWxmLl9leHBlY3RhdGlvbnMubW9kZWwoKS5o
YXNfbW9kaWZpZXIodGVzdF9maWxlLCB0ZXN0X2V4cGVjdGF0aW9ucy5TTE9XKQorICAgICAgICBp
ZiBzZWxmLl9leHBlY3RhdGlvbnMubW9kZWwoKS5oYXNfbW9kaWZpZXIodGVzdF9maWxlLCB0ZXN0
X2V4cGVjdGF0aW9ucy5TTE9XKToKKyAgICAgICAgICAgIHJldHVybiBUcnVlCisgICAgICAgIHJl
dHVybiAic2xvdyIgaW4gc2VsZi5fdGVzdF9hcmd1bWVudHNbdGVzdF9maWxlXSBpZiB0ZXN0X2Zp
bGUgaW4gc2VsZi5fdGVzdF9hcmd1bWVudHMgZWxzZSBGYWxzZQogCiAgICAgZGVmIG5lZWRzX3Nl
cnZlcnMoc2VsZiwgdGVzdF9uYW1lcyk6CiAgICAgICAgIHJldHVybiBhbnkoc2VsZi5faXNfaHR0
cF90ZXN0KHRlc3RfbmFtZSkgZm9yIHRlc3RfbmFtZSBpbiB0ZXN0X25hbWVzKSBhbmQgc2VsZi5f
b3B0aW9ucy5odHRwCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9jb250cm9sbGVycy9zaW5nbGVfdGVzdF9ydW5uZXIucHkgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9zaW5nbGVfdGVzdF9ydW5uZXIucHkKaW5k
ZXggZTg1ODM1MjQ3MDNlMmJmMzg2YWVkOGRmZGY2NjY1NzBkZThmOGEyZS4uMmIzNjA4N2VhOGRh
NDcwMWI1OTEwODIzOWRkODYxNDhhN2RhOTMzNyAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvc2luZ2xlX3Rlc3RfcnVubmVyLnB5Cisr
KyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL3Npbmds
ZV90ZXN0X3J1bm5lci5weQpAQCAtNTgsNiArNTgsNyBAQCBjbGFzcyBTaW5nbGVUZXN0UnVubmVy
KG9iamVjdCk6CiAgICAgICAgIHNlbGYuX3dvcmtlcl9uYW1lID0gd29ya2VyX25hbWUKICAgICAg
ICAgc2VsZi5fdGVzdF9uYW1lID0gdGVzdF9pbnB1dC50ZXN0X25hbWUKICAgICAgICAgc2VsZi5f
c2hvdWxkX3J1bl9waXhlbF90ZXN0ID0gdGVzdF9pbnB1dC5zaG91bGRfcnVuX3BpeGVsX3Rlc3QK
KyAgICAgICAgc2VsZi5fdGVzdF9pbnB1dF9vcHRpb25zID0gdGVzdF9pbnB1dC5vcHRpb25zCiAg
ICAgICAgIHNlbGYuX3JlZmVyZW5jZV9maWxlcyA9IHRlc3RfaW5wdXQucmVmZXJlbmNlX2ZpbGVz
CiAgICAgICAgIHNlbGYuX3N0b3Bfd2hlbl9kb25lID0gc3RvcF93aGVuX2RvbmUKICAgICAgICAg
c2VsZi5fdGltZW91dCA9IHRlc3RfaW5wdXQudGltZW91dApAQCAtODksNyArOTAsNyBAQCBjbGFz
cyBTaW5nbGVUZXN0UnVubmVyKG9iamVjdCk6CiAgICAgICAgIGltYWdlX2hhc2ggPSBOb25lCiAg
ICAgICAgIGlmIHNlbGYuX3Nob3VsZF9mZXRjaF9leHBlY3RlZF9jaGVja3N1bSgpOgogICAgICAg
ICAgICAgaW1hZ2VfaGFzaCA9IHNlbGYuX3BvcnQuZXhwZWN0ZWRfY2hlY2tzdW0oc2VsZi5fdGVz
dF9uYW1lKQotICAgICAgICByZXR1cm4gRHJpdmVySW5wdXQoc2VsZi5fdGVzdF9uYW1lLCBzZWxm
Ll90aW1lb3V0LCBpbWFnZV9oYXNoLCBzZWxmLl9zaG91bGRfcnVuX3BpeGVsX3Rlc3QpCisgICAg
ICAgIHJldHVybiBEcml2ZXJJbnB1dChzZWxmLl90ZXN0X25hbWUsIHNlbGYuX3RpbWVvdXQsIGlt
YWdlX2hhc2gsIHNlbGYuX3Nob3VsZF9ydW5fcGl4ZWxfdGVzdCwgdGVzdF9vcHRpb25zPXNlbGYu
X3Rlc3RfaW5wdXRfb3B0aW9ucykKIAogICAgIGRlZiBydW4oc2VsZik6CiAgICAgICAgIGlmIHNl
bGYuX3JlZmVyZW5jZV9maWxlczoKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X2lucHV0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfaW5wdXQucHkKaW5kZXggMzNlNDQ1OGNlYmVhNWI5
YWE1ZmJhNGQ0NmNlNmY1ZmNjNjlkMTY0YS4uMDBiMTJjMGNhNzFkOGEyMDUwMTQ2MjA2NzViMDI2
ZmYwYmE2YmQ1ZCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvbW9kZWxzL3Rlc3RfaW5wdXQucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvbW9kZWxzL3Rlc3RfaW5wdXQucHkKQEAgLTMxLDcgKzMxLDcgQEAKIGNsYXNzIFRl
c3RJbnB1dChvYmplY3QpOgogICAgICIiIkdyb3VwcyBpbmZvcm1hdGlvbiBhYm91dCBhIHRlc3Qg
Zm9yIGVhc3kgcGFzc2luZyBvZiBkYXRhLiIiIgogCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHRl
c3RfbmFtZSwgdGltZW91dD1Ob25lLCBuZWVkc19zZXJ2ZXJzPU5vbmUsIHJlZmVyZW5jZV9maWxl
cz1Ob25lLCBzaG91bGRfcnVuX3BpeGVsX3Rlc3RzPU5vbmUpOgorICAgIGRlZiBfX2luaXRfXyhz
ZWxmLCB0ZXN0X25hbWUsIHRpbWVvdXQ9Tm9uZSwgbmVlZHNfc2VydmVycz1Ob25lLCByZWZlcmVu
Y2VfZmlsZXM9Tm9uZSwgc2hvdWxkX3J1bl9waXhlbF90ZXN0cz1Ob25lLCBvcHRpb25zPVtdKToK
ICAgICAgICAgIyBUZXN0SW5wdXQgb2JqZWN0cyBhcmUgbm9ybWFsbHkgY29uc3RydWN0ZWQgYnkg
dGhlIG1hbmFnZXIgYW5kIHBhc3NlZAogICAgICAgICAjIHRvIHRoZSB3b3JrZXJzLCBidXQgdGhl
c2Ugc29tZSBmaWVsZHMgYXJlIHNldCBsYXppbHkgaW4gdGhlIHdvcmtlcnMgd2hlcmUgcG9zc2li
bGUKICAgICAgICAgIyBiZWNhdXNlIHRoZXkgcmVxdWlyZSB1cyB0byBsb29rIGF0IHRoZSBmaWxl
c3lzdGVtIGFuZCB3ZSB3YW50IHRvIGJlIGFibGUgdG8gZG8gdGhhdCBpbiBwYXJhbGxlbC4KQEAg
LTQwLDYgKzQwLDcgQEAgY2xhc3MgVGVzdElucHV0KG9iamVjdCk6CiAgICAgICAgIHNlbGYubmVl
ZHNfc2VydmVycyA9IG5lZWRzX3NlcnZlcnMKICAgICAgICAgc2VsZi5yZWZlcmVuY2VfZmlsZXMg
PSByZWZlcmVuY2VfZmlsZXMKICAgICAgICAgc2VsZi5zaG91bGRfcnVuX3BpeGVsX3Rlc3RzID0g
c2hvdWxkX3J1bl9waXhlbF90ZXN0cworICAgICAgICBzZWxmLm9wdGlvbnMgPSBvcHRpb25zCiAK
ICAgICBkZWYgX19yZXByX18oc2VsZik6Ci0gICAgICAgIHJldHVybiAiVGVzdElucHV0KCclcycs
IHRpbWVvdXQ9JXMsIG5lZWRzX3NlcnZlcnM9JXMsIHJlZmVyZW5jZV9maWxlcz0lcywgc2hvdWxk
X3J1bl9waXhlbF90ZXN0cz0lcykiICUgKHNlbGYudGVzdF9uYW1lLCBzZWxmLnRpbWVvdXQsIHNl
bGYubmVlZHNfc2VydmVycywgc2VsZi5yZWZlcmVuY2VfZmlsZXMsIHNlbGYuc2hvdWxkX3J1bl9w
aXhlbF90ZXN0cykKKyAgICAgICAgcmV0dXJuICJUZXN0SW5wdXQoJyVzJywgdGltZW91dD0lcywg
bmVlZHNfc2VydmVycz0lcywgcmVmZXJlbmNlX2ZpbGVzPSVzLCBzaG91bGRfcnVuX3BpeGVsX3Rl
c3RzPSVzLCBhcmd1bWVudHM9JXMpIiAlIChzZWxmLnRlc3RfbmFtZSwgc2VsZi50aW1lb3V0LCBz
ZWxmLm5lZWRzX3NlcnZlcnMsIHNlbGYucmVmZXJlbmNlX2ZpbGVzLCBzZWxmLnNob3VsZF9ydW5f
cGl4ZWxfdGVzdHMsICc6Jy5qb2luKHNlbGYub3B0aW9ucykpCmRpZmYgLS1naXQgYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L3BvcnQvZHJpdmVyLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9w
b3J0L2RyaXZlci5weQppbmRleCAyYWUyYTVjMTJjNzQ5ZThjNTVjZDg1YjBiNTU2ZDQzYWJhYjJh
YzJjLi5lNTg2ODhhZmYxZmU1ZGJkNmZiMzRlN2NkYzBkYzU2YmYwODhjOGU5IDEwMDY0NAotLS0g
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvZHJpdmVyLnB5CisrKyBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvcG9ydC9kcml2ZXIucHkKQEAgLTI4LDcgKzI4LDYgQEAKICMgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KIAogaW1wb3J0IGJhc2U2NAotaW1wb3J0IGNvcHkKIGltcG9ydCBsb2dnaW5nCiBpbXBvcnQg
cmUKIGltcG9ydCBzaGxleApAQCAtMzgsMTkgKzM3LDE5IEBAIGltcG9ydCBvcwogCiBmcm9tIHdl
YmtpdHB5LmNvbW1vbi5zeXN0ZW0gaW1wb3J0IHBhdGgKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5
c3RlbS5wcm9maWxlciBpbXBvcnQgUHJvZmlsZXJGYWN0b3J5Ci1mcm9tIHdlYmtpdHB5LmxheW91
dF90ZXN0cy5zZXJ2ZXJzLndlYl9wbGF0Zm9ybV90ZXN0X3NlcnZlciBpbXBvcnQgV2ViUGxhdGZv
cm1UZXN0U2VydmVyCiAKIAogX2xvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKQogCiAK
IGNsYXNzIERyaXZlcklucHV0KG9iamVjdCk6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHRlc3Rf
bmFtZSwgdGltZW91dCwgaW1hZ2VfaGFzaCwgc2hvdWxkX3J1bl9waXhlbF90ZXN0LCBhcmdzPU5v
bmUpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCB0ZXN0X25hbWUsIHRpbWVvdXQsIGltYWdlX2hh
c2gsIHNob3VsZF9ydW5fcGl4ZWxfdGVzdCwgYXJncz1Ob25lLCB0ZXN0X29wdGlvbnM9Tm9uZSk6
CiAgICAgICAgIHNlbGYudGVzdF9uYW1lID0gdGVzdF9uYW1lCiAgICAgICAgIHNlbGYudGltZW91
dCA9IHRpbWVvdXQgICMgaW4gbXMKICAgICAgICAgc2VsZi5pbWFnZV9oYXNoID0gaW1hZ2VfaGFz
aAogICAgICAgICBzZWxmLnNob3VsZF9ydW5fcGl4ZWxfdGVzdCA9IHNob3VsZF9ydW5fcGl4ZWxf
dGVzdAogICAgICAgICBzZWxmLmFyZ3MgPSBhcmdzIG9yIFtdCisgICAgICAgIHNlbGYudGVzdF9v
cHRpb25zID0gdGVzdF9vcHRpb25zIG9yIFtdCiAKICAgICBkZWYgX19yZXByX18oc2VsZik6CiAg
ICAgICAgIHJldHVybiAiRHJpdmVySW5wdXQodGVzdF9uYW1lPSd7fScsIHRpbWVvdXQ9e30sIGlt
YWdlX2hhc2g9e30sIHNob3VsZF9ydW5fcGl4ZWxfdGVzdD17fSciLmZvcm1hdChzZWxmLnRlc3Rf
bmFtZSwgc2VsZi50aW1lb3V0LCBzZWxmLmltYWdlX2hhc2gsIHNlbGYuc2hvdWxkX3J1bl9waXhl
bF90ZXN0KQpAQCAtNDg2LDYgKzQ4NSw4IEBAIGNsYXNzIERyaXZlcihvYmplY3QpOgogICAgICAg
ICAgICAgY29tbWFuZCArPSAiJy0tcGl4ZWwtdGVzdCIKICAgICAgICAgaWYgZHJpdmVyX2lucHV0
LmltYWdlX2hhc2g6CiAgICAgICAgICAgICBjb21tYW5kICs9ICInIiArIGRyaXZlcl9pbnB1dC5p
bWFnZV9oYXNoCisgICAgICAgIGlmIGRyaXZlcl9pbnB1dC50ZXN0X29wdGlvbnM6CisgICAgICAg
ICAgICBjb21tYW5kICs9ICInIiArICInIi5qb2luKGRyaXZlcl9pbnB1dC50ZXN0X29wdGlvbnMp
CiAgICAgICAgIHJldHVybiBjb21tYW5kICsgIlxuIgogCiAgICAgZGVmIF9yZWFkX2ZpcnN0X2Js
b2NrKHNlbGYsIGRlYWRsaW5lLCB0ZXN0X25hbWUpOgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAppbmRleCAwNTMw
OGNhZjVkZjA5MTFkNmVmZTRlYjFhODY3Yjk4ZThmZDI3MjYxLi44NzgwYWJiNTMxZjc5ZGZiZWUw
NTE3NjVkMTQwNDEwODI1NzAwMDliIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcApAQCAtMTU1LDYgKzE1NSw5
IEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGU6OmRpZFJlY2VpdmVNZXNzYWdlVG9QYWdlKFdLQnVuZGxl
UGFnZVJlZiBwYWdlLCBXS1N0cmluZ1JlZiBtCiAgICAgICAgIFdLUmV0YWluUHRyPFdLU3RyaW5n
UmVmPiB0aW1lb3V0S2V5KEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJU
aW1lb3V0IikpOwogICAgICAgICBtX3RpbWVvdXQgPSAoaW50KVdLVUludDY0R2V0VmFsdWUoc3Rh
dGljX2Nhc3Q8V0tVSW50NjRSZWY+KFdLRGljdGlvbmFyeUdldEl0ZW1Gb3JLZXkobWVzc2FnZUJv
ZHlEaWN0aW9uYXJ5LCB0aW1lb3V0S2V5LmdldCgpKSkpOwogCisgICAgICAgIFdLUmV0YWluUHRy
PFdLU3RyaW5nUmVmPiBkdW1wSlNDb25zb2xlTG9nSW5TdGRlcnJLZXkoQWRvcHRXSywgV0tTdHJp
bmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIkR1bXBKU0NvbnNvbGVMb2dJblN0ZGVyciIpKTsKKyAg
ICAgICAgbV9kdW1wSlNDb25zb2xlTG9nSW5TdGRlcnIgPSBXS0Jvb2xlYW5HZXRWYWx1ZShzdGF0
aWNfY2FzdDxXS0Jvb2xlYW5SZWY+KFdLRGljdGlvbmFyeUdldEl0ZW1Gb3JLZXkobWVzc2FnZUJv
ZHlEaWN0aW9uYXJ5LCBkdW1wSlNDb25zb2xlTG9nSW5TdGRlcnJLZXkuZ2V0KCkpKSk7CisKICAg
ICAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IGFja01lc3NhZ2VOYW1lKEFkb3B0V0ssIFdL
U3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJBY2siKSk7CiAgICAgICAgIFdLUmV0YWluUHRy
PFdLU3RyaW5nUmVmPiBhY2tNZXNzYWdlQm9keShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhV
VEY4Q1N0cmluZygiQmVnaW5UZXN0IikpOwogICAgICAgICBXS0J1bmRsZVBhZ2VQb3N0TWVzc2Fn
ZShwYWdlLCBhY2tNZXNzYWdlTmFtZS5nZXQoKSwgYWNrTWVzc2FnZUJvZHkuZ2V0KCkpOwpkaWZm
IC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1
bmRsZS5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1
bmRsZS5oCmluZGV4IGQ1MTc3MGFjYjg3NGUzZTI0NjUyZTExMGQwYzQxYjUzOTUxNWU5Y2EuLmEw
YTI4MjlmN2VhOTBjN2Y4YWRmZjJhMDlkYWMzYTM4YjQ3YjEyNjkgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuaAorKysgYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmgKQEAg
LTc3LDcgKzc3LDggQEAgcHVibGljOgogCiAgICAgYm9vbCBzaG91bGREdW1wUGl4ZWxzKCkgY29u
c3QgeyByZXR1cm4gbV9kdW1wUGl4ZWxzOyB9CiAgICAgYm9vbCB1c2VXYWl0VG9EdW1wV2F0Y2hk
b2dUaW1lcigpIGNvbnN0IHsgcmV0dXJuIG1fdXNlV2FpdFRvRHVtcFdhdGNoZG9nVGltZXI7IH0K
LSAgICAKKyAgICBib29sIGR1bXBKU0NvbnNvbGVMb2dJblN0ZGVycigpIGNvbnN0IHsgcmV0dXJu
IG1fZHVtcEpTQ29uc29sZUxvZ0luU3RkZXJyOyB9OworCiAgICAgdm9pZCBvdXRwdXRUZXh0KGNv
bnN0IFN0cmluZyYpOwogICAgIHZvaWQgcG9zdE5ld0JlZm9yZVVubG9hZFJldHVyblZhbHVlKGJv
b2wpOwogICAgIHZvaWQgcG9zdEFkZENocm9tZUlucHV0RmllbGQoKTsKQEAgLTE3Miw2ICsxNzMs
NyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV91c2VXb3JrUXVldWU7CiAgICAgaW50IG1fdGltZW91
dDsKICAgICBib29sIG1fcGl4ZWxSZXN1bHRJc1BlbmRpbmcgeyBmYWxzZSB9OworICAgIGJvb2wg
bV9kdW1wSlNDb25zb2xlTG9nSW5TdGRlcnIgeyBmYWxzZSB9OwogCiAgICAgV0tSZXRhaW5QdHI8
V0tEYXRhUmVmPiBtX2F1ZGlvUmVzdWx0OwogICAgIFdLUmV0YWluUHRyPFdLSW1hZ2VSZWY+IG1f
cGl4ZWxSZXN1bHQ7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHAKaW5kZXggMTg5OWE4YjNhM2Y0ZDdj
MmJjYjRmN2Y1OTgxNWRmYTgyYTY0MGY2Zi4uNDliM2FkZWQwNmU0MzEwZjE5NmMwNWE5NmI5YzUy
ODY5NjVhZmQ1MiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcApAQCAtMTQ1Nyw3ICsxNDU3LDEx
IEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjp3aWxsQWRkTWVzc2FnZVRvQ29uc29sZShXS1N0
cmluZ1JlZiBtZXNzYWdlLCB1aW50MzJfdCBsCiAgICAgfQogICAgIHN0cmluZ0J1aWxkZXIuYXBw
ZW5kKG1lc3NhZ2VTdHJpbmcpOwogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKCdcbicpOwotICAg
IGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoc3RyaW5nQnVpbGRlci50b1N0cmluZygpKTsKKwor
ICAgIGlmIChpbmplY3RlZEJ1bmRsZS5kdW1wSlNDb25zb2xlTG9nSW5TdGRlcnIoKSkKKyAgICAg
ICAgZnByaW50ZihzdGRlcnIsICIlcyIsIHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKS51dGY4KCku
ZGF0YSgpKTsKKyAgICBlbHNlCisgICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoc3Ry
aW5nQnVpbGRlci50b1N0cmluZygpKTsKIH0KIAogdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6Ondp
bGxTZXRTdGF0dXNiYXJUZXh0KFdLU3RyaW5nUmVmIHN0YXR1c2JhclRleHQpCmRpZmYgLS1naXQg
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IGQyZTQ5YmI1ZGE4OGViZDM3ZGEw
ZWRmNmIyMmQzNTFmN2EyYWVmZDkuLmVhM2FlOTc1NDhmMzFiYmRkYmNjMWNjNDMwN2NkMWRhOWI2
MzM0NmMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIu
Y3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCkBAIC05
OTcsMTIgKzk5NywxMSBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpjb25maWd1cmVWaWV3Rm9yVGVz
dChjb25zdCBUZXN0SW52b2NhdGlvbiYgdGVzdCkKIH0KIAogc3RydWN0IFRlc3RDb21tYW5kIHsK
LSAgICBUZXN0Q29tbWFuZCgpIDogc2hvdWxkRHVtcFBpeGVscyhmYWxzZSksIHRpbWVvdXQoMCkg
eyB9Ci0KICAgICBzdGQ6OnN0cmluZyBwYXRoT3JVUkw7Ci0gICAgYm9vbCBzaG91bGREdW1wUGl4
ZWxzOworICAgIGJvb2wgc2hvdWxkRHVtcFBpeGVscyB7IGZhbHNlIH07CiAgICAgc3RkOjpzdHJp
bmcgZXhwZWN0ZWRQaXhlbEhhc2g7Ci0gICAgaW50IHRpbWVvdXQ7CisgICAgaW50IHRpbWVvdXQg
eyAwIH07CisgICAgYm9vbCBkdW1wSlNDb25zb2xlTG9nSW5TdGRlcnIgeyBmYWxzZSB9OwogfTsK
IAogY2xhc3MgQ29tbWFuZFRva2VuaXplciB7CkBAIC0xMDc1LDcgKzEwNzQsOSBAQCBUZXN0Q29t
bWFuZCBwYXJzZUlucHV0TGluZShjb25zdCBzdGQ6OnN0cmluZyYgaW5wdXRMaW5lKQogICAgICAg
ICAgICAgcmVzdWx0LnNob3VsZER1bXBQaXhlbHMgPSB0cnVlOwogICAgICAgICAgICAgaWYgKHRv
a2VuaXplci5oYXNOZXh0KCkpCiAgICAgICAgICAgICAgICAgcmVzdWx0LmV4cGVjdGVkUGl4ZWxI
YXNoID0gdG9rZW5pemVyLm5leHQoKTsKLSAgICAgICAgfSBlbHNlCisgICAgICAgIH0gZWxzZSBp
ZiAoYXJnID09IHN0ZDo6c3RyaW5nKCItLWR1bXAtanNjb25zb2xlbG9nLWluLXN0ZGVyciIpKQor
ICAgICAgICAgICAgcmVzdWx0LmR1bXBKU0NvbnNvbGVMb2dJblN0ZGVyciA9IHRydWU7CisgICAg
ICAgIGVsc2UKICAgICAgICAgICAgIGRpZShpbnB1dExpbmUpOwogICAgIH0KICAgICByZXR1cm4g
cmVzdWx0OwpAQCAtMTA5Niw2ICsxMDk3LDcgQEAgYm9vbCBUZXN0Q29udHJvbGxlcjo6cnVuVGVz
dChjb25zdCBjaGFyKiBpbnB1dExpbmUpCiAgICAgICAgIG1fY3VycmVudEludm9jYXRpb24tPnNl
dElzUGl4ZWxUZXN0KGNvbW1hbmQuZXhwZWN0ZWRQaXhlbEhhc2gpOwogICAgIGlmIChjb21tYW5k
LnRpbWVvdXQgPiAwKQogICAgICAgICBtX2N1cnJlbnRJbnZvY2F0aW9uLT5zZXRDdXN0b21UaW1l
b3V0KGNvbW1hbmQudGltZW91dCk7CisgICAgbV9jdXJyZW50SW52b2NhdGlvbi0+c2V0RHVtcEpT
Q29uc29sZUxvZ0luU3RkZXJyKGNvbW1hbmQuZHVtcEpTQ29uc29sZUxvZ0luU3RkZXJyKTsKIAog
ICAgIHBsYXRmb3JtV2lsbFJ1blRlc3QoKm1fY3VycmVudEludm9jYXRpb24pOwogCmRpZmYgLS1n
aXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcCBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCmluZGV4IGQ5NDAwNmU5ZjU2ZWQ2Yjdh
MWQ2ZDBlZDgzNjYzMTMxNzQ1NzlkNTEuLjU0ZTY2ODBlOGEwZjU5N2ZlYzkwYTU4NTUzYmViYmFj
MDc5NjY3MDAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRp
b24uY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCkBA
IC0xNDUsNiArMTQ1LDEwIEBAIHZvaWQgVGVzdEludm9jYXRpb246Omludm9rZSgpCiAgICAgV0tS
ZXRhaW5QdHI8V0tVSW50NjRSZWY+IHRpbWVvdXRWYWx1ZSA9IGFkb3B0V0soV0tVSW50NjRDcmVh
dGUobV90aW1lb3V0KSk7CiAgICAgV0tEaWN0aW9uYXJ5U2V0SXRlbShiZWdpblRlc3RNZXNzYWdl
Qm9keS5nZXQoKSwgdGltZW91dEtleS5nZXQoKSwgdGltZW91dFZhbHVlLmdldCgpKTsKIAorICAg
IFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBkdW1wSlNDb25zb2xlTG9nSW5TdGRlcnJLZXkgPSBh
ZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJEdW1wSlNDb25zb2xlTG9nSW5T
dGRlcnIiKSk7CisgICAgV0tSZXRhaW5QdHI8V0tCb29sZWFuUmVmPiBkdW1wSlNDb25zb2xlTG9n
SW5TdGRlcnJWYWx1ZSA9IGFkb3B0V0soV0tCb29sZWFuQ3JlYXRlKG1fZHVtcEpTQ29uc29sZUxv
Z0luU3RkZXJyKSk7CisgICAgV0tEaWN0aW9uYXJ5U2V0SXRlbShiZWdpblRlc3RNZXNzYWdlQm9k
eS5nZXQoKSwgZHVtcEpTQ29uc29sZUxvZ0luU3RkZXJyS2V5LmdldCgpLCBkdW1wSlNDb25zb2xl
TG9nSW5TdGRlcnJWYWx1ZS5nZXQoKSk7CisKICAgICBXS1BhZ2VQb3N0TWVzc2FnZVRvSW5qZWN0
ZWRCdW5kbGUoVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLm1haW5XZWJWaWV3KCktPnBhZ2Uo
KSwgbWVzc2FnZU5hbWUuZ2V0KCksIGJlZ2luVGVzdE1lc3NhZ2VCb2R5LmdldCgpKTsKIAogICAg
IGJvb2wgc2hvdWxkT3BlbkV4dGVybmFsVVJMcyA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9UZXN0SW52b2NhdGlvbi5oCmluZGV4IDZhYjE2MmZmODc5MzE0MTU2MzYyMzllNTNjOWYxMmNm
MjBjZWVlY2QuLmU3YWFhM2QxM2ZmYWQwNjlkMjgxNzcyMmNjNDdkNTdlMjUwMWFiMjEgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uaAorKysgYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmgKQEAgLTUxLDYgKzUxLDcgQEAgcHVi
bGljOgogCiAgICAgdm9pZCBzZXRDdXN0b21UaW1lb3V0KGludCBkdXJhdGlvbikgeyBtX3RpbWVv
dXQgPSBkdXJhdGlvbjsgfQogICAgIGludCBjdXN0b21UaW1lb3V0KCkgY29uc3QgeyByZXR1cm4g
bV90aW1lb3V0OyB9CisgICAgdm9pZCBzZXREdW1wSlNDb25zb2xlTG9nSW5TdGRlcnIoYm9vbCB2
YWx1ZSkgeyBtX2R1bXBKU0NvbnNvbGVMb2dJblN0ZGVyciA9IHZhbHVlOyB9CiAKICAgICB2b2lk
IGludm9rZSgpOwogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUo
V0tTdHJpbmdSZWYgbWVzc2FnZU5hbWUsIFdLVHlwZVJlZiBtZXNzYWdlQm9keSk7CkBAIC05OSw2
ICsxMDAsNyBAQCBwcml2YXRlOgogICAgIHN0ZDo6c3RyaW5nIG1fZXhwZWN0ZWRQaXhlbEhhc2g7
CiAKICAgICBpbnQgbV90aW1lb3V0IHsgMCB9OworICAgIGJvb2wgbV9kdW1wSlNDb25zb2xlTG9n
SW5TdGRlcnIgeyBmYWxzZSB9OwogCiAgICAgLy8gSW52b2NhdGlvbiBzdGF0ZQogICAgIGJvb2wg
bV9nb3RJbml0aWFsUmVzcG9uc2UgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDBlN2IzNmY1YjgzOWEyNmIz
MzBiZDExYzkyZWYxMjExOWMwMTdjNWEuLjIxYjE3NWRiZDZiN2VlYmM3MDFjYTA0NzAzMWVlYTEw
NDhhZWM3MWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxNi0wOS0wNSAgWW91ZW5uIEZhYmxl
dCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgVGVzdCBpbmZyYXN0cnVjdHVyZSBzaG91
bGQgYWxsb3cgdG8gZmlsdGVyIG91dCB0ZXh0IG91dHB1dCBiZWZvcmUgZG9pbmcgYSBjb21wYXJp
c29uIHdpdGggdGhlIGJhc2VsaW5lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNjEzMTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIFRlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogdGVzdC1vcHRpb25z
Lmpzb246IEFkZGVkLgorCiAyMDE2LTA5LTA0ICBNaWNoYWVsIENhdGFuemFybyAgPG1jYXRhbnph
cm9AaWdhbGlhLmNvbT4KIAogICAgICAgICBNaXNjZWxsYW5lb3VzIHVucmV2aWV3ZWQgR1RLIHRl
c3QgZ2FyZGVuaW5nCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdl
TG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCBmODY5NzJjODA4
NTdkZGM4NjZkYWNhZTg0YjYzMDhhMTlkOTU5OTQxLi43NmE4OWQ1NGYzY2U3NjQyNDliZTM3YTM2
NGQ2YzIzNjBkNTFmY2JiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hh
bmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxMiBAQAorMjAxNi0wOS0wNSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisK
KyAgICAgICAgVGVzdCBpbmZyYXN0cnVjdHVyZSBzaG91bGQgYWxsb3cgdG8gZmlsdGVyIG91dCB0
ZXh0IG91dHB1dCBiZWZvcmUgZG9pbmcgYSBjb21wYXJpc29uIHdpdGggdGhlIGJhc2VsaW5lCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjEzMTAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9mZXRjaC9hcGkvY29ycy9jb3JzLXByZWZsaWdodC5qczoKKwogMjAxNi0wOS0w
MyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIEFsaWduIG1ldGEg
ZWxlbWVudCBodHRwLWVxdWl2PSJyZWZyZXNoIiBwYXJzaW5nIHdpdGggdGhlIEhUTUwgc3BlY2lm
aWNhdGlvbgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91
dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMmU2MDJiZjU1NmU3NGJmNDI4ZTdkZWIyNGZl
MjZmMDRiMmVhYTI5Yi4uODVmYzFkYjI3ZmFlMTZkZGVhN2Y5OGEzNzAyZmVhNDY3ZjYwYTM5YyAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0
cy9UZXN0RXhwZWN0YXRpb25zCkBAIC0yNjIsMjAgKzI2Miw2IEBAIGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL0RvY3VtZW50LWNyZWF0ZUVsZW1lbnQtbmFtZXNwYWNl
Lmh0bWwKIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy93aW5k
b3dzL25lc3RlZC1icm93c2luZy1jb250ZXh0cy9mcmFtZUVsZW1lbnQuc3ViLmh0bWwgWyBQYXNz
IEZhaWx1cmUgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJz
L3dpbmRvd3MvdGFyZ2V0aW5nLWNyb3NzLW9yaWdpbi1uZXN0ZWQtYnJvd3NpbmctY29udGV4dHMu
c3ViLmh0bWwgWyBQYXNzIEZhaWx1cmUgXQogCi0jIFczQyBYTUxIdHRwUmVxdWVzdCB0ZXN0cwot
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC94bWxodHRwcmVx
dWVzdC10aW1lb3V0LWFib3J0ZWQuaHRtbCBbIFNsb3cgXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC94bWxodHRwcmVxdWVzdC10aW1lb3V0LWFib3J0ZWRv
bm1haW4uaHRtbCBbIFNsb3cgXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxI
dHRwUmVxdWVzdC94bWxodHRwcmVxdWVzdC10aW1lb3V0LW92ZXJyaWRlcy5odG1sIFsgU2xvdyBd
Ci1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L3htbGh0dHBy
ZXF1ZXN0LXRpbWVvdXQtb3ZlcnJpZGVzZXhwaXJlcy5odG1sIFsgU2xvdyBdCi1pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L3htbGh0dHByZXF1ZXN0LXRpbWVv
dXQtc2ltcGxlLmh0bWwgWyBTbG93IF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
WE1MSHR0cFJlcXVlc3QveG1saHR0cHJlcXVlc3QtdGltZW91dC1zeW5jb25tYWluLmh0bWwgWyBT
bG93IF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3QveG1s
aHR0cHJlcXVlc3QtdGltZW91dC10d2ljZS5odG1sIFsgU2xvdyBdCi1pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtd29y
a2VyLWFib3J0ZWQuaHRtbCBbIFNsb3cgXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9YTUxIdHRwUmVxdWVzdC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXdvcmtlci1vdmVycmlkZXMu
aHRtbCBbIFNsb3cgXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVx
dWVzdC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXdvcmtlci1vdmVycmlkZXNleHBpcmVzLmh0bWwg
WyBTbG93IF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3Qv
eG1saHR0cHJlcXVlc3QtdGltZW91dC13b3JrZXItc2ltcGxlLmh0bWwgWyBTbG93IF0KLWltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3QveG1saHR0cHJlcXVlc3Qt
dGltZW91dC13b3JrZXItc3luY29ud29ya2VyLmh0bWwgWyBTbG93IF0KLWltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3QveG1saHR0cHJlcXVlc3QtdGltZW91dC13
b3JrZXItdHdpY2UuaHRtbCBbIFNsb3cgXQogIyBYTUxIdHRwUmVxdWVzdCB0ZXN0cyByZXF1aXJp
bmcgRFRSL1dUUiB0byBhbGxvdyBvdGhlciBVUkxzIHRoYW4gbG9jYWxob3N0IHRvIG5vdCBiZSBi
bG9ja2VkIGFuZCBiZSByZWFjaGFibGUgKHd3dzIubG9jYWxob3N0KQogaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC9zZW5kLXJlZGlyZWN0LWJvZ3VzLmh0bSBb
IFNraXAgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC9z
ZW5kLXJlZGlyZWN0LXRvLWNvcnMuaHRtIFsgU2tpcCBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9jb3JzL2NvcnMtcHJl
ZmxpZ2h0LmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9hcGkvY29ycy9jb3JzLXByZWZsaWdodC5qcwppbmRleCBkODJhNDNjMDM0ZDU4MzljYjc4
ZWZjYjJiZTA5NWQ4YzI1MWRkOTViLi5mOGIzNWZhMzg5ZDE1YTg2NDNiNGJiYjViMGVjNjUwMGY2
NzM4YjNjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL2FwaS9jb3JzL2NvcnMtcHJlZmxpZ2h0LmpzCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2NvcnMvY29ycy1wcmVm
bGlnaHQuanMKQEAgLTUsNiArNSw5IEBAIGlmICh0aGlzLmRvY3VtZW50ID09PSB1bmRlZmluZWQp
IHsKICAgaW1wb3J0U2NyaXB0cygiLi4vcmVzb3VyY2VzL2dldC1ob3N0LWluZm8uc3ViLmpzIik7
CiB9CiAKKy8vIFRvIGJlIHJlbW92ZWQsIHNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTYxMzEwCitjb25zb2xlLmxvZygiRG9pbmcgc29tZSBsb2dnaW5nIikKKwog
ZnVuY3Rpb24gaGVhZGVyTmFtZXMoaGVhZGVycykKIHsKICAgICBsZXQgbmFtZXMgPSBbXTsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3Rlc3Qtb3B0aW9ucy5qc29uIGIvTGF5b3V0VGVzdHMvdGVz
dC1vcHRpb25zLmpzb24KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2VmMTI2OGFlNGI4ZjFhYjViZjdmZWIxYzM3MTMz
ZGQwODA0ZjQ1NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3Rlc3Qtb3B0aW9ucy5q
c29uCkBAIC0wLDAgKzEsMTggQEAKK3sKKyAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9YTUxIdHRwUmVxdWVzdC94bWxodHRwcmVxdWVzdC10aW1lb3V0LWFib3J0ZWQuaHRtbCI6
IFsic2xvdyJdLAorICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBS
ZXF1ZXN0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtYWJvcnRlZG9ubWFpbi5odG1sIjogWyJzbG93
Il0sCisgICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3Qv
eG1saHR0cHJlcXVlc3QtdGltZW91dC1vdmVycmlkZXMuaHRtbCI6IFsic2xvdyJdLAorICAgICJp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L3htbGh0dHByZXF1
ZXN0LXRpbWVvdXQtb3ZlcnJpZGVzZXhwaXJlcy5odG1sIjogWyJzbG93Il0sCisgICAgImltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3QveG1saHR0cHJlcXVlc3Qt
dGltZW91dC1zaW1wbGUuaHRtbCI6IFsic2xvdyJdLAorICAgICJpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtc3luY29u
bWFpbi5odG1sIjogWyJzbG93Il0sCisgICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvWE1MSHR0cFJlcXVlc3QveG1saHR0cHJlcXVlc3QtdGltZW91dC10d2ljZS5odG1sIjogWyJz
bG93Il0sCisgICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVl
c3QveG1saHR0cHJlcXVlc3QtdGltZW91dC13b3JrZXItYWJvcnRlZC5odG1sIjogWyJzbG93Il0s
CisgICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3QveG1s
aHR0cHJlcXVlc3QtdGltZW91dC13b3JrZXItb3ZlcnJpZGVzLmh0bWwiOiBbInNsb3ciXSwKKyAg
ICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC94bWxodHRw
cmVxdWVzdC10aW1lb3V0LXdvcmtlci1vdmVycmlkZXNleHBpcmVzLmh0bWwiOiBbInNsb3ciXSwK
KyAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC94bWxo
dHRwcmVxdWVzdC10aW1lb3V0LXdvcmtlci1zaW1wbGUuaHRtbCI6IFsic2xvdyJdLAorICAgICJp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L3htbGh0dHByZXF1
ZXN0LXRpbWVvdXQtd29ya2VyLXN5bmNvbndvcmtlci5odG1sIjogWyJzbG93Il0sCisgICAgImlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3QveG1saHR0cHJlcXVl
c3QtdGltZW91dC13b3JrZXItdHdpY2UuaHRtbCI6IFsic2xvdyJdLAorICAgICJpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9jb3JzL2NvcnMtcHJlZmxpZ2h0Lmh0bWwi
OiBbIi0tZHVtcC1qc2NvbnNvbGVsb2ctaW4tc3RkZXJyIl0sCisgICAgImltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2NvcnMvY29ycy1wcmVmbGlnaHQtd29ya2VyLmh0
bWwiOiBbIi0tZHVtcC1qc2NvbnNvbGVsb2ctaW4tc3RkZXJyIl0KK30KKwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>287954</attachid>
            <date>2016-09-05 07:36:55 -0700</date>
            <delta_ts>2016-09-07 06:30:12 -0700</delta_ts>
            <desc>Renaming file to tests-options.json</desc>
            <filename>bug-161310-20160905163432.patch</filename>
            <type>text/plain</type>
            <size>29413</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA1NDUwCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMjAwMjk0MTJmZTM5NmFiOGRiMmRjNjM3OTFhNjViZjA2
NzI5MDkwZS4uMzgyOGIxNDE2MDdmODg4ZDE2NzQ0M2M0YWQ2OGZlN2I2MzhhNGU1ZSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDc1
IEBACiAyMDE2LTA5LTA1ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAorICAg
ICAgICBUZXN0IGluZnJhc3RydWN0dXJlIHNob3VsZCBhbGxvdyB0byBmaWx0ZXIgb3V0IHRleHQg
b3V0cHV0IGJlZm9yZSBkb2luZyBhIGNvbXBhcmlzb24gd2l0aCB0aGUgYmFzZWxpbmUKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MTMxMAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGluZyAtLWR1bXAt
anNjb25zb2xlbG9nLWluLXN0ZGVyciB0ZXN0IG9wdGlvbiBmb3IgRFJUIGFuZCBXVFIuCisgICAg
ICAgIFdoZW4gc2V0LCBXVFIgYW5kIERSVCBvdXRwdXQgSlMgY29uc29sZSBsb2cgaW4gdGhlIHN0
ZGVyciBhbmQgbm90IHRoZSB0ZXN0IG91dHB1dC4KKyAgICAgICAgVGhpcyBhbGxvd3MgcmVtb3Zp
bmcgcG90ZW50aWFsbHkgZmxha3kgaW5mb3JtYXRpb24gd2hpbGUgc3RpbGwgYmVpbmcgYWJsZSB0
byByZWFkIGl0IGZvciBpbnZlc3RpZ2F0aW9uLgorCisgICAgICAgIFVwZGF0ZWQgd2Via2l0cHkg
aW5mcmFzdHJ1Y3R1cmUgdG8gbG9vayBmb3IgdGVzdCBvcHRpb25zIGluIGEgZmlsZSBMYXlvdXRU
ZXN0cy90ZXN0LW9wdGlvbnMuanNvbi4KKyAgICAgICAgVGhpcyBmaWxlIGNvbnRhaW5zIGEgc2V0
IG9mIG9wdGlvbnMgZm9yIHNwZWNpZmljIHRlc3RzLgorICAgICAgICBPcHRpb25zIHN0YXJ0aW5n
IHdpdGggJy0tJyBhcmUgcGFzc2VkIGRpcmVjdGx5IGFzIHRlc3Qgb3B0aW9ucyB0byBEUlQgYW5k
IFdUUi4KKyAgICAgICAgT3RoZXIgb3B0aW9ucyBhcmUgcHJvY2Vzc2VkIGludGVybmFsbHkuCisK
KyAgICAgICAgQWRkZWQgc3VwcG9ydCBmb3IgYSAnc2xvdycgb3B0aW9uIHdoaWNoIGFsbG93cyB0
byBpbmNyZWFzZSB0aGUgdGltZW91dC4KKyAgICAgICAgVGhpcyBpcyBzaW1saWFyIHRvIFNMT1cg
dGVzdCBleHBlY3RhdGlvbi4KKyAgICAgICAgVGhlIGJlbmVmaXQgb2YgcHV0dGluZyB0aGF0IGlu
Zm9ybWF0aW9uIGluIExheW91dFRlc3RzL3Rlc3Qtb3B0aW9ucy5qc29uLCBpcyB0aGF0IHRoaXMg
ZmlsZSBjYW4gYmUgbW9kaWZpZWQgYnkgc2NyaXB0cy4KKyAgICAgICAgVGhpcyB3aWxsIGFsbG93
IHVzIHRvIGV4dHJhY3QgJzxtZXRhIG5hbWU9dGltZW91dCBjb250ZW50PWxvbmc+JyBmcm9tIFcz
QyB0ZXN0cyBhbmQgc2V0IHRoZSAnc2xvdycgb3B0aW9uIGF1dG9tYXRpY2FsbHkgd2hlbiBpbXBv
cnRpbmcgdGhlbS4KKworICAgICAgICBDaGFuZ2VzIGFyZSBjb3ZlcmVkIGJ5IHVwZGF0aW5nIGEg
ZmV0Y2ggdGVzdCB0byBvdXRwdXQgY29uc29sZSBsb2cgYW5kIHNldCBpdHMgb3B0aW9uIHRvIC0t
ZHVtcC1qc2NvbnNvbGVsb2ctaW4tc3RkZXJyIGluIHRlc3RzLW9wdGlvbnMuanNvbi4KKyAgICAg
ICAgVGhpcyB0ZXN0IHNob3VsZCBoYXZlIHRoaXMgb3B0aW9uIHdoZW4gZmV0Y2ggQVBJIHdpbGwg
c3RhcnQgbG9nZ2luZyByZXNvdXJjZSBsb2FkZXIgZXJyb3JzLgorCisgICAgICAgIENoYW5nZXMg
YXJlIGFsc28gY292ZXJlZCBieSByZW1vdmluZyB0aGUgc2xvdyBleHBlY3RhdGlvbiBmb3Igc29t
ZSBXM0MgWEhSIHRlc3RzLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRy
ZWUuaDoKKyAgICAgICAgKFRlc3RDb21tYW5kOjpUZXN0Q29tbWFuZCk6CisgICAgICAgICogRHVt
cFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWVDb21tb24uY3BwOgorICAgICAgICAocGFyc2VJbnB1
dExpbmUpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuaDoKKyAgICAgICAg
KFRlc3RSdW5uZXI6OnNldER1bXBKU0NvbnNvbGVMb2dJblN0ZGVycik6CisgICAgICAgIChUZXN0
UnVubmVyOjpkdW1wSlNDb25zb2xlTG9nSW5TdGRlcnIpOgorICAgICAgICAqIER1bXBSZW5kZXJU
cmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbToKKyAgICAgICAgKHJ1blRlc3QpOgorICAgICAgICAq
IER1bXBSZW5kZXJUcmVlL21hYy9VSURlbGVnYXRlLm1tOgorICAgICAgICAoLVtVSURlbGVnYXRl
IHdlYlZpZXc6YWRkTWVzc2FnZVRvQ29uc29sZTp3aXRoU291cmNlOl0pOgorICAgICAgICAqIER1
bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHA6CisgICAgICAgIChydW5UZXN0KToK
KyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS93aW4vVUlEZWxlZ2F0ZS5jcHA6CisgICAgICAgIChV
SURlbGVnYXRlOjp3ZWJWaWV3QWRkTWVzc2FnZVRvQ29uc29sZSk6CisgICAgICAgICogU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvbWFuYWdlci5weToKKyAgICAgICAg
KE1hbmFnZXIuX19pbml0X18pOgorICAgICAgICAoTWFuYWdlci5fdGVzdF9pbnB1dF9mb3JfZmls
ZSk6CisgICAgICAgIChNYW5hZ2VyLl90ZXN0X2lzX3Nsb3cpOgorICAgICAgICAqIFNjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL3NpbmdsZV90ZXN0X3J1bm5lci5weToK
KyAgICAgICAgKFNpbmdsZVRlc3RSdW5uZXIuX19pbml0X18pOgorICAgICAgICAoU2luZ2xlVGVz
dFJ1bm5lci5fZHJpdmVyX2lucHV0KToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9tb2RlbHMvdGVzdF9pbnB1dC5weToKKyAgICAgICAgKFRlc3RJbnB1dC5fX2luaXRf
Xyk6CisgICAgICAgIChUZXN0SW5wdXQuX19yZXByX18pOgorICAgICAgICAqIFNjcmlwdHMvd2Vi
a2l0cHkvcG9ydC9kcml2ZXIucHk6CisgICAgICAgIChEcml2ZXJJbnB1dC5fX2luaXRfXyk6Cisg
ICAgICAgIChEcml2ZXIuX2NvbW1hbmRfZnJvbV9kcml2ZXJfaW5wdXQpOgorICAgICAgICAqIFdl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwOgorICAgICAg
ICAoV1RSOjpJbmplY3RlZEJ1bmRsZTo6ZGlkUmVjZWl2ZU1lc3NhZ2VUb1BhZ2UpOgorICAgICAg
ICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuaDoKKyAg
ICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGU6OmR1bXBKU0NvbnNvbGVMb2dJblN0ZGVycik6Cisg
ICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBh
Z2UuY3BwOgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OndpbGxBZGRNZXNzYWdl
VG9Db25zb2xlKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNw
cDoKKyAgICAgICAgKFdUUjo6cGFyc2VJbnB1dExpbmUpOgorICAgICAgICAoV1RSOjpUZXN0Q29u
dHJvbGxlcjo6cnVuVGVzdCk6CisgICAgICAgIChXVFI6OlRlc3RDb21tYW5kOjpUZXN0Q29tbWFu
ZCk6IERlbGV0ZWQuCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5j
cHA6CisgICAgICAgIChXVFI6OlRlc3RJbnZvY2F0aW9uOjppbnZva2UpOgorICAgICAgICAqIFdl
YktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uaDoKKyAgICAgICAgKFdUUjo6VGVzdEludm9j
YXRpb246OnNldER1bXBKU0NvbnNvbGVMb2dJblN0ZGVycik6CisgICAgICAgIChXVFI6OlRlc3RJ
bnZvY2F0aW9uOjpjdXN0b21UaW1lb3V0KTogRGVsZXRlZC4KKworMjAxNi0wOS0wNSAgWW91ZW5u
IEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKICAgICAgICAgVzNDIHRlc3QgaW1wb3J0ZXIg
c2hvdWxkIGdlbmVyYXRlIHRoZSBsaXN0IG9mIHJlc291cmNlIGZpbGVzCiAgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjE1NzgKIApkaWZmIC0tZ2l0IGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWUuaCBiL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL0R1bXBSZW5kZXJUcmVlLmgKaW5kZXggMmEyZWExNDY3MDg4OGI2NGI0ODczMTkxMjhiMjA1
NjgzZGVhYTViMy4uMWViYzE4ZWU2ZGY4ZmZmZTdjNGY3YWI1OGJiZjZhZjg0MjA0ODE5YSAxMDA2
NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWUuaAorKysgYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZS5oCkBAIC02MiwxMiArNjIsMTEgQEAgdm9p
ZCBkdW1wKCk7CiB2b2lkIGRpc3BsYXlXZWJWaWV3KCk7CiAKIHN0cnVjdCBUZXN0Q29tbWFuZCB7
Ci0gICAgVGVzdENvbW1hbmQoKSA6IHNob3VsZER1bXBQaXhlbHMoZmFsc2UpLCB0aW1lb3V0KDMw
MDAwKSB7IH0KLQogICAgIHN0ZDo6c3RyaW5nIHBhdGhPclVSTDsKLSAgICBib29sIHNob3VsZER1
bXBQaXhlbHM7CisgICAgYm9vbCBzaG91bGREdW1wUGl4ZWxzIHsgZmFsc2UgfTsKICAgICBzdGQ6
OnN0cmluZyBleHBlY3RlZFBpeGVsSGFzaDsKLSAgICBpbnQgdGltZW91dDsgLy8gaW4gbXMKKyAg
ICBpbnQgdGltZW91dCB7IDMwMDAwIH07IC8vIGluIG1zCisgICAgYm9vbCBkdW1wSlNDb25zb2xl
TG9nSW5TdGRlcnIgeyBmYWxzZSB9OwogfTsKIAogVGVzdENvbW1hbmQgcGFyc2VJbnB1dExpbmUo
Y29uc3Qgc3RkOjpzdHJpbmcmKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0R1
bXBSZW5kZXJUcmVlQ29tbW9uLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJU
cmVlQ29tbW9uLmNwcAppbmRleCAzY2I5N2ViZmQyOGQ4NTljMGI2MWE3YzQ2ZDQ1OTAwNmE2Njhh
YzZkLi5kNzMxOGZjZGFhNzBmODhmMGVmMDliOTE2NWY1NWExZjhjMWMwOWNkIDEwMDY0NAotLS0g
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZUNvbW1vbi5jcHAKKysrIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWVDb21tb24uY3BwCkBAIC03Nyw3ICs3Nyw5
IEBAIFRlc3RDb21tYW5kIHBhcnNlSW5wdXRMaW5lKGNvbnN0IHN0ZDo6c3RyaW5nJiBpbnB1dExp
bmUpCiAgICAgICAgICAgICByZXN1bHQuc2hvdWxkRHVtcFBpeGVscyA9IHRydWU7CiAgICAgICAg
ICAgICBpZiAodG9rZW5pemVyLmhhc05leHQoKSkKICAgICAgICAgICAgICAgICByZXN1bHQuZXhw
ZWN0ZWRQaXhlbEhhc2ggPSB0b2tlbml6ZXIubmV4dCgpOwotICAgICAgICB9IGVsc2UKKyAgICAg
ICAgfSBlbHNlIGlmIChhcmcgPT0gc3RkOjpzdHJpbmcoIi0tZHVtcC1qc2NvbnNvbGVsb2ctaW4t
c3RkZXJyIikpCisgICAgICAgICAgICByZXN1bHQuZHVtcEpTQ29uc29sZUxvZ0luU3RkZXJyID0g
dHJ1ZTsKKyAgICAgICAgZWxzZQogICAgICAgICAgICAgZGllKGlucHV0TGluZSk7CiAgICAgfQog
CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmggYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmgKaW5kZXggMjUyNzU4N2ViYTBmNGQ0MzAxMWZjNjc5
OTgwNGUyZjI3MGRiNDM0YS4uMGZkZDJkMGFkOWE3YTBjZWQwODllYjc0ODM3NzU5NmY4MjU2YzVl
MCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5oCisrKyBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuaApAQCAtMzY4LDkgKzM2OCwxMiBAQCBwdWJs
aWM6CiAgICAgZG91YmxlIHRpbWVvdXQoKSB7IHJldHVybiBtX3RpbWVvdXQ7IH0KIAogICAgIHVu
c2lnbmVkIGltYWdlQ291bnRJbkdlbmVyYWxQYXN0ZWJvYXJkKCkgY29uc3Q7Ci0gICAgCisKICAg
ICB2b2lkIGNhbGxVSVNjcmlwdENhbGxiYWNrKHVuc2lnbmVkIGNhbGxiYWNrSUQsIEpTU3RyaW5n
UmVmIHJlc3VsdCk7CiAKKyAgICB2b2lkIHNldER1bXBKU0NvbnNvbGVMb2dJblN0ZGVycihib29s
IGluU3RkZXJyKSB7IG1fZHVtcEpTQ29uc29sZUxvZ0luU3RkZXJyID0gaW5TdGRlcnI7IH0KKyAg
ICBib29sIGR1bXBKU0NvbnNvbGVMb2dJblN0ZGVycigpIGNvbnN0IHsgcmV0dXJuIG1fZHVtcEpT
Q29uc29sZUxvZ0luU3RkZXJyOyB9CisKIHByaXZhdGU6CiAgICAgVGVzdFJ1bm5lcihjb25zdCBz
dGQ6OnN0cmluZyYgdGVzdFVSTCwgY29uc3Qgc3RkOjpzdHJpbmcmIGV4cGVjdGVkUGl4ZWxIYXNo
KTsKIApAQCAtNDM1LDYgKzQzOCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2FyZUxlZ2FjeVdl
Yk5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0c0lnbm9yZWQ7CiAgICAgYm9vbCBtX2N1c3Rv
bUZ1bGxTY3JlZW5CZWhhdmlvcjsKICAgICBib29sIG1faGFzUGVuZGluZ1dlYk5vdGlmaWNhdGlv
bkNsaWNrOworICAgIGJvb2wgbV9kdW1wSlNDb25zb2xlTG9nSW5TdGRlcnIgeyBmYWxzZSB9Owog
CiAgICAgZG91YmxlIG1fZGF0YWJhc2VEZWZhdWx0UXVvdGE7CiAgICAgZG91YmxlIG1fZGF0YWJh
c2VNYXhRdW90YTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVu
ZGVyVHJlZS5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQpp
bmRleCBiZTJkZDZjOWU0ZmQ5NjYyODJmMzQwYzg0NGEwYzNmNjQzYjNkMDg3Li42M2I0ZGVlYzQ3
NGEyZWIzYzc4OTg1ZWFkZDBiOTllNjk2MTkwNGJiIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
bWFjL0R1bXBSZW5kZXJUcmVlLm1tCkBAIC0xOTkzLDYgKzE5OTMsNyBAQCBzdGF0aWMgdm9pZCBy
dW5UZXN0KGNvbnN0IHN0cmluZyYgaW5wdXRMaW5lKQogICAgIGdUZXN0UnVubmVyID0gVGVzdFJ1
bm5lcjo6Y3JlYXRlKHRlc3RVUkwsIGNvbW1hbmQuZXhwZWN0ZWRQaXhlbEhhc2gpOwogICAgIGdU
ZXN0UnVubmVyLT5zZXRBbGxvd2VkSG9zdHMoYWxsb3dlZEhvc3RzKTsKICAgICBnVGVzdFJ1bm5l
ci0+c2V0Q3VzdG9tVGltZW91dChjb21tYW5kLnRpbWVvdXQpOworICAgIGdUZXN0UnVubmVyLT5z
ZXREdW1wSlNDb25zb2xlTG9nSW5TdGRlcnIoY29tbWFuZC5kdW1wSlNDb25zb2xlTG9nSW5TdGRl
cnIpOwogICAgIHRvcExvYWRpbmdGcmFtZSA9IG5pbDsKICNpZiAhUExBVEZPUk0oSU9TKQogICAg
IEFTU0VSVCghZHJhZ2dpbmdJbmZvKTsgLy8gdGhlIHByZXZpb3VzIHRlc3Qgc2hvdWxkIGhhdmUg
Y2FsbGVkIGV2ZW50U2VuZGVyLm1vdXNlVXAgdG8gZHJvcCEKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL21hYy9VSURlbGVnYXRlLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFj
L1VJRGVsZWdhdGUubW0KaW5kZXggMThhNThjZTM4ODA5MWRhMDc0NDQ5YjEzNWRiOWNjNjBkNzJh
ZDI2NC4uYzkxNzQ5ZTE1NzIxZmQ3ZWZlNzI1YWZkNjFiMWE2NDgxNGY3NmY5OCAxMDA2NDQKLS0t
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1VJRGVsZWdhdGUubW0KKysrIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvbWFjL1VJRGVsZWdhdGUubW0KQEAgLTgyLDEwICs4MiwxMSBAQCBEdW1wUmVu
ZGVyVHJlZURyYWdnaW5nSW5mbyAqZHJhZ2dpbmdJbmZvID0gbmlsOwogICAgIGlmIChyYW5nZS5s
b2NhdGlvbiAhPSBOU05vdEZvdW5kKQogICAgICAgICBtZXNzYWdlID0gW1ttZXNzYWdlIHN1YnN0
cmluZ1RvSW5kZXg6cmFuZ2UubG9jYXRpb25dIHN0cmluZ0J5QXBwZW5kaW5nU3RyaW5nOltbbWVz
c2FnZSBzdWJzdHJpbmdGcm9tSW5kZXg6TlNNYXhSYW5nZShyYW5nZSldIGxhc3RQYXRoQ29tcG9u
ZW50XV07CiAKLSAgICBwcmludGYgKCJDT05TT0xFIE1FU1NBR0U6ICIpOworICAgIGF1dG8gb3V0
ID0gZ1Rlc3RSdW5uZXItPmR1bXBKU0NvbnNvbGVMb2dJblN0ZGVycigpID8gc3RkZXJyIDogc3Rk
b3V0OworICAgIGZwcmludGYob3V0LCAiQ09OU09MRSBNRVNTQUdFOiAiKTsKICAgICBpZiAoW2xp
bmVOdW1iZXIgaW50VmFsdWVdKQotICAgICAgICBwcmludGYgKCJsaW5lICVkOiAiLCBbbGluZU51
bWJlciBpbnRWYWx1ZV0pOwotICAgIHByaW50ZiAoIiVzXG4iLCBbbWVzc2FnZSBVVEY4U3RyaW5n
XSk7CisgICAgICAgIGZwcmludGYob3V0LCAibGluZSAlZDogIiwgW2xpbmVOdW1iZXIgaW50VmFs
dWVdKTsKKyAgICBmcHJpbnRmKG91dCwgIiVzXG4iLCBbbWVzc2FnZSBVVEY4U3RyaW5nXSk7CiB9
CiAKIC0gKHZvaWQpbW9kYWxXaW5kb3dXaWxsQ2xvc2U6KE5TTm90aWZpY2F0aW9uICopbm90aWZp
Y2F0aW9uCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRy
ZWUuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcAppbmRl
eCBmM2JjZDVmY2I4ZjdlYmJlYzVhYzI3ZTdkMzJhY2JkZTYzYjUwMmEwLi5lYjAzNDA2Zjk5OGJk
ZWRjN2YyMDcxNjBmOWVlMWYzMjYzMDg2OWQwIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dp
bi9EdW1wUmVuZGVyVHJlZS5jcHAKQEAgLTEwODIsNiArMTA4Miw4IEBAIHN0YXRpYyB2b2lkIHJ1
blRlc3QoY29uc3Qgc3RyaW5nJiBpbnB1dExpbmUpCiAKICAgICA6OmdUZXN0UnVubmVyID0gVGVz
dFJ1bm5lcjo6Y3JlYXRlKHRlc3RVUkwuZGF0YSgpLCBjb21tYW5kLmV4cGVjdGVkUGl4ZWxIYXNo
KTsKICAgICA6OmdUZXN0UnVubmVyLT5zZXRDdXN0b21UaW1lb3V0KGNvbW1hbmQudGltZW91dCk7
CisgICAgOjpnVGVzdFJ1bm5lci0+c2V0RHVtcEpTQ29uc29sZUxvZ0luU3RkZXJyKGNvbW1hbmQu
ZHVtcEpTQ29uc29sZUxvZ0luU3RkZXJyKTsKKwogICAgIHRvcExvYWRpbmdGcmFtZSA9IG51bGxw
dHI7CiAgICAgZG9uZSA9IGZhbHNlOwogCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJl
ZS93aW4vVUlEZWxlZ2F0ZS5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vVUlEZWxlZ2F0
ZS5jcHAKaW5kZXggZGRkOGVhZDhkMjQzZDAyZjRhZDYzZDUyNzFiMzRiMGE2MTg0Zjc4Yy4uZTc0
YmI0NGYxN2U4MTczMjc4YjNkOTEzNTJiYjAyNjFlNzA3ZTgwNSAxMDA2NDQKLS0tIGEvVG9vbHMv
RHVtcFJlbmRlclRyZWUvd2luL1VJRGVsZWdhdGUuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL3dpbi9VSURlbGVnYXRlLmNwcApAQCAtNTA3LDEwICs1MDcsMTEgQEAgSFJFU1VMVCBVSURl
bGVnYXRlOjp3ZWJWaWV3QWRkTWVzc2FnZVRvQ29uc29sZShfSW5fb3B0XyBJV2ViVmlldyogLypz
ZW5kZXIqLywgX0kKICAgICAgICAgICAgIG5ld01lc3NhZ2UgPSBuZXdNZXNzYWdlLnN1YnN0cigw
LCBmaWxlUHJvdG9jb2wpICsgbGFzdFBhdGhDb21wb25lbnQobmV3TWVzc2FnZS5zdWJzdHIoZmls
ZVByb3RvY29sICsgZmlsZVVSTC5zaXplKCkpKTsKICAgICB9CiAKLSAgICBwcmludGYoIkNPTlNP
TEUgTUVTU0FHRTogIik7CisgICAgYXV0byBvdXQgPSBnVGVzdFJ1bm5lci0+ZHVtcEpTQ29uc29s
ZUxvZ0luU3RkZXJyKCkgPyBzdGRlcnIgOiBzdGRvdXQ7CisgICAgZnByaW50ZihvdXQsICJDT05T
T0xFIE1FU1NBR0U6ICIpOwogICAgIGlmIChsaW5lTnVtYmVyKQotICAgICAgICBwcmludGYoImxp
bmUgJWQ6ICIsIGxpbmVOdW1iZXIpOwotICAgIHByaW50ZigiJXNcbiIsIHRvVVRGOChuZXdNZXNz
YWdlKS5jX3N0cigpKTsKKyAgICAgICAgZnByaW50ZihvdXQsICJsaW5lICVkOiAiLCBsaW5lTnVt
YmVyKTsKKyAgICBmcHJpbnRmKG91dCwgIiVzXG4iLCB0b1VURjgobmV3TWVzc2FnZSkuY19zdHIo
KSk7CiAgICAgcmV0dXJuIFNfT0s7CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL21hbmFnZXIucHkgYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9tYW5hZ2VyLnB5CmluZGV4IGFmZWYw
ODE4MzY5NjM1Y2QwN2Y4MmUyOTMwNmUzOTIzYzllYzkwYWEuLmI4OWNiNWM2MTJkMmFhNjZkNTVk
ZTFhNWMxYzQ3MGNhMzhmNTU5M2YgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL21hbmFnZXIucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvbWFuYWdlci5weQpAQCAtODUsNiArODUs
NyBAQCBjbGFzcyBNYW5hZ2VyKG9iamVjdCk6CiAgICAgICAgIHNlbGYuX3Jlc3VsdHNfZGlyZWN0
b3J5ID0gc2VsZi5fcG9ydC5yZXN1bHRzX2RpcmVjdG9yeSgpCiAgICAgICAgIHNlbGYuX2ZpbmRl
ciA9IExheW91dFRlc3RGaW5kZXIoc2VsZi5fcG9ydCwgc2VsZi5fb3B0aW9ucykKICAgICAgICAg
c2VsZi5fcnVubmVyID0gTGF5b3V0VGVzdFJ1bm5lcihzZWxmLl9vcHRpb25zLCBzZWxmLl9wb3J0
LCBzZWxmLl9wcmludGVyLCBzZWxmLl9yZXN1bHRzX2RpcmVjdG9yeSwgc2VsZi5fdGVzdF9pc19z
bG93KQorICAgICAgICBzZWxmLl90ZXN0c19vcHRpb25zID0ganNvbi5sb2FkcyhzZWxmLl9maWxl
c3lzdGVtLnJlYWRfdGV4dF9maWxlKHNlbGYuX3BvcnQucGF0aF9mcm9tX3dlYmtpdF9iYXNlKHNl
bGYuTEFZT1VUX1RFU1RTX0RJUkVDVE9SWSwgInRlc3RzLW9wdGlvbnMuanNvbiIpKSkKIAogICAg
IGRlZiBfY29sbGVjdF90ZXN0cyhzZWxmLCBhcmdzKToKICAgICAgICAgcmV0dXJuIHNlbGYuX2Zp
bmRlci5maW5kX3Rlc3RzKHNlbGYuX29wdGlvbnMsIGFyZ3MpCkBAIC0xMjgsMTAgKzEyOSwxMyBA
QCBjbGFzcyBNYW5hZ2VyKG9iamVjdCk6CiAgICAgZGVmIF90ZXN0X2lucHV0X2Zvcl9maWxlKHNl
bGYsIHRlc3RfZmlsZSk6CiAgICAgICAgIHJldHVybiBUZXN0SW5wdXQodGVzdF9maWxlLAogICAg
ICAgICAgICAgc2VsZi5fb3B0aW9ucy5zbG93X3RpbWVfb3V0X21zIGlmIHNlbGYuX3Rlc3RfaXNf
c2xvdyh0ZXN0X2ZpbGUpIGVsc2Ugc2VsZi5fb3B0aW9ucy50aW1lX291dF9tcywKLSAgICAgICAg
ICAgIHNlbGYuX2lzX2h0dHBfdGVzdCh0ZXN0X2ZpbGUpKQorICAgICAgICAgICAgc2VsZi5faXNf
aHR0cF90ZXN0KHRlc3RfZmlsZSksCisgICAgICAgICAgICBvcHRpb25zPVtvcHRpb24gZm9yIG9w
dGlvbiBpbiBzZWxmLl90ZXN0c19vcHRpb25zLmdldCh0ZXN0X2ZpbGUsIFtdKSBpZiBvcHRpb24u
c3RhcnRzd2l0aCgiLS0iKV0pCiAKICAgICBkZWYgX3Rlc3RfaXNfc2xvdyhzZWxmLCB0ZXN0X2Zp
bGUpOgotICAgICAgICByZXR1cm4gc2VsZi5fZXhwZWN0YXRpb25zLm1vZGVsKCkuaGFzX21vZGlm
aWVyKHRlc3RfZmlsZSwgdGVzdF9leHBlY3RhdGlvbnMuU0xPVykKKyAgICAgICAgaWYgc2VsZi5f
ZXhwZWN0YXRpb25zLm1vZGVsKCkuaGFzX21vZGlmaWVyKHRlc3RfZmlsZSwgdGVzdF9leHBlY3Rh
dGlvbnMuU0xPVyk6CisgICAgICAgICAgICByZXR1cm4gVHJ1ZQorICAgICAgICByZXR1cm4gInNs
b3ciIGluIHNlbGYuX3Rlc3RzX29wdGlvbnMuZ2V0KHRlc3RfZmlsZSwgW10pCiAKICAgICBkZWYg
bmVlZHNfc2VydmVycyhzZWxmLCB0ZXN0X25hbWVzKToKICAgICAgICAgcmV0dXJuIGFueShzZWxm
Ll9pc19odHRwX3Rlc3QodGVzdF9uYW1lKSBmb3IgdGVzdF9uYW1lIGluIHRlc3RfbmFtZXMpIGFu
ZCBzZWxmLl9vcHRpb25zLmh0dHAKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL3NpbmdsZV90ZXN0X3J1bm5lci5weSBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL3NpbmdsZV90ZXN0X3J1bm5l
ci5weQppbmRleCBlODU4MzUyNDcwM2UyYmYzODZhZWQ4ZGZkZjY2NjU3MGRlOGY4YTJlLi4yYjM2
MDg3ZWE4ZGE0NzAxYjU5MTA4MjM5ZGQ4NjE0OGE3ZGE5MzM3IDEwMDY0NAotLS0gYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9zaW5nbGVfdGVzdF9ydW5u
ZXIucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxl
cnMvc2luZ2xlX3Rlc3RfcnVubmVyLnB5CkBAIC01OCw2ICs1OCw3IEBAIGNsYXNzIFNpbmdsZVRl
c3RSdW5uZXIob2JqZWN0KToKICAgICAgICAgc2VsZi5fd29ya2VyX25hbWUgPSB3b3JrZXJfbmFt
ZQogICAgICAgICBzZWxmLl90ZXN0X25hbWUgPSB0ZXN0X2lucHV0LnRlc3RfbmFtZQogICAgICAg
ICBzZWxmLl9zaG91bGRfcnVuX3BpeGVsX3Rlc3QgPSB0ZXN0X2lucHV0LnNob3VsZF9ydW5fcGl4
ZWxfdGVzdAorICAgICAgICBzZWxmLl90ZXN0X2lucHV0X29wdGlvbnMgPSB0ZXN0X2lucHV0Lm9w
dGlvbnMKICAgICAgICAgc2VsZi5fcmVmZXJlbmNlX2ZpbGVzID0gdGVzdF9pbnB1dC5yZWZlcmVu
Y2VfZmlsZXMKICAgICAgICAgc2VsZi5fc3RvcF93aGVuX2RvbmUgPSBzdG9wX3doZW5fZG9uZQog
ICAgICAgICBzZWxmLl90aW1lb3V0ID0gdGVzdF9pbnB1dC50aW1lb3V0CkBAIC04OSw3ICs5MCw3
IEBAIGNsYXNzIFNpbmdsZVRlc3RSdW5uZXIob2JqZWN0KToKICAgICAgICAgaW1hZ2VfaGFzaCA9
IE5vbmUKICAgICAgICAgaWYgc2VsZi5fc2hvdWxkX2ZldGNoX2V4cGVjdGVkX2NoZWNrc3VtKCk6
CiAgICAgICAgICAgICBpbWFnZV9oYXNoID0gc2VsZi5fcG9ydC5leHBlY3RlZF9jaGVja3N1bShz
ZWxmLl90ZXN0X25hbWUpCi0gICAgICAgIHJldHVybiBEcml2ZXJJbnB1dChzZWxmLl90ZXN0X25h
bWUsIHNlbGYuX3RpbWVvdXQsIGltYWdlX2hhc2gsIHNlbGYuX3Nob3VsZF9ydW5fcGl4ZWxfdGVz
dCkKKyAgICAgICAgcmV0dXJuIERyaXZlcklucHV0KHNlbGYuX3Rlc3RfbmFtZSwgc2VsZi5fdGlt
ZW91dCwgaW1hZ2VfaGFzaCwgc2VsZi5fc2hvdWxkX3J1bl9waXhlbF90ZXN0LCB0ZXN0X29wdGlv
bnM9c2VsZi5fdGVzdF9pbnB1dF9vcHRpb25zKQogCiAgICAgZGVmIHJ1bihzZWxmKToKICAgICAg
ICAgaWYgc2VsZi5fcmVmZXJlbmNlX2ZpbGVzOgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfaW5wdXQucHkgYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVzdF9pbnB1dC5weQppbmRleCAzM2U0NDU4
Y2ViZWE1YjlhYTVmYmE0ZDQ2Y2U2ZjVmY2M2OWQxNjRhLi4wNjNlZGQwMDRmMTg1MTY2NGNlY2Qx
ZGMzMTcyZGU3ZmJiMjE3MjVmIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9tb2RlbHMvdGVzdF9pbnB1dC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVzdF9pbnB1dC5weQpAQCAtMzEsNyArMzEsNyBAQAog
Y2xhc3MgVGVzdElucHV0KG9iamVjdCk6CiAgICAgIiIiR3JvdXBzIGluZm9ybWF0aW9uIGFib3V0
IGEgdGVzdCBmb3IgZWFzeSBwYXNzaW5nIG9mIGRhdGEuIiIiCiAKLSAgICBkZWYgX19pbml0X18o
c2VsZiwgdGVzdF9uYW1lLCB0aW1lb3V0PU5vbmUsIG5lZWRzX3NlcnZlcnM9Tm9uZSwgcmVmZXJl
bmNlX2ZpbGVzPU5vbmUsIHNob3VsZF9ydW5fcGl4ZWxfdGVzdHM9Tm9uZSk6CisgICAgZGVmIF9f
aW5pdF9fKHNlbGYsIHRlc3RfbmFtZSwgdGltZW91dD1Ob25lLCBuZWVkc19zZXJ2ZXJzPU5vbmUs
IHJlZmVyZW5jZV9maWxlcz1Ob25lLCBzaG91bGRfcnVuX3BpeGVsX3Rlc3RzPU5vbmUsIG9wdGlv
bnM9W10pOgogICAgICAgICAjIFRlc3RJbnB1dCBvYmplY3RzIGFyZSBub3JtYWxseSBjb25zdHJ1
Y3RlZCBieSB0aGUgbWFuYWdlciBhbmQgcGFzc2VkCiAgICAgICAgICMgdG8gdGhlIHdvcmtlcnMs
IGJ1dCB0aGVzZSBzb21lIGZpZWxkcyBhcmUgc2V0IGxhemlseSBpbiB0aGUgd29ya2VycyB3aGVy
ZSBwb3NzaWJsZQogICAgICAgICAjIGJlY2F1c2UgdGhleSByZXF1aXJlIHVzIHRvIGxvb2sgYXQg
dGhlIGZpbGVzeXN0ZW0gYW5kIHdlIHdhbnQgdG8gYmUgYWJsZSB0byBkbyB0aGF0IGluIHBhcmFs
bGVsLgpAQCAtNDAsNiArNDAsNyBAQCBjbGFzcyBUZXN0SW5wdXQob2JqZWN0KToKICAgICAgICAg
c2VsZi5uZWVkc19zZXJ2ZXJzID0gbmVlZHNfc2VydmVycwogICAgICAgICBzZWxmLnJlZmVyZW5j
ZV9maWxlcyA9IHJlZmVyZW5jZV9maWxlcwogICAgICAgICBzZWxmLnNob3VsZF9ydW5fcGl4ZWxf
dGVzdHMgPSBzaG91bGRfcnVuX3BpeGVsX3Rlc3RzCisgICAgICAgIHNlbGYub3B0aW9ucyA9IG9w
dGlvbnMKIAogICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKLSAgICAgICAgcmV0dXJuICJUZXN0SW5w
dXQoJyVzJywgdGltZW91dD0lcywgbmVlZHNfc2VydmVycz0lcywgcmVmZXJlbmNlX2ZpbGVzPSVz
LCBzaG91bGRfcnVuX3BpeGVsX3Rlc3RzPSVzKSIgJSAoc2VsZi50ZXN0X25hbWUsIHNlbGYudGlt
ZW91dCwgc2VsZi5uZWVkc19zZXJ2ZXJzLCBzZWxmLnJlZmVyZW5jZV9maWxlcywgc2VsZi5zaG91
bGRfcnVuX3BpeGVsX3Rlc3RzKQorICAgICAgICByZXR1cm4gIlRlc3RJbnB1dCgnJXMnLCB0aW1l
b3V0PSVzLCBuZWVkc19zZXJ2ZXJzPSVzLCByZWZlcmVuY2VfZmlsZXM9JXMsIHNob3VsZF9ydW5f
cGl4ZWxfdGVzdHM9JXMsIG9wdGlvbnM9JXMpIiAlIChzZWxmLnRlc3RfbmFtZSwgc2VsZi50aW1l
b3V0LCBzZWxmLm5lZWRzX3NlcnZlcnMsIHNlbGYucmVmZXJlbmNlX2ZpbGVzLCBzZWxmLnNob3Vs
ZF9ydW5fcGl4ZWxfdGVzdHMsICc6Jy5qb2luKHNlbGYub3B0aW9ucykpCmRpZmYgLS1naXQgYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvZHJpdmVyLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9wb3J0L2RyaXZlci5weQppbmRleCAyYWUyYTVjMTJjNzQ5ZThjNTVjZDg1YjBiNTU2ZDQz
YWJhYjJhYzJjLi5lNTg2ODhhZmYxZmU1ZGJkNmZiMzRlN2NkYzBkYzU2YmYwODhjOGU5IDEwMDY0
NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvZHJpdmVyLnB5CisrKyBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvcG9ydC9kcml2ZXIucHkKQEAgLTI4LDcgKzI4LDYgQEAKICMgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KIAogaW1wb3J0IGJhc2U2NAotaW1wb3J0IGNvcHkKIGltcG9ydCBsb2dnaW5nCiBp
bXBvcnQgcmUKIGltcG9ydCBzaGxleApAQCAtMzgsMTkgKzM3LDE5IEBAIGltcG9ydCBvcwogCiBm
cm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0gaW1wb3J0IHBhdGgKIGZyb20gd2Via2l0cHkuY29t
bW9uLnN5c3RlbS5wcm9maWxlciBpbXBvcnQgUHJvZmlsZXJGYWN0b3J5Ci1mcm9tIHdlYmtpdHB5
LmxheW91dF90ZXN0cy5zZXJ2ZXJzLndlYl9wbGF0Zm9ybV90ZXN0X3NlcnZlciBpbXBvcnQgV2Vi
UGxhdGZvcm1UZXN0U2VydmVyCiAKIAogX2xvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9f
KQogCiAKIGNsYXNzIERyaXZlcklucHV0KG9iamVjdCk6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYs
IHRlc3RfbmFtZSwgdGltZW91dCwgaW1hZ2VfaGFzaCwgc2hvdWxkX3J1bl9waXhlbF90ZXN0LCBh
cmdzPU5vbmUpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCB0ZXN0X25hbWUsIHRpbWVvdXQsIGlt
YWdlX2hhc2gsIHNob3VsZF9ydW5fcGl4ZWxfdGVzdCwgYXJncz1Ob25lLCB0ZXN0X29wdGlvbnM9
Tm9uZSk6CiAgICAgICAgIHNlbGYudGVzdF9uYW1lID0gdGVzdF9uYW1lCiAgICAgICAgIHNlbGYu
dGltZW91dCA9IHRpbWVvdXQgICMgaW4gbXMKICAgICAgICAgc2VsZi5pbWFnZV9oYXNoID0gaW1h
Z2VfaGFzaAogICAgICAgICBzZWxmLnNob3VsZF9ydW5fcGl4ZWxfdGVzdCA9IHNob3VsZF9ydW5f
cGl4ZWxfdGVzdAogICAgICAgICBzZWxmLmFyZ3MgPSBhcmdzIG9yIFtdCisgICAgICAgIHNlbGYu
dGVzdF9vcHRpb25zID0gdGVzdF9vcHRpb25zIG9yIFtdCiAKICAgICBkZWYgX19yZXByX18oc2Vs
Zik6CiAgICAgICAgIHJldHVybiAiRHJpdmVySW5wdXQodGVzdF9uYW1lPSd7fScsIHRpbWVvdXQ9
e30sIGltYWdlX2hhc2g9e30sIHNob3VsZF9ydW5fcGl4ZWxfdGVzdD17fSciLmZvcm1hdChzZWxm
LnRlc3RfbmFtZSwgc2VsZi50aW1lb3V0LCBzZWxmLmltYWdlX2hhc2gsIHNlbGYuc2hvdWxkX3J1
bl9waXhlbF90ZXN0KQpAQCAtNDg2LDYgKzQ4NSw4IEBAIGNsYXNzIERyaXZlcihvYmplY3QpOgog
ICAgICAgICAgICAgY29tbWFuZCArPSAiJy0tcGl4ZWwtdGVzdCIKICAgICAgICAgaWYgZHJpdmVy
X2lucHV0LmltYWdlX2hhc2g6CiAgICAgICAgICAgICBjb21tYW5kICs9ICInIiArIGRyaXZlcl9p
bnB1dC5pbWFnZV9oYXNoCisgICAgICAgIGlmIGRyaXZlcl9pbnB1dC50ZXN0X29wdGlvbnM6Cisg
ICAgICAgICAgICBjb21tYW5kICs9ICInIiArICInIi5qb2luKGRyaXZlcl9pbnB1dC50ZXN0X29w
dGlvbnMpCiAgICAgICAgIHJldHVybiBjb21tYW5kICsgIlxuIgogCiAgICAgZGVmIF9yZWFkX2Zp
cnN0X2Jsb2NrKHNlbGYsIGRlYWRsaW5lLCB0ZXN0X25hbWUpOgpkaWZmIC0tZ2l0IGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAgYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAppbmRl
eCAwNTMwOGNhZjVkZjA5MTFkNmVmZTRlYjFhODY3Yjk4ZThmZDI3MjYxLi44NzgwYWJiNTMxZjc5
ZGZiZWUwNTE3NjVkMTQwNDEwODI1NzAwMDliIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAorKysgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcApAQCAtMTU1LDYg
KzE1NSw5IEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGU6OmRpZFJlY2VpdmVNZXNzYWdlVG9QYWdlKFdL
QnVuZGxlUGFnZVJlZiBwYWdlLCBXS1N0cmluZ1JlZiBtCiAgICAgICAgIFdLUmV0YWluUHRyPFdL
U3RyaW5nUmVmPiB0aW1lb3V0S2V5KEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3Ry
aW5nKCJUaW1lb3V0IikpOwogICAgICAgICBtX3RpbWVvdXQgPSAoaW50KVdLVUludDY0R2V0VmFs
dWUoc3RhdGljX2Nhc3Q8V0tVSW50NjRSZWY+KFdLRGljdGlvbmFyeUdldEl0ZW1Gb3JLZXkobWVz
c2FnZUJvZHlEaWN0aW9uYXJ5LCB0aW1lb3V0S2V5LmdldCgpKSkpOwogCisgICAgICAgIFdLUmV0
YWluUHRyPFdLU3RyaW5nUmVmPiBkdW1wSlNDb25zb2xlTG9nSW5TdGRlcnJLZXkoQWRvcHRXSywg
V0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIkR1bXBKU0NvbnNvbGVMb2dJblN0ZGVyciIp
KTsKKyAgICAgICAgbV9kdW1wSlNDb25zb2xlTG9nSW5TdGRlcnIgPSBXS0Jvb2xlYW5HZXRWYWx1
ZShzdGF0aWNfY2FzdDxXS0Jvb2xlYW5SZWY+KFdLRGljdGlvbmFyeUdldEl0ZW1Gb3JLZXkobWVz
c2FnZUJvZHlEaWN0aW9uYXJ5LCBkdW1wSlNDb25zb2xlTG9nSW5TdGRlcnJLZXkuZ2V0KCkpKSk7
CisKICAgICAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IGFja01lc3NhZ2VOYW1lKEFkb3B0
V0ssIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJBY2siKSk7CiAgICAgICAgIFdLUmV0
YWluUHRyPFdLU3RyaW5nUmVmPiBhY2tNZXNzYWdlQm9keShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0
ZVdpdGhVVEY4Q1N0cmluZygiQmVnaW5UZXN0IikpOwogICAgICAgICBXS0J1bmRsZVBhZ2VQb3N0
TWVzc2FnZShwYWdlLCBhY2tNZXNzYWdlTmFtZS5nZXQoKSwgYWNrTWVzc2FnZUJvZHkuZ2V0KCkp
OwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9Jbmpl
Y3RlZEJ1bmRsZS5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9Jbmpl
Y3RlZEJ1bmRsZS5oCmluZGV4IGQ1MTc3MGFjYjg3NGUzZTI0NjUyZTExMGQwYzQxYjUzOTUxNWU5
Y2EuLmEwYTI4MjlmN2VhOTBjN2Y4YWRmZjJhMDlkYWMzYTM4YjQ3YjEyNjkgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuaAor
KysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxl
LmgKQEAgLTc3LDcgKzc3LDggQEAgcHVibGljOgogCiAgICAgYm9vbCBzaG91bGREdW1wUGl4ZWxz
KCkgY29uc3QgeyByZXR1cm4gbV9kdW1wUGl4ZWxzOyB9CiAgICAgYm9vbCB1c2VXYWl0VG9EdW1w
V2F0Y2hkb2dUaW1lcigpIGNvbnN0IHsgcmV0dXJuIG1fdXNlV2FpdFRvRHVtcFdhdGNoZG9nVGlt
ZXI7IH0KLSAgICAKKyAgICBib29sIGR1bXBKU0NvbnNvbGVMb2dJblN0ZGVycigpIGNvbnN0IHsg
cmV0dXJuIG1fZHVtcEpTQ29uc29sZUxvZ0luU3RkZXJyOyB9OworCiAgICAgdm9pZCBvdXRwdXRU
ZXh0KGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgcG9zdE5ld0JlZm9yZVVubG9hZFJldHVyblZh
bHVlKGJvb2wpOwogICAgIHZvaWQgcG9zdEFkZENocm9tZUlucHV0RmllbGQoKTsKQEAgLTE3Miw2
ICsxNzMsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV91c2VXb3JrUXVldWU7CiAgICAgaW50IG1f
dGltZW91dDsKICAgICBib29sIG1fcGl4ZWxSZXN1bHRJc1BlbmRpbmcgeyBmYWxzZSB9OworICAg
IGJvb2wgbV9kdW1wSlNDb25zb2xlTG9nSW5TdGRlcnIgeyBmYWxzZSB9OwogCiAgICAgV0tSZXRh
aW5QdHI8V0tEYXRhUmVmPiBtX2F1ZGlvUmVzdWx0OwogICAgIFdLUmV0YWluUHRyPFdLSW1hZ2VS
ZWY+IG1fcGl4ZWxSZXN1bHQ7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHAKaW5kZXggMTg5OWE4YjNh
M2Y0ZDdjMmJjYjRmN2Y1OTgxNWRmYTgyYTY0MGY2Zi4uNDliM2FkZWQwNmU0MzEwZjE5NmMwNWE5
NmI5YzUyODY5NjVhZmQ1MiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcApAQCAtMTQ1Nyw3ICsx
NDU3LDExIEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjp3aWxsQWRkTWVzc2FnZVRvQ29uc29s
ZShXS1N0cmluZ1JlZiBtZXNzYWdlLCB1aW50MzJfdCBsCiAgICAgfQogICAgIHN0cmluZ0J1aWxk
ZXIuYXBwZW5kKG1lc3NhZ2VTdHJpbmcpOwogICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKCdcbicp
OwotICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoc3RyaW5nQnVpbGRlci50b1N0cmluZygp
KTsKKworICAgIGlmIChpbmplY3RlZEJ1bmRsZS5kdW1wSlNDb25zb2xlTG9nSW5TdGRlcnIoKSkK
KyAgICAgICAgZnByaW50ZihzdGRlcnIsICIlcyIsIHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKS51
dGY4KCkuZGF0YSgpKTsKKyAgICBlbHNlCisgICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRl
eHQoc3RyaW5nQnVpbGRlci50b1N0cmluZygpKTsKIH0KIAogdm9pZCBJbmplY3RlZEJ1bmRsZVBh
Z2U6OndpbGxTZXRTdGF0dXNiYXJUZXh0KFdLU3RyaW5nUmVmIHN0YXR1c2JhclRleHQpCmRpZmYg
LS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IGQyZTQ5YmI1ZGE4OGVi
ZDM3ZGEwZWRmNmIyMmQzNTFmN2EyYWVmZDkuLmVhM2FlOTc1NDhmMzFiYmRkYmNjMWNjNDMwN2Nk
MWRhOWI2MzM0NmMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRy
b2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3Bw
CkBAIC05OTcsMTIgKzk5NywxMSBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpjb25maWd1cmVWaWV3
Rm9yVGVzdChjb25zdCBUZXN0SW52b2NhdGlvbiYgdGVzdCkKIH0KIAogc3RydWN0IFRlc3RDb21t
YW5kIHsKLSAgICBUZXN0Q29tbWFuZCgpIDogc2hvdWxkRHVtcFBpeGVscyhmYWxzZSksIHRpbWVv
dXQoMCkgeyB9Ci0KICAgICBzdGQ6OnN0cmluZyBwYXRoT3JVUkw7Ci0gICAgYm9vbCBzaG91bGRE
dW1wUGl4ZWxzOworICAgIGJvb2wgc2hvdWxkRHVtcFBpeGVscyB7IGZhbHNlIH07CiAgICAgc3Rk
OjpzdHJpbmcgZXhwZWN0ZWRQaXhlbEhhc2g7Ci0gICAgaW50IHRpbWVvdXQ7CisgICAgaW50IHRp
bWVvdXQgeyAwIH07CisgICAgYm9vbCBkdW1wSlNDb25zb2xlTG9nSW5TdGRlcnIgeyBmYWxzZSB9
OwogfTsKIAogY2xhc3MgQ29tbWFuZFRva2VuaXplciB7CkBAIC0xMDc1LDcgKzEwNzQsOSBAQCBU
ZXN0Q29tbWFuZCBwYXJzZUlucHV0TGluZShjb25zdCBzdGQ6OnN0cmluZyYgaW5wdXRMaW5lKQog
ICAgICAgICAgICAgcmVzdWx0LnNob3VsZER1bXBQaXhlbHMgPSB0cnVlOwogICAgICAgICAgICAg
aWYgKHRva2VuaXplci5oYXNOZXh0KCkpCiAgICAgICAgICAgICAgICAgcmVzdWx0LmV4cGVjdGVk
UGl4ZWxIYXNoID0gdG9rZW5pemVyLm5leHQoKTsKLSAgICAgICAgfSBlbHNlCisgICAgICAgIH0g
ZWxzZSBpZiAoYXJnID09IHN0ZDo6c3RyaW5nKCItLWR1bXAtanNjb25zb2xlbG9nLWluLXN0ZGVy
ciIpKQorICAgICAgICAgICAgcmVzdWx0LmR1bXBKU0NvbnNvbGVMb2dJblN0ZGVyciA9IHRydWU7
CisgICAgICAgIGVsc2UKICAgICAgICAgICAgIGRpZShpbnB1dExpbmUpOwogICAgIH0KICAgICBy
ZXR1cm4gcmVzdWx0OwpAQCAtMTA5Niw2ICsxMDk3LDcgQEAgYm9vbCBUZXN0Q29udHJvbGxlcjo6
cnVuVGVzdChjb25zdCBjaGFyKiBpbnB1dExpbmUpCiAgICAgICAgIG1fY3VycmVudEludm9jYXRp
b24tPnNldElzUGl4ZWxUZXN0KGNvbW1hbmQuZXhwZWN0ZWRQaXhlbEhhc2gpOwogICAgIGlmIChj
b21tYW5kLnRpbWVvdXQgPiAwKQogICAgICAgICBtX2N1cnJlbnRJbnZvY2F0aW9uLT5zZXRDdXN0
b21UaW1lb3V0KGNvbW1hbmQudGltZW91dCk7CisgICAgbV9jdXJyZW50SW52b2NhdGlvbi0+c2V0
RHVtcEpTQ29uc29sZUxvZ0luU3RkZXJyKGNvbW1hbmQuZHVtcEpTQ29uc29sZUxvZ0luU3RkZXJy
KTsKIAogICAgIHBsYXRmb3JtV2lsbFJ1blRlc3QoKm1fY3VycmVudEludm9jYXRpb24pOwogCmRp
ZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcCBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCmluZGV4IGQ5NDAwNmU5ZjU2
ZWQ2YjdhMWQ2ZDBlZDgzNjYzMTMxNzQ1NzlkNTEuLjU0ZTY2ODBlOGEwZjU5N2ZlYzkwYTU4NTUz
YmViYmFjMDc5NjY3MDAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdElu
dm9jYXRpb24uY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24u
Y3BwCkBAIC0xNDUsNiArMTQ1LDEwIEBAIHZvaWQgVGVzdEludm9jYXRpb246Omludm9rZSgpCiAg
ICAgV0tSZXRhaW5QdHI8V0tVSW50NjRSZWY+IHRpbWVvdXRWYWx1ZSA9IGFkb3B0V0soV0tVSW50
NjRDcmVhdGUobV90aW1lb3V0KSk7CiAgICAgV0tEaWN0aW9uYXJ5U2V0SXRlbShiZWdpblRlc3RN
ZXNzYWdlQm9keS5nZXQoKSwgdGltZW91dEtleS5nZXQoKSwgdGltZW91dFZhbHVlLmdldCgpKTsK
IAorICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBkdW1wSlNDb25zb2xlTG9nSW5TdGRlcnJL
ZXkgPSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJEdW1wSlNDb25zb2xl
TG9nSW5TdGRlcnIiKSk7CisgICAgV0tSZXRhaW5QdHI8V0tCb29sZWFuUmVmPiBkdW1wSlNDb25z
b2xlTG9nSW5TdGRlcnJWYWx1ZSA9IGFkb3B0V0soV0tCb29sZWFuQ3JlYXRlKG1fZHVtcEpTQ29u
c29sZUxvZ0luU3RkZXJyKSk7CisgICAgV0tEaWN0aW9uYXJ5U2V0SXRlbShiZWdpblRlc3RNZXNz
YWdlQm9keS5nZXQoKSwgZHVtcEpTQ29uc29sZUxvZ0luU3RkZXJyS2V5LmdldCgpLCBkdW1wSlND
b25zb2xlTG9nSW5TdGRlcnJWYWx1ZS5nZXQoKSk7CisKICAgICBXS1BhZ2VQb3N0TWVzc2FnZVRv
SW5qZWN0ZWRCdW5kbGUoVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLm1haW5XZWJWaWV3KCkt
PnBhZ2UoKSwgbWVzc2FnZU5hbWUuZ2V0KCksIGJlZ2luVGVzdE1lc3NhZ2VCb2R5LmdldCgpKTsK
IAogICAgIGJvb2wgc2hvdWxkT3BlbkV4dGVybmFsVVJMcyA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5oIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9UZXN0SW52b2NhdGlvbi5oCmluZGV4IDZhYjE2MmZmODc5MzE0MTU2MzYyMzllNTNj
OWYxMmNmMjBjZWVlY2QuLmU3YWFhM2QxM2ZmYWQwNjlkMjgxNzcyMmNjNDdkNTdlMjUwMWFiMjEg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uaAorKysg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmgKQEAgLTUxLDYgKzUxLDcg
QEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRDdXN0b21UaW1lb3V0KGludCBkdXJhdGlvbikgeyBt
X3RpbWVvdXQgPSBkdXJhdGlvbjsgfQogICAgIGludCBjdXN0b21UaW1lb3V0KCkgY29uc3QgeyBy
ZXR1cm4gbV90aW1lb3V0OyB9CisgICAgdm9pZCBzZXREdW1wSlNDb25zb2xlTG9nSW5TdGRlcnIo
Ym9vbCB2YWx1ZSkgeyBtX2R1bXBKU0NvbnNvbGVMb2dJblN0ZGVyciA9IHZhbHVlOyB9CiAKICAg
ICB2b2lkIGludm9rZSgpOwogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tSW5qZWN0ZWRC
dW5kbGUoV0tTdHJpbmdSZWYgbWVzc2FnZU5hbWUsIFdLVHlwZVJlZiBtZXNzYWdlQm9keSk7CkBA
IC05OSw2ICsxMDAsNyBAQCBwcml2YXRlOgogICAgIHN0ZDo6c3RyaW5nIG1fZXhwZWN0ZWRQaXhl
bEhhc2g7CiAKICAgICBpbnQgbV90aW1lb3V0IHsgMCB9OworICAgIGJvb2wgbV9kdW1wSlNDb25z
b2xlTG9nSW5TdGRlcnIgeyBmYWxzZSB9OwogCiAgICAgLy8gSW52b2NhdGlvbiBzdGF0ZQogICAg
IGJvb2wgbV9nb3RJbml0aWFsUmVzcG9uc2UgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGIxMTA0NWRlZGFk
NTVkZTEzNDJhYmQxZDgxYWU2ZDUxZDVlYWUyNzAuLjQ0ZTU5ZmNhZGJlMDQzMzNlODM1NTkxYTUx
NDhkNmE3NDg1NDAzMmMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsNSArMSwxNSBAQAogMjAxNi0wOS0wNSAgWW91ZW5u
IEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKKyAgICAgICAgVGVzdCBpbmZyYXN0cnVjdHVy
ZSBzaG91bGQgYWxsb3cgdG8gZmlsdGVyIG91dCB0ZXh0IG91dHB1dCBiZWZvcmUgZG9pbmcgYSBj
b21wYXJpc29uIHdpdGggdGhlIGJhc2VsaW5lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNjEzMTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIFRlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogdGVzdHMt
b3B0aW9ucy5qc29uOiBBZGRlZC4KKworMjAxNi0wOS0wNSAgWW91ZW5uIEZhYmxldCAgPHlvdWVu
bkBhcHBsZS5jb20+CisKICAgICAgICAgQ2FjaGVkUmVzb3VyY2VMb2FkZXIgaXMgbm90IHRha2lu
ZyBpbnRvIGFjY291bnQgZmV0Y2ggb3B0aW9ucyB0byB1c2Ugb3Igbm90IGNhY2hlZCByZXNvdXJj
ZXMKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MTM4
OQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCBkZGNkNTdiZWU1Y2UwMmM5ZGE4
ZmFiMzRlYmE2NDg5ZTYyZDM3Mjk1Li45NTI4YTY5ODVmYTM4MzFlZWZhYmZhMWJjYzljM2RhZjBj
MWFiNjI4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsNSArMSwxNCBAQAog
MjAxNi0wOS0wNSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKKyAgICAgICAg
VGVzdCBpbmZyYXN0cnVjdHVyZSBzaG91bGQgYWxsb3cgdG8gZmlsdGVyIG91dCB0ZXh0IG91dHB1
dCBiZWZvcmUgZG9pbmcgYSBjb21wYXJpc29uIHdpdGggdGhlIGJhc2VsaW5lCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjEzMTAKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9hcGkvY29ycy9jb3JzLXByZWZsaWdodC5qczoKKworMjAxNi0wOS0wNSAgWW91ZW5u
IEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKICAgICAgICAgQ2FjaGVkUmVzb3VyY2VMb2Fk
ZXIgaXMgbm90IHRha2luZyBpbnRvIGFjY291bnQgZmV0Y2ggb3B0aW9ucyB0byB1c2Ugb3Igbm90
IGNhY2hlZCByZXNvdXJjZXMKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE2MTM4OQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRp
b25zIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAyZTYwMmJmNTU2ZTc0YmY0
MjhlN2RlYjI0ZmUyNmYwNGIyZWFhMjliLi44NWZjMWRiMjdmYWUxNmRkZWE3Zjk4YTM3MDJmZWE0
NjdmNjBhMzljIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCisrKyBi
L0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTI2MiwyMCArMjYyLDYgQEAgaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvRG9jdW1lbnQtY3JlYXRlRWxlbWVu
dC1uYW1lc3BhY2UuaHRtbAogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jy
b3dzZXJzL3dpbmRvd3MvbmVzdGVkLWJyb3dzaW5nLWNvbnRleHRzL2ZyYW1lRWxlbWVudC5zdWIu
aHRtbCBbIFBhc3MgRmFpbHVyZSBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvYnJvd3NlcnMvd2luZG93cy90YXJnZXRpbmctY3Jvc3Mtb3JpZ2luLW5lc3RlZC1icm93c2lu
Zy1jb250ZXh0cy5zdWIuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCiAKLSMgVzNDIFhNTEh0dHBSZXF1
ZXN0IHRlc3RzCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0
L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtYWJvcnRlZC5odG1sIFsgU2xvdyBdCi1pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L3htbGh0dHByZXF1ZXN0LXRpbWVv
dXQtYWJvcnRlZG9ubWFpbi5odG1sIFsgU2xvdyBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL1hNTEh0dHBSZXF1ZXN0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtb3ZlcnJpZGVzLmh0
bWwgWyBTbG93IF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVl
c3QveG1saHR0cHJlcXVlc3QtdGltZW91dC1vdmVycmlkZXNleHBpcmVzLmh0bWwgWyBTbG93IF0K
LWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3QveG1saHR0cHJl
cXVlc3QtdGltZW91dC1zaW1wbGUuaHRtbCBbIFNsb3cgXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXN5bmNvbm1h
aW4uaHRtbCBbIFNsb3cgXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRw
UmVxdWVzdC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXR3aWNlLmh0bWwgWyBTbG93IF0KLWltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3QveG1saHR0cHJlcXVlc3Qt
dGltZW91dC13b3JrZXItYWJvcnRlZC5odG1sIFsgU2xvdyBdCi1pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtd29ya2Vy
LW92ZXJyaWRlcy5odG1sIFsgU2xvdyBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L1hNTEh0dHBSZXF1ZXN0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtd29ya2VyLW92ZXJyaWRlc2V4
cGlyZXMuaHRtbCBbIFNsb3cgXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxI
dHRwUmVxdWVzdC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXdvcmtlci1zaW1wbGUuaHRtbCBbIFNs
b3cgXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC94bWxo
dHRwcmVxdWVzdC10aW1lb3V0LXdvcmtlci1zeW5jb253b3JrZXIuaHRtbCBbIFNsb3cgXQotaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC94bWxodHRwcmVxdWVz
dC10aW1lb3V0LXdvcmtlci10d2ljZS5odG1sIFsgU2xvdyBdCiAjIFhNTEh0dHBSZXF1ZXN0IHRl
c3RzIHJlcXVpcmluZyBEVFIvV1RSIHRvIGFsbG93IG90aGVyIFVSTHMgdGhhbiBsb2NhbGhvc3Qg
dG8gbm90IGJlIGJsb2NrZWQgYW5kIGJlIHJlYWNoYWJsZSAod3d3Mi5sb2NhbGhvc3QpCiBpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L3NlbmQtcmVkaXJlY3Qt
Ym9ndXMuaHRtIFsgU2tpcCBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0
dHBSZXF1ZXN0L3NlbmQtcmVkaXJlY3QtdG8tY29ycy5odG0gWyBTa2lwIF0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Nv
cnMvY29ycy1wcmVmbGlnaHQuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL2FwaS9jb3JzL2NvcnMtcHJlZmxpZ2h0LmpzCmluZGV4IGQ4MmE0M2Mw
MzRkNTgzOWNiNzhlZmNiMmJlMDk1ZDhjMjUxZGQ5NWIuLmY4YjM1ZmEzODlkMTVhODY0M2I0YmJi
NWIwZWM2NTAwZjY3MzhiM2MgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2NvcnMvY29ycy1wcmVmbGlnaHQuanMKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvY29y
cy9jb3JzLXByZWZsaWdodC5qcwpAQCAtNSw2ICs1LDkgQEAgaWYgKHRoaXMuZG9jdW1lbnQgPT09
IHVuZGVmaW5lZCkgewogICBpbXBvcnRTY3JpcHRzKCIuLi9yZXNvdXJjZXMvZ2V0LWhvc3QtaW5m
by5zdWIuanMiKTsKIH0KIAorLy8gVG8gYmUgcmVtb3ZlZCwgc2VlIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjEzMTAKK2NvbnNvbGUubG9nKCJEb2luZyBzb21lIGxv
Z2dpbmciKQorCiBmdW5jdGlvbiBoZWFkZXJOYW1lcyhoZWFkZXJzKQogewogICAgIGxldCBuYW1l
cyA9IFtdOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvdGVzdHMtb3B0aW9ucy5qc29uIGIvTGF5
b3V0VGVzdHMvdGVzdHMtb3B0aW9ucy5qc29uCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdlZjEyNjhhZTRiOGYxYWI1
YmY3ZmViMWMzNzEzM2RkMDgwNGY0NTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy90
ZXN0cy1vcHRpb25zLmpzb24KQEAgLTAsMCArMSwxOCBAQAoreworICAgICJpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQt
YWJvcnRlZC5odG1sIjogWyJzbG93Il0sCisgICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvWE1MSHR0cFJlcXVlc3QveG1saHR0cHJlcXVlc3QtdGltZW91dC1hYm9ydGVkb25tYWlu
Lmh0bWwiOiBbInNsb3ciXSwKKyAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9Y
TUxIdHRwUmVxdWVzdC94bWxodHRwcmVxdWVzdC10aW1lb3V0LW92ZXJyaWRlcy5odG1sIjogWyJz
bG93Il0sCisgICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVl
c3QveG1saHR0cHJlcXVlc3QtdGltZW91dC1vdmVycmlkZXNleHBpcmVzLmh0bWwiOiBbInNsb3ci
XSwKKyAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC94
bWxodHRwcmVxdWVzdC10aW1lb3V0LXNpbXBsZS5odG1sIjogWyJzbG93Il0sCisgICAgImltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3QveG1saHR0cHJlcXVlc3Qt
dGltZW91dC1zeW5jb25tYWluLmh0bWwiOiBbInNsb3ciXSwKKyAgICAiaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXR3
aWNlLmh0bWwiOiBbInNsb3ciXSwKKyAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9YTUxIdHRwUmVxdWVzdC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXdvcmtlci1hYm9ydGVkLmh0
bWwiOiBbInNsb3ciXSwKKyAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxI
dHRwUmVxdWVzdC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXdvcmtlci1vdmVycmlkZXMuaHRtbCI6
IFsic2xvdyJdLAorICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBS
ZXF1ZXN0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtd29ya2VyLW92ZXJyaWRlc2V4cGlyZXMuaHRt
bCI6IFsic2xvdyJdLAorICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0
dHBSZXF1ZXN0L3htbGh0dHByZXF1ZXN0LXRpbWVvdXQtd29ya2VyLXNpbXBsZS5odG1sIjogWyJz
bG93Il0sCisgICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVl
c3QveG1saHR0cHJlcXVlc3QtdGltZW91dC13b3JrZXItc3luY29ud29ya2VyLmh0bWwiOiBbInNs
b3ciXSwKKyAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVz
dC94bWxodHRwcmVxdWVzdC10aW1lb3V0LXdvcmtlci10d2ljZS5odG1sIjogWyJzbG93Il0sCisg
ICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2NvcnMvY29ycy1w
cmVmbGlnaHQuaHRtbCI6IFsiLS1kdW1wLWpzY29uc29sZWxvZy1pbi1zdGRlcnIiXSwKKyAgICAi
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvY29ycy9jb3JzLXByZWZs
aWdodC13b3JrZXIuaHRtbCI6IFsiLS1kdW1wLWpzY29uc29sZWxvZy1pbi1zdGRlcnIiXQorfQor
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>288132</attachid>
            <date>2016-09-07 06:30:19 -0700</date>
            <delta_ts>2016-12-13 01:59:36 -0800</delta_ts>
            <desc>Rebasing</desc>
            <filename>bug-161310-20160907152754.patch</filename>
            <type>text/plain</type>
            <size>24272</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA1NTQyCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOTRmODI5ZGM5YjBmODlkNTk2MmZkN2UwN2UyMmY0YjU5
ZmZhMjc1ZS4uMTA2M2MxYjhhMWJhMmJiNDc0YWNlMWQ0NzYwOGQzMGQxNGU2MDIxYiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcz
IEBACisyMDE2LTA5LTA3ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAg
ICAgICBUZXN0IGluZnJhc3RydWN0dXJlIHNob3VsZCBhbGxvdyB0byBmaWx0ZXIgb3V0IHRleHQg
b3V0cHV0IGJlZm9yZSBkb2luZyBhIGNvbXBhcmlzb24gd2l0aCB0aGUgYmFzZWxpbmUKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MTMxMAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGluZyAtLWR1bXAt
anNjb25zb2xlbG9nLWluLXN0ZGVyciB0ZXN0IG9wdGlvbiBmb3IgRFJUIGFuZCBXVFIuCisgICAg
ICAgIFdoZW4gc2V0LCBXVFIgYW5kIERSVCBvdXRwdXQgSlMgY29uc29sZSBsb2cgaW4gdGhlIHN0
ZGVyciBhbmQgbm90IHRoZSB0ZXN0IG91dHB1dC4KKyAgICAgICAgVGhpcyBhbGxvd3MgcmVtb3Zp
bmcgcG90ZW50aWFsbHkgZmxha3kgaW5mb3JtYXRpb24gd2hpbGUgc3RpbGwgYmVpbmcgYWJsZSB0
byByZWFkIGl0IGZvciBpbnZlc3RpZ2F0aW9uLgorCisgICAgICAgIFVwZGF0ZWQgd2Via2l0cHkg
aW5mcmFzdHJ1Y3R1cmUgdG8gbG9vayBmb3IgdGVzdCBvcHRpb25zIGluIGEgZmlsZSBMYXlvdXRU
ZXN0cy90ZXN0LW9wdGlvbnMuanNvbi4KKyAgICAgICAgVGhpcyBmaWxlIGNvbnRhaW5zIGEgc2V0
IG9mIG9wdGlvbnMgZm9yIHNwZWNpZmljIHRlc3RzLgorICAgICAgICBPcHRpb25zIHN0YXJ0aW5n
IHdpdGggJy0tJyBhcmUgcGFzc2VkIGRpcmVjdGx5IGFzIHRlc3Qgb3B0aW9ucyB0byBEUlQgYW5k
IFdUUi4KKyAgICAgICAgT3RoZXIgb3B0aW9ucyBhcmUgcHJvY2Vzc2VkIGludGVybmFsbHkuCisK
KyAgICAgICAgQWRkZWQgc3VwcG9ydCBmb3IgYSAnc2xvdycgb3B0aW9uIHdoaWNoIGFsbG93cyB0
byBpbmNyZWFzZSB0aGUgdGltZW91dC4KKyAgICAgICAgVGhpcyBpcyBzaW1saWFyIHRvIFNMT1cg
dGVzdCBleHBlY3RhdGlvbi4KKyAgICAgICAgVGhlIGJlbmVmaXQgb2YgcHV0dGluZyB0aGF0IGlu
Zm9ybWF0aW9uIGluIExheW91dFRlc3RzL3Rlc3Qtb3B0aW9ucy5qc29uLCBpcyB0aGF0IHRoaXMg
ZmlsZSBjYW4gYmUgbW9kaWZpZWQgYnkgc2NyaXB0cy4KKyAgICAgICAgVGhpcyB3aWxsIGFsbG93
IHVzIHRvIGV4dHJhY3QgJzxtZXRhIG5hbWU9dGltZW91dCBjb250ZW50PWxvbmc+JyBmcm9tIFcz
QyB0ZXN0cyBhbmQgc2V0IHRoZSAnc2xvdycgb3B0aW9uIGF1dG9tYXRpY2FsbHkgd2hlbiBpbXBv
cnRpbmcgdGhlbS4KKworICAgICAgICBDaGFuZ2VzIGFyZSBjb3ZlcmVkIGJ5IHVwZGF0aW5nIGEg
ZmV0Y2ggdGVzdCB0byBvdXRwdXQgY29uc29sZSBsb2cgYW5kIHNldCBpdHMgb3B0aW9uIHRvIC0t
ZHVtcC1qc2NvbnNvbGVsb2ctaW4tc3RkZXJyIGluIHRlc3RzLW9wdGlvbnMuanNvbi4KKyAgICAg
ICAgVGhpcyB0ZXN0IHNob3VsZCBoYXZlIHRoaXMgb3B0aW9uIHdoZW4gZmV0Y2ggQVBJIHdpbGwg
c3RhcnQgbG9nZ2luZyByZXNvdXJjZSBsb2FkZXIgZXJyb3JzLgorCisgICAgICAgIENoYW5nZXMg
YXJlIGFsc28gY292ZXJlZCBieSByZW1vdmluZyB0aGUgc2xvdyBleHBlY3RhdGlvbiBmb3Igc29t
ZSBXM0MgWEhSIHRlc3RzLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRy
ZWUuaDoKKyAgICAgICAgKFRlc3RDb21tYW5kOjpUZXN0Q29tbWFuZCk6CisgICAgICAgICogRHVt
cFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWVDb21tb24uY3BwOgorICAgICAgICAocGFyc2VJbnB1
dExpbmUpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuaDoKKyAgICAgICAg
KFRlc3RSdW5uZXI6OnNldER1bXBKU0NvbnNvbGVMb2dJblN0ZGVycik6CisgICAgICAgIChUZXN0
UnVubmVyOjpkdW1wSlNDb25zb2xlTG9nSW5TdGRlcnIpOgorICAgICAgICAqIER1bXBSZW5kZXJU
cmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbToKKyAgICAgICAgKHJ1blRlc3QpOgorICAgICAgICAq
IER1bXBSZW5kZXJUcmVlL21hYy9VSURlbGVnYXRlLm1tOgorICAgICAgICAoLVtVSURlbGVnYXRl
IHdlYlZpZXc6YWRkTWVzc2FnZVRvQ29uc29sZTp3aXRoU291cmNlOl0pOgorICAgICAgICAqIER1
bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHA6CisgICAgICAgIChydW5UZXN0KToK
KyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS93aW4vVUlEZWxlZ2F0ZS5jcHA6CisgICAgICAgIChV
SURlbGVnYXRlOjp3ZWJWaWV3QWRkTWVzc2FnZVRvQ29uc29sZSk6CisgICAgICAgICogU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvbWFuYWdlci5weToKKyAgICAgICAg
KE1hbmFnZXIuX19pbml0X18pOgorICAgICAgICAoTWFuYWdlci5fdGVzdF9pbnB1dF9mb3JfZmls
ZSk6CisgICAgICAgIChNYW5hZ2VyLl90ZXN0X2lzX3Nsb3cpOgorICAgICAgICAqIFNjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL3NpbmdsZV90ZXN0X3J1bm5lci5weToK
KyAgICAgICAgKFNpbmdsZVRlc3RSdW5uZXIuX19pbml0X18pOgorICAgICAgICAoU2luZ2xlVGVz
dFJ1bm5lci5fZHJpdmVyX2lucHV0KToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9tb2RlbHMvdGVzdF9pbnB1dC5weToKKyAgICAgICAgKFRlc3RJbnB1dC5fX2luaXRf
Xyk6CisgICAgICAgIChUZXN0SW5wdXQuX19yZXByX18pOgorICAgICAgICAqIFNjcmlwdHMvd2Vi
a2l0cHkvcG9ydC9kcml2ZXIucHk6CisgICAgICAgIChEcml2ZXJJbnB1dC5fX2luaXRfXyk6Cisg
ICAgICAgIChEcml2ZXIuX2NvbW1hbmRfZnJvbV9kcml2ZXJfaW5wdXQpOgorICAgICAgICAqIFdl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwOgorICAgICAg
ICAoV1RSOjpJbmplY3RlZEJ1bmRsZTo6ZGlkUmVjZWl2ZU1lc3NhZ2VUb1BhZ2UpOgorICAgICAg
ICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuaDoKKyAg
ICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGU6OmR1bXBKU0NvbnNvbGVMb2dJblN0ZGVycik6Cisg
ICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBh
Z2UuY3BwOgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OndpbGxBZGRNZXNzYWdl
VG9Db25zb2xlKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNw
cDoKKyAgICAgICAgKFdUUjo6cGFyc2VJbnB1dExpbmUpOgorICAgICAgICAoV1RSOjpUZXN0Q29u
dHJvbGxlcjo6cnVuVGVzdCk6CisgICAgICAgIChXVFI6OlRlc3RDb21tYW5kOjpUZXN0Q29tbWFu
ZCk6IERlbGV0ZWQuCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5j
cHA6CisgICAgICAgIChXVFI6OlRlc3RJbnZvY2F0aW9uOjppbnZva2UpOgorICAgICAgICAqIFdl
YktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uaDoKKyAgICAgICAgKFdUUjo6VGVzdEludm9j
YXRpb246OnNldER1bXBKU0NvbnNvbGVMb2dJblN0ZGVycik6CisgICAgICAgIChXVFI6OlRlc3RJ
bnZvY2F0aW9uOjpjdXN0b21UaW1lb3V0KTogRGVsZXRlZC4KKwogMjAxNi0wOS0wNiAgWW91ZW5u
IEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgW1N0cmVhbXMgQVBJXSBTZXBh
cmF0ZSBjb21waWxlIGZsYWcgZm9yIFJlYWRhYmxlU3RyZWFtIGFuZCBXcml0YWJsZVN0cmVhbQpk
aWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWUuaCBiL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlLmgKaW5kZXggMmEyZWExNDY3MDg4OGI2NGI0
ODczMTkxMjhiMjA1NjgzZGVhYTViMy4uMWViYzE4ZWU2ZGY4ZmZmZTdjNGY3YWI1OGJiZjZhZjg0
MjA0ODE5YSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWUu
aAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZS5oCkBAIC02MiwxMiAr
NjIsMTEgQEAgdm9pZCBkdW1wKCk7CiB2b2lkIGRpc3BsYXlXZWJWaWV3KCk7CiAKIHN0cnVjdCBU
ZXN0Q29tbWFuZCB7Ci0gICAgVGVzdENvbW1hbmQoKSA6IHNob3VsZER1bXBQaXhlbHMoZmFsc2Up
LCB0aW1lb3V0KDMwMDAwKSB7IH0KLQogICAgIHN0ZDo6c3RyaW5nIHBhdGhPclVSTDsKLSAgICBi
b29sIHNob3VsZER1bXBQaXhlbHM7CisgICAgYm9vbCBzaG91bGREdW1wUGl4ZWxzIHsgZmFsc2Ug
fTsKICAgICBzdGQ6OnN0cmluZyBleHBlY3RlZFBpeGVsSGFzaDsKLSAgICBpbnQgdGltZW91dDsg
Ly8gaW4gbXMKKyAgICBpbnQgdGltZW91dCB7IDMwMDAwIH07IC8vIGluIG1zCisgICAgYm9vbCBk
dW1wSlNDb25zb2xlTG9nSW5TdGRlcnIgeyBmYWxzZSB9OwogfTsKIAogVGVzdENvbW1hbmQgcGFy
c2VJbnB1dExpbmUoY29uc3Qgc3RkOjpzdHJpbmcmKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlQ29tbW9uLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L0R1bXBSZW5kZXJUcmVlQ29tbW9uLmNwcAppbmRleCAzY2I5N2ViZmQyOGQ4NTljMGI2MWE3YzQ2
ZDQ1OTAwNmE2NjhhYzZkLi5kNzMxOGZjZGFhNzBmODhmMGVmMDliOTE2NWY1NWExZjhjMWMwOWNk
IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZUNvbW1vbi5j
cHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWVDb21tb24uY3BwCkBA
IC03Nyw3ICs3Nyw5IEBAIFRlc3RDb21tYW5kIHBhcnNlSW5wdXRMaW5lKGNvbnN0IHN0ZDo6c3Ry
aW5nJiBpbnB1dExpbmUpCiAgICAgICAgICAgICByZXN1bHQuc2hvdWxkRHVtcFBpeGVscyA9IHRy
dWU7CiAgICAgICAgICAgICBpZiAodG9rZW5pemVyLmhhc05leHQoKSkKICAgICAgICAgICAgICAg
ICByZXN1bHQuZXhwZWN0ZWRQaXhlbEhhc2ggPSB0b2tlbml6ZXIubmV4dCgpOwotICAgICAgICB9
IGVsc2UKKyAgICAgICAgfSBlbHNlIGlmIChhcmcgPT0gc3RkOjpzdHJpbmcoIi0tZHVtcC1qc2Nv
bnNvbGVsb2ctaW4tc3RkZXJyIikpCisgICAgICAgICAgICByZXN1bHQuZHVtcEpTQ29uc29sZUxv
Z0luU3RkZXJyID0gdHJ1ZTsKKyAgICAgICAgZWxzZQogICAgICAgICAgICAgZGllKGlucHV0TGlu
ZSk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVy
LmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmgKaW5kZXggMjUyNzU4N2ViYTBm
NGQ0MzAxMWZjNjc5OTgwNGUyZjI3MGRiNDM0YS4uMGZkZDJkMGFkOWE3YTBjZWQwODllYjc0ODM3
NzU5NmY4MjU2YzVlMCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5l
ci5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuaApAQCAtMzY4LDkgKzM2
OCwxMiBAQCBwdWJsaWM6CiAgICAgZG91YmxlIHRpbWVvdXQoKSB7IHJldHVybiBtX3RpbWVvdXQ7
IH0KIAogICAgIHVuc2lnbmVkIGltYWdlQ291bnRJbkdlbmVyYWxQYXN0ZWJvYXJkKCkgY29uc3Q7
Ci0gICAgCisKICAgICB2b2lkIGNhbGxVSVNjcmlwdENhbGxiYWNrKHVuc2lnbmVkIGNhbGxiYWNr
SUQsIEpTU3RyaW5nUmVmIHJlc3VsdCk7CiAKKyAgICB2b2lkIHNldER1bXBKU0NvbnNvbGVMb2dJ
blN0ZGVycihib29sIGluU3RkZXJyKSB7IG1fZHVtcEpTQ29uc29sZUxvZ0luU3RkZXJyID0gaW5T
dGRlcnI7IH0KKyAgICBib29sIGR1bXBKU0NvbnNvbGVMb2dJblN0ZGVycigpIGNvbnN0IHsgcmV0
dXJuIG1fZHVtcEpTQ29uc29sZUxvZ0luU3RkZXJyOyB9CisKIHByaXZhdGU6CiAgICAgVGVzdFJ1
bm5lcihjb25zdCBzdGQ6OnN0cmluZyYgdGVzdFVSTCwgY29uc3Qgc3RkOjpzdHJpbmcmIGV4cGVj
dGVkUGl4ZWxIYXNoKTsKIApAQCAtNDM1LDYgKzQzOCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBt
X2FyZUxlZ2FjeVdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0c0lnbm9yZWQ7CiAgICAg
Ym9vbCBtX2N1c3RvbUZ1bGxTY3JlZW5CZWhhdmlvcjsKICAgICBib29sIG1faGFzUGVuZGluZ1dl
Yk5vdGlmaWNhdGlvbkNsaWNrOworICAgIGJvb2wgbV9kdW1wSlNDb25zb2xlTG9nSW5TdGRlcnIg
eyBmYWxzZSB9OwogCiAgICAgZG91YmxlIG1fZGF0YWJhc2VEZWZhdWx0UXVvdGE7CiAgICAgZG91
YmxlIG1fZGF0YWJhc2VNYXhRdW90YTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L21hYy9EdW1wUmVuZGVyVHJlZS5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVu
ZGVyVHJlZS5tbQppbmRleCA1ZGVmOTlkOTc4NzhiNTA0YmIyNWVmNjNkMGU1YWRkZjMwNWM2YWIy
Li4zMmYyZDhmYzVmMmNjMzhkOGNmMzlkMWM5MTliOGRlMWU1ZDMxODJkIDEwMDY0NAotLS0gYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KKysrIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCkBAIC0xOTg4LDYgKzE5ODgsNyBAQCBz
dGF0aWMgdm9pZCBydW5UZXN0KGNvbnN0IHN0cmluZyYgaW5wdXRMaW5lKQogICAgIGdUZXN0UnVu
bmVyID0gVGVzdFJ1bm5lcjo6Y3JlYXRlKHRlc3RVUkwsIGNvbW1hbmQuZXhwZWN0ZWRQaXhlbEhh
c2gpOwogICAgIGdUZXN0UnVubmVyLT5zZXRBbGxvd2VkSG9zdHMoYWxsb3dlZEhvc3RzKTsKICAg
ICBnVGVzdFJ1bm5lci0+c2V0Q3VzdG9tVGltZW91dChjb21tYW5kLnRpbWVvdXQpOworICAgIGdU
ZXN0UnVubmVyLT5zZXREdW1wSlNDb25zb2xlTG9nSW5TdGRlcnIoY29tbWFuZC5kdW1wSlNDb25z
b2xlTG9nSW5TdGRlcnIpOwogICAgIHRvcExvYWRpbmdGcmFtZSA9IG5pbDsKICNpZiAhUExBVEZP
Uk0oSU9TKQogICAgIEFTU0VSVCghZHJhZ2dpbmdJbmZvKTsgLy8gdGhlIHByZXZpb3VzIHRlc3Qg
c2hvdWxkIGhhdmUgY2FsbGVkIGV2ZW50U2VuZGVyLm1vdXNlVXAgdG8gZHJvcCEKZGlmZiAtLWdp
dCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9VSURlbGVnYXRlLm1tIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvbWFjL1VJRGVsZWdhdGUubW0KaW5kZXggMThhNThjZTM4ODA5MWRhMDc0NDQ5YjEz
NWRiOWNjNjBkNzJhZDI2NC4uYzkxNzQ5ZTE1NzIxZmQ3ZWZlNzI1YWZkNjFiMWE2NDgxNGY3NmY5
OCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1VJRGVsZWdhdGUubW0KKysr
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1VJRGVsZWdhdGUubW0KQEAgLTgyLDEwICs4Miwx
MSBAQCBEdW1wUmVuZGVyVHJlZURyYWdnaW5nSW5mbyAqZHJhZ2dpbmdJbmZvID0gbmlsOwogICAg
IGlmIChyYW5nZS5sb2NhdGlvbiAhPSBOU05vdEZvdW5kKQogICAgICAgICBtZXNzYWdlID0gW1tt
ZXNzYWdlIHN1YnN0cmluZ1RvSW5kZXg6cmFuZ2UubG9jYXRpb25dIHN0cmluZ0J5QXBwZW5kaW5n
U3RyaW5nOltbbWVzc2FnZSBzdWJzdHJpbmdGcm9tSW5kZXg6TlNNYXhSYW5nZShyYW5nZSldIGxh
c3RQYXRoQ29tcG9uZW50XV07CiAKLSAgICBwcmludGYgKCJDT05TT0xFIE1FU1NBR0U6ICIpOwor
ICAgIGF1dG8gb3V0ID0gZ1Rlc3RSdW5uZXItPmR1bXBKU0NvbnNvbGVMb2dJblN0ZGVycigpID8g
c3RkZXJyIDogc3Rkb3V0OworICAgIGZwcmludGYob3V0LCAiQ09OU09MRSBNRVNTQUdFOiAiKTsK
ICAgICBpZiAoW2xpbmVOdW1iZXIgaW50VmFsdWVdKQotICAgICAgICBwcmludGYgKCJsaW5lICVk
OiAiLCBbbGluZU51bWJlciBpbnRWYWx1ZV0pOwotICAgIHByaW50ZiAoIiVzXG4iLCBbbWVzc2Fn
ZSBVVEY4U3RyaW5nXSk7CisgICAgICAgIGZwcmludGYob3V0LCAibGluZSAlZDogIiwgW2xpbmVO
dW1iZXIgaW50VmFsdWVdKTsKKyAgICBmcHJpbnRmKG91dCwgIiVzXG4iLCBbbWVzc2FnZSBVVEY4
U3RyaW5nXSk7CiB9CiAKIC0gKHZvaWQpbW9kYWxXaW5kb3dXaWxsQ2xvc2U6KE5TTm90aWZpY2F0
aW9uICopbm90aWZpY2F0aW9uCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4v
RHVtcFJlbmRlclRyZWUuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJU
cmVlLmNwcAppbmRleCBmM2JjZDVmY2I4ZjdlYmJlYzVhYzI3ZTdkMzJhY2JkZTYzYjUwMmEwLi5l
YjAzNDA2Zjk5OGJkZWRjN2YyMDcxNjBmOWVlMWYzMjYzMDg2OWQwIDEwMDY0NAotLS0gYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwCisrKyBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHAKQEAgLTEwODIsNiArMTA4Miw4IEBAIHN0
YXRpYyB2b2lkIHJ1blRlc3QoY29uc3Qgc3RyaW5nJiBpbnB1dExpbmUpCiAKICAgICA6OmdUZXN0
UnVubmVyID0gVGVzdFJ1bm5lcjo6Y3JlYXRlKHRlc3RVUkwuZGF0YSgpLCBjb21tYW5kLmV4cGVj
dGVkUGl4ZWxIYXNoKTsKICAgICA6OmdUZXN0UnVubmVyLT5zZXRDdXN0b21UaW1lb3V0KGNvbW1h
bmQudGltZW91dCk7CisgICAgOjpnVGVzdFJ1bm5lci0+c2V0RHVtcEpTQ29uc29sZUxvZ0luU3Rk
ZXJyKGNvbW1hbmQuZHVtcEpTQ29uc29sZUxvZ0luU3RkZXJyKTsKKwogICAgIHRvcExvYWRpbmdG
cmFtZSA9IG51bGxwdHI7CiAgICAgZG9uZSA9IGZhbHNlOwogCmRpZmYgLS1naXQgYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS93aW4vVUlEZWxlZ2F0ZS5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93
aW4vVUlEZWxlZ2F0ZS5jcHAKaW5kZXggZGRkOGVhZDhkMjQzZDAyZjRhZDYzZDUyNzFiMzRiMGE2
MTg0Zjc4Yy4uZTc0YmI0NGYxN2U4MTczMjc4YjNkOTEzNTJiYjAyNjFlNzA3ZTgwNSAxMDA2NDQK
LS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL1VJRGVsZWdhdGUuY3BwCisrKyBiL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL3dpbi9VSURlbGVnYXRlLmNwcApAQCAtNTA3LDEwICs1MDcsMTEgQEAg
SFJFU1VMVCBVSURlbGVnYXRlOjp3ZWJWaWV3QWRkTWVzc2FnZVRvQ29uc29sZShfSW5fb3B0XyBJ
V2ViVmlldyogLypzZW5kZXIqLywgX0kKICAgICAgICAgICAgIG5ld01lc3NhZ2UgPSBuZXdNZXNz
YWdlLnN1YnN0cigwLCBmaWxlUHJvdG9jb2wpICsgbGFzdFBhdGhDb21wb25lbnQobmV3TWVzc2Fn
ZS5zdWJzdHIoZmlsZVByb3RvY29sICsgZmlsZVVSTC5zaXplKCkpKTsKICAgICB9CiAKLSAgICBw
cmludGYoIkNPTlNPTEUgTUVTU0FHRTogIik7CisgICAgYXV0byBvdXQgPSBnVGVzdFJ1bm5lci0+
ZHVtcEpTQ29uc29sZUxvZ0luU3RkZXJyKCkgPyBzdGRlcnIgOiBzdGRvdXQ7CisgICAgZnByaW50
ZihvdXQsICJDT05TT0xFIE1FU1NBR0U6ICIpOwogICAgIGlmIChsaW5lTnVtYmVyKQotICAgICAg
ICBwcmludGYoImxpbmUgJWQ6ICIsIGxpbmVOdW1iZXIpOwotICAgIHByaW50ZigiJXNcbiIsIHRv
VVRGOChuZXdNZXNzYWdlKS5jX3N0cigpKTsKKyAgICAgICAgZnByaW50ZihvdXQsICJsaW5lICVk
OiAiLCBsaW5lTnVtYmVyKTsKKyAgICBmcHJpbnRmKG91dCwgIiVzXG4iLCB0b1VURjgobmV3TWVz
c2FnZSkuY19zdHIoKSk7CiAgICAgcmV0dXJuIFNfT0s7CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL21hbmFnZXIucHkgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9tYW5hZ2VyLnB5
CmluZGV4IDBlNWEzMDM3YzUzMmM4NTE2M2ZiNjA2NmY3M2FhMTZlZDdmMzhmYmIuLmUwYmE0NjA3
Mzg1YTI3MTFkY2I4NDljM2QwNzQ3NjM5Y2NiZDEzNzggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL21hbmFnZXIucHkKKysrIGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvbWFuYWdlci5weQpA
QCAtMTMxLDcgKzEzMSw4IEBAIGNsYXNzIE1hbmFnZXIob2JqZWN0KToKICAgICBkZWYgX3Rlc3Rf
aW5wdXRfZm9yX2ZpbGUoc2VsZiwgdGVzdF9maWxlKToKICAgICAgICAgcmV0dXJuIFRlc3RJbnB1
dCh0ZXN0X2ZpbGUsCiAgICAgICAgICAgICBzZWxmLl9vcHRpb25zLnNsb3dfdGltZV9vdXRfbXMg
aWYgc2VsZi5fdGVzdF9pc19zbG93KHRlc3RfZmlsZSkgZWxzZSBzZWxmLl9vcHRpb25zLnRpbWVf
b3V0X21zLAotICAgICAgICAgICAgc2VsZi5faXNfaHR0cF90ZXN0KHRlc3RfZmlsZSkpCisgICAg
ICAgICAgICBzZWxmLl9pc19odHRwX3Rlc3QodGVzdF9maWxlKSwKKyAgICAgICAgICAgIG9wdGlv
bnM9W29wdGlvbiBmb3Igb3B0aW9uIGluIHNlbGYuX3Rlc3RzX29wdGlvbnMuZ2V0KHRlc3RfZmls
ZSwgW10pIGlmIG9wdGlvbi5zdGFydHN3aXRoKCItLSIpXSkKIAogICAgIGRlZiBfdGVzdF9pc19z
bG93KHNlbGYsIHRlc3RfZmlsZSk6CiAgICAgICAgIGlmIHNlbGYuX2V4cGVjdGF0aW9ucy5tb2Rl
bCgpLmhhc19tb2RpZmllcih0ZXN0X2ZpbGUsIHRlc3RfZXhwZWN0YXRpb25zLlNMT1cpOgpkaWZm
IC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMv
c2luZ2xlX3Rlc3RfcnVubmVyLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvY29udHJvbGxlcnMvc2luZ2xlX3Rlc3RfcnVubmVyLnB5CmluZGV4IGU4NTgzNTI0NzAzZTJi
ZjM4NmFlZDhkZmRmNjY2NTcwZGU4ZjhhMmUuLjJiMzYwODdlYThkYTQ3MDFiNTkxMDgyMzlkZDg2
MTQ4YTdkYTkzMzcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL2NvbnRyb2xsZXJzL3NpbmdsZV90ZXN0X3J1bm5lci5weQorKysgYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9zaW5nbGVfdGVzdF9ydW5uZXIucHkK
QEAgLTU4LDYgKzU4LDcgQEAgY2xhc3MgU2luZ2xlVGVzdFJ1bm5lcihvYmplY3QpOgogICAgICAg
ICBzZWxmLl93b3JrZXJfbmFtZSA9IHdvcmtlcl9uYW1lCiAgICAgICAgIHNlbGYuX3Rlc3RfbmFt
ZSA9IHRlc3RfaW5wdXQudGVzdF9uYW1lCiAgICAgICAgIHNlbGYuX3Nob3VsZF9ydW5fcGl4ZWxf
dGVzdCA9IHRlc3RfaW5wdXQuc2hvdWxkX3J1bl9waXhlbF90ZXN0CisgICAgICAgIHNlbGYuX3Rl
c3RfaW5wdXRfb3B0aW9ucyA9IHRlc3RfaW5wdXQub3B0aW9ucwogICAgICAgICBzZWxmLl9yZWZl
cmVuY2VfZmlsZXMgPSB0ZXN0X2lucHV0LnJlZmVyZW5jZV9maWxlcwogICAgICAgICBzZWxmLl9z
dG9wX3doZW5fZG9uZSA9IHN0b3Bfd2hlbl9kb25lCiAgICAgICAgIHNlbGYuX3RpbWVvdXQgPSB0
ZXN0X2lucHV0LnRpbWVvdXQKQEAgLTg5LDcgKzkwLDcgQEAgY2xhc3MgU2luZ2xlVGVzdFJ1bm5l
cihvYmplY3QpOgogICAgICAgICBpbWFnZV9oYXNoID0gTm9uZQogICAgICAgICBpZiBzZWxmLl9z
aG91bGRfZmV0Y2hfZXhwZWN0ZWRfY2hlY2tzdW0oKToKICAgICAgICAgICAgIGltYWdlX2hhc2gg
PSBzZWxmLl9wb3J0LmV4cGVjdGVkX2NoZWNrc3VtKHNlbGYuX3Rlc3RfbmFtZSkKLSAgICAgICAg
cmV0dXJuIERyaXZlcklucHV0KHNlbGYuX3Rlc3RfbmFtZSwgc2VsZi5fdGltZW91dCwgaW1hZ2Vf
aGFzaCwgc2VsZi5fc2hvdWxkX3J1bl9waXhlbF90ZXN0KQorICAgICAgICByZXR1cm4gRHJpdmVy
SW5wdXQoc2VsZi5fdGVzdF9uYW1lLCBzZWxmLl90aW1lb3V0LCBpbWFnZV9oYXNoLCBzZWxmLl9z
aG91bGRfcnVuX3BpeGVsX3Rlc3QsIHRlc3Rfb3B0aW9ucz1zZWxmLl90ZXN0X2lucHV0X29wdGlv
bnMpCiAKICAgICBkZWYgcnVuKHNlbGYpOgogICAgICAgICBpZiBzZWxmLl9yZWZlcmVuY2VfZmls
ZXM6CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9tb2Rl
bHMvdGVzdF9pbnB1dC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21v
ZGVscy90ZXN0X2lucHV0LnB5CmluZGV4IDMzZTQ0NThjZWJlYTViOWFhNWZiYTRkNDZjZTZmNWZj
YzY5ZDE2NGEuLjA2M2VkZDAwNGYxODUxNjY0Y2VjZDFkYzMxNzJkZTdmYmIyMTcyNWYgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X2lu
cHV0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90
ZXN0X2lucHV0LnB5CkBAIC0zMSw3ICszMSw3IEBACiBjbGFzcyBUZXN0SW5wdXQob2JqZWN0KToK
ICAgICAiIiJHcm91cHMgaW5mb3JtYXRpb24gYWJvdXQgYSB0ZXN0IGZvciBlYXN5IHBhc3Npbmcg
b2YgZGF0YS4iIiIKIAotICAgIGRlZiBfX2luaXRfXyhzZWxmLCB0ZXN0X25hbWUsIHRpbWVvdXQ9
Tm9uZSwgbmVlZHNfc2VydmVycz1Ob25lLCByZWZlcmVuY2VfZmlsZXM9Tm9uZSwgc2hvdWxkX3J1
bl9waXhlbF90ZXN0cz1Ob25lKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgdGVzdF9uYW1lLCB0
aW1lb3V0PU5vbmUsIG5lZWRzX3NlcnZlcnM9Tm9uZSwgcmVmZXJlbmNlX2ZpbGVzPU5vbmUsIHNo
b3VsZF9ydW5fcGl4ZWxfdGVzdHM9Tm9uZSwgb3B0aW9ucz1bXSk6CiAgICAgICAgICMgVGVzdElu
cHV0IG9iamVjdHMgYXJlIG5vcm1hbGx5IGNvbnN0cnVjdGVkIGJ5IHRoZSBtYW5hZ2VyIGFuZCBw
YXNzZWQKICAgICAgICAgIyB0byB0aGUgd29ya2VycywgYnV0IHRoZXNlIHNvbWUgZmllbGRzIGFy
ZSBzZXQgbGF6aWx5IGluIHRoZSB3b3JrZXJzIHdoZXJlIHBvc3NpYmxlCiAgICAgICAgICMgYmVj
YXVzZSB0aGV5IHJlcXVpcmUgdXMgdG8gbG9vayBhdCB0aGUgZmlsZXN5c3RlbSBhbmQgd2Ugd2Fu
dCB0byBiZSBhYmxlIHRvIGRvIHRoYXQgaW4gcGFyYWxsZWwuCkBAIC00MCw2ICs0MCw3IEBAIGNs
YXNzIFRlc3RJbnB1dChvYmplY3QpOgogICAgICAgICBzZWxmLm5lZWRzX3NlcnZlcnMgPSBuZWVk
c19zZXJ2ZXJzCiAgICAgICAgIHNlbGYucmVmZXJlbmNlX2ZpbGVzID0gcmVmZXJlbmNlX2ZpbGVz
CiAgICAgICAgIHNlbGYuc2hvdWxkX3J1bl9waXhlbF90ZXN0cyA9IHNob3VsZF9ydW5fcGl4ZWxf
dGVzdHMKKyAgICAgICAgc2VsZi5vcHRpb25zID0gb3B0aW9ucwogCiAgICAgZGVmIF9fcmVwcl9f
KHNlbGYpOgotICAgICAgICByZXR1cm4gIlRlc3RJbnB1dCgnJXMnLCB0aW1lb3V0PSVzLCBuZWVk
c19zZXJ2ZXJzPSVzLCByZWZlcmVuY2VfZmlsZXM9JXMsIHNob3VsZF9ydW5fcGl4ZWxfdGVzdHM9
JXMpIiAlIChzZWxmLnRlc3RfbmFtZSwgc2VsZi50aW1lb3V0LCBzZWxmLm5lZWRzX3NlcnZlcnMs
IHNlbGYucmVmZXJlbmNlX2ZpbGVzLCBzZWxmLnNob3VsZF9ydW5fcGl4ZWxfdGVzdHMpCisgICAg
ICAgIHJldHVybiAiVGVzdElucHV0KCclcycsIHRpbWVvdXQ9JXMsIG5lZWRzX3NlcnZlcnM9JXMs
IHJlZmVyZW5jZV9maWxlcz0lcywgc2hvdWxkX3J1bl9waXhlbF90ZXN0cz0lcywgb3B0aW9ucz0l
cykiICUgKHNlbGYudGVzdF9uYW1lLCBzZWxmLnRpbWVvdXQsIHNlbGYubmVlZHNfc2VydmVycywg
c2VsZi5yZWZlcmVuY2VfZmlsZXMsIHNlbGYuc2hvdWxkX3J1bl9waXhlbF90ZXN0cywgJzonLmpv
aW4oc2VsZi5vcHRpb25zKSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9y
dC9kcml2ZXIucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvZHJpdmVyLnB5CmluZGV4
IDJhZTJhNWMxMmM3NDllOGM1NWNkODViMGI1NTZkNDNhYmFiMmFjMmMuLmU1ODY4OGFmZjFmZTVk
YmQ2ZmIzNGU3Y2RjMGRjNTZiZjA4OGM4ZTkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvcG9ydC9kcml2ZXIucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2Ry
aXZlci5weQpAQCAtMjgsNyArMjgsNiBAQAogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCiBpbXBvcnQgYmFzZTY0
Ci1pbXBvcnQgY29weQogaW1wb3J0IGxvZ2dpbmcKIGltcG9ydCByZQogaW1wb3J0IHNobGV4CkBA
IC0zOCwxOSArMzcsMTkgQEAgaW1wb3J0IG9zCiAKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3Rl
bSBpbXBvcnQgcGF0aAogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLnByb2ZpbGVyIGltcG9y
dCBQcm9maWxlckZhY3RvcnkKLWZyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLnNlcnZlcnMud2Vi
X3BsYXRmb3JtX3Rlc3Rfc2VydmVyIGltcG9ydCBXZWJQbGF0Zm9ybVRlc3RTZXJ2ZXIKIAogCiBf
bG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18pCiAKIAogY2xhc3MgRHJpdmVySW5wdXQo
b2JqZWN0KToKLSAgICBkZWYgX19pbml0X18oc2VsZiwgdGVzdF9uYW1lLCB0aW1lb3V0LCBpbWFn
ZV9oYXNoLCBzaG91bGRfcnVuX3BpeGVsX3Rlc3QsIGFyZ3M9Tm9uZSk6CisgICAgZGVmIF9faW5p
dF9fKHNlbGYsIHRlc3RfbmFtZSwgdGltZW91dCwgaW1hZ2VfaGFzaCwgc2hvdWxkX3J1bl9waXhl
bF90ZXN0LCBhcmdzPU5vbmUsIHRlc3Rfb3B0aW9ucz1Ob25lKToKICAgICAgICAgc2VsZi50ZXN0
X25hbWUgPSB0ZXN0X25hbWUKICAgICAgICAgc2VsZi50aW1lb3V0ID0gdGltZW91dCAgIyBpbiBt
cwogICAgICAgICBzZWxmLmltYWdlX2hhc2ggPSBpbWFnZV9oYXNoCiAgICAgICAgIHNlbGYuc2hv
dWxkX3J1bl9waXhlbF90ZXN0ID0gc2hvdWxkX3J1bl9waXhlbF90ZXN0CiAgICAgICAgIHNlbGYu
YXJncyA9IGFyZ3Mgb3IgW10KKyAgICAgICAgc2VsZi50ZXN0X29wdGlvbnMgPSB0ZXN0X29wdGlv
bnMgb3IgW10KIAogICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKICAgICAgICAgcmV0dXJuICJEcml2
ZXJJbnB1dCh0ZXN0X25hbWU9J3t9JywgdGltZW91dD17fSwgaW1hZ2VfaGFzaD17fSwgc2hvdWxk
X3J1bl9waXhlbF90ZXN0PXt9JyIuZm9ybWF0KHNlbGYudGVzdF9uYW1lLCBzZWxmLnRpbWVvdXQs
IHNlbGYuaW1hZ2VfaGFzaCwgc2VsZi5zaG91bGRfcnVuX3BpeGVsX3Rlc3QpCkBAIC00ODYsNiAr
NDg1LDggQEAgY2xhc3MgRHJpdmVyKG9iamVjdCk6CiAgICAgICAgICAgICBjb21tYW5kICs9ICIn
LS1waXhlbC10ZXN0IgogICAgICAgICBpZiBkcml2ZXJfaW5wdXQuaW1hZ2VfaGFzaDoKICAgICAg
ICAgICAgIGNvbW1hbmQgKz0gIiciICsgZHJpdmVyX2lucHV0LmltYWdlX2hhc2gKKyAgICAgICAg
aWYgZHJpdmVyX2lucHV0LnRlc3Rfb3B0aW9uczoKKyAgICAgICAgICAgIGNvbW1hbmQgKz0gIici
ICsgIiciLmpvaW4oZHJpdmVyX2lucHV0LnRlc3Rfb3B0aW9ucykKICAgICAgICAgcmV0dXJuIGNv
bW1hbmQgKyAiXG4iCiAKICAgICBkZWYgX3JlYWRfZmlyc3RfYmxvY2soc2VsZiwgZGVhZGxpbmUs
IHRlc3RfbmFtZSk6CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCmluZGV4IDA1MzA4Y2FmNWRmMDkxMWQ2ZWZlNGVi
MWE4NjdiOThlOGZkMjcyNjEuLjg3ODBhYmI1MzFmNzlkZmJlZTA1MTc2NWQxNDA0MTA4MjU3MDAw
OWIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5q
ZWN0ZWRCdW5kbGUuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvSW5qZWN0ZWRCdW5kbGUuY3BwCkBAIC0xNTUsNiArMTU1LDkgQEAgdm9pZCBJbmplY3RlZEJ1
bmRsZTo6ZGlkUmVjZWl2ZU1lc3NhZ2VUb1BhZ2UoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLU3Ry
aW5nUmVmIG0KICAgICAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHRpbWVvdXRLZXkoQWRv
cHRXSywgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIlRpbWVvdXQiKSk7CiAgICAgICAg
IG1fdGltZW91dCA9IChpbnQpV0tVSW50NjRHZXRWYWx1ZShzdGF0aWNfY2FzdDxXS1VJbnQ2NFJl
Zj4oV0tEaWN0aW9uYXJ5R2V0SXRlbUZvcktleShtZXNzYWdlQm9keURpY3Rpb25hcnksIHRpbWVv
dXRLZXkuZ2V0KCkpKSk7CiAKKyAgICAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IGR1bXBK
U0NvbnNvbGVMb2dJblN0ZGVycktleShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0
cmluZygiRHVtcEpTQ29uc29sZUxvZ0luU3RkZXJyIikpOworICAgICAgICBtX2R1bXBKU0NvbnNv
bGVMb2dJblN0ZGVyciA9IFdLQm9vbGVhbkdldFZhbHVlKHN0YXRpY19jYXN0PFdLQm9vbGVhblJl
Zj4oV0tEaWN0aW9uYXJ5R2V0SXRlbUZvcktleShtZXNzYWdlQm9keURpY3Rpb25hcnksIGR1bXBK
U0NvbnNvbGVMb2dJblN0ZGVycktleS5nZXQoKSkpKTsKKwogICAgICAgICBXS1JldGFpblB0cjxX
S1N0cmluZ1JlZj4gYWNrTWVzc2FnZU5hbWUoQWRvcHRXSywgV0tTdHJpbmdDcmVhdGVXaXRoVVRG
OENTdHJpbmcoIkFjayIpKTsKICAgICAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IGFja01l
c3NhZ2VCb2R5KEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJCZWdpblRl
c3QiKSk7CiAgICAgICAgIFdLQnVuZGxlUGFnZVBvc3RNZXNzYWdlKHBhZ2UsIGFja01lc3NhZ2VO
YW1lLmdldCgpLCBhY2tNZXNzYWdlQm9keS5nZXQoKSk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmggYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmgKaW5kZXggZDUxNzcw
YWNiODc0ZTNlMjQ2NTJlMTEwZDBjNDFiNTM5NTE1ZTljYS4uYTBhMjgyOWY3ZWE5MGM3ZjhhZGZm
MmEwOWRhYzNhMzhiNDdiMTI2OSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuaApAQCAtNzcsNyArNzcsOCBAQCBwdWJs
aWM6CiAKICAgICBib29sIHNob3VsZER1bXBQaXhlbHMoKSBjb25zdCB7IHJldHVybiBtX2R1bXBQ
aXhlbHM7IH0KICAgICBib29sIHVzZVdhaXRUb0R1bXBXYXRjaGRvZ1RpbWVyKCkgY29uc3QgeyBy
ZXR1cm4gbV91c2VXYWl0VG9EdW1wV2F0Y2hkb2dUaW1lcjsgfQotICAgIAorICAgIGJvb2wgZHVt
cEpTQ29uc29sZUxvZ0luU3RkZXJyKCkgY29uc3QgeyByZXR1cm4gbV9kdW1wSlNDb25zb2xlTG9n
SW5TdGRlcnI7IH07CisKICAgICB2b2lkIG91dHB1dFRleHQoY29uc3QgU3RyaW5nJik7CiAgICAg
dm9pZCBwb3N0TmV3QmVmb3JlVW5sb2FkUmV0dXJuVmFsdWUoYm9vbCk7CiAgICAgdm9pZCBwb3N0
QWRkQ2hyb21lSW5wdXRGaWVsZCgpOwpAQCAtMTcyLDYgKzE3Myw3IEBAIHByaXZhdGU6CiAgICAg
Ym9vbCBtX3VzZVdvcmtRdWV1ZTsKICAgICBpbnQgbV90aW1lb3V0OwogICAgIGJvb2wgbV9waXhl
bFJlc3VsdElzUGVuZGluZyB7IGZhbHNlIH07CisgICAgYm9vbCBtX2R1bXBKU0NvbnNvbGVMb2dJ
blN0ZGVyciB7IGZhbHNlIH07CiAKICAgICBXS1JldGFpblB0cjxXS0RhdGFSZWY+IG1fYXVkaW9S
ZXN1bHQ7CiAgICAgV0tSZXRhaW5QdHI8V0tJbWFnZVJlZj4gbV9waXhlbFJlc3VsdDsKZGlmZiAt
LWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5k
bGVQYWdlLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0
ZWRCdW5kbGVQYWdlLmNwcAppbmRleCAxODk5YThiM2EzZjRkN2MyYmNiNGY3ZjU5ODE1ZGZhODJh
NjQwZjZmLi40OWIzYWRlZDA2ZTQzMTBmMTk2YzA1YTk2YjljNTI4Njk2NWFmZDUyIDEwMDY0NAot
LS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxl
UGFnZS5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9Jbmpl
Y3RlZEJ1bmRsZVBhZ2UuY3BwCkBAIC0xNDU3LDcgKzE0NTcsMTEgQEAgdm9pZCBJbmplY3RlZEJ1
bmRsZVBhZ2U6OndpbGxBZGRNZXNzYWdlVG9Db25zb2xlKFdLU3RyaW5nUmVmIG1lc3NhZ2UsIHVp
bnQzMl90IGwKICAgICB9CiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQobWVzc2FnZVN0cmluZyk7
CiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoJ1xuJyk7Ci0gICAgaW5qZWN0ZWRCdW5kbGUub3V0
cHV0VGV4dChzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOworCisgICAgaWYgKGluamVjdGVkQnVu
ZGxlLmR1bXBKU0NvbnNvbGVMb2dJblN0ZGVycigpKQorICAgICAgICBmcHJpbnRmKHN0ZGVyciwg
IiVzIiwgc3RyaW5nQnVpbGRlci50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOworICAgIGVsc2UK
KyAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dChzdHJpbmdCdWlsZGVyLnRvU3RyaW5n
KCkpOwogfQogCiB2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6d2lsbFNldFN0YXR1c2JhclRleHQo
V0tTdHJpbmdSZWYgc3RhdHVzYmFyVGV4dCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29u
dHJvbGxlci5jcHAKaW5kZXggZDJlNDliYjVkYTg4ZWJkMzdkYTBlZGY2YjIyZDM1MWY3YTJhZWZk
OS4uZWEzYWU5NzU0OGYzMWJiZGRiY2MxY2M0MzA3Y2QxZGE5YjYzMzQ2YyAxMDA2NDQKLS0tIGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKQEAgLTk5NywxMiArOTk3LDExIEBAIHZv
aWQgVGVzdENvbnRyb2xsZXI6OmNvbmZpZ3VyZVZpZXdGb3JUZXN0KGNvbnN0IFRlc3RJbnZvY2F0
aW9uJiB0ZXN0KQogfQogCiBzdHJ1Y3QgVGVzdENvbW1hbmQgewotICAgIFRlc3RDb21tYW5kKCkg
OiBzaG91bGREdW1wUGl4ZWxzKGZhbHNlKSwgdGltZW91dCgwKSB7IH0KLQogICAgIHN0ZDo6c3Ry
aW5nIHBhdGhPclVSTDsKLSAgICBib29sIHNob3VsZER1bXBQaXhlbHM7CisgICAgYm9vbCBzaG91
bGREdW1wUGl4ZWxzIHsgZmFsc2UgfTsKICAgICBzdGQ6OnN0cmluZyBleHBlY3RlZFBpeGVsSGFz
aDsKLSAgICBpbnQgdGltZW91dDsKKyAgICBpbnQgdGltZW91dCB7IDAgfTsKKyAgICBib29sIGR1
bXBKU0NvbnNvbGVMb2dJblN0ZGVyciB7IGZhbHNlIH07CiB9OwogCiBjbGFzcyBDb21tYW5kVG9r
ZW5pemVyIHsKQEAgLTEwNzUsNyArMTA3NCw5IEBAIFRlc3RDb21tYW5kIHBhcnNlSW5wdXRMaW5l
KGNvbnN0IHN0ZDo6c3RyaW5nJiBpbnB1dExpbmUpCiAgICAgICAgICAgICByZXN1bHQuc2hvdWxk
RHVtcFBpeGVscyA9IHRydWU7CiAgICAgICAgICAgICBpZiAodG9rZW5pemVyLmhhc05leHQoKSkK
ICAgICAgICAgICAgICAgICByZXN1bHQuZXhwZWN0ZWRQaXhlbEhhc2ggPSB0b2tlbml6ZXIubmV4
dCgpOwotICAgICAgICB9IGVsc2UKKyAgICAgICAgfSBlbHNlIGlmIChhcmcgPT0gc3RkOjpzdHJp
bmcoIi0tZHVtcC1qc2NvbnNvbGVsb2ctaW4tc3RkZXJyIikpCisgICAgICAgICAgICByZXN1bHQu
ZHVtcEpTQ29uc29sZUxvZ0luU3RkZXJyID0gdHJ1ZTsKKyAgICAgICAgZWxzZQogICAgICAgICAg
ICAgZGllKGlucHV0TGluZSk7CiAgICAgfQogICAgIHJldHVybiByZXN1bHQ7CkBAIC0xMDk2LDYg
KzEwOTcsNyBAQCBib29sIFRlc3RDb250cm9sbGVyOjpydW5UZXN0KGNvbnN0IGNoYXIqIGlucHV0
TGluZSkKICAgICAgICAgbV9jdXJyZW50SW52b2NhdGlvbi0+c2V0SXNQaXhlbFRlc3QoY29tbWFu
ZC5leHBlY3RlZFBpeGVsSGFzaCk7CiAgICAgaWYgKGNvbW1hbmQudGltZW91dCA+IDApCiAgICAg
ICAgIG1fY3VycmVudEludm9jYXRpb24tPnNldEN1c3RvbVRpbWVvdXQoY29tbWFuZC50aW1lb3V0
KTsKKyAgICBtX2N1cnJlbnRJbnZvY2F0aW9uLT5zZXREdW1wSlNDb25zb2xlTG9nSW5TdGRlcnIo
Y29tbWFuZC5kdW1wSlNDb25zb2xlTG9nSW5TdGRlcnIpOwogCiAgICAgcGxhdGZvcm1XaWxsUnVu
VGVzdCgqbV9jdXJyZW50SW52b2NhdGlvbik7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0
SW52b2NhdGlvbi5jcHAKaW5kZXggZDk0MDA2ZTlmNTZlZDZiN2ExZDZkMGVkODM2NjMxMzE3NDU3
OWQ1MS4uNTRlNjY4MGU4YTBmNTk3ZmVjOTBhNTg1NTNiZWJiYWMwNzk2NjcwMCAxMDA2NDQKLS0t
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKKysrIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKQEAgLTE0NSw2ICsxNDUsMTAgQEAg
dm9pZCBUZXN0SW52b2NhdGlvbjo6aW52b2tlKCkKICAgICBXS1JldGFpblB0cjxXS1VJbnQ2NFJl
Zj4gdGltZW91dFZhbHVlID0gYWRvcHRXSyhXS1VJbnQ2NENyZWF0ZShtX3RpbWVvdXQpKTsKICAg
ICBXS0RpY3Rpb25hcnlTZXRJdGVtKGJlZ2luVGVzdE1lc3NhZ2VCb2R5LmdldCgpLCB0aW1lb3V0
S2V5LmdldCgpLCB0aW1lb3V0VmFsdWUuZ2V0KCkpOwogCisgICAgV0tSZXRhaW5QdHI8V0tTdHJp
bmdSZWY+IGR1bXBKU0NvbnNvbGVMb2dJblN0ZGVycktleSA9IGFkb3B0V0soV0tTdHJpbmdDcmVh
dGVXaXRoVVRGOENTdHJpbmcoIkR1bXBKU0NvbnNvbGVMb2dJblN0ZGVyciIpKTsKKyAgICBXS1Jl
dGFpblB0cjxXS0Jvb2xlYW5SZWY+IGR1bXBKU0NvbnNvbGVMb2dJblN0ZGVyclZhbHVlID0gYWRv
cHRXSyhXS0Jvb2xlYW5DcmVhdGUobV9kdW1wSlNDb25zb2xlTG9nSW5TdGRlcnIpKTsKKyAgICBX
S0RpY3Rpb25hcnlTZXRJdGVtKGJlZ2luVGVzdE1lc3NhZ2VCb2R5LmdldCgpLCBkdW1wSlNDb25z
b2xlTG9nSW5TdGRlcnJLZXkuZ2V0KCksIGR1bXBKU0NvbnNvbGVMb2dJblN0ZGVyclZhbHVlLmdl
dCgpKTsKKwogICAgIFdLUGFnZVBvc3RNZXNzYWdlVG9JbmplY3RlZEJ1bmRsZShUZXN0Q29udHJv
bGxlcjo6c2luZ2xldG9uKCkubWFpbldlYlZpZXcoKS0+cGFnZSgpLCBtZXNzYWdlTmFtZS5nZXQo
KSwgYmVnaW5UZXN0TWVzc2FnZUJvZHkuZ2V0KCkpOwogCiAgICAgYm9vbCBzaG91bGRPcGVuRXh0
ZXJuYWxVUkxzID0gZmFsc2U7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RJbnZvY2F0aW9uLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmgK
aW5kZXggNmFiMTYyZmY4NzkzMTQxNTYzNjIzOWU1M2M5ZjEyY2YyMGNlZWVjZC4uZTdhYWEzZDEz
ZmZhZDA2OWQyODE3NzIyY2M0N2Q1N2UyNTAxYWIyMSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
VGVzdEludm9jYXRpb24uaApAQCAtNTEsNiArNTEsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNl
dEN1c3RvbVRpbWVvdXQoaW50IGR1cmF0aW9uKSB7IG1fdGltZW91dCA9IGR1cmF0aW9uOyB9CiAg
ICAgaW50IGN1c3RvbVRpbWVvdXQoKSBjb25zdCB7IHJldHVybiBtX3RpbWVvdXQ7IH0KKyAgICB2
b2lkIHNldER1bXBKU0NvbnNvbGVMb2dJblN0ZGVycihib29sIHZhbHVlKSB7IG1fZHVtcEpTQ29u
c29sZUxvZ0luU3RkZXJyID0gdmFsdWU7IH0KIAogICAgIHZvaWQgaW52b2tlKCk7CiAgICAgdm9p
ZCBkaWRSZWNlaXZlTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZShXS1N0cmluZ1JlZiBtZXNzYWdl
TmFtZSwgV0tUeXBlUmVmIG1lc3NhZ2VCb2R5KTsKQEAgLTk5LDYgKzEwMCw3IEBAIHByaXZhdGU6
CiAgICAgc3RkOjpzdHJpbmcgbV9leHBlY3RlZFBpeGVsSGFzaDsKIAogICAgIGludCBtX3RpbWVv
dXQgeyAwIH07CisgICAgYm9vbCBtX2R1bXBKU0NvbnNvbGVMb2dJblN0ZGVyciB7IGZhbHNlIH07
CiAKICAgICAvLyBJbnZvY2F0aW9uIHN0YXRlCiAgICAgYm9vbCBtX2dvdEluaXRpYWxSZXNwb25z
ZSB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdl
TG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCBiOWE0YWEzMTEy
NWNkMmExNzQzNGVlZDg0NmI3NjRhNjRmYTEzNTk4Li5jMGYxZjAyZTViZDNhODg2YmQwOTcyZDlm
MTgyOWU2MGUyMjUzZjEyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hh
bmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxMiBAQAorMjAxNi0wOS0wNyAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisK
KyAgICAgICAgVGVzdCBpbmZyYXN0cnVjdHVyZSBzaG91bGQgYWxsb3cgdG8gZmlsdGVyIG91dCB0
ZXh0IG91dHB1dCBiZWZvcmUgZG9pbmcgYSBjb21wYXJpc29uIHdpdGggdGhlIGJhc2VsaW5lCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjEzMTAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9mZXRjaC9hcGkvY29ycy9jb3JzLXByZWZsaWdodC5qczoKKwogMjAxNi0wOS0w
NiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBzdXBwb3J0
IGZvciBpbnB1dC5taW5MZW5ndGggLyB0ZXh0QXJlYS5taW5MZW5ndGgKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2NvcnMv
Y29ycy1wcmVmbGlnaHQuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL2FwaS9jb3JzL2NvcnMtcHJlZmxpZ2h0LmpzCmluZGV4IGQ4MmE0M2MwMzRk
NTgzOWNiNzhlZmNiMmJlMDk1ZDhjMjUxZGQ5NWIuLmY4YjM1ZmEzODlkMTVhODY0M2I0YmJiNWIw
ZWM2NTAwZjY3MzhiM2MgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2NvcnMvY29ycy1wcmVmbGlnaHQuanMKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvY29ycy9j
b3JzLXByZWZsaWdodC5qcwpAQCAtNSw2ICs1LDkgQEAgaWYgKHRoaXMuZG9jdW1lbnQgPT09IHVu
ZGVmaW5lZCkgewogICBpbXBvcnRTY3JpcHRzKCIuLi9yZXNvdXJjZXMvZ2V0LWhvc3QtaW5mby5z
dWIuanMiKTsKIH0KIAorLy8gVG8gYmUgcmVtb3ZlZCwgc2VlIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNjEzMTAKK2NvbnNvbGUubG9nKCJEb2luZyBzb21lIGxvZ2dp
bmciKQorCiBmdW5jdGlvbiBoZWFkZXJOYW1lcyhoZWFkZXJzKQogewogICAgIGxldCBuYW1lcyA9
IFtdOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvdGVzdHMtb3B0aW9ucy5qc29uIGIvTGF5b3V0
VGVzdHMvdGVzdHMtb3B0aW9ucy5qc29uCmluZGV4IDUyYzU1MDFkODEyMmQyNWNlODA0MmY5NjU4
YTlhZjNlODg4ZWM1OTYuLjlhZWRiNTAwYmUxOTAyNDczNTBlZjI2YjQ3ZDU1NjBlMzllYWI2ODgg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Rlc3RzLW9wdGlvbnMuanNvbgorKysgYi9MYXlvdXRU
ZXN0cy90ZXN0cy1vcHRpb25zLmpzb24KQEAgLTExMyw2ICsxMTMsMTIgQEAKICAgICAiaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vdHJhdmVyc2FsL1RyZWVXYWxrZXIuaHRtbCI6
IFsKICAgICAgICAgInNsb3ciCiAgICAgXSwKKyAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9hcGkvY29ycy9jb3JzLXByZWZsaWdodC5odG1sIjogWworICAgICAgICAi
LS1kdW1wLWpzY29uc29sZWxvZy1pbi1zdGRlcnIiCisgICAgXSwKKyAgICAiaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvY29ycy9jb3JzLXByZWZsaWdodC13b3JrZXIu
aHRtbCI6IFsKKyAgICAgICAgIi0tZHVtcC1qc2NvbnNvbGVsb2ctaW4tc3RkZXJyIgorICAgIF0s
CiAgICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3Qv
cmVxdWVzdC1jYWNoZS5odG1sIjogWwogICAgICAgICAic2xvdyIKICAgICBdLAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>296998</attachid>
            <date>2016-12-13 01:59:45 -0800</date>
            <delta_ts>2016-12-14 02:22:44 -0800</delta_ts>
            <desc>Back to TestExpectation modifier option</desc>
            <filename>bug-161310-20161213105855.patch</filename>
            <type>text/plain</type>
            <size>30350</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA5NzUyCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMmEyNjBiNDMwYTk4ZGJiZjE5MjMzOWU4OWQyODhkM2Q4
ZDEyNDFjMy4uNGU1NTRlNjAwZTAzOTE5NTNiNjA5NjJjMmM5MTllNjdlMTI5Y2VhMSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0
IEBACisyMDE2LTEyLTEzICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAg
ICAgICBUZXN0IGluZnJhc3RydWN0dXJlIHNob3VsZCBhbGxvdyB0byBmaWx0ZXIgb3V0IHRleHQg
b3V0cHV0IGJlZm9yZSBkb2luZyBhIGNvbXBhcmlzb24gd2l0aCB0aGUgYmFzZWxpbmUKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MTMxMAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGluZyAtLWR1bXAt
anNjb25zb2xlbG9nLWluLXN0ZGVyciB0ZXN0IG9wdGlvbiBmb3IgRFJUIGFuZCBXVFIuCisgICAg
ICAgIFdoZW4gc2V0LCBXVFIgYW5kIERSVCBvdXRwdXQgSlMgY29uc29sZSBsb2cgaW4gdGhlIHN0
ZGVyciBhbmQgbm90IHRoZSB0ZXN0IG91dHB1dC4KKyAgICAgICAgVGhpcyBhbGxvd3MgcmVtb3Zp
bmcgcG90ZW50aWFsbHkgZmxha3kgaW5mb3JtYXRpb24gd2hpbGUgc3RpbGwgYmVpbmcgYWJsZSB0
byByZWFkIGl0IGZvciBpbnZlc3RpZ2F0aW9uLgorCisgICAgICAgIFVwZGF0ZWQgd2Via2l0cHkg
aW5mcmFzdHJ1Y3R1cmUgdG8gdXNlIHRoaXMgdGVzdCBvcHRpb24gaW4gY2FzZSBvZiBEdW1wSlND
b25zb2xlTG9nSW5TdGRFcnIgbW9kaWZpZXIuCisKKyAgICAgICAgQ2hhbmdlcyBhcmUgY292ZXJl
ZCBieSB1cGRhdGluZyBhIGZldGNoIHRlc3QgdG8gb3V0cHV0IGNvbnNvbGUgbG9nIGFuZCBzZXQg
aXRzIG9wdGlvbiB0byAtLWR1bXAtanNjb25zb2xlbG9nLWluLXN0ZGVyciBpbiBUZXN0RXhwZWN0
YXRpb25zLgorICAgICAgICBUaGlzIHRlc3Qgc2hvdWxkIGhhdmUgdGhpcyBvcHRpb24gd2hlbiBm
ZXRjaCBBUEkgd2lsbCBzdGFydCBsb2dnaW5nIHJlc291cmNlIGxvYWRlciBlcnJvcnMuCisKKwor
ICAgICAgICAqIER1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlLmg6CisgICAgICAgIChUZXN0
Q29tbWFuZDo6VGVzdENvbW1hbmQpOiBEZWxldGVkLgorICAgICAgICAqIER1bXBSZW5kZXJUcmVl
L0R1bXBSZW5kZXJUcmVlQ29tbW9uLmNwcDoKKyAgICAgICAgKHBhcnNlSW5wdXRMaW5lKToKKyAg
ICAgICAgKiBEdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmg6CisgICAgICAgIChUZXN0UnVubmVy
OjpzZXREdW1wSlNDb25zb2xlTG9nSW5TdGRFcnIpOgorICAgICAgICAoVGVzdFJ1bm5lcjo6ZHVt
cEpTQ29uc29sZUxvZ0luU3RkRXJyKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvRHVt
cFJlbmRlclRyZWUubW06CisgICAgICAgIChydW5UZXN0KToKKyAgICAgICAgKiBEdW1wUmVuZGVy
VHJlZS9tYWMvVUlEZWxlZ2F0ZS5tbToKKyAgICAgICAgKC1bVUlEZWxlZ2F0ZSB3ZWJWaWV3OmFk
ZE1lc3NhZ2VUb0NvbnNvbGU6d2l0aFNvdXJjZTpdKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJl
ZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwOgorICAgICAgICAocnVuVGVzdCk6CisgICAgICAgICog
RHVtcFJlbmRlclRyZWUvd2luL1VJRGVsZWdhdGUuY3BwOgorICAgICAgICAoVUlEZWxlZ2F0ZTo6
d2ViVmlld0FkZE1lc3NhZ2VUb0NvbnNvbGUpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X2V4cGVjdGF0aW9ucy5weToKKyAgICAgICAgKFRlc3RF
eHBlY3RhdGlvblBhcnNlci5fdG9rZW5pemVfbGluZSk6CisgICAgICAgICogU2NyaXB0cy93ZWJr
aXRweS9wb3J0L2RyaXZlci5weToKKyAgICAgICAgKERyaXZlci5fY29tbWFuZF9mcm9tX2RyaXZl
cl9pbnB1dCk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9Jbmpl
Y3RlZEJ1bmRsZS5jcHA6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlOjpkaWRSZWNlaXZl
TWVzc2FnZVRvUGFnZSk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9JbmplY3RlZEJ1bmRsZS5oOgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZTo6ZHVtcEpT
Q29uc29sZUxvZ0luU3RkRXJyKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHA6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVu
ZGxlUGFnZTo6d2lsbEFkZE1lc3NhZ2VUb0NvbnNvbGUpOgorICAgICAgICAqIFdlYktpdFRlc3RS
dW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpwYXJzZUlucHV0TGluZSk6
CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpydW5UZXN0KToKKyAgICAgICAgKFdUUjo6
VGVzdENvbW1hbmQ6OlRlc3RDb21tYW5kKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJLaXRUZXN0
UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdEludm9jYXRpb246
Omludm9rZSk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5oOgor
ICAgICAgICAoV1RSOjpUZXN0SW52b2NhdGlvbjo6c2V0RHVtcEpTQ29uc29sZUxvZ0luU3RkRXJy
KToKKwogMjAxNi0xMi0wOCAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAg
ICAgICAgRW5hYmxlIG5ldHdvcmsgY2FjaGUgc3BlY3VsYXRpdmUgcmV2YWxpZGF0aW9uIGluIE1p
bmlCcm93c2VyCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJl
ZS5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWUuaAppbmRleCAzMDQyMzJi
ZTgwZGUwNDRmYTMwZDNlZTNjZjUxZGM5ZDM1MWNhNDU1Li40NGFhMmJmYTViYzVlNDM3YzgzNGE2
NWY4ZTczZmFjMWI2ZDJmMWQ4IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9EdW1w
UmVuZGVyVHJlZS5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlLmgK
QEAgLTU3LDEyICs1NywxMSBAQCB2b2lkIGR1bXAoKTsKIHZvaWQgZGlzcGxheVdlYlZpZXcoKTsK
IAogc3RydWN0IFRlc3RDb21tYW5kIHsKLSAgICBUZXN0Q29tbWFuZCgpIDogc2hvdWxkRHVtcFBp
eGVscyhmYWxzZSksIHRpbWVvdXQoMzAwMDApIHsgfQotCiAgICAgc3RkOjpzdHJpbmcgcGF0aE9y
VVJMOwotICAgIGJvb2wgc2hvdWxkRHVtcFBpeGVsczsKKyAgICBib29sIHNob3VsZER1bXBQaXhl
bHMgeyBmYWxzZSB9OwogICAgIHN0ZDo6c3RyaW5nIGV4cGVjdGVkUGl4ZWxIYXNoOwotICAgIGlu
dCB0aW1lb3V0OyAvLyBpbiBtcworICAgIGludCB0aW1lb3V0IHsgMzAwMDAgfTsgLy8gaW4gbXMK
KyAgICBib29sIGR1bXBKU0NvbnNvbGVMb2dJblN0ZEVyciB7IGZhbHNlIH07CiB9OwogCiBUZXN0
Q29tbWFuZCBwYXJzZUlucHV0TGluZShjb25zdCBzdGQ6OnN0cmluZyYpOwpkaWZmIC0tZ2l0IGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWVDb21tb24uY3BwIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWVDb21tb24uY3BwCmluZGV4IDNjYjk3ZWJmZDI4ZDg1
OWMwYjYxYTdjNDZkNDU5MDA2YTY2OGFjNmQuLjVmNjQ4OTQ2NmE3NDA3N2E0ZGZmM2FjZDM0M2Jm
OTRmZTM3OTVjZDEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJU
cmVlQ29tbW9uLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZUNv
bW1vbi5jcHAKQEAgLTEsMyArMSwyOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBs
ZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJEdW1wUmVuZGVy
VHJlZS5oIgogCkBAIC03MCwxNCArOTUsMTYgQEAgVGVzdENvbW1hbmQgcGFyc2VJbnB1dExpbmUo
Y29uc3Qgc3RkOjpzdHJpbmcmIGlucHV0TGluZSkKICAgICByZXN1bHQucGF0aE9yVVJMID0gYXJn
OwogICAgIHdoaWxlICh0b2tlbml6ZXIuaGFzTmV4dCgpKSB7CiAgICAgICAgIGFyZyA9IHRva2Vu
aXplci5uZXh0KCk7Ci0gICAgICAgIGlmIChhcmcgPT0gc3RkOjpzdHJpbmcoIi0tdGltZW91dCIp
KSB7CisgICAgICAgIGlmIChhcmcgPT0gIi0tdGltZW91dCIpIHsKICAgICAgICAgICAgIHN0ZDo6
c3RyaW5nIHRpbWVvdXRUb2tlbiA9IHRva2VuaXplci5uZXh0KCk7CiAgICAgICAgICAgICByZXN1
bHQudGltZW91dCA9IGF0b2kodGltZW91dFRva2VuLmNfc3RyKCkpOwotICAgICAgICB9IGVsc2Ug
aWYgKGFyZyA9PSBzdGQ6OnN0cmluZygiLXAiKSB8fCBhcmcgPT0gc3RkOjpzdHJpbmcoIi0tcGl4
ZWwtdGVzdCIpKSB7CisgICAgICAgIH0gZWxzZSBpZiAoYXJnID09ICItcCIgfHwgYXJnID09ICIt
LXBpeGVsLXRlc3QiKSB7CiAgICAgICAgICAgICByZXN1bHQuc2hvdWxkRHVtcFBpeGVscyA9IHRy
dWU7CiAgICAgICAgICAgICBpZiAodG9rZW5pemVyLmhhc05leHQoKSkKICAgICAgICAgICAgICAg
ICByZXN1bHQuZXhwZWN0ZWRQaXhlbEhhc2ggPSB0b2tlbml6ZXIubmV4dCgpOwotICAgICAgICB9
IGVsc2UKKyAgICAgICAgfSBlbHNlIGlmIChhcmcgPT0gIi0tZHVtcC1qc2NvbnNvbGVsb2ctaW4t
c3RkZXJyIikKKyAgICAgICAgICAgIHJlc3VsdC5kdW1wSlNDb25zb2xlTG9nSW5TdGRFcnIgPSB0
cnVlOworICAgICAgICBlbHNlCiAgICAgICAgICAgICBkaWUoaW5wdXRMaW5lKTsKICAgICB9CiAK
ZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuaCBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuaAppbmRleCBhOGQ0OWM2YzIxMTU3MGIxNzQ1ZDJlOTI2
ZGQ2MjI5YjIyNDZiMmYwLi4xZDNhNWMyNjQzYzdhMjU2ZGE1ZTY1MWVhZGQyYTQyODIxYzMyYTVm
IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmgKKysrIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5oCkBAIC0zNjcsOSArMzY3LDEyIEBAIHB1Ymxp
YzoKICAgICBkb3VibGUgdGltZW91dCgpIHsgcmV0dXJuIG1fdGltZW91dDsgfQogCiAgICAgdW5z
aWduZWQgaW1hZ2VDb3VudEluR2VuZXJhbFBhc3RlYm9hcmQoKSBjb25zdDsKLSAgICAKKwogICAg
IHZvaWQgY2FsbFVJU2NyaXB0Q2FsbGJhY2sodW5zaWduZWQgY2FsbGJhY2tJRCwgSlNTdHJpbmdS
ZWYgcmVzdWx0KTsKIAorICAgIHZvaWQgc2V0RHVtcEpTQ29uc29sZUxvZ0luU3RkRXJyKGJvb2wg
aW5TdGRFcnIpIHsgbV9kdW1wSlNDb25zb2xlTG9nSW5TdGRFcnIgPSBpblN0ZEVycjsgfQorICAg
IGJvb2wgZHVtcEpTQ29uc29sZUxvZ0luU3RkRXJyKCkgY29uc3QgeyByZXR1cm4gbV9kdW1wSlND
b25zb2xlTG9nSW5TdGRFcnI7IH0KKwogcHJpdmF0ZToKICAgICBUZXN0UnVubmVyKGNvbnN0IHN0
ZDo6c3RyaW5nJiB0ZXN0VVJMLCBjb25zdCBzdGQ6OnN0cmluZyYgZXhwZWN0ZWRQaXhlbEhhc2gp
OwogCkBAIC00MzQsNiArNDM3LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fYXJlTGVnYWN5V2Vi
Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RzSWdub3JlZDsKICAgICBib29sIG1fY3VzdG9t
RnVsbFNjcmVlbkJlaGF2aW9yOwogICAgIGJvb2wgbV9oYXNQZW5kaW5nV2ViTm90aWZpY2F0aW9u
Q2xpY2s7CisgICAgYm9vbCBtX2R1bXBKU0NvbnNvbGVMb2dJblN0ZEVyciB7IGZhbHNlIH07CiAK
ICAgICBkb3VibGUgbV9kYXRhYmFzZURlZmF1bHRRdW90YTsKICAgICBkb3VibGUgbV9kYXRhYmFz
ZU1heFF1b3RhOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5k
ZXJUcmVlLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCmlu
ZGV4IGIwOTU2ZjlhYTI3YjY4YmE2OGE4ZTY0YTAzOTJjNmQwZmVjNjRhYTguLjg0Njg2N2IzOGE5
N2Q3OTI0ZTEzMmJiNGRmNTY4MmMxMGI4MjgyM2EgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9t
YWMvRHVtcFJlbmRlclRyZWUubW0KQEAgLTIwMDEsNiArMjAwMSw3IEBAIHN0YXRpYyB2b2lkIHJ1
blRlc3QoY29uc3Qgc3RyaW5nJiBpbnB1dExpbmUpCiAgICAgZ1Rlc3RSdW5uZXIgPSBUZXN0UnVu
bmVyOjpjcmVhdGUodGVzdFVSTCwgY29tbWFuZC5leHBlY3RlZFBpeGVsSGFzaCk7CiAgICAgZ1Rl
c3RSdW5uZXItPnNldEFsbG93ZWRIb3N0cyhhbGxvd2VkSG9zdHMpOwogICAgIGdUZXN0UnVubmVy
LT5zZXRDdXN0b21UaW1lb3V0KGNvbW1hbmQudGltZW91dCk7CisgICAgZ1Rlc3RSdW5uZXItPnNl
dER1bXBKU0NvbnNvbGVMb2dJblN0ZEVycihjb21tYW5kLmR1bXBKU0NvbnNvbGVMb2dJblN0ZEVy
cik7CiAgICAgdG9wTG9hZGluZ0ZyYW1lID0gbmlsOwogI2lmICFQTEFURk9STShJT1MpCiAgICAg
QVNTRVJUKCFkcmFnZ2luZ0luZm8pOyAvLyB0aGUgcHJldmlvdXMgdGVzdCBzaG91bGQgaGF2ZSBj
YWxsZWQgZXZlbnRTZW5kZXIubW91c2VVcCB0byBkcm9wIQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvbWFjL1VJRGVsZWdhdGUubW0gYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMv
VUlEZWxlZ2F0ZS5tbQppbmRleCAxOGE1OGNlMzg4MDkxZGEwNzQ0NDliMTM1ZGI5Y2M2MGQ3MmFk
MjY0Li5mODZmNTIyMGZiNjQwYTViOGVmODJiZTY2YzJkOTc1OGJmNWUxZWI4IDEwMDY0NAotLS0g
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvVUlEZWxlZ2F0ZS5tbQorKysgYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS9tYWMvVUlEZWxlZ2F0ZS5tbQpAQCAtODIsMTAgKzgyLDExIEBAIER1bXBSZW5k
ZXJUcmVlRHJhZ2dpbmdJbmZvICpkcmFnZ2luZ0luZm8gPSBuaWw7CiAgICAgaWYgKHJhbmdlLmxv
Y2F0aW9uICE9IE5TTm90Rm91bmQpCiAgICAgICAgIG1lc3NhZ2UgPSBbW21lc3NhZ2Ugc3Vic3Ry
aW5nVG9JbmRleDpyYW5nZS5sb2NhdGlvbl0gc3RyaW5nQnlBcHBlbmRpbmdTdHJpbmc6W1ttZXNz
YWdlIHN1YnN0cmluZ0Zyb21JbmRleDpOU01heFJhbmdlKHJhbmdlKV0gbGFzdFBhdGhDb21wb25l
bnRdXTsKIAotICAgIHByaW50ZiAoIkNPTlNPTEUgTUVTU0FHRTogIik7CisgICAgYXV0byBvdXQg
PSBnVGVzdFJ1bm5lci0+ZHVtcEpTQ29uc29sZUxvZ0luU3RkRXJyKCkgPyBzdGRlcnIgOiBzdGRv
dXQ7CisgICAgZnByaW50ZihvdXQsICJDT05TT0xFIE1FU1NBR0U6ICIpOwogICAgIGlmIChbbGlu
ZU51bWJlciBpbnRWYWx1ZV0pCi0gICAgICAgIHByaW50ZiAoImxpbmUgJWQ6ICIsIFtsaW5lTnVt
YmVyIGludFZhbHVlXSk7Ci0gICAgcHJpbnRmICgiJXNcbiIsIFttZXNzYWdlIFVURjhTdHJpbmdd
KTsKKyAgICAgICAgZnByaW50ZihvdXQsICJsaW5lICVkOiAiLCBbbGluZU51bWJlciBpbnRWYWx1
ZV0pOworICAgIGZwcmludGYob3V0LCAiJXNcbiIsIFttZXNzYWdlIFVURjhTdHJpbmddKTsKIH0K
IAogLSAodm9pZCltb2RhbFdpbmRvd1dpbGxDbG9zZTooTlNOb3RpZmljYXRpb24gKilub3RpZmlj
YXRpb24KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJl
ZS5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwCmluZGV4
IDQ5M2Q4ZjMxZjNjMWQxOTJkNDQwYTljMTIyMWMwNjA0OWM3YjhhZWEuLmQ0NTRiMTE3MTIxY2Ez
OTUzZWM3ODFkODI4YWI5M2MxYTMxZDMxNzIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2lu
L0R1bXBSZW5kZXJUcmVlLmNwcApAQCAtMTEyMSw2ICsxMTIxLDggQEAgc3RhdGljIHZvaWQgcnVu
VGVzdChjb25zdCBzdHJpbmcmIGlucHV0TGluZSkKIAogICAgIDo6Z1Rlc3RSdW5uZXIgPSBUZXN0
UnVubmVyOjpjcmVhdGUodGVzdFVSTC5kYXRhKCksIGNvbW1hbmQuZXhwZWN0ZWRQaXhlbEhhc2gp
OwogICAgIDo6Z1Rlc3RSdW5uZXItPnNldEN1c3RvbVRpbWVvdXQoY29tbWFuZC50aW1lb3V0KTsK
KyAgICA6OmdUZXN0UnVubmVyLT5zZXREdW1wSlNDb25zb2xlTG9nSW5TdGRFcnIoY29tbWFuZC5k
dW1wSlNDb25zb2xlTG9nSW5TdGRFcnIpOworCiAgICAgdG9wTG9hZGluZ0ZyYW1lID0gbnVsbHB0
cjsKICAgICBkb25lID0gZmFsc2U7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L3dpbi9VSURlbGVnYXRlLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9VSURlbGVnYXRl
LmNwcAppbmRleCBkZGQ4ZWFkOGQyNDNkMDJmNGFkNjNkNTI3MWIzNGIwYTYxODRmNzhjLi5lNjBk
NWU4ZGJiM2VhZDQ5MDQ3ODE5Yjg0MzBjODkwZmZmZjgzMmM3IDEwMDY0NAotLS0gYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS93aW4vVUlEZWxlZ2F0ZS5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvd2luL1VJRGVsZWdhdGUuY3BwCkBAIC01MDcsMTAgKzUwNywxMSBAQCBIUkVTVUxUIFVJRGVs
ZWdhdGU6OndlYlZpZXdBZGRNZXNzYWdlVG9Db25zb2xlKF9Jbl9vcHRfIElXZWJWaWV3KiAvKnNl
bmRlciovLCBfSQogICAgICAgICAgICAgbmV3TWVzc2FnZSA9IG5ld01lc3NhZ2Uuc3Vic3RyKDAs
IGZpbGVQcm90b2NvbCkgKyBsYXN0UGF0aENvbXBvbmVudChuZXdNZXNzYWdlLnN1YnN0cihmaWxl
UHJvdG9jb2wgKyBmaWxlVVJMLnNpemUoKSkpOwogICAgIH0KIAotICAgIHByaW50ZigiQ09OU09M
RSBNRVNTQUdFOiAiKTsKKyAgICBhdXRvIG91dCA9IGdUZXN0UnVubmVyLT5kdW1wSlNDb25zb2xl
TG9nSW5TdGRFcnIoKSA/IHN0ZGVyciA6IHN0ZG91dDsKKyAgICBmcHJpbnRmKG91dCwgIkNPTlNP
TEUgTUVTU0FHRTogIik7CiAgICAgaWYgKGxpbmVOdW1iZXIpCi0gICAgICAgIHByaW50ZigibGlu
ZSAlZDogIiwgbGluZU51bWJlcik7Ci0gICAgcHJpbnRmKCIlc1xuIiwgdG9VVEY4KG5ld01lc3Nh
Z2UpLmNfc3RyKCkpOworICAgICAgICBmcHJpbnRmKG91dCwgImxpbmUgJWQ6ICIsIGxpbmVOdW1i
ZXIpOworICAgIGZwcmludGYob3V0LCAiJXNcbiIsIHRvVVRGOChuZXdNZXNzYWdlKS5jX3N0cigp
KTsKICAgICByZXR1cm4gU19PSzsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvbWFuYWdlci5weSBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL21hbmFnZXIucHkKaW5kZXggMGU1YTMw
MzdjNTMyYzg1MTYzZmI2MDY2ZjczYWExNmVkN2YzOGZiYi4uOWU0MTJmNDQ1NTVmMjQ5ZDQzODJl
YTJmMDI5ZTkyZThkZGUwNTdkZCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvY29udHJvbGxlcnMvbWFuYWdlci5weQorKysgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9tYW5hZ2VyLnB5CkBAIC0xMzEsMTMgKzEz
MSwxNyBAQCBjbGFzcyBNYW5hZ2VyKG9iamVjdCk6CiAgICAgZGVmIF90ZXN0X2lucHV0X2Zvcl9m
aWxlKHNlbGYsIHRlc3RfZmlsZSk6CiAgICAgICAgIHJldHVybiBUZXN0SW5wdXQodGVzdF9maWxl
LAogICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy5zbG93X3RpbWVfb3V0X21zIGlmIHNlbGYuX3Rl
c3RfaXNfc2xvdyh0ZXN0X2ZpbGUpIGVsc2Ugc2VsZi5fb3B0aW9ucy50aW1lX291dF9tcywKLSAg
ICAgICAgICAgIHNlbGYuX2lzX2h0dHBfdGVzdCh0ZXN0X2ZpbGUpKQorICAgICAgICAgICAgc2Vs
Zi5faXNfaHR0cF90ZXN0KHRlc3RfZmlsZSksCisgICAgICAgICAgICBzaG91bGRfZHVtcF9qc2Nv
bnNvbGVsb2dfaW5fc3RkZXJyPXNlbGYuX3Rlc3Rfc2hvdWxkX2R1bXBfanNjb25zb2xlbG9nX2lu
X3N0ZGVycih0ZXN0X2ZpbGUpKQogCiAgICAgZGVmIF90ZXN0X2lzX3Nsb3coc2VsZiwgdGVzdF9m
aWxlKToKICAgICAgICAgaWYgc2VsZi5fZXhwZWN0YXRpb25zLm1vZGVsKCkuaGFzX21vZGlmaWVy
KHRlc3RfZmlsZSwgdGVzdF9leHBlY3RhdGlvbnMuU0xPVyk6CiAgICAgICAgICAgICByZXR1cm4g
VHJ1ZQogICAgICAgICByZXR1cm4gInNsb3ciIGluIHNlbGYuX3Rlc3RzX29wdGlvbnMuZ2V0KHRl
c3RfZmlsZSwgW10pCiAKKyAgICBkZWYgX3Rlc3Rfc2hvdWxkX2R1bXBfanNjb25zb2xlbG9nX2lu
X3N0ZGVycihzZWxmLCB0ZXN0X2ZpbGUpOgorICAgICAgICByZXR1cm4gc2VsZi5fZXhwZWN0YXRp
b25zLm1vZGVsKCkuaGFzX21vZGlmaWVyKHRlc3RfZmlsZSwgdGVzdF9leHBlY3RhdGlvbnMuRFVN
UEpTQ09OU09MRUxPR0lOU1RERVJSKQorCiAgICAgZGVmIG5lZWRzX3NlcnZlcnMoc2VsZiwgdGVz
dF9uYW1lcyk6CiAgICAgICAgIHJldHVybiBhbnkoc2VsZi5faXNfaHR0cF90ZXN0KHRlc3RfbmFt
ZSkgZm9yIHRlc3RfbmFtZSBpbiB0ZXN0X25hbWVzKSBhbmQgc2VsZi5fb3B0aW9ucy5odHRwCiAK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xs
ZXJzL3NpbmdsZV90ZXN0X3J1bm5lci5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL2NvbnRyb2xsZXJzL3NpbmdsZV90ZXN0X3J1bm5lci5weQppbmRleCBlODU4MzUyNDcw
M2UyYmYzODZhZWQ4ZGZkZjY2NjU3MGRlOGY4YTJlLi41MDI4YWU3ZTM2Y2RhNjcwYzk1MmZiZThi
NzM0ZjIwYjcyZjFkZTM1IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9jb250cm9sbGVycy9zaW5nbGVfdGVzdF9ydW5uZXIucHkKKysrIGIvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvc2luZ2xlX3Rlc3RfcnVubmVy
LnB5CkBAIC01OCw2ICs1OCw3IEBAIGNsYXNzIFNpbmdsZVRlc3RSdW5uZXIob2JqZWN0KToKICAg
ICAgICAgc2VsZi5fd29ya2VyX25hbWUgPSB3b3JrZXJfbmFtZQogICAgICAgICBzZWxmLl90ZXN0
X25hbWUgPSB0ZXN0X2lucHV0LnRlc3RfbmFtZQogICAgICAgICBzZWxmLl9zaG91bGRfcnVuX3Bp
eGVsX3Rlc3QgPSB0ZXN0X2lucHV0LnNob3VsZF9ydW5fcGl4ZWxfdGVzdAorICAgICAgICBzZWxm
Ll9zaG91bGRfZHVtcF9qc2NvbnNvbGVsb2dfaW5fc3RkZXJyID0gdGVzdF9pbnB1dC5zaG91bGRf
ZHVtcF9qc2NvbnNvbGVsb2dfaW5fc3RkZXJyCiAgICAgICAgIHNlbGYuX3JlZmVyZW5jZV9maWxl
cyA9IHRlc3RfaW5wdXQucmVmZXJlbmNlX2ZpbGVzCiAgICAgICAgIHNlbGYuX3N0b3Bfd2hlbl9k
b25lID0gc3RvcF93aGVuX2RvbmUKICAgICAgICAgc2VsZi5fdGltZW91dCA9IHRlc3RfaW5wdXQu
dGltZW91dApAQCAtODksNyArOTAsNyBAQCBjbGFzcyBTaW5nbGVUZXN0UnVubmVyKG9iamVjdCk6
CiAgICAgICAgIGltYWdlX2hhc2ggPSBOb25lCiAgICAgICAgIGlmIHNlbGYuX3Nob3VsZF9mZXRj
aF9leHBlY3RlZF9jaGVja3N1bSgpOgogICAgICAgICAgICAgaW1hZ2VfaGFzaCA9IHNlbGYuX3Bv
cnQuZXhwZWN0ZWRfY2hlY2tzdW0oc2VsZi5fdGVzdF9uYW1lKQotICAgICAgICByZXR1cm4gRHJp
dmVySW5wdXQoc2VsZi5fdGVzdF9uYW1lLCBzZWxmLl90aW1lb3V0LCBpbWFnZV9oYXNoLCBzZWxm
Ll9zaG91bGRfcnVuX3BpeGVsX3Rlc3QpCisgICAgICAgIHJldHVybiBEcml2ZXJJbnB1dChzZWxm
Ll90ZXN0X25hbWUsIHNlbGYuX3RpbWVvdXQsIGltYWdlX2hhc2gsIHNlbGYuX3Nob3VsZF9ydW5f
cGl4ZWxfdGVzdCwgc2VsZi5fc2hvdWxkX2R1bXBfanNjb25zb2xlbG9nX2luX3N0ZGVycikKIAog
ICAgIGRlZiBydW4oc2VsZik6CiAgICAgICAgIGlmIHNlbGYuX3JlZmVyZW5jZV9maWxlczoKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0
X2V4cGVjdGF0aW9ucy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21v
ZGVscy90ZXN0X2V4cGVjdGF0aW9ucy5weQppbmRleCBiYjU1OGM5ODM0NWExYjkzYzJhYTI1MTQ0
MTJmODMyYWI1NWE0YWM4Li45MGJkYjg5YTU0YzU2NjY4N2I4NmYwYTAzNjg3NmQ4ZTQwMDBmYTRl
IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMv
dGVzdF9leHBlY3RhdGlvbnMucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvbW9kZWxzL3Rlc3RfZXhwZWN0YXRpb25zLnB5CkBAIC00Myw3ICs0Myw3IEBAIF9sb2cg
PSBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVfXykKICMgRklYTUU6IHJhbmdlKCkgc3RhcnRzIHdp
dGggMCB3aGljaCBtYWtlcyBpZiBleHBlY3RhdGlvbiBjaGVja3MgaGFyZGVyCiAjIGFzIFBBU1Mg
aXMgMC4KIChQQVNTLCBGQUlMLCBURVhULCBJTUFHRSwgSU1BR0VfUExVU19URVhULCBBVURJTywg
VElNRU9VVCwgQ1JBU0gsIFNLSVAsIFdPTlRGSVgsCi0gU0xPVywgUkVCQVNFTElORSwgTUlTU0lO
RywgRkxBS1ksIE5PVywgTk9ORSkgPSByYW5nZSgxNikKKyBTTE9XLCBEVU1QSlNDT05TT0xFTE9H
SU5TVERFUlIsIFJFQkFTRUxJTkUsIE1JU1NJTkcsIEZMQUtZLCBOT1csIE5PTkUpID0gcmFuZ2Uo
MTcpCiAKICMgRklYTUU6IFBlcmhhcyB0aGVzZSB0d28gcm91dGluZXMgc2hvdWxkIGJlIHBhcnQg
b2YgdGhlIFBvcnQgaW5zdGVhZD8KIEJBU0VMSU5FX1NVRkZJWF9MSVNUID0gKCdwbmcnLCAnd2F2
JywgJ3R4dCcpCkBAIC03MSw2ICs3MSw3IEBAIGNsYXNzIFRlc3RFeHBlY3RhdGlvblBhcnNlcihv
YmplY3QpOgogICAgIFBBU1NfRVhQRUNUQVRJT04gPSAncGFzcycKICAgICBTS0lQX01PRElGSUVS
ID0gJ3NraXAnCiAgICAgU0xPV19NT0RJRklFUiA9ICdzbG93JworICAgIERVTVBKU0NPTlNPTEVM
T0dJTlNUREVSUl9NT0RJRklFUiA9ICdkdW1wanNjb25zb2xlbG9naW5zdGRlcnInCiAgICAgV09O
VEZJWF9NT0RJRklFUiA9ICd3b250Zml4JwogCiAgICAgVElNRU9VVF9FWFBFQ1RBVElPTiA9ICd0
aW1lb3V0JwpAQCAtMzE5LDcgKzMyMCw3IEBAIGNsYXNzIFRlc3RFeHBlY3RhdGlvblBhcnNlcihv
YmplY3QpOgogICAgICAgICAgICAgZWxpZiBzdGF0ZSA9PSAnY29uZmlndXJhdGlvbic6CiAgICAg
ICAgICAgICAgICAgbW9kaWZpZXJzLmFwcGVuZChjbHMuX2NvbmZpZ3VyYXRpb25fdG9rZW5zLmdl
dCh0b2tlbiwgdG9rZW4pKQogICAgICAgICAgICAgZWxpZiBzdGF0ZSA9PSAnZXhwZWN0YXRpb25z
JzoKLSAgICAgICAgICAgICAgICBpZiB0b2tlbiBpbiAoJ1JlYmFzZWxpbmUnLCAnU2tpcCcsICdT
bG93JywgJ1dvbnRGaXgnKToKKyAgICAgICAgICAgICAgICBpZiB0b2tlbiBpbiAoJ1JlYmFzZWxp
bmUnLCAnU2tpcCcsICdTbG93JywgJ1dvbnRGaXgnLCAnRHVtcEpTQ29uc29sZUxvZ0luU3RkRXJy
Jyk6CiAgICAgICAgICAgICAgICAgICAgIG1vZGlmaWVycy5hcHBlbmQodG9rZW4udXBwZXIoKSkK
ICAgICAgICAgICAgICAgICBlbGlmIHRva2VuIG5vdCBpbiBjbHMuX2V4cGVjdGF0aW9uX3Rva2Vu
czoKICAgICAgICAgICAgICAgICAgICAgd2FybmluZ3MuYXBwZW5kKCdVbnJlY29nbml6ZWQgZXhw
ZWN0YXRpb24gIiVzIicgJSB0b2tlbikKQEAgLTM0NSw3ICszNDYsNyBAQCBjbGFzcyBUZXN0RXhw
ZWN0YXRpb25QYXJzZXIob2JqZWN0KToKICAgICAgICAgICAgICMgRklYTUU6IFRoaXMgaXMgcmVh
bGx5IGEgc2VtYW50aWMgd2FybmluZyBhbmQgc2hvdWxkbid0IGJlIGhlcmUuIFJlbW92ZSB3aGVu
IHdlIGRyb3AgdGhlIG9sZCBzeW50YXguCiAgICAgICAgICAgICB3YXJuaW5ncy5hcHBlbmQoJ0Eg
dGVzdCBtYXJrZWQgU2tpcCBtdXN0IG5vdCBoYXZlIG90aGVyIGV4cGVjdGF0aW9ucy4nKQogICAg
ICAgICBlbGlmIG5vdCBleHBlY3RhdGlvbnM6Ci0gICAgICAgICAgICBpZiAnU0tJUCcgbm90IGlu
IG1vZGlmaWVycyBhbmQgJ1JFQkFTRUxJTkUnIG5vdCBpbiBtb2RpZmllcnMgYW5kICdTTE9XJyBu
b3QgaW4gbW9kaWZpZXJzOgorICAgICAgICAgICAgaWYgJ1NLSVAnIG5vdCBpbiBtb2RpZmllcnMg
YW5kICdSRUJBU0VMSU5FJyBub3QgaW4gbW9kaWZpZXJzIGFuZCAnU0xPVycgbm90IGluIG1vZGlm
aWVycyBhbmQgJ0RVTVBKU0NPTlNPTEVMT0dJTlNUREVSUicgbm90IGluIG1vZGlmaWVyczoKICAg
ICAgICAgICAgICAgICBtb2RpZmllcnMuYXBwZW5kKCdTS0lQJykKICAgICAgICAgICAgIGV4cGVj
dGF0aW9ucyA9IFsnUEFTUyddCiAKQEAgLTQ2Nyw3ICs0NjgsNyBAQCBjbGFzcyBUZXN0RXhwZWN0
YXRpb25MaW5lKG9iamVjdCk6CiAgICAgICAgICAgICBlbGlmIG1vZGlmaWVyLnN0YXJ0c3dpdGgo
J0JVRycpOgogICAgICAgICAgICAgICAgICMgRklYTUU6IHdlIHNob3VsZCBwcmVzZXJ2ZSBjYXNl
IG9uY2Ugd2UgY2FuIGRyb3AgdGhlIG9sZCBzeW50YXguCiAgICAgICAgICAgICAgICAgYnVncy5h
cHBlbmQoJ0J1ZygnICsgbW9kaWZpZXJbMzpdLmxvd2VyKCkgKyAnKScpCi0gICAgICAgICAgICBl
bGlmIG1vZGlmaWVyIGluICgnU0xPVycsICdTS0lQJywgJ1JFQkFTRUxJTkUnLCAnV09OVEZJWCcp
OgorICAgICAgICAgICAgZWxpZiBtb2RpZmllciBpbiAoJ1NMT1cnLCAnU0tJUCcsICdSRUJBU0VM
SU5FJywgJ1dPTlRGSVgnLCAnRFVNUEpTQ09OU09MRUxPR0lOU1RERVJSJyk6CiAgICAgICAgICAg
ICAgICAgbmV3X2V4cGVjdGF0aW9ucy5hcHBlbmQoVGVzdEV4cGVjdGF0aW9uUGFyc2VyLl9pbnZl
cnRlZF9leHBlY3RhdGlvbl90b2tlbnMuZ2V0KG1vZGlmaWVyKSkKICAgICAgICAgICAgIGVsc2U6
CiAgICAgICAgICAgICAgICAgbmV3X21vZGlmaWVycy5hcHBlbmQoVGVzdEV4cGVjdGF0aW9uUGFy
c2VyLl9pbnZlcnRlZF9jb25maWd1cmF0aW9uX3Rva2Vucy5nZXQobW9kaWZpZXIsIG1vZGlmaWVy
KSkKQEAgLTc4Niw2ICs3ODcsNyBAQCBjbGFzcyBUZXN0RXhwZWN0YXRpb25zKG9iamVjdCk6CiAg
ICAgTU9ESUZJRVJTID0ge1Rlc3RFeHBlY3RhdGlvblBhcnNlci5TS0lQX01PRElGSUVSOiBTS0lQ
LAogICAgICAgICAgICAgICAgICBUZXN0RXhwZWN0YXRpb25QYXJzZXIuV09OVEZJWF9NT0RJRklF
UjogV09OVEZJWCwKICAgICAgICAgICAgICAgICAgVGVzdEV4cGVjdGF0aW9uUGFyc2VyLlNMT1df
TU9ESUZJRVI6IFNMT1csCisgICAgICAgICAgICAgICAgIFRlc3RFeHBlY3RhdGlvblBhcnNlci5E
VU1QSlNDT05TT0xFTE9HSU5TVERFUlJfTU9ESUZJRVI6IERVTVBKU0NPTlNPTEVMT0dJTlNUREVS
UiwKICAgICAgICAgICAgICAgICAgVGVzdEV4cGVjdGF0aW9uUGFyc2VyLlJFQkFTRUxJTkVfTU9E
SUZJRVI6IFJFQkFTRUxJTkUsCiAgICAgICAgICAgICAgICAgICdub25lJzogTk9ORX0KIApkaWZm
IC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3Rf
aW5wdXQucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVz
dF9pbnB1dC5weQppbmRleCAzM2U0NDU4Y2ViZWE1YjlhYTVmYmE0ZDQ2Y2U2ZjVmY2M2OWQxNjRh
Li5lNGE2OWUxMzUxYzEyYjdiMjUwY2M2M2UzMGE1YWRmZjk3ZDhmZTI4IDEwMDY0NAotLS0gYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVzdF9pbnB1dC5weQor
KysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVzdF9pbnB1
dC5weQpAQCAtMzEsNyArMzEsNyBAQAogY2xhc3MgVGVzdElucHV0KG9iamVjdCk6CiAgICAgIiIi
R3JvdXBzIGluZm9ybWF0aW9uIGFib3V0IGEgdGVzdCBmb3IgZWFzeSBwYXNzaW5nIG9mIGRhdGEu
IiIiCiAKLSAgICBkZWYgX19pbml0X18oc2VsZiwgdGVzdF9uYW1lLCB0aW1lb3V0PU5vbmUsIG5l
ZWRzX3NlcnZlcnM9Tm9uZSwgcmVmZXJlbmNlX2ZpbGVzPU5vbmUsIHNob3VsZF9ydW5fcGl4ZWxf
dGVzdHM9Tm9uZSk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHRlc3RfbmFtZSwgdGltZW91dD1O
b25lLCBuZWVkc19zZXJ2ZXJzPU5vbmUsIHJlZmVyZW5jZV9maWxlcz1Ob25lLCBzaG91bGRfcnVu
X3BpeGVsX3Rlc3RzPU5vbmUsIHNob3VsZF9kdW1wX2pzY29uc29sZWxvZ19pbl9zdGRlcnI9Tm9u
ZSk6CiAgICAgICAgICMgVGVzdElucHV0IG9iamVjdHMgYXJlIG5vcm1hbGx5IGNvbnN0cnVjdGVk
IGJ5IHRoZSBtYW5hZ2VyIGFuZCBwYXNzZWQKICAgICAgICAgIyB0byB0aGUgd29ya2VycywgYnV0
IHRoZXNlIHNvbWUgZmllbGRzIGFyZSBzZXQgbGF6aWx5IGluIHRoZSB3b3JrZXJzIHdoZXJlIHBv
c3NpYmxlCiAgICAgICAgICMgYmVjYXVzZSB0aGV5IHJlcXVpcmUgdXMgdG8gbG9vayBhdCB0aGUg
ZmlsZXN5c3RlbSBhbmQgd2Ugd2FudCB0byBiZSBhYmxlIHRvIGRvIHRoYXQgaW4gcGFyYWxsZWwu
CkBAIC00MCw2ICs0MCw3IEBAIGNsYXNzIFRlc3RJbnB1dChvYmplY3QpOgogICAgICAgICBzZWxm
Lm5lZWRzX3NlcnZlcnMgPSBuZWVkc19zZXJ2ZXJzCiAgICAgICAgIHNlbGYucmVmZXJlbmNlX2Zp
bGVzID0gcmVmZXJlbmNlX2ZpbGVzCiAgICAgICAgIHNlbGYuc2hvdWxkX3J1bl9waXhlbF90ZXN0
cyA9IHNob3VsZF9ydW5fcGl4ZWxfdGVzdHMKKyAgICAgICAgc2VsZi5zaG91bGRfZHVtcF9qc2Nv
bnNvbGVsb2dfaW5fc3RkZXJyID0gc2hvdWxkX2R1bXBfanNjb25zb2xlbG9nX2luX3N0ZGVycgog
CiAgICAgZGVmIF9fcmVwcl9fKHNlbGYpOgotICAgICAgICByZXR1cm4gIlRlc3RJbnB1dCgnJXMn
LCB0aW1lb3V0PSVzLCBuZWVkc19zZXJ2ZXJzPSVzLCByZWZlcmVuY2VfZmlsZXM9JXMsIHNob3Vs
ZF9ydW5fcGl4ZWxfdGVzdHM9JXMpIiAlIChzZWxmLnRlc3RfbmFtZSwgc2VsZi50aW1lb3V0LCBz
ZWxmLm5lZWRzX3NlcnZlcnMsIHNlbGYucmVmZXJlbmNlX2ZpbGVzLCBzZWxmLnNob3VsZF9ydW5f
cGl4ZWxfdGVzdHMpCisgICAgICAgIHJldHVybiAiVGVzdElucHV0KCclcycsIHRpbWVvdXQ9JXMs
IG5lZWRzX3NlcnZlcnM9JXMsIHJlZmVyZW5jZV9maWxlcz0lcywgc2hvdWxkX3J1bl9waXhlbF90
ZXN0cz0lcywgc2hvdWxkX2R1bXBfanNjb25zb2xlbG9nX2luX3N0ZGVycj0lcykiICUgKHNlbGYu
dGVzdF9uYW1lLCBzZWxmLnRpbWVvdXQsIHNlbGYubmVlZHNfc2VydmVycywgc2VsZi5yZWZlcmVu
Y2VfZmlsZXMsIHNlbGYuc2hvdWxkX3J1bl9waXhlbF90ZXN0cywgc2VsZi5zaG91bGRfZHVtcF9q
c2NvbnNvbGVsb2dfaW5fc3RkZXJyKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9wb3J0L2RyaXZlci5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9kcml2ZXIucHkK
aW5kZXggNWNlNThjY2YxZjRkYjFkZjg3YmExYjRlYjRhMWNkOTczNGJkNGJmMi4uZTQwYzMwNjcy
N2M1ZmJjNDRkOTRkMjRlNDg4MmJiM2M0NzA2NDc4NyAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9wb3J0L2RyaXZlci5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Bv
cnQvZHJpdmVyLnB5CkBAIC0yOCw3ICsyOCw2IEBACiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKIGltcG9ydCBi
YXNlNjQKLWltcG9ydCBjb3B5CiBpbXBvcnQgbG9nZ2luZwogaW1wb3J0IHJlCiBpbXBvcnQgc2hs
ZXgKQEAgLTM4LDIyICszNywyMiBAQCBpbXBvcnQgb3MKIAogZnJvbSB3ZWJraXRweS5jb21tb24u
c3lzdGVtIGltcG9ydCBwYXRoCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0ucHJvZmlsZXIg
aW1wb3J0IFByb2ZpbGVyRmFjdG9yeQotZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMuc2VydmVy
cy53ZWJfcGxhdGZvcm1fdGVzdF9zZXJ2ZXIgaW1wb3J0IFdlYlBsYXRmb3JtVGVzdFNlcnZlcgog
CiAKIF9sb2cgPSBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVfXykKIAogCiBjbGFzcyBEcml2ZXJJ
bnB1dChvYmplY3QpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCB0ZXN0X25hbWUsIHRpbWVvdXQs
IGltYWdlX2hhc2gsIHNob3VsZF9ydW5fcGl4ZWxfdGVzdCwgYXJncz1Ob25lKToKKyAgICBkZWYg
X19pbml0X18oc2VsZiwgdGVzdF9uYW1lLCB0aW1lb3V0LCBpbWFnZV9oYXNoLCBzaG91bGRfcnVu
X3BpeGVsX3Rlc3QsIHNob3VsZF9kdW1wX2pzY29uc29sZWxvZ19pbl9zdGRlcnI9Tm9uZSwgYXJn
cz1Ob25lKToKICAgICAgICAgc2VsZi50ZXN0X25hbWUgPSB0ZXN0X25hbWUKICAgICAgICAgc2Vs
Zi50aW1lb3V0ID0gdGltZW91dCAgIyBpbiBtcwogICAgICAgICBzZWxmLmltYWdlX2hhc2ggPSBp
bWFnZV9oYXNoCiAgICAgICAgIHNlbGYuc2hvdWxkX3J1bl9waXhlbF90ZXN0ID0gc2hvdWxkX3J1
bl9waXhlbF90ZXN0CisgICAgICAgIHNlbGYuc2hvdWxkX2R1bXBfanNjb25zb2xlbG9nX2luX3N0
ZGVyciA9IHNob3VsZF9kdW1wX2pzY29uc29sZWxvZ19pbl9zdGRlcnIKICAgICAgICAgc2VsZi5h
cmdzID0gYXJncyBvciBbXQogCiAgICAgZGVmIF9fcmVwcl9fKHNlbGYpOgotICAgICAgICByZXR1
cm4gIkRyaXZlcklucHV0KHRlc3RfbmFtZT0ne30nLCB0aW1lb3V0PXt9LCBpbWFnZV9oYXNoPXt9
LCBzaG91bGRfcnVuX3BpeGVsX3Rlc3Q9e30nIi5mb3JtYXQoc2VsZi50ZXN0X25hbWUsIHNlbGYu
dGltZW91dCwgc2VsZi5pbWFnZV9oYXNoLCBzZWxmLnNob3VsZF9ydW5fcGl4ZWxfdGVzdCkKKyAg
ICAgICAgcmV0dXJuICJEcml2ZXJJbnB1dCh0ZXN0X25hbWU9J3t9JywgdGltZW91dD17fSwgaW1h
Z2VfaGFzaD17fSwgc2hvdWxkX3J1bl9waXhlbF90ZXN0PXt9LCBzaG91bGRfZHVtcF9qc2NvbnNv
bGVsb2dfaW5fc3RkZXJyPXt9JyIuZm9ybWF0KHNlbGYudGVzdF9uYW1lLCBzZWxmLnRpbWVvdXQs
IHNlbGYuaW1hZ2VfaGFzaCwgc2VsZi5zaG91bGRfcnVuX3BpeGVsX3Rlc3QsIHNlbGYuc2hvdWxk
X2R1bXBfanNjb25zb2xlbG9nX2luX3N0ZGVycikKIAogCiBjbGFzcyBEcml2ZXJPdXRwdXQob2Jq
ZWN0KToKQEAgLTQ4Nyw2ICs0ODYsOCBAQCBjbGFzcyBEcml2ZXIob2JqZWN0KToKICAgICAgICAg
ICAgIGNvbW1hbmQgKz0gIictLXRpbWVvdXQnJXMiICUgZHJpdmVyX2lucHV0LnRpbWVvdXQKICAg
ICAgICAgaWYgZHJpdmVyX2lucHV0LnNob3VsZF9ydW5fcGl4ZWxfdGVzdDoKICAgICAgICAgICAg
IGNvbW1hbmQgKz0gIictLXBpeGVsLXRlc3QiCisgICAgICAgIGlmIGRyaXZlcl9pbnB1dC5zaG91
bGRfZHVtcF9qc2NvbnNvbGVsb2dfaW5fc3RkZXJyOgorICAgICAgICAgICAgY29tbWFuZCArPSAi
Jy0tZHVtcC1qc2NvbnNvbGVsb2ctaW4tc3RkZXJyIgogICAgICAgICBpZiBkcml2ZXJfaW5wdXQu
aW1hZ2VfaGFzaDoKICAgICAgICAgICAgIGNvbW1hbmQgKz0gIiciICsgZHJpdmVyX2lucHV0Lmlt
YWdlX2hhc2gKICAgICAgICAgcmV0dXJuIGNvbW1hbmQgKyAiXG4iCmRpZmYgLS1naXQgYS9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcCBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCmlu
ZGV4IDZkOTg5MTFmODUyNDZhZTNlYzgwMjNkOTNlZGFmOGU1YTBlMDQxNTYuLjA5ZmRjOGJiYzlh
NjBhOGMxYzU1MzU4NzQ1MDQ3NGZmYWUwZTI5N2YgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCisrKyBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCkBAIC0xNTUs
NiArMTU1LDkgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZTo6ZGlkUmVjZWl2ZU1lc3NhZ2VUb1BhZ2Uo
V0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLU3RyaW5nUmVmIG0KICAgICAgICAgV0tSZXRhaW5QdHI8
V0tTdHJpbmdSZWY+IHRpbWVvdXRLZXkoQWRvcHRXSywgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENT
dHJpbmcoIlRpbWVvdXQiKSk7CiAgICAgICAgIG1fdGltZW91dCA9IChpbnQpV0tVSW50NjRHZXRW
YWx1ZShzdGF0aWNfY2FzdDxXS1VJbnQ2NFJlZj4oV0tEaWN0aW9uYXJ5R2V0SXRlbUZvcktleSht
ZXNzYWdlQm9keURpY3Rpb25hcnksIHRpbWVvdXRLZXkuZ2V0KCkpKSk7CiAKKyAgICAgICAgV0tS
ZXRhaW5QdHI8V0tTdHJpbmdSZWY+IGR1bXBKU0NvbnNvbGVMb2dJblN0ZEVycktleShBZG9wdFdL
LCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiRHVtcEpTQ29uc29sZUxvZ0luU3RkRXJy
IikpOworICAgICAgICBtX2R1bXBKU0NvbnNvbGVMb2dJblN0ZEVyciA9IFdLQm9vbGVhbkdldFZh
bHVlKHN0YXRpY19jYXN0PFdLQm9vbGVhblJlZj4oV0tEaWN0aW9uYXJ5R2V0SXRlbUZvcktleSht
ZXNzYWdlQm9keURpY3Rpb25hcnksIGR1bXBKU0NvbnNvbGVMb2dJblN0ZEVycktleS5nZXQoKSkp
KTsKKwogICAgICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gYWNrTWVzc2FnZU5hbWUoQWRv
cHRXSywgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIkFjayIpKTsKICAgICAgICAgV0tS
ZXRhaW5QdHI8V0tTdHJpbmdSZWY+IGFja01lc3NhZ2VCb2R5KEFkb3B0V0ssIFdLU3RyaW5nQ3Jl
YXRlV2l0aFVURjhDU3RyaW5nKCJCZWdpblRlc3QiKSk7CiAgICAgICAgIFdLQnVuZGxlUGFnZVBv
c3RNZXNzYWdlKHBhZ2UsIGFja01lc3NhZ2VOYW1lLmdldCgpLCBhY2tNZXNzYWdlQm9keS5nZXQo
KSk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0lu
amVjdGVkQnVuZGxlLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0lu
amVjdGVkQnVuZGxlLmgKaW5kZXggZTRhNDA0NWUyNmRmM2NiNjdjNDNkYzhhNjkxYzQyOTg5YmUy
MDhhMS4uZjE3MDE2ZWY4NGM0MTA5YWNjZWQ4ZDI0ZjhiMWYzNzhhMjJhNmRhMSAxMDA2NDQKLS0t
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5o
CisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5k
bGUuaApAQCAtODEsNyArODEsOCBAQCBwdWJsaWM6CiAKICAgICBib29sIHNob3VsZER1bXBQaXhl
bHMoKSBjb25zdCB7IHJldHVybiBtX2R1bXBQaXhlbHM7IH0KICAgICBib29sIHVzZVdhaXRUb0R1
bXBXYXRjaGRvZ1RpbWVyKCkgY29uc3QgeyByZXR1cm4gbV91c2VXYWl0VG9EdW1wV2F0Y2hkb2dU
aW1lcjsgfQotICAgIAorICAgIGJvb2wgZHVtcEpTQ29uc29sZUxvZ0luU3RkRXJyKCkgY29uc3Qg
eyByZXR1cm4gbV9kdW1wSlNDb25zb2xlTG9nSW5TdGRFcnI7IH07CisKICAgICB2b2lkIG91dHB1
dFRleHQoY29uc3QgU3RyaW5nJik7CiAgICAgdm9pZCBwb3N0TmV3QmVmb3JlVW5sb2FkUmV0dXJu
VmFsdWUoYm9vbCk7CiAgICAgdm9pZCBwb3N0QWRkQ2hyb21lSW5wdXRGaWVsZCgpOwpAQCAtMTgw
LDYgKzE4MSw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3VzZVdvcmtRdWV1ZTsKICAgICBpbnQg
bV90aW1lb3V0OwogICAgIGJvb2wgbV9waXhlbFJlc3VsdElzUGVuZGluZyB7IGZhbHNlIH07Cisg
ICAgYm9vbCBtX2R1bXBKU0NvbnNvbGVMb2dJblN0ZEVyciB7IGZhbHNlIH07CiAKICAgICBXS1Jl
dGFpblB0cjxXS0RhdGFSZWY+IG1fYXVkaW9SZXN1bHQ7CiAgICAgV0tSZXRhaW5QdHI8V0tJbWFn
ZVJlZj4gbV9waXhlbFJlc3VsdDsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcAppbmRleCBkZDc5MzY2
MmUwMDVkNmY1N2M0NmQ1ZTFhNGJmNGE0ZTVhZWZlZTQ1Li43ODc4MjExZWFkZjhjOTJmOWE5MWQ5
ODBkNWY5MTEzZGYxYWM0MTE1IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3BwCkBAIC0xNDYxLDcg
KzE0NjEsMTEgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OndpbGxBZGRNZXNzYWdlVG9Db25z
b2xlKFdLU3RyaW5nUmVmIG1lc3NhZ2UsIHVpbnQzMl90IGwKICAgICB9CiAgICAgc3RyaW5nQnVp
bGRlci5hcHBlbmQobWVzc2FnZVN0cmluZyk7CiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoJ1xu
Jyk7Ci0gICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dChzdHJpbmdCdWlsZGVyLnRvU3RyaW5n
KCkpOworCisgICAgaWYgKGluamVjdGVkQnVuZGxlLmR1bXBKU0NvbnNvbGVMb2dJblN0ZEVycigp
KQorICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIiVzIiwgc3RyaW5nQnVpbGRlci50b1N0cmluZygp
LnV0ZjgoKS5kYXRhKCkpOworICAgIGVsc2UKKyAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0
VGV4dChzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOwogfQogCiB2b2lkIEluamVjdGVkQnVuZGxl
UGFnZTo6d2lsbFNldFN0YXR1c2JhclRleHQoV0tTdHJpbmdSZWYgc3RhdHVzYmFyVGV4dCkKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKaW5kZXggZDBiYzI0OTAwYWRm
MTAxZjQyN2QwNzlkMzFmNjM2YzEwMGQxZWY3OS4uZmI1OGI1N2ZjM2U5OGExMDFhYTBjMjVlZGZk
MzMwMDk5ZmVjNTZhMiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29u
dHJvbGxlci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5j
cHAKQEAgLTEwMjIsMTIgKzEwMjIsMTEgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6Y29uZmlndXJl
Vmlld0ZvclRlc3QoY29uc3QgVGVzdEludm9jYXRpb24mIHRlc3QpCiB9CiAKIHN0cnVjdCBUZXN0
Q29tbWFuZCB7Ci0gICAgVGVzdENvbW1hbmQoKSA6IHNob3VsZER1bXBQaXhlbHMoZmFsc2UpLCB0
aW1lb3V0KDApIHsgfQotCiAgICAgc3RkOjpzdHJpbmcgcGF0aE9yVVJMOwotICAgIGJvb2wgc2hv
dWxkRHVtcFBpeGVsczsKKyAgICBib29sIHNob3VsZER1bXBQaXhlbHMgeyBmYWxzZSB9OwogICAg
IHN0ZDo6c3RyaW5nIGV4cGVjdGVkUGl4ZWxIYXNoOwotICAgIGludCB0aW1lb3V0OworICAgIGlu
dCB0aW1lb3V0IHsgMCB9OworICAgIGJvb2wgZHVtcEpTQ29uc29sZUxvZ0luU3RkRXJyIHsgZmFs
c2UgfTsKIH07CiAKIGNsYXNzIENvbW1hbmRUb2tlbml6ZXIgewpAQCAtMTEwMCw3ICsxMDk5LDkg
QEAgVGVzdENvbW1hbmQgcGFyc2VJbnB1dExpbmUoY29uc3Qgc3RkOjpzdHJpbmcmIGlucHV0TGlu
ZSkKICAgICAgICAgICAgIHJlc3VsdC5zaG91bGREdW1wUGl4ZWxzID0gdHJ1ZTsKICAgICAgICAg
ICAgIGlmICh0b2tlbml6ZXIuaGFzTmV4dCgpKQogICAgICAgICAgICAgICAgIHJlc3VsdC5leHBl
Y3RlZFBpeGVsSGFzaCA9IHRva2VuaXplci5uZXh0KCk7Ci0gICAgICAgIH0gZWxzZQorICAgICAg
ICB9IGVsc2UgaWYgKGFyZyA9PSBzdGQ6OnN0cmluZygiLS1kdW1wLWpzY29uc29sZWxvZy1pbi1z
dGRlcnIiKSkKKyAgICAgICAgICAgIHJlc3VsdC5kdW1wSlNDb25zb2xlTG9nSW5TdGRFcnIgPSB0
cnVlOworICAgICAgICBlbHNlCiAgICAgICAgICAgICBkaWUoaW5wdXRMaW5lKTsKICAgICB9CiAg
ICAgcmV0dXJuIHJlc3VsdDsKQEAgLTExMjIsNiArMTEyMyw3IEBAIGJvb2wgVGVzdENvbnRyb2xs
ZXI6OnJ1blRlc3QoY29uc3QgY2hhciogaW5wdXRMaW5lKQogICAgICAgICBtX2N1cnJlbnRJbnZv
Y2F0aW9uLT5zZXRJc1BpeGVsVGVzdChjb21tYW5kLmV4cGVjdGVkUGl4ZWxIYXNoKTsKICAgICBp
ZiAoY29tbWFuZC50aW1lb3V0ID4gMCkKICAgICAgICAgbV9jdXJyZW50SW52b2NhdGlvbi0+c2V0
Q3VzdG9tVGltZW91dChjb21tYW5kLnRpbWVvdXQpOworICAgIG1fY3VycmVudEludm9jYXRpb24t
PnNldER1bXBKU0NvbnNvbGVMb2dJblN0ZEVycihjb21tYW5kLmR1bXBKU0NvbnNvbGVMb2dJblN0
ZEVycik7CiAKICAgICBwbGF0Zm9ybVdpbGxSdW5UZXN0KCptX2N1cnJlbnRJbnZvY2F0aW9uKTsK
IApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcAppbmRleCA1ZWQ3ZGU1
MzZlMzE5NjZiYzMwOGU3YWFhMTJjN2RmZGM3NmViYWE5Li42NTQwOGFjY2NkNGI1YWQwOWMzZmRj
NDQxNWQ5MjRmOGE2NzQzM2FiIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RJbnZvY2F0aW9uLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0
aW9uLmNwcApAQCAtMTU5LDYgKzE1OSwxMCBAQCB2b2lkIFRlc3RJbnZvY2F0aW9uOjppbnZva2Uo
KQogICAgIFdLUmV0YWluUHRyPFdLVUludDY0UmVmPiB0aW1lb3V0VmFsdWUgPSBhZG9wdFdLKFdL
VUludDY0Q3JlYXRlKG1fdGltZW91dCkpOwogICAgIFdLRGljdGlvbmFyeVNldEl0ZW0oYmVnaW5U
ZXN0TWVzc2FnZUJvZHkuZ2V0KCksIHRpbWVvdXRLZXkuZ2V0KCksIHRpbWVvdXRWYWx1ZS5nZXQo
KSk7CiAKKyAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gZHVtcEpTQ29uc29sZUxvZ0luU3Rk
RXJyS2V5ID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiRHVtcEpTQ29u
c29sZUxvZ0luU3RkRXJyIikpOworICAgIFdLUmV0YWluUHRyPFdLQm9vbGVhblJlZj4gZHVtcEpT
Q29uc29sZUxvZ0luU3RkRXJyVmFsdWUgPSBhZG9wdFdLKFdLQm9vbGVhbkNyZWF0ZShtX2R1bXBK
U0NvbnNvbGVMb2dJblN0ZEVycikpOworICAgIFdLRGljdGlvbmFyeVNldEl0ZW0oYmVnaW5UZXN0
TWVzc2FnZUJvZHkuZ2V0KCksIGR1bXBKU0NvbnNvbGVMb2dJblN0ZEVycktleS5nZXQoKSwgZHVt
cEpTQ29uc29sZUxvZ0luU3RkRXJyVmFsdWUuZ2V0KCkpOworCiAgICAgV0tQYWdlUG9zdE1lc3Nh
Z2VUb0luamVjdGVkQnVuZGxlKFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5tYWluV2ViVmll
dygpLT5wYWdlKCksIG1lc3NhZ2VOYW1lLmdldCgpLCBiZWdpblRlc3RNZXNzYWdlQm9keS5nZXQo
KSk7CiAKICAgICBib29sIHNob3VsZE9wZW5FeHRlcm5hbFVSTHMgPSBmYWxzZTsKZGlmZiAtLWdp
dCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uaCBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uaAppbmRleCAxYjZjNWZlYjY1Mzg2NmQzMTMzMThk
MDRkODJiNjkxNDZiMDg2OThkLi5kZjU4ODVjN2ViNWM5ZmQ4OGNjODdkNzVkMDZiYmI0NzkwODA3
NDBjIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmgK
KysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5oCkBAIC01MSw2ICs1
MSw3IEBAIHB1YmxpYzoKIAogICAgIC8vIE1pbGxpc2Vjb25kcwogICAgIHZvaWQgc2V0Q3VzdG9t
VGltZW91dChpbnQgZHVyYXRpb24pIHsgbV90aW1lb3V0ID0gZHVyYXRpb247IH0KKyAgICB2b2lk
IHNldER1bXBKU0NvbnNvbGVMb2dJblN0ZEVycihib29sIHZhbHVlKSB7IG1fZHVtcEpTQ29uc29s
ZUxvZ0luU3RkRXJyID0gdmFsdWU7IH0KIAogICAgIC8vIFNlY29uZHMKICAgICBkb3VibGUgc2hv
cnRUaW1lb3V0KCkgY29uc3Q7CkBAIC0xMDIsNiArMTAzLDcgQEAgcHJpdmF0ZToKICAgICBzdGQ6
OnN0cmluZyBtX2V4cGVjdGVkUGl4ZWxIYXNoOwogCiAgICAgaW50IG1fdGltZW91dCB7IDAgfTsK
KyAgICBib29sIG1fZHVtcEpTQ29uc29sZUxvZ0luU3RkRXJyIHsgZmFsc2UgfTsKIAogICAgIC8v
IEludm9jYXRpb24gc3RhdGUKICAgICBib29sIG1fZ290SW5pdGlhbFJlc3BvbnNlIHsgZmFsc2Ug
fTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwppbmRleCA1MzcwYTYzMTMyYzVlMTRiZGJhZjI5MWZiNjZiZmYxZTUwOTllOTQ3Li44NDNl
MjgyOWZiYzVhNTA5M2YzNTRlYjQ1NDVlZGI5ZGVhM2Q2OTA3IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIg
QEAKKzIwMTYtMTItMTMgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAg
ICAgIFRlc3QgaW5mcmFzdHJ1Y3R1cmUgc2hvdWxkIGFsbG93IHRvIGZpbHRlciBvdXQgdGV4dCBv
dXRwdXQgYmVmb3JlIGRvaW5nIGEgY29tcGFyaXNvbiB3aXRoIHRoZSBiYXNlbGluZQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYxMzEwCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0RXhwZWN0YXRp
b25zOiBBZGRpbmcgRHVtcEpTQ29uc29sZUxvZ0luU3RkRXJyIHRvIHRoZSBmZXRjaCBtb2RpZmll
ZCB0ZXN0IHRvIGVuc3VyZSB0aGlzIG1vZGlmaWVyIHdvcmtzIGFzIGV4cGVjdGVkLgorCiAyMDE2
LTEyLTEyICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUg
YmluZGluZ3MgZ2VuZXJhdGlvbiBzdXBwb3J0IGZvciBsZWdhY3kgV2ViQ29yZTo6RGljdGlvbmFy
eQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggOTEzNmNjMjllOTY5OGY4ODBmZDNl
NmNmYWU0ZTE2MTc2ZjJkOTFiMy4uZmExOGNkNzQwYmQwNDUzZTk2MDE3MzUwMDRmM2MwYzc2Yzdi
YzFiNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIw
MTYtMTItMTMgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIFRl
c3QgaW5mcmFzdHJ1Y3R1cmUgc2hvdWxkIGFsbG93IHRvIGZpbHRlciBvdXQgdGV4dCBvdXRwdXQg
YmVmb3JlIGRvaW5nIGEgY29tcGFyaXNvbiB3aXRoIHRoZSBiYXNlbGluZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYxMzEwCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvYXBpL2NvcnMvY29ycy1wcmVmbGlnaHQuanM6IEFkZGluZyBhIGNvbnNvbGUgbG9nIGxp
bmUgdG8gZW5zdXJlIHRoZSBEdW1wSlNDb25zb2xlTG9nSW5TdGRFcnIgbW9kaWZpZXIgd29ya3Mu
CisKIDIwMTYtMTItMTIgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAg
IFJlbW92ZSBiaW5kaW5ncyBnZW5lcmF0aW9uIHN1cHBvcnQgZm9yIGxlZ2FjeSBXZWJDb3JlOjpE
aWN0aW9uYXJ5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5
b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAxZTI0MDkwOGE3MDcyODY0NmM1MjQxYTM4
NmY5YWRmNjFlNTVkMGI2Li42YjBjN2RjN2EzYThiZjk5YWQ3Nzk1MGY0NWExZjU2ZmFkMGVkMzM3
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRl
c3RzL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTI5NSw2ICsyOTUsOCBAQCB3ZWJraXQub3JnL2IvMTU3
MDY4IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbm9zbmlmZi9pbXBvcnRz
Y3JpcHRzLgogd2Via2l0Lm9yZy9iLzE1NzE0NSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL25vc25pZmYvc3R5bGVzaGVldC5odG1sIFsgRmFpbHVyZSBQYXNzIF0KIHdlYmtp
dC5vcmcvYi8xNjEzMTIgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFu
dGljcy9kb2N1bWVudC1tZXRhZGF0YS90aGUtbGluay1lbGVtZW50L2RvY3VtZW50LXdpdGhvdXQt
YnJvd3NpbmctY29udGV4dC5odG1sIFsgRmFpbHVyZSBQYXNzIF0KIAoraW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvY29ycy9jb3JzLXByZWZsaWdodC5odG1sIFsgRHVt
cEpTQ29uc29sZUxvZ0luU3RkRXJyIF0KKwogd2Via2l0Lm9yZy9iLzE1OTcyNCBpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L3NlbmQtcmVkaXJlY3QtcG9zdC11
cGxvYWQuaHRtIFsgRmFpbHVyZSBQYXNzIF0KIAogIyBOZXcgVzNDIHJlZiB0ZXN0cyB0aGF0IGFy
ZSBmYWlsaW5nLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9mZXRjaC9hcGkvY29ycy9jb3JzLXByZWZsaWdodC5qcyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2NvcnMvY29ycy1wcmVm
bGlnaHQuanMKaW5kZXggMjQzNjZmZjIwMDkzZTE5NzJmYTMxYTQ4ZmM2ODViMjExZTU0OGNmNS4u
ODAyMWE0MGI0MTQxNTdmYTVjNDEwZmIzZWQ3OTYyYjZmZTcxMmQ4MCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvY29ycy9j
b3JzLXByZWZsaWdodC5qcworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL2FwaS9jb3JzL2NvcnMtcHJlZmxpZ2h0LmpzCkBAIC01LDYgKzUsOSBA
QCBpZiAodGhpcy5kb2N1bWVudCA9PT0gdW5kZWZpbmVkKSB7CiAgIGltcG9ydFNjcmlwdHMoIi9j
b21tb24vZ2V0LWhvc3QtaW5mby5zdWIuanMiKTsKIH0KIAorLy8gVG8gYmUgcmVtb3ZlZCwgc2Vl
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjEzMTAKK2NvbnNvbGUu
bG9nKCJEb2luZyBzb21lIGxvZ2dpbmciKQorCiBmdW5jdGlvbiBoZWFkZXJOYW1lcyhoZWFkZXJz
KQogewogICAgIGxldCBuYW1lcyA9IFtdOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>297077</attachid>
            <date>2016-12-14 02:22:52 -0800</date>
            <delta_ts>2016-12-14 03:11:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-161310-20161214112201.patch</filename>
            <type>text/plain</type>
            <size>24138</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA5NzUyCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMmEyNjBiNDMwYTk4ZGJiZjE5MjMzOWU4OWQyODhkM2Q4
ZDEyNDFjMy4uYzlmYjI5NjYxNzU5ZTdkMGZiZDcyZDZkMDQwNjU1ODYyNmFmNzY1NCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2
IEBACisyMDE2LTEyLTEzICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAg
ICAgICBUZXN0IGluZnJhc3RydWN0dXJlIHNob3VsZCBhbGxvdyB0byBmaWx0ZXIgb3V0IHRleHQg
b3V0cHV0IGJlZm9yZSBkb2luZyBhIGNvbXBhcmlzb24gd2l0aCB0aGUgYmFzZWxpbmUKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MTMxMAorCisgICAg
ICAgIFJldmlld2VkIGJ5IFJ5b3N1a2UgTml3YS4KKworICAgICAgICBBZGRpbmcgLS1kdW1wLWpz
Y29uc29sZWxvZy1pbi1zdGRlcnIgdGVzdCBvcHRpb24gZm9yIERSVCBhbmQgV1RSLgorICAgICAg
ICBXaGVuIHNldCwgV1RSIGFuZCBEUlQgb3V0cHV0IEpTIGNvbnNvbGUgbG9nIGluIHRoZSBzdGRl
cnIgYW5kIG5vdCB0aGUgdGVzdCBvdXRwdXQuCisgICAgICAgIFRoaXMgYWxsb3dzIHJlbW92aW5n
IHBvdGVudGlhbGx5IGZsYWt5IGluZm9ybWF0aW9uIHdoaWxlIHN0aWxsIGJlaW5nIGFibGUgdG8g
cmVhZCBpdCBmb3IgaW52ZXN0aWdhdGlvbi4KKworICAgICAgICBVcGRhdGVkIHdlYmtpdHB5IGlu
ZnJhc3RydWN0dXJlIHRvIHVzZSB0aGlzIHRlc3Qgb3B0aW9uIGluIGNhc2Ugb2YgRHVtcEpTQ29u
c29sZUxvZ0luU3RkRXJyIG1vZGlmaWVyLgorCisgICAgICAgIENoYW5nZXMgYXJlIGNvdmVyZWQg
YnkgdXBkYXRpbmcgYSBmZXRjaCB0ZXN0IHRvIG91dHB1dCBjb25zb2xlIGxvZyBhbmQgc2V0IGl0
cyBvcHRpb24gdG8gLS1kdW1wLWpzY29uc29sZWxvZy1pbi1zdGRlcnIgaW4gVGVzdEV4cGVjdGF0
aW9ucy4KKyAgICAgICAgVGhpcyB0ZXN0IHNob3VsZCBoYXZlIHRoaXMgb3B0aW9uIHdoZW4gZmV0
Y2ggQVBJIHdpbGwgc3RhcnQgbG9nZ2luZyByZXNvdXJjZSBsb2FkZXIgZXJyb3JzLgorCisgICAg
ICAgICogRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWUuaDoKKyAgICAgICAgKFRlc3RDb21t
YW5kOjpUZXN0Q29tbWFuZCk6IERlbGV0ZWQuCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvRHVt
cFJlbmRlclRyZWVDb21tb24uY3BwOgorICAgICAgICAocGFyc2VJbnB1dExpbmUpOgorICAgICAg
ICAqIER1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuaDoKKyAgICAgICAgKFRlc3RSdW5uZXI6OnNl
dER1bXBKU0NvbnNvbGVMb2dJblN0ZEVycik6CisgICAgICAgIChUZXN0UnVubmVyOjpkdW1wSlND
b25zb2xlTG9nSW5TdGRFcnIpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVu
ZGVyVHJlZS5tbToKKyAgICAgICAgKHJ1blRlc3QpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVl
L21hYy9VSURlbGVnYXRlLm1tOgorICAgICAgICAoLVtVSURlbGVnYXRlIHdlYlZpZXc6YWRkTWVz
c2FnZVRvQ29uc29sZTp3aXRoU291cmNlOl0pOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3dp
bi9EdW1wUmVuZGVyVHJlZS5jcHA6CisgICAgICAgIChydW5UZXN0KToKKyAgICAgICAgKiBEdW1w
UmVuZGVyVHJlZS93aW4vVUlEZWxlZ2F0ZS5jcHA6CisgICAgICAgIChVSURlbGVnYXRlOjp3ZWJW
aWV3QWRkTWVzc2FnZVRvQ29uc29sZSk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvbW9kZWxzL3Rlc3RfZXhwZWN0YXRpb25zLnB5OgorICAgICAgICAoVGVzdEV4cGVj
dGF0aW9uUGFyc2VyLl90b2tlbml6ZV9saW5lKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5
L3BvcnQvZHJpdmVyLnB5OgorICAgICAgICAoRHJpdmVyLl9jb21tYW5kX2Zyb21fZHJpdmVyX2lu
cHV0KToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVk
QnVuZGxlLmNwcDoKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGU6OmRpZFJlY2VpdmVNZXNz
YWdlVG9QYWdlKToKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGU6OmR1bXBUb1N0ZEVycik6
CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRs
ZS5oOgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZTo6ZHVtcEpTQ29uc29sZUxvZ0luU3Rk
RXJyKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVk
QnVuZGxlUGFnZS5jcHA6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6d2lsbEFk
ZE1lc3NhZ2VUb0NvbnNvbGUpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRy
b2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpwYXJzZUlucHV0TGluZSk6CisgICAgICAgIChXVFI6
OlRlc3RDb250cm9sbGVyOjpydW5UZXN0KToKKyAgICAgICAgKFdUUjo6VGVzdENvbW1hbmQ6OlRl
c3RDb21tYW5kKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZv
Y2F0aW9uLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdEludm9jYXRpb246Omludm9rZSk6CisgICAg
ICAgIChXVFI6OlRlc3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZlTWVzc2FnZUZyb21JbmplY3RlZEJ1
bmRsZSk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5oOgorICAg
ICAgICAoV1RSOjpUZXN0SW52b2NhdGlvbjo6c2V0RHVtcEpTQ29uc29sZUxvZ0luU3RkRXJyKToK
KworCiAyMDE2LTEyLTA4ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAg
ICAgICBFbmFibGUgbmV0d29yayBjYWNoZSBzcGVjdWxhdGl2ZSByZXZhbGlkYXRpb24gaW4gTWlu
aUJyb3dzZXIKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVl
LmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZS5oCmluZGV4IDMwNDIzMmJl
ODBkZTA0NGZhMzBkM2VlM2NmNTFkYzlkMzUxY2E0NTUuLjQ0YWEyYmZhNWJjNWU0MzdjODM0YTY1
ZjhlNzNmYWMxYjZkMmYxZDggMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBS
ZW5kZXJUcmVlLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWUuaApA
QCAtNTcsMTIgKzU3LDExIEBAIHZvaWQgZHVtcCgpOwogdm9pZCBkaXNwbGF5V2ViVmlldygpOwog
CiBzdHJ1Y3QgVGVzdENvbW1hbmQgewotICAgIFRlc3RDb21tYW5kKCkgOiBzaG91bGREdW1wUGl4
ZWxzKGZhbHNlKSwgdGltZW91dCgzMDAwMCkgeyB9Ci0KICAgICBzdGQ6OnN0cmluZyBwYXRoT3JV
Ukw7Ci0gICAgYm9vbCBzaG91bGREdW1wUGl4ZWxzOworICAgIGJvb2wgc2hvdWxkRHVtcFBpeGVs
cyB7IGZhbHNlIH07CiAgICAgc3RkOjpzdHJpbmcgZXhwZWN0ZWRQaXhlbEhhc2g7Ci0gICAgaW50
IHRpbWVvdXQ7IC8vIGluIG1zCisgICAgaW50IHRpbWVvdXQgeyAzMDAwMCB9OyAvLyBpbiBtcwor
ICAgIGJvb2wgZHVtcEpTQ29uc29sZUxvZ0luU3RkRXJyIHsgZmFsc2UgfTsKIH07CiAKIFRlc3RD
b21tYW5kIHBhcnNlSW5wdXRMaW5lKGNvbnN0IHN0ZDo6c3RyaW5nJik7CmRpZmYgLS1naXQgYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZUNvbW1vbi5jcHAgYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZUNvbW1vbi5jcHAKaW5kZXggM2NiOTdlYmZkMjhkODU5
YzBiNjFhN2M0NmQ0NTkwMDZhNjY4YWM2ZC4uNWY2NDg5NDY2YTc0MDc3YTRkZmYzYWNkMzQzYmY5
NGZlMzc5NWNkMSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRy
ZWVDb21tb24uY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlQ29t
bW9uLmNwcApAQCAtMSwzICsxLDI4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxl
IEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKwogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkR1bXBSZW5kZXJU
cmVlLmgiCiAKQEAgLTcwLDE0ICs5NSwxNiBAQCBUZXN0Q29tbWFuZCBwYXJzZUlucHV0TGluZShj
b25zdCBzdGQ6OnN0cmluZyYgaW5wdXRMaW5lKQogICAgIHJlc3VsdC5wYXRoT3JVUkwgPSBhcmc7
CiAgICAgd2hpbGUgKHRva2VuaXplci5oYXNOZXh0KCkpIHsKICAgICAgICAgYXJnID0gdG9rZW5p
emVyLm5leHQoKTsKLSAgICAgICAgaWYgKGFyZyA9PSBzdGQ6OnN0cmluZygiLS10aW1lb3V0Iikp
IHsKKyAgICAgICAgaWYgKGFyZyA9PSAiLS10aW1lb3V0IikgewogICAgICAgICAgICAgc3RkOjpz
dHJpbmcgdGltZW91dFRva2VuID0gdG9rZW5pemVyLm5leHQoKTsKICAgICAgICAgICAgIHJlc3Vs
dC50aW1lb3V0ID0gYXRvaSh0aW1lb3V0VG9rZW4uY19zdHIoKSk7Ci0gICAgICAgIH0gZWxzZSBp
ZiAoYXJnID09IHN0ZDo6c3RyaW5nKCItcCIpIHx8IGFyZyA9PSBzdGQ6OnN0cmluZygiLS1waXhl
bC10ZXN0IikpIHsKKyAgICAgICAgfSBlbHNlIGlmIChhcmcgPT0gIi1wIiB8fCBhcmcgPT0gIi0t
cGl4ZWwtdGVzdCIpIHsKICAgICAgICAgICAgIHJlc3VsdC5zaG91bGREdW1wUGl4ZWxzID0gdHJ1
ZTsKICAgICAgICAgICAgIGlmICh0b2tlbml6ZXIuaGFzTmV4dCgpKQogICAgICAgICAgICAgICAg
IHJlc3VsdC5leHBlY3RlZFBpeGVsSGFzaCA9IHRva2VuaXplci5uZXh0KCk7Ci0gICAgICAgIH0g
ZWxzZQorICAgICAgICB9IGVsc2UgaWYgKGFyZyA9PSAiLS1kdW1wLWpzY29uc29sZWxvZy1pbi1z
dGRlcnIiKQorICAgICAgICAgICAgcmVzdWx0LmR1bXBKU0NvbnNvbGVMb2dJblN0ZEVyciA9IHRy
dWU7CisgICAgICAgIGVsc2UKICAgICAgICAgICAgIGRpZShpbnB1dExpbmUpOwogICAgIH0KIApk
aWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5oIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvVGVzdFJ1bm5lci5oCmluZGV4IGE4ZDQ5YzZjMjExNTcwYjE3NDVkMmU5MjZk
ZDYyMjliMjI0NmIyZjAuLjFkM2E1YzI2NDNjN2EyNTZkYTVlNjUxZWFkZDJhNDI4MjFjMzJhNWYg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuaAorKysgYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmgKQEAgLTM2Nyw5ICszNjcsMTIgQEAgcHVibGlj
OgogICAgIGRvdWJsZSB0aW1lb3V0KCkgeyByZXR1cm4gbV90aW1lb3V0OyB9CiAKICAgICB1bnNp
Z25lZCBpbWFnZUNvdW50SW5HZW5lcmFsUGFzdGVib2FyZCgpIGNvbnN0OwotICAgIAorCiAgICAg
dm9pZCBjYWxsVUlTY3JpcHRDYWxsYmFjayh1bnNpZ25lZCBjYWxsYmFja0lELCBKU1N0cmluZ1Jl
ZiByZXN1bHQpOwogCisgICAgdm9pZCBzZXREdW1wSlNDb25zb2xlTG9nSW5TdGRFcnIoYm9vbCBp
blN0ZEVycikgeyBtX2R1bXBKU0NvbnNvbGVMb2dJblN0ZEVyciA9IGluU3RkRXJyOyB9CisgICAg
Ym9vbCBkdW1wSlNDb25zb2xlTG9nSW5TdGRFcnIoKSBjb25zdCB7IHJldHVybiBtX2R1bXBKU0Nv
bnNvbGVMb2dJblN0ZEVycjsgfQorCiBwcml2YXRlOgogICAgIFRlc3RSdW5uZXIoY29uc3Qgc3Rk
OjpzdHJpbmcmIHRlc3RVUkwsIGNvbnN0IHN0ZDo6c3RyaW5nJiBleHBlY3RlZFBpeGVsSGFzaCk7
CiAKQEAgLTQzNCw2ICs0MzcsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9hcmVMZWdhY3lXZWJO
b3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdHNJZ25vcmVkOwogICAgIGJvb2wgbV9jdXN0b21G
dWxsU2NyZWVuQmVoYXZpb3I7CiAgICAgYm9vbCBtX2hhc1BlbmRpbmdXZWJOb3RpZmljYXRpb25D
bGljazsKKyAgICBib29sIG1fZHVtcEpTQ29uc29sZUxvZ0luU3RkRXJyIHsgZmFsc2UgfTsKIAog
ICAgIGRvdWJsZSBtX2RhdGFiYXNlRGVmYXVsdFF1b3RhOwogICAgIGRvdWJsZSBtX2RhdGFiYXNl
TWF4UXVvdGE7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRl
clRyZWUubW0gYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KaW5k
ZXggYjA5NTZmOWFhMjdiNjhiYTY4YThlNjRhMDM5MmM2ZDBmZWM2NGFhOC4uODQ2ODY3YjM4YTk3
ZDc5MjRlMTMyYmI0ZGY1NjgyYzEwYjgyODIzYSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21h
Yy9EdW1wUmVuZGVyVHJlZS5tbQpAQCAtMjAwMSw2ICsyMDAxLDcgQEAgc3RhdGljIHZvaWQgcnVu
VGVzdChjb25zdCBzdHJpbmcmIGlucHV0TGluZSkKICAgICBnVGVzdFJ1bm5lciA9IFRlc3RSdW5u
ZXI6OmNyZWF0ZSh0ZXN0VVJMLCBjb21tYW5kLmV4cGVjdGVkUGl4ZWxIYXNoKTsKICAgICBnVGVz
dFJ1bm5lci0+c2V0QWxsb3dlZEhvc3RzKGFsbG93ZWRIb3N0cyk7CiAgICAgZ1Rlc3RSdW5uZXIt
PnNldEN1c3RvbVRpbWVvdXQoY29tbWFuZC50aW1lb3V0KTsKKyAgICBnVGVzdFJ1bm5lci0+c2V0
RHVtcEpTQ29uc29sZUxvZ0luU3RkRXJyKGNvbW1hbmQuZHVtcEpTQ29uc29sZUxvZ0luU3RkRXJy
KTsKICAgICB0b3BMb2FkaW5nRnJhbWUgPSBuaWw7CiAjaWYgIVBMQVRGT1JNKElPUykKICAgICBB
U1NFUlQoIWRyYWdnaW5nSW5mbyk7IC8vIHRoZSBwcmV2aW91cyB0ZXN0IHNob3VsZCBoYXZlIGNh
bGxlZCBldmVudFNlbmRlci5tb3VzZVVwIHRvIGRyb3AhCmRpZmYgLS1naXQgYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9tYWMvVUlEZWxlZ2F0ZS5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9V
SURlbGVnYXRlLm1tCmluZGV4IDE4YTU4Y2UzODgwOTFkYTA3NDQ0OWIxMzVkYjljYzYwZDcyYWQy
NjQuLmY4NmY1MjIwZmI2NDBhNWI4ZWY4MmJlNjZjMmQ5NzU4YmY1ZTFlYjggMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9VSURlbGVnYXRlLm1tCisrKyBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL21hYy9VSURlbGVnYXRlLm1tCkBAIC04MiwxMCArODIsMTEgQEAgRHVtcFJlbmRl
clRyZWVEcmFnZ2luZ0luZm8gKmRyYWdnaW5nSW5mbyA9IG5pbDsKICAgICBpZiAocmFuZ2UubG9j
YXRpb24gIT0gTlNOb3RGb3VuZCkKICAgICAgICAgbWVzc2FnZSA9IFtbbWVzc2FnZSBzdWJzdHJp
bmdUb0luZGV4OnJhbmdlLmxvY2F0aW9uXSBzdHJpbmdCeUFwcGVuZGluZ1N0cmluZzpbW21lc3Nh
Z2Ugc3Vic3RyaW5nRnJvbUluZGV4Ok5TTWF4UmFuZ2UocmFuZ2UpXSBsYXN0UGF0aENvbXBvbmVu
dF1dOwogCi0gICAgcHJpbnRmICgiQ09OU09MRSBNRVNTQUdFOiAiKTsKKyAgICBhdXRvIG91dCA9
IGdUZXN0UnVubmVyLT5kdW1wSlNDb25zb2xlTG9nSW5TdGRFcnIoKSA/IHN0ZGVyciA6IHN0ZG91
dDsKKyAgICBmcHJpbnRmKG91dCwgIkNPTlNPTEUgTUVTU0FHRTogIik7CiAgICAgaWYgKFtsaW5l
TnVtYmVyIGludFZhbHVlXSkKLSAgICAgICAgcHJpbnRmICgibGluZSAlZDogIiwgW2xpbmVOdW1i
ZXIgaW50VmFsdWVdKTsKLSAgICBwcmludGYgKCIlc1xuIiwgW21lc3NhZ2UgVVRGOFN0cmluZ10p
OworICAgICAgICBmcHJpbnRmKG91dCwgImxpbmUgJWQ6ICIsIFtsaW5lTnVtYmVyIGludFZhbHVl
XSk7CisgICAgZnByaW50ZihvdXQsICIlc1xuIiwgW21lc3NhZ2UgVVRGOFN0cmluZ10pOwogfQog
CiAtICh2b2lkKW1vZGFsV2luZG93V2lsbENsb3NlOihOU05vdGlmaWNhdGlvbiAqKW5vdGlmaWNh
dGlvbgpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVl
LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHAKaW5kZXgg
NDkzZDhmMzFmM2MxZDE5MmQ0NDBhOWMxMjIxYzA2MDQ5YzdiOGFlYS4uZDQ1NGIxMTcxMjFjYTM5
NTNlYzc4MWQ4MjhhYjkzYzFhMzFkMzE3MiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4v
RHVtcFJlbmRlclRyZWUuY3BwCkBAIC0xMTIxLDYgKzExMjEsOCBAQCBzdGF0aWMgdm9pZCBydW5U
ZXN0KGNvbnN0IHN0cmluZyYgaW5wdXRMaW5lKQogCiAgICAgOjpnVGVzdFJ1bm5lciA9IFRlc3RS
dW5uZXI6OmNyZWF0ZSh0ZXN0VVJMLmRhdGEoKSwgY29tbWFuZC5leHBlY3RlZFBpeGVsSGFzaCk7
CiAgICAgOjpnVGVzdFJ1bm5lci0+c2V0Q3VzdG9tVGltZW91dChjb21tYW5kLnRpbWVvdXQpOwor
ICAgIDo6Z1Rlc3RSdW5uZXItPnNldER1bXBKU0NvbnNvbGVMb2dJblN0ZEVycihjb21tYW5kLmR1
bXBKU0NvbnNvbGVMb2dJblN0ZEVycik7CisKICAgICB0b3BMb2FkaW5nRnJhbWUgPSBudWxscHRy
OwogICAgIGRvbmUgPSBmYWxzZTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUv
d2luL1VJRGVsZWdhdGUuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL1VJRGVsZWdhdGUu
Y3BwCmluZGV4IGRkZDhlYWQ4ZDI0M2QwMmY0YWQ2M2Q1MjcxYjM0YjBhNjE4NGY3OGMuLmU2MGQ1
ZThkYmIzZWFkNDkwNDc4MTliODQzMGM4OTBmZmZmODMyYzcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL3dpbi9VSURlbGVnYXRlLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS93aW4vVUlEZWxlZ2F0ZS5jcHAKQEAgLTUwNywxMCArNTA3LDExIEBAIEhSRVNVTFQgVUlEZWxl
Z2F0ZTo6d2ViVmlld0FkZE1lc3NhZ2VUb0NvbnNvbGUoX0luX29wdF8gSVdlYlZpZXcqIC8qc2Vu
ZGVyKi8sIF9JCiAgICAgICAgICAgICBuZXdNZXNzYWdlID0gbmV3TWVzc2FnZS5zdWJzdHIoMCwg
ZmlsZVByb3RvY29sKSArIGxhc3RQYXRoQ29tcG9uZW50KG5ld01lc3NhZ2Uuc3Vic3RyKGZpbGVQ
cm90b2NvbCArIGZpbGVVUkwuc2l6ZSgpKSk7CiAgICAgfQogCi0gICAgcHJpbnRmKCJDT05TT0xF
IE1FU1NBR0U6ICIpOworICAgIGF1dG8gb3V0ID0gZ1Rlc3RSdW5uZXItPmR1bXBKU0NvbnNvbGVM
b2dJblN0ZEVycigpID8gc3RkZXJyIDogc3Rkb3V0OworICAgIGZwcmludGYob3V0LCAiQ09OU09M
RSBNRVNTQUdFOiAiKTsKICAgICBpZiAobGluZU51bWJlcikKLSAgICAgICAgcHJpbnRmKCJsaW5l
ICVkOiAiLCBsaW5lTnVtYmVyKTsKLSAgICBwcmludGYoIiVzXG4iLCB0b1VURjgobmV3TWVzc2Fn
ZSkuY19zdHIoKSk7CisgICAgICAgIGZwcmludGYob3V0LCAibGluZSAlZDogIiwgbGluZU51bWJl
cik7CisgICAgZnByaW50ZihvdXQsICIlc1xuIiwgdG9VVEY4KG5ld01lc3NhZ2UpLmNfc3RyKCkp
OwogICAgIHJldHVybiBTX09LOwogfQogCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVzdF9leHBlY3RhdGlvbnMucHkgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVzdF9leHBlY3RhdGlvbnMucHkKaW5k
ZXggYjJmNWVkOTM4ZGVjZjU4ZGU4MWU1ZTc1MzkyZWIzMjdkMDlhMTA5NC4uOTVlOWM2OTAwM2I2
MDg3NmFjYjcyZWU4OTY2ZDFlYTk4Yjc0NGM4MCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfZXhwZWN0YXRpb25zLnB5CisrKyBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X2V4cGVjdGF0aW9u
cy5weQpAQCAtMzIwLDcgKzMyMCw3IEBAIGNsYXNzIFRlc3RFeHBlY3RhdGlvblBhcnNlcihvYmpl
Y3QpOgogICAgICAgICAgICAgZWxpZiBzdGF0ZSA9PSAnY29uZmlndXJhdGlvbic6CiAgICAgICAg
ICAgICAgICAgbW9kaWZpZXJzLmFwcGVuZChjbHMuX2NvbmZpZ3VyYXRpb25fdG9rZW5zLmdldCh0
b2tlbiwgdG9rZW4pKQogICAgICAgICAgICAgZWxpZiBzdGF0ZSA9PSAnZXhwZWN0YXRpb25zJzoK
LSAgICAgICAgICAgICAgICBpZiB0b2tlbiBpbiAoJ1JlYmFzZWxpbmUnLCAnU2tpcCcsICdTbG93
JywgJ1dvbnRGaXgnLCAnRHVtcEpTQ29uc29sZUxvZ0luU1RERVJSJyk6CisgICAgICAgICAgICAg
ICAgaWYgdG9rZW4gaW4gKCdSZWJhc2VsaW5lJywgJ1NraXAnLCAnU2xvdycsICdXb250Rml4Jywg
J0R1bXBKU0NvbnNvbGVMb2dJblN0ZEVycicpOgogICAgICAgICAgICAgICAgICAgICBtb2RpZmll
cnMuYXBwZW5kKHRva2VuLnVwcGVyKCkpCiAgICAgICAgICAgICAgICAgZWxpZiB0b2tlbiBub3Qg
aW4gY2xzLl9leHBlY3RhdGlvbl90b2tlbnM6CiAgICAgICAgICAgICAgICAgICAgIHdhcm5pbmdz
LmFwcGVuZCgnVW5yZWNvZ25pemVkIGV4cGVjdGF0aW9uICIlcyInICUgdG9rZW4pCkBAIC0zNDYs
NiArMzQ2LDcgQEAgY2xhc3MgVGVzdEV4cGVjdGF0aW9uUGFyc2VyKG9iamVjdCk6CiAgICAgICAg
ICAgICAjIEZJWE1FOiBUaGlzIGlzIHJlYWxseSBhIHNlbWFudGljIHdhcm5pbmcgYW5kIHNob3Vs
ZG4ndCBiZSBoZXJlLiBSZW1vdmUgd2hlbiB3ZSBkcm9wIHRoZSBvbGQgc3ludGF4LgogICAgICAg
ICAgICAgd2FybmluZ3MuYXBwZW5kKCdBIHRlc3QgbWFya2VkIFNraXAgbXVzdCBub3QgaGF2ZSBv
dGhlciBleHBlY3RhdGlvbnMuJykKICAgICAgICAgZWxpZiBub3QgZXhwZWN0YXRpb25zOgorICAg
ICAgICAgICAgIyBGSVhNRTogV2UgY2FuIHByb2JhYmx5IHNpbXBsaWZ5IHRoaXMgYWRkaW5nICdT
S0lQJyBpZiBtb2RpZmllcnMgaXMgZW1wdHkKICAgICAgICAgICAgIGlmICdTS0lQJyBub3QgaW4g
bW9kaWZpZXJzIGFuZCAnUkVCQVNFTElORScgbm90IGluIG1vZGlmaWVycyBhbmQgJ1NMT1cnIG5v
dCBpbiBtb2RpZmllcnMgYW5kICdEVU1QSlNDT05TT0xFTE9HSU5TVERFUlInIG5vdCBpbiBtb2Rp
ZmllcnM6CiAgICAgICAgICAgICAgICAgbW9kaWZpZXJzLmFwcGVuZCgnU0tJUCcpCiAgICAgICAg
ICAgICBleHBlY3RhdGlvbnMgPSBbJ1BBU1MnXQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9wb3J0L2RyaXZlci5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9kcml2
ZXIucHkKaW5kZXggMzQ0NDhjZDllOGZiOTA1MjMzZTVmMWVlOWVkNDEzYWNhZmY3ZjgyMy4uZTQw
YzMwNjcyN2M1ZmJjNDRkOTRkMjRlNDg4MmJiM2M0NzA2NDc4NyAxMDA2NDQKLS0tIGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9wb3J0L2RyaXZlci5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L3BvcnQvZHJpdmVyLnB5CkBAIC00ODcsNyArNDg3LDcgQEAgY2xhc3MgRHJpdmVyKG9iamVj
dCk6CiAgICAgICAgIGlmIGRyaXZlcl9pbnB1dC5zaG91bGRfcnVuX3BpeGVsX3Rlc3Q6CiAgICAg
ICAgICAgICBjb21tYW5kICs9ICInLS1waXhlbC10ZXN0IgogICAgICAgICBpZiBkcml2ZXJfaW5w
dXQuc2hvdWxkX2R1bXBfanNjb25zb2xlbG9nX2luX3N0ZGVycjoKLSAgICAgICAgICAgIGNvbW1h
bmQgKz0gIictLWpzY29uc29sZWxvZy1pbi1zdGRlcnIiCisgICAgICAgICAgICBjb21tYW5kICs9
ICInLS1kdW1wLWpzY29uc29sZWxvZy1pbi1zdGRlcnIiCiAgICAgICAgIGlmIGRyaXZlcl9pbnB1
dC5pbWFnZV9oYXNoOgogICAgICAgICAgICAgY29tbWFuZCArPSAiJyIgKyBkcml2ZXJfaW5wdXQu
aW1hZ2VfaGFzaAogICAgICAgICByZXR1cm4gY29tbWFuZCArICJcbiIKZGlmZiAtLWdpdCBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAK
aW5kZXggNmQ5ODkxMWY4NTI0NmFlM2VjODAyM2Q5M2VkYWY4ZTVhMGUwNDE1Ni4uYmRjMTY1Zjg1
ZGZjOWJjYzQxMjY2YzI4NDQzYmRlMWVkOTIyZTU0ZSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKKysrIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKQEAgLTE1
NSw2ICsxNTUsOSBAQCB2b2lkIEluamVjdGVkQnVuZGxlOjpkaWRSZWNlaXZlTWVzc2FnZVRvUGFn
ZShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tTdHJpbmdSZWYgbQogICAgICAgICBXS1JldGFpblB0
cjxXS1N0cmluZ1JlZj4gdGltZW91dEtleShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4
Q1N0cmluZygiVGltZW91dCIpKTsKICAgICAgICAgbV90aW1lb3V0ID0gKGludClXS1VJbnQ2NEdl
dFZhbHVlKHN0YXRpY19jYXN0PFdLVUludDY0UmVmPihXS0RpY3Rpb25hcnlHZXRJdGVtRm9yS2V5
KG1lc3NhZ2VCb2R5RGljdGlvbmFyeSwgdGltZW91dEtleS5nZXQoKSkpKTsKIAorICAgICAgICBX
S1JldGFpblB0cjxXS1N0cmluZ1JlZj4gZHVtcEpTQ29uc29sZUxvZ0luU3RkRXJyS2V5KEFkb3B0
V0ssIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJEdW1wSlNDb25zb2xlTG9nSW5TdGRF
cnIiKSk7CisgICAgICAgIG1fZHVtcEpTQ29uc29sZUxvZ0luU3RkRXJyID0gV0tCb29sZWFuR2V0
VmFsdWUoc3RhdGljX2Nhc3Q8V0tCb29sZWFuUmVmPihXS0RpY3Rpb25hcnlHZXRJdGVtRm9yS2V5
KG1lc3NhZ2VCb2R5RGljdGlvbmFyeSwgZHVtcEpTQ29uc29sZUxvZ0luU3RkRXJyS2V5LmdldCgp
KSkpOworCiAgICAgICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBhY2tNZXNzYWdlTmFtZShB
ZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiQWNrIikpOwogICAgICAgICBX
S1JldGFpblB0cjxXS1N0cmluZ1JlZj4gYWNrTWVzc2FnZUJvZHkoQWRvcHRXSywgV0tTdHJpbmdD
cmVhdGVXaXRoVVRGOENTdHJpbmcoIkJlZ2luVGVzdCIpKTsKICAgICAgICAgV0tCdW5kbGVQYWdl
UG9zdE1lc3NhZ2UocGFnZSwgYWNrTWVzc2FnZU5hbWUuZ2V0KCksIGFja01lc3NhZ2VCb2R5Lmdl
dCgpKTsKQEAgLTQxMSw2ICs0MTQsMTcgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZTo6ZHVtcEJhY2tG
b3J3YXJkTGlzdHNGb3JBbGxQYWdlcyhTdHJpbmdCdWlsZGVyJiBzdHJpbmdCdWlsZGUKICAgICAg
ICAgbV9wYWdlc1tpXS0+ZHVtcEJhY2tGb3J3YXJkTGlzdChzdHJpbmdCdWlsZGVyKTsKIH0KIAor
dm9pZCBJbmplY3RlZEJ1bmRsZTo6ZHVtcFRvU3RkRXJyKGNvbnN0IFN0cmluZyYgb3V0cHV0KQor
eworICAgIGlmIChtX3N0YXRlICE9IFRlc3RpbmcpCisgICAgICAgIHJldHVybjsKKyAgICBpZiAo
b3V0cHV0LmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuOworICAgIFdLUmV0YWluUHRyPFdLU3Ry
aW5nUmVmPiBtZXNzYWdlTmFtZShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmlu
ZygiRHVtcFRvU3RkRXJyIikpOworICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBtZXNzYWdl
Qm9keShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhvdXRwdXQudXRmOCgp
LmRhdGEoKSkpOworICAgIFdLQnVuZGxlUGFnZVBvc3RNZXNzYWdlKHBhZ2UoKS0+cGFnZSgpLCBt
ZXNzYWdlTmFtZS5nZXQoKSwgbWVzc2FnZUJvZHkuZ2V0KCkpOworfQorCiB2b2lkIEluamVjdGVk
QnVuZGxlOjpvdXRwdXRUZXh0KGNvbnN0IFN0cmluZyYgb3V0cHV0KQogewogICAgIGlmIChtX3N0
YXRlICE9IFRlc3RpbmcpCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmgKaW5kZXggZTRhNDA0NWUyNmRmM2NiNjdjNDNkYzhh
NjkxYzQyOTg5YmUyMDhhMS4uMmVkZDVlNzk3NDYxZjY4MDNhMDI5MjQyNTUzMmJlMzg4ZWFlZWUw
NSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9Jbmpl
Y3RlZEJ1bmRsZS5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
SW5qZWN0ZWRCdW5kbGUuaApAQCAtODEsOCArODEsMTAgQEAgcHVibGljOgogCiAgICAgYm9vbCBz
aG91bGREdW1wUGl4ZWxzKCkgY29uc3QgeyByZXR1cm4gbV9kdW1wUGl4ZWxzOyB9CiAgICAgYm9v
bCB1c2VXYWl0VG9EdW1wV2F0Y2hkb2dUaW1lcigpIGNvbnN0IHsgcmV0dXJuIG1fdXNlV2FpdFRv
RHVtcFdhdGNoZG9nVGltZXI7IH0KLSAgICAKKyAgICBib29sIGR1bXBKU0NvbnNvbGVMb2dJblN0
ZEVycigpIGNvbnN0IHsgcmV0dXJuIG1fZHVtcEpTQ29uc29sZUxvZ0luU3RkRXJyOyB9OworCiAg
ICAgdm9pZCBvdXRwdXRUZXh0KGNvbnN0IFN0cmluZyYpOworICAgIHZvaWQgZHVtcFRvU3RkRXJy
KGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgcG9zdE5ld0JlZm9yZVVubG9hZFJldHVyblZhbHVl
KGJvb2wpOwogICAgIHZvaWQgcG9zdEFkZENocm9tZUlucHV0RmllbGQoKTsKICAgICB2b2lkIHBv
c3RSZW1vdmVDaHJvbWVJbnB1dEZpZWxkKCk7CkBAIC0xODAsNiArMTgyLDcgQEAgcHJpdmF0ZToK
ICAgICBib29sIG1fdXNlV29ya1F1ZXVlOwogICAgIGludCBtX3RpbWVvdXQ7CiAgICAgYm9vbCBt
X3BpeGVsUmVzdWx0SXNQZW5kaW5nIHsgZmFsc2UgfTsKKyAgICBib29sIG1fZHVtcEpTQ29uc29s
ZUxvZ0luU3RkRXJyIHsgZmFsc2UgfTsKIAogICAgIFdLUmV0YWluUHRyPFdLRGF0YVJlZj4gbV9h
dWRpb1Jlc3VsdDsKICAgICBXS1JldGFpblB0cjxXS0ltYWdlUmVmPiBtX3BpeGVsUmVzdWx0Owpk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3Rl
ZEJ1bmRsZVBhZ2UuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9J
bmplY3RlZEJ1bmRsZVBhZ2UuY3BwCmluZGV4IGRkNzkzNjYyZTAwNWQ2ZjU3YzQ2ZDVlMWE0YmY0
YTRlNWFlZmVlNDUuLmQxYjZjYjExOWI0ZTUxM2Y5OWU3NjQ0MjZhNjUwYTY5YzI0MWQxNzIgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRC
dW5kbGVQYWdlLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L0luamVjdGVkQnVuZGxlUGFnZS5jcHAKQEAgLTE0NjEsNyArMTQ2MSwxMSBAQCB2b2lkIEluamVj
dGVkQnVuZGxlUGFnZTo6d2lsbEFkZE1lc3NhZ2VUb0NvbnNvbGUoV0tTdHJpbmdSZWYgbWVzc2Fn
ZSwgdWludDMyX3QgbAogICAgIH0KICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZChtZXNzYWdlU3Ry
aW5nKTsKICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCgnXG4nKTsKLSAgICBpbmplY3RlZEJ1bmRs
ZS5vdXRwdXRUZXh0KHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKSk7CisKKyAgICBpZiAoaW5qZWN0
ZWRCdW5kbGUuZHVtcEpTQ29uc29sZUxvZ0luU3RkRXJyKCkpCisgICAgICAgIGluamVjdGVkQnVu
ZGxlLmR1bXBUb1N0ZEVycihzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkpOworICAgIGVsc2UKKyAg
ICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dChzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCkp
OwogfQogCiB2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6d2lsbFNldFN0YXR1c2JhclRleHQoV0tT
dHJpbmdSZWYgc3RhdHVzYmFyVGV4dCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvVGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJv
bGxlci5jcHAKaW5kZXggZDBiYzI0OTAwYWRmMTAxZjQyN2QwNzlkMzFmNjM2YzEwMGQxZWY3OS4u
ZmI1OGI1N2ZjM2U5OGExMDFhYTBjMjVlZGZkMzMwMDk5ZmVjNTZhMiAxMDA2NDQKLS0tIGEvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKQEAgLTEwMjIsMTIgKzEwMjIsMTEgQEAgdm9p
ZCBUZXN0Q29udHJvbGxlcjo6Y29uZmlndXJlVmlld0ZvclRlc3QoY29uc3QgVGVzdEludm9jYXRp
b24mIHRlc3QpCiB9CiAKIHN0cnVjdCBUZXN0Q29tbWFuZCB7Ci0gICAgVGVzdENvbW1hbmQoKSA6
IHNob3VsZER1bXBQaXhlbHMoZmFsc2UpLCB0aW1lb3V0KDApIHsgfQotCiAgICAgc3RkOjpzdHJp
bmcgcGF0aE9yVVJMOwotICAgIGJvb2wgc2hvdWxkRHVtcFBpeGVsczsKKyAgICBib29sIHNob3Vs
ZER1bXBQaXhlbHMgeyBmYWxzZSB9OwogICAgIHN0ZDo6c3RyaW5nIGV4cGVjdGVkUGl4ZWxIYXNo
OwotICAgIGludCB0aW1lb3V0OworICAgIGludCB0aW1lb3V0IHsgMCB9OworICAgIGJvb2wgZHVt
cEpTQ29uc29sZUxvZ0luU3RkRXJyIHsgZmFsc2UgfTsKIH07CiAKIGNsYXNzIENvbW1hbmRUb2tl
bml6ZXIgewpAQCAtMTEwMCw3ICsxMDk5LDkgQEAgVGVzdENvbW1hbmQgcGFyc2VJbnB1dExpbmUo
Y29uc3Qgc3RkOjpzdHJpbmcmIGlucHV0TGluZSkKICAgICAgICAgICAgIHJlc3VsdC5zaG91bGRE
dW1wUGl4ZWxzID0gdHJ1ZTsKICAgICAgICAgICAgIGlmICh0b2tlbml6ZXIuaGFzTmV4dCgpKQog
ICAgICAgICAgICAgICAgIHJlc3VsdC5leHBlY3RlZFBpeGVsSGFzaCA9IHRva2VuaXplci5uZXh0
KCk7Ci0gICAgICAgIH0gZWxzZQorICAgICAgICB9IGVsc2UgaWYgKGFyZyA9PSBzdGQ6OnN0cmlu
ZygiLS1kdW1wLWpzY29uc29sZWxvZy1pbi1zdGRlcnIiKSkKKyAgICAgICAgICAgIHJlc3VsdC5k
dW1wSlNDb25zb2xlTG9nSW5TdGRFcnIgPSB0cnVlOworICAgICAgICBlbHNlCiAgICAgICAgICAg
ICBkaWUoaW5wdXRMaW5lKTsKICAgICB9CiAgICAgcmV0dXJuIHJlc3VsdDsKQEAgLTExMjIsNiAr
MTEyMyw3IEBAIGJvb2wgVGVzdENvbnRyb2xsZXI6OnJ1blRlc3QoY29uc3QgY2hhciogaW5wdXRM
aW5lKQogICAgICAgICBtX2N1cnJlbnRJbnZvY2F0aW9uLT5zZXRJc1BpeGVsVGVzdChjb21tYW5k
LmV4cGVjdGVkUGl4ZWxIYXNoKTsKICAgICBpZiAoY29tbWFuZC50aW1lb3V0ID4gMCkKICAgICAg
ICAgbV9jdXJyZW50SW52b2NhdGlvbi0+c2V0Q3VzdG9tVGltZW91dChjb21tYW5kLnRpbWVvdXQp
OworICAgIG1fY3VycmVudEludm9jYXRpb24tPnNldER1bXBKU0NvbnNvbGVMb2dJblN0ZEVycihj
b21tYW5kLmR1bXBKU0NvbnNvbGVMb2dJblN0ZEVycik7CiAKICAgICBwbGF0Zm9ybVdpbGxSdW5U
ZXN0KCptX2N1cnJlbnRJbnZvY2F0aW9uKTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJ
bnZvY2F0aW9uLmNwcAppbmRleCA1ZWQ3ZGU1MzZlMzE5NjZiYzMwOGU3YWFhMTJjN2RmZGM3NmVi
YWE5Li42ODRmOWVkN2E3NDMyMDc1ODExMDYwNTZiMDEzMzgwNzlmNDA0MzJmIDEwMDY0NAotLS0g
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcAorKysgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcApAQCAtMTU5LDYgKzE1OSwxMCBAQCB2
b2lkIFRlc3RJbnZvY2F0aW9uOjppbnZva2UoKQogICAgIFdLUmV0YWluUHRyPFdLVUludDY0UmVm
PiB0aW1lb3V0VmFsdWUgPSBhZG9wdFdLKFdLVUludDY0Q3JlYXRlKG1fdGltZW91dCkpOwogICAg
IFdLRGljdGlvbmFyeVNldEl0ZW0oYmVnaW5UZXN0TWVzc2FnZUJvZHkuZ2V0KCksIHRpbWVvdXRL
ZXkuZ2V0KCksIHRpbWVvdXRWYWx1ZS5nZXQoKSk7CiAKKyAgICBXS1JldGFpblB0cjxXS1N0cmlu
Z1JlZj4gZHVtcEpTQ29uc29sZUxvZ0luU3RkRXJyS2V5ID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0
ZVdpdGhVVEY4Q1N0cmluZygiRHVtcEpTQ29uc29sZUxvZ0luU3RkRXJyIikpOworICAgIFdLUmV0
YWluUHRyPFdLQm9vbGVhblJlZj4gZHVtcEpTQ29uc29sZUxvZ0luU3RkRXJyVmFsdWUgPSBhZG9w
dFdLKFdLQm9vbGVhbkNyZWF0ZShtX2R1bXBKU0NvbnNvbGVMb2dJblN0ZEVycikpOworICAgIFdL
RGljdGlvbmFyeVNldEl0ZW0oYmVnaW5UZXN0TWVzc2FnZUJvZHkuZ2V0KCksIGR1bXBKU0NvbnNv
bGVMb2dJblN0ZEVycktleS5nZXQoKSwgZHVtcEpTQ29uc29sZUxvZ0luU3RkRXJyVmFsdWUuZ2V0
KCkpOworCiAgICAgV0tQYWdlUG9zdE1lc3NhZ2VUb0luamVjdGVkQnVuZGxlKFRlc3RDb250cm9s
bGVyOjpzaW5nbGV0b24oKS5tYWluV2ViVmlldygpLT5wYWdlKCksIG1lc3NhZ2VOYW1lLmdldCgp
LCBiZWdpblRlc3RNZXNzYWdlQm9keS5nZXQoKSk7CiAKICAgICBib29sIHNob3VsZE9wZW5FeHRl
cm5hbFVSTHMgPSBmYWxzZTsKQEAgLTM3MSw2ICszNzUsMTMgQEAgdm9pZCBUZXN0SW52b2NhdGlv
bjo6ZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUoV0tTdHJpbmdSZWYgbWVzc2Fn
ZU5hbWUKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAgIGlmIChXS1N0cmluZ0lzRXF1YWxU
b1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiRHVtcFRvU3RkRXJyIikpIHsKKyAgICAgICAgQVNT
RVJUKFdLR2V0VHlwZUlEKG1lc3NhZ2VCb2R5KSA9PSBXS1N0cmluZ0dldFR5cGVJRCgpKTsKKyAg
ICAgICAgV0tTdHJpbmdSZWYgdGV4dE91dHB1dCA9IHN0YXRpY19jYXN0PFdLU3RyaW5nUmVmPiht
ZXNzYWdlQm9keSk7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAiJXMiLCB0b1dURlN0cmluZyh0
ZXh0T3V0cHV0KS51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAg
IGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiQmVmb3JlVW5s
b2FkUmV0dXJuVmFsdWUiKSkgewogICAgICAgICBBU1NFUlQoV0tHZXRUeXBlSUQobWVzc2FnZUJv
ZHkpID09IFdLQm9vbGVhbkdldFR5cGVJRCgpKTsKICAgICAgICAgV0tCb29sZWFuUmVmIGJlZm9y
ZVVubG9hZFJldHVyblZhbHVlID0gc3RhdGljX2Nhc3Q8V0tCb29sZWFuUmVmPihtZXNzYWdlQm9k
eSk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmgg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmgKaW5kZXggMWI2YzVmZWI2
NTM4NjZkMzEzMzE4ZDA0ZDgyYjY5MTQ2YjA4Njk4ZC4uZGY1ODg1YzdlYjVjOWZkODhjYzg3ZDc1
ZDA2YmJiNDc5MDgwNzQwYyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0
SW52b2NhdGlvbi5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24u
aApAQCAtNTEsNiArNTEsNyBAQCBwdWJsaWM6CiAKICAgICAvLyBNaWxsaXNlY29uZHMKICAgICB2
b2lkIHNldEN1c3RvbVRpbWVvdXQoaW50IGR1cmF0aW9uKSB7IG1fdGltZW91dCA9IGR1cmF0aW9u
OyB9CisgICAgdm9pZCBzZXREdW1wSlNDb25zb2xlTG9nSW5TdGRFcnIoYm9vbCB2YWx1ZSkgeyBt
X2R1bXBKU0NvbnNvbGVMb2dJblN0ZEVyciA9IHZhbHVlOyB9CiAKICAgICAvLyBTZWNvbmRzCiAg
ICAgZG91YmxlIHNob3J0VGltZW91dCgpIGNvbnN0OwpAQCAtMTAyLDYgKzEwMyw3IEBAIHByaXZh
dGU6CiAgICAgc3RkOjpzdHJpbmcgbV9leHBlY3RlZFBpeGVsSGFzaDsKIAogICAgIGludCBtX3Rp
bWVvdXQgeyAwIH07CisgICAgYm9vbCBtX2R1bXBKU0NvbnNvbGVMb2dJblN0ZEVyciB7IGZhbHNl
IH07CiAKICAgICAvLyBJbnZvY2F0aW9uIHN0YXRlCiAgICAgYm9vbCBtX2dvdEluaXRpYWxSZXNw
b25zZSB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNTM3MGE2MzEzMmM1ZTE0YmRiYWYyOTFmYjY2YmZmMWU1
MDk5ZTk0Ny4uZmQ5MWM2NzMwM2U3OGZiZDgyZGIzNzEyNDA5ZTBiOGJlOWQwMWU3OCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDEyIEBACisyMDE2LTEyLTEzICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxl
LmNvbT4KKworICAgICAgICBUZXN0IGluZnJhc3RydWN0dXJlIHNob3VsZCBhbGxvdyB0byBmaWx0
ZXIgb3V0IHRleHQgb3V0cHV0IGJlZm9yZSBkb2luZyBhIGNvbXBhcmlzb24gd2l0aCB0aGUgYmFz
ZWxpbmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2
MTMxMAorCisgICAgICAgIFJldmlld2VkIGJ5IFJ5b3N1a2UgTml3YS4KKworICAgICAgICAqIFRl
c3RFeHBlY3RhdGlvbnM6IEFkZGluZyBEdW1wSlNDb25zb2xlTG9nSW5TdGRFcnIgdG8gdGhlIGZl
dGNoIG1vZGlmaWVkIHRlc3QgdG8gZW5zdXJlIHRoaXMgbW9kaWZpZXIgd29ya3MgYXMgZXhwZWN0
ZWQuCisKIDIwMTYtMTItMTIgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAg
ICAgIFJlbW92ZSBiaW5kaW5ncyBnZW5lcmF0aW9uIHN1cHBvcnQgZm9yIGxlZ2FjeSBXZWJDb3Jl
OjpEaWN0aW9uYXJ5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdl
TG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCA5MTM2Y2MyOWU5
Njk4Zjg4MGZkM2U2Y2ZhZTRlMTYxNzZmMmQ5MWIzLi45Y2M0Zjk3OTI3NDQwZjc2MjMyMGQwNjQ5
NTBmNzM5ZTZmZGQ3ZGYyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hh
bmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxMiBAQAorMjAxNi0xMi0xMyAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisK
KyAgICAgICAgVGVzdCBpbmZyYXN0cnVjdHVyZSBzaG91bGQgYWxsb3cgdG8gZmlsdGVyIG91dCB0
ZXh0IG91dHB1dCBiZWZvcmUgZG9pbmcgYSBjb21wYXJpc29uIHdpdGggdGhlIGJhc2VsaW5lCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjEzMTAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBSeW9zdWtlIE5pd2EuCisKKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvYXBpL2NvcnMvY29ycy1wcmVmbGlnaHQuaHRtbDogQWRkaW5nIGEgY29u
c29sZSBsb2cgbGluZSB0byBlbnN1cmUgdGhlIER1bXBKU0NvbnNvbGVMb2dJblN0ZEVyciBtb2Rp
ZmllciB3b3Jrcy4KKwogMjAxNi0xMi0xMiAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+
CiAKICAgICAgICAgUmVtb3ZlIGJpbmRpbmdzIGdlbmVyYXRpb24gc3VwcG9ydCBmb3IgbGVnYWN5
IFdlYkNvcmU6OkRpY3Rpb25hcnkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3Rh
dGlvbnMgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDFlMjQwOTA4YTcwNzI4
NjQ2YzUyNDFhMzg2ZjlhZGY2MWU1NWQwYjYuLjZiMGM3ZGM3YTNhOGJmOTlhZDc3OTUwZjQ1YTFm
NTZmYWQwZWQzMzcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKKysr
IGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMjk1LDYgKzI5NSw4IEBAIHdlYmtp
dC5vcmcvYi8xNTcwNjggaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9ub3Nu
aWZmL2ltcG9ydHNjcmlwdHMuCiB3ZWJraXQub3JnL2IvMTU3MTQ1IGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvbm9zbmlmZi9zdHlsZXNoZWV0Lmh0bWwgWyBGYWlsdXJlIFBh
c3MgXQogd2Via2l0Lm9yZy9iLzE2MTMxMiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvc2VtYW50aWNzL2RvY3VtZW50LW1ldGFkYXRhL3RoZS1saW5rLWVsZW1lbnQvZG9jdW1l
bnQtd2l0aG91dC1icm93c2luZy1jb250ZXh0Lmh0bWwgWyBGYWlsdXJlIFBhc3MgXQogCitpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9jb3JzL2NvcnMtcHJlZmxpZ2h0
Lmh0bWwgWyBEdW1wSlNDb25zb2xlTG9nSW5TdGRFcnIgXQorCiB3ZWJraXQub3JnL2IvMTU5NzI0
IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3Qvc2VuZC1yZWRp
cmVjdC1wb3N0LXVwbG9hZC5odG0gWyBGYWlsdXJlIFBhc3MgXQogCiAjIE5ldyBXM0MgcmVmIHRl
c3RzIHRoYXQgYXJlIGZhaWxpbmcuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9jb3JzL2NvcnMtcHJlZmxpZ2h0Lmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9j
b3JzL2NvcnMtcHJlZmxpZ2h0Lmh0bWwKaW5kZXggMDM2ZjJmNTE1ZWQyMDU3ZmNkYmFiODYzOTc0
ZDg1NDVkNzQwYTQxOS4uZTNiMTM1MjQ5MWI3MjZlYmJhYTBkZDY0YWMwYmUwZTFlNzgxYjViMSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9hcGkvY29ycy9jb3JzLXByZWZsaWdodC5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2NvcnMvY29ycy1wcmVmbGlnaHQu
aHRtbApAQCAtMTYsNiArMTYsMTEgQEAKICAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3V0
aWxzLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iL2NvbW1vbi9nZXQtaG9zdC1pbmZv
LnN1Yi5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ii9jb21tb24vdXRpbHMuanMiPjwv
c2NyaXB0PgorICAgIDxzY3JpcHQ+CisvLyBUbyBiZSByZW1vdmVkLCBzZWUgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MTMxMAorY29uc29sZS5sb2coIkRvaW5nIHNv
bWUgbG9nZ2luZyBvbmNlIikKK2NvbnNvbGUubG9nKCJEb2luZyBzb21lIGxvZ2dpbmcgYWdhaW4i
KQorICAgIDwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJjb3JzLXByZWZsaWdodC5qcyI+PC9z
Y3JpcHQ+CiAgIDwvYm9keT4KIDwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>297079</attachid>
            <date>2016-12-14 03:12:05 -0800</date>
            <delta_ts>2016-12-14 04:23:22 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-161310-20161214121113.patch</filename>
            <type>text/plain</type>
            <size>32146</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA5NzUyCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMmEyNjBiNDMwYTk4ZGJiZjE5MjMzOWU4OWQyODhkM2Q4
ZDEyNDFjMy4uYzlmYjI5NjYxNzU5ZTdkMGZiZDcyZDZkMDQwNjU1ODYyNmFmNzY1NCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2
IEBACisyMDE2LTEyLTEzICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAg
ICAgICBUZXN0IGluZnJhc3RydWN0dXJlIHNob3VsZCBhbGxvdyB0byBmaWx0ZXIgb3V0IHRleHQg
b3V0cHV0IGJlZm9yZSBkb2luZyBhIGNvbXBhcmlzb24gd2l0aCB0aGUgYmFzZWxpbmUKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MTMxMAorCisgICAg
ICAgIFJldmlld2VkIGJ5IFJ5b3N1a2UgTml3YS4KKworICAgICAgICBBZGRpbmcgLS1kdW1wLWpz
Y29uc29sZWxvZy1pbi1zdGRlcnIgdGVzdCBvcHRpb24gZm9yIERSVCBhbmQgV1RSLgorICAgICAg
ICBXaGVuIHNldCwgV1RSIGFuZCBEUlQgb3V0cHV0IEpTIGNvbnNvbGUgbG9nIGluIHRoZSBzdGRl
cnIgYW5kIG5vdCB0aGUgdGVzdCBvdXRwdXQuCisgICAgICAgIFRoaXMgYWxsb3dzIHJlbW92aW5n
IHBvdGVudGlhbGx5IGZsYWt5IGluZm9ybWF0aW9uIHdoaWxlIHN0aWxsIGJlaW5nIGFibGUgdG8g
cmVhZCBpdCBmb3IgaW52ZXN0aWdhdGlvbi4KKworICAgICAgICBVcGRhdGVkIHdlYmtpdHB5IGlu
ZnJhc3RydWN0dXJlIHRvIHVzZSB0aGlzIHRlc3Qgb3B0aW9uIGluIGNhc2Ugb2YgRHVtcEpTQ29u
c29sZUxvZ0luU3RkRXJyIG1vZGlmaWVyLgorCisgICAgICAgIENoYW5nZXMgYXJlIGNvdmVyZWQg
YnkgdXBkYXRpbmcgYSBmZXRjaCB0ZXN0IHRvIG91dHB1dCBjb25zb2xlIGxvZyBhbmQgc2V0IGl0
cyBvcHRpb24gdG8gLS1kdW1wLWpzY29uc29sZWxvZy1pbi1zdGRlcnIgaW4gVGVzdEV4cGVjdGF0
aW9ucy4KKyAgICAgICAgVGhpcyB0ZXN0IHNob3VsZCBoYXZlIHRoaXMgb3B0aW9uIHdoZW4gZmV0
Y2ggQVBJIHdpbGwgc3RhcnQgbG9nZ2luZyByZXNvdXJjZSBsb2FkZXIgZXJyb3JzLgorCisgICAg
ICAgICogRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWUuaDoKKyAgICAgICAgKFRlc3RDb21t
YW5kOjpUZXN0Q29tbWFuZCk6IERlbGV0ZWQuCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvRHVt
cFJlbmRlclRyZWVDb21tb24uY3BwOgorICAgICAgICAocGFyc2VJbnB1dExpbmUpOgorICAgICAg
ICAqIER1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuaDoKKyAgICAgICAgKFRlc3RSdW5uZXI6OnNl
dER1bXBKU0NvbnNvbGVMb2dJblN0ZEVycik6CisgICAgICAgIChUZXN0UnVubmVyOjpkdW1wSlND
b25zb2xlTG9nSW5TdGRFcnIpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVu
ZGVyVHJlZS5tbToKKyAgICAgICAgKHJ1blRlc3QpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVl
L21hYy9VSURlbGVnYXRlLm1tOgorICAgICAgICAoLVtVSURlbGVnYXRlIHdlYlZpZXc6YWRkTWVz
c2FnZVRvQ29uc29sZTp3aXRoU291cmNlOl0pOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3dp
bi9EdW1wUmVuZGVyVHJlZS5jcHA6CisgICAgICAgIChydW5UZXN0KToKKyAgICAgICAgKiBEdW1w
UmVuZGVyVHJlZS93aW4vVUlEZWxlZ2F0ZS5jcHA6CisgICAgICAgIChVSURlbGVnYXRlOjp3ZWJW
aWV3QWRkTWVzc2FnZVRvQ29uc29sZSk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvbW9kZWxzL3Rlc3RfZXhwZWN0YXRpb25zLnB5OgorICAgICAgICAoVGVzdEV4cGVj
dGF0aW9uUGFyc2VyLl90b2tlbml6ZV9saW5lKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5
L3BvcnQvZHJpdmVyLnB5OgorICAgICAgICAoRHJpdmVyLl9jb21tYW5kX2Zyb21fZHJpdmVyX2lu
cHV0KToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVk
QnVuZGxlLmNwcDoKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGU6OmRpZFJlY2VpdmVNZXNz
YWdlVG9QYWdlKToKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGU6OmR1bXBUb1N0ZEVycik6
CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRs
ZS5oOgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZTo6ZHVtcEpTQ29uc29sZUxvZ0luU3Rk
RXJyKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVk
QnVuZGxlUGFnZS5jcHA6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6d2lsbEFk
ZE1lc3NhZ2VUb0NvbnNvbGUpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRy
b2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpwYXJzZUlucHV0TGluZSk6CisgICAgICAgIChXVFI6
OlRlc3RDb250cm9sbGVyOjpydW5UZXN0KToKKyAgICAgICAgKFdUUjo6VGVzdENvbW1hbmQ6OlRl
c3RDb21tYW5kKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZv
Y2F0aW9uLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdEludm9jYXRpb246Omludm9rZSk6CisgICAg
ICAgIChXVFI6OlRlc3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZlTWVzc2FnZUZyb21JbmplY3RlZEJ1
bmRsZSk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5oOgorICAg
ICAgICAoV1RSOjpUZXN0SW52b2NhdGlvbjo6c2V0RHVtcEpTQ29uc29sZUxvZ0luU3RkRXJyKToK
KworCiAyMDE2LTEyLTA4ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAg
ICAgICBFbmFibGUgbmV0d29yayBjYWNoZSBzcGVjdWxhdGl2ZSByZXZhbGlkYXRpb24gaW4gTWlu
aUJyb3dzZXIKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVl
LmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZS5oCmluZGV4IDMwNDIzMmJl
ODBkZTA0NGZhMzBkM2VlM2NmNTFkYzlkMzUxY2E0NTUuLjQ0YWEyYmZhNWJjNWU0MzdjODM0YTY1
ZjhlNzNmYWMxYjZkMmYxZDggMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBS
ZW5kZXJUcmVlLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWUuaApA
QCAtNTcsMTIgKzU3LDExIEBAIHZvaWQgZHVtcCgpOwogdm9pZCBkaXNwbGF5V2ViVmlldygpOwog
CiBzdHJ1Y3QgVGVzdENvbW1hbmQgewotICAgIFRlc3RDb21tYW5kKCkgOiBzaG91bGREdW1wUGl4
ZWxzKGZhbHNlKSwgdGltZW91dCgzMDAwMCkgeyB9Ci0KICAgICBzdGQ6OnN0cmluZyBwYXRoT3JV
Ukw7Ci0gICAgYm9vbCBzaG91bGREdW1wUGl4ZWxzOworICAgIGJvb2wgc2hvdWxkRHVtcFBpeGVs
cyB7IGZhbHNlIH07CiAgICAgc3RkOjpzdHJpbmcgZXhwZWN0ZWRQaXhlbEhhc2g7Ci0gICAgaW50
IHRpbWVvdXQ7IC8vIGluIG1zCisgICAgaW50IHRpbWVvdXQgeyAzMDAwMCB9OyAvLyBpbiBtcwor
ICAgIGJvb2wgZHVtcEpTQ29uc29sZUxvZ0luU3RkRXJyIHsgZmFsc2UgfTsKIH07CiAKIFRlc3RD
b21tYW5kIHBhcnNlSW5wdXRMaW5lKGNvbnN0IHN0ZDo6c3RyaW5nJik7CmRpZmYgLS1naXQgYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZUNvbW1vbi5jcHAgYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZUNvbW1vbi5jcHAKaW5kZXggM2NiOTdlYmZkMjhkODU5
YzBiNjFhN2M0NmQ0NTkwMDZhNjY4YWM2ZC4uNWY2NDg5NDY2YTc0MDc3YTRkZmYzYWNkMzQzYmY5
NGZlMzc5NWNkMSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRy
ZWVDb21tb24uY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlQ29t
bW9uLmNwcApAQCAtMSwzICsxLDI4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxl
IEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKwogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkR1bXBSZW5kZXJU
cmVlLmgiCiAKQEAgLTcwLDE0ICs5NSwxNiBAQCBUZXN0Q29tbWFuZCBwYXJzZUlucHV0TGluZShj
b25zdCBzdGQ6OnN0cmluZyYgaW5wdXRMaW5lKQogICAgIHJlc3VsdC5wYXRoT3JVUkwgPSBhcmc7
CiAgICAgd2hpbGUgKHRva2VuaXplci5oYXNOZXh0KCkpIHsKICAgICAgICAgYXJnID0gdG9rZW5p
emVyLm5leHQoKTsKLSAgICAgICAgaWYgKGFyZyA9PSBzdGQ6OnN0cmluZygiLS10aW1lb3V0Iikp
IHsKKyAgICAgICAgaWYgKGFyZyA9PSAiLS10aW1lb3V0IikgewogICAgICAgICAgICAgc3RkOjpz
dHJpbmcgdGltZW91dFRva2VuID0gdG9rZW5pemVyLm5leHQoKTsKICAgICAgICAgICAgIHJlc3Vs
dC50aW1lb3V0ID0gYXRvaSh0aW1lb3V0VG9rZW4uY19zdHIoKSk7Ci0gICAgICAgIH0gZWxzZSBp
ZiAoYXJnID09IHN0ZDo6c3RyaW5nKCItcCIpIHx8IGFyZyA9PSBzdGQ6OnN0cmluZygiLS1waXhl
bC10ZXN0IikpIHsKKyAgICAgICAgfSBlbHNlIGlmIChhcmcgPT0gIi1wIiB8fCBhcmcgPT0gIi0t
cGl4ZWwtdGVzdCIpIHsKICAgICAgICAgICAgIHJlc3VsdC5zaG91bGREdW1wUGl4ZWxzID0gdHJ1
ZTsKICAgICAgICAgICAgIGlmICh0b2tlbml6ZXIuaGFzTmV4dCgpKQogICAgICAgICAgICAgICAg
IHJlc3VsdC5leHBlY3RlZFBpeGVsSGFzaCA9IHRva2VuaXplci5uZXh0KCk7Ci0gICAgICAgIH0g
ZWxzZQorICAgICAgICB9IGVsc2UgaWYgKGFyZyA9PSAiLS1kdW1wLWpzY29uc29sZWxvZy1pbi1z
dGRlcnIiKQorICAgICAgICAgICAgcmVzdWx0LmR1bXBKU0NvbnNvbGVMb2dJblN0ZEVyciA9IHRy
dWU7CisgICAgICAgIGVsc2UKICAgICAgICAgICAgIGRpZShpbnB1dExpbmUpOwogICAgIH0KIApk
aWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5oIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvVGVzdFJ1bm5lci5oCmluZGV4IGE4ZDQ5YzZjMjExNTcwYjE3NDVkMmU5MjZk
ZDYyMjliMjI0NmIyZjAuLjFkM2E1YzI2NDNjN2EyNTZkYTVlNjUxZWFkZDJhNDI4MjFjMzJhNWYg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuaAorKysgYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmgKQEAgLTM2Nyw5ICszNjcsMTIgQEAgcHVibGlj
OgogICAgIGRvdWJsZSB0aW1lb3V0KCkgeyByZXR1cm4gbV90aW1lb3V0OyB9CiAKICAgICB1bnNp
Z25lZCBpbWFnZUNvdW50SW5HZW5lcmFsUGFzdGVib2FyZCgpIGNvbnN0OwotICAgIAorCiAgICAg
dm9pZCBjYWxsVUlTY3JpcHRDYWxsYmFjayh1bnNpZ25lZCBjYWxsYmFja0lELCBKU1N0cmluZ1Jl
ZiByZXN1bHQpOwogCisgICAgdm9pZCBzZXREdW1wSlNDb25zb2xlTG9nSW5TdGRFcnIoYm9vbCBp
blN0ZEVycikgeyBtX2R1bXBKU0NvbnNvbGVMb2dJblN0ZEVyciA9IGluU3RkRXJyOyB9CisgICAg
Ym9vbCBkdW1wSlNDb25zb2xlTG9nSW5TdGRFcnIoKSBjb25zdCB7IHJldHVybiBtX2R1bXBKU0Nv
bnNvbGVMb2dJblN0ZEVycjsgfQorCiBwcml2YXRlOgogICAgIFRlc3RSdW5uZXIoY29uc3Qgc3Rk
OjpzdHJpbmcmIHRlc3RVUkwsIGNvbnN0IHN0ZDo6c3RyaW5nJiBleHBlY3RlZFBpeGVsSGFzaCk7
CiAKQEAgLTQzNCw2ICs0MzcsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9hcmVMZWdhY3lXZWJO
b3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdHNJZ25vcmVkOwogICAgIGJvb2wgbV9jdXN0b21G
dWxsU2NyZWVuQmVoYXZpb3I7CiAgICAgYm9vbCBtX2hhc1BlbmRpbmdXZWJOb3RpZmljYXRpb25D
bGljazsKKyAgICBib29sIG1fZHVtcEpTQ29uc29sZUxvZ0luU3RkRXJyIHsgZmFsc2UgfTsKIAog
ICAgIGRvdWJsZSBtX2RhdGFiYXNlRGVmYXVsdFF1b3RhOwogICAgIGRvdWJsZSBtX2RhdGFiYXNl
TWF4UXVvdGE7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRl
clRyZWUubW0gYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KaW5k
ZXggYjA5NTZmOWFhMjdiNjhiYTY4YThlNjRhMDM5MmM2ZDBmZWM2NGFhOC4uODQ2ODY3YjM4YTk3
ZDc5MjRlMTMyYmI0ZGY1NjgyYzEwYjgyODIzYSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21h
Yy9EdW1wUmVuZGVyVHJlZS5tbQpAQCAtMjAwMSw2ICsyMDAxLDcgQEAgc3RhdGljIHZvaWQgcnVu
VGVzdChjb25zdCBzdHJpbmcmIGlucHV0TGluZSkKICAgICBnVGVzdFJ1bm5lciA9IFRlc3RSdW5u
ZXI6OmNyZWF0ZSh0ZXN0VVJMLCBjb21tYW5kLmV4cGVjdGVkUGl4ZWxIYXNoKTsKICAgICBnVGVz
dFJ1bm5lci0+c2V0QWxsb3dlZEhvc3RzKGFsbG93ZWRIb3N0cyk7CiAgICAgZ1Rlc3RSdW5uZXIt
PnNldEN1c3RvbVRpbWVvdXQoY29tbWFuZC50aW1lb3V0KTsKKyAgICBnVGVzdFJ1bm5lci0+c2V0
RHVtcEpTQ29uc29sZUxvZ0luU3RkRXJyKGNvbW1hbmQuZHVtcEpTQ29uc29sZUxvZ0luU3RkRXJy
KTsKICAgICB0b3BMb2FkaW5nRnJhbWUgPSBuaWw7CiAjaWYgIVBMQVRGT1JNKElPUykKICAgICBB
U1NFUlQoIWRyYWdnaW5nSW5mbyk7IC8vIHRoZSBwcmV2aW91cyB0ZXN0IHNob3VsZCBoYXZlIGNh
bGxlZCBldmVudFNlbmRlci5tb3VzZVVwIHRvIGRyb3AhCmRpZmYgLS1naXQgYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9tYWMvVUlEZWxlZ2F0ZS5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9V
SURlbGVnYXRlLm1tCmluZGV4IDE4YTU4Y2UzODgwOTFkYTA3NDQ0OWIxMzVkYjljYzYwZDcyYWQy
NjQuLmY4NmY1MjIwZmI2NDBhNWI4ZWY4MmJlNjZjMmQ5NzU4YmY1ZTFlYjggMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9VSURlbGVnYXRlLm1tCisrKyBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL21hYy9VSURlbGVnYXRlLm1tCkBAIC04MiwxMCArODIsMTEgQEAgRHVtcFJlbmRl
clRyZWVEcmFnZ2luZ0luZm8gKmRyYWdnaW5nSW5mbyA9IG5pbDsKICAgICBpZiAocmFuZ2UubG9j
YXRpb24gIT0gTlNOb3RGb3VuZCkKICAgICAgICAgbWVzc2FnZSA9IFtbbWVzc2FnZSBzdWJzdHJp
bmdUb0luZGV4OnJhbmdlLmxvY2F0aW9uXSBzdHJpbmdCeUFwcGVuZGluZ1N0cmluZzpbW21lc3Nh
Z2Ugc3Vic3RyaW5nRnJvbUluZGV4Ok5TTWF4UmFuZ2UocmFuZ2UpXSBsYXN0UGF0aENvbXBvbmVu
dF1dOwogCi0gICAgcHJpbnRmICgiQ09OU09MRSBNRVNTQUdFOiAiKTsKKyAgICBhdXRvIG91dCA9
IGdUZXN0UnVubmVyLT5kdW1wSlNDb25zb2xlTG9nSW5TdGRFcnIoKSA/IHN0ZGVyciA6IHN0ZG91
dDsKKyAgICBmcHJpbnRmKG91dCwgIkNPTlNPTEUgTUVTU0FHRTogIik7CiAgICAgaWYgKFtsaW5l
TnVtYmVyIGludFZhbHVlXSkKLSAgICAgICAgcHJpbnRmICgibGluZSAlZDogIiwgW2xpbmVOdW1i
ZXIgaW50VmFsdWVdKTsKLSAgICBwcmludGYgKCIlc1xuIiwgW21lc3NhZ2UgVVRGOFN0cmluZ10p
OworICAgICAgICBmcHJpbnRmKG91dCwgImxpbmUgJWQ6ICIsIFtsaW5lTnVtYmVyIGludFZhbHVl
XSk7CisgICAgZnByaW50ZihvdXQsICIlc1xuIiwgW21lc3NhZ2UgVVRGOFN0cmluZ10pOwogfQog
CiAtICh2b2lkKW1vZGFsV2luZG93V2lsbENsb3NlOihOU05vdGlmaWNhdGlvbiAqKW5vdGlmaWNh
dGlvbgpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVl
LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHAKaW5kZXgg
NDkzZDhmMzFmM2MxZDE5MmQ0NDBhOWMxMjIxYzA2MDQ5YzdiOGFlYS4uZDQ1NGIxMTcxMjFjYTM5
NTNlYzc4MWQ4MjhhYjkzYzFhMzFkMzE3MiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4v
RHVtcFJlbmRlclRyZWUuY3BwCkBAIC0xMTIxLDYgKzExMjEsOCBAQCBzdGF0aWMgdm9pZCBydW5U
ZXN0KGNvbnN0IHN0cmluZyYgaW5wdXRMaW5lKQogCiAgICAgOjpnVGVzdFJ1bm5lciA9IFRlc3RS
dW5uZXI6OmNyZWF0ZSh0ZXN0VVJMLmRhdGEoKSwgY29tbWFuZC5leHBlY3RlZFBpeGVsSGFzaCk7
CiAgICAgOjpnVGVzdFJ1bm5lci0+c2V0Q3VzdG9tVGltZW91dChjb21tYW5kLnRpbWVvdXQpOwor
ICAgIDo6Z1Rlc3RSdW5uZXItPnNldER1bXBKU0NvbnNvbGVMb2dJblN0ZEVycihjb21tYW5kLmR1
bXBKU0NvbnNvbGVMb2dJblN0ZEVycik7CisKICAgICB0b3BMb2FkaW5nRnJhbWUgPSBudWxscHRy
OwogICAgIGRvbmUgPSBmYWxzZTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUv
d2luL1VJRGVsZWdhdGUuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL1VJRGVsZWdhdGUu
Y3BwCmluZGV4IGRkZDhlYWQ4ZDI0M2QwMmY0YWQ2M2Q1MjcxYjM0YjBhNjE4NGY3OGMuLmU2MGQ1
ZThkYmIzZWFkNDkwNDc4MTliODQzMGM4OTBmZmZmODMyYzcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL3dpbi9VSURlbGVnYXRlLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS93aW4vVUlEZWxlZ2F0ZS5jcHAKQEAgLTUwNywxMCArNTA3LDExIEBAIEhSRVNVTFQgVUlEZWxl
Z2F0ZTo6d2ViVmlld0FkZE1lc3NhZ2VUb0NvbnNvbGUoX0luX29wdF8gSVdlYlZpZXcqIC8qc2Vu
ZGVyKi8sIF9JCiAgICAgICAgICAgICBuZXdNZXNzYWdlID0gbmV3TWVzc2FnZS5zdWJzdHIoMCwg
ZmlsZVByb3RvY29sKSArIGxhc3RQYXRoQ29tcG9uZW50KG5ld01lc3NhZ2Uuc3Vic3RyKGZpbGVQ
cm90b2NvbCArIGZpbGVVUkwuc2l6ZSgpKSk7CiAgICAgfQogCi0gICAgcHJpbnRmKCJDT05TT0xF
IE1FU1NBR0U6ICIpOworICAgIGF1dG8gb3V0ID0gZ1Rlc3RSdW5uZXItPmR1bXBKU0NvbnNvbGVM
b2dJblN0ZEVycigpID8gc3RkZXJyIDogc3Rkb3V0OworICAgIGZwcmludGYob3V0LCAiQ09OU09M
RSBNRVNTQUdFOiAiKTsKICAgICBpZiAobGluZU51bWJlcikKLSAgICAgICAgcHJpbnRmKCJsaW5l
ICVkOiAiLCBsaW5lTnVtYmVyKTsKLSAgICBwcmludGYoIiVzXG4iLCB0b1VURjgobmV3TWVzc2Fn
ZSkuY19zdHIoKSk7CisgICAgICAgIGZwcmludGYob3V0LCAibGluZSAlZDogIiwgbGluZU51bWJl
cik7CisgICAgZnByaW50ZihvdXQsICIlc1xuIiwgdG9VVEY4KG5ld01lc3NhZ2UpLmNfc3RyKCkp
OwogICAgIHJldHVybiBTX09LOwogfQogCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9tYW5hZ2VyLnB5IGIvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvbWFuYWdlci5weQppbmRleCAwZTVhMzAz
N2M1MzJjODUxNjNmYjYwNjZmNzNhYTE2ZWQ3ZjM4ZmJiLi45ZTQxMmY0NDU1NWYyNDlkNDM4MmVh
MmYwMjllOTJlOGRkZTA1N2RkIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9jb250cm9sbGVycy9tYW5hZ2VyLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL21hbmFnZXIucHkKQEAgLTEzMSwxMyArMTMx
LDE3IEBAIGNsYXNzIE1hbmFnZXIob2JqZWN0KToKICAgICBkZWYgX3Rlc3RfaW5wdXRfZm9yX2Zp
bGUoc2VsZiwgdGVzdF9maWxlKToKICAgICAgICAgcmV0dXJuIFRlc3RJbnB1dCh0ZXN0X2ZpbGUs
CiAgICAgICAgICAgICBzZWxmLl9vcHRpb25zLnNsb3dfdGltZV9vdXRfbXMgaWYgc2VsZi5fdGVz
dF9pc19zbG93KHRlc3RfZmlsZSkgZWxzZSBzZWxmLl9vcHRpb25zLnRpbWVfb3V0X21zLAotICAg
ICAgICAgICAgc2VsZi5faXNfaHR0cF90ZXN0KHRlc3RfZmlsZSkpCisgICAgICAgICAgICBzZWxm
Ll9pc19odHRwX3Rlc3QodGVzdF9maWxlKSwKKyAgICAgICAgICAgIHNob3VsZF9kdW1wX2pzY29u
c29sZWxvZ19pbl9zdGRlcnI9c2VsZi5fdGVzdF9zaG91bGRfZHVtcF9qc2NvbnNvbGVsb2dfaW5f
c3RkZXJyKHRlc3RfZmlsZSkpCiAKICAgICBkZWYgX3Rlc3RfaXNfc2xvdyhzZWxmLCB0ZXN0X2Zp
bGUpOgogICAgICAgICBpZiBzZWxmLl9leHBlY3RhdGlvbnMubW9kZWwoKS5oYXNfbW9kaWZpZXIo
dGVzdF9maWxlLCB0ZXN0X2V4cGVjdGF0aW9ucy5TTE9XKToKICAgICAgICAgICAgIHJldHVybiBU
cnVlCiAgICAgICAgIHJldHVybiAic2xvdyIgaW4gc2VsZi5fdGVzdHNfb3B0aW9ucy5nZXQodGVz
dF9maWxlLCBbXSkKIAorICAgIGRlZiBfdGVzdF9zaG91bGRfZHVtcF9qc2NvbnNvbGVsb2dfaW5f
c3RkZXJyKHNlbGYsIHRlc3RfZmlsZSk6CisgICAgICAgIHJldHVybiBzZWxmLl9leHBlY3RhdGlv
bnMubW9kZWwoKS5oYXNfbW9kaWZpZXIodGVzdF9maWxlLCB0ZXN0X2V4cGVjdGF0aW9ucy5EVU1Q
SlNDT05TT0xFTE9HSU5TVERFUlIpCisKICAgICBkZWYgbmVlZHNfc2VydmVycyhzZWxmLCB0ZXN0
X25hbWVzKToKICAgICAgICAgcmV0dXJuIGFueShzZWxmLl9pc19odHRwX3Rlc3QodGVzdF9uYW1l
KSBmb3IgdGVzdF9uYW1lIGluIHRlc3RfbmFtZXMpIGFuZCBzZWxmLl9vcHRpb25zLmh0dHAKIApk
aWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxl
cnMvc2luZ2xlX3Rlc3RfcnVubmVyLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvY29udHJvbGxlcnMvc2luZ2xlX3Rlc3RfcnVubmVyLnB5CmluZGV4IGU4NTgzNTI0NzAz
ZTJiZjM4NmFlZDhkZmRmNjY2NTcwZGU4ZjhhMmUuLjUwMjhhZTdlMzZjZGE2NzBjOTUyZmJlOGI3
MzRmMjBiNzJmMWRlMzUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL2NvbnRyb2xsZXJzL3NpbmdsZV90ZXN0X3J1bm5lci5weQorKysgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9zaW5nbGVfdGVzdF9ydW5uZXIu
cHkKQEAgLTU4LDYgKzU4LDcgQEAgY2xhc3MgU2luZ2xlVGVzdFJ1bm5lcihvYmplY3QpOgogICAg
ICAgICBzZWxmLl93b3JrZXJfbmFtZSA9IHdvcmtlcl9uYW1lCiAgICAgICAgIHNlbGYuX3Rlc3Rf
bmFtZSA9IHRlc3RfaW5wdXQudGVzdF9uYW1lCiAgICAgICAgIHNlbGYuX3Nob3VsZF9ydW5fcGl4
ZWxfdGVzdCA9IHRlc3RfaW5wdXQuc2hvdWxkX3J1bl9waXhlbF90ZXN0CisgICAgICAgIHNlbGYu
X3Nob3VsZF9kdW1wX2pzY29uc29sZWxvZ19pbl9zdGRlcnIgPSB0ZXN0X2lucHV0LnNob3VsZF9k
dW1wX2pzY29uc29sZWxvZ19pbl9zdGRlcnIKICAgICAgICAgc2VsZi5fcmVmZXJlbmNlX2ZpbGVz
ID0gdGVzdF9pbnB1dC5yZWZlcmVuY2VfZmlsZXMKICAgICAgICAgc2VsZi5fc3RvcF93aGVuX2Rv
bmUgPSBzdG9wX3doZW5fZG9uZQogICAgICAgICBzZWxmLl90aW1lb3V0ID0gdGVzdF9pbnB1dC50
aW1lb3V0CkBAIC04OSw3ICs5MCw3IEBAIGNsYXNzIFNpbmdsZVRlc3RSdW5uZXIob2JqZWN0KToK
ICAgICAgICAgaW1hZ2VfaGFzaCA9IE5vbmUKICAgICAgICAgaWYgc2VsZi5fc2hvdWxkX2ZldGNo
X2V4cGVjdGVkX2NoZWNrc3VtKCk6CiAgICAgICAgICAgICBpbWFnZV9oYXNoID0gc2VsZi5fcG9y
dC5leHBlY3RlZF9jaGVja3N1bShzZWxmLl90ZXN0X25hbWUpCi0gICAgICAgIHJldHVybiBEcml2
ZXJJbnB1dChzZWxmLl90ZXN0X25hbWUsIHNlbGYuX3RpbWVvdXQsIGltYWdlX2hhc2gsIHNlbGYu
X3Nob3VsZF9ydW5fcGl4ZWxfdGVzdCkKKyAgICAgICAgcmV0dXJuIERyaXZlcklucHV0KHNlbGYu
X3Rlc3RfbmFtZSwgc2VsZi5fdGltZW91dCwgaW1hZ2VfaGFzaCwgc2VsZi5fc2hvdWxkX3J1bl9w
aXhlbF90ZXN0LCBzZWxmLl9zaG91bGRfZHVtcF9qc2NvbnNvbGVsb2dfaW5fc3RkZXJyKQogCiAg
ICAgZGVmIHJ1bihzZWxmKToKICAgICAgICAgaWYgc2VsZi5fcmVmZXJlbmNlX2ZpbGVzOgpkaWZm
IC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3Rf
ZXhwZWN0YXRpb25zLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9k
ZWxzL3Rlc3RfZXhwZWN0YXRpb25zLnB5CmluZGV4IGJiNTU4Yzk4MzQ1YTFiOTNjMmFhMjUxNDQx
MmY4MzJhYjU1YTRhYzguLjk1ZTljNjkwMDNiNjA4NzZhY2I3MmVlODk2NmQxZWE5OGI3NDRjODAg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90
ZXN0X2V4cGVjdGF0aW9ucy5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9tb2RlbHMvdGVzdF9leHBlY3RhdGlvbnMucHkKQEAgLTQzLDcgKzQzLDcgQEAgX2xvZyA9
IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKQogIyBGSVhNRTogcmFuZ2UoKSBzdGFydHMgd2l0
aCAwIHdoaWNoIG1ha2VzIGlmIGV4cGVjdGF0aW9uIGNoZWNrcyBoYXJkZXIKICMgYXMgUEFTUyBp
cyAwLgogKFBBU1MsIEZBSUwsIFRFWFQsIElNQUdFLCBJTUFHRV9QTFVTX1RFWFQsIEFVRElPLCBU
SU1FT1VULCBDUkFTSCwgU0tJUCwgV09OVEZJWCwKLSBTTE9XLCBSRUJBU0VMSU5FLCBNSVNTSU5H
LCBGTEFLWSwgTk9XLCBOT05FKSA9IHJhbmdlKDE2KQorIFNMT1csIERVTVBKU0NPTlNPTEVMT0dJ
TlNUREVSUiwgUkVCQVNFTElORSwgTUlTU0lORywgRkxBS1ksIE5PVywgTk9ORSkgPSByYW5nZSgx
NykKIAogIyBGSVhNRTogUGVyaGFzIHRoZXNlIHR3byByb3V0aW5lcyBzaG91bGQgYmUgcGFydCBv
ZiB0aGUgUG9ydCBpbnN0ZWFkPwogQkFTRUxJTkVfU1VGRklYX0xJU1QgPSAoJ3BuZycsICd3YXYn
LCAndHh0JykKQEAgLTcxLDYgKzcxLDcgQEAgY2xhc3MgVGVzdEV4cGVjdGF0aW9uUGFyc2VyKG9i
amVjdCk6CiAgICAgUEFTU19FWFBFQ1RBVElPTiA9ICdwYXNzJwogICAgIFNLSVBfTU9ESUZJRVIg
PSAnc2tpcCcKICAgICBTTE9XX01PRElGSUVSID0gJ3Nsb3cnCisgICAgRFVNUEpTQ09OU09MRUxP
R0lOU1RERVJSX01PRElGSUVSID0gJ2R1bXBqc2NvbnNvbGVsb2dpbnN0ZGVycicKICAgICBXT05U
RklYX01PRElGSUVSID0gJ3dvbnRmaXgnCiAKICAgICBUSU1FT1VUX0VYUEVDVEFUSU9OID0gJ3Rp
bWVvdXQnCkBAIC0zMTksNyArMzIwLDcgQEAgY2xhc3MgVGVzdEV4cGVjdGF0aW9uUGFyc2VyKG9i
amVjdCk6CiAgICAgICAgICAgICBlbGlmIHN0YXRlID09ICdjb25maWd1cmF0aW9uJzoKICAgICAg
ICAgICAgICAgICBtb2RpZmllcnMuYXBwZW5kKGNscy5fY29uZmlndXJhdGlvbl90b2tlbnMuZ2V0
KHRva2VuLCB0b2tlbikpCiAgICAgICAgICAgICBlbGlmIHN0YXRlID09ICdleHBlY3RhdGlvbnMn
OgotICAgICAgICAgICAgICAgIGlmIHRva2VuIGluICgnUmViYXNlbGluZScsICdTa2lwJywgJ1Ns
b3cnLCAnV29udEZpeCcpOgorICAgICAgICAgICAgICAgIGlmIHRva2VuIGluICgnUmViYXNlbGlu
ZScsICdTa2lwJywgJ1Nsb3cnLCAnV29udEZpeCcsICdEdW1wSlNDb25zb2xlTG9nSW5TdGRFcnIn
KToKICAgICAgICAgICAgICAgICAgICAgbW9kaWZpZXJzLmFwcGVuZCh0b2tlbi51cHBlcigpKQog
ICAgICAgICAgICAgICAgIGVsaWYgdG9rZW4gbm90IGluIGNscy5fZXhwZWN0YXRpb25fdG9rZW5z
OgogICAgICAgICAgICAgICAgICAgICB3YXJuaW5ncy5hcHBlbmQoJ1VucmVjb2duaXplZCBleHBl
Y3RhdGlvbiAiJXMiJyAlIHRva2VuKQpAQCAtMzQ1LDcgKzM0Niw4IEBAIGNsYXNzIFRlc3RFeHBl
Y3RhdGlvblBhcnNlcihvYmplY3QpOgogICAgICAgICAgICAgIyBGSVhNRTogVGhpcyBpcyByZWFs
bHkgYSBzZW1hbnRpYyB3YXJuaW5nIGFuZCBzaG91bGRuJ3QgYmUgaGVyZS4gUmVtb3ZlIHdoZW4g
d2UgZHJvcCB0aGUgb2xkIHN5bnRheC4KICAgICAgICAgICAgIHdhcm5pbmdzLmFwcGVuZCgnQSB0
ZXN0IG1hcmtlZCBTa2lwIG11c3Qgbm90IGhhdmUgb3RoZXIgZXhwZWN0YXRpb25zLicpCiAgICAg
ICAgIGVsaWYgbm90IGV4cGVjdGF0aW9uczoKLSAgICAgICAgICAgIGlmICdTS0lQJyBub3QgaW4g
bW9kaWZpZXJzIGFuZCAnUkVCQVNFTElORScgbm90IGluIG1vZGlmaWVycyBhbmQgJ1NMT1cnIG5v
dCBpbiBtb2RpZmllcnM6CisgICAgICAgICAgICAjIEZJWE1FOiBXZSBjYW4gcHJvYmFibHkgc2lt
cGxpZnkgdGhpcyBhZGRpbmcgJ1NLSVAnIGlmIG1vZGlmaWVycyBpcyBlbXB0eQorICAgICAgICAg
ICAgaWYgJ1NLSVAnIG5vdCBpbiBtb2RpZmllcnMgYW5kICdSRUJBU0VMSU5FJyBub3QgaW4gbW9k
aWZpZXJzIGFuZCAnU0xPVycgbm90IGluIG1vZGlmaWVycyBhbmQgJ0RVTVBKU0NPTlNPTEVMT0dJ
TlNUREVSUicgbm90IGluIG1vZGlmaWVyczoKICAgICAgICAgICAgICAgICBtb2RpZmllcnMuYXBw
ZW5kKCdTS0lQJykKICAgICAgICAgICAgIGV4cGVjdGF0aW9ucyA9IFsnUEFTUyddCiAKQEAgLTQ2
Nyw3ICs0NjksNyBAQCBjbGFzcyBUZXN0RXhwZWN0YXRpb25MaW5lKG9iamVjdCk6CiAgICAgICAg
ICAgICBlbGlmIG1vZGlmaWVyLnN0YXJ0c3dpdGgoJ0JVRycpOgogICAgICAgICAgICAgICAgICMg
RklYTUU6IHdlIHNob3VsZCBwcmVzZXJ2ZSBjYXNlIG9uY2Ugd2UgY2FuIGRyb3AgdGhlIG9sZCBz
eW50YXguCiAgICAgICAgICAgICAgICAgYnVncy5hcHBlbmQoJ0J1ZygnICsgbW9kaWZpZXJbMzpd
Lmxvd2VyKCkgKyAnKScpCi0gICAgICAgICAgICBlbGlmIG1vZGlmaWVyIGluICgnU0xPVycsICdT
S0lQJywgJ1JFQkFTRUxJTkUnLCAnV09OVEZJWCcpOgorICAgICAgICAgICAgZWxpZiBtb2RpZmll
ciBpbiAoJ1NMT1cnLCAnU0tJUCcsICdSRUJBU0VMSU5FJywgJ1dPTlRGSVgnLCAnRFVNUEpTQ09O
U09MRUxPR0lOU1RERVJSJyk6CiAgICAgICAgICAgICAgICAgbmV3X2V4cGVjdGF0aW9ucy5hcHBl
bmQoVGVzdEV4cGVjdGF0aW9uUGFyc2VyLl9pbnZlcnRlZF9leHBlY3RhdGlvbl90b2tlbnMuZ2V0
KG1vZGlmaWVyKSkKICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgbmV3X21vZGlm
aWVycy5hcHBlbmQoVGVzdEV4cGVjdGF0aW9uUGFyc2VyLl9pbnZlcnRlZF9jb25maWd1cmF0aW9u
X3Rva2Vucy5nZXQobW9kaWZpZXIsIG1vZGlmaWVyKSkKQEAgLTc4Niw2ICs3ODgsNyBAQCBjbGFz
cyBUZXN0RXhwZWN0YXRpb25zKG9iamVjdCk6CiAgICAgTU9ESUZJRVJTID0ge1Rlc3RFeHBlY3Rh
dGlvblBhcnNlci5TS0lQX01PRElGSUVSOiBTS0lQLAogICAgICAgICAgICAgICAgICBUZXN0RXhw
ZWN0YXRpb25QYXJzZXIuV09OVEZJWF9NT0RJRklFUjogV09OVEZJWCwKICAgICAgICAgICAgICAg
ICAgVGVzdEV4cGVjdGF0aW9uUGFyc2VyLlNMT1dfTU9ESUZJRVI6IFNMT1csCisgICAgICAgICAg
ICAgICAgIFRlc3RFeHBlY3RhdGlvblBhcnNlci5EVU1QSlNDT05TT0xFTE9HSU5TVERFUlJfTU9E
SUZJRVI6IERVTVBKU0NPTlNPTEVMT0dJTlNUREVSUiwKICAgICAgICAgICAgICAgICAgVGVzdEV4
cGVjdGF0aW9uUGFyc2VyLlJFQkFTRUxJTkVfTU9ESUZJRVI6IFJFQkFTRUxJTkUsCiAgICAgICAg
ICAgICAgICAgICdub25lJzogTk9ORX0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfaW5wdXQucHkgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVzdF9pbnB1dC5weQppbmRleCAzM2U0NDU4Y2Vi
ZWE1YjlhYTVmYmE0ZDQ2Y2U2ZjVmY2M2OWQxNjRhLi5lNGE2OWUxMzUxYzEyYjdiMjUwY2M2M2Uz
MGE1YWRmZjk3ZDhmZTI4IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9tb2RlbHMvdGVzdF9pbnB1dC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9tb2RlbHMvdGVzdF9pbnB1dC5weQpAQCAtMzEsNyArMzEsNyBAQAogY2xh
c3MgVGVzdElucHV0KG9iamVjdCk6CiAgICAgIiIiR3JvdXBzIGluZm9ybWF0aW9uIGFib3V0IGEg
dGVzdCBmb3IgZWFzeSBwYXNzaW5nIG9mIGRhdGEuIiIiCiAKLSAgICBkZWYgX19pbml0X18oc2Vs
ZiwgdGVzdF9uYW1lLCB0aW1lb3V0PU5vbmUsIG5lZWRzX3NlcnZlcnM9Tm9uZSwgcmVmZXJlbmNl
X2ZpbGVzPU5vbmUsIHNob3VsZF9ydW5fcGl4ZWxfdGVzdHM9Tm9uZSk6CisgICAgZGVmIF9faW5p
dF9fKHNlbGYsIHRlc3RfbmFtZSwgdGltZW91dD1Ob25lLCBuZWVkc19zZXJ2ZXJzPU5vbmUsIHJl
ZmVyZW5jZV9maWxlcz1Ob25lLCBzaG91bGRfcnVuX3BpeGVsX3Rlc3RzPU5vbmUsIHNob3VsZF9k
dW1wX2pzY29uc29sZWxvZ19pbl9zdGRlcnI9Tm9uZSk6CiAgICAgICAgICMgVGVzdElucHV0IG9i
amVjdHMgYXJlIG5vcm1hbGx5IGNvbnN0cnVjdGVkIGJ5IHRoZSBtYW5hZ2VyIGFuZCBwYXNzZWQK
ICAgICAgICAgIyB0byB0aGUgd29ya2VycywgYnV0IHRoZXNlIHNvbWUgZmllbGRzIGFyZSBzZXQg
bGF6aWx5IGluIHRoZSB3b3JrZXJzIHdoZXJlIHBvc3NpYmxlCiAgICAgICAgICMgYmVjYXVzZSB0
aGV5IHJlcXVpcmUgdXMgdG8gbG9vayBhdCB0aGUgZmlsZXN5c3RlbSBhbmQgd2Ugd2FudCB0byBi
ZSBhYmxlIHRvIGRvIHRoYXQgaW4gcGFyYWxsZWwuCkBAIC00MCw2ICs0MCw3IEBAIGNsYXNzIFRl
c3RJbnB1dChvYmplY3QpOgogICAgICAgICBzZWxmLm5lZWRzX3NlcnZlcnMgPSBuZWVkc19zZXJ2
ZXJzCiAgICAgICAgIHNlbGYucmVmZXJlbmNlX2ZpbGVzID0gcmVmZXJlbmNlX2ZpbGVzCiAgICAg
ICAgIHNlbGYuc2hvdWxkX3J1bl9waXhlbF90ZXN0cyA9IHNob3VsZF9ydW5fcGl4ZWxfdGVzdHMK
KyAgICAgICAgc2VsZi5zaG91bGRfZHVtcF9qc2NvbnNvbGVsb2dfaW5fc3RkZXJyID0gc2hvdWxk
X2R1bXBfanNjb25zb2xlbG9nX2luX3N0ZGVycgogCiAgICAgZGVmIF9fcmVwcl9fKHNlbGYpOgot
ICAgICAgICByZXR1cm4gIlRlc3RJbnB1dCgnJXMnLCB0aW1lb3V0PSVzLCBuZWVkc19zZXJ2ZXJz
PSVzLCByZWZlcmVuY2VfZmlsZXM9JXMsIHNob3VsZF9ydW5fcGl4ZWxfdGVzdHM9JXMpIiAlIChz
ZWxmLnRlc3RfbmFtZSwgc2VsZi50aW1lb3V0LCBzZWxmLm5lZWRzX3NlcnZlcnMsIHNlbGYucmVm
ZXJlbmNlX2ZpbGVzLCBzZWxmLnNob3VsZF9ydW5fcGl4ZWxfdGVzdHMpCisgICAgICAgIHJldHVy
biAiVGVzdElucHV0KCclcycsIHRpbWVvdXQ9JXMsIG5lZWRzX3NlcnZlcnM9JXMsIHJlZmVyZW5j
ZV9maWxlcz0lcywgc2hvdWxkX3J1bl9waXhlbF90ZXN0cz0lcywgc2hvdWxkX2R1bXBfanNjb25z
b2xlbG9nX2luX3N0ZGVycj0lcykiICUgKHNlbGYudGVzdF9uYW1lLCBzZWxmLnRpbWVvdXQsIHNl
bGYubmVlZHNfc2VydmVycywgc2VsZi5yZWZlcmVuY2VfZmlsZXMsIHNlbGYuc2hvdWxkX3J1bl9w
aXhlbF90ZXN0cywgc2VsZi5zaG91bGRfZHVtcF9qc2NvbnNvbGVsb2dfaW5fc3RkZXJyKQpkaWZm
IC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2RyaXZlci5weSBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvcG9ydC9kcml2ZXIucHkKaW5kZXggNWNlNThjY2YxZjRkYjFkZjg3YmEx
YjRlYjRhMWNkOTczNGJkNGJmMi4uZTQwYzMwNjcyN2M1ZmJjNDRkOTRkMjRlNDg4MmJiM2M0NzA2
NDc4NyAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2RyaXZlci5weQor
KysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvZHJpdmVyLnB5CkBAIC0yOCw3ICsyOCw2
IEBACiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCiAKIGltcG9ydCBiYXNlNjQKLWltcG9ydCBjb3B5CiBpbXBvcnQg
bG9nZ2luZwogaW1wb3J0IHJlCiBpbXBvcnQgc2hsZXgKQEAgLTM4LDIyICszNywyMiBAQCBpbXBv
cnQgb3MKIAogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtIGltcG9ydCBwYXRoCiBmcm9tIHdl
YmtpdHB5LmNvbW1vbi5zeXN0ZW0ucHJvZmlsZXIgaW1wb3J0IFByb2ZpbGVyRmFjdG9yeQotZnJv
bSB3ZWJraXRweS5sYXlvdXRfdGVzdHMuc2VydmVycy53ZWJfcGxhdGZvcm1fdGVzdF9zZXJ2ZXIg
aW1wb3J0IFdlYlBsYXRmb3JtVGVzdFNlcnZlcgogCiAKIF9sb2cgPSBsb2dnaW5nLmdldExvZ2dl
cihfX25hbWVfXykKIAogCiBjbGFzcyBEcml2ZXJJbnB1dChvYmplY3QpOgotICAgIGRlZiBfX2lu
aXRfXyhzZWxmLCB0ZXN0X25hbWUsIHRpbWVvdXQsIGltYWdlX2hhc2gsIHNob3VsZF9ydW5fcGl4
ZWxfdGVzdCwgYXJncz1Ob25lKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgdGVzdF9uYW1lLCB0
aW1lb3V0LCBpbWFnZV9oYXNoLCBzaG91bGRfcnVuX3BpeGVsX3Rlc3QsIHNob3VsZF9kdW1wX2pz
Y29uc29sZWxvZ19pbl9zdGRlcnI9Tm9uZSwgYXJncz1Ob25lKToKICAgICAgICAgc2VsZi50ZXN0
X25hbWUgPSB0ZXN0X25hbWUKICAgICAgICAgc2VsZi50aW1lb3V0ID0gdGltZW91dCAgIyBpbiBt
cwogICAgICAgICBzZWxmLmltYWdlX2hhc2ggPSBpbWFnZV9oYXNoCiAgICAgICAgIHNlbGYuc2hv
dWxkX3J1bl9waXhlbF90ZXN0ID0gc2hvdWxkX3J1bl9waXhlbF90ZXN0CisgICAgICAgIHNlbGYu
c2hvdWxkX2R1bXBfanNjb25zb2xlbG9nX2luX3N0ZGVyciA9IHNob3VsZF9kdW1wX2pzY29uc29s
ZWxvZ19pbl9zdGRlcnIKICAgICAgICAgc2VsZi5hcmdzID0gYXJncyBvciBbXQogCiAgICAgZGVm
IF9fcmVwcl9fKHNlbGYpOgotICAgICAgICByZXR1cm4gIkRyaXZlcklucHV0KHRlc3RfbmFtZT0n
e30nLCB0aW1lb3V0PXt9LCBpbWFnZV9oYXNoPXt9LCBzaG91bGRfcnVuX3BpeGVsX3Rlc3Q9e30n
Ii5mb3JtYXQoc2VsZi50ZXN0X25hbWUsIHNlbGYudGltZW91dCwgc2VsZi5pbWFnZV9oYXNoLCBz
ZWxmLnNob3VsZF9ydW5fcGl4ZWxfdGVzdCkKKyAgICAgICAgcmV0dXJuICJEcml2ZXJJbnB1dCh0
ZXN0X25hbWU9J3t9JywgdGltZW91dD17fSwgaW1hZ2VfaGFzaD17fSwgc2hvdWxkX3J1bl9waXhl
bF90ZXN0PXt9LCBzaG91bGRfZHVtcF9qc2NvbnNvbGVsb2dfaW5fc3RkZXJyPXt9JyIuZm9ybWF0
KHNlbGYudGVzdF9uYW1lLCBzZWxmLnRpbWVvdXQsIHNlbGYuaW1hZ2VfaGFzaCwgc2VsZi5zaG91
bGRfcnVuX3BpeGVsX3Rlc3QsIHNlbGYuc2hvdWxkX2R1bXBfanNjb25zb2xlbG9nX2luX3N0ZGVy
cikKIAogCiBjbGFzcyBEcml2ZXJPdXRwdXQob2JqZWN0KToKQEAgLTQ4Nyw2ICs0ODYsOCBAQCBj
bGFzcyBEcml2ZXIob2JqZWN0KToKICAgICAgICAgICAgIGNvbW1hbmQgKz0gIictLXRpbWVvdXQn
JXMiICUgZHJpdmVyX2lucHV0LnRpbWVvdXQKICAgICAgICAgaWYgZHJpdmVyX2lucHV0LnNob3Vs
ZF9ydW5fcGl4ZWxfdGVzdDoKICAgICAgICAgICAgIGNvbW1hbmQgKz0gIictLXBpeGVsLXRlc3Qi
CisgICAgICAgIGlmIGRyaXZlcl9pbnB1dC5zaG91bGRfZHVtcF9qc2NvbnNvbGVsb2dfaW5fc3Rk
ZXJyOgorICAgICAgICAgICAgY29tbWFuZCArPSAiJy0tZHVtcC1qc2NvbnNvbGVsb2ctaW4tc3Rk
ZXJyIgogICAgICAgICBpZiBkcml2ZXJfaW5wdXQuaW1hZ2VfaGFzaDoKICAgICAgICAgICAgIGNv
bW1hbmQgKz0gIiciICsgZHJpdmVyX2lucHV0LmltYWdlX2hhc2gKICAgICAgICAgcmV0dXJuIGNv
bW1hbmQgKyAiXG4iCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCmluZGV4IDZkOTg5MTFmODUyNDZhZTNlYzgwMjNk
OTNlZGFmOGU1YTBlMDQxNTYuLmJkYzE2NWY4NWRmYzliY2M0MTI2NmMyODQ0M2JkZTFlZDkyMmU1
NGUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5q
ZWN0ZWRCdW5kbGUuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvSW5qZWN0ZWRCdW5kbGUuY3BwCkBAIC0xNTUsNiArMTU1LDkgQEAgdm9pZCBJbmplY3RlZEJ1
bmRsZTo6ZGlkUmVjZWl2ZU1lc3NhZ2VUb1BhZ2UoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLU3Ry
aW5nUmVmIG0KICAgICAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHRpbWVvdXRLZXkoQWRv
cHRXSywgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIlRpbWVvdXQiKSk7CiAgICAgICAg
IG1fdGltZW91dCA9IChpbnQpV0tVSW50NjRHZXRWYWx1ZShzdGF0aWNfY2FzdDxXS1VJbnQ2NFJl
Zj4oV0tEaWN0aW9uYXJ5R2V0SXRlbUZvcktleShtZXNzYWdlQm9keURpY3Rpb25hcnksIHRpbWVv
dXRLZXkuZ2V0KCkpKSk7CiAKKyAgICAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IGR1bXBK
U0NvbnNvbGVMb2dJblN0ZEVycktleShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0
cmluZygiRHVtcEpTQ29uc29sZUxvZ0luU3RkRXJyIikpOworICAgICAgICBtX2R1bXBKU0NvbnNv
bGVMb2dJblN0ZEVyciA9IFdLQm9vbGVhbkdldFZhbHVlKHN0YXRpY19jYXN0PFdLQm9vbGVhblJl
Zj4oV0tEaWN0aW9uYXJ5R2V0SXRlbUZvcktleShtZXNzYWdlQm9keURpY3Rpb25hcnksIGR1bXBK
U0NvbnNvbGVMb2dJblN0ZEVycktleS5nZXQoKSkpKTsKKwogICAgICAgICBXS1JldGFpblB0cjxX
S1N0cmluZ1JlZj4gYWNrTWVzc2FnZU5hbWUoQWRvcHRXSywgV0tTdHJpbmdDcmVhdGVXaXRoVVRG
OENTdHJpbmcoIkFjayIpKTsKICAgICAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IGFja01l
c3NhZ2VCb2R5KEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJCZWdpblRl
c3QiKSk7CiAgICAgICAgIFdLQnVuZGxlUGFnZVBvc3RNZXNzYWdlKHBhZ2UsIGFja01lc3NhZ2VO
YW1lLmdldCgpLCBhY2tNZXNzYWdlQm9keS5nZXQoKSk7CkBAIC00MTEsNiArNDE0LDE3IEBAIHZv
aWQgSW5qZWN0ZWRCdW5kbGU6OmR1bXBCYWNrRm9yd2FyZExpc3RzRm9yQWxsUGFnZXMoU3RyaW5n
QnVpbGRlciYgc3RyaW5nQnVpbGRlCiAgICAgICAgIG1fcGFnZXNbaV0tPmR1bXBCYWNrRm9yd2Fy
ZExpc3Qoc3RyaW5nQnVpbGRlcik7CiB9CiAKK3ZvaWQgSW5qZWN0ZWRCdW5kbGU6OmR1bXBUb1N0
ZEVycihjb25zdCBTdHJpbmcmIG91dHB1dCkKK3sKKyAgICBpZiAobV9zdGF0ZSAhPSBUZXN0aW5n
KQorICAgICAgICByZXR1cm47CisgICAgaWYgKG91dHB1dC5pc0VtcHR5KCkpCisgICAgICAgIHJl
dHVybjsKKyAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gbWVzc2FnZU5hbWUoQWRvcHRXSywg
V0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIkR1bXBUb1N0ZEVyciIpKTsKKyAgICBXS1Jl
dGFpblB0cjxXS1N0cmluZ1JlZj4gbWVzc2FnZUJvZHkoQWRvcHRXSywgV0tTdHJpbmdDcmVhdGVX
aXRoVVRGOENTdHJpbmcob3V0cHV0LnV0ZjgoKS5kYXRhKCkpKTsKKyAgICBXS0J1bmRsZVBhZ2VQ
b3N0TWVzc2FnZShwYWdlKCktPnBhZ2UoKSwgbWVzc2FnZU5hbWUuZ2V0KCksIG1lc3NhZ2VCb2R5
LmdldCgpKTsKK30KKwogdm9pZCBJbmplY3RlZEJ1bmRsZTo6b3V0cHV0VGV4dChjb25zdCBTdHJp
bmcmIG91dHB1dCkKIHsKICAgICBpZiAobV9zdGF0ZSAhPSBUZXN0aW5nKQpkaWZmIC0tZ2l0IGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5oIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5oCmlu
ZGV4IGU0YTQwNDVlMjZkZjNjYjY3YzQzZGM4YTY5MWM0Mjk4OWJlMjA4YTEuLjJlZGQ1ZTc5NzQ2
MWY2ODAzYTAyOTI0MjU1MzJiZTM4OGVhZWVlMDUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuaAorKysgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmgKQEAgLTgxLDggKzgx
LDEwIEBAIHB1YmxpYzoKIAogICAgIGJvb2wgc2hvdWxkRHVtcFBpeGVscygpIGNvbnN0IHsgcmV0
dXJuIG1fZHVtcFBpeGVsczsgfQogICAgIGJvb2wgdXNlV2FpdFRvRHVtcFdhdGNoZG9nVGltZXIo
KSBjb25zdCB7IHJldHVybiBtX3VzZVdhaXRUb0R1bXBXYXRjaGRvZ1RpbWVyOyB9Ci0gICAgCisg
ICAgYm9vbCBkdW1wSlNDb25zb2xlTG9nSW5TdGRFcnIoKSBjb25zdCB7IHJldHVybiBtX2R1bXBK
U0NvbnNvbGVMb2dJblN0ZEVycjsgfTsKKwogICAgIHZvaWQgb3V0cHV0VGV4dChjb25zdCBTdHJp
bmcmKTsKKyAgICB2b2lkIGR1bXBUb1N0ZEVycihjb25zdCBTdHJpbmcmKTsKICAgICB2b2lkIHBv
c3ROZXdCZWZvcmVVbmxvYWRSZXR1cm5WYWx1ZShib29sKTsKICAgICB2b2lkIHBvc3RBZGRDaHJv
bWVJbnB1dEZpZWxkKCk7CiAgICAgdm9pZCBwb3N0UmVtb3ZlQ2hyb21lSW5wdXRGaWVsZCgpOwpA
QCAtMTgwLDYgKzE4Miw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3VzZVdvcmtRdWV1ZTsKICAg
ICBpbnQgbV90aW1lb3V0OwogICAgIGJvb2wgbV9waXhlbFJlc3VsdElzUGVuZGluZyB7IGZhbHNl
IH07CisgICAgYm9vbCBtX2R1bXBKU0NvbnNvbGVMb2dJblN0ZEVyciB7IGZhbHNlIH07CiAKICAg
ICBXS1JldGFpblB0cjxXS0RhdGFSZWY+IG1fYXVkaW9SZXN1bHQ7CiAgICAgV0tSZXRhaW5QdHI8
V0tJbWFnZVJlZj4gbV9waXhlbFJlc3VsdDsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcCBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcAppbmRleCBk
ZDc5MzY2MmUwMDVkNmY1N2M0NmQ1ZTFhNGJmNGE0ZTVhZWZlZTQ1Li5kMWI2Y2IxMTliNGU1MTNm
OTllNzY0NDI2YTY1MGE2OWMyNDFkMTcyIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHAKKysrIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3BwCkBAIC0x
NDYxLDcgKzE0NjEsMTEgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OndpbGxBZGRNZXNzYWdl
VG9Db25zb2xlKFdLU3RyaW5nUmVmIG1lc3NhZ2UsIHVpbnQzMl90IGwKICAgICB9CiAgICAgc3Ry
aW5nQnVpbGRlci5hcHBlbmQobWVzc2FnZVN0cmluZyk7CiAgICAgc3RyaW5nQnVpbGRlci5hcHBl
bmQoJ1xuJyk7Ci0gICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dChzdHJpbmdCdWlsZGVyLnRv
U3RyaW5nKCkpOworCisgICAgaWYgKGluamVjdGVkQnVuZGxlLmR1bXBKU0NvbnNvbGVMb2dJblN0
ZEVycigpKQorICAgICAgICBpbmplY3RlZEJ1bmRsZS5kdW1wVG9TdGRFcnIoc3RyaW5nQnVpbGRl
ci50b1N0cmluZygpKTsKKyAgICBlbHNlCisgICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRl
eHQoc3RyaW5nQnVpbGRlci50b1N0cmluZygpKTsKIH0KIAogdm9pZCBJbmplY3RlZEJ1bmRsZVBh
Z2U6OndpbGxTZXRTdGF0dXNiYXJUZXh0KFdLU3RyaW5nUmVmIHN0YXR1c2JhclRleHQpCmRpZmYg
LS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IGQwYmMyNDkwMGFkZjEw
MWY0MjdkMDc5ZDMxZjYzNmMxMDBkMWVmNzkuLmZiNThiNTdmYzNlOThhMTAxYWEwYzI1ZWRmZDMz
MDA5OWZlYzU2YTIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRy
b2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3Bw
CkBAIC0xMDIyLDEyICsxMDIyLDExIEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OmNvbmZpZ3VyZVZp
ZXdGb3JUZXN0KGNvbnN0IFRlc3RJbnZvY2F0aW9uJiB0ZXN0KQogfQogCiBzdHJ1Y3QgVGVzdENv
bW1hbmQgewotICAgIFRlc3RDb21tYW5kKCkgOiBzaG91bGREdW1wUGl4ZWxzKGZhbHNlKSwgdGlt
ZW91dCgwKSB7IH0KLQogICAgIHN0ZDo6c3RyaW5nIHBhdGhPclVSTDsKLSAgICBib29sIHNob3Vs
ZER1bXBQaXhlbHM7CisgICAgYm9vbCBzaG91bGREdW1wUGl4ZWxzIHsgZmFsc2UgfTsKICAgICBz
dGQ6OnN0cmluZyBleHBlY3RlZFBpeGVsSGFzaDsKLSAgICBpbnQgdGltZW91dDsKKyAgICBpbnQg
dGltZW91dCB7IDAgfTsKKyAgICBib29sIGR1bXBKU0NvbnNvbGVMb2dJblN0ZEVyciB7IGZhbHNl
IH07CiB9OwogCiBjbGFzcyBDb21tYW5kVG9rZW5pemVyIHsKQEAgLTExMDAsNyArMTA5OSw5IEBA
IFRlc3RDb21tYW5kIHBhcnNlSW5wdXRMaW5lKGNvbnN0IHN0ZDo6c3RyaW5nJiBpbnB1dExpbmUp
CiAgICAgICAgICAgICByZXN1bHQuc2hvdWxkRHVtcFBpeGVscyA9IHRydWU7CiAgICAgICAgICAg
ICBpZiAodG9rZW5pemVyLmhhc05leHQoKSkKICAgICAgICAgICAgICAgICByZXN1bHQuZXhwZWN0
ZWRQaXhlbEhhc2ggPSB0b2tlbml6ZXIubmV4dCgpOwotICAgICAgICB9IGVsc2UKKyAgICAgICAg
fSBlbHNlIGlmIChhcmcgPT0gc3RkOjpzdHJpbmcoIi0tZHVtcC1qc2NvbnNvbGVsb2ctaW4tc3Rk
ZXJyIikpCisgICAgICAgICAgICByZXN1bHQuZHVtcEpTQ29uc29sZUxvZ0luU3RkRXJyID0gdHJ1
ZTsKKyAgICAgICAgZWxzZQogICAgICAgICAgICAgZGllKGlucHV0TGluZSk7CiAgICAgfQogICAg
IHJldHVybiByZXN1bHQ7CkBAIC0xMTIyLDYgKzExMjMsNyBAQCBib29sIFRlc3RDb250cm9sbGVy
OjpydW5UZXN0KGNvbnN0IGNoYXIqIGlucHV0TGluZSkKICAgICAgICAgbV9jdXJyZW50SW52b2Nh
dGlvbi0+c2V0SXNQaXhlbFRlc3QoY29tbWFuZC5leHBlY3RlZFBpeGVsSGFzaCk7CiAgICAgaWYg
KGNvbW1hbmQudGltZW91dCA+IDApCiAgICAgICAgIG1fY3VycmVudEludm9jYXRpb24tPnNldEN1
c3RvbVRpbWVvdXQoY29tbWFuZC50aW1lb3V0KTsKKyAgICBtX2N1cnJlbnRJbnZvY2F0aW9uLT5z
ZXREdW1wSlNDb25zb2xlTG9nSW5TdGRFcnIoY29tbWFuZC5kdW1wSlNDb25zb2xlTG9nSW5TdGRF
cnIpOwogCiAgICAgcGxhdGZvcm1XaWxsUnVuVGVzdCgqbV9jdXJyZW50SW52b2NhdGlvbik7CiAK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKaW5kZXggNWVkN2RlNTM2
ZTMxOTY2YmMzMDhlN2FhYTEyYzdkZmRjNzZlYmFhOS4uNjg0ZjllZDdhNzQzMjA3NTgxMTA2MDU2
YjAxMzM4MDc5ZjQwNDMyZiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0
SW52b2NhdGlvbi5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlv
bi5jcHAKQEAgLTE1OSw2ICsxNTksMTAgQEAgdm9pZCBUZXN0SW52b2NhdGlvbjo6aW52b2tlKCkK
ICAgICBXS1JldGFpblB0cjxXS1VJbnQ2NFJlZj4gdGltZW91dFZhbHVlID0gYWRvcHRXSyhXS1VJ
bnQ2NENyZWF0ZShtX3RpbWVvdXQpKTsKICAgICBXS0RpY3Rpb25hcnlTZXRJdGVtKGJlZ2luVGVz
dE1lc3NhZ2VCb2R5LmdldCgpLCB0aW1lb3V0S2V5LmdldCgpLCB0aW1lb3V0VmFsdWUuZ2V0KCkp
OwogCisgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IGR1bXBKU0NvbnNvbGVMb2dJblN0ZEVy
cktleSA9IGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIkR1bXBKU0NvbnNv
bGVMb2dJblN0ZEVyciIpKTsKKyAgICBXS1JldGFpblB0cjxXS0Jvb2xlYW5SZWY+IGR1bXBKU0Nv
bnNvbGVMb2dJblN0ZEVyclZhbHVlID0gYWRvcHRXSyhXS0Jvb2xlYW5DcmVhdGUobV9kdW1wSlND
b25zb2xlTG9nSW5TdGRFcnIpKTsKKyAgICBXS0RpY3Rpb25hcnlTZXRJdGVtKGJlZ2luVGVzdE1l
c3NhZ2VCb2R5LmdldCgpLCBkdW1wSlNDb25zb2xlTG9nSW5TdGRFcnJLZXkuZ2V0KCksIGR1bXBK
U0NvbnNvbGVMb2dJblN0ZEVyclZhbHVlLmdldCgpKTsKKwogICAgIFdLUGFnZVBvc3RNZXNzYWdl
VG9JbmplY3RlZEJ1bmRsZShUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCkubWFpbldlYlZpZXco
KS0+cGFnZSgpLCBtZXNzYWdlTmFtZS5nZXQoKSwgYmVnaW5UZXN0TWVzc2FnZUJvZHkuZ2V0KCkp
OwogCiAgICAgYm9vbCBzaG91bGRPcGVuRXh0ZXJuYWxVUkxzID0gZmFsc2U7CkBAIC0zNzEsNiAr
Mzc1LDEzIEBAIHZvaWQgVGVzdEludm9jYXRpb246OmRpZFJlY2VpdmVNZXNzYWdlRnJvbUluamVj
dGVkQnVuZGxlKFdLU3RyaW5nUmVmIG1lc3NhZ2VOYW1lCiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKKyAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgIkR1
bXBUb1N0ZEVyciIpKSB7CisgICAgICAgIEFTU0VSVChXS0dldFR5cGVJRChtZXNzYWdlQm9keSkg
PT0gV0tTdHJpbmdHZXRUeXBlSUQoKSk7CisgICAgICAgIFdLU3RyaW5nUmVmIHRleHRPdXRwdXQg
PSBzdGF0aWNfY2FzdDxXS1N0cmluZ1JlZj4obWVzc2FnZUJvZHkpOworICAgICAgICBmcHJpbnRm
KHN0ZGVyciwgIiVzIiwgdG9XVEZTdHJpbmcodGV4dE91dHB1dCkudXRmOCgpLmRhdGEoKSk7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0
cmluZyhtZXNzYWdlTmFtZSwgIkJlZm9yZVVubG9hZFJldHVyblZhbHVlIikpIHsKICAgICAgICAg
QVNTRVJUKFdLR2V0VHlwZUlEKG1lc3NhZ2VCb2R5KSA9PSBXS0Jvb2xlYW5HZXRUeXBlSUQoKSk7
CiAgICAgICAgIFdLQm9vbGVhblJlZiBiZWZvcmVVbmxvYWRSZXR1cm5WYWx1ZSA9IHN0YXRpY19j
YXN0PFdLQm9vbGVhblJlZj4obWVzc2FnZUJvZHkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0
SW52b2NhdGlvbi5oCmluZGV4IDFiNmM1ZmViNjUzODY2ZDMxMzMxOGQwNGQ4MmI2OTE0NmIwODY5
OGQuLmRmNTg4NWM3ZWI1YzlmZDg4Y2M4N2Q3NWQwNmJiYjQ3OTA4MDc0MGMgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uaAorKysgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmgKQEAgLTUxLDYgKzUxLDcgQEAgcHVibGljOgog
CiAgICAgLy8gTWlsbGlzZWNvbmRzCiAgICAgdm9pZCBzZXRDdXN0b21UaW1lb3V0KGludCBkdXJh
dGlvbikgeyBtX3RpbWVvdXQgPSBkdXJhdGlvbjsgfQorICAgIHZvaWQgc2V0RHVtcEpTQ29uc29s
ZUxvZ0luU3RkRXJyKGJvb2wgdmFsdWUpIHsgbV9kdW1wSlNDb25zb2xlTG9nSW5TdGRFcnIgPSB2
YWx1ZTsgfQogCiAgICAgLy8gU2Vjb25kcwogICAgIGRvdWJsZSBzaG9ydFRpbWVvdXQoKSBjb25z
dDsKQEAgLTEwMiw2ICsxMDMsNyBAQCBwcml2YXRlOgogICAgIHN0ZDo6c3RyaW5nIG1fZXhwZWN0
ZWRQaXhlbEhhc2g7CiAKICAgICBpbnQgbV90aW1lb3V0IHsgMCB9OworICAgIGJvb2wgbV9kdW1w
SlNDb25zb2xlTG9nSW5TdGRFcnIgeyBmYWxzZSB9OwogCiAgICAgLy8gSW52b2NhdGlvbiBzdGF0
ZQogICAgIGJvb2wgbV9nb3RJbml0aWFsUmVzcG9uc2UgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDUzNzBh
NjMxMzJjNWUxNGJkYmFmMjkxZmI2NmJmZjFlNTA5OWU5NDcuLmZkOTFjNjczMDNlNzhmYmQ4MmRi
MzcxMjQwOWUwYjhiZTlkMDFlNzggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZwor
KysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxNi0xMi0xMyAg
WW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgVGVzdCBpbmZyYXN0
cnVjdHVyZSBzaG91bGQgYWxsb3cgdG8gZmlsdGVyIG91dCB0ZXh0IG91dHB1dCBiZWZvcmUgZG9p
bmcgYSBjb21wYXJpc29uIHdpdGggdGhlIGJhc2VsaW5lCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjEzMTAKKworICAgICAgICBSZXZpZXdlZCBieSBS
eW9zdWtlIE5pd2EuCisKKyAgICAgICAgKiBUZXN0RXhwZWN0YXRpb25zOiBBZGRpbmcgRHVtcEpT
Q29uc29sZUxvZ0luU3RkRXJyIHRvIHRoZSBmZXRjaCBtb2RpZmllZCB0ZXN0IHRvIGVuc3VyZSB0
aGlzIG1vZGlmaWVyIHdvcmtzIGFzIGV4cGVjdGVkLgorCiAyMDE2LTEyLTEyICBEYXJpbiBBZGxl
ciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgYmluZGluZ3MgZ2VuZXJhdGlv
biBzdXBwb3J0IGZvciBsZWdhY3kgV2ViQ29yZTo6RGljdGlvbmFyeQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9DaGFuZ2VMb2cKaW5kZXggOTEzNmNjMjllOTY5OGY4ODBmZDNlNmNmYWU0ZTE2MTc2ZjJkOTFi
My4uOWNjNGY5NzkyNzQ0MGY3NjIzMjBkMDY0OTUwZjczOWU2ZmRkN2RmMiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTYtMTItMTMgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIFRlc3QgaW5mcmFzdHJ1Y3R1cmUg
c2hvdWxkIGFsbG93IHRvIGZpbHRlciBvdXQgdGV4dCBvdXRwdXQgYmVmb3JlIGRvaW5nIGEgY29t
cGFyaXNvbiB3aXRoIHRoZSBiYXNlbGluZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTYxMzEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgUnlvc3VrZSBO
aXdhLgorCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9jb3JzL2NvcnMt
cHJlZmxpZ2h0Lmh0bWw6IEFkZGluZyBhIGNvbnNvbGUgbG9nIGxpbmUgdG8gZW5zdXJlIHRoZSBE
dW1wSlNDb25zb2xlTG9nSW5TdGRFcnIgbW9kaWZpZXIgd29ya3MuCisKIDIwMTYtMTItMTIgIERh
cmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBiaW5kaW5ncyBn
ZW5lcmF0aW9uIHN1cHBvcnQgZm9yIGxlZ2FjeSBXZWJDb3JlOjpEaWN0aW9uYXJ5CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVj
dGF0aW9ucwppbmRleCAxZTI0MDkwOGE3MDcyODY0NmM1MjQxYTM4NmY5YWRmNjFlNTVkMGI2Li42
YjBjN2RjN2EzYThiZjk5YWQ3Nzk1MGY0NWExZjU2ZmFkMGVkMzM3IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlv
bnMKQEAgLTI5NSw2ICsyOTUsOCBAQCB3ZWJraXQub3JnL2IvMTU3MDY4IGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbm9zbmlmZi9pbXBvcnRzY3JpcHRzLgogd2Via2l0Lm9y
Zy9iLzE1NzE0NSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL25vc25pZmYv
c3R5bGVzaGVldC5odG1sIFsgRmFpbHVyZSBQYXNzIF0KIHdlYmtpdC5vcmcvYi8xNjEzMTIgaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9kb2N1bWVudC1tZXRh
ZGF0YS90aGUtbGluay1lbGVtZW50L2RvY3VtZW50LXdpdGhvdXQtYnJvd3NpbmctY29udGV4dC5o
dG1sIFsgRmFpbHVyZSBQYXNzIF0KIAoraW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9hcGkvY29ycy9jb3JzLXByZWZsaWdodC5odG1sIFsgRHVtcEpTQ29uc29sZUxvZ0luU3Rk
RXJyIF0KKwogd2Via2l0Lm9yZy9iLzE1OTcyNCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL1hNTEh0dHBSZXF1ZXN0L3NlbmQtcmVkaXJlY3QtcG9zdC11cGxvYWQuaHRtIFsgRmFpbHVy
ZSBQYXNzIF0KIAogIyBOZXcgVzNDIHJlZiB0ZXN0cyB0aGF0IGFyZSBmYWlsaW5nLgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9h
cGkvY29ycy9jb3JzLXByZWZsaWdodC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvY29ycy9jb3JzLXByZWZsaWdodC5odG1sCmluZGV4
IDAzNmYyZjUxNWVkMjA1N2ZjZGJhYjg2Mzk3NGQ4NTQ1ZDc0MGE0MTkuLmUzYjEzNTI0OTFiNzI2
ZWJiYWEwZGQ2NGFjMGJlMGUxZTc4MWI1YjEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2NvcnMvY29ycy1wcmVmbGlnaHQu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL2FwaS9jb3JzL2NvcnMtcHJlZmxpZ2h0Lmh0bWwKQEAgLTE2LDYgKzE2LDExIEBACiAgICAg
PHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy91dGlscy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlw
dCBzcmM9Ii9jb21tb24vZ2V0LWhvc3QtaW5mby5zdWIuanMiPjwvc2NyaXB0PgogICAgIDxzY3Jp
cHQgc3JjPSIvY29tbW9uL3V0aWxzLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorLy8gVG8g
YmUgcmVtb3ZlZCwgc2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NjEzMTAKK2NvbnNvbGUubG9nKCJEb2luZyBzb21lIGxvZ2dpbmcgb25jZSIpCitjb25zb2xlLmxv
ZygiRG9pbmcgc29tZSBsb2dnaW5nIGFnYWluIikKKyAgICA8L3NjcmlwdD4KICAgICA8c2NyaXB0
IHNyYz0iY29ycy1wcmVmbGlnaHQuanMiPjwvc2NyaXB0PgogICA8L2JvZHk+CiA8L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>