<?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>162458</bug_id>
          
          <creation_ts>2016-09-22 14:03:32 -0700</creation_ts>
          <short_desc>EWS should run JavaScriptCore tests</short_desc>
          <delta_ts>2017-02-20 20:40:47 -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>Tools / Tests</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=159781</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Srinivasan Vijayaraghavan">webkit</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>aakash_jain</cc>
    
    <cc>ap</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>glenn</cc>
    
    <cc>lforschler</cc>
    
    <cc>webkit</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1232596</commentid>
    <comment_count>0</comment_count>
    <who name="Srinivasan Vijayaraghavan">webkit</who>
    <bug_when>2016-09-22 14:03:32 -0700</bug_when>
    <thetext>Make changes to webkitpy to enable JSC EWS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1260209</commentid>
    <comment_count>1</comment_count>
      <attachid>297210</attachid>
    <who name="Srinivasan Vijayaraghavan">webkit</who>
    <bug_when>2016-12-15 12:37:30 -0800</bug_when>
    <thetext>Created attachment 297210
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1260212</commentid>
    <comment_count>2</comment_count>
    <who name="Srinivasan Vijayaraghavan">webkit</who>
    <bug_when>2016-12-15 12:40:03 -0800</bug_when>
    <thetext>(In reply to comment #1)
&gt; Created attachment 297210 [details]
&gt; Patch

Uploaded before putting in a ChangeLog - sorry!

Todos:
- patchanalysistask.py: Use hasattr() instead of try/except
- Regression tests (on the way!)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1260320</commentid>
    <comment_count>3</comment_count>
      <attachid>297239</attachid>
    <who name="Srinivasan Vijayaraghavan">webkit</who>
    <bug_when>2016-12-15 16:01:05 -0800</bug_when>
    <thetext>Created attachment 297239
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1260325</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-12-15 16:03:54 -0800</bug_when>
    <thetext>Attachment 297239 did not pass style-queue:


ERROR: Tools/Scripts/webkitpy/tool/commands/earlywarningsystem.py:137:  [AbstractEarlyWarningSystem.group] Instance of &apos;AbstractEarlyWarningSystem&apos; has no &apos;_group&apos; member  [pylint/E1101] [5]
Total errors found: 1 in 12 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1261713</commentid>
    <comment_count>5</comment_count>
      <attachid>297551</attachid>
    <who name="Srinivasan Vijayaraghavan">webkit</who>
    <bug_when>2016-12-20 13:21:16 -0800</bug_when>
    <thetext>Created attachment 297551
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1261715</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-12-20 13:22:35 -0800</bug_when>
    <thetext>Attachment 297551 did not pass style-queue:


ERROR: Tools/Scripts/webkitpy/tool/commands/earlywarningsystem.py:138:  [AbstractEarlyWarningSystem.group] Instance of &apos;AbstractEarlyWarningSystem&apos; has no &apos;_group&apos; member  [pylint/E1101] [5]
Total errors found: 1 in 13 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1261871</commentid>
    <comment_count>7</comment_count>
      <attachid>297551</attachid>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2016-12-20 18:41:13 -0800</bug_when>
    <thetext>Comment on attachment 297551
Patch

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

overall looks fine, couple of comments below inline. should add tests.

&gt; Tools/Scripts/webkitpy/common/net/jsctestresults.py:34
&gt; +        parsed_results = json.loads(string)

is string guaranteed to be a valid json? if not use try/except accordingly.

&gt; Tools/Scripts/webkitpy/common/net/jsctestresults.py:36
&gt; +        return cls(parsed_results[&apos;allApiTestsPassed&apos;], parsed_results[&apos;stressTestFailures&apos;])

can consider checking if parsed_results contains &apos;allApiTestsPassed&apos; and &apos;stressTestFailures&apos;.

&gt; Tools/Scripts/webkitpy/common/net/jsctestresults.py:42
&gt; +        self._test_results = stress_test_failures

does test_results variable indicate test results or test failures? maybe consider renaming it

&gt; Tools/Scripts/webkitpy/common/net/jsctestresults_unittest.py:34
&gt; +        api_test_failures_string = &apos;{&quot;allApiTestsPassed&quot;: false, &quot;stressTestFailures&quot;:[]}&apos;

can consider making it a separate unit-test for better readability.

&gt; Tools/Scripts/webkitpy/tool/bot/jsctestresultsreader.py:25
&gt; +from webkitpy.common.net.jsctestresults import JSCTestResults

probably need to add a newline before &apos;from&apos;. check with other files in webkitpy to confirm.

&gt; Tools/Scripts/webkitpy/tool/bot/patchanalysistask.py:135
&gt; +            args.append(&quot;--group=%s&quot; % self._delegate.group())

instead of try/finally, it would be better to use something like hasattr(self._delegate, &apos;group&apos;) to check if group is present and then append to args accordingly.

&gt; Tools/Scripts/webkitpy/tool/bot/patchanalysistask.py:151
&gt; +            args.append(&quot;--group=%s&quot; % self._delegate.group())

instead of try/finally, it would be better to use something like hasattr(self._delegate, &apos;group&apos;) to check if group is present and then append to args accordingly.

&gt; Tools/Scripts/webkitpy/tool/bot/patchanalysistask.py:170
&gt; +            args.append(&quot;--group=%s&quot; % self._delegate.group())

instead of try/finally, it would be better to use something like hasattr(self._delegate, &apos;group&apos;) to check if group is present and then append to args accordingly.

&gt; Tools/Scripts/webkitpy/tool/bot/patchanalysistask.py:189
&gt; +            args.append(&quot;--group=%s&quot; % self._delegate.group())

instead of try/finally, it would be better to use something like hasattr(self._delegate, &apos;group&apos;) to check if group is present and then append to args accordingly.

&gt; Tools/Scripts/webkitpy/tool/bot/patchanalysistask.py:243
&gt; +            else:

&apos;else&apos; keyword is not required here since if statement has a return.

&gt; Tools/Scripts/webkitpy/tool/bot/patchanalysistask.py:244
&gt; +                # TODO svijayaraghavan@apple.com: Comment this, and uncomment the below lines so it actually builds without patch

please fix the TODO.

&gt; Tools/Scripts/webkitpy/tool/bot/patchanalysistask.py:255
&gt;  

Question: Do we need to check for flakiness of the tests similar to layout tests, and report to flakiness dashboard (if dashboard supports these results)? Maybe something to consider for future.

&gt; Tools/Scripts/webkitpy/tool/commands/earlywarningsystem.py:61
&gt; +            dir = os.path.dirname(os.path.dirname(os.path.dirname(self._port.results_directory())))

dir should be renamed to more readable name to indicate whether it is for results or logs. Also we try to avoid abbreviations in variable names, see: https://webkit.org/code-style-guidelines/#names-full-words

&gt; Tools/Scripts/webkitpy/tool/commands/earlywarningsystem.py:139
&gt; +        else:

&apos;else&apos; can be removed.

&gt; Tools/Scripts/webkitpy/tool/steps/build.py:73
&gt; +            group = None

can consider moving this line above &apos;if&apos; statement and removing &apos;else&apos;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1264311</commentid>
    <comment_count>8</comment_count>
      <attachid>298160</attachid>
    <who name="Srinivasan Vijayaraghavan">webkit</who>
    <bug_when>2017-01-05 18:19:40 -0800</bug_when>
    <thetext>Created attachment 298160
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1264315</commentid>
    <comment_count>9</comment_count>
    <who name="Srinivasan Vijayaraghavan">webkit</who>
    <bug_when>2017-01-05 18:22:18 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; &gt; Tools/Scripts/webkitpy/tool/bot/patchanalysistask.py:244
&gt; &gt; +                # TODO svijayaraghavan@apple.com: Comment this, and uncomment the below lines so it actually builds without patch
&gt; 
&gt; please fix the TODO.
Just to clarify - the item in the TODO was already done, I just forgot to take out the TODO comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1264316</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-01-05 18:22:28 -0800</bug_when>
    <thetext>Attachment 298160 did not pass style-queue:


ERROR: Tools/Scripts/webkitpy/tool/commands/earlywarningsystem.py:138:  [AbstractEarlyWarningSystem.group] Instance of &apos;AbstractEarlyWarningSystem&apos; has no &apos;_group&apos; member  [pylint/E1101] [5]
Total errors found: 1 in 14 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1266307</commentid>
    <comment_count>11</comment_count>
      <attachid>298714</attachid>
    <who name="Srinivasan Vijayaraghavan">webkit</who>
    <bug_when>2017-01-12 14:55:41 -0800</bug_when>
    <thetext>Created attachment 298714
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1266385</commentid>
    <comment_count>12</comment_count>
      <attachid>298739</attachid>
    <who name="Srinivasan Vijayaraghavan">webkit</who>
    <bug_when>2017-01-12 17:19:58 -0800</bug_when>
    <thetext>Created attachment 298739
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1266437</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-01-13 00:28:08 -0800</bug_when>
    <thetext>Attachment 298739 did not pass style-queue:


ERROR: Tools/Scripts/webkitpy/tool/commands/earlywarningsystem.py:137:  [AbstractEarlyWarningSystem.group] Instance of &apos;AbstractEarlyWarningSystem&apos; has no &apos;_group&apos; member  [pylint/E1101] [5]
Total errors found: 1 in 14 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1266630</commentid>
    <comment_count>14</comment_count>
      <attachid>298802</attachid>
    <who name="Srinivasan Vijayaraghavan">webkit</who>
    <bug_when>2017-01-13 15:52:51 -0800</bug_when>
    <thetext>Created attachment 298802
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1266633</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-01-13 15:54:23 -0800</bug_when>
    <thetext>Attachment 298802 did not pass style-queue:


ERROR: Tools/Scripts/webkitpy/tool/commands/earlywarningsystem.py:137:  [AbstractEarlyWarningSystem.group] Instance of &apos;AbstractEarlyWarningSystem&apos; has no &apos;_group&apos; member  [pylint/E1101] [5]
Total errors found: 1 in 15 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1266652</commentid>
    <comment_count>16</comment_count>
      <attachid>298807</attachid>
    <who name="Srinivasan Vijayaraghavan">webkit</who>
    <bug_when>2017-01-13 16:35:26 -0800</bug_when>
    <thetext>Created attachment 298807
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1266653</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-01-13 16:37:35 -0800</bug_when>
    <thetext>Attachment 298807 did not pass style-queue:


ERROR: Tools/Scripts/webkitpy/tool/commands/earlywarningsystem.py:137:  [AbstractEarlyWarningSystem.group] Instance of &apos;AbstractEarlyWarningSystem&apos; has no &apos;_group&apos; member  [pylint/E1101] [5]
Total errors found: 1 in 15 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1271539</commentid>
    <comment_count>18</comment_count>
      <attachid>300176</attachid>
    <who name="Srinivasan Vijayaraghavan">webkit</who>
    <bug_when>2017-01-30 18:21:40 -0800</bug_when>
    <thetext>Created attachment 300176
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1271540</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-01-30 18:24:14 -0800</bug_when>
    <thetext>Attachment 300176 did not pass style-queue:


ERROR: Tools/Scripts/webkitpy/tool/commands/earlywarningsystem.py:140:  [AbstractEarlyWarningSystem.group] Instance of &apos;AbstractEarlyWarningSystem&apos; has no &apos;_group&apos; member  [pylint/E1101] [5]
Total errors found: 1 in 21 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1272027</commentid>
    <comment_count>20</comment_count>
      <attachid>300294</attachid>
    <who name="Srinivasan Vijayaraghavan">webkit</who>
    <bug_when>2017-01-31 20:17:53 -0800</bug_when>
    <thetext>Created attachment 300294
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1272028</commentid>
    <comment_count>21</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-01-31 20:20:09 -0800</bug_when>
    <thetext>Attachment 300294 did not pass style-queue:


ERROR: Tools/Scripts/webkitpy/tool/commands/earlywarningsystem.py:140:  [AbstractEarlyWarningSystem.group] Instance of &apos;AbstractEarlyWarningSystem&apos; has no &apos;_group&apos; member  [pylint/E1101] [5]
Total errors found: 1 in 21 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1272681</commentid>
    <comment_count>22</comment_count>
      <attachid>300461</attachid>
    <who name="Srinivasan Vijayaraghavan">webkit</who>
    <bug_when>2017-02-02 15:27:58 -0800</bug_when>
    <thetext>Created attachment 300461
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1272684</commentid>
    <comment_count>23</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-02-02 15:31:22 -0800</bug_when>
    <thetext>Attachment 300461 did not pass style-queue:


ERROR: Tools/Scripts/webkitpy/tool/commands/earlywarningsystem.py:140:  [AbstractEarlyWarningSystem.group] Instance of &apos;AbstractEarlyWarningSystem&apos; has no &apos;_group&apos; member  [pylint/E1101] [5]
Total errors found: 1 in 21 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1272721</commentid>
    <comment_count>24</comment_count>
      <attachid>300474</attachid>
    <who name="Srinivasan Vijayaraghavan">webkit</who>
    <bug_when>2017-02-02 16:27:51 -0800</bug_when>
    <thetext>Created attachment 300474
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1272723</commentid>
    <comment_count>25</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-02-02 16:30:48 -0800</bug_when>
    <thetext>Attachment 300474 did not pass style-queue:


ERROR: Tools/Scripts/webkitpy/tool/commands/earlywarningsystem.py:140:  [AbstractEarlyWarningSystem.group] Instance of &apos;AbstractEarlyWarningSystem&apos; has no &apos;_group&apos; member  [pylint/E1101] [5]
Total errors found: 1 in 21 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1273840</commentid>
    <comment_count>26</comment_count>
      <attachid>300784</attachid>
    <who name="Srinivasan Vijayaraghavan">webkit</who>
    <bug_when>2017-02-06 20:28:06 -0800</bug_when>
    <thetext>Created attachment 300784
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1273844</commentid>
    <comment_count>27</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-02-06 20:31:20 -0800</bug_when>
    <thetext>Attachment 300784 did not pass style-queue:


ERROR: Tools/Scripts/webkitpy/tool/commands/earlywarningsystem.py:141:  [AbstractEarlyWarningSystem.group] Instance of &apos;AbstractEarlyWarningSystem&apos; has no &apos;_group&apos; member  [pylint/E1101] [5]
Total errors found: 1 in 23 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1274116</commentid>
    <comment_count>28</comment_count>
      <attachid>300838</attachid>
    <who name="Srinivasan Vijayaraghavan">webkit</who>
    <bug_when>2017-02-07 12:50:53 -0800</bug_when>
    <thetext>Created attachment 300838
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1274118</commentid>
    <comment_count>29</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-02-07 12:52:31 -0800</bug_when>
    <thetext>Attachment 300838 did not pass style-queue:


ERROR: Tools/Scripts/webkitpy/tool/commands/earlywarningsystem.py:141:  [AbstractEarlyWarningSystem.group] Instance of &apos;AbstractEarlyWarningSystem&apos; has no &apos;_group&apos; member  [pylint/E1101] [5]
Total errors found: 1 in 23 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1274773</commentid>
    <comment_count>30</comment_count>
      <attachid>301020</attachid>
    <who name="Srinivasan Vijayaraghavan">webkit</who>
    <bug_when>2017-02-09 00:04:55 -0800</bug_when>
    <thetext>Created attachment 301020
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1274778</commentid>
    <comment_count>31</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-02-09 00:08:33 -0800</bug_when>
    <thetext>Attachment 301020 did not pass style-queue:


ERROR: Tools/Scripts/webkitpy/tool/commands/earlywarningsystem.py:145:  [AbstractEarlyWarningSystem.group] Instance of &apos;AbstractEarlyWarningSystem&apos; has no &apos;_group&apos; member  [pylint/E1101] [5]
Total errors found: 1 in 23 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1274973</commentid>
    <comment_count>32</comment_count>
      <attachid>301069</attachid>
    <who name="Srinivasan Vijayaraghavan">webkit</who>
    <bug_when>2017-02-09 12:24:44 -0800</bug_when>
    <thetext>Created attachment 301069
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1274975</commentid>
    <comment_count>33</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-02-09 12:27:42 -0800</bug_when>
    <thetext>Attachment 301069 did not pass style-queue:


ERROR: Tools/Scripts/webkitpy/tool/commands/earlywarningsystem.py:145:  [AbstractEarlyWarningSystem.group] Instance of &apos;AbstractEarlyWarningSystem&apos; has no &apos;_group&apos; member  [pylint/E1101] [5]
Total errors found: 1 in 23 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1275009</commentid>
    <comment_count>34</comment_count>
      <attachid>301069</attachid>
    <who name="Dean Johnson">dean_johnson</who>
    <bug_when>2017-02-09 13:24:17 -0800</bug_when>
    <thetext>Comment on attachment 301069
Patch

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

As a heads up, I didn&apos;t do much reviewing of the unit tests. Really happy to see the labor put towards this come to fruition! :)

&gt; Tools/Scripts/webkitpy/common/config/ports.py:167
&gt; +        if (test_suite == &quot;jsc&quot;):

Nit: No need for parens.

&gt; Tools/Scripts/webkitpy/common/net/jsctestresults.py:51
&gt; +    def __init__(self, all_api_tests_passed, stress_test_failures):

Nit: __init__ should always be the first method defined for a class when not inherited.

&gt; Tools/Scripts/webkitpy/common/net/jsctestresults.py:55
&gt; +        self._test_results = stress_test_failures[:]

This should be renamed to self.test_results since it will be accessed outside of the class (see comments below).

&gt; Tools/Scripts/webkitpy/common/net/jsctestresults.py:61
&gt; +               set(self._stress_test_failures) == set(other._stress_test_failures)

Python style discourages the use of \ to break lines. Instead, wrap the statement with parens ().

&gt; Tools/Scripts/webkitpy/common/net/jsctestresults.py:67
&gt; +        return self._stress_test_failures

This is the logical equivalent of a &quot;getter&quot; and because Python doesn&apos;t use public/private scopes you should remove this function and do direct variable access. To do this, rename _stress_test_failures =&gt; stress_test_failures and call &lt;some_instantiated_JSCTestResultsobject&gt;.stress_test_failures to retrieve the value.

&gt; Tools/Scripts/webkitpy/common/net/jsctestresults.py:70
&gt; +        return self._all_api_tests_passed

Ditto to &quot;getter&quot; comment.

&gt; Tools/Scripts/webkitpy/common/net/jsctestresults.py:76
&gt; +        return self.stress_test_failures()

Ditto to &quot;getter&quot; comment.

&gt; Tools/Scripts/webkitpy/common/net/jsctestresults.py:79
&gt; +        return self._test_results

Ditto to &quot;getter&quot; comment.

&gt; Tools/Scripts/webkitpy/tool/bot/jsctestresultsreader.py:30
&gt; +class JSCTestResultsReader(object):

Is this entire class really necessary? All it does it open a file and read the contents then pass it through to JSCTestResults. It seems like it&apos;d be better to define an @classmethod that took a results_file_path and maybe had a name like &quot;results_from_file.&quot; But if this is the only entrypoint to JSCResults, it might be even better just to merge the functionality of this class and the @classmethod from JSCTestResults::results_from_string.

&gt; Tools/Scripts/webkitpy/tool/bot/patchanalysistask.py:143
&gt; +            &quot;Patch was not relevant&quot;)

It doesn&apos;t seem necessary for line-length concerns to put each argument on its own line. Also, if self._run_command has default arguments then using them like: `return self._run_command(args, success_text=&quot;Checked relevance of patch&quot;, failure_text=&quot;Patch was not relevant&quot;)` would be more clear.

&gt; Tools/Scripts/webkitpy/tool/bot/patchanalysistask.py:159
&gt; +            &quot;Patch does not build&quot;)

Ditto to line-length and default args comment.

&gt; Tools/Scripts/webkitpy/tool/bot/patchanalysistask.py:175
&gt; +            &quot;Unable to build without patch&quot;)

Ditto to line-length and default args comment.

&gt; Tools/Scripts/webkitpy/tool/bot/patchanalysistask.py:213
&gt; +            &quot;Unable to pass tests without patch (tree is red?)&quot;)

Ditto to line-length and default args comment.

&gt; Tools/Scripts/webkitpy/tool/bot/patchanalysistask.py:258
&gt; +        if hasattr(self._delegate, &apos;group&apos;) and self._delegate.group() == &quot;jsc&quot;:

If make_option is used for self._delegate, I don&apos;t believe you need the hasattr(self._delegate, &apos;group&apos;) statement here.

&gt; Tools/Scripts/webkitpy/tool/bot/patchanalysistask.py:259
&gt; +            first_results = self._delegate.test_results()

I&apos;m unclear on what &quot;first&quot; and &quot;second&quot; are referring to -- can you rename the variables to be more accurate?

&gt; Tools/Scripts/webkitpy/tool/bot/patchanalysistask.py:348
&gt; +            return True

This function is very long... is there a way you can nicely put some of the logic into more isolated functions?

&gt; Tools/Scripts/webkitpy/tool/commands/earlywarningsystem_unittest.py:68
&gt; +        class TestEWS(AbstractEarlyWarningSystem):

TestEWS should be defined outside of this function (at the top level of the file).

&gt; Tools/Scripts/webkitpy/tool/steps/build.py:71
&gt; +        if hasattr(self._options, &apos;group&apos;):

group should always be defined given you have a default value defined (as None).

&gt; Tools/Scripts/webkitpy/tool/steps/checkpatchrelevance.py:64
&gt; +        if group == &quot;jsc&quot;:

Given we know we&apos;re going to be adding many more projects here, I recommend you do something like this:

# Define group_to_path_mapping at the same scope as jsc_paths
group_to_paths_mapping = {
    &apos;jsc&apos;: jsc_paths,
}

def run(self, state)
    .....
    relevant_paths = self.group_to_paths_mapping.get(group, [])
    relevant = self._does_contain_change_in_paths(change_list, relevant_paths)

&gt; Tools/Scripts/webkitpy/tool/steps/checkpatchrelevance.py:72
&gt; +        else:

This else is unnecessary since you return True in the alternative branch.

&gt; Tools/Scripts/webkitpy/tool/steps/runtests.py:61
&gt; +        if hasattr(self._options, &quot;group&quot;) and self._options.group == &quot;jsc&quot;:

Ditto to hasattr being unnecessary.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1275081</commentid>
    <comment_count>35</comment_count>
    <who name="Srinivasan Vijayaraghavan">webkit</who>
    <bug_when>2017-02-09 15:38:43 -0800</bug_when>
    <thetext>(In reply to comment #34)
&gt; 
&gt; Ditto to &quot;getter&quot; comment.
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/common/net/jsctestresults.py:76
&gt; &gt; +        return self.stress_test_failures()
&gt; 
&gt; Ditto to &quot;getter&quot; comment.
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/common/net/jsctestresults.py:79
&gt; &gt; +        return self._test_results
&gt; 
&gt; Ditto to &quot;getter&quot; comment.

failing_test_results(), failing_tests(), and test_results() are all called by other parts of the pre-existing code (for example, the code that posts a comment to Bugzilla containing a list of failing tests, which is _post_reject_message_on_bug()). My objective here was to be able to replace LayoutTestResults with JSCTestResults and have everything else just work.

Getting rid of methods from JSCTestResults will require adding logic elsewhere (eg. the existing code would have to be changed to call test_results() on LayoutTestResults objects, but just look up test_results on JSCTestResults objects). Given that we will have other types of tests in the future I think my method seemed cleaner, but if you&apos;re in favor of the other approach please let me know what your reasoning is.

That being said, I&apos;ll get rid of the ones that aren&apos;t also present in LayoutTestResults.

&gt; &gt; Tools/Scripts/webkitpy/tool/bot/jsctestresultsreader.py:30
&gt; &gt; +class JSCTestResultsReader(object):
&gt; 
&gt; Is this entire class really necessary? All it does it open a file and read
&gt; the contents then pass it through to JSCTestResults. It seems like it&apos;d be
&gt; better to define an @classmethod that took a results_file_path and maybe had
&gt; a name like &quot;results_from_file.&quot; But if this is the only entrypoint to
&gt; JSCResults, it might be even better just to merge the functionality of this
&gt; class and the @classmethod from JSCTestResults::results_from_string.

AbstractEarlyWarningSystem requires a reader object which - at the very least - has a .results() method. The situation here is the same - we could either modify the existing code, or have a class that can be easily swapped with an existing class (in this case, LayoutTestResultsReader). Again, I think this is the cleaner tradeoff, but if you prefer the other way please let me know what your reasoning is.

&gt; &gt; Tools/Scripts/webkitpy/tool/bot/patchanalysistask.py:143
&gt; &gt; +            &quot;Patch was not relevant&quot;)
&gt; 
&gt; It doesn&apos;t seem necessary for line-length concerns to put each argument on
&gt; its own line. Also, if self._run_command has default arguments then using
&gt; them like: `return self._run_command(args, success_text=&quot;Checked relevance
&gt; of patch&quot;, failure_text=&quot;Patch was not relevant&quot;)` would be more clear.
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/tool/bot/patchanalysistask.py:159
&gt; &gt; +            &quot;Patch does not build&quot;)
&gt; 
&gt; Ditto to line-length and default args comment.
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/tool/bot/patchanalysistask.py:175
&gt; &gt; +            &quot;Unable to build without patch&quot;)
&gt; 
&gt; Ditto to line-length and default args comment.
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/tool/bot/patchanalysistask.py:213
&gt; &gt; +            &quot;Unable to pass tests without patch (tree is red?)&quot;)
&gt; 
&gt; Ditto to line-length and default args comment.
I&apos;ll make these changes.

&gt; 
&gt; &gt; Tools/Scripts/webkitpy/tool/bot/patchanalysistask.py:258
&gt; &gt; +        if hasattr(self._delegate, &apos;group&apos;) and self._delegate.group() == &quot;jsc&quot;:
&gt; 
&gt; If make_option is used for self._delegate, I don&apos;t believe you need the
&gt; hasattr(self._delegate, &apos;group&apos;) statement here.
That is the case if the _delegate is AbstarctEarlyWarningSystem, but there is a whole bunch of other unrelates queues that also use PatchAnalysisTask. I really didn&apos;t want to have this, but I couldn&apos;t find a way around it that didn&apos;t involve adding extra variables to queues that don&apos;t need them.

&gt; &gt; Tools/Scripts/webkitpy/tool/bot/patchanalysistask.py:259
&gt; &gt; +            first_results = self._delegate.test_results()
&gt; 
&gt; I&apos;m unclear on what &quot;first&quot; and &quot;second&quot; are referring to -- can you rename
&gt; the variables to be more accurate?
first_results could be renamed to something like &quot;results_from_first_test_run&quot;. I didn&apos;t do that because the retry logic for layout tests also uses first_results.

&gt; &gt; Tools/Scripts/webkitpy/tool/bot/patchanalysistask.py:348
&gt; &gt; +            return True
&gt; 
&gt; This function is very long... is there a way you can nicely put some of the
&gt; logic into more isolated functions?
I&apos;ll create separate functions.

&gt; 
&gt; &gt; Tools/Scripts/webkitpy/tool/commands/earlywarningsystem_unittest.py:68
&gt; &gt; +        class TestEWS(AbstractEarlyWarningSystem):
&gt; 
&gt; TestEWS should be defined outside of this function (at the top level of the
&gt; file).
I&apos;ll fix this.

&gt; &gt; Tools/Scripts/webkitpy/tool/steps/build.py:71
&gt; &gt; +        if hasattr(self._options, &apos;group&apos;):
&gt; 
&gt; group should always be defined given you have a default value defined (as
&gt; None).
I&apos;&apos;ll fix this.

&gt; &gt; Tools/Scripts/webkitpy/tool/steps/checkpatchrelevance.py:64
&gt; &gt; +        if group == &quot;jsc&quot;:
&gt; 
&gt; Given we know we&apos;re going to be adding many more projects here, I recommend
&gt; you do something like this:
&gt; 
&gt; # Define group_to_path_mapping at the same scope as jsc_paths
&gt; group_to_paths_mapping = {
&gt;     &apos;jsc&apos;: jsc_paths,
&gt; }
&gt; 
&gt; def run(self, state)
&gt;     .....
&gt;     relevant_paths = self.group_to_paths_mapping.get(group, [])
&gt;     relevant = self._does_contain_change_in_paths(change_list,
&gt; relevant_paths)
This is great, I&apos;ll add this in!

&gt; &gt; Tools/Scripts/webkitpy/tool/steps/checkpatchrelevance.py:72
&gt; &gt; +        else:
&gt; 
&gt; This else is unnecessary since you return True in the alternative branch.
I&apos;&apos;ll fix this.

&gt; &gt; Tools/Scripts/webkitpy/tool/steps/runtests.py:61
&gt; &gt; +        if hasattr(self._options, &quot;group&quot;) and self._options.group == &quot;jsc&quot;:
&gt; 
&gt; Ditto to hasattr being unnecessary.
I&apos;&apos;ll fix this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1275122</commentid>
    <comment_count>36</comment_count>
      <attachid>301069</attachid>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2017-02-09 16:39:34 -0800</bug_when>
    <thetext>Comment on attachment 301069
Patch

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

&gt; Tools/Scripts/webkitpy/common/net/jsctestresults.py:32
&gt; +        intersection_api_tests_passed = first._all_api_tests_passed or second._all_api_tests_passed

please verify whether &apos;or&apos; or &apos;and&apos; should be used for intersection.

&gt; Tools/Scripts/webkitpy/common/net/jsctestresults.py:44
&gt; +            return None

might be a good idea to log a warning as well.

&gt; Tools/Scripts/webkitpy/common/net/jsctestresults_unittest.py:31
&gt; +        empty_string = &quot;&quot;

might consider renaming empty_string to empty_json to make it more consistent.

&gt; Tools/Scripts/webkitpy/tool/bot/jscews_unittest.py:45
&gt; +        self.failure_status_id = 42

any specific reason to choose 42? would it make more sense to keep failure id as -1?

&gt; Tools/Scripts/webkitpy/tool/bot/jscews_unittest.py:52
&gt; +        else:

&apos;else&apos; is unnecessary since if returns a value.

&gt; Tools/Scripts/webkitpy/tool/bot/jscews_unittest.py:99
&gt; +        self.assertEqual(return_value, True)

should use assertTrue(return_value)

&gt; Tools/Scripts/webkitpy/tool/bot/jscews_unittest.py:119
&gt; +        self.assertEqual(return_value, True)

same, should use assertTrue(return_value)

&gt; Tools/Scripts/webkitpy/tool/bot/jscews_unittest.py:129
&gt; +        self.assertEqual(return_value, True)

same, should use assertTrue(return_value)

&gt; Tools/Scripts/webkitpy/tool/bot/jscews_unittest.py:139
&gt; +        self.assertEqual(return_value, True)

same, should use assertTrue(return_value)

&gt; Tools/Scripts/webkitpy/tool/bot/jscews_unittest.py:159
&gt; +        self.assertEqual(return_value, False)

same, should use assertFalse(return_value)

&gt; Tools/Scripts/webkitpy/tool/bot/jscews_unittest.py:169
&gt; +        self.assertEqual(return_value, False)

same, should use assertFalse(return_value)

&gt; Tools/Scripts/webkitpy/tool/bot/jscews_unittest.py:179
&gt; +        self.assertEqual(return_value, False)

same, should use assertFalse(return_value)

&gt; Tools/Scripts/webkitpy/tool/bot/jscews_unittest.py:188
&gt; +        self.assertEqual(return_value, True)

same, should use assertTrue(return_value)

&gt; Tools/Scripts/webkitpy/tool/bot/jscews_unittest.py:198
&gt; +        self.assertEqual(return_value, True)

same, should use assertTrue(return_value)

&gt; Tools/Scripts/webkitpy/tool/bot/jscews_unittest.py:209
&gt; +        self.assertEqual(task.test_run_count(), 3)

don&apos;t we need to assert the return_value here?

&gt; Tools/Scripts/webkitpy/tool/bot/jscews_unittest.py:218
&gt; +        self.assertEqual(return_value, True)

same, should use assertTrue(return_value)

&gt; Tools/Scripts/webkitpy/tool/steps/checkpatchrelevance.py:40
&gt; +    jsc_paths = [

can consider renaming it to jsc_relevant_paths

&gt; Tools/Scripts/webkitpy/tool/steps/checkpatchrelevance.py:47
&gt; +    def _does_contain_change_in_paths(self, files, patterns):

_does_contain_change_in_paths is  misleading name (we are not searching for change in path here)

&gt; Tools/Scripts/webkitpy/tool/steps/checkpatchrelevance.py:48
&gt; +        for item in files:

renaming item to file would make it more readable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1275160</commentid>
    <comment_count>37</comment_count>
    <who name="Srinivasan Vijayaraghavan">webkit</who>
    <bug_when>2017-02-09 17:28:14 -0800</bug_when>
    <thetext>(In reply to comment #36)
&gt; Comment on attachment 301069 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=301069&amp;action=review
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/common/net/jsctestresults.py:32
&gt; &gt; +        intersection_api_tests_passed = first._all_api_tests_passed or second._all_api_tests_passed
&gt; 
&gt; please verify whether &apos;or&apos; or &apos;and&apos; should be used for intersection.
I know it looks funny, but it should be &apos;or&apos;. If there are some API test failures the first time, but they all passed the second time, those failures are flaky results, so the reported value of api_tests_passed should be True. There are some examples in the unittests at webkitpy/common/net/jsctestresults_unittest.py.

&gt; &gt; Tools/Scripts/webkitpy/common/net/jsctestresults.py:44
&gt; &gt; +            return None
&gt; 
&gt; might be a good idea to log a warning as well.
I&apos;ll do this.

&gt; &gt; Tools/Scripts/webkitpy/common/net/jsctestresults_unittest.py:31
&gt; &gt; +        empty_string = &quot;&quot;
&gt; 
&gt; might consider renaming empty_string to empty_json to make it more
&gt; consistent.
I&apos;ll do this.

&gt; &gt; Tools/Scripts/webkitpy/tool/bot/jscews_unittest.py:45
&gt; &gt; +        self.failure_status_id = 42
&gt; 
&gt; any specific reason to choose 42? would it make more sense to keep failure
&gt; id as -1?
I&apos;ll change it to zero. This becomes a part of the URL to the test results, so it can&apos;t be -1.

&gt; &gt; Tools/Scripts/webkitpy/tool/bot/jscews_unittest.py:52
&gt; &gt; +        else:
&gt; 
&gt; &apos;else&apos; is unnecessary since if returns a value.
I&apos;ll fix this.

&gt; &gt; Tools/Scripts/webkitpy/tool/bot/jscews_unittest.py:99
&gt; &gt; +        self.assertEqual(return_value, True)
&gt; 
&gt; should use assertTrue(return_value)
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/tool/bot/jscews_unittest.py:119
&gt; &gt; +        self.assertEqual(return_value, True)
&gt; 
&gt; same, should use assertTrue(return_value)
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/tool/bot/jscews_unittest.py:129
&gt; &gt; +        self.assertEqual(return_value, True)
&gt; 
&gt; same, should use assertTrue(return_value)
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/tool/bot/jscews_unittest.py:139
&gt; &gt; +        self.assertEqual(return_value, True)
&gt; 
&gt; same, should use assertTrue(return_value)
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/tool/bot/jscews_unittest.py:159
&gt; &gt; +        self.assertEqual(return_value, False)
&gt; 
&gt; same, should use assertFalse(return_value)
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/tool/bot/jscews_unittest.py:169
&gt; &gt; +        self.assertEqual(return_value, False)
&gt; 
&gt; same, should use assertFalse(return_value)
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/tool/bot/jscews_unittest.py:179
&gt; &gt; +        self.assertEqual(return_value, False)
&gt; 
&gt; same, should use assertFalse(return_value)
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/tool/bot/jscews_unittest.py:188
&gt; &gt; +        self.assertEqual(return_value, True)
&gt; 
&gt; same, should use assertTrue(return_value)
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/tool/bot/jscews_unittest.py:198
&gt; &gt; +        self.assertEqual(return_value, True)
&gt; 
&gt; same, should use assertTrue(return_value)
&gt;
&gt; &gt; Tools/Scripts/webkitpy/tool/bot/jscews_unittest.py:218
&gt; &gt; +        self.assertEqual(return_value, True)
&gt; 
&gt; same, should use assertTrue(return_value)
I&apos;ll fix this set of items.

&gt; &gt; Tools/Scripts/webkitpy/tool/bot/jscews_unittest.py:209
&gt; &gt; +        self.assertEqual(task.test_run_count(), 3)
&gt; 
&gt; don&apos;t we need to assert the return_value here?
There should be no return value in this case, since we expect the function call to raise an exception and not return. For this case, I&apos;ll change &quot;return_value = task._test_patch()&quot; to simply &quot;task._test_patch()&quot; since return_value shouldn&apos;t be set anyway.

&gt; &gt; Tools/Scripts/webkitpy/tool/steps/checkpatchrelevance.py:40
&gt; &gt; +    jsc_paths = [
&gt; 
&gt; can consider renaming it to jsc_relevant_paths
I&apos;ll do this.

&gt; &gt; Tools/Scripts/webkitpy/tool/steps/checkpatchrelevance.py:47
&gt; &gt; +    def _does_contain_change_in_paths(self, files, patterns):
&gt; 
&gt; _does_contain_change_in_paths is  misleading name (we are not searching for
&gt; change in path here)
I&apos;ll rename the method.

&gt; &gt; Tools/Scripts/webkitpy/tool/steps/checkpatchrelevance.py:48
&gt; &gt; +        for item in files:
&gt; 
&gt; renaming item to file would make it more readable.
I&apos;ll do this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1275181</commentid>
    <comment_count>38</comment_count>
      <attachid>301117</attachid>
    <who name="Srinivasan Vijayaraghavan">webkit</who>
    <bug_when>2017-02-09 18:25:05 -0800</bug_when>
    <thetext>Created attachment 301117
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1275182</commentid>
    <comment_count>39</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-02-09 18:27:03 -0800</bug_when>
    <thetext>Attachment 301117 did not pass style-queue:


ERROR: Tools/Scripts/webkitpy/tool/commands/earlywarningsystem.py:145:  [AbstractEarlyWarningSystem.group] Instance of &apos;AbstractEarlyWarningSystem&apos; has no &apos;_group&apos; member  [pylint/E1101] [5]
Total errors found: 1 in 25 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1275245</commentid>
    <comment_count>40</comment_count>
      <attachid>301117</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-02-10 00:19:23 -0800</bug_when>
    <thetext>Comment on attachment 301117
Patch

Attachment 301117 did not pass ios-sim-ews (ios-simulator-wk2):
Output: http://webkit-queues.webkit.org/results/3057354

New failing tests:
compositing/masks/solid-color-masked.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1275246</commentid>
    <comment_count>41</comment_count>
      <attachid>301137</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-02-10 00:19:27 -0800</bug_when>
    <thetext>Created attachment 301137
Archive of layout-test-results from ews125 for ios-simulator-wk2

The attached test failures were seen while running run-webkit-tests on the ios-sim-ews.
Bot: ews125  Port: ios-simulator-wk2  Platform: Mac OS X 10.11.6</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1275616</commentid>
    <comment_count>42</comment_count>
      <attachid>301117</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-02-10 16:11:22 -0800</bug_when>
    <thetext>Comment on attachment 301117
Patch

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

&gt; Tools/QueueStatusServer/config/queues.py:2
&gt; -# Copyright (C) 2014 Apple Inc. All rights reserved.
&gt; +# Copyright (C) 2014, 2017 Apple Inc. All rights reserved.
&gt;  # Copyright (C) 2013 Google Inc. All rights reserved.

This patch is sufficient large. Towards making it straightforward to review this code for correctness I would appreciate if you would split this patch into three sub-patches: one patch for the changes to QueueStatusServer, one patch for non-test webkitpy changes, and one patch for the webkitpy unit tests. When it comes time to land the patches we can choose to land each sub-patch or combine the sub-patches into one mega patch.

&gt; Tools/QueueStatusServer/handlers/statusbubble.py:198
&gt;              return True
&gt; -        # EWS queues are also shown when complete.
&gt; -        return bool(queue.is_ews() and attachment.status_for_queue(queue))
&gt; +
&gt; +        # EWS queues are also shown when complete
&gt; +        # But JSC EWS bubble is not shown if the patch is not relevant to JSC.
&gt; +        if not queue.is_ews():
&gt; +            return False
&gt; +
&gt; +        status = attachment.status_for_queue(queue)
&gt; +        if queue.name() == &quot;jsc-ews&quot;:
&gt; +            return not status.message.startswith(&quot;Patch not applicable&quot;)
&gt; +        return bool(status)

This is error prone because it depends on the formatting of the status message that the EWS code submits and the EWS code lives in a different directory hierarchy (Tools/Scripts/webkitpy) from this code. I also do not feel that this &quot;do not show bubble if patch is not applicable&quot; needs to be specific to the JSC EWS. Such functionality could be beneficial for other queues so as make the status bubble listing less noisy. Towards making this code less error prone, we need to keep this status message in sync between this code and the code in Tools/Scripts/webkitpy. I suggest that we do the following:

QueueStatusServer changes:

1. Define a dedicated status message constant, say skip_status or non_applicable_status, in Tools/QueueStatusServer/config/messages.py and a similarly named class variable in AbstractQueue (e.g. _skip_status).
2. Add a public member function to QueueStatus, say did_skip(), that returns true if and only if self.message ==  messages.skip_status

webkitpy changes:

1. Implement AbstractPatchQueue._did_skip() similar to how we implemented AbstractPatchQueue._did_pass() substituting self._skip_status for self._pass_status.
2. Modify AbstractEarlyWarningSystem.review_patch() to call AbstractPatchQueue._did_skip() and then return False when it catches the exception PatchIsNotApplicable.

Then we can update this code (in _should_show_bubble_for()) to read:

if not queue.is_ews():
    return False

status = attachment.status_for_queue(queue)
return bool(status and not status.did_skip())

&gt; Tools/Scripts/webkitpy/common/net/jsctestresults.py:29
&gt; +class JSCTestResults(object):

This class needs to conform to the same interface as LayoutTestResults. What is the preferred way to do this in Python? One idea is to define an AbstractTestResults class that implements stub functions that raise an exception. Then have this class and LayoutTestResults extend AbstractTestResults and override the applicable/all methods.

&gt; Tools/Scripts/webkitpy/common/net/jsctestresults.py:52
&gt; +            _log.error(&quot;Invalid JSON results&quot;)

This patch alternatives between using double-quoted string literals and single-quoted string literals. From my understanding we prefer to use single-quoted string literals unless the string literal contains a single quote (then we use a double-quoted string literal). Regardless, we should pick one quoting style and stick with it throughout this patch.

&gt; Tools/Scripts/webkitpy/common/net/jsctestresults.py:77
&gt; +    def failing_test_results(self):
&gt; +        return self.results
&gt; +
&gt; +    def test_results(self):
&gt; +        return self.results
&gt; +
&gt; +    def failing_tests(self):
&gt; +        return self.results

How did you come to the decision to return the same result for all of these functions?I know that we designed JSCTestResults to conform to the interface of LayoutTestResults but if methods are not applicable for the JSC EWS and later changes ensure we do not call these functions then I suggest we omit such functions. If we really need these functions then it seems weird that they are return the same result.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1276526</commentid>
    <comment_count>43</comment_count>
      <attachid>301437</attachid>
    <who name="Srinivasan Vijayaraghavan">webkit</who>
    <bug_when>2017-02-13 18:54:48 -0800</bug_when>
    <thetext>Created attachment 301437
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1276527</commentid>
    <comment_count>44</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-02-13 18:58:01 -0800</bug_when>
    <thetext>Attachment 301437 did not pass style-queue:


ERROR: Tools/Scripts/webkitpy/tool/commands/earlywarningsystem.py:144:  [AbstractEarlyWarningSystem.group] Instance of &apos;AbstractEarlyWarningSystem&apos; has no &apos;_group&apos; member  [pylint/E1101] [5]
Total errors found: 1 in 28 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1276543</commentid>
    <comment_count>45</comment_count>
      <attachid>301437</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-02-13 19:40:52 -0800</bug_when>
    <thetext>Comment on attachment 301437
Patch

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

r-; with the exception of my second remark in comment 42 all other remarks in comment 42 were neither addressed in this patch nor replied to with a reason for disagreement. Please either address all of my remarks in comment 42 in an updated patch or reply to them with your reason(s) for disagreement. I have some more questions with this iteration of the patch.

&gt; Tools/QueueStatusServer/handlers/statusbubble.py:190
&gt; +        # EWS queues that weren&apos;t skipped are also shown when complete.

I do not feel that this comment adds much value. If you want to keep it then at least move it below the if-statement because the code before the if-statement and the if-statement itself are for all queues, and non-EWS queues, respectively. The code that is applicable for EWS queues is after the if-statement (lines 193 thru 195).

&gt; Tools/Scripts/webkitpy/common/config/ports.py:111
&gt; +        if build_style == &quot;debug&quot;:
&gt; +            command.append(&quot;--debug&quot;)
&gt; +        if build_style == &quot;release&quot;:
&gt; +            command.append(&quot;--release&quot;)

I know that you are just mimicking the code from build_webkit_command/run_webkit_tests_command. We should not duplicate this code. We should define a static private helper function, say _append_build_style_flag(), that takes a list and a build style and appends the appropriate build flag. When we move this code into _append_build_style_flag() we should take this opportunity to clean it up and write it using an elif to avoid an unnecessary string comparison when build_style == &apos;debug&apos;. Then we can write build_jsc_command, build_webkit_command, and run_webkit_tests_command (and run_javascriptcore_tests_command?) in terms of _append_build_style_flag().

&gt; Tools/Scripts/webkitpy/common/config/ports.py:117
&gt; +        command.append(&quot;--json-output=jsc_test_results.json&quot;)

Can we write this as two arguments?

&gt; Tools/Scripts/webkitpy/common/config/ports.py:119
&gt; +        if (build_style == &quot;debug&quot;):
&gt; +            command.append(&quot;--debug&quot;)

How did you come to the decision to only support a debug build style?

&gt; Tools/Scripts/webkitpy/common/config/ports.py:169
&gt; +    def run_webkit_tests_command(self, build_style=None, test_suite=None):
&gt; +        if test_suite == &quot;jsc&quot;:
&gt; +            return super(MacPort, self).run_javascriptcore_tests_command(build_style)
&gt; +

Where are we invoking run_webkit_tests_command() with a non-None test_suite?

&gt; Tools/Scripts/webkitpy/tool/bot/jsctestresultsreader.py:38
&gt; +        except (IOError, KeyError):  # File does not exist or can&apos;t be read.

When is the exception KeyError raised? Unit tests?

&gt; Tools/Scripts/webkitpy/tool/commands/earlywarningsystem.py:61
&gt; +            jsc_results_directory = os.path.dirname(os.path.dirname(os.path.dirname(self._port.results_directory())))

We should not be burying this directory path here. Similar to how we have a Port.result_directory() function, please add a function to the port base class and/or derived classes that returns the appropriate path tot he JSC results directory.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1276544</commentid>
    <comment_count>46</comment_count>
      <attachid>301437</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-02-13 19:50:12 -0800</bug_when>
    <thetext>Comment on attachment 301437
Patch

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

&gt; Tools/QueueStatusServer/model/queuestatus.py:46
&gt; +        return self.message.startswith(messages.skip_status)

I just noticed that this disagrees with what I wrote in my second remark in comment 42, which implemented this function using a strict string comparision. Unless the EWS code does not emit skip_status (what does it emit when AbstractPatchQueue.did_fail() is invoked?) when skipping a patch by default, I do not feel there is value in having the EWS code (in webkitpy) emits a message of the form &quot;Patch not applicable to %s.&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1276989</commentid>
    <comment_count>47</comment_count>
    <who name="Srinivasan Vijayaraghavan">webkit</who>
    <bug_when>2017-02-14 16:17:00 -0800</bug_when>
    <thetext>(In reply to comment #42)
&gt; Comment on attachment 301117 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=301117&amp;action=review
&gt; 
&gt; &gt; Tools/QueueStatusServer/config/queues.py:2
&gt; &gt; -# Copyright (C) 2014 Apple Inc. All rights reserved.
&gt; &gt; +# Copyright (C) 2014, 2017 Apple Inc. All rights reserved.
&gt; &gt;  # Copyright (C) 2013 Google Inc. All rights reserved.
&gt; 
&gt; This patch is sufficient large. Towards making it straightforward to review
&gt; this code for correctness I would appreciate if you would split this patch
&gt; into three sub-patches: one patch for the changes to QueueStatusServer, one
&gt; patch for non-test webkitpy changes, and one patch for the webkitpy unit
&gt; tests. When it comes time to land the patches we can choose to land each
&gt; sub-patch or combine the sub-patches into one mega patch.
I’ll split up the patch after addressing your suggestions. Should I upload all of them against this bug, or create three bugs?

&gt; [...Define a dedicated status message constant, say skip_status...]
Addressed at the end.

&gt; &gt; Tools/Scripts/webkitpy/common/net/jsctestresults.py:52
&gt; &gt; +            _log.error(&quot;Invalid JSON results&quot;)
&gt; 
&gt; This patch alternatives between using double-quoted string literals and
&gt; single-quoted string literals. From my understanding we prefer to use
&gt; single-quoted string literals unless the string literal contains a single
&gt; quote (then we use a double-quoted string literal). Regardless, we should
&gt; pick one quoting style and stick with it throughout this patch.
Many existing files use double quotes already. I’ve attempted to keep things consistent within each file, but I’d be happy to use single quotes throughout the patch if you prefer.

&gt; &gt; Tools/Scripts/webkitpy/common/net/jsctestresults.py:77
&gt; &gt; +    def failing_test_results(self):
&gt; &gt; +        return self.results
&gt; &gt; +
&gt; &gt; +    def test_results(self):
&gt; &gt; +        return self.results
&gt; &gt; +
&gt; &gt; +    def failing_tests(self):
&gt; &gt; +        return self.results
&gt; 
&gt; How did you come to the decision to return the same result for all of these
&gt; functions?I know that we designed JSCTestResults to conform to the interface
&gt; of LayoutTestResults but if methods are not applicable for the JSC EWS and
&gt; later changes ensure we do not call these functions then I suggest we omit
&gt; such functions. If we really need these functions then it seems weird that
&gt; they are return the same result.
With JSC, the output from running the tests is just the failures. The layout test output is the archive of all results. This explains why test_results and failing_tests (used in different parts of the rest of the code, such as posting a comment to Bugzilla listing the failures) are different in LayoutTestResults, but the same in JSCTestResults.

It’s a tradeoff between adding “if jsc” conditionals elsewhere in the code (including in methods that this patch doesn’t touch), vs just conforming to the interface here.  I think it’s cleaner to conform to the interface, but if you feel otherwise I’d like to hear your reasoning for it.

What do you mean by “later changes”? If you mean future patches, one of the fixme’s in PatchAnalysisTask is to combine the retry logic JSC and Layout test runs. failing_test_results() isn’t actually required in the current form, but combining the retry logic would probably require it.


(In reply to comment #45)
&gt; Comment on attachment 301437 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=301437&amp;action=review
&gt; 
&gt; r-; with the exception of my second remark in comment 42 all other remarks
&gt; in comment 42 were neither addressed in this patch nor replied to with a
&gt; reason for disagreement. Please either address all of my remarks in comment
&gt; 42 in an updated patch or reply to them with your reason(s) for
&gt; disagreement. I have some more questions with this iteration of the patch.
&gt; 
&gt; &gt; Tools/QueueStatusServer/handlers/statusbubble.py:190
&gt; &gt; +        # EWS queues that weren&apos;t skipped are also shown when complete.
&gt; 
&gt; I do not feel that this comment adds much value. If you want to keep it then
&gt; at least move it below the if-statement because the code before the
&gt; if-statement and the if-statement itself are for all queues, and non-EWS
&gt; queues, respectively. The code that is applicable for EWS queues is after
&gt; the if-statement (lines 193 thru 195).
I’ll remove the comment.

&gt; &gt; Tools/Scripts/webkitpy/common/config/ports.py:111
&gt; &gt; +        if build_style == &quot;debug&quot;:
&gt; &gt; +            command.append(&quot;--debug&quot;)
&gt; &gt; +        if build_style == &quot;release&quot;:
&gt; &gt; +            command.append(&quot;--release&quot;)
&gt; 
&gt; I know that you are just mimicking the code from
&gt; build_webkit_command/run_webkit_tests_command. We should not duplicate this
&gt; code. We should define a static private helper function, say
&gt; _append_build_style_flag(), that takes a list and a build style and appends
&gt; the appropriate build flag. When we move this code into
&gt; _append_build_style_flag() we should take this opportunity to clean it up
&gt; and write it using an elif to avoid an unnecessary string comparison when
&gt; build_style == &apos;debug&apos;. Then we can write build_jsc_command,
&gt; build_webkit_command, and run_webkit_tests_command (and
&gt; run_javascriptcore_tests_command?) in terms of _append_build_style_flag().
This is great, I’ll do this.

&gt; &gt; Tools/Scripts/webkitpy/common/config/ports.py:117
&gt; &gt; +        command.append(&quot;--json-output=jsc_test_results.json&quot;)
&gt; 
&gt; Can we write this as two arguments?
I’m not sure what this would look like in practice - could you give an example of what this might look like?

&gt; &gt; Tools/Scripts/webkitpy/common/config/ports.py:119
&gt; &gt; +        if (build_style == &quot;debug&quot;):
&gt; &gt; +            command.append(&quot;--debug&quot;)
&gt; 
&gt; How did you come to the decision to only support a debug build style?
The run-javascriptcore-tests script implicitly treats --release as the default option, so passing --release has the same effect as passing no build flag at all. Still, if we’re be using  _append_build_style_flag() in the other methods, I’ll use it here as well.

&gt; &gt; Tools/Scripts/webkitpy/common/config/ports.py:169
&gt; &gt; +    def run_webkit_tests_command(self, build_style=None, test_suite=None):
&gt; &gt; +        if test_suite == &quot;jsc&quot;:
&gt; &gt; +            return super(MacPort, self).run_javascriptcore_tests_command(build_style)
&gt; &gt; +
&gt; 
&gt; Where are we invoking run_webkit_tests_command() with a non-None test_suite?
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/tool/bot/jsctestresultsreader.py:38
&gt; &gt; +        except (IOError, KeyError):  # File does not exist or can&apos;t be read.
&gt; 
&gt; When is the exception KeyError raised? Unit tests?
Thanks for catching this. 

I added this in when adding unit tests for the behavior when the test results could not be read. In the unit test environment with the mock filesystem, this would throw a KeyError.

However, turns out I later mocked out a little too much, so this line would never actually be hit. I’ll change back the mock methods so it now attempts to read the test results and fails.

&gt; &gt; Tools/Scripts/webkitpy/tool/commands/earlywarningsystem.py:61
&gt; &gt; +            jsc_results_directory = os.path.dirname(os.path.dirname(os.path.dirname(self._port.results_directory())))
&gt; 
&gt; We should not be burying this directory path here. Similar to how we have a
&gt; Port.result_directory() function, please add a function to the port base
&gt; class and/or derived classes that returns the appropriate path tot he JSC
&gt; results directory.
I’ll work on this.


(In reply to comment #46)
&gt; Comment on attachment 301437 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=301437&amp;action=review
&gt; 
&gt; &gt; Tools/QueueStatusServer/model/queuestatus.py:46
&gt; &gt; +        return self.message.startswith(messages.skip_status)
&gt; 
&gt; I just noticed that this disagrees with what I wrote in my second remark in
&gt; comment 42, which implemented this function using a strict string
&gt; comparision. Unless the EWS code does not emit skip_status (what does it
&gt; emit when AbstractPatchQueue.did_fail() is invoked?) when skipping a patch
&gt; by default, I do not feel there is value in having the EWS code (in
&gt; webkitpy) emits a message of the form &quot;Patch not applicable to %s.&quot;
I’ll change the message emitted by EWS from “Skip: Patch not applicable to %s” to just “Skip”, which would enable a string equality comparison in QueueStatusServer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1276990</commentid>
    <comment_count>48</comment_count>
    <who name="Srinivasan Vijayaraghavan">webkit</who>
    <bug_when>2017-02-14 16:18:33 -0800</bug_when>
    <thetext>Sorry, I forgot to address this:

&gt; &gt; Tools/Scripts/webkitpy/common/config/ports.py:169
&gt; &gt; +    def run_webkit_tests_command(self, build_style=None, test_suite=None):
&gt; &gt; +        if test_suite == &quot;jsc&quot;:
&gt; &gt; +            return super(MacPort, self).run_javascriptcore_tests_command(build_style)
&gt; &gt; +
&gt; 
&gt; Where are we invoking run_webkit_tests_command() with a non-None test_suite?
We actually aren&apos;t anymore, this was a holdover and I&apos;ll remove it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1277023</commentid>
    <comment_count>49</comment_count>
      <attachid>301572</attachid>
    <who name="Srinivasan Vijayaraghavan">webkit</who>
    <bug_when>2017-02-14 18:37:35 -0800</bug_when>
    <thetext>Created attachment 301572
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1277024</commentid>
    <comment_count>50</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-02-14 18:39:42 -0800</bug_when>
    <thetext>Attachment 301572 did not pass style-queue:


ERROR: Tools/Scripts/webkitpy/tool/commands/earlywarningsystem.py:144:  [AbstractEarlyWarningSystem.group] Instance of &apos;AbstractEarlyWarningSystem&apos; has no &apos;_group&apos; member  [pylint/E1101] [5]
Total errors found: 1 in 30 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1277028</commentid>
    <comment_count>51</comment_count>
    <who name="Srinivasan Vijayaraghavan">webkit</who>
    <bug_when>2017-02-14 18:49:11 -0800</bug_when>
    <thetext>&gt; &gt; Tools/Scripts/webkitpy/tool/commands/earlywarningsystem.py:61
&gt; &gt; +            jsc_results_directory = os.path.dirname(os.path.dirname(os.path.dirname(self._port.results_directory())))
&gt; 
&gt; We should not be burying this directory path here. Similar to how we have a
&gt; Port.result_directory() function, please add a function to the port base
&gt; class and/or derived classes that returns the appropriate path tot he JSC
&gt; results directory.
Overlooked this when uploading, will be included in next upload.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1277285</commentid>
    <comment_count>52</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2017-02-15 11:37:58 -0800</bug_when>
    <thetext>Dan, is splitting the patch still desirable? I would personally find it confusing to have test changes separately from others. Server and client side changes are coupled too.

My understanding is that feedback from all reviewers has been fully addressed, please confirm if that&apos;s correct.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1277402</commentid>
    <comment_count>53</comment_count>
      <attachid>301667</attachid>
    <who name="Srinivasan Vijayaraghavan">webkit</who>
    <bug_when>2017-02-15 15:50:43 -0800</bug_when>
    <thetext>Created attachment 301667
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1277405</commentid>
    <comment_count>54</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-02-15 15:52:39 -0800</bug_when>
    <thetext>Attachment 301667 did not pass style-queue:


ERROR: Tools/Scripts/webkitpy/tool/commands/earlywarningsystem.py:143:  [AbstractEarlyWarningSystem.group] Instance of &apos;AbstractEarlyWarningSystem&apos; has no &apos;_group&apos; member  [pylint/E1101] [5]
Total errors found: 1 in 31 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1277797</commentid>
    <comment_count>55</comment_count>
      <attachid>301667</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2017-02-16 12:11:08 -0800</bug_when>
    <thetext>Comment on attachment 301667
Patch

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

&gt; &gt; Tools/Scripts/webkitpy/common/config/ports.py:117
&gt; &gt; +        command.append(&quot;--json-output=jsc_test_results.json&quot;)
&gt;
&gt; Can we write this as two arguments?

There are other instances of passing arguments with &apos;=&apos; sign in this file, so I&apos;m not sure if/why splitting is preferable.

I feel like AbstractTestResults is getting too skinny and may not be useful. But we can improve this in the future. We&apos;ll have a better idea of how the interface should look when working other test types, such as webkitpy.

I think that the next iteration should be ready to get an r+, looks pretty good to me.

&gt; Tools/ChangeLog:39
&gt; +        (JSCTestResults.failing_test_results): Getter. Some of these exist for interopability reasons.

I believe that you got rid of this after Dan&apos;s review.

&gt; Tools/QueueStatusServer/handlers/statusbubble.py:194
&gt; +        return bool(status and not status.did_skip())

This is a good pattern to use, but we should migrate other code to it (in a separate patch). Code above just compares to &quot;Pass&quot; and &quot;Fail&quot;, so we are being inconsistent.

OK as is for now.

&gt; Tools/Scripts/webkitpy/common/config/ews.json:54
&gt; +    &quot;JSC EWS&quot;: {

We need to update status server to not change the case to &quot;Jsc EWS&quot;. There is at least one instance of that on your test server. There is code that special cases some strings such as &quot;EWS&quot; for proper display.

&gt; Tools/Scripts/webkitpy/common/net/jsctestresults.py:33
&gt; +        self.all_api_tests_passed = all_api_tests_passed

all_api_tests_passed isn&apos;t used outside the class, so it should be prefixed with an underscore.

&gt; Tools/Scripts/webkitpy/common/net/jsctestresults.py:34
&gt; +        self.stress_test_failures = stress_test_failures

Ditto.

&gt; Tools/Scripts/webkitpy/common/net/jsctestresults.py:36
&gt; +        self.results = stress_test_failures[:]

Ditto.

But also, a better name would help here. This is a list of failing test names, so let&apos;s just call it _failing_test_names.

&gt; Tools/Scripts/webkitpy/common/net/jsctestresults.py:76
&gt; +    def test_results(self):
&gt; +        return self.results
&gt; +
&gt; +    def failing_tests(self):
&gt; +        return self.results

This can&apos;t be right. For LayoutTests, one function returns a list of test names, and another returns a list of TestResult objects. Making it so different for JSC tests is very confusing.

It seems like we can just remove test_results() from the interface, and have JSC code call failing_tests() where it now calls test_results().

&gt; Tools/Scripts/webkitpy/tool/bot/jsctestresultsreader.py:38
&gt; +        except (IOError, KeyError):  # File does not exist or can&apos;t be read.

This comment doesn&apos;t seem useful.

&gt; Tools/Scripts/webkitpy/tool/bot/jsctestresultsreader.py:41
&gt; +    def _create_jsc_test_results(self):

I don&apos;t think that extracting this into function helps, please inline it at call site.

&gt; Tools/Scripts/webkitpy/tool/bot/patchanalysistask.py:253
&gt; +        consistent_results = JSCTestResults.intersection(first_results, second_results)

I think that this should be &quot;consistently_failing_test_results&quot;

&gt; Tools/Scripts/webkitpy/tool/bot/patchanalysistask.py:339
&gt; +        if hasattr(self._delegate, &apos;group&apos;) and self._delegate.group() == &quot;jsc&quot;:

This is because commit queue doesn&apos;t have a group. This makes me wonder what to do with it - one might expect it to run JSC tests now.

Not something to fix right now.

&gt; Tools/Scripts/webkitpy/tool/commands/earlywarningsystem_unittest.py:95
&gt; +class MockEarlyWarningSystemTaskForInconclusiveResults(EarlyWarningSystemTask):
&gt; +    def _test_patch(self):
&gt; +        self._test()
&gt; +        results = self._delegate.test_results()
&gt; +        return bool(results)
&gt; +
&gt; +
&gt; +class MockAbstractEarlyWarningSystemForInconclusiveResults(AbstractEarlyWarningSystem):
&gt; +    def _create_task(self, patch):
&gt; +        task = MockEarlyWarningSystemTaskForInconclusiveResults(self, patch, self._options.run_tests)
&gt; +        return task

These classes are only used for JSC, so we should have that in the name - otherwise it&apos;s difficult to tell which delegate is being invoked.

&gt; Tools/Scripts/webkitpy/tool/commands/earlywarningsystem_unittest.py:148
&gt; +    # This must use the Mock EWS classes defined above

This comment basically says that one of the lines below is important. That&apos;s not useful - all of them are important, and if someone accidentally removes one, tests will catch that anyway.

&gt; Tools/Scripts/webkitpy/tool/steps/checkpatchrelevance.py:71
&gt; +            _log.info(&quot;This patch has relevant changes.&quot;)

I think that this would be too noisy. Processing status lines relies on there not being too many. Please remove this.

Logging just for the other case is sufficient.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1277977</commentid>
    <comment_count>56</comment_count>
      <attachid>301848</attachid>
    <who name="Srinivasan Vijayaraghavan">webkit</who>
    <bug_when>2017-02-16 15:51:38 -0800</bug_when>
    <thetext>Created attachment 301848
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1277981</commentid>
    <comment_count>57</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-02-16 15:54:59 -0800</bug_when>
    <thetext>Attachment 301848 did not pass style-queue:


ERROR: Tools/Scripts/webkitpy/tool/commands/earlywarningsystem.py:143:  [AbstractEarlyWarningSystem.group] Instance of &apos;AbstractEarlyWarningSystem&apos; has no &apos;_group&apos; member  [pylint/E1101] [5]
Total errors found: 1 in 32 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1277984</commentid>
    <comment_count>58</comment_count>
      <attachid>301849</attachid>
    <who name="Srinivasan Vijayaraghavan">webkit</who>
    <bug_when>2017-02-16 15:59:07 -0800</bug_when>
    <thetext>Created attachment 301849
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1277988</commentid>
    <comment_count>59</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-02-16 16:02:11 -0800</bug_when>
    <thetext>Attachment 301849 did not pass style-queue:


ERROR: Tools/Scripts/webkitpy/tool/commands/earlywarningsystem.py:143:  [AbstractEarlyWarningSystem.group] Instance of &apos;AbstractEarlyWarningSystem&apos; has no &apos;_group&apos; member  [pylint/E1101] [5]
Total errors found: 1 in 32 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1278005</commentid>
    <comment_count>60</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2017-02-16 16:21:49 -0800</bug_when>
    <thetext>Should probably land the patch in the morning, to reduce the risk of fixing potential fallout overnight.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1278381</commentid>
    <comment_count>61</comment_count>
      <attachid>301972</attachid>
    <who name="Srinivasan Vijayaraghavan">webkit</who>
    <bug_when>2017-02-17 12:59:22 -0800</bug_when>
    <thetext>Created attachment 301972
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1278384</commentid>
    <comment_count>62</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-02-17 13:01:33 -0800</bug_when>
    <thetext>Attachment 301972 did not pass style-queue:


ERROR: Tools/Scripts/webkitpy/tool/commands/earlywarningsystem.py:143:  [AbstractEarlyWarningSystem.group] Instance of &apos;AbstractEarlyWarningSystem&apos; has no &apos;_group&apos; member  [pylint/E1101] [5]
Total errors found: 1 in 32 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1278450</commentid>
    <comment_count>63</comment_count>
      <attachid>301972</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-02-17 14:43:31 -0800</bug_when>
    <thetext>Comment on attachment 301972
Patch

Clearing flags on attachment: 301972

Committed r212579: &lt;http://trac.webkit.org/changeset/212579&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1278451</commentid>
    <comment_count>64</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-02-17 14:43:40 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1278483</commentid>
    <comment_count>65</comment_count>
      <attachid>302000</attachid>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2017-02-17 15:32:15 -0800</bug_when>
    <thetext>Created attachment 302000
Screenshot - patch not relevant</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1278484</commentid>
    <comment_count>66</comment_count>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2017-02-17 15:32:44 -0800</bug_when>
    <thetext>Seems like it broke EWS. Getting &quot;Patch was not relevant&quot; message for most of the queues (including iOS, mac etc.) See attached screenshot.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1278487</commentid>
    <comment_count>67</comment_count>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2017-02-17 15:53:12 -0800</bug_when>
    <thetext>landed https://trac.webkit.org/changeset/212591 to fix patch Relevance issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1279200</commentid>
    <comment_count>68</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2017-02-20 20:40:47 -0800</bug_when>
    <thetext>&lt;rdar://problem/18231364&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>297210</attachid>
            <date>2016-12-15 12:37:30 -0800</date>
            <delta_ts>2017-01-05 18:19:30 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-162458-20161215123637.patch</filename>
            <type>text/plain</type>
            <size>28347</size>
            <attacher name="Srinivasan Vijayaraghavan">webkit</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA2Mzc3CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2NvbW1vbi9jb25maWcvZXdzLmpzb24gYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2Nv
bW1vbi9jb25maWcvZXdzLmpzb24KaW5kZXggMzVkNDk4NWFiMGY5M2QxMjdiMzcyMWU0NjAxY2Q2
ZDg5ZGZjY2YzYy4uZTUzNDBmZTVjM2MyMWFlODFhZDFlZjdlMDNmN2ZiODFmMzgzOWNmZiAxMDA2
NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL2V3cy5qc29uCisr
KyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9ld3MuanNvbgpAQCAtNTAs
NSArNTAsMTEgQEAKICAgICAgICAgInBvcnQiOiAibWFjIiwKICAgICAgICAgIm5hbWUiOiAibWFj
LTMyYml0LWV3cyIsCiAgICAgICAgICJhcmNoaXRlY3R1cmUiOiAiaTM4NiIKKyAgICB9LAorICAg
ICJKU0MgRVdTIjogeworICAgICAgICAicG9ydCI6ICJtYWMiLAorICAgICAgICAibmFtZSI6ICJq
c2MtZXdzIiwKKyAgICAgICAgImdyb3VwIjogImpzYyIsCisgICAgICAgICJydW5UZXN0cyI6IHRy
dWUKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9j
b25maWcvcG9ydHMucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvcG9y
dHMucHkKaW5kZXggYTBkNTBkY2I2ZWEwYjVmZGUwYjNjMTdlZjE1OWNlYWZlZTFhMmU5OC4uMWMx
MjA2NTc2ZjU3MjI4ZDRlNzU2MGM2MWNlZTIzYzU2NTMzYWM1NCAxMDA2NDQKLS0tIGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL3BvcnRzLnB5CisrKyBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9wb3J0cy5weQpAQCAtMTAzLDggKzEwMywyMSBAQCBj
bGFzcyBEZXByZWNhdGVkUG9ydChvYmplY3QpOgogICAgICAgICAgICAgY29tbWFuZC5hcHBlbmQo
Ii0tcmVsZWFzZSIpCiAgICAgICAgIHJldHVybiBjb21tYW5kCiAKLSAgICBkZWYgcnVuX2phdmFz
Y3JpcHRjb3JlX3Rlc3RzX2NvbW1hbmQoc2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmLnNjcmlw
dF9zaGVsbF9jb21tYW5kKCJydW4tamF2YXNjcmlwdGNvcmUtdGVzdHMiKQorICAgIGRlZiBidWls
ZF9qc2NfY29tbWFuZChzZWxmLCBidWlsZF9zdHlsZT1Ob25lKToKKyAgICAgICAgY29tbWFuZCA9
IHNlbGYuc2NyaXB0X3NoZWxsX2NvbW1hbmQoImJ1aWxkLWpzYyIpCisgICAgICAgIGlmIGJ1aWxk
X3N0eWxlID09ICJkZWJ1ZyI6CisgICAgICAgICAgICBjb21tYW5kLmFwcGVuZCgiLS1kZWJ1ZyIp
CisgICAgICAgIHJldHVybiBjb21tYW5kCisKKyAgICBkZWYgcnVuX2phdmFzY3JpcHRjb3JlX3Rl
c3RzX2NvbW1hbmQoc2VsZiwgYnVpbGRfc3R5bGU9Tm9uZSk6CisgICAgICAgIGNvbW1hbmQgPSBz
ZWxmLnNjcmlwdF9zaGVsbF9jb21tYW5kKCJydW4tamF2YXNjcmlwdGNvcmUtdGVzdHMiKQorICAg
ICAgICBjb21tYW5kLmFwcGVuZCgiLS1uby1mYWlsLWZhc3QiKQorICAgICAgICBjb21tYW5kLmFw
cGVuZCgiLS1qc29uLW91dHB1dD1qc2NfdGVzdF9yZXN1bHRzLmpzb24iKQorICAgICAgICBjb21t
YW5kLmFwcGVuZCgiLS1uby1tb3ppbGxhLXRlc3RzIikKKyAgICAgICAgY29tbWFuZC5hcHBlbmQo
Ii0tbm8tYnVpbGQiKQorICAgICAgICBpZiAoYnVpbGRfc3R5bGUgPT0gImRlYnVnIik6CisgICAg
ICAgICAgICBjb21tYW5kLmFwcGVuZCgiLS1kZWJ1ZyIpCisgICAgICAgIHJldHVybiBjb21tYW5k
CiAKICAgICBkZWYgcnVuX3dlYmtpdF90ZXN0c19jb21tYW5kKHNlbGYsIGJ1aWxkX3N0eWxlPU5v
bmUpOgogICAgICAgICBjb21tYW5kID0gc2VsZi5zY3JpcHRfc2hlbGxfY29tbWFuZCgicnVuLXdl
YmtpdC10ZXN0cyIpCkBAIC0xNTAsNyArMTYzLDEwIEBAIGNsYXNzIElPU1NpbXVsYXRvcldLMlBv
cnQoRGVwcmVjYXRlZFBvcnQpOgogY2xhc3MgTWFjUG9ydChEZXByZWNhdGVkUG9ydCk6CiAgICAg
cG9ydF9mbGFnX25hbWUgPSAibWFjIgogCi0gICAgZGVmIHJ1bl93ZWJraXRfdGVzdHNfY29tbWFu
ZChzZWxmLCBidWlsZF9zdHlsZT1Ob25lKToKKyAgICBkZWYgcnVuX3dlYmtpdF90ZXN0c19jb21t
YW5kKHNlbGYsIGJ1aWxkX3N0eWxlPU5vbmUsIHRlc3Rfc3VpdGU9Tm9uZSk6CisgICAgICAgIGlm
ICh0ZXN0X3N1aXRlID09ICJqc2MiKToKKyAgICAgICAgICAgIHJldHVybiBzdXBlcihNYWNQb3J0
LCBzZWxmKS5ydW5famF2YXNjcmlwdGNvcmVfdGVzdHNfY29tbWFuZChidWlsZF9zdHlsZSkKKwog
ICAgICAgICBjb21tYW5kID0gc3VwZXIoTWFjUG9ydCwgc2VsZikucnVuX3dlYmtpdF90ZXN0c19j
b21tYW5kKGJ1aWxkX3N0eWxlKQogICAgICAgICBjb21tYW5kLmFwcGVuZCgiLS1kdW1wLXJlbmRl
ci10cmVlIikKICAgICAgICAgcmV0dXJuIGNvbW1hbmQKZGlmZiAtLWdpdCBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvdG9vbC9ib3QvcGF0Y2hhbmFseXNpc3Rhc2sucHkgYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L3Rvb2wvYm90L3BhdGNoYW5hbHlzaXN0YXNrLnB5CmluZGV4IDc1MjMxNjQxNmM1
ZjlkMGEzZTU5ZWY2ZDA1ZTMxNzg1ZjkxNzQ2MjkuLmU4Njg1OWNjMmUzODEyYzRjYWMwM2Y5Y2Q2
MzZjMGU5MzI0MTEwMTAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9i
b3QvcGF0Y2hhbmFseXNpc3Rhc2sucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29s
L2JvdC9wYXRjaGFuYWx5c2lzdGFzay5weQpAQCAtMTIyLDI4ICsxMjIsNDMgQEAgY2xhc3MgUGF0
Y2hBbmFseXNpc1Rhc2sob2JqZWN0KToKICAgICAgICAgIkFwcGxpZWQgcGF0Y2giLAogICAgICAg
ICAiUGF0Y2ggZG9lcyBub3QgYXBwbHkiKQogCisKICAgICBkZWYgX2J1aWxkKHNlbGYpOgotICAg
ICAgICByZXR1cm4gc2VsZi5fcnVuX2NvbW1hbmQoWworICAgICAgICBhcmdzID0gWwogICAgICAg
ICAgICAgImJ1aWxkIiwKICAgICAgICAgICAgICItLW5vLWNsZWFuIiwKICAgICAgICAgICAgICIt
LW5vLXVwZGF0ZSIsCiAgICAgICAgICAgICAiLS1idWlsZC1zdHlsZT0lcyIgJSBzZWxmLl9kZWxl
Z2F0ZS5idWlsZF9zdHlsZSgpLAotICAgICAgICBdLAotICAgICAgICAiQnVpbHQgcGF0Y2giLAot
ICAgICAgICAiUGF0Y2ggZG9lcyBub3QgYnVpbGQiKQorICAgICAgICBdCisKKyAgICAgICAgdHJ5
OgorICAgICAgICAgICAgYXJncy5hcHBlbmQoIi0tZ3JvdXA9JXMiICUgc2VsZi5fZGVsZWdhdGUu
Z3JvdXAoKSkKKyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLl9ydW5f
Y29tbWFuZCgKKyAgICAgICAgICAgICAgICBhcmdzLAorICAgICAgICAgICAgICAgICJCdWlsdCBw
YXRjaCIsCisgICAgICAgICAgICAgICAgIlBhdGNoIGRvZXMgbm90IGJ1aWxkIikKKwogCiAgICAg
ZGVmIF9idWlsZF93aXRob3V0X3BhdGNoKHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi5fcnVu
X2NvbW1hbmQoWworICAgICAgICBhcmdzID0gWwogICAgICAgICAgICAgImJ1aWxkIiwKICAgICAg
ICAgICAgICItLWZvcmNlLWNsZWFuIiwKICAgICAgICAgICAgICItLW5vLXVwZGF0ZSIsCiAgICAg
ICAgICAgICAiLS1idWlsZC1zdHlsZT0lcyIgJSBzZWxmLl9kZWxlZ2F0ZS5idWlsZF9zdHlsZSgp
LAotICAgICAgICBdLAotICAgICAgICAiQWJsZSB0byBidWlsZCB3aXRob3V0IHBhdGNoIiwKLSAg
ICAgICAgIlVuYWJsZSB0byBidWlsZCB3aXRob3V0IHBhdGNoIikKKyAgICAgICAgXQorCisgICAg
ICAgIHRyeToKKyAgICAgICAgICAgIGFyZ3MuYXBwZW5kKCItLWdyb3VwPSVzIiAlIHNlbGYuX2Rl
bGVnYXRlLmdyb3VwKCkpCisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICByZXR1cm4gc2Vs
Zi5fcnVuX2NvbW1hbmQoCisgICAgICAgICAgICAgICAgYXJncywKKyAgICAgICAgICAgICAgICAi
QWJsZSB0byBidWlsZCB3aXRob3V0IHBhdGNoIiwKKyAgICAgICAgICAgICAgICAiVW5hYmxlIHRv
IGJ1aWxkIHdpdGhvdXQgcGF0Y2giKQorCiAKICAgICBkZWYgX3Rlc3Qoc2VsZik6Ci0gICAgICAg
IHJldHVybiBzZWxmLl9ydW5fY29tbWFuZChbCisgICAgICAgIGFyZ3MgPSBbCiAgICAgICAgICAg
ICAiYnVpbGQtYW5kLXRlc3QiLAogICAgICAgICAgICAgIi0tbm8tY2xlYW4iLAogICAgICAgICAg
ICAgIi0tbm8tdXBkYXRlIiwKQEAgLTE1MSwxMiArMTY2LDE5IEBAIGNsYXNzIFBhdGNoQW5hbHlz
aXNUYXNrKG9iamVjdCk6CiAgICAgICAgICAgICAiLS10ZXN0IiwKICAgICAgICAgICAgICItLW5v
bi1pbnRlcmFjdGl2ZSIsCiAgICAgICAgICAgICAiLS1idWlsZC1zdHlsZT0lcyIgJSBzZWxmLl9k
ZWxlZ2F0ZS5idWlsZF9zdHlsZSgpLAotICAgICAgICBdLAotICAgICAgICAiUGFzc2VkIHRlc3Rz
IiwKLSAgICAgICAgIlBhdGNoIGRvZXMgbm90IHBhc3MgdGVzdHMiKQorICAgICAgICBdCisKKyAg
ICAgICAgdHJ5OgorICAgICAgICAgICAgYXJncy5hcHBlbmQoIi0tZ3JvdXA9JXMiICUgc2VsZi5f
ZGVsZWdhdGUuZ3JvdXAoKSkKKyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgIHJldHVybiBz
ZWxmLl9ydW5fY29tbWFuZCgKKyAgICAgICAgICAgICAgICBhcmdzLAorICAgICAgICAgICAgICAg
ICJQYXNzZWQgdGVzdHMiLAorICAgICAgICAgICAgICAgICJQYXRjaCBkb2VzIG5vdCBwYXNzIHRl
c3RzIikKKwogCiAgICAgZGVmIF9idWlsZF9hbmRfdGVzdF93aXRob3V0X3BhdGNoKHNlbGYpOgot
ICAgICAgICByZXR1cm4gc2VsZi5fcnVuX2NvbW1hbmQoWworICAgICAgICBhcmdzID0gWwogICAg
ICAgICAgICAgImJ1aWxkLWFuZC10ZXN0IiwKICAgICAgICAgICAgICItLWZvcmNlLWNsZWFuIiwK
ICAgICAgICAgICAgICItLW5vLXVwZGF0ZSIsCkBAIC0xNjQsOSArMTg2LDE2IEBAIGNsYXNzIFBh
dGNoQW5hbHlzaXNUYXNrKG9iamVjdCk6CiAgICAgICAgICAgICAiLS10ZXN0IiwKICAgICAgICAg
ICAgICItLW5vbi1pbnRlcmFjdGl2ZSIsCiAgICAgICAgICAgICAiLS1idWlsZC1zdHlsZT0lcyIg
JSBzZWxmLl9kZWxlZ2F0ZS5idWlsZF9zdHlsZSgpLAotICAgICAgICBdLAotICAgICAgICAiQWJs
ZSB0byBwYXNzIHRlc3RzIHdpdGhvdXQgcGF0Y2giLAotICAgICAgICAiVW5hYmxlIHRvIHBhc3Mg
dGVzdHMgd2l0aG91dCBwYXRjaCAodHJlZSBpcyByZWQ/KSIpCisgICAgICAgIF0KKworICAgICAg
ICB0cnk6CisgICAgICAgICAgICBhcmdzLmFwcGVuZCgiLS1ncm91cD0lcyIgJSBzZWxmLl9kZWxl
Z2F0ZS5ncm91cCgpKQorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgcmV0dXJuIHNlbGYu
X3J1bl9jb21tYW5kKAorICAgICAgICAgICAgICAgIGFyZ3MsCisgICAgICAgICAgICAgICAgIkFi
bGUgdG8gcGFzcyB0ZXN0cyB3aXRob3V0IHBhdGNoIiwKKyAgICAgICAgICAgICAgICAiVW5hYmxl
IHRvIHBhc3MgdGVzdHMgd2l0aG91dCBwYXRjaCAodHJlZSBpcyByZWQ/KSIpCisKIAogICAgIGRl
ZiBfbGFuZChzZWxmKToKICAgICAgICAgIyBVbmNsZWFyIGlmIHRoaXMgc2hvdWxkIHBhc3MgLS1x
dWlldCBvciBub3QuICBJZiAtLXBhcmVudC1jb21tYW5kIGFsd2F5cyBkb2VzIHRoZSByZXBvcnRp
bmcsIHRoZW4gaXQgc2hvdWxkLgpAQCAtMjEwLDY5ICsyMzksODggQEAgY2xhc3MgUGF0Y2hBbmFs
eXNpc1Rhc2sob2JqZWN0KToKICAgICAgICAgaWYgc2VsZi5fdGVzdCgpOgogICAgICAgICAgICAg
cmV0dXJuIFRydWUKIAotICAgICAgICAjIE5vdGU6IGFyY2hpdmVfbGFzdF90ZXN0X3Jlc3VsdHMg
ZGVsZXRlcyB0aGUgcmVzdWx0cyBkaXJlY3RvcnksIG1ha2luZyB0aGVzZSBjYWxscyBvcmRlci1z
ZW5zaXR2ZS4KLSAgICAgICAgIyBXZSBjb3VsZCByZW1vdmUgdGhpcyBkZXBlbmRlbmN5IGJ5IGJ1
aWxkaW5nIHRoZSB0ZXN0X3Jlc3VsdHMgZnJvbSB0aGUgYXJjaGl2ZS4KLSAgICAgICAgZmlyc3Rf
cmVzdWx0cyA9IHNlbGYuX2RlbGVnYXRlLnRlc3RfcmVzdWx0cygpCi0gICAgICAgIGZpcnN0X3Jl
c3VsdHNfYXJjaGl2ZSA9IHNlbGYuX2RlbGVnYXRlLmFyY2hpdmVfbGFzdF90ZXN0X3Jlc3VsdHMo
c2VsZi5fcGF0Y2gpCi0gICAgICAgIGZpcnN0X3NjcmlwdF9lcnJvciA9IHNlbGYuX3NjcmlwdF9l
cnJvcgotICAgICAgICBmaXJzdF9mYWlsdXJlX3N0YXR1c19pZCA9IHNlbGYuZmFpbHVyZV9zdGF0
dXNfaWQKLQotICAgICAgICBpZiBzZWxmLl90ZXN0KCkgYW5kIG5vdCBmaXJzdF9yZXN1bHRzLmRp
ZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xpbWl0KCk6Ci0gICAgICAgICAgICAjIE9ubHkgcmVwb3J0
IGZsYWt5IHRlc3RzIGlmIHdlIHdlcmUgc3VjY2Vzc2Z1bCBhdCBwYXJzaW5nIHJlc3VsdHMuanNv
biBhbmQgYXJjaGl2aW5nIHJlc3VsdHMuCi0gICAgICAgICAgICBpZiBmaXJzdF9yZXN1bHRzIGFu
ZCBmaXJzdF9yZXN1bHRzX2FyY2hpdmU6Ci0gICAgICAgICAgICAgICAgc2VsZi5fcmVwb3J0X2Zs
YWt5X3Rlc3RzKGZpcnN0X3Jlc3VsdHMuZmFpbGluZ190ZXN0X3Jlc3VsdHMoKSwgZmlyc3RfcmVz
dWx0c19hcmNoaXZlKQotICAgICAgICAgICAgcmV0dXJuIFRydWUKKyAgICAgICAgaWYgaGFzYXR0
cihzZWxmLl9kZWxlZ2F0ZSwgJ2dyb3VwJykgYW5kIHNlbGYuX2RlbGVnYXRlLmdyb3VwKCkgPT0g
ImpzYyI6CisgICAgICAgICAgICBmaXJzdF9yZXN1bHRzID0gc2VsZi5fZGVsZWdhdGUudGVzdF9y
ZXN1bHRzKCkKKyAgICAgICAgICAgIGZpcnN0X3NjcmlwdF9lcnJvciA9IHNlbGYuX3NjcmlwdF9l
cnJvcgorICAgICAgICAgICAgaWYgZmlyc3RfcmVzdWx0cy5hbGxfYXBpX3Rlc3RzX3Bhc3NlZCgp
IGlzIFRydWUgYW5kIGxlbihmaXJzdF9yZXN1bHRzLnN0cmVzc190ZXN0X2ZhaWx1cmVzKCkpID09
IDA6CisgICAgICAgICAgICAgICAgcmV0dXJuIFRydWUKKyAgICAgICAgICAgIGVsc2U6CisgICAg
ICAgICAgICAgICAgIyBUT0RPIHN2aWpheWFyYWdoYXZhbkBhcHBsZS5jb206IENvbW1lbnQgdGhp
cywgYW5kIHVuY29tbWVudCB0aGUgYmVsb3cgbGluZXMgc28gaXQgYWN0dWFsbHkgYnVpbGRzIHdp
dGhvdXQgcGF0Y2gKKyAgICAgICAgICAgICAgICAjY2xlYW5fdHJlZV9yZXN1bHRzID0gZmlyc3Rf
cmVzdWx0cworICAgICAgICAgICAgICAgICNjbGVhbl90cmVlX3Jlc3VsdHNbJ2FsbEFwaVRlc3Rz
UGFzc2VkJ10gPSBGYWxzZQogCi0gICAgICAgIHNlY29uZF9yZXN1bHRzID0gc2VsZi5fZGVsZWdh
dGUudGVzdF9yZXN1bHRzKCkKLSAgICAgICAgc2Vjb25kX3Jlc3VsdHNfYXJjaGl2ZSA9IHNlbGYu
X2RlbGVnYXRlLmFyY2hpdmVfbGFzdF90ZXN0X3Jlc3VsdHMoc2VsZi5fcGF0Y2gpCi0gICAgICAg
IHNlY29uZF9zY3JpcHRfZXJyb3IgPSBzZWxmLl9zY3JpcHRfZXJyb3IKLSAgICAgICAgc2Vjb25k
X2ZhaWx1cmVfc3RhdHVzX2lkID0gc2VsZi5mYWlsdXJlX3N0YXR1c19pZAorICAgICAgICAgICAg
ICAgIHNlbGYuX2J1aWxkX2FuZF90ZXN0X3dpdGhvdXRfcGF0Y2goKQorICAgICAgICAgICAgICAg
IGNsZWFuX3RyZWVfcmVzdWx0cyA9IHNlbGYuX2RlbGVnYXRlLnRlc3RfcmVzdWx0cygpCiAKLSAg
ICAgICAgaWYgc2Vjb25kX3Jlc3VsdHMuZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQoKSBh
bmQgZmlyc3RfcmVzdWx0cy5kaWRfZXhjZWVkX3Rlc3RfZmFpbHVyZV9saW1pdCgpOgotICAgICAg
ICAgICAgc2VsZi5fYnVpbGRfYW5kX3Rlc3Rfd2l0aG91dF9wYXRjaCgpCi0gICAgICAgICAgICBj
bGVhbl90cmVlX3Jlc3VsdHMgPSBzZWxmLl9kZWxlZ2F0ZS50ZXN0X3Jlc3VsdHMoKQorICAgICAg
ICAgICAgICAgIGlmIGNsZWFuX3RyZWVfcmVzdWx0cyA9PSBmaXJzdF9yZXN1bHRzOgorICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gVHJ1ZQogCi0gICAgICAgICAgICBpZiAobGVuKGZpcnN0X3Jl
c3VsdHMuZmFpbGluZ190ZXN0cygpKSAtIGxlbihjbGVhbl90cmVlX3Jlc3VsdHMuZmFpbGluZ190
ZXN0cygpKSkgPD0gNToKLSAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgICAg
ICAgICByZXR1cm4gc2VsZi5yZXBvcnRfZmFpbHVyZShOb25lLCBmaXJzdF9yZXN1bHRzLCBmaXJz
dF9zY3JpcHRfZXJyb3IpCiAKLSAgICAgICAgICAgIHNlbGYuZmFpbHVyZV9zdGF0dXNfaWQgPSBm
aXJzdF9mYWlsdXJlX3N0YXR1c19pZAorICAgICAgICBlbHNlOgorICAgICAgICAgICAgIyBOb3Rl
OiBhcmNoaXZlX2xhc3RfdGVzdF9yZXN1bHRzIGRlbGV0ZXMgdGhlIHJlc3VsdHMgZGlyZWN0b3J5
LCBtYWtpbmcgdGhlc2UgY2FsbHMgb3JkZXItc2Vuc2l0dmUuCisgICAgICAgICAgICAjIFdlIGNv
dWxkIHJlbW92ZSB0aGlzIGRlcGVuZGVuY3kgYnkgYnVpbGRpbmcgdGhlIHRlc3RfcmVzdWx0cyBm
cm9tIHRoZSBhcmNoaXZlLgorICAgICAgICAgICAgZmlyc3RfcmVzdWx0cyA9IHNlbGYuX2RlbGVn
YXRlLnRlc3RfcmVzdWx0cygpCisgICAgICAgICAgICBmaXJzdF9yZXN1bHRzX2FyY2hpdmUgPSBz
ZWxmLl9kZWxlZ2F0ZS5hcmNoaXZlX2xhc3RfdGVzdF9yZXN1bHRzKHNlbGYuX3BhdGNoKQorICAg
ICAgICAgICAgZmlyc3Rfc2NyaXB0X2Vycm9yID0gc2VsZi5fc2NyaXB0X2Vycm9yCisgICAgICAg
ICAgICBmaXJzdF9mYWlsdXJlX3N0YXR1c19pZCA9IHNlbGYuZmFpbHVyZV9zdGF0dXNfaWQKIAot
ICAgICAgICAgICAgcmV0dXJuIHNlbGYucmVwb3J0X2ZhaWx1cmUoZmlyc3RfcmVzdWx0c19hcmNo
aXZlLCBmaXJzdF9yZXN1bHRzLCBmaXJzdF9zY3JpcHRfZXJyb3IpCisgICAgICAgICAgICBpZiBz
ZWxmLl90ZXN0KCkgYW5kIG5vdCBmaXJzdF9yZXN1bHRzLmRpZF9leGNlZWRfdGVzdF9mYWlsdXJl
X2xpbWl0KCk6CisgICAgICAgICAgICAgICAgIyBPbmx5IHJlcG9ydCBmbGFreSB0ZXN0cyBpZiB3
ZSB3ZXJlIHN1Y2Nlc3NmdWwgYXQgcGFyc2luZyByZXN1bHRzLmpzb24gYW5kIGFyY2hpdmluZyBy
ZXN1bHRzLgorICAgICAgICAgICAgICAgIGlmIGZpcnN0X3Jlc3VsdHMgYW5kIGZpcnN0X3Jlc3Vs
dHNfYXJjaGl2ZToKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5fcmVwb3J0X2ZsYWt5X3Rlc3Rz
KGZpcnN0X3Jlc3VsdHMuZmFpbGluZ190ZXN0X3Jlc3VsdHMoKSwgZmlyc3RfcmVzdWx0c19hcmNo
aXZlKQorICAgICAgICAgICAgICAgIHJldHVybiBUcnVlCiAKLSAgICAgICAgaWYgc2Vjb25kX3Jl
c3VsdHMuZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQoKToKLSAgICAgICAgICAgIHNlbGYu
X3Nob3VsZF9kZWZlcl9wYXRjaF9vcl90aHJvdyhmaXJzdF9yZXN1bHRzLmZhaWxpbmdfdGVzdF9y
ZXN1bHRzKCksIGZpcnN0X3Jlc3VsdHNfYXJjaGl2ZSwgZmlyc3Rfc2NyaXB0X2Vycm9yLCBmaXJz
dF9mYWlsdXJlX3N0YXR1c19pZCkKLSAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICAg
ICAgc2Vjb25kX3Jlc3VsdHMgPSBzZWxmLl9kZWxlZ2F0ZS50ZXN0X3Jlc3VsdHMoKQorICAgICAg
ICAgICAgc2Vjb25kX3Jlc3VsdHNfYXJjaGl2ZSA9IHNlbGYuX2RlbGVnYXRlLmFyY2hpdmVfbGFz
dF90ZXN0X3Jlc3VsdHMoc2VsZi5fcGF0Y2gpCisgICAgICAgICAgICBzZWNvbmRfc2NyaXB0X2Vy
cm9yID0gc2VsZi5fc2NyaXB0X2Vycm9yCisgICAgICAgICAgICBzZWNvbmRfZmFpbHVyZV9zdGF0
dXNfaWQgPSBzZWxmLmZhaWx1cmVfc3RhdHVzX2lkCiAKLSAgICAgICAgaWYgZmlyc3RfcmVzdWx0
cy5kaWRfZXhjZWVkX3Rlc3RfZmFpbHVyZV9saW1pdCgpOgotICAgICAgICAgICAgc2VsZi5fc2hv
dWxkX2RlZmVyX3BhdGNoX29yX3Rocm93KHNlY29uZF9yZXN1bHRzLmZhaWxpbmdfdGVzdF9yZXN1
bHRzKCksIHNlY29uZF9yZXN1bHRzX2FyY2hpdmUsIHNlY29uZF9zY3JpcHRfZXJyb3IsIHNlY29u
ZF9mYWlsdXJlX3N0YXR1c19pZCkKLSAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICAg
ICAgaWYgc2Vjb25kX3Jlc3VsdHMuZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQoKSBhbmQg
Zmlyc3RfcmVzdWx0cy5kaWRfZXhjZWVkX3Rlc3RfZmFpbHVyZV9saW1pdCgpOgorICAgICAgICAg
ICAgICAgIHNlbGYuX2J1aWxkX2FuZF90ZXN0X3dpdGhvdXRfcGF0Y2goKQorICAgICAgICAgICAg
ICAgIGNsZWFuX3RyZWVfcmVzdWx0cyA9IHNlbGYuX2RlbGVnYXRlLnRlc3RfcmVzdWx0cygpCiAK
LSAgICAgICAgaWYgc2VsZi5fcmVzdWx0c19mYWlsZWRfZGlmZmVyZW50X3Rlc3RzKGZpcnN0X3Jl
c3VsdHMsIHNlY29uZF9yZXN1bHRzKToKLSAgICAgICAgICAgIGZpcnN0X2ZhaWxpbmdfcmVzdWx0
c19zZXQgPSBmcm96ZW5zZXQoZmlyc3RfcmVzdWx0cy5mYWlsaW5nX3Rlc3RfcmVzdWx0cygpKQot
ICAgICAgICAgICAgc2Vjb25kX2ZhaWxpbmdfcmVzdWx0c19zZXQgPSBmcm96ZW5zZXQoc2Vjb25k
X3Jlc3VsdHMuZmFpbGluZ190ZXN0X3Jlc3VsdHMoKSkKKyAgICAgICAgICAgICAgICBpZiAobGVu
KGZpcnN0X3Jlc3VsdHMuZmFpbGluZ190ZXN0cygpKSAtIGxlbihjbGVhbl90cmVlX3Jlc3VsdHMu
ZmFpbGluZ190ZXN0cygpKSkgPD0gNToKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNl
CiAKLSAgICAgICAgICAgIHRlc3RzX3RoYXRfb25seV9mYWlsZWRfZmlyc3QgPSBmaXJzdF9mYWls
aW5nX3Jlc3VsdHNfc2V0LmRpZmZlcmVuY2Uoc2Vjb25kX2ZhaWxpbmdfcmVzdWx0c19zZXQpCi0g
ICAgICAgICAgICBzZWxmLl9yZXBvcnRfZmxha3lfdGVzdHModGVzdHNfdGhhdF9vbmx5X2ZhaWxl
ZF9maXJzdCwgZmlyc3RfcmVzdWx0c19hcmNoaXZlKQorICAgICAgICAgICAgICAgIHNlbGYuZmFp
bHVyZV9zdGF0dXNfaWQgPSBmaXJzdF9mYWlsdXJlX3N0YXR1c19pZAogCi0gICAgICAgICAgICB0
ZXN0c190aGF0X29ubHlfZmFpbGVkX3NlY29uZCA9IHNlY29uZF9mYWlsaW5nX3Jlc3VsdHNfc2V0
LmRpZmZlcmVuY2UoZmlyc3RfZmFpbGluZ19yZXN1bHRzX3NldCkKLSAgICAgICAgICAgIHNlbGYu
X3JlcG9ydF9mbGFreV90ZXN0cyh0ZXN0c190aGF0X29ubHlfZmFpbGVkX3NlY29uZCwgc2Vjb25k
X3Jlc3VsdHNfYXJjaGl2ZSkKKyAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5yZXBvcnRfZmFp
bHVyZShmaXJzdF9yZXN1bHRzX2FyY2hpdmUsIGZpcnN0X3Jlc3VsdHMsIGZpcnN0X3NjcmlwdF9l
cnJvcikKIAotICAgICAgICAgICAgdGVzdHNfdGhhdF9jb25zaXN0ZW50bHlfZmFpbGVkID0gZmly
c3RfZmFpbGluZ19yZXN1bHRzX3NldC5pbnRlcnNlY3Rpb24oc2Vjb25kX2ZhaWxpbmdfcmVzdWx0
c19zZXQpCi0gICAgICAgICAgICBpZiB0ZXN0c190aGF0X2NvbnNpc3RlbnRseV9mYWlsZWQ6Ci0g
ICAgICAgICAgICAgICAgaWYgc2VsZi5fc2hvdWxkX2RlZmVyX3BhdGNoX29yX3Rocm93KHRlc3Rz
X3RoYXRfY29uc2lzdGVudGx5X2ZhaWxlZCwgZmlyc3RfcmVzdWx0c19hcmNoaXZlLCBmaXJzdF9z
Y3JpcHRfZXJyb3IsIGZpcnN0X2ZhaWx1cmVfc3RhdHVzX2lkKToKLSAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIEZhbHNlICAjIERlZmVyIHBhdGNoCisgICAgICAgICAgICBpZiBzZWNvbmRfcmVz
dWx0cy5kaWRfZXhjZWVkX3Rlc3RfZmFpbHVyZV9saW1pdCgpOgorICAgICAgICAgICAgICAgIHNl
bGYuX3Nob3VsZF9kZWZlcl9wYXRjaF9vcl90aHJvdyhmaXJzdF9yZXN1bHRzLmZhaWxpbmdfdGVz
dF9yZXN1bHRzKCksIGZpcnN0X3Jlc3VsdHNfYXJjaGl2ZSwgZmlyc3Rfc2NyaXB0X2Vycm9yLCBm
aXJzdF9mYWlsdXJlX3N0YXR1c19pZCkKKyAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKKwor
ICAgICAgICAgICAgaWYgZmlyc3RfcmVzdWx0cy5kaWRfZXhjZWVkX3Rlc3RfZmFpbHVyZV9saW1p
dCgpOgorICAgICAgICAgICAgICAgIHNlbGYuX3Nob3VsZF9kZWZlcl9wYXRjaF9vcl90aHJvdyhz
ZWNvbmRfcmVzdWx0cy5mYWlsaW5nX3Rlc3RfcmVzdWx0cygpLCBzZWNvbmRfcmVzdWx0c19hcmNo
aXZlLCBzZWNvbmRfc2NyaXB0X2Vycm9yLCBzZWNvbmRfZmFpbHVyZV9zdGF0dXNfaWQpCisgICAg
ICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICAgICAgICAgIGlmIHNlbGYuX3Jlc3VsdHNf
ZmFpbGVkX2RpZmZlcmVudF90ZXN0cyhmaXJzdF9yZXN1bHRzLCBzZWNvbmRfcmVzdWx0cyk6Cisg
ICAgICAgICAgICAgICAgZmlyc3RfZmFpbGluZ19yZXN1bHRzX3NldCA9IGZyb3plbnNldChmaXJz
dF9yZXN1bHRzLmZhaWxpbmdfdGVzdF9yZXN1bHRzKCkpCisgICAgICAgICAgICAgICAgc2Vjb25k
X2ZhaWxpbmdfcmVzdWx0c19zZXQgPSBmcm96ZW5zZXQoc2Vjb25kX3Jlc3VsdHMuZmFpbGluZ190
ZXN0X3Jlc3VsdHMoKSkKIAotICAgICAgICAgICAgIyBBdCB0aGlzIHBvaW50IHdlIGtub3cgdGhh
dCBhdCBsZWFzdCBvbmUgdGVzdCBmbGFrZWQsIGJ1dCBubyBjb25zaXN0ZW50IGZhaWx1cmVzCi0g
ICAgICAgICAgICAjIHdlcmUgaW50cm9kdWNlZC4gVGhpcyBpcyBhIGJpdCBvZiBhIGdyZXktem9u
ZS4KLSAgICAgICAgICAgIHJldHVybiBGYWxzZSAgIyBEZWZlciBwYXRjaAorICAgICAgICAgICAg
ICAgIHRlc3RzX3RoYXRfb25seV9mYWlsZWRfZmlyc3QgPSBmaXJzdF9mYWlsaW5nX3Jlc3VsdHNf
c2V0LmRpZmZlcmVuY2Uoc2Vjb25kX2ZhaWxpbmdfcmVzdWx0c19zZXQpCisgICAgICAgICAgICAg
ICAgc2VsZi5fcmVwb3J0X2ZsYWt5X3Rlc3RzKHRlc3RzX3RoYXRfb25seV9mYWlsZWRfZmlyc3Qs
IGZpcnN0X3Jlc3VsdHNfYXJjaGl2ZSkKIAotICAgICAgICBpZiBzZWxmLl9zaG91bGRfZGVmZXJf
cGF0Y2hfb3JfdGhyb3coZmlyc3RfcmVzdWx0cy5mYWlsaW5nX3Rlc3RfcmVzdWx0cygpLCBmaXJz
dF9yZXN1bHRzX2FyY2hpdmUsIGZpcnN0X3NjcmlwdF9lcnJvciwgZmlyc3RfZmFpbHVyZV9zdGF0
dXNfaWQpOgotICAgICAgICAgICAgcmV0dXJuIEZhbHNlICAjIERlZmVyIHBhdGNoCisgICAgICAg
ICAgICAgICAgdGVzdHNfdGhhdF9vbmx5X2ZhaWxlZF9zZWNvbmQgPSBzZWNvbmRfZmFpbGluZ19y
ZXN1bHRzX3NldC5kaWZmZXJlbmNlKGZpcnN0X2ZhaWxpbmdfcmVzdWx0c19zZXQpCisgICAgICAg
ICAgICAgICAgc2VsZi5fcmVwb3J0X2ZsYWt5X3Rlc3RzKHRlc3RzX3RoYXRfb25seV9mYWlsZWRf
c2Vjb25kLCBzZWNvbmRfcmVzdWx0c19hcmNoaXZlKQogCi0gICAgICAgICMgQXQgdGhpcyBwb2lu
dCwgd2Uga25vdyB0aGF0IHRoZSBmaXJzdCBhbmQgc2Vjb25kIHJ1bnMgaGFkIHRoZSBleGFjdCBz
YW1lIGZhaWx1cmVzLAotICAgICAgICAjIGFuZCB0aGF0IHRob3NlIGZhaWx1cmVzIGFyZSBhbGwg
cHJlc2VudCBvbiB0aGUgY2xlYW4gdHJlZSwgc28gd2UgY2FuIHNheSB3aXRoIGNlcnRhaW50eQot
ICAgICAgICAjIHRoYXQgdGhlIHBhdGNoIGlzIGdvb2QuCi0gICAgICAgIHJldHVybiBUcnVlCisg
ICAgICAgICAgICAgICAgdGVzdHNfdGhhdF9jb25zaXN0ZW50bHlfZmFpbGVkID0gZmlyc3RfZmFp
bGluZ19yZXN1bHRzX3NldC5pbnRlcnNlY3Rpb24oc2Vjb25kX2ZhaWxpbmdfcmVzdWx0c19zZXQp
CisgICAgICAgICAgICAgICAgaWYgdGVzdHNfdGhhdF9jb25zaXN0ZW50bHlfZmFpbGVkOgorICAg
ICAgICAgICAgICAgICAgICBpZiBzZWxmLl9zaG91bGRfZGVmZXJfcGF0Y2hfb3JfdGhyb3codGVz
dHNfdGhhdF9jb25zaXN0ZW50bHlfZmFpbGVkLCBmaXJzdF9yZXN1bHRzX2FyY2hpdmUsIGZpcnN0
X3NjcmlwdF9lcnJvciwgZmlyc3RfZmFpbHVyZV9zdGF0dXNfaWQpOgorICAgICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIEZhbHNlICAjIERlZmVyIHBhdGNoCisKKyAgICAgICAgICAgICAgICAj
IEF0IHRoaXMgcG9pbnQgd2Uga25vdyB0aGF0IGF0IGxlYXN0IG9uZSB0ZXN0IGZsYWtlZCwgYnV0
IG5vIGNvbnNpc3RlbnQgZmFpbHVyZXMKKyAgICAgICAgICAgICAgICAjIHdlcmUgaW50cm9kdWNl
ZC4gVGhpcyBpcyBhIGJpdCBvZiBhIGdyZXktem9uZS4KKyAgICAgICAgICAgICAgICByZXR1cm4g
RmFsc2UgICMgRGVmZXIgcGF0Y2gKKworICAgICAgICAgICAgaWYgc2VsZi5fc2hvdWxkX2RlZmVy
X3BhdGNoX29yX3Rocm93KGZpcnN0X3Jlc3VsdHMuZmFpbGluZ190ZXN0X3Jlc3VsdHMoKSwgZmly
c3RfcmVzdWx0c19hcmNoaXZlLCBmaXJzdF9zY3JpcHRfZXJyb3IsIGZpcnN0X2ZhaWx1cmVfc3Rh
dHVzX2lkKToKKyAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UgICMgRGVmZXIgcGF0Y2gKKwor
ICAgICAgICAgICAgIyBBdCB0aGlzIHBvaW50LCB3ZSBrbm93IHRoYXQgdGhlIGZpcnN0IGFuZCBz
ZWNvbmQgcnVucyBoYWQgdGhlIGV4YWN0IHNhbWUgZmFpbHVyZXMsCisgICAgICAgICAgICAjIGFu
ZCB0aGF0IHRob3NlIGZhaWx1cmVzIGFyZSBhbGwgcHJlc2VudCBvbiB0aGUgY2xlYW4gdHJlZSwg
c28gd2UgY2FuIHNheSB3aXRoIGNlcnRhaW50eQorICAgICAgICAgICAgIyB0aGF0IHRoZSBwYXRj
aCBpcyBnb29kLgorICAgICAgICAgICAgcmV0dXJuIFRydWUKIAogICAgIGRlZiByZXN1bHRzX2Fy
Y2hpdmVfZnJvbV9wYXRjaF90ZXN0X3J1bihzZWxmLCBwYXRjaCk6CiAgICAgICAgIGFzc2VydChz
ZWxmLl9wYXRjaC5pZCgpID09IHBhdGNoLmlkKCkpICAjIFBhdGNoQW5hbHlzaXNUYXNrIGlzIG5v
dCBjdXJyZW50bHkgcmUtdXNlYWJsZS4KZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvdG9vbC9jb21tYW5kcy9lYXJseXdhcm5pbmdzeXN0ZW0ucHkgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L3Rvb2wvY29tbWFuZHMvZWFybHl3YXJuaW5nc3lzdGVtLnB5CmluZGV4IDliYzA0MTg2
MGNlNjc0NTQ0NTRlNGIyNTE0MzhhOWRiZTUyNjQ1MTMuLjAxZjQ3Zjg0ODZjNzNiYzYyNzE1ZTRj
OWQ1YmY3NDU4YjE3YmNkY2QgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9v
bC9jb21tYW5kcy9lYXJseXdhcm5pbmdzeXN0ZW0ucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS90b29sL2NvbW1hbmRzL2Vhcmx5d2FybmluZ3N5c3RlbS5weQpAQCAtMjgsNiArMjgsNyBA
QAogCiBpbXBvcnQganNvbgogaW1wb3J0IGxvZ2dpbmcKK2ltcG9ydCBvcwogZnJvbSBvcHRwYXJz
ZSBpbXBvcnQgbWFrZV9vcHRpb24KIAogZnJvbSB3ZWJraXRweS5jb21tb24uY29uZmlnLmNvbW1p
dHRlcnMgaW1wb3J0IENvbW1pdHRlckxpc3QKQEAgLTM2LDYgKzM3LDcgQEAgZnJvbSB3ZWJraXRw
eS5jb21tb24uc3lzdGVtLmZpbGVzeXN0ZW0gaW1wb3J0IEZpbGVTeXN0ZW0KIGZyb20gd2Via2l0
cHkuY29tbW9uLnN5c3RlbS5leGVjdXRpdmUgaW1wb3J0IFNjcmlwdEVycm9yCiBmcm9tIHdlYmtp
dHB5LnRvb2wuYm90LmVhcmx5d2FybmluZ3N5c3RlbXRhc2sgaW1wb3J0IEVhcmx5V2FybmluZ1N5
c3RlbVRhc2ssIEVhcmx5V2FybmluZ1N5c3RlbVRhc2tEZWxlZ2F0ZQogZnJvbSB3ZWJraXRweS50
b29sLmJvdC5sYXlvdXR0ZXN0cmVzdWx0c3JlYWRlciBpbXBvcnQgTGF5b3V0VGVzdFJlc3VsdHNS
ZWFkZXIKK2Zyb20gd2Via2l0cHkudG9vbC5ib3QuanNjdGVzdHJlc3VsdHNyZWFkZXIgaW1wb3J0
IEpTQ1Rlc3RSZXN1bHRzUmVhZGVyCiBmcm9tIHdlYmtpdHB5LnRvb2wuYm90LnBhdGNoYW5hbHlz
aXN0YXNrIGltcG9ydCBVbmFibGVUb0FwcGx5UGF0Y2gsIFBhdGNoSXNOb3RWYWxpZAogZnJvbSB3
ZWJraXRweS50b29sLmJvdC5xdWV1ZWVuZ2luZSBpbXBvcnQgUXVldWVFbmdpbmUKIGZyb20gd2Vi
a2l0cHkudG9vbC5jb21tYW5kcy5xdWV1ZXMgaW1wb3J0IEFic3RyYWN0UmV2aWV3UXVldWUKQEAg
LTUzLDcgKzU1LDEyIEBAIGNsYXNzIEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtKEFic3RyYWN0
UmV2aWV3UXVldWUsIEVhcmx5V2FybmluZ1N5c3RlbVRhc2tEZWxlCiAKICAgICBkZWYgYmVnaW5f
d29ya19xdWV1ZShzZWxmKToKICAgICAgICAgQWJzdHJhY3RSZXZpZXdRdWV1ZS5iZWdpbl93b3Jr
X3F1ZXVlKHNlbGYpCi0gICAgICAgIHNlbGYuX2xheW91dF90ZXN0X3Jlc3VsdHNfcmVhZGVyID0g
TGF5b3V0VGVzdFJlc3VsdHNSZWFkZXIoc2VsZi5fdG9vbCwgc2VsZi5fcG9ydC5yZXN1bHRzX2Rp
cmVjdG9yeSgpLCBzZWxmLl9sb2dfZGlyZWN0b3J5KCkpCisKKyAgICAgICAgaWYgc2VsZi5ncm91
cCgpID09ICJqc2MiOgorICAgICAgICAgICAgZGlyID0gb3MucGF0aC5kaXJuYW1lKG9zLnBhdGgu
ZGlybmFtZShvcy5wYXRoLmRpcm5hbWUoc2VsZi5fcG9ydC5yZXN1bHRzX2RpcmVjdG9yeSgpKSkp
CisgICAgICAgICAgICBzZWxmLl90ZXN0X3Jlc3VsdHNfcmVhZGVyID0gSlNDVGVzdFJlc3VsdHNS
ZWFkZXIoc2VsZi5fdG9vbCwgZGlyKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZi5f
dGVzdF9yZXN1bHRzX3JlYWRlciA9IExheW91dFRlc3RSZXN1bHRzUmVhZGVyKHNlbGYuX3Rvb2ws
IHNlbGYuX3BvcnQucmVzdWx0c19kaXJlY3RvcnkoKSwgc2VsZi5fbG9nX2RpcmVjdG9yeSgpKQog
CiAgICAgZGVmIF9mYWlsaW5nX3Rlc3RzX21lc3NhZ2Uoc2VsZiwgdGFzaywgcGF0Y2gpOgogICAg
ICAgICByZXN1bHRzID0gdGFzay5yZXN1bHRzX2Zyb21fcGF0Y2hfdGVzdF9ydW4ocGF0Y2gpCkBA
IC0xMTcsMTQgKzEyNCwyMCBAQCBjbGFzcyBBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbShBYnN0
cmFjdFJldmlld1F1ZXVlLCBFYXJseVdhcm5pbmdTeXN0ZW1UYXNrRGVsZQogICAgICAgICByZXR1
cm4gc2VsZi5fdXBkYXRlX3N0YXR1cyhtZXNzYWdlLCBwYXRjaD1wYXRjaCwgcmVzdWx0c19maWxl
PWZhaWx1cmVfbG9nKQogCiAgICAgZGVmIHRlc3RfcmVzdWx0cyhzZWxmKToKLSAgICAgICAgcmV0
dXJuIHNlbGYuX2xheW91dF90ZXN0X3Jlc3VsdHNfcmVhZGVyLnJlc3VsdHMoKQorICAgICAgICBy
ZXR1cm4gc2VsZi5fdGVzdF9yZXN1bHRzX3JlYWRlci5yZXN1bHRzKCkKIAogICAgIGRlZiBhcmNo
aXZlX2xhc3RfdGVzdF9yZXN1bHRzKHNlbGYsIHBhdGNoKToKLSAgICAgICAgcmV0dXJuIHNlbGYu
X2xheW91dF90ZXN0X3Jlc3VsdHNfcmVhZGVyLmFyY2hpdmUocGF0Y2gpCisgICAgICAgIHJldHVy
biBzZWxmLl90ZXN0X3Jlc3VsdHNfcmVhZGVyLmFyY2hpdmUocGF0Y2gpCiAKICAgICBkZWYgYnVp
bGRfc3R5bGUoc2VsZik6CiAgICAgICAgIHJldHVybiBzZWxmLl9idWlsZF9zdHlsZQogCisgICAg
ZGVmIGdyb3VwKHNlbGYpOgorICAgICAgICBpZiBoYXNhdHRyKHNlbGYsICJfZ3JvdXAiKToKKyAg
ICAgICAgICAgIHJldHVybiBzZWxmLl9ncm91cAorICAgICAgICBlbHNlOgorICAgICAgICAgICAg
cmV0dXJuIE5vbmUKKwogICAgIGRlZiByZWZldGNoX3BhdGNoKHNlbGYsIHBhdGNoKToKICAgICAg
ICAgcmV0dXJuIHNlbGYuX3Rvb2wuYnVncy5mZXRjaF9hdHRhY2htZW50KHBhdGNoLmlkKCkpCiAK
QEAgLTE1Niw1ICsxNjksNiBAQCBjbGFzcyBBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbShBYnN0
cmFjdFJldmlld1F1ZXVlLCBFYXJseVdhcm5pbmdTeXN0ZW1UYXNrRGVsZQogICAgICAgICAgICAg
ICAgICdfYnVpbGRfc3R5bGUnOiBjb25maWcuZ2V0KCdzdHlsZScsICJyZWxlYXNlIiksCiAgICAg
ICAgICAgICAgICAgJ3dhdGNoZXJzJzogY29uZmlnLmdldCgnd2F0Y2hlcnMnLCBbXSksCiAgICAg
ICAgICAgICAgICAgJ3J1bl90ZXN0cyc6IGNvbmZpZy5nZXQoJ3J1blRlc3RzJywgY2xzLnJ1bl90
ZXN0cyksCisgICAgICAgICAgICAgICAgJ19ncm91cCc6IGNvbmZpZy5nZXQoJ2dyb3VwJywgTm9u
ZSksCiAgICAgICAgICAgICB9KSkKICAgICAgICAgcmV0dXJuIGNsYXNzZXMKZGlmZiAtLWdpdCBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9lYXJseXdhcm5pbmdzeXN0ZW1f
dW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZWFybHl3
YXJuaW5nc3lzdGVtX3VuaXR0ZXN0LnB5CmluZGV4IDA4ODg3ODEzY2UyZTkzYThlYzlkYTM3NjM2
ZWNiZGU5ZWZmM2M5ZTcuLmY1YmI1MzY0MjdlYmU5ZjNhY2U0YTA0NDgyYmRiYWRhMjdiNTlkZGUg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9lYXJseXdh
cm5pbmdzeXN0ZW1fdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29s
L2NvbW1hbmRzL2Vhcmx5d2FybmluZ3N5c3RlbV91bml0dGVzdC5weQpAQCAtNjgsOSArNjgsMTAg
QEAgY2xhc3MgRWFybHlXYXJuaW5nU3lzdGVtVGVzdChRdWV1ZXNUZXN0KToKICAgICAgICAgICAg
ICJwb3J0IjogZXdzLnBvcnRfbmFtZSwKICAgICAgICAgICAgICJhcmNoaXRlY3R1cmUiOiAiIC0t
YXJjaGl0ZWN0dXJlPSVzIiAlIGV3cy5hcmNoaXRlY3R1cmUgaWYgZXdzLmFyY2hpdGVjdHVyZSBl
bHNlICIiLAogICAgICAgICAgICAgImJ1aWxkX3N0eWxlIjogZXdzLmJ1aWxkX3N0eWxlKCksCisg
ICAgICAgICAgICAiZ3JvdXAiOiAianNjIiBpZiBld3MubmFtZSA9PSAianNjLWV3cyIgZWxzZSAi
Tm9uZSIsCiAgICAgICAgIH0KICAgICAgICAgaWYgZXdzLnJ1bl90ZXN0czoKLSAgICAgICAgICAg
IHJ1bl90ZXN0c19saW5lID0gIlJ1bm5pbmc6IHdlYmtpdC1wYXRjaCAtLXN0YXR1cy1ob3N0PWV4
YW1wbGUuY29tIGJ1aWxkLWFuZC10ZXN0IC0tbm8tY2xlYW4gLS1uby11cGRhdGUgLS10ZXN0IC0t
bm9uLWludGVyYWN0aXZlIC0tYnVpbGQtc3R5bGU9JShidWlsZF9zdHlsZSlzIC0tcG9ydD0lKHBv
cnQpcyUoYXJjaGl0ZWN0dXJlKXNcbiIgJSBzdHJpbmdfcmVwbGFjZW1lbnRzCisgICAgICAgICAg
ICBydW5fdGVzdHNfbGluZSA9ICJSdW5uaW5nOiB3ZWJraXQtcGF0Y2ggLS1zdGF0dXMtaG9zdD1l
eGFtcGxlLmNvbSBidWlsZC1hbmQtdGVzdCAtLW5vLWNsZWFuIC0tbm8tdXBkYXRlIC0tdGVzdCAt
LW5vbi1pbnRlcmFjdGl2ZSAtLWJ1aWxkLXN0eWxlPSUoYnVpbGRfc3R5bGUpcyAtLWdyb3VwPSUo
Z3JvdXApcyAtLXBvcnQ9JShwb3J0KXMlKGFyY2hpdGVjdHVyZSlzXG4iICUgc3RyaW5nX3JlcGxh
Y2VtZW50cwogICAgICAgICBlbHNlOgogICAgICAgICAgICAgcnVuX3Rlc3RzX2xpbmUgPSAiIgog
ICAgICAgICBzdHJpbmdfcmVwbGFjZW1lbnRzWydydW5fdGVzdHNfbGluZSddID0gcnVuX3Rlc3Rz
X2xpbmUKQEAgLTgxLDcgKzgyLDcgQEAgY2xhc3MgRWFybHlXYXJuaW5nU3lzdGVtVGVzdChRdWV1
ZXNUZXN0KToKIFJ1bm5pbmc6IHdlYmtpdC1wYXRjaCAtLXN0YXR1cy1ob3N0PWV4YW1wbGUuY29t
IGNsZWFuIC0tcG9ydD0lKHBvcnQpcyUoYXJjaGl0ZWN0dXJlKXMKIFJ1bm5pbmc6IHdlYmtpdC1w
YXRjaCAtLXN0YXR1cy1ob3N0PWV4YW1wbGUuY29tIHVwZGF0ZSAtLXBvcnQ9JShwb3J0KXMlKGFy
Y2hpdGVjdHVyZSlzCiBSdW5uaW5nOiB3ZWJraXQtcGF0Y2ggLS1zdGF0dXMtaG9zdD1leGFtcGxl
LmNvbSBhcHBseS1hdHRhY2htZW50IC0tbm8tdXBkYXRlIC0tbm9uLWludGVyYWN0aXZlIDEwMDAw
IC0tcG9ydD0lKHBvcnQpcyUoYXJjaGl0ZWN0dXJlKXMKLVJ1bm5pbmc6IHdlYmtpdC1wYXRjaCAt
LXN0YXR1cy1ob3N0PWV4YW1wbGUuY29tIGJ1aWxkIC0tbm8tY2xlYW4gLS1uby11cGRhdGUgLS1i
dWlsZC1zdHlsZT0lKGJ1aWxkX3N0eWxlKXMgLS1wb3J0PSUocG9ydClzJShhcmNoaXRlY3R1cmUp
cworUnVubmluZzogd2Via2l0LXBhdGNoIC0tc3RhdHVzLWhvc3Q9ZXhhbXBsZS5jb20gYnVpbGQg
LS1uby1jbGVhbiAtLW5vLXVwZGF0ZSAtLWJ1aWxkLXN0eWxlPSUoYnVpbGRfc3R5bGUpcyAtLWdy
b3VwPSUoZ3JvdXApcyAtLXBvcnQ9JShwb3J0KXMlKGFyY2hpdGVjdHVyZSlzCiAlKHJ1bl90ZXN0
c19saW5lKXNNT0NLOiB1cGRhdGVfc3RhdHVzOiAlKG5hbWUpcyBQYXNzCiBNT0NLOiByZWxlYXNl
X3dvcmtfaXRlbTogJShuYW1lKXMgMTAwMDAKICIiIiAlIHN0cmluZ19yZXBsYWNlbWVudHMsCmRp
ZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcXVldWVzX3Vu
aXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3F1ZXVlc191
bml0dGVzdC5weQppbmRleCBiYjc2MzUwYjI4ODA0NDU0ZWY0MTBhZDg1Yzc4YWQ2OTdiYmVmNmM1
Li4xYzIzZTZhOGRjNWYwNmM2NjM1ZTI1OTIxYmI3OTExM2NjYjgzNDA2IDEwMDY0NAotLS0gYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcXVldWVzX3VuaXR0ZXN0LnB5Cisr
KyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9xdWV1ZXNfdW5pdHRlc3Qu
cHkKQEAgLTMyMSw2ICszMjEsNyBAQCBNT0NLOiByZWxlYXNlX3dvcmtfaXRlbTogY29tbWl0LXF1
ZXVlIDEwMDAwCiAgICAgICAgIHNlbGYuYXNzZXJ0X3F1ZXVlX291dHB1dHMocXVldWUsIGV4cGVj
dGVkX2xvZ3M9ZXhwZWN0ZWRfbG9ncykKIAogICAgIGRlZiB0ZXN0X3JvbGxvdXQoc2VsZik6Cisg
ICAgICAgIHNlbGYubWF4RGlmZiA9IE5vbmUKICAgICAgICAgdG9vbCA9IE1vY2tUb29sKCkKICAg
ICAgICAgdG9vbC5maWxlc3lzdGVtLndyaXRlX3RleHRfZmlsZSgnL3RtcC9sYXlvdXQtdGVzdC1y
ZXN1bHRzL2Z1bGxfcmVzdWx0cy5qc29uJywgJycpICAjIE90aGVyd2lzZSB0aGUgY29tbWl0LXF1
ZXVlIHdpbGwgaGl0IGEgS2V5RXJyb3IgdHJ5aW5nIHRvIHJlYWQgdGhlIHJlc3VsdHMgZnJvbSB0
aGUgTW9ja0ZpbGVTeXN0ZW0uCiAgICAgICAgIHRvb2wuZmlsZXN5c3RlbS53cml0ZV90ZXh0X2Zp
bGUoJy90bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy93ZWJraXRfdW5pdF90ZXN0c19vdXRwdXQueG1s
JywgJycpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvYnVp
bGQucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvYnVpbGQucHkKaW5kZXgg
Zjc0ZmZjZTcwOTQxYzYxZTU5Njc5MmU0YzYwZGNkN2Y4YjY1ZTllYy4uNjRmNzAzOTY4NzA3MzQ2
Y2EzMjM5OGM3MWQ1OThhNjg4ZDlhMzIzYiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS90b29sL3N0ZXBzL2J1aWxkLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9v
bC9zdGVwcy9idWlsZC5weQpAQCAtNDEsMjggKzQxLDM4IEBAIGNsYXNzIEJ1aWxkKEFic3RyYWN0
U3RlcCk6CiAgICAgICAgICAgICBPcHRpb25zLmJ1aWxkLAogICAgICAgICAgICAgT3B0aW9ucy5x
dWlldCwKICAgICAgICAgICAgIE9wdGlvbnMuYnVpbGRfc3R5bGUsCisgICAgICAgICAgICBPcHRp
b25zLmdyb3VwLAogICAgICAgICBdCiAKLSAgICBkZWYgYnVpbGQoc2VsZiwgYnVpbGRfc3R5bGUp
OgorICAgIGRlZiBidWlsZChzZWxmLCBidWlsZF9zdHlsZSwgZ3JvdXApOgogICAgICAgICBlbnZp
cm9ubWVudCA9IHNlbGYuX3Rvb2wuY29weV9jdXJyZW50X2Vudmlyb25tZW50KCkKICAgICAgICAg
ZW52aXJvbm1lbnQuZGlzYWJsZV9nY2Nfc21hcnRxdW90ZXMoKQogICAgICAgICBlbnZpcm9ubWVu
dC5kaXNhYmxlX2poYnVpbGRfVlQxMDBfb3V0cHV0KCkKICAgICAgICAgZW52ID0gZW52aXJvbm1l
bnQudG9fZGljdGlvbmFyeSgpCiAKLSAgICAgICAgYnVpbGRfd2Via2l0X2NvbW1hbmQgPSBzZWxm
Ll90b29sLmRlcHJlY2F0ZWRfcG9ydCgpLmJ1aWxkX3dlYmtpdF9jb21tYW5kKGJ1aWxkX3N0eWxl
PWJ1aWxkX3N0eWxlKQorICAgICAgICBpZiBncm91cCA9PSAianNjIjoKKyAgICAgICAgICAgIGJ1
aWxkX2NvbW1hbmQgPSBzZWxmLl90b29sLmRlcHJlY2F0ZWRfcG9ydCgpLmJ1aWxkX2pzY19jb21t
YW5kKGJ1aWxkX3N0eWxlPWJ1aWxkX3N0eWxlKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAg
YnVpbGRfY29tbWFuZCA9IHNlbGYuX3Rvb2wuZGVwcmVjYXRlZF9wb3J0KCkuYnVpbGRfd2Via2l0
X2NvbW1hbmQoYnVpbGRfc3R5bGU9YnVpbGRfc3R5bGUpCiAKICAgICAgICAgaWYgc2VsZi5fb3B0
aW9ucy5hcmNoaXRlY3R1cmU6Ci0gICAgICAgICAgICBidWlsZF93ZWJraXRfY29tbWFuZCArPSBb
J0FSQ0hTPSVzJyAlIHNlbGYuX29wdGlvbnMuYXJjaGl0ZWN0dXJlXQorICAgICAgICAgICAgYnVp
bGRfY29tbWFuZCArPSBbJ0FSQ0hTPSVzJyAlIHNlbGYuX29wdGlvbnMuYXJjaGl0ZWN0dXJlXQog
Ci0gICAgICAgIHNlbGYuX3Rvb2wuZXhlY3V0aXZlLnJ1bl9hbmRfdGhyb3dfaWZfZmFpbChidWls
ZF93ZWJraXRfY29tbWFuZCwgc2VsZi5fb3B0aW9ucy5xdWlldCwKKyAgICAgICAgc2VsZi5fdG9v
bC5leGVjdXRpdmUucnVuX2FuZF90aHJvd19pZl9mYWlsKGJ1aWxkX2NvbW1hbmQsIHNlbGYuX29w
dGlvbnMucXVpZXQsCiAgICAgICAgICAgICBjd2Q9c2VsZi5fdG9vbC5zY20oKS5jaGVja291dF9y
b290LCBlbnY9ZW52KQogCiAgICAgZGVmIHJ1bihzZWxmLCBzdGF0ZSk6CiAgICAgICAgIGlmIG5v
dCBzZWxmLl9vcHRpb25zLmJ1aWxkOgogICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgIF9sb2cu
aW5mbygiQnVpbGRpbmcgV2ViS2l0IikKKworICAgICAgICBpZiBoYXNhdHRyKHNlbGYuX29wdGlv
bnMsICdncm91cCcpIGFuZCBzZWxmLl9vcHRpb25zLmdyb3VwID09ICJqc2MiOgorICAgICAgICAg
ICAgZ3JvdXAgPSBzZWxmLl9vcHRpb25zLmdyb3VwCisgICAgICAgIGVsc2U6CisgICAgICAgICAg
ICBncm91cCA9IE5vbmUKKwogICAgICAgICBpZiBzZWxmLl9vcHRpb25zLmJ1aWxkX3N0eWxlID09
ICJib3RoIjoKLSAgICAgICAgICAgIHNlbGYuYnVpbGQoImRlYnVnIikKLSAgICAgICAgICAgIHNl
bGYuYnVpbGQoInJlbGVhc2UiKQorICAgICAgICAgICAgc2VsZi5idWlsZCgiZGVidWciLCBncm91
cCkKKyAgICAgICAgICAgIHNlbGYuYnVpbGQoInJlbGVhc2UiLCBncm91cCkKICAgICAgICAgZWxz
ZToKLSAgICAgICAgICAgIHNlbGYuYnVpbGQoc2VsZi5fb3B0aW9ucy5idWlsZF9zdHlsZSkKKyAg
ICAgICAgICAgIHNlbGYuYnVpbGQoc2VsZi5fb3B0aW9ucy5idWlsZF9zdHlsZSwgZ3JvdXApCmRp
ZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvb3B0aW9ucy5weSBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9vcHRpb25zLnB5CmluZGV4IDNlZjQ3
ZDAwOGE1OWUwNTBkNGNhMGM0ODc3ZGRkMWE2MDczMWE0MDkuLmY4NzE5ZTExYmU3YTU3NmE5NDNh
MjcxMzc1NTZiYTAyZmNiNmE5MWEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
dG9vbC9zdGVwcy9vcHRpb25zLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9z
dGVwcy9vcHRpb25zLnB5CkBAIC00Niw2ICs0Niw3IEBAIGNsYXNzIE9wdGlvbnMob2JqZWN0KToK
ICAgICBlbWFpbCA9IG1ha2Vfb3B0aW9uKCItLWVtYWlsIiwgYWN0aW9uPSJzdG9yZSIsIHR5cGU9
InN0cmluZyIsIGRlc3Q9ImVtYWlsIiwgaGVscD0iRW1haWwgYWRkcmVzcyB0byB1c2UgaW4gQ2hh
bmdlTG9ncy4iKQogICAgIGZvcmNlX2NsZWFuID0gbWFrZV9vcHRpb24oIi0tZm9yY2UtY2xlYW4i
LCBhY3Rpb249InN0b3JlX3RydWUiLCBkZXN0PSJmb3JjZV9jbGVhbiIsIGRlZmF1bHQ9RmFsc2Us
IGhlbHA9IkNsZWFuIHdvcmtpbmcgZGlyZWN0b3J5IGJlZm9yZSBhcHBseWluZyBwYXRjaGVzIChy
ZW1vdmVzIGxvY2FsIGNoYW5nZXMgYW5kIGNvbW1pdHMpIikKICAgICBnaXRfY29tbWl0ID0gbWFr
ZV9vcHRpb24oIi1nIiwgIi0tZ2l0LWNvbW1pdCIsIGFjdGlvbj0ic3RvcmUiLCBkZXN0PSJnaXRf
Y29tbWl0IiwgaGVscD0iT3BlcmF0ZSBvbiBhIGxvY2FsIGNvbW1pdC4gSWYgYSByYW5nZSwgdGhl
IGNvbW1pdHMgYXJlIHNxdWFzaGVkIGludG8gb25lLiA8cmVmPi4uLi4gaW5jbHVkZXMgdGhlIHdv
cmtpbmcgY29weSBjaGFuZ2VzLiBVUFNUUkVBTSBjYW4gYmUgdXNlZCBmb3IgdGhlIHVwc3RyZWFt
L3RyYWNraW5nIGJyYW5jaC4iKQorICAgIGdyb3VwID0gbWFrZV9vcHRpb24oIi0tZ3JvdXAiLCBh
Y3Rpb249InN0b3JlIiwgZGVzdD0iZ3JvdXAiLCBkZWZhdWx0PU5vbmUsIGhlbHA9IiIpCiAgICAg
bG9jYWxfY29tbWl0ID0gbWFrZV9vcHRpb24oIi0tbG9jYWwtY29tbWl0IiwgYWN0aW9uPSJzdG9y
ZV90cnVlIiwgZGVzdD0ibG9jYWxfY29tbWl0IiwgZGVmYXVsdD1GYWxzZSwgaGVscD0iTWFrZSBh
IGxvY2FsIGNvbW1pdCBmb3IgZWFjaCBhcHBsaWVkIHBhdGNoIikKICAgICBub25faW50ZXJhY3Rp
dmUgPSBtYWtlX29wdGlvbigiLS1ub24taW50ZXJhY3RpdmUiLCBhY3Rpb249InN0b3JlX3RydWUi
LCBkZXN0PSJub25faW50ZXJhY3RpdmUiLCBkZWZhdWx0PUZhbHNlLCBoZWxwPSJOZXZlciBwcm9t
cHQgdGhlIHVzZXIsIGZhaWwgYXMgZmFzdCBhcyBwb3NzaWJsZS4iKQogICAgIG9ic29sZXRlX3Bh
dGNoZXMgPSBtYWtlX29wdGlvbigiLS1uby1vYnNvbGV0ZSIsIGFjdGlvbj0ic3RvcmVfZmFsc2Ui
LCBkZXN0PSJvYnNvbGV0ZV9wYXRjaGVzIiwgZGVmYXVsdD1UcnVlLCBoZWxwPSJEbyBub3Qgb2Jz
b2xldGUgb2xkIHBhdGNoZXMgYmVmb3JlIHBvc3RpbmcgdGhpcyBvbmUuIikKZGlmZiAtLWdpdCBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9ydW50ZXN0cy5weSBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9ydW50ZXN0cy5weQppbmRleCA3NWQ3MmJjOWFkMmY0
ZTM2ZDQ1ZmRhYzkwZjE4MTk0ODFjZjAyODhiLi5lZDkwZGZkNDM4YzMxY2ZhZGNlZmQ4MzJmMTVk
ZWQ5OTJhOTdkZGJjIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3Rl
cHMvcnVudGVzdHMucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3J1
bnRlc3RzLnB5CkBAIC0xLDQgKzEsNSBAQAogIyBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAg
LTUzLDYgKzU0LDcgQEAgY2xhc3MgUnVuVGVzdHMoQWJzdHJhY3RTdGVwKToKICAgICAgICAgICAg
IE9wdGlvbnMuaXRlcmF0ZV9vbl9uZXdfdGVzdHMsCiAgICAgICAgICAgICBPcHRpb25zLm5vbl9p
bnRlcmFjdGl2ZSwKICAgICAgICAgICAgIE9wdGlvbnMucXVpZXQsCisgICAgICAgICAgICBPcHRp
b25zLmdyb3VwLAogICAgICAgICBdCiAKICAgICBkZWYgcnVuKHNlbGYsIHN0YXRlKToKQEAgLTYz
LDYgKzY1LDEwIEBAIGNsYXNzIFJ1blRlc3RzKEFic3RyYWN0U3RlcCk6CiAgICAgICAgIGlmIG5v
dCBzZWxmLl9vcHRpb25zLnRlc3Q6CiAgICAgICAgICAgICByZXR1cm4KIAorICAgICAgICBpZiBo
YXNhdHRyKHNlbGYuX29wdGlvbnMsICJncm91cCIpIGFuZCBzZWxmLl9vcHRpb25zLmdyb3VwID09
ICJqc2MiOgorICAgICAgICAgICAgc2VsZi5fcnVuX2phdmFzY3JpcHRjb3JlX3Rlc3RzKCkKKyAg
ICAgICAgICAgIHJldHVybgorCiAgICAgICAgIHB5dGhvbl91bml0dGVzdHNfY29tbWFuZCA9IHNl
bGYuX3Rvb2wuZGVwcmVjYXRlZF9wb3J0KCkucnVuX3B5dGhvbl91bml0dGVzdHNfY29tbWFuZCgp
CiAgICAgICAgIGlmIHB5dGhvbl91bml0dGVzdHNfY29tbWFuZDoKICAgICAgICAgICAgIF9sb2cu
aW5mbygiUnVubmluZyBQeXRob24gdW5pdCB0ZXN0cyIpCkBAIC0xNDMsMyArMTQ5LDcgQEAgY2xh
c3MgUnVuVGVzdHMoQWJzdHJhY3RTdGVwKToKICAgICAgICAgICAgIGFyZ3MuYXBwZW5kKCItLWl0
ZXJhdGlvbnM9JWQiICUgaXRlcmF0ZV9vbl9uZXdfdGVzdHMpCiAKICAgICAgICAgc2VsZi5fdG9v
bC5leGVjdXRpdmUucnVuX2FuZF90aHJvd19pZl9mYWlsKGFyZ3MsIGN3ZD1zZWxmLl90b29sLnNj
bSgpLmNoZWNrb3V0X3Jvb3QpCisKKyAgICBkZWYgX3J1bl9qYXZhc2NyaXB0Y29yZV90ZXN0cyhz
ZWxmKToKKyAgICAgICAgYXJncyA9IHNlbGYuX3Rvb2wuZGVwcmVjYXRlZF9wb3J0KCkucnVuX2ph
dmFzY3JpcHRjb3JlX3Rlc3RzX2NvbW1hbmQoc2VsZi5fb3B0aW9ucy5idWlsZF9zdHlsZSkKKyAg
ICAgICAgc2VsZi5fdG9vbC5leGVjdXRpdmUucnVuX2FuZF90aHJvd19pZl9mYWlsKGFyZ3MsIGN3
ZD1zZWxmLl90b29sLnNjbSgpLmNoZWNrb3V0X3Jvb3QpCmRpZmYgLS1naXQgYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvc3RlcHNfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L3Rvb2wvc3RlcHMvc3RlcHNfdW5pdHRlc3QucHkKaW5kZXggN2Q5NGExM2IzNDYz
ZDk4YTQ0Zjk0OWY4MTRjYzcxMjFjMDY4YWI1ZC4uZjBkZjg3OGMzYzk4OGRmMTY5Mjk0MzJmOTAy
NzBjMjE1MmU1ZmUzYyAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0
ZXBzL3N0ZXBzX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9z
dGVwcy9zdGVwc191bml0dGVzdC5weQpAQCAtOTgsNiArOTgsNyBAQCBjbGFzcyBTdGVwc1Rlc3Qo
dW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBzZWxmLl9hc3NlcnRfc3RlcF9vdXRwdXRfd2l0
aF9idWcoc3RlcHMuRW5zdXJlQnVnSXNPcGVuQW5kQXNzaWduZWQsIDUwMDAyLCBleHBlY3RlZF9s
b2dzKQogCiAgICAgZGVmIHRlc3RfcnVudGVzdHNfYXJncyhzZWxmKToKKyAgICAgICAgc2VsZi5t
YXhEaWZmID0gTm9uZQogICAgICAgICBtb2NrX29wdGlvbnMgPSBzZWxmLl9zdGVwX29wdGlvbnMo
KQogICAgICAgICBtb2NrX29wdGlvbnMubm9uX2ludGVyYWN0aXZlID0gRmFsc2UKICAgICAgICAg
bW9ja19vcHRpb25zLmJ1aWxkX3N0eWxlID0gInJlbGVhc2UiCkBAIC0xMTEsNyArMTEyLDcgQEAg
TU9DSyBydW5fYW5kX3Rocm93X2lmX2ZhaWw6IFsnVG9vbHMvU2NyaXB0cy90ZXN0LXdlYmtpdHB5
J10sIGN3ZD0vbW9jay1jaGVja291dAogUnVubmluZyBQZXJsIHVuaXQgdGVzdHMKIE1PQ0sgcnVu
X2FuZF90aHJvd19pZl9mYWlsOiBbJ1Rvb2xzL1NjcmlwdHMvdGVzdC13ZWJraXRwZXJsJ10sIGN3
ZD0vbW9jay1jaGVja291dAogUnVubmluZyBKYXZhU2NyaXB0Q29yZSB0ZXN0cwotTU9DSyBydW5f
YW5kX3Rocm93X2lmX2ZhaWw6IFsnVG9vbHMvU2NyaXB0cy9ydW4tamF2YXNjcmlwdGNvcmUtdGVz
dHMnXSwgY3dkPS9tb2NrLWNoZWNrb3V0CitNT0NLIHJ1bl9hbmRfdGhyb3dfaWZfZmFpbDogWydU
b29scy9TY3JpcHRzL3J1bi1qYXZhc2NyaXB0Y29yZS10ZXN0cycsICctLW5vLWZhaWwtZmFzdCcs
ICctLWpzb24tb3V0cHV0PVdlYktpdEJ1aWxkL1Jlc3VsdHMvanNjX3Rlc3RfcmVzdWx0cy5qc29u
J10sIGN3ZD0vbW9jay1jaGVja291dAogUnVubmluZyBiaW5kaW5ncyBnZW5lcmF0aW9uIHRlc3Rz
CiBNT0NLIHJ1bl9hbmRfdGhyb3dfaWZfZmFpbDogWydUb29scy9TY3JpcHRzL3J1bi1iaW5kaW5n
cy10ZXN0cyddLCBjd2Q9L21vY2stY2hlY2tvdXQKIFJ1bm5pbmcgcnVuLXdlYmtpdC10ZXN0cwpA
QCAtMTIwLDYgKzEyMSw3IEBAIE1PQ0sgcnVuX2FuZF90aHJvd19pZl9mYWlsOiBbJ1Rvb2xzL1Nj
cmlwdHMvcnVuLXdlYmtpdC10ZXN0cycsICctLXJlbGVhc2UnLCAnLS1xCiAgICAgICAgIE91dHB1
dENhcHR1cmUoKS5hc3NlcnRfb3V0cHV0cyhzZWxmLCBzdGVwLnJ1biwgW3t9XSwgZXhwZWN0ZWRf
bG9ncz1leHBlY3RlZF9sb2dzKQogCiAgICAgZGVmIHRlc3RfcnVudGVzdHNfZGVidWdfYXJncyhz
ZWxmKToKKyAgICAgICAgc2VsZi5tYXhEaWZmID0gTm9uZQogICAgICAgICBtb2NrX29wdGlvbnMg
PSBzZWxmLl9zdGVwX29wdGlvbnMoKQogICAgICAgICBtb2NrX29wdGlvbnMubm9uX2ludGVyYWN0
aXZlID0gRmFsc2UKICAgICAgICAgbW9ja19vcHRpb25zLmJ1aWxkX3N0eWxlID0gImRlYnVnIgpA
QCAtMTMzLDcgKzEzNSw3IEBAIE1PQ0sgcnVuX2FuZF90aHJvd19pZl9mYWlsOiBbJ1Rvb2xzL1Nj
cmlwdHMvdGVzdC13ZWJraXRweSddLCBjd2Q9L21vY2stY2hlY2tvdXQKIFJ1bm5pbmcgUGVybCB1
bml0IHRlc3RzCiBNT0NLIHJ1bl9hbmRfdGhyb3dfaWZfZmFpbDogWydUb29scy9TY3JpcHRzL3Rl
c3Qtd2Via2l0cGVybCddLCBjd2Q9L21vY2stY2hlY2tvdXQKIFJ1bm5pbmcgSmF2YVNjcmlwdENv
cmUgdGVzdHMKLU1PQ0sgcnVuX2FuZF90aHJvd19pZl9mYWlsOiBbJ1Rvb2xzL1NjcmlwdHMvcnVu
LWphdmFzY3JpcHRjb3JlLXRlc3RzJ10sIGN3ZD0vbW9jay1jaGVja291dAorTU9DSyBydW5fYW5k
X3Rocm93X2lmX2ZhaWw6IFsnVG9vbHMvU2NyaXB0cy9ydW4tamF2YXNjcmlwdGNvcmUtdGVzdHMn
LCAnLS1uby1mYWlsLWZhc3QnLCAnLS1qc29uLW91dHB1dD1XZWJLaXRCdWlsZC9SZXN1bHRzL2pz
Y190ZXN0X3Jlc3VsdHMuanNvbiddLCBjd2Q9L21vY2stY2hlY2tvdXQKIFJ1bm5pbmcgYmluZGlu
Z3MgZ2VuZXJhdGlvbiB0ZXN0cwogTU9DSyBydW5fYW5kX3Rocm93X2lmX2ZhaWw6IFsnVG9vbHMv
U2NyaXB0cy9ydW4tYmluZGluZ3MtdGVzdHMnXSwgY3dkPS9tb2NrLWNoZWNrb3V0CiBSdW5uaW5n
IHJ1bi13ZWJraXQtdGVzdHMK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>297239</attachid>
            <date>2016-12-15 16:01:05 -0800</date>
            <delta_ts>2017-01-05 18:19:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-162458-20161215160013.patch</filename>
            <type>text/plain</type>
            <size>35700</size>
            <attacher name="Srinivasan Vijayaraghavan">webkit</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA2Mzc3CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOWI3NTZhN2Y2MTZlMzQ0YjFhYmFjNjFkZmVkMmExZWI4
NmY3ZTQ0ZC4uNmM4YmZlNGExYTgyYjQyOTg2ZTdmYmI3YjcwZGIxZTIzMjhlN2I4NyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0
IEBACisyMDE2LTEyLTE1ICBTcmluaXZhc2FuIFZpamF5YXJhZ2hhdmFuICA8c3ZpamF5YXJhZ2hh
dmFuQGFwcGxlLmNvbT4KKworICAgICAgICBFV1Mgc2hvdWxkIHJ1biBKYXZhU2NyaXB0Q29yZSB0
ZXN0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYy
NDU4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvZXdzLmpzb246IEFkZCBjb25maWcgaW5mbyBm
b3IgSlNDIEVXUy4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvcG9y
dHMucHk6IAorICAgICAgICAoRGVwcmVjYXRlZFBvcnQuYnVpbGRfanNjX2NvbW1hbmQpOiBBZGRl
ZCAtIGNvbW1hbmQgdG8gYnVpbGQgSlNDIG9ubHkgKHF1aWNrZXIgdGhhbiBidWlsZGluZyBhbGwg
b2YgV2ViS2l0KS4KKyAgICAgICAgKERlcHJlY2F0ZWRQb3J0KToKKyAgICAgICAgKERlcHJlY2F0
ZWRQb3J0LnJ1bl9qYXZhc2NyaXB0Y29yZV90ZXN0c19jb21tYW5kKTogQWxsb3cgSlNDIEVXUyB0
byBvbmx5IHJ1biBKU0MgdGVzdHMuCisgICAgICAgIChNYWNQb3J0LnJ1bl93ZWJraXRfdGVzdHNf
Y29tbWFuZCk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9wYXRjaGFuYWx5
c2lzdGFzay5weToKKyAgICAgICAgKFBhdGNoQW5hbHlzaXNUYXNrLl9idWlsZCk6IENoZWNrIGZv
ciBKU0MuCisgICAgICAgIChQYXRjaEFuYWx5c2lzVGFzay5fYnVpbGRfd2l0aG91dF9wYXRjaCk6
IENoZWNrIGZvciBKU0MuCisgICAgICAgIChQYXRjaEFuYWx5c2lzVGFzay5fdGVzdCk6IENoZWNr
IGZvciBKU0MuCisgICAgICAgIChQYXRjaEFuYWx5c2lzVGFzay5fYnVpbGRfYW5kX3Rlc3Rfd2l0
aG91dF9wYXRjaCk6IENoZWNrIGZvciBKU0MuCisgICAgICAgIChQYXRjaEFuYWx5c2lzVGFzay5f
dGVzdF9wYXRjaCk6IEFkZCByZXRyeSBsb2dpYyBmb3IgSlNDLgorICAgICAgICAqIFNjcmlwdHMv
d2Via2l0cHkvdG9vbC9jb21tYW5kcy9lYXJseXdhcm5pbmdzeXN0ZW0ucHk6CisgICAgICAgIChB
YnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbS5iZWdpbl93b3JrX3F1ZXVlKTogVXNlIEpTQ1Rlc3RS
ZXN1bHRzUmVhZGVyIGluc3RlYWQgb2YgTGF5b3V0VGVzdFJlc3VsdHNSZWFkZXIgaW4gSlNDIEVX
Uy4KKyAgICAgICAgKEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtLnRlc3RfcmVzdWx0cyk6IF9s
YXlvdXRfdGVzdF9yZXN1bHRzX3JlYWRlciAtPiBfdGVzdF9yZXN1bHRzX3JlYWRlci4KKyAgICAg
ICAgKEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtLmFyY2hpdmVfbGFzdF90ZXN0X3Jlc3VsdHMp
OiBfbGF5b3V0X3Rlc3RfcmVzdWx0c19yZWFkZXIgLT4gX3Rlc3RfcmVzdWx0c19yZWFkZXIuCisg
ICAgICAgIChBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbS5ncm91cCk6IFRoaXMgYXR0cmlidXRl
IGRldGVybWluZXMgdGhlIHR5cGUgb2YgRVdTIChlZy4gSlNDKS4KKyAgICAgICAgKEFic3RyYWN0
RWFybHlXYXJuaW5nU3lzdGVtLmxvYWRfZXdzX2NsYXNzZXMpOiBBZGQgX2dyb3VwLgorICAgICAg
ICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9lYXJseXdhcm5pbmdzeXN0ZW1fdW5p
dHRlc3QucHk6CisgICAgICAgIChFYXJseVdhcm5pbmdTeXN0ZW1UZXN0Ll9kZWZhdWx0X2V4cGVj
dGVkX2xvZ3MpOiBBZGQgX2dyb3VwLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9z
dGVwcy9idWlsZC5weToKKyAgICAgICAgKEJ1aWxkLm9wdGlvbnMpOiBDaGVjayBmb3IgSlNDLgor
ICAgICAgICAoQnVpbGQuYnVpbGQpOiBDaGVjayBmb3IgSlNDLgorICAgICAgICAoQnVpbGQucnVu
KTogQ2hlY2sgZm9yIEpTQy4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMv
b3B0aW9ucy5weToKKyAgICAgICAgKE9wdGlvbnMpOiBBZGQgLS1ncm91cCBjb21tYW5kIGxpbmUg
b3B0aW9uLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9ydW50ZXN0cy5w
eToKKyAgICAgICAgKFJ1blRlc3RzLm9wdGlvbnMpOiAKKyAgICAgICAgKFJ1blRlc3RzLnJ1bik6
IENoZWNrIGZvciBKU0MuCisgICAgICAgIChSdW5UZXN0cy5fcnVuX3dlYmtpdF90ZXN0cyk6IENo
ZWNrIGZvciBKU0MuCisgICAgICAgIChSdW5UZXN0cyk6IEFkZCBfZ3JvdXAgYXR0cmlidXRlLgor
ICAgICAgICAoUnVuVGVzdHMuX3J1bl9qYXZhc2NyaXB0Y29yZV90ZXN0cyk6IE5ldy4KKyAgICAg
ICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvc3RlcHNfdW5pdHRlc3QucHk6IENoYW5n
ZSBleHBlY3RlZCBjb21tYW5kIGZvciBydW5uaW5nIGpzYyB0ZXN0cy4KKwogMjAxNi0wOS0yNSAg
R3l1eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHdlYmtpdC5vcmc+CiAKICAgICAgICAgW0VGTF0g
QWRqdXN0IEVGTCBpbmRlbnRhdGlvbiB0byBFRkwgTWluaUJyb3dzZXIKZGlmZiAtLWdpdCBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9ld3MuanNvbiBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9ld3MuanNvbgppbmRleCAzNWQ0OTg1YWIwZjkzZDEy
N2IzNzIxZTQ2MDFjZDZkODlkZmNjZjNjLi5lNTM0MGZlNWMzYzIxYWU4MWFkMWVmN2UwM2Y3ZmI4
MWYzODM5Y2ZmIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25m
aWcvZXdzLmpzb24KKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL2V3
cy5qc29uCkBAIC01MCw1ICs1MCwxMSBAQAogICAgICAgICAicG9ydCI6ICJtYWMiLAogICAgICAg
ICAibmFtZSI6ICJtYWMtMzJiaXQtZXdzIiwKICAgICAgICAgImFyY2hpdGVjdHVyZSI6ICJpMzg2
IgorICAgIH0sCisgICAgIkpTQyBFV1MiOiB7CisgICAgICAgICJwb3J0IjogIm1hYyIsCisgICAg
ICAgICJuYW1lIjogImpzYy1ld3MiLAorICAgICAgICAiZ3JvdXAiOiAianNjIiwKKyAgICAgICAg
InJ1blRlc3RzIjogdHJ1ZQogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvY29tbW9uL2NvbmZpZy9wb3J0cy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29t
bW9uL2NvbmZpZy9wb3J0cy5weQppbmRleCBhMGQ1MGRjYjZlYTBiNWZkZTBiM2MxN2VmMTU5Y2Vh
ZmVlMWEyZTk4Li4xYzEyMDY1NzZmNTcyMjhkNGU3NTYwYzYxY2VlMjNjNTY1MzNhYzU0IDEwMDY0
NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvcG9ydHMucHkKKysr
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL3BvcnRzLnB5CkBAIC0xMDMs
OCArMTAzLDIxIEBAIGNsYXNzIERlcHJlY2F0ZWRQb3J0KG9iamVjdCk6CiAgICAgICAgICAgICBj
b21tYW5kLmFwcGVuZCgiLS1yZWxlYXNlIikKICAgICAgICAgcmV0dXJuIGNvbW1hbmQKIAotICAg
IGRlZiBydW5famF2YXNjcmlwdGNvcmVfdGVzdHNfY29tbWFuZChzZWxmKToKLSAgICAgICAgcmV0
dXJuIHNlbGYuc2NyaXB0X3NoZWxsX2NvbW1hbmQoInJ1bi1qYXZhc2NyaXB0Y29yZS10ZXN0cyIp
CisgICAgZGVmIGJ1aWxkX2pzY19jb21tYW5kKHNlbGYsIGJ1aWxkX3N0eWxlPU5vbmUpOgorICAg
ICAgICBjb21tYW5kID0gc2VsZi5zY3JpcHRfc2hlbGxfY29tbWFuZCgiYnVpbGQtanNjIikKKyAg
ICAgICAgaWYgYnVpbGRfc3R5bGUgPT0gImRlYnVnIjoKKyAgICAgICAgICAgIGNvbW1hbmQuYXBw
ZW5kKCItLWRlYnVnIikKKyAgICAgICAgcmV0dXJuIGNvbW1hbmQKKworICAgIGRlZiBydW5famF2
YXNjcmlwdGNvcmVfdGVzdHNfY29tbWFuZChzZWxmLCBidWlsZF9zdHlsZT1Ob25lKToKKyAgICAg
ICAgY29tbWFuZCA9IHNlbGYuc2NyaXB0X3NoZWxsX2NvbW1hbmQoInJ1bi1qYXZhc2NyaXB0Y29y
ZS10ZXN0cyIpCisgICAgICAgIGNvbW1hbmQuYXBwZW5kKCItLW5vLWZhaWwtZmFzdCIpCisgICAg
ICAgIGNvbW1hbmQuYXBwZW5kKCItLWpzb24tb3V0cHV0PWpzY190ZXN0X3Jlc3VsdHMuanNvbiIp
CisgICAgICAgIGNvbW1hbmQuYXBwZW5kKCItLW5vLW1vemlsbGEtdGVzdHMiKQorICAgICAgICBj
b21tYW5kLmFwcGVuZCgiLS1uby1idWlsZCIpCisgICAgICAgIGlmIChidWlsZF9zdHlsZSA9PSAi
ZGVidWciKToKKyAgICAgICAgICAgIGNvbW1hbmQuYXBwZW5kKCItLWRlYnVnIikKKyAgICAgICAg
cmV0dXJuIGNvbW1hbmQKIAogICAgIGRlZiBydW5fd2Via2l0X3Rlc3RzX2NvbW1hbmQoc2VsZiwg
YnVpbGRfc3R5bGU9Tm9uZSk6CiAgICAgICAgIGNvbW1hbmQgPSBzZWxmLnNjcmlwdF9zaGVsbF9j
b21tYW5kKCJydW4td2Via2l0LXRlc3RzIikKQEAgLTE1MCw3ICsxNjMsMTAgQEAgY2xhc3MgSU9T
U2ltdWxhdG9yV0syUG9ydChEZXByZWNhdGVkUG9ydCk6CiBjbGFzcyBNYWNQb3J0KERlcHJlY2F0
ZWRQb3J0KToKICAgICBwb3J0X2ZsYWdfbmFtZSA9ICJtYWMiCiAKLSAgICBkZWYgcnVuX3dlYmtp
dF90ZXN0c19jb21tYW5kKHNlbGYsIGJ1aWxkX3N0eWxlPU5vbmUpOgorICAgIGRlZiBydW5fd2Vi
a2l0X3Rlc3RzX2NvbW1hbmQoc2VsZiwgYnVpbGRfc3R5bGU9Tm9uZSwgdGVzdF9zdWl0ZT1Ob25l
KToKKyAgICAgICAgaWYgKHRlc3Rfc3VpdGUgPT0gImpzYyIpOgorICAgICAgICAgICAgcmV0dXJu
IHN1cGVyKE1hY1BvcnQsIHNlbGYpLnJ1bl9qYXZhc2NyaXB0Y29yZV90ZXN0c19jb21tYW5kKGJ1
aWxkX3N0eWxlKQorCiAgICAgICAgIGNvbW1hbmQgPSBzdXBlcihNYWNQb3J0LCBzZWxmKS5ydW5f
d2Via2l0X3Rlc3RzX2NvbW1hbmQoYnVpbGRfc3R5bGUpCiAgICAgICAgIGNvbW1hbmQuYXBwZW5k
KCItLWR1bXAtcmVuZGVyLXRyZWUiKQogICAgICAgICByZXR1cm4gY29tbWFuZApkaWZmIC0tZ2l0
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2pzY3Rlc3RyZXN1bHRzLnB5IGIv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2pzY3Rlc3RyZXN1bHRzLnB5Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmQwZWJjZTdiNTE2NDBlOTVjZGZiNjhkYzg1MDM4NzRkMzg2ZDc3MWYKLS0tIC9kZXYv
bnVsbAorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvanNjdGVzdHJlc3Vs
dHMucHkKQEAgLTAsMCArMSw2NiBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBt
ZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisjIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyMg
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorIyBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgor
IyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorCitpbXBvcnQganNvbgoraW1wb3J0IGxvZ2dpbmcKK2Zyb20gd2Via2l0cHkudGhpcmRw
YXJ0eS5CZWF1dGlmdWxTb3VwIGltcG9ydCBCZWF1dGlmdWxTb3VwLCBTb3VwU3RyYWluZXIKKwor
X2xvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKQorCisKK2NsYXNzIEpTQ1Rlc3RSZXN1
bHRzKG9iamVjdCk6CisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIHJlc3VsdHNfZnJvbV9zdHJp
bmcoY2xzLCBzdHJpbmcpOgorICAgICAgICBpZiBub3Qgc3RyaW5nOgorICAgICAgICAgICAgcmV0
dXJuIE5vbmUKKyAgICAgICAgcGFyc2VkX3Jlc3VsdHMgPSBqc29uLmxvYWQoc3RyaW5nKQorICAg
ICAgICByZXR1cm4gY2xzKHBhcnNlZF9yZXN1bHRzWydhbGxBcGlUZXN0c1Bhc3NlZCddLCBwYXJz
ZWRfcmVzdWx0c1snc3RyZXNzVGVzdEZhaWx1cmVzJ10pCisKKyAgICBkZWYgX19pbml0X18oc2Vs
ZiwgYWxsX2FwaV90ZXN0c19wYXNzZWQsIHN0cmVzc190ZXN0X2ZhaWx1cmVzKToKKyAgICAgICAg
c2VsZi5fYWxsX2FwaV90ZXN0c19wYXNzZWQgPSBhbGxfYXBpX3Rlc3RzX3Bhc3NlZAorICAgICAg
ICBzZWxmLl9zdHJlc3NfdGVzdF9mYWlsdXJlcyA9IHN0cmVzc190ZXN0X2ZhaWx1cmVzCisKKyAg
ICAgICAgc2VsZi5fdGVzdF9yZXN1bHRzID0gc3RyZXNzX3Rlc3RfZmFpbHVyZXMKKyAgICAgICAg
aWYgc2VsZi5fYWxsX2FwaV90ZXN0c19wYXNzZWQgPT0gRmFsc2U6CisgICAgICAgICAgICBzZWxm
Ll90ZXN0X3Jlc3VsdHMgKz0gImFwaVRlc3RzIgorCisgICAgZGVmIHN0cmVzc190ZXN0X2ZhaWx1
cmVzKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5fc3RyZXNzX3Rlc3RfZmFpbHVyZXMKKwor
ICAgIGRlZiBhbGxfYXBpX3Rlc3RzX3Bhc3NlZChzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYu
X2FsbF9hcGlfdGVzdHNfcGFzc2VkCisKKyAgICBkZWYgYWxsX3Bhc3NlZChzZWxmKToKKyAgICAg
ICAgcmV0dXJuIHNlbGYuX2FsbF9hcGlfdGVzdHNfcGFzc2VkID09IFRydWUgYW5kIGxlbihzZWxm
Ll9zdHJlc3NfdGVzdF9mYWlsdXJlcykgPT0gMAorCisgICAgZGVmIGZhaWxpbmdfdGVzdF9yZXN1
bHRzKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5zdHJlc3NfdGVzdF9mYWlsdXJlcygpCisK
KyAgICBkZWYgdGVzdF9yZXN1bHRzKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5fdGVzdF9y
ZXN1bHRzCisKKyAgICBkZWYgZmFpbGluZ190ZXN0cyhzZWxmKToKKyAgICAgICAgcmV0dXJuIHNl
bGYuX3Rlc3RfcmVzdWx0cworCisgICAgIyBObyBkZWZpbmVkIGZhaWx1cmUgbGltaXQgZm9yIEpT
QworICAgIGRlZiBkaWRfZXhjZWVkX3Rlc3RfZmFpbHVyZV9saW1pdChzZWxmKToKKyAgICAgICAg
cmV0dXJuIEZhbHNlCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90
L2pzY3Rlc3RyZXN1bHRzcmVhZGVyLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2Jv
dC9qc2N0ZXN0cmVzdWx0c3JlYWRlci5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZWZkYWY0ZmUyNzU0ZDhhOGY1
ZTA0ODA4NTAzZDMxNTg0ZjJjNTU0Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS90b29sL2JvdC9qc2N0ZXN0cmVzdWx0c3JlYWRlci5weQpAQCAtMCwwICsxLDQ3IEBA
CisjIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisj
CisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorIyBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisjIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SCisjIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisjIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
CisjIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK2ltcG9ydCBsb2dnaW5n
CitpbXBvcnQganNvbgorZnJvbSB3ZWJraXRweS5jb21tb24ubmV0LmpzY3Rlc3RyZXN1bHRzIGlt
cG9ydCBKU0NUZXN0UmVzdWx0cworCitfbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18p
CisKKworY2xhc3MgSlNDVGVzdFJlc3VsdHNSZWFkZXIob2JqZWN0KToKKyAgICBkZWYgX19pbml0
X18oc2VsZiwgaG9zdCwgcmVzdWx0c19kaXJlY3RvcnkpOgorICAgICAgICBzZWxmLl9ob3N0ID0g
aG9zdAorICAgICAgICBzZWxmLl9yZXN1bHRzX2RpcmVjdG9yeSA9IHJlc3VsdHNfZGlyZWN0b3J5
CisKKyAgICBkZWYgX3JlYWRfZmlsZV9jb250ZW50cyhzZWxmLCBwYXRoKToKKyAgICAgICAgdHJ5
OgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuX2hvc3QuZmlsZXN5c3RlbS5yZWFkX3RleHRfZmls
ZShwYXRoKQorICAgICAgICBleGNlcHQgSU9FcnJvciwgZTogICMgRmlsZSBkb2VzIG5vdCBleGlz
dCBvciBjYW4ndCBiZSByZWFkLgorICAgICAgICAgICAgcmV0dXJuIE5vbmUKKworICAgIGRlZiBf
Y3JlYXRlX2pzY190ZXN0X3Jlc3VsdHMoc2VsZik6CisgICAgICAgIHJlc3VsdHNfcGF0aCA9IHNl
bGYuX2hvc3QuZmlsZXN5c3RlbS5qb2luKHNlbGYuX3Jlc3VsdHNfZGlyZWN0b3J5LCAianNjX3Rl
c3RfcmVzdWx0cy5qc29uIikKKyAgICAgICAgY29udGVudHMgPSBvcGVuKHJlc3VsdHNfcGF0aCkK
KyAgICAgICAgcmV0dXJuIEpTQ1Rlc3RSZXN1bHRzLnJlc3VsdHNfZnJvbV9zdHJpbmcoY29udGVu
dHMpCisKKyAgICBkZWYgcmVzdWx0cyhzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX2NyZWF0
ZV9qc2NfdGVzdF9yZXN1bHRzKCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
dG9vbC9ib3QvcGF0Y2hhbmFseXNpc3Rhc2sucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rv
b2wvYm90L3BhdGNoYW5hbHlzaXN0YXNrLnB5CmluZGV4IDc1MjMxNjQxNmM1ZjlkMGEzZTU5ZWY2
ZDA1ZTMxNzg1ZjkxNzQ2MjkuLjY4ODRmYzI1MWI1YTUxYzNkYTg2M2E3ODc4ZWFjNjU5ZDk5YWY4
NDMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvcGF0Y2hhbmFs
eXNpc3Rhc2sucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9wYXRjaGFu
YWx5c2lzdGFzay5weQpAQCAtMTIzLDI3ICsxMjMsMzkgQEAgY2xhc3MgUGF0Y2hBbmFseXNpc1Rh
c2sob2JqZWN0KToKICAgICAgICAgIlBhdGNoIGRvZXMgbm90IGFwcGx5IikKIAogICAgIGRlZiBf
YnVpbGQoc2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmLl9ydW5fY29tbWFuZChbCisgICAgICAg
IGFyZ3MgPSBbCiAgICAgICAgICAgICAiYnVpbGQiLAogICAgICAgICAgICAgIi0tbm8tY2xlYW4i
LAogICAgICAgICAgICAgIi0tbm8tdXBkYXRlIiwKICAgICAgICAgICAgICItLWJ1aWxkLXN0eWxl
PSVzIiAlIHNlbGYuX2RlbGVnYXRlLmJ1aWxkX3N0eWxlKCksCi0gICAgICAgIF0sCi0gICAgICAg
ICJCdWlsdCBwYXRjaCIsCi0gICAgICAgICJQYXRjaCBkb2VzIG5vdCBidWlsZCIpCisgICAgICAg
IF0KKworICAgICAgICB0cnk6CisgICAgICAgICAgICBhcmdzLmFwcGVuZCgiLS1ncm91cD0lcyIg
JSBzZWxmLl9kZWxlZ2F0ZS5ncm91cCgpKQorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAg
cmV0dXJuIHNlbGYuX3J1bl9jb21tYW5kKAorICAgICAgICAgICAgICAgIGFyZ3MsCisgICAgICAg
ICAgICAgICAgIkJ1aWx0IHBhdGNoIiwKKyAgICAgICAgICAgICAgICAiUGF0Y2ggZG9lcyBub3Qg
YnVpbGQiKQogCiAgICAgZGVmIF9idWlsZF93aXRob3V0X3BhdGNoKHNlbGYpOgotICAgICAgICBy
ZXR1cm4gc2VsZi5fcnVuX2NvbW1hbmQoWworICAgICAgICBhcmdzID0gWwogICAgICAgICAgICAg
ImJ1aWxkIiwKICAgICAgICAgICAgICItLWZvcmNlLWNsZWFuIiwKICAgICAgICAgICAgICItLW5v
LXVwZGF0ZSIsCiAgICAgICAgICAgICAiLS1idWlsZC1zdHlsZT0lcyIgJSBzZWxmLl9kZWxlZ2F0
ZS5idWlsZF9zdHlsZSgpLAotICAgICAgICBdLAotICAgICAgICAiQWJsZSB0byBidWlsZCB3aXRo
b3V0IHBhdGNoIiwKLSAgICAgICAgIlVuYWJsZSB0byBidWlsZCB3aXRob3V0IHBhdGNoIikKKyAg
ICAgICAgXQorCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGFyZ3MuYXBwZW5kKCItLWdyb3Vw
PSVzIiAlIHNlbGYuX2RlbGVnYXRlLmdyb3VwKCkpCisgICAgICAgIGZpbmFsbHk6CisgICAgICAg
ICAgICByZXR1cm4gc2VsZi5fcnVuX2NvbW1hbmQoCisgICAgICAgICAgICAgICAgYXJncywKKyAg
ICAgICAgICAgICAgICAiQWJsZSB0byBidWlsZCB3aXRob3V0IHBhdGNoIiwKKyAgICAgICAgICAg
ICAgICAiVW5hYmxlIHRvIGJ1aWxkIHdpdGhvdXQgcGF0Y2giKQogCiAgICAgZGVmIF90ZXN0KHNl
bGYpOgotICAgICAgICByZXR1cm4gc2VsZi5fcnVuX2NvbW1hbmQoWworICAgICAgICBhcmdzID0g
WwogICAgICAgICAgICAgImJ1aWxkLWFuZC10ZXN0IiwKICAgICAgICAgICAgICItLW5vLWNsZWFu
IiwKICAgICAgICAgICAgICItLW5vLXVwZGF0ZSIsCkBAIC0xNTEsMTIgKzE2MywxOCBAQCBjbGFz
cyBQYXRjaEFuYWx5c2lzVGFzayhvYmplY3QpOgogICAgICAgICAgICAgIi0tdGVzdCIsCiAgICAg
ICAgICAgICAiLS1ub24taW50ZXJhY3RpdmUiLAogICAgICAgICAgICAgIi0tYnVpbGQtc3R5bGU9
JXMiICUgc2VsZi5fZGVsZWdhdGUuYnVpbGRfc3R5bGUoKSwKLSAgICAgICAgXSwKLSAgICAgICAg
IlBhc3NlZCB0ZXN0cyIsCi0gICAgICAgICJQYXRjaCBkb2VzIG5vdCBwYXNzIHRlc3RzIikKKyAg
ICAgICAgXQorCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGFyZ3MuYXBwZW5kKCItLWdyb3Vw
PSVzIiAlIHNlbGYuX2RlbGVnYXRlLmdyb3VwKCkpCisgICAgICAgIGZpbmFsbHk6CisgICAgICAg
ICAgICByZXR1cm4gc2VsZi5fcnVuX2NvbW1hbmQoCisgICAgICAgICAgICAgICAgYXJncywKKyAg
ICAgICAgICAgICAgICAiUGFzc2VkIHRlc3RzIiwKKyAgICAgICAgICAgICAgICAiUGF0Y2ggZG9l
cyBub3QgcGFzcyB0ZXN0cyIpCiAKICAgICBkZWYgX2J1aWxkX2FuZF90ZXN0X3dpdGhvdXRfcGF0
Y2goc2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmLl9ydW5fY29tbWFuZChbCisgICAgICAgIGFy
Z3MgPSBbCiAgICAgICAgICAgICAiYnVpbGQtYW5kLXRlc3QiLAogICAgICAgICAgICAgIi0tZm9y
Y2UtY2xlYW4iLAogICAgICAgICAgICAgIi0tbm8tdXBkYXRlIiwKQEAgLTE2NCw5ICsxODIsMTUg
QEAgY2xhc3MgUGF0Y2hBbmFseXNpc1Rhc2sob2JqZWN0KToKICAgICAgICAgICAgICItLXRlc3Qi
LAogICAgICAgICAgICAgIi0tbm9uLWludGVyYWN0aXZlIiwKICAgICAgICAgICAgICItLWJ1aWxk
LXN0eWxlPSVzIiAlIHNlbGYuX2RlbGVnYXRlLmJ1aWxkX3N0eWxlKCksCi0gICAgICAgIF0sCi0g
ICAgICAgICJBYmxlIHRvIHBhc3MgdGVzdHMgd2l0aG91dCBwYXRjaCIsCi0gICAgICAgICJVbmFi
bGUgdG8gcGFzcyB0ZXN0cyB3aXRob3V0IHBhdGNoICh0cmVlIGlzIHJlZD8pIikKKyAgICAgICAg
XQorCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGFyZ3MuYXBwZW5kKCItLWdyb3VwPSVzIiAl
IHNlbGYuX2RlbGVnYXRlLmdyb3VwKCkpCisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICBy
ZXR1cm4gc2VsZi5fcnVuX2NvbW1hbmQoCisgICAgICAgICAgICAgICAgYXJncywKKyAgICAgICAg
ICAgICAgICAiQWJsZSB0byBwYXNzIHRlc3RzIHdpdGhvdXQgcGF0Y2giLAorICAgICAgICAgICAg
ICAgICJVbmFibGUgdG8gcGFzcyB0ZXN0cyB3aXRob3V0IHBhdGNoICh0cmVlIGlzIHJlZD8pIikK
IAogICAgIGRlZiBfbGFuZChzZWxmKToKICAgICAgICAgIyBVbmNsZWFyIGlmIHRoaXMgc2hvdWxk
IHBhc3MgLS1xdWlldCBvciBub3QuICBJZiAtLXBhcmVudC1jb21tYW5kIGFsd2F5cyBkb2VzIHRo
ZSByZXBvcnRpbmcsIHRoZW4gaXQgc2hvdWxkLgpAQCAtMjEwLDY5ICsyMzQsODggQEAgY2xhc3Mg
UGF0Y2hBbmFseXNpc1Rhc2sob2JqZWN0KToKICAgICAgICAgaWYgc2VsZi5fdGVzdCgpOgogICAg
ICAgICAgICAgcmV0dXJuIFRydWUKIAotICAgICAgICAjIE5vdGU6IGFyY2hpdmVfbGFzdF90ZXN0
X3Jlc3VsdHMgZGVsZXRlcyB0aGUgcmVzdWx0cyBkaXJlY3RvcnksIG1ha2luZyB0aGVzZSBjYWxs
cyBvcmRlci1zZW5zaXR2ZS4KLSAgICAgICAgIyBXZSBjb3VsZCByZW1vdmUgdGhpcyBkZXBlbmRl
bmN5IGJ5IGJ1aWxkaW5nIHRoZSB0ZXN0X3Jlc3VsdHMgZnJvbSB0aGUgYXJjaGl2ZS4KLSAgICAg
ICAgZmlyc3RfcmVzdWx0cyA9IHNlbGYuX2RlbGVnYXRlLnRlc3RfcmVzdWx0cygpCi0gICAgICAg
IGZpcnN0X3Jlc3VsdHNfYXJjaGl2ZSA9IHNlbGYuX2RlbGVnYXRlLmFyY2hpdmVfbGFzdF90ZXN0
X3Jlc3VsdHMoc2VsZi5fcGF0Y2gpCi0gICAgICAgIGZpcnN0X3NjcmlwdF9lcnJvciA9IHNlbGYu
X3NjcmlwdF9lcnJvcgotICAgICAgICBmaXJzdF9mYWlsdXJlX3N0YXR1c19pZCA9IHNlbGYuZmFp
bHVyZV9zdGF0dXNfaWQKLQotICAgICAgICBpZiBzZWxmLl90ZXN0KCkgYW5kIG5vdCBmaXJzdF9y
ZXN1bHRzLmRpZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xpbWl0KCk6Ci0gICAgICAgICAgICAjIE9u
bHkgcmVwb3J0IGZsYWt5IHRlc3RzIGlmIHdlIHdlcmUgc3VjY2Vzc2Z1bCBhdCBwYXJzaW5nIHJl
c3VsdHMuanNvbiBhbmQgYXJjaGl2aW5nIHJlc3VsdHMuCi0gICAgICAgICAgICBpZiBmaXJzdF9y
ZXN1bHRzIGFuZCBmaXJzdF9yZXN1bHRzX2FyY2hpdmU6Ci0gICAgICAgICAgICAgICAgc2VsZi5f
cmVwb3J0X2ZsYWt5X3Rlc3RzKGZpcnN0X3Jlc3VsdHMuZmFpbGluZ190ZXN0X3Jlc3VsdHMoKSwg
Zmlyc3RfcmVzdWx0c19hcmNoaXZlKQotICAgICAgICAgICAgcmV0dXJuIFRydWUKKyAgICAgICAg
aWYgaGFzYXR0cihzZWxmLl9kZWxlZ2F0ZSwgJ2dyb3VwJykgYW5kIHNlbGYuX2RlbGVnYXRlLmdy
b3VwKCkgPT0gImpzYyI6CisgICAgICAgICAgICBmaXJzdF9yZXN1bHRzID0gc2VsZi5fZGVsZWdh
dGUudGVzdF9yZXN1bHRzKCkKKyAgICAgICAgICAgIGZpcnN0X3NjcmlwdF9lcnJvciA9IHNlbGYu
X3NjcmlwdF9lcnJvcgorICAgICAgICAgICAgaWYgZmlyc3RfcmVzdWx0cy5hbGxfYXBpX3Rlc3Rz
X3Bhc3NlZCgpIGlzIFRydWUgYW5kIGxlbihmaXJzdF9yZXN1bHRzLnN0cmVzc190ZXN0X2ZhaWx1
cmVzKCkpID09IDA6CisgICAgICAgICAgICAgICAgcmV0dXJuIFRydWUKKyAgICAgICAgICAgIGVs
c2U6CisgICAgICAgICAgICAgICAgIyBUT0RPIHN2aWpheWFyYWdoYXZhbkBhcHBsZS5jb206IENv
bW1lbnQgdGhpcywgYW5kIHVuY29tbWVudCB0aGUgYmVsb3cgbGluZXMgc28gaXQgYWN0dWFsbHkg
YnVpbGRzIHdpdGhvdXQgcGF0Y2gKKyAgICAgICAgICAgICAgICAjY2xlYW5fdHJlZV9yZXN1bHRz
ID0gZmlyc3RfcmVzdWx0cworICAgICAgICAgICAgICAgICNjbGVhbl90cmVlX3Jlc3VsdHNbJ2Fs
bEFwaVRlc3RzUGFzc2VkJ10gPSBGYWxzZQogCi0gICAgICAgIHNlY29uZF9yZXN1bHRzID0gc2Vs
Zi5fZGVsZWdhdGUudGVzdF9yZXN1bHRzKCkKLSAgICAgICAgc2Vjb25kX3Jlc3VsdHNfYXJjaGl2
ZSA9IHNlbGYuX2RlbGVnYXRlLmFyY2hpdmVfbGFzdF90ZXN0X3Jlc3VsdHMoc2VsZi5fcGF0Y2gp
Ci0gICAgICAgIHNlY29uZF9zY3JpcHRfZXJyb3IgPSBzZWxmLl9zY3JpcHRfZXJyb3IKLSAgICAg
ICAgc2Vjb25kX2ZhaWx1cmVfc3RhdHVzX2lkID0gc2VsZi5mYWlsdXJlX3N0YXR1c19pZAorICAg
ICAgICAgICAgICAgIHNlbGYuX2J1aWxkX2FuZF90ZXN0X3dpdGhvdXRfcGF0Y2goKQorICAgICAg
ICAgICAgICAgIGNsZWFuX3RyZWVfcmVzdWx0cyA9IHNlbGYuX2RlbGVnYXRlLnRlc3RfcmVzdWx0
cygpCiAKLSAgICAgICAgaWYgc2Vjb25kX3Jlc3VsdHMuZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVf
bGltaXQoKSBhbmQgZmlyc3RfcmVzdWx0cy5kaWRfZXhjZWVkX3Rlc3RfZmFpbHVyZV9saW1pdCgp
OgotICAgICAgICAgICAgc2VsZi5fYnVpbGRfYW5kX3Rlc3Rfd2l0aG91dF9wYXRjaCgpCi0gICAg
ICAgICAgICBjbGVhbl90cmVlX3Jlc3VsdHMgPSBzZWxmLl9kZWxlZ2F0ZS50ZXN0X3Jlc3VsdHMo
KQorICAgICAgICAgICAgICAgIGlmIGNsZWFuX3RyZWVfcmVzdWx0cyA9PSBmaXJzdF9yZXN1bHRz
OgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gVHJ1ZQogCi0gICAgICAgICAgICBpZiAobGVu
KGZpcnN0X3Jlc3VsdHMuZmFpbGluZ190ZXN0cygpKSAtIGxlbihjbGVhbl90cmVlX3Jlc3VsdHMu
ZmFpbGluZ190ZXN0cygpKSkgPD0gNToKLSAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAg
ICAgICAgICAgICAgICByZXR1cm4gc2VsZi5yZXBvcnRfZmFpbHVyZShOb25lLCBmaXJzdF9yZXN1
bHRzLCBmaXJzdF9zY3JpcHRfZXJyb3IpCiAKLSAgICAgICAgICAgIHNlbGYuZmFpbHVyZV9zdGF0
dXNfaWQgPSBmaXJzdF9mYWlsdXJlX3N0YXR1c19pZAorICAgICAgICBlbHNlOgorICAgICAgICAg
ICAgIyBOb3RlOiBhcmNoaXZlX2xhc3RfdGVzdF9yZXN1bHRzIGRlbGV0ZXMgdGhlIHJlc3VsdHMg
ZGlyZWN0b3J5LCBtYWtpbmcgdGhlc2UgY2FsbHMgb3JkZXItc2Vuc2l0dmUuCisgICAgICAgICAg
ICAjIFdlIGNvdWxkIHJlbW92ZSB0aGlzIGRlcGVuZGVuY3kgYnkgYnVpbGRpbmcgdGhlIHRlc3Rf
cmVzdWx0cyBmcm9tIHRoZSBhcmNoaXZlLgorICAgICAgICAgICAgZmlyc3RfcmVzdWx0cyA9IHNl
bGYuX2RlbGVnYXRlLnRlc3RfcmVzdWx0cygpCisgICAgICAgICAgICBmaXJzdF9yZXN1bHRzX2Fy
Y2hpdmUgPSBzZWxmLl9kZWxlZ2F0ZS5hcmNoaXZlX2xhc3RfdGVzdF9yZXN1bHRzKHNlbGYuX3Bh
dGNoKQorICAgICAgICAgICAgZmlyc3Rfc2NyaXB0X2Vycm9yID0gc2VsZi5fc2NyaXB0X2Vycm9y
CisgICAgICAgICAgICBmaXJzdF9mYWlsdXJlX3N0YXR1c19pZCA9IHNlbGYuZmFpbHVyZV9zdGF0
dXNfaWQKIAotICAgICAgICAgICAgcmV0dXJuIHNlbGYucmVwb3J0X2ZhaWx1cmUoZmlyc3RfcmVz
dWx0c19hcmNoaXZlLCBmaXJzdF9yZXN1bHRzLCBmaXJzdF9zY3JpcHRfZXJyb3IpCisgICAgICAg
ICAgICBpZiBzZWxmLl90ZXN0KCkgYW5kIG5vdCBmaXJzdF9yZXN1bHRzLmRpZF9leGNlZWRfdGVz
dF9mYWlsdXJlX2xpbWl0KCk6CisgICAgICAgICAgICAgICAgIyBPbmx5IHJlcG9ydCBmbGFreSB0
ZXN0cyBpZiB3ZSB3ZXJlIHN1Y2Nlc3NmdWwgYXQgcGFyc2luZyByZXN1bHRzLmpzb24gYW5kIGFy
Y2hpdmluZyByZXN1bHRzLgorICAgICAgICAgICAgICAgIGlmIGZpcnN0X3Jlc3VsdHMgYW5kIGZp
cnN0X3Jlc3VsdHNfYXJjaGl2ZToKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5fcmVwb3J0X2Zs
YWt5X3Rlc3RzKGZpcnN0X3Jlc3VsdHMuZmFpbGluZ190ZXN0X3Jlc3VsdHMoKSwgZmlyc3RfcmVz
dWx0c19hcmNoaXZlKQorICAgICAgICAgICAgICAgIHJldHVybiBUcnVlCiAKLSAgICAgICAgaWYg
c2Vjb25kX3Jlc3VsdHMuZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQoKToKLSAgICAgICAg
ICAgIHNlbGYuX3Nob3VsZF9kZWZlcl9wYXRjaF9vcl90aHJvdyhmaXJzdF9yZXN1bHRzLmZhaWxp
bmdfdGVzdF9yZXN1bHRzKCksIGZpcnN0X3Jlc3VsdHNfYXJjaGl2ZSwgZmlyc3Rfc2NyaXB0X2Vy
cm9yLCBmaXJzdF9mYWlsdXJlX3N0YXR1c19pZCkKLSAgICAgICAgICAgIHJldHVybiBGYWxzZQor
ICAgICAgICAgICAgc2Vjb25kX3Jlc3VsdHMgPSBzZWxmLl9kZWxlZ2F0ZS50ZXN0X3Jlc3VsdHMo
KQorICAgICAgICAgICAgc2Vjb25kX3Jlc3VsdHNfYXJjaGl2ZSA9IHNlbGYuX2RlbGVnYXRlLmFy
Y2hpdmVfbGFzdF90ZXN0X3Jlc3VsdHMoc2VsZi5fcGF0Y2gpCisgICAgICAgICAgICBzZWNvbmRf
c2NyaXB0X2Vycm9yID0gc2VsZi5fc2NyaXB0X2Vycm9yCisgICAgICAgICAgICBzZWNvbmRfZmFp
bHVyZV9zdGF0dXNfaWQgPSBzZWxmLmZhaWx1cmVfc3RhdHVzX2lkCiAKLSAgICAgICAgaWYgZmly
c3RfcmVzdWx0cy5kaWRfZXhjZWVkX3Rlc3RfZmFpbHVyZV9saW1pdCgpOgotICAgICAgICAgICAg
c2VsZi5fc2hvdWxkX2RlZmVyX3BhdGNoX29yX3Rocm93KHNlY29uZF9yZXN1bHRzLmZhaWxpbmdf
dGVzdF9yZXN1bHRzKCksIHNlY29uZF9yZXN1bHRzX2FyY2hpdmUsIHNlY29uZF9zY3JpcHRfZXJy
b3IsIHNlY29uZF9mYWlsdXJlX3N0YXR1c19pZCkKLSAgICAgICAgICAgIHJldHVybiBGYWxzZQor
ICAgICAgICAgICAgaWYgc2Vjb25kX3Jlc3VsdHMuZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGlt
aXQoKSBhbmQgZmlyc3RfcmVzdWx0cy5kaWRfZXhjZWVkX3Rlc3RfZmFpbHVyZV9saW1pdCgpOgor
ICAgICAgICAgICAgICAgIHNlbGYuX2J1aWxkX2FuZF90ZXN0X3dpdGhvdXRfcGF0Y2goKQorICAg
ICAgICAgICAgICAgIGNsZWFuX3RyZWVfcmVzdWx0cyA9IHNlbGYuX2RlbGVnYXRlLnRlc3RfcmVz
dWx0cygpCisKKyAgICAgICAgICAgICAgICBpZiAobGVuKGZpcnN0X3Jlc3VsdHMuZmFpbGluZ190
ZXN0cygpKSAtIGxlbihjbGVhbl90cmVlX3Jlc3VsdHMuZmFpbGluZ190ZXN0cygpKSkgPD0gNToK
KyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCiAKLSAgICAgICAgaWYgc2VsZi5fcmVz
dWx0c19mYWlsZWRfZGlmZmVyZW50X3Rlc3RzKGZpcnN0X3Jlc3VsdHMsIHNlY29uZF9yZXN1bHRz
KToKLSAgICAgICAgICAgIGZpcnN0X2ZhaWxpbmdfcmVzdWx0c19zZXQgPSBmcm96ZW5zZXQoZmly
c3RfcmVzdWx0cy5mYWlsaW5nX3Rlc3RfcmVzdWx0cygpKQotICAgICAgICAgICAgc2Vjb25kX2Zh
aWxpbmdfcmVzdWx0c19zZXQgPSBmcm96ZW5zZXQoc2Vjb25kX3Jlc3VsdHMuZmFpbGluZ190ZXN0
X3Jlc3VsdHMoKSkKKyAgICAgICAgICAgICAgICBzZWxmLmZhaWx1cmVfc3RhdHVzX2lkID0gZmly
c3RfZmFpbHVyZV9zdGF0dXNfaWQKIAotICAgICAgICAgICAgdGVzdHNfdGhhdF9vbmx5X2ZhaWxl
ZF9maXJzdCA9IGZpcnN0X2ZhaWxpbmdfcmVzdWx0c19zZXQuZGlmZmVyZW5jZShzZWNvbmRfZmFp
bGluZ19yZXN1bHRzX3NldCkKLSAgICAgICAgICAgIHNlbGYuX3JlcG9ydF9mbGFreV90ZXN0cyh0
ZXN0c190aGF0X29ubHlfZmFpbGVkX2ZpcnN0LCBmaXJzdF9yZXN1bHRzX2FyY2hpdmUpCisgICAg
ICAgICAgICAgICAgcmV0dXJuIHNlbGYucmVwb3J0X2ZhaWx1cmUoZmlyc3RfcmVzdWx0c19hcmNo
aXZlLCBmaXJzdF9yZXN1bHRzLCBmaXJzdF9zY3JpcHRfZXJyb3IpCiAKLSAgICAgICAgICAgIHRl
c3RzX3RoYXRfb25seV9mYWlsZWRfc2Vjb25kID0gc2Vjb25kX2ZhaWxpbmdfcmVzdWx0c19zZXQu
ZGlmZmVyZW5jZShmaXJzdF9mYWlsaW5nX3Jlc3VsdHNfc2V0KQotICAgICAgICAgICAgc2VsZi5f
cmVwb3J0X2ZsYWt5X3Rlc3RzKHRlc3RzX3RoYXRfb25seV9mYWlsZWRfc2Vjb25kLCBzZWNvbmRf
cmVzdWx0c19hcmNoaXZlKQorICAgICAgICAgICAgaWYgc2Vjb25kX3Jlc3VsdHMuZGlkX2V4Y2Vl
ZF90ZXN0X2ZhaWx1cmVfbGltaXQoKToKKyAgICAgICAgICAgICAgICBzZWxmLl9zaG91bGRfZGVm
ZXJfcGF0Y2hfb3JfdGhyb3coZmlyc3RfcmVzdWx0cy5mYWlsaW5nX3Rlc3RfcmVzdWx0cygpLCBm
aXJzdF9yZXN1bHRzX2FyY2hpdmUsIGZpcnN0X3NjcmlwdF9lcnJvciwgZmlyc3RfZmFpbHVyZV9z
dGF0dXNfaWQpCisgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICAgICAgICAgIGlm
IGZpcnN0X3Jlc3VsdHMuZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQoKToKKyAgICAgICAg
ICAgICAgICBzZWxmLl9zaG91bGRfZGVmZXJfcGF0Y2hfb3JfdGhyb3coc2Vjb25kX3Jlc3VsdHMu
ZmFpbGluZ190ZXN0X3Jlc3VsdHMoKSwgc2Vjb25kX3Jlc3VsdHNfYXJjaGl2ZSwgc2Vjb25kX3Nj
cmlwdF9lcnJvciwgc2Vjb25kX2ZhaWx1cmVfc3RhdHVzX2lkKQorICAgICAgICAgICAgICAgIHJl
dHVybiBGYWxzZQorCisgICAgICAgICAgICBpZiBzZWxmLl9yZXN1bHRzX2ZhaWxlZF9kaWZmZXJl
bnRfdGVzdHMoZmlyc3RfcmVzdWx0cywgc2Vjb25kX3Jlc3VsdHMpOgorICAgICAgICAgICAgICAg
IGZpcnN0X2ZhaWxpbmdfcmVzdWx0c19zZXQgPSBmcm96ZW5zZXQoZmlyc3RfcmVzdWx0cy5mYWls
aW5nX3Rlc3RfcmVzdWx0cygpKQorICAgICAgICAgICAgICAgIHNlY29uZF9mYWlsaW5nX3Jlc3Vs
dHNfc2V0ID0gZnJvemVuc2V0KHNlY29uZF9yZXN1bHRzLmZhaWxpbmdfdGVzdF9yZXN1bHRzKCkp
CiAKLSAgICAgICAgICAgIHRlc3RzX3RoYXRfY29uc2lzdGVudGx5X2ZhaWxlZCA9IGZpcnN0X2Zh
aWxpbmdfcmVzdWx0c19zZXQuaW50ZXJzZWN0aW9uKHNlY29uZF9mYWlsaW5nX3Jlc3VsdHNfc2V0
KQotICAgICAgICAgICAgaWYgdGVzdHNfdGhhdF9jb25zaXN0ZW50bHlfZmFpbGVkOgotICAgICAg
ICAgICAgICAgIGlmIHNlbGYuX3Nob3VsZF9kZWZlcl9wYXRjaF9vcl90aHJvdyh0ZXN0c190aGF0
X2NvbnNpc3RlbnRseV9mYWlsZWQsIGZpcnN0X3Jlc3VsdHNfYXJjaGl2ZSwgZmlyc3Rfc2NyaXB0
X2Vycm9yLCBmaXJzdF9mYWlsdXJlX3N0YXR1c19pZCk6Ci0gICAgICAgICAgICAgICAgICAgIHJl
dHVybiBGYWxzZSAgIyBEZWZlciBwYXRjaAorICAgICAgICAgICAgICAgIHRlc3RzX3RoYXRfb25s
eV9mYWlsZWRfZmlyc3QgPSBmaXJzdF9mYWlsaW5nX3Jlc3VsdHNfc2V0LmRpZmZlcmVuY2Uoc2Vj
b25kX2ZhaWxpbmdfcmVzdWx0c19zZXQpCisgICAgICAgICAgICAgICAgc2VsZi5fcmVwb3J0X2Zs
YWt5X3Rlc3RzKHRlc3RzX3RoYXRfb25seV9mYWlsZWRfZmlyc3QsIGZpcnN0X3Jlc3VsdHNfYXJj
aGl2ZSkKIAotICAgICAgICAgICAgIyBBdCB0aGlzIHBvaW50IHdlIGtub3cgdGhhdCBhdCBsZWFz
dCBvbmUgdGVzdCBmbGFrZWQsIGJ1dCBubyBjb25zaXN0ZW50IGZhaWx1cmVzCi0gICAgICAgICAg
ICAjIHdlcmUgaW50cm9kdWNlZC4gVGhpcyBpcyBhIGJpdCBvZiBhIGdyZXktem9uZS4KLSAgICAg
ICAgICAgIHJldHVybiBGYWxzZSAgIyBEZWZlciBwYXRjaAorICAgICAgICAgICAgICAgIHRlc3Rz
X3RoYXRfb25seV9mYWlsZWRfc2Vjb25kID0gc2Vjb25kX2ZhaWxpbmdfcmVzdWx0c19zZXQuZGlm
ZmVyZW5jZShmaXJzdF9mYWlsaW5nX3Jlc3VsdHNfc2V0KQorICAgICAgICAgICAgICAgIHNlbGYu
X3JlcG9ydF9mbGFreV90ZXN0cyh0ZXN0c190aGF0X29ubHlfZmFpbGVkX3NlY29uZCwgc2Vjb25k
X3Jlc3VsdHNfYXJjaGl2ZSkKIAotICAgICAgICBpZiBzZWxmLl9zaG91bGRfZGVmZXJfcGF0Y2hf
b3JfdGhyb3coZmlyc3RfcmVzdWx0cy5mYWlsaW5nX3Rlc3RfcmVzdWx0cygpLCBmaXJzdF9yZXN1
bHRzX2FyY2hpdmUsIGZpcnN0X3NjcmlwdF9lcnJvciwgZmlyc3RfZmFpbHVyZV9zdGF0dXNfaWQp
OgotICAgICAgICAgICAgcmV0dXJuIEZhbHNlICAjIERlZmVyIHBhdGNoCisgICAgICAgICAgICAg
ICAgdGVzdHNfdGhhdF9jb25zaXN0ZW50bHlfZmFpbGVkID0gZmlyc3RfZmFpbGluZ19yZXN1bHRz
X3NldC5pbnRlcnNlY3Rpb24oc2Vjb25kX2ZhaWxpbmdfcmVzdWx0c19zZXQpCisgICAgICAgICAg
ICAgICAgaWYgdGVzdHNfdGhhdF9jb25zaXN0ZW50bHlfZmFpbGVkOgorICAgICAgICAgICAgICAg
ICAgICBpZiBzZWxmLl9zaG91bGRfZGVmZXJfcGF0Y2hfb3JfdGhyb3codGVzdHNfdGhhdF9jb25z
aXN0ZW50bHlfZmFpbGVkLCBmaXJzdF9yZXN1bHRzX2FyY2hpdmUsIGZpcnN0X3NjcmlwdF9lcnJv
ciwgZmlyc3RfZmFpbHVyZV9zdGF0dXNfaWQpOgorICAgICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIEZhbHNlICAjIERlZmVyIHBhdGNoCiAKLSAgICAgICAgIyBBdCB0aGlzIHBvaW50LCB3ZSBr
bm93IHRoYXQgdGhlIGZpcnN0IGFuZCBzZWNvbmQgcnVucyBoYWQgdGhlIGV4YWN0IHNhbWUgZmFp
bHVyZXMsCi0gICAgICAgICMgYW5kIHRoYXQgdGhvc2UgZmFpbHVyZXMgYXJlIGFsbCBwcmVzZW50
IG9uIHRoZSBjbGVhbiB0cmVlLCBzbyB3ZSBjYW4gc2F5IHdpdGggY2VydGFpbnR5Ci0gICAgICAg
ICMgdGhhdCB0aGUgcGF0Y2ggaXMgZ29vZC4KLSAgICAgICAgcmV0dXJuIFRydWUKKyAgICAgICAg
ICAgICAgICAjIEF0IHRoaXMgcG9pbnQgd2Uga25vdyB0aGF0IGF0IGxlYXN0IG9uZSB0ZXN0IGZs
YWtlZCwgYnV0IG5vIGNvbnNpc3RlbnQgZmFpbHVyZXMKKyAgICAgICAgICAgICAgICAjIHdlcmUg
aW50cm9kdWNlZC4gVGhpcyBpcyBhIGJpdCBvZiBhIGdyZXktem9uZS4KKyAgICAgICAgICAgICAg
ICByZXR1cm4gRmFsc2UgICMgRGVmZXIgcGF0Y2gKKworICAgICAgICAgICAgaWYgc2VsZi5fc2hv
dWxkX2RlZmVyX3BhdGNoX29yX3Rocm93KGZpcnN0X3Jlc3VsdHMuZmFpbGluZ190ZXN0X3Jlc3Vs
dHMoKSwgZmlyc3RfcmVzdWx0c19hcmNoaXZlLCBmaXJzdF9zY3JpcHRfZXJyb3IsIGZpcnN0X2Zh
aWx1cmVfc3RhdHVzX2lkKToKKyAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UgICMgRGVmZXIg
cGF0Y2gKKworICAgICAgICAgICAgIyBBdCB0aGlzIHBvaW50LCB3ZSBrbm93IHRoYXQgdGhlIGZp
cnN0IGFuZCBzZWNvbmQgcnVucyBoYWQgdGhlIGV4YWN0IHNhbWUgZmFpbHVyZXMsCisgICAgICAg
ICAgICAjIGFuZCB0aGF0IHRob3NlIGZhaWx1cmVzIGFyZSBhbGwgcHJlc2VudCBvbiB0aGUgY2xl
YW4gdHJlZSwgc28gd2UgY2FuIHNheSB3aXRoIGNlcnRhaW50eQorICAgICAgICAgICAgIyB0aGF0
IHRoZSBwYXRjaCBpcyBnb29kLgorICAgICAgICAgICAgcmV0dXJuIFRydWUKIAogICAgIGRlZiBy
ZXN1bHRzX2FyY2hpdmVfZnJvbV9wYXRjaF90ZXN0X3J1bihzZWxmLCBwYXRjaCk6CiAgICAgICAg
IGFzc2VydChzZWxmLl9wYXRjaC5pZCgpID09IHBhdGNoLmlkKCkpICAjIFBhdGNoQW5hbHlzaXNU
YXNrIGlzIG5vdCBjdXJyZW50bHkgcmUtdXNlYWJsZS4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9lYXJseXdhcm5pbmdzeXN0ZW0ucHkgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZWFybHl3YXJuaW5nc3lzdGVtLnB5CmluZGV4
IDliYzA0MTg2MGNlNjc0NTQ0NTRlNGIyNTE0MzhhOWRiZTUyNjQ1MTMuLjAxZjQ3Zjg0ODZjNzNi
YzYyNzE1ZTRjOWQ1YmY3NDU4YjE3YmNkY2QgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvdG9vbC9jb21tYW5kcy9lYXJseXdhcm5pbmdzeXN0ZW0ucHkKKysrIGIvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Vhcmx5d2FybmluZ3N5c3RlbS5weQpAQCAtMjgs
NiArMjgsNyBAQAogCiBpbXBvcnQganNvbgogaW1wb3J0IGxvZ2dpbmcKK2ltcG9ydCBvcwogZnJv
bSBvcHRwYXJzZSBpbXBvcnQgbWFrZV9vcHRpb24KIAogZnJvbSB3ZWJraXRweS5jb21tb24uY29u
ZmlnLmNvbW1pdHRlcnMgaW1wb3J0IENvbW1pdHRlckxpc3QKQEAgLTM2LDYgKzM3LDcgQEAgZnJv
bSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmZpbGVzeXN0ZW0gaW1wb3J0IEZpbGVTeXN0ZW0KIGZy
b20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5leGVjdXRpdmUgaW1wb3J0IFNjcmlwdEVycm9yCiBm
cm9tIHdlYmtpdHB5LnRvb2wuYm90LmVhcmx5d2FybmluZ3N5c3RlbXRhc2sgaW1wb3J0IEVhcmx5
V2FybmluZ1N5c3RlbVRhc2ssIEVhcmx5V2FybmluZ1N5c3RlbVRhc2tEZWxlZ2F0ZQogZnJvbSB3
ZWJraXRweS50b29sLmJvdC5sYXlvdXR0ZXN0cmVzdWx0c3JlYWRlciBpbXBvcnQgTGF5b3V0VGVz
dFJlc3VsdHNSZWFkZXIKK2Zyb20gd2Via2l0cHkudG9vbC5ib3QuanNjdGVzdHJlc3VsdHNyZWFk
ZXIgaW1wb3J0IEpTQ1Rlc3RSZXN1bHRzUmVhZGVyCiBmcm9tIHdlYmtpdHB5LnRvb2wuYm90LnBh
dGNoYW5hbHlzaXN0YXNrIGltcG9ydCBVbmFibGVUb0FwcGx5UGF0Y2gsIFBhdGNoSXNOb3RWYWxp
ZAogZnJvbSB3ZWJraXRweS50b29sLmJvdC5xdWV1ZWVuZ2luZSBpbXBvcnQgUXVldWVFbmdpbmUK
IGZyb20gd2Via2l0cHkudG9vbC5jb21tYW5kcy5xdWV1ZXMgaW1wb3J0IEFic3RyYWN0UmV2aWV3
UXVldWUKQEAgLTUzLDcgKzU1LDEyIEBAIGNsYXNzIEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVt
KEFic3RyYWN0UmV2aWV3UXVldWUsIEVhcmx5V2FybmluZ1N5c3RlbVRhc2tEZWxlCiAKICAgICBk
ZWYgYmVnaW5fd29ya19xdWV1ZShzZWxmKToKICAgICAgICAgQWJzdHJhY3RSZXZpZXdRdWV1ZS5i
ZWdpbl93b3JrX3F1ZXVlKHNlbGYpCi0gICAgICAgIHNlbGYuX2xheW91dF90ZXN0X3Jlc3VsdHNf
cmVhZGVyID0gTGF5b3V0VGVzdFJlc3VsdHNSZWFkZXIoc2VsZi5fdG9vbCwgc2VsZi5fcG9ydC5y
ZXN1bHRzX2RpcmVjdG9yeSgpLCBzZWxmLl9sb2dfZGlyZWN0b3J5KCkpCisKKyAgICAgICAgaWYg
c2VsZi5ncm91cCgpID09ICJqc2MiOgorICAgICAgICAgICAgZGlyID0gb3MucGF0aC5kaXJuYW1l
KG9zLnBhdGguZGlybmFtZShvcy5wYXRoLmRpcm5hbWUoc2VsZi5fcG9ydC5yZXN1bHRzX2RpcmVj
dG9yeSgpKSkpCisgICAgICAgICAgICBzZWxmLl90ZXN0X3Jlc3VsdHNfcmVhZGVyID0gSlNDVGVz
dFJlc3VsdHNSZWFkZXIoc2VsZi5fdG9vbCwgZGlyKQorICAgICAgICBlbHNlOgorICAgICAgICAg
ICAgc2VsZi5fdGVzdF9yZXN1bHRzX3JlYWRlciA9IExheW91dFRlc3RSZXN1bHRzUmVhZGVyKHNl
bGYuX3Rvb2wsIHNlbGYuX3BvcnQucmVzdWx0c19kaXJlY3RvcnkoKSwgc2VsZi5fbG9nX2RpcmVj
dG9yeSgpKQogCiAgICAgZGVmIF9mYWlsaW5nX3Rlc3RzX21lc3NhZ2Uoc2VsZiwgdGFzaywgcGF0
Y2gpOgogICAgICAgICByZXN1bHRzID0gdGFzay5yZXN1bHRzX2Zyb21fcGF0Y2hfdGVzdF9ydW4o
cGF0Y2gpCkBAIC0xMTcsMTQgKzEyNCwyMCBAQCBjbGFzcyBBYnN0cmFjdEVhcmx5V2FybmluZ1N5
c3RlbShBYnN0cmFjdFJldmlld1F1ZXVlLCBFYXJseVdhcm5pbmdTeXN0ZW1UYXNrRGVsZQogICAg
ICAgICByZXR1cm4gc2VsZi5fdXBkYXRlX3N0YXR1cyhtZXNzYWdlLCBwYXRjaD1wYXRjaCwgcmVz
dWx0c19maWxlPWZhaWx1cmVfbG9nKQogCiAgICAgZGVmIHRlc3RfcmVzdWx0cyhzZWxmKToKLSAg
ICAgICAgcmV0dXJuIHNlbGYuX2xheW91dF90ZXN0X3Jlc3VsdHNfcmVhZGVyLnJlc3VsdHMoKQor
ICAgICAgICByZXR1cm4gc2VsZi5fdGVzdF9yZXN1bHRzX3JlYWRlci5yZXN1bHRzKCkKIAogICAg
IGRlZiBhcmNoaXZlX2xhc3RfdGVzdF9yZXN1bHRzKHNlbGYsIHBhdGNoKToKLSAgICAgICAgcmV0
dXJuIHNlbGYuX2xheW91dF90ZXN0X3Jlc3VsdHNfcmVhZGVyLmFyY2hpdmUocGF0Y2gpCisgICAg
ICAgIHJldHVybiBzZWxmLl90ZXN0X3Jlc3VsdHNfcmVhZGVyLmFyY2hpdmUocGF0Y2gpCiAKICAg
ICBkZWYgYnVpbGRfc3R5bGUoc2VsZik6CiAgICAgICAgIHJldHVybiBzZWxmLl9idWlsZF9zdHls
ZQogCisgICAgZGVmIGdyb3VwKHNlbGYpOgorICAgICAgICBpZiBoYXNhdHRyKHNlbGYsICJfZ3Jv
dXAiKToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLl9ncm91cAorICAgICAgICBlbHNlOgorICAg
ICAgICAgICAgcmV0dXJuIE5vbmUKKwogICAgIGRlZiByZWZldGNoX3BhdGNoKHNlbGYsIHBhdGNo
KToKICAgICAgICAgcmV0dXJuIHNlbGYuX3Rvb2wuYnVncy5mZXRjaF9hdHRhY2htZW50KHBhdGNo
LmlkKCkpCiAKQEAgLTE1Niw1ICsxNjksNiBAQCBjbGFzcyBBYnN0cmFjdEVhcmx5V2FybmluZ1N5
c3RlbShBYnN0cmFjdFJldmlld1F1ZXVlLCBFYXJseVdhcm5pbmdTeXN0ZW1UYXNrRGVsZQogICAg
ICAgICAgICAgICAgICdfYnVpbGRfc3R5bGUnOiBjb25maWcuZ2V0KCdzdHlsZScsICJyZWxlYXNl
IiksCiAgICAgICAgICAgICAgICAgJ3dhdGNoZXJzJzogY29uZmlnLmdldCgnd2F0Y2hlcnMnLCBb
XSksCiAgICAgICAgICAgICAgICAgJ3J1bl90ZXN0cyc6IGNvbmZpZy5nZXQoJ3J1blRlc3RzJywg
Y2xzLnJ1bl90ZXN0cyksCisgICAgICAgICAgICAgICAgJ19ncm91cCc6IGNvbmZpZy5nZXQoJ2dy
b3VwJywgTm9uZSksCiAgICAgICAgICAgICB9KSkKICAgICAgICAgcmV0dXJuIGNsYXNzZXMKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9lYXJseXdhcm5p
bmdzeXN0ZW1fdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFu
ZHMvZWFybHl3YXJuaW5nc3lzdGVtX3VuaXR0ZXN0LnB5CmluZGV4IDA4ODg3ODEzY2UyZTkzYThl
YzlkYTM3NjM2ZWNiZGU5ZWZmM2M5ZTcuLmY1YmI1MzY0MjdlYmU5ZjNhY2U0YTA0NDgyYmRiYWRh
MjdiNTlkZGUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5k
cy9lYXJseXdhcm5pbmdzeXN0ZW1fdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS90b29sL2NvbW1hbmRzL2Vhcmx5d2FybmluZ3N5c3RlbV91bml0dGVzdC5weQpAQCAtNjgs
OSArNjgsMTAgQEAgY2xhc3MgRWFybHlXYXJuaW5nU3lzdGVtVGVzdChRdWV1ZXNUZXN0KToKICAg
ICAgICAgICAgICJwb3J0IjogZXdzLnBvcnRfbmFtZSwKICAgICAgICAgICAgICJhcmNoaXRlY3R1
cmUiOiAiIC0tYXJjaGl0ZWN0dXJlPSVzIiAlIGV3cy5hcmNoaXRlY3R1cmUgaWYgZXdzLmFyY2hp
dGVjdHVyZSBlbHNlICIiLAogICAgICAgICAgICAgImJ1aWxkX3N0eWxlIjogZXdzLmJ1aWxkX3N0
eWxlKCksCisgICAgICAgICAgICAiZ3JvdXAiOiAianNjIiBpZiBld3MubmFtZSA9PSAianNjLWV3
cyIgZWxzZSAiTm9uZSIsCiAgICAgICAgIH0KICAgICAgICAgaWYgZXdzLnJ1bl90ZXN0czoKLSAg
ICAgICAgICAgIHJ1bl90ZXN0c19saW5lID0gIlJ1bm5pbmc6IHdlYmtpdC1wYXRjaCAtLXN0YXR1
cy1ob3N0PWV4YW1wbGUuY29tIGJ1aWxkLWFuZC10ZXN0IC0tbm8tY2xlYW4gLS1uby11cGRhdGUg
LS10ZXN0IC0tbm9uLWludGVyYWN0aXZlIC0tYnVpbGQtc3R5bGU9JShidWlsZF9zdHlsZSlzIC0t
cG9ydD0lKHBvcnQpcyUoYXJjaGl0ZWN0dXJlKXNcbiIgJSBzdHJpbmdfcmVwbGFjZW1lbnRzCisg
ICAgICAgICAgICBydW5fdGVzdHNfbGluZSA9ICJSdW5uaW5nOiB3ZWJraXQtcGF0Y2ggLS1zdGF0
dXMtaG9zdD1leGFtcGxlLmNvbSBidWlsZC1hbmQtdGVzdCAtLW5vLWNsZWFuIC0tbm8tdXBkYXRl
IC0tdGVzdCAtLW5vbi1pbnRlcmFjdGl2ZSAtLWJ1aWxkLXN0eWxlPSUoYnVpbGRfc3R5bGUpcyAt
LWdyb3VwPSUoZ3JvdXApcyAtLXBvcnQ9JShwb3J0KXMlKGFyY2hpdGVjdHVyZSlzXG4iICUgc3Ry
aW5nX3JlcGxhY2VtZW50cwogICAgICAgICBlbHNlOgogICAgICAgICAgICAgcnVuX3Rlc3RzX2xp
bmUgPSAiIgogICAgICAgICBzdHJpbmdfcmVwbGFjZW1lbnRzWydydW5fdGVzdHNfbGluZSddID0g
cnVuX3Rlc3RzX2xpbmUKQEAgLTgxLDcgKzgyLDcgQEAgY2xhc3MgRWFybHlXYXJuaW5nU3lzdGVt
VGVzdChRdWV1ZXNUZXN0KToKIFJ1bm5pbmc6IHdlYmtpdC1wYXRjaCAtLXN0YXR1cy1ob3N0PWV4
YW1wbGUuY29tIGNsZWFuIC0tcG9ydD0lKHBvcnQpcyUoYXJjaGl0ZWN0dXJlKXMKIFJ1bm5pbmc6
IHdlYmtpdC1wYXRjaCAtLXN0YXR1cy1ob3N0PWV4YW1wbGUuY29tIHVwZGF0ZSAtLXBvcnQ9JShw
b3J0KXMlKGFyY2hpdGVjdHVyZSlzCiBSdW5uaW5nOiB3ZWJraXQtcGF0Y2ggLS1zdGF0dXMtaG9z
dD1leGFtcGxlLmNvbSBhcHBseS1hdHRhY2htZW50IC0tbm8tdXBkYXRlIC0tbm9uLWludGVyYWN0
aXZlIDEwMDAwIC0tcG9ydD0lKHBvcnQpcyUoYXJjaGl0ZWN0dXJlKXMKLVJ1bm5pbmc6IHdlYmtp
dC1wYXRjaCAtLXN0YXR1cy1ob3N0PWV4YW1wbGUuY29tIGJ1aWxkIC0tbm8tY2xlYW4gLS1uby11
cGRhdGUgLS1idWlsZC1zdHlsZT0lKGJ1aWxkX3N0eWxlKXMgLS1wb3J0PSUocG9ydClzJShhcmNo
aXRlY3R1cmUpcworUnVubmluZzogd2Via2l0LXBhdGNoIC0tc3RhdHVzLWhvc3Q9ZXhhbXBsZS5j
b20gYnVpbGQgLS1uby1jbGVhbiAtLW5vLXVwZGF0ZSAtLWJ1aWxkLXN0eWxlPSUoYnVpbGRfc3R5
bGUpcyAtLWdyb3VwPSUoZ3JvdXApcyAtLXBvcnQ9JShwb3J0KXMlKGFyY2hpdGVjdHVyZSlzCiAl
KHJ1bl90ZXN0c19saW5lKXNNT0NLOiB1cGRhdGVfc3RhdHVzOiAlKG5hbWUpcyBQYXNzCiBNT0NL
OiByZWxlYXNlX3dvcmtfaXRlbTogJShuYW1lKXMgMTAwMDAKICIiIiAlIHN0cmluZ19yZXBsYWNl
bWVudHMsCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvYnVp
bGQucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvYnVpbGQucHkKaW5kZXgg
Zjc0ZmZjZTcwOTQxYzYxZTU5Njc5MmU0YzYwZGNkN2Y4YjY1ZTllYy4uNjRmNzAzOTY4NzA3MzQ2
Y2EzMjM5OGM3MWQ1OThhNjg4ZDlhMzIzYiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS90b29sL3N0ZXBzL2J1aWxkLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9v
bC9zdGVwcy9idWlsZC5weQpAQCAtNDEsMjggKzQxLDM4IEBAIGNsYXNzIEJ1aWxkKEFic3RyYWN0
U3RlcCk6CiAgICAgICAgICAgICBPcHRpb25zLmJ1aWxkLAogICAgICAgICAgICAgT3B0aW9ucy5x
dWlldCwKICAgICAgICAgICAgIE9wdGlvbnMuYnVpbGRfc3R5bGUsCisgICAgICAgICAgICBPcHRp
b25zLmdyb3VwLAogICAgICAgICBdCiAKLSAgICBkZWYgYnVpbGQoc2VsZiwgYnVpbGRfc3R5bGUp
OgorICAgIGRlZiBidWlsZChzZWxmLCBidWlsZF9zdHlsZSwgZ3JvdXApOgogICAgICAgICBlbnZp
cm9ubWVudCA9IHNlbGYuX3Rvb2wuY29weV9jdXJyZW50X2Vudmlyb25tZW50KCkKICAgICAgICAg
ZW52aXJvbm1lbnQuZGlzYWJsZV9nY2Nfc21hcnRxdW90ZXMoKQogICAgICAgICBlbnZpcm9ubWVu
dC5kaXNhYmxlX2poYnVpbGRfVlQxMDBfb3V0cHV0KCkKICAgICAgICAgZW52ID0gZW52aXJvbm1l
bnQudG9fZGljdGlvbmFyeSgpCiAKLSAgICAgICAgYnVpbGRfd2Via2l0X2NvbW1hbmQgPSBzZWxm
Ll90b29sLmRlcHJlY2F0ZWRfcG9ydCgpLmJ1aWxkX3dlYmtpdF9jb21tYW5kKGJ1aWxkX3N0eWxl
PWJ1aWxkX3N0eWxlKQorICAgICAgICBpZiBncm91cCA9PSAianNjIjoKKyAgICAgICAgICAgIGJ1
aWxkX2NvbW1hbmQgPSBzZWxmLl90b29sLmRlcHJlY2F0ZWRfcG9ydCgpLmJ1aWxkX2pzY19jb21t
YW5kKGJ1aWxkX3N0eWxlPWJ1aWxkX3N0eWxlKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAg
YnVpbGRfY29tbWFuZCA9IHNlbGYuX3Rvb2wuZGVwcmVjYXRlZF9wb3J0KCkuYnVpbGRfd2Via2l0
X2NvbW1hbmQoYnVpbGRfc3R5bGU9YnVpbGRfc3R5bGUpCiAKICAgICAgICAgaWYgc2VsZi5fb3B0
aW9ucy5hcmNoaXRlY3R1cmU6Ci0gICAgICAgICAgICBidWlsZF93ZWJraXRfY29tbWFuZCArPSBb
J0FSQ0hTPSVzJyAlIHNlbGYuX29wdGlvbnMuYXJjaGl0ZWN0dXJlXQorICAgICAgICAgICAgYnVp
bGRfY29tbWFuZCArPSBbJ0FSQ0hTPSVzJyAlIHNlbGYuX29wdGlvbnMuYXJjaGl0ZWN0dXJlXQog
Ci0gICAgICAgIHNlbGYuX3Rvb2wuZXhlY3V0aXZlLnJ1bl9hbmRfdGhyb3dfaWZfZmFpbChidWls
ZF93ZWJraXRfY29tbWFuZCwgc2VsZi5fb3B0aW9ucy5xdWlldCwKKyAgICAgICAgc2VsZi5fdG9v
bC5leGVjdXRpdmUucnVuX2FuZF90aHJvd19pZl9mYWlsKGJ1aWxkX2NvbW1hbmQsIHNlbGYuX29w
dGlvbnMucXVpZXQsCiAgICAgICAgICAgICBjd2Q9c2VsZi5fdG9vbC5zY20oKS5jaGVja291dF9y
b290LCBlbnY9ZW52KQogCiAgICAgZGVmIHJ1bihzZWxmLCBzdGF0ZSk6CiAgICAgICAgIGlmIG5v
dCBzZWxmLl9vcHRpb25zLmJ1aWxkOgogICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgIF9sb2cu
aW5mbygiQnVpbGRpbmcgV2ViS2l0IikKKworICAgICAgICBpZiBoYXNhdHRyKHNlbGYuX29wdGlv
bnMsICdncm91cCcpIGFuZCBzZWxmLl9vcHRpb25zLmdyb3VwID09ICJqc2MiOgorICAgICAgICAg
ICAgZ3JvdXAgPSBzZWxmLl9vcHRpb25zLmdyb3VwCisgICAgICAgIGVsc2U6CisgICAgICAgICAg
ICBncm91cCA9IE5vbmUKKwogICAgICAgICBpZiBzZWxmLl9vcHRpb25zLmJ1aWxkX3N0eWxlID09
ICJib3RoIjoKLSAgICAgICAgICAgIHNlbGYuYnVpbGQoImRlYnVnIikKLSAgICAgICAgICAgIHNl
bGYuYnVpbGQoInJlbGVhc2UiKQorICAgICAgICAgICAgc2VsZi5idWlsZCgiZGVidWciLCBncm91
cCkKKyAgICAgICAgICAgIHNlbGYuYnVpbGQoInJlbGVhc2UiLCBncm91cCkKICAgICAgICAgZWxz
ZToKLSAgICAgICAgICAgIHNlbGYuYnVpbGQoc2VsZi5fb3B0aW9ucy5idWlsZF9zdHlsZSkKKyAg
ICAgICAgICAgIHNlbGYuYnVpbGQoc2VsZi5fb3B0aW9ucy5idWlsZF9zdHlsZSwgZ3JvdXApCmRp
ZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvb3B0aW9ucy5weSBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9vcHRpb25zLnB5CmluZGV4IDNlZjQ3
ZDAwOGE1OWUwNTBkNGNhMGM0ODc3ZGRkMWE2MDczMWE0MDkuLmY4NzE5ZTExYmU3YTU3NmE5NDNh
MjcxMzc1NTZiYTAyZmNiNmE5MWEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
dG9vbC9zdGVwcy9vcHRpb25zLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9z
dGVwcy9vcHRpb25zLnB5CkBAIC00Niw2ICs0Niw3IEBAIGNsYXNzIE9wdGlvbnMob2JqZWN0KToK
ICAgICBlbWFpbCA9IG1ha2Vfb3B0aW9uKCItLWVtYWlsIiwgYWN0aW9uPSJzdG9yZSIsIHR5cGU9
InN0cmluZyIsIGRlc3Q9ImVtYWlsIiwgaGVscD0iRW1haWwgYWRkcmVzcyB0byB1c2UgaW4gQ2hh
bmdlTG9ncy4iKQogICAgIGZvcmNlX2NsZWFuID0gbWFrZV9vcHRpb24oIi0tZm9yY2UtY2xlYW4i
LCBhY3Rpb249InN0b3JlX3RydWUiLCBkZXN0PSJmb3JjZV9jbGVhbiIsIGRlZmF1bHQ9RmFsc2Us
IGhlbHA9IkNsZWFuIHdvcmtpbmcgZGlyZWN0b3J5IGJlZm9yZSBhcHBseWluZyBwYXRjaGVzIChy
ZW1vdmVzIGxvY2FsIGNoYW5nZXMgYW5kIGNvbW1pdHMpIikKICAgICBnaXRfY29tbWl0ID0gbWFr
ZV9vcHRpb24oIi1nIiwgIi0tZ2l0LWNvbW1pdCIsIGFjdGlvbj0ic3RvcmUiLCBkZXN0PSJnaXRf
Y29tbWl0IiwgaGVscD0iT3BlcmF0ZSBvbiBhIGxvY2FsIGNvbW1pdC4gSWYgYSByYW5nZSwgdGhl
IGNvbW1pdHMgYXJlIHNxdWFzaGVkIGludG8gb25lLiA8cmVmPi4uLi4gaW5jbHVkZXMgdGhlIHdv
cmtpbmcgY29weSBjaGFuZ2VzLiBVUFNUUkVBTSBjYW4gYmUgdXNlZCBmb3IgdGhlIHVwc3RyZWFt
L3RyYWNraW5nIGJyYW5jaC4iKQorICAgIGdyb3VwID0gbWFrZV9vcHRpb24oIi0tZ3JvdXAiLCBh
Y3Rpb249InN0b3JlIiwgZGVzdD0iZ3JvdXAiLCBkZWZhdWx0PU5vbmUsIGhlbHA9IiIpCiAgICAg
bG9jYWxfY29tbWl0ID0gbWFrZV9vcHRpb24oIi0tbG9jYWwtY29tbWl0IiwgYWN0aW9uPSJzdG9y
ZV90cnVlIiwgZGVzdD0ibG9jYWxfY29tbWl0IiwgZGVmYXVsdD1GYWxzZSwgaGVscD0iTWFrZSBh
IGxvY2FsIGNvbW1pdCBmb3IgZWFjaCBhcHBsaWVkIHBhdGNoIikKICAgICBub25faW50ZXJhY3Rp
dmUgPSBtYWtlX29wdGlvbigiLS1ub24taW50ZXJhY3RpdmUiLCBhY3Rpb249InN0b3JlX3RydWUi
LCBkZXN0PSJub25faW50ZXJhY3RpdmUiLCBkZWZhdWx0PUZhbHNlLCBoZWxwPSJOZXZlciBwcm9t
cHQgdGhlIHVzZXIsIGZhaWwgYXMgZmFzdCBhcyBwb3NzaWJsZS4iKQogICAgIG9ic29sZXRlX3Bh
dGNoZXMgPSBtYWtlX29wdGlvbigiLS1uby1vYnNvbGV0ZSIsIGFjdGlvbj0ic3RvcmVfZmFsc2Ui
LCBkZXN0PSJvYnNvbGV0ZV9wYXRjaGVzIiwgZGVmYXVsdD1UcnVlLCBoZWxwPSJEbyBub3Qgb2Jz
b2xldGUgb2xkIHBhdGNoZXMgYmVmb3JlIHBvc3RpbmcgdGhpcyBvbmUuIikKZGlmZiAtLWdpdCBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9ydW50ZXN0cy5weSBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9ydW50ZXN0cy5weQppbmRleCA3NWQ3MmJjOWFkMmY0
ZTM2ZDQ1ZmRhYzkwZjE4MTk0ODFjZjAyODhiLi5lZDkwZGZkNDM4YzMxY2ZhZGNlZmQ4MzJmMTVk
ZWQ5OTJhOTdkZGJjIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3Rl
cHMvcnVudGVzdHMucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3J1
bnRlc3RzLnB5CkBAIC0xLDQgKzEsNSBAQAogIyBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAg
LTUzLDYgKzU0LDcgQEAgY2xhc3MgUnVuVGVzdHMoQWJzdHJhY3RTdGVwKToKICAgICAgICAgICAg
IE9wdGlvbnMuaXRlcmF0ZV9vbl9uZXdfdGVzdHMsCiAgICAgICAgICAgICBPcHRpb25zLm5vbl9p
bnRlcmFjdGl2ZSwKICAgICAgICAgICAgIE9wdGlvbnMucXVpZXQsCisgICAgICAgICAgICBPcHRp
b25zLmdyb3VwLAogICAgICAgICBdCiAKICAgICBkZWYgcnVuKHNlbGYsIHN0YXRlKToKQEAgLTYz
LDYgKzY1LDEwIEBAIGNsYXNzIFJ1blRlc3RzKEFic3RyYWN0U3RlcCk6CiAgICAgICAgIGlmIG5v
dCBzZWxmLl9vcHRpb25zLnRlc3Q6CiAgICAgICAgICAgICByZXR1cm4KIAorICAgICAgICBpZiBo
YXNhdHRyKHNlbGYuX29wdGlvbnMsICJncm91cCIpIGFuZCBzZWxmLl9vcHRpb25zLmdyb3VwID09
ICJqc2MiOgorICAgICAgICAgICAgc2VsZi5fcnVuX2phdmFzY3JpcHRjb3JlX3Rlc3RzKCkKKyAg
ICAgICAgICAgIHJldHVybgorCiAgICAgICAgIHB5dGhvbl91bml0dGVzdHNfY29tbWFuZCA9IHNl
bGYuX3Rvb2wuZGVwcmVjYXRlZF9wb3J0KCkucnVuX3B5dGhvbl91bml0dGVzdHNfY29tbWFuZCgp
CiAgICAgICAgIGlmIHB5dGhvbl91bml0dGVzdHNfY29tbWFuZDoKICAgICAgICAgICAgIF9sb2cu
aW5mbygiUnVubmluZyBQeXRob24gdW5pdCB0ZXN0cyIpCkBAIC0xNDMsMyArMTQ5LDcgQEAgY2xh
c3MgUnVuVGVzdHMoQWJzdHJhY3RTdGVwKToKICAgICAgICAgICAgIGFyZ3MuYXBwZW5kKCItLWl0
ZXJhdGlvbnM9JWQiICUgaXRlcmF0ZV9vbl9uZXdfdGVzdHMpCiAKICAgICAgICAgc2VsZi5fdG9v
bC5leGVjdXRpdmUucnVuX2FuZF90aHJvd19pZl9mYWlsKGFyZ3MsIGN3ZD1zZWxmLl90b29sLnNj
bSgpLmNoZWNrb3V0X3Jvb3QpCisKKyAgICBkZWYgX3J1bl9qYXZhc2NyaXB0Y29yZV90ZXN0cyhz
ZWxmKToKKyAgICAgICAgYXJncyA9IHNlbGYuX3Rvb2wuZGVwcmVjYXRlZF9wb3J0KCkucnVuX2ph
dmFzY3JpcHRjb3JlX3Rlc3RzX2NvbW1hbmQoc2VsZi5fb3B0aW9ucy5idWlsZF9zdHlsZSkKKyAg
ICAgICAgc2VsZi5fdG9vbC5leGVjdXRpdmUucnVuX2FuZF90aHJvd19pZl9mYWlsKGFyZ3MsIGN3
ZD1zZWxmLl90b29sLnNjbSgpLmNoZWNrb3V0X3Jvb3QpCmRpZmYgLS1naXQgYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvc3RlcHNfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L3Rvb2wvc3RlcHMvc3RlcHNfdW5pdHRlc3QucHkKaW5kZXggN2Q5NGExM2IzNDYz
ZDk4YTQ0Zjk0OWY4MTRjYzcxMjFjMDY4YWI1ZC4uZjBkZjg3OGMzYzk4OGRmMTY5Mjk0MzJmOTAy
NzBjMjE1MmU1ZmUzYyAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0
ZXBzL3N0ZXBzX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9z
dGVwcy9zdGVwc191bml0dGVzdC5weQpAQCAtOTgsNiArOTgsNyBAQCBjbGFzcyBTdGVwc1Rlc3Qo
dW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBzZWxmLl9hc3NlcnRfc3RlcF9vdXRwdXRfd2l0
aF9idWcoc3RlcHMuRW5zdXJlQnVnSXNPcGVuQW5kQXNzaWduZWQsIDUwMDAyLCBleHBlY3RlZF9s
b2dzKQogCiAgICAgZGVmIHRlc3RfcnVudGVzdHNfYXJncyhzZWxmKToKKyAgICAgICAgc2VsZi5t
YXhEaWZmID0gTm9uZQogICAgICAgICBtb2NrX29wdGlvbnMgPSBzZWxmLl9zdGVwX29wdGlvbnMo
KQogICAgICAgICBtb2NrX29wdGlvbnMubm9uX2ludGVyYWN0aXZlID0gRmFsc2UKICAgICAgICAg
bW9ja19vcHRpb25zLmJ1aWxkX3N0eWxlID0gInJlbGVhc2UiCkBAIC0xMTEsNyArMTEyLDcgQEAg
TU9DSyBydW5fYW5kX3Rocm93X2lmX2ZhaWw6IFsnVG9vbHMvU2NyaXB0cy90ZXN0LXdlYmtpdHB5
J10sIGN3ZD0vbW9jay1jaGVja291dAogUnVubmluZyBQZXJsIHVuaXQgdGVzdHMKIE1PQ0sgcnVu
X2FuZF90aHJvd19pZl9mYWlsOiBbJ1Rvb2xzL1NjcmlwdHMvdGVzdC13ZWJraXRwZXJsJ10sIGN3
ZD0vbW9jay1jaGVja291dAogUnVubmluZyBKYXZhU2NyaXB0Q29yZSB0ZXN0cwotTU9DSyBydW5f
YW5kX3Rocm93X2lmX2ZhaWw6IFsnVG9vbHMvU2NyaXB0cy9ydW4tamF2YXNjcmlwdGNvcmUtdGVz
dHMnXSwgY3dkPS9tb2NrLWNoZWNrb3V0CitNT0NLIHJ1bl9hbmRfdGhyb3dfaWZfZmFpbDogWydU
b29scy9TY3JpcHRzL3J1bi1qYXZhc2NyaXB0Y29yZS10ZXN0cycsICctLW5vLWZhaWwtZmFzdCcs
ICctLWpzb24tb3V0cHV0PVdlYktpdEJ1aWxkL1Jlc3VsdHMvanNjX3Rlc3RfcmVzdWx0cy5qc29u
J10sIGN3ZD0vbW9jay1jaGVja291dAogUnVubmluZyBiaW5kaW5ncyBnZW5lcmF0aW9uIHRlc3Rz
CiBNT0NLIHJ1bl9hbmRfdGhyb3dfaWZfZmFpbDogWydUb29scy9TY3JpcHRzL3J1bi1iaW5kaW5n
cy10ZXN0cyddLCBjd2Q9L21vY2stY2hlY2tvdXQKIFJ1bm5pbmcgcnVuLXdlYmtpdC10ZXN0cwpA
QCAtMTIwLDYgKzEyMSw3IEBAIE1PQ0sgcnVuX2FuZF90aHJvd19pZl9mYWlsOiBbJ1Rvb2xzL1Nj
cmlwdHMvcnVuLXdlYmtpdC10ZXN0cycsICctLXJlbGVhc2UnLCAnLS1xCiAgICAgICAgIE91dHB1
dENhcHR1cmUoKS5hc3NlcnRfb3V0cHV0cyhzZWxmLCBzdGVwLnJ1biwgW3t9XSwgZXhwZWN0ZWRf
bG9ncz1leHBlY3RlZF9sb2dzKQogCiAgICAgZGVmIHRlc3RfcnVudGVzdHNfZGVidWdfYXJncyhz
ZWxmKToKKyAgICAgICAgc2VsZi5tYXhEaWZmID0gTm9uZQogICAgICAgICBtb2NrX29wdGlvbnMg
PSBzZWxmLl9zdGVwX29wdGlvbnMoKQogICAgICAgICBtb2NrX29wdGlvbnMubm9uX2ludGVyYWN0
aXZlID0gRmFsc2UKICAgICAgICAgbW9ja19vcHRpb25zLmJ1aWxkX3N0eWxlID0gImRlYnVnIgpA
QCAtMTMzLDcgKzEzNSw3IEBAIE1PQ0sgcnVuX2FuZF90aHJvd19pZl9mYWlsOiBbJ1Rvb2xzL1Nj
cmlwdHMvdGVzdC13ZWJraXRweSddLCBjd2Q9L21vY2stY2hlY2tvdXQKIFJ1bm5pbmcgUGVybCB1
bml0IHRlc3RzCiBNT0NLIHJ1bl9hbmRfdGhyb3dfaWZfZmFpbDogWydUb29scy9TY3JpcHRzL3Rl
c3Qtd2Via2l0cGVybCddLCBjd2Q9L21vY2stY2hlY2tvdXQKIFJ1bm5pbmcgSmF2YVNjcmlwdENv
cmUgdGVzdHMKLU1PQ0sgcnVuX2FuZF90aHJvd19pZl9mYWlsOiBbJ1Rvb2xzL1NjcmlwdHMvcnVu
LWphdmFzY3JpcHRjb3JlLXRlc3RzJ10sIGN3ZD0vbW9jay1jaGVja291dAorTU9DSyBydW5fYW5k
X3Rocm93X2lmX2ZhaWw6IFsnVG9vbHMvU2NyaXB0cy9ydW4tamF2YXNjcmlwdGNvcmUtdGVzdHMn
LCAnLS1uby1mYWlsLWZhc3QnLCAnLS1qc29uLW91dHB1dD1XZWJLaXRCdWlsZC9SZXN1bHRzL2pz
Y190ZXN0X3Jlc3VsdHMuanNvbiddLCBjd2Q9L21vY2stY2hlY2tvdXQKIFJ1bm5pbmcgYmluZGlu
Z3MgZ2VuZXJhdGlvbiB0ZXN0cwogTU9DSyBydW5fYW5kX3Rocm93X2lmX2ZhaWw6IFsnVG9vbHMv
U2NyaXB0cy9ydW4tYmluZGluZ3MtdGVzdHMnXSwgY3dkPS9tb2NrLWNoZWNrb3V0CiBSdW5uaW5n
IHJ1bi13ZWJraXQtdGVzdHMK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>297551</attachid>
            <date>2016-12-20 13:21:16 -0800</date>
            <delta_ts>2017-01-05 18:19:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-162458-20161220132020.patch</filename>
            <type>text/plain</type>
            <size>41945</size>
            <attacher name="Srinivasan Vijayaraghavan">webkit</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA2Mzc3CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOWI3NTZhN2Y2MTZlMzQ0YjFhYmFjNjFkZmVkMmExZWI4
NmY3ZTQ0ZC4uZmY1MzY4NjQ2MDQxOTYxZWZkMWFjZDkxNWQzMzhjZGFmMTdmMGEzMyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY0
IEBACisyMDE2LTEyLTIwICBTcmluaXZhc2FuIFZpamF5YXJhZ2hhdmFuICA8c3ZpamF5YXJhZ2hh
dmFuQGFwcGxlLmNvbT4KKworICAgICAgICBFV1Mgc2hvdWxkIHJ1biBKYXZhU2NyaXB0Q29yZSB0
ZXN0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYy
NDU4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvZXdzLmpzb246IEFkZCBjb25maWcgaW5mbyBm
b3IgSlNDIEVXUy4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvcG9y
dHMucHk6IEFkZCBzdXBwb3J0IGZvciBKU0MgRVdTIGluIE1hYyBQb3J0LgorICAgICAgICAoRGVw
cmVjYXRlZFBvcnQuYnVpbGRfanNjX2NvbW1hbmQpOiBBZGRlZCAtIGNvbW1hbmQgdG8gYnVpbGQg
SlNDIG9ubHkgKHF1aWNrZXIgdGhhbiBidWlsZGluZyBhbGwgb2YgV2ViS2l0KS4KKyAgICAgICAg
KERlcHJlY2F0ZWRQb3J0LnJ1bl9qYXZhc2NyaXB0Y29yZV90ZXN0c19jb21tYW5kKTogQWxsb3cg
SlNDIEVXUyB0byBvbmx5IHJ1biBKU0MgdGVzdHMuCisgICAgICAgIChNYWNQb3J0LnJ1bl93ZWJr
aXRfdGVzdHNfY29tbWFuZCk6IENoZWNrIGZvciBKU0MuCisgICAgICAgICogU2NyaXB0cy93ZWJr
aXRweS9jb21tb24vbmV0L2pzY3Rlc3RyZXN1bHRzLnB5OiBBZGRlZC4KKyAgICAgICAgKEpTQ1Rl
c3RSZXN1bHRzKToKKyAgICAgICAgKEpTQ1Rlc3RSZXN1bHRzLnJlc3VsdHNfZnJvbV9zdHJpbmcp
OiBVc2UganNvbiBsaWJyYXJ5IHRvIHBhcnNlIHJlc3VsdHMuCisgICAgICAgIChKU0NUZXN0UmVz
dWx0cy5fX2luaXRfXyk6IEluaXRpYWxpemUgbWVtYmVycy4KKyAgICAgICAgKEpTQ1Rlc3RSZXN1
bHRzLl9fZXFfXyk6IFRoaXMgZW5hYmxlcyB1bml0IHRlc3RpbmcuCisgICAgICAgIChKU0NUZXN0
UmVzdWx0cy5zdHJlc3NfdGVzdF9mYWlsdXJlcyk6IEdldHRlci4KKyAgICAgICAgKEpTQ1Rlc3RS
ZXN1bHRzLmFsbF9hcGlfdGVzdHNfcGFzc2VkKTogR2V0dGVyLgorICAgICAgICAoSlNDVGVzdFJl
c3VsdHMuYWxsX3Bhc3NlZCk6IEdldHRlci4KKyAgICAgICAgKEpTQ1Rlc3RSZXN1bHRzLmZhaWxp
bmdfdGVzdF9yZXN1bHRzKTogR2V0dGVyLiBTb21lIG9mIHRoZXNlIGV4aXN0IGZvciBpbnRlcm9w
YWJpbGl0eSByZWFzb25zLgorICAgICAgICAoSlNDVGVzdFJlc3VsdHMudGVzdF9yZXN1bHRzKTog
R2V0dGVyLgorICAgICAgICAoSlNDVGVzdFJlc3VsdHMuZmFpbGluZ190ZXN0cyk6IEdldHRlci4K
KyAgICAgICAgKEpTQ1Rlc3RSZXN1bHRzLmRpZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xpbWl0KTog
R2V0dGVyLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9qc2N0ZXN0cmVz
dWx0c191bml0dGVzdC5weTogQWRkZWQuCisgICAgICAgIChKU0NUZXN0UmVzdWx0c1Rlc3QpOiBD
bGFzcyB0byB0ZXN0IEpTQ1Rlc3RSZXN1bHRzLgorICAgICAgICAoSlNDVGVzdFJlc3VsdHNUZXN0
LnRlc3RfcmVzdWx0c19mcm9tX3N0cmluZyk6IFRlc3RzIHBhcnNpbmcuCisgICAgICAgICogU2Ny
aXB0cy93ZWJraXRweS90b29sL2JvdC9qc2N0ZXN0cmVzdWx0c3JlYWRlci5weTogQWRkZWQuCisg
ICAgICAgIChKU0NUZXN0UmVzdWx0c1JlYWRlcik6IFJlYWRzIHJlc3VsdHMgZmlsZS4KKyAgICAg
ICAgKEpTQ1Rlc3RSZXN1bHRzUmVhZGVyLl9faW5pdF9fKTogU2V0cyBhdHRyaWJ1dGVzLgorICAg
ICAgICAoSlNDVGVzdFJlc3VsdHNSZWFkZXIuX3JlYWRfZmlsZV9jb250ZW50cyk6IFJlYWRzIGZp
bGUuCisgICAgICAgIChKU0NUZXN0UmVzdWx0c1JlYWRlci5fY3JlYXRlX2pzY190ZXN0X3Jlc3Vs
dHMpOiBDcmVhdGVzIGEgSlNDVGVzdFJlc3VsdHMgb2JqZWN0LgorICAgICAgICAoSlNDVGVzdFJl
c3VsdHNSZWFkZXIucmVzdWx0cyk6IEludm9rZXMgX2NyZWF0ZV9qc2NfdGVzdF9yZXN1bHRzIHRv
IHJldHVybiBhIEpTQ1Rlc3RSZXN1bHRzIG9iamVjdC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dHB5L3Rvb2wvYm90L3BhdGNoYW5hbHlzaXN0YXNrLnB5OgorICAgICAgICAoUGF0Y2hBbmFseXNp
c1Rhc2suX2J1aWxkKTogQ2hlY2sgZm9yIEpTQy4KKyAgICAgICAgKFBhdGNoQW5hbHlzaXNUYXNr
Ll9idWlsZF93aXRob3V0X3BhdGNoKTogQ2hlY2sgZm9yIEpTQy4KKyAgICAgICAgKFBhdGNoQW5h
bHlzaXNUYXNrLl90ZXN0KTogQ2hlY2sgZm9yIEpTQy4KKyAgICAgICAgKFBhdGNoQW5hbHlzaXNU
YXNrLl9idWlsZF9hbmRfdGVzdF93aXRob3V0X3BhdGNoKTogQ2hlY2sgZm9yIEpTQy4KKyAgICAg
ICAgKFBhdGNoQW5hbHlzaXNUYXNrLl90ZXN0X3BhdGNoKTogQWRkIHJldHJ5IGxvZ2ljIGZvciBK
U0MuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Vhcmx5d2Fybmlu
Z3N5c3RlbS5weToKKyAgICAgICAgKEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtLmJlZ2luX3dv
cmtfcXVldWUpOiBVc2UgSlNDVGVzdFJlc3VsdHNSZWFkZXIgaW5zdGVhZCBvZiBMYXlvdXRUZXN0
UmVzdWx0c1JlYWRlciBpbiBKU0MgRVdTLgorICAgICAgICAoQWJzdHJhY3RFYXJseVdhcm5pbmdT
eXN0ZW0udGVzdF9yZXN1bHRzKTogX2xheW91dF90ZXN0X3Jlc3VsdHNfcmVhZGVyIC0+IF90ZXN0
X3Jlc3VsdHNfcmVhZGVyLgorICAgICAgICAoQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0uYXJj
aGl2ZV9sYXN0X3Rlc3RfcmVzdWx0cyk6IF9sYXlvdXRfdGVzdF9yZXN1bHRzX3JlYWRlciAtPiBf
dGVzdF9yZXN1bHRzX3JlYWRlci4KKyAgICAgICAgKEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVt
Lmdyb3VwKTogVGhpcyBhdHRyaWJ1dGUgZGV0ZXJtaW5lcyB0aGUgdHlwZSBvZiBFV1MgKGVnLiBK
U0MpLgorICAgICAgICAoQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0ubG9hZF9ld3NfY2xhc3Nl
cyk6IEFkZCBfZ3JvdXAuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRz
L2Vhcmx5d2FybmluZ3N5c3RlbV91bml0dGVzdC5weToKKyAgICAgICAgKEVhcmx5V2FybmluZ1N5
c3RlbVRlc3QuX2RlZmF1bHRfZXhwZWN0ZWRfbG9ncyk6IEFkZCBfZ3JvdXAuCisgICAgICAgICog
U2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL2J1aWxkLnB5OgorICAgICAgICAoQnVpbGQub3B0
aW9ucyk6IENoZWNrIGZvciBKU0MuCisgICAgICAgIChCdWlsZC5idWlsZCk6IENoZWNrIGZvciBK
U0MuCisgICAgICAgIChCdWlsZC5ydW4pOiBDaGVjayBmb3IgSlNDLgorICAgICAgICAqIFNjcmlw
dHMvd2Via2l0cHkvdG9vbC9zdGVwcy9vcHRpb25zLnB5OgorICAgICAgICAoT3B0aW9ucyk6IEFk
ZCAtLWdyb3VwIGNvbW1hbmQgbGluZSBvcHRpb24uCisgICAgICAgICogU2NyaXB0cy93ZWJraXRw
eS90b29sL3N0ZXBzL3J1bnRlc3RzLnB5OgorICAgICAgICAoUnVuVGVzdHMub3B0aW9ucyk6IEFk
ZCBncm91cC4KKyAgICAgICAgKFJ1blRlc3RzLnJ1bik6IENoZWNrIGZvciBKU0MuCisgICAgICAg
IChSdW5UZXN0cy5fcnVuX3dlYmtpdF90ZXN0cyk6IENoZWNrIGZvciBKU0MuCisgICAgICAgIChS
dW5UZXN0cyk6IEFkZCBfZ3JvdXAgYXR0cmlidXRlLgorICAgICAgICAoUnVuVGVzdHMuX3J1bl9q
YXZhc2NyaXB0Y29yZV90ZXN0cyk6IE5ldy4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rv
b2wvc3RlcHMvc3RlcHNfdW5pdHRlc3QucHk6IENoYW5nZSBleHBlY3RlZCBjb21tYW5kIGZvciBy
dW5uaW5nIGpzYyB0ZXN0cy4KKwogMjAxNi0wOS0yNSAgR3l1eW91bmcgS2ltICA8Z3l1eW91bmcu
a2ltQHdlYmtpdC5vcmc+CiAKICAgICAgICAgW0VGTF0gQWRqdXN0IEVGTCBpbmRlbnRhdGlvbiB0
byBFRkwgTWluaUJyb3dzZXIKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29t
bW9uL2NvbmZpZy9ld3MuanNvbiBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZp
Zy9ld3MuanNvbgppbmRleCAzNWQ0OTg1YWIwZjkzZDEyN2IzNzIxZTQ2MDFjZDZkODlkZmNjZjNj
Li5lNTM0MGZlNWMzYzIxYWU4MWFkMWVmN2UwM2Y3ZmI4MWYzODM5Y2ZmIDEwMDY0NAotLS0gYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvZXdzLmpzb24KKysrIGIvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL2V3cy5qc29uCkBAIC01MCw1ICs1MCwxMSBA
QAogICAgICAgICAicG9ydCI6ICJtYWMiLAogICAgICAgICAibmFtZSI6ICJtYWMtMzJiaXQtZXdz
IiwKICAgICAgICAgImFyY2hpdGVjdHVyZSI6ICJpMzg2IgorICAgIH0sCisgICAgIkpTQyBFV1Mi
OiB7CisgICAgICAgICJwb3J0IjogIm1hYyIsCisgICAgICAgICJuYW1lIjogImpzYy1ld3MiLAor
ICAgICAgICAiZ3JvdXAiOiAianNjIiwKKyAgICAgICAgInJ1blRlc3RzIjogdHJ1ZQogICAgIH0K
IH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9wb3J0
cy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9wb3J0cy5weQppbmRl
eCBhMGQ1MGRjYjZlYTBiNWZkZTBiM2MxN2VmMTU5Y2VhZmVlMWEyZTk4Li40ZmNjODY4NDM2Mjli
MzYzNmI1Y2E0MDZiMzFjN2FhYjYwNjMwMmZhIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2NvbW1vbi9jb25maWcvcG9ydHMucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9jb21tb24vY29uZmlnL3BvcnRzLnB5CkBAIC0xLDYgKzEsNiBAQAogIyBDb3B5cmlnaHQgKEMp
IDIwMDksIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjIENvcHlyaWdodCAoQykg
MjAxMyBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCi0jIENv
cHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHly
aWdodCAoQykgMjAxNS0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMg
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTEwMyw4ICsxMDMsMTkgQEAgY2xhc3MgRGVw
cmVjYXRlZFBvcnQob2JqZWN0KToKICAgICAgICAgICAgIGNvbW1hbmQuYXBwZW5kKCItLXJlbGVh
c2UiKQogICAgICAgICByZXR1cm4gY29tbWFuZAogCi0gICAgZGVmIHJ1bl9qYXZhc2NyaXB0Y29y
ZV90ZXN0c19jb21tYW5kKHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi5zY3JpcHRfc2hlbGxf
Y29tbWFuZCgicnVuLWphdmFzY3JpcHRjb3JlLXRlc3RzIikKKyAgICBkZWYgYnVpbGRfanNjX2Nv
bW1hbmQoc2VsZiwgYnVpbGRfc3R5bGU9Tm9uZSk6CisgICAgICAgIGNvbW1hbmQgPSBzZWxmLnNj
cmlwdF9zaGVsbF9jb21tYW5kKCJidWlsZC1qc2MiKQorICAgICAgICBpZiBidWlsZF9zdHlsZSA9
PSAiZGVidWciOgorICAgICAgICAgICAgY29tbWFuZC5hcHBlbmQoIi0tZGVidWciKQorICAgICAg
ICByZXR1cm4gY29tbWFuZAorCisgICAgZGVmIHJ1bl9qYXZhc2NyaXB0Y29yZV90ZXN0c19jb21t
YW5kKHNlbGYsIGJ1aWxkX3N0eWxlPU5vbmUpOgorICAgICAgICBjb21tYW5kID0gc2VsZi5zY3Jp
cHRfc2hlbGxfY29tbWFuZCgicnVuLWphdmFzY3JpcHRjb3JlLXRlc3RzIikKKyAgICAgICAgY29t
bWFuZC5hcHBlbmQoIi0tbm8tZmFpbC1mYXN0IikKKyAgICAgICAgY29tbWFuZC5hcHBlbmQoIi0t
anNvbi1vdXRwdXQ9anNjX3Rlc3RfcmVzdWx0cy5qc29uIikKKyAgICAgICAgaWYgKGJ1aWxkX3N0
eWxlID09ICJkZWJ1ZyIpOgorICAgICAgICAgICAgY29tbWFuZC5hcHBlbmQoIi0tZGVidWciKQor
ICAgICAgICByZXR1cm4gY29tbWFuZAogCiAgICAgZGVmIHJ1bl93ZWJraXRfdGVzdHNfY29tbWFu
ZChzZWxmLCBidWlsZF9zdHlsZT1Ob25lKToKICAgICAgICAgY29tbWFuZCA9IHNlbGYuc2NyaXB0
X3NoZWxsX2NvbW1hbmQoInJ1bi13ZWJraXQtdGVzdHMiKQpAQCAtMTUwLDcgKzE2MSwxMCBAQCBj
bGFzcyBJT1NTaW11bGF0b3JXSzJQb3J0KERlcHJlY2F0ZWRQb3J0KToKIGNsYXNzIE1hY1BvcnQo
RGVwcmVjYXRlZFBvcnQpOgogICAgIHBvcnRfZmxhZ19uYW1lID0gIm1hYyIKIAotICAgIGRlZiBy
dW5fd2Via2l0X3Rlc3RzX2NvbW1hbmQoc2VsZiwgYnVpbGRfc3R5bGU9Tm9uZSk6CisgICAgZGVm
IHJ1bl93ZWJraXRfdGVzdHNfY29tbWFuZChzZWxmLCBidWlsZF9zdHlsZT1Ob25lLCB0ZXN0X3N1
aXRlPU5vbmUpOgorICAgICAgICBpZiAodGVzdF9zdWl0ZSA9PSAianNjIik6CisgICAgICAgICAg
ICByZXR1cm4gc3VwZXIoTWFjUG9ydCwgc2VsZikucnVuX2phdmFzY3JpcHRjb3JlX3Rlc3RzX2Nv
bW1hbmQoYnVpbGRfc3R5bGUpCisKICAgICAgICAgY29tbWFuZCA9IHN1cGVyKE1hY1BvcnQsIHNl
bGYpLnJ1bl93ZWJraXRfdGVzdHNfY29tbWFuZChidWlsZF9zdHlsZSkKICAgICAgICAgY29tbWFu
ZC5hcHBlbmQoIi0tZHVtcC1yZW5kZXItdHJlZSIpCiAgICAgICAgIHJldHVybiBjb21tYW5kCmRp
ZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvanNjdGVzdHJlc3Vs
dHMucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvanNjdGVzdHJlc3VsdHMu
cHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uN2YzZTU0M2QxNTI2OTI2MzEwMGY0MDA0YzM2NjhmMDdjYTA2ODhmYwot
LS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9qc2N0
ZXN0cmVzdWx0cy5weQpAQCAtMCwwICsxLDY5IEBACisjIENvcHlyaWdodCAoQykgMjAxNiBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQK
KyMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUgorIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMCisjIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisjIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSCisjIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisjIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisj
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisKK2ltcG9ydCBqc29uCitpbXBvcnQgbG9nZ2luZworCitfbG9nID0gbG9n
Z2luZy5nZXRMb2dnZXIoX19uYW1lX18pCisKKworY2xhc3MgSlNDVGVzdFJlc3VsdHMob2JqZWN0
KToKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgcmVzdWx0c19mcm9tX3N0cmluZyhjbHMsIHN0
cmluZyk6CisgICAgICAgIGlmIG5vdCBzdHJpbmc6CisgICAgICAgICAgICByZXR1cm4gTm9uZQor
ICAgICAgICBwYXJzZWRfcmVzdWx0cyA9IGpzb24ubG9hZHMoc3RyaW5nKQorCisgICAgICAgIHJl
dHVybiBjbHMocGFyc2VkX3Jlc3VsdHNbJ2FsbEFwaVRlc3RzUGFzc2VkJ10sIHBhcnNlZF9yZXN1
bHRzWydzdHJlc3NUZXN0RmFpbHVyZXMnXSkKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBhbGxf
YXBpX3Rlc3RzX3Bhc3NlZCwgc3RyZXNzX3Rlc3RfZmFpbHVyZXMpOgorICAgICAgICBzZWxmLl9h
bGxfYXBpX3Rlc3RzX3Bhc3NlZCA9IGFsbF9hcGlfdGVzdHNfcGFzc2VkCisgICAgICAgIHNlbGYu
X3N0cmVzc190ZXN0X2ZhaWx1cmVzID0gc3RyZXNzX3Rlc3RfZmFpbHVyZXMKKworICAgICAgICBz
ZWxmLl90ZXN0X3Jlc3VsdHMgPSBzdHJlc3NfdGVzdF9mYWlsdXJlcworICAgICAgICBpZiBzZWxm
Ll9hbGxfYXBpX3Rlc3RzX3Bhc3NlZCA9PSBGYWxzZToKKyAgICAgICAgICAgIHNlbGYuX3Rlc3Rf
cmVzdWx0cyArPSAiYXBpVGVzdHMiCisKKyAgICBkZWYgX19lcV9fKHNlbGYsIG90aGVyKToKKyAg
ICAgICAgcmV0dXJuIHNlbGYuX2FsbF9hcGlfdGVzdHNfcGFzc2VkID09IG90aGVyLl9hbGxfYXBp
X3Rlc3RzX3Bhc3NlZCBhbmQgc2V0KHNlbGYuX3N0cmVzc190ZXN0X2ZhaWx1cmVzKSA9PSBzZXQo
b3RoZXIuX3N0cmVzc190ZXN0X2ZhaWx1cmVzKQorCisgICAgZGVmIHN0cmVzc190ZXN0X2ZhaWx1
cmVzKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5fc3RyZXNzX3Rlc3RfZmFpbHVyZXMKKwor
ICAgIGRlZiBhbGxfYXBpX3Rlc3RzX3Bhc3NlZChzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYu
X2FsbF9hcGlfdGVzdHNfcGFzc2VkCisKKyAgICBkZWYgYWxsX3Bhc3NlZChzZWxmKToKKyAgICAg
ICAgcmV0dXJuIHNlbGYuX2FsbF9hcGlfdGVzdHNfcGFzc2VkID09IFRydWUgYW5kIGxlbihzZWxm
Ll9zdHJlc3NfdGVzdF9mYWlsdXJlcykgPT0gMAorCisgICAgZGVmIGZhaWxpbmdfdGVzdF9yZXN1
bHRzKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5zdHJlc3NfdGVzdF9mYWlsdXJlcygpCisK
KyAgICBkZWYgdGVzdF9yZXN1bHRzKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5fdGVzdF9y
ZXN1bHRzCisKKyAgICBkZWYgZmFpbGluZ190ZXN0cyhzZWxmKToKKyAgICAgICAgcmV0dXJuIHNl
bGYuX3Rlc3RfcmVzdWx0cworCisgICAgIyBObyBkZWZpbmVkIGZhaWx1cmUgbGltaXQgZm9yIEpT
QworICAgIGRlZiBkaWRfZXhjZWVkX3Rlc3RfZmFpbHVyZV9saW1pdChzZWxmKToKKyAgICAgICAg
cmV0dXJuIEZhbHNlCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9u
ZXQvanNjdGVzdHJlc3VsdHNfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2Nv
bW1vbi9uZXQvanNjdGVzdHJlc3VsdHNfdW5pdHRlc3QucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTFlNDlmZGNj
YzYxZGE3ZGFmMTBlMzNmY2E0ZGJmZmQ0MmU1Y2Q2OAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9qc2N0ZXN0cmVzdWx0c191bml0dGVzdC5weQpA
QCAtMCwwICsxLDQwIEBACisjIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMg
MS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
IyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyMgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
IElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorIyBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMCisjIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisjIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisjIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksCisjIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisK
K2ltcG9ydCB1bml0dGVzdAorCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5uZXQuanNjdGVzdHJlc3Vs
dHMgaW1wb3J0IEpTQ1Rlc3RSZXN1bHRzCisKKworY2xhc3MgSlNDVGVzdFJlc3VsdHNUZXN0KHVu
aXR0ZXN0LlRlc3RDYXNlKToKKyAgICBkZWYgdGVzdF9yZXN1bHRzX2Zyb21fc3RyaW5nKHNlbGYp
OgorICAgICAgICBub19mYWlsdXJlc19zdHJpbmcgPSAneyJhbGxBcGlUZXN0c1Bhc3NlZCI6IHRy
dWUsICJzdHJlc3NUZXN0RmFpbHVyZXMiOltdfScKKyAgICAgICAgbm9fZmFpbHVyZXNfcmVzdWx0
cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFtdKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG5v
X2ZhaWx1cmVzX3Jlc3VsdHMsIEpTQ1Rlc3RSZXN1bHRzLnJlc3VsdHNfZnJvbV9zdHJpbmcobm9f
ZmFpbHVyZXNfc3RyaW5nKSkKKworICAgICAgICBhcGlfdGVzdF9mYWlsdXJlc19zdHJpbmcgPSAn
eyJhbGxBcGlUZXN0c1Bhc3NlZCI6IGZhbHNlLCAic3RyZXNzVGVzdEZhaWx1cmVzIjpbXX0nCisg
ICAgICAgIGFwaV90ZXN0X2ZhaWx1cmVzX3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhGYWxzZSwg
W10pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYXBpX3Rlc3RfZmFpbHVyZXNfcmVzdWx0cywg
SlNDVGVzdFJlc3VsdHMucmVzdWx0c19mcm9tX3N0cmluZyhhcGlfdGVzdF9mYWlsdXJlc19zdHJp
bmcpKQorCisgICAgICAgIG1hbnlfZmFpbHVyZXNfc3RyaW5nID0gJ3siYWxsQXBpVGVzdHNQYXNz
ZWQiOiBmYWxzZSwgInN0cmVzc1Rlc3RGYWlsdXJlcyI6WyJlczYueWFtbC9lczYvdHlwZWRfYXJy
YXlzX0ludDE2QXJyYXkuanMuZGVmYXVsdCIsICJlczYueWFtbC9lczYvdHlwZWRfYXJyYXlzX0lu
dDhBcnJheS5qcy5kZWZhdWx0Il19JworICAgICAgICBtYW55X2ZhaWx1cmVzX3Jlc3VsdHMgPSBK
U0NUZXN0UmVzdWx0cyhGYWxzZSwgWyJlczYueWFtbC9lczYvdHlwZWRfYXJyYXlzX0ludDE2QXJy
YXkuanMuZGVmYXVsdCIsICJlczYueWFtbC9lczYvdHlwZWRfYXJyYXlzX0ludDhBcnJheS5qcy5k
ZWZhdWx0Il0pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobWFueV9mYWlsdXJlc19yZXN1bHRz
LCBKU0NUZXN0UmVzdWx0cy5yZXN1bHRzX2Zyb21fc3RyaW5nKG1hbnlfZmFpbHVyZXNfc3RyaW5n
KSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvanNjdGVzdHJl
c3VsdHNyZWFkZXIucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2pzY3Rlc3Ry
ZXN1bHRzcmVhZGVyLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJkMjkzYjQ2MTZlYmMzZDE0MGIzZTg1OWIzZjQx
NTY2MjE1MjNlMTAKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rv
b2wvYm90L2pzY3Rlc3RyZXN1bHRzcmVhZGVyLnB5CkBAIC0wLDAgKzEsNDcgQEAKKyMgQ29weXJp
Z2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMg
Mi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
CisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IKKyMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyMgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworaW1wb3J0IGxvZ2dpbmcKK2ltcG9ydCBq
c29uCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5uZXQuanNjdGVzdHJlc3VsdHMgaW1wb3J0IEpTQ1Rl
c3RSZXN1bHRzCisKK19sb2cgPSBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVfXykKKworCitjbGFz
cyBKU0NUZXN0UmVzdWx0c1JlYWRlcihvYmplY3QpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBo
b3N0LCByZXN1bHRzX2RpcmVjdG9yeSk6CisgICAgICAgIHNlbGYuX2hvc3QgPSBob3N0CisgICAg
ICAgIHNlbGYuX3Jlc3VsdHNfZGlyZWN0b3J5ID0gcmVzdWx0c19kaXJlY3RvcnkKKworICAgIGRl
ZiBfcmVhZF9maWxlX2NvbnRlbnRzKHNlbGYsIHBhdGgpOgorICAgICAgICB0cnk6CisgICAgICAg
ICAgICByZXR1cm4gc2VsZi5faG9zdC5maWxlc3lzdGVtLnJlYWRfdGV4dF9maWxlKHBhdGgpCisg
ICAgICAgIGV4Y2VwdCBJT0Vycm9yLCBlOiAgIyBGaWxlIGRvZXMgbm90IGV4aXN0IG9yIGNhbid0
IGJlIHJlYWQuCisgICAgICAgICAgICByZXR1cm4gTm9uZQorCisgICAgZGVmIF9jcmVhdGVfanNj
X3Rlc3RfcmVzdWx0cyhzZWxmKToKKyAgICAgICAgcmVzdWx0c19wYXRoID0gc2VsZi5faG9zdC5m
aWxlc3lzdGVtLmpvaW4oc2VsZi5fcmVzdWx0c19kaXJlY3RvcnksICJqc2NfdGVzdF9yZXN1bHRz
Lmpzb24iKQorICAgICAgICBjb250ZW50cyA9IHNlbGYuX3JlYWRfZmlsZV9jb250ZW50cyhyZXN1
bHRzX3BhdGgpCisgICAgICAgIHJldHVybiBKU0NUZXN0UmVzdWx0cy5yZXN1bHRzX2Zyb21fc3Ry
aW5nKGNvbnRlbnRzKQorCisgICAgZGVmIHJlc3VsdHMoc2VsZik6CisgICAgICAgIHJldHVybiBz
ZWxmLl9jcmVhdGVfanNjX3Rlc3RfcmVzdWx0cygpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L3Rvb2wvYm90L3BhdGNoYW5hbHlzaXN0YXNrLnB5IGIvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS90b29sL2JvdC9wYXRjaGFuYWx5c2lzdGFzay5weQppbmRleCA3NTIzMTY0MTZjNWY5
ZDBhM2U1OWVmNmQwNWUzMTc4NWY5MTc0NjI5Li4yNTNjNzA1Y2Y1M2I5MjcwYmQ1Y2QzZjVmMzA3
Y2ZlOGRlMzU3YTAzIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90
L3BhdGNoYW5hbHlzaXN0YXNrLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9i
b3QvcGF0Y2hhbmFseXNpc3Rhc2sucHkKQEAgLTEsNCArMSw1IEBACiAjIENvcHlyaWdodCAoYykg
MjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKGMpIDIw
MTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zIGFyZQpAQCAtMTIzLDI3ICsxMjQsMzkgQEAgY2xhc3MgUGF0Y2hBbmFseXNpc1Rhc2so
b2JqZWN0KToKICAgICAgICAgIlBhdGNoIGRvZXMgbm90IGFwcGx5IikKIAogICAgIGRlZiBfYnVp
bGQoc2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmLl9ydW5fY29tbWFuZChbCisgICAgICAgIGFy
Z3MgPSBbCiAgICAgICAgICAgICAiYnVpbGQiLAogICAgICAgICAgICAgIi0tbm8tY2xlYW4iLAog
ICAgICAgICAgICAgIi0tbm8tdXBkYXRlIiwKICAgICAgICAgICAgICItLWJ1aWxkLXN0eWxlPSVz
IiAlIHNlbGYuX2RlbGVnYXRlLmJ1aWxkX3N0eWxlKCksCi0gICAgICAgIF0sCi0gICAgICAgICJC
dWlsdCBwYXRjaCIsCi0gICAgICAgICJQYXRjaCBkb2VzIG5vdCBidWlsZCIpCisgICAgICAgIF0K
KworICAgICAgICB0cnk6CisgICAgICAgICAgICBhcmdzLmFwcGVuZCgiLS1ncm91cD0lcyIgJSBz
ZWxmLl9kZWxlZ2F0ZS5ncm91cCgpKQorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgcmV0
dXJuIHNlbGYuX3J1bl9jb21tYW5kKAorICAgICAgICAgICAgICAgIGFyZ3MsCisgICAgICAgICAg
ICAgICAgIkJ1aWx0IHBhdGNoIiwKKyAgICAgICAgICAgICAgICAiUGF0Y2ggZG9lcyBub3QgYnVp
bGQiKQogCiAgICAgZGVmIF9idWlsZF93aXRob3V0X3BhdGNoKHNlbGYpOgotICAgICAgICByZXR1
cm4gc2VsZi5fcnVuX2NvbW1hbmQoWworICAgICAgICBhcmdzID0gWwogICAgICAgICAgICAgImJ1
aWxkIiwKICAgICAgICAgICAgICItLWZvcmNlLWNsZWFuIiwKICAgICAgICAgICAgICItLW5vLXVw
ZGF0ZSIsCiAgICAgICAgICAgICAiLS1idWlsZC1zdHlsZT0lcyIgJSBzZWxmLl9kZWxlZ2F0ZS5i
dWlsZF9zdHlsZSgpLAotICAgICAgICBdLAotICAgICAgICAiQWJsZSB0byBidWlsZCB3aXRob3V0
IHBhdGNoIiwKLSAgICAgICAgIlVuYWJsZSB0byBidWlsZCB3aXRob3V0IHBhdGNoIikKKyAgICAg
ICAgXQorCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGFyZ3MuYXBwZW5kKCItLWdyb3VwPSVz
IiAlIHNlbGYuX2RlbGVnYXRlLmdyb3VwKCkpCisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAg
ICByZXR1cm4gc2VsZi5fcnVuX2NvbW1hbmQoCisgICAgICAgICAgICAgICAgYXJncywKKyAgICAg
ICAgICAgICAgICAiQWJsZSB0byBidWlsZCB3aXRob3V0IHBhdGNoIiwKKyAgICAgICAgICAgICAg
ICAiVW5hYmxlIHRvIGJ1aWxkIHdpdGhvdXQgcGF0Y2giKQogCiAgICAgZGVmIF90ZXN0KHNlbGYp
OgotICAgICAgICByZXR1cm4gc2VsZi5fcnVuX2NvbW1hbmQoWworICAgICAgICBhcmdzID0gWwog
ICAgICAgICAgICAgImJ1aWxkLWFuZC10ZXN0IiwKICAgICAgICAgICAgICItLW5vLWNsZWFuIiwK
ICAgICAgICAgICAgICItLW5vLXVwZGF0ZSIsCkBAIC0xNTEsMTIgKzE2NCwxOCBAQCBjbGFzcyBQ
YXRjaEFuYWx5c2lzVGFzayhvYmplY3QpOgogICAgICAgICAgICAgIi0tdGVzdCIsCiAgICAgICAg
ICAgICAiLS1ub24taW50ZXJhY3RpdmUiLAogICAgICAgICAgICAgIi0tYnVpbGQtc3R5bGU9JXMi
ICUgc2VsZi5fZGVsZWdhdGUuYnVpbGRfc3R5bGUoKSwKLSAgICAgICAgXSwKLSAgICAgICAgIlBh
c3NlZCB0ZXN0cyIsCi0gICAgICAgICJQYXRjaCBkb2VzIG5vdCBwYXNzIHRlc3RzIikKKyAgICAg
ICAgXQorCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGFyZ3MuYXBwZW5kKCItLWdyb3VwPSVz
IiAlIHNlbGYuX2RlbGVnYXRlLmdyb3VwKCkpCisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAg
ICByZXR1cm4gc2VsZi5fcnVuX2NvbW1hbmQoCisgICAgICAgICAgICAgICAgYXJncywKKyAgICAg
ICAgICAgICAgICAiUGFzc2VkIHRlc3RzIiwKKyAgICAgICAgICAgICAgICAiUGF0Y2ggZG9lcyBu
b3QgcGFzcyB0ZXN0cyIpCiAKICAgICBkZWYgX2J1aWxkX2FuZF90ZXN0X3dpdGhvdXRfcGF0Y2go
c2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmLl9ydW5fY29tbWFuZChbCisgICAgICAgIGFyZ3Mg
PSBbCiAgICAgICAgICAgICAiYnVpbGQtYW5kLXRlc3QiLAogICAgICAgICAgICAgIi0tZm9yY2Ut
Y2xlYW4iLAogICAgICAgICAgICAgIi0tbm8tdXBkYXRlIiwKQEAgLTE2NCw5ICsxODMsMTUgQEAg
Y2xhc3MgUGF0Y2hBbmFseXNpc1Rhc2sob2JqZWN0KToKICAgICAgICAgICAgICItLXRlc3QiLAog
ICAgICAgICAgICAgIi0tbm9uLWludGVyYWN0aXZlIiwKICAgICAgICAgICAgICItLWJ1aWxkLXN0
eWxlPSVzIiAlIHNlbGYuX2RlbGVnYXRlLmJ1aWxkX3N0eWxlKCksCi0gICAgICAgIF0sCi0gICAg
ICAgICJBYmxlIHRvIHBhc3MgdGVzdHMgd2l0aG91dCBwYXRjaCIsCi0gICAgICAgICJVbmFibGUg
dG8gcGFzcyB0ZXN0cyB3aXRob3V0IHBhdGNoICh0cmVlIGlzIHJlZD8pIikKKyAgICAgICAgXQor
CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGFyZ3MuYXBwZW5kKCItLWdyb3VwPSVzIiAlIHNl
bGYuX2RlbGVnYXRlLmdyb3VwKCkpCisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICByZXR1
cm4gc2VsZi5fcnVuX2NvbW1hbmQoCisgICAgICAgICAgICAgICAgYXJncywKKyAgICAgICAgICAg
ICAgICAiQWJsZSB0byBwYXNzIHRlc3RzIHdpdGhvdXQgcGF0Y2giLAorICAgICAgICAgICAgICAg
ICJVbmFibGUgdG8gcGFzcyB0ZXN0cyB3aXRob3V0IHBhdGNoICh0cmVlIGlzIHJlZD8pIikKIAog
ICAgIGRlZiBfbGFuZChzZWxmKToKICAgICAgICAgIyBVbmNsZWFyIGlmIHRoaXMgc2hvdWxkIHBh
c3MgLS1xdWlldCBvciBub3QuICBJZiAtLXBhcmVudC1jb21tYW5kIGFsd2F5cyBkb2VzIHRoZSBy
ZXBvcnRpbmcsIHRoZW4gaXQgc2hvdWxkLgpAQCAtMjEwLDY5ICsyMzUsODggQEAgY2xhc3MgUGF0
Y2hBbmFseXNpc1Rhc2sob2JqZWN0KToKICAgICAgICAgaWYgc2VsZi5fdGVzdCgpOgogICAgICAg
ICAgICAgcmV0dXJuIFRydWUKIAotICAgICAgICAjIE5vdGU6IGFyY2hpdmVfbGFzdF90ZXN0X3Jl
c3VsdHMgZGVsZXRlcyB0aGUgcmVzdWx0cyBkaXJlY3RvcnksIG1ha2luZyB0aGVzZSBjYWxscyBv
cmRlci1zZW5zaXR2ZS4KLSAgICAgICAgIyBXZSBjb3VsZCByZW1vdmUgdGhpcyBkZXBlbmRlbmN5
IGJ5IGJ1aWxkaW5nIHRoZSB0ZXN0X3Jlc3VsdHMgZnJvbSB0aGUgYXJjaGl2ZS4KLSAgICAgICAg
Zmlyc3RfcmVzdWx0cyA9IHNlbGYuX2RlbGVnYXRlLnRlc3RfcmVzdWx0cygpCi0gICAgICAgIGZp
cnN0X3Jlc3VsdHNfYXJjaGl2ZSA9IHNlbGYuX2RlbGVnYXRlLmFyY2hpdmVfbGFzdF90ZXN0X3Jl
c3VsdHMoc2VsZi5fcGF0Y2gpCi0gICAgICAgIGZpcnN0X3NjcmlwdF9lcnJvciA9IHNlbGYuX3Nj
cmlwdF9lcnJvcgotICAgICAgICBmaXJzdF9mYWlsdXJlX3N0YXR1c19pZCA9IHNlbGYuZmFpbHVy
ZV9zdGF0dXNfaWQKLQotICAgICAgICBpZiBzZWxmLl90ZXN0KCkgYW5kIG5vdCBmaXJzdF9yZXN1
bHRzLmRpZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xpbWl0KCk6Ci0gICAgICAgICAgICAjIE9ubHkg
cmVwb3J0IGZsYWt5IHRlc3RzIGlmIHdlIHdlcmUgc3VjY2Vzc2Z1bCBhdCBwYXJzaW5nIHJlc3Vs
dHMuanNvbiBhbmQgYXJjaGl2aW5nIHJlc3VsdHMuCi0gICAgICAgICAgICBpZiBmaXJzdF9yZXN1
bHRzIGFuZCBmaXJzdF9yZXN1bHRzX2FyY2hpdmU6Ci0gICAgICAgICAgICAgICAgc2VsZi5fcmVw
b3J0X2ZsYWt5X3Rlc3RzKGZpcnN0X3Jlc3VsdHMuZmFpbGluZ190ZXN0X3Jlc3VsdHMoKSwgZmly
c3RfcmVzdWx0c19hcmNoaXZlKQotICAgICAgICAgICAgcmV0dXJuIFRydWUKKyAgICAgICAgaWYg
aGFzYXR0cihzZWxmLl9kZWxlZ2F0ZSwgJ2dyb3VwJykgYW5kIHNlbGYuX2RlbGVnYXRlLmdyb3Vw
KCkgPT0gImpzYyI6CisgICAgICAgICAgICBmaXJzdF9yZXN1bHRzID0gc2VsZi5fZGVsZWdhdGUu
dGVzdF9yZXN1bHRzKCkKKyAgICAgICAgICAgIGZpcnN0X3NjcmlwdF9lcnJvciA9IHNlbGYuX3Nj
cmlwdF9lcnJvcgorICAgICAgICAgICAgaWYgZmlyc3RfcmVzdWx0cy5hbGxfYXBpX3Rlc3RzX3Bh
c3NlZCgpIGlzIFRydWUgYW5kIGxlbihmaXJzdF9yZXN1bHRzLnN0cmVzc190ZXN0X2ZhaWx1cmVz
KCkpID09IDA6CisgICAgICAgICAgICAgICAgcmV0dXJuIFRydWUKKyAgICAgICAgICAgIGVsc2U6
CisgICAgICAgICAgICAgICAgIyBUT0RPIHN2aWpheWFyYWdoYXZhbkBhcHBsZS5jb206IENvbW1l
bnQgdGhpcywgYW5kIHVuY29tbWVudCB0aGUgYmVsb3cgbGluZXMgc28gaXQgYWN0dWFsbHkgYnVp
bGRzIHdpdGhvdXQgcGF0Y2gKKyAgICAgICAgICAgICAgICAjY2xlYW5fdHJlZV9yZXN1bHRzID0g
Zmlyc3RfcmVzdWx0cworICAgICAgICAgICAgICAgICNjbGVhbl90cmVlX3Jlc3VsdHNbJ2FsbEFw
aVRlc3RzUGFzc2VkJ10gPSBGYWxzZQogCi0gICAgICAgIHNlY29uZF9yZXN1bHRzID0gc2VsZi5f
ZGVsZWdhdGUudGVzdF9yZXN1bHRzKCkKLSAgICAgICAgc2Vjb25kX3Jlc3VsdHNfYXJjaGl2ZSA9
IHNlbGYuX2RlbGVnYXRlLmFyY2hpdmVfbGFzdF90ZXN0X3Jlc3VsdHMoc2VsZi5fcGF0Y2gpCi0g
ICAgICAgIHNlY29uZF9zY3JpcHRfZXJyb3IgPSBzZWxmLl9zY3JpcHRfZXJyb3IKLSAgICAgICAg
c2Vjb25kX2ZhaWx1cmVfc3RhdHVzX2lkID0gc2VsZi5mYWlsdXJlX3N0YXR1c19pZAorICAgICAg
ICAgICAgICAgIHNlbGYuX2J1aWxkX2FuZF90ZXN0X3dpdGhvdXRfcGF0Y2goKQorICAgICAgICAg
ICAgICAgIGNsZWFuX3RyZWVfcmVzdWx0cyA9IHNlbGYuX2RlbGVnYXRlLnRlc3RfcmVzdWx0cygp
CiAKLSAgICAgICAgaWYgc2Vjb25kX3Jlc3VsdHMuZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGlt
aXQoKSBhbmQgZmlyc3RfcmVzdWx0cy5kaWRfZXhjZWVkX3Rlc3RfZmFpbHVyZV9saW1pdCgpOgot
ICAgICAgICAgICAgc2VsZi5fYnVpbGRfYW5kX3Rlc3Rfd2l0aG91dF9wYXRjaCgpCi0gICAgICAg
ICAgICBjbGVhbl90cmVlX3Jlc3VsdHMgPSBzZWxmLl9kZWxlZ2F0ZS50ZXN0X3Jlc3VsdHMoKQor
ICAgICAgICAgICAgICAgIGlmIGNsZWFuX3RyZWVfcmVzdWx0cyA9PSBmaXJzdF9yZXN1bHRzOgor
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gVHJ1ZQogCi0gICAgICAgICAgICBpZiAobGVuKGZp
cnN0X3Jlc3VsdHMuZmFpbGluZ190ZXN0cygpKSAtIGxlbihjbGVhbl90cmVlX3Jlc3VsdHMuZmFp
bGluZ190ZXN0cygpKSkgPD0gNToKLSAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAg
ICAgICAgICAgICByZXR1cm4gc2VsZi5yZXBvcnRfZmFpbHVyZShOb25lLCBmaXJzdF9yZXN1bHRz
LCBmaXJzdF9zY3JpcHRfZXJyb3IpCiAKLSAgICAgICAgICAgIHNlbGYuZmFpbHVyZV9zdGF0dXNf
aWQgPSBmaXJzdF9mYWlsdXJlX3N0YXR1c19pZAorICAgICAgICBlbHNlOgorICAgICAgICAgICAg
IyBOb3RlOiBhcmNoaXZlX2xhc3RfdGVzdF9yZXN1bHRzIGRlbGV0ZXMgdGhlIHJlc3VsdHMgZGly
ZWN0b3J5LCBtYWtpbmcgdGhlc2UgY2FsbHMgb3JkZXItc2Vuc2l0dmUuCisgICAgICAgICAgICAj
IFdlIGNvdWxkIHJlbW92ZSB0aGlzIGRlcGVuZGVuY3kgYnkgYnVpbGRpbmcgdGhlIHRlc3RfcmVz
dWx0cyBmcm9tIHRoZSBhcmNoaXZlLgorICAgICAgICAgICAgZmlyc3RfcmVzdWx0cyA9IHNlbGYu
X2RlbGVnYXRlLnRlc3RfcmVzdWx0cygpCisgICAgICAgICAgICBmaXJzdF9yZXN1bHRzX2FyY2hp
dmUgPSBzZWxmLl9kZWxlZ2F0ZS5hcmNoaXZlX2xhc3RfdGVzdF9yZXN1bHRzKHNlbGYuX3BhdGNo
KQorICAgICAgICAgICAgZmlyc3Rfc2NyaXB0X2Vycm9yID0gc2VsZi5fc2NyaXB0X2Vycm9yCisg
ICAgICAgICAgICBmaXJzdF9mYWlsdXJlX3N0YXR1c19pZCA9IHNlbGYuZmFpbHVyZV9zdGF0dXNf
aWQKIAotICAgICAgICAgICAgcmV0dXJuIHNlbGYucmVwb3J0X2ZhaWx1cmUoZmlyc3RfcmVzdWx0
c19hcmNoaXZlLCBmaXJzdF9yZXN1bHRzLCBmaXJzdF9zY3JpcHRfZXJyb3IpCisgICAgICAgICAg
ICBpZiBzZWxmLl90ZXN0KCkgYW5kIG5vdCBmaXJzdF9yZXN1bHRzLmRpZF9leGNlZWRfdGVzdF9m
YWlsdXJlX2xpbWl0KCk6CisgICAgICAgICAgICAgICAgIyBPbmx5IHJlcG9ydCBmbGFreSB0ZXN0
cyBpZiB3ZSB3ZXJlIHN1Y2Nlc3NmdWwgYXQgcGFyc2luZyByZXN1bHRzLmpzb24gYW5kIGFyY2hp
dmluZyByZXN1bHRzLgorICAgICAgICAgICAgICAgIGlmIGZpcnN0X3Jlc3VsdHMgYW5kIGZpcnN0
X3Jlc3VsdHNfYXJjaGl2ZToKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5fcmVwb3J0X2ZsYWt5
X3Rlc3RzKGZpcnN0X3Jlc3VsdHMuZmFpbGluZ190ZXN0X3Jlc3VsdHMoKSwgZmlyc3RfcmVzdWx0
c19hcmNoaXZlKQorICAgICAgICAgICAgICAgIHJldHVybiBUcnVlCiAKLSAgICAgICAgaWYgc2Vj
b25kX3Jlc3VsdHMuZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQoKToKLSAgICAgICAgICAg
IHNlbGYuX3Nob3VsZF9kZWZlcl9wYXRjaF9vcl90aHJvdyhmaXJzdF9yZXN1bHRzLmZhaWxpbmdf
dGVzdF9yZXN1bHRzKCksIGZpcnN0X3Jlc3VsdHNfYXJjaGl2ZSwgZmlyc3Rfc2NyaXB0X2Vycm9y
LCBmaXJzdF9mYWlsdXJlX3N0YXR1c19pZCkKLSAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAg
ICAgICAgICAgc2Vjb25kX3Jlc3VsdHMgPSBzZWxmLl9kZWxlZ2F0ZS50ZXN0X3Jlc3VsdHMoKQor
ICAgICAgICAgICAgc2Vjb25kX3Jlc3VsdHNfYXJjaGl2ZSA9IHNlbGYuX2RlbGVnYXRlLmFyY2hp
dmVfbGFzdF90ZXN0X3Jlc3VsdHMoc2VsZi5fcGF0Y2gpCisgICAgICAgICAgICBzZWNvbmRfc2Ny
aXB0X2Vycm9yID0gc2VsZi5fc2NyaXB0X2Vycm9yCisgICAgICAgICAgICBzZWNvbmRfZmFpbHVy
ZV9zdGF0dXNfaWQgPSBzZWxmLmZhaWx1cmVfc3RhdHVzX2lkCiAKLSAgICAgICAgaWYgZmlyc3Rf
cmVzdWx0cy5kaWRfZXhjZWVkX3Rlc3RfZmFpbHVyZV9saW1pdCgpOgotICAgICAgICAgICAgc2Vs
Zi5fc2hvdWxkX2RlZmVyX3BhdGNoX29yX3Rocm93KHNlY29uZF9yZXN1bHRzLmZhaWxpbmdfdGVz
dF9yZXN1bHRzKCksIHNlY29uZF9yZXN1bHRzX2FyY2hpdmUsIHNlY29uZF9zY3JpcHRfZXJyb3Is
IHNlY29uZF9mYWlsdXJlX3N0YXR1c19pZCkKLSAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAg
ICAgICAgICAgaWYgc2Vjb25kX3Jlc3VsdHMuZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQo
KSBhbmQgZmlyc3RfcmVzdWx0cy5kaWRfZXhjZWVkX3Rlc3RfZmFpbHVyZV9saW1pdCgpOgorICAg
ICAgICAgICAgICAgIHNlbGYuX2J1aWxkX2FuZF90ZXN0X3dpdGhvdXRfcGF0Y2goKQorICAgICAg
ICAgICAgICAgIGNsZWFuX3RyZWVfcmVzdWx0cyA9IHNlbGYuX2RlbGVnYXRlLnRlc3RfcmVzdWx0
cygpCisKKyAgICAgICAgICAgICAgICBpZiAobGVuKGZpcnN0X3Jlc3VsdHMuZmFpbGluZ190ZXN0
cygpKSAtIGxlbihjbGVhbl90cmVlX3Jlc3VsdHMuZmFpbGluZ190ZXN0cygpKSkgPD0gNToKKyAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCiAKLSAgICAgICAgaWYgc2VsZi5fcmVzdWx0
c19mYWlsZWRfZGlmZmVyZW50X3Rlc3RzKGZpcnN0X3Jlc3VsdHMsIHNlY29uZF9yZXN1bHRzKToK
LSAgICAgICAgICAgIGZpcnN0X2ZhaWxpbmdfcmVzdWx0c19zZXQgPSBmcm96ZW5zZXQoZmlyc3Rf
cmVzdWx0cy5mYWlsaW5nX3Rlc3RfcmVzdWx0cygpKQotICAgICAgICAgICAgc2Vjb25kX2ZhaWxp
bmdfcmVzdWx0c19zZXQgPSBmcm96ZW5zZXQoc2Vjb25kX3Jlc3VsdHMuZmFpbGluZ190ZXN0X3Jl
c3VsdHMoKSkKKyAgICAgICAgICAgICAgICBzZWxmLmZhaWx1cmVfc3RhdHVzX2lkID0gZmlyc3Rf
ZmFpbHVyZV9zdGF0dXNfaWQKIAotICAgICAgICAgICAgdGVzdHNfdGhhdF9vbmx5X2ZhaWxlZF9m
aXJzdCA9IGZpcnN0X2ZhaWxpbmdfcmVzdWx0c19zZXQuZGlmZmVyZW5jZShzZWNvbmRfZmFpbGlu
Z19yZXN1bHRzX3NldCkKLSAgICAgICAgICAgIHNlbGYuX3JlcG9ydF9mbGFreV90ZXN0cyh0ZXN0
c190aGF0X29ubHlfZmFpbGVkX2ZpcnN0LCBmaXJzdF9yZXN1bHRzX2FyY2hpdmUpCisgICAgICAg
ICAgICAgICAgcmV0dXJuIHNlbGYucmVwb3J0X2ZhaWx1cmUoZmlyc3RfcmVzdWx0c19hcmNoaXZl
LCBmaXJzdF9yZXN1bHRzLCBmaXJzdF9zY3JpcHRfZXJyb3IpCiAKLSAgICAgICAgICAgIHRlc3Rz
X3RoYXRfb25seV9mYWlsZWRfc2Vjb25kID0gc2Vjb25kX2ZhaWxpbmdfcmVzdWx0c19zZXQuZGlm
ZmVyZW5jZShmaXJzdF9mYWlsaW5nX3Jlc3VsdHNfc2V0KQotICAgICAgICAgICAgc2VsZi5fcmVw
b3J0X2ZsYWt5X3Rlc3RzKHRlc3RzX3RoYXRfb25seV9mYWlsZWRfc2Vjb25kLCBzZWNvbmRfcmVz
dWx0c19hcmNoaXZlKQorICAgICAgICAgICAgaWYgc2Vjb25kX3Jlc3VsdHMuZGlkX2V4Y2VlZF90
ZXN0X2ZhaWx1cmVfbGltaXQoKToKKyAgICAgICAgICAgICAgICBzZWxmLl9zaG91bGRfZGVmZXJf
cGF0Y2hfb3JfdGhyb3coZmlyc3RfcmVzdWx0cy5mYWlsaW5nX3Rlc3RfcmVzdWx0cygpLCBmaXJz
dF9yZXN1bHRzX2FyY2hpdmUsIGZpcnN0X3NjcmlwdF9lcnJvciwgZmlyc3RfZmFpbHVyZV9zdGF0
dXNfaWQpCisgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICAgICAgICAgIGlmIGZp
cnN0X3Jlc3VsdHMuZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQoKToKKyAgICAgICAgICAg
ICAgICBzZWxmLl9zaG91bGRfZGVmZXJfcGF0Y2hfb3JfdGhyb3coc2Vjb25kX3Jlc3VsdHMuZmFp
bGluZ190ZXN0X3Jlc3VsdHMoKSwgc2Vjb25kX3Jlc3VsdHNfYXJjaGl2ZSwgc2Vjb25kX3Njcmlw
dF9lcnJvciwgc2Vjb25kX2ZhaWx1cmVfc3RhdHVzX2lkKQorICAgICAgICAgICAgICAgIHJldHVy
biBGYWxzZQorCisgICAgICAgICAgICBpZiBzZWxmLl9yZXN1bHRzX2ZhaWxlZF9kaWZmZXJlbnRf
dGVzdHMoZmlyc3RfcmVzdWx0cywgc2Vjb25kX3Jlc3VsdHMpOgorICAgICAgICAgICAgICAgIGZp
cnN0X2ZhaWxpbmdfcmVzdWx0c19zZXQgPSBmcm96ZW5zZXQoZmlyc3RfcmVzdWx0cy5mYWlsaW5n
X3Rlc3RfcmVzdWx0cygpKQorICAgICAgICAgICAgICAgIHNlY29uZF9mYWlsaW5nX3Jlc3VsdHNf
c2V0ID0gZnJvemVuc2V0KHNlY29uZF9yZXN1bHRzLmZhaWxpbmdfdGVzdF9yZXN1bHRzKCkpCiAK
LSAgICAgICAgICAgIHRlc3RzX3RoYXRfY29uc2lzdGVudGx5X2ZhaWxlZCA9IGZpcnN0X2ZhaWxp
bmdfcmVzdWx0c19zZXQuaW50ZXJzZWN0aW9uKHNlY29uZF9mYWlsaW5nX3Jlc3VsdHNfc2V0KQot
ICAgICAgICAgICAgaWYgdGVzdHNfdGhhdF9jb25zaXN0ZW50bHlfZmFpbGVkOgotICAgICAgICAg
ICAgICAgIGlmIHNlbGYuX3Nob3VsZF9kZWZlcl9wYXRjaF9vcl90aHJvdyh0ZXN0c190aGF0X2Nv
bnNpc3RlbnRseV9mYWlsZWQsIGZpcnN0X3Jlc3VsdHNfYXJjaGl2ZSwgZmlyc3Rfc2NyaXB0X2Vy
cm9yLCBmaXJzdF9mYWlsdXJlX3N0YXR1c19pZCk6Ci0gICAgICAgICAgICAgICAgICAgIHJldHVy
biBGYWxzZSAgIyBEZWZlciBwYXRjaAorICAgICAgICAgICAgICAgIHRlc3RzX3RoYXRfb25seV9m
YWlsZWRfZmlyc3QgPSBmaXJzdF9mYWlsaW5nX3Jlc3VsdHNfc2V0LmRpZmZlcmVuY2Uoc2Vjb25k
X2ZhaWxpbmdfcmVzdWx0c19zZXQpCisgICAgICAgICAgICAgICAgc2VsZi5fcmVwb3J0X2ZsYWt5
X3Rlc3RzKHRlc3RzX3RoYXRfb25seV9mYWlsZWRfZmlyc3QsIGZpcnN0X3Jlc3VsdHNfYXJjaGl2
ZSkKIAotICAgICAgICAgICAgIyBBdCB0aGlzIHBvaW50IHdlIGtub3cgdGhhdCBhdCBsZWFzdCBv
bmUgdGVzdCBmbGFrZWQsIGJ1dCBubyBjb25zaXN0ZW50IGZhaWx1cmVzCi0gICAgICAgICAgICAj
IHdlcmUgaW50cm9kdWNlZC4gVGhpcyBpcyBhIGJpdCBvZiBhIGdyZXktem9uZS4KLSAgICAgICAg
ICAgIHJldHVybiBGYWxzZSAgIyBEZWZlciBwYXRjaAorICAgICAgICAgICAgICAgIHRlc3RzX3Ro
YXRfb25seV9mYWlsZWRfc2Vjb25kID0gc2Vjb25kX2ZhaWxpbmdfcmVzdWx0c19zZXQuZGlmZmVy
ZW5jZShmaXJzdF9mYWlsaW5nX3Jlc3VsdHNfc2V0KQorICAgICAgICAgICAgICAgIHNlbGYuX3Jl
cG9ydF9mbGFreV90ZXN0cyh0ZXN0c190aGF0X29ubHlfZmFpbGVkX3NlY29uZCwgc2Vjb25kX3Jl
c3VsdHNfYXJjaGl2ZSkKIAotICAgICAgICBpZiBzZWxmLl9zaG91bGRfZGVmZXJfcGF0Y2hfb3Jf
dGhyb3coZmlyc3RfcmVzdWx0cy5mYWlsaW5nX3Rlc3RfcmVzdWx0cygpLCBmaXJzdF9yZXN1bHRz
X2FyY2hpdmUsIGZpcnN0X3NjcmlwdF9lcnJvciwgZmlyc3RfZmFpbHVyZV9zdGF0dXNfaWQpOgot
ICAgICAgICAgICAgcmV0dXJuIEZhbHNlICAjIERlZmVyIHBhdGNoCisgICAgICAgICAgICAgICAg
dGVzdHNfdGhhdF9jb25zaXN0ZW50bHlfZmFpbGVkID0gZmlyc3RfZmFpbGluZ19yZXN1bHRzX3Nl
dC5pbnRlcnNlY3Rpb24oc2Vjb25kX2ZhaWxpbmdfcmVzdWx0c19zZXQpCisgICAgICAgICAgICAg
ICAgaWYgdGVzdHNfdGhhdF9jb25zaXN0ZW50bHlfZmFpbGVkOgorICAgICAgICAgICAgICAgICAg
ICBpZiBzZWxmLl9zaG91bGRfZGVmZXJfcGF0Y2hfb3JfdGhyb3codGVzdHNfdGhhdF9jb25zaXN0
ZW50bHlfZmFpbGVkLCBmaXJzdF9yZXN1bHRzX2FyY2hpdmUsIGZpcnN0X3NjcmlwdF9lcnJvciwg
Zmlyc3RfZmFpbHVyZV9zdGF0dXNfaWQpOgorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IEZhbHNlICAjIERlZmVyIHBhdGNoCiAKLSAgICAgICAgIyBBdCB0aGlzIHBvaW50LCB3ZSBrbm93
IHRoYXQgdGhlIGZpcnN0IGFuZCBzZWNvbmQgcnVucyBoYWQgdGhlIGV4YWN0IHNhbWUgZmFpbHVy
ZXMsCi0gICAgICAgICMgYW5kIHRoYXQgdGhvc2UgZmFpbHVyZXMgYXJlIGFsbCBwcmVzZW50IG9u
IHRoZSBjbGVhbiB0cmVlLCBzbyB3ZSBjYW4gc2F5IHdpdGggY2VydGFpbnR5Ci0gICAgICAgICMg
dGhhdCB0aGUgcGF0Y2ggaXMgZ29vZC4KLSAgICAgICAgcmV0dXJuIFRydWUKKyAgICAgICAgICAg
ICAgICAjIEF0IHRoaXMgcG9pbnQgd2Uga25vdyB0aGF0IGF0IGxlYXN0IG9uZSB0ZXN0IGZsYWtl
ZCwgYnV0IG5vIGNvbnNpc3RlbnQgZmFpbHVyZXMKKyAgICAgICAgICAgICAgICAjIHdlcmUgaW50
cm9kdWNlZC4gVGhpcyBpcyBhIGJpdCBvZiBhIGdyZXktem9uZS4KKyAgICAgICAgICAgICAgICBy
ZXR1cm4gRmFsc2UgICMgRGVmZXIgcGF0Y2gKKworICAgICAgICAgICAgaWYgc2VsZi5fc2hvdWxk
X2RlZmVyX3BhdGNoX29yX3Rocm93KGZpcnN0X3Jlc3VsdHMuZmFpbGluZ190ZXN0X3Jlc3VsdHMo
KSwgZmlyc3RfcmVzdWx0c19hcmNoaXZlLCBmaXJzdF9zY3JpcHRfZXJyb3IsIGZpcnN0X2ZhaWx1
cmVfc3RhdHVzX2lkKToKKyAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UgICMgRGVmZXIgcGF0
Y2gKKworICAgICAgICAgICAgIyBBdCB0aGlzIHBvaW50LCB3ZSBrbm93IHRoYXQgdGhlIGZpcnN0
IGFuZCBzZWNvbmQgcnVucyBoYWQgdGhlIGV4YWN0IHNhbWUgZmFpbHVyZXMsCisgICAgICAgICAg
ICAjIGFuZCB0aGF0IHRob3NlIGZhaWx1cmVzIGFyZSBhbGwgcHJlc2VudCBvbiB0aGUgY2xlYW4g
dHJlZSwgc28gd2UgY2FuIHNheSB3aXRoIGNlcnRhaW50eQorICAgICAgICAgICAgIyB0aGF0IHRo
ZSBwYXRjaCBpcyBnb29kLgorICAgICAgICAgICAgcmV0dXJuIFRydWUKIAogICAgIGRlZiByZXN1
bHRzX2FyY2hpdmVfZnJvbV9wYXRjaF90ZXN0X3J1bihzZWxmLCBwYXRjaCk6CiAgICAgICAgIGFz
c2VydChzZWxmLl9wYXRjaC5pZCgpID09IHBhdGNoLmlkKCkpICAjIFBhdGNoQW5hbHlzaXNUYXNr
IGlzIG5vdCBjdXJyZW50bHkgcmUtdXNlYWJsZS4KZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvdG9vbC9jb21tYW5kcy9lYXJseXdhcm5pbmdzeXN0ZW0ucHkgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZWFybHl3YXJuaW5nc3lzdGVtLnB5CmluZGV4IDli
YzA0MTg2MGNlNjc0NTQ0NTRlNGIyNTE0MzhhOWRiZTUyNjQ1MTMuLmQ5NGY4MzM4MTY0NTljNmEy
NzcyYWNjZTIwZTk3YjA0MjU2NTcyODQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvdG9vbC9jb21tYW5kcy9lYXJseXdhcm5pbmdzeXN0ZW0ucHkKKysrIGIvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Vhcmx5d2FybmluZ3N5c3RlbS5weQpAQCAtMSw0ICsx
LDUgQEAKICMgQ29weXJpZ2h0IChjKSAyMDA5IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisjIENvcHlyaWdodCAoYykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC0yOCw2ICsyOSw3IEBACiAKIGlt
cG9ydCBqc29uCiBpbXBvcnQgbG9nZ2luZworaW1wb3J0IG9zCiBmcm9tIG9wdHBhcnNlIGltcG9y
dCBtYWtlX29wdGlvbgogCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5jb25maWcuY29tbWl0dGVycyBp
bXBvcnQgQ29tbWl0dGVyTGlzdApAQCAtMzYsNiArMzgsNyBAQCBmcm9tIHdlYmtpdHB5LmNvbW1v
bi5zeXN0ZW0uZmlsZXN5c3RlbSBpbXBvcnQgRmlsZVN5c3RlbQogZnJvbSB3ZWJraXRweS5jb21t
b24uc3lzdGVtLmV4ZWN1dGl2ZSBpbXBvcnQgU2NyaXB0RXJyb3IKIGZyb20gd2Via2l0cHkudG9v
bC5ib3QuZWFybHl3YXJuaW5nc3lzdGVtdGFzayBpbXBvcnQgRWFybHlXYXJuaW5nU3lzdGVtVGFz
aywgRWFybHlXYXJuaW5nU3lzdGVtVGFza0RlbGVnYXRlCiBmcm9tIHdlYmtpdHB5LnRvb2wuYm90
LmxheW91dHRlc3RyZXN1bHRzcmVhZGVyIGltcG9ydCBMYXlvdXRUZXN0UmVzdWx0c1JlYWRlcgor
ZnJvbSB3ZWJraXRweS50b29sLmJvdC5qc2N0ZXN0cmVzdWx0c3JlYWRlciBpbXBvcnQgSlNDVGVz
dFJlc3VsdHNSZWFkZXIKIGZyb20gd2Via2l0cHkudG9vbC5ib3QucGF0Y2hhbmFseXNpc3Rhc2sg
aW1wb3J0IFVuYWJsZVRvQXBwbHlQYXRjaCwgUGF0Y2hJc05vdFZhbGlkCiBmcm9tIHdlYmtpdHB5
LnRvb2wuYm90LnF1ZXVlZW5naW5lIGltcG9ydCBRdWV1ZUVuZ2luZQogZnJvbSB3ZWJraXRweS50
b29sLmNvbW1hbmRzLnF1ZXVlcyBpbXBvcnQgQWJzdHJhY3RSZXZpZXdRdWV1ZQpAQCAtNTMsNyAr
NTYsMTIgQEAgY2xhc3MgQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0oQWJzdHJhY3RSZXZpZXdR
dWV1ZSwgRWFybHlXYXJuaW5nU3lzdGVtVGFza0RlbGUKIAogICAgIGRlZiBiZWdpbl93b3JrX3F1
ZXVlKHNlbGYpOgogICAgICAgICBBYnN0cmFjdFJldmlld1F1ZXVlLmJlZ2luX3dvcmtfcXVldWUo
c2VsZikKLSAgICAgICAgc2VsZi5fbGF5b3V0X3Rlc3RfcmVzdWx0c19yZWFkZXIgPSBMYXlvdXRU
ZXN0UmVzdWx0c1JlYWRlcihzZWxmLl90b29sLCBzZWxmLl9wb3J0LnJlc3VsdHNfZGlyZWN0b3J5
KCksIHNlbGYuX2xvZ19kaXJlY3RvcnkoKSkKKworICAgICAgICBpZiBzZWxmLmdyb3VwKCkgPT0g
ImpzYyI6CisgICAgICAgICAgICBkaXIgPSBvcy5wYXRoLmRpcm5hbWUob3MucGF0aC5kaXJuYW1l
KG9zLnBhdGguZGlybmFtZShzZWxmLl9wb3J0LnJlc3VsdHNfZGlyZWN0b3J5KCkpKSkKKyAgICAg
ICAgICAgIHNlbGYuX3Rlc3RfcmVzdWx0c19yZWFkZXIgPSBKU0NUZXN0UmVzdWx0c1JlYWRlcihz
ZWxmLl90b29sLCBkaXIpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLl90ZXN0X3Jl
c3VsdHNfcmVhZGVyID0gTGF5b3V0VGVzdFJlc3VsdHNSZWFkZXIoc2VsZi5fdG9vbCwgc2VsZi5f
cG9ydC5yZXN1bHRzX2RpcmVjdG9yeSgpLCBzZWxmLl9sb2dfZGlyZWN0b3J5KCkpCiAKICAgICBk
ZWYgX2ZhaWxpbmdfdGVzdHNfbWVzc2FnZShzZWxmLCB0YXNrLCBwYXRjaCk6CiAgICAgICAgIHJl
c3VsdHMgPSB0YXNrLnJlc3VsdHNfZnJvbV9wYXRjaF90ZXN0X3J1bihwYXRjaCkKQEAgLTExNywx
NCArMTI1LDIwIEBAIGNsYXNzIEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtKEFic3RyYWN0UmV2
aWV3UXVldWUsIEVhcmx5V2FybmluZ1N5c3RlbVRhc2tEZWxlCiAgICAgICAgIHJldHVybiBzZWxm
Ll91cGRhdGVfc3RhdHVzKG1lc3NhZ2UsIHBhdGNoPXBhdGNoLCByZXN1bHRzX2ZpbGU9ZmFpbHVy
ZV9sb2cpCiAKICAgICBkZWYgdGVzdF9yZXN1bHRzKHNlbGYpOgotICAgICAgICByZXR1cm4gc2Vs
Zi5fbGF5b3V0X3Rlc3RfcmVzdWx0c19yZWFkZXIucmVzdWx0cygpCisgICAgICAgIHJldHVybiBz
ZWxmLl90ZXN0X3Jlc3VsdHNfcmVhZGVyLnJlc3VsdHMoKQogCiAgICAgZGVmIGFyY2hpdmVfbGFz
dF90ZXN0X3Jlc3VsdHMoc2VsZiwgcGF0Y2gpOgotICAgICAgICByZXR1cm4gc2VsZi5fbGF5b3V0
X3Rlc3RfcmVzdWx0c19yZWFkZXIuYXJjaGl2ZShwYXRjaCkKKyAgICAgICAgcmV0dXJuIHNlbGYu
X3Rlc3RfcmVzdWx0c19yZWFkZXIuYXJjaGl2ZShwYXRjaCkKIAogICAgIGRlZiBidWlsZF9zdHls
ZShzZWxmKToKICAgICAgICAgcmV0dXJuIHNlbGYuX2J1aWxkX3N0eWxlCiAKKyAgICBkZWYgZ3Jv
dXAoc2VsZik6CisgICAgICAgIGlmIGhhc2F0dHIoc2VsZiwgIl9ncm91cCIpOgorICAgICAgICAg
ICAgcmV0dXJuIHNlbGYuX2dyb3VwCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXR1cm4g
Tm9uZQorCiAgICAgZGVmIHJlZmV0Y2hfcGF0Y2goc2VsZiwgcGF0Y2gpOgogICAgICAgICByZXR1
cm4gc2VsZi5fdG9vbC5idWdzLmZldGNoX2F0dGFjaG1lbnQocGF0Y2guaWQoKSkKIApAQCAtMTU2
LDUgKzE3MCw2IEBAIGNsYXNzIEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtKEFic3RyYWN0UmV2
aWV3UXVldWUsIEVhcmx5V2FybmluZ1N5c3RlbVRhc2tEZWxlCiAgICAgICAgICAgICAgICAgJ19i
dWlsZF9zdHlsZSc6IGNvbmZpZy5nZXQoJ3N0eWxlJywgInJlbGVhc2UiKSwKICAgICAgICAgICAg
ICAgICAnd2F0Y2hlcnMnOiBjb25maWcuZ2V0KCd3YXRjaGVycycsIFtdKSwKICAgICAgICAgICAg
ICAgICAncnVuX3Rlc3RzJzogY29uZmlnLmdldCgncnVuVGVzdHMnLCBjbHMucnVuX3Rlc3RzKSwK
KyAgICAgICAgICAgICAgICAnX2dyb3VwJzogY29uZmlnLmdldCgnZ3JvdXAnLCBOb25lKSwKICAg
ICAgICAgICAgIH0pKQogICAgICAgICByZXR1cm4gY2xhc3NlcwpkaWZmIC0tZ2l0IGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Vhcmx5d2FybmluZ3N5c3RlbV91bml0dGVz
dC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9lYXJseXdhcm5pbmdz
eXN0ZW1fdW5pdHRlc3QucHkKaW5kZXggMDg4ODc4MTNjZTJlOTNhOGVjOWRhMzc2MzZlY2JkZTll
ZmYzYzllNy4uMzY5OTg5YTA3ZDg3OGYzNDhjNTZlOGNkM2U2Y2Y4NzBhNDk4MWEzNSAxMDA2NDQK
LS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Vhcmx5d2FybmluZ3N5
c3RlbV91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFu
ZHMvZWFybHl3YXJuaW5nc3lzdGVtX3VuaXR0ZXN0LnB5CkBAIC0xLDQgKzEsNSBAQAogIyBDb3B5
cmlnaHQgKEMpIDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJp
Z2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTY4LDkgKzY5LDEwIEBAIGNsYXNzIEVhcmx5V2Fybmlu
Z1N5c3RlbVRlc3QoUXVldWVzVGVzdCk6CiAgICAgICAgICAgICAicG9ydCI6IGV3cy5wb3J0X25h
bWUsCiAgICAgICAgICAgICAiYXJjaGl0ZWN0dXJlIjogIiAtLWFyY2hpdGVjdHVyZT0lcyIgJSBl
d3MuYXJjaGl0ZWN0dXJlIGlmIGV3cy5hcmNoaXRlY3R1cmUgZWxzZSAiIiwKICAgICAgICAgICAg
ICJidWlsZF9zdHlsZSI6IGV3cy5idWlsZF9zdHlsZSgpLAorICAgICAgICAgICAgImdyb3VwIjog
ZXdzLmdyb3VwKCksCiAgICAgICAgIH0KICAgICAgICAgaWYgZXdzLnJ1bl90ZXN0czoKLSAgICAg
ICAgICAgIHJ1bl90ZXN0c19saW5lID0gIlJ1bm5pbmc6IHdlYmtpdC1wYXRjaCAtLXN0YXR1cy1o
b3N0PWV4YW1wbGUuY29tIGJ1aWxkLWFuZC10ZXN0IC0tbm8tY2xlYW4gLS1uby11cGRhdGUgLS10
ZXN0IC0tbm9uLWludGVyYWN0aXZlIC0tYnVpbGQtc3R5bGU9JShidWlsZF9zdHlsZSlzIC0tcG9y
dD0lKHBvcnQpcyUoYXJjaGl0ZWN0dXJlKXNcbiIgJSBzdHJpbmdfcmVwbGFjZW1lbnRzCisgICAg
ICAgICAgICBydW5fdGVzdHNfbGluZSA9ICJSdW5uaW5nOiB3ZWJraXQtcGF0Y2ggLS1zdGF0dXMt
aG9zdD1leGFtcGxlLmNvbSBidWlsZC1hbmQtdGVzdCAtLW5vLWNsZWFuIC0tbm8tdXBkYXRlIC0t
dGVzdCAtLW5vbi1pbnRlcmFjdGl2ZSAtLWJ1aWxkLXN0eWxlPSUoYnVpbGRfc3R5bGUpcyAtLWdy
b3VwPSUoZ3JvdXApcyAtLXBvcnQ9JShwb3J0KXMlKGFyY2hpdGVjdHVyZSlzXG4iICUgc3RyaW5n
X3JlcGxhY2VtZW50cwogICAgICAgICBlbHNlOgogICAgICAgICAgICAgcnVuX3Rlc3RzX2xpbmUg
PSAiIgogICAgICAgICBzdHJpbmdfcmVwbGFjZW1lbnRzWydydW5fdGVzdHNfbGluZSddID0gcnVu
X3Rlc3RzX2xpbmUKQEAgLTgxLDcgKzgzLDcgQEAgY2xhc3MgRWFybHlXYXJuaW5nU3lzdGVtVGVz
dChRdWV1ZXNUZXN0KToKIFJ1bm5pbmc6IHdlYmtpdC1wYXRjaCAtLXN0YXR1cy1ob3N0PWV4YW1w
bGUuY29tIGNsZWFuIC0tcG9ydD0lKHBvcnQpcyUoYXJjaGl0ZWN0dXJlKXMKIFJ1bm5pbmc6IHdl
YmtpdC1wYXRjaCAtLXN0YXR1cy1ob3N0PWV4YW1wbGUuY29tIHVwZGF0ZSAtLXBvcnQ9JShwb3J0
KXMlKGFyY2hpdGVjdHVyZSlzCiBSdW5uaW5nOiB3ZWJraXQtcGF0Y2ggLS1zdGF0dXMtaG9zdD1l
eGFtcGxlLmNvbSBhcHBseS1hdHRhY2htZW50IC0tbm8tdXBkYXRlIC0tbm9uLWludGVyYWN0aXZl
IDEwMDAwIC0tcG9ydD0lKHBvcnQpcyUoYXJjaGl0ZWN0dXJlKXMKLVJ1bm5pbmc6IHdlYmtpdC1w
YXRjaCAtLXN0YXR1cy1ob3N0PWV4YW1wbGUuY29tIGJ1aWxkIC0tbm8tY2xlYW4gLS1uby11cGRh
dGUgLS1idWlsZC1zdHlsZT0lKGJ1aWxkX3N0eWxlKXMgLS1wb3J0PSUocG9ydClzJShhcmNoaXRl
Y3R1cmUpcworUnVubmluZzogd2Via2l0LXBhdGNoIC0tc3RhdHVzLWhvc3Q9ZXhhbXBsZS5jb20g
YnVpbGQgLS1uby1jbGVhbiAtLW5vLXVwZGF0ZSAtLWJ1aWxkLXN0eWxlPSUoYnVpbGRfc3R5bGUp
cyAtLWdyb3VwPSUoZ3JvdXApcyAtLXBvcnQ9JShwb3J0KXMlKGFyY2hpdGVjdHVyZSlzCiAlKHJ1
bl90ZXN0c19saW5lKXNNT0NLOiB1cGRhdGVfc3RhdHVzOiAlKG5hbWUpcyBQYXNzCiBNT0NLOiBy
ZWxlYXNlX3dvcmtfaXRlbTogJShuYW1lKXMgMTAwMDAKICIiIiAlIHN0cmluZ19yZXBsYWNlbWVu
dHMsCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvYnVpbGQu
cHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvYnVpbGQucHkKaW5kZXggZjc0
ZmZjZTcwOTQxYzYxZTU5Njc5MmU0YzYwZGNkN2Y4YjY1ZTllYy4uZjRiZjJlZTM5ZTAzNDMzODU1
NmMzYWM3Yzc0Y2Y1ZGE5M2EyMmIwNCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS90b29sL3N0ZXBzL2J1aWxkLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9z
dGVwcy9idWlsZC5weQpAQCAtMSw0ICsxLDUgQEAKICMgQ29weXJpZ2h0IChDKSAyMDEwIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogIyBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
CkBAIC00MSwyOCArNDIsMzggQEAgY2xhc3MgQnVpbGQoQWJzdHJhY3RTdGVwKToKICAgICAgICAg
ICAgIE9wdGlvbnMuYnVpbGQsCiAgICAgICAgICAgICBPcHRpb25zLnF1aWV0LAogICAgICAgICAg
ICAgT3B0aW9ucy5idWlsZF9zdHlsZSwKKyAgICAgICAgICAgIE9wdGlvbnMuZ3JvdXAsCiAgICAg
ICAgIF0KIAotICAgIGRlZiBidWlsZChzZWxmLCBidWlsZF9zdHlsZSk6CisgICAgZGVmIGJ1aWxk
KHNlbGYsIGJ1aWxkX3N0eWxlLCBncm91cCk6CiAgICAgICAgIGVudmlyb25tZW50ID0gc2VsZi5f
dG9vbC5jb3B5X2N1cnJlbnRfZW52aXJvbm1lbnQoKQogICAgICAgICBlbnZpcm9ubWVudC5kaXNh
YmxlX2djY19zbWFydHF1b3RlcygpCiAgICAgICAgIGVudmlyb25tZW50LmRpc2FibGVfamhidWls
ZF9WVDEwMF9vdXRwdXQoKQogICAgICAgICBlbnYgPSBlbnZpcm9ubWVudC50b19kaWN0aW9uYXJ5
KCkKIAotICAgICAgICBidWlsZF93ZWJraXRfY29tbWFuZCA9IHNlbGYuX3Rvb2wuZGVwcmVjYXRl
ZF9wb3J0KCkuYnVpbGRfd2Via2l0X2NvbW1hbmQoYnVpbGRfc3R5bGU9YnVpbGRfc3R5bGUpCisg
ICAgICAgIGlmIGdyb3VwID09ICJqc2MiOgorICAgICAgICAgICAgYnVpbGRfY29tbWFuZCA9IHNl
bGYuX3Rvb2wuZGVwcmVjYXRlZF9wb3J0KCkuYnVpbGRfanNjX2NvbW1hbmQoYnVpbGRfc3R5bGU9
YnVpbGRfc3R5bGUpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBidWlsZF9jb21tYW5kID0g
c2VsZi5fdG9vbC5kZXByZWNhdGVkX3BvcnQoKS5idWlsZF93ZWJraXRfY29tbWFuZChidWlsZF9z
dHlsZT1idWlsZF9zdHlsZSkKIAogICAgICAgICBpZiBzZWxmLl9vcHRpb25zLmFyY2hpdGVjdHVy
ZToKLSAgICAgICAgICAgIGJ1aWxkX3dlYmtpdF9jb21tYW5kICs9IFsnQVJDSFM9JXMnICUgc2Vs
Zi5fb3B0aW9ucy5hcmNoaXRlY3R1cmVdCisgICAgICAgICAgICBidWlsZF9jb21tYW5kICs9IFsn
QVJDSFM9JXMnICUgc2VsZi5fb3B0aW9ucy5hcmNoaXRlY3R1cmVdCiAKLSAgICAgICAgc2VsZi5f
dG9vbC5leGVjdXRpdmUucnVuX2FuZF90aHJvd19pZl9mYWlsKGJ1aWxkX3dlYmtpdF9jb21tYW5k
LCBzZWxmLl9vcHRpb25zLnF1aWV0LAorICAgICAgICBzZWxmLl90b29sLmV4ZWN1dGl2ZS5ydW5f
YW5kX3Rocm93X2lmX2ZhaWwoYnVpbGRfY29tbWFuZCwgc2VsZi5fb3B0aW9ucy5xdWlldCwKICAg
ICAgICAgICAgIGN3ZD1zZWxmLl90b29sLnNjbSgpLmNoZWNrb3V0X3Jvb3QsIGVudj1lbnYpCiAK
ICAgICBkZWYgcnVuKHNlbGYsIHN0YXRlKToKICAgICAgICAgaWYgbm90IHNlbGYuX29wdGlvbnMu
YnVpbGQ6CiAgICAgICAgICAgICByZXR1cm4KICAgICAgICAgX2xvZy5pbmZvKCJCdWlsZGluZyBX
ZWJLaXQiKQorCisgICAgICAgIGlmIGhhc2F0dHIoc2VsZi5fb3B0aW9ucywgJ2dyb3VwJykgYW5k
IHNlbGYuX29wdGlvbnMuZ3JvdXAgPT0gImpzYyI6CisgICAgICAgICAgICBncm91cCA9IHNlbGYu
X29wdGlvbnMuZ3JvdXAKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGdyb3VwID0gTm9uZQor
CiAgICAgICAgIGlmIHNlbGYuX29wdGlvbnMuYnVpbGRfc3R5bGUgPT0gImJvdGgiOgotICAgICAg
ICAgICAgc2VsZi5idWlsZCgiZGVidWciKQotICAgICAgICAgICAgc2VsZi5idWlsZCgicmVsZWFz
ZSIpCisgICAgICAgICAgICBzZWxmLmJ1aWxkKCJkZWJ1ZyIsIGdyb3VwKQorICAgICAgICAgICAg
c2VsZi5idWlsZCgicmVsZWFzZSIsIGdyb3VwKQogICAgICAgICBlbHNlOgotICAgICAgICAgICAg
c2VsZi5idWlsZChzZWxmLl9vcHRpb25zLmJ1aWxkX3N0eWxlKQorICAgICAgICAgICAgc2VsZi5i
dWlsZChzZWxmLl9vcHRpb25zLmJ1aWxkX3N0eWxlLCBncm91cCkKZGlmZiAtLWdpdCBhL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9vcHRpb25zLnB5IGIvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS90b29sL3N0ZXBzL29wdGlvbnMucHkKaW5kZXggM2VmNDdkMDA4YTU5ZTA1MGQ0Y2Ew
YzQ4NzdkZGQxYTYwNzMxYTQwOS4uOGYxNDU4ZGI1YzRmMjQ0OGE3YWZiZjI5ZTFjMzk2NDE3NTIx
MTZiMSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL29wdGlv
bnMucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL29wdGlvbnMucHkK
QEAgLTEsNCArMSw1IEBACiAjIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtNDYsNiArNDcs
NyBAQCBjbGFzcyBPcHRpb25zKG9iamVjdCk6CiAgICAgZW1haWwgPSBtYWtlX29wdGlvbigiLS1l
bWFpbCIsIGFjdGlvbj0ic3RvcmUiLCB0eXBlPSJzdHJpbmciLCBkZXN0PSJlbWFpbCIsIGhlbHA9
IkVtYWlsIGFkZHJlc3MgdG8gdXNlIGluIENoYW5nZUxvZ3MuIikKICAgICBmb3JjZV9jbGVhbiA9
IG1ha2Vfb3B0aW9uKCItLWZvcmNlLWNsZWFuIiwgYWN0aW9uPSJzdG9yZV90cnVlIiwgZGVzdD0i
Zm9yY2VfY2xlYW4iLCBkZWZhdWx0PUZhbHNlLCBoZWxwPSJDbGVhbiB3b3JraW5nIGRpcmVjdG9y
eSBiZWZvcmUgYXBwbHlpbmcgcGF0Y2hlcyAocmVtb3ZlcyBsb2NhbCBjaGFuZ2VzIGFuZCBjb21t
aXRzKSIpCiAgICAgZ2l0X2NvbW1pdCA9IG1ha2Vfb3B0aW9uKCItZyIsICItLWdpdC1jb21taXQi
LCBhY3Rpb249InN0b3JlIiwgZGVzdD0iZ2l0X2NvbW1pdCIsIGhlbHA9Ik9wZXJhdGUgb24gYSBs
b2NhbCBjb21taXQuIElmIGEgcmFuZ2UsIHRoZSBjb21taXRzIGFyZSBzcXVhc2hlZCBpbnRvIG9u
ZS4gPHJlZj4uLi4uIGluY2x1ZGVzIHRoZSB3b3JraW5nIGNvcHkgY2hhbmdlcy4gVVBTVFJFQU0g
Y2FuIGJlIHVzZWQgZm9yIHRoZSB1cHN0cmVhbS90cmFja2luZyBicmFuY2guIikKKyAgICBncm91
cCA9IG1ha2Vfb3B0aW9uKCItLWdyb3VwIiwgYWN0aW9uPSJzdG9yZSIsIGRlc3Q9Imdyb3VwIiwg
ZGVmYXVsdD1Ob25lLCBoZWxwPSIiKQogICAgIGxvY2FsX2NvbW1pdCA9IG1ha2Vfb3B0aW9uKCIt
LWxvY2FsLWNvbW1pdCIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGRlc3Q9ImxvY2FsX2NvbW1pdCIs
IGRlZmF1bHQ9RmFsc2UsIGhlbHA9Ik1ha2UgYSBsb2NhbCBjb21taXQgZm9yIGVhY2ggYXBwbGll
ZCBwYXRjaCIpCiAgICAgbm9uX2ludGVyYWN0aXZlID0gbWFrZV9vcHRpb24oIi0tbm9uLWludGVy
YWN0aXZlIiwgYWN0aW9uPSJzdG9yZV90cnVlIiwgZGVzdD0ibm9uX2ludGVyYWN0aXZlIiwgZGVm
YXVsdD1GYWxzZSwgaGVscD0iTmV2ZXIgcHJvbXB0IHRoZSB1c2VyLCBmYWlsIGFzIGZhc3QgYXMg
cG9zc2libGUuIikKICAgICBvYnNvbGV0ZV9wYXRjaGVzID0gbWFrZV9vcHRpb24oIi0tbm8tb2Jz
b2xldGUiLCBhY3Rpb249InN0b3JlX2ZhbHNlIiwgZGVzdD0ib2Jzb2xldGVfcGF0Y2hlcyIsIGRl
ZmF1bHQ9VHJ1ZSwgaGVscD0iRG8gbm90IG9ic29sZXRlIG9sZCBwYXRjaGVzIGJlZm9yZSBwb3N0
aW5nIHRoaXMgb25lLiIpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wv
c3RlcHMvcnVudGVzdHMucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvcnVu
dGVzdHMucHkKaW5kZXggNzVkNzJiYzlhZDJmNGUzNmQ0NWZkYWM5MGYxODE5NDgxY2YwMjg4Yi4u
ZWQ5MGRmZDQzOGMzMWNmYWRjZWZkODMyZjE1ZGVkOTkyYTk3ZGRiYyAxMDA2NDQKLS0tIGEvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3J1bnRlc3RzLnB5CisrKyBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9ydW50ZXN0cy5weQpAQCAtMSw0ICsxLDUgQEAKICMg
Q29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENv
cHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC01Myw2ICs1NCw3IEBAIGNsYXNzIFJ1blRlc3Rz
KEFic3RyYWN0U3RlcCk6CiAgICAgICAgICAgICBPcHRpb25zLml0ZXJhdGVfb25fbmV3X3Rlc3Rz
LAogICAgICAgICAgICAgT3B0aW9ucy5ub25faW50ZXJhY3RpdmUsCiAgICAgICAgICAgICBPcHRp
b25zLnF1aWV0LAorICAgICAgICAgICAgT3B0aW9ucy5ncm91cCwKICAgICAgICAgXQogCiAgICAg
ZGVmIHJ1bihzZWxmLCBzdGF0ZSk6CkBAIC02Myw2ICs2NSwxMCBAQCBjbGFzcyBSdW5UZXN0cyhB
YnN0cmFjdFN0ZXApOgogICAgICAgICBpZiBub3Qgc2VsZi5fb3B0aW9ucy50ZXN0OgogICAgICAg
ICAgICAgcmV0dXJuCiAKKyAgICAgICAgaWYgaGFzYXR0cihzZWxmLl9vcHRpb25zLCAiZ3JvdXAi
KSBhbmQgc2VsZi5fb3B0aW9ucy5ncm91cCA9PSAianNjIjoKKyAgICAgICAgICAgIHNlbGYuX3J1
bl9qYXZhc2NyaXB0Y29yZV90ZXN0cygpCisgICAgICAgICAgICByZXR1cm4KKwogICAgICAgICBw
eXRob25fdW5pdHRlc3RzX2NvbW1hbmQgPSBzZWxmLl90b29sLmRlcHJlY2F0ZWRfcG9ydCgpLnJ1
bl9weXRob25fdW5pdHRlc3RzX2NvbW1hbmQoKQogICAgICAgICBpZiBweXRob25fdW5pdHRlc3Rz
X2NvbW1hbmQ6CiAgICAgICAgICAgICBfbG9nLmluZm8oIlJ1bm5pbmcgUHl0aG9uIHVuaXQgdGVz
dHMiKQpAQCAtMTQzLDMgKzE0OSw3IEBAIGNsYXNzIFJ1blRlc3RzKEFic3RyYWN0U3RlcCk6CiAg
ICAgICAgICAgICBhcmdzLmFwcGVuZCgiLS1pdGVyYXRpb25zPSVkIiAlIGl0ZXJhdGVfb25fbmV3
X3Rlc3RzKQogCiAgICAgICAgIHNlbGYuX3Rvb2wuZXhlY3V0aXZlLnJ1bl9hbmRfdGhyb3dfaWZf
ZmFpbChhcmdzLCBjd2Q9c2VsZi5fdG9vbC5zY20oKS5jaGVja291dF9yb290KQorCisgICAgZGVm
IF9ydW5famF2YXNjcmlwdGNvcmVfdGVzdHMoc2VsZik6CisgICAgICAgIGFyZ3MgPSBzZWxmLl90
b29sLmRlcHJlY2F0ZWRfcG9ydCgpLnJ1bl9qYXZhc2NyaXB0Y29yZV90ZXN0c19jb21tYW5kKHNl
bGYuX29wdGlvbnMuYnVpbGRfc3R5bGUpCisgICAgICAgIHNlbGYuX3Rvb2wuZXhlY3V0aXZlLnJ1
bl9hbmRfdGhyb3dfaWZfZmFpbChhcmdzLCBjd2Q9c2VsZi5fdG9vbC5zY20oKS5jaGVja291dF9y
b290KQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3N0ZXBz
X3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3N0ZXBzX3Vu
aXR0ZXN0LnB5CmluZGV4IDdkOTRhMTNiMzQ2M2Q5OGE0NGY5NDlmODE0Y2M3MTIxYzA2OGFiNWQu
LmE0ODQyYWE4OWE0YmVmNWNhZDM5Y2FiYjNmMmZmNTgyNTdmYjdjNWQgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9zdGVwc191bml0dGVzdC5weQorKysgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvc3RlcHNfdW5pdHRlc3QucHkKQEAgLTEs
NCArMSw1IEBACiAjIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtOTgsNiArOTksNyBAQCBj
bGFzcyBTdGVwc1Rlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBzZWxmLl9hc3NlcnRf
c3RlcF9vdXRwdXRfd2l0aF9idWcoc3RlcHMuRW5zdXJlQnVnSXNPcGVuQW5kQXNzaWduZWQsIDUw
MDAyLCBleHBlY3RlZF9sb2dzKQogCiAgICAgZGVmIHRlc3RfcnVudGVzdHNfYXJncyhzZWxmKToK
KyAgICAgICAgc2VsZi5tYXhEaWZmID0gTm9uZQogICAgICAgICBtb2NrX29wdGlvbnMgPSBzZWxm
Ll9zdGVwX29wdGlvbnMoKQogICAgICAgICBtb2NrX29wdGlvbnMubm9uX2ludGVyYWN0aXZlID0g
RmFsc2UKICAgICAgICAgbW9ja19vcHRpb25zLmJ1aWxkX3N0eWxlID0gInJlbGVhc2UiCkBAIC0x
MTEsNyArMTEzLDcgQEAgTU9DSyBydW5fYW5kX3Rocm93X2lmX2ZhaWw6IFsnVG9vbHMvU2NyaXB0
cy90ZXN0LXdlYmtpdHB5J10sIGN3ZD0vbW9jay1jaGVja291dAogUnVubmluZyBQZXJsIHVuaXQg
dGVzdHMKIE1PQ0sgcnVuX2FuZF90aHJvd19pZl9mYWlsOiBbJ1Rvb2xzL1NjcmlwdHMvdGVzdC13
ZWJraXRwZXJsJ10sIGN3ZD0vbW9jay1jaGVja291dAogUnVubmluZyBKYXZhU2NyaXB0Q29yZSB0
ZXN0cwotTU9DSyBydW5fYW5kX3Rocm93X2lmX2ZhaWw6IFsnVG9vbHMvU2NyaXB0cy9ydW4tamF2
YXNjcmlwdGNvcmUtdGVzdHMnXSwgY3dkPS9tb2NrLWNoZWNrb3V0CitNT0NLIHJ1bl9hbmRfdGhy
b3dfaWZfZmFpbDogWydUb29scy9TY3JpcHRzL3J1bi1qYXZhc2NyaXB0Y29yZS10ZXN0cycsICct
LW5vLWZhaWwtZmFzdCcsICctLWpzb24tb3V0cHV0PWpzY190ZXN0X3Jlc3VsdHMuanNvbiddLCBj
d2Q9L21vY2stY2hlY2tvdXQKIFJ1bm5pbmcgYmluZGluZ3MgZ2VuZXJhdGlvbiB0ZXN0cwogTU9D
SyBydW5fYW5kX3Rocm93X2lmX2ZhaWw6IFsnVG9vbHMvU2NyaXB0cy9ydW4tYmluZGluZ3MtdGVz
dHMnXSwgY3dkPS9tb2NrLWNoZWNrb3V0CiBSdW5uaW5nIHJ1bi13ZWJraXQtdGVzdHMKQEAgLTEy
MCw2ICsxMjIsNyBAQCBNT0NLIHJ1bl9hbmRfdGhyb3dfaWZfZmFpbDogWydUb29scy9TY3JpcHRz
L3J1bi13ZWJraXQtdGVzdHMnLCAnLS1yZWxlYXNlJywgJy0tcQogICAgICAgICBPdXRwdXRDYXB0
dXJlKCkuYXNzZXJ0X291dHB1dHMoc2VsZiwgc3RlcC5ydW4sIFt7fV0sIGV4cGVjdGVkX2xvZ3M9
ZXhwZWN0ZWRfbG9ncykKIAogICAgIGRlZiB0ZXN0X3J1bnRlc3RzX2RlYnVnX2FyZ3Moc2VsZik6
CisgICAgICAgIHNlbGYubWF4RGlmZiA9IE5vbmUKICAgICAgICAgbW9ja19vcHRpb25zID0gc2Vs
Zi5fc3RlcF9vcHRpb25zKCkKICAgICAgICAgbW9ja19vcHRpb25zLm5vbl9pbnRlcmFjdGl2ZSA9
IEZhbHNlCiAgICAgICAgIG1vY2tfb3B0aW9ucy5idWlsZF9zdHlsZSA9ICJkZWJ1ZyIKQEAgLTEz
Myw3ICsxMzYsNyBAQCBNT0NLIHJ1bl9hbmRfdGhyb3dfaWZfZmFpbDogWydUb29scy9TY3JpcHRz
L3Rlc3Qtd2Via2l0cHknXSwgY3dkPS9tb2NrLWNoZWNrb3V0CiBSdW5uaW5nIFBlcmwgdW5pdCB0
ZXN0cwogTU9DSyBydW5fYW5kX3Rocm93X2lmX2ZhaWw6IFsnVG9vbHMvU2NyaXB0cy90ZXN0LXdl
YmtpdHBlcmwnXSwgY3dkPS9tb2NrLWNoZWNrb3V0CiBSdW5uaW5nIEphdmFTY3JpcHRDb3JlIHRl
c3RzCi1NT0NLIHJ1bl9hbmRfdGhyb3dfaWZfZmFpbDogWydUb29scy9TY3JpcHRzL3J1bi1qYXZh
c2NyaXB0Y29yZS10ZXN0cyddLCBjd2Q9L21vY2stY2hlY2tvdXQKK01PQ0sgcnVuX2FuZF90aHJv
d19pZl9mYWlsOiBbJ1Rvb2xzL1NjcmlwdHMvcnVuLWphdmFzY3JpcHRjb3JlLXRlc3RzJywgJy0t
bm8tZmFpbC1mYXN0JywgJy0tanNvbi1vdXRwdXQ9anNjX3Rlc3RfcmVzdWx0cy5qc29uJ10sIGN3
ZD0vbW9jay1jaGVja291dAogUnVubmluZyBiaW5kaW5ncyBnZW5lcmF0aW9uIHRlc3RzCiBNT0NL
IHJ1bl9hbmRfdGhyb3dfaWZfZmFpbDogWydUb29scy9TY3JpcHRzL3J1bi1iaW5kaW5ncy10ZXN0
cyddLCBjd2Q9L21vY2stY2hlY2tvdXQKIFJ1bm5pbmcgcnVuLXdlYmtpdC10ZXN0cwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>298160</attachid>
            <date>2017-01-05 18:19:40 -0800</date>
            <delta_ts>2017-01-12 14:55:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-162458-20170105181811.patch</filename>
            <type>text/plain</type>
            <size>49721</size>
            <attacher name="Srinivasan Vijayaraghavan">webkit</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA2Mzc3CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOWI3NTZhN2Y2MTZlMzQ0YjFhYmFjNjFkZmVkMmExZWI4
NmY3ZTQ0ZC4uNGY0YjA5Yzk4MjhlMTE2YzE5N2IzMzk5ZTRhZjBhNDFmMWYyZDdkNSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgy
IEBACisyMDE3LTAxLTA1ICBTcmluaXZhc2FuIFZpamF5YXJhZ2hhdmFuICA8c3ZpamF5YXJhZ2hh
dmFuQGFwcGxlLmNvbT4KKworICAgICAgICBFV1Mgc2hvdWxkIHJ1biBKYXZhU2NyaXB0Q29yZSB0
ZXN0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYy
NDU4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvZXdzLmpzb246IEFkZCBjb25maWcgaW5mbyBm
b3IgSlNDIEVXUy4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvcG9y
dHMucHk6IEFkZCBzdXBwb3J0IGZvciBKU0MgRVdTIGluIE1hYyBQb3J0LgorICAgICAgICAoRGVw
cmVjYXRlZFBvcnQuYnVpbGRfanNjX2NvbW1hbmQpOiBBZGRlZCAtIGNvbW1hbmQgdG8gYnVpbGQg
SlNDIG9ubHkgKHF1aWNrZXIgdGhhbiBidWlsZGluZyBhbGwgb2YgV2ViS2l0KS4KKyAgICAgICAg
KERlcHJlY2F0ZWRQb3J0LnJ1bl9qYXZhc2NyaXB0Y29yZV90ZXN0c19jb21tYW5kKTogQWxsb3cg
SlNDIEVXUyB0byBvbmx5IHJ1biBKU0MgdGVzdHMuCisgICAgICAgIChNYWNQb3J0LnJ1bl93ZWJr
aXRfdGVzdHNfY29tbWFuZCk6IENoZWNrIGZvciBKU0MuCisgICAgICAgICogU2NyaXB0cy93ZWJr
aXRweS9jb21tb24vbmV0L2pzY3Rlc3RyZXN1bHRzLnB5OiBBZGRlZC4KKyAgICAgICAgKEpTQ1Rl
c3RSZXN1bHRzKToKKyAgICAgICAgKEpTQ1Rlc3RSZXN1bHRzLnJlc3VsdHNfZnJvbV9zdHJpbmcp
OiBVc2UganNvbiBsaWJyYXJ5IHRvIHBhcnNlIHJlc3VsdHMuCisgICAgICAgIChKU0NUZXN0UmVz
dWx0cy5fX2luaXRfXyk6IEluaXRpYWxpemUgbWVtYmVycy4KKyAgICAgICAgKEpTQ1Rlc3RSZXN1
bHRzLl9fZXFfXyk6IFRoaXMgZW5hYmxlcyB1bml0IHRlc3RpbmcuCisgICAgICAgIChKU0NUZXN0
UmVzdWx0cy5zdHJlc3NfdGVzdF9mYWlsdXJlcyk6IEdldHRlci4KKyAgICAgICAgKEpTQ1Rlc3RS
ZXN1bHRzLmFsbF9hcGlfdGVzdHNfcGFzc2VkKTogR2V0dGVyLgorICAgICAgICAoSlNDVGVzdFJl
c3VsdHMuYWxsX3Bhc3NlZCk6IEdldHRlci4KKyAgICAgICAgKEpTQ1Rlc3RSZXN1bHRzLmZhaWxp
bmdfdGVzdF9yZXN1bHRzKTogR2V0dGVyLiBTb21lIG9mIHRoZXNlIGV4aXN0IGZvciBpbnRlcm9w
YWJpbGl0eSByZWFzb25zLgorICAgICAgICAoSlNDVGVzdFJlc3VsdHMudGVzdF9yZXN1bHRzKTog
R2V0dGVyLgorICAgICAgICAoSlNDVGVzdFJlc3VsdHMuZmFpbGluZ190ZXN0cyk6IEdldHRlci4K
KyAgICAgICAgKEpTQ1Rlc3RSZXN1bHRzLmRpZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xpbWl0KTog
R2V0dGVyLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvanNjZXdzX3VuaXR0
ZXN0LnB5OiBBZGRlZC4KKyAgICAgICAgKE1vY2tQYXRjaEFuYWx5c2lzVGFzayk6IE1vY2tlZC1v
dXQgdmVyc2lvbiBvZiBQYXRjaEFuYWx5c2lzVGFzayB0aGF0IGRvZXNuJ3QgcnVuIGNvbW1hbmRz
LgorICAgICAgICAoTW9ja1BhdGNoQW5hbHlzaXNUYXNrLl9faW5pdF9fKTogU2V0cyBhdHRyaWJ1
dGVzLgorICAgICAgICAoTW9ja1BhdGNoQW5hbHlzaXNUYXNrLl90ZXN0KTogT3ZlcnJpZGUgdG8g
bm90IHJ1biBjb21tYW5kLgorICAgICAgICAoTW9ja1BhdGNoQW5hbHlzaXNUYXNrLl9idWlsZF9h
bmRfdGVzdF93aXRob3V0X3BhdGNoKTogT3ZlcnJpZGUgdG8gbm90IHJ1biBjb21tYW5kLgorICAg
ICAgICAoTW9ja1BhdGNoQW5hbHlzaXNUYXNrLnZhbGlkYXRlKTogQXNzdW1lIG1vY2tlZCBwYXRj
aCBpcyB2YWxpZCBmb3IgcHVycG9zZXMgb2YgdGVzdGluZyByZXRyeSBsb2dpYy4KKyAgICAgICAg
KE1vY2tQYXRjaEFuYWx5c2lzVGFzay50ZXN0X3J1bl9jb3VudCk6IFNwZWNpZmljIHRvIHRoZSBt
b2NrZWQgdmVyc2lvbiwgdG8gdGVzdCByZXRyeSBsb2dpYy4KKyAgICAgICAgKE1vY2tKU0NFYXJs
eVdhcm5pbmdTeXN0ZW0pOiBNb2NrZWQtb3V0IHZlcnNpb24gb2YgQWJzdGFyY3RFYXJseVdhcm5p
bmdTeXN0ZW0gc28gd2UgY2FuIHByb3ZpZGUgdGVzdCByZXN1bHRzLgorICAgICAgICAoTW9ja0pT
Q0Vhcmx5V2FybmluZ1N5c3RlbS5fX2luaXRfXyk6IFNldHMgYXR0cmlidXRlcywgYWxzbyBzZXRz
IGdyb3VwIHRvIGpzYy4KKyAgICAgICAgKE1vY2tKU0NFYXJseVdhcm5pbmdTeXN0ZW0udGVzdF9y
ZXN1bHRzKTogUmV0dXJucyB0ZXN0IHJlc3VsdHMgcHJvdmlkZWQgYnkgdXMsIGluc3RlYWQgb2Yg
dXNpbmcgYSBKU09OIHJlYWRlci4KKyAgICAgICAgKEpTQ0Vhcmx5V2FybmluZ1N5c3RlbVRlc3Qp
OiBDbGFzcyB0byB0ZXN0IHJldHJ5IGxvZ2ljIGluIGJlbG93IHNpdHVhdGlvbnMuCisgICAgICAg
IChKU0NFYXJseVdhcm5pbmdTeXN0ZW1UZXN0Ll9jcmVhdGVfdGFzayk6IEhlbHBlciBmdW5jdGlv
biB0byBhYnN0cmFjdCBvdXQgY29tbW9uIGNvZGUuCisgICAgICAgIChKU0NFYXJseVdhcm5pbmdT
eXN0ZW1UZXN0LnRlc3Rfc3VjY2Vzc19jYXNlKTogQ2xlYW4gcGF0Y2ggb24gY2xlYW4gdHJlZS4K
KyAgICAgICAgKEpTQ0Vhcmx5V2FybmluZ1N5c3RlbVRlc3QudGVzdF90ZXN0X2ZhaWx1cmUpOiBG
YWlsZWQgcGF0Y2ggb24gY2xlYW4gdHJlZS4KKyAgICAgICAgKEpTQ0Vhcmx5V2FybmluZ1N5c3Rl
bVRlc3QudGVzdF9maXgpOiBQYXRjaCB0aGF0IGZpeGVzIGFsbCB0cmVlIHJlZG5lc3MuCisgICAg
ICAgIChKU0NFYXJseVdhcm5pbmdTeXN0ZW1UZXN0LnRlc3RfaW5lZmZlY3RpdmVfcGF0Y2gpOiBQ
YXRjaCB0aGF0IGhhcyBzYW1lIGZhaWx1cmVzIGFzIHRyZWUuCisgICAgICAgIChKU0NFYXJseVdh
cm5pbmdTeXN0ZW1UZXN0LnRlc3RfcGFydGlhbGx5X2VmZmVjdGl2ZV9wYXRjaCk6IFBhdGNoIGZp
eGVzIHNvbWUgZmFpbHVyZXMgYnV0IGFkZHMgbm8gbmV3IGZhaWx1cmVzLgorICAgICAgICAoSlND
RWFybHlXYXJuaW5nU3lzdGVtVGVzdC50ZXN0X2RpZmZlcmVudF90ZXN0X2ZhaWx1cmVzKTogUGF0
Y2ggdGhhdCBoYXMgc29tZSBmYWlsdXJlcyBub3QgcHJlc2VudCBpbiB0cmVlLgorICAgICAgICAq
IFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9qc2N0ZXN0cmVzdWx0c191bml0dGVzdC5weTog
QWRkZWQuCisgICAgICAgIChKU0NUZXN0UmVzdWx0c1Rlc3QpOiBDbGFzcyB0byB0ZXN0IEpTQ1Rl
c3RSZXN1bHRzLgorICAgICAgICAoSlNDVGVzdFJlc3VsdHNUZXN0LnRlc3RfcmVzdWx0c19mcm9t
X3N0cmluZyk6IFRlc3RzIHBhcnNpbmcuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29s
L2JvdC9qc2N0ZXN0cmVzdWx0c3JlYWRlci5weTogQWRkZWQuCisgICAgICAgIChKU0NUZXN0UmVz
dWx0c1JlYWRlcik6IFJlYWRzIHJlc3VsdHMgZmlsZS4KKyAgICAgICAgKEpTQ1Rlc3RSZXN1bHRz
UmVhZGVyLl9faW5pdF9fKTogU2V0cyBhdHRyaWJ1dGVzLgorICAgICAgICAoSlNDVGVzdFJlc3Vs
dHNSZWFkZXIuX3JlYWRfZmlsZV9jb250ZW50cyk6IFJlYWRzIGZpbGUuCisgICAgICAgIChKU0NU
ZXN0UmVzdWx0c1JlYWRlci5fY3JlYXRlX2pzY190ZXN0X3Jlc3VsdHMpOiBDcmVhdGVzIGEgSlND
VGVzdFJlc3VsdHMgb2JqZWN0LgorICAgICAgICAoSlNDVGVzdFJlc3VsdHNSZWFkZXIucmVzdWx0
cyk6IEludm9rZXMgX2NyZWF0ZV9qc2NfdGVzdF9yZXN1bHRzIHRvIHJldHVybiBhIEpTQ1Rlc3RS
ZXN1bHRzIG9iamVjdC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L3BhdGNo
YW5hbHlzaXN0YXNrLnB5OgorICAgICAgICAoUGF0Y2hBbmFseXNpc1Rhc2suX2J1aWxkKTogQ2hl
Y2sgZm9yIEpTQy4KKyAgICAgICAgKFBhdGNoQW5hbHlzaXNUYXNrLl9idWlsZF93aXRob3V0X3Bh
dGNoKTogQ2hlY2sgZm9yIEpTQy4KKyAgICAgICAgKFBhdGNoQW5hbHlzaXNUYXNrLl90ZXN0KTog
Q2hlY2sgZm9yIEpTQy4KKyAgICAgICAgKFBhdGNoQW5hbHlzaXNUYXNrLl9idWlsZF9hbmRfdGVz
dF93aXRob3V0X3BhdGNoKTogQ2hlY2sgZm9yIEpTQy4KKyAgICAgICAgKFBhdGNoQW5hbHlzaXNU
YXNrLl90ZXN0X3BhdGNoKTogQWRkIHJldHJ5IGxvZ2ljIGZvciBKU0MuCisgICAgICAgICogU2Ny
aXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Vhcmx5d2FybmluZ3N5c3RlbS5weToKKyAgICAg
ICAgKEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtLmJlZ2luX3dvcmtfcXVldWUpOiBVc2UgSlND
VGVzdFJlc3VsdHNSZWFkZXIgaW5zdGVhZCBvZiBMYXlvdXRUZXN0UmVzdWx0c1JlYWRlciBpbiBK
U0MgRVdTLgorICAgICAgICAoQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0udGVzdF9yZXN1bHRz
KTogX2xheW91dF90ZXN0X3Jlc3VsdHNfcmVhZGVyIC0+IF90ZXN0X3Jlc3VsdHNfcmVhZGVyLgor
ICAgICAgICAoQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0uYXJjaGl2ZV9sYXN0X3Rlc3RfcmVz
dWx0cyk6IF9sYXlvdXRfdGVzdF9yZXN1bHRzX3JlYWRlciAtPiBfdGVzdF9yZXN1bHRzX3JlYWRl
ci4KKyAgICAgICAgKEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtLmdyb3VwKTogVGhpcyBhdHRy
aWJ1dGUgZGV0ZXJtaW5lcyB0aGUgdHlwZSBvZiBFV1MgKGVnLiBKU0MpLgorICAgICAgICAoQWJz
dHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0ubG9hZF9ld3NfY2xhc3Nlcyk6IEFkZCBfZ3JvdXAuCisg
ICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Vhcmx5d2FybmluZ3N5c3Rl
bV91bml0dGVzdC5weToKKyAgICAgICAgKEVhcmx5V2FybmluZ1N5c3RlbVRlc3QuX2RlZmF1bHRf
ZXhwZWN0ZWRfbG9ncyk6IEFkZCBfZ3JvdXAuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90
b29sL3N0ZXBzL2J1aWxkLnB5OgorICAgICAgICAoQnVpbGQub3B0aW9ucyk6IENoZWNrIGZvciBK
U0MuCisgICAgICAgIChCdWlsZC5idWlsZCk6IENoZWNrIGZvciBKU0MuCisgICAgICAgIChCdWls
ZC5ydW4pOiBDaGVjayBmb3IgSlNDLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9z
dGVwcy9vcHRpb25zLnB5OgorICAgICAgICAoT3B0aW9ucyk6IEFkZCAtLWdyb3VwIGNvbW1hbmQg
bGluZSBvcHRpb24uCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3J1bnRl
c3RzLnB5OgorICAgICAgICAoUnVuVGVzdHMub3B0aW9ucyk6IEFkZCBncm91cC4KKyAgICAgICAg
KFJ1blRlc3RzLnJ1bik6IENoZWNrIGZvciBKU0MuCisgICAgICAgIChSdW5UZXN0cy5fcnVuX3dl
YmtpdF90ZXN0cyk6IENoZWNrIGZvciBKU0MuCisgICAgICAgIChSdW5UZXN0cyk6IEFkZCBfZ3Jv
dXAgYXR0cmlidXRlLgorICAgICAgICAoUnVuVGVzdHMuX3J1bl9qYXZhc2NyaXB0Y29yZV90ZXN0
cyk6IE5ldy4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvc3RlcHNfdW5p
dHRlc3QucHk6IENoYW5nZSBleHBlY3RlZCBjb21tYW5kIGZvciBydW5uaW5nIGpzYyB0ZXN0cy4K
KwogMjAxNi0wOS0yNSAgR3l1eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgW0VGTF0gQWRqdXN0IEVGTCBpbmRlbnRhdGlvbiB0byBFRkwgTWluaUJyb3dzZXIK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9ld3MuanNv
biBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9ld3MuanNvbgppbmRleCAz
NWQ0OTg1YWIwZjkzZDEyN2IzNzIxZTQ2MDFjZDZkODlkZmNjZjNjLi5lNTM0MGZlNWMzYzIxYWU4
MWFkMWVmN2UwM2Y3ZmI4MWYzODM5Y2ZmIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2NvbW1vbi9jb25maWcvZXdzLmpzb24KKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9j
b21tb24vY29uZmlnL2V3cy5qc29uCkBAIC01MCw1ICs1MCwxMSBAQAogICAgICAgICAicG9ydCI6
ICJtYWMiLAogICAgICAgICAibmFtZSI6ICJtYWMtMzJiaXQtZXdzIiwKICAgICAgICAgImFyY2hp
dGVjdHVyZSI6ICJpMzg2IgorICAgIH0sCisgICAgIkpTQyBFV1MiOiB7CisgICAgICAgICJwb3J0
IjogIm1hYyIsCisgICAgICAgICJuYW1lIjogImpzYy1ld3MiLAorICAgICAgICAiZ3JvdXAiOiAi
anNjIiwKKyAgICAgICAgInJ1blRlc3RzIjogdHJ1ZQogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9wb3J0cy5weSBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9wb3J0cy5weQppbmRleCBhMGQ1MGRjYjZlYTBiNWZk
ZTBiM2MxN2VmMTU5Y2VhZmVlMWEyZTk4Li40ZmNjODY4NDM2MjliMzYzNmI1Y2E0MDZiMzFjN2Fh
YjYwNjMwMmZhIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25m
aWcvcG9ydHMucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL3Bv
cnRzLnB5CkBAIC0xLDYgKzEsNiBAQAogIyBDb3B5cmlnaHQgKEMpIDIwMDksIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjIENvcHlyaWdodCAoQykgMjAxMyBOb2tpYSBDb3Jwb3Jh
dGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCi0jIENvcHlyaWdodCAoQykgMjAxNSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAxNS0yMDE2
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucyBhcmUKQEAgLTEwMyw4ICsxMDMsMTkgQEAgY2xhc3MgRGVwcmVjYXRlZFBvcnQob2JqZWN0
KToKICAgICAgICAgICAgIGNvbW1hbmQuYXBwZW5kKCItLXJlbGVhc2UiKQogICAgICAgICByZXR1
cm4gY29tbWFuZAogCi0gICAgZGVmIHJ1bl9qYXZhc2NyaXB0Y29yZV90ZXN0c19jb21tYW5kKHNl
bGYpOgotICAgICAgICByZXR1cm4gc2VsZi5zY3JpcHRfc2hlbGxfY29tbWFuZCgicnVuLWphdmFz
Y3JpcHRjb3JlLXRlc3RzIikKKyAgICBkZWYgYnVpbGRfanNjX2NvbW1hbmQoc2VsZiwgYnVpbGRf
c3R5bGU9Tm9uZSk6CisgICAgICAgIGNvbW1hbmQgPSBzZWxmLnNjcmlwdF9zaGVsbF9jb21tYW5k
KCJidWlsZC1qc2MiKQorICAgICAgICBpZiBidWlsZF9zdHlsZSA9PSAiZGVidWciOgorICAgICAg
ICAgICAgY29tbWFuZC5hcHBlbmQoIi0tZGVidWciKQorICAgICAgICByZXR1cm4gY29tbWFuZAor
CisgICAgZGVmIHJ1bl9qYXZhc2NyaXB0Y29yZV90ZXN0c19jb21tYW5kKHNlbGYsIGJ1aWxkX3N0
eWxlPU5vbmUpOgorICAgICAgICBjb21tYW5kID0gc2VsZi5zY3JpcHRfc2hlbGxfY29tbWFuZCgi
cnVuLWphdmFzY3JpcHRjb3JlLXRlc3RzIikKKyAgICAgICAgY29tbWFuZC5hcHBlbmQoIi0tbm8t
ZmFpbC1mYXN0IikKKyAgICAgICAgY29tbWFuZC5hcHBlbmQoIi0tanNvbi1vdXRwdXQ9anNjX3Rl
c3RfcmVzdWx0cy5qc29uIikKKyAgICAgICAgaWYgKGJ1aWxkX3N0eWxlID09ICJkZWJ1ZyIpOgor
ICAgICAgICAgICAgY29tbWFuZC5hcHBlbmQoIi0tZGVidWciKQorICAgICAgICByZXR1cm4gY29t
bWFuZAogCiAgICAgZGVmIHJ1bl93ZWJraXRfdGVzdHNfY29tbWFuZChzZWxmLCBidWlsZF9zdHls
ZT1Ob25lKToKICAgICAgICAgY29tbWFuZCA9IHNlbGYuc2NyaXB0X3NoZWxsX2NvbW1hbmQoInJ1
bi13ZWJraXQtdGVzdHMiKQpAQCAtMTUwLDcgKzE2MSwxMCBAQCBjbGFzcyBJT1NTaW11bGF0b3JX
SzJQb3J0KERlcHJlY2F0ZWRQb3J0KToKIGNsYXNzIE1hY1BvcnQoRGVwcmVjYXRlZFBvcnQpOgog
ICAgIHBvcnRfZmxhZ19uYW1lID0gIm1hYyIKIAotICAgIGRlZiBydW5fd2Via2l0X3Rlc3RzX2Nv
bW1hbmQoc2VsZiwgYnVpbGRfc3R5bGU9Tm9uZSk6CisgICAgZGVmIHJ1bl93ZWJraXRfdGVzdHNf
Y29tbWFuZChzZWxmLCBidWlsZF9zdHlsZT1Ob25lLCB0ZXN0X3N1aXRlPU5vbmUpOgorICAgICAg
ICBpZiAodGVzdF9zdWl0ZSA9PSAianNjIik6CisgICAgICAgICAgICByZXR1cm4gc3VwZXIoTWFj
UG9ydCwgc2VsZikucnVuX2phdmFzY3JpcHRjb3JlX3Rlc3RzX2NvbW1hbmQoYnVpbGRfc3R5bGUp
CisKICAgICAgICAgY29tbWFuZCA9IHN1cGVyKE1hY1BvcnQsIHNlbGYpLnJ1bl93ZWJraXRfdGVz
dHNfY29tbWFuZChidWlsZF9zdHlsZSkKICAgICAgICAgY29tbWFuZC5hcHBlbmQoIi0tZHVtcC1y
ZW5kZXItdHJlZSIpCiAgICAgICAgIHJldHVybiBjb21tYW5kCmRpZmYgLS1naXQgYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvanNjdGVzdHJlc3VsdHMucHkgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvanNjdGVzdHJlc3VsdHMucHkKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTk2
MDE1OWVjNjFlM2YyN2FlYTA4ZDljZjRhNGFjMDU0ZjM4YjNhNwotLS0gL2Rldi9udWxsCisrKyBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9qc2N0ZXN0cmVzdWx0cy5weQpAQCAt
MCwwICsxLDcyIEBACisjIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4g
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAg
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyMgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElN
UExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorIyBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMCisjIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisjIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisjIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksCisjIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK2lt
cG9ydCBqc29uCitpbXBvcnQgbG9nZ2luZworCitfbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoX19u
YW1lX18pCisKKworY2xhc3MgSlNDVGVzdFJlc3VsdHMob2JqZWN0KToKKyAgICBAY2xhc3NtZXRo
b2QKKyAgICBkZWYgcmVzdWx0c19mcm9tX3N0cmluZyhjbHMsIHN0cmluZyk6CisgICAgICAgIGlm
IG5vdCBzdHJpbmc6CisgICAgICAgICAgICByZXR1cm4gTm9uZQorICAgICAgICBwYXJzZWRfcmVz
dWx0cyA9IGpzb24ubG9hZHMoc3RyaW5nKQorCisgICAgICAgIHJldHVybiBjbHMocGFyc2VkX3Jl
c3VsdHNbJ2FsbEFwaVRlc3RzUGFzc2VkJ10sIHBhcnNlZF9yZXN1bHRzWydzdHJlc3NUZXN0RmFp
bHVyZXMnXSkKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBhbGxfYXBpX3Rlc3RzX3Bhc3NlZCwg
c3RyZXNzX3Rlc3RfZmFpbHVyZXMpOgorICAgICAgICBzZWxmLl9hbGxfYXBpX3Rlc3RzX3Bhc3Nl
ZCA9IGFsbF9hcGlfdGVzdHNfcGFzc2VkCisgICAgICAgIHNlbGYuX3N0cmVzc190ZXN0X2ZhaWx1
cmVzID0gc3RyZXNzX3Rlc3RfZmFpbHVyZXMKKworICAgICAgICBzZWxmLl90ZXN0X3Jlc3VsdHMg
PSBzdHJlc3NfdGVzdF9mYWlsdXJlcworICAgICAgICBpZiBzZWxmLl9hbGxfYXBpX3Rlc3RzX3Bh
c3NlZCA9PSBGYWxzZToKKyAgICAgICAgICAgIHNlbGYuX3Rlc3RfcmVzdWx0cyArPSAiYXBpVGVz
dHMiCisKKyAgICBkZWYgX19lcV9fKHNlbGYsIG90aGVyKToKKyAgICAgICAgcmV0dXJuIHNlbGYu
X2FsbF9hcGlfdGVzdHNfcGFzc2VkID09IG90aGVyLl9hbGxfYXBpX3Rlc3RzX3Bhc3NlZCBhbmQg
c2V0KHNlbGYuX3N0cmVzc190ZXN0X2ZhaWx1cmVzKSA9PSBzZXQob3RoZXIuX3N0cmVzc190ZXN0
X2ZhaWx1cmVzKQorCisgICAgZGVmIF9fbGVfXyhzZWxmLCBvdGhlcik6CisgICAgICAgIHJldHVy
biBzZXQoc2VsZi50ZXN0X3Jlc3VsdHMoKSkgPD0gc2V0KG90aGVyLnRlc3RfcmVzdWx0cygpKQor
CisgICAgZGVmIHN0cmVzc190ZXN0X2ZhaWx1cmVzKHNlbGYpOgorICAgICAgICByZXR1cm4gc2Vs
Zi5fc3RyZXNzX3Rlc3RfZmFpbHVyZXMKKworICAgIGRlZiBhbGxfYXBpX3Rlc3RzX3Bhc3NlZChz
ZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX2FsbF9hcGlfdGVzdHNfcGFzc2VkCisKKyAgICBk
ZWYgYWxsX3Bhc3NlZChzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX2FsbF9hcGlfdGVzdHNf
cGFzc2VkID09IFRydWUgYW5kIGxlbihzZWxmLl9zdHJlc3NfdGVzdF9mYWlsdXJlcykgPT0gMAor
CisgICAgZGVmIGZhaWxpbmdfdGVzdF9yZXN1bHRzKHNlbGYpOgorICAgICAgICByZXR1cm4gc2Vs
Zi5zdHJlc3NfdGVzdF9mYWlsdXJlcygpCisKKyAgICBkZWYgdGVzdF9yZXN1bHRzKHNlbGYpOgor
ICAgICAgICByZXR1cm4gc2VsZi5fdGVzdF9yZXN1bHRzCisKKyAgICBkZWYgZmFpbGluZ190ZXN0
cyhzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX3Rlc3RfcmVzdWx0cworCisgICAgIyBObyBk
ZWZpbmVkIGZhaWx1cmUgbGltaXQgZm9yIEpTQworICAgIGRlZiBkaWRfZXhjZWVkX3Rlc3RfZmFp
bHVyZV9saW1pdChzZWxmKToKKyAgICAgICAgcmV0dXJuIEZhbHNlCmRpZmYgLS1naXQgYS9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvanNjdGVzdHJlc3VsdHNfdW5pdHRlc3QucHkg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvanNjdGVzdHJlc3VsdHNfdW5pdHRl
c3QucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYTFlNDlmZGNjYzYxZGE3ZGFmMTBlMzNmY2E0ZGJmZmQ0MmU1Y2Q2
OAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9q
c2N0ZXN0cmVzdWx0c191bml0dGVzdC5weQpAQCAtMCwwICsxLDQwIEBACisjIENvcHlyaWdodCAo
QykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
IyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJyBBTkQKKyMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUgorIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisjIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisj
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSCisjIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisjIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK2ltcG9ydCB1bml0dGVzdAorCitmcm9tIHdlYmtp
dHB5LmNvbW1vbi5uZXQuanNjdGVzdHJlc3VsdHMgaW1wb3J0IEpTQ1Rlc3RSZXN1bHRzCisKKwor
Y2xhc3MgSlNDVGVzdFJlc3VsdHNUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICBkZWYgdGVz
dF9yZXN1bHRzX2Zyb21fc3RyaW5nKHNlbGYpOgorICAgICAgICBub19mYWlsdXJlc19zdHJpbmcg
PSAneyJhbGxBcGlUZXN0c1Bhc3NlZCI6IHRydWUsICJzdHJlc3NUZXN0RmFpbHVyZXMiOltdfScK
KyAgICAgICAgbm9fZmFpbHVyZXNfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFtdKQor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG5vX2ZhaWx1cmVzX3Jlc3VsdHMsIEpTQ1Rlc3RSZXN1
bHRzLnJlc3VsdHNfZnJvbV9zdHJpbmcobm9fZmFpbHVyZXNfc3RyaW5nKSkKKworICAgICAgICBh
cGlfdGVzdF9mYWlsdXJlc19zdHJpbmcgPSAneyJhbGxBcGlUZXN0c1Bhc3NlZCI6IGZhbHNlLCAi
c3RyZXNzVGVzdEZhaWx1cmVzIjpbXX0nCisgICAgICAgIGFwaV90ZXN0X2ZhaWx1cmVzX3Jlc3Vs
dHMgPSBKU0NUZXN0UmVzdWx0cyhGYWxzZSwgW10pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
YXBpX3Rlc3RfZmFpbHVyZXNfcmVzdWx0cywgSlNDVGVzdFJlc3VsdHMucmVzdWx0c19mcm9tX3N0
cmluZyhhcGlfdGVzdF9mYWlsdXJlc19zdHJpbmcpKQorCisgICAgICAgIG1hbnlfZmFpbHVyZXNf
c3RyaW5nID0gJ3siYWxsQXBpVGVzdHNQYXNzZWQiOiBmYWxzZSwgInN0cmVzc1Rlc3RGYWlsdXJl
cyI6WyJlczYueWFtbC9lczYvdHlwZWRfYXJyYXlzX0ludDE2QXJyYXkuanMuZGVmYXVsdCIsICJl
czYueWFtbC9lczYvdHlwZWRfYXJyYXlzX0ludDhBcnJheS5qcy5kZWZhdWx0Il19JworICAgICAg
ICBtYW55X2ZhaWx1cmVzX3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhGYWxzZSwgWyJlczYueWFt
bC9lczYvdHlwZWRfYXJyYXlzX0ludDE2QXJyYXkuanMuZGVmYXVsdCIsICJlczYueWFtbC9lczYv
dHlwZWRfYXJyYXlzX0ludDhBcnJheS5qcy5kZWZhdWx0Il0pCisgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwobWFueV9mYWlsdXJlc19yZXN1bHRzLCBKU0NUZXN0UmVzdWx0cy5yZXN1bHRzX2Zyb21f
c3RyaW5nKG1hbnlfZmFpbHVyZXNfc3RyaW5nKSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvdG9vbC9ib3QvanNjZXdzX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS90b29sL2JvdC9qc2Nld3NfdW5pdHRlc3QucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmFmNmVmZjZhYzY1
YTQ5MmJjOTJlMGRlZjkzMTY0ZmZiYmYxZGI4YwotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvanNjZXdzX3VuaXR0ZXN0LnB5CkBAIC0wLDAgKzEsMTM2
IEBACisjIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisj
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorIyBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisjIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SCisjIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisjIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksCisjIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK2ltcG9ydCBsb2dn
aW5nCitpbXBvcnQgdW5pdHRlc3QKKworZnJvbSB3ZWJraXRweS5jb21tb24ubmV0LmpzY3Rlc3Ry
ZXN1bHRzIGltcG9ydCBKU0NUZXN0UmVzdWx0cworZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVt
LmV4ZWN1dGl2ZSBpbXBvcnQgU2NyaXB0RXJyb3IKK2Zyb20gd2Via2l0cHkudG9vbC5ib3QucGF0
Y2hhbmFseXNpc3Rhc2sgaW1wb3J0ICoKK2Zyb20gd2Via2l0cHkudG9vbC5jb21tYW5kcy5lYXJs
eXdhcm5pbmdzeXN0ZW0gaW1wb3J0IEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtCitmcm9tIHdl
YmtpdHB5LnRvb2wubW9ja3Rvb2wgaW1wb3J0IE1vY2tUb29sCisKK19sb2cgPSBsb2dnaW5nLmdl
dExvZ2dlcihfX25hbWVfXykKKworCitjbGFzcyBNb2NrUGF0Y2hBbmFseXNpc1Rhc2soUGF0Y2hB
bmFseXNpc1Rhc2spOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBkZWxlZ2F0ZSwgcGF0Y2gsIGZp
cnN0X3Rlc3RfYWxsX3Bhc3NlZCk6CisgICAgICAgIHNlbGYuX2RlbGVnYXRlID0gZGVsZWdhdGUK
KyAgICAgICAgc2VsZi5fcGF0Y2ggPSBwYXRjaAorICAgICAgICBzZWxmLl9zY3JpcHRfZXJyb3Ig
PSBOb25lCisgICAgICAgIHNlbGYuX3Jlc3VsdHNfYXJjaGl2ZV9mcm9tX3BhdGNoX3Rlc3RfcnVu
ID0gTm9uZQorICAgICAgICBzZWxmLl9yZXN1bHRzX2Zyb21fcGF0Y2hfdGVzdF9ydW4gPSBOb25l
CisgICAgICAgIHNlbGYuZXJyb3IgPSBOb25lCisgICAgICAgIHNlbGYuX2ZpcnN0X3Rlc3RfYWxs
X3Bhc3NlZCA9IGZpcnN0X3Rlc3RfYWxsX3Bhc3NlZAorICAgICAgICBzZWxmLl90ZXN0X3J1bl9j
b3VudCA9IDAKKworICAgIGRlZiBfdGVzdChzZWxmKToKKyAgICAgICAgc2VsZi5fdGVzdF9ydW5f
Y291bnQgKz0gMQorCisgICAgICAgIGlmIHNlbGYuX2ZpcnN0X3Rlc3RfYWxsX3Bhc3NlZCA9PSBU
cnVlOgorICAgICAgICAgICAgcmV0dXJuIFRydWUKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAg
IHNlbGYuX3NjcmlwdF9lcnJvciA9IFNjcmlwdEVycm9yKCJFeHBlY3RlZCBmYWlsdXJlIGluIHJl
Z3Jlc3Npb24gdGVzdCIpCisgICAgICAgICAgICByZXR1cm4gRmFsc2UKKworICAgIGRlZiBfYnVp
bGRfYW5kX3Rlc3Rfd2l0aG91dF9wYXRjaChzZWxmKToKKyAgICAgICAgc2VsZi5fdGVzdF9ydW5f
Y291bnQgKz0gMQorICAgICAgICByZXR1cm4gVHJ1ZQorCisgICAgZGVmIHZhbGlkYXRlKHNlbGYp
OgorICAgICAgICByZXR1cm4gVHJ1ZQorCisgICAgZGVmIHRlc3RfcnVuX2NvdW50KHNlbGYpOgor
ICAgICAgICByZXR1cm4gc2VsZi5fdGVzdF9ydW5fY291bnQKKworCisjIFRoaXMgaXMgdGhlIGRl
bGVnYXRlIHRvIGJlIHVzZWQgd2l0aCBNb2NrUGF0Y2hBbmFseXNpc1Rhc2ssIGFib3ZlLgorY2xh
c3MgTW9ja0pTQ0Vhcmx5V2FybmluZ1N5c3RlbShBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbSk6
CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGZpcnN0X3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9y
ZXN1bHRzKToKKyAgICAgICAgQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0uX19pbml0X18oc2Vs
ZikKKyAgICAgICAgc2VsZi5fZ3JvdXAgPSAianNjIgorICAgICAgICBzZWxmLl9yZXN1bHRzX2lu
X29yZGVyID0gW2NsZWFuX3Rlc3RfcmVzdWx0cywgZmlyc3RfdGVzdF9yZXN1bHRzXQorCisgICAg
ZGVmIHRlc3RfcmVzdWx0cyhzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX3Jlc3VsdHNfaW5f
b3JkZXIucG9wKCkKKworCitjbGFzcyBKU0NFYXJseVdhcm5pbmdTeXN0ZW1UZXN0KHVuaXR0ZXN0
LlRlc3RDYXNlKToKKyAgICBkZWYgX2NyZWF0ZV90YXNrKHNlbGYsIGZpcnN0X3Rlc3RfcmVzdWx0
cywgY2xlYW5fdGVzdF9yZXN1bHRzKToKKyAgICAgICAgcXVldWUgPSBNb2NrSlNDRWFybHlXYXJu
aW5nU3lzdGVtKGZpcnN0X3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKQorICAgICAg
ICB0b29sID0gTW9ja1Rvb2wobG9nX2V4ZWN1dGl2ZT1UcnVlKQorICAgICAgICBwYXRjaCA9IHRv
b2wuYnVncy5mZXRjaF9hdHRhY2htZW50KDEwMDAwKQorICAgICAgICByZXR1cm4gTW9ja1BhdGNo
QW5hbHlzaXNUYXNrKHF1ZXVlLCBwYXRjaCwgZmlyc3RfdGVzdF9yZXN1bHRzLmFsbF9wYXNzZWQo
KSkKKworICAgIGRlZiB0ZXN0X3N1Y2Nlc3NfY2FzZShzZWxmKToKKyAgICAgICAgZmlyc3RfdGVz
dF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgW10pCisgICAgICAgIGNsZWFuX3Rlc3Rf
cmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFtdKQorICAgICAgICB0YXNrID0gc2VsZi5f
Y3JlYXRlX3Rhc2soZmlyc3RfdGVzdF9yZXN1bHRzLCBjbGVhbl90ZXN0X3Jlc3VsdHMpCisKKyAg
ICAgICAgcmV0dXJuX3ZhbHVlID0gdGFzay5fdGVzdF9wYXRjaCgpCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwodGFzay50ZXN0X3J1bl9jb3VudCgpLCAxKQorICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKHJldHVybl92YWx1ZSwgVHJ1ZSkKKworICAgIGRlZiB0ZXN0X3Rlc3RfZmFpbHVyZShzZWxm
KToKKyAgICAgICAgZmlyc3RfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgWydG
YWlsLmpzJ10pCisgICAgICAgIGNsZWFuX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRy
dWUsIFtdKQorICAgICAgICB0YXNrID0gc2VsZi5fY3JlYXRlX3Rhc2soZmlyc3RfdGVzdF9yZXN1
bHRzLCBjbGVhbl90ZXN0X3Jlc3VsdHMpCisKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNl
cyhTY3JpcHRFcnJvcik6CisgICAgICAgICAgICByZXR1cm5fdmFsdWUgPSB0YXNrLl90ZXN0X3Bh
dGNoKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0YXNrLnRlc3RfcnVuX2NvdW50KCksIDIp
CisKKyAgICBkZWYgdGVzdF9maXgoc2VsZik6CisgICAgICAgIGZpcnN0X3Rlc3RfcmVzdWx0cyA9
IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFtdKQorICAgICAgICBjbGVhbl90ZXN0X3Jlc3VsdHMgPSBK
U0NUZXN0UmVzdWx0cyhUcnVlLCBbJ0ZhaWwuanMnXSkKKyAgICAgICAgdGFzayA9IHNlbGYuX2Ny
ZWF0ZV90YXNrKGZpcnN0X3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKQorCisgICAg
ICAgIHJldHVybl92YWx1ZSA9IHRhc2suX3Rlc3RfcGF0Y2goKQorICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKHRhc2sudGVzdF9ydW5fY291bnQoKSwgMSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChyZXR1cm5fdmFsdWUsIFRydWUpCisKKyAgICBkZWYgdGVzdF9pbmVmZmVjdGl2ZV9wYXRjaChz
ZWxmKToKKyAgICAgICAgZmlyc3RfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoRmFsc2Us
IFsnZmFpbHVyZTEuanMnLCAnZmFpbHVyZTIuanMnXSkKKyAgICAgICAgY2xlYW5fdGVzdF9yZXN1
bHRzID0gSlNDVGVzdFJlc3VsdHMoRmFsc2UsIFsnZmFpbHVyZTEuanMnLCAnZmFpbHVyZTIuanMn
XSkKKyAgICAgICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90YXNrKGZpcnN0X3Rlc3RfcmVzdWx0cywg
Y2xlYW5fdGVzdF9yZXN1bHRzKQorCisgICAgICAgIHJldHVybl92YWx1ZSA9IHRhc2suX3Rlc3Rf
cGF0Y2goKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRhc2sudGVzdF9ydW5fY291bnQoKSwg
MikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXR1cm5fdmFsdWUsIFRydWUpCisKKyAgICBk
ZWYgdGVzdF9wYXJ0aWFsbHlfZWZmZWN0aXZlX3BhdGNoKHNlbGYpOgorICAgICAgICBmaXJzdF90
ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbJ2ZhaWx1cmUyLmpzJ10pCisgICAg
ICAgIGNsZWFuX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKEZhbHNlLCBbJ2ZhaWx1cmUx
LmpzJywgJ2ZhaWx1cmUyLmpzJ10pCisgICAgICAgIHRhc2sgPSBzZWxmLl9jcmVhdGVfdGFzayhm
aXJzdF90ZXN0X3Jlc3VsdHMsIGNsZWFuX3Rlc3RfcmVzdWx0cykKKworICAgICAgICByZXR1cm5f
dmFsdWUgPSB0YXNrLl90ZXN0X3BhdGNoKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0YXNr
LnRlc3RfcnVuX2NvdW50KCksIDIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmV0dXJuX3Zh
bHVlLCBUcnVlKQorCisgICAgZGVmIHRlc3RfZGlmZmVyZW50X3Rlc3RfZmFpbHVyZXMoc2VsZik6
CisgICAgICAgIGZpcnN0X3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKEZhbHNlLCBbXSkK
KyAgICAgICAgY2xlYW5fdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgWydmYWls
dXJlMS5qcycsICdmYWlsdXJlMi5qcyddKQorICAgICAgICB0YXNrID0gc2VsZi5fY3JlYXRlX3Rh
c2soZmlyc3RfdGVzdF9yZXN1bHRzLCBjbGVhbl90ZXN0X3Jlc3VsdHMpCisKKyAgICAgICAgd2l0
aCBzZWxmLmFzc2VydFJhaXNlcyhTY3JpcHRFcnJvcik6CisgICAgICAgICAgICByZXR1cm5fdmFs
dWUgPSB0YXNrLl90ZXN0X3BhdGNoKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0YXNrLnRl
c3RfcnVuX2NvdW50KCksIDIpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rv
b2wvYm90L2pzY3Rlc3RyZXN1bHRzcmVhZGVyLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90
b29sL2JvdC9qc2N0ZXN0cmVzdWx0c3JlYWRlci5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZDI5M2I0NjE2ZWJj
M2QxNDBiM2U4NTliM2Y0MTU2NjIxNTIzZTEwCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS90b29sL2JvdC9qc2N0ZXN0cmVzdWx0c3JlYWRlci5weQpAQCAtMCwwICsx
LDQ3IEBACisjIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyMgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQK
KyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorIyBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisj
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SCisjIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisjIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksCisjIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK2ltcG9ydCBs
b2dnaW5nCitpbXBvcnQganNvbgorZnJvbSB3ZWJraXRweS5jb21tb24ubmV0LmpzY3Rlc3RyZXN1
bHRzIGltcG9ydCBKU0NUZXN0UmVzdWx0cworCitfbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoX19u
YW1lX18pCisKKworY2xhc3MgSlNDVGVzdFJlc3VsdHNSZWFkZXIob2JqZWN0KToKKyAgICBkZWYg
X19pbml0X18oc2VsZiwgaG9zdCwgcmVzdWx0c19kaXJlY3RvcnkpOgorICAgICAgICBzZWxmLl9o
b3N0ID0gaG9zdAorICAgICAgICBzZWxmLl9yZXN1bHRzX2RpcmVjdG9yeSA9IHJlc3VsdHNfZGly
ZWN0b3J5CisKKyAgICBkZWYgX3JlYWRfZmlsZV9jb250ZW50cyhzZWxmLCBwYXRoKToKKyAgICAg
ICAgdHJ5OgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuX2hvc3QuZmlsZXN5c3RlbS5yZWFkX3Rl
eHRfZmlsZShwYXRoKQorICAgICAgICBleGNlcHQgSU9FcnJvciwgZTogICMgRmlsZSBkb2VzIG5v
dCBleGlzdCBvciBjYW4ndCBiZSByZWFkLgorICAgICAgICAgICAgcmV0dXJuIE5vbmUKKworICAg
IGRlZiBfY3JlYXRlX2pzY190ZXN0X3Jlc3VsdHMoc2VsZik6CisgICAgICAgIHJlc3VsdHNfcGF0
aCA9IHNlbGYuX2hvc3QuZmlsZXN5c3RlbS5qb2luKHNlbGYuX3Jlc3VsdHNfZGlyZWN0b3J5LCAi
anNjX3Rlc3RfcmVzdWx0cy5qc29uIikKKyAgICAgICAgY29udGVudHMgPSBzZWxmLl9yZWFkX2Zp
bGVfY29udGVudHMocmVzdWx0c19wYXRoKQorICAgICAgICByZXR1cm4gSlNDVGVzdFJlc3VsdHMu
cmVzdWx0c19mcm9tX3N0cmluZyhjb250ZW50cykKKworICAgIGRlZiByZXN1bHRzKHNlbGYpOgor
ICAgICAgICByZXR1cm4gc2VsZi5fY3JlYXRlX2pzY190ZXN0X3Jlc3VsdHMoKQpkaWZmIC0tZ2l0
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9wYXRjaGFuYWx5c2lzdGFzay5weSBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvcGF0Y2hhbmFseXNpc3Rhc2sucHkKaW5k
ZXggNzUyMzE2NDE2YzVmOWQwYTNlNTllZjZkMDVlMzE3ODVmOTE3NDYyOS4uYjZhNjJmNmIzYWNl
OWY5YjEwYmRlMTdkN2NhZWEwMzYwYTk4NDQzYyAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS90b29sL2JvdC9wYXRjaGFuYWx5c2lzdGFzay5weQorKysgYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L3Rvb2wvYm90L3BhdGNoYW5hbHlzaXN0YXNrLnB5CkBAIC0xLDQgKzEsNSBAQAog
IyBDb3B5cmlnaHQgKGMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMg
Q29weXJpZ2h0IChjKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMg
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTEyMywyNyArMTI0LDM5IEBAIGNsYXNzIFBh
dGNoQW5hbHlzaXNUYXNrKG9iamVjdCk6CiAgICAgICAgICJQYXRjaCBkb2VzIG5vdCBhcHBseSIp
CiAKICAgICBkZWYgX2J1aWxkKHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi5fcnVuX2NvbW1h
bmQoWworICAgICAgICBhcmdzID0gWwogICAgICAgICAgICAgImJ1aWxkIiwKICAgICAgICAgICAg
ICItLW5vLWNsZWFuIiwKICAgICAgICAgICAgICItLW5vLXVwZGF0ZSIsCiAgICAgICAgICAgICAi
LS1idWlsZC1zdHlsZT0lcyIgJSBzZWxmLl9kZWxlZ2F0ZS5idWlsZF9zdHlsZSgpLAotICAgICAg
ICBdLAotICAgICAgICAiQnVpbHQgcGF0Y2giLAotICAgICAgICAiUGF0Y2ggZG9lcyBub3QgYnVp
bGQiKQorICAgICAgICBdCisKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgYXJncy5hcHBlbmQo
Ii0tZ3JvdXA9JXMiICUgc2VsZi5fZGVsZWdhdGUuZ3JvdXAoKSkKKyAgICAgICAgZmluYWxseToK
KyAgICAgICAgICAgIHJldHVybiBzZWxmLl9ydW5fY29tbWFuZCgKKyAgICAgICAgICAgICAgICBh
cmdzLAorICAgICAgICAgICAgICAgICJCdWlsdCBwYXRjaCIsCisgICAgICAgICAgICAgICAgIlBh
dGNoIGRvZXMgbm90IGJ1aWxkIikKIAogICAgIGRlZiBfYnVpbGRfd2l0aG91dF9wYXRjaChzZWxm
KToKLSAgICAgICAgcmV0dXJuIHNlbGYuX3J1bl9jb21tYW5kKFsKKyAgICAgICAgYXJncyA9IFsK
ICAgICAgICAgICAgICJidWlsZCIsCiAgICAgICAgICAgICAiLS1mb3JjZS1jbGVhbiIsCiAgICAg
ICAgICAgICAiLS1uby11cGRhdGUiLAogICAgICAgICAgICAgIi0tYnVpbGQtc3R5bGU9JXMiICUg
c2VsZi5fZGVsZWdhdGUuYnVpbGRfc3R5bGUoKSwKLSAgICAgICAgXSwKLSAgICAgICAgIkFibGUg
dG8gYnVpbGQgd2l0aG91dCBwYXRjaCIsCi0gICAgICAgICJVbmFibGUgdG8gYnVpbGQgd2l0aG91
dCBwYXRjaCIpCisgICAgICAgIF0KKworICAgICAgICB0cnk6CisgICAgICAgICAgICBhcmdzLmFw
cGVuZCgiLS1ncm91cD0lcyIgJSBzZWxmLl9kZWxlZ2F0ZS5ncm91cCgpKQorICAgICAgICBmaW5h
bGx5OgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuX3J1bl9jb21tYW5kKAorICAgICAgICAgICAg
ICAgIGFyZ3MsCisgICAgICAgICAgICAgICAgIkFibGUgdG8gYnVpbGQgd2l0aG91dCBwYXRjaCIs
CisgICAgICAgICAgICAgICAgIlVuYWJsZSB0byBidWlsZCB3aXRob3V0IHBhdGNoIikKIAogICAg
IGRlZiBfdGVzdChzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYuX3J1bl9jb21tYW5kKFsKKyAg
ICAgICAgYXJncyA9IFsKICAgICAgICAgICAgICJidWlsZC1hbmQtdGVzdCIsCiAgICAgICAgICAg
ICAiLS1uby1jbGVhbiIsCiAgICAgICAgICAgICAiLS1uby11cGRhdGUiLApAQCAtMTUxLDEyICsx
NjQsMTggQEAgY2xhc3MgUGF0Y2hBbmFseXNpc1Rhc2sob2JqZWN0KToKICAgICAgICAgICAgICIt
LXRlc3QiLAogICAgICAgICAgICAgIi0tbm9uLWludGVyYWN0aXZlIiwKICAgICAgICAgICAgICIt
LWJ1aWxkLXN0eWxlPSVzIiAlIHNlbGYuX2RlbGVnYXRlLmJ1aWxkX3N0eWxlKCksCi0gICAgICAg
IF0sCi0gICAgICAgICJQYXNzZWQgdGVzdHMiLAotICAgICAgICAiUGF0Y2ggZG9lcyBub3QgcGFz
cyB0ZXN0cyIpCisgICAgICAgIF0KKworICAgICAgICB0cnk6CisgICAgICAgICAgICBhcmdzLmFw
cGVuZCgiLS1ncm91cD0lcyIgJSBzZWxmLl9kZWxlZ2F0ZS5ncm91cCgpKQorICAgICAgICBmaW5h
bGx5OgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuX3J1bl9jb21tYW5kKAorICAgICAgICAgICAg
ICAgIGFyZ3MsCisgICAgICAgICAgICAgICAgIlBhc3NlZCB0ZXN0cyIsCisgICAgICAgICAgICAg
ICAgIlBhdGNoIGRvZXMgbm90IHBhc3MgdGVzdHMiKQogCiAgICAgZGVmIF9idWlsZF9hbmRfdGVz
dF93aXRob3V0X3BhdGNoKHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi5fcnVuX2NvbW1hbmQo
WworICAgICAgICBhcmdzID0gWwogICAgICAgICAgICAgImJ1aWxkLWFuZC10ZXN0IiwKICAgICAg
ICAgICAgICItLWZvcmNlLWNsZWFuIiwKICAgICAgICAgICAgICItLW5vLXVwZGF0ZSIsCkBAIC0x
NjQsOSArMTgzLDE1IEBAIGNsYXNzIFBhdGNoQW5hbHlzaXNUYXNrKG9iamVjdCk6CiAgICAgICAg
ICAgICAiLS10ZXN0IiwKICAgICAgICAgICAgICItLW5vbi1pbnRlcmFjdGl2ZSIsCiAgICAgICAg
ICAgICAiLS1idWlsZC1zdHlsZT0lcyIgJSBzZWxmLl9kZWxlZ2F0ZS5idWlsZF9zdHlsZSgpLAot
ICAgICAgICBdLAotICAgICAgICAiQWJsZSB0byBwYXNzIHRlc3RzIHdpdGhvdXQgcGF0Y2giLAot
ICAgICAgICAiVW5hYmxlIHRvIHBhc3MgdGVzdHMgd2l0aG91dCBwYXRjaCAodHJlZSBpcyByZWQ/
KSIpCisgICAgICAgIF0KKworICAgICAgICB0cnk6CisgICAgICAgICAgICBhcmdzLmFwcGVuZCgi
LS1ncm91cD0lcyIgJSBzZWxmLl9kZWxlZ2F0ZS5ncm91cCgpKQorICAgICAgICBmaW5hbGx5Ogor
ICAgICAgICAgICAgcmV0dXJuIHNlbGYuX3J1bl9jb21tYW5kKAorICAgICAgICAgICAgICAgIGFy
Z3MsCisgICAgICAgICAgICAgICAgIkFibGUgdG8gcGFzcyB0ZXN0cyB3aXRob3V0IHBhdGNoIiwK
KyAgICAgICAgICAgICAgICAiVW5hYmxlIHRvIHBhc3MgdGVzdHMgd2l0aG91dCBwYXRjaCAodHJl
ZSBpcyByZWQ/KSIpCiAKICAgICBkZWYgX2xhbmQoc2VsZik6CiAgICAgICAgICMgVW5jbGVhciBp
ZiB0aGlzIHNob3VsZCBwYXNzIC0tcXVpZXQgb3Igbm90LiAgSWYgLS1wYXJlbnQtY29tbWFuZCBh
bHdheXMgZG9lcyB0aGUgcmVwb3J0aW5nLCB0aGVuIGl0IHNob3VsZC4KQEAgLTIxMCw2OSArMjM1
LDg1IEBAIGNsYXNzIFBhdGNoQW5hbHlzaXNUYXNrKG9iamVjdCk6CiAgICAgICAgIGlmIHNlbGYu
X3Rlc3QoKToKICAgICAgICAgICAgIHJldHVybiBUcnVlCiAKLSAgICAgICAgIyBOb3RlOiBhcmNo
aXZlX2xhc3RfdGVzdF9yZXN1bHRzIGRlbGV0ZXMgdGhlIHJlc3VsdHMgZGlyZWN0b3J5LCBtYWtp
bmcgdGhlc2UgY2FsbHMgb3JkZXItc2Vuc2l0dmUuCi0gICAgICAgICMgV2UgY291bGQgcmVtb3Zl
IHRoaXMgZGVwZW5kZW5jeSBieSBidWlsZGluZyB0aGUgdGVzdF9yZXN1bHRzIGZyb20gdGhlIGFy
Y2hpdmUuCi0gICAgICAgIGZpcnN0X3Jlc3VsdHMgPSBzZWxmLl9kZWxlZ2F0ZS50ZXN0X3Jlc3Vs
dHMoKQotICAgICAgICBmaXJzdF9yZXN1bHRzX2FyY2hpdmUgPSBzZWxmLl9kZWxlZ2F0ZS5hcmNo
aXZlX2xhc3RfdGVzdF9yZXN1bHRzKHNlbGYuX3BhdGNoKQotICAgICAgICBmaXJzdF9zY3JpcHRf
ZXJyb3IgPSBzZWxmLl9zY3JpcHRfZXJyb3IKLSAgICAgICAgZmlyc3RfZmFpbHVyZV9zdGF0dXNf
aWQgPSBzZWxmLmZhaWx1cmVfc3RhdHVzX2lkCi0KLSAgICAgICAgaWYgc2VsZi5fdGVzdCgpIGFu
ZCBub3QgZmlyc3RfcmVzdWx0cy5kaWRfZXhjZWVkX3Rlc3RfZmFpbHVyZV9saW1pdCgpOgotICAg
ICAgICAgICAgIyBPbmx5IHJlcG9ydCBmbGFreSB0ZXN0cyBpZiB3ZSB3ZXJlIHN1Y2Nlc3NmdWwg
YXQgcGFyc2luZyByZXN1bHRzLmpzb24gYW5kIGFyY2hpdmluZyByZXN1bHRzLgotICAgICAgICAg
ICAgaWYgZmlyc3RfcmVzdWx0cyBhbmQgZmlyc3RfcmVzdWx0c19hcmNoaXZlOgotICAgICAgICAg
ICAgICAgIHNlbGYuX3JlcG9ydF9mbGFreV90ZXN0cyhmaXJzdF9yZXN1bHRzLmZhaWxpbmdfdGVz
dF9yZXN1bHRzKCksIGZpcnN0X3Jlc3VsdHNfYXJjaGl2ZSkKLSAgICAgICAgICAgIHJldHVybiBU
cnVlCi0KLSAgICAgICAgc2Vjb25kX3Jlc3VsdHMgPSBzZWxmLl9kZWxlZ2F0ZS50ZXN0X3Jlc3Vs
dHMoKQotICAgICAgICBzZWNvbmRfcmVzdWx0c19hcmNoaXZlID0gc2VsZi5fZGVsZWdhdGUuYXJj
aGl2ZV9sYXN0X3Rlc3RfcmVzdWx0cyhzZWxmLl9wYXRjaCkKLSAgICAgICAgc2Vjb25kX3Njcmlw
dF9lcnJvciA9IHNlbGYuX3NjcmlwdF9lcnJvcgotICAgICAgICBzZWNvbmRfZmFpbHVyZV9zdGF0
dXNfaWQgPSBzZWxmLmZhaWx1cmVfc3RhdHVzX2lkCi0KLSAgICAgICAgaWYgc2Vjb25kX3Jlc3Vs
dHMuZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQoKSBhbmQgZmlyc3RfcmVzdWx0cy5kaWRf
ZXhjZWVkX3Rlc3RfZmFpbHVyZV9saW1pdCgpOgotICAgICAgICAgICAgc2VsZi5fYnVpbGRfYW5k
X3Rlc3Rfd2l0aG91dF9wYXRjaCgpCi0gICAgICAgICAgICBjbGVhbl90cmVlX3Jlc3VsdHMgPSBz
ZWxmLl9kZWxlZ2F0ZS50ZXN0X3Jlc3VsdHMoKQotCi0gICAgICAgICAgICBpZiAobGVuKGZpcnN0
X3Jlc3VsdHMuZmFpbGluZ190ZXN0cygpKSAtIGxlbihjbGVhbl90cmVlX3Jlc3VsdHMuZmFpbGlu
Z190ZXN0cygpKSkgPD0gNToKKyAgICAgICAgaWYgaGFzYXR0cihzZWxmLl9kZWxlZ2F0ZSwgJ2dy
b3VwJykgYW5kIHNlbGYuX2RlbGVnYXRlLmdyb3VwKCkgPT0gImpzYyI6CisgICAgICAgICAgICBm
aXJzdF9yZXN1bHRzID0gc2VsZi5fZGVsZWdhdGUudGVzdF9yZXN1bHRzKCkKKyAgICAgICAgICAg
IGZpcnN0X3NjcmlwdF9lcnJvciA9IHNlbGYuX3NjcmlwdF9lcnJvcgorICAgICAgICAgICAgaWYg
Zmlyc3RfcmVzdWx0cy5hbGxfYXBpX3Rlc3RzX3Bhc3NlZCgpIGlzIFRydWUgYW5kIGxlbihmaXJz
dF9yZXN1bHRzLnN0cmVzc190ZXN0X2ZhaWx1cmVzKCkpID09IDA6CisgICAgICAgICAgICAgICAg
cmV0dXJuIFRydWUKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgc2VsZi5fYnVp
bGRfYW5kX3Rlc3Rfd2l0aG91dF9wYXRjaCgpCisgICAgICAgICAgICAgICAgY2xlYW5fdHJlZV9y
ZXN1bHRzID0gc2VsZi5fZGVsZWdhdGUudGVzdF9yZXN1bHRzKCkKKworICAgICAgICAgICAgICAg
ICMgSWYgdGhlIHBhdGNoJ3MgZmFpbHVyZXMgYXJlIGEgc3Vic2V0IG9mIHRoZSB0cmVlJ3MgZmFp
bHVyZXMsIHRoZSBwYXRjaCBzaG91bGQgcGFzcyBFV1MuCisgICAgICAgICAgICAgICAgaWYgZmly
c3RfcmVzdWx0cyA8PSBjbGVhbl90cmVlX3Jlc3VsdHM6CisgICAgICAgICAgICAgICAgICAgIHJl
dHVybiBUcnVlCisKKyAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5yZXBvcnRfZmFpbHVyZShO
b25lLCBmaXJzdF9yZXN1bHRzLCBmaXJzdF9zY3JpcHRfZXJyb3IpCisKKyAgICAgICAgZWxzZToK
KyAgICAgICAgICAgICMgTm90ZTogYXJjaGl2ZV9sYXN0X3Rlc3RfcmVzdWx0cyBkZWxldGVzIHRo
ZSByZXN1bHRzIGRpcmVjdG9yeSwgbWFraW5nIHRoZXNlIGNhbGxzIG9yZGVyLXNlbnNpdHZlLgor
ICAgICAgICAgICAgIyBXZSBjb3VsZCByZW1vdmUgdGhpcyBkZXBlbmRlbmN5IGJ5IGJ1aWxkaW5n
IHRoZSB0ZXN0X3Jlc3VsdHMgZnJvbSB0aGUgYXJjaGl2ZS4KKyAgICAgICAgICAgIGZpcnN0X3Jl
c3VsdHMgPSBzZWxmLl9kZWxlZ2F0ZS50ZXN0X3Jlc3VsdHMoKQorICAgICAgICAgICAgZmlyc3Rf
cmVzdWx0c19hcmNoaXZlID0gc2VsZi5fZGVsZWdhdGUuYXJjaGl2ZV9sYXN0X3Rlc3RfcmVzdWx0
cyhzZWxmLl9wYXRjaCkKKyAgICAgICAgICAgIGZpcnN0X3NjcmlwdF9lcnJvciA9IHNlbGYuX3Nj
cmlwdF9lcnJvcgorICAgICAgICAgICAgZmlyc3RfZmFpbHVyZV9zdGF0dXNfaWQgPSBzZWxmLmZh
aWx1cmVfc3RhdHVzX2lkCisKKyAgICAgICAgICAgIGlmIHNlbGYuX3Rlc3QoKSBhbmQgbm90IGZp
cnN0X3Jlc3VsdHMuZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQoKToKKyAgICAgICAgICAg
ICAgICAjIE9ubHkgcmVwb3J0IGZsYWt5IHRlc3RzIGlmIHdlIHdlcmUgc3VjY2Vzc2Z1bCBhdCBw
YXJzaW5nIHJlc3VsdHMuanNvbiBhbmQgYXJjaGl2aW5nIHJlc3VsdHMuCisgICAgICAgICAgICAg
ICAgaWYgZmlyc3RfcmVzdWx0cyBhbmQgZmlyc3RfcmVzdWx0c19hcmNoaXZlOgorICAgICAgICAg
ICAgICAgICAgICBzZWxmLl9yZXBvcnRfZmxha3lfdGVzdHMoZmlyc3RfcmVzdWx0cy5mYWlsaW5n
X3Rlc3RfcmVzdWx0cygpLCBmaXJzdF9yZXN1bHRzX2FyY2hpdmUpCisgICAgICAgICAgICAgICAg
cmV0dXJuIFRydWUKKworICAgICAgICAgICAgc2Vjb25kX3Jlc3VsdHMgPSBzZWxmLl9kZWxlZ2F0
ZS50ZXN0X3Jlc3VsdHMoKQorICAgICAgICAgICAgc2Vjb25kX3Jlc3VsdHNfYXJjaGl2ZSA9IHNl
bGYuX2RlbGVnYXRlLmFyY2hpdmVfbGFzdF90ZXN0X3Jlc3VsdHMoc2VsZi5fcGF0Y2gpCisgICAg
ICAgICAgICBzZWNvbmRfc2NyaXB0X2Vycm9yID0gc2VsZi5fc2NyaXB0X2Vycm9yCisgICAgICAg
ICAgICBzZWNvbmRfZmFpbHVyZV9zdGF0dXNfaWQgPSBzZWxmLmZhaWx1cmVfc3RhdHVzX2lkCisK
KyAgICAgICAgICAgIGlmIHNlY29uZF9yZXN1bHRzLmRpZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xp
bWl0KCkgYW5kIGZpcnN0X3Jlc3VsdHMuZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQoKToK
KyAgICAgICAgICAgICAgICBzZWxmLl9idWlsZF9hbmRfdGVzdF93aXRob3V0X3BhdGNoKCkKKyAg
ICAgICAgICAgICAgICBjbGVhbl90cmVlX3Jlc3VsdHMgPSBzZWxmLl9kZWxlZ2F0ZS50ZXN0X3Jl
c3VsdHMoKQorCisgICAgICAgICAgICAgICAgaWYgKGxlbihmaXJzdF9yZXN1bHRzLmZhaWxpbmdf
dGVzdHMoKSkgLSBsZW4oY2xlYW5fdHJlZV9yZXN1bHRzLmZhaWxpbmdfdGVzdHMoKSkpIDw9IDU6
CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgICAgICAgICAgICAgc2Vs
Zi5mYWlsdXJlX3N0YXR1c19pZCA9IGZpcnN0X2ZhaWx1cmVfc3RhdHVzX2lkCisKKyAgICAgICAg
ICAgICAgICByZXR1cm4gc2VsZi5yZXBvcnRfZmFpbHVyZShmaXJzdF9yZXN1bHRzX2FyY2hpdmUs
IGZpcnN0X3Jlc3VsdHMsIGZpcnN0X3NjcmlwdF9lcnJvcikKKworICAgICAgICAgICAgaWYgc2Vj
b25kX3Jlc3VsdHMuZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQoKToKKyAgICAgICAgICAg
ICAgICBzZWxmLl9zaG91bGRfZGVmZXJfcGF0Y2hfb3JfdGhyb3coZmlyc3RfcmVzdWx0cy5mYWls
aW5nX3Rlc3RfcmVzdWx0cygpLCBmaXJzdF9yZXN1bHRzX2FyY2hpdmUsIGZpcnN0X3NjcmlwdF9l
cnJvciwgZmlyc3RfZmFpbHVyZV9zdGF0dXNfaWQpCiAgICAgICAgICAgICAgICAgcmV0dXJuIEZh
bHNlCiAKLSAgICAgICAgICAgIHNlbGYuZmFpbHVyZV9zdGF0dXNfaWQgPSBmaXJzdF9mYWlsdXJl
X3N0YXR1c19pZAotCi0gICAgICAgICAgICByZXR1cm4gc2VsZi5yZXBvcnRfZmFpbHVyZShmaXJz
dF9yZXN1bHRzX2FyY2hpdmUsIGZpcnN0X3Jlc3VsdHMsIGZpcnN0X3NjcmlwdF9lcnJvcikKLQot
ICAgICAgICBpZiBzZWNvbmRfcmVzdWx0cy5kaWRfZXhjZWVkX3Rlc3RfZmFpbHVyZV9saW1pdCgp
OgotICAgICAgICAgICAgc2VsZi5fc2hvdWxkX2RlZmVyX3BhdGNoX29yX3Rocm93KGZpcnN0X3Jl
c3VsdHMuZmFpbGluZ190ZXN0X3Jlc3VsdHMoKSwgZmlyc3RfcmVzdWx0c19hcmNoaXZlLCBmaXJz
dF9zY3JpcHRfZXJyb3IsIGZpcnN0X2ZhaWx1cmVfc3RhdHVzX2lkKQotICAgICAgICAgICAgcmV0
dXJuIEZhbHNlCi0KLSAgICAgICAgaWYgZmlyc3RfcmVzdWx0cy5kaWRfZXhjZWVkX3Rlc3RfZmFp
bHVyZV9saW1pdCgpOgotICAgICAgICAgICAgc2VsZi5fc2hvdWxkX2RlZmVyX3BhdGNoX29yX3Ro
cm93KHNlY29uZF9yZXN1bHRzLmZhaWxpbmdfdGVzdF9yZXN1bHRzKCksIHNlY29uZF9yZXN1bHRz
X2FyY2hpdmUsIHNlY29uZF9zY3JpcHRfZXJyb3IsIHNlY29uZF9mYWlsdXJlX3N0YXR1c19pZCkK
LSAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICAgICAgaWYgZmlyc3RfcmVzdWx0cy5k
aWRfZXhjZWVkX3Rlc3RfZmFpbHVyZV9saW1pdCgpOgorICAgICAgICAgICAgICAgIHNlbGYuX3No
b3VsZF9kZWZlcl9wYXRjaF9vcl90aHJvdyhzZWNvbmRfcmVzdWx0cy5mYWlsaW5nX3Rlc3RfcmVz
dWx0cygpLCBzZWNvbmRfcmVzdWx0c19hcmNoaXZlLCBzZWNvbmRfc2NyaXB0X2Vycm9yLCBzZWNv
bmRfZmFpbHVyZV9zdGF0dXNfaWQpCisgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCiAKLSAg
ICAgICAgaWYgc2VsZi5fcmVzdWx0c19mYWlsZWRfZGlmZmVyZW50X3Rlc3RzKGZpcnN0X3Jlc3Vs
dHMsIHNlY29uZF9yZXN1bHRzKToKLSAgICAgICAgICAgIGZpcnN0X2ZhaWxpbmdfcmVzdWx0c19z
ZXQgPSBmcm96ZW5zZXQoZmlyc3RfcmVzdWx0cy5mYWlsaW5nX3Rlc3RfcmVzdWx0cygpKQotICAg
ICAgICAgICAgc2Vjb25kX2ZhaWxpbmdfcmVzdWx0c19zZXQgPSBmcm96ZW5zZXQoc2Vjb25kX3Jl
c3VsdHMuZmFpbGluZ190ZXN0X3Jlc3VsdHMoKSkKKyAgICAgICAgICAgIGlmIHNlbGYuX3Jlc3Vs
dHNfZmFpbGVkX2RpZmZlcmVudF90ZXN0cyhmaXJzdF9yZXN1bHRzLCBzZWNvbmRfcmVzdWx0cyk6
CisgICAgICAgICAgICAgICAgZmlyc3RfZmFpbGluZ19yZXN1bHRzX3NldCA9IGZyb3plbnNldChm
aXJzdF9yZXN1bHRzLmZhaWxpbmdfdGVzdF9yZXN1bHRzKCkpCisgICAgICAgICAgICAgICAgc2Vj
b25kX2ZhaWxpbmdfcmVzdWx0c19zZXQgPSBmcm96ZW5zZXQoc2Vjb25kX3Jlc3VsdHMuZmFpbGlu
Z190ZXN0X3Jlc3VsdHMoKSkKIAotICAgICAgICAgICAgdGVzdHNfdGhhdF9vbmx5X2ZhaWxlZF9m
aXJzdCA9IGZpcnN0X2ZhaWxpbmdfcmVzdWx0c19zZXQuZGlmZmVyZW5jZShzZWNvbmRfZmFpbGlu
Z19yZXN1bHRzX3NldCkKLSAgICAgICAgICAgIHNlbGYuX3JlcG9ydF9mbGFreV90ZXN0cyh0ZXN0
c190aGF0X29ubHlfZmFpbGVkX2ZpcnN0LCBmaXJzdF9yZXN1bHRzX2FyY2hpdmUpCisgICAgICAg
ICAgICAgICAgdGVzdHNfdGhhdF9vbmx5X2ZhaWxlZF9maXJzdCA9IGZpcnN0X2ZhaWxpbmdfcmVz
dWx0c19zZXQuZGlmZmVyZW5jZShzZWNvbmRfZmFpbGluZ19yZXN1bHRzX3NldCkKKyAgICAgICAg
ICAgICAgICBzZWxmLl9yZXBvcnRfZmxha3lfdGVzdHModGVzdHNfdGhhdF9vbmx5X2ZhaWxlZF9m
aXJzdCwgZmlyc3RfcmVzdWx0c19hcmNoaXZlKQogCi0gICAgICAgICAgICB0ZXN0c190aGF0X29u
bHlfZmFpbGVkX3NlY29uZCA9IHNlY29uZF9mYWlsaW5nX3Jlc3VsdHNfc2V0LmRpZmZlcmVuY2Uo
Zmlyc3RfZmFpbGluZ19yZXN1bHRzX3NldCkKLSAgICAgICAgICAgIHNlbGYuX3JlcG9ydF9mbGFr
eV90ZXN0cyh0ZXN0c190aGF0X29ubHlfZmFpbGVkX3NlY29uZCwgc2Vjb25kX3Jlc3VsdHNfYXJj
aGl2ZSkKKyAgICAgICAgICAgICAgICB0ZXN0c190aGF0X29ubHlfZmFpbGVkX3NlY29uZCA9IHNl
Y29uZF9mYWlsaW5nX3Jlc3VsdHNfc2V0LmRpZmZlcmVuY2UoZmlyc3RfZmFpbGluZ19yZXN1bHRz
X3NldCkKKyAgICAgICAgICAgICAgICBzZWxmLl9yZXBvcnRfZmxha3lfdGVzdHModGVzdHNfdGhh
dF9vbmx5X2ZhaWxlZF9zZWNvbmQsIHNlY29uZF9yZXN1bHRzX2FyY2hpdmUpCiAKLSAgICAgICAg
ICAgIHRlc3RzX3RoYXRfY29uc2lzdGVudGx5X2ZhaWxlZCA9IGZpcnN0X2ZhaWxpbmdfcmVzdWx0
c19zZXQuaW50ZXJzZWN0aW9uKHNlY29uZF9mYWlsaW5nX3Jlc3VsdHNfc2V0KQotICAgICAgICAg
ICAgaWYgdGVzdHNfdGhhdF9jb25zaXN0ZW50bHlfZmFpbGVkOgotICAgICAgICAgICAgICAgIGlm
IHNlbGYuX3Nob3VsZF9kZWZlcl9wYXRjaF9vcl90aHJvdyh0ZXN0c190aGF0X2NvbnNpc3RlbnRs
eV9mYWlsZWQsIGZpcnN0X3Jlc3VsdHNfYXJjaGl2ZSwgZmlyc3Rfc2NyaXB0X2Vycm9yLCBmaXJz
dF9mYWlsdXJlX3N0YXR1c19pZCk6Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZSAg
IyBEZWZlciBwYXRjaAorICAgICAgICAgICAgICAgIHRlc3RzX3RoYXRfY29uc2lzdGVudGx5X2Zh
aWxlZCA9IGZpcnN0X2ZhaWxpbmdfcmVzdWx0c19zZXQuaW50ZXJzZWN0aW9uKHNlY29uZF9mYWls
aW5nX3Jlc3VsdHNfc2V0KQorICAgICAgICAgICAgICAgIGlmIHRlc3RzX3RoYXRfY29uc2lzdGVu
dGx5X2ZhaWxlZDoKKyAgICAgICAgICAgICAgICAgICAgaWYgc2VsZi5fc2hvdWxkX2RlZmVyX3Bh
dGNoX29yX3Rocm93KHRlc3RzX3RoYXRfY29uc2lzdGVudGx5X2ZhaWxlZCwgZmlyc3RfcmVzdWx0
c19hcmNoaXZlLCBmaXJzdF9zY3JpcHRfZXJyb3IsIGZpcnN0X2ZhaWx1cmVfc3RhdHVzX2lkKToK
KyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZSAgIyBEZWZlciBwYXRjaAogCi0g
ICAgICAgICAgICAjIEF0IHRoaXMgcG9pbnQgd2Uga25vdyB0aGF0IGF0IGxlYXN0IG9uZSB0ZXN0
IGZsYWtlZCwgYnV0IG5vIGNvbnNpc3RlbnQgZmFpbHVyZXMKLSAgICAgICAgICAgICMgd2VyZSBp
bnRyb2R1Y2VkLiBUaGlzIGlzIGEgYml0IG9mIGEgZ3JleS16b25lLgotICAgICAgICAgICAgcmV0
dXJuIEZhbHNlICAjIERlZmVyIHBhdGNoCisgICAgICAgICAgICAgICAgIyBBdCB0aGlzIHBvaW50
IHdlIGtub3cgdGhhdCBhdCBsZWFzdCBvbmUgdGVzdCBmbGFrZWQsIGJ1dCBubyBjb25zaXN0ZW50
IGZhaWx1cmVzCisgICAgICAgICAgICAgICAgIyB3ZXJlIGludHJvZHVjZWQuIFRoaXMgaXMgYSBi
aXQgb2YgYSBncmV5LXpvbmUuCisgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlICAjIERlZmVy
IHBhdGNoCiAKLSAgICAgICAgaWYgc2VsZi5fc2hvdWxkX2RlZmVyX3BhdGNoX29yX3Rocm93KGZp
cnN0X3Jlc3VsdHMuZmFpbGluZ190ZXN0X3Jlc3VsdHMoKSwgZmlyc3RfcmVzdWx0c19hcmNoaXZl
LCBmaXJzdF9zY3JpcHRfZXJyb3IsIGZpcnN0X2ZhaWx1cmVfc3RhdHVzX2lkKToKLSAgICAgICAg
ICAgIHJldHVybiBGYWxzZSAgIyBEZWZlciBwYXRjaAorICAgICAgICAgICAgaWYgc2VsZi5fc2hv
dWxkX2RlZmVyX3BhdGNoX29yX3Rocm93KGZpcnN0X3Jlc3VsdHMuZmFpbGluZ190ZXN0X3Jlc3Vs
dHMoKSwgZmlyc3RfcmVzdWx0c19hcmNoaXZlLCBmaXJzdF9zY3JpcHRfZXJyb3IsIGZpcnN0X2Zh
aWx1cmVfc3RhdHVzX2lkKToKKyAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UgICMgRGVmZXIg
cGF0Y2gKIAotICAgICAgICAjIEF0IHRoaXMgcG9pbnQsIHdlIGtub3cgdGhhdCB0aGUgZmlyc3Qg
YW5kIHNlY29uZCBydW5zIGhhZCB0aGUgZXhhY3Qgc2FtZSBmYWlsdXJlcywKLSAgICAgICAgIyBh
bmQgdGhhdCB0aG9zZSBmYWlsdXJlcyBhcmUgYWxsIHByZXNlbnQgb24gdGhlIGNsZWFuIHRyZWUs
IHNvIHdlIGNhbiBzYXkgd2l0aCBjZXJ0YWludHkKLSAgICAgICAgIyB0aGF0IHRoZSBwYXRjaCBp
cyBnb29kLgotICAgICAgICByZXR1cm4gVHJ1ZQorICAgICAgICAgICAgIyBBdCB0aGlzIHBvaW50
LCB3ZSBrbm93IHRoYXQgdGhlIGZpcnN0IGFuZCBzZWNvbmQgcnVucyBoYWQgdGhlIGV4YWN0IHNh
bWUgZmFpbHVyZXMsCisgICAgICAgICAgICAjIGFuZCB0aGF0IHRob3NlIGZhaWx1cmVzIGFyZSBh
bGwgcHJlc2VudCBvbiB0aGUgY2xlYW4gdHJlZSwgc28gd2UgY2FuIHNheSB3aXRoIGNlcnRhaW50
eQorICAgICAgICAgICAgIyB0aGF0IHRoZSBwYXRjaCBpcyBnb29kLgorICAgICAgICAgICAgcmV0
dXJuIFRydWUKIAogICAgIGRlZiByZXN1bHRzX2FyY2hpdmVfZnJvbV9wYXRjaF90ZXN0X3J1bihz
ZWxmLCBwYXRjaCk6CiAgICAgICAgIGFzc2VydChzZWxmLl9wYXRjaC5pZCgpID09IHBhdGNoLmlk
KCkpICAjIFBhdGNoQW5hbHlzaXNUYXNrIGlzIG5vdCBjdXJyZW50bHkgcmUtdXNlYWJsZS4KZGlm
ZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9lYXJseXdhcm5p
bmdzeXN0ZW0ucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZWFybHl3
YXJuaW5nc3lzdGVtLnB5CmluZGV4IDliYzA0MTg2MGNlNjc0NTQ0NTRlNGIyNTE0MzhhOWRiZTUy
NjQ1MTMuLmQ5NGY4MzM4MTY0NTljNmEyNzcyYWNjZTIwZTk3YjA0MjU2NTcyODQgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9lYXJseXdhcm5pbmdzeXN0
ZW0ucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Vhcmx5d2Fy
bmluZ3N5c3RlbS5weQpAQCAtMSw0ICsxLDUgQEAKICMgQ29weXJpZ2h0IChjKSAyMDA5IEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoYykgMjAxNiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogIyBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
CkBAIC0yOCw2ICsyOSw3IEBACiAKIGltcG9ydCBqc29uCiBpbXBvcnQgbG9nZ2luZworaW1wb3J0
IG9zCiBmcm9tIG9wdHBhcnNlIGltcG9ydCBtYWtlX29wdGlvbgogCiBmcm9tIHdlYmtpdHB5LmNv
bW1vbi5jb25maWcuY29tbWl0dGVycyBpbXBvcnQgQ29tbWl0dGVyTGlzdApAQCAtMzYsNiArMzgs
NyBAQCBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZmlsZXN5c3RlbSBpbXBvcnQgRmlsZVN5
c3RlbQogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmV4ZWN1dGl2ZSBpbXBvcnQgU2NyaXB0
RXJyb3IKIGZyb20gd2Via2l0cHkudG9vbC5ib3QuZWFybHl3YXJuaW5nc3lzdGVtdGFzayBpbXBv
cnQgRWFybHlXYXJuaW5nU3lzdGVtVGFzaywgRWFybHlXYXJuaW5nU3lzdGVtVGFza0RlbGVnYXRl
CiBmcm9tIHdlYmtpdHB5LnRvb2wuYm90LmxheW91dHRlc3RyZXN1bHRzcmVhZGVyIGltcG9ydCBM
YXlvdXRUZXN0UmVzdWx0c1JlYWRlcgorZnJvbSB3ZWJraXRweS50b29sLmJvdC5qc2N0ZXN0cmVz
dWx0c3JlYWRlciBpbXBvcnQgSlNDVGVzdFJlc3VsdHNSZWFkZXIKIGZyb20gd2Via2l0cHkudG9v
bC5ib3QucGF0Y2hhbmFseXNpc3Rhc2sgaW1wb3J0IFVuYWJsZVRvQXBwbHlQYXRjaCwgUGF0Y2hJ
c05vdFZhbGlkCiBmcm9tIHdlYmtpdHB5LnRvb2wuYm90LnF1ZXVlZW5naW5lIGltcG9ydCBRdWV1
ZUVuZ2luZQogZnJvbSB3ZWJraXRweS50b29sLmNvbW1hbmRzLnF1ZXVlcyBpbXBvcnQgQWJzdHJh
Y3RSZXZpZXdRdWV1ZQpAQCAtNTMsNyArNTYsMTIgQEAgY2xhc3MgQWJzdHJhY3RFYXJseVdhcm5p
bmdTeXN0ZW0oQWJzdHJhY3RSZXZpZXdRdWV1ZSwgRWFybHlXYXJuaW5nU3lzdGVtVGFza0RlbGUK
IAogICAgIGRlZiBiZWdpbl93b3JrX3F1ZXVlKHNlbGYpOgogICAgICAgICBBYnN0cmFjdFJldmll
d1F1ZXVlLmJlZ2luX3dvcmtfcXVldWUoc2VsZikKLSAgICAgICAgc2VsZi5fbGF5b3V0X3Rlc3Rf
cmVzdWx0c19yZWFkZXIgPSBMYXlvdXRUZXN0UmVzdWx0c1JlYWRlcihzZWxmLl90b29sLCBzZWxm
Ll9wb3J0LnJlc3VsdHNfZGlyZWN0b3J5KCksIHNlbGYuX2xvZ19kaXJlY3RvcnkoKSkKKworICAg
ICAgICBpZiBzZWxmLmdyb3VwKCkgPT0gImpzYyI6CisgICAgICAgICAgICBkaXIgPSBvcy5wYXRo
LmRpcm5hbWUob3MucGF0aC5kaXJuYW1lKG9zLnBhdGguZGlybmFtZShzZWxmLl9wb3J0LnJlc3Vs
dHNfZGlyZWN0b3J5KCkpKSkKKyAgICAgICAgICAgIHNlbGYuX3Rlc3RfcmVzdWx0c19yZWFkZXIg
PSBKU0NUZXN0UmVzdWx0c1JlYWRlcihzZWxmLl90b29sLCBkaXIpCisgICAgICAgIGVsc2U6Cisg
ICAgICAgICAgICBzZWxmLl90ZXN0X3Jlc3VsdHNfcmVhZGVyID0gTGF5b3V0VGVzdFJlc3VsdHNS
ZWFkZXIoc2VsZi5fdG9vbCwgc2VsZi5fcG9ydC5yZXN1bHRzX2RpcmVjdG9yeSgpLCBzZWxmLl9s
b2dfZGlyZWN0b3J5KCkpCiAKICAgICBkZWYgX2ZhaWxpbmdfdGVzdHNfbWVzc2FnZShzZWxmLCB0
YXNrLCBwYXRjaCk6CiAgICAgICAgIHJlc3VsdHMgPSB0YXNrLnJlc3VsdHNfZnJvbV9wYXRjaF90
ZXN0X3J1bihwYXRjaCkKQEAgLTExNywxNCArMTI1LDIwIEBAIGNsYXNzIEFic3RyYWN0RWFybHlX
YXJuaW5nU3lzdGVtKEFic3RyYWN0UmV2aWV3UXVldWUsIEVhcmx5V2FybmluZ1N5c3RlbVRhc2tE
ZWxlCiAgICAgICAgIHJldHVybiBzZWxmLl91cGRhdGVfc3RhdHVzKG1lc3NhZ2UsIHBhdGNoPXBh
dGNoLCByZXN1bHRzX2ZpbGU9ZmFpbHVyZV9sb2cpCiAKICAgICBkZWYgdGVzdF9yZXN1bHRzKHNl
bGYpOgotICAgICAgICByZXR1cm4gc2VsZi5fbGF5b3V0X3Rlc3RfcmVzdWx0c19yZWFkZXIucmVz
dWx0cygpCisgICAgICAgIHJldHVybiBzZWxmLl90ZXN0X3Jlc3VsdHNfcmVhZGVyLnJlc3VsdHMo
KQogCiAgICAgZGVmIGFyY2hpdmVfbGFzdF90ZXN0X3Jlc3VsdHMoc2VsZiwgcGF0Y2gpOgotICAg
ICAgICByZXR1cm4gc2VsZi5fbGF5b3V0X3Rlc3RfcmVzdWx0c19yZWFkZXIuYXJjaGl2ZShwYXRj
aCkKKyAgICAgICAgcmV0dXJuIHNlbGYuX3Rlc3RfcmVzdWx0c19yZWFkZXIuYXJjaGl2ZShwYXRj
aCkKIAogICAgIGRlZiBidWlsZF9zdHlsZShzZWxmKToKICAgICAgICAgcmV0dXJuIHNlbGYuX2J1
aWxkX3N0eWxlCiAKKyAgICBkZWYgZ3JvdXAoc2VsZik6CisgICAgICAgIGlmIGhhc2F0dHIoc2Vs
ZiwgIl9ncm91cCIpOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuX2dyb3VwCisgICAgICAgIGVs
c2U6CisgICAgICAgICAgICByZXR1cm4gTm9uZQorCiAgICAgZGVmIHJlZmV0Y2hfcGF0Y2goc2Vs
ZiwgcGF0Y2gpOgogICAgICAgICByZXR1cm4gc2VsZi5fdG9vbC5idWdzLmZldGNoX2F0dGFjaG1l
bnQocGF0Y2guaWQoKSkKIApAQCAtMTU2LDUgKzE3MCw2IEBAIGNsYXNzIEFic3RyYWN0RWFybHlX
YXJuaW5nU3lzdGVtKEFic3RyYWN0UmV2aWV3UXVldWUsIEVhcmx5V2FybmluZ1N5c3RlbVRhc2tE
ZWxlCiAgICAgICAgICAgICAgICAgJ19idWlsZF9zdHlsZSc6IGNvbmZpZy5nZXQoJ3N0eWxlJywg
InJlbGVhc2UiKSwKICAgICAgICAgICAgICAgICAnd2F0Y2hlcnMnOiBjb25maWcuZ2V0KCd3YXRj
aGVycycsIFtdKSwKICAgICAgICAgICAgICAgICAncnVuX3Rlc3RzJzogY29uZmlnLmdldCgncnVu
VGVzdHMnLCBjbHMucnVuX3Rlc3RzKSwKKyAgICAgICAgICAgICAgICAnX2dyb3VwJzogY29uZmln
LmdldCgnZ3JvdXAnLCBOb25lKSwKICAgICAgICAgICAgIH0pKQogICAgICAgICByZXR1cm4gY2xh
c3NlcwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Vh
cmx5d2FybmluZ3N5c3RlbV91bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9v
bC9jb21tYW5kcy9lYXJseXdhcm5pbmdzeXN0ZW1fdW5pdHRlc3QucHkKaW5kZXggMDg4ODc4MTNj
ZTJlOTNhOGVjOWRhMzc2MzZlY2JkZTllZmYzYzllNy4uMzY5OTg5YTA3ZDg3OGYzNDhjNTZlOGNk
M2U2Y2Y4NzBhNDk4MWEzNSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29s
L2NvbW1hbmRzL2Vhcmx5d2FybmluZ3N5c3RlbV91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZWFybHl3YXJuaW5nc3lzdGVtX3VuaXR0ZXN0LnB5
CkBAIC0xLDQgKzEsNSBAQAogIyBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTY4LDkgKzY5
LDEwIEBAIGNsYXNzIEVhcmx5V2FybmluZ1N5c3RlbVRlc3QoUXVldWVzVGVzdCk6CiAgICAgICAg
ICAgICAicG9ydCI6IGV3cy5wb3J0X25hbWUsCiAgICAgICAgICAgICAiYXJjaGl0ZWN0dXJlIjog
IiAtLWFyY2hpdGVjdHVyZT0lcyIgJSBld3MuYXJjaGl0ZWN0dXJlIGlmIGV3cy5hcmNoaXRlY3R1
cmUgZWxzZSAiIiwKICAgICAgICAgICAgICJidWlsZF9zdHlsZSI6IGV3cy5idWlsZF9zdHlsZSgp
LAorICAgICAgICAgICAgImdyb3VwIjogZXdzLmdyb3VwKCksCiAgICAgICAgIH0KICAgICAgICAg
aWYgZXdzLnJ1bl90ZXN0czoKLSAgICAgICAgICAgIHJ1bl90ZXN0c19saW5lID0gIlJ1bm5pbmc6
IHdlYmtpdC1wYXRjaCAtLXN0YXR1cy1ob3N0PWV4YW1wbGUuY29tIGJ1aWxkLWFuZC10ZXN0IC0t
bm8tY2xlYW4gLS1uby11cGRhdGUgLS10ZXN0IC0tbm9uLWludGVyYWN0aXZlIC0tYnVpbGQtc3R5
bGU9JShidWlsZF9zdHlsZSlzIC0tcG9ydD0lKHBvcnQpcyUoYXJjaGl0ZWN0dXJlKXNcbiIgJSBz
dHJpbmdfcmVwbGFjZW1lbnRzCisgICAgICAgICAgICBydW5fdGVzdHNfbGluZSA9ICJSdW5uaW5n
OiB3ZWJraXQtcGF0Y2ggLS1zdGF0dXMtaG9zdD1leGFtcGxlLmNvbSBidWlsZC1hbmQtdGVzdCAt
LW5vLWNsZWFuIC0tbm8tdXBkYXRlIC0tdGVzdCAtLW5vbi1pbnRlcmFjdGl2ZSAtLWJ1aWxkLXN0
eWxlPSUoYnVpbGRfc3R5bGUpcyAtLWdyb3VwPSUoZ3JvdXApcyAtLXBvcnQ9JShwb3J0KXMlKGFy
Y2hpdGVjdHVyZSlzXG4iICUgc3RyaW5nX3JlcGxhY2VtZW50cwogICAgICAgICBlbHNlOgogICAg
ICAgICAgICAgcnVuX3Rlc3RzX2xpbmUgPSAiIgogICAgICAgICBzdHJpbmdfcmVwbGFjZW1lbnRz
WydydW5fdGVzdHNfbGluZSddID0gcnVuX3Rlc3RzX2xpbmUKQEAgLTgxLDcgKzgzLDcgQEAgY2xh
c3MgRWFybHlXYXJuaW5nU3lzdGVtVGVzdChRdWV1ZXNUZXN0KToKIFJ1bm5pbmc6IHdlYmtpdC1w
YXRjaCAtLXN0YXR1cy1ob3N0PWV4YW1wbGUuY29tIGNsZWFuIC0tcG9ydD0lKHBvcnQpcyUoYXJj
aGl0ZWN0dXJlKXMKIFJ1bm5pbmc6IHdlYmtpdC1wYXRjaCAtLXN0YXR1cy1ob3N0PWV4YW1wbGUu
Y29tIHVwZGF0ZSAtLXBvcnQ9JShwb3J0KXMlKGFyY2hpdGVjdHVyZSlzCiBSdW5uaW5nOiB3ZWJr
aXQtcGF0Y2ggLS1zdGF0dXMtaG9zdD1leGFtcGxlLmNvbSBhcHBseS1hdHRhY2htZW50IC0tbm8t
dXBkYXRlIC0tbm9uLWludGVyYWN0aXZlIDEwMDAwIC0tcG9ydD0lKHBvcnQpcyUoYXJjaGl0ZWN0
dXJlKXMKLVJ1bm5pbmc6IHdlYmtpdC1wYXRjaCAtLXN0YXR1cy1ob3N0PWV4YW1wbGUuY29tIGJ1
aWxkIC0tbm8tY2xlYW4gLS1uby11cGRhdGUgLS1idWlsZC1zdHlsZT0lKGJ1aWxkX3N0eWxlKXMg
LS1wb3J0PSUocG9ydClzJShhcmNoaXRlY3R1cmUpcworUnVubmluZzogd2Via2l0LXBhdGNoIC0t
c3RhdHVzLWhvc3Q9ZXhhbXBsZS5jb20gYnVpbGQgLS1uby1jbGVhbiAtLW5vLXVwZGF0ZSAtLWJ1
aWxkLXN0eWxlPSUoYnVpbGRfc3R5bGUpcyAtLWdyb3VwPSUoZ3JvdXApcyAtLXBvcnQ9JShwb3J0
KXMlKGFyY2hpdGVjdHVyZSlzCiAlKHJ1bl90ZXN0c19saW5lKXNNT0NLOiB1cGRhdGVfc3RhdHVz
OiAlKG5hbWUpcyBQYXNzCiBNT0NLOiByZWxlYXNlX3dvcmtfaXRlbTogJShuYW1lKXMgMTAwMDAK
ICIiIiAlIHN0cmluZ19yZXBsYWNlbWVudHMsCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L3Rvb2wvc3RlcHMvYnVpbGQucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wv
c3RlcHMvYnVpbGQucHkKaW5kZXggZjc0ZmZjZTcwOTQxYzYxZTU5Njc5MmU0YzYwZGNkN2Y4YjY1
ZTllYy4uZjRiZjJlZTM5ZTAzNDMzODU1NmMzYWM3Yzc0Y2Y1ZGE5M2EyMmIwNCAxMDA2NDQKLS0t
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL2J1aWxkLnB5CisrKyBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9idWlsZC5weQpAQCAtMSw0ICsxLDUgQEAKICMg
Q29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENv
cHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC00MSwyOCArNDIsMzggQEAgY2xhc3MgQnVpbGQo
QWJzdHJhY3RTdGVwKToKICAgICAgICAgICAgIE9wdGlvbnMuYnVpbGQsCiAgICAgICAgICAgICBP
cHRpb25zLnF1aWV0LAogICAgICAgICAgICAgT3B0aW9ucy5idWlsZF9zdHlsZSwKKyAgICAgICAg
ICAgIE9wdGlvbnMuZ3JvdXAsCiAgICAgICAgIF0KIAotICAgIGRlZiBidWlsZChzZWxmLCBidWls
ZF9zdHlsZSk6CisgICAgZGVmIGJ1aWxkKHNlbGYsIGJ1aWxkX3N0eWxlLCBncm91cCk6CiAgICAg
ICAgIGVudmlyb25tZW50ID0gc2VsZi5fdG9vbC5jb3B5X2N1cnJlbnRfZW52aXJvbm1lbnQoKQog
ICAgICAgICBlbnZpcm9ubWVudC5kaXNhYmxlX2djY19zbWFydHF1b3RlcygpCiAgICAgICAgIGVu
dmlyb25tZW50LmRpc2FibGVfamhidWlsZF9WVDEwMF9vdXRwdXQoKQogICAgICAgICBlbnYgPSBl
bnZpcm9ubWVudC50b19kaWN0aW9uYXJ5KCkKIAotICAgICAgICBidWlsZF93ZWJraXRfY29tbWFu
ZCA9IHNlbGYuX3Rvb2wuZGVwcmVjYXRlZF9wb3J0KCkuYnVpbGRfd2Via2l0X2NvbW1hbmQoYnVp
bGRfc3R5bGU9YnVpbGRfc3R5bGUpCisgICAgICAgIGlmIGdyb3VwID09ICJqc2MiOgorICAgICAg
ICAgICAgYnVpbGRfY29tbWFuZCA9IHNlbGYuX3Rvb2wuZGVwcmVjYXRlZF9wb3J0KCkuYnVpbGRf
anNjX2NvbW1hbmQoYnVpbGRfc3R5bGU9YnVpbGRfc3R5bGUpCisgICAgICAgIGVsc2U6CisgICAg
ICAgICAgICBidWlsZF9jb21tYW5kID0gc2VsZi5fdG9vbC5kZXByZWNhdGVkX3BvcnQoKS5idWls
ZF93ZWJraXRfY29tbWFuZChidWlsZF9zdHlsZT1idWlsZF9zdHlsZSkKIAogICAgICAgICBpZiBz
ZWxmLl9vcHRpb25zLmFyY2hpdGVjdHVyZToKLSAgICAgICAgICAgIGJ1aWxkX3dlYmtpdF9jb21t
YW5kICs9IFsnQVJDSFM9JXMnICUgc2VsZi5fb3B0aW9ucy5hcmNoaXRlY3R1cmVdCisgICAgICAg
ICAgICBidWlsZF9jb21tYW5kICs9IFsnQVJDSFM9JXMnICUgc2VsZi5fb3B0aW9ucy5hcmNoaXRl
Y3R1cmVdCiAKLSAgICAgICAgc2VsZi5fdG9vbC5leGVjdXRpdmUucnVuX2FuZF90aHJvd19pZl9m
YWlsKGJ1aWxkX3dlYmtpdF9jb21tYW5kLCBzZWxmLl9vcHRpb25zLnF1aWV0LAorICAgICAgICBz
ZWxmLl90b29sLmV4ZWN1dGl2ZS5ydW5fYW5kX3Rocm93X2lmX2ZhaWwoYnVpbGRfY29tbWFuZCwg
c2VsZi5fb3B0aW9ucy5xdWlldCwKICAgICAgICAgICAgIGN3ZD1zZWxmLl90b29sLnNjbSgpLmNo
ZWNrb3V0X3Jvb3QsIGVudj1lbnYpCiAKICAgICBkZWYgcnVuKHNlbGYsIHN0YXRlKToKICAgICAg
ICAgaWYgbm90IHNlbGYuX29wdGlvbnMuYnVpbGQ6CiAgICAgICAgICAgICByZXR1cm4KICAgICAg
ICAgX2xvZy5pbmZvKCJCdWlsZGluZyBXZWJLaXQiKQorCisgICAgICAgIGlmIGhhc2F0dHIoc2Vs
Zi5fb3B0aW9ucywgJ2dyb3VwJykgYW5kIHNlbGYuX29wdGlvbnMuZ3JvdXAgPT0gImpzYyI6Cisg
ICAgICAgICAgICBncm91cCA9IHNlbGYuX29wdGlvbnMuZ3JvdXAKKyAgICAgICAgZWxzZToKKyAg
ICAgICAgICAgIGdyb3VwID0gTm9uZQorCiAgICAgICAgIGlmIHNlbGYuX29wdGlvbnMuYnVpbGRf
c3R5bGUgPT0gImJvdGgiOgotICAgICAgICAgICAgc2VsZi5idWlsZCgiZGVidWciKQotICAgICAg
ICAgICAgc2VsZi5idWlsZCgicmVsZWFzZSIpCisgICAgICAgICAgICBzZWxmLmJ1aWxkKCJkZWJ1
ZyIsIGdyb3VwKQorICAgICAgICAgICAgc2VsZi5idWlsZCgicmVsZWFzZSIsIGdyb3VwKQogICAg
ICAgICBlbHNlOgotICAgICAgICAgICAgc2VsZi5idWlsZChzZWxmLl9vcHRpb25zLmJ1aWxkX3N0
eWxlKQorICAgICAgICAgICAgc2VsZi5idWlsZChzZWxmLl9vcHRpb25zLmJ1aWxkX3N0eWxlLCBn
cm91cCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9vcHRp
b25zLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL29wdGlvbnMucHkKaW5k
ZXggM2VmNDdkMDA4YTU5ZTA1MGQ0Y2EwYzQ4NzdkZGQxYTYwNzMxYTQwOS4uOGYxNDU4ZGI1YzRm
MjQ0OGE3YWZiZjI5ZTFjMzk2NDE3NTIxMTZiMSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS90b29sL3N0ZXBzL29wdGlvbnMucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS90b29sL3N0ZXBzL29wdGlvbnMucHkKQEAgLTEsNCArMSw1IEBACiAjIENvcHlyaWdodCAoQykg
MjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIw
MTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zIGFyZQpAQCAtNDYsNiArNDcsNyBAQCBjbGFzcyBPcHRpb25zKG9iamVjdCk6CiAgICAg
ZW1haWwgPSBtYWtlX29wdGlvbigiLS1lbWFpbCIsIGFjdGlvbj0ic3RvcmUiLCB0eXBlPSJzdHJp
bmciLCBkZXN0PSJlbWFpbCIsIGhlbHA9IkVtYWlsIGFkZHJlc3MgdG8gdXNlIGluIENoYW5nZUxv
Z3MuIikKICAgICBmb3JjZV9jbGVhbiA9IG1ha2Vfb3B0aW9uKCItLWZvcmNlLWNsZWFuIiwgYWN0
aW9uPSJzdG9yZV90cnVlIiwgZGVzdD0iZm9yY2VfY2xlYW4iLCBkZWZhdWx0PUZhbHNlLCBoZWxw
PSJDbGVhbiB3b3JraW5nIGRpcmVjdG9yeSBiZWZvcmUgYXBwbHlpbmcgcGF0Y2hlcyAocmVtb3Zl
cyBsb2NhbCBjaGFuZ2VzIGFuZCBjb21taXRzKSIpCiAgICAgZ2l0X2NvbW1pdCA9IG1ha2Vfb3B0
aW9uKCItZyIsICItLWdpdC1jb21taXQiLCBhY3Rpb249InN0b3JlIiwgZGVzdD0iZ2l0X2NvbW1p
dCIsIGhlbHA9Ik9wZXJhdGUgb24gYSBsb2NhbCBjb21taXQuIElmIGEgcmFuZ2UsIHRoZSBjb21t
aXRzIGFyZSBzcXVhc2hlZCBpbnRvIG9uZS4gPHJlZj4uLi4uIGluY2x1ZGVzIHRoZSB3b3JraW5n
IGNvcHkgY2hhbmdlcy4gVVBTVFJFQU0gY2FuIGJlIHVzZWQgZm9yIHRoZSB1cHN0cmVhbS90cmFj
a2luZyBicmFuY2guIikKKyAgICBncm91cCA9IG1ha2Vfb3B0aW9uKCItLWdyb3VwIiwgYWN0aW9u
PSJzdG9yZSIsIGRlc3Q9Imdyb3VwIiwgZGVmYXVsdD1Ob25lLCBoZWxwPSIiKQogICAgIGxvY2Fs
X2NvbW1pdCA9IG1ha2Vfb3B0aW9uKCItLWxvY2FsLWNvbW1pdCIsIGFjdGlvbj0ic3RvcmVfdHJ1
ZSIsIGRlc3Q9ImxvY2FsX2NvbW1pdCIsIGRlZmF1bHQ9RmFsc2UsIGhlbHA9Ik1ha2UgYSBsb2Nh
bCBjb21taXQgZm9yIGVhY2ggYXBwbGllZCBwYXRjaCIpCiAgICAgbm9uX2ludGVyYWN0aXZlID0g
bWFrZV9vcHRpb24oIi0tbm9uLWludGVyYWN0aXZlIiwgYWN0aW9uPSJzdG9yZV90cnVlIiwgZGVz
dD0ibm9uX2ludGVyYWN0aXZlIiwgZGVmYXVsdD1GYWxzZSwgaGVscD0iTmV2ZXIgcHJvbXB0IHRo
ZSB1c2VyLCBmYWlsIGFzIGZhc3QgYXMgcG9zc2libGUuIikKICAgICBvYnNvbGV0ZV9wYXRjaGVz
ID0gbWFrZV9vcHRpb24oIi0tbm8tb2Jzb2xldGUiLCBhY3Rpb249InN0b3JlX2ZhbHNlIiwgZGVz
dD0ib2Jzb2xldGVfcGF0Y2hlcyIsIGRlZmF1bHQ9VHJ1ZSwgaGVscD0iRG8gbm90IG9ic29sZXRl
IG9sZCBwYXRjaGVzIGJlZm9yZSBwb3N0aW5nIHRoaXMgb25lLiIpCmRpZmYgLS1naXQgYS9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvcnVudGVzdHMucHkgYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L3Rvb2wvc3RlcHMvcnVudGVzdHMucHkKaW5kZXggNzVkNzJiYzlhZDJmNGUzNmQ0
NWZkYWM5MGYxODE5NDgxY2YwMjg4Yi4uZWQ5MGRmZDQzOGMzMWNmYWRjZWZkODMyZjE1ZGVkOTky
YTk3ZGRiYyAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3J1
bnRlc3RzLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9ydW50ZXN0
cy5weQpAQCAtMSw0ICsxLDUgQEAKICMgQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogIyBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC01Myw2
ICs1NCw3IEBAIGNsYXNzIFJ1blRlc3RzKEFic3RyYWN0U3RlcCk6CiAgICAgICAgICAgICBPcHRp
b25zLml0ZXJhdGVfb25fbmV3X3Rlc3RzLAogICAgICAgICAgICAgT3B0aW9ucy5ub25faW50ZXJh
Y3RpdmUsCiAgICAgICAgICAgICBPcHRpb25zLnF1aWV0LAorICAgICAgICAgICAgT3B0aW9ucy5n
cm91cCwKICAgICAgICAgXQogCiAgICAgZGVmIHJ1bihzZWxmLCBzdGF0ZSk6CkBAIC02Myw2ICs2
NSwxMCBAQCBjbGFzcyBSdW5UZXN0cyhBYnN0cmFjdFN0ZXApOgogICAgICAgICBpZiBub3Qgc2Vs
Zi5fb3B0aW9ucy50ZXN0OgogICAgICAgICAgICAgcmV0dXJuCiAKKyAgICAgICAgaWYgaGFzYXR0
cihzZWxmLl9vcHRpb25zLCAiZ3JvdXAiKSBhbmQgc2VsZi5fb3B0aW9ucy5ncm91cCA9PSAianNj
IjoKKyAgICAgICAgICAgIHNlbGYuX3J1bl9qYXZhc2NyaXB0Y29yZV90ZXN0cygpCisgICAgICAg
ICAgICByZXR1cm4KKwogICAgICAgICBweXRob25fdW5pdHRlc3RzX2NvbW1hbmQgPSBzZWxmLl90
b29sLmRlcHJlY2F0ZWRfcG9ydCgpLnJ1bl9weXRob25fdW5pdHRlc3RzX2NvbW1hbmQoKQogICAg
ICAgICBpZiBweXRob25fdW5pdHRlc3RzX2NvbW1hbmQ6CiAgICAgICAgICAgICBfbG9nLmluZm8o
IlJ1bm5pbmcgUHl0aG9uIHVuaXQgdGVzdHMiKQpAQCAtMTQzLDMgKzE0OSw3IEBAIGNsYXNzIFJ1
blRlc3RzKEFic3RyYWN0U3RlcCk6CiAgICAgICAgICAgICBhcmdzLmFwcGVuZCgiLS1pdGVyYXRp
b25zPSVkIiAlIGl0ZXJhdGVfb25fbmV3X3Rlc3RzKQogCiAgICAgICAgIHNlbGYuX3Rvb2wuZXhl
Y3V0aXZlLnJ1bl9hbmRfdGhyb3dfaWZfZmFpbChhcmdzLCBjd2Q9c2VsZi5fdG9vbC5zY20oKS5j
aGVja291dF9yb290KQorCisgICAgZGVmIF9ydW5famF2YXNjcmlwdGNvcmVfdGVzdHMoc2VsZik6
CisgICAgICAgIGFyZ3MgPSBzZWxmLl90b29sLmRlcHJlY2F0ZWRfcG9ydCgpLnJ1bl9qYXZhc2Ny
aXB0Y29yZV90ZXN0c19jb21tYW5kKHNlbGYuX29wdGlvbnMuYnVpbGRfc3R5bGUpCisgICAgICAg
IHNlbGYuX3Rvb2wuZXhlY3V0aXZlLnJ1bl9hbmRfdGhyb3dfaWZfZmFpbChhcmdzLCBjd2Q9c2Vs
Zi5fdG9vbC5zY20oKS5jaGVja291dF9yb290KQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS90b29sL3N0ZXBzL3N0ZXBzX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS90b29sL3N0ZXBzL3N0ZXBzX3VuaXR0ZXN0LnB5CmluZGV4IDdkOTRhMTNiMzQ2M2Q5OGE0
NGY5NDlmODE0Y2M3MTIxYzA2OGFiNWQuLmE0ODQyYWE4OWE0YmVmNWNhZDM5Y2FiYjNmMmZmNTgy
NTdmYjdjNWQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9z
dGVwc191bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMv
c3RlcHNfdW5pdHRlc3QucHkKQEAgLTEsNCArMSw1IEBACiAjIENvcHlyaWdodCAoQykgMjAxMCBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMTYgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
IGFyZQpAQCAtOTgsNiArOTksNyBAQCBjbGFzcyBTdGVwc1Rlc3QodW5pdHRlc3QuVGVzdENhc2Up
OgogICAgICAgICBzZWxmLl9hc3NlcnRfc3RlcF9vdXRwdXRfd2l0aF9idWcoc3RlcHMuRW5zdXJl
QnVnSXNPcGVuQW5kQXNzaWduZWQsIDUwMDAyLCBleHBlY3RlZF9sb2dzKQogCiAgICAgZGVmIHRl
c3RfcnVudGVzdHNfYXJncyhzZWxmKToKKyAgICAgICAgc2VsZi5tYXhEaWZmID0gTm9uZQogICAg
ICAgICBtb2NrX29wdGlvbnMgPSBzZWxmLl9zdGVwX29wdGlvbnMoKQogICAgICAgICBtb2NrX29w
dGlvbnMubm9uX2ludGVyYWN0aXZlID0gRmFsc2UKICAgICAgICAgbW9ja19vcHRpb25zLmJ1aWxk
X3N0eWxlID0gInJlbGVhc2UiCkBAIC0xMTEsNyArMTEzLDcgQEAgTU9DSyBydW5fYW5kX3Rocm93
X2lmX2ZhaWw6IFsnVG9vbHMvU2NyaXB0cy90ZXN0LXdlYmtpdHB5J10sIGN3ZD0vbW9jay1jaGVj
a291dAogUnVubmluZyBQZXJsIHVuaXQgdGVzdHMKIE1PQ0sgcnVuX2FuZF90aHJvd19pZl9mYWls
OiBbJ1Rvb2xzL1NjcmlwdHMvdGVzdC13ZWJraXRwZXJsJ10sIGN3ZD0vbW9jay1jaGVja291dAog
UnVubmluZyBKYXZhU2NyaXB0Q29yZSB0ZXN0cwotTU9DSyBydW5fYW5kX3Rocm93X2lmX2ZhaWw6
IFsnVG9vbHMvU2NyaXB0cy9ydW4tamF2YXNjcmlwdGNvcmUtdGVzdHMnXSwgY3dkPS9tb2NrLWNo
ZWNrb3V0CitNT0NLIHJ1bl9hbmRfdGhyb3dfaWZfZmFpbDogWydUb29scy9TY3JpcHRzL3J1bi1q
YXZhc2NyaXB0Y29yZS10ZXN0cycsICctLW5vLWZhaWwtZmFzdCcsICctLWpzb24tb3V0cHV0PWpz
Y190ZXN0X3Jlc3VsdHMuanNvbiddLCBjd2Q9L21vY2stY2hlY2tvdXQKIFJ1bm5pbmcgYmluZGlu
Z3MgZ2VuZXJhdGlvbiB0ZXN0cwogTU9DSyBydW5fYW5kX3Rocm93X2lmX2ZhaWw6IFsnVG9vbHMv
U2NyaXB0cy9ydW4tYmluZGluZ3MtdGVzdHMnXSwgY3dkPS9tb2NrLWNoZWNrb3V0CiBSdW5uaW5n
IHJ1bi13ZWJraXQtdGVzdHMKQEAgLTEyMCw2ICsxMjIsNyBAQCBNT0NLIHJ1bl9hbmRfdGhyb3df
aWZfZmFpbDogWydUb29scy9TY3JpcHRzL3J1bi13ZWJraXQtdGVzdHMnLCAnLS1yZWxlYXNlJywg
Jy0tcQogICAgICAgICBPdXRwdXRDYXB0dXJlKCkuYXNzZXJ0X291dHB1dHMoc2VsZiwgc3RlcC5y
dW4sIFt7fV0sIGV4cGVjdGVkX2xvZ3M9ZXhwZWN0ZWRfbG9ncykKIAogICAgIGRlZiB0ZXN0X3J1
bnRlc3RzX2RlYnVnX2FyZ3Moc2VsZik6CisgICAgICAgIHNlbGYubWF4RGlmZiA9IE5vbmUKICAg
ICAgICAgbW9ja19vcHRpb25zID0gc2VsZi5fc3RlcF9vcHRpb25zKCkKICAgICAgICAgbW9ja19v
cHRpb25zLm5vbl9pbnRlcmFjdGl2ZSA9IEZhbHNlCiAgICAgICAgIG1vY2tfb3B0aW9ucy5idWls
ZF9zdHlsZSA9ICJkZWJ1ZyIKQEAgLTEzMyw3ICsxMzYsNyBAQCBNT0NLIHJ1bl9hbmRfdGhyb3df
aWZfZmFpbDogWydUb29scy9TY3JpcHRzL3Rlc3Qtd2Via2l0cHknXSwgY3dkPS9tb2NrLWNoZWNr
b3V0CiBSdW5uaW5nIFBlcmwgdW5pdCB0ZXN0cwogTU9DSyBydW5fYW5kX3Rocm93X2lmX2ZhaWw6
IFsnVG9vbHMvU2NyaXB0cy90ZXN0LXdlYmtpdHBlcmwnXSwgY3dkPS9tb2NrLWNoZWNrb3V0CiBS
dW5uaW5nIEphdmFTY3JpcHRDb3JlIHRlc3RzCi1NT0NLIHJ1bl9hbmRfdGhyb3dfaWZfZmFpbDog
WydUb29scy9TY3JpcHRzL3J1bi1qYXZhc2NyaXB0Y29yZS10ZXN0cyddLCBjd2Q9L21vY2stY2hl
Y2tvdXQKK01PQ0sgcnVuX2FuZF90aHJvd19pZl9mYWlsOiBbJ1Rvb2xzL1NjcmlwdHMvcnVuLWph
dmFzY3JpcHRjb3JlLXRlc3RzJywgJy0tbm8tZmFpbC1mYXN0JywgJy0tanNvbi1vdXRwdXQ9anNj
X3Rlc3RfcmVzdWx0cy5qc29uJ10sIGN3ZD0vbW9jay1jaGVja291dAogUnVubmluZyBiaW5kaW5n
cyBnZW5lcmF0aW9uIHRlc3RzCiBNT0NLIHJ1bl9hbmRfdGhyb3dfaWZfZmFpbDogWydUb29scy9T
Y3JpcHRzL3J1bi1iaW5kaW5ncy10ZXN0cyddLCBjd2Q9L21vY2stY2hlY2tvdXQKIFJ1bm5pbmcg
cnVuLXdlYmtpdC10ZXN0cwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>298714</attachid>
            <date>2017-01-12 14:55:41 -0800</date>
            <delta_ts>2017-01-12 17:19:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-162458-20170112145401.patch</filename>
            <type>text/plain</type>
            <size>49065</size>
            <attacher name="Srinivasan Vijayaraghavan">webkit</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA2Mzc3CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOWI3NTZhN2Y2MTZlMzQ0YjFhYmFjNjFkZmVkMmExZWI4
NmY3ZTQ0ZC4uNGY0YjA5Yzk4MjhlMTE2YzE5N2IzMzk5ZTRhZjBhNDFmMWYyZDdkNSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgy
IEBACisyMDE3LTAxLTA1ICBTcmluaXZhc2FuIFZpamF5YXJhZ2hhdmFuICA8c3ZpamF5YXJhZ2hh
dmFuQGFwcGxlLmNvbT4KKworICAgICAgICBFV1Mgc2hvdWxkIHJ1biBKYXZhU2NyaXB0Q29yZSB0
ZXN0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYy
NDU4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvZXdzLmpzb246IEFkZCBjb25maWcgaW5mbyBm
b3IgSlNDIEVXUy4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvcG9y
dHMucHk6IEFkZCBzdXBwb3J0IGZvciBKU0MgRVdTIGluIE1hYyBQb3J0LgorICAgICAgICAoRGVw
cmVjYXRlZFBvcnQuYnVpbGRfanNjX2NvbW1hbmQpOiBBZGRlZCAtIGNvbW1hbmQgdG8gYnVpbGQg
SlNDIG9ubHkgKHF1aWNrZXIgdGhhbiBidWlsZGluZyBhbGwgb2YgV2ViS2l0KS4KKyAgICAgICAg
KERlcHJlY2F0ZWRQb3J0LnJ1bl9qYXZhc2NyaXB0Y29yZV90ZXN0c19jb21tYW5kKTogQWxsb3cg
SlNDIEVXUyB0byBvbmx5IHJ1biBKU0MgdGVzdHMuCisgICAgICAgIChNYWNQb3J0LnJ1bl93ZWJr
aXRfdGVzdHNfY29tbWFuZCk6IENoZWNrIGZvciBKU0MuCisgICAgICAgICogU2NyaXB0cy93ZWJr
aXRweS9jb21tb24vbmV0L2pzY3Rlc3RyZXN1bHRzLnB5OiBBZGRlZC4KKyAgICAgICAgKEpTQ1Rl
c3RSZXN1bHRzKToKKyAgICAgICAgKEpTQ1Rlc3RSZXN1bHRzLnJlc3VsdHNfZnJvbV9zdHJpbmcp
OiBVc2UganNvbiBsaWJyYXJ5IHRvIHBhcnNlIHJlc3VsdHMuCisgICAgICAgIChKU0NUZXN0UmVz
dWx0cy5fX2luaXRfXyk6IEluaXRpYWxpemUgbWVtYmVycy4KKyAgICAgICAgKEpTQ1Rlc3RSZXN1
bHRzLl9fZXFfXyk6IFRoaXMgZW5hYmxlcyB1bml0IHRlc3RpbmcuCisgICAgICAgIChKU0NUZXN0
UmVzdWx0cy5zdHJlc3NfdGVzdF9mYWlsdXJlcyk6IEdldHRlci4KKyAgICAgICAgKEpTQ1Rlc3RS
ZXN1bHRzLmFsbF9hcGlfdGVzdHNfcGFzc2VkKTogR2V0dGVyLgorICAgICAgICAoSlNDVGVzdFJl
c3VsdHMuYWxsX3Bhc3NlZCk6IEdldHRlci4KKyAgICAgICAgKEpTQ1Rlc3RSZXN1bHRzLmZhaWxp
bmdfdGVzdF9yZXN1bHRzKTogR2V0dGVyLiBTb21lIG9mIHRoZXNlIGV4aXN0IGZvciBpbnRlcm9w
YWJpbGl0eSByZWFzb25zLgorICAgICAgICAoSlNDVGVzdFJlc3VsdHMudGVzdF9yZXN1bHRzKTog
R2V0dGVyLgorICAgICAgICAoSlNDVGVzdFJlc3VsdHMuZmFpbGluZ190ZXN0cyk6IEdldHRlci4K
KyAgICAgICAgKEpTQ1Rlc3RSZXN1bHRzLmRpZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xpbWl0KTog
R2V0dGVyLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvanNjZXdzX3VuaXR0
ZXN0LnB5OiBBZGRlZC4KKyAgICAgICAgKE1vY2tQYXRjaEFuYWx5c2lzVGFzayk6IE1vY2tlZC1v
dXQgdmVyc2lvbiBvZiBQYXRjaEFuYWx5c2lzVGFzayB0aGF0IGRvZXNuJ3QgcnVuIGNvbW1hbmRz
LgorICAgICAgICAoTW9ja1BhdGNoQW5hbHlzaXNUYXNrLl9faW5pdF9fKTogU2V0cyBhdHRyaWJ1
dGVzLgorICAgICAgICAoTW9ja1BhdGNoQW5hbHlzaXNUYXNrLl90ZXN0KTogT3ZlcnJpZGUgdG8g
bm90IHJ1biBjb21tYW5kLgorICAgICAgICAoTW9ja1BhdGNoQW5hbHlzaXNUYXNrLl9idWlsZF9h
bmRfdGVzdF93aXRob3V0X3BhdGNoKTogT3ZlcnJpZGUgdG8gbm90IHJ1biBjb21tYW5kLgorICAg
ICAgICAoTW9ja1BhdGNoQW5hbHlzaXNUYXNrLnZhbGlkYXRlKTogQXNzdW1lIG1vY2tlZCBwYXRj
aCBpcyB2YWxpZCBmb3IgcHVycG9zZXMgb2YgdGVzdGluZyByZXRyeSBsb2dpYy4KKyAgICAgICAg
KE1vY2tQYXRjaEFuYWx5c2lzVGFzay50ZXN0X3J1bl9jb3VudCk6IFNwZWNpZmljIHRvIHRoZSBt
b2NrZWQgdmVyc2lvbiwgdG8gdGVzdCByZXRyeSBsb2dpYy4KKyAgICAgICAgKE1vY2tKU0NFYXJs
eVdhcm5pbmdTeXN0ZW0pOiBNb2NrZWQtb3V0IHZlcnNpb24gb2YgQWJzdGFyY3RFYXJseVdhcm5p
bmdTeXN0ZW0gc28gd2UgY2FuIHByb3ZpZGUgdGVzdCByZXN1bHRzLgorICAgICAgICAoTW9ja0pT
Q0Vhcmx5V2FybmluZ1N5c3RlbS5fX2luaXRfXyk6IFNldHMgYXR0cmlidXRlcywgYWxzbyBzZXRz
IGdyb3VwIHRvIGpzYy4KKyAgICAgICAgKE1vY2tKU0NFYXJseVdhcm5pbmdTeXN0ZW0udGVzdF9y
ZXN1bHRzKTogUmV0dXJucyB0ZXN0IHJlc3VsdHMgcHJvdmlkZWQgYnkgdXMsIGluc3RlYWQgb2Yg
dXNpbmcgYSBKU09OIHJlYWRlci4KKyAgICAgICAgKEpTQ0Vhcmx5V2FybmluZ1N5c3RlbVRlc3Qp
OiBDbGFzcyB0byB0ZXN0IHJldHJ5IGxvZ2ljIGluIGJlbG93IHNpdHVhdGlvbnMuCisgICAgICAg
IChKU0NFYXJseVdhcm5pbmdTeXN0ZW1UZXN0Ll9jcmVhdGVfdGFzayk6IEhlbHBlciBmdW5jdGlv
biB0byBhYnN0cmFjdCBvdXQgY29tbW9uIGNvZGUuCisgICAgICAgIChKU0NFYXJseVdhcm5pbmdT
eXN0ZW1UZXN0LnRlc3Rfc3VjY2Vzc19jYXNlKTogQ2xlYW4gcGF0Y2ggb24gY2xlYW4gdHJlZS4K
KyAgICAgICAgKEpTQ0Vhcmx5V2FybmluZ1N5c3RlbVRlc3QudGVzdF90ZXN0X2ZhaWx1cmUpOiBG
YWlsZWQgcGF0Y2ggb24gY2xlYW4gdHJlZS4KKyAgICAgICAgKEpTQ0Vhcmx5V2FybmluZ1N5c3Rl
bVRlc3QudGVzdF9maXgpOiBQYXRjaCB0aGF0IGZpeGVzIGFsbCB0cmVlIHJlZG5lc3MuCisgICAg
ICAgIChKU0NFYXJseVdhcm5pbmdTeXN0ZW1UZXN0LnRlc3RfaW5lZmZlY3RpdmVfcGF0Y2gpOiBQ
YXRjaCB0aGF0IGhhcyBzYW1lIGZhaWx1cmVzIGFzIHRyZWUuCisgICAgICAgIChKU0NFYXJseVdh
cm5pbmdTeXN0ZW1UZXN0LnRlc3RfcGFydGlhbGx5X2VmZmVjdGl2ZV9wYXRjaCk6IFBhdGNoIGZp
eGVzIHNvbWUgZmFpbHVyZXMgYnV0IGFkZHMgbm8gbmV3IGZhaWx1cmVzLgorICAgICAgICAoSlND
RWFybHlXYXJuaW5nU3lzdGVtVGVzdC50ZXN0X2RpZmZlcmVudF90ZXN0X2ZhaWx1cmVzKTogUGF0
Y2ggdGhhdCBoYXMgc29tZSBmYWlsdXJlcyBub3QgcHJlc2VudCBpbiB0cmVlLgorICAgICAgICAq
IFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9qc2N0ZXN0cmVzdWx0c191bml0dGVzdC5weTog
QWRkZWQuCisgICAgICAgIChKU0NUZXN0UmVzdWx0c1Rlc3QpOiBDbGFzcyB0byB0ZXN0IEpTQ1Rl
c3RSZXN1bHRzLgorICAgICAgICAoSlNDVGVzdFJlc3VsdHNUZXN0LnRlc3RfcmVzdWx0c19mcm9t
X3N0cmluZyk6IFRlc3RzIHBhcnNpbmcuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29s
L2JvdC9qc2N0ZXN0cmVzdWx0c3JlYWRlci5weTogQWRkZWQuCisgICAgICAgIChKU0NUZXN0UmVz
dWx0c1JlYWRlcik6IFJlYWRzIHJlc3VsdHMgZmlsZS4KKyAgICAgICAgKEpTQ1Rlc3RSZXN1bHRz
UmVhZGVyLl9faW5pdF9fKTogU2V0cyBhdHRyaWJ1dGVzLgorICAgICAgICAoSlNDVGVzdFJlc3Vs
dHNSZWFkZXIuX3JlYWRfZmlsZV9jb250ZW50cyk6IFJlYWRzIGZpbGUuCisgICAgICAgIChKU0NU
ZXN0UmVzdWx0c1JlYWRlci5fY3JlYXRlX2pzY190ZXN0X3Jlc3VsdHMpOiBDcmVhdGVzIGEgSlND
VGVzdFJlc3VsdHMgb2JqZWN0LgorICAgICAgICAoSlNDVGVzdFJlc3VsdHNSZWFkZXIucmVzdWx0
cyk6IEludm9rZXMgX2NyZWF0ZV9qc2NfdGVzdF9yZXN1bHRzIHRvIHJldHVybiBhIEpTQ1Rlc3RS
ZXN1bHRzIG9iamVjdC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L3BhdGNo
YW5hbHlzaXN0YXNrLnB5OgorICAgICAgICAoUGF0Y2hBbmFseXNpc1Rhc2suX2J1aWxkKTogQ2hl
Y2sgZm9yIEpTQy4KKyAgICAgICAgKFBhdGNoQW5hbHlzaXNUYXNrLl9idWlsZF93aXRob3V0X3Bh
dGNoKTogQ2hlY2sgZm9yIEpTQy4KKyAgICAgICAgKFBhdGNoQW5hbHlzaXNUYXNrLl90ZXN0KTog
Q2hlY2sgZm9yIEpTQy4KKyAgICAgICAgKFBhdGNoQW5hbHlzaXNUYXNrLl9idWlsZF9hbmRfdGVz
dF93aXRob3V0X3BhdGNoKTogQ2hlY2sgZm9yIEpTQy4KKyAgICAgICAgKFBhdGNoQW5hbHlzaXNU
YXNrLl90ZXN0X3BhdGNoKTogQWRkIHJldHJ5IGxvZ2ljIGZvciBKU0MuCisgICAgICAgICogU2Ny
aXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Vhcmx5d2FybmluZ3N5c3RlbS5weToKKyAgICAg
ICAgKEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtLmJlZ2luX3dvcmtfcXVldWUpOiBVc2UgSlND
VGVzdFJlc3VsdHNSZWFkZXIgaW5zdGVhZCBvZiBMYXlvdXRUZXN0UmVzdWx0c1JlYWRlciBpbiBK
U0MgRVdTLgorICAgICAgICAoQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0udGVzdF9yZXN1bHRz
KTogX2xheW91dF90ZXN0X3Jlc3VsdHNfcmVhZGVyIC0+IF90ZXN0X3Jlc3VsdHNfcmVhZGVyLgor
ICAgICAgICAoQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0uYXJjaGl2ZV9sYXN0X3Rlc3RfcmVz
dWx0cyk6IF9sYXlvdXRfdGVzdF9yZXN1bHRzX3JlYWRlciAtPiBfdGVzdF9yZXN1bHRzX3JlYWRl
ci4KKyAgICAgICAgKEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtLmdyb3VwKTogVGhpcyBhdHRy
aWJ1dGUgZGV0ZXJtaW5lcyB0aGUgdHlwZSBvZiBFV1MgKGVnLiBKU0MpLgorICAgICAgICAoQWJz
dHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0ubG9hZF9ld3NfY2xhc3Nlcyk6IEFkZCBfZ3JvdXAuCisg
ICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Vhcmx5d2FybmluZ3N5c3Rl
bV91bml0dGVzdC5weToKKyAgICAgICAgKEVhcmx5V2FybmluZ1N5c3RlbVRlc3QuX2RlZmF1bHRf
ZXhwZWN0ZWRfbG9ncyk6IEFkZCBfZ3JvdXAuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90
b29sL3N0ZXBzL2J1aWxkLnB5OgorICAgICAgICAoQnVpbGQub3B0aW9ucyk6IENoZWNrIGZvciBK
U0MuCisgICAgICAgIChCdWlsZC5idWlsZCk6IENoZWNrIGZvciBKU0MuCisgICAgICAgIChCdWls
ZC5ydW4pOiBDaGVjayBmb3IgSlNDLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9z
dGVwcy9vcHRpb25zLnB5OgorICAgICAgICAoT3B0aW9ucyk6IEFkZCAtLWdyb3VwIGNvbW1hbmQg
bGluZSBvcHRpb24uCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3J1bnRl
c3RzLnB5OgorICAgICAgICAoUnVuVGVzdHMub3B0aW9ucyk6IEFkZCBncm91cC4KKyAgICAgICAg
KFJ1blRlc3RzLnJ1bik6IENoZWNrIGZvciBKU0MuCisgICAgICAgIChSdW5UZXN0cy5fcnVuX3dl
YmtpdF90ZXN0cyk6IENoZWNrIGZvciBKU0MuCisgICAgICAgIChSdW5UZXN0cyk6IEFkZCBfZ3Jv
dXAgYXR0cmlidXRlLgorICAgICAgICAoUnVuVGVzdHMuX3J1bl9qYXZhc2NyaXB0Y29yZV90ZXN0
cyk6IE5ldy4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvc3RlcHNfdW5p
dHRlc3QucHk6IENoYW5nZSBleHBlY3RlZCBjb21tYW5kIGZvciBydW5uaW5nIGpzYyB0ZXN0cy4K
KwogMjAxNi0wOS0yNSAgR3l1eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgW0VGTF0gQWRqdXN0IEVGTCBpbmRlbnRhdGlvbiB0byBFRkwgTWluaUJyb3dzZXIK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9ld3MuanNv
biBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9ld3MuanNvbgppbmRleCAz
NWQ0OTg1YWIwZjkzZDEyN2IzNzIxZTQ2MDFjZDZkODlkZmNjZjNjLi5lNTM0MGZlNWMzYzIxYWU4
MWFkMWVmN2UwM2Y3ZmI4MWYzODM5Y2ZmIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2NvbW1vbi9jb25maWcvZXdzLmpzb24KKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9j
b21tb24vY29uZmlnL2V3cy5qc29uCkBAIC01MCw1ICs1MCwxMSBAQAogICAgICAgICAicG9ydCI6
ICJtYWMiLAogICAgICAgICAibmFtZSI6ICJtYWMtMzJiaXQtZXdzIiwKICAgICAgICAgImFyY2hp
dGVjdHVyZSI6ICJpMzg2IgorICAgIH0sCisgICAgIkpTQyBFV1MiOiB7CisgICAgICAgICJwb3J0
IjogIm1hYyIsCisgICAgICAgICJuYW1lIjogImpzYy1ld3MiLAorICAgICAgICAiZ3JvdXAiOiAi
anNjIiwKKyAgICAgICAgInJ1blRlc3RzIjogdHJ1ZQogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9wb3J0cy5weSBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9wb3J0cy5weQppbmRleCBhMGQ1MGRjYjZlYTBiNWZk
ZTBiM2MxN2VmMTU5Y2VhZmVlMWEyZTk4Li40ZmNjODY4NDM2MjliMzYzNmI1Y2E0MDZiMzFjN2Fh
YjYwNjMwMmZhIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25m
aWcvcG9ydHMucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL3Bv
cnRzLnB5CkBAIC0xLDYgKzEsNiBAQAogIyBDb3B5cmlnaHQgKEMpIDIwMDksIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjIENvcHlyaWdodCAoQykgMjAxMyBOb2tpYSBDb3Jwb3Jh
dGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCi0jIENvcHlyaWdodCAoQykgMjAxNSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAxNS0yMDE2
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucyBhcmUKQEAgLTEwMyw4ICsxMDMsMTkgQEAgY2xhc3MgRGVwcmVjYXRlZFBvcnQob2JqZWN0
KToKICAgICAgICAgICAgIGNvbW1hbmQuYXBwZW5kKCItLXJlbGVhc2UiKQogICAgICAgICByZXR1
cm4gY29tbWFuZAogCi0gICAgZGVmIHJ1bl9qYXZhc2NyaXB0Y29yZV90ZXN0c19jb21tYW5kKHNl
bGYpOgotICAgICAgICByZXR1cm4gc2VsZi5zY3JpcHRfc2hlbGxfY29tbWFuZCgicnVuLWphdmFz
Y3JpcHRjb3JlLXRlc3RzIikKKyAgICBkZWYgYnVpbGRfanNjX2NvbW1hbmQoc2VsZiwgYnVpbGRf
c3R5bGU9Tm9uZSk6CisgICAgICAgIGNvbW1hbmQgPSBzZWxmLnNjcmlwdF9zaGVsbF9jb21tYW5k
KCJidWlsZC1qc2MiKQorICAgICAgICBpZiBidWlsZF9zdHlsZSA9PSAiZGVidWciOgorICAgICAg
ICAgICAgY29tbWFuZC5hcHBlbmQoIi0tZGVidWciKQorICAgICAgICByZXR1cm4gY29tbWFuZAor
CisgICAgZGVmIHJ1bl9qYXZhc2NyaXB0Y29yZV90ZXN0c19jb21tYW5kKHNlbGYsIGJ1aWxkX3N0
eWxlPU5vbmUpOgorICAgICAgICBjb21tYW5kID0gc2VsZi5zY3JpcHRfc2hlbGxfY29tbWFuZCgi
cnVuLWphdmFzY3JpcHRjb3JlLXRlc3RzIikKKyAgICAgICAgY29tbWFuZC5hcHBlbmQoIi0tbm8t
ZmFpbC1mYXN0IikKKyAgICAgICAgY29tbWFuZC5hcHBlbmQoIi0tanNvbi1vdXRwdXQ9anNjX3Rl
c3RfcmVzdWx0cy5qc29uIikKKyAgICAgICAgaWYgKGJ1aWxkX3N0eWxlID09ICJkZWJ1ZyIpOgor
ICAgICAgICAgICAgY29tbWFuZC5hcHBlbmQoIi0tZGVidWciKQorICAgICAgICByZXR1cm4gY29t
bWFuZAogCiAgICAgZGVmIHJ1bl93ZWJraXRfdGVzdHNfY29tbWFuZChzZWxmLCBidWlsZF9zdHls
ZT1Ob25lKToKICAgICAgICAgY29tbWFuZCA9IHNlbGYuc2NyaXB0X3NoZWxsX2NvbW1hbmQoInJ1
bi13ZWJraXQtdGVzdHMiKQpAQCAtMTUwLDcgKzE2MSwxMCBAQCBjbGFzcyBJT1NTaW11bGF0b3JX
SzJQb3J0KERlcHJlY2F0ZWRQb3J0KToKIGNsYXNzIE1hY1BvcnQoRGVwcmVjYXRlZFBvcnQpOgog
ICAgIHBvcnRfZmxhZ19uYW1lID0gIm1hYyIKIAotICAgIGRlZiBydW5fd2Via2l0X3Rlc3RzX2Nv
bW1hbmQoc2VsZiwgYnVpbGRfc3R5bGU9Tm9uZSk6CisgICAgZGVmIHJ1bl93ZWJraXRfdGVzdHNf
Y29tbWFuZChzZWxmLCBidWlsZF9zdHlsZT1Ob25lLCB0ZXN0X3N1aXRlPU5vbmUpOgorICAgICAg
ICBpZiAodGVzdF9zdWl0ZSA9PSAianNjIik6CisgICAgICAgICAgICByZXR1cm4gc3VwZXIoTWFj
UG9ydCwgc2VsZikucnVuX2phdmFzY3JpcHRjb3JlX3Rlc3RzX2NvbW1hbmQoYnVpbGRfc3R5bGUp
CisKICAgICAgICAgY29tbWFuZCA9IHN1cGVyKE1hY1BvcnQsIHNlbGYpLnJ1bl93ZWJraXRfdGVz
dHNfY29tbWFuZChidWlsZF9zdHlsZSkKICAgICAgICAgY29tbWFuZC5hcHBlbmQoIi0tZHVtcC1y
ZW5kZXItdHJlZSIpCiAgICAgICAgIHJldHVybiBjb21tYW5kCmRpZmYgLS1naXQgYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvanNjdGVzdHJlc3VsdHMucHkgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvanNjdGVzdHJlc3VsdHMucHkKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGE3
ZmNiNGM2MGMyNThkOGFiMjdiN2YyNDk1ZmQ2NDE5OGQ0MzhlOQotLS0gL2Rldi9udWxsCisrKyBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9qc2N0ZXN0cmVzdWx0cy5weQpAQCAt
MCwwICsxLDcyIEBACisjIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4g
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAg
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyMgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElN
UExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorIyBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMCisjIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisjIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisjIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksCisjIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK2lt
cG9ydCBqc29uCitpbXBvcnQgbG9nZ2luZworCitfbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoX19u
YW1lX18pCisKKworY2xhc3MgSlNDVGVzdFJlc3VsdHMob2JqZWN0KToKKyAgICBAY2xhc3NtZXRo
b2QKKyAgICBkZWYgcmVzdWx0c19mcm9tX3N0cmluZyhjbHMsIHN0cmluZyk6CisgICAgICAgIGlm
IG5vdCBzdHJpbmc6CisgICAgICAgICAgICByZXR1cm4gTm9uZQorICAgICAgICBwYXJzZWRfcmVz
dWx0cyA9IGpzb24ubG9hZHMoc3RyaW5nKQorCisgICAgICAgIHJldHVybiBjbHMocGFyc2VkX3Jl
c3VsdHNbJ2FsbEFwaVRlc3RzUGFzc2VkJ10sIHBhcnNlZF9yZXN1bHRzWydzdHJlc3NUZXN0RmFp
bHVyZXMnXSkKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBhbGxfYXBpX3Rlc3RzX3Bhc3NlZCwg
c3RyZXNzX3Rlc3RfZmFpbHVyZXMpOgorICAgICAgICBzZWxmLl9hbGxfYXBpX3Rlc3RzX3Bhc3Nl
ZCA9IGFsbF9hcGlfdGVzdHNfcGFzc2VkCisgICAgICAgIHNlbGYuX3N0cmVzc190ZXN0X2ZhaWx1
cmVzID0gc3RyZXNzX3Rlc3RfZmFpbHVyZXMKKworICAgICAgICBzZWxmLl90ZXN0X3Jlc3VsdHMg
PSBzdHJlc3NfdGVzdF9mYWlsdXJlcworICAgICAgICBpZiBub3Qgc2VsZi5fYWxsX2FwaV90ZXN0
c19wYXNzZWQ6CisgICAgICAgICAgICBzZWxmLl90ZXN0X3Jlc3VsdHMuYXBwZW5kKCJhcGlUZXN0
cyIpCisKKyAgICBkZWYgX19lcV9fKHNlbGYsIG90aGVyKToKKyAgICAgICAgcmV0dXJuIHNlbGYu
X2FsbF9hcGlfdGVzdHNfcGFzc2VkID09IG90aGVyLl9hbGxfYXBpX3Rlc3RzX3Bhc3NlZCBhbmQg
c2V0KHNlbGYuX3N0cmVzc190ZXN0X2ZhaWx1cmVzKSA9PSBzZXQob3RoZXIuX3N0cmVzc190ZXN0
X2ZhaWx1cmVzKQorCisgICAgZGVmIF9fbGVfXyhzZWxmLCBvdGhlcik6CisgICAgICAgIHJldHVy
biBzZXQoc2VsZi50ZXN0X3Jlc3VsdHMoKSkgPD0gc2V0KG90aGVyLnRlc3RfcmVzdWx0cygpKQor
CisgICAgZGVmIHN0cmVzc190ZXN0X2ZhaWx1cmVzKHNlbGYpOgorICAgICAgICByZXR1cm4gc2Vs
Zi5fc3RyZXNzX3Rlc3RfZmFpbHVyZXMKKworICAgIGRlZiBhbGxfYXBpX3Rlc3RzX3Bhc3NlZChz
ZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX2FsbF9hcGlfdGVzdHNfcGFzc2VkCisKKyAgICBk
ZWYgYWxsX3Bhc3NlZChzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX2FsbF9hcGlfdGVzdHNf
cGFzc2VkIGFuZCBub3Qgc2VsZi5fc3RyZXNzX3Rlc3RfZmFpbHVyZXMKKworICAgIGRlZiBmYWls
aW5nX3Rlc3RfcmVzdWx0cyhzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuc3RyZXNzX3Rlc3Rf
ZmFpbHVyZXMoKQorCisgICAgZGVmIHRlc3RfcmVzdWx0cyhzZWxmKToKKyAgICAgICAgcmV0dXJu
IHNlbGYuX3Rlc3RfcmVzdWx0cworCisgICAgZGVmIGZhaWxpbmdfdGVzdHMoc2VsZik6CisgICAg
ICAgIHJldHVybiBzZWxmLl90ZXN0X3Jlc3VsdHMKKworICAgICMgTm8gZGVmaW5lZCBmYWlsdXJl
IGxpbWl0IGZvciBKU0MuCisgICAgZGVmIGRpZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xpbWl0KHNl
bGYpOgorICAgICAgICByZXR1cm4gRmFsc2UKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvY29tbW9uL25ldC9qc2N0ZXN0cmVzdWx0c191bml0dGVzdC5weSBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvY29tbW9uL25ldC9qc2N0ZXN0cmVzdWx0c191bml0dGVzdC5weQpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5hMWU0OWZkY2NjNjFkYTdkYWYxMGUzM2ZjYTRkYmZmZDQyZTVjZDY4Ci0tLSAvZGV2L251
bGwKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2pzY3Rlc3RyZXN1bHRz
X3VuaXR0ZXN0LnB5CkBAIC0wLDAgKzEsNDAgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
IyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAor
IyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyMgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMg
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKworaW1wb3J0IHVuaXR0ZXN0CisKK2Zyb20gd2Via2l0cHkuY29tbW9uLm5l
dC5qc2N0ZXN0cmVzdWx0cyBpbXBvcnQgSlNDVGVzdFJlc3VsdHMKKworCitjbGFzcyBKU0NUZXN0
UmVzdWx0c1Rlc3QodW5pdHRlc3QuVGVzdENhc2UpOgorICAgIGRlZiB0ZXN0X3Jlc3VsdHNfZnJv
bV9zdHJpbmcoc2VsZik6CisgICAgICAgIG5vX2ZhaWx1cmVzX3N0cmluZyA9ICd7ImFsbEFwaVRl
c3RzUGFzc2VkIjogdHJ1ZSwgInN0cmVzc1Rlc3RGYWlsdXJlcyI6W119JworICAgICAgICBub19m
YWlsdXJlc19yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgW10pCisgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwobm9fZmFpbHVyZXNfcmVzdWx0cywgSlNDVGVzdFJlc3VsdHMucmVzdWx0c19m
cm9tX3N0cmluZyhub19mYWlsdXJlc19zdHJpbmcpKQorCisgICAgICAgIGFwaV90ZXN0X2ZhaWx1
cmVzX3N0cmluZyA9ICd7ImFsbEFwaVRlc3RzUGFzc2VkIjogZmFsc2UsICJzdHJlc3NUZXN0RmFp
bHVyZXMiOltdfScKKyAgICAgICAgYXBpX3Rlc3RfZmFpbHVyZXNfcmVzdWx0cyA9IEpTQ1Rlc3RS
ZXN1bHRzKEZhbHNlLCBbXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhcGlfdGVzdF9mYWls
dXJlc19yZXN1bHRzLCBKU0NUZXN0UmVzdWx0cy5yZXN1bHRzX2Zyb21fc3RyaW5nKGFwaV90ZXN0
X2ZhaWx1cmVzX3N0cmluZykpCisKKyAgICAgICAgbWFueV9mYWlsdXJlc19zdHJpbmcgPSAneyJh
bGxBcGlUZXN0c1Bhc3NlZCI6IGZhbHNlLCAic3RyZXNzVGVzdEZhaWx1cmVzIjpbImVzNi55YW1s
L2VzNi90eXBlZF9hcnJheXNfSW50MTZBcnJheS5qcy5kZWZhdWx0IiwgImVzNi55YW1sL2VzNi90
eXBlZF9hcnJheXNfSW50OEFycmF5LmpzLmRlZmF1bHQiXX0nCisgICAgICAgIG1hbnlfZmFpbHVy
ZXNfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKEZhbHNlLCBbImVzNi55YW1sL2VzNi90eXBlZF9h
cnJheXNfSW50MTZBcnJheS5qcy5kZWZhdWx0IiwgImVzNi55YW1sL2VzNi90eXBlZF9hcnJheXNf
SW50OEFycmF5LmpzLmRlZmF1bHQiXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtYW55X2Zh
aWx1cmVzX3Jlc3VsdHMsIEpTQ1Rlc3RSZXN1bHRzLnJlc3VsdHNfZnJvbV9zdHJpbmcobWFueV9m
YWlsdXJlc19zdHJpbmcpKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29s
L2JvdC9qc2Nld3NfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90
L2pzY2V3c191bml0dGVzdC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42YWY2ZWZmNmFjNjVhNDkyYmM5MmUwZGVm
OTMxNjRmZmJiZjFkYjhjCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS90b29sL2JvdC9qc2Nld3NfdW5pdHRlc3QucHkKQEAgLTAsMCArMSwxMzYgQEAKKyMgQ29weXJp
Z2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMg
Mi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
CisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IKKyMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyMgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworaW1wb3J0IGxvZ2dpbmcKK2ltcG9ydCB1
bml0dGVzdAorCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5uZXQuanNjdGVzdHJlc3VsdHMgaW1wb3J0
IEpTQ1Rlc3RSZXN1bHRzCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZlIGlt
cG9ydCBTY3JpcHRFcnJvcgorZnJvbSB3ZWJraXRweS50b29sLmJvdC5wYXRjaGFuYWx5c2lzdGFz
ayBpbXBvcnQgKgorZnJvbSB3ZWJraXRweS50b29sLmNvbW1hbmRzLmVhcmx5d2FybmluZ3N5c3Rl
bSBpbXBvcnQgQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0KK2Zyb20gd2Via2l0cHkudG9vbC5t
b2NrdG9vbCBpbXBvcnQgTW9ja1Rvb2wKKworX2xvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFt
ZV9fKQorCisKK2NsYXNzIE1vY2tQYXRjaEFuYWx5c2lzVGFzayhQYXRjaEFuYWx5c2lzVGFzayk6
CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGRlbGVnYXRlLCBwYXRjaCwgZmlyc3RfdGVzdF9hbGxf
cGFzc2VkKToKKyAgICAgICAgc2VsZi5fZGVsZWdhdGUgPSBkZWxlZ2F0ZQorICAgICAgICBzZWxm
Ll9wYXRjaCA9IHBhdGNoCisgICAgICAgIHNlbGYuX3NjcmlwdF9lcnJvciA9IE5vbmUKKyAgICAg
ICAgc2VsZi5fcmVzdWx0c19hcmNoaXZlX2Zyb21fcGF0Y2hfdGVzdF9ydW4gPSBOb25lCisgICAg
ICAgIHNlbGYuX3Jlc3VsdHNfZnJvbV9wYXRjaF90ZXN0X3J1biA9IE5vbmUKKyAgICAgICAgc2Vs
Zi5lcnJvciA9IE5vbmUKKyAgICAgICAgc2VsZi5fZmlyc3RfdGVzdF9hbGxfcGFzc2VkID0gZmly
c3RfdGVzdF9hbGxfcGFzc2VkCisgICAgICAgIHNlbGYuX3Rlc3RfcnVuX2NvdW50ID0gMAorCisg
ICAgZGVmIF90ZXN0KHNlbGYpOgorICAgICAgICBzZWxmLl90ZXN0X3J1bl9jb3VudCArPSAxCisK
KyAgICAgICAgaWYgc2VsZi5fZmlyc3RfdGVzdF9hbGxfcGFzc2VkID09IFRydWU6CisgICAgICAg
ICAgICByZXR1cm4gVHJ1ZQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZi5fc2NyaXB0
X2Vycm9yID0gU2NyaXB0RXJyb3IoIkV4cGVjdGVkIGZhaWx1cmUgaW4gcmVncmVzc2lvbiB0ZXN0
IikKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgZGVmIF9idWlsZF9hbmRfdGVzdF93
aXRob3V0X3BhdGNoKHNlbGYpOgorICAgICAgICBzZWxmLl90ZXN0X3J1bl9jb3VudCArPSAxCisg
ICAgICAgIHJldHVybiBUcnVlCisKKyAgICBkZWYgdmFsaWRhdGUoc2VsZik6CisgICAgICAgIHJl
dHVybiBUcnVlCisKKyAgICBkZWYgdGVzdF9ydW5fY291bnQoc2VsZik6CisgICAgICAgIHJldHVy
biBzZWxmLl90ZXN0X3J1bl9jb3VudAorCisKKyMgVGhpcyBpcyB0aGUgZGVsZWdhdGUgdG8gYmUg
dXNlZCB3aXRoIE1vY2tQYXRjaEFuYWx5c2lzVGFzaywgYWJvdmUuCitjbGFzcyBNb2NrSlNDRWFy
bHlXYXJuaW5nU3lzdGVtKEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtKToKKyAgICBkZWYgX19p
bml0X18oc2VsZiwgZmlyc3RfdGVzdF9yZXN1bHRzLCBjbGVhbl90ZXN0X3Jlc3VsdHMpOgorICAg
ICAgICBBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbS5fX2luaXRfXyhzZWxmKQorICAgICAgICBz
ZWxmLl9ncm91cCA9ICJqc2MiCisgICAgICAgIHNlbGYuX3Jlc3VsdHNfaW5fb3JkZXIgPSBbY2xl
YW5fdGVzdF9yZXN1bHRzLCBmaXJzdF90ZXN0X3Jlc3VsdHNdCisKKyAgICBkZWYgdGVzdF9yZXN1
bHRzKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5fcmVzdWx0c19pbl9vcmRlci5wb3AoKQor
CisKK2NsYXNzIEpTQ0Vhcmx5V2FybmluZ1N5c3RlbVRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgor
ICAgIGRlZiBfY3JlYXRlX3Rhc2soc2VsZiwgZmlyc3RfdGVzdF9yZXN1bHRzLCBjbGVhbl90ZXN0
X3Jlc3VsdHMpOgorICAgICAgICBxdWV1ZSA9IE1vY2tKU0NFYXJseVdhcm5pbmdTeXN0ZW0oZmly
c3RfdGVzdF9yZXN1bHRzLCBjbGVhbl90ZXN0X3Jlc3VsdHMpCisgICAgICAgIHRvb2wgPSBNb2Nr
VG9vbChsb2dfZXhlY3V0aXZlPVRydWUpCisgICAgICAgIHBhdGNoID0gdG9vbC5idWdzLmZldGNo
X2F0dGFjaG1lbnQoMTAwMDApCisgICAgICAgIHJldHVybiBNb2NrUGF0Y2hBbmFseXNpc1Rhc2so
cXVldWUsIHBhdGNoLCBmaXJzdF90ZXN0X3Jlc3VsdHMuYWxsX3Bhc3NlZCgpKQorCisgICAgZGVm
IHRlc3Rfc3VjY2Vzc19jYXNlKHNlbGYpOgorICAgICAgICBmaXJzdF90ZXN0X3Jlc3VsdHMgPSBK
U0NUZXN0UmVzdWx0cyhUcnVlLCBbXSkKKyAgICAgICAgY2xlYW5fdGVzdF9yZXN1bHRzID0gSlND
VGVzdFJlc3VsdHMoVHJ1ZSwgW10pCisgICAgICAgIHRhc2sgPSBzZWxmLl9jcmVhdGVfdGFzayhm
aXJzdF90ZXN0X3Jlc3VsdHMsIGNsZWFuX3Rlc3RfcmVzdWx0cykKKworICAgICAgICByZXR1cm5f
dmFsdWUgPSB0YXNrLl90ZXN0X3BhdGNoKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0YXNr
LnRlc3RfcnVuX2NvdW50KCksIDEpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmV0dXJuX3Zh
bHVlLCBUcnVlKQorCisgICAgZGVmIHRlc3RfdGVzdF9mYWlsdXJlKHNlbGYpOgorICAgICAgICBm
aXJzdF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbJ0ZhaWwuanMnXSkKKyAg
ICAgICAgY2xlYW5fdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgW10pCisgICAg
ICAgIHRhc2sgPSBzZWxmLl9jcmVhdGVfdGFzayhmaXJzdF90ZXN0X3Jlc3VsdHMsIGNsZWFuX3Rl
c3RfcmVzdWx0cykKKworICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFNjcmlwdEVycm9y
KToKKyAgICAgICAgICAgIHJldHVybl92YWx1ZSA9IHRhc2suX3Rlc3RfcGF0Y2goKQorICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKHRhc2sudGVzdF9ydW5fY291bnQoKSwgMikKKworICAgIGRlZiB0
ZXN0X2ZpeChzZWxmKToKKyAgICAgICAgZmlyc3RfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3Vs
dHMoVHJ1ZSwgW10pCisgICAgICAgIGNsZWFuX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRz
KFRydWUsIFsnRmFpbC5qcyddKQorICAgICAgICB0YXNrID0gc2VsZi5fY3JlYXRlX3Rhc2soZmly
c3RfdGVzdF9yZXN1bHRzLCBjbGVhbl90ZXN0X3Jlc3VsdHMpCisKKyAgICAgICAgcmV0dXJuX3Zh
bHVlID0gdGFzay5fdGVzdF9wYXRjaCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGFzay50
ZXN0X3J1bl9jb3VudCgpLCAxKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJldHVybl92YWx1
ZSwgVHJ1ZSkKKworICAgIGRlZiB0ZXN0X2luZWZmZWN0aXZlX3BhdGNoKHNlbGYpOgorICAgICAg
ICBmaXJzdF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhGYWxzZSwgWydmYWlsdXJlMS5q
cycsICdmYWlsdXJlMi5qcyddKQorICAgICAgICBjbGVhbl90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0
UmVzdWx0cyhGYWxzZSwgWydmYWlsdXJlMS5qcycsICdmYWlsdXJlMi5qcyddKQorICAgICAgICB0
YXNrID0gc2VsZi5fY3JlYXRlX3Rhc2soZmlyc3RfdGVzdF9yZXN1bHRzLCBjbGVhbl90ZXN0X3Jl
c3VsdHMpCisKKyAgICAgICAgcmV0dXJuX3ZhbHVlID0gdGFzay5fdGVzdF9wYXRjaCgpCisgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwodGFzay50ZXN0X3J1bl9jb3VudCgpLCAyKQorICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKHJldHVybl92YWx1ZSwgVHJ1ZSkKKworICAgIGRlZiB0ZXN0X3BhcnRp
YWxseV9lZmZlY3RpdmVfcGF0Y2goc2VsZik6CisgICAgICAgIGZpcnN0X3Rlc3RfcmVzdWx0cyA9
IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFsnZmFpbHVyZTIuanMnXSkKKyAgICAgICAgY2xlYW5fdGVz
dF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoRmFsc2UsIFsnZmFpbHVyZTEuanMnLCAnZmFpbHVy
ZTIuanMnXSkKKyAgICAgICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90YXNrKGZpcnN0X3Rlc3RfcmVz
dWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKQorCisgICAgICAgIHJldHVybl92YWx1ZSA9IHRhc2su
X3Rlc3RfcGF0Y2goKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRhc2sudGVzdF9ydW5fY291
bnQoKSwgMikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXR1cm5fdmFsdWUsIFRydWUpCisK
KyAgICBkZWYgdGVzdF9kaWZmZXJlbnRfdGVzdF9mYWlsdXJlcyhzZWxmKToKKyAgICAgICAgZmly
c3RfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoRmFsc2UsIFtdKQorICAgICAgICBjbGVh
bl90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbJ2ZhaWx1cmUxLmpzJywgJ2Zh
aWx1cmUyLmpzJ10pCisgICAgICAgIHRhc2sgPSBzZWxmLl9jcmVhdGVfdGFzayhmaXJzdF90ZXN0
X3Jlc3VsdHMsIGNsZWFuX3Rlc3RfcmVzdWx0cykKKworICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0
UmFpc2VzKFNjcmlwdEVycm9yKToKKyAgICAgICAgICAgIHJldHVybl92YWx1ZSA9IHRhc2suX3Rl
c3RfcGF0Y2goKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRhc2sudGVzdF9ydW5fY291bnQo
KSwgMikKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvanNjdGVz
dHJlc3VsdHNyZWFkZXIucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2pzY3Rl
c3RyZXN1bHRzcmVhZGVyLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA0MDI0NDUxZTgzNjVkOTNhYWU2N2ZmZTQ2
ZjRlYzkwNGM0NGE2NTQKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L3Rvb2wvYm90L2pzY3Rlc3RyZXN1bHRzcmVhZGVyLnB5CkBAIC0wLDAgKzEsNDcgQEAKKyMgQ29w
eXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIwor
IyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IKKyMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyMgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworaW1wb3J0IGxvZ2dpbmcKKworZnJv
bSB3ZWJraXRweS5jb21tb24ubmV0LmpzY3Rlc3RyZXN1bHRzIGltcG9ydCBKU0NUZXN0UmVzdWx0
cworCitfbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18pCisKKworY2xhc3MgSlNDVGVz
dFJlc3VsdHNSZWFkZXIob2JqZWN0KToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgaG9zdCwgcmVz
dWx0c19kaXJlY3RvcnkpOgorICAgICAgICBzZWxmLl9ob3N0ID0gaG9zdAorICAgICAgICBzZWxm
Ll9yZXN1bHRzX2RpcmVjdG9yeSA9IHJlc3VsdHNfZGlyZWN0b3J5CisKKyAgICBkZWYgX3JlYWRf
ZmlsZV9jb250ZW50cyhzZWxmLCBwYXRoKToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcmV0
dXJuIHNlbGYuX2hvc3QuZmlsZXN5c3RlbS5yZWFkX3RleHRfZmlsZShwYXRoKQorICAgICAgICBl
eGNlcHQgSU9FcnJvciwgZTogICMgRmlsZSBkb2VzIG5vdCBleGlzdCBvciBjYW4ndCBiZSByZWFk
LgorICAgICAgICAgICAgcmV0dXJuIE5vbmUKKworICAgIGRlZiBfY3JlYXRlX2pzY190ZXN0X3Jl
c3VsdHMoc2VsZik6CisgICAgICAgIHJlc3VsdHNfcGF0aCA9IHNlbGYuX2hvc3QuZmlsZXN5c3Rl
bS5qb2luKHNlbGYuX3Jlc3VsdHNfZGlyZWN0b3J5LCAianNjX3Rlc3RfcmVzdWx0cy5qc29uIikK
KyAgICAgICAgY29udGVudHMgPSBzZWxmLl9yZWFkX2ZpbGVfY29udGVudHMocmVzdWx0c19wYXRo
KQorICAgICAgICByZXR1cm4gSlNDVGVzdFJlc3VsdHMucmVzdWx0c19mcm9tX3N0cmluZyhjb250
ZW50cykKKworICAgIGRlZiByZXN1bHRzKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5fY3Jl
YXRlX2pzY190ZXN0X3Jlc3VsdHMoKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS90b29sL2JvdC9wYXRjaGFuYWx5c2lzdGFzay5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
dG9vbC9ib3QvcGF0Y2hhbmFseXNpc3Rhc2sucHkKaW5kZXggNzUyMzE2NDE2YzVmOWQwYTNlNTll
ZjZkMDVlMzE3ODVmOTE3NDYyOS4uMjNiYmU3ZjdhY2I5ZmJiNGMzMGVkNjAxMmFhZGNhNjk1NDNh
YmNiOCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9wYXRjaGFu
YWx5c2lzdGFzay5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L3BhdGNo
YW5hbHlzaXN0YXNrLnB5CkBAIC0xLDQgKzEsNSBAQAogIyBDb3B5cmlnaHQgKGMpIDIwMTAgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChjKSAyMDE2IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBh
cmUKQEAgLTEyMywyNyArMTI0LDM1IEBAIGNsYXNzIFBhdGNoQW5hbHlzaXNUYXNrKG9iamVjdCk6
CiAgICAgICAgICJQYXRjaCBkb2VzIG5vdCBhcHBseSIpCiAKICAgICBkZWYgX2J1aWxkKHNlbGYp
OgotICAgICAgICByZXR1cm4gc2VsZi5fcnVuX2NvbW1hbmQoWworICAgICAgICBhcmdzID0gWwog
ICAgICAgICAgICAgImJ1aWxkIiwKICAgICAgICAgICAgICItLW5vLWNsZWFuIiwKICAgICAgICAg
ICAgICItLW5vLXVwZGF0ZSIsCiAgICAgICAgICAgICAiLS1idWlsZC1zdHlsZT0lcyIgJSBzZWxm
Ll9kZWxlZ2F0ZS5idWlsZF9zdHlsZSgpLAotICAgICAgICBdLAotICAgICAgICAiQnVpbHQgcGF0
Y2giLAotICAgICAgICAiUGF0Y2ggZG9lcyBub3QgYnVpbGQiKQorICAgICAgICAgICAgIi0tZ3Jv
dXA9JXMiICUgc2VsZi5fZGVsZWdhdGUuZ3JvdXAoKSwKKyAgICAgICAgXQorCisgICAgICAgIHJl
dHVybiBzZWxmLl9ydW5fY29tbWFuZCgKKyAgICAgICAgICAgIGFyZ3MsCisgICAgICAgICAgICAi
QnVpbHQgcGF0Y2giLAorICAgICAgICAgICAgIlBhdGNoIGRvZXMgbm90IGJ1aWxkIikKIAogICAg
IGRlZiBfYnVpbGRfd2l0aG91dF9wYXRjaChzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYuX3J1
bl9jb21tYW5kKFsKKyAgICAgICAgYXJncyA9IFsKICAgICAgICAgICAgICJidWlsZCIsCiAgICAg
ICAgICAgICAiLS1mb3JjZS1jbGVhbiIsCiAgICAgICAgICAgICAiLS1uby11cGRhdGUiLAogICAg
ICAgICAgICAgIi0tYnVpbGQtc3R5bGU9JXMiICUgc2VsZi5fZGVsZWdhdGUuYnVpbGRfc3R5bGUo
KSwKLSAgICAgICAgXSwKLSAgICAgICAgIkFibGUgdG8gYnVpbGQgd2l0aG91dCBwYXRjaCIsCi0g
ICAgICAgICJVbmFibGUgdG8gYnVpbGQgd2l0aG91dCBwYXRjaCIpCisgICAgICAgICAgICAiLS1n
cm91cD0lcyIgJSBzZWxmLl9kZWxlZ2F0ZS5ncm91cCgpLAorICAgICAgICBdCisKKyAgICAgICAg
cmV0dXJuIHNlbGYuX3J1bl9jb21tYW5kKAorICAgICAgICAgICAgYXJncywKKyAgICAgICAgICAg
ICJBYmxlIHRvIGJ1aWxkIHdpdGhvdXQgcGF0Y2giLAorICAgICAgICAgICAgIlVuYWJsZSB0byBi
dWlsZCB3aXRob3V0IHBhdGNoIikKIAogICAgIGRlZiBfdGVzdChzZWxmKToKLSAgICAgICAgcmV0
dXJuIHNlbGYuX3J1bl9jb21tYW5kKFsKKyAgICAgICAgYXJncyA9IFsKICAgICAgICAgICAgICJi
dWlsZC1hbmQtdGVzdCIsCiAgICAgICAgICAgICAiLS1uby1jbGVhbiIsCiAgICAgICAgICAgICAi
LS1uby11cGRhdGUiLApAQCAtMTUxLDEyICsxNjAsMTYgQEAgY2xhc3MgUGF0Y2hBbmFseXNpc1Rh
c2sob2JqZWN0KToKICAgICAgICAgICAgICItLXRlc3QiLAogICAgICAgICAgICAgIi0tbm9uLWlu
dGVyYWN0aXZlIiwKICAgICAgICAgICAgICItLWJ1aWxkLXN0eWxlPSVzIiAlIHNlbGYuX2RlbGVn
YXRlLmJ1aWxkX3N0eWxlKCksCi0gICAgICAgIF0sCi0gICAgICAgICJQYXNzZWQgdGVzdHMiLAot
ICAgICAgICAiUGF0Y2ggZG9lcyBub3QgcGFzcyB0ZXN0cyIpCisgICAgICAgICAgICAiLS1ncm91
cD0lcyIgJSBzZWxmLl9kZWxlZ2F0ZS5ncm91cCgpLAorICAgICAgICBdCisKKyAgICAgICAgcmV0
dXJuIHNlbGYuX3J1bl9jb21tYW5kKAorICAgICAgICAgICAgYXJncywKKyAgICAgICAgICAgICJQ
YXNzZWQgdGVzdHMiLAorICAgICAgICAgICAgIlBhdGNoIGRvZXMgbm90IHBhc3MgdGVzdHMiKQog
CiAgICAgZGVmIF9idWlsZF9hbmRfdGVzdF93aXRob3V0X3BhdGNoKHNlbGYpOgotICAgICAgICBy
ZXR1cm4gc2VsZi5fcnVuX2NvbW1hbmQoWworICAgICAgICBhcmdzID0gWwogICAgICAgICAgICAg
ImJ1aWxkLWFuZC10ZXN0IiwKICAgICAgICAgICAgICItLWZvcmNlLWNsZWFuIiwKICAgICAgICAg
ICAgICItLW5vLXVwZGF0ZSIsCkBAIC0xNjQsOSArMTc3LDEzIEBAIGNsYXNzIFBhdGNoQW5hbHlz
aXNUYXNrKG9iamVjdCk6CiAgICAgICAgICAgICAiLS10ZXN0IiwKICAgICAgICAgICAgICItLW5v
bi1pbnRlcmFjdGl2ZSIsCiAgICAgICAgICAgICAiLS1idWlsZC1zdHlsZT0lcyIgJSBzZWxmLl9k
ZWxlZ2F0ZS5idWlsZF9zdHlsZSgpLAotICAgICAgICBdLAotICAgICAgICAiQWJsZSB0byBwYXNz
IHRlc3RzIHdpdGhvdXQgcGF0Y2giLAotICAgICAgICAiVW5hYmxlIHRvIHBhc3MgdGVzdHMgd2l0
aG91dCBwYXRjaCAodHJlZSBpcyByZWQ/KSIpCisgICAgICAgICAgICAiLS1ncm91cD0lcyIgJSBz
ZWxmLl9kZWxlZ2F0ZS5ncm91cCgpLAorICAgICAgICBdCisKKyAgICAgICAgcmV0dXJuIHNlbGYu
X3J1bl9jb21tYW5kKAorICAgICAgICAgICAgYXJncywKKyAgICAgICAgICAgICJBYmxlIHRvIHBh
c3MgdGVzdHMgd2l0aG91dCBwYXRjaCIsCisgICAgICAgICAgICAiVW5hYmxlIHRvIHBhc3MgdGVz
dHMgd2l0aG91dCBwYXRjaCAodHJlZSBpcyByZWQ/KSIpCiAKICAgICBkZWYgX2xhbmQoc2VsZik6
CiAgICAgICAgICMgVW5jbGVhciBpZiB0aGlzIHNob3VsZCBwYXNzIC0tcXVpZXQgb3Igbm90LiAg
SWYgLS1wYXJlbnQtY29tbWFuZCBhbHdheXMgZG9lcyB0aGUgcmVwb3J0aW5nLCB0aGVuIGl0IHNo
b3VsZC4KQEAgLTIxMCw2OSArMjI3LDg2IEBAIGNsYXNzIFBhdGNoQW5hbHlzaXNUYXNrKG9iamVj
dCk6CiAgICAgICAgIGlmIHNlbGYuX3Rlc3QoKToKICAgICAgICAgICAgIHJldHVybiBUcnVlCiAK
LSAgICAgICAgIyBOb3RlOiBhcmNoaXZlX2xhc3RfdGVzdF9yZXN1bHRzIGRlbGV0ZXMgdGhlIHJl
c3VsdHMgZGlyZWN0b3J5LCBtYWtpbmcgdGhlc2UgY2FsbHMgb3JkZXItc2Vuc2l0dmUuCi0gICAg
ICAgICMgV2UgY291bGQgcmVtb3ZlIHRoaXMgZGVwZW5kZW5jeSBieSBidWlsZGluZyB0aGUgdGVz
dF9yZXN1bHRzIGZyb20gdGhlIGFyY2hpdmUuCi0gICAgICAgIGZpcnN0X3Jlc3VsdHMgPSBzZWxm
Ll9kZWxlZ2F0ZS50ZXN0X3Jlc3VsdHMoKQotICAgICAgICBmaXJzdF9yZXN1bHRzX2FyY2hpdmUg
PSBzZWxmLl9kZWxlZ2F0ZS5hcmNoaXZlX2xhc3RfdGVzdF9yZXN1bHRzKHNlbGYuX3BhdGNoKQot
ICAgICAgICBmaXJzdF9zY3JpcHRfZXJyb3IgPSBzZWxmLl9zY3JpcHRfZXJyb3IKLSAgICAgICAg
Zmlyc3RfZmFpbHVyZV9zdGF0dXNfaWQgPSBzZWxmLmZhaWx1cmVfc3RhdHVzX2lkCi0KLSAgICAg
ICAgaWYgc2VsZi5fdGVzdCgpIGFuZCBub3QgZmlyc3RfcmVzdWx0cy5kaWRfZXhjZWVkX3Rlc3Rf
ZmFpbHVyZV9saW1pdCgpOgotICAgICAgICAgICAgIyBPbmx5IHJlcG9ydCBmbGFreSB0ZXN0cyBp
ZiB3ZSB3ZXJlIHN1Y2Nlc3NmdWwgYXQgcGFyc2luZyByZXN1bHRzLmpzb24gYW5kIGFyY2hpdmlu
ZyByZXN1bHRzLgotICAgICAgICAgICAgaWYgZmlyc3RfcmVzdWx0cyBhbmQgZmlyc3RfcmVzdWx0
c19hcmNoaXZlOgotICAgICAgICAgICAgICAgIHNlbGYuX3JlcG9ydF9mbGFreV90ZXN0cyhmaXJz
dF9yZXN1bHRzLmZhaWxpbmdfdGVzdF9yZXN1bHRzKCksIGZpcnN0X3Jlc3VsdHNfYXJjaGl2ZSkK
LSAgICAgICAgICAgIHJldHVybiBUcnVlCi0KLSAgICAgICAgc2Vjb25kX3Jlc3VsdHMgPSBzZWxm
Ll9kZWxlZ2F0ZS50ZXN0X3Jlc3VsdHMoKQotICAgICAgICBzZWNvbmRfcmVzdWx0c19hcmNoaXZl
ID0gc2VsZi5fZGVsZWdhdGUuYXJjaGl2ZV9sYXN0X3Rlc3RfcmVzdWx0cyhzZWxmLl9wYXRjaCkK
LSAgICAgICAgc2Vjb25kX3NjcmlwdF9lcnJvciA9IHNlbGYuX3NjcmlwdF9lcnJvcgotICAgICAg
ICBzZWNvbmRfZmFpbHVyZV9zdGF0dXNfaWQgPSBzZWxmLmZhaWx1cmVfc3RhdHVzX2lkCisgICAg
ICAgICMgRklYTUU6IEFic3RyYWN0IG91dCB0aGUgcmV0cnkgbG9naWMgaW5zdGVhZCBvZiBjYXNp
bmcgb24gdGhlIHRlc3Qgc3VpdGUgaGVyZS4KKyAgICAgICAgaWYgc2VsZi5fZGVsZWdhdGUuZ3Jv
dXAoKSA9PSAianNjIjoKKyAgICAgICAgICAgIGZpcnN0X3Jlc3VsdHMgPSBzZWxmLl9kZWxlZ2F0
ZS50ZXN0X3Jlc3VsdHMoKQorICAgICAgICAgICAgZmlyc3Rfc2NyaXB0X2Vycm9yID0gc2VsZi5f
c2NyaXB0X2Vycm9yCisgICAgICAgICAgICBpZiBmaXJzdF9yZXN1bHRzLmFsbF9wYXNzZWQoKToK
KyAgICAgICAgICAgICAgICByZXR1cm4gVHJ1ZQogCi0gICAgICAgIGlmIHNlY29uZF9yZXN1bHRz
LmRpZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xpbWl0KCkgYW5kIGZpcnN0X3Jlc3VsdHMuZGlkX2V4
Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQoKToKICAgICAgICAgICAgIHNlbGYuX2J1aWxkX2FuZF90
ZXN0X3dpdGhvdXRfcGF0Y2goKQogICAgICAgICAgICAgY2xlYW5fdHJlZV9yZXN1bHRzID0gc2Vs
Zi5fZGVsZWdhdGUudGVzdF9yZXN1bHRzKCkKIAotICAgICAgICAgICAgaWYgKGxlbihmaXJzdF9y
ZXN1bHRzLmZhaWxpbmdfdGVzdHMoKSkgLSBsZW4oY2xlYW5fdHJlZV9yZXN1bHRzLmZhaWxpbmdf
dGVzdHMoKSkpIDw9IDU6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgICAg
ICAjIElmIHRoZSBwYXRjaCdzIGZhaWx1cmVzIGFyZSBhIHN1YnNldCBvZiB0aGUgdHJlZSdzIGZh
aWx1cmVzLCB0aGUgcGF0Y2ggc2hvdWxkIHBhc3MgRVdTLgorICAgICAgICAgICAgaWYgZmlyc3Rf
cmVzdWx0cyA8PSBjbGVhbl90cmVlX3Jlc3VsdHM6CisgICAgICAgICAgICAgICAgcmV0dXJuIFRy
dWUKIAotICAgICAgICAgICAgc2VsZi5mYWlsdXJlX3N0YXR1c19pZCA9IGZpcnN0X2ZhaWx1cmVf
c3RhdHVzX2lkCisgICAgICAgICAgICByZXR1cm4gc2VsZi5yZXBvcnRfZmFpbHVyZShOb25lLCBm
aXJzdF9yZXN1bHRzLCBmaXJzdF9zY3JpcHRfZXJyb3IpCiAKLSAgICAgICAgICAgIHJldHVybiBz
ZWxmLnJlcG9ydF9mYWlsdXJlKGZpcnN0X3Jlc3VsdHNfYXJjaGl2ZSwgZmlyc3RfcmVzdWx0cywg
Zmlyc3Rfc2NyaXB0X2Vycm9yKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgIyBOb3RlOiBh
cmNoaXZlX2xhc3RfdGVzdF9yZXN1bHRzIGRlbGV0ZXMgdGhlIHJlc3VsdHMgZGlyZWN0b3J5LCBt
YWtpbmcgdGhlc2UgY2FsbHMgb3JkZXItc2Vuc2l0dmUuCisgICAgICAgICAgICAjIFdlIGNvdWxk
IHJlbW92ZSB0aGlzIGRlcGVuZGVuY3kgYnkgYnVpbGRpbmcgdGhlIHRlc3RfcmVzdWx0cyBmcm9t
IHRoZSBhcmNoaXZlLgorICAgICAgICAgICAgZmlyc3RfcmVzdWx0cyA9IHNlbGYuX2RlbGVnYXRl
LnRlc3RfcmVzdWx0cygpCisgICAgICAgICAgICBmaXJzdF9yZXN1bHRzX2FyY2hpdmUgPSBzZWxm
Ll9kZWxlZ2F0ZS5hcmNoaXZlX2xhc3RfdGVzdF9yZXN1bHRzKHNlbGYuX3BhdGNoKQorICAgICAg
ICAgICAgZmlyc3Rfc2NyaXB0X2Vycm9yID0gc2VsZi5fc2NyaXB0X2Vycm9yCisgICAgICAgICAg
ICBmaXJzdF9mYWlsdXJlX3N0YXR1c19pZCA9IHNlbGYuZmFpbHVyZV9zdGF0dXNfaWQKIAotICAg
ICAgICBpZiBzZWNvbmRfcmVzdWx0cy5kaWRfZXhjZWVkX3Rlc3RfZmFpbHVyZV9saW1pdCgpOgot
ICAgICAgICAgICAgc2VsZi5fc2hvdWxkX2RlZmVyX3BhdGNoX29yX3Rocm93KGZpcnN0X3Jlc3Vs
dHMuZmFpbGluZ190ZXN0X3Jlc3VsdHMoKSwgZmlyc3RfcmVzdWx0c19hcmNoaXZlLCBmaXJzdF9z
Y3JpcHRfZXJyb3IsIGZpcnN0X2ZhaWx1cmVfc3RhdHVzX2lkKQotICAgICAgICAgICAgcmV0dXJu
IEZhbHNlCisgICAgICAgICAgICBpZiBzZWxmLl90ZXN0KCkgYW5kIG5vdCBmaXJzdF9yZXN1bHRz
LmRpZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xpbWl0KCk6CisgICAgICAgICAgICAgICAgIyBPbmx5
IHJlcG9ydCBmbGFreSB0ZXN0cyBpZiB3ZSB3ZXJlIHN1Y2Nlc3NmdWwgYXQgcGFyc2luZyByZXN1
bHRzLmpzb24gYW5kIGFyY2hpdmluZyByZXN1bHRzLgorICAgICAgICAgICAgICAgIGlmIGZpcnN0
X3Jlc3VsdHMgYW5kIGZpcnN0X3Jlc3VsdHNfYXJjaGl2ZToKKyAgICAgICAgICAgICAgICAgICAg
c2VsZi5fcmVwb3J0X2ZsYWt5X3Rlc3RzKGZpcnN0X3Jlc3VsdHMuZmFpbGluZ190ZXN0X3Jlc3Vs
dHMoKSwgZmlyc3RfcmVzdWx0c19hcmNoaXZlKQorICAgICAgICAgICAgICAgIHJldHVybiBUcnVl
CiAKLSAgICAgICAgaWYgZmlyc3RfcmVzdWx0cy5kaWRfZXhjZWVkX3Rlc3RfZmFpbHVyZV9saW1p
dCgpOgotICAgICAgICAgICAgc2VsZi5fc2hvdWxkX2RlZmVyX3BhdGNoX29yX3Rocm93KHNlY29u
ZF9yZXN1bHRzLmZhaWxpbmdfdGVzdF9yZXN1bHRzKCksIHNlY29uZF9yZXN1bHRzX2FyY2hpdmUs
IHNlY29uZF9zY3JpcHRfZXJyb3IsIHNlY29uZF9mYWlsdXJlX3N0YXR1c19pZCkKLSAgICAgICAg
ICAgIHJldHVybiBGYWxzZQorICAgICAgICAgICAgc2Vjb25kX3Jlc3VsdHMgPSBzZWxmLl9kZWxl
Z2F0ZS50ZXN0X3Jlc3VsdHMoKQorICAgICAgICAgICAgc2Vjb25kX3Jlc3VsdHNfYXJjaGl2ZSA9
IHNlbGYuX2RlbGVnYXRlLmFyY2hpdmVfbGFzdF90ZXN0X3Jlc3VsdHMoc2VsZi5fcGF0Y2gpCisg
ICAgICAgICAgICBzZWNvbmRfc2NyaXB0X2Vycm9yID0gc2VsZi5fc2NyaXB0X2Vycm9yCisgICAg
ICAgICAgICBzZWNvbmRfZmFpbHVyZV9zdGF0dXNfaWQgPSBzZWxmLmZhaWx1cmVfc3RhdHVzX2lk
CiAKLSAgICAgICAgaWYgc2VsZi5fcmVzdWx0c19mYWlsZWRfZGlmZmVyZW50X3Rlc3RzKGZpcnN0
X3Jlc3VsdHMsIHNlY29uZF9yZXN1bHRzKToKLSAgICAgICAgICAgIGZpcnN0X2ZhaWxpbmdfcmVz
dWx0c19zZXQgPSBmcm96ZW5zZXQoZmlyc3RfcmVzdWx0cy5mYWlsaW5nX3Rlc3RfcmVzdWx0cygp
KQotICAgICAgICAgICAgc2Vjb25kX2ZhaWxpbmdfcmVzdWx0c19zZXQgPSBmcm96ZW5zZXQoc2Vj
b25kX3Jlc3VsdHMuZmFpbGluZ190ZXN0X3Jlc3VsdHMoKSkKKyAgICAgICAgICAgIGlmIHNlY29u
ZF9yZXN1bHRzLmRpZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xpbWl0KCkgYW5kIGZpcnN0X3Jlc3Vs
dHMuZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQoKToKKyAgICAgICAgICAgICAgICBzZWxm
Ll9idWlsZF9hbmRfdGVzdF93aXRob3V0X3BhdGNoKCkKKyAgICAgICAgICAgICAgICBjbGVhbl90
cmVlX3Jlc3VsdHMgPSBzZWxmLl9kZWxlZ2F0ZS50ZXN0X3Jlc3VsdHMoKQogCi0gICAgICAgICAg
ICB0ZXN0c190aGF0X29ubHlfZmFpbGVkX2ZpcnN0ID0gZmlyc3RfZmFpbGluZ19yZXN1bHRzX3Nl
dC5kaWZmZXJlbmNlKHNlY29uZF9mYWlsaW5nX3Jlc3VsdHNfc2V0KQotICAgICAgICAgICAgc2Vs
Zi5fcmVwb3J0X2ZsYWt5X3Rlc3RzKHRlc3RzX3RoYXRfb25seV9mYWlsZWRfZmlyc3QsIGZpcnN0
X3Jlc3VsdHNfYXJjaGl2ZSkKKyAgICAgICAgICAgICAgICBpZiAobGVuKGZpcnN0X3Jlc3VsdHMu
ZmFpbGluZ190ZXN0cygpKSAtIGxlbihjbGVhbl90cmVlX3Jlc3VsdHMuZmFpbGluZ190ZXN0cygp
KSkgPD0gNToKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCiAKLSAgICAgICAgICAg
IHRlc3RzX3RoYXRfb25seV9mYWlsZWRfc2Vjb25kID0gc2Vjb25kX2ZhaWxpbmdfcmVzdWx0c19z
ZXQuZGlmZmVyZW5jZShmaXJzdF9mYWlsaW5nX3Jlc3VsdHNfc2V0KQotICAgICAgICAgICAgc2Vs
Zi5fcmVwb3J0X2ZsYWt5X3Rlc3RzKHRlc3RzX3RoYXRfb25seV9mYWlsZWRfc2Vjb25kLCBzZWNv
bmRfcmVzdWx0c19hcmNoaXZlKQorICAgICAgICAgICAgICAgIHNlbGYuZmFpbHVyZV9zdGF0dXNf
aWQgPSBmaXJzdF9mYWlsdXJlX3N0YXR1c19pZAogCi0gICAgICAgICAgICB0ZXN0c190aGF0X2Nv
bnNpc3RlbnRseV9mYWlsZWQgPSBmaXJzdF9mYWlsaW5nX3Jlc3VsdHNfc2V0LmludGVyc2VjdGlv
bihzZWNvbmRfZmFpbGluZ19yZXN1bHRzX3NldCkKLSAgICAgICAgICAgIGlmIHRlc3RzX3RoYXRf
Y29uc2lzdGVudGx5X2ZhaWxlZDoKLSAgICAgICAgICAgICAgICBpZiBzZWxmLl9zaG91bGRfZGVm
ZXJfcGF0Y2hfb3JfdGhyb3codGVzdHNfdGhhdF9jb25zaXN0ZW50bHlfZmFpbGVkLCBmaXJzdF9y
ZXN1bHRzX2FyY2hpdmUsIGZpcnN0X3NjcmlwdF9lcnJvciwgZmlyc3RfZmFpbHVyZV9zdGF0dXNf
aWQpOgotICAgICAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UgICMgRGVmZXIgcGF0Y2gKKyAg
ICAgICAgICAgICAgICByZXR1cm4gc2VsZi5yZXBvcnRfZmFpbHVyZShmaXJzdF9yZXN1bHRzX2Fy
Y2hpdmUsIGZpcnN0X3Jlc3VsdHMsIGZpcnN0X3NjcmlwdF9lcnJvcikKIAotICAgICAgICAgICAg
IyBBdCB0aGlzIHBvaW50IHdlIGtub3cgdGhhdCBhdCBsZWFzdCBvbmUgdGVzdCBmbGFrZWQsIGJ1
dCBubyBjb25zaXN0ZW50IGZhaWx1cmVzCi0gICAgICAgICAgICAjIHdlcmUgaW50cm9kdWNlZC4g
VGhpcyBpcyBhIGJpdCBvZiBhIGdyZXktem9uZS4KLSAgICAgICAgICAgIHJldHVybiBGYWxzZSAg
IyBEZWZlciBwYXRjaAorICAgICAgICAgICAgaWYgc2Vjb25kX3Jlc3VsdHMuZGlkX2V4Y2VlZF90
ZXN0X2ZhaWx1cmVfbGltaXQoKToKKyAgICAgICAgICAgICAgICBzZWxmLl9zaG91bGRfZGVmZXJf
cGF0Y2hfb3JfdGhyb3coZmlyc3RfcmVzdWx0cy5mYWlsaW5nX3Rlc3RfcmVzdWx0cygpLCBmaXJz
dF9yZXN1bHRzX2FyY2hpdmUsIGZpcnN0X3NjcmlwdF9lcnJvciwgZmlyc3RfZmFpbHVyZV9zdGF0
dXNfaWQpCisgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICAgICAgICAgIGlmIGZp
cnN0X3Jlc3VsdHMuZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQoKToKKyAgICAgICAgICAg
ICAgICBzZWxmLl9zaG91bGRfZGVmZXJfcGF0Y2hfb3JfdGhyb3coc2Vjb25kX3Jlc3VsdHMuZmFp
bGluZ190ZXN0X3Jlc3VsdHMoKSwgc2Vjb25kX3Jlc3VsdHNfYXJjaGl2ZSwgc2Vjb25kX3Njcmlw
dF9lcnJvciwgc2Vjb25kX2ZhaWx1cmVfc3RhdHVzX2lkKQorICAgICAgICAgICAgICAgIHJldHVy
biBGYWxzZQogCi0gICAgICAgIGlmIHNlbGYuX3Nob3VsZF9kZWZlcl9wYXRjaF9vcl90aHJvdyhm
aXJzdF9yZXN1bHRzLmZhaWxpbmdfdGVzdF9yZXN1bHRzKCksIGZpcnN0X3Jlc3VsdHNfYXJjaGl2
ZSwgZmlyc3Rfc2NyaXB0X2Vycm9yLCBmaXJzdF9mYWlsdXJlX3N0YXR1c19pZCk6Ci0gICAgICAg
ICAgICByZXR1cm4gRmFsc2UgICMgRGVmZXIgcGF0Y2gKKyAgICAgICAgICAgIGlmIHNlbGYuX3Jl
c3VsdHNfZmFpbGVkX2RpZmZlcmVudF90ZXN0cyhmaXJzdF9yZXN1bHRzLCBzZWNvbmRfcmVzdWx0
cyk6CisgICAgICAgICAgICAgICAgZmlyc3RfZmFpbGluZ19yZXN1bHRzX3NldCA9IGZyb3plbnNl
dChmaXJzdF9yZXN1bHRzLmZhaWxpbmdfdGVzdF9yZXN1bHRzKCkpCisgICAgICAgICAgICAgICAg
c2Vjb25kX2ZhaWxpbmdfcmVzdWx0c19zZXQgPSBmcm96ZW5zZXQoc2Vjb25kX3Jlc3VsdHMuZmFp
bGluZ190ZXN0X3Jlc3VsdHMoKSkKIAotICAgICAgICAjIEF0IHRoaXMgcG9pbnQsIHdlIGtub3cg
dGhhdCB0aGUgZmlyc3QgYW5kIHNlY29uZCBydW5zIGhhZCB0aGUgZXhhY3Qgc2FtZSBmYWlsdXJl
cywKLSAgICAgICAgIyBhbmQgdGhhdCB0aG9zZSBmYWlsdXJlcyBhcmUgYWxsIHByZXNlbnQgb24g
dGhlIGNsZWFuIHRyZWUsIHNvIHdlIGNhbiBzYXkgd2l0aCBjZXJ0YWludHkKLSAgICAgICAgIyB0
aGF0IHRoZSBwYXRjaCBpcyBnb29kLgotICAgICAgICByZXR1cm4gVHJ1ZQorICAgICAgICAgICAg
ICAgIHRlc3RzX3RoYXRfb25seV9mYWlsZWRfZmlyc3QgPSBmaXJzdF9mYWlsaW5nX3Jlc3VsdHNf
c2V0LmRpZmZlcmVuY2Uoc2Vjb25kX2ZhaWxpbmdfcmVzdWx0c19zZXQpCisgICAgICAgICAgICAg
ICAgc2VsZi5fcmVwb3J0X2ZsYWt5X3Rlc3RzKHRlc3RzX3RoYXRfb25seV9mYWlsZWRfZmlyc3Qs
IGZpcnN0X3Jlc3VsdHNfYXJjaGl2ZSkKKworICAgICAgICAgICAgICAgIHRlc3RzX3RoYXRfb25s
eV9mYWlsZWRfc2Vjb25kID0gc2Vjb25kX2ZhaWxpbmdfcmVzdWx0c19zZXQuZGlmZmVyZW5jZShm
aXJzdF9mYWlsaW5nX3Jlc3VsdHNfc2V0KQorICAgICAgICAgICAgICAgIHNlbGYuX3JlcG9ydF9m
bGFreV90ZXN0cyh0ZXN0c190aGF0X29ubHlfZmFpbGVkX3NlY29uZCwgc2Vjb25kX3Jlc3VsdHNf
YXJjaGl2ZSkKKworICAgICAgICAgICAgICAgIHRlc3RzX3RoYXRfY29uc2lzdGVudGx5X2ZhaWxl
ZCA9IGZpcnN0X2ZhaWxpbmdfcmVzdWx0c19zZXQuaW50ZXJzZWN0aW9uKHNlY29uZF9mYWlsaW5n
X3Jlc3VsdHNfc2V0KQorICAgICAgICAgICAgICAgIGlmIHRlc3RzX3RoYXRfY29uc2lzdGVudGx5
X2ZhaWxlZDoKKyAgICAgICAgICAgICAgICAgICAgaWYgc2VsZi5fc2hvdWxkX2RlZmVyX3BhdGNo
X29yX3Rocm93KHRlc3RzX3RoYXRfY29uc2lzdGVudGx5X2ZhaWxlZCwgZmlyc3RfcmVzdWx0c19h
cmNoaXZlLCBmaXJzdF9zY3JpcHRfZXJyb3IsIGZpcnN0X2ZhaWx1cmVfc3RhdHVzX2lkKToKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZSAgIyBEZWZlciBwYXRjaAorCisgICAg
ICAgICAgICAgICAgIyBBdCB0aGlzIHBvaW50IHdlIGtub3cgdGhhdCBhdCBsZWFzdCBvbmUgdGVz
dCBmbGFrZWQsIGJ1dCBubyBjb25zaXN0ZW50IGZhaWx1cmVzCisgICAgICAgICAgICAgICAgIyB3
ZXJlIGludHJvZHVjZWQuIFRoaXMgaXMgYSBiaXQgb2YgYSBncmV5LXpvbmUuCisgICAgICAgICAg
ICAgICAgcmV0dXJuIEZhbHNlICAjIERlZmVyIHBhdGNoCisKKyAgICAgICAgICAgIGlmIHNlbGYu
X3Nob3VsZF9kZWZlcl9wYXRjaF9vcl90aHJvdyhmaXJzdF9yZXN1bHRzLmZhaWxpbmdfdGVzdF9y
ZXN1bHRzKCksIGZpcnN0X3Jlc3VsdHNfYXJjaGl2ZSwgZmlyc3Rfc2NyaXB0X2Vycm9yLCBmaXJz
dF9mYWlsdXJlX3N0YXR1c19pZCk6CisgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlICAjIERl
ZmVyIHBhdGNoCisKKyAgICAgICAgICAgICMgQXQgdGhpcyBwb2ludCwgd2Uga25vdyB0aGF0IHRo
ZSBmaXJzdCBhbmQgc2Vjb25kIHJ1bnMgaGFkIHRoZSBleGFjdCBzYW1lIGZhaWx1cmVzLAorICAg
ICAgICAgICAgIyBhbmQgdGhhdCB0aG9zZSBmYWlsdXJlcyBhcmUgYWxsIHByZXNlbnQgb24gdGhl
IGNsZWFuIHRyZWUsIHNvIHdlIGNhbiBzYXkgd2l0aCBjZXJ0YWludHkKKyAgICAgICAgICAgICMg
dGhhdCB0aGUgcGF0Y2ggaXMgZ29vZC4KKyAgICAgICAgICAgIHJldHVybiBUcnVlCiAKICAgICBk
ZWYgcmVzdWx0c19hcmNoaXZlX2Zyb21fcGF0Y2hfdGVzdF9ydW4oc2VsZiwgcGF0Y2gpOgogICAg
ICAgICBhc3NlcnQoc2VsZi5fcGF0Y2guaWQoKSA9PSBwYXRjaC5pZCgpKSAgIyBQYXRjaEFuYWx5
c2lzVGFzayBpcyBub3QgY3VycmVudGx5IHJlLXVzZWFibGUuCmRpZmYgLS1naXQgYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZWFybHl3YXJuaW5nc3lzdGVtLnB5IGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Vhcmx5d2FybmluZ3N5c3RlbS5weQpp
bmRleCA5YmMwNDE4NjBjZTY3NDU0NDU0ZTRiMjUxNDM4YTlkYmU1MjY0NTEzLi5jNWMxMjU5YjEy
MDE5ZGYxYmFiMjc1YTAyMDhhNzEwMDRjZjlkZjczIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZWFybHl3YXJuaW5nc3lzdGVtLnB5CisrKyBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9lYXJseXdhcm5pbmdzeXN0ZW0ucHkKQEAg
LTEsNCArMSw1IEBACiAjIENvcHlyaWdodCAoYykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKGMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtMjgsNiArMjksNyBA
QAogCiBpbXBvcnQganNvbgogaW1wb3J0IGxvZ2dpbmcKK2ltcG9ydCBvcwogZnJvbSBvcHRwYXJz
ZSBpbXBvcnQgbWFrZV9vcHRpb24KIAogZnJvbSB3ZWJraXRweS5jb21tb24uY29uZmlnLmNvbW1p
dHRlcnMgaW1wb3J0IENvbW1pdHRlckxpc3QKQEAgLTM2LDYgKzM4LDcgQEAgZnJvbSB3ZWJraXRw
eS5jb21tb24uc3lzdGVtLmZpbGVzeXN0ZW0gaW1wb3J0IEZpbGVTeXN0ZW0KIGZyb20gd2Via2l0
cHkuY29tbW9uLnN5c3RlbS5leGVjdXRpdmUgaW1wb3J0IFNjcmlwdEVycm9yCiBmcm9tIHdlYmtp
dHB5LnRvb2wuYm90LmVhcmx5d2FybmluZ3N5c3RlbXRhc2sgaW1wb3J0IEVhcmx5V2FybmluZ1N5
c3RlbVRhc2ssIEVhcmx5V2FybmluZ1N5c3RlbVRhc2tEZWxlZ2F0ZQogZnJvbSB3ZWJraXRweS50
b29sLmJvdC5sYXlvdXR0ZXN0cmVzdWx0c3JlYWRlciBpbXBvcnQgTGF5b3V0VGVzdFJlc3VsdHNS
ZWFkZXIKK2Zyb20gd2Via2l0cHkudG9vbC5ib3QuanNjdGVzdHJlc3VsdHNyZWFkZXIgaW1wb3J0
IEpTQ1Rlc3RSZXN1bHRzUmVhZGVyCiBmcm9tIHdlYmtpdHB5LnRvb2wuYm90LnBhdGNoYW5hbHlz
aXN0YXNrIGltcG9ydCBVbmFibGVUb0FwcGx5UGF0Y2gsIFBhdGNoSXNOb3RWYWxpZAogZnJvbSB3
ZWJraXRweS50b29sLmJvdC5xdWV1ZWVuZ2luZSBpbXBvcnQgUXVldWVFbmdpbmUKIGZyb20gd2Vi
a2l0cHkudG9vbC5jb21tYW5kcy5xdWV1ZXMgaW1wb3J0IEFic3RyYWN0UmV2aWV3UXVldWUKQEAg
LTUzLDcgKzU2LDEyIEBAIGNsYXNzIEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtKEFic3RyYWN0
UmV2aWV3UXVldWUsIEVhcmx5V2FybmluZ1N5c3RlbVRhc2tEZWxlCiAKICAgICBkZWYgYmVnaW5f
d29ya19xdWV1ZShzZWxmKToKICAgICAgICAgQWJzdHJhY3RSZXZpZXdRdWV1ZS5iZWdpbl93b3Jr
X3F1ZXVlKHNlbGYpCi0gICAgICAgIHNlbGYuX2xheW91dF90ZXN0X3Jlc3VsdHNfcmVhZGVyID0g
TGF5b3V0VGVzdFJlc3VsdHNSZWFkZXIoc2VsZi5fdG9vbCwgc2VsZi5fcG9ydC5yZXN1bHRzX2Rp
cmVjdG9yeSgpLCBzZWxmLl9sb2dfZGlyZWN0b3J5KCkpCisKKyAgICAgICAgaWYgc2VsZi5ncm91
cCgpID09ICJqc2MiOgorICAgICAgICAgICAgZGlyID0gb3MucGF0aC5kaXJuYW1lKG9zLnBhdGgu
ZGlybmFtZShvcy5wYXRoLmRpcm5hbWUoc2VsZi5fcG9ydC5yZXN1bHRzX2RpcmVjdG9yeSgpKSkp
CisgICAgICAgICAgICBzZWxmLl90ZXN0X3Jlc3VsdHNfcmVhZGVyID0gSlNDVGVzdFJlc3VsdHNS
ZWFkZXIoc2VsZi5fdG9vbCwgZGlyKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZi5f
dGVzdF9yZXN1bHRzX3JlYWRlciA9IExheW91dFRlc3RSZXN1bHRzUmVhZGVyKHNlbGYuX3Rvb2ws
IHNlbGYuX3BvcnQucmVzdWx0c19kaXJlY3RvcnkoKSwgc2VsZi5fbG9nX2RpcmVjdG9yeSgpKQog
CiAgICAgZGVmIF9mYWlsaW5nX3Rlc3RzX21lc3NhZ2Uoc2VsZiwgdGFzaywgcGF0Y2gpOgogICAg
ICAgICByZXN1bHRzID0gdGFzay5yZXN1bHRzX2Zyb21fcGF0Y2hfdGVzdF9ydW4ocGF0Y2gpCkBA
IC0xMTcsMTQgKzEyNSwxNyBAQCBjbGFzcyBBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbShBYnN0
cmFjdFJldmlld1F1ZXVlLCBFYXJseVdhcm5pbmdTeXN0ZW1UYXNrRGVsZQogICAgICAgICByZXR1
cm4gc2VsZi5fdXBkYXRlX3N0YXR1cyhtZXNzYWdlLCBwYXRjaD1wYXRjaCwgcmVzdWx0c19maWxl
PWZhaWx1cmVfbG9nKQogCiAgICAgZGVmIHRlc3RfcmVzdWx0cyhzZWxmKToKLSAgICAgICAgcmV0
dXJuIHNlbGYuX2xheW91dF90ZXN0X3Jlc3VsdHNfcmVhZGVyLnJlc3VsdHMoKQorICAgICAgICBy
ZXR1cm4gc2VsZi5fdGVzdF9yZXN1bHRzX3JlYWRlci5yZXN1bHRzKCkKIAogICAgIGRlZiBhcmNo
aXZlX2xhc3RfdGVzdF9yZXN1bHRzKHNlbGYsIHBhdGNoKToKLSAgICAgICAgcmV0dXJuIHNlbGYu
X2xheW91dF90ZXN0X3Jlc3VsdHNfcmVhZGVyLmFyY2hpdmUocGF0Y2gpCisgICAgICAgIHJldHVy
biBzZWxmLl90ZXN0X3Jlc3VsdHNfcmVhZGVyLmFyY2hpdmUocGF0Y2gpCiAKICAgICBkZWYgYnVp
bGRfc3R5bGUoc2VsZik6CiAgICAgICAgIHJldHVybiBzZWxmLl9idWlsZF9zdHlsZQogCisgICAg
ZGVmIGdyb3VwKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5fZ3JvdXAKKwogICAgIGRlZiBy
ZWZldGNoX3BhdGNoKHNlbGYsIHBhdGNoKToKICAgICAgICAgcmV0dXJuIHNlbGYuX3Rvb2wuYnVn
cy5mZXRjaF9hdHRhY2htZW50KHBhdGNoLmlkKCkpCiAKQEAgLTE1Niw1ICsxNjcsNiBAQCBjbGFz
cyBBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbShBYnN0cmFjdFJldmlld1F1ZXVlLCBFYXJseVdh
cm5pbmdTeXN0ZW1UYXNrRGVsZQogICAgICAgICAgICAgICAgICdfYnVpbGRfc3R5bGUnOiBjb25m
aWcuZ2V0KCdzdHlsZScsICJyZWxlYXNlIiksCiAgICAgICAgICAgICAgICAgJ3dhdGNoZXJzJzog
Y29uZmlnLmdldCgnd2F0Y2hlcnMnLCBbXSksCiAgICAgICAgICAgICAgICAgJ3J1bl90ZXN0cyc6
IGNvbmZpZy5nZXQoJ3J1blRlc3RzJywgY2xzLnJ1bl90ZXN0cyksCisgICAgICAgICAgICAgICAg
J19ncm91cCc6IGNvbmZpZy5nZXQoJ2dyb3VwJywgTm9uZSksCiAgICAgICAgICAgICB9KSkKICAg
ICAgICAgcmV0dXJuIGNsYXNzZXMKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
dG9vbC9jb21tYW5kcy9lYXJseXdhcm5pbmdzeXN0ZW1fdW5pdHRlc3QucHkgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZWFybHl3YXJuaW5nc3lzdGVtX3VuaXR0ZXN0LnB5
CmluZGV4IDA4ODg3ODEzY2UyZTkzYThlYzlkYTM3NjM2ZWNiZGU5ZWZmM2M5ZTcuLjM2OTk4OWEw
N2Q4NzhmMzQ4YzU2ZThjZDNlNmNmODcwYTQ5ODFhMzUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9lYXJseXdhcm5pbmdzeXN0ZW1fdW5pdHRlc3QucHkK
KysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Vhcmx5d2FybmluZ3N5
c3RlbV91bml0dGVzdC5weQpAQCAtMSw0ICsxLDUgQEAKICMgQ29weXJpZ2h0IChDKSAyMDA5IEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAxNiBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogIyBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMg
YXJlCkBAIC02OCw5ICs2OSwxMCBAQCBjbGFzcyBFYXJseVdhcm5pbmdTeXN0ZW1UZXN0KFF1ZXVl
c1Rlc3QpOgogICAgICAgICAgICAgInBvcnQiOiBld3MucG9ydF9uYW1lLAogICAgICAgICAgICAg
ImFyY2hpdGVjdHVyZSI6ICIgLS1hcmNoaXRlY3R1cmU9JXMiICUgZXdzLmFyY2hpdGVjdHVyZSBp
ZiBld3MuYXJjaGl0ZWN0dXJlIGVsc2UgIiIsCiAgICAgICAgICAgICAiYnVpbGRfc3R5bGUiOiBl
d3MuYnVpbGRfc3R5bGUoKSwKKyAgICAgICAgICAgICJncm91cCI6IGV3cy5ncm91cCgpLAogICAg
ICAgICB9CiAgICAgICAgIGlmIGV3cy5ydW5fdGVzdHM6Ci0gICAgICAgICAgICBydW5fdGVzdHNf
bGluZSA9ICJSdW5uaW5nOiB3ZWJraXQtcGF0Y2ggLS1zdGF0dXMtaG9zdD1leGFtcGxlLmNvbSBi
dWlsZC1hbmQtdGVzdCAtLW5vLWNsZWFuIC0tbm8tdXBkYXRlIC0tdGVzdCAtLW5vbi1pbnRlcmFj
dGl2ZSAtLWJ1aWxkLXN0eWxlPSUoYnVpbGRfc3R5bGUpcyAtLXBvcnQ9JShwb3J0KXMlKGFyY2hp
dGVjdHVyZSlzXG4iICUgc3RyaW5nX3JlcGxhY2VtZW50cworICAgICAgICAgICAgcnVuX3Rlc3Rz
X2xpbmUgPSAiUnVubmluZzogd2Via2l0LXBhdGNoIC0tc3RhdHVzLWhvc3Q9ZXhhbXBsZS5jb20g
YnVpbGQtYW5kLXRlc3QgLS1uby1jbGVhbiAtLW5vLXVwZGF0ZSAtLXRlc3QgLS1ub24taW50ZXJh
Y3RpdmUgLS1idWlsZC1zdHlsZT0lKGJ1aWxkX3N0eWxlKXMgLS1ncm91cD0lKGdyb3VwKXMgLS1w
b3J0PSUocG9ydClzJShhcmNoaXRlY3R1cmUpc1xuIiAlIHN0cmluZ19yZXBsYWNlbWVudHMKICAg
ICAgICAgZWxzZToKICAgICAgICAgICAgIHJ1bl90ZXN0c19saW5lID0gIiIKICAgICAgICAgc3Ry
aW5nX3JlcGxhY2VtZW50c1sncnVuX3Rlc3RzX2xpbmUnXSA9IHJ1bl90ZXN0c19saW5lCkBAIC04
MSw3ICs4Myw3IEBAIGNsYXNzIEVhcmx5V2FybmluZ1N5c3RlbVRlc3QoUXVldWVzVGVzdCk6CiBS
dW5uaW5nOiB3ZWJraXQtcGF0Y2ggLS1zdGF0dXMtaG9zdD1leGFtcGxlLmNvbSBjbGVhbiAtLXBv
cnQ9JShwb3J0KXMlKGFyY2hpdGVjdHVyZSlzCiBSdW5uaW5nOiB3ZWJraXQtcGF0Y2ggLS1zdGF0
dXMtaG9zdD1leGFtcGxlLmNvbSB1cGRhdGUgLS1wb3J0PSUocG9ydClzJShhcmNoaXRlY3R1cmUp
cwogUnVubmluZzogd2Via2l0LXBhdGNoIC0tc3RhdHVzLWhvc3Q9ZXhhbXBsZS5jb20gYXBwbHkt
YXR0YWNobWVudCAtLW5vLXVwZGF0ZSAtLW5vbi1pbnRlcmFjdGl2ZSAxMDAwMCAtLXBvcnQ9JShw
b3J0KXMlKGFyY2hpdGVjdHVyZSlzCi1SdW5uaW5nOiB3ZWJraXQtcGF0Y2ggLS1zdGF0dXMtaG9z
dD1leGFtcGxlLmNvbSBidWlsZCAtLW5vLWNsZWFuIC0tbm8tdXBkYXRlIC0tYnVpbGQtc3R5bGU9
JShidWlsZF9zdHlsZSlzIC0tcG9ydD0lKHBvcnQpcyUoYXJjaGl0ZWN0dXJlKXMKK1J1bm5pbmc6
IHdlYmtpdC1wYXRjaCAtLXN0YXR1cy1ob3N0PWV4YW1wbGUuY29tIGJ1aWxkIC0tbm8tY2xlYW4g
LS1uby11cGRhdGUgLS1idWlsZC1zdHlsZT0lKGJ1aWxkX3N0eWxlKXMgLS1ncm91cD0lKGdyb3Vw
KXMgLS1wb3J0PSUocG9ydClzJShhcmNoaXRlY3R1cmUpcwogJShydW5fdGVzdHNfbGluZSlzTU9D
SzogdXBkYXRlX3N0YXR1czogJShuYW1lKXMgUGFzcwogTU9DSzogcmVsZWFzZV93b3JrX2l0ZW06
ICUobmFtZSlzIDEwMDAwCiAiIiIgJSBzdHJpbmdfcmVwbGFjZW1lbnRzLApkaWZmIC0tZ2l0IGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL2J1aWxkLnB5IGIvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS90b29sL3N0ZXBzL2J1aWxkLnB5CmluZGV4IGY3NGZmY2U3MDk0MWM2MWU1OTY3
OTJlNGM2MGRjZDdmOGI2NWU5ZWMuLjg5NmM4YzA4OTBiMjM5ZThjYzA4ZmMwZjUyMTgxOTEzNDRi
ZDY1ZWMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9idWls
ZC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvYnVpbGQucHkKQEAg
LTEsNCArMSw1IEBACiAjIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtNDEsMjggKzQyLDM1
IEBAIGNsYXNzIEJ1aWxkKEFic3RyYWN0U3RlcCk6CiAgICAgICAgICAgICBPcHRpb25zLmJ1aWxk
LAogICAgICAgICAgICAgT3B0aW9ucy5xdWlldCwKICAgICAgICAgICAgIE9wdGlvbnMuYnVpbGRf
c3R5bGUsCisgICAgICAgICAgICBPcHRpb25zLmdyb3VwLAogICAgICAgICBdCiAKLSAgICBkZWYg
YnVpbGQoc2VsZiwgYnVpbGRfc3R5bGUpOgorICAgIGRlZiBidWlsZChzZWxmLCBidWlsZF9zdHls
ZSwgZ3JvdXApOgogICAgICAgICBlbnZpcm9ubWVudCA9IHNlbGYuX3Rvb2wuY29weV9jdXJyZW50
X2Vudmlyb25tZW50KCkKICAgICAgICAgZW52aXJvbm1lbnQuZGlzYWJsZV9nY2Nfc21hcnRxdW90
ZXMoKQogICAgICAgICBlbnZpcm9ubWVudC5kaXNhYmxlX2poYnVpbGRfVlQxMDBfb3V0cHV0KCkK
ICAgICAgICAgZW52ID0gZW52aXJvbm1lbnQudG9fZGljdGlvbmFyeSgpCiAKLSAgICAgICAgYnVp
bGRfd2Via2l0X2NvbW1hbmQgPSBzZWxmLl90b29sLmRlcHJlY2F0ZWRfcG9ydCgpLmJ1aWxkX3dl
YmtpdF9jb21tYW5kKGJ1aWxkX3N0eWxlPWJ1aWxkX3N0eWxlKQorICAgICAgICBpZiBncm91cCA9
PSAianNjIjoKKyAgICAgICAgICAgIGJ1aWxkX2NvbW1hbmQgPSBzZWxmLl90b29sLmRlcHJlY2F0
ZWRfcG9ydCgpLmJ1aWxkX2pzY19jb21tYW5kKGJ1aWxkX3N0eWxlPWJ1aWxkX3N0eWxlKQorICAg
ICAgICBlbHNlOgorICAgICAgICAgICAgYnVpbGRfY29tbWFuZCA9IHNlbGYuX3Rvb2wuZGVwcmVj
YXRlZF9wb3J0KCkuYnVpbGRfd2Via2l0X2NvbW1hbmQoYnVpbGRfc3R5bGU9YnVpbGRfc3R5bGUp
CiAKICAgICAgICAgaWYgc2VsZi5fb3B0aW9ucy5hcmNoaXRlY3R1cmU6Ci0gICAgICAgICAgICBi
dWlsZF93ZWJraXRfY29tbWFuZCArPSBbJ0FSQ0hTPSVzJyAlIHNlbGYuX29wdGlvbnMuYXJjaGl0
ZWN0dXJlXQorICAgICAgICAgICAgYnVpbGRfY29tbWFuZCArPSBbJ0FSQ0hTPSVzJyAlIHNlbGYu
X29wdGlvbnMuYXJjaGl0ZWN0dXJlXQogCi0gICAgICAgIHNlbGYuX3Rvb2wuZXhlY3V0aXZlLnJ1
bl9hbmRfdGhyb3dfaWZfZmFpbChidWlsZF93ZWJraXRfY29tbWFuZCwgc2VsZi5fb3B0aW9ucy5x
dWlldCwKKyAgICAgICAgc2VsZi5fdG9vbC5leGVjdXRpdmUucnVuX2FuZF90aHJvd19pZl9mYWls
KGJ1aWxkX2NvbW1hbmQsIHNlbGYuX29wdGlvbnMucXVpZXQsCiAgICAgICAgICAgICBjd2Q9c2Vs
Zi5fdG9vbC5zY20oKS5jaGVja291dF9yb290LCBlbnY9ZW52KQogCiAgICAgZGVmIHJ1bihzZWxm
LCBzdGF0ZSk6CiAgICAgICAgIGlmIG5vdCBzZWxmLl9vcHRpb25zLmJ1aWxkOgogICAgICAgICAg
ICAgcmV0dXJuCiAgICAgICAgIF9sb2cuaW5mbygiQnVpbGRpbmcgV2ViS2l0IikKKworICAgICAg
ICBncm91cCA9IHNlbGYuX29wdGlvbnMuZ3JvdXAKKwogICAgICAgICBpZiBzZWxmLl9vcHRpb25z
LmJ1aWxkX3N0eWxlID09ICJib3RoIjoKLSAgICAgICAgICAgIHNlbGYuYnVpbGQoImRlYnVnIikK
LSAgICAgICAgICAgIHNlbGYuYnVpbGQoInJlbGVhc2UiKQorICAgICAgICAgICAgc2VsZi5idWls
ZCgiZGVidWciLCBncm91cCkKKyAgICAgICAgICAgIHNlbGYuYnVpbGQoInJlbGVhc2UiLCBncm91
cCkKICAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHNlbGYuYnVpbGQoc2VsZi5fb3B0aW9ucy5i
dWlsZF9zdHlsZSkKKyAgICAgICAgICAgIHNlbGYuYnVpbGQoc2VsZi5fb3B0aW9ucy5idWlsZF9z
dHlsZSwgZ3JvdXApCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3Rl
cHMvb3B0aW9ucy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9vcHRpb25z
LnB5CmluZGV4IDNlZjQ3ZDAwOGE1OWUwNTBkNGNhMGM0ODc3ZGRkMWE2MDczMWE0MDkuLjhmMTQ1
OGRiNWM0ZjI0NDhhN2FmYmYyOWUxYzM5NjQxNzUyMTE2YjEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9vcHRpb25zLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvdG9vbC9zdGVwcy9vcHRpb25zLnB5CkBAIC0xLDQgKzEsNSBAQAogIyBDb3B5cmln
aHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0
IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucyBhcmUKQEAgLTQ2LDYgKzQ3LDcgQEAgY2xhc3MgT3B0aW9ucyhvYmplY3Qp
OgogICAgIGVtYWlsID0gbWFrZV9vcHRpb24oIi0tZW1haWwiLCBhY3Rpb249InN0b3JlIiwgdHlw
ZT0ic3RyaW5nIiwgZGVzdD0iZW1haWwiLCBoZWxwPSJFbWFpbCBhZGRyZXNzIHRvIHVzZSBpbiBD
aGFuZ2VMb2dzLiIpCiAgICAgZm9yY2VfY2xlYW4gPSBtYWtlX29wdGlvbigiLS1mb3JjZS1jbGVh
biIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGRlc3Q9ImZvcmNlX2NsZWFuIiwgZGVmYXVsdD1GYWxz
ZSwgaGVscD0iQ2xlYW4gd29ya2luZyBkaXJlY3RvcnkgYmVmb3JlIGFwcGx5aW5nIHBhdGNoZXMg
KHJlbW92ZXMgbG9jYWwgY2hhbmdlcyBhbmQgY29tbWl0cykiKQogICAgIGdpdF9jb21taXQgPSBt
YWtlX29wdGlvbigiLWciLCAiLS1naXQtY29tbWl0IiwgYWN0aW9uPSJzdG9yZSIsIGRlc3Q9Imdp
dF9jb21taXQiLCBoZWxwPSJPcGVyYXRlIG9uIGEgbG9jYWwgY29tbWl0LiBJZiBhIHJhbmdlLCB0
aGUgY29tbWl0cyBhcmUgc3F1YXNoZWQgaW50byBvbmUuIDxyZWY+Li4uLiBpbmNsdWRlcyB0aGUg
d29ya2luZyBjb3B5IGNoYW5nZXMuIFVQU1RSRUFNIGNhbiBiZSB1c2VkIGZvciB0aGUgdXBzdHJl
YW0vdHJhY2tpbmcgYnJhbmNoLiIpCisgICAgZ3JvdXAgPSBtYWtlX29wdGlvbigiLS1ncm91cCIs
IGFjdGlvbj0ic3RvcmUiLCBkZXN0PSJncm91cCIsIGRlZmF1bHQ9Tm9uZSwgaGVscD0iIikKICAg
ICBsb2NhbF9jb21taXQgPSBtYWtlX29wdGlvbigiLS1sb2NhbC1jb21taXQiLCBhY3Rpb249InN0
b3JlX3RydWUiLCBkZXN0PSJsb2NhbF9jb21taXQiLCBkZWZhdWx0PUZhbHNlLCBoZWxwPSJNYWtl
IGEgbG9jYWwgY29tbWl0IGZvciBlYWNoIGFwcGxpZWQgcGF0Y2giKQogICAgIG5vbl9pbnRlcmFj
dGl2ZSA9IG1ha2Vfb3B0aW9uKCItLW5vbi1pbnRlcmFjdGl2ZSIsIGFjdGlvbj0ic3RvcmVfdHJ1
ZSIsIGRlc3Q9Im5vbl9pbnRlcmFjdGl2ZSIsIGRlZmF1bHQ9RmFsc2UsIGhlbHA9Ik5ldmVyIHBy
b21wdCB0aGUgdXNlciwgZmFpbCBhcyBmYXN0IGFzIHBvc3NpYmxlLiIpCiAgICAgb2Jzb2xldGVf
cGF0Y2hlcyA9IG1ha2Vfb3B0aW9uKCItLW5vLW9ic29sZXRlIiwgYWN0aW9uPSJzdG9yZV9mYWxz
ZSIsIGRlc3Q9Im9ic29sZXRlX3BhdGNoZXMiLCBkZWZhdWx0PVRydWUsIGhlbHA9IkRvIG5vdCBv
YnNvbGV0ZSBvbGQgcGF0Y2hlcyBiZWZvcmUgcG9zdGluZyB0aGlzIG9uZS4iKQpkaWZmIC0tZ2l0
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3J1bnRlc3RzLnB5IGIvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3J1bnRlc3RzLnB5CmluZGV4IDc1ZDcyYmM5YWQy
ZjRlMzZkNDVmZGFjOTBmMTgxOTQ4MWNmMDI4OGIuLmI2NTAwODA5MjZkMjFmOTUzZDM4YWI4MWFi
YzNlN2VjYjNmMjZiZjEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9z
dGVwcy9ydW50ZXN0cy5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMv
cnVudGVzdHMucHkKQEAgLTEsNCArMSw1IEBACiAjIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpA
QCAtNTMsNiArNTQsNyBAQCBjbGFzcyBSdW5UZXN0cyhBYnN0cmFjdFN0ZXApOgogICAgICAgICAg
ICAgT3B0aW9ucy5pdGVyYXRlX29uX25ld190ZXN0cywKICAgICAgICAgICAgIE9wdGlvbnMubm9u
X2ludGVyYWN0aXZlLAogICAgICAgICAgICAgT3B0aW9ucy5xdWlldCwKKyAgICAgICAgICAgIE9w
dGlvbnMuZ3JvdXAsCiAgICAgICAgIF0KIAogICAgIGRlZiBydW4oc2VsZiwgc3RhdGUpOgpAQCAt
NjMsNiArNjUsMTAgQEAgY2xhc3MgUnVuVGVzdHMoQWJzdHJhY3RTdGVwKToKICAgICAgICAgaWYg
bm90IHNlbGYuX29wdGlvbnMudGVzdDoKICAgICAgICAgICAgIHJldHVybgogCisgICAgICAgIGlm
IHNlbGYuX29wdGlvbnMuZ3JvdXAgPT0gImpzYyI6CisgICAgICAgICAgICBzZWxmLl9ydW5famF2
YXNjcmlwdGNvcmVfdGVzdHMoKQorICAgICAgICAgICAgcmV0dXJuCisKICAgICAgICAgcHl0aG9u
X3VuaXR0ZXN0c19jb21tYW5kID0gc2VsZi5fdG9vbC5kZXByZWNhdGVkX3BvcnQoKS5ydW5fcHl0
aG9uX3VuaXR0ZXN0c19jb21tYW5kKCkKICAgICAgICAgaWYgcHl0aG9uX3VuaXR0ZXN0c19jb21t
YW5kOgogICAgICAgICAgICAgX2xvZy5pbmZvKCJSdW5uaW5nIFB5dGhvbiB1bml0IHRlc3RzIikK
QEAgLTE0MywzICsxNDksNyBAQCBjbGFzcyBSdW5UZXN0cyhBYnN0cmFjdFN0ZXApOgogICAgICAg
ICAgICAgYXJncy5hcHBlbmQoIi0taXRlcmF0aW9ucz0lZCIgJSBpdGVyYXRlX29uX25ld190ZXN0
cykKIAogICAgICAgICBzZWxmLl90b29sLmV4ZWN1dGl2ZS5ydW5fYW5kX3Rocm93X2lmX2ZhaWwo
YXJncywgY3dkPXNlbGYuX3Rvb2wuc2NtKCkuY2hlY2tvdXRfcm9vdCkKKworICAgIGRlZiBfcnVu
X2phdmFzY3JpcHRjb3JlX3Rlc3RzKHNlbGYpOgorICAgICAgICBhcmdzID0gc2VsZi5fdG9vbC5k
ZXByZWNhdGVkX3BvcnQoKS5ydW5famF2YXNjcmlwdGNvcmVfdGVzdHNfY29tbWFuZChzZWxmLl9v
cHRpb25zLmJ1aWxkX3N0eWxlKQorICAgICAgICBzZWxmLl90b29sLmV4ZWN1dGl2ZS5ydW5fYW5k
X3Rocm93X2lmX2ZhaWwoYXJncywgY3dkPXNlbGYuX3Rvb2wuc2NtKCkuY2hlY2tvdXRfcm9vdCkK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9zdGVwc191bml0
dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9zdGVwc191bml0dGVz
dC5weQppbmRleCA3ZDk0YTEzYjM0NjNkOThhNDRmOTQ5ZjgxNGNjNzEyMWMwNjhhYjVkLi5hNDg0
MmFhODlhNGJlZjVjYWQzOWNhYmIzZjJmZjU4MjU3ZmI3YzVkIDEwMDY0NAotLS0gYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvc3RlcHNfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3N0ZXBzX3VuaXR0ZXN0LnB5CkBAIC0xLDQgKzEs
NSBAQAogIyBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyMgQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTk4LDYgKzk5LDcgQEAgY2xhc3Mg
U3RlcHNUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgc2VsZi5fYXNzZXJ0X3N0ZXBf
b3V0cHV0X3dpdGhfYnVnKHN0ZXBzLkVuc3VyZUJ1Z0lzT3BlbkFuZEFzc2lnbmVkLCA1MDAwMiwg
ZXhwZWN0ZWRfbG9ncykKIAogICAgIGRlZiB0ZXN0X3J1bnRlc3RzX2FyZ3Moc2VsZik6CisgICAg
ICAgIHNlbGYubWF4RGlmZiA9IE5vbmUKICAgICAgICAgbW9ja19vcHRpb25zID0gc2VsZi5fc3Rl
cF9vcHRpb25zKCkKICAgICAgICAgbW9ja19vcHRpb25zLm5vbl9pbnRlcmFjdGl2ZSA9IEZhbHNl
CiAgICAgICAgIG1vY2tfb3B0aW9ucy5idWlsZF9zdHlsZSA9ICJyZWxlYXNlIgpAQCAtMTExLDcg
KzExMyw3IEBAIE1PQ0sgcnVuX2FuZF90aHJvd19pZl9mYWlsOiBbJ1Rvb2xzL1NjcmlwdHMvdGVz
dC13ZWJraXRweSddLCBjd2Q9L21vY2stY2hlY2tvdXQKIFJ1bm5pbmcgUGVybCB1bml0IHRlc3Rz
CiBNT0NLIHJ1bl9hbmRfdGhyb3dfaWZfZmFpbDogWydUb29scy9TY3JpcHRzL3Rlc3Qtd2Via2l0
cGVybCddLCBjd2Q9L21vY2stY2hlY2tvdXQKIFJ1bm5pbmcgSmF2YVNjcmlwdENvcmUgdGVzdHMK
LU1PQ0sgcnVuX2FuZF90aHJvd19pZl9mYWlsOiBbJ1Rvb2xzL1NjcmlwdHMvcnVuLWphdmFzY3Jp
cHRjb3JlLXRlc3RzJ10sIGN3ZD0vbW9jay1jaGVja291dAorTU9DSyBydW5fYW5kX3Rocm93X2lm
X2ZhaWw6IFsnVG9vbHMvU2NyaXB0cy9ydW4tamF2YXNjcmlwdGNvcmUtdGVzdHMnLCAnLS1uby1m
YWlsLWZhc3QnLCAnLS1qc29uLW91dHB1dD1qc2NfdGVzdF9yZXN1bHRzLmpzb24nXSwgY3dkPS9t
b2NrLWNoZWNrb3V0CiBSdW5uaW5nIGJpbmRpbmdzIGdlbmVyYXRpb24gdGVzdHMKIE1PQ0sgcnVu
X2FuZF90aHJvd19pZl9mYWlsOiBbJ1Rvb2xzL1NjcmlwdHMvcnVuLWJpbmRpbmdzLXRlc3RzJ10s
IGN3ZD0vbW9jay1jaGVja291dAogUnVubmluZyBydW4td2Via2l0LXRlc3RzCkBAIC0xMjAsNiAr
MTIyLDcgQEAgTU9DSyBydW5fYW5kX3Rocm93X2lmX2ZhaWw6IFsnVG9vbHMvU2NyaXB0cy9ydW4t
d2Via2l0LXRlc3RzJywgJy0tcmVsZWFzZScsICctLXEKICAgICAgICAgT3V0cHV0Q2FwdHVyZSgp
LmFzc2VydF9vdXRwdXRzKHNlbGYsIHN0ZXAucnVuLCBbe31dLCBleHBlY3RlZF9sb2dzPWV4cGVj
dGVkX2xvZ3MpCiAKICAgICBkZWYgdGVzdF9ydW50ZXN0c19kZWJ1Z19hcmdzKHNlbGYpOgorICAg
ICAgICBzZWxmLm1heERpZmYgPSBOb25lCiAgICAgICAgIG1vY2tfb3B0aW9ucyA9IHNlbGYuX3N0
ZXBfb3B0aW9ucygpCiAgICAgICAgIG1vY2tfb3B0aW9ucy5ub25faW50ZXJhY3RpdmUgPSBGYWxz
ZQogICAgICAgICBtb2NrX29wdGlvbnMuYnVpbGRfc3R5bGUgPSAiZGVidWciCkBAIC0xMzMsNyAr
MTM2LDcgQEAgTU9DSyBydW5fYW5kX3Rocm93X2lmX2ZhaWw6IFsnVG9vbHMvU2NyaXB0cy90ZXN0
LXdlYmtpdHB5J10sIGN3ZD0vbW9jay1jaGVja291dAogUnVubmluZyBQZXJsIHVuaXQgdGVzdHMK
IE1PQ0sgcnVuX2FuZF90aHJvd19pZl9mYWlsOiBbJ1Rvb2xzL1NjcmlwdHMvdGVzdC13ZWJraXRw
ZXJsJ10sIGN3ZD0vbW9jay1jaGVja291dAogUnVubmluZyBKYXZhU2NyaXB0Q29yZSB0ZXN0cwot
TU9DSyBydW5fYW5kX3Rocm93X2lmX2ZhaWw6IFsnVG9vbHMvU2NyaXB0cy9ydW4tamF2YXNjcmlw
dGNvcmUtdGVzdHMnXSwgY3dkPS9tb2NrLWNoZWNrb3V0CitNT0NLIHJ1bl9hbmRfdGhyb3dfaWZf
ZmFpbDogWydUb29scy9TY3JpcHRzL3J1bi1qYXZhc2NyaXB0Y29yZS10ZXN0cycsICctLW5vLWZh
aWwtZmFzdCcsICctLWpzb24tb3V0cHV0PWpzY190ZXN0X3Jlc3VsdHMuanNvbiddLCBjd2Q9L21v
Y2stY2hlY2tvdXQKIFJ1bm5pbmcgYmluZGluZ3MgZ2VuZXJhdGlvbiB0ZXN0cwogTU9DSyBydW5f
YW5kX3Rocm93X2lmX2ZhaWw6IFsnVG9vbHMvU2NyaXB0cy9ydW4tYmluZGluZ3MtdGVzdHMnXSwg
Y3dkPS9tb2NrLWNoZWNrb3V0CiBSdW5uaW5nIHJ1bi13ZWJraXQtdGVzdHMK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>298739</attachid>
            <date>2017-01-12 17:19:58 -0800</date>
            <delta_ts>2017-01-13 15:52:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-162458-20170112171818.patch</filename>
            <type>text/plain</type>
            <size>49779</size>
            <attacher name="Srinivasan Vijayaraghavan">webkit</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA2Mzc3CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOWI3NTZhN2Y2MTZlMzQ0YjFhYmFjNjFkZmVkMmExZWI4
NmY3ZTQ0ZC4uNDM3OWFlNzkxZGUwMGQ3MGZmMGY0YTYyODkxNTU5MzJkNzE5OGEzZSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgy
IEBACisyMDE3LTAxLTEyICBTcmluaXZhc2FuIFZpamF5YXJhZ2hhdmFuICA8c3ZpamF5YXJhZ2hh
dmFuQGFwcGxlLmNvbT4KKworICAgICAgICBFV1Mgc2hvdWxkIHJ1biBKYXZhU2NyaXB0Q29yZSB0
ZXN0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYy
NDU4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvZXdzLmpzb246IEFkZCBjb25maWcgaW5mbyBm
b3IgSlNDIEVXUy4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvcG9y
dHMucHk6IEFkZCBzdXBwb3J0IGZvciBKU0MgRVdTIGluIE1hYyBQb3J0LgorICAgICAgICAoRGVw
cmVjYXRlZFBvcnQuYnVpbGRfanNjX2NvbW1hbmQpOiBBZGRlZCAtIGNvbW1hbmQgdG8gYnVpbGQg
SlNDIG9ubHkgKHF1aWNrZXIgdGhhbiBidWlsZGluZyBhbGwgb2YgV2ViS2l0KS4KKyAgICAgICAg
KERlcHJlY2F0ZWRQb3J0LnJ1bl9qYXZhc2NyaXB0Y29yZV90ZXN0c19jb21tYW5kKTogQWxsb3cg
SlNDIEVXUyB0byBvbmx5IHJ1biBKU0MgdGVzdHMuCisgICAgICAgIChNYWNQb3J0LnJ1bl93ZWJr
aXRfdGVzdHNfY29tbWFuZCk6IENoZWNrIGZvciBKU0MuCisgICAgICAgICogU2NyaXB0cy93ZWJr
aXRweS9jb21tb24vbmV0L2pzY3Rlc3RyZXN1bHRzLnB5OiBBZGRlZC4KKyAgICAgICAgKEpTQ1Rl
c3RSZXN1bHRzKToKKyAgICAgICAgKEpTQ1Rlc3RSZXN1bHRzLnJlc3VsdHNfZnJvbV9zdHJpbmcp
OiBVc2UganNvbiBsaWJyYXJ5IHRvIHBhcnNlIHJlc3VsdHMuCisgICAgICAgIChKU0NUZXN0UmVz
dWx0cy5fX2luaXRfXyk6IEluaXRpYWxpemUgbWVtYmVycy4KKyAgICAgICAgKEpTQ1Rlc3RSZXN1
bHRzLl9fZXFfXyk6IFRoaXMgZW5hYmxlcyB1bml0IHRlc3RpbmcuCisgICAgICAgIChKU0NUZXN0
UmVzdWx0cy5zdHJlc3NfdGVzdF9mYWlsdXJlcyk6IEdldHRlci4KKyAgICAgICAgKEpTQ1Rlc3RS
ZXN1bHRzLmFsbF9hcGlfdGVzdHNfcGFzc2VkKTogR2V0dGVyLgorICAgICAgICAoSlNDVGVzdFJl
c3VsdHMuYWxsX3Bhc3NlZCk6IEdldHRlci4KKyAgICAgICAgKEpTQ1Rlc3RSZXN1bHRzLmZhaWxp
bmdfdGVzdF9yZXN1bHRzKTogR2V0dGVyLiBTb21lIG9mIHRoZXNlIGV4aXN0IGZvciBpbnRlcm9w
YWJpbGl0eSByZWFzb25zLgorICAgICAgICAoSlNDVGVzdFJlc3VsdHMudGVzdF9yZXN1bHRzKTog
R2V0dGVyLgorICAgICAgICAoSlNDVGVzdFJlc3VsdHMuZmFpbGluZ190ZXN0cyk6IEdldHRlci4K
KyAgICAgICAgKEpTQ1Rlc3RSZXN1bHRzLmRpZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xpbWl0KTog
R2V0dGVyLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvanNjZXdzX3VuaXR0
ZXN0LnB5OiBBZGRlZC4KKyAgICAgICAgKE1vY2tQYXRjaEFuYWx5c2lzVGFzayk6IE1vY2tlZC1v
dXQgdmVyc2lvbiBvZiBQYXRjaEFuYWx5c2lzVGFzayB0aGF0IGRvZXNuJ3QgcnVuIGNvbW1hbmRz
LgorICAgICAgICAoTW9ja1BhdGNoQW5hbHlzaXNUYXNrLl9faW5pdF9fKTogU2V0cyBhdHRyaWJ1
dGVzLgorICAgICAgICAoTW9ja1BhdGNoQW5hbHlzaXNUYXNrLl90ZXN0KTogT3ZlcnJpZGUgdG8g
bm90IHJ1biBjb21tYW5kLgorICAgICAgICAoTW9ja1BhdGNoQW5hbHlzaXNUYXNrLl9idWlsZF9h
bmRfdGVzdF93aXRob3V0X3BhdGNoKTogT3ZlcnJpZGUgdG8gbm90IHJ1biBjb21tYW5kLgorICAg
ICAgICAoTW9ja1BhdGNoQW5hbHlzaXNUYXNrLnZhbGlkYXRlKTogQXNzdW1lIG1vY2tlZCBwYXRj
aCBpcyB2YWxpZCBmb3IgcHVycG9zZXMgb2YgdGVzdGluZyByZXRyeSBsb2dpYy4KKyAgICAgICAg
KE1vY2tQYXRjaEFuYWx5c2lzVGFzay50ZXN0X3J1bl9jb3VudCk6IFNwZWNpZmljIHRvIHRoZSBt
b2NrZWQgdmVyc2lvbiwgdG8gdGVzdCByZXRyeSBsb2dpYy4KKyAgICAgICAgKE1vY2tKU0NFYXJs
eVdhcm5pbmdTeXN0ZW0pOiBNb2NrZWQtb3V0IHZlcnNpb24gb2YgQWJzdGFyY3RFYXJseVdhcm5p
bmdTeXN0ZW0gc28gd2UgY2FuIHByb3ZpZGUgdGVzdCByZXN1bHRzLgorICAgICAgICAoTW9ja0pT
Q0Vhcmx5V2FybmluZ1N5c3RlbS5fX2luaXRfXyk6IFNldHMgYXR0cmlidXRlcywgYWxzbyBzZXRz
IGdyb3VwIHRvIGpzYy4KKyAgICAgICAgKE1vY2tKU0NFYXJseVdhcm5pbmdTeXN0ZW0udGVzdF9y
ZXN1bHRzKTogUmV0dXJucyB0ZXN0IHJlc3VsdHMgcHJvdmlkZWQgYnkgdXMsIGluc3RlYWQgb2Yg
dXNpbmcgYSBKU09OIHJlYWRlci4KKyAgICAgICAgKEpTQ0Vhcmx5V2FybmluZ1N5c3RlbVRlc3Qp
OiBDbGFzcyB0byB0ZXN0IHJldHJ5IGxvZ2ljIGluIGJlbG93IHNpdHVhdGlvbnMuCisgICAgICAg
IChKU0NFYXJseVdhcm5pbmdTeXN0ZW1UZXN0Ll9jcmVhdGVfdGFzayk6IEhlbHBlciBmdW5jdGlv
biB0byBhYnN0cmFjdCBvdXQgY29tbW9uIGNvZGUuCisgICAgICAgIChKU0NFYXJseVdhcm5pbmdT
eXN0ZW1UZXN0LnRlc3Rfc3VjY2Vzc19jYXNlKTogQ2xlYW4gcGF0Y2ggb24gY2xlYW4gdHJlZS4K
KyAgICAgICAgKEpTQ0Vhcmx5V2FybmluZ1N5c3RlbVRlc3QudGVzdF90ZXN0X2ZhaWx1cmUpOiBG
YWlsZWQgcGF0Y2ggb24gY2xlYW4gdHJlZS4KKyAgICAgICAgKEpTQ0Vhcmx5V2FybmluZ1N5c3Rl
bVRlc3QudGVzdF9maXgpOiBQYXRjaCB0aGF0IGZpeGVzIGFsbCB0cmVlIHJlZG5lc3MuCisgICAg
ICAgIChKU0NFYXJseVdhcm5pbmdTeXN0ZW1UZXN0LnRlc3RfaW5lZmZlY3RpdmVfcGF0Y2gpOiBQ
YXRjaCB0aGF0IGhhcyBzYW1lIGZhaWx1cmVzIGFzIHRyZWUuCisgICAgICAgIChKU0NFYXJseVdh
cm5pbmdTeXN0ZW1UZXN0LnRlc3RfcGFydGlhbGx5X2VmZmVjdGl2ZV9wYXRjaCk6IFBhdGNoIGZp
eGVzIHNvbWUgZmFpbHVyZXMgYnV0IGFkZHMgbm8gbmV3IGZhaWx1cmVzLgorICAgICAgICAoSlND
RWFybHlXYXJuaW5nU3lzdGVtVGVzdC50ZXN0X2RpZmZlcmVudF90ZXN0X2ZhaWx1cmVzKTogUGF0
Y2ggdGhhdCBoYXMgc29tZSBmYWlsdXJlcyBub3QgcHJlc2VudCBpbiB0cmVlLgorICAgICAgICAq
IFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9qc2N0ZXN0cmVzdWx0c191bml0dGVzdC5weTog
QWRkZWQuCisgICAgICAgIChKU0NUZXN0UmVzdWx0c1Rlc3QpOiBDbGFzcyB0byB0ZXN0IEpTQ1Rl
c3RSZXN1bHRzLgorICAgICAgICAoSlNDVGVzdFJlc3VsdHNUZXN0LnRlc3RfcmVzdWx0c19mcm9t
X3N0cmluZyk6IFRlc3RzIHBhcnNpbmcuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29s
L2JvdC9qc2N0ZXN0cmVzdWx0c3JlYWRlci5weTogQWRkZWQuCisgICAgICAgIChKU0NUZXN0UmVz
dWx0c1JlYWRlcik6IFJlYWRzIHJlc3VsdHMgZmlsZS4KKyAgICAgICAgKEpTQ1Rlc3RSZXN1bHRz
UmVhZGVyLl9faW5pdF9fKTogU2V0cyBhdHRyaWJ1dGVzLgorICAgICAgICAoSlNDVGVzdFJlc3Vs
dHNSZWFkZXIuX3JlYWRfZmlsZV9jb250ZW50cyk6IFJlYWRzIGZpbGUuCisgICAgICAgIChKU0NU
ZXN0UmVzdWx0c1JlYWRlci5fY3JlYXRlX2pzY190ZXN0X3Jlc3VsdHMpOiBDcmVhdGVzIGEgSlND
VGVzdFJlc3VsdHMgb2JqZWN0LgorICAgICAgICAoSlNDVGVzdFJlc3VsdHNSZWFkZXIucmVzdWx0
cyk6IEludm9rZXMgX2NyZWF0ZV9qc2NfdGVzdF9yZXN1bHRzIHRvIHJldHVybiBhIEpTQ1Rlc3RS
ZXN1bHRzIG9iamVjdC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L3BhdGNo
YW5hbHlzaXN0YXNrLnB5OgorICAgICAgICAoUGF0Y2hBbmFseXNpc1Rhc2suX2J1aWxkKTogQ2hl
Y2sgZm9yIEpTQy4KKyAgICAgICAgKFBhdGNoQW5hbHlzaXNUYXNrLl9idWlsZF93aXRob3V0X3Bh
dGNoKTogQ2hlY2sgZm9yIEpTQy4KKyAgICAgICAgKFBhdGNoQW5hbHlzaXNUYXNrLl90ZXN0KTog
Q2hlY2sgZm9yIEpTQy4KKyAgICAgICAgKFBhdGNoQW5hbHlzaXNUYXNrLl9idWlsZF9hbmRfdGVz
dF93aXRob3V0X3BhdGNoKTogQ2hlY2sgZm9yIEpTQy4KKyAgICAgICAgKFBhdGNoQW5hbHlzaXNU
YXNrLl90ZXN0X3BhdGNoKTogQWRkIHJldHJ5IGxvZ2ljIGZvciBKU0MuCisgICAgICAgICogU2Ny
aXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Vhcmx5d2FybmluZ3N5c3RlbS5weToKKyAgICAg
ICAgKEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtLmJlZ2luX3dvcmtfcXVldWUpOiBVc2UgSlND
VGVzdFJlc3VsdHNSZWFkZXIgaW5zdGVhZCBvZiBMYXlvdXRUZXN0UmVzdWx0c1JlYWRlciBpbiBK
U0MgRVdTLgorICAgICAgICAoQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0udGVzdF9yZXN1bHRz
KTogX2xheW91dF90ZXN0X3Jlc3VsdHNfcmVhZGVyIC0+IF90ZXN0X3Jlc3VsdHNfcmVhZGVyLgor
ICAgICAgICAoQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0uYXJjaGl2ZV9sYXN0X3Rlc3RfcmVz
dWx0cyk6IF9sYXlvdXRfdGVzdF9yZXN1bHRzX3JlYWRlciAtPiBfdGVzdF9yZXN1bHRzX3JlYWRl
ci4KKyAgICAgICAgKEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtLmdyb3VwKTogVGhpcyBhdHRy
aWJ1dGUgZGV0ZXJtaW5lcyB0aGUgdHlwZSBvZiBFV1MgKGVnLiBKU0MpLgorICAgICAgICAoQWJz
dHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0ubG9hZF9ld3NfY2xhc3Nlcyk6IEFkZCBfZ3JvdXAuCisg
ICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Vhcmx5d2FybmluZ3N5c3Rl
bV91bml0dGVzdC5weToKKyAgICAgICAgKEVhcmx5V2FybmluZ1N5c3RlbVRlc3QuX2RlZmF1bHRf
ZXhwZWN0ZWRfbG9ncyk6IEFkZCBfZ3JvdXAuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90
b29sL3N0ZXBzL2J1aWxkLnB5OgorICAgICAgICAoQnVpbGQub3B0aW9ucyk6IENoZWNrIGZvciBK
U0MuCisgICAgICAgIChCdWlsZC5idWlsZCk6IENoZWNrIGZvciBKU0MuCisgICAgICAgIChCdWls
ZC5ydW4pOiBDaGVjayBmb3IgSlNDLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9z
dGVwcy9vcHRpb25zLnB5OgorICAgICAgICAoT3B0aW9ucyk6IEFkZCAtLWdyb3VwIGNvbW1hbmQg
bGluZSBvcHRpb24uCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3J1bnRl
c3RzLnB5OgorICAgICAgICAoUnVuVGVzdHMub3B0aW9ucyk6IEFkZCBncm91cC4KKyAgICAgICAg
KFJ1blRlc3RzLnJ1bik6IENoZWNrIGZvciBKU0MuCisgICAgICAgIChSdW5UZXN0cy5fcnVuX3dl
YmtpdF90ZXN0cyk6IENoZWNrIGZvciBKU0MuCisgICAgICAgIChSdW5UZXN0cyk6IEFkZCBfZ3Jv
dXAgYXR0cmlidXRlLgorICAgICAgICAoUnVuVGVzdHMuX3J1bl9qYXZhc2NyaXB0Y29yZV90ZXN0
cyk6IE5ldy4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvc3RlcHNfdW5p
dHRlc3QucHk6IENoYW5nZSBleHBlY3RlZCBjb21tYW5kIGZvciBydW5uaW5nIGpzYyB0ZXN0cy4K
KwogMjAxNi0wOS0yNSAgR3l1eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgW0VGTF0gQWRqdXN0IEVGTCBpbmRlbnRhdGlvbiB0byBFRkwgTWluaUJyb3dzZXIK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9ld3MuanNv
biBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9ld3MuanNvbgppbmRleCAz
NWQ0OTg1YWIwZjkzZDEyN2IzNzIxZTQ2MDFjZDZkODlkZmNjZjNjLi5lNTM0MGZlNWMzYzIxYWU4
MWFkMWVmN2UwM2Y3ZmI4MWYzODM5Y2ZmIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2NvbW1vbi9jb25maWcvZXdzLmpzb24KKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9j
b21tb24vY29uZmlnL2V3cy5qc29uCkBAIC01MCw1ICs1MCwxMSBAQAogICAgICAgICAicG9ydCI6
ICJtYWMiLAogICAgICAgICAibmFtZSI6ICJtYWMtMzJiaXQtZXdzIiwKICAgICAgICAgImFyY2hp
dGVjdHVyZSI6ICJpMzg2IgorICAgIH0sCisgICAgIkpTQyBFV1MiOiB7CisgICAgICAgICJwb3J0
IjogIm1hYyIsCisgICAgICAgICJuYW1lIjogImpzYy1ld3MiLAorICAgICAgICAiZ3JvdXAiOiAi
anNjIiwKKyAgICAgICAgInJ1blRlc3RzIjogdHJ1ZQogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9wb3J0cy5weSBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9wb3J0cy5weQppbmRleCBhMGQ1MGRjYjZlYTBiNWZk
ZTBiM2MxN2VmMTU5Y2VhZmVlMWEyZTk4Li40ZmNjODY4NDM2MjliMzYzNmI1Y2E0MDZiMzFjN2Fh
YjYwNjMwMmZhIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25m
aWcvcG9ydHMucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL3Bv
cnRzLnB5CkBAIC0xLDYgKzEsNiBAQAogIyBDb3B5cmlnaHQgKEMpIDIwMDksIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjIENvcHlyaWdodCAoQykgMjAxMyBOb2tpYSBDb3Jwb3Jh
dGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCi0jIENvcHlyaWdodCAoQykgMjAxNSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAxNS0yMDE2
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucyBhcmUKQEAgLTEwMyw4ICsxMDMsMTkgQEAgY2xhc3MgRGVwcmVjYXRlZFBvcnQob2JqZWN0
KToKICAgICAgICAgICAgIGNvbW1hbmQuYXBwZW5kKCItLXJlbGVhc2UiKQogICAgICAgICByZXR1
cm4gY29tbWFuZAogCi0gICAgZGVmIHJ1bl9qYXZhc2NyaXB0Y29yZV90ZXN0c19jb21tYW5kKHNl
bGYpOgotICAgICAgICByZXR1cm4gc2VsZi5zY3JpcHRfc2hlbGxfY29tbWFuZCgicnVuLWphdmFz
Y3JpcHRjb3JlLXRlc3RzIikKKyAgICBkZWYgYnVpbGRfanNjX2NvbW1hbmQoc2VsZiwgYnVpbGRf
c3R5bGU9Tm9uZSk6CisgICAgICAgIGNvbW1hbmQgPSBzZWxmLnNjcmlwdF9zaGVsbF9jb21tYW5k
KCJidWlsZC1qc2MiKQorICAgICAgICBpZiBidWlsZF9zdHlsZSA9PSAiZGVidWciOgorICAgICAg
ICAgICAgY29tbWFuZC5hcHBlbmQoIi0tZGVidWciKQorICAgICAgICByZXR1cm4gY29tbWFuZAor
CisgICAgZGVmIHJ1bl9qYXZhc2NyaXB0Y29yZV90ZXN0c19jb21tYW5kKHNlbGYsIGJ1aWxkX3N0
eWxlPU5vbmUpOgorICAgICAgICBjb21tYW5kID0gc2VsZi5zY3JpcHRfc2hlbGxfY29tbWFuZCgi
cnVuLWphdmFzY3JpcHRjb3JlLXRlc3RzIikKKyAgICAgICAgY29tbWFuZC5hcHBlbmQoIi0tbm8t
ZmFpbC1mYXN0IikKKyAgICAgICAgY29tbWFuZC5hcHBlbmQoIi0tanNvbi1vdXRwdXQ9anNjX3Rl
c3RfcmVzdWx0cy5qc29uIikKKyAgICAgICAgaWYgKGJ1aWxkX3N0eWxlID09ICJkZWJ1ZyIpOgor
ICAgICAgICAgICAgY29tbWFuZC5hcHBlbmQoIi0tZGVidWciKQorICAgICAgICByZXR1cm4gY29t
bWFuZAogCiAgICAgZGVmIHJ1bl93ZWJraXRfdGVzdHNfY29tbWFuZChzZWxmLCBidWlsZF9zdHls
ZT1Ob25lKToKICAgICAgICAgY29tbWFuZCA9IHNlbGYuc2NyaXB0X3NoZWxsX2NvbW1hbmQoInJ1
bi13ZWJraXQtdGVzdHMiKQpAQCAtMTUwLDcgKzE2MSwxMCBAQCBjbGFzcyBJT1NTaW11bGF0b3JX
SzJQb3J0KERlcHJlY2F0ZWRQb3J0KToKIGNsYXNzIE1hY1BvcnQoRGVwcmVjYXRlZFBvcnQpOgog
ICAgIHBvcnRfZmxhZ19uYW1lID0gIm1hYyIKIAotICAgIGRlZiBydW5fd2Via2l0X3Rlc3RzX2Nv
bW1hbmQoc2VsZiwgYnVpbGRfc3R5bGU9Tm9uZSk6CisgICAgZGVmIHJ1bl93ZWJraXRfdGVzdHNf
Y29tbWFuZChzZWxmLCBidWlsZF9zdHlsZT1Ob25lLCB0ZXN0X3N1aXRlPU5vbmUpOgorICAgICAg
ICBpZiAodGVzdF9zdWl0ZSA9PSAianNjIik6CisgICAgICAgICAgICByZXR1cm4gc3VwZXIoTWFj
UG9ydCwgc2VsZikucnVuX2phdmFzY3JpcHRjb3JlX3Rlc3RzX2NvbW1hbmQoYnVpbGRfc3R5bGUp
CisKICAgICAgICAgY29tbWFuZCA9IHN1cGVyKE1hY1BvcnQsIHNlbGYpLnJ1bl93ZWJraXRfdGVz
dHNfY29tbWFuZChidWlsZF9zdHlsZSkKICAgICAgICAgY29tbWFuZC5hcHBlbmQoIi0tZHVtcC1y
ZW5kZXItdHJlZSIpCiAgICAgICAgIHJldHVybiBjb21tYW5kCmRpZmYgLS1naXQgYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvanNjdGVzdHJlc3VsdHMucHkgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvanNjdGVzdHJlc3VsdHMucHkKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGE3
ZmNiNGM2MGMyNThkOGFiMjdiN2YyNDk1ZmQ2NDE5OGQ0MzhlOQotLS0gL2Rldi9udWxsCisrKyBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9qc2N0ZXN0cmVzdWx0cy5weQpAQCAt
MCwwICsxLDcyIEBACisjIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4g
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAg
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyMgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElN
UExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorIyBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMCisjIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisjIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisjIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksCisjIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK2lt
cG9ydCBqc29uCitpbXBvcnQgbG9nZ2luZworCitfbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoX19u
YW1lX18pCisKKworY2xhc3MgSlNDVGVzdFJlc3VsdHMob2JqZWN0KToKKyAgICBAY2xhc3NtZXRo
b2QKKyAgICBkZWYgcmVzdWx0c19mcm9tX3N0cmluZyhjbHMsIHN0cmluZyk6CisgICAgICAgIGlm
IG5vdCBzdHJpbmc6CisgICAgICAgICAgICByZXR1cm4gTm9uZQorICAgICAgICBwYXJzZWRfcmVz
dWx0cyA9IGpzb24ubG9hZHMoc3RyaW5nKQorCisgICAgICAgIHJldHVybiBjbHMocGFyc2VkX3Jl
c3VsdHNbJ2FsbEFwaVRlc3RzUGFzc2VkJ10sIHBhcnNlZF9yZXN1bHRzWydzdHJlc3NUZXN0RmFp
bHVyZXMnXSkKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBhbGxfYXBpX3Rlc3RzX3Bhc3NlZCwg
c3RyZXNzX3Rlc3RfZmFpbHVyZXMpOgorICAgICAgICBzZWxmLl9hbGxfYXBpX3Rlc3RzX3Bhc3Nl
ZCA9IGFsbF9hcGlfdGVzdHNfcGFzc2VkCisgICAgICAgIHNlbGYuX3N0cmVzc190ZXN0X2ZhaWx1
cmVzID0gc3RyZXNzX3Rlc3RfZmFpbHVyZXMKKworICAgICAgICBzZWxmLl90ZXN0X3Jlc3VsdHMg
PSBzdHJlc3NfdGVzdF9mYWlsdXJlcworICAgICAgICBpZiBub3Qgc2VsZi5fYWxsX2FwaV90ZXN0
c19wYXNzZWQ6CisgICAgICAgICAgICBzZWxmLl90ZXN0X3Jlc3VsdHMuYXBwZW5kKCJhcGlUZXN0
cyIpCisKKyAgICBkZWYgX19lcV9fKHNlbGYsIG90aGVyKToKKyAgICAgICAgcmV0dXJuIHNlbGYu
X2FsbF9hcGlfdGVzdHNfcGFzc2VkID09IG90aGVyLl9hbGxfYXBpX3Rlc3RzX3Bhc3NlZCBhbmQg
c2V0KHNlbGYuX3N0cmVzc190ZXN0X2ZhaWx1cmVzKSA9PSBzZXQob3RoZXIuX3N0cmVzc190ZXN0
X2ZhaWx1cmVzKQorCisgICAgZGVmIF9fbGVfXyhzZWxmLCBvdGhlcik6CisgICAgICAgIHJldHVy
biBzZXQoc2VsZi50ZXN0X3Jlc3VsdHMoKSkgPD0gc2V0KG90aGVyLnRlc3RfcmVzdWx0cygpKQor
CisgICAgZGVmIHN0cmVzc190ZXN0X2ZhaWx1cmVzKHNlbGYpOgorICAgICAgICByZXR1cm4gc2Vs
Zi5fc3RyZXNzX3Rlc3RfZmFpbHVyZXMKKworICAgIGRlZiBhbGxfYXBpX3Rlc3RzX3Bhc3NlZChz
ZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX2FsbF9hcGlfdGVzdHNfcGFzc2VkCisKKyAgICBk
ZWYgYWxsX3Bhc3NlZChzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX2FsbF9hcGlfdGVzdHNf
cGFzc2VkIGFuZCBub3Qgc2VsZi5fc3RyZXNzX3Rlc3RfZmFpbHVyZXMKKworICAgIGRlZiBmYWls
aW5nX3Rlc3RfcmVzdWx0cyhzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuc3RyZXNzX3Rlc3Rf
ZmFpbHVyZXMoKQorCisgICAgZGVmIHRlc3RfcmVzdWx0cyhzZWxmKToKKyAgICAgICAgcmV0dXJu
IHNlbGYuX3Rlc3RfcmVzdWx0cworCisgICAgZGVmIGZhaWxpbmdfdGVzdHMoc2VsZik6CisgICAg
ICAgIHJldHVybiBzZWxmLl90ZXN0X3Jlc3VsdHMKKworICAgICMgTm8gZGVmaW5lZCBmYWlsdXJl
IGxpbWl0IGZvciBKU0MuCisgICAgZGVmIGRpZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xpbWl0KHNl
bGYpOgorICAgICAgICByZXR1cm4gRmFsc2UKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvY29tbW9uL25ldC9qc2N0ZXN0cmVzdWx0c191bml0dGVzdC5weSBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvY29tbW9uL25ldC9qc2N0ZXN0cmVzdWx0c191bml0dGVzdC5weQpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5hMWU0OWZkY2NjNjFkYTdkYWYxMGUzM2ZjYTRkYmZmZDQyZTVjZDY4Ci0tLSAvZGV2L251
bGwKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2pzY3Rlc3RyZXN1bHRz
X3VuaXR0ZXN0LnB5CkBAIC0wLDAgKzEsNDAgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
IyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAor
IyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyMgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMg
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKworaW1wb3J0IHVuaXR0ZXN0CisKK2Zyb20gd2Via2l0cHkuY29tbW9uLm5l
dC5qc2N0ZXN0cmVzdWx0cyBpbXBvcnQgSlNDVGVzdFJlc3VsdHMKKworCitjbGFzcyBKU0NUZXN0
UmVzdWx0c1Rlc3QodW5pdHRlc3QuVGVzdENhc2UpOgorICAgIGRlZiB0ZXN0X3Jlc3VsdHNfZnJv
bV9zdHJpbmcoc2VsZik6CisgICAgICAgIG5vX2ZhaWx1cmVzX3N0cmluZyA9ICd7ImFsbEFwaVRl
c3RzUGFzc2VkIjogdHJ1ZSwgInN0cmVzc1Rlc3RGYWlsdXJlcyI6W119JworICAgICAgICBub19m
YWlsdXJlc19yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgW10pCisgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwobm9fZmFpbHVyZXNfcmVzdWx0cywgSlNDVGVzdFJlc3VsdHMucmVzdWx0c19m
cm9tX3N0cmluZyhub19mYWlsdXJlc19zdHJpbmcpKQorCisgICAgICAgIGFwaV90ZXN0X2ZhaWx1
cmVzX3N0cmluZyA9ICd7ImFsbEFwaVRlc3RzUGFzc2VkIjogZmFsc2UsICJzdHJlc3NUZXN0RmFp
bHVyZXMiOltdfScKKyAgICAgICAgYXBpX3Rlc3RfZmFpbHVyZXNfcmVzdWx0cyA9IEpTQ1Rlc3RS
ZXN1bHRzKEZhbHNlLCBbXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhcGlfdGVzdF9mYWls
dXJlc19yZXN1bHRzLCBKU0NUZXN0UmVzdWx0cy5yZXN1bHRzX2Zyb21fc3RyaW5nKGFwaV90ZXN0
X2ZhaWx1cmVzX3N0cmluZykpCisKKyAgICAgICAgbWFueV9mYWlsdXJlc19zdHJpbmcgPSAneyJh
bGxBcGlUZXN0c1Bhc3NlZCI6IGZhbHNlLCAic3RyZXNzVGVzdEZhaWx1cmVzIjpbImVzNi55YW1s
L2VzNi90eXBlZF9hcnJheXNfSW50MTZBcnJheS5qcy5kZWZhdWx0IiwgImVzNi55YW1sL2VzNi90
eXBlZF9hcnJheXNfSW50OEFycmF5LmpzLmRlZmF1bHQiXX0nCisgICAgICAgIG1hbnlfZmFpbHVy
ZXNfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKEZhbHNlLCBbImVzNi55YW1sL2VzNi90eXBlZF9h
cnJheXNfSW50MTZBcnJheS5qcy5kZWZhdWx0IiwgImVzNi55YW1sL2VzNi90eXBlZF9hcnJheXNf
SW50OEFycmF5LmpzLmRlZmF1bHQiXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtYW55X2Zh
aWx1cmVzX3Jlc3VsdHMsIEpTQ1Rlc3RSZXN1bHRzLnJlc3VsdHNfZnJvbV9zdHJpbmcobWFueV9m
YWlsdXJlc19zdHJpbmcpKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29s
L2JvdC9qc2Nld3NfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90
L2pzY2V3c191bml0dGVzdC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42YWY2ZWZmNmFjNjVhNDkyYmM5MmUwZGVm
OTMxNjRmZmJiZjFkYjhjCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS90b29sL2JvdC9qc2Nld3NfdW5pdHRlc3QucHkKQEAgLTAsMCArMSwxMzYgQEAKKyMgQ29weXJp
Z2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMg
Mi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
CisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IKKyMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyMgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworaW1wb3J0IGxvZ2dpbmcKK2ltcG9ydCB1
bml0dGVzdAorCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5uZXQuanNjdGVzdHJlc3VsdHMgaW1wb3J0
IEpTQ1Rlc3RSZXN1bHRzCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZlIGlt
cG9ydCBTY3JpcHRFcnJvcgorZnJvbSB3ZWJraXRweS50b29sLmJvdC5wYXRjaGFuYWx5c2lzdGFz
ayBpbXBvcnQgKgorZnJvbSB3ZWJraXRweS50b29sLmNvbW1hbmRzLmVhcmx5d2FybmluZ3N5c3Rl
bSBpbXBvcnQgQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0KK2Zyb20gd2Via2l0cHkudG9vbC5t
b2NrdG9vbCBpbXBvcnQgTW9ja1Rvb2wKKworX2xvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFt
ZV9fKQorCisKK2NsYXNzIE1vY2tQYXRjaEFuYWx5c2lzVGFzayhQYXRjaEFuYWx5c2lzVGFzayk6
CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGRlbGVnYXRlLCBwYXRjaCwgZmlyc3RfdGVzdF9hbGxf
cGFzc2VkKToKKyAgICAgICAgc2VsZi5fZGVsZWdhdGUgPSBkZWxlZ2F0ZQorICAgICAgICBzZWxm
Ll9wYXRjaCA9IHBhdGNoCisgICAgICAgIHNlbGYuX3NjcmlwdF9lcnJvciA9IE5vbmUKKyAgICAg
ICAgc2VsZi5fcmVzdWx0c19hcmNoaXZlX2Zyb21fcGF0Y2hfdGVzdF9ydW4gPSBOb25lCisgICAg
ICAgIHNlbGYuX3Jlc3VsdHNfZnJvbV9wYXRjaF90ZXN0X3J1biA9IE5vbmUKKyAgICAgICAgc2Vs
Zi5lcnJvciA9IE5vbmUKKyAgICAgICAgc2VsZi5fZmlyc3RfdGVzdF9hbGxfcGFzc2VkID0gZmly
c3RfdGVzdF9hbGxfcGFzc2VkCisgICAgICAgIHNlbGYuX3Rlc3RfcnVuX2NvdW50ID0gMAorCisg
ICAgZGVmIF90ZXN0KHNlbGYpOgorICAgICAgICBzZWxmLl90ZXN0X3J1bl9jb3VudCArPSAxCisK
KyAgICAgICAgaWYgc2VsZi5fZmlyc3RfdGVzdF9hbGxfcGFzc2VkID09IFRydWU6CisgICAgICAg
ICAgICByZXR1cm4gVHJ1ZQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZi5fc2NyaXB0
X2Vycm9yID0gU2NyaXB0RXJyb3IoIkV4cGVjdGVkIGZhaWx1cmUgaW4gcmVncmVzc2lvbiB0ZXN0
IikKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgZGVmIF9idWlsZF9hbmRfdGVzdF93
aXRob3V0X3BhdGNoKHNlbGYpOgorICAgICAgICBzZWxmLl90ZXN0X3J1bl9jb3VudCArPSAxCisg
ICAgICAgIHJldHVybiBUcnVlCisKKyAgICBkZWYgdmFsaWRhdGUoc2VsZik6CisgICAgICAgIHJl
dHVybiBUcnVlCisKKyAgICBkZWYgdGVzdF9ydW5fY291bnQoc2VsZik6CisgICAgICAgIHJldHVy
biBzZWxmLl90ZXN0X3J1bl9jb3VudAorCisKKyMgVGhpcyBpcyB0aGUgZGVsZWdhdGUgdG8gYmUg
dXNlZCB3aXRoIE1vY2tQYXRjaEFuYWx5c2lzVGFzaywgYWJvdmUuCitjbGFzcyBNb2NrSlNDRWFy
bHlXYXJuaW5nU3lzdGVtKEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtKToKKyAgICBkZWYgX19p
bml0X18oc2VsZiwgZmlyc3RfdGVzdF9yZXN1bHRzLCBjbGVhbl90ZXN0X3Jlc3VsdHMpOgorICAg
ICAgICBBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbS5fX2luaXRfXyhzZWxmKQorICAgICAgICBz
ZWxmLl9ncm91cCA9ICJqc2MiCisgICAgICAgIHNlbGYuX3Jlc3VsdHNfaW5fb3JkZXIgPSBbY2xl
YW5fdGVzdF9yZXN1bHRzLCBmaXJzdF90ZXN0X3Jlc3VsdHNdCisKKyAgICBkZWYgdGVzdF9yZXN1
bHRzKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5fcmVzdWx0c19pbl9vcmRlci5wb3AoKQor
CisKK2NsYXNzIEpTQ0Vhcmx5V2FybmluZ1N5c3RlbVRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgor
ICAgIGRlZiBfY3JlYXRlX3Rhc2soc2VsZiwgZmlyc3RfdGVzdF9yZXN1bHRzLCBjbGVhbl90ZXN0
X3Jlc3VsdHMpOgorICAgICAgICBxdWV1ZSA9IE1vY2tKU0NFYXJseVdhcm5pbmdTeXN0ZW0oZmly
c3RfdGVzdF9yZXN1bHRzLCBjbGVhbl90ZXN0X3Jlc3VsdHMpCisgICAgICAgIHRvb2wgPSBNb2Nr
VG9vbChsb2dfZXhlY3V0aXZlPVRydWUpCisgICAgICAgIHBhdGNoID0gdG9vbC5idWdzLmZldGNo
X2F0dGFjaG1lbnQoMTAwMDApCisgICAgICAgIHJldHVybiBNb2NrUGF0Y2hBbmFseXNpc1Rhc2so
cXVldWUsIHBhdGNoLCBmaXJzdF90ZXN0X3Jlc3VsdHMuYWxsX3Bhc3NlZCgpKQorCisgICAgZGVm
IHRlc3Rfc3VjY2Vzc19jYXNlKHNlbGYpOgorICAgICAgICBmaXJzdF90ZXN0X3Jlc3VsdHMgPSBK
U0NUZXN0UmVzdWx0cyhUcnVlLCBbXSkKKyAgICAgICAgY2xlYW5fdGVzdF9yZXN1bHRzID0gSlND
VGVzdFJlc3VsdHMoVHJ1ZSwgW10pCisgICAgICAgIHRhc2sgPSBzZWxmLl9jcmVhdGVfdGFzayhm
aXJzdF90ZXN0X3Jlc3VsdHMsIGNsZWFuX3Rlc3RfcmVzdWx0cykKKworICAgICAgICByZXR1cm5f
dmFsdWUgPSB0YXNrLl90ZXN0X3BhdGNoKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0YXNr
LnRlc3RfcnVuX2NvdW50KCksIDEpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmV0dXJuX3Zh
bHVlLCBUcnVlKQorCisgICAgZGVmIHRlc3RfdGVzdF9mYWlsdXJlKHNlbGYpOgorICAgICAgICBm
aXJzdF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbJ0ZhaWwuanMnXSkKKyAg
ICAgICAgY2xlYW5fdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgW10pCisgICAg
ICAgIHRhc2sgPSBzZWxmLl9jcmVhdGVfdGFzayhmaXJzdF90ZXN0X3Jlc3VsdHMsIGNsZWFuX3Rl
c3RfcmVzdWx0cykKKworICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFNjcmlwdEVycm9y
KToKKyAgICAgICAgICAgIHJldHVybl92YWx1ZSA9IHRhc2suX3Rlc3RfcGF0Y2goKQorICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKHRhc2sudGVzdF9ydW5fY291bnQoKSwgMikKKworICAgIGRlZiB0
ZXN0X2ZpeChzZWxmKToKKyAgICAgICAgZmlyc3RfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3Vs
dHMoVHJ1ZSwgW10pCisgICAgICAgIGNsZWFuX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRz
KFRydWUsIFsnRmFpbC5qcyddKQorICAgICAgICB0YXNrID0gc2VsZi5fY3JlYXRlX3Rhc2soZmly
c3RfdGVzdF9yZXN1bHRzLCBjbGVhbl90ZXN0X3Jlc3VsdHMpCisKKyAgICAgICAgcmV0dXJuX3Zh
bHVlID0gdGFzay5fdGVzdF9wYXRjaCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGFzay50
ZXN0X3J1bl9jb3VudCgpLCAxKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJldHVybl92YWx1
ZSwgVHJ1ZSkKKworICAgIGRlZiB0ZXN0X2luZWZmZWN0aXZlX3BhdGNoKHNlbGYpOgorICAgICAg
ICBmaXJzdF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhGYWxzZSwgWydmYWlsdXJlMS5q
cycsICdmYWlsdXJlMi5qcyddKQorICAgICAgICBjbGVhbl90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0
UmVzdWx0cyhGYWxzZSwgWydmYWlsdXJlMS5qcycsICdmYWlsdXJlMi5qcyddKQorICAgICAgICB0
YXNrID0gc2VsZi5fY3JlYXRlX3Rhc2soZmlyc3RfdGVzdF9yZXN1bHRzLCBjbGVhbl90ZXN0X3Jl
c3VsdHMpCisKKyAgICAgICAgcmV0dXJuX3ZhbHVlID0gdGFzay5fdGVzdF9wYXRjaCgpCisgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwodGFzay50ZXN0X3J1bl9jb3VudCgpLCAyKQorICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKHJldHVybl92YWx1ZSwgVHJ1ZSkKKworICAgIGRlZiB0ZXN0X3BhcnRp
YWxseV9lZmZlY3RpdmVfcGF0Y2goc2VsZik6CisgICAgICAgIGZpcnN0X3Rlc3RfcmVzdWx0cyA9
IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFsnZmFpbHVyZTIuanMnXSkKKyAgICAgICAgY2xlYW5fdGVz
dF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoRmFsc2UsIFsnZmFpbHVyZTEuanMnLCAnZmFpbHVy
ZTIuanMnXSkKKyAgICAgICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90YXNrKGZpcnN0X3Rlc3RfcmVz
dWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKQorCisgICAgICAgIHJldHVybl92YWx1ZSA9IHRhc2su
X3Rlc3RfcGF0Y2goKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRhc2sudGVzdF9ydW5fY291
bnQoKSwgMikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXR1cm5fdmFsdWUsIFRydWUpCisK
KyAgICBkZWYgdGVzdF9kaWZmZXJlbnRfdGVzdF9mYWlsdXJlcyhzZWxmKToKKyAgICAgICAgZmly
c3RfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoRmFsc2UsIFtdKQorICAgICAgICBjbGVh
bl90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbJ2ZhaWx1cmUxLmpzJywgJ2Zh
aWx1cmUyLmpzJ10pCisgICAgICAgIHRhc2sgPSBzZWxmLl9jcmVhdGVfdGFzayhmaXJzdF90ZXN0
X3Jlc3VsdHMsIGNsZWFuX3Rlc3RfcmVzdWx0cykKKworICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0
UmFpc2VzKFNjcmlwdEVycm9yKToKKyAgICAgICAgICAgIHJldHVybl92YWx1ZSA9IHRhc2suX3Rl
c3RfcGF0Y2goKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRhc2sudGVzdF9ydW5fY291bnQo
KSwgMikKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvanNjdGVz
dHJlc3VsdHNyZWFkZXIucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2pzY3Rl
c3RyZXN1bHRzcmVhZGVyLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA0MDI0NDUxZTgzNjVkOTNhYWU2N2ZmZTQ2
ZjRlYzkwNGM0NGE2NTQKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L3Rvb2wvYm90L2pzY3Rlc3RyZXN1bHRzcmVhZGVyLnB5CkBAIC0wLDAgKzEsNDcgQEAKKyMgQ29w
eXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIwor
IyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IKKyMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyMgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworaW1wb3J0IGxvZ2dpbmcKKworZnJv
bSB3ZWJraXRweS5jb21tb24ubmV0LmpzY3Rlc3RyZXN1bHRzIGltcG9ydCBKU0NUZXN0UmVzdWx0
cworCitfbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18pCisKKworY2xhc3MgSlNDVGVz
dFJlc3VsdHNSZWFkZXIob2JqZWN0KToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgaG9zdCwgcmVz
dWx0c19kaXJlY3RvcnkpOgorICAgICAgICBzZWxmLl9ob3N0ID0gaG9zdAorICAgICAgICBzZWxm
Ll9yZXN1bHRzX2RpcmVjdG9yeSA9IHJlc3VsdHNfZGlyZWN0b3J5CisKKyAgICBkZWYgX3JlYWRf
ZmlsZV9jb250ZW50cyhzZWxmLCBwYXRoKToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcmV0
dXJuIHNlbGYuX2hvc3QuZmlsZXN5c3RlbS5yZWFkX3RleHRfZmlsZShwYXRoKQorICAgICAgICBl
eGNlcHQgSU9FcnJvciwgZTogICMgRmlsZSBkb2VzIG5vdCBleGlzdCBvciBjYW4ndCBiZSByZWFk
LgorICAgICAgICAgICAgcmV0dXJuIE5vbmUKKworICAgIGRlZiBfY3JlYXRlX2pzY190ZXN0X3Jl
c3VsdHMoc2VsZik6CisgICAgICAgIHJlc3VsdHNfcGF0aCA9IHNlbGYuX2hvc3QuZmlsZXN5c3Rl
bS5qb2luKHNlbGYuX3Jlc3VsdHNfZGlyZWN0b3J5LCAianNjX3Rlc3RfcmVzdWx0cy5qc29uIikK
KyAgICAgICAgY29udGVudHMgPSBzZWxmLl9yZWFkX2ZpbGVfY29udGVudHMocmVzdWx0c19wYXRo
KQorICAgICAgICByZXR1cm4gSlNDVGVzdFJlc3VsdHMucmVzdWx0c19mcm9tX3N0cmluZyhjb250
ZW50cykKKworICAgIGRlZiByZXN1bHRzKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5fY3Jl
YXRlX2pzY190ZXN0X3Jlc3VsdHMoKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS90b29sL2JvdC9wYXRjaGFuYWx5c2lzdGFzay5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
dG9vbC9ib3QvcGF0Y2hhbmFseXNpc3Rhc2sucHkKaW5kZXggNzUyMzE2NDE2YzVmOWQwYTNlNTll
ZjZkMDVlMzE3ODVmOTE3NDYyOS4uYTNkZTY3NjBlNGFhMWViMDdkNjJjNjVkZDVjYTI4N2Y4M2My
YmE3NSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9wYXRjaGFu
YWx5c2lzdGFzay5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L3BhdGNo
YW5hbHlzaXN0YXNrLnB5CkBAIC0xLDQgKzEsNSBAQAogIyBDb3B5cmlnaHQgKGMpIDIwMTAgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChjKSAyMDE2IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBh
cmUKQEAgLTEyMywyNyArMTI0LDM5IEBAIGNsYXNzIFBhdGNoQW5hbHlzaXNUYXNrKG9iamVjdCk6
CiAgICAgICAgICJQYXRjaCBkb2VzIG5vdCBhcHBseSIpCiAKICAgICBkZWYgX2J1aWxkKHNlbGYp
OgotICAgICAgICByZXR1cm4gc2VsZi5fcnVuX2NvbW1hbmQoWworICAgICAgICBhcmdzID0gWwog
ICAgICAgICAgICAgImJ1aWxkIiwKICAgICAgICAgICAgICItLW5vLWNsZWFuIiwKICAgICAgICAg
ICAgICItLW5vLXVwZGF0ZSIsCiAgICAgICAgICAgICAiLS1idWlsZC1zdHlsZT0lcyIgJSBzZWxm
Ll9kZWxlZ2F0ZS5idWlsZF9zdHlsZSgpLAotICAgICAgICBdLAotICAgICAgICAiQnVpbHQgcGF0
Y2giLAotICAgICAgICAiUGF0Y2ggZG9lcyBub3QgYnVpbGQiKQorICAgICAgICBdCisKKyAgICAg
ICAgaWYgaGFzYXR0cihzZWxmLl9kZWxlZ2F0ZSwgJ2dyb3VwJyk6CisgICAgICAgICAgICBhcmdz
LmFwcGVuZCgiLS1ncm91cD0lcyIgJSBzZWxmLl9kZWxlZ2F0ZS5ncm91cCgpKQorCisgICAgICAg
IHJldHVybiBzZWxmLl9ydW5fY29tbWFuZCgKKyAgICAgICAgICAgIGFyZ3MsCisgICAgICAgICAg
ICAiQnVpbHQgcGF0Y2giLAorICAgICAgICAgICAgIlBhdGNoIGRvZXMgbm90IGJ1aWxkIikKIAog
ICAgIGRlZiBfYnVpbGRfd2l0aG91dF9wYXRjaChzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYu
X3J1bl9jb21tYW5kKFsKKyAgICAgICAgYXJncyA9IFsKICAgICAgICAgICAgICJidWlsZCIsCiAg
ICAgICAgICAgICAiLS1mb3JjZS1jbGVhbiIsCiAgICAgICAgICAgICAiLS1uby11cGRhdGUiLAog
ICAgICAgICAgICAgIi0tYnVpbGQtc3R5bGU9JXMiICUgc2VsZi5fZGVsZWdhdGUuYnVpbGRfc3R5
bGUoKSwKLSAgICAgICAgXSwKLSAgICAgICAgIkFibGUgdG8gYnVpbGQgd2l0aG91dCBwYXRjaCIs
Ci0gICAgICAgICJVbmFibGUgdG8gYnVpbGQgd2l0aG91dCBwYXRjaCIpCisgICAgICAgIF0KKwor
ICAgICAgICBpZiBoYXNhdHRyKHNlbGYuX2RlbGVnYXRlLCAnZ3JvdXAnKToKKyAgICAgICAgICAg
IGFyZ3MuYXBwZW5kKCItLWdyb3VwPSVzIiAlIHNlbGYuX2RlbGVnYXRlLmdyb3VwKCkpCisKKyAg
ICAgICAgcmV0dXJuIHNlbGYuX3J1bl9jb21tYW5kKAorICAgICAgICAgICAgYXJncywKKyAgICAg
ICAgICAgICJBYmxlIHRvIGJ1aWxkIHdpdGhvdXQgcGF0Y2giLAorICAgICAgICAgICAgIlVuYWJs
ZSB0byBidWlsZCB3aXRob3V0IHBhdGNoIikKIAogICAgIGRlZiBfdGVzdChzZWxmKToKLSAgICAg
ICAgcmV0dXJuIHNlbGYuX3J1bl9jb21tYW5kKFsKKyAgICAgICAgYXJncyA9IFsKICAgICAgICAg
ICAgICJidWlsZC1hbmQtdGVzdCIsCiAgICAgICAgICAgICAiLS1uby1jbGVhbiIsCiAgICAgICAg
ICAgICAiLS1uby11cGRhdGUiLApAQCAtMTUxLDEyICsxNjQsMTggQEAgY2xhc3MgUGF0Y2hBbmFs
eXNpc1Rhc2sob2JqZWN0KToKICAgICAgICAgICAgICItLXRlc3QiLAogICAgICAgICAgICAgIi0t
bm9uLWludGVyYWN0aXZlIiwKICAgICAgICAgICAgICItLWJ1aWxkLXN0eWxlPSVzIiAlIHNlbGYu
X2RlbGVnYXRlLmJ1aWxkX3N0eWxlKCksCi0gICAgICAgIF0sCi0gICAgICAgICJQYXNzZWQgdGVz
dHMiLAotICAgICAgICAiUGF0Y2ggZG9lcyBub3QgcGFzcyB0ZXN0cyIpCisgICAgICAgIF0KKwor
ICAgICAgICBpZiBoYXNhdHRyKHNlbGYuX2RlbGVnYXRlLCAnZ3JvdXAnKToKKyAgICAgICAgICAg
IGFyZ3MuYXBwZW5kKCItLWdyb3VwPSVzIiAlIHNlbGYuX2RlbGVnYXRlLmdyb3VwKCkpCisKKyAg
ICAgICAgcmV0dXJuIHNlbGYuX3J1bl9jb21tYW5kKAorICAgICAgICAgICAgYXJncywKKyAgICAg
ICAgICAgICJQYXNzZWQgdGVzdHMiLAorICAgICAgICAgICAgIlBhdGNoIGRvZXMgbm90IHBhc3Mg
dGVzdHMiKQogCiAgICAgZGVmIF9idWlsZF9hbmRfdGVzdF93aXRob3V0X3BhdGNoKHNlbGYpOgot
ICAgICAgICByZXR1cm4gc2VsZi5fcnVuX2NvbW1hbmQoWworICAgICAgICBhcmdzID0gWwogICAg
ICAgICAgICAgImJ1aWxkLWFuZC10ZXN0IiwKICAgICAgICAgICAgICItLWZvcmNlLWNsZWFuIiwK
ICAgICAgICAgICAgICItLW5vLXVwZGF0ZSIsCkBAIC0xNjQsOSArMTgzLDE1IEBAIGNsYXNzIFBh
dGNoQW5hbHlzaXNUYXNrKG9iamVjdCk6CiAgICAgICAgICAgICAiLS10ZXN0IiwKICAgICAgICAg
ICAgICItLW5vbi1pbnRlcmFjdGl2ZSIsCiAgICAgICAgICAgICAiLS1idWlsZC1zdHlsZT0lcyIg
JSBzZWxmLl9kZWxlZ2F0ZS5idWlsZF9zdHlsZSgpLAotICAgICAgICBdLAotICAgICAgICAiQWJs
ZSB0byBwYXNzIHRlc3RzIHdpdGhvdXQgcGF0Y2giLAotICAgICAgICAiVW5hYmxlIHRvIHBhc3Mg
dGVzdHMgd2l0aG91dCBwYXRjaCAodHJlZSBpcyByZWQ/KSIpCisgICAgICAgIF0KKworICAgICAg
ICBpZiBoYXNhdHRyKHNlbGYuX2RlbGVnYXRlLCAnZ3JvdXAnKToKKyAgICAgICAgICAgIGFyZ3Mu
YXBwZW5kKCItLWdyb3VwPSVzIiAlIHNlbGYuX2RlbGVnYXRlLmdyb3VwKCkpCisKKyAgICAgICAg
cmV0dXJuIHNlbGYuX3J1bl9jb21tYW5kKAorICAgICAgICAgICAgYXJncywKKyAgICAgICAgICAg
ICJBYmxlIHRvIHBhc3MgdGVzdHMgd2l0aG91dCBwYXRjaCIsCisgICAgICAgICAgICAiVW5hYmxl
IHRvIHBhc3MgdGVzdHMgd2l0aG91dCBwYXRjaCAodHJlZSBpcyByZWQ/KSIpCiAKICAgICBkZWYg
X2xhbmQoc2VsZik6CiAgICAgICAgICMgVW5jbGVhciBpZiB0aGlzIHNob3VsZCBwYXNzIC0tcXVp
ZXQgb3Igbm90LiAgSWYgLS1wYXJlbnQtY29tbWFuZCBhbHdheXMgZG9lcyB0aGUgcmVwb3J0aW5n
LCB0aGVuIGl0IHNob3VsZC4KQEAgLTIxMCw2OSArMjM1LDg2IEBAIGNsYXNzIFBhdGNoQW5hbHlz
aXNUYXNrKG9iamVjdCk6CiAgICAgICAgIGlmIHNlbGYuX3Rlc3QoKToKICAgICAgICAgICAgIHJl
dHVybiBUcnVlCiAKLSAgICAgICAgIyBOb3RlOiBhcmNoaXZlX2xhc3RfdGVzdF9yZXN1bHRzIGRl
bGV0ZXMgdGhlIHJlc3VsdHMgZGlyZWN0b3J5LCBtYWtpbmcgdGhlc2UgY2FsbHMgb3JkZXItc2Vu
c2l0dmUuCi0gICAgICAgICMgV2UgY291bGQgcmVtb3ZlIHRoaXMgZGVwZW5kZW5jeSBieSBidWls
ZGluZyB0aGUgdGVzdF9yZXN1bHRzIGZyb20gdGhlIGFyY2hpdmUuCi0gICAgICAgIGZpcnN0X3Jl
c3VsdHMgPSBzZWxmLl9kZWxlZ2F0ZS50ZXN0X3Jlc3VsdHMoKQotICAgICAgICBmaXJzdF9yZXN1
bHRzX2FyY2hpdmUgPSBzZWxmLl9kZWxlZ2F0ZS5hcmNoaXZlX2xhc3RfdGVzdF9yZXN1bHRzKHNl
bGYuX3BhdGNoKQotICAgICAgICBmaXJzdF9zY3JpcHRfZXJyb3IgPSBzZWxmLl9zY3JpcHRfZXJy
b3IKLSAgICAgICAgZmlyc3RfZmFpbHVyZV9zdGF0dXNfaWQgPSBzZWxmLmZhaWx1cmVfc3RhdHVz
X2lkCi0KLSAgICAgICAgaWYgc2VsZi5fdGVzdCgpIGFuZCBub3QgZmlyc3RfcmVzdWx0cy5kaWRf
ZXhjZWVkX3Rlc3RfZmFpbHVyZV9saW1pdCgpOgotICAgICAgICAgICAgIyBPbmx5IHJlcG9ydCBm
bGFreSB0ZXN0cyBpZiB3ZSB3ZXJlIHN1Y2Nlc3NmdWwgYXQgcGFyc2luZyByZXN1bHRzLmpzb24g
YW5kIGFyY2hpdmluZyByZXN1bHRzLgotICAgICAgICAgICAgaWYgZmlyc3RfcmVzdWx0cyBhbmQg
Zmlyc3RfcmVzdWx0c19hcmNoaXZlOgotICAgICAgICAgICAgICAgIHNlbGYuX3JlcG9ydF9mbGFr
eV90ZXN0cyhmaXJzdF9yZXN1bHRzLmZhaWxpbmdfdGVzdF9yZXN1bHRzKCksIGZpcnN0X3Jlc3Vs
dHNfYXJjaGl2ZSkKLSAgICAgICAgICAgIHJldHVybiBUcnVlCi0KLSAgICAgICAgc2Vjb25kX3Jl
c3VsdHMgPSBzZWxmLl9kZWxlZ2F0ZS50ZXN0X3Jlc3VsdHMoKQotICAgICAgICBzZWNvbmRfcmVz
dWx0c19hcmNoaXZlID0gc2VsZi5fZGVsZWdhdGUuYXJjaGl2ZV9sYXN0X3Rlc3RfcmVzdWx0cyhz
ZWxmLl9wYXRjaCkKLSAgICAgICAgc2Vjb25kX3NjcmlwdF9lcnJvciA9IHNlbGYuX3NjcmlwdF9l
cnJvcgotICAgICAgICBzZWNvbmRfZmFpbHVyZV9zdGF0dXNfaWQgPSBzZWxmLmZhaWx1cmVfc3Rh
dHVzX2lkCisgICAgICAgICMgRklYTUU6IEFic3RyYWN0IG91dCB0aGUgcmV0cnkgbG9naWMgaW5z
dGVhZCBvZiBjYXNpbmcgb24gdGhlIHRlc3Qgc3VpdGUgaGVyZS4KKyAgICAgICAgaWYgaGFzYXR0
cihzZWxmLl9kZWxlZ2F0ZSwgJ2dyb3VwJykgYW5kIHNlbGYuX2RlbGVnYXRlLmdyb3VwKCkgPT0g
ImpzYyI6CisgICAgICAgICAgICBmaXJzdF9yZXN1bHRzID0gc2VsZi5fZGVsZWdhdGUudGVzdF9y
ZXN1bHRzKCkKKyAgICAgICAgICAgIGZpcnN0X3NjcmlwdF9lcnJvciA9IHNlbGYuX3NjcmlwdF9l
cnJvcgorICAgICAgICAgICAgaWYgZmlyc3RfcmVzdWx0cy5hbGxfcGFzc2VkKCk6CisgICAgICAg
ICAgICAgICAgcmV0dXJuIFRydWUKIAotICAgICAgICBpZiBzZWNvbmRfcmVzdWx0cy5kaWRfZXhj
ZWVkX3Rlc3RfZmFpbHVyZV9saW1pdCgpIGFuZCBmaXJzdF9yZXN1bHRzLmRpZF9leGNlZWRfdGVz
dF9mYWlsdXJlX2xpbWl0KCk6CiAgICAgICAgICAgICBzZWxmLl9idWlsZF9hbmRfdGVzdF93aXRo
b3V0X3BhdGNoKCkKICAgICAgICAgICAgIGNsZWFuX3RyZWVfcmVzdWx0cyA9IHNlbGYuX2RlbGVn
YXRlLnRlc3RfcmVzdWx0cygpCiAKLSAgICAgICAgICAgIGlmIChsZW4oZmlyc3RfcmVzdWx0cy5m
YWlsaW5nX3Rlc3RzKCkpIC0gbGVuKGNsZWFuX3RyZWVfcmVzdWx0cy5mYWlsaW5nX3Rlc3RzKCkp
KSA8PSA1OgotICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICAgICAgIyBJZiB0
aGUgcGF0Y2gncyBmYWlsdXJlcyBhcmUgYSBzdWJzZXQgb2YgdGhlIHRyZWUncyBmYWlsdXJlcywg
dGhlIHBhdGNoIHNob3VsZCBwYXNzIEVXUy4KKyAgICAgICAgICAgIGlmIGZpcnN0X3Jlc3VsdHMg
PD0gY2xlYW5fdHJlZV9yZXN1bHRzOgorICAgICAgICAgICAgICAgIHJldHVybiBUcnVlCiAKLSAg
ICAgICAgICAgIHNlbGYuZmFpbHVyZV9zdGF0dXNfaWQgPSBmaXJzdF9mYWlsdXJlX3N0YXR1c19p
ZAorICAgICAgICAgICAgcmV0dXJuIHNlbGYucmVwb3J0X2ZhaWx1cmUoTm9uZSwgZmlyc3RfcmVz
dWx0cywgZmlyc3Rfc2NyaXB0X2Vycm9yKQogCi0gICAgICAgICAgICByZXR1cm4gc2VsZi5yZXBv
cnRfZmFpbHVyZShmaXJzdF9yZXN1bHRzX2FyY2hpdmUsIGZpcnN0X3Jlc3VsdHMsIGZpcnN0X3Nj
cmlwdF9lcnJvcikKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgICMgTm90ZTogYXJjaGl2ZV9s
YXN0X3Rlc3RfcmVzdWx0cyBkZWxldGVzIHRoZSByZXN1bHRzIGRpcmVjdG9yeSwgbWFraW5nIHRo
ZXNlIGNhbGxzIG9yZGVyLXNlbnNpdHZlLgorICAgICAgICAgICAgIyBXZSBjb3VsZCByZW1vdmUg
dGhpcyBkZXBlbmRlbmN5IGJ5IGJ1aWxkaW5nIHRoZSB0ZXN0X3Jlc3VsdHMgZnJvbSB0aGUgYXJj
aGl2ZS4KKyAgICAgICAgICAgIGZpcnN0X3Jlc3VsdHMgPSBzZWxmLl9kZWxlZ2F0ZS50ZXN0X3Jl
c3VsdHMoKQorICAgICAgICAgICAgZmlyc3RfcmVzdWx0c19hcmNoaXZlID0gc2VsZi5fZGVsZWdh
dGUuYXJjaGl2ZV9sYXN0X3Rlc3RfcmVzdWx0cyhzZWxmLl9wYXRjaCkKKyAgICAgICAgICAgIGZp
cnN0X3NjcmlwdF9lcnJvciA9IHNlbGYuX3NjcmlwdF9lcnJvcgorICAgICAgICAgICAgZmlyc3Rf
ZmFpbHVyZV9zdGF0dXNfaWQgPSBzZWxmLmZhaWx1cmVfc3RhdHVzX2lkCiAKLSAgICAgICAgaWYg
c2Vjb25kX3Jlc3VsdHMuZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQoKToKLSAgICAgICAg
ICAgIHNlbGYuX3Nob3VsZF9kZWZlcl9wYXRjaF9vcl90aHJvdyhmaXJzdF9yZXN1bHRzLmZhaWxp
bmdfdGVzdF9yZXN1bHRzKCksIGZpcnN0X3Jlc3VsdHNfYXJjaGl2ZSwgZmlyc3Rfc2NyaXB0X2Vy
cm9yLCBmaXJzdF9mYWlsdXJlX3N0YXR1c19pZCkKLSAgICAgICAgICAgIHJldHVybiBGYWxzZQor
ICAgICAgICAgICAgaWYgc2VsZi5fdGVzdCgpIGFuZCBub3QgZmlyc3RfcmVzdWx0cy5kaWRfZXhj
ZWVkX3Rlc3RfZmFpbHVyZV9saW1pdCgpOgorICAgICAgICAgICAgICAgICMgT25seSByZXBvcnQg
Zmxha3kgdGVzdHMgaWYgd2Ugd2VyZSBzdWNjZXNzZnVsIGF0IHBhcnNpbmcgcmVzdWx0cy5qc29u
IGFuZCBhcmNoaXZpbmcgcmVzdWx0cy4KKyAgICAgICAgICAgICAgICBpZiBmaXJzdF9yZXN1bHRz
IGFuZCBmaXJzdF9yZXN1bHRzX2FyY2hpdmU6CisgICAgICAgICAgICAgICAgICAgIHNlbGYuX3Jl
cG9ydF9mbGFreV90ZXN0cyhmaXJzdF9yZXN1bHRzLmZhaWxpbmdfdGVzdF9yZXN1bHRzKCksIGZp
cnN0X3Jlc3VsdHNfYXJjaGl2ZSkKKyAgICAgICAgICAgICAgICByZXR1cm4gVHJ1ZQogCi0gICAg
ICAgIGlmIGZpcnN0X3Jlc3VsdHMuZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQoKToKLSAg
ICAgICAgICAgIHNlbGYuX3Nob3VsZF9kZWZlcl9wYXRjaF9vcl90aHJvdyhzZWNvbmRfcmVzdWx0
cy5mYWlsaW5nX3Rlc3RfcmVzdWx0cygpLCBzZWNvbmRfcmVzdWx0c19hcmNoaXZlLCBzZWNvbmRf
c2NyaXB0X2Vycm9yLCBzZWNvbmRfZmFpbHVyZV9zdGF0dXNfaWQpCi0gICAgICAgICAgICByZXR1
cm4gRmFsc2UKKyAgICAgICAgICAgIHNlY29uZF9yZXN1bHRzID0gc2VsZi5fZGVsZWdhdGUudGVz
dF9yZXN1bHRzKCkKKyAgICAgICAgICAgIHNlY29uZF9yZXN1bHRzX2FyY2hpdmUgPSBzZWxmLl9k
ZWxlZ2F0ZS5hcmNoaXZlX2xhc3RfdGVzdF9yZXN1bHRzKHNlbGYuX3BhdGNoKQorICAgICAgICAg
ICAgc2Vjb25kX3NjcmlwdF9lcnJvciA9IHNlbGYuX3NjcmlwdF9lcnJvcgorICAgICAgICAgICAg
c2Vjb25kX2ZhaWx1cmVfc3RhdHVzX2lkID0gc2VsZi5mYWlsdXJlX3N0YXR1c19pZAogCi0gICAg
ICAgIGlmIHNlbGYuX3Jlc3VsdHNfZmFpbGVkX2RpZmZlcmVudF90ZXN0cyhmaXJzdF9yZXN1bHRz
LCBzZWNvbmRfcmVzdWx0cyk6Ci0gICAgICAgICAgICBmaXJzdF9mYWlsaW5nX3Jlc3VsdHNfc2V0
ID0gZnJvemVuc2V0KGZpcnN0X3Jlc3VsdHMuZmFpbGluZ190ZXN0X3Jlc3VsdHMoKSkKLSAgICAg
ICAgICAgIHNlY29uZF9mYWlsaW5nX3Jlc3VsdHNfc2V0ID0gZnJvemVuc2V0KHNlY29uZF9yZXN1
bHRzLmZhaWxpbmdfdGVzdF9yZXN1bHRzKCkpCisgICAgICAgICAgICBpZiBzZWNvbmRfcmVzdWx0
cy5kaWRfZXhjZWVkX3Rlc3RfZmFpbHVyZV9saW1pdCgpIGFuZCBmaXJzdF9yZXN1bHRzLmRpZF9l
eGNlZWRfdGVzdF9mYWlsdXJlX2xpbWl0KCk6CisgICAgICAgICAgICAgICAgc2VsZi5fYnVpbGRf
YW5kX3Rlc3Rfd2l0aG91dF9wYXRjaCgpCisgICAgICAgICAgICAgICAgY2xlYW5fdHJlZV9yZXN1
bHRzID0gc2VsZi5fZGVsZWdhdGUudGVzdF9yZXN1bHRzKCkKIAotICAgICAgICAgICAgdGVzdHNf
dGhhdF9vbmx5X2ZhaWxlZF9maXJzdCA9IGZpcnN0X2ZhaWxpbmdfcmVzdWx0c19zZXQuZGlmZmVy
ZW5jZShzZWNvbmRfZmFpbGluZ19yZXN1bHRzX3NldCkKLSAgICAgICAgICAgIHNlbGYuX3JlcG9y
dF9mbGFreV90ZXN0cyh0ZXN0c190aGF0X29ubHlfZmFpbGVkX2ZpcnN0LCBmaXJzdF9yZXN1bHRz
X2FyY2hpdmUpCisgICAgICAgICAgICAgICAgaWYgKGxlbihmaXJzdF9yZXN1bHRzLmZhaWxpbmdf
dGVzdHMoKSkgLSBsZW4oY2xlYW5fdHJlZV9yZXN1bHRzLmZhaWxpbmdfdGVzdHMoKSkpIDw9IDU6
CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQogCi0gICAgICAgICAgICB0ZXN0c190
aGF0X29ubHlfZmFpbGVkX3NlY29uZCA9IHNlY29uZF9mYWlsaW5nX3Jlc3VsdHNfc2V0LmRpZmZl
cmVuY2UoZmlyc3RfZmFpbGluZ19yZXN1bHRzX3NldCkKLSAgICAgICAgICAgIHNlbGYuX3JlcG9y
dF9mbGFreV90ZXN0cyh0ZXN0c190aGF0X29ubHlfZmFpbGVkX3NlY29uZCwgc2Vjb25kX3Jlc3Vs
dHNfYXJjaGl2ZSkKKyAgICAgICAgICAgICAgICBzZWxmLmZhaWx1cmVfc3RhdHVzX2lkID0gZmly
c3RfZmFpbHVyZV9zdGF0dXNfaWQKIAotICAgICAgICAgICAgdGVzdHNfdGhhdF9jb25zaXN0ZW50
bHlfZmFpbGVkID0gZmlyc3RfZmFpbGluZ19yZXN1bHRzX3NldC5pbnRlcnNlY3Rpb24oc2Vjb25k
X2ZhaWxpbmdfcmVzdWx0c19zZXQpCi0gICAgICAgICAgICBpZiB0ZXN0c190aGF0X2NvbnNpc3Rl
bnRseV9mYWlsZWQ6Ci0gICAgICAgICAgICAgICAgaWYgc2VsZi5fc2hvdWxkX2RlZmVyX3BhdGNo
X29yX3Rocm93KHRlc3RzX3RoYXRfY29uc2lzdGVudGx5X2ZhaWxlZCwgZmlyc3RfcmVzdWx0c19h
cmNoaXZlLCBmaXJzdF9zY3JpcHRfZXJyb3IsIGZpcnN0X2ZhaWx1cmVfc3RhdHVzX2lkKToKLSAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlICAjIERlZmVyIHBhdGNoCisgICAgICAgICAg
ICAgICAgcmV0dXJuIHNlbGYucmVwb3J0X2ZhaWx1cmUoZmlyc3RfcmVzdWx0c19hcmNoaXZlLCBm
aXJzdF9yZXN1bHRzLCBmaXJzdF9zY3JpcHRfZXJyb3IpCiAKLSAgICAgICAgICAgICMgQXQgdGhp
cyBwb2ludCB3ZSBrbm93IHRoYXQgYXQgbGVhc3Qgb25lIHRlc3QgZmxha2VkLCBidXQgbm8gY29u
c2lzdGVudCBmYWlsdXJlcwotICAgICAgICAgICAgIyB3ZXJlIGludHJvZHVjZWQuIFRoaXMgaXMg
YSBiaXQgb2YgYSBncmV5LXpvbmUuCi0gICAgICAgICAgICByZXR1cm4gRmFsc2UgICMgRGVmZXIg
cGF0Y2gKKyAgICAgICAgICAgIGlmIHNlY29uZF9yZXN1bHRzLmRpZF9leGNlZWRfdGVzdF9mYWls
dXJlX2xpbWl0KCk6CisgICAgICAgICAgICAgICAgc2VsZi5fc2hvdWxkX2RlZmVyX3BhdGNoX29y
X3Rocm93KGZpcnN0X3Jlc3VsdHMuZmFpbGluZ190ZXN0X3Jlc3VsdHMoKSwgZmlyc3RfcmVzdWx0
c19hcmNoaXZlLCBmaXJzdF9zY3JpcHRfZXJyb3IsIGZpcnN0X2ZhaWx1cmVfc3RhdHVzX2lkKQor
ICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQogCi0gICAgICAgIGlmIHNlbGYuX3Nob3VsZF9k
ZWZlcl9wYXRjaF9vcl90aHJvdyhmaXJzdF9yZXN1bHRzLmZhaWxpbmdfdGVzdF9yZXN1bHRzKCks
IGZpcnN0X3Jlc3VsdHNfYXJjaGl2ZSwgZmlyc3Rfc2NyaXB0X2Vycm9yLCBmaXJzdF9mYWlsdXJl
X3N0YXR1c19pZCk6Ci0gICAgICAgICAgICByZXR1cm4gRmFsc2UgICMgRGVmZXIgcGF0Y2gKKyAg
ICAgICAgICAgIGlmIGZpcnN0X3Jlc3VsdHMuZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQo
KToKKyAgICAgICAgICAgICAgICBzZWxmLl9zaG91bGRfZGVmZXJfcGF0Y2hfb3JfdGhyb3coc2Vj
b25kX3Jlc3VsdHMuZmFpbGluZ190ZXN0X3Jlc3VsdHMoKSwgc2Vjb25kX3Jlc3VsdHNfYXJjaGl2
ZSwgc2Vjb25kX3NjcmlwdF9lcnJvciwgc2Vjb25kX2ZhaWx1cmVfc3RhdHVzX2lkKQorICAgICAg
ICAgICAgICAgIHJldHVybiBGYWxzZQogCi0gICAgICAgICMgQXQgdGhpcyBwb2ludCwgd2Uga25v
dyB0aGF0IHRoZSBmaXJzdCBhbmQgc2Vjb25kIHJ1bnMgaGFkIHRoZSBleGFjdCBzYW1lIGZhaWx1
cmVzLAotICAgICAgICAjIGFuZCB0aGF0IHRob3NlIGZhaWx1cmVzIGFyZSBhbGwgcHJlc2VudCBv
biB0aGUgY2xlYW4gdHJlZSwgc28gd2UgY2FuIHNheSB3aXRoIGNlcnRhaW50eQotICAgICAgICAj
IHRoYXQgdGhlIHBhdGNoIGlzIGdvb2QuCi0gICAgICAgIHJldHVybiBUcnVlCisgICAgICAgICAg
ICBpZiBzZWxmLl9yZXN1bHRzX2ZhaWxlZF9kaWZmZXJlbnRfdGVzdHMoZmlyc3RfcmVzdWx0cywg
c2Vjb25kX3Jlc3VsdHMpOgorICAgICAgICAgICAgICAgIGZpcnN0X2ZhaWxpbmdfcmVzdWx0c19z
ZXQgPSBmcm96ZW5zZXQoZmlyc3RfcmVzdWx0cy5mYWlsaW5nX3Rlc3RfcmVzdWx0cygpKQorICAg
ICAgICAgICAgICAgIHNlY29uZF9mYWlsaW5nX3Jlc3VsdHNfc2V0ID0gZnJvemVuc2V0KHNlY29u
ZF9yZXN1bHRzLmZhaWxpbmdfdGVzdF9yZXN1bHRzKCkpCisKKyAgICAgICAgICAgICAgICB0ZXN0
c190aGF0X29ubHlfZmFpbGVkX2ZpcnN0ID0gZmlyc3RfZmFpbGluZ19yZXN1bHRzX3NldC5kaWZm
ZXJlbmNlKHNlY29uZF9mYWlsaW5nX3Jlc3VsdHNfc2V0KQorICAgICAgICAgICAgICAgIHNlbGYu
X3JlcG9ydF9mbGFreV90ZXN0cyh0ZXN0c190aGF0X29ubHlfZmFpbGVkX2ZpcnN0LCBmaXJzdF9y
ZXN1bHRzX2FyY2hpdmUpCisKKyAgICAgICAgICAgICAgICB0ZXN0c190aGF0X29ubHlfZmFpbGVk
X3NlY29uZCA9IHNlY29uZF9mYWlsaW5nX3Jlc3VsdHNfc2V0LmRpZmZlcmVuY2UoZmlyc3RfZmFp
bGluZ19yZXN1bHRzX3NldCkKKyAgICAgICAgICAgICAgICBzZWxmLl9yZXBvcnRfZmxha3lfdGVz
dHModGVzdHNfdGhhdF9vbmx5X2ZhaWxlZF9zZWNvbmQsIHNlY29uZF9yZXN1bHRzX2FyY2hpdmUp
CisKKyAgICAgICAgICAgICAgICB0ZXN0c190aGF0X2NvbnNpc3RlbnRseV9mYWlsZWQgPSBmaXJz
dF9mYWlsaW5nX3Jlc3VsdHNfc2V0LmludGVyc2VjdGlvbihzZWNvbmRfZmFpbGluZ19yZXN1bHRz
X3NldCkKKyAgICAgICAgICAgICAgICBpZiB0ZXN0c190aGF0X2NvbnNpc3RlbnRseV9mYWlsZWQ6
CisgICAgICAgICAgICAgICAgICAgIGlmIHNlbGYuX3Nob3VsZF9kZWZlcl9wYXRjaF9vcl90aHJv
dyh0ZXN0c190aGF0X2NvbnNpc3RlbnRseV9mYWlsZWQsIGZpcnN0X3Jlc3VsdHNfYXJjaGl2ZSwg
Zmlyc3Rfc2NyaXB0X2Vycm9yLCBmaXJzdF9mYWlsdXJlX3N0YXR1c19pZCk6CisgICAgICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gRmFsc2UgICMgRGVmZXIgcGF0Y2gKKworICAgICAgICAgICAg
ICAgICMgQXQgdGhpcyBwb2ludCB3ZSBrbm93IHRoYXQgYXQgbGVhc3Qgb25lIHRlc3QgZmxha2Vk
LCBidXQgbm8gY29uc2lzdGVudCBmYWlsdXJlcworICAgICAgICAgICAgICAgICMgd2VyZSBpbnRy
b2R1Y2VkLiBUaGlzIGlzIGEgYml0IG9mIGEgZ3JleS16b25lLgorICAgICAgICAgICAgICAgIHJl
dHVybiBGYWxzZSAgIyBEZWZlciBwYXRjaAorCisgICAgICAgICAgICBpZiBzZWxmLl9zaG91bGRf
ZGVmZXJfcGF0Y2hfb3JfdGhyb3coZmlyc3RfcmVzdWx0cy5mYWlsaW5nX3Rlc3RfcmVzdWx0cygp
LCBmaXJzdF9yZXN1bHRzX2FyY2hpdmUsIGZpcnN0X3NjcmlwdF9lcnJvciwgZmlyc3RfZmFpbHVy
ZV9zdGF0dXNfaWQpOgorICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZSAgIyBEZWZlciBwYXRj
aAorCisgICAgICAgICAgICAjIEF0IHRoaXMgcG9pbnQsIHdlIGtub3cgdGhhdCB0aGUgZmlyc3Qg
YW5kIHNlY29uZCBydW5zIGhhZCB0aGUgZXhhY3Qgc2FtZSBmYWlsdXJlcywKKyAgICAgICAgICAg
ICMgYW5kIHRoYXQgdGhvc2UgZmFpbHVyZXMgYXJlIGFsbCBwcmVzZW50IG9uIHRoZSBjbGVhbiB0
cmVlLCBzbyB3ZSBjYW4gc2F5IHdpdGggY2VydGFpbnR5CisgICAgICAgICAgICAjIHRoYXQgdGhl
IHBhdGNoIGlzIGdvb2QuCisgICAgICAgICAgICByZXR1cm4gVHJ1ZQogCiAgICAgZGVmIHJlc3Vs
dHNfYXJjaGl2ZV9mcm9tX3BhdGNoX3Rlc3RfcnVuKHNlbGYsIHBhdGNoKToKICAgICAgICAgYXNz
ZXJ0KHNlbGYuX3BhdGNoLmlkKCkgPT0gcGF0Y2guaWQoKSkgICMgUGF0Y2hBbmFseXNpc1Rhc2sg
aXMgbm90IGN1cnJlbnRseSByZS11c2VhYmxlLgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS90b29sL2NvbW1hbmRzL2Vhcmx5d2FybmluZ3N5c3RlbS5weSBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9lYXJseXdhcm5pbmdzeXN0ZW0ucHkKaW5kZXggOWJj
MDQxODYwY2U2NzQ1NDQ1NGU0YjI1MTQzOGE5ZGJlNTI2NDUxMy4uYzVjMTI1OWIxMjAxOWRmMWJh
YjI3NWEwMjA4YTcxMDA0Y2Y5ZGY3MyAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS90b29sL2NvbW1hbmRzL2Vhcmx5d2FybmluZ3N5c3RlbS5weQorKysgYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZWFybHl3YXJuaW5nc3lzdGVtLnB5CkBAIC0xLDQgKzEs
NSBAQAogIyBDb3B5cmlnaHQgKGMpIDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyMgQ29weXJpZ2h0IChjKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTI4LDYgKzI5LDcgQEAKIAogaW1w
b3J0IGpzb24KIGltcG9ydCBsb2dnaW5nCitpbXBvcnQgb3MKIGZyb20gb3B0cGFyc2UgaW1wb3J0
IG1ha2Vfb3B0aW9uCiAKIGZyb20gd2Via2l0cHkuY29tbW9uLmNvbmZpZy5jb21taXR0ZXJzIGlt
cG9ydCBDb21taXR0ZXJMaXN0CkBAIC0zNiw2ICszOCw3IEBAIGZyb20gd2Via2l0cHkuY29tbW9u
LnN5c3RlbS5maWxlc3lzdGVtIGltcG9ydCBGaWxlU3lzdGVtCiBmcm9tIHdlYmtpdHB5LmNvbW1v
bi5zeXN0ZW0uZXhlY3V0aXZlIGltcG9ydCBTY3JpcHRFcnJvcgogZnJvbSB3ZWJraXRweS50b29s
LmJvdC5lYXJseXdhcm5pbmdzeXN0ZW10YXNrIGltcG9ydCBFYXJseVdhcm5pbmdTeXN0ZW1UYXNr
LCBFYXJseVdhcm5pbmdTeXN0ZW1UYXNrRGVsZWdhdGUKIGZyb20gd2Via2l0cHkudG9vbC5ib3Qu
bGF5b3V0dGVzdHJlc3VsdHNyZWFkZXIgaW1wb3J0IExheW91dFRlc3RSZXN1bHRzUmVhZGVyCitm
cm9tIHdlYmtpdHB5LnRvb2wuYm90LmpzY3Rlc3RyZXN1bHRzcmVhZGVyIGltcG9ydCBKU0NUZXN0
UmVzdWx0c1JlYWRlcgogZnJvbSB3ZWJraXRweS50b29sLmJvdC5wYXRjaGFuYWx5c2lzdGFzayBp
bXBvcnQgVW5hYmxlVG9BcHBseVBhdGNoLCBQYXRjaElzTm90VmFsaWQKIGZyb20gd2Via2l0cHku
dG9vbC5ib3QucXVldWVlbmdpbmUgaW1wb3J0IFF1ZXVlRW5naW5lCiBmcm9tIHdlYmtpdHB5LnRv
b2wuY29tbWFuZHMucXVldWVzIGltcG9ydCBBYnN0cmFjdFJldmlld1F1ZXVlCkBAIC01Myw3ICs1
NiwxMiBAQCBjbGFzcyBBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbShBYnN0cmFjdFJldmlld1F1
ZXVlLCBFYXJseVdhcm5pbmdTeXN0ZW1UYXNrRGVsZQogCiAgICAgZGVmIGJlZ2luX3dvcmtfcXVl
dWUoc2VsZik6CiAgICAgICAgIEFic3RyYWN0UmV2aWV3UXVldWUuYmVnaW5fd29ya19xdWV1ZShz
ZWxmKQotICAgICAgICBzZWxmLl9sYXlvdXRfdGVzdF9yZXN1bHRzX3JlYWRlciA9IExheW91dFRl
c3RSZXN1bHRzUmVhZGVyKHNlbGYuX3Rvb2wsIHNlbGYuX3BvcnQucmVzdWx0c19kaXJlY3Rvcnko
KSwgc2VsZi5fbG9nX2RpcmVjdG9yeSgpKQorCisgICAgICAgIGlmIHNlbGYuZ3JvdXAoKSA9PSAi
anNjIjoKKyAgICAgICAgICAgIGRpciA9IG9zLnBhdGguZGlybmFtZShvcy5wYXRoLmRpcm5hbWUo
b3MucGF0aC5kaXJuYW1lKHNlbGYuX3BvcnQucmVzdWx0c19kaXJlY3RvcnkoKSkpKQorICAgICAg
ICAgICAgc2VsZi5fdGVzdF9yZXN1bHRzX3JlYWRlciA9IEpTQ1Rlc3RSZXN1bHRzUmVhZGVyKHNl
bGYuX3Rvb2wsIGRpcikKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYuX3Rlc3RfcmVz
dWx0c19yZWFkZXIgPSBMYXlvdXRUZXN0UmVzdWx0c1JlYWRlcihzZWxmLl90b29sLCBzZWxmLl9w
b3J0LnJlc3VsdHNfZGlyZWN0b3J5KCksIHNlbGYuX2xvZ19kaXJlY3RvcnkoKSkKIAogICAgIGRl
ZiBfZmFpbGluZ190ZXN0c19tZXNzYWdlKHNlbGYsIHRhc2ssIHBhdGNoKToKICAgICAgICAgcmVz
dWx0cyA9IHRhc2sucmVzdWx0c19mcm9tX3BhdGNoX3Rlc3RfcnVuKHBhdGNoKQpAQCAtMTE3LDE0
ICsxMjUsMTcgQEAgY2xhc3MgQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0oQWJzdHJhY3RSZXZp
ZXdRdWV1ZSwgRWFybHlXYXJuaW5nU3lzdGVtVGFza0RlbGUKICAgICAgICAgcmV0dXJuIHNlbGYu
X3VwZGF0ZV9zdGF0dXMobWVzc2FnZSwgcGF0Y2g9cGF0Y2gsIHJlc3VsdHNfZmlsZT1mYWlsdXJl
X2xvZykKIAogICAgIGRlZiB0ZXN0X3Jlc3VsdHMoc2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxm
Ll9sYXlvdXRfdGVzdF9yZXN1bHRzX3JlYWRlci5yZXN1bHRzKCkKKyAgICAgICAgcmV0dXJuIHNl
bGYuX3Rlc3RfcmVzdWx0c19yZWFkZXIucmVzdWx0cygpCiAKICAgICBkZWYgYXJjaGl2ZV9sYXN0
X3Rlc3RfcmVzdWx0cyhzZWxmLCBwYXRjaCk6Ci0gICAgICAgIHJldHVybiBzZWxmLl9sYXlvdXRf
dGVzdF9yZXN1bHRzX3JlYWRlci5hcmNoaXZlKHBhdGNoKQorICAgICAgICByZXR1cm4gc2VsZi5f
dGVzdF9yZXN1bHRzX3JlYWRlci5hcmNoaXZlKHBhdGNoKQogCiAgICAgZGVmIGJ1aWxkX3N0eWxl
KHNlbGYpOgogICAgICAgICByZXR1cm4gc2VsZi5fYnVpbGRfc3R5bGUKIAorICAgIGRlZiBncm91
cChzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX2dyb3VwCisKICAgICBkZWYgcmVmZXRjaF9w
YXRjaChzZWxmLCBwYXRjaCk6CiAgICAgICAgIHJldHVybiBzZWxmLl90b29sLmJ1Z3MuZmV0Y2hf
YXR0YWNobWVudChwYXRjaC5pZCgpKQogCkBAIC0xNTYsNSArMTY3LDYgQEAgY2xhc3MgQWJzdHJh
Y3RFYXJseVdhcm5pbmdTeXN0ZW0oQWJzdHJhY3RSZXZpZXdRdWV1ZSwgRWFybHlXYXJuaW5nU3lz
dGVtVGFza0RlbGUKICAgICAgICAgICAgICAgICAnX2J1aWxkX3N0eWxlJzogY29uZmlnLmdldCgn
c3R5bGUnLCAicmVsZWFzZSIpLAogICAgICAgICAgICAgICAgICd3YXRjaGVycyc6IGNvbmZpZy5n
ZXQoJ3dhdGNoZXJzJywgW10pLAogICAgICAgICAgICAgICAgICdydW5fdGVzdHMnOiBjb25maWcu
Z2V0KCdydW5UZXN0cycsIGNscy5ydW5fdGVzdHMpLAorICAgICAgICAgICAgICAgICdfZ3JvdXAn
OiBjb25maWcuZ2V0KCdncm91cCcsIE5vbmUpLAogICAgICAgICAgICAgfSkpCiAgICAgICAgIHJl
dHVybiBjbGFzc2VzCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29t
bWFuZHMvZWFybHl3YXJuaW5nc3lzdGVtX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS90b29sL2NvbW1hbmRzL2Vhcmx5d2FybmluZ3N5c3RlbV91bml0dGVzdC5weQppbmRleCAw
ODg4NzgxM2NlMmU5M2E4ZWM5ZGEzNzYzNmVjYmRlOWVmZjNjOWU3Li43ZTA1ODdiMmUyN2Q0NTFm
ZTg4MTk0NGVkZDFkNmRmZjRkNWE5ZDc4IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L3Rvb2wvY29tbWFuZHMvZWFybHl3YXJuaW5nc3lzdGVtX3VuaXR0ZXN0LnB5CisrKyBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9lYXJseXdhcm5pbmdzeXN0ZW1fdW5p
dHRlc3QucHkKQEAgLTEsNCArMSw1IEBACiAjIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAt
NDcsNiArNDgsNyBAQCBjbGFzcyBBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbVRlc3QoUXVldWVz
VGVzdCk6CiAgICAgICAgIGNsYXNzIFRlc3RFV1MoQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0p
OgogICAgICAgICAgICAgcG9ydF9uYW1lID0gIndpbiIgICMgTmVlZHMgdG8gYmUgYSBwb3J0IHdo
aWNoIHBvcnQvZmFjdG9yeSB1bmRlcnN0YW5kcy4KICAgICAgICAgICAgIF9idWlsZF9zdHlsZSA9
IE5vbmUKKyAgICAgICAgICAgIF9ncm91cCA9IE5vbmUKIAogICAgICAgICBld3MgPSBUZXN0RVdT
KCkKICAgICAgICAgZXdzLmJpbmRfdG9fdG9vbChNb2NrVG9vbCgpKQpAQCAtNjgsOSArNzAsMTAg
QEAgY2xhc3MgRWFybHlXYXJuaW5nU3lzdGVtVGVzdChRdWV1ZXNUZXN0KToKICAgICAgICAgICAg
ICJwb3J0IjogZXdzLnBvcnRfbmFtZSwKICAgICAgICAgICAgICJhcmNoaXRlY3R1cmUiOiAiIC0t
YXJjaGl0ZWN0dXJlPSVzIiAlIGV3cy5hcmNoaXRlY3R1cmUgaWYgZXdzLmFyY2hpdGVjdHVyZSBl
bHNlICIiLAogICAgICAgICAgICAgImJ1aWxkX3N0eWxlIjogZXdzLmJ1aWxkX3N0eWxlKCksCisg
ICAgICAgICAgICAiZ3JvdXAiOiBld3MuZ3JvdXAoKSwKICAgICAgICAgfQogICAgICAgICBpZiBl
d3MucnVuX3Rlc3RzOgotICAgICAgICAgICAgcnVuX3Rlc3RzX2xpbmUgPSAiUnVubmluZzogd2Vi
a2l0LXBhdGNoIC0tc3RhdHVzLWhvc3Q9ZXhhbXBsZS5jb20gYnVpbGQtYW5kLXRlc3QgLS1uby1j
bGVhbiAtLW5vLXVwZGF0ZSAtLXRlc3QgLS1ub24taW50ZXJhY3RpdmUgLS1idWlsZC1zdHlsZT0l
KGJ1aWxkX3N0eWxlKXMgLS1wb3J0PSUocG9ydClzJShhcmNoaXRlY3R1cmUpc1xuIiAlIHN0cmlu
Z19yZXBsYWNlbWVudHMKKyAgICAgICAgICAgIHJ1bl90ZXN0c19saW5lID0gIlJ1bm5pbmc6IHdl
YmtpdC1wYXRjaCAtLXN0YXR1cy1ob3N0PWV4YW1wbGUuY29tIGJ1aWxkLWFuZC10ZXN0IC0tbm8t
Y2xlYW4gLS1uby11cGRhdGUgLS10ZXN0IC0tbm9uLWludGVyYWN0aXZlIC0tYnVpbGQtc3R5bGU9
JShidWlsZF9zdHlsZSlzIC0tZ3JvdXA9JShncm91cClzIC0tcG9ydD0lKHBvcnQpcyUoYXJjaGl0
ZWN0dXJlKXNcbiIgJSBzdHJpbmdfcmVwbGFjZW1lbnRzCiAgICAgICAgIGVsc2U6CiAgICAgICAg
ICAgICBydW5fdGVzdHNfbGluZSA9ICIiCiAgICAgICAgIHN0cmluZ19yZXBsYWNlbWVudHNbJ3J1
bl90ZXN0c19saW5lJ10gPSBydW5fdGVzdHNfbGluZQpAQCAtODEsNyArODQsNyBAQCBjbGFzcyBF
YXJseVdhcm5pbmdTeXN0ZW1UZXN0KFF1ZXVlc1Rlc3QpOgogUnVubmluZzogd2Via2l0LXBhdGNo
IC0tc3RhdHVzLWhvc3Q9ZXhhbXBsZS5jb20gY2xlYW4gLS1wb3J0PSUocG9ydClzJShhcmNoaXRl
Y3R1cmUpcwogUnVubmluZzogd2Via2l0LXBhdGNoIC0tc3RhdHVzLWhvc3Q9ZXhhbXBsZS5jb20g
dXBkYXRlIC0tcG9ydD0lKHBvcnQpcyUoYXJjaGl0ZWN0dXJlKXMKIFJ1bm5pbmc6IHdlYmtpdC1w
YXRjaCAtLXN0YXR1cy1ob3N0PWV4YW1wbGUuY29tIGFwcGx5LWF0dGFjaG1lbnQgLS1uby11cGRh
dGUgLS1ub24taW50ZXJhY3RpdmUgMTAwMDAgLS1wb3J0PSUocG9ydClzJShhcmNoaXRlY3R1cmUp
cwotUnVubmluZzogd2Via2l0LXBhdGNoIC0tc3RhdHVzLWhvc3Q9ZXhhbXBsZS5jb20gYnVpbGQg
LS1uby1jbGVhbiAtLW5vLXVwZGF0ZSAtLWJ1aWxkLXN0eWxlPSUoYnVpbGRfc3R5bGUpcyAtLXBv
cnQ9JShwb3J0KXMlKGFyY2hpdGVjdHVyZSlzCitSdW5uaW5nOiB3ZWJraXQtcGF0Y2ggLS1zdGF0
dXMtaG9zdD1leGFtcGxlLmNvbSBidWlsZCAtLW5vLWNsZWFuIC0tbm8tdXBkYXRlIC0tYnVpbGQt
c3R5bGU9JShidWlsZF9zdHlsZSlzIC0tZ3JvdXA9JShncm91cClzIC0tcG9ydD0lKHBvcnQpcyUo
YXJjaGl0ZWN0dXJlKXMKICUocnVuX3Rlc3RzX2xpbmUpc01PQ0s6IHVwZGF0ZV9zdGF0dXM6ICUo
bmFtZSlzIFBhc3MKIE1PQ0s6IHJlbGVhc2Vfd29ya19pdGVtOiAlKG5hbWUpcyAxMDAwMAogIiIi
ICUgc3RyaW5nX3JlcGxhY2VtZW50cywKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvdG9vbC9zdGVwcy9idWlsZC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVw
cy9idWlsZC5weQppbmRleCBmNzRmZmNlNzA5NDFjNjFlNTk2NzkyZTRjNjBkY2Q3ZjhiNjVlOWVj
Li5lMWZhZjk0ZGU3NGY3Y2U1Y2MzMzYyZGZjYzQ0ZjBlODJhMjhhZGE5IDEwMDY0NAotLS0gYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvYnVpbGQucHkKKysrIGIvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS90b29sL3N0ZXBzL2J1aWxkLnB5CkBAIC0xLDQgKzEsNSBAQAogIyBDb3B5
cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJp
Z2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTQxLDI4ICs0MiwzNyBAQCBjbGFzcyBCdWlsZChBYnN0
cmFjdFN0ZXApOgogICAgICAgICAgICAgT3B0aW9ucy5idWlsZCwKICAgICAgICAgICAgIE9wdGlv
bnMucXVpZXQsCiAgICAgICAgICAgICBPcHRpb25zLmJ1aWxkX3N0eWxlLAorICAgICAgICAgICAg
T3B0aW9ucy5ncm91cCwKICAgICAgICAgXQogCi0gICAgZGVmIGJ1aWxkKHNlbGYsIGJ1aWxkX3N0
eWxlKToKKyAgICBkZWYgYnVpbGQoc2VsZiwgYnVpbGRfc3R5bGUsIGdyb3VwKToKICAgICAgICAg
ZW52aXJvbm1lbnQgPSBzZWxmLl90b29sLmNvcHlfY3VycmVudF9lbnZpcm9ubWVudCgpCiAgICAg
ICAgIGVudmlyb25tZW50LmRpc2FibGVfZ2NjX3NtYXJ0cXVvdGVzKCkKICAgICAgICAgZW52aXJv
bm1lbnQuZGlzYWJsZV9qaGJ1aWxkX1ZUMTAwX291dHB1dCgpCiAgICAgICAgIGVudiA9IGVudmly
b25tZW50LnRvX2RpY3Rpb25hcnkoKQogCi0gICAgICAgIGJ1aWxkX3dlYmtpdF9jb21tYW5kID0g
c2VsZi5fdG9vbC5kZXByZWNhdGVkX3BvcnQoKS5idWlsZF93ZWJraXRfY29tbWFuZChidWlsZF9z
dHlsZT1idWlsZF9zdHlsZSkKKyAgICAgICAgaWYgZ3JvdXAgPT0gImpzYyI6CisgICAgICAgICAg
ICBidWlsZF9jb21tYW5kID0gc2VsZi5fdG9vbC5kZXByZWNhdGVkX3BvcnQoKS5idWlsZF9qc2Nf
Y29tbWFuZChidWlsZF9zdHlsZT1idWlsZF9zdHlsZSkKKyAgICAgICAgZWxzZToKKyAgICAgICAg
ICAgIGJ1aWxkX2NvbW1hbmQgPSBzZWxmLl90b29sLmRlcHJlY2F0ZWRfcG9ydCgpLmJ1aWxkX3dl
YmtpdF9jb21tYW5kKGJ1aWxkX3N0eWxlPWJ1aWxkX3N0eWxlKQogCiAgICAgICAgIGlmIHNlbGYu
X29wdGlvbnMuYXJjaGl0ZWN0dXJlOgotICAgICAgICAgICAgYnVpbGRfd2Via2l0X2NvbW1hbmQg
Kz0gWydBUkNIUz0lcycgJSBzZWxmLl9vcHRpb25zLmFyY2hpdGVjdHVyZV0KKyAgICAgICAgICAg
IGJ1aWxkX2NvbW1hbmQgKz0gWydBUkNIUz0lcycgJSBzZWxmLl9vcHRpb25zLmFyY2hpdGVjdHVy
ZV0KIAotICAgICAgICBzZWxmLl90b29sLmV4ZWN1dGl2ZS5ydW5fYW5kX3Rocm93X2lmX2ZhaWwo
YnVpbGRfd2Via2l0X2NvbW1hbmQsIHNlbGYuX29wdGlvbnMucXVpZXQsCisgICAgICAgIHNlbGYu
X3Rvb2wuZXhlY3V0aXZlLnJ1bl9hbmRfdGhyb3dfaWZfZmFpbChidWlsZF9jb21tYW5kLCBzZWxm
Ll9vcHRpb25zLnF1aWV0LAogICAgICAgICAgICAgY3dkPXNlbGYuX3Rvb2wuc2NtKCkuY2hlY2tv
dXRfcm9vdCwgZW52PWVudikKIAogICAgIGRlZiBydW4oc2VsZiwgc3RhdGUpOgogICAgICAgICBp
ZiBub3Qgc2VsZi5fb3B0aW9ucy5idWlsZDoKICAgICAgICAgICAgIHJldHVybgogICAgICAgICBf
bG9nLmluZm8oIkJ1aWxkaW5nIFdlYktpdCIpCisKKyAgICAgICAgZ3JvdXAgPSBOb25lCisgICAg
ICAgIGlmIGhhc2F0dHIoc2VsZi5fb3B0aW9ucywgJ2dyb3VwJyk6CisgICAgICAgICAgICBncm91
cCA9IHNlbGYuX29wdGlvbnMuZ3JvdXAKKwogICAgICAgICBpZiBzZWxmLl9vcHRpb25zLmJ1aWxk
X3N0eWxlID09ICJib3RoIjoKLSAgICAgICAgICAgIHNlbGYuYnVpbGQoImRlYnVnIikKLSAgICAg
ICAgICAgIHNlbGYuYnVpbGQoInJlbGVhc2UiKQorICAgICAgICAgICAgc2VsZi5idWlsZCgiZGVi
dWciLCBncm91cCkKKyAgICAgICAgICAgIHNlbGYuYnVpbGQoInJlbGVhc2UiLCBncm91cCkKICAg
ICAgICAgZWxzZToKLSAgICAgICAgICAgIHNlbGYuYnVpbGQoc2VsZi5fb3B0aW9ucy5idWlsZF9z
dHlsZSkKKyAgICAgICAgICAgIHNlbGYuYnVpbGQoc2VsZi5fb3B0aW9ucy5idWlsZF9zdHlsZSwg
Z3JvdXApCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvb3B0
aW9ucy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9vcHRpb25zLnB5Cmlu
ZGV4IDNlZjQ3ZDAwOGE1OWUwNTBkNGNhMGM0ODc3ZGRkMWE2MDczMWE0MDkuLjhmMTQ1OGRiNWM0
ZjI0NDhhN2FmYmYyOWUxYzM5NjQxNzUyMTE2YjEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvdG9vbC9zdGVwcy9vcHRpb25zLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvdG9vbC9zdGVwcy9vcHRpb25zLnB5CkBAIC0xLDQgKzEsNSBAQAogIyBDb3B5cmlnaHQgKEMp
IDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAy
MDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucyBhcmUKQEAgLTQ2LDYgKzQ3LDcgQEAgY2xhc3MgT3B0aW9ucyhvYmplY3QpOgogICAg
IGVtYWlsID0gbWFrZV9vcHRpb24oIi0tZW1haWwiLCBhY3Rpb249InN0b3JlIiwgdHlwZT0ic3Ry
aW5nIiwgZGVzdD0iZW1haWwiLCBoZWxwPSJFbWFpbCBhZGRyZXNzIHRvIHVzZSBpbiBDaGFuZ2VM
b2dzLiIpCiAgICAgZm9yY2VfY2xlYW4gPSBtYWtlX29wdGlvbigiLS1mb3JjZS1jbGVhbiIsIGFj
dGlvbj0ic3RvcmVfdHJ1ZSIsIGRlc3Q9ImZvcmNlX2NsZWFuIiwgZGVmYXVsdD1GYWxzZSwgaGVs
cD0iQ2xlYW4gd29ya2luZyBkaXJlY3RvcnkgYmVmb3JlIGFwcGx5aW5nIHBhdGNoZXMgKHJlbW92
ZXMgbG9jYWwgY2hhbmdlcyBhbmQgY29tbWl0cykiKQogICAgIGdpdF9jb21taXQgPSBtYWtlX29w
dGlvbigiLWciLCAiLS1naXQtY29tbWl0IiwgYWN0aW9uPSJzdG9yZSIsIGRlc3Q9ImdpdF9jb21t
aXQiLCBoZWxwPSJPcGVyYXRlIG9uIGEgbG9jYWwgY29tbWl0LiBJZiBhIHJhbmdlLCB0aGUgY29t
bWl0cyBhcmUgc3F1YXNoZWQgaW50byBvbmUuIDxyZWY+Li4uLiBpbmNsdWRlcyB0aGUgd29ya2lu
ZyBjb3B5IGNoYW5nZXMuIFVQU1RSRUFNIGNhbiBiZSB1c2VkIGZvciB0aGUgdXBzdHJlYW0vdHJh
Y2tpbmcgYnJhbmNoLiIpCisgICAgZ3JvdXAgPSBtYWtlX29wdGlvbigiLS1ncm91cCIsIGFjdGlv
bj0ic3RvcmUiLCBkZXN0PSJncm91cCIsIGRlZmF1bHQ9Tm9uZSwgaGVscD0iIikKICAgICBsb2Nh
bF9jb21taXQgPSBtYWtlX29wdGlvbigiLS1sb2NhbC1jb21taXQiLCBhY3Rpb249InN0b3JlX3Ry
dWUiLCBkZXN0PSJsb2NhbF9jb21taXQiLCBkZWZhdWx0PUZhbHNlLCBoZWxwPSJNYWtlIGEgbG9j
YWwgY29tbWl0IGZvciBlYWNoIGFwcGxpZWQgcGF0Y2giKQogICAgIG5vbl9pbnRlcmFjdGl2ZSA9
IG1ha2Vfb3B0aW9uKCItLW5vbi1pbnRlcmFjdGl2ZSIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGRl
c3Q9Im5vbl9pbnRlcmFjdGl2ZSIsIGRlZmF1bHQ9RmFsc2UsIGhlbHA9Ik5ldmVyIHByb21wdCB0
aGUgdXNlciwgZmFpbCBhcyBmYXN0IGFzIHBvc3NpYmxlLiIpCiAgICAgb2Jzb2xldGVfcGF0Y2hl
cyA9IG1ha2Vfb3B0aW9uKCItLW5vLW9ic29sZXRlIiwgYWN0aW9uPSJzdG9yZV9mYWxzZSIsIGRl
c3Q9Im9ic29sZXRlX3BhdGNoZXMiLCBkZWZhdWx0PVRydWUsIGhlbHA9IkRvIG5vdCBvYnNvbGV0
ZSBvbGQgcGF0Y2hlcyBiZWZvcmUgcG9zdGluZyB0aGlzIG9uZS4iKQpkaWZmIC0tZ2l0IGEvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3J1bnRlc3RzLnB5IGIvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS90b29sL3N0ZXBzL3J1bnRlc3RzLnB5CmluZGV4IDc1ZDcyYmM5YWQyZjRlMzZk
NDVmZGFjOTBmMTgxOTQ4MWNmMDI4OGIuLmVkOTBkZmQ0MzhjMzFjZmFkY2VmZDgzMmYxNWRlZDk5
MmE5N2RkYmMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9y
dW50ZXN0cy5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvcnVudGVz
dHMucHkKQEAgLTEsNCArMSw1IEBACiAjIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtNTMs
NiArNTQsNyBAQCBjbGFzcyBSdW5UZXN0cyhBYnN0cmFjdFN0ZXApOgogICAgICAgICAgICAgT3B0
aW9ucy5pdGVyYXRlX29uX25ld190ZXN0cywKICAgICAgICAgICAgIE9wdGlvbnMubm9uX2ludGVy
YWN0aXZlLAogICAgICAgICAgICAgT3B0aW9ucy5xdWlldCwKKyAgICAgICAgICAgIE9wdGlvbnMu
Z3JvdXAsCiAgICAgICAgIF0KIAogICAgIGRlZiBydW4oc2VsZiwgc3RhdGUpOgpAQCAtNjMsNiAr
NjUsMTAgQEAgY2xhc3MgUnVuVGVzdHMoQWJzdHJhY3RTdGVwKToKICAgICAgICAgaWYgbm90IHNl
bGYuX29wdGlvbnMudGVzdDoKICAgICAgICAgICAgIHJldHVybgogCisgICAgICAgIGlmIGhhc2F0
dHIoc2VsZi5fb3B0aW9ucywgImdyb3VwIikgYW5kIHNlbGYuX29wdGlvbnMuZ3JvdXAgPT0gImpz
YyI6CisgICAgICAgICAgICBzZWxmLl9ydW5famF2YXNjcmlwdGNvcmVfdGVzdHMoKQorICAgICAg
ICAgICAgcmV0dXJuCisKICAgICAgICAgcHl0aG9uX3VuaXR0ZXN0c19jb21tYW5kID0gc2VsZi5f
dG9vbC5kZXByZWNhdGVkX3BvcnQoKS5ydW5fcHl0aG9uX3VuaXR0ZXN0c19jb21tYW5kKCkKICAg
ICAgICAgaWYgcHl0aG9uX3VuaXR0ZXN0c19jb21tYW5kOgogICAgICAgICAgICAgX2xvZy5pbmZv
KCJSdW5uaW5nIFB5dGhvbiB1bml0IHRlc3RzIikKQEAgLTE0MywzICsxNDksNyBAQCBjbGFzcyBS
dW5UZXN0cyhBYnN0cmFjdFN0ZXApOgogICAgICAgICAgICAgYXJncy5hcHBlbmQoIi0taXRlcmF0
aW9ucz0lZCIgJSBpdGVyYXRlX29uX25ld190ZXN0cykKIAogICAgICAgICBzZWxmLl90b29sLmV4
ZWN1dGl2ZS5ydW5fYW5kX3Rocm93X2lmX2ZhaWwoYXJncywgY3dkPXNlbGYuX3Rvb2wuc2NtKCku
Y2hlY2tvdXRfcm9vdCkKKworICAgIGRlZiBfcnVuX2phdmFzY3JpcHRjb3JlX3Rlc3RzKHNlbGYp
OgorICAgICAgICBhcmdzID0gc2VsZi5fdG9vbC5kZXByZWNhdGVkX3BvcnQoKS5ydW5famF2YXNj
cmlwdGNvcmVfdGVzdHNfY29tbWFuZChzZWxmLl9vcHRpb25zLmJ1aWxkX3N0eWxlKQorICAgICAg
ICBzZWxmLl90b29sLmV4ZWN1dGl2ZS5ydW5fYW5kX3Rocm93X2lmX2ZhaWwoYXJncywgY3dkPXNl
bGYuX3Rvb2wuc2NtKCkuY2hlY2tvdXRfcm9vdCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvdG9vbC9zdGVwcy9zdGVwc191bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvdG9vbC9zdGVwcy9zdGVwc191bml0dGVzdC5weQppbmRleCA3ZDk0YTEzYjM0NjNkOThh
NDRmOTQ5ZjgxNGNjNzEyMWMwNjhhYjVkLi5hNDg0MmFhODlhNGJlZjVjYWQzOWNhYmIzZjJmZjU4
MjU3ZmI3YzVkIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMv
c3RlcHNfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBz
L3N0ZXBzX3VuaXR0ZXN0LnB5CkBAIC0xLDQgKzEsNSBAQAogIyBDb3B5cmlnaHQgKEMpIDIwMTAg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDE2IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cyBhcmUKQEAgLTk4LDYgKzk5LDcgQEAgY2xhc3MgU3RlcHNUZXN0KHVuaXR0ZXN0LlRlc3RDYXNl
KToKICAgICAgICAgc2VsZi5fYXNzZXJ0X3N0ZXBfb3V0cHV0X3dpdGhfYnVnKHN0ZXBzLkVuc3Vy
ZUJ1Z0lzT3BlbkFuZEFzc2lnbmVkLCA1MDAwMiwgZXhwZWN0ZWRfbG9ncykKIAogICAgIGRlZiB0
ZXN0X3J1bnRlc3RzX2FyZ3Moc2VsZik6CisgICAgICAgIHNlbGYubWF4RGlmZiA9IE5vbmUKICAg
ICAgICAgbW9ja19vcHRpb25zID0gc2VsZi5fc3RlcF9vcHRpb25zKCkKICAgICAgICAgbW9ja19v
cHRpb25zLm5vbl9pbnRlcmFjdGl2ZSA9IEZhbHNlCiAgICAgICAgIG1vY2tfb3B0aW9ucy5idWls
ZF9zdHlsZSA9ICJyZWxlYXNlIgpAQCAtMTExLDcgKzExMyw3IEBAIE1PQ0sgcnVuX2FuZF90aHJv
d19pZl9mYWlsOiBbJ1Rvb2xzL1NjcmlwdHMvdGVzdC13ZWJraXRweSddLCBjd2Q9L21vY2stY2hl
Y2tvdXQKIFJ1bm5pbmcgUGVybCB1bml0IHRlc3RzCiBNT0NLIHJ1bl9hbmRfdGhyb3dfaWZfZmFp
bDogWydUb29scy9TY3JpcHRzL3Rlc3Qtd2Via2l0cGVybCddLCBjd2Q9L21vY2stY2hlY2tvdXQK
IFJ1bm5pbmcgSmF2YVNjcmlwdENvcmUgdGVzdHMKLU1PQ0sgcnVuX2FuZF90aHJvd19pZl9mYWls
OiBbJ1Rvb2xzL1NjcmlwdHMvcnVuLWphdmFzY3JpcHRjb3JlLXRlc3RzJ10sIGN3ZD0vbW9jay1j
aGVja291dAorTU9DSyBydW5fYW5kX3Rocm93X2lmX2ZhaWw6IFsnVG9vbHMvU2NyaXB0cy9ydW4t
amF2YXNjcmlwdGNvcmUtdGVzdHMnLCAnLS1uby1mYWlsLWZhc3QnLCAnLS1qc29uLW91dHB1dD1q
c2NfdGVzdF9yZXN1bHRzLmpzb24nXSwgY3dkPS9tb2NrLWNoZWNrb3V0CiBSdW5uaW5nIGJpbmRp
bmdzIGdlbmVyYXRpb24gdGVzdHMKIE1PQ0sgcnVuX2FuZF90aHJvd19pZl9mYWlsOiBbJ1Rvb2xz
L1NjcmlwdHMvcnVuLWJpbmRpbmdzLXRlc3RzJ10sIGN3ZD0vbW9jay1jaGVja291dAogUnVubmlu
ZyBydW4td2Via2l0LXRlc3RzCkBAIC0xMjAsNiArMTIyLDcgQEAgTU9DSyBydW5fYW5kX3Rocm93
X2lmX2ZhaWw6IFsnVG9vbHMvU2NyaXB0cy9ydW4td2Via2l0LXRlc3RzJywgJy0tcmVsZWFzZScs
ICctLXEKICAgICAgICAgT3V0cHV0Q2FwdHVyZSgpLmFzc2VydF9vdXRwdXRzKHNlbGYsIHN0ZXAu
cnVuLCBbe31dLCBleHBlY3RlZF9sb2dzPWV4cGVjdGVkX2xvZ3MpCiAKICAgICBkZWYgdGVzdF9y
dW50ZXN0c19kZWJ1Z19hcmdzKHNlbGYpOgorICAgICAgICBzZWxmLm1heERpZmYgPSBOb25lCiAg
ICAgICAgIG1vY2tfb3B0aW9ucyA9IHNlbGYuX3N0ZXBfb3B0aW9ucygpCiAgICAgICAgIG1vY2tf
b3B0aW9ucy5ub25faW50ZXJhY3RpdmUgPSBGYWxzZQogICAgICAgICBtb2NrX29wdGlvbnMuYnVp
bGRfc3R5bGUgPSAiZGVidWciCkBAIC0xMzMsNyArMTM2LDcgQEAgTU9DSyBydW5fYW5kX3Rocm93
X2lmX2ZhaWw6IFsnVG9vbHMvU2NyaXB0cy90ZXN0LXdlYmtpdHB5J10sIGN3ZD0vbW9jay1jaGVj
a291dAogUnVubmluZyBQZXJsIHVuaXQgdGVzdHMKIE1PQ0sgcnVuX2FuZF90aHJvd19pZl9mYWls
OiBbJ1Rvb2xzL1NjcmlwdHMvdGVzdC13ZWJraXRwZXJsJ10sIGN3ZD0vbW9jay1jaGVja291dAog
UnVubmluZyBKYXZhU2NyaXB0Q29yZSB0ZXN0cwotTU9DSyBydW5fYW5kX3Rocm93X2lmX2ZhaWw6
IFsnVG9vbHMvU2NyaXB0cy9ydW4tamF2YXNjcmlwdGNvcmUtdGVzdHMnXSwgY3dkPS9tb2NrLWNo
ZWNrb3V0CitNT0NLIHJ1bl9hbmRfdGhyb3dfaWZfZmFpbDogWydUb29scy9TY3JpcHRzL3J1bi1q
YXZhc2NyaXB0Y29yZS10ZXN0cycsICctLW5vLWZhaWwtZmFzdCcsICctLWpzb24tb3V0cHV0PWpz
Y190ZXN0X3Jlc3VsdHMuanNvbiddLCBjd2Q9L21vY2stY2hlY2tvdXQKIFJ1bm5pbmcgYmluZGlu
Z3MgZ2VuZXJhdGlvbiB0ZXN0cwogTU9DSyBydW5fYW5kX3Rocm93X2lmX2ZhaWw6IFsnVG9vbHMv
U2NyaXB0cy9ydW4tYmluZGluZ3MtdGVzdHMnXSwgY3dkPS9tb2NrLWNoZWNrb3V0CiBSdW5uaW5n
IHJ1bi13ZWJraXQtdGVzdHMK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>298802</attachid>
            <date>2017-01-13 15:52:51 -0800</date>
            <delta_ts>2017-01-13 16:35:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-162458-20170113155109.patch</filename>
            <type>text/plain</type>
            <size>53121</size>
            <attacher name="Srinivasan Vijayaraghavan">webkit</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA2Mzc3CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOWI3NTZhN2Y2MTZlMzQ0YjFhYmFjNjFkZmVkMmExZWI4
NmY3ZTQ0ZC4uYTE2ZTUyNmY5YWU0NmM2YTcwYzYyYzgxNThhMWU1NDUyZjA4MTI1YyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg1
IEBACisyMDE3LTAxLTEzICBTcmluaXZhc2FuIFZpamF5YXJhZ2hhdmFuICA8c3ZpamF5YXJhZ2hh
dmFuQGFwcGxlLmNvbT4KKworICAgICAgICBFV1Mgc2hvdWxkIHJ1biBKYXZhU2NyaXB0Q29yZSB0
ZXN0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYy
NDU4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvZXdzLmpzb246IEFkZCBjb25maWcgaW5mbyBm
b3IgSlNDIEVXUy4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvcG9y
dHMucHk6IEFkZCBzdXBwb3J0IGZvciBKU0MgRVdTIGluIE1hYyBQb3J0LgorICAgICAgICAoRGVw
cmVjYXRlZFBvcnQuYnVpbGRfanNjX2NvbW1hbmQpOiBBZGRlZCAtIGNvbW1hbmQgdG8gYnVpbGQg
SlNDIG9ubHkgKHF1aWNrZXIgdGhhbiBidWlsZGluZyBhbGwgb2YgV2ViS2l0KS4KKyAgICAgICAg
KERlcHJlY2F0ZWRQb3J0LnJ1bl9qYXZhc2NyaXB0Y29yZV90ZXN0c19jb21tYW5kKTogQWxsb3cg
SlNDIEVXUyB0byBvbmx5IHJ1biBKU0MgdGVzdHMuCisgICAgICAgIChNYWNQb3J0LnJ1bl93ZWJr
aXRfdGVzdHNfY29tbWFuZCk6IENoZWNrIGZvciBKU0MuCisgICAgICAgICogU2NyaXB0cy93ZWJr
aXRweS9jb21tb24vbmV0L2pzY3Rlc3RyZXN1bHRzLnB5OiBBZGRlZC4KKyAgICAgICAgKEpTQ1Rl
c3RSZXN1bHRzKToKKyAgICAgICAgKEpTQ1Rlc3RSZXN1bHRzLnJlc3VsdHNfZnJvbV9zdHJpbmcp
OiBVc2UganNvbiBsaWJyYXJ5IHRvIHBhcnNlIHJlc3VsdHMuCisgICAgICAgIChKU0NUZXN0UmVz
dWx0cy5fX2luaXRfXyk6IEluaXRpYWxpemUgbWVtYmVycy4KKyAgICAgICAgKEpTQ1Rlc3RSZXN1
bHRzLmVxdWFscyk6IFRoaXMgZW5hYmxlcyB1bml0IHRlc3RpbmcuCisgICAgICAgIChKU0NUZXN0
UmVzdWx0cy5pc19zdWJzZXQpOiBDaGVja3MgaWYgb25lIHNldCBvZiBmYWlsdXJlcyBpcyBhIHN1
YnNldCBvZiBhbm90aGVyLgorICAgICAgICAoSlNDVGVzdFJlc3VsdHMuc3RyZXNzX3Rlc3RfZmFp
bHVyZXMpOiBHZXR0ZXIuCisgICAgICAgIChKU0NUZXN0UmVzdWx0cy5hbGxfYXBpX3Rlc3RzX3Bh
c3NlZCk6IEdldHRlci4KKyAgICAgICAgKEpTQ1Rlc3RSZXN1bHRzLmFsbF9wYXNzZWQpOiBHZXR0
ZXIuCisgICAgICAgIChKU0NUZXN0UmVzdWx0cy5mYWlsaW5nX3Rlc3RfcmVzdWx0cyk6IEdldHRl
ci4gU29tZSBvZiB0aGVzZSBleGlzdCBmb3IgaW50ZXJvcGFiaWxpdHkgcmVhc29ucy4KKyAgICAg
ICAgKEpTQ1Rlc3RSZXN1bHRzLnRlc3RfcmVzdWx0cyk6IEdldHRlci4KKyAgICAgICAgKEpTQ1Rl
c3RSZXN1bHRzLmZhaWxpbmdfdGVzdHMpOiBHZXR0ZXIuCisgICAgICAgIChKU0NUZXN0UmVzdWx0
cy5kaWRfZXhjZWVkX3Rlc3RfZmFpbHVyZV9saW1pdCk6IEdldHRlci4KKyAgICAgICAgKiBTY3Jp
cHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvanNjdGVzdHJlc3VsdHNfdW5pdHRlc3QucHk6IEFkZGVk
LgorICAgICAgICAoSlNDVGVzdFJlc3VsdHNUZXN0KTogQ2xhc3MgdG8gdGVzdCBKU0NUZXN0UmVz
dWx0cy4KKyAgICAgICAgKEpTQ1Rlc3RSZXN1bHRzVGVzdC50ZXN0X3Jlc3VsdHNfZnJvbV9zdHJp
bmcpOiBUZXN0cyBwYXJzaW5nLgorICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9q
c2Nld3NfdW5pdHRlc3QucHk6IEFkZGVkLgorICAgICAgICAoTW9ja1BhdGNoQW5hbHlzaXNUYXNr
KTogTW9ja2VkLW91dCB2ZXJzaW9uIG9mIFBhdGNoQW5hbHlzaXNUYXNrIHRoYXQgZG9lc24ndCBy
dW4gY29tbWFuZHMuCisgICAgICAgIChNb2NrUGF0Y2hBbmFseXNpc1Rhc2suX19pbml0X18pOiBT
ZXRzIGF0dHJpYnV0ZXMuCisgICAgICAgIChNb2NrUGF0Y2hBbmFseXNpc1Rhc2suX3Rlc3QpOiBP
dmVycmlkZSB0byBub3QgcnVuIGNvbW1hbmQuCisgICAgICAgIChNb2NrUGF0Y2hBbmFseXNpc1Rh
c2suX2J1aWxkX2FuZF90ZXN0X3dpdGhvdXRfcGF0Y2gpOiBPdmVycmlkZSB0byBub3QgcnVuIGNv
bW1hbmQuCisgICAgICAgIChNb2NrUGF0Y2hBbmFseXNpc1Rhc2sudmFsaWRhdGUpOiBBc3N1bWUg
bW9ja2VkIHBhdGNoIGlzIHZhbGlkIGZvciBwdXJwb3NlcyBvZiB0ZXN0aW5nIHJldHJ5IGxvZ2lj
LgorICAgICAgICAoTW9ja1BhdGNoQW5hbHlzaXNUYXNrLnRlc3RfcnVuX2NvdW50KTogU3BlY2lm
aWMgdG8gdGhlIG1vY2tlZCB2ZXJzaW9uLCB0byB0ZXN0IHJldHJ5IGxvZ2ljLgorICAgICAgICAo
TW9ja0pTQ0Vhcmx5V2FybmluZ1N5c3RlbSk6IE1vY2tlZC1vdXQgdmVyc2lvbiBvZiBBYnN0YXJj
dEVhcmx5V2FybmluZ1N5c3RlbSBzbyB3ZSBjYW4gcHJvdmlkZSB0ZXN0IHJlc3VsdHMuCisgICAg
ICAgIChNb2NrSlNDRWFybHlXYXJuaW5nU3lzdGVtLl9faW5pdF9fKTogU2V0cyBhdHRyaWJ1dGVz
LCBhbHNvIHNldHMgZ3JvdXAgdG8ganNjLgorICAgICAgICAoTW9ja0pTQ0Vhcmx5V2FybmluZ1N5
c3RlbS50ZXN0X3Jlc3VsdHMpOiBSZXR1cm5zIHRlc3QgcmVzdWx0cyBwcm92aWRlZCBieSB1cywg
aW5zdGVhZCBvZiB1c2luZyBhIEpTT04gcmVhZGVyLgorICAgICAgICAoSlNDRWFybHlXYXJuaW5n
U3lzdGVtVGVzdCk6IENsYXNzIHRvIHRlc3QgcmV0cnkgbG9naWMgaW4gYmVsb3cgc2l0dWF0aW9u
cy4KKyAgICAgICAgKEpTQ0Vhcmx5V2FybmluZ1N5c3RlbVRlc3QuX2NyZWF0ZV90YXNrKTogSGVs
cGVyIGZ1bmN0aW9uIHRvIGFic3RyYWN0IG91dCBjb21tb24gY29kZS4KKyAgICAgICAgKEpTQ0Vh
cmx5V2FybmluZ1N5c3RlbVRlc3QudGVzdF9zdWNjZXNzX2Nhc2UpOiBDbGVhbiBwYXRjaCBvbiBj
bGVhbiB0cmVlLgorICAgICAgICAoSlNDRWFybHlXYXJuaW5nU3lzdGVtVGVzdC50ZXN0X3Rlc3Rf
ZmFpbHVyZSk6IEZhaWxlZCBwYXRjaCBvbiBjbGVhbiB0cmVlLgorICAgICAgICAoSlNDRWFybHlX
YXJuaW5nU3lzdGVtVGVzdC50ZXN0X2ZpeCk6IFBhdGNoIHRoYXQgZml4ZXMgYWxsIHRyZWUgcmVk
bmVzcy4KKyAgICAgICAgKEpTQ0Vhcmx5V2FybmluZ1N5c3RlbVRlc3QudGVzdF9pbmVmZmVjdGl2
ZV9wYXRjaCk6IFBhdGNoIHRoYXQgaGFzIHNhbWUgZmFpbHVyZXMgYXMgdHJlZS4KKyAgICAgICAg
KEpTQ0Vhcmx5V2FybmluZ1N5c3RlbVRlc3QudGVzdF9wYXJ0aWFsbHlfZWZmZWN0aXZlX3BhdGNo
KTogUGF0Y2ggZml4ZXMgc29tZSBmYWlsdXJlcyBidXQgYWRkcyBubyBuZXcgZmFpbHVyZXMuCisg
ICAgICAgIChKU0NFYXJseVdhcm5pbmdTeXN0ZW1UZXN0LnRlc3RfZGlmZmVyZW50X3Rlc3RfZmFp
bHVyZXMpOiBQYXRjaCB0aGF0IGhhcyBzb21lIGZhaWx1cmVzIG5vdCBwcmVzZW50IGluIHRyZWUu
CisgICAgICAgIChKU0NFYXJseVdhcm5pbmdTeXN0ZW1UZXN0LnRlc3RfZmlyc3RfcmVzdWx0c19j
b3VsZF9ub3RfYmVfcmVhZCk6IFJlc3VsdHMganNvbiBmaWxlIGZyb20gcGF0Y2ggY291bGQgbm90
IGJlIHJlYWQuCisgICAgICAgIChKU0NFYXJseVdhcm5pbmdTeXN0ZW1UZXN0LnRlc3RfY2xlYW5f
cmVzdWx0c19jb3VsZF9ub3RfYmVfcmVhZCk6IFJlc3VsdHMganNvbiBmaWxlIGZyb20gY2xlYW4g
dHJlZSBjb3VsZCBub3QgYmUgcmVhZC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wv
Ym90L2pzY3Rlc3RyZXN1bHRzcmVhZGVyLnB5OiBBZGRlZC4KKyAgICAgICAgKEpTQ1Rlc3RSZXN1
bHRzUmVhZGVyKTogUmVhZHMgcmVzdWx0cyBmaWxlLgorICAgICAgICAoSlNDVGVzdFJlc3VsdHNS
ZWFkZXIuX19pbml0X18pOiBTZXRzIGF0dHJpYnV0ZXMuCisgICAgICAgIChKU0NUZXN0UmVzdWx0
c1JlYWRlci5fcmVhZF9maWxlX2NvbnRlbnRzKTogUmVhZHMgZmlsZS4KKyAgICAgICAgKEpTQ1Rl
c3RSZXN1bHRzUmVhZGVyLl9jcmVhdGVfanNjX3Rlc3RfcmVzdWx0cyk6IENyZWF0ZXMgYSBKU0NU
ZXN0UmVzdWx0cyBvYmplY3QuCisgICAgICAgIChKU0NUZXN0UmVzdWx0c1JlYWRlci5yZXN1bHRz
KTogSW52b2tlcyBfY3JlYXRlX2pzY190ZXN0X3Jlc3VsdHMgdG8gcmV0dXJuIGEgSlNDVGVzdFJl
c3VsdHMgb2JqZWN0LgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvcGF0Y2hh
bmFseXNpc3Rhc2sucHk6CisgICAgICAgIChQYXRjaEFuYWx5c2lzVGFzay5fYnVpbGQpOiBDaGVj
ayBmb3IgSlNDLgorICAgICAgICAoUGF0Y2hBbmFseXNpc1Rhc2suX2J1aWxkX3dpdGhvdXRfcGF0
Y2gpOiBDaGVjayBmb3IgSlNDLgorICAgICAgICAoUGF0Y2hBbmFseXNpc1Rhc2suX3Rlc3QpOiBD
aGVjayBmb3IgSlNDLgorICAgICAgICAoUGF0Y2hBbmFseXNpc1Rhc2suX2J1aWxkX2FuZF90ZXN0
X3dpdGhvdXRfcGF0Y2gpOiBDaGVjayBmb3IgSlNDLgorICAgICAgICAoUGF0Y2hBbmFseXNpc1Rh
c2suX3Rlc3RfcGF0Y2gpOiBBZGQgcmV0cnkgbG9naWMgZm9yIEpTQy4KKyAgICAgICAgKiBTY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZWFybHl3YXJuaW5nc3lzdGVtLnB5OgorICAgICAg
ICAoQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0uYmVnaW5fd29ya19xdWV1ZSk6IFVzZSBKU0NU
ZXN0UmVzdWx0c1JlYWRlciBpbnN0ZWFkIG9mIExheW91dFRlc3RSZXN1bHRzUmVhZGVyIGluIEpT
QyBFV1MuCisgICAgICAgIChBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbS50ZXN0X3Jlc3VsdHMp
OiBfbGF5b3V0X3Rlc3RfcmVzdWx0c19yZWFkZXIgLT4gX3Rlc3RfcmVzdWx0c19yZWFkZXIuCisg
ICAgICAgIChBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbS5hcmNoaXZlX2xhc3RfdGVzdF9yZXN1
bHRzKTogX2xheW91dF90ZXN0X3Jlc3VsdHNfcmVhZGVyIC0+IF90ZXN0X3Jlc3VsdHNfcmVhZGVy
LgorICAgICAgICAoQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0uZ3JvdXApOiBUaGlzIGF0dHJp
YnV0ZSBkZXRlcm1pbmVzIHRoZSB0eXBlIG9mIEVXUyAoZWcuIEpTQykuCisgICAgICAgIChBYnN0
cmFjdEVhcmx5V2FybmluZ1N5c3RlbS5sb2FkX2V3c19jbGFzc2VzKTogQWRkIF9ncm91cC4KKyAg
ICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZWFybHl3YXJuaW5nc3lzdGVt
X3VuaXR0ZXN0LnB5OgorICAgICAgICAoRWFybHlXYXJuaW5nU3lzdGVtVGVzdC5fZGVmYXVsdF9l
eHBlY3RlZF9sb2dzKTogQWRkIF9ncm91cC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rv
b2wvc3RlcHMvYnVpbGQucHk6CisgICAgICAgIChCdWlsZC5vcHRpb25zKTogQ2hlY2sgZm9yIEpT
Qy4KKyAgICAgICAgKEJ1aWxkLmJ1aWxkKTogQ2hlY2sgZm9yIEpTQy4KKyAgICAgICAgKEJ1aWxk
LnJ1bik6IENoZWNrIGZvciBKU0MuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL3N0
ZXBzL29wdGlvbnMucHk6CisgICAgICAgIChPcHRpb25zKTogQWRkIC0tZ3JvdXAgY29tbWFuZCBs
aW5lIG9wdGlvbi4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvcnVudGVz
dHMucHk6CisgICAgICAgIChSdW5UZXN0cy5vcHRpb25zKTogQWRkIGdyb3VwLgorICAgICAgICAo
UnVuVGVzdHMucnVuKTogQ2hlY2sgZm9yIEpTQy4KKyAgICAgICAgKFJ1blRlc3RzLl9ydW5fd2Vi
a2l0X3Rlc3RzKTogQ2hlY2sgZm9yIEpTQy4KKyAgICAgICAgKFJ1blRlc3RzKTogQWRkIF9ncm91
cCBhdHRyaWJ1dGUuCisgICAgICAgIChSdW5UZXN0cy5fcnVuX2phdmFzY3JpcHRjb3JlX3Rlc3Rz
KTogTmV3LgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9zdGVwc191bml0
dGVzdC5weTogQ2hhbmdlIGV4cGVjdGVkIGNvbW1hbmQgZm9yIHJ1bm5pbmcganNjIHRlc3RzLgor
CiAyMDE2LTA5LTI1ICBHeXV5b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ad2Via2l0Lm9yZz4KIAog
ICAgICAgICBbRUZMXSBBZGp1c3QgRUZMIGluZGVudGF0aW9uIHRvIEVGTCBNaW5pQnJvd3Nlcgpk
aWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL2V3cy5qc29u
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL2V3cy5qc29uCmluZGV4IDM1
ZDQ5ODVhYjBmOTNkMTI3YjM3MjFlNDYwMWNkNmQ4OWRmY2NmM2MuLmU1MzQwZmU1YzNjMjFhZTgx
YWQxZWY3ZTAzZjdmYjgxZjM4MzljZmYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvY29tbW9uL2NvbmZpZy9ld3MuanNvbgorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2Nv
bW1vbi9jb25maWcvZXdzLmpzb24KQEAgLTUwLDUgKzUwLDExIEBACiAgICAgICAgICJwb3J0Ijog
Im1hYyIsCiAgICAgICAgICJuYW1lIjogIm1hYy0zMmJpdC1ld3MiLAogICAgICAgICAiYXJjaGl0
ZWN0dXJlIjogImkzODYiCisgICAgfSwKKyAgICAiSlNDIEVXUyI6IHsKKyAgICAgICAgInBvcnQi
OiAibWFjIiwKKyAgICAgICAgIm5hbWUiOiAianNjLWV3cyIsCisgICAgICAgICJncm91cCI6ICJq
c2MiLAorICAgICAgICAicnVuVGVzdHMiOiB0cnVlCiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL3BvcnRzLnB5IGIvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9jb21tb24vY29uZmlnL3BvcnRzLnB5CmluZGV4IGEwZDUwZGNiNmVhMGI1ZmRl
MGIzYzE3ZWYxNTljZWFmZWUxYTJlOTguLmQzN2VkOWQxYzVlMjU1MGU0ODgzNGU3ZWYwMGJhZTRj
MjRjYmQ3ODQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZp
Zy9wb3J0cy5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvcG9y
dHMucHkKQEAgLTEsNiArMSw2IEBACiAjIENvcHlyaWdodCAoQykgMjAwOSwgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICMgQ29weXJpZ2h0IChDKSAyMDEzIE5va2lhIENvcnBvcmF0
aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KLSMgQ29weXJpZ2h0IChDKSAyMDE1IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDE1LCAyMDE3
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucyBhcmUKQEAgLTEwMyw4ICsxMDMsMjEgQEAgY2xhc3MgRGVwcmVjYXRlZFBvcnQob2JqZWN0
KToKICAgICAgICAgICAgIGNvbW1hbmQuYXBwZW5kKCItLXJlbGVhc2UiKQogICAgICAgICByZXR1
cm4gY29tbWFuZAogCi0gICAgZGVmIHJ1bl9qYXZhc2NyaXB0Y29yZV90ZXN0c19jb21tYW5kKHNl
bGYpOgotICAgICAgICByZXR1cm4gc2VsZi5zY3JpcHRfc2hlbGxfY29tbWFuZCgicnVuLWphdmFz
Y3JpcHRjb3JlLXRlc3RzIikKKyAgICBkZWYgYnVpbGRfanNjX2NvbW1hbmQoc2VsZiwgYnVpbGRf
c3R5bGU9Tm9uZSk6CisgICAgICAgIGNvbW1hbmQgPSBzZWxmLnNjcmlwdF9zaGVsbF9jb21tYW5k
KCJidWlsZC1qc2MiKQorICAgICAgICBpZiBidWlsZF9zdHlsZSA9PSAiZGVidWciOgorICAgICAg
ICAgICAgY29tbWFuZC5hcHBlbmQoIi0tZGVidWciKQorICAgICAgICBpZiBidWlsZF9zdHlsZSA9
PSAicmVsZWFzZSI6CisgICAgICAgICAgICBjb21tYW5kLmFwcGVuZCgiLS1yZWxlYXNlIikKKyAg
ICAgICAgcmV0dXJuIGNvbW1hbmQKKworICAgIGRlZiBydW5famF2YXNjcmlwdGNvcmVfdGVzdHNf
Y29tbWFuZChzZWxmLCBidWlsZF9zdHlsZT1Ob25lKToKKyAgICAgICAgY29tbWFuZCA9IHNlbGYu
c2NyaXB0X3NoZWxsX2NvbW1hbmQoInJ1bi1qYXZhc2NyaXB0Y29yZS10ZXN0cyIpCisgICAgICAg
IGNvbW1hbmQuYXBwZW5kKCItLW5vLWZhaWwtZmFzdCIpCisgICAgICAgIGNvbW1hbmQuYXBwZW5k
KCItLWpzb24tb3V0cHV0PWpzY190ZXN0X3Jlc3VsdHMuanNvbiIpCisgICAgICAgIGlmIChidWls
ZF9zdHlsZSA9PSAiZGVidWciKToKKyAgICAgICAgICAgIGNvbW1hbmQuYXBwZW5kKCItLWRlYnVn
IikKKyAgICAgICAgcmV0dXJuIGNvbW1hbmQKIAogICAgIGRlZiBydW5fd2Via2l0X3Rlc3RzX2Nv
bW1hbmQoc2VsZiwgYnVpbGRfc3R5bGU9Tm9uZSk6CiAgICAgICAgIGNvbW1hbmQgPSBzZWxmLnNj
cmlwdF9zaGVsbF9jb21tYW5kKCJydW4td2Via2l0LXRlc3RzIikKQEAgLTE1MCw3ICsxNjMsMTAg
QEAgY2xhc3MgSU9TU2ltdWxhdG9yV0syUG9ydChEZXByZWNhdGVkUG9ydCk6CiBjbGFzcyBNYWNQ
b3J0KERlcHJlY2F0ZWRQb3J0KToKICAgICBwb3J0X2ZsYWdfbmFtZSA9ICJtYWMiCiAKLSAgICBk
ZWYgcnVuX3dlYmtpdF90ZXN0c19jb21tYW5kKHNlbGYsIGJ1aWxkX3N0eWxlPU5vbmUpOgorICAg
IGRlZiBydW5fd2Via2l0X3Rlc3RzX2NvbW1hbmQoc2VsZiwgYnVpbGRfc3R5bGU9Tm9uZSwgdGVz
dF9zdWl0ZT1Ob25lKToKKyAgICAgICAgaWYgKHRlc3Rfc3VpdGUgPT0gImpzYyIpOgorICAgICAg
ICAgICAgcmV0dXJuIHN1cGVyKE1hY1BvcnQsIHNlbGYpLnJ1bl9qYXZhc2NyaXB0Y29yZV90ZXN0
c19jb21tYW5kKGJ1aWxkX3N0eWxlKQorCiAgICAgICAgIGNvbW1hbmQgPSBzdXBlcihNYWNQb3J0
LCBzZWxmKS5ydW5fd2Via2l0X3Rlc3RzX2NvbW1hbmQoYnVpbGRfc3R5bGUpCiAgICAgICAgIGNv
bW1hbmQuYXBwZW5kKCItLWR1bXAtcmVuZGVyLXRyZWUiKQogICAgICAgICByZXR1cm4gY29tbWFu
ZApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL3BvcnRz
X3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL3BvcnRz
X3VuaXR0ZXN0LnB5CmluZGV4IDA4ZDU0NTIzNmRhMzcwM2U5MjhmMWNlZWQxZGQ5MTAyZDliODYy
MmUuLjE2Y2Q3ZjkyODI1MWJiYzk5NmNiNjQ2ZTQzNTlkNzNmZGI1MzViMjYgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9wb3J0c191bml0dGVzdC5weQor
KysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvcG9ydHNfdW5pdHRlc3Qu
cHkKQEAgLTEsNCArMSw1IEBACiAjIENvcHlyaWdodCAoYykgMjAwOSwgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTM5LDYg
KzQwLDEwIEBAIGNsYXNzIERlcHJlY2F0ZWRQb3J0VGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTWFjUG9ydCgpLmJ1aWxkX3dlYmtpdF9jb21tYW5kKGJ1
aWxkX3N0eWxlPSJkZWJ1ZyIpLCBEZXByZWNhdGVkUG9ydCgpLnNjcmlwdF9zaGVsbF9jb21tYW5k
KCJidWlsZC13ZWJraXQiKSArIFsiLS1kZWJ1ZyJdKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KE1hY1BvcnQoKS5idWlsZF93ZWJraXRfY29tbWFuZChidWlsZF9zdHlsZT0icmVsZWFzZSIpLCBE
ZXByZWNhdGVkUG9ydCgpLnNjcmlwdF9zaGVsbF9jb21tYW5kKCJidWlsZC13ZWJraXQiKSArIFsi
LS1yZWxlYXNlIl0pCiAKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChNYWNQb3J0KCkuYnVpbGRf
anNjX2NvbW1hbmQoKSwgRGVwcmVjYXRlZFBvcnQoKS5zY3JpcHRfc2hlbGxfY29tbWFuZCgiYnVp
bGQtanNjIikpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTWFjUG9ydCgpLmJ1aWxkX2pzY19j
b21tYW5kKGJ1aWxkX3N0eWxlPSJyZWxlYXNlIiksIERlcHJlY2F0ZWRQb3J0KCkuc2NyaXB0X3No
ZWxsX2NvbW1hbmQoImJ1aWxkLWpzYyIpICsgWyItLXJlbGVhc2UiXSkKKyAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChNYWNQb3J0KCkuYnVpbGRfanNjX2NvbW1hbmQoYnVpbGRfc3R5bGU9ImRlYnVn
IiksIERlcHJlY2F0ZWRQb3J0KCkuc2NyaXB0X3NoZWxsX2NvbW1hbmQoImJ1aWxkLWpzYyIpICsg
WyItLWRlYnVnIl0pCisKICAgICBkZWYgdGVzdF9ndGtfd2syX3BvcnQoc2VsZik6CiAgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoR3RrV0syUG9ydCgpLmZsYWcoKSwgIi0tcG9ydD1ndGstd2syIikK
ICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChHdGtXSzJQb3J0KCkucnVuX3dlYmtpdF90ZXN0c19j
b21tYW5kKCksIERlcHJlY2F0ZWRQb3J0KCkuc2NyaXB0X3NoZWxsX2NvbW1hbmQoInJ1bi13ZWJr
aXQtdGVzdHMiKSArIFsiLS1ndGsiXSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvY29tbW9uL25ldC9qc2N0ZXN0cmVzdWx0cy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
Y29tbW9uL25ldC9qc2N0ZXN0cmVzdWx0cy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMjIzYjUxZjhmN2ExYzE2
Y2IyNmMwYTkyZDRhOTlhYzhlYzI0NzEwCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9jb21tb24vbmV0L2pzY3Rlc3RyZXN1bHRzLnB5CkBAIC0wLDAgKzEsNzYgQEAK
KyMgQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMK
KyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IKKyMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwK
KyMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworaW1wb3J0IGpzb24KK2lt
cG9ydCBsb2dnaW5nCisKK19sb2cgPSBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVfXykKKworCitj
bGFzcyBKU0NUZXN0UmVzdWx0cyhvYmplY3QpOgorICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBy
ZXN1bHRzX2Zyb21fc3RyaW5nKGNscywgc3RyaW5nKToKKyAgICAgICAgaWYgbm90IHN0cmluZzoK
KyAgICAgICAgICAgIHJldHVybiBOb25lCisKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcGFy
c2VkX3Jlc3VsdHMgPSBqc29uLmxvYWRzKHN0cmluZykKKyAgICAgICAgZXhjZXB0IFZhbHVlRXJy
b3I6CisgICAgICAgICAgICByZXR1cm4gTm9uZQorCisgICAgICAgIHJldHVybiBjbHMocGFyc2Vk
X3Jlc3VsdHNbJ2FsbEFwaVRlc3RzUGFzc2VkJ10sIHBhcnNlZF9yZXN1bHRzWydzdHJlc3NUZXN0
RmFpbHVyZXMnXSkKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBhbGxfYXBpX3Rlc3RzX3Bhc3Nl
ZCwgc3RyZXNzX3Rlc3RfZmFpbHVyZXMpOgorICAgICAgICBzZWxmLl9hbGxfYXBpX3Rlc3RzX3Bh
c3NlZCA9IGFsbF9hcGlfdGVzdHNfcGFzc2VkCisgICAgICAgIHNlbGYuX3N0cmVzc190ZXN0X2Zh
aWx1cmVzID0gc3RyZXNzX3Rlc3RfZmFpbHVyZXMKKworICAgICAgICBzZWxmLl90ZXN0X3Jlc3Vs
dHMgPSBzdHJlc3NfdGVzdF9mYWlsdXJlc1s6XQorICAgICAgICBpZiBub3Qgc2VsZi5fYWxsX2Fw
aV90ZXN0c19wYXNzZWQ6CisgICAgICAgICAgICBzZWxmLl90ZXN0X3Jlc3VsdHMuYXBwZW5kKCJh
cGlUZXN0cyIpCisKKyAgICBkZWYgZXF1YWxzKHNlbGYsIG90aGVyKToKKyAgICAgICAgcmV0dXJu
IHNlbGYuX2FsbF9hcGlfdGVzdHNfcGFzc2VkID09IG90aGVyLl9hbGxfYXBpX3Rlc3RzX3Bhc3Nl
ZCBhbmQgc2V0KHNlbGYuX3N0cmVzc190ZXN0X2ZhaWx1cmVzKSA9PSBzZXQob3RoZXIuX3N0cmVz
c190ZXN0X2ZhaWx1cmVzKQorCisgICAgZGVmIGlzX3N1YnNldChzZWxmLCBvdGhlcik6CisgICAg
ICAgIHJldHVybiBzZXQoc2VsZi50ZXN0X3Jlc3VsdHMoKSkgPD0gc2V0KG90aGVyLnRlc3RfcmVz
dWx0cygpKQorCisgICAgZGVmIHN0cmVzc190ZXN0X2ZhaWx1cmVzKHNlbGYpOgorICAgICAgICBy
ZXR1cm4gc2VsZi5fc3RyZXNzX3Rlc3RfZmFpbHVyZXMKKworICAgIGRlZiBhbGxfYXBpX3Rlc3Rz
X3Bhc3NlZChzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX2FsbF9hcGlfdGVzdHNfcGFzc2Vk
CisKKyAgICBkZWYgYWxsX3Bhc3NlZChzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX2FsbF9h
cGlfdGVzdHNfcGFzc2VkIGFuZCBub3Qgc2VsZi5fc3RyZXNzX3Rlc3RfZmFpbHVyZXMKKworICAg
IGRlZiBmYWlsaW5nX3Rlc3RfcmVzdWx0cyhzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuc3Ry
ZXNzX3Rlc3RfZmFpbHVyZXMoKQorCisgICAgZGVmIHRlc3RfcmVzdWx0cyhzZWxmKToKKyAgICAg
ICAgcmV0dXJuIHNlbGYuX3Rlc3RfcmVzdWx0cworCisgICAgZGVmIGZhaWxpbmdfdGVzdHMoc2Vs
Zik6CisgICAgICAgIHJldHVybiBzZWxmLl90ZXN0X3Jlc3VsdHMKKworICAgICMgTm8gZGVmaW5l
ZCBmYWlsdXJlIGxpbWl0IGZvciBKU0MuCisgICAgZGVmIGRpZF9leGNlZWRfdGVzdF9mYWlsdXJl
X2xpbWl0KHNlbGYpOgorICAgICAgICByZXR1cm4gRmFsc2UKZGlmZiAtLWdpdCBhL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9qc2N0ZXN0cmVzdWx0c191bml0dGVzdC5weSBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9qc2N0ZXN0cmVzdWx0c191bml0dGVzdC5w
eQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5iODRmMGIyOTAyZWM4NmM1OGJjMjM1ZTI3MzU0ODBkN2U3YjQ1ZTkxCi0t
LSAvZGV2L251bGwKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2pzY3Rl
c3RyZXN1bHRzX3VuaXR0ZXN0LnB5CkBAIC0wLDAgKzEsNDMgQEAKKyMgQ29weXJpZ2h0IChDKSAy
MDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyMgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyMgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKworaW1wb3J0IHVuaXR0ZXN0CisKK2Zyb20gd2Via2l0cHku
Y29tbW9uLm5ldC5qc2N0ZXN0cmVzdWx0cyBpbXBvcnQgSlNDVGVzdFJlc3VsdHMKKworCitjbGFz
cyBKU0NUZXN0UmVzdWx0c1Rlc3QodW5pdHRlc3QuVGVzdENhc2UpOgorICAgIGRlZiB0ZXN0X3Jl
c3VsdHNfZnJvbV9zdHJpbmcoc2VsZik6CisgICAgICAgIG5vX2ZhaWx1cmVzX3N0cmluZyA9ICd7
ImFsbEFwaVRlc3RzUGFzc2VkIjogdHJ1ZSwgInN0cmVzc1Rlc3RGYWlsdXJlcyI6W119JworICAg
ICAgICBub19mYWlsdXJlc19yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgW10pCisgICAg
ICAgIHNlbGYuYXNzZXJ0VHJ1ZShub19mYWlsdXJlc19yZXN1bHRzLmVxdWFscyhKU0NUZXN0UmVz
dWx0cy5yZXN1bHRzX2Zyb21fc3RyaW5nKG5vX2ZhaWx1cmVzX3N0cmluZykpKQorCisgICAgICAg
IGFwaV90ZXN0X2ZhaWx1cmVzX3N0cmluZyA9ICd7ImFsbEFwaVRlc3RzUGFzc2VkIjogZmFsc2Us
ICJzdHJlc3NUZXN0RmFpbHVyZXMiOltdfScKKyAgICAgICAgYXBpX3Rlc3RfZmFpbHVyZXNfcmVz
dWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKEZhbHNlLCBbXSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVl
KGFwaV90ZXN0X2ZhaWx1cmVzX3Jlc3VsdHMuZXF1YWxzKEpTQ1Rlc3RSZXN1bHRzLnJlc3VsdHNf
ZnJvbV9zdHJpbmcoYXBpX3Rlc3RfZmFpbHVyZXNfc3RyaW5nKSkpCisKKyAgICAgICAgbWFueV9m
YWlsdXJlc19zdHJpbmcgPSAneyJhbGxBcGlUZXN0c1Bhc3NlZCI6IGZhbHNlLCAic3RyZXNzVGVz
dEZhaWx1cmVzIjpbImVzNi55YW1sL2VzNi90eXBlZF9hcnJheXNfSW50MTZBcnJheS5qcy5kZWZh
dWx0IiwgImVzNi55YW1sL2VzNi90eXBlZF9hcnJheXNfSW50OEFycmF5LmpzLmRlZmF1bHQiXX0n
CisgICAgICAgIG1hbnlfZmFpbHVyZXNfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKEZhbHNlLCBb
ImVzNi55YW1sL2VzNi90eXBlZF9hcnJheXNfSW50MTZBcnJheS5qcy5kZWZhdWx0IiwgImVzNi55
YW1sL2VzNi90eXBlZF9hcnJheXNfSW50OEFycmF5LmpzLmRlZmF1bHQiXSkKKyAgICAgICAgc2Vs
Zi5hc3NlcnRUcnVlKG1hbnlfZmFpbHVyZXNfcmVzdWx0cy5lcXVhbHMoSlNDVGVzdFJlc3VsdHMu
cmVzdWx0c19mcm9tX3N0cmluZyhtYW55X2ZhaWx1cmVzX3N0cmluZykpKQorCisgICAgICAgIHNl
bGYuYXNzZXJ0RmFsc2Uobm9fZmFpbHVyZXNfcmVzdWx0cyA9PSBhcGlfdGVzdF9mYWlsdXJlc19y
ZXN1bHRzKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGFwaV90ZXN0X2ZhaWx1cmVzX3Jlc3Vs
dHMgPT0gbWFueV9mYWlsdXJlc19yZXN1bHRzKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS90b29sL2JvdC9qc2Nld3NfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L3Rvb2wvYm90L2pzY2V3c191bml0dGVzdC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44OGI4MjIzN2Y1MDM0
YjQzYzA1NGNjZGU0NDcyZWQ2Yzg3ZjdmZGI4Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS90b29sL2JvdC9qc2Nld3NfdW5pdHRlc3QucHkKQEAgLTAsMCArMSwxNTUg
QEAKKyMgQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMg
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IKKyMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwKKyMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworaW1wb3J0IGxvZ2dp
bmcKK2ltcG9ydCB1bml0dGVzdAorCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5uZXQuanNjdGVzdHJl
c3VsdHMgaW1wb3J0IEpTQ1Rlc3RSZXN1bHRzCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0u
ZXhlY3V0aXZlIGltcG9ydCBTY3JpcHRFcnJvcgorZnJvbSB3ZWJraXRweS50b29sLmJvdC5wYXRj
aGFuYWx5c2lzdGFzayBpbXBvcnQgKgorZnJvbSB3ZWJraXRweS50b29sLmNvbW1hbmRzLmVhcmx5
d2FybmluZ3N5c3RlbSBpbXBvcnQgQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0KK2Zyb20gd2Vi
a2l0cHkudG9vbC5tb2NrdG9vbCBpbXBvcnQgTW9ja1Rvb2wKKworX2xvZyA9IGxvZ2dpbmcuZ2V0
TG9nZ2VyKF9fbmFtZV9fKQorCisKK2NsYXNzIE1vY2tQYXRjaEFuYWx5c2lzVGFzayhQYXRjaEFu
YWx5c2lzVGFzayk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGRlbGVnYXRlLCBwYXRjaCwgZmly
c3RfdGVzdF9hbGxfcGFzc2VkKToKKyAgICAgICAgc2VsZi5fZGVsZWdhdGUgPSBkZWxlZ2F0ZQor
ICAgICAgICBzZWxmLl9wYXRjaCA9IHBhdGNoCisgICAgICAgIHNlbGYuX3NjcmlwdF9lcnJvciA9
IE5vbmUKKyAgICAgICAgc2VsZi5fcmVzdWx0c19hcmNoaXZlX2Zyb21fcGF0Y2hfdGVzdF9ydW4g
PSBOb25lCisgICAgICAgIHNlbGYuX3Jlc3VsdHNfZnJvbV9wYXRjaF90ZXN0X3J1biA9IE5vbmUK
KyAgICAgICAgc2VsZi5lcnJvciA9IE5vbmUKKyAgICAgICAgc2VsZi5fZmlyc3RfdGVzdF9hbGxf
cGFzc2VkID0gZmlyc3RfdGVzdF9hbGxfcGFzc2VkCisgICAgICAgIHNlbGYuX3Rlc3RfcnVuX2Nv
dW50ID0gMAorCisgICAgZGVmIF90ZXN0KHNlbGYpOgorICAgICAgICBzZWxmLl90ZXN0X3J1bl9j
b3VudCArPSAxCisKKyAgICAgICAgaWYgc2VsZi5fZmlyc3RfdGVzdF9hbGxfcGFzc2VkID09IFRy
dWU6CisgICAgICAgICAgICByZXR1cm4gVHJ1ZQorICAgICAgICBlbHNlOgorICAgICAgICAgICAg
c2VsZi5fc2NyaXB0X2Vycm9yID0gU2NyaXB0RXJyb3IoIlJlZ3Jlc3Npb24gdGVzdCIpCisgICAg
ICAgICAgICByZXR1cm4gRmFsc2UKKworICAgIGRlZiBfYnVpbGRfYW5kX3Rlc3Rfd2l0aG91dF9w
YXRjaChzZWxmKToKKyAgICAgICAgc2VsZi5fdGVzdF9ydW5fY291bnQgKz0gMQorICAgICAgICBy
ZXR1cm4gVHJ1ZQorCisgICAgZGVmIHZhbGlkYXRlKHNlbGYpOgorICAgICAgICByZXR1cm4gVHJ1
ZQorCisgICAgZGVmIHRlc3RfcnVuX2NvdW50KHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5f
dGVzdF9ydW5fY291bnQKKworCisjIFRoaXMgaXMgdGhlIGRlbGVnYXRlIHRvIGJlIHVzZWQgd2l0
aCBNb2NrUGF0Y2hBbmFseXNpc1Rhc2ssIGFib3ZlLgorY2xhc3MgTW9ja0pTQ0Vhcmx5V2Fybmlu
Z1N5c3RlbShBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbSk6CisgICAgZGVmIF9faW5pdF9fKHNl
bGYsIGZpcnN0X3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKToKKyAgICAgICAgQWJz
dHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0uX19pbml0X18oc2VsZikKKyAgICAgICAgc2VsZi5fZ3Jv
dXAgPSAianNjIgorICAgICAgICBzZWxmLl9yZXN1bHRzX2luX29yZGVyID0gW2NsZWFuX3Rlc3Rf
cmVzdWx0cywgZmlyc3RfdGVzdF9yZXN1bHRzXQorCisgICAgZGVmIHRlc3RfcmVzdWx0cyhzZWxm
KToKKyAgICAgICAgcmV0dXJuIHNlbGYuX3Jlc3VsdHNfaW5fb3JkZXIucG9wKCkKKworCitjbGFz
cyBKU0NFYXJseVdhcm5pbmdTeXN0ZW1UZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICBkZWYg
X2NyZWF0ZV90YXNrKHNlbGYsIGZpcnN0X3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRz
KToKKyAgICAgICAgcXVldWUgPSBNb2NrSlNDRWFybHlXYXJuaW5nU3lzdGVtKGZpcnN0X3Rlc3Rf
cmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKQorICAgICAgICB0b29sID0gTW9ja1Rvb2wobG9n
X2V4ZWN1dGl2ZT1UcnVlKQorICAgICAgICBwYXRjaCA9IHRvb2wuYnVncy5mZXRjaF9hdHRhY2ht
ZW50KDEwMDAwKQorICAgICAgICBwYXRjaF9wYXNzZWRfYWxsX3Rlc3RzID0gRmFsc2UgaWYgZmly
c3RfdGVzdF9yZXN1bHRzIGlzIE5vbmUgZWxzZSBmaXJzdF90ZXN0X3Jlc3VsdHMuYWxsX3Bhc3Nl
ZCgpCisgICAgICAgIHJldHVybiBNb2NrUGF0Y2hBbmFseXNpc1Rhc2socXVldWUsIHBhdGNoLCBw
YXRjaF9wYXNzZWRfYWxsX3Rlc3RzKQorCisgICAgZGVmIHRlc3Rfc3VjY2Vzc19jYXNlKHNlbGYp
OgorICAgICAgICBmaXJzdF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbXSkK
KyAgICAgICAgY2xlYW5fdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgW10pCisg
ICAgICAgIHRhc2sgPSBzZWxmLl9jcmVhdGVfdGFzayhmaXJzdF90ZXN0X3Jlc3VsdHMsIGNsZWFu
X3Rlc3RfcmVzdWx0cykKKworICAgICAgICByZXR1cm5fdmFsdWUgPSB0YXNrLl90ZXN0X3BhdGNo
KCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0YXNrLnRlc3RfcnVuX2NvdW50KCksIDEpCisg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmV0dXJuX3ZhbHVlLCBUcnVlKQorCisgICAgZGVmIHRl
c3RfdGVzdF9mYWlsdXJlKHNlbGYpOgorICAgICAgICBmaXJzdF90ZXN0X3Jlc3VsdHMgPSBKU0NU
ZXN0UmVzdWx0cyhUcnVlLCBbJ0ZhaWwuanMnXSkKKyAgICAgICAgY2xlYW5fdGVzdF9yZXN1bHRz
ID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgW10pCisgICAgICAgIHRhc2sgPSBzZWxmLl9jcmVhdGVf
dGFzayhmaXJzdF90ZXN0X3Jlc3VsdHMsIGNsZWFuX3Rlc3RfcmVzdWx0cykKKworICAgICAgICB3
aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFNjcmlwdEVycm9yKToKKyAgICAgICAgICAgIHJldHVybl92
YWx1ZSA9IHRhc2suX3Rlc3RfcGF0Y2goKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRhc2su
dGVzdF9ydW5fY291bnQoKSwgMikKKworICAgIGRlZiB0ZXN0X2ZpeChzZWxmKToKKyAgICAgICAg
Zmlyc3RfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgW10pCisgICAgICAgIGNs
ZWFuX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFsnRmFpbC5qcyddKQorICAg
ICAgICB0YXNrID0gc2VsZi5fY3JlYXRlX3Rhc2soZmlyc3RfdGVzdF9yZXN1bHRzLCBjbGVhbl90
ZXN0X3Jlc3VsdHMpCisKKyAgICAgICAgcmV0dXJuX3ZhbHVlID0gdGFzay5fdGVzdF9wYXRjaCgp
CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGFzay50ZXN0X3J1bl9jb3VudCgpLCAxKQorICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKHJldHVybl92YWx1ZSwgVHJ1ZSkKKworICAgIGRlZiB0ZXN0
X2luZWZmZWN0aXZlX3BhdGNoKHNlbGYpOgorICAgICAgICBmaXJzdF90ZXN0X3Jlc3VsdHMgPSBK
U0NUZXN0UmVzdWx0cyhGYWxzZSwgWydmYWlsdXJlMS5qcycsICdmYWlsdXJlMi5qcyddKQorICAg
ICAgICBjbGVhbl90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhGYWxzZSwgWydmYWlsdXJl
MS5qcycsICdmYWlsdXJlMi5qcyddKQorICAgICAgICB0YXNrID0gc2VsZi5fY3JlYXRlX3Rhc2so
Zmlyc3RfdGVzdF9yZXN1bHRzLCBjbGVhbl90ZXN0X3Jlc3VsdHMpCisKKyAgICAgICAgcmV0dXJu
X3ZhbHVlID0gdGFzay5fdGVzdF9wYXRjaCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGFz
ay50ZXN0X3J1bl9jb3VudCgpLCAyKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJldHVybl92
YWx1ZSwgVHJ1ZSkKKworICAgIGRlZiB0ZXN0X3BhcnRpYWxseV9lZmZlY3RpdmVfcGF0Y2goc2Vs
Zik6CisgICAgICAgIGZpcnN0X3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFsn
ZmFpbHVyZTIuanMnXSkKKyAgICAgICAgY2xlYW5fdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3Vs
dHMoRmFsc2UsIFsnZmFpbHVyZTEuanMnLCAnZmFpbHVyZTIuanMnXSkKKyAgICAgICAgdGFzayA9
IHNlbGYuX2NyZWF0ZV90YXNrKGZpcnN0X3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRz
KQorCisgICAgICAgIHJldHVybl92YWx1ZSA9IHRhc2suX3Rlc3RfcGF0Y2goKQorICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKHRhc2sudGVzdF9ydW5fY291bnQoKSwgMikKKyAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChyZXR1cm5fdmFsdWUsIFRydWUpCisKKyAgICBkZWYgdGVzdF9kaWZmZXJlbnRf
dGVzdF9mYWlsdXJlcyhzZWxmKToKKyAgICAgICAgZmlyc3RfdGVzdF9yZXN1bHRzID0gSlNDVGVz
dFJlc3VsdHMoRmFsc2UsIFtdKQorICAgICAgICBjbGVhbl90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0
UmVzdWx0cyhUcnVlLCBbJ2ZhaWx1cmUxLmpzJywgJ2ZhaWx1cmUyLmpzJ10pCisgICAgICAgIHRh
c2sgPSBzZWxmLl9jcmVhdGVfdGFzayhmaXJzdF90ZXN0X3Jlc3VsdHMsIGNsZWFuX3Rlc3RfcmVz
dWx0cykKKworICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFNjcmlwdEVycm9yKToKKyAg
ICAgICAgICAgIHJldHVybl92YWx1ZSA9IHRhc2suX3Rlc3RfcGF0Y2goKQorICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKHRhc2sudGVzdF9ydW5fY291bnQoKSwgMikKKworICAgIGRlZiB0ZXN0X2Zp
cnN0X3Jlc3VsdHNfY291bGRfbm90X2JlX3JlYWQoc2VsZik6CisgICAgICAgIGZpcnN0X3Rlc3Rf
cmVzdWx0cyA9IE5vbmUKKyAgICAgICAgY2xlYW5fdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3Vs
dHMoVHJ1ZSwgW10pCisgICAgICAgIHRhc2sgPSBzZWxmLl9jcmVhdGVfdGFzayhmaXJzdF90ZXN0
X3Jlc3VsdHMsIGNsZWFuX3Rlc3RfcmVzdWx0cykKKworICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0
UmFpc2VzKFNjcmlwdEVycm9yKToKKyAgICAgICAgICAgIHJldHVybl92YWx1ZSA9IHRhc2suX3Rl
c3RfcGF0Y2goKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRhc2sudGVzdF9ydW5fY291bnQo
KSwgMSkKKworICAgIGRlZiB0ZXN0X2NsZWFuX3Jlc3VsdHNfY291bGRfbm90X2JlX3JlYWQoc2Vs
Zik6CisgICAgICAgIGZpcnN0X3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFsn
ZmFpbHVyZTIuanMnXSkKKyAgICAgICAgY2xlYW5fdGVzdF9yZXN1bHRzID0gTm9uZQorICAgICAg
ICB0YXNrID0gc2VsZi5fY3JlYXRlX3Rhc2soZmlyc3RfdGVzdF9yZXN1bHRzLCBjbGVhbl90ZXN0
X3Jlc3VsdHMpCisKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhTY3JpcHRFcnJvcik6
CisgICAgICAgICAgICByZXR1cm5fdmFsdWUgPSB0YXNrLl90ZXN0X3BhdGNoKCkKKyAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbCh0YXNrLnRlc3RfcnVuX2NvdW50KCksIDIpCmRpZmYgLS1naXQgYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2pzY3Rlc3RyZXN1bHRzcmVhZGVyLnB5IGIv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9qc2N0ZXN0cmVzdWx0c3JlYWRlci5weQpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi44YWM1MzJiMTllN2VhNTVkMzViOTEzOWI0ZjIwOTk4MDViYTAwNDllCi0tLSAv
ZGV2L251bGwKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9qc2N0ZXN0cmVz
dWx0c3JlYWRlci5weQpAQCAtMCwwICsxLDQ3IEBACisjIENvcHlyaWdodCAoQykgMjAxNyBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQK
KyMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUgorIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMCisjIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisjIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSCisjIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisjIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisj
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisKK2ltcG9ydCBsb2dnaW5nCisKK2Zyb20gd2Via2l0cHkuY29tbW9uLm5l
dC5qc2N0ZXN0cmVzdWx0cyBpbXBvcnQgSlNDVGVzdFJlc3VsdHMKKworX2xvZyA9IGxvZ2dpbmcu
Z2V0TG9nZ2VyKF9fbmFtZV9fKQorCisKK2NsYXNzIEpTQ1Rlc3RSZXN1bHRzUmVhZGVyKG9iamVj
dCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGhvc3QsIHJlc3VsdHNfZGlyZWN0b3J5KToKKyAg
ICAgICAgc2VsZi5faG9zdCA9IGhvc3QKKyAgICAgICAgc2VsZi5fcmVzdWx0c19kaXJlY3Rvcnkg
PSByZXN1bHRzX2RpcmVjdG9yeQorCisgICAgZGVmIF9yZWFkX2ZpbGVfY29udGVudHMoc2VsZiwg
cGF0aCk6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLl9ob3N0LmZpbGVz
eXN0ZW0ucmVhZF90ZXh0X2ZpbGUocGF0aCkKKyAgICAgICAgZXhjZXB0IElPRXJyb3IsIGU6ICAj
IEZpbGUgZG9lcyBub3QgZXhpc3Qgb3IgY2FuJ3QgYmUgcmVhZC4KKyAgICAgICAgICAgIHJldHVy
biBOb25lCisKKyAgICBkZWYgX2NyZWF0ZV9qc2NfdGVzdF9yZXN1bHRzKHNlbGYpOgorICAgICAg
ICByZXN1bHRzX3BhdGggPSBzZWxmLl9ob3N0LmZpbGVzeXN0ZW0uam9pbihzZWxmLl9yZXN1bHRz
X2RpcmVjdG9yeSwgImpzY190ZXN0X3Jlc3VsdHMuanNvbiIpCisgICAgICAgIGNvbnRlbnRzID0g
c2VsZi5fcmVhZF9maWxlX2NvbnRlbnRzKHJlc3VsdHNfcGF0aCkKKyAgICAgICAgcmV0dXJuIEpT
Q1Rlc3RSZXN1bHRzLnJlc3VsdHNfZnJvbV9zdHJpbmcoY29udGVudHMpCisKKyAgICBkZWYgcmVz
dWx0cyhzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX2NyZWF0ZV9qc2NfdGVzdF9yZXN1bHRz
KCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvcGF0Y2hhbmFs
eXNpc3Rhc2sucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L3BhdGNoYW5hbHlz
aXN0YXNrLnB5CmluZGV4IDc1MjMxNjQxNmM1ZjlkMGEzZTU5ZWY2ZDA1ZTMxNzg1ZjkxNzQ2Mjku
LjE1NGQ4Y2E0N2QyY2RmNDg0YjAzODc0NGYzNGE5YjJkZjhjNTRhMDIgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvcGF0Y2hhbmFseXNpc3Rhc2sucHkKKysrIGIv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9wYXRjaGFuYWx5c2lzdGFzay5weQpAQCAt
MSw0ICsxLDUgQEAKICMgQ29weXJpZ2h0IChjKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC0xMjMsMjcgKzEyNCwz
OSBAQCBjbGFzcyBQYXRjaEFuYWx5c2lzVGFzayhvYmplY3QpOgogICAgICAgICAiUGF0Y2ggZG9l
cyBub3QgYXBwbHkiKQogCiAgICAgZGVmIF9idWlsZChzZWxmKToKLSAgICAgICAgcmV0dXJuIHNl
bGYuX3J1bl9jb21tYW5kKFsKKyAgICAgICAgYXJncyA9IFsKICAgICAgICAgICAgICJidWlsZCIs
CiAgICAgICAgICAgICAiLS1uby1jbGVhbiIsCiAgICAgICAgICAgICAiLS1uby11cGRhdGUiLAog
ICAgICAgICAgICAgIi0tYnVpbGQtc3R5bGU9JXMiICUgc2VsZi5fZGVsZWdhdGUuYnVpbGRfc3R5
bGUoKSwKLSAgICAgICAgXSwKLSAgICAgICAgIkJ1aWx0IHBhdGNoIiwKLSAgICAgICAgIlBhdGNo
IGRvZXMgbm90IGJ1aWxkIikKKyAgICAgICAgXQorCisgICAgICAgIGlmIGhhc2F0dHIoc2VsZi5f
ZGVsZWdhdGUsICdncm91cCcpOgorICAgICAgICAgICAgYXJncy5hcHBlbmQoIi0tZ3JvdXA9JXMi
ICUgc2VsZi5fZGVsZWdhdGUuZ3JvdXAoKSkKKworICAgICAgICByZXR1cm4gc2VsZi5fcnVuX2Nv
bW1hbmQoCisgICAgICAgICAgICBhcmdzLAorICAgICAgICAgICAgIkJ1aWx0IHBhdGNoIiwKKyAg
ICAgICAgICAgICJQYXRjaCBkb2VzIG5vdCBidWlsZCIpCiAKICAgICBkZWYgX2J1aWxkX3dpdGhv
dXRfcGF0Y2goc2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmLl9ydW5fY29tbWFuZChbCisgICAg
ICAgIGFyZ3MgPSBbCiAgICAgICAgICAgICAiYnVpbGQiLAogICAgICAgICAgICAgIi0tZm9yY2Ut
Y2xlYW4iLAogICAgICAgICAgICAgIi0tbm8tdXBkYXRlIiwKICAgICAgICAgICAgICItLWJ1aWxk
LXN0eWxlPSVzIiAlIHNlbGYuX2RlbGVnYXRlLmJ1aWxkX3N0eWxlKCksCi0gICAgICAgIF0sCi0g
ICAgICAgICJBYmxlIHRvIGJ1aWxkIHdpdGhvdXQgcGF0Y2giLAotICAgICAgICAiVW5hYmxlIHRv
IGJ1aWxkIHdpdGhvdXQgcGF0Y2giKQorICAgICAgICBdCisKKyAgICAgICAgaWYgaGFzYXR0cihz
ZWxmLl9kZWxlZ2F0ZSwgJ2dyb3VwJyk6CisgICAgICAgICAgICBhcmdzLmFwcGVuZCgiLS1ncm91
cD0lcyIgJSBzZWxmLl9kZWxlZ2F0ZS5ncm91cCgpKQorCisgICAgICAgIHJldHVybiBzZWxmLl9y
dW5fY29tbWFuZCgKKyAgICAgICAgICAgIGFyZ3MsCisgICAgICAgICAgICAiQWJsZSB0byBidWls
ZCB3aXRob3V0IHBhdGNoIiwKKyAgICAgICAgICAgICJVbmFibGUgdG8gYnVpbGQgd2l0aG91dCBw
YXRjaCIpCiAKICAgICBkZWYgX3Rlc3Qoc2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmLl9ydW5f
Y29tbWFuZChbCisgICAgICAgIGFyZ3MgPSBbCiAgICAgICAgICAgICAiYnVpbGQtYW5kLXRlc3Qi
LAogICAgICAgICAgICAgIi0tbm8tY2xlYW4iLAogICAgICAgICAgICAgIi0tbm8tdXBkYXRlIiwK
QEAgLTE1MSwxMiArMTY0LDE4IEBAIGNsYXNzIFBhdGNoQW5hbHlzaXNUYXNrKG9iamVjdCk6CiAg
ICAgICAgICAgICAiLS10ZXN0IiwKICAgICAgICAgICAgICItLW5vbi1pbnRlcmFjdGl2ZSIsCiAg
ICAgICAgICAgICAiLS1idWlsZC1zdHlsZT0lcyIgJSBzZWxmLl9kZWxlZ2F0ZS5idWlsZF9zdHls
ZSgpLAotICAgICAgICBdLAotICAgICAgICAiUGFzc2VkIHRlc3RzIiwKLSAgICAgICAgIlBhdGNo
IGRvZXMgbm90IHBhc3MgdGVzdHMiKQorICAgICAgICBdCisKKyAgICAgICAgaWYgaGFzYXR0cihz
ZWxmLl9kZWxlZ2F0ZSwgJ2dyb3VwJyk6CisgICAgICAgICAgICBhcmdzLmFwcGVuZCgiLS1ncm91
cD0lcyIgJSBzZWxmLl9kZWxlZ2F0ZS5ncm91cCgpKQorCisgICAgICAgIHJldHVybiBzZWxmLl9y
dW5fY29tbWFuZCgKKyAgICAgICAgICAgIGFyZ3MsCisgICAgICAgICAgICAiUGFzc2VkIHRlc3Rz
IiwKKyAgICAgICAgICAgICJQYXRjaCBkb2VzIG5vdCBwYXNzIHRlc3RzIikKIAogICAgIGRlZiBf
YnVpbGRfYW5kX3Rlc3Rfd2l0aG91dF9wYXRjaChzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYu
X3J1bl9jb21tYW5kKFsKKyAgICAgICAgYXJncyA9IFsKICAgICAgICAgICAgICJidWlsZC1hbmQt
dGVzdCIsCiAgICAgICAgICAgICAiLS1mb3JjZS1jbGVhbiIsCiAgICAgICAgICAgICAiLS1uby11
cGRhdGUiLApAQCAtMTY0LDkgKzE4MywxNSBAQCBjbGFzcyBQYXRjaEFuYWx5c2lzVGFzayhvYmpl
Y3QpOgogICAgICAgICAgICAgIi0tdGVzdCIsCiAgICAgICAgICAgICAiLS1ub24taW50ZXJhY3Rp
dmUiLAogICAgICAgICAgICAgIi0tYnVpbGQtc3R5bGU9JXMiICUgc2VsZi5fZGVsZWdhdGUuYnVp
bGRfc3R5bGUoKSwKLSAgICAgICAgXSwKLSAgICAgICAgIkFibGUgdG8gcGFzcyB0ZXN0cyB3aXRo
b3V0IHBhdGNoIiwKLSAgICAgICAgIlVuYWJsZSB0byBwYXNzIHRlc3RzIHdpdGhvdXQgcGF0Y2gg
KHRyZWUgaXMgcmVkPykiKQorICAgICAgICBdCisKKyAgICAgICAgaWYgaGFzYXR0cihzZWxmLl9k
ZWxlZ2F0ZSwgJ2dyb3VwJyk6CisgICAgICAgICAgICBhcmdzLmFwcGVuZCgiLS1ncm91cD0lcyIg
JSBzZWxmLl9kZWxlZ2F0ZS5ncm91cCgpKQorCisgICAgICAgIHJldHVybiBzZWxmLl9ydW5fY29t
bWFuZCgKKyAgICAgICAgICAgIGFyZ3MsCisgICAgICAgICAgICAiQWJsZSB0byBwYXNzIHRlc3Rz
IHdpdGhvdXQgcGF0Y2giLAorICAgICAgICAgICAgIlVuYWJsZSB0byBwYXNzIHRlc3RzIHdpdGhv
dXQgcGF0Y2ggKHRyZWUgaXMgcmVkPykiKQogCiAgICAgZGVmIF9sYW5kKHNlbGYpOgogICAgICAg
ICAjIFVuY2xlYXIgaWYgdGhpcyBzaG91bGQgcGFzcyAtLXF1aWV0IG9yIG5vdC4gIElmIC0tcGFy
ZW50LWNvbW1hbmQgYWx3YXlzIGRvZXMgdGhlIHJlcG9ydGluZywgdGhlbiBpdCBzaG91bGQuCkBA
IC0yMTAsNjkgKzIzNSw5MiBAQCBjbGFzcyBQYXRjaEFuYWx5c2lzVGFzayhvYmplY3QpOgogICAg
ICAgICBpZiBzZWxmLl90ZXN0KCk6CiAgICAgICAgICAgICByZXR1cm4gVHJ1ZQogCi0gICAgICAg
ICMgTm90ZTogYXJjaGl2ZV9sYXN0X3Rlc3RfcmVzdWx0cyBkZWxldGVzIHRoZSByZXN1bHRzIGRp
cmVjdG9yeSwgbWFraW5nIHRoZXNlIGNhbGxzIG9yZGVyLXNlbnNpdHZlLgotICAgICAgICAjIFdl
IGNvdWxkIHJlbW92ZSB0aGlzIGRlcGVuZGVuY3kgYnkgYnVpbGRpbmcgdGhlIHRlc3RfcmVzdWx0
cyBmcm9tIHRoZSBhcmNoaXZlLgotICAgICAgICBmaXJzdF9yZXN1bHRzID0gc2VsZi5fZGVsZWdh
dGUudGVzdF9yZXN1bHRzKCkKLSAgICAgICAgZmlyc3RfcmVzdWx0c19hcmNoaXZlID0gc2VsZi5f
ZGVsZWdhdGUuYXJjaGl2ZV9sYXN0X3Rlc3RfcmVzdWx0cyhzZWxmLl9wYXRjaCkKLSAgICAgICAg
Zmlyc3Rfc2NyaXB0X2Vycm9yID0gc2VsZi5fc2NyaXB0X2Vycm9yCi0gICAgICAgIGZpcnN0X2Zh
aWx1cmVfc3RhdHVzX2lkID0gc2VsZi5mYWlsdXJlX3N0YXR1c19pZAotCi0gICAgICAgIGlmIHNl
bGYuX3Rlc3QoKSBhbmQgbm90IGZpcnN0X3Jlc3VsdHMuZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVf
bGltaXQoKToKLSAgICAgICAgICAgICMgT25seSByZXBvcnQgZmxha3kgdGVzdHMgaWYgd2Ugd2Vy
ZSBzdWNjZXNzZnVsIGF0IHBhcnNpbmcgcmVzdWx0cy5qc29uIGFuZCBhcmNoaXZpbmcgcmVzdWx0
cy4KLSAgICAgICAgICAgIGlmIGZpcnN0X3Jlc3VsdHMgYW5kIGZpcnN0X3Jlc3VsdHNfYXJjaGl2
ZToKLSAgICAgICAgICAgICAgICBzZWxmLl9yZXBvcnRfZmxha3lfdGVzdHMoZmlyc3RfcmVzdWx0
cy5mYWlsaW5nX3Rlc3RfcmVzdWx0cygpLCBmaXJzdF9yZXN1bHRzX2FyY2hpdmUpCi0gICAgICAg
ICAgICByZXR1cm4gVHJ1ZQorICAgICAgICAjIEZJWE1FOiBBYnN0cmFjdCBvdXQgdGhlIHJldHJ5
IGxvZ2ljIGluc3RlYWQgb2YgY2FzaW5nIG9uIHRoZSB0ZXN0IHN1aXRlIGhlcmUuCisgICAgICAg
IGlmIGhhc2F0dHIoc2VsZi5fZGVsZWdhdGUsICdncm91cCcpIGFuZCBzZWxmLl9kZWxlZ2F0ZS5n
cm91cCgpID09ICJqc2MiOgorICAgICAgICAgICAgZmlyc3RfcmVzdWx0cyA9IHNlbGYuX2RlbGVn
YXRlLnRlc3RfcmVzdWx0cygpCisgICAgICAgICAgICBmaXJzdF9zY3JpcHRfZXJyb3IgPSBzZWxm
Ll9zY3JpcHRfZXJyb3IKKworICAgICAgICAgICAgaWYgZmlyc3RfcmVzdWx0cyBpcyBOb25lOgor
ICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLnJlcG9ydF9mYWlsdXJlKE5vbmUsIE5vbmUsIFNj
cmlwdEVycm9yKCJDb3VsZCBub3QgcmVhZCBKU0MgdGVzdCByZXN1bHRzIGZvciBwYXRjaC4iKSkK
IAotICAgICAgICBzZWNvbmRfcmVzdWx0cyA9IHNlbGYuX2RlbGVnYXRlLnRlc3RfcmVzdWx0cygp
Ci0gICAgICAgIHNlY29uZF9yZXN1bHRzX2FyY2hpdmUgPSBzZWxmLl9kZWxlZ2F0ZS5hcmNoaXZl
X2xhc3RfdGVzdF9yZXN1bHRzKHNlbGYuX3BhdGNoKQotICAgICAgICBzZWNvbmRfc2NyaXB0X2Vy
cm9yID0gc2VsZi5fc2NyaXB0X2Vycm9yCi0gICAgICAgIHNlY29uZF9mYWlsdXJlX3N0YXR1c19p
ZCA9IHNlbGYuZmFpbHVyZV9zdGF0dXNfaWQKKyAgICAgICAgICAgIGlmIGZpcnN0X3Jlc3VsdHMu
YWxsX3Bhc3NlZCgpOgorICAgICAgICAgICAgICAgIHJldHVybiBUcnVlCiAKLSAgICAgICAgaWYg
c2Vjb25kX3Jlc3VsdHMuZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQoKSBhbmQgZmlyc3Rf
cmVzdWx0cy5kaWRfZXhjZWVkX3Rlc3RfZmFpbHVyZV9saW1pdCgpOgogICAgICAgICAgICAgc2Vs
Zi5fYnVpbGRfYW5kX3Rlc3Rfd2l0aG91dF9wYXRjaCgpCiAgICAgICAgICAgICBjbGVhbl90cmVl
X3Jlc3VsdHMgPSBzZWxmLl9kZWxlZ2F0ZS50ZXN0X3Jlc3VsdHMoKQogCi0gICAgICAgICAgICBp
ZiAobGVuKGZpcnN0X3Jlc3VsdHMuZmFpbGluZ190ZXN0cygpKSAtIGxlbihjbGVhbl90cmVlX3Jl
c3VsdHMuZmFpbGluZ190ZXN0cygpKSkgPD0gNToKLSAgICAgICAgICAgICAgICByZXR1cm4gRmFs
c2UKKyAgICAgICAgICAgIGlmIGNsZWFuX3RyZWVfcmVzdWx0cyBpcyBOb25lOgorICAgICAgICAg
ICAgICAgIHJldHVybiBzZWxmLnJlcG9ydF9mYWlsdXJlKE5vbmUsIE5vbmUsIFNjcmlwdEVycm9y
KCJDb3VsZCBub3QgcmVhZCBKU0MgdGVzdCByZXN1bHRzIGZvciBjbGVhbiB0cmVlLiIpKQogCi0g
ICAgICAgICAgICBzZWxmLmZhaWx1cmVfc3RhdHVzX2lkID0gZmlyc3RfZmFpbHVyZV9zdGF0dXNf
aWQKKyAgICAgICAgICAgIGlmIGZpcnN0X3Jlc3VsdHMuaXNfc3Vic2V0KGNsZWFuX3RyZWVfcmVz
dWx0cyk6CisgICAgICAgICAgICAgICAgcmV0dXJuIFRydWUKIAotICAgICAgICAgICAgcmV0dXJu
IHNlbGYucmVwb3J0X2ZhaWx1cmUoZmlyc3RfcmVzdWx0c19hcmNoaXZlLCBmaXJzdF9yZXN1bHRz
LCBmaXJzdF9zY3JpcHRfZXJyb3IpCisgICAgICAgICAgICByZXR1cm4gc2VsZi5yZXBvcnRfZmFp
bHVyZShOb25lLCBmaXJzdF9yZXN1bHRzLCBmaXJzdF9zY3JpcHRfZXJyb3IpCiAKLSAgICAgICAg
aWYgc2Vjb25kX3Jlc3VsdHMuZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQoKToKLSAgICAg
ICAgICAgIHNlbGYuX3Nob3VsZF9kZWZlcl9wYXRjaF9vcl90aHJvdyhmaXJzdF9yZXN1bHRzLmZh
aWxpbmdfdGVzdF9yZXN1bHRzKCksIGZpcnN0X3Jlc3VsdHNfYXJjaGl2ZSwgZmlyc3Rfc2NyaXB0
X2Vycm9yLCBmaXJzdF9mYWlsdXJlX3N0YXR1c19pZCkKLSAgICAgICAgICAgIHJldHVybiBGYWxz
ZQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgIyBOb3RlOiBhcmNoaXZlX2xhc3RfdGVzdF9y
ZXN1bHRzIGRlbGV0ZXMgdGhlIHJlc3VsdHMgZGlyZWN0b3J5LCBtYWtpbmcgdGhlc2UgY2FsbHMg
b3JkZXItc2Vuc2l0dmUuCisgICAgICAgICAgICAjIFdlIGNvdWxkIHJlbW92ZSB0aGlzIGRlcGVu
ZGVuY3kgYnkgYnVpbGRpbmcgdGhlIHRlc3RfcmVzdWx0cyBmcm9tIHRoZSBhcmNoaXZlLgorICAg
ICAgICAgICAgZmlyc3RfcmVzdWx0cyA9IHNlbGYuX2RlbGVnYXRlLnRlc3RfcmVzdWx0cygpCisg
ICAgICAgICAgICBmaXJzdF9yZXN1bHRzX2FyY2hpdmUgPSBzZWxmLl9kZWxlZ2F0ZS5hcmNoaXZl
X2xhc3RfdGVzdF9yZXN1bHRzKHNlbGYuX3BhdGNoKQorICAgICAgICAgICAgZmlyc3Rfc2NyaXB0
X2Vycm9yID0gc2VsZi5fc2NyaXB0X2Vycm9yCisgICAgICAgICAgICBmaXJzdF9mYWlsdXJlX3N0
YXR1c19pZCA9IHNlbGYuZmFpbHVyZV9zdGF0dXNfaWQKIAotICAgICAgICBpZiBmaXJzdF9yZXN1
bHRzLmRpZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xpbWl0KCk6Ci0gICAgICAgICAgICBzZWxmLl9z
aG91bGRfZGVmZXJfcGF0Y2hfb3JfdGhyb3coc2Vjb25kX3Jlc3VsdHMuZmFpbGluZ190ZXN0X3Jl
c3VsdHMoKSwgc2Vjb25kX3Jlc3VsdHNfYXJjaGl2ZSwgc2Vjb25kX3NjcmlwdF9lcnJvciwgc2Vj
b25kX2ZhaWx1cmVfc3RhdHVzX2lkKQotICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAg
ICAgICBpZiBzZWxmLl90ZXN0KCkgYW5kIG5vdCBmaXJzdF9yZXN1bHRzLmRpZF9leGNlZWRfdGVz
dF9mYWlsdXJlX2xpbWl0KCk6CisgICAgICAgICAgICAgICAgIyBPbmx5IHJlcG9ydCBmbGFreSB0
ZXN0cyBpZiB3ZSB3ZXJlIHN1Y2Nlc3NmdWwgYXQgcGFyc2luZyByZXN1bHRzLmpzb24gYW5kIGFy
Y2hpdmluZyByZXN1bHRzLgorICAgICAgICAgICAgICAgIGlmIGZpcnN0X3Jlc3VsdHMgYW5kIGZp
cnN0X3Jlc3VsdHNfYXJjaGl2ZToKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5fcmVwb3J0X2Zs
YWt5X3Rlc3RzKGZpcnN0X3Jlc3VsdHMuZmFpbGluZ190ZXN0X3Jlc3VsdHMoKSwgZmlyc3RfcmVz
dWx0c19hcmNoaXZlKQorICAgICAgICAgICAgICAgIHJldHVybiBUcnVlCisKKyAgICAgICAgICAg
IHNlY29uZF9yZXN1bHRzID0gc2VsZi5fZGVsZWdhdGUudGVzdF9yZXN1bHRzKCkKKyAgICAgICAg
ICAgIHNlY29uZF9yZXN1bHRzX2FyY2hpdmUgPSBzZWxmLl9kZWxlZ2F0ZS5hcmNoaXZlX2xhc3Rf
dGVzdF9yZXN1bHRzKHNlbGYuX3BhdGNoKQorICAgICAgICAgICAgc2Vjb25kX3NjcmlwdF9lcnJv
ciA9IHNlbGYuX3NjcmlwdF9lcnJvcgorICAgICAgICAgICAgc2Vjb25kX2ZhaWx1cmVfc3RhdHVz
X2lkID0gc2VsZi5mYWlsdXJlX3N0YXR1c19pZAogCi0gICAgICAgIGlmIHNlbGYuX3Jlc3VsdHNf
ZmFpbGVkX2RpZmZlcmVudF90ZXN0cyhmaXJzdF9yZXN1bHRzLCBzZWNvbmRfcmVzdWx0cyk6Ci0g
ICAgICAgICAgICBmaXJzdF9mYWlsaW5nX3Jlc3VsdHNfc2V0ID0gZnJvemVuc2V0KGZpcnN0X3Jl
c3VsdHMuZmFpbGluZ190ZXN0X3Jlc3VsdHMoKSkKLSAgICAgICAgICAgIHNlY29uZF9mYWlsaW5n
X3Jlc3VsdHNfc2V0ID0gZnJvemVuc2V0KHNlY29uZF9yZXN1bHRzLmZhaWxpbmdfdGVzdF9yZXN1
bHRzKCkpCisgICAgICAgICAgICBpZiBzZWNvbmRfcmVzdWx0cy5kaWRfZXhjZWVkX3Rlc3RfZmFp
bHVyZV9saW1pdCgpIGFuZCBmaXJzdF9yZXN1bHRzLmRpZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xp
bWl0KCk6CisgICAgICAgICAgICAgICAgc2VsZi5fYnVpbGRfYW5kX3Rlc3Rfd2l0aG91dF9wYXRj
aCgpCisgICAgICAgICAgICAgICAgY2xlYW5fdHJlZV9yZXN1bHRzID0gc2VsZi5fZGVsZWdhdGUu
dGVzdF9yZXN1bHRzKCkKIAotICAgICAgICAgICAgdGVzdHNfdGhhdF9vbmx5X2ZhaWxlZF9maXJz
dCA9IGZpcnN0X2ZhaWxpbmdfcmVzdWx0c19zZXQuZGlmZmVyZW5jZShzZWNvbmRfZmFpbGluZ19y
ZXN1bHRzX3NldCkKLSAgICAgICAgICAgIHNlbGYuX3JlcG9ydF9mbGFreV90ZXN0cyh0ZXN0c190
aGF0X29ubHlfZmFpbGVkX2ZpcnN0LCBmaXJzdF9yZXN1bHRzX2FyY2hpdmUpCisgICAgICAgICAg
ICAgICAgaWYgKGxlbihmaXJzdF9yZXN1bHRzLmZhaWxpbmdfdGVzdHMoKSkgLSBsZW4oY2xlYW5f
dHJlZV9yZXN1bHRzLmZhaWxpbmdfdGVzdHMoKSkpIDw9IDU6CisgICAgICAgICAgICAgICAgICAg
IHJldHVybiBGYWxzZQogCi0gICAgICAgICAgICB0ZXN0c190aGF0X29ubHlfZmFpbGVkX3NlY29u
ZCA9IHNlY29uZF9mYWlsaW5nX3Jlc3VsdHNfc2V0LmRpZmZlcmVuY2UoZmlyc3RfZmFpbGluZ19y
ZXN1bHRzX3NldCkKLSAgICAgICAgICAgIHNlbGYuX3JlcG9ydF9mbGFreV90ZXN0cyh0ZXN0c190
aGF0X29ubHlfZmFpbGVkX3NlY29uZCwgc2Vjb25kX3Jlc3VsdHNfYXJjaGl2ZSkKKyAgICAgICAg
ICAgICAgICBzZWxmLmZhaWx1cmVfc3RhdHVzX2lkID0gZmlyc3RfZmFpbHVyZV9zdGF0dXNfaWQK
IAotICAgICAgICAgICAgdGVzdHNfdGhhdF9jb25zaXN0ZW50bHlfZmFpbGVkID0gZmlyc3RfZmFp
bGluZ19yZXN1bHRzX3NldC5pbnRlcnNlY3Rpb24oc2Vjb25kX2ZhaWxpbmdfcmVzdWx0c19zZXQp
Ci0gICAgICAgICAgICBpZiB0ZXN0c190aGF0X2NvbnNpc3RlbnRseV9mYWlsZWQ6Ci0gICAgICAg
ICAgICAgICAgaWYgc2VsZi5fc2hvdWxkX2RlZmVyX3BhdGNoX29yX3Rocm93KHRlc3RzX3RoYXRf
Y29uc2lzdGVudGx5X2ZhaWxlZCwgZmlyc3RfcmVzdWx0c19hcmNoaXZlLCBmaXJzdF9zY3JpcHRf
ZXJyb3IsIGZpcnN0X2ZhaWx1cmVfc3RhdHVzX2lkKToKLSAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIEZhbHNlICAjIERlZmVyIHBhdGNoCisgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYucmVw
b3J0X2ZhaWx1cmUoZmlyc3RfcmVzdWx0c19hcmNoaXZlLCBmaXJzdF9yZXN1bHRzLCBmaXJzdF9z
Y3JpcHRfZXJyb3IpCiAKLSAgICAgICAgICAgICMgQXQgdGhpcyBwb2ludCB3ZSBrbm93IHRoYXQg
YXQgbGVhc3Qgb25lIHRlc3QgZmxha2VkLCBidXQgbm8gY29uc2lzdGVudCBmYWlsdXJlcwotICAg
ICAgICAgICAgIyB3ZXJlIGludHJvZHVjZWQuIFRoaXMgaXMgYSBiaXQgb2YgYSBncmV5LXpvbmUu
Ci0gICAgICAgICAgICByZXR1cm4gRmFsc2UgICMgRGVmZXIgcGF0Y2gKKyAgICAgICAgICAgIGlm
IHNlY29uZF9yZXN1bHRzLmRpZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xpbWl0KCk6CisgICAgICAg
ICAgICAgICAgc2VsZi5fc2hvdWxkX2RlZmVyX3BhdGNoX29yX3Rocm93KGZpcnN0X3Jlc3VsdHMu
ZmFpbGluZ190ZXN0X3Jlc3VsdHMoKSwgZmlyc3RfcmVzdWx0c19hcmNoaXZlLCBmaXJzdF9zY3Jp
cHRfZXJyb3IsIGZpcnN0X2ZhaWx1cmVfc3RhdHVzX2lkKQorICAgICAgICAgICAgICAgIHJldHVy
biBGYWxzZQogCi0gICAgICAgIGlmIHNlbGYuX3Nob3VsZF9kZWZlcl9wYXRjaF9vcl90aHJvdyhm
aXJzdF9yZXN1bHRzLmZhaWxpbmdfdGVzdF9yZXN1bHRzKCksIGZpcnN0X3Jlc3VsdHNfYXJjaGl2
ZSwgZmlyc3Rfc2NyaXB0X2Vycm9yLCBmaXJzdF9mYWlsdXJlX3N0YXR1c19pZCk6Ci0gICAgICAg
ICAgICByZXR1cm4gRmFsc2UgICMgRGVmZXIgcGF0Y2gKKyAgICAgICAgICAgIGlmIGZpcnN0X3Jl
c3VsdHMuZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQoKToKKyAgICAgICAgICAgICAgICBz
ZWxmLl9zaG91bGRfZGVmZXJfcGF0Y2hfb3JfdGhyb3coc2Vjb25kX3Jlc3VsdHMuZmFpbGluZ190
ZXN0X3Jlc3VsdHMoKSwgc2Vjb25kX3Jlc3VsdHNfYXJjaGl2ZSwgc2Vjb25kX3NjcmlwdF9lcnJv
ciwgc2Vjb25kX2ZhaWx1cmVfc3RhdHVzX2lkKQorICAgICAgICAgICAgICAgIHJldHVybiBGYWxz
ZQogCi0gICAgICAgICMgQXQgdGhpcyBwb2ludCwgd2Uga25vdyB0aGF0IHRoZSBmaXJzdCBhbmQg
c2Vjb25kIHJ1bnMgaGFkIHRoZSBleGFjdCBzYW1lIGZhaWx1cmVzLAotICAgICAgICAjIGFuZCB0
aGF0IHRob3NlIGZhaWx1cmVzIGFyZSBhbGwgcHJlc2VudCBvbiB0aGUgY2xlYW4gdHJlZSwgc28g
d2UgY2FuIHNheSB3aXRoIGNlcnRhaW50eQotICAgICAgICAjIHRoYXQgdGhlIHBhdGNoIGlzIGdv
b2QuCi0gICAgICAgIHJldHVybiBUcnVlCisgICAgICAgICAgICBpZiBzZWxmLl9yZXN1bHRzX2Zh
aWxlZF9kaWZmZXJlbnRfdGVzdHMoZmlyc3RfcmVzdWx0cywgc2Vjb25kX3Jlc3VsdHMpOgorICAg
ICAgICAgICAgICAgIGZpcnN0X2ZhaWxpbmdfcmVzdWx0c19zZXQgPSBmcm96ZW5zZXQoZmlyc3Rf
cmVzdWx0cy5mYWlsaW5nX3Rlc3RfcmVzdWx0cygpKQorICAgICAgICAgICAgICAgIHNlY29uZF9m
YWlsaW5nX3Jlc3VsdHNfc2V0ID0gZnJvemVuc2V0KHNlY29uZF9yZXN1bHRzLmZhaWxpbmdfdGVz
dF9yZXN1bHRzKCkpCisKKyAgICAgICAgICAgICAgICB0ZXN0c190aGF0X29ubHlfZmFpbGVkX2Zp
cnN0ID0gZmlyc3RfZmFpbGluZ19yZXN1bHRzX3NldC5kaWZmZXJlbmNlKHNlY29uZF9mYWlsaW5n
X3Jlc3VsdHNfc2V0KQorICAgICAgICAgICAgICAgIHNlbGYuX3JlcG9ydF9mbGFreV90ZXN0cyh0
ZXN0c190aGF0X29ubHlfZmFpbGVkX2ZpcnN0LCBmaXJzdF9yZXN1bHRzX2FyY2hpdmUpCisKKyAg
ICAgICAgICAgICAgICB0ZXN0c190aGF0X29ubHlfZmFpbGVkX3NlY29uZCA9IHNlY29uZF9mYWls
aW5nX3Jlc3VsdHNfc2V0LmRpZmZlcmVuY2UoZmlyc3RfZmFpbGluZ19yZXN1bHRzX3NldCkKKyAg
ICAgICAgICAgICAgICBzZWxmLl9yZXBvcnRfZmxha3lfdGVzdHModGVzdHNfdGhhdF9vbmx5X2Zh
aWxlZF9zZWNvbmQsIHNlY29uZF9yZXN1bHRzX2FyY2hpdmUpCisKKyAgICAgICAgICAgICAgICB0
ZXN0c190aGF0X2NvbnNpc3RlbnRseV9mYWlsZWQgPSBmaXJzdF9mYWlsaW5nX3Jlc3VsdHNfc2V0
LmludGVyc2VjdGlvbihzZWNvbmRfZmFpbGluZ19yZXN1bHRzX3NldCkKKyAgICAgICAgICAgICAg
ICBpZiB0ZXN0c190aGF0X2NvbnNpc3RlbnRseV9mYWlsZWQ6CisgICAgICAgICAgICAgICAgICAg
IGlmIHNlbGYuX3Nob3VsZF9kZWZlcl9wYXRjaF9vcl90aHJvdyh0ZXN0c190aGF0X2NvbnNpc3Rl
bnRseV9mYWlsZWQsIGZpcnN0X3Jlc3VsdHNfYXJjaGl2ZSwgZmlyc3Rfc2NyaXB0X2Vycm9yLCBm
aXJzdF9mYWlsdXJlX3N0YXR1c19pZCk6CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g
RmFsc2UgICMgRGVmZXIgcGF0Y2gKKworICAgICAgICAgICAgICAgICMgQXQgdGhpcyBwb2ludCB3
ZSBrbm93IHRoYXQgYXQgbGVhc3Qgb25lIHRlc3QgZmxha2VkLCBidXQgbm8gY29uc2lzdGVudCBm
YWlsdXJlcworICAgICAgICAgICAgICAgICMgd2VyZSBpbnRyb2R1Y2VkLiBUaGlzIGlzIGEgYml0
IG9mIGEgZ3JleS16b25lLgorICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZSAgIyBEZWZlciBw
YXRjaAorCisgICAgICAgICAgICBpZiBzZWxmLl9zaG91bGRfZGVmZXJfcGF0Y2hfb3JfdGhyb3co
Zmlyc3RfcmVzdWx0cy5mYWlsaW5nX3Rlc3RfcmVzdWx0cygpLCBmaXJzdF9yZXN1bHRzX2FyY2hp
dmUsIGZpcnN0X3NjcmlwdF9lcnJvciwgZmlyc3RfZmFpbHVyZV9zdGF0dXNfaWQpOgorICAgICAg
ICAgICAgICAgIHJldHVybiBGYWxzZSAgIyBEZWZlciBwYXRjaAorCisgICAgICAgICAgICAjIEF0
IHRoaXMgcG9pbnQsIHdlIGtub3cgdGhhdCB0aGUgZmlyc3QgYW5kIHNlY29uZCBydW5zIGhhZCB0
aGUgZXhhY3Qgc2FtZSBmYWlsdXJlcywKKyAgICAgICAgICAgICMgYW5kIHRoYXQgdGhvc2UgZmFp
bHVyZXMgYXJlIGFsbCBwcmVzZW50IG9uIHRoZSBjbGVhbiB0cmVlLCBzbyB3ZSBjYW4gc2F5IHdp
dGggY2VydGFpbnR5CisgICAgICAgICAgICAjIHRoYXQgdGhlIHBhdGNoIGlzIGdvb2QuCisgICAg
ICAgICAgICByZXR1cm4gVHJ1ZQogCiAgICAgZGVmIHJlc3VsdHNfYXJjaGl2ZV9mcm9tX3BhdGNo
X3Rlc3RfcnVuKHNlbGYsIHBhdGNoKToKICAgICAgICAgYXNzZXJ0KHNlbGYuX3BhdGNoLmlkKCkg
PT0gcGF0Y2guaWQoKSkgICMgUGF0Y2hBbmFseXNpc1Rhc2sgaXMgbm90IGN1cnJlbnRseSByZS11
c2VhYmxlLgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRz
L2Vhcmx5d2FybmluZ3N5c3RlbS5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21t
YW5kcy9lYXJseXdhcm5pbmdzeXN0ZW0ucHkKaW5kZXggOWJjMDQxODYwY2U2NzQ1NDQ1NGU0YjI1
MTQzOGE5ZGJlNTI2NDUxMy4uYWMwMjJjODljODRiNDg4NTc2MmY3NDAzYjYyYjBlYjc0MDQzMDYy
OCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Vhcmx5
d2FybmluZ3N5c3RlbS5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFu
ZHMvZWFybHl3YXJuaW5nc3lzdGVtLnB5CkBAIC0xLDQgKzEsNSBAQAogIyBDb3B5cmlnaHQgKGMp
IDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChjKSAy
MDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucyBhcmUKQEAgLTI4LDYgKzI5LDcgQEAKIAogaW1wb3J0IGpzb24KIGltcG9ydCBsb2dn
aW5nCitpbXBvcnQgb3MKIGZyb20gb3B0cGFyc2UgaW1wb3J0IG1ha2Vfb3B0aW9uCiAKIGZyb20g
d2Via2l0cHkuY29tbW9uLmNvbmZpZy5jb21taXR0ZXJzIGltcG9ydCBDb21taXR0ZXJMaXN0CkBA
IC0zNiw2ICszOCw3IEBAIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5maWxlc3lzdGVtIGlt
cG9ydCBGaWxlU3lzdGVtCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZlIGlt
cG9ydCBTY3JpcHRFcnJvcgogZnJvbSB3ZWJraXRweS50b29sLmJvdC5lYXJseXdhcm5pbmdzeXN0
ZW10YXNrIGltcG9ydCBFYXJseVdhcm5pbmdTeXN0ZW1UYXNrLCBFYXJseVdhcm5pbmdTeXN0ZW1U
YXNrRGVsZWdhdGUKIGZyb20gd2Via2l0cHkudG9vbC5ib3QubGF5b3V0dGVzdHJlc3VsdHNyZWFk
ZXIgaW1wb3J0IExheW91dFRlc3RSZXN1bHRzUmVhZGVyCitmcm9tIHdlYmtpdHB5LnRvb2wuYm90
LmpzY3Rlc3RyZXN1bHRzcmVhZGVyIGltcG9ydCBKU0NUZXN0UmVzdWx0c1JlYWRlcgogZnJvbSB3
ZWJraXRweS50b29sLmJvdC5wYXRjaGFuYWx5c2lzdGFzayBpbXBvcnQgVW5hYmxlVG9BcHBseVBh
dGNoLCBQYXRjaElzTm90VmFsaWQKIGZyb20gd2Via2l0cHkudG9vbC5ib3QucXVldWVlbmdpbmUg
aW1wb3J0IFF1ZXVlRW5naW5lCiBmcm9tIHdlYmtpdHB5LnRvb2wuY29tbWFuZHMucXVldWVzIGlt
cG9ydCBBYnN0cmFjdFJldmlld1F1ZXVlCkBAIC01Myw3ICs1NiwxMiBAQCBjbGFzcyBBYnN0cmFj
dEVhcmx5V2FybmluZ1N5c3RlbShBYnN0cmFjdFJldmlld1F1ZXVlLCBFYXJseVdhcm5pbmdTeXN0
ZW1UYXNrRGVsZQogCiAgICAgZGVmIGJlZ2luX3dvcmtfcXVldWUoc2VsZik6CiAgICAgICAgIEFi
c3RyYWN0UmV2aWV3UXVldWUuYmVnaW5fd29ya19xdWV1ZShzZWxmKQotICAgICAgICBzZWxmLl9s
YXlvdXRfdGVzdF9yZXN1bHRzX3JlYWRlciA9IExheW91dFRlc3RSZXN1bHRzUmVhZGVyKHNlbGYu
X3Rvb2wsIHNlbGYuX3BvcnQucmVzdWx0c19kaXJlY3RvcnkoKSwgc2VsZi5fbG9nX2RpcmVjdG9y
eSgpKQorCisgICAgICAgIGlmIHNlbGYuZ3JvdXAoKSA9PSAianNjIjoKKyAgICAgICAgICAgIGRp
ciA9IG9zLnBhdGguZGlybmFtZShvcy5wYXRoLmRpcm5hbWUob3MucGF0aC5kaXJuYW1lKHNlbGYu
X3BvcnQucmVzdWx0c19kaXJlY3RvcnkoKSkpKQorICAgICAgICAgICAgc2VsZi5fdGVzdF9yZXN1
bHRzX3JlYWRlciA9IEpTQ1Rlc3RSZXN1bHRzUmVhZGVyKHNlbGYuX3Rvb2wsIGRpcikKKyAgICAg
ICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYuX3Rlc3RfcmVzdWx0c19yZWFkZXIgPSBMYXlvdXRU
ZXN0UmVzdWx0c1JlYWRlcihzZWxmLl90b29sLCBzZWxmLl9wb3J0LnJlc3VsdHNfZGlyZWN0b3J5
KCksIHNlbGYuX2xvZ19kaXJlY3RvcnkoKSkKIAogICAgIGRlZiBfZmFpbGluZ190ZXN0c19tZXNz
YWdlKHNlbGYsIHRhc2ssIHBhdGNoKToKICAgICAgICAgcmVzdWx0cyA9IHRhc2sucmVzdWx0c19m
cm9tX3BhdGNoX3Rlc3RfcnVuKHBhdGNoKQpAQCAtMTE3LDE0ICsxMjUsMTcgQEAgY2xhc3MgQWJz
dHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0oQWJzdHJhY3RSZXZpZXdRdWV1ZSwgRWFybHlXYXJuaW5n
U3lzdGVtVGFza0RlbGUKICAgICAgICAgcmV0dXJuIHNlbGYuX3VwZGF0ZV9zdGF0dXMobWVzc2Fn
ZSwgcGF0Y2g9cGF0Y2gsIHJlc3VsdHNfZmlsZT1mYWlsdXJlX2xvZykKIAogICAgIGRlZiB0ZXN0
X3Jlc3VsdHMoc2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmLl9sYXlvdXRfdGVzdF9yZXN1bHRz
X3JlYWRlci5yZXN1bHRzKCkKKyAgICAgICAgcmV0dXJuIHNlbGYuX3Rlc3RfcmVzdWx0c19yZWFk
ZXIucmVzdWx0cygpCiAKICAgICBkZWYgYXJjaGl2ZV9sYXN0X3Rlc3RfcmVzdWx0cyhzZWxmLCBw
YXRjaCk6Ci0gICAgICAgIHJldHVybiBzZWxmLl9sYXlvdXRfdGVzdF9yZXN1bHRzX3JlYWRlci5h
cmNoaXZlKHBhdGNoKQorICAgICAgICByZXR1cm4gc2VsZi5fdGVzdF9yZXN1bHRzX3JlYWRlci5h
cmNoaXZlKHBhdGNoKQogCiAgICAgZGVmIGJ1aWxkX3N0eWxlKHNlbGYpOgogICAgICAgICByZXR1
cm4gc2VsZi5fYnVpbGRfc3R5bGUKIAorICAgIGRlZiBncm91cChzZWxmKToKKyAgICAgICAgcmV0
dXJuIHNlbGYuX2dyb3VwCisKICAgICBkZWYgcmVmZXRjaF9wYXRjaChzZWxmLCBwYXRjaCk6CiAg
ICAgICAgIHJldHVybiBzZWxmLl90b29sLmJ1Z3MuZmV0Y2hfYXR0YWNobWVudChwYXRjaC5pZCgp
KQogCkBAIC0xNTYsNSArMTY3LDYgQEAgY2xhc3MgQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0o
QWJzdHJhY3RSZXZpZXdRdWV1ZSwgRWFybHlXYXJuaW5nU3lzdGVtVGFza0RlbGUKICAgICAgICAg
ICAgICAgICAnX2J1aWxkX3N0eWxlJzogY29uZmlnLmdldCgnc3R5bGUnLCAicmVsZWFzZSIpLAog
ICAgICAgICAgICAgICAgICd3YXRjaGVycyc6IGNvbmZpZy5nZXQoJ3dhdGNoZXJzJywgW10pLAog
ICAgICAgICAgICAgICAgICdydW5fdGVzdHMnOiBjb25maWcuZ2V0KCdydW5UZXN0cycsIGNscy5y
dW5fdGVzdHMpLAorICAgICAgICAgICAgICAgICdfZ3JvdXAnOiBjb25maWcuZ2V0KCdncm91cCcs
IE5vbmUpLAogICAgICAgICAgICAgfSkpCiAgICAgICAgIHJldHVybiBjbGFzc2VzCmRpZmYgLS1n
aXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZWFybHl3YXJuaW5nc3lz
dGVtX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Vh
cmx5d2FybmluZ3N5c3RlbV91bml0dGVzdC5weQppbmRleCAwODg4NzgxM2NlMmU5M2E4ZWM5ZGEz
NzYzNmVjYmRlOWVmZjNjOWU3Li5jNjY3ZWZmZThjMzQ1YjU1ZjhiNmUwYzBlODVkM2E4M2Q5NDQ0
MDM5IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZWFy
bHl3YXJuaW5nc3lzdGVtX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
dG9vbC9jb21tYW5kcy9lYXJseXdhcm5pbmdzeXN0ZW1fdW5pdHRlc3QucHkKQEAgLTEsNCArMSw1
IEBACiAjIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorIyBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
IwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtNDcsNiArNDgsNyBAQCBjbGFzcyBB
YnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbVRlc3QoUXVldWVzVGVzdCk6CiAgICAgICAgIGNsYXNz
IFRlc3RFV1MoQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0pOgogICAgICAgICAgICAgcG9ydF9u
YW1lID0gIndpbiIgICMgTmVlZHMgdG8gYmUgYSBwb3J0IHdoaWNoIHBvcnQvZmFjdG9yeSB1bmRl
cnN0YW5kcy4KICAgICAgICAgICAgIF9idWlsZF9zdHlsZSA9IE5vbmUKKyAgICAgICAgICAgIF9n
cm91cCA9IE5vbmUKIAogICAgICAgICBld3MgPSBUZXN0RVdTKCkKICAgICAgICAgZXdzLmJpbmRf
dG9fdG9vbChNb2NrVG9vbCgpKQpAQCAtNjgsOSArNzAsMTAgQEAgY2xhc3MgRWFybHlXYXJuaW5n
U3lzdGVtVGVzdChRdWV1ZXNUZXN0KToKICAgICAgICAgICAgICJwb3J0IjogZXdzLnBvcnRfbmFt
ZSwKICAgICAgICAgICAgICJhcmNoaXRlY3R1cmUiOiAiIC0tYXJjaGl0ZWN0dXJlPSVzIiAlIGV3
cy5hcmNoaXRlY3R1cmUgaWYgZXdzLmFyY2hpdGVjdHVyZSBlbHNlICIiLAogICAgICAgICAgICAg
ImJ1aWxkX3N0eWxlIjogZXdzLmJ1aWxkX3N0eWxlKCksCisgICAgICAgICAgICAiZ3JvdXAiOiBl
d3MuZ3JvdXAoKSwKICAgICAgICAgfQogICAgICAgICBpZiBld3MucnVuX3Rlc3RzOgotICAgICAg
ICAgICAgcnVuX3Rlc3RzX2xpbmUgPSAiUnVubmluZzogd2Via2l0LXBhdGNoIC0tc3RhdHVzLWhv
c3Q9ZXhhbXBsZS5jb20gYnVpbGQtYW5kLXRlc3QgLS1uby1jbGVhbiAtLW5vLXVwZGF0ZSAtLXRl
c3QgLS1ub24taW50ZXJhY3RpdmUgLS1idWlsZC1zdHlsZT0lKGJ1aWxkX3N0eWxlKXMgLS1wb3J0
PSUocG9ydClzJShhcmNoaXRlY3R1cmUpc1xuIiAlIHN0cmluZ19yZXBsYWNlbWVudHMKKyAgICAg
ICAgICAgIHJ1bl90ZXN0c19saW5lID0gIlJ1bm5pbmc6IHdlYmtpdC1wYXRjaCAtLXN0YXR1cy1o
b3N0PWV4YW1wbGUuY29tIGJ1aWxkLWFuZC10ZXN0IC0tbm8tY2xlYW4gLS1uby11cGRhdGUgLS10
ZXN0IC0tbm9uLWludGVyYWN0aXZlIC0tYnVpbGQtc3R5bGU9JShidWlsZF9zdHlsZSlzIC0tZ3Jv
dXA9JShncm91cClzIC0tcG9ydD0lKHBvcnQpcyUoYXJjaGl0ZWN0dXJlKXNcbiIgJSBzdHJpbmdf
cmVwbGFjZW1lbnRzCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICBydW5fdGVzdHNfbGluZSA9
ICIiCiAgICAgICAgIHN0cmluZ19yZXBsYWNlbWVudHNbJ3J1bl90ZXN0c19saW5lJ10gPSBydW5f
dGVzdHNfbGluZQpAQCAtODEsNyArODQsNyBAQCBjbGFzcyBFYXJseVdhcm5pbmdTeXN0ZW1UZXN0
KFF1ZXVlc1Rlc3QpOgogUnVubmluZzogd2Via2l0LXBhdGNoIC0tc3RhdHVzLWhvc3Q9ZXhhbXBs
ZS5jb20gY2xlYW4gLS1wb3J0PSUocG9ydClzJShhcmNoaXRlY3R1cmUpcwogUnVubmluZzogd2Vi
a2l0LXBhdGNoIC0tc3RhdHVzLWhvc3Q9ZXhhbXBsZS5jb20gdXBkYXRlIC0tcG9ydD0lKHBvcnQp
cyUoYXJjaGl0ZWN0dXJlKXMKIFJ1bm5pbmc6IHdlYmtpdC1wYXRjaCAtLXN0YXR1cy1ob3N0PWV4
YW1wbGUuY29tIGFwcGx5LWF0dGFjaG1lbnQgLS1uby11cGRhdGUgLS1ub24taW50ZXJhY3RpdmUg
MTAwMDAgLS1wb3J0PSUocG9ydClzJShhcmNoaXRlY3R1cmUpcwotUnVubmluZzogd2Via2l0LXBh
dGNoIC0tc3RhdHVzLWhvc3Q9ZXhhbXBsZS5jb20gYnVpbGQgLS1uby1jbGVhbiAtLW5vLXVwZGF0
ZSAtLWJ1aWxkLXN0eWxlPSUoYnVpbGRfc3R5bGUpcyAtLXBvcnQ9JShwb3J0KXMlKGFyY2hpdGVj
dHVyZSlzCitSdW5uaW5nOiB3ZWJraXQtcGF0Y2ggLS1zdGF0dXMtaG9zdD1leGFtcGxlLmNvbSBi
dWlsZCAtLW5vLWNsZWFuIC0tbm8tdXBkYXRlIC0tYnVpbGQtc3R5bGU9JShidWlsZF9zdHlsZSlz
IC0tZ3JvdXA9JShncm91cClzIC0tcG9ydD0lKHBvcnQpcyUoYXJjaGl0ZWN0dXJlKXMKICUocnVu
X3Rlc3RzX2xpbmUpc01PQ0s6IHVwZGF0ZV9zdGF0dXM6ICUobmFtZSlzIFBhc3MKIE1PQ0s6IHJl
bGVhc2Vfd29ya19pdGVtOiAlKG5hbWUpcyAxMDAwMAogIiIiICUgc3RyaW5nX3JlcGxhY2VtZW50
cywKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9idWlsZC5w
eSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9idWlsZC5weQppbmRleCBmNzRm
ZmNlNzA5NDFjNjFlNTk2NzkyZTRjNjBkY2Q3ZjhiNjVlOWVjLi4zYzZjZjBiMWRlMDE4YzEzMmI3
Zjg2ZGEyY2I5MDdlMmZkYTA2N2FlIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L3Rvb2wvc3RlcHMvYnVpbGQucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0
ZXBzL2J1aWxkLnB5CkBAIC0xLDQgKzEsNSBAQAogIyBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUK
QEAgLTQxLDI4ICs0MiwzNyBAQCBjbGFzcyBCdWlsZChBYnN0cmFjdFN0ZXApOgogICAgICAgICAg
ICAgT3B0aW9ucy5idWlsZCwKICAgICAgICAgICAgIE9wdGlvbnMucXVpZXQsCiAgICAgICAgICAg
ICBPcHRpb25zLmJ1aWxkX3N0eWxlLAorICAgICAgICAgICAgT3B0aW9ucy5ncm91cCwKICAgICAg
ICAgXQogCi0gICAgZGVmIGJ1aWxkKHNlbGYsIGJ1aWxkX3N0eWxlKToKKyAgICBkZWYgYnVpbGQo
c2VsZiwgYnVpbGRfc3R5bGUsIGdyb3VwKToKICAgICAgICAgZW52aXJvbm1lbnQgPSBzZWxmLl90
b29sLmNvcHlfY3VycmVudF9lbnZpcm9ubWVudCgpCiAgICAgICAgIGVudmlyb25tZW50LmRpc2Fi
bGVfZ2NjX3NtYXJ0cXVvdGVzKCkKICAgICAgICAgZW52aXJvbm1lbnQuZGlzYWJsZV9qaGJ1aWxk
X1ZUMTAwX291dHB1dCgpCiAgICAgICAgIGVudiA9IGVudmlyb25tZW50LnRvX2RpY3Rpb25hcnko
KQogCi0gICAgICAgIGJ1aWxkX3dlYmtpdF9jb21tYW5kID0gc2VsZi5fdG9vbC5kZXByZWNhdGVk
X3BvcnQoKS5idWlsZF93ZWJraXRfY29tbWFuZChidWlsZF9zdHlsZT1idWlsZF9zdHlsZSkKKyAg
ICAgICAgaWYgZ3JvdXAgPT0gImpzYyI6CisgICAgICAgICAgICBidWlsZF9jb21tYW5kID0gc2Vs
Zi5fdG9vbC5kZXByZWNhdGVkX3BvcnQoKS5idWlsZF9qc2NfY29tbWFuZChidWlsZF9zdHlsZT1i
dWlsZF9zdHlsZSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGJ1aWxkX2NvbW1hbmQgPSBz
ZWxmLl90b29sLmRlcHJlY2F0ZWRfcG9ydCgpLmJ1aWxkX3dlYmtpdF9jb21tYW5kKGJ1aWxkX3N0
eWxlPWJ1aWxkX3N0eWxlKQogCiAgICAgICAgIGlmIHNlbGYuX29wdGlvbnMuYXJjaGl0ZWN0dXJl
OgotICAgICAgICAgICAgYnVpbGRfd2Via2l0X2NvbW1hbmQgKz0gWydBUkNIUz0lcycgJSBzZWxm
Ll9vcHRpb25zLmFyY2hpdGVjdHVyZV0KKyAgICAgICAgICAgIGJ1aWxkX2NvbW1hbmQgKz0gWydB
UkNIUz0lcycgJSBzZWxmLl9vcHRpb25zLmFyY2hpdGVjdHVyZV0KIAotICAgICAgICBzZWxmLl90
b29sLmV4ZWN1dGl2ZS5ydW5fYW5kX3Rocm93X2lmX2ZhaWwoYnVpbGRfd2Via2l0X2NvbW1hbmQs
IHNlbGYuX29wdGlvbnMucXVpZXQsCisgICAgICAgIHNlbGYuX3Rvb2wuZXhlY3V0aXZlLnJ1bl9h
bmRfdGhyb3dfaWZfZmFpbChidWlsZF9jb21tYW5kLCBzZWxmLl9vcHRpb25zLnF1aWV0LAogICAg
ICAgICAgICAgY3dkPXNlbGYuX3Rvb2wuc2NtKCkuY2hlY2tvdXRfcm9vdCwgZW52PWVudikKIAog
ICAgIGRlZiBydW4oc2VsZiwgc3RhdGUpOgogICAgICAgICBpZiBub3Qgc2VsZi5fb3B0aW9ucy5i
dWlsZDoKICAgICAgICAgICAgIHJldHVybgogICAgICAgICBfbG9nLmluZm8oIkJ1aWxkaW5nIFdl
YktpdCIpCisKKyAgICAgICAgZ3JvdXAgPSBOb25lCisgICAgICAgIGlmIGhhc2F0dHIoc2VsZi5f
b3B0aW9ucywgJ2dyb3VwJyk6CisgICAgICAgICAgICBncm91cCA9IHNlbGYuX29wdGlvbnMuZ3Jv
dXAKKwogICAgICAgICBpZiBzZWxmLl9vcHRpb25zLmJ1aWxkX3N0eWxlID09ICJib3RoIjoKLSAg
ICAgICAgICAgIHNlbGYuYnVpbGQoImRlYnVnIikKLSAgICAgICAgICAgIHNlbGYuYnVpbGQoInJl
bGVhc2UiKQorICAgICAgICAgICAgc2VsZi5idWlsZCgiZGVidWciLCBncm91cCkKKyAgICAgICAg
ICAgIHNlbGYuYnVpbGQoInJlbGVhc2UiLCBncm91cCkKICAgICAgICAgZWxzZToKLSAgICAgICAg
ICAgIHNlbGYuYnVpbGQoc2VsZi5fb3B0aW9ucy5idWlsZF9zdHlsZSkKKyAgICAgICAgICAgIHNl
bGYuYnVpbGQoc2VsZi5fb3B0aW9ucy5idWlsZF9zdHlsZSwgZ3JvdXApCmRpZmYgLS1naXQgYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvb3B0aW9ucy5weSBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvdG9vbC9zdGVwcy9vcHRpb25zLnB5CmluZGV4IDNlZjQ3ZDAwOGE1OWUwNTBk
NGNhMGM0ODc3ZGRkMWE2MDczMWE0MDkuLmY1ZTBkZWYzMjcxN2UzMDZlNjMxNjk4NDExMTBiMjg5
OGI3MmExZjEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9v
cHRpb25zLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9vcHRpb25z
LnB5CkBAIC0xLDQgKzEsNSBAQAogIyBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTQ2LDYg
KzQ3LDcgQEAgY2xhc3MgT3B0aW9ucyhvYmplY3QpOgogICAgIGVtYWlsID0gbWFrZV9vcHRpb24o
Ii0tZW1haWwiLCBhY3Rpb249InN0b3JlIiwgdHlwZT0ic3RyaW5nIiwgZGVzdD0iZW1haWwiLCBo
ZWxwPSJFbWFpbCBhZGRyZXNzIHRvIHVzZSBpbiBDaGFuZ2VMb2dzLiIpCiAgICAgZm9yY2VfY2xl
YW4gPSBtYWtlX29wdGlvbigiLS1mb3JjZS1jbGVhbiIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGRl
c3Q9ImZvcmNlX2NsZWFuIiwgZGVmYXVsdD1GYWxzZSwgaGVscD0iQ2xlYW4gd29ya2luZyBkaXJl
Y3RvcnkgYmVmb3JlIGFwcGx5aW5nIHBhdGNoZXMgKHJlbW92ZXMgbG9jYWwgY2hhbmdlcyBhbmQg
Y29tbWl0cykiKQogICAgIGdpdF9jb21taXQgPSBtYWtlX29wdGlvbigiLWciLCAiLS1naXQtY29t
bWl0IiwgYWN0aW9uPSJzdG9yZSIsIGRlc3Q9ImdpdF9jb21taXQiLCBoZWxwPSJPcGVyYXRlIG9u
IGEgbG9jYWwgY29tbWl0LiBJZiBhIHJhbmdlLCB0aGUgY29tbWl0cyBhcmUgc3F1YXNoZWQgaW50
byBvbmUuIDxyZWY+Li4uLiBpbmNsdWRlcyB0aGUgd29ya2luZyBjb3B5IGNoYW5nZXMuIFVQU1RS
RUFNIGNhbiBiZSB1c2VkIGZvciB0aGUgdXBzdHJlYW0vdHJhY2tpbmcgYnJhbmNoLiIpCisgICAg
Z3JvdXAgPSBtYWtlX29wdGlvbigiLS1ncm91cCIsIGFjdGlvbj0ic3RvcmUiLCBkZXN0PSJncm91
cCIsIGRlZmF1bHQ9Tm9uZSwgaGVscD0iIikKICAgICBsb2NhbF9jb21taXQgPSBtYWtlX29wdGlv
bigiLS1sb2NhbC1jb21taXQiLCBhY3Rpb249InN0b3JlX3RydWUiLCBkZXN0PSJsb2NhbF9jb21t
aXQiLCBkZWZhdWx0PUZhbHNlLCBoZWxwPSJNYWtlIGEgbG9jYWwgY29tbWl0IGZvciBlYWNoIGFw
cGxpZWQgcGF0Y2giKQogICAgIG5vbl9pbnRlcmFjdGl2ZSA9IG1ha2Vfb3B0aW9uKCItLW5vbi1p
bnRlcmFjdGl2ZSIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGRlc3Q9Im5vbl9pbnRlcmFjdGl2ZSIs
IGRlZmF1bHQ9RmFsc2UsIGhlbHA9Ik5ldmVyIHByb21wdCB0aGUgdXNlciwgZmFpbCBhcyBmYXN0
IGFzIHBvc3NpYmxlLiIpCiAgICAgb2Jzb2xldGVfcGF0Y2hlcyA9IG1ha2Vfb3B0aW9uKCItLW5v
LW9ic29sZXRlIiwgYWN0aW9uPSJzdG9yZV9mYWxzZSIsIGRlc3Q9Im9ic29sZXRlX3BhdGNoZXMi
LCBkZWZhdWx0PVRydWUsIGhlbHA9IkRvIG5vdCBvYnNvbGV0ZSBvbGQgcGF0Y2hlcyBiZWZvcmUg
cG9zdGluZyB0aGlzIG9uZS4iKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90
b29sL3N0ZXBzL3J1bnRlc3RzLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBz
L3J1bnRlc3RzLnB5CmluZGV4IDc1ZDcyYmM5YWQyZjRlMzZkNDVmZGFjOTBmMTgxOTQ4MWNmMDI4
OGIuLjVhN2YyYTk4YTNmYmIyNGVjYjAzZjYxYzZiNjBmNjUwNDJkOTcxYTQgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9ydW50ZXN0cy5weQorKysgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvcnVudGVzdHMucHkKQEAgLTEsNCArMSw1IEBA
CiAjIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
IyBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwog
IyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtNTMsNiArNTQsNyBAQCBjbGFzcyBSdW5U
ZXN0cyhBYnN0cmFjdFN0ZXApOgogICAgICAgICAgICAgT3B0aW9ucy5pdGVyYXRlX29uX25ld190
ZXN0cywKICAgICAgICAgICAgIE9wdGlvbnMubm9uX2ludGVyYWN0aXZlLAogICAgICAgICAgICAg
T3B0aW9ucy5xdWlldCwKKyAgICAgICAgICAgIE9wdGlvbnMuZ3JvdXAsCiAgICAgICAgIF0KIAog
ICAgIGRlZiBydW4oc2VsZiwgc3RhdGUpOgpAQCAtNjMsNiArNjUsMTAgQEAgY2xhc3MgUnVuVGVz
dHMoQWJzdHJhY3RTdGVwKToKICAgICAgICAgaWYgbm90IHNlbGYuX29wdGlvbnMudGVzdDoKICAg
ICAgICAgICAgIHJldHVybgogCisgICAgICAgIGlmIGhhc2F0dHIoc2VsZi5fb3B0aW9ucywgImdy
b3VwIikgYW5kIHNlbGYuX29wdGlvbnMuZ3JvdXAgPT0gImpzYyI6CisgICAgICAgICAgICBzZWxm
Ll9ydW5famF2YXNjcmlwdGNvcmVfdGVzdHMoKQorICAgICAgICAgICAgcmV0dXJuCisKICAgICAg
ICAgcHl0aG9uX3VuaXR0ZXN0c19jb21tYW5kID0gc2VsZi5fdG9vbC5kZXByZWNhdGVkX3BvcnQo
KS5ydW5fcHl0aG9uX3VuaXR0ZXN0c19jb21tYW5kKCkKICAgICAgICAgaWYgcHl0aG9uX3VuaXR0
ZXN0c19jb21tYW5kOgogICAgICAgICAgICAgX2xvZy5pbmZvKCJSdW5uaW5nIFB5dGhvbiB1bml0
IHRlc3RzIikKQEAgLTE0MywzICsxNDksNyBAQCBjbGFzcyBSdW5UZXN0cyhBYnN0cmFjdFN0ZXAp
OgogICAgICAgICAgICAgYXJncy5hcHBlbmQoIi0taXRlcmF0aW9ucz0lZCIgJSBpdGVyYXRlX29u
X25ld190ZXN0cykKIAogICAgICAgICBzZWxmLl90b29sLmV4ZWN1dGl2ZS5ydW5fYW5kX3Rocm93
X2lmX2ZhaWwoYXJncywgY3dkPXNlbGYuX3Rvb2wuc2NtKCkuY2hlY2tvdXRfcm9vdCkKKworICAg
IGRlZiBfcnVuX2phdmFzY3JpcHRjb3JlX3Rlc3RzKHNlbGYpOgorICAgICAgICBhcmdzID0gc2Vs
Zi5fdG9vbC5kZXByZWNhdGVkX3BvcnQoKS5ydW5famF2YXNjcmlwdGNvcmVfdGVzdHNfY29tbWFu
ZChzZWxmLl9vcHRpb25zLmJ1aWxkX3N0eWxlKQorICAgICAgICBzZWxmLl90b29sLmV4ZWN1dGl2
ZS5ydW5fYW5kX3Rocm93X2lmX2ZhaWwoYXJncywgY3dkPXNlbGYuX3Rvb2wuc2NtKCkuY2hlY2tv
dXRfcm9vdCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9z
dGVwc191bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9zdGVw
c191bml0dGVzdC5weQppbmRleCA3ZDk0YTEzYjM0NjNkOThhNDRmOTQ5ZjgxNGNjNzEyMWMwNjhh
YjVkLi5kZmFhYTlkZTVkYjI0YTJjNmM4MDY3ODQwZWU1MjYxOGRjNzc5NGVhIDEwMDY0NAotLS0g
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvc3RlcHNfdW5pdHRlc3QucHkKKysr
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3N0ZXBzX3VuaXR0ZXN0LnB5CkBA
IC0xLDQgKzEsNSBAQAogIyBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTk4LDYgKzk5LDcg
QEAgY2xhc3MgU3RlcHNUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgc2VsZi5fYXNz
ZXJ0X3N0ZXBfb3V0cHV0X3dpdGhfYnVnKHN0ZXBzLkVuc3VyZUJ1Z0lzT3BlbkFuZEFzc2lnbmVk
LCA1MDAwMiwgZXhwZWN0ZWRfbG9ncykKIAogICAgIGRlZiB0ZXN0X3J1bnRlc3RzX2FyZ3Moc2Vs
Zik6CisgICAgICAgIHNlbGYubWF4RGlmZiA9IE5vbmUKICAgICAgICAgbW9ja19vcHRpb25zID0g
c2VsZi5fc3RlcF9vcHRpb25zKCkKICAgICAgICAgbW9ja19vcHRpb25zLm5vbl9pbnRlcmFjdGl2
ZSA9IEZhbHNlCiAgICAgICAgIG1vY2tfb3B0aW9ucy5idWlsZF9zdHlsZSA9ICJyZWxlYXNlIgpA
QCAtMTExLDcgKzExMyw3IEBAIE1PQ0sgcnVuX2FuZF90aHJvd19pZl9mYWlsOiBbJ1Rvb2xzL1Nj
cmlwdHMvdGVzdC13ZWJraXRweSddLCBjd2Q9L21vY2stY2hlY2tvdXQKIFJ1bm5pbmcgUGVybCB1
bml0IHRlc3RzCiBNT0NLIHJ1bl9hbmRfdGhyb3dfaWZfZmFpbDogWydUb29scy9TY3JpcHRzL3Rl
c3Qtd2Via2l0cGVybCddLCBjd2Q9L21vY2stY2hlY2tvdXQKIFJ1bm5pbmcgSmF2YVNjcmlwdENv
cmUgdGVzdHMKLU1PQ0sgcnVuX2FuZF90aHJvd19pZl9mYWlsOiBbJ1Rvb2xzL1NjcmlwdHMvcnVu
LWphdmFzY3JpcHRjb3JlLXRlc3RzJ10sIGN3ZD0vbW9jay1jaGVja291dAorTU9DSyBydW5fYW5k
X3Rocm93X2lmX2ZhaWw6IFsnVG9vbHMvU2NyaXB0cy9ydW4tamF2YXNjcmlwdGNvcmUtdGVzdHMn
LCAnLS1uby1mYWlsLWZhc3QnLCAnLS1qc29uLW91dHB1dD1qc2NfdGVzdF9yZXN1bHRzLmpzb24n
XSwgY3dkPS9tb2NrLWNoZWNrb3V0CiBSdW5uaW5nIGJpbmRpbmdzIGdlbmVyYXRpb24gdGVzdHMK
IE1PQ0sgcnVuX2FuZF90aHJvd19pZl9mYWlsOiBbJ1Rvb2xzL1NjcmlwdHMvcnVuLWJpbmRpbmdz
LXRlc3RzJ10sIGN3ZD0vbW9jay1jaGVja291dAogUnVubmluZyBydW4td2Via2l0LXRlc3RzCkBA
IC0xMjAsNiArMTIyLDcgQEAgTU9DSyBydW5fYW5kX3Rocm93X2lmX2ZhaWw6IFsnVG9vbHMvU2Ny
aXB0cy9ydW4td2Via2l0LXRlc3RzJywgJy0tcmVsZWFzZScsICctLXEKICAgICAgICAgT3V0cHV0
Q2FwdHVyZSgpLmFzc2VydF9vdXRwdXRzKHNlbGYsIHN0ZXAucnVuLCBbe31dLCBleHBlY3RlZF9s
b2dzPWV4cGVjdGVkX2xvZ3MpCiAKICAgICBkZWYgdGVzdF9ydW50ZXN0c19kZWJ1Z19hcmdzKHNl
bGYpOgorICAgICAgICBzZWxmLm1heERpZmYgPSBOb25lCiAgICAgICAgIG1vY2tfb3B0aW9ucyA9
IHNlbGYuX3N0ZXBfb3B0aW9ucygpCiAgICAgICAgIG1vY2tfb3B0aW9ucy5ub25faW50ZXJhY3Rp
dmUgPSBGYWxzZQogICAgICAgICBtb2NrX29wdGlvbnMuYnVpbGRfc3R5bGUgPSAiZGVidWciCkBA
IC0xMzMsNyArMTM2LDcgQEAgTU9DSyBydW5fYW5kX3Rocm93X2lmX2ZhaWw6IFsnVG9vbHMvU2Ny
aXB0cy90ZXN0LXdlYmtpdHB5J10sIGN3ZD0vbW9jay1jaGVja291dAogUnVubmluZyBQZXJsIHVu
aXQgdGVzdHMKIE1PQ0sgcnVuX2FuZF90aHJvd19pZl9mYWlsOiBbJ1Rvb2xzL1NjcmlwdHMvdGVz
dC13ZWJraXRwZXJsJ10sIGN3ZD0vbW9jay1jaGVja291dAogUnVubmluZyBKYXZhU2NyaXB0Q29y
ZSB0ZXN0cwotTU9DSyBydW5fYW5kX3Rocm93X2lmX2ZhaWw6IFsnVG9vbHMvU2NyaXB0cy9ydW4t
amF2YXNjcmlwdGNvcmUtdGVzdHMnXSwgY3dkPS9tb2NrLWNoZWNrb3V0CitNT0NLIHJ1bl9hbmRf
dGhyb3dfaWZfZmFpbDogWydUb29scy9TY3JpcHRzL3J1bi1qYXZhc2NyaXB0Y29yZS10ZXN0cycs
ICctLW5vLWZhaWwtZmFzdCcsICctLWpzb24tb3V0cHV0PWpzY190ZXN0X3Jlc3VsdHMuanNvbidd
LCBjd2Q9L21vY2stY2hlY2tvdXQKIFJ1bm5pbmcgYmluZGluZ3MgZ2VuZXJhdGlvbiB0ZXN0cwog
TU9DSyBydW5fYW5kX3Rocm93X2lmX2ZhaWw6IFsnVG9vbHMvU2NyaXB0cy9ydW4tYmluZGluZ3Mt
dGVzdHMnXSwgY3dkPS9tb2NrLWNoZWNrb3V0CiBSdW5uaW5nIHJ1bi13ZWJraXQtdGVzdHMK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>298807</attachid>
            <date>2017-01-13 16:35:26 -0800</date>
            <delta_ts>2017-01-30 18:21:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-162458-20170113163343.patch</filename>
            <type>text/plain</type>
            <size>53889</size>
            <attacher name="Srinivasan Vijayaraghavan">webkit</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA2Mzc3CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOWI3NTZhN2Y2MTZlMzQ0YjFhYmFjNjFkZmVkMmExZWI4
NmY3ZTQ0ZC4uYTE2ZTUyNmY5YWU0NmM2YTcwYzYyYzgxNThhMWU1NDUyZjA4MTI1YyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg1
IEBACisyMDE3LTAxLTEzICBTcmluaXZhc2FuIFZpamF5YXJhZ2hhdmFuICA8c3ZpamF5YXJhZ2hh
dmFuQGFwcGxlLmNvbT4KKworICAgICAgICBFV1Mgc2hvdWxkIHJ1biBKYXZhU2NyaXB0Q29yZSB0
ZXN0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYy
NDU4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvZXdzLmpzb246IEFkZCBjb25maWcgaW5mbyBm
b3IgSlNDIEVXUy4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvcG9y
dHMucHk6IEFkZCBzdXBwb3J0IGZvciBKU0MgRVdTIGluIE1hYyBQb3J0LgorICAgICAgICAoRGVw
cmVjYXRlZFBvcnQuYnVpbGRfanNjX2NvbW1hbmQpOiBBZGRlZCAtIGNvbW1hbmQgdG8gYnVpbGQg
SlNDIG9ubHkgKHF1aWNrZXIgdGhhbiBidWlsZGluZyBhbGwgb2YgV2ViS2l0KS4KKyAgICAgICAg
KERlcHJlY2F0ZWRQb3J0LnJ1bl9qYXZhc2NyaXB0Y29yZV90ZXN0c19jb21tYW5kKTogQWxsb3cg
SlNDIEVXUyB0byBvbmx5IHJ1biBKU0MgdGVzdHMuCisgICAgICAgIChNYWNQb3J0LnJ1bl93ZWJr
aXRfdGVzdHNfY29tbWFuZCk6IENoZWNrIGZvciBKU0MuCisgICAgICAgICogU2NyaXB0cy93ZWJr
aXRweS9jb21tb24vbmV0L2pzY3Rlc3RyZXN1bHRzLnB5OiBBZGRlZC4KKyAgICAgICAgKEpTQ1Rl
c3RSZXN1bHRzKToKKyAgICAgICAgKEpTQ1Rlc3RSZXN1bHRzLnJlc3VsdHNfZnJvbV9zdHJpbmcp
OiBVc2UganNvbiBsaWJyYXJ5IHRvIHBhcnNlIHJlc3VsdHMuCisgICAgICAgIChKU0NUZXN0UmVz
dWx0cy5fX2luaXRfXyk6IEluaXRpYWxpemUgbWVtYmVycy4KKyAgICAgICAgKEpTQ1Rlc3RSZXN1
bHRzLmVxdWFscyk6IFRoaXMgZW5hYmxlcyB1bml0IHRlc3RpbmcuCisgICAgICAgIChKU0NUZXN0
UmVzdWx0cy5pc19zdWJzZXQpOiBDaGVja3MgaWYgb25lIHNldCBvZiBmYWlsdXJlcyBpcyBhIHN1
YnNldCBvZiBhbm90aGVyLgorICAgICAgICAoSlNDVGVzdFJlc3VsdHMuc3RyZXNzX3Rlc3RfZmFp
bHVyZXMpOiBHZXR0ZXIuCisgICAgICAgIChKU0NUZXN0UmVzdWx0cy5hbGxfYXBpX3Rlc3RzX3Bh
c3NlZCk6IEdldHRlci4KKyAgICAgICAgKEpTQ1Rlc3RSZXN1bHRzLmFsbF9wYXNzZWQpOiBHZXR0
ZXIuCisgICAgICAgIChKU0NUZXN0UmVzdWx0cy5mYWlsaW5nX3Rlc3RfcmVzdWx0cyk6IEdldHRl
ci4gU29tZSBvZiB0aGVzZSBleGlzdCBmb3IgaW50ZXJvcGFiaWxpdHkgcmVhc29ucy4KKyAgICAg
ICAgKEpTQ1Rlc3RSZXN1bHRzLnRlc3RfcmVzdWx0cyk6IEdldHRlci4KKyAgICAgICAgKEpTQ1Rl
c3RSZXN1bHRzLmZhaWxpbmdfdGVzdHMpOiBHZXR0ZXIuCisgICAgICAgIChKU0NUZXN0UmVzdWx0
cy5kaWRfZXhjZWVkX3Rlc3RfZmFpbHVyZV9saW1pdCk6IEdldHRlci4KKyAgICAgICAgKiBTY3Jp
cHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvanNjdGVzdHJlc3VsdHNfdW5pdHRlc3QucHk6IEFkZGVk
LgorICAgICAgICAoSlNDVGVzdFJlc3VsdHNUZXN0KTogQ2xhc3MgdG8gdGVzdCBKU0NUZXN0UmVz
dWx0cy4KKyAgICAgICAgKEpTQ1Rlc3RSZXN1bHRzVGVzdC50ZXN0X3Jlc3VsdHNfZnJvbV9zdHJp
bmcpOiBUZXN0cyBwYXJzaW5nLgorICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9q
c2Nld3NfdW5pdHRlc3QucHk6IEFkZGVkLgorICAgICAgICAoTW9ja1BhdGNoQW5hbHlzaXNUYXNr
KTogTW9ja2VkLW91dCB2ZXJzaW9uIG9mIFBhdGNoQW5hbHlzaXNUYXNrIHRoYXQgZG9lc24ndCBy
dW4gY29tbWFuZHMuCisgICAgICAgIChNb2NrUGF0Y2hBbmFseXNpc1Rhc2suX19pbml0X18pOiBT
ZXRzIGF0dHJpYnV0ZXMuCisgICAgICAgIChNb2NrUGF0Y2hBbmFseXNpc1Rhc2suX3Rlc3QpOiBP
dmVycmlkZSB0byBub3QgcnVuIGNvbW1hbmQuCisgICAgICAgIChNb2NrUGF0Y2hBbmFseXNpc1Rh
c2suX2J1aWxkX2FuZF90ZXN0X3dpdGhvdXRfcGF0Y2gpOiBPdmVycmlkZSB0byBub3QgcnVuIGNv
bW1hbmQuCisgICAgICAgIChNb2NrUGF0Y2hBbmFseXNpc1Rhc2sudmFsaWRhdGUpOiBBc3N1bWUg
bW9ja2VkIHBhdGNoIGlzIHZhbGlkIGZvciBwdXJwb3NlcyBvZiB0ZXN0aW5nIHJldHJ5IGxvZ2lj
LgorICAgICAgICAoTW9ja1BhdGNoQW5hbHlzaXNUYXNrLnRlc3RfcnVuX2NvdW50KTogU3BlY2lm
aWMgdG8gdGhlIG1vY2tlZCB2ZXJzaW9uLCB0byB0ZXN0IHJldHJ5IGxvZ2ljLgorICAgICAgICAo
TW9ja0pTQ0Vhcmx5V2FybmluZ1N5c3RlbSk6IE1vY2tlZC1vdXQgdmVyc2lvbiBvZiBBYnN0YXJj
dEVhcmx5V2FybmluZ1N5c3RlbSBzbyB3ZSBjYW4gcHJvdmlkZSB0ZXN0IHJlc3VsdHMuCisgICAg
ICAgIChNb2NrSlNDRWFybHlXYXJuaW5nU3lzdGVtLl9faW5pdF9fKTogU2V0cyBhdHRyaWJ1dGVz
LCBhbHNvIHNldHMgZ3JvdXAgdG8ganNjLgorICAgICAgICAoTW9ja0pTQ0Vhcmx5V2FybmluZ1N5
c3RlbS50ZXN0X3Jlc3VsdHMpOiBSZXR1cm5zIHRlc3QgcmVzdWx0cyBwcm92aWRlZCBieSB1cywg
aW5zdGVhZCBvZiB1c2luZyBhIEpTT04gcmVhZGVyLgorICAgICAgICAoSlNDRWFybHlXYXJuaW5n
U3lzdGVtVGVzdCk6IENsYXNzIHRvIHRlc3QgcmV0cnkgbG9naWMgaW4gYmVsb3cgc2l0dWF0aW9u
cy4KKyAgICAgICAgKEpTQ0Vhcmx5V2FybmluZ1N5c3RlbVRlc3QuX2NyZWF0ZV90YXNrKTogSGVs
cGVyIGZ1bmN0aW9uIHRvIGFic3RyYWN0IG91dCBjb21tb24gY29kZS4KKyAgICAgICAgKEpTQ0Vh
cmx5V2FybmluZ1N5c3RlbVRlc3QudGVzdF9zdWNjZXNzX2Nhc2UpOiBDbGVhbiBwYXRjaCBvbiBj
bGVhbiB0cmVlLgorICAgICAgICAoSlNDRWFybHlXYXJuaW5nU3lzdGVtVGVzdC50ZXN0X3Rlc3Rf
ZmFpbHVyZSk6IEZhaWxlZCBwYXRjaCBvbiBjbGVhbiB0cmVlLgorICAgICAgICAoSlNDRWFybHlX
YXJuaW5nU3lzdGVtVGVzdC50ZXN0X2ZpeCk6IFBhdGNoIHRoYXQgZml4ZXMgYWxsIHRyZWUgcmVk
bmVzcy4KKyAgICAgICAgKEpTQ0Vhcmx5V2FybmluZ1N5c3RlbVRlc3QudGVzdF9pbmVmZmVjdGl2
ZV9wYXRjaCk6IFBhdGNoIHRoYXQgaGFzIHNhbWUgZmFpbHVyZXMgYXMgdHJlZS4KKyAgICAgICAg
KEpTQ0Vhcmx5V2FybmluZ1N5c3RlbVRlc3QudGVzdF9wYXJ0aWFsbHlfZWZmZWN0aXZlX3BhdGNo
KTogUGF0Y2ggZml4ZXMgc29tZSBmYWlsdXJlcyBidXQgYWRkcyBubyBuZXcgZmFpbHVyZXMuCisg
ICAgICAgIChKU0NFYXJseVdhcm5pbmdTeXN0ZW1UZXN0LnRlc3RfZGlmZmVyZW50X3Rlc3RfZmFp
bHVyZXMpOiBQYXRjaCB0aGF0IGhhcyBzb21lIGZhaWx1cmVzIG5vdCBwcmVzZW50IGluIHRyZWUu
CisgICAgICAgIChKU0NFYXJseVdhcm5pbmdTeXN0ZW1UZXN0LnRlc3RfZmlyc3RfcmVzdWx0c19j
b3VsZF9ub3RfYmVfcmVhZCk6IFJlc3VsdHMganNvbiBmaWxlIGZyb20gcGF0Y2ggY291bGQgbm90
IGJlIHJlYWQuCisgICAgICAgIChKU0NFYXJseVdhcm5pbmdTeXN0ZW1UZXN0LnRlc3RfY2xlYW5f
cmVzdWx0c19jb3VsZF9ub3RfYmVfcmVhZCk6IFJlc3VsdHMganNvbiBmaWxlIGZyb20gY2xlYW4g
dHJlZSBjb3VsZCBub3QgYmUgcmVhZC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wv
Ym90L2pzY3Rlc3RyZXN1bHRzcmVhZGVyLnB5OiBBZGRlZC4KKyAgICAgICAgKEpTQ1Rlc3RSZXN1
bHRzUmVhZGVyKTogUmVhZHMgcmVzdWx0cyBmaWxlLgorICAgICAgICAoSlNDVGVzdFJlc3VsdHNS
ZWFkZXIuX19pbml0X18pOiBTZXRzIGF0dHJpYnV0ZXMuCisgICAgICAgIChKU0NUZXN0UmVzdWx0
c1JlYWRlci5fcmVhZF9maWxlX2NvbnRlbnRzKTogUmVhZHMgZmlsZS4KKyAgICAgICAgKEpTQ1Rl
c3RSZXN1bHRzUmVhZGVyLl9jcmVhdGVfanNjX3Rlc3RfcmVzdWx0cyk6IENyZWF0ZXMgYSBKU0NU
ZXN0UmVzdWx0cyBvYmplY3QuCisgICAgICAgIChKU0NUZXN0UmVzdWx0c1JlYWRlci5yZXN1bHRz
KTogSW52b2tlcyBfY3JlYXRlX2pzY190ZXN0X3Jlc3VsdHMgdG8gcmV0dXJuIGEgSlNDVGVzdFJl
c3VsdHMgb2JqZWN0LgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvcGF0Y2hh
bmFseXNpc3Rhc2sucHk6CisgICAgICAgIChQYXRjaEFuYWx5c2lzVGFzay5fYnVpbGQpOiBDaGVj
ayBmb3IgSlNDLgorICAgICAgICAoUGF0Y2hBbmFseXNpc1Rhc2suX2J1aWxkX3dpdGhvdXRfcGF0
Y2gpOiBDaGVjayBmb3IgSlNDLgorICAgICAgICAoUGF0Y2hBbmFseXNpc1Rhc2suX3Rlc3QpOiBD
aGVjayBmb3IgSlNDLgorICAgICAgICAoUGF0Y2hBbmFseXNpc1Rhc2suX2J1aWxkX2FuZF90ZXN0
X3dpdGhvdXRfcGF0Y2gpOiBDaGVjayBmb3IgSlNDLgorICAgICAgICAoUGF0Y2hBbmFseXNpc1Rh
c2suX3Rlc3RfcGF0Y2gpOiBBZGQgcmV0cnkgbG9naWMgZm9yIEpTQy4KKyAgICAgICAgKiBTY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZWFybHl3YXJuaW5nc3lzdGVtLnB5OgorICAgICAg
ICAoQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0uYmVnaW5fd29ya19xdWV1ZSk6IFVzZSBKU0NU
ZXN0UmVzdWx0c1JlYWRlciBpbnN0ZWFkIG9mIExheW91dFRlc3RSZXN1bHRzUmVhZGVyIGluIEpT
QyBFV1MuCisgICAgICAgIChBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbS50ZXN0X3Jlc3VsdHMp
OiBfbGF5b3V0X3Rlc3RfcmVzdWx0c19yZWFkZXIgLT4gX3Rlc3RfcmVzdWx0c19yZWFkZXIuCisg
ICAgICAgIChBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbS5hcmNoaXZlX2xhc3RfdGVzdF9yZXN1
bHRzKTogX2xheW91dF90ZXN0X3Jlc3VsdHNfcmVhZGVyIC0+IF90ZXN0X3Jlc3VsdHNfcmVhZGVy
LgorICAgICAgICAoQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0uZ3JvdXApOiBUaGlzIGF0dHJp
YnV0ZSBkZXRlcm1pbmVzIHRoZSB0eXBlIG9mIEVXUyAoZWcuIEpTQykuCisgICAgICAgIChBYnN0
cmFjdEVhcmx5V2FybmluZ1N5c3RlbS5sb2FkX2V3c19jbGFzc2VzKTogQWRkIF9ncm91cC4KKyAg
ICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZWFybHl3YXJuaW5nc3lzdGVt
X3VuaXR0ZXN0LnB5OgorICAgICAgICAoRWFybHlXYXJuaW5nU3lzdGVtVGVzdC5fZGVmYXVsdF9l
eHBlY3RlZF9sb2dzKTogQWRkIF9ncm91cC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rv
b2wvc3RlcHMvYnVpbGQucHk6CisgICAgICAgIChCdWlsZC5vcHRpb25zKTogQ2hlY2sgZm9yIEpT
Qy4KKyAgICAgICAgKEJ1aWxkLmJ1aWxkKTogQ2hlY2sgZm9yIEpTQy4KKyAgICAgICAgKEJ1aWxk
LnJ1bik6IENoZWNrIGZvciBKU0MuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL3N0
ZXBzL29wdGlvbnMucHk6CisgICAgICAgIChPcHRpb25zKTogQWRkIC0tZ3JvdXAgY29tbWFuZCBs
aW5lIG9wdGlvbi4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvcnVudGVz
dHMucHk6CisgICAgICAgIChSdW5UZXN0cy5vcHRpb25zKTogQWRkIGdyb3VwLgorICAgICAgICAo
UnVuVGVzdHMucnVuKTogQ2hlY2sgZm9yIEpTQy4KKyAgICAgICAgKFJ1blRlc3RzLl9ydW5fd2Vi
a2l0X3Rlc3RzKTogQ2hlY2sgZm9yIEpTQy4KKyAgICAgICAgKFJ1blRlc3RzKTogQWRkIF9ncm91
cCBhdHRyaWJ1dGUuCisgICAgICAgIChSdW5UZXN0cy5fcnVuX2phdmFzY3JpcHRjb3JlX3Rlc3Rz
KTogTmV3LgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9zdGVwc191bml0
dGVzdC5weTogQ2hhbmdlIGV4cGVjdGVkIGNvbW1hbmQgZm9yIHJ1bm5pbmcganNjIHRlc3RzLgor
CiAyMDE2LTA5LTI1ICBHeXV5b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ad2Via2l0Lm9yZz4KIAog
ICAgICAgICBbRUZMXSBBZGp1c3QgRUZMIGluZGVudGF0aW9uIHRvIEVGTCBNaW5pQnJvd3Nlcgpk
aWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL2V3cy5qc29u
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL2V3cy5qc29uCmluZGV4IDM1
ZDQ5ODVhYjBmOTNkMTI3YjM3MjFlNDYwMWNkNmQ4OWRmY2NmM2MuLmU1MzQwZmU1YzNjMjFhZTgx
YWQxZWY3ZTAzZjdmYjgxZjM4MzljZmYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvY29tbW9uL2NvbmZpZy9ld3MuanNvbgorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2Nv
bW1vbi9jb25maWcvZXdzLmpzb24KQEAgLTUwLDUgKzUwLDExIEBACiAgICAgICAgICJwb3J0Ijog
Im1hYyIsCiAgICAgICAgICJuYW1lIjogIm1hYy0zMmJpdC1ld3MiLAogICAgICAgICAiYXJjaGl0
ZWN0dXJlIjogImkzODYiCisgICAgfSwKKyAgICAiSlNDIEVXUyI6IHsKKyAgICAgICAgInBvcnQi
OiAibWFjIiwKKyAgICAgICAgIm5hbWUiOiAianNjLWV3cyIsCisgICAgICAgICJncm91cCI6ICJq
c2MiLAorICAgICAgICAicnVuVGVzdHMiOiB0cnVlCiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL3BvcnRzLnB5IGIvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9jb21tb24vY29uZmlnL3BvcnRzLnB5CmluZGV4IGEwZDUwZGNiNmVhMGI1ZmRl
MGIzYzE3ZWYxNTljZWFmZWUxYTJlOTguLmQzN2VkOWQxYzVlMjU1MGU0ODgzNGU3ZWYwMGJhZTRj
MjRjYmQ3ODQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZp
Zy9wb3J0cy5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvcG9y
dHMucHkKQEAgLTEsNiArMSw2IEBACiAjIENvcHlyaWdodCAoQykgMjAwOSwgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICMgQ29weXJpZ2h0IChDKSAyMDEzIE5va2lhIENvcnBvcmF0
aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KLSMgQ29weXJpZ2h0IChDKSAyMDE1IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDE1LCAyMDE3
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucyBhcmUKQEAgLTEwMyw4ICsxMDMsMjEgQEAgY2xhc3MgRGVwcmVjYXRlZFBvcnQob2JqZWN0
KToKICAgICAgICAgICAgIGNvbW1hbmQuYXBwZW5kKCItLXJlbGVhc2UiKQogICAgICAgICByZXR1
cm4gY29tbWFuZAogCi0gICAgZGVmIHJ1bl9qYXZhc2NyaXB0Y29yZV90ZXN0c19jb21tYW5kKHNl
bGYpOgotICAgICAgICByZXR1cm4gc2VsZi5zY3JpcHRfc2hlbGxfY29tbWFuZCgicnVuLWphdmFz
Y3JpcHRjb3JlLXRlc3RzIikKKyAgICBkZWYgYnVpbGRfanNjX2NvbW1hbmQoc2VsZiwgYnVpbGRf
c3R5bGU9Tm9uZSk6CisgICAgICAgIGNvbW1hbmQgPSBzZWxmLnNjcmlwdF9zaGVsbF9jb21tYW5k
KCJidWlsZC1qc2MiKQorICAgICAgICBpZiBidWlsZF9zdHlsZSA9PSAiZGVidWciOgorICAgICAg
ICAgICAgY29tbWFuZC5hcHBlbmQoIi0tZGVidWciKQorICAgICAgICBpZiBidWlsZF9zdHlsZSA9
PSAicmVsZWFzZSI6CisgICAgICAgICAgICBjb21tYW5kLmFwcGVuZCgiLS1yZWxlYXNlIikKKyAg
ICAgICAgcmV0dXJuIGNvbW1hbmQKKworICAgIGRlZiBydW5famF2YXNjcmlwdGNvcmVfdGVzdHNf
Y29tbWFuZChzZWxmLCBidWlsZF9zdHlsZT1Ob25lKToKKyAgICAgICAgY29tbWFuZCA9IHNlbGYu
c2NyaXB0X3NoZWxsX2NvbW1hbmQoInJ1bi1qYXZhc2NyaXB0Y29yZS10ZXN0cyIpCisgICAgICAg
IGNvbW1hbmQuYXBwZW5kKCItLW5vLWZhaWwtZmFzdCIpCisgICAgICAgIGNvbW1hbmQuYXBwZW5k
KCItLWpzb24tb3V0cHV0PWpzY190ZXN0X3Jlc3VsdHMuanNvbiIpCisgICAgICAgIGlmIChidWls
ZF9zdHlsZSA9PSAiZGVidWciKToKKyAgICAgICAgICAgIGNvbW1hbmQuYXBwZW5kKCItLWRlYnVn
IikKKyAgICAgICAgcmV0dXJuIGNvbW1hbmQKIAogICAgIGRlZiBydW5fd2Via2l0X3Rlc3RzX2Nv
bW1hbmQoc2VsZiwgYnVpbGRfc3R5bGU9Tm9uZSk6CiAgICAgICAgIGNvbW1hbmQgPSBzZWxmLnNj
cmlwdF9zaGVsbF9jb21tYW5kKCJydW4td2Via2l0LXRlc3RzIikKQEAgLTE1MCw3ICsxNjMsMTAg
QEAgY2xhc3MgSU9TU2ltdWxhdG9yV0syUG9ydChEZXByZWNhdGVkUG9ydCk6CiBjbGFzcyBNYWNQ
b3J0KERlcHJlY2F0ZWRQb3J0KToKICAgICBwb3J0X2ZsYWdfbmFtZSA9ICJtYWMiCiAKLSAgICBk
ZWYgcnVuX3dlYmtpdF90ZXN0c19jb21tYW5kKHNlbGYsIGJ1aWxkX3N0eWxlPU5vbmUpOgorICAg
IGRlZiBydW5fd2Via2l0X3Rlc3RzX2NvbW1hbmQoc2VsZiwgYnVpbGRfc3R5bGU9Tm9uZSwgdGVz
dF9zdWl0ZT1Ob25lKToKKyAgICAgICAgaWYgKHRlc3Rfc3VpdGUgPT0gImpzYyIpOgorICAgICAg
ICAgICAgcmV0dXJuIHN1cGVyKE1hY1BvcnQsIHNlbGYpLnJ1bl9qYXZhc2NyaXB0Y29yZV90ZXN0
c19jb21tYW5kKGJ1aWxkX3N0eWxlKQorCiAgICAgICAgIGNvbW1hbmQgPSBzdXBlcihNYWNQb3J0
LCBzZWxmKS5ydW5fd2Via2l0X3Rlc3RzX2NvbW1hbmQoYnVpbGRfc3R5bGUpCiAgICAgICAgIGNv
bW1hbmQuYXBwZW5kKCItLWR1bXAtcmVuZGVyLXRyZWUiKQogICAgICAgICByZXR1cm4gY29tbWFu
ZApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL3BvcnRz
X3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL3BvcnRz
X3VuaXR0ZXN0LnB5CmluZGV4IDA4ZDU0NTIzNmRhMzcwM2U5MjhmMWNlZWQxZGQ5MTAyZDliODYy
MmUuLjE2Y2Q3ZjkyODI1MWJiYzk5NmNiNjQ2ZTQzNTlkNzNmZGI1MzViMjYgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9wb3J0c191bml0dGVzdC5weQor
KysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvcG9ydHNfdW5pdHRlc3Qu
cHkKQEAgLTEsNCArMSw1IEBACiAjIENvcHlyaWdodCAoYykgMjAwOSwgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTM5LDYg
KzQwLDEwIEBAIGNsYXNzIERlcHJlY2F0ZWRQb3J0VGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTWFjUG9ydCgpLmJ1aWxkX3dlYmtpdF9jb21tYW5kKGJ1
aWxkX3N0eWxlPSJkZWJ1ZyIpLCBEZXByZWNhdGVkUG9ydCgpLnNjcmlwdF9zaGVsbF9jb21tYW5k
KCJidWlsZC13ZWJraXQiKSArIFsiLS1kZWJ1ZyJdKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KE1hY1BvcnQoKS5idWlsZF93ZWJraXRfY29tbWFuZChidWlsZF9zdHlsZT0icmVsZWFzZSIpLCBE
ZXByZWNhdGVkUG9ydCgpLnNjcmlwdF9zaGVsbF9jb21tYW5kKCJidWlsZC13ZWJraXQiKSArIFsi
LS1yZWxlYXNlIl0pCiAKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChNYWNQb3J0KCkuYnVpbGRf
anNjX2NvbW1hbmQoKSwgRGVwcmVjYXRlZFBvcnQoKS5zY3JpcHRfc2hlbGxfY29tbWFuZCgiYnVp
bGQtanNjIikpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTWFjUG9ydCgpLmJ1aWxkX2pzY19j
b21tYW5kKGJ1aWxkX3N0eWxlPSJyZWxlYXNlIiksIERlcHJlY2F0ZWRQb3J0KCkuc2NyaXB0X3No
ZWxsX2NvbW1hbmQoImJ1aWxkLWpzYyIpICsgWyItLXJlbGVhc2UiXSkKKyAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChNYWNQb3J0KCkuYnVpbGRfanNjX2NvbW1hbmQoYnVpbGRfc3R5bGU9ImRlYnVn
IiksIERlcHJlY2F0ZWRQb3J0KCkuc2NyaXB0X3NoZWxsX2NvbW1hbmQoImJ1aWxkLWpzYyIpICsg
WyItLWRlYnVnIl0pCisKICAgICBkZWYgdGVzdF9ndGtfd2syX3BvcnQoc2VsZik6CiAgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoR3RrV0syUG9ydCgpLmZsYWcoKSwgIi0tcG9ydD1ndGstd2syIikK
ICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChHdGtXSzJQb3J0KCkucnVuX3dlYmtpdF90ZXN0c19j
b21tYW5kKCksIERlcHJlY2F0ZWRQb3J0KCkuc2NyaXB0X3NoZWxsX2NvbW1hbmQoInJ1bi13ZWJr
aXQtdGVzdHMiKSArIFsiLS1ndGsiXSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvY29tbW9uL25ldC9qc2N0ZXN0cmVzdWx0cy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
Y29tbW9uL25ldC9qc2N0ZXN0cmVzdWx0cy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNzE1NTE3NWU0MzYyMjRi
ZDA4NjkxMjVlMzk1NmQ3NTJjMjFhYWYxCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9jb21tb24vbmV0L2pzY3Rlc3RyZXN1bHRzLnB5CkBAIC0wLDAgKzEsNzkgQEAK
KyMgQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMK
KyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IKKyMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwK
KyMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworaW1wb3J0IGpzb24KK2lt
cG9ydCBsb2dnaW5nCisKK19sb2cgPSBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVfXykKKworCitj
bGFzcyBKU0NUZXN0UmVzdWx0cyhvYmplY3QpOgorICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBy
ZXN1bHRzX2Zyb21fc3RyaW5nKGNscywgc3RyaW5nKToKKyAgICAgICAgaWYgbm90IHN0cmluZzoK
KyAgICAgICAgICAgIHJldHVybiBOb25lCisKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcGFy
c2VkX3Jlc3VsdHMgPSBqc29uLmxvYWRzKHN0cmluZykKKyAgICAgICAgZXhjZXB0IFZhbHVlRXJy
b3I6CisgICAgICAgICAgICByZXR1cm4gTm9uZQorCisgICAgICAgIGlmICdhbGxBcGlUZXN0c1Bh
c3NlZCcgbm90IGluIHBhcnNlZF9yZXN1bHRzIG9yICdzdHJlc3NUZXN0RmFpbHVyZXMnIG5vdCBp
biBwYXJzZWRfcmVzdWx0czoKKyAgICAgICAgICAgIHJldHVybiBOb25lCisKKyAgICAgICAgcmV0
dXJuIGNscyhwYXJzZWRfcmVzdWx0c1snYWxsQXBpVGVzdHNQYXNzZWQnXSwgcGFyc2VkX3Jlc3Vs
dHNbJ3N0cmVzc1Rlc3RGYWlsdXJlcyddKQorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGFsbF9h
cGlfdGVzdHNfcGFzc2VkLCBzdHJlc3NfdGVzdF9mYWlsdXJlcyk6CisgICAgICAgIHNlbGYuX2Fs
bF9hcGlfdGVzdHNfcGFzc2VkID0gYWxsX2FwaV90ZXN0c19wYXNzZWQKKyAgICAgICAgc2VsZi5f
c3RyZXNzX3Rlc3RfZmFpbHVyZXMgPSBzdHJlc3NfdGVzdF9mYWlsdXJlcworCisgICAgICAgIHNl
bGYuX3Rlc3RfcmVzdWx0cyA9IHN0cmVzc190ZXN0X2ZhaWx1cmVzWzpdCisgICAgICAgIGlmIG5v
dCBzZWxmLl9hbGxfYXBpX3Rlc3RzX3Bhc3NlZDoKKyAgICAgICAgICAgIHNlbGYuX3Rlc3RfcmVz
dWx0cy5hcHBlbmQoImFwaVRlc3RzIikKKworICAgIGRlZiBlcXVhbHMoc2VsZiwgb3RoZXIpOgor
ICAgICAgICByZXR1cm4gc2VsZi5fYWxsX2FwaV90ZXN0c19wYXNzZWQgPT0gb3RoZXIuX2FsbF9h
cGlfdGVzdHNfcGFzc2VkIGFuZCBzZXQoc2VsZi5fc3RyZXNzX3Rlc3RfZmFpbHVyZXMpID09IHNl
dChvdGhlci5fc3RyZXNzX3Rlc3RfZmFpbHVyZXMpCisKKyAgICBkZWYgaXNfc3Vic2V0KHNlbGYs
IG90aGVyKToKKyAgICAgICAgcmV0dXJuIHNldChzZWxmLnRlc3RfcmVzdWx0cygpKSA8PSBzZXQo
b3RoZXIudGVzdF9yZXN1bHRzKCkpCisKKyAgICBkZWYgc3RyZXNzX3Rlc3RfZmFpbHVyZXMoc2Vs
Zik6CisgICAgICAgIHJldHVybiBzZWxmLl9zdHJlc3NfdGVzdF9mYWlsdXJlcworCisgICAgZGVm
IGFsbF9hcGlfdGVzdHNfcGFzc2VkKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5fYWxsX2Fw
aV90ZXN0c19wYXNzZWQKKworICAgIGRlZiBhbGxfcGFzc2VkKHNlbGYpOgorICAgICAgICByZXR1
cm4gc2VsZi5fYWxsX2FwaV90ZXN0c19wYXNzZWQgYW5kIG5vdCBzZWxmLl9zdHJlc3NfdGVzdF9m
YWlsdXJlcworCisgICAgZGVmIGZhaWxpbmdfdGVzdF9yZXN1bHRzKHNlbGYpOgorICAgICAgICBy
ZXR1cm4gc2VsZi5zdHJlc3NfdGVzdF9mYWlsdXJlcygpCisKKyAgICBkZWYgdGVzdF9yZXN1bHRz
KHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5fdGVzdF9yZXN1bHRzCisKKyAgICBkZWYgZmFp
bGluZ190ZXN0cyhzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX3Rlc3RfcmVzdWx0cworCisg
ICAgIyBObyBkZWZpbmVkIGZhaWx1cmUgbGltaXQgZm9yIEpTQy4KKyAgICBkZWYgZGlkX2V4Y2Vl
ZF90ZXN0X2ZhaWx1cmVfbGltaXQoc2VsZik6CisgICAgICAgIHJldHVybiBGYWxzZQpkaWZmIC0t
Z2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2pzY3Rlc3RyZXN1bHRzX3Vu
aXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2pzY3Rlc3RyZXN1
bHRzX3VuaXR0ZXN0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZiMWM3ZTRmZTBjYTZkN2JiZTUyZTU5YTIwZWFk
YTY1MTg2OTQxMGMKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2Nv
bW1vbi9uZXQvanNjdGVzdHJlc3VsdHNfdW5pdHRlc3QucHkKQEAgLTAsMCArMSw1NCBAQAorIyBD
b3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisj
CisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycgQU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUgorIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitpbXBvcnQgdW5pdHRlc3QKKwor
ZnJvbSB3ZWJraXRweS5jb21tb24ubmV0LmpzY3Rlc3RyZXN1bHRzIGltcG9ydCBKU0NUZXN0UmVz
dWx0cworCisKK2NsYXNzIEpTQ1Rlc3RSZXN1bHRzVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6Cisg
ICAgZGVmIHRlc3RfcmVzdWx0c19mcm9tX3N0cmluZyhzZWxmKToKKyAgICAgICAgbm9uZV9pdGVt
ID0gTm9uZQorICAgICAgICBlbXB0eV9zdHJpbmcgPSAiIgorICAgICAgICBpbnZhbGlkX2pzb24g
PSAneyJhbGxBcGlUZXN0c1Bhc3NlZCI6JworICAgICAgICBpbmNvbXBsZXRlX2pzb25fdjEgPSAn
eyJhbGxBcGlUZXN0c1Bhc3NlZCI6IHRydWV9JworICAgICAgICBpbmNvbXBsZXRlX2pzb25fdjIg
PSAneyJzdHJlc3NUZXN0RmFpbHVyZXMiOltdfScKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChO
b25lLCBKU0NUZXN0UmVzdWx0cy5yZXN1bHRzX2Zyb21fc3RyaW5nKG5vbmVfaXRlbSkpCisgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgSlNDVGVzdFJlc3VsdHMucmVzdWx0c19mcm9tX3N0
cmluZyhlbXB0eV9zdHJpbmcpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIEpTQ1Rl
c3RSZXN1bHRzLnJlc3VsdHNfZnJvbV9zdHJpbmcoaW52YWxpZF9qc29uKSkKKyAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChOb25lLCBKU0NUZXN0UmVzdWx0cy5yZXN1bHRzX2Zyb21fc3RyaW5nKGlu
Y29tcGxldGVfanNvbl92MSkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgSlNDVGVz
dFJlc3VsdHMucmVzdWx0c19mcm9tX3N0cmluZyhpbmNvbXBsZXRlX2pzb25fdjIpKQorCisgICAg
ICAgIG5vX2ZhaWx1cmVzX3N0cmluZyA9ICd7ImFsbEFwaVRlc3RzUGFzc2VkIjogdHJ1ZSwgInN0
cmVzc1Rlc3RGYWlsdXJlcyI6W119JworICAgICAgICBub19mYWlsdXJlc19yZXN1bHRzID0gSlND
VGVzdFJlc3VsdHMoVHJ1ZSwgW10pCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShub19mYWlsdXJl
c19yZXN1bHRzLmVxdWFscyhKU0NUZXN0UmVzdWx0cy5yZXN1bHRzX2Zyb21fc3RyaW5nKG5vX2Zh
aWx1cmVzX3N0cmluZykpKQorCisgICAgICAgIGFwaV90ZXN0X2ZhaWx1cmVzX3N0cmluZyA9ICd7
ImFsbEFwaVRlc3RzUGFzc2VkIjogZmFsc2UsICJzdHJlc3NUZXN0RmFpbHVyZXMiOltdfScKKyAg
ICAgICAgYXBpX3Rlc3RfZmFpbHVyZXNfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKEZhbHNlLCBb
XSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGFwaV90ZXN0X2ZhaWx1cmVzX3Jlc3VsdHMuZXF1
YWxzKEpTQ1Rlc3RSZXN1bHRzLnJlc3VsdHNfZnJvbV9zdHJpbmcoYXBpX3Rlc3RfZmFpbHVyZXNf
c3RyaW5nKSkpCisKKyAgICAgICAgbWFueV9mYWlsdXJlc19zdHJpbmcgPSAneyJhbGxBcGlUZXN0
c1Bhc3NlZCI6IGZhbHNlLCAic3RyZXNzVGVzdEZhaWx1cmVzIjpbImVzNi55YW1sL2VzNi90eXBl
ZF9hcnJheXNfSW50MTZBcnJheS5qcy5kZWZhdWx0IiwgImVzNi55YW1sL2VzNi90eXBlZF9hcnJh
eXNfSW50OEFycmF5LmpzLmRlZmF1bHQiXX0nCisgICAgICAgIG1hbnlfZmFpbHVyZXNfcmVzdWx0
cyA9IEpTQ1Rlc3RSZXN1bHRzKEZhbHNlLCBbImVzNi55YW1sL2VzNi90eXBlZF9hcnJheXNfSW50
MTZBcnJheS5qcy5kZWZhdWx0IiwgImVzNi55YW1sL2VzNi90eXBlZF9hcnJheXNfSW50OEFycmF5
LmpzLmRlZmF1bHQiXSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG1hbnlfZmFpbHVyZXNfcmVz
dWx0cy5lcXVhbHMoSlNDVGVzdFJlc3VsdHMucmVzdWx0c19mcm9tX3N0cmluZyhtYW55X2ZhaWx1
cmVzX3N0cmluZykpKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2Uobm9fZmFpbHVyZXNfcmVz
dWx0cyA9PSBhcGlfdGVzdF9mYWlsdXJlc19yZXN1bHRzKQorICAgICAgICBzZWxmLmFzc2VydEZh
bHNlKGFwaV90ZXN0X2ZhaWx1cmVzX3Jlc3VsdHMgPT0gbWFueV9mYWlsdXJlc19yZXN1bHRzKQpk
aWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9qc2Nld3NfdW5pdHRl
c3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2pzY2V3c191bml0dGVzdC5w
eQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi44OGI4MjIzN2Y1MDM0YjQzYzA1NGNjZGU0NDcyZWQ2Yzg3ZjdmZGI4Ci0t
LSAvZGV2L251bGwKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9qc2Nld3Nf
dW5pdHRlc3QucHkKQEAgLTAsMCArMSwxNTUgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
IyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAor
IyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyMgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMg
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKworaW1wb3J0IGxvZ2dpbmcKK2ltcG9ydCB1bml0dGVzdAorCitmcm9tIHdl
YmtpdHB5LmNvbW1vbi5uZXQuanNjdGVzdHJlc3VsdHMgaW1wb3J0IEpTQ1Rlc3RSZXN1bHRzCitm
cm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZlIGltcG9ydCBTY3JpcHRFcnJvcgor
ZnJvbSB3ZWJraXRweS50b29sLmJvdC5wYXRjaGFuYWx5c2lzdGFzayBpbXBvcnQgKgorZnJvbSB3
ZWJraXRweS50b29sLmNvbW1hbmRzLmVhcmx5d2FybmluZ3N5c3RlbSBpbXBvcnQgQWJzdHJhY3RF
YXJseVdhcm5pbmdTeXN0ZW0KK2Zyb20gd2Via2l0cHkudG9vbC5tb2NrdG9vbCBpbXBvcnQgTW9j
a1Rvb2wKKworX2xvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKQorCisKK2NsYXNzIE1v
Y2tQYXRjaEFuYWx5c2lzVGFzayhQYXRjaEFuYWx5c2lzVGFzayk6CisgICAgZGVmIF9faW5pdF9f
KHNlbGYsIGRlbGVnYXRlLCBwYXRjaCwgZmlyc3RfdGVzdF9hbGxfcGFzc2VkKToKKyAgICAgICAg
c2VsZi5fZGVsZWdhdGUgPSBkZWxlZ2F0ZQorICAgICAgICBzZWxmLl9wYXRjaCA9IHBhdGNoCisg
ICAgICAgIHNlbGYuX3NjcmlwdF9lcnJvciA9IE5vbmUKKyAgICAgICAgc2VsZi5fcmVzdWx0c19h
cmNoaXZlX2Zyb21fcGF0Y2hfdGVzdF9ydW4gPSBOb25lCisgICAgICAgIHNlbGYuX3Jlc3VsdHNf
ZnJvbV9wYXRjaF90ZXN0X3J1biA9IE5vbmUKKyAgICAgICAgc2VsZi5lcnJvciA9IE5vbmUKKyAg
ICAgICAgc2VsZi5fZmlyc3RfdGVzdF9hbGxfcGFzc2VkID0gZmlyc3RfdGVzdF9hbGxfcGFzc2Vk
CisgICAgICAgIHNlbGYuX3Rlc3RfcnVuX2NvdW50ID0gMAorCisgICAgZGVmIF90ZXN0KHNlbGYp
OgorICAgICAgICBzZWxmLl90ZXN0X3J1bl9jb3VudCArPSAxCisKKyAgICAgICAgaWYgc2VsZi5f
Zmlyc3RfdGVzdF9hbGxfcGFzc2VkID09IFRydWU6CisgICAgICAgICAgICByZXR1cm4gVHJ1ZQor
ICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZi5fc2NyaXB0X2Vycm9yID0gU2NyaXB0RXJy
b3IoIlJlZ3Jlc3Npb24gdGVzdCIpCisgICAgICAgICAgICByZXR1cm4gRmFsc2UKKworICAgIGRl
ZiBfYnVpbGRfYW5kX3Rlc3Rfd2l0aG91dF9wYXRjaChzZWxmKToKKyAgICAgICAgc2VsZi5fdGVz
dF9ydW5fY291bnQgKz0gMQorICAgICAgICByZXR1cm4gVHJ1ZQorCisgICAgZGVmIHZhbGlkYXRl
KHNlbGYpOgorICAgICAgICByZXR1cm4gVHJ1ZQorCisgICAgZGVmIHRlc3RfcnVuX2NvdW50KHNl
bGYpOgorICAgICAgICByZXR1cm4gc2VsZi5fdGVzdF9ydW5fY291bnQKKworCisjIFRoaXMgaXMg
dGhlIGRlbGVnYXRlIHRvIGJlIHVzZWQgd2l0aCBNb2NrUGF0Y2hBbmFseXNpc1Rhc2ssIGFib3Zl
LgorY2xhc3MgTW9ja0pTQ0Vhcmx5V2FybmluZ1N5c3RlbShBYnN0cmFjdEVhcmx5V2FybmluZ1N5
c3RlbSk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGZpcnN0X3Rlc3RfcmVzdWx0cywgY2xlYW5f
dGVzdF9yZXN1bHRzKToKKyAgICAgICAgQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0uX19pbml0
X18oc2VsZikKKyAgICAgICAgc2VsZi5fZ3JvdXAgPSAianNjIgorICAgICAgICBzZWxmLl9yZXN1
bHRzX2luX29yZGVyID0gW2NsZWFuX3Rlc3RfcmVzdWx0cywgZmlyc3RfdGVzdF9yZXN1bHRzXQor
CisgICAgZGVmIHRlc3RfcmVzdWx0cyhzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX3Jlc3Vs
dHNfaW5fb3JkZXIucG9wKCkKKworCitjbGFzcyBKU0NFYXJseVdhcm5pbmdTeXN0ZW1UZXN0KHVu
aXR0ZXN0LlRlc3RDYXNlKToKKyAgICBkZWYgX2NyZWF0ZV90YXNrKHNlbGYsIGZpcnN0X3Rlc3Rf
cmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKToKKyAgICAgICAgcXVldWUgPSBNb2NrSlNDRWFy
bHlXYXJuaW5nU3lzdGVtKGZpcnN0X3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKQor
ICAgICAgICB0b29sID0gTW9ja1Rvb2wobG9nX2V4ZWN1dGl2ZT1UcnVlKQorICAgICAgICBwYXRj
aCA9IHRvb2wuYnVncy5mZXRjaF9hdHRhY2htZW50KDEwMDAwKQorICAgICAgICBwYXRjaF9wYXNz
ZWRfYWxsX3Rlc3RzID0gRmFsc2UgaWYgZmlyc3RfdGVzdF9yZXN1bHRzIGlzIE5vbmUgZWxzZSBm
aXJzdF90ZXN0X3Jlc3VsdHMuYWxsX3Bhc3NlZCgpCisgICAgICAgIHJldHVybiBNb2NrUGF0Y2hB
bmFseXNpc1Rhc2socXVldWUsIHBhdGNoLCBwYXRjaF9wYXNzZWRfYWxsX3Rlc3RzKQorCisgICAg
ZGVmIHRlc3Rfc3VjY2Vzc19jYXNlKHNlbGYpOgorICAgICAgICBmaXJzdF90ZXN0X3Jlc3VsdHMg
PSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbXSkKKyAgICAgICAgY2xlYW5fdGVzdF9yZXN1bHRzID0g
SlNDVGVzdFJlc3VsdHMoVHJ1ZSwgW10pCisgICAgICAgIHRhc2sgPSBzZWxmLl9jcmVhdGVfdGFz
ayhmaXJzdF90ZXN0X3Jlc3VsdHMsIGNsZWFuX3Rlc3RfcmVzdWx0cykKKworICAgICAgICByZXR1
cm5fdmFsdWUgPSB0YXNrLl90ZXN0X3BhdGNoKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0
YXNrLnRlc3RfcnVuX2NvdW50KCksIDEpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmV0dXJu
X3ZhbHVlLCBUcnVlKQorCisgICAgZGVmIHRlc3RfdGVzdF9mYWlsdXJlKHNlbGYpOgorICAgICAg
ICBmaXJzdF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbJ0ZhaWwuanMnXSkK
KyAgICAgICAgY2xlYW5fdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgW10pCisg
ICAgICAgIHRhc2sgPSBzZWxmLl9jcmVhdGVfdGFzayhmaXJzdF90ZXN0X3Jlc3VsdHMsIGNsZWFu
X3Rlc3RfcmVzdWx0cykKKworICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFNjcmlwdEVy
cm9yKToKKyAgICAgICAgICAgIHJldHVybl92YWx1ZSA9IHRhc2suX3Rlc3RfcGF0Y2goKQorICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKHRhc2sudGVzdF9ydW5fY291bnQoKSwgMikKKworICAgIGRl
ZiB0ZXN0X2ZpeChzZWxmKToKKyAgICAgICAgZmlyc3RfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJl
c3VsdHMoVHJ1ZSwgW10pCisgICAgICAgIGNsZWFuX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1
bHRzKFRydWUsIFsnRmFpbC5qcyddKQorICAgICAgICB0YXNrID0gc2VsZi5fY3JlYXRlX3Rhc2so
Zmlyc3RfdGVzdF9yZXN1bHRzLCBjbGVhbl90ZXN0X3Jlc3VsdHMpCisKKyAgICAgICAgcmV0dXJu
X3ZhbHVlID0gdGFzay5fdGVzdF9wYXRjaCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGFz
ay50ZXN0X3J1bl9jb3VudCgpLCAxKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJldHVybl92
YWx1ZSwgVHJ1ZSkKKworICAgIGRlZiB0ZXN0X2luZWZmZWN0aXZlX3BhdGNoKHNlbGYpOgorICAg
ICAgICBmaXJzdF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhGYWxzZSwgWydmYWlsdXJl
MS5qcycsICdmYWlsdXJlMi5qcyddKQorICAgICAgICBjbGVhbl90ZXN0X3Jlc3VsdHMgPSBKU0NU
ZXN0UmVzdWx0cyhGYWxzZSwgWydmYWlsdXJlMS5qcycsICdmYWlsdXJlMi5qcyddKQorICAgICAg
ICB0YXNrID0gc2VsZi5fY3JlYXRlX3Rhc2soZmlyc3RfdGVzdF9yZXN1bHRzLCBjbGVhbl90ZXN0
X3Jlc3VsdHMpCisKKyAgICAgICAgcmV0dXJuX3ZhbHVlID0gdGFzay5fdGVzdF9wYXRjaCgpCisg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGFzay50ZXN0X3J1bl9jb3VudCgpLCAyKQorICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKHJldHVybl92YWx1ZSwgVHJ1ZSkKKworICAgIGRlZiB0ZXN0X3Bh
cnRpYWxseV9lZmZlY3RpdmVfcGF0Y2goc2VsZik6CisgICAgICAgIGZpcnN0X3Rlc3RfcmVzdWx0
cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFsnZmFpbHVyZTIuanMnXSkKKyAgICAgICAgY2xlYW5f
dGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoRmFsc2UsIFsnZmFpbHVyZTEuanMnLCAnZmFp
bHVyZTIuanMnXSkKKyAgICAgICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90YXNrKGZpcnN0X3Rlc3Rf
cmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKQorCisgICAgICAgIHJldHVybl92YWx1ZSA9IHRh
c2suX3Rlc3RfcGF0Y2goKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRhc2sudGVzdF9ydW5f
Y291bnQoKSwgMikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXR1cm5fdmFsdWUsIFRydWUp
CisKKyAgICBkZWYgdGVzdF9kaWZmZXJlbnRfdGVzdF9mYWlsdXJlcyhzZWxmKToKKyAgICAgICAg
Zmlyc3RfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoRmFsc2UsIFtdKQorICAgICAgICBj
bGVhbl90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbJ2ZhaWx1cmUxLmpzJywg
J2ZhaWx1cmUyLmpzJ10pCisgICAgICAgIHRhc2sgPSBzZWxmLl9jcmVhdGVfdGFzayhmaXJzdF90
ZXN0X3Jlc3VsdHMsIGNsZWFuX3Rlc3RfcmVzdWx0cykKKworICAgICAgICB3aXRoIHNlbGYuYXNz
ZXJ0UmFpc2VzKFNjcmlwdEVycm9yKToKKyAgICAgICAgICAgIHJldHVybl92YWx1ZSA9IHRhc2su
X3Rlc3RfcGF0Y2goKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRhc2sudGVzdF9ydW5fY291
bnQoKSwgMikKKworICAgIGRlZiB0ZXN0X2ZpcnN0X3Jlc3VsdHNfY291bGRfbm90X2JlX3JlYWQo
c2VsZik6CisgICAgICAgIGZpcnN0X3Rlc3RfcmVzdWx0cyA9IE5vbmUKKyAgICAgICAgY2xlYW5f
dGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgW10pCisgICAgICAgIHRhc2sgPSBz
ZWxmLl9jcmVhdGVfdGFzayhmaXJzdF90ZXN0X3Jlc3VsdHMsIGNsZWFuX3Rlc3RfcmVzdWx0cykK
KworICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFNjcmlwdEVycm9yKToKKyAgICAgICAg
ICAgIHJldHVybl92YWx1ZSA9IHRhc2suX3Rlc3RfcGF0Y2goKQorICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKHRhc2sudGVzdF9ydW5fY291bnQoKSwgMSkKKworICAgIGRlZiB0ZXN0X2NsZWFuX3Jl
c3VsdHNfY291bGRfbm90X2JlX3JlYWQoc2VsZik6CisgICAgICAgIGZpcnN0X3Rlc3RfcmVzdWx0
cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFsnZmFpbHVyZTIuanMnXSkKKyAgICAgICAgY2xlYW5f
dGVzdF9yZXN1bHRzID0gTm9uZQorICAgICAgICB0YXNrID0gc2VsZi5fY3JlYXRlX3Rhc2soZmly
c3RfdGVzdF9yZXN1bHRzLCBjbGVhbl90ZXN0X3Jlc3VsdHMpCisKKyAgICAgICAgd2l0aCBzZWxm
LmFzc2VydFJhaXNlcyhTY3JpcHRFcnJvcik6CisgICAgICAgICAgICByZXR1cm5fdmFsdWUgPSB0
YXNrLl90ZXN0X3BhdGNoKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0YXNrLnRlc3RfcnVu
X2NvdW50KCksIDIpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90
L2pzY3Rlc3RyZXN1bHRzcmVhZGVyLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2Jv
dC9qc2N0ZXN0cmVzdWx0c3JlYWRlci5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YWM1MzJiMTllN2VhNTVkMzVi
OTEzOWI0ZjIwOTk4MDViYTAwNDllCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS90b29sL2JvdC9qc2N0ZXN0cmVzdWx0c3JlYWRlci5weQpAQCAtMCwwICsxLDQ3IEBA
CisjIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisj
CisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorIyBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisjIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SCisjIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisjIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
CisjIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK2ltcG9ydCBsb2dnaW5n
CisKK2Zyb20gd2Via2l0cHkuY29tbW9uLm5ldC5qc2N0ZXN0cmVzdWx0cyBpbXBvcnQgSlNDVGVz
dFJlc3VsdHMKKworX2xvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKQorCisKK2NsYXNz
IEpTQ1Rlc3RSZXN1bHRzUmVhZGVyKG9iamVjdCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGhv
c3QsIHJlc3VsdHNfZGlyZWN0b3J5KToKKyAgICAgICAgc2VsZi5faG9zdCA9IGhvc3QKKyAgICAg
ICAgc2VsZi5fcmVzdWx0c19kaXJlY3RvcnkgPSByZXN1bHRzX2RpcmVjdG9yeQorCisgICAgZGVm
IF9yZWFkX2ZpbGVfY29udGVudHMoc2VsZiwgcGF0aCk6CisgICAgICAgIHRyeToKKyAgICAgICAg
ICAgIHJldHVybiBzZWxmLl9ob3N0LmZpbGVzeXN0ZW0ucmVhZF90ZXh0X2ZpbGUocGF0aCkKKyAg
ICAgICAgZXhjZXB0IElPRXJyb3IsIGU6ICAjIEZpbGUgZG9lcyBub3QgZXhpc3Qgb3IgY2FuJ3Qg
YmUgcmVhZC4KKyAgICAgICAgICAgIHJldHVybiBOb25lCisKKyAgICBkZWYgX2NyZWF0ZV9qc2Nf
dGVzdF9yZXN1bHRzKHNlbGYpOgorICAgICAgICByZXN1bHRzX3BhdGggPSBzZWxmLl9ob3N0LmZp
bGVzeXN0ZW0uam9pbihzZWxmLl9yZXN1bHRzX2RpcmVjdG9yeSwgImpzY190ZXN0X3Jlc3VsdHMu
anNvbiIpCisgICAgICAgIGNvbnRlbnRzID0gc2VsZi5fcmVhZF9maWxlX2NvbnRlbnRzKHJlc3Vs
dHNfcGF0aCkKKyAgICAgICAgcmV0dXJuIEpTQ1Rlc3RSZXN1bHRzLnJlc3VsdHNfZnJvbV9zdHJp
bmcoY29udGVudHMpCisKKyAgICBkZWYgcmVzdWx0cyhzZWxmKToKKyAgICAgICAgcmV0dXJuIHNl
bGYuX2NyZWF0ZV9qc2NfdGVzdF9yZXN1bHRzKCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvdG9vbC9ib3QvcGF0Y2hhbmFseXNpc3Rhc2sucHkgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L3Rvb2wvYm90L3BhdGNoYW5hbHlzaXN0YXNrLnB5CmluZGV4IDc1MjMxNjQxNmM1Zjlk
MGEzZTU5ZWY2ZDA1ZTMxNzg1ZjkxNzQ2MjkuLjE1NGQ4Y2E0N2QyY2RmNDg0YjAzODc0NGYzNGE5
YjJkZjhjNTRhMDIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3Qv
cGF0Y2hhbmFseXNpc3Rhc2sucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2Jv
dC9wYXRjaGFuYWx5c2lzdGFzay5weQpAQCAtMSw0ICsxLDUgQEAKICMgQ29weXJpZ2h0IChjKSAy
MDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAx
NyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogIyBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMgYXJlCkBAIC0xMjMsMjcgKzEyNCwzOSBAQCBjbGFzcyBQYXRjaEFuYWx5c2lzVGFzayhv
YmplY3QpOgogICAgICAgICAiUGF0Y2ggZG9lcyBub3QgYXBwbHkiKQogCiAgICAgZGVmIF9idWls
ZChzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYuX3J1bl9jb21tYW5kKFsKKyAgICAgICAgYXJn
cyA9IFsKICAgICAgICAgICAgICJidWlsZCIsCiAgICAgICAgICAgICAiLS1uby1jbGVhbiIsCiAg
ICAgICAgICAgICAiLS1uby11cGRhdGUiLAogICAgICAgICAgICAgIi0tYnVpbGQtc3R5bGU9JXMi
ICUgc2VsZi5fZGVsZWdhdGUuYnVpbGRfc3R5bGUoKSwKLSAgICAgICAgXSwKLSAgICAgICAgIkJ1
aWx0IHBhdGNoIiwKLSAgICAgICAgIlBhdGNoIGRvZXMgbm90IGJ1aWxkIikKKyAgICAgICAgXQor
CisgICAgICAgIGlmIGhhc2F0dHIoc2VsZi5fZGVsZWdhdGUsICdncm91cCcpOgorICAgICAgICAg
ICAgYXJncy5hcHBlbmQoIi0tZ3JvdXA9JXMiICUgc2VsZi5fZGVsZWdhdGUuZ3JvdXAoKSkKKwor
ICAgICAgICByZXR1cm4gc2VsZi5fcnVuX2NvbW1hbmQoCisgICAgICAgICAgICBhcmdzLAorICAg
ICAgICAgICAgIkJ1aWx0IHBhdGNoIiwKKyAgICAgICAgICAgICJQYXRjaCBkb2VzIG5vdCBidWls
ZCIpCiAKICAgICBkZWYgX2J1aWxkX3dpdGhvdXRfcGF0Y2goc2VsZik6Ci0gICAgICAgIHJldHVy
biBzZWxmLl9ydW5fY29tbWFuZChbCisgICAgICAgIGFyZ3MgPSBbCiAgICAgICAgICAgICAiYnVp
bGQiLAogICAgICAgICAgICAgIi0tZm9yY2UtY2xlYW4iLAogICAgICAgICAgICAgIi0tbm8tdXBk
YXRlIiwKICAgICAgICAgICAgICItLWJ1aWxkLXN0eWxlPSVzIiAlIHNlbGYuX2RlbGVnYXRlLmJ1
aWxkX3N0eWxlKCksCi0gICAgICAgIF0sCi0gICAgICAgICJBYmxlIHRvIGJ1aWxkIHdpdGhvdXQg
cGF0Y2giLAotICAgICAgICAiVW5hYmxlIHRvIGJ1aWxkIHdpdGhvdXQgcGF0Y2giKQorICAgICAg
ICBdCisKKyAgICAgICAgaWYgaGFzYXR0cihzZWxmLl9kZWxlZ2F0ZSwgJ2dyb3VwJyk6CisgICAg
ICAgICAgICBhcmdzLmFwcGVuZCgiLS1ncm91cD0lcyIgJSBzZWxmLl9kZWxlZ2F0ZS5ncm91cCgp
KQorCisgICAgICAgIHJldHVybiBzZWxmLl9ydW5fY29tbWFuZCgKKyAgICAgICAgICAgIGFyZ3Ms
CisgICAgICAgICAgICAiQWJsZSB0byBidWlsZCB3aXRob3V0IHBhdGNoIiwKKyAgICAgICAgICAg
ICJVbmFibGUgdG8gYnVpbGQgd2l0aG91dCBwYXRjaCIpCiAKICAgICBkZWYgX3Rlc3Qoc2VsZik6
Ci0gICAgICAgIHJldHVybiBzZWxmLl9ydW5fY29tbWFuZChbCisgICAgICAgIGFyZ3MgPSBbCiAg
ICAgICAgICAgICAiYnVpbGQtYW5kLXRlc3QiLAogICAgICAgICAgICAgIi0tbm8tY2xlYW4iLAog
ICAgICAgICAgICAgIi0tbm8tdXBkYXRlIiwKQEAgLTE1MSwxMiArMTY0LDE4IEBAIGNsYXNzIFBh
dGNoQW5hbHlzaXNUYXNrKG9iamVjdCk6CiAgICAgICAgICAgICAiLS10ZXN0IiwKICAgICAgICAg
ICAgICItLW5vbi1pbnRlcmFjdGl2ZSIsCiAgICAgICAgICAgICAiLS1idWlsZC1zdHlsZT0lcyIg
JSBzZWxmLl9kZWxlZ2F0ZS5idWlsZF9zdHlsZSgpLAotICAgICAgICBdLAotICAgICAgICAiUGFz
c2VkIHRlc3RzIiwKLSAgICAgICAgIlBhdGNoIGRvZXMgbm90IHBhc3MgdGVzdHMiKQorICAgICAg
ICBdCisKKyAgICAgICAgaWYgaGFzYXR0cihzZWxmLl9kZWxlZ2F0ZSwgJ2dyb3VwJyk6CisgICAg
ICAgICAgICBhcmdzLmFwcGVuZCgiLS1ncm91cD0lcyIgJSBzZWxmLl9kZWxlZ2F0ZS5ncm91cCgp
KQorCisgICAgICAgIHJldHVybiBzZWxmLl9ydW5fY29tbWFuZCgKKyAgICAgICAgICAgIGFyZ3Ms
CisgICAgICAgICAgICAiUGFzc2VkIHRlc3RzIiwKKyAgICAgICAgICAgICJQYXRjaCBkb2VzIG5v
dCBwYXNzIHRlc3RzIikKIAogICAgIGRlZiBfYnVpbGRfYW5kX3Rlc3Rfd2l0aG91dF9wYXRjaChz
ZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYuX3J1bl9jb21tYW5kKFsKKyAgICAgICAgYXJncyA9
IFsKICAgICAgICAgICAgICJidWlsZC1hbmQtdGVzdCIsCiAgICAgICAgICAgICAiLS1mb3JjZS1j
bGVhbiIsCiAgICAgICAgICAgICAiLS1uby11cGRhdGUiLApAQCAtMTY0LDkgKzE4MywxNSBAQCBj
bGFzcyBQYXRjaEFuYWx5c2lzVGFzayhvYmplY3QpOgogICAgICAgICAgICAgIi0tdGVzdCIsCiAg
ICAgICAgICAgICAiLS1ub24taW50ZXJhY3RpdmUiLAogICAgICAgICAgICAgIi0tYnVpbGQtc3R5
bGU9JXMiICUgc2VsZi5fZGVsZWdhdGUuYnVpbGRfc3R5bGUoKSwKLSAgICAgICAgXSwKLSAgICAg
ICAgIkFibGUgdG8gcGFzcyB0ZXN0cyB3aXRob3V0IHBhdGNoIiwKLSAgICAgICAgIlVuYWJsZSB0
byBwYXNzIHRlc3RzIHdpdGhvdXQgcGF0Y2ggKHRyZWUgaXMgcmVkPykiKQorICAgICAgICBdCisK
KyAgICAgICAgaWYgaGFzYXR0cihzZWxmLl9kZWxlZ2F0ZSwgJ2dyb3VwJyk6CisgICAgICAgICAg
ICBhcmdzLmFwcGVuZCgiLS1ncm91cD0lcyIgJSBzZWxmLl9kZWxlZ2F0ZS5ncm91cCgpKQorCisg
ICAgICAgIHJldHVybiBzZWxmLl9ydW5fY29tbWFuZCgKKyAgICAgICAgICAgIGFyZ3MsCisgICAg
ICAgICAgICAiQWJsZSB0byBwYXNzIHRlc3RzIHdpdGhvdXQgcGF0Y2giLAorICAgICAgICAgICAg
IlVuYWJsZSB0byBwYXNzIHRlc3RzIHdpdGhvdXQgcGF0Y2ggKHRyZWUgaXMgcmVkPykiKQogCiAg
ICAgZGVmIF9sYW5kKHNlbGYpOgogICAgICAgICAjIFVuY2xlYXIgaWYgdGhpcyBzaG91bGQgcGFz
cyAtLXF1aWV0IG9yIG5vdC4gIElmIC0tcGFyZW50LWNvbW1hbmQgYWx3YXlzIGRvZXMgdGhlIHJl
cG9ydGluZywgdGhlbiBpdCBzaG91bGQuCkBAIC0yMTAsNjkgKzIzNSw5MiBAQCBjbGFzcyBQYXRj
aEFuYWx5c2lzVGFzayhvYmplY3QpOgogICAgICAgICBpZiBzZWxmLl90ZXN0KCk6CiAgICAgICAg
ICAgICByZXR1cm4gVHJ1ZQogCi0gICAgICAgICMgTm90ZTogYXJjaGl2ZV9sYXN0X3Rlc3RfcmVz
dWx0cyBkZWxldGVzIHRoZSByZXN1bHRzIGRpcmVjdG9yeSwgbWFraW5nIHRoZXNlIGNhbGxzIG9y
ZGVyLXNlbnNpdHZlLgotICAgICAgICAjIFdlIGNvdWxkIHJlbW92ZSB0aGlzIGRlcGVuZGVuY3kg
YnkgYnVpbGRpbmcgdGhlIHRlc3RfcmVzdWx0cyBmcm9tIHRoZSBhcmNoaXZlLgotICAgICAgICBm
aXJzdF9yZXN1bHRzID0gc2VsZi5fZGVsZWdhdGUudGVzdF9yZXN1bHRzKCkKLSAgICAgICAgZmly
c3RfcmVzdWx0c19hcmNoaXZlID0gc2VsZi5fZGVsZWdhdGUuYXJjaGl2ZV9sYXN0X3Rlc3RfcmVz
dWx0cyhzZWxmLl9wYXRjaCkKLSAgICAgICAgZmlyc3Rfc2NyaXB0X2Vycm9yID0gc2VsZi5fc2Ny
aXB0X2Vycm9yCi0gICAgICAgIGZpcnN0X2ZhaWx1cmVfc3RhdHVzX2lkID0gc2VsZi5mYWlsdXJl
X3N0YXR1c19pZAotCi0gICAgICAgIGlmIHNlbGYuX3Rlc3QoKSBhbmQgbm90IGZpcnN0X3Jlc3Vs
dHMuZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQoKToKLSAgICAgICAgICAgICMgT25seSBy
ZXBvcnQgZmxha3kgdGVzdHMgaWYgd2Ugd2VyZSBzdWNjZXNzZnVsIGF0IHBhcnNpbmcgcmVzdWx0
cy5qc29uIGFuZCBhcmNoaXZpbmcgcmVzdWx0cy4KLSAgICAgICAgICAgIGlmIGZpcnN0X3Jlc3Vs
dHMgYW5kIGZpcnN0X3Jlc3VsdHNfYXJjaGl2ZToKLSAgICAgICAgICAgICAgICBzZWxmLl9yZXBv
cnRfZmxha3lfdGVzdHMoZmlyc3RfcmVzdWx0cy5mYWlsaW5nX3Rlc3RfcmVzdWx0cygpLCBmaXJz
dF9yZXN1bHRzX2FyY2hpdmUpCi0gICAgICAgICAgICByZXR1cm4gVHJ1ZQorICAgICAgICAjIEZJ
WE1FOiBBYnN0cmFjdCBvdXQgdGhlIHJldHJ5IGxvZ2ljIGluc3RlYWQgb2YgY2FzaW5nIG9uIHRo
ZSB0ZXN0IHN1aXRlIGhlcmUuCisgICAgICAgIGlmIGhhc2F0dHIoc2VsZi5fZGVsZWdhdGUsICdn
cm91cCcpIGFuZCBzZWxmLl9kZWxlZ2F0ZS5ncm91cCgpID09ICJqc2MiOgorICAgICAgICAgICAg
Zmlyc3RfcmVzdWx0cyA9IHNlbGYuX2RlbGVnYXRlLnRlc3RfcmVzdWx0cygpCisgICAgICAgICAg
ICBmaXJzdF9zY3JpcHRfZXJyb3IgPSBzZWxmLl9zY3JpcHRfZXJyb3IKKworICAgICAgICAgICAg
aWYgZmlyc3RfcmVzdWx0cyBpcyBOb25lOgorICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLnJl
cG9ydF9mYWlsdXJlKE5vbmUsIE5vbmUsIFNjcmlwdEVycm9yKCJDb3VsZCBub3QgcmVhZCBKU0Mg
dGVzdCByZXN1bHRzIGZvciBwYXRjaC4iKSkKIAotICAgICAgICBzZWNvbmRfcmVzdWx0cyA9IHNl
bGYuX2RlbGVnYXRlLnRlc3RfcmVzdWx0cygpCi0gICAgICAgIHNlY29uZF9yZXN1bHRzX2FyY2hp
dmUgPSBzZWxmLl9kZWxlZ2F0ZS5hcmNoaXZlX2xhc3RfdGVzdF9yZXN1bHRzKHNlbGYuX3BhdGNo
KQotICAgICAgICBzZWNvbmRfc2NyaXB0X2Vycm9yID0gc2VsZi5fc2NyaXB0X2Vycm9yCi0gICAg
ICAgIHNlY29uZF9mYWlsdXJlX3N0YXR1c19pZCA9IHNlbGYuZmFpbHVyZV9zdGF0dXNfaWQKKyAg
ICAgICAgICAgIGlmIGZpcnN0X3Jlc3VsdHMuYWxsX3Bhc3NlZCgpOgorICAgICAgICAgICAgICAg
IHJldHVybiBUcnVlCiAKLSAgICAgICAgaWYgc2Vjb25kX3Jlc3VsdHMuZGlkX2V4Y2VlZF90ZXN0
X2ZhaWx1cmVfbGltaXQoKSBhbmQgZmlyc3RfcmVzdWx0cy5kaWRfZXhjZWVkX3Rlc3RfZmFpbHVy
ZV9saW1pdCgpOgogICAgICAgICAgICAgc2VsZi5fYnVpbGRfYW5kX3Rlc3Rfd2l0aG91dF9wYXRj
aCgpCiAgICAgICAgICAgICBjbGVhbl90cmVlX3Jlc3VsdHMgPSBzZWxmLl9kZWxlZ2F0ZS50ZXN0
X3Jlc3VsdHMoKQogCi0gICAgICAgICAgICBpZiAobGVuKGZpcnN0X3Jlc3VsdHMuZmFpbGluZ190
ZXN0cygpKSAtIGxlbihjbGVhbl90cmVlX3Jlc3VsdHMuZmFpbGluZ190ZXN0cygpKSkgPD0gNToK
LSAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgICAgIGlmIGNsZWFuX3RyZWVf
cmVzdWx0cyBpcyBOb25lOgorICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLnJlcG9ydF9mYWls
dXJlKE5vbmUsIE5vbmUsIFNjcmlwdEVycm9yKCJDb3VsZCBub3QgcmVhZCBKU0MgdGVzdCByZXN1
bHRzIGZvciBjbGVhbiB0cmVlLiIpKQogCi0gICAgICAgICAgICBzZWxmLmZhaWx1cmVfc3RhdHVz
X2lkID0gZmlyc3RfZmFpbHVyZV9zdGF0dXNfaWQKKyAgICAgICAgICAgIGlmIGZpcnN0X3Jlc3Vs
dHMuaXNfc3Vic2V0KGNsZWFuX3RyZWVfcmVzdWx0cyk6CisgICAgICAgICAgICAgICAgcmV0dXJu
IFRydWUKIAotICAgICAgICAgICAgcmV0dXJuIHNlbGYucmVwb3J0X2ZhaWx1cmUoZmlyc3RfcmVz
dWx0c19hcmNoaXZlLCBmaXJzdF9yZXN1bHRzLCBmaXJzdF9zY3JpcHRfZXJyb3IpCisgICAgICAg
ICAgICByZXR1cm4gc2VsZi5yZXBvcnRfZmFpbHVyZShOb25lLCBmaXJzdF9yZXN1bHRzLCBmaXJz
dF9zY3JpcHRfZXJyb3IpCiAKLSAgICAgICAgaWYgc2Vjb25kX3Jlc3VsdHMuZGlkX2V4Y2VlZF90
ZXN0X2ZhaWx1cmVfbGltaXQoKToKLSAgICAgICAgICAgIHNlbGYuX3Nob3VsZF9kZWZlcl9wYXRj
aF9vcl90aHJvdyhmaXJzdF9yZXN1bHRzLmZhaWxpbmdfdGVzdF9yZXN1bHRzKCksIGZpcnN0X3Jl
c3VsdHNfYXJjaGl2ZSwgZmlyc3Rfc2NyaXB0X2Vycm9yLCBmaXJzdF9mYWlsdXJlX3N0YXR1c19p
ZCkKLSAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICBlbHNlOgorICAgICAgICAgICAg
IyBOb3RlOiBhcmNoaXZlX2xhc3RfdGVzdF9yZXN1bHRzIGRlbGV0ZXMgdGhlIHJlc3VsdHMgZGly
ZWN0b3J5LCBtYWtpbmcgdGhlc2UgY2FsbHMgb3JkZXItc2Vuc2l0dmUuCisgICAgICAgICAgICAj
IFdlIGNvdWxkIHJlbW92ZSB0aGlzIGRlcGVuZGVuY3kgYnkgYnVpbGRpbmcgdGhlIHRlc3RfcmVz
dWx0cyBmcm9tIHRoZSBhcmNoaXZlLgorICAgICAgICAgICAgZmlyc3RfcmVzdWx0cyA9IHNlbGYu
X2RlbGVnYXRlLnRlc3RfcmVzdWx0cygpCisgICAgICAgICAgICBmaXJzdF9yZXN1bHRzX2FyY2hp
dmUgPSBzZWxmLl9kZWxlZ2F0ZS5hcmNoaXZlX2xhc3RfdGVzdF9yZXN1bHRzKHNlbGYuX3BhdGNo
KQorICAgICAgICAgICAgZmlyc3Rfc2NyaXB0X2Vycm9yID0gc2VsZi5fc2NyaXB0X2Vycm9yCisg
ICAgICAgICAgICBmaXJzdF9mYWlsdXJlX3N0YXR1c19pZCA9IHNlbGYuZmFpbHVyZV9zdGF0dXNf
aWQKIAotICAgICAgICBpZiBmaXJzdF9yZXN1bHRzLmRpZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xp
bWl0KCk6Ci0gICAgICAgICAgICBzZWxmLl9zaG91bGRfZGVmZXJfcGF0Y2hfb3JfdGhyb3coc2Vj
b25kX3Jlc3VsdHMuZmFpbGluZ190ZXN0X3Jlc3VsdHMoKSwgc2Vjb25kX3Jlc3VsdHNfYXJjaGl2
ZSwgc2Vjb25kX3NjcmlwdF9lcnJvciwgc2Vjb25kX2ZhaWx1cmVfc3RhdHVzX2lkKQotICAgICAg
ICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgICAgICBpZiBzZWxmLl90ZXN0KCkgYW5kIG5vdCBm
aXJzdF9yZXN1bHRzLmRpZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xpbWl0KCk6CisgICAgICAgICAg
ICAgICAgIyBPbmx5IHJlcG9ydCBmbGFreSB0ZXN0cyBpZiB3ZSB3ZXJlIHN1Y2Nlc3NmdWwgYXQg
cGFyc2luZyByZXN1bHRzLmpzb24gYW5kIGFyY2hpdmluZyByZXN1bHRzLgorICAgICAgICAgICAg
ICAgIGlmIGZpcnN0X3Jlc3VsdHMgYW5kIGZpcnN0X3Jlc3VsdHNfYXJjaGl2ZToKKyAgICAgICAg
ICAgICAgICAgICAgc2VsZi5fcmVwb3J0X2ZsYWt5X3Rlc3RzKGZpcnN0X3Jlc3VsdHMuZmFpbGlu
Z190ZXN0X3Jlc3VsdHMoKSwgZmlyc3RfcmVzdWx0c19hcmNoaXZlKQorICAgICAgICAgICAgICAg
IHJldHVybiBUcnVlCisKKyAgICAgICAgICAgIHNlY29uZF9yZXN1bHRzID0gc2VsZi5fZGVsZWdh
dGUudGVzdF9yZXN1bHRzKCkKKyAgICAgICAgICAgIHNlY29uZF9yZXN1bHRzX2FyY2hpdmUgPSBz
ZWxmLl9kZWxlZ2F0ZS5hcmNoaXZlX2xhc3RfdGVzdF9yZXN1bHRzKHNlbGYuX3BhdGNoKQorICAg
ICAgICAgICAgc2Vjb25kX3NjcmlwdF9lcnJvciA9IHNlbGYuX3NjcmlwdF9lcnJvcgorICAgICAg
ICAgICAgc2Vjb25kX2ZhaWx1cmVfc3RhdHVzX2lkID0gc2VsZi5mYWlsdXJlX3N0YXR1c19pZAog
Ci0gICAgICAgIGlmIHNlbGYuX3Jlc3VsdHNfZmFpbGVkX2RpZmZlcmVudF90ZXN0cyhmaXJzdF9y
ZXN1bHRzLCBzZWNvbmRfcmVzdWx0cyk6Ci0gICAgICAgICAgICBmaXJzdF9mYWlsaW5nX3Jlc3Vs
dHNfc2V0ID0gZnJvemVuc2V0KGZpcnN0X3Jlc3VsdHMuZmFpbGluZ190ZXN0X3Jlc3VsdHMoKSkK
LSAgICAgICAgICAgIHNlY29uZF9mYWlsaW5nX3Jlc3VsdHNfc2V0ID0gZnJvemVuc2V0KHNlY29u
ZF9yZXN1bHRzLmZhaWxpbmdfdGVzdF9yZXN1bHRzKCkpCisgICAgICAgICAgICBpZiBzZWNvbmRf
cmVzdWx0cy5kaWRfZXhjZWVkX3Rlc3RfZmFpbHVyZV9saW1pdCgpIGFuZCBmaXJzdF9yZXN1bHRz
LmRpZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xpbWl0KCk6CisgICAgICAgICAgICAgICAgc2VsZi5f
YnVpbGRfYW5kX3Rlc3Rfd2l0aG91dF9wYXRjaCgpCisgICAgICAgICAgICAgICAgY2xlYW5fdHJl
ZV9yZXN1bHRzID0gc2VsZi5fZGVsZWdhdGUudGVzdF9yZXN1bHRzKCkKIAotICAgICAgICAgICAg
dGVzdHNfdGhhdF9vbmx5X2ZhaWxlZF9maXJzdCA9IGZpcnN0X2ZhaWxpbmdfcmVzdWx0c19zZXQu
ZGlmZmVyZW5jZShzZWNvbmRfZmFpbGluZ19yZXN1bHRzX3NldCkKLSAgICAgICAgICAgIHNlbGYu
X3JlcG9ydF9mbGFreV90ZXN0cyh0ZXN0c190aGF0X29ubHlfZmFpbGVkX2ZpcnN0LCBmaXJzdF9y
ZXN1bHRzX2FyY2hpdmUpCisgICAgICAgICAgICAgICAgaWYgKGxlbihmaXJzdF9yZXN1bHRzLmZh
aWxpbmdfdGVzdHMoKSkgLSBsZW4oY2xlYW5fdHJlZV9yZXN1bHRzLmZhaWxpbmdfdGVzdHMoKSkp
IDw9IDU6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQogCi0gICAgICAgICAgICB0
ZXN0c190aGF0X29ubHlfZmFpbGVkX3NlY29uZCA9IHNlY29uZF9mYWlsaW5nX3Jlc3VsdHNfc2V0
LmRpZmZlcmVuY2UoZmlyc3RfZmFpbGluZ19yZXN1bHRzX3NldCkKLSAgICAgICAgICAgIHNlbGYu
X3JlcG9ydF9mbGFreV90ZXN0cyh0ZXN0c190aGF0X29ubHlfZmFpbGVkX3NlY29uZCwgc2Vjb25k
X3Jlc3VsdHNfYXJjaGl2ZSkKKyAgICAgICAgICAgICAgICBzZWxmLmZhaWx1cmVfc3RhdHVzX2lk
ID0gZmlyc3RfZmFpbHVyZV9zdGF0dXNfaWQKIAotICAgICAgICAgICAgdGVzdHNfdGhhdF9jb25z
aXN0ZW50bHlfZmFpbGVkID0gZmlyc3RfZmFpbGluZ19yZXN1bHRzX3NldC5pbnRlcnNlY3Rpb24o
c2Vjb25kX2ZhaWxpbmdfcmVzdWx0c19zZXQpCi0gICAgICAgICAgICBpZiB0ZXN0c190aGF0X2Nv
bnNpc3RlbnRseV9mYWlsZWQ6Ci0gICAgICAgICAgICAgICAgaWYgc2VsZi5fc2hvdWxkX2RlZmVy
X3BhdGNoX29yX3Rocm93KHRlc3RzX3RoYXRfY29uc2lzdGVudGx5X2ZhaWxlZCwgZmlyc3RfcmVz
dWx0c19hcmNoaXZlLCBmaXJzdF9zY3JpcHRfZXJyb3IsIGZpcnN0X2ZhaWx1cmVfc3RhdHVzX2lk
KToKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlICAjIERlZmVyIHBhdGNoCisgICAg
ICAgICAgICAgICAgcmV0dXJuIHNlbGYucmVwb3J0X2ZhaWx1cmUoZmlyc3RfcmVzdWx0c19hcmNo
aXZlLCBmaXJzdF9yZXN1bHRzLCBmaXJzdF9zY3JpcHRfZXJyb3IpCiAKLSAgICAgICAgICAgICMg
QXQgdGhpcyBwb2ludCB3ZSBrbm93IHRoYXQgYXQgbGVhc3Qgb25lIHRlc3QgZmxha2VkLCBidXQg
bm8gY29uc2lzdGVudCBmYWlsdXJlcwotICAgICAgICAgICAgIyB3ZXJlIGludHJvZHVjZWQuIFRo
aXMgaXMgYSBiaXQgb2YgYSBncmV5LXpvbmUuCi0gICAgICAgICAgICByZXR1cm4gRmFsc2UgICMg
RGVmZXIgcGF0Y2gKKyAgICAgICAgICAgIGlmIHNlY29uZF9yZXN1bHRzLmRpZF9leGNlZWRfdGVz
dF9mYWlsdXJlX2xpbWl0KCk6CisgICAgICAgICAgICAgICAgc2VsZi5fc2hvdWxkX2RlZmVyX3Bh
dGNoX29yX3Rocm93KGZpcnN0X3Jlc3VsdHMuZmFpbGluZ190ZXN0X3Jlc3VsdHMoKSwgZmlyc3Rf
cmVzdWx0c19hcmNoaXZlLCBmaXJzdF9zY3JpcHRfZXJyb3IsIGZpcnN0X2ZhaWx1cmVfc3RhdHVz
X2lkKQorICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQogCi0gICAgICAgIGlmIHNlbGYuX3No
b3VsZF9kZWZlcl9wYXRjaF9vcl90aHJvdyhmaXJzdF9yZXN1bHRzLmZhaWxpbmdfdGVzdF9yZXN1
bHRzKCksIGZpcnN0X3Jlc3VsdHNfYXJjaGl2ZSwgZmlyc3Rfc2NyaXB0X2Vycm9yLCBmaXJzdF9m
YWlsdXJlX3N0YXR1c19pZCk6Ci0gICAgICAgICAgICByZXR1cm4gRmFsc2UgICMgRGVmZXIgcGF0
Y2gKKyAgICAgICAgICAgIGlmIGZpcnN0X3Jlc3VsdHMuZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVf
bGltaXQoKToKKyAgICAgICAgICAgICAgICBzZWxmLl9zaG91bGRfZGVmZXJfcGF0Y2hfb3JfdGhy
b3coc2Vjb25kX3Jlc3VsdHMuZmFpbGluZ190ZXN0X3Jlc3VsdHMoKSwgc2Vjb25kX3Jlc3VsdHNf
YXJjaGl2ZSwgc2Vjb25kX3NjcmlwdF9lcnJvciwgc2Vjb25kX2ZhaWx1cmVfc3RhdHVzX2lkKQor
ICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQogCi0gICAgICAgICMgQXQgdGhpcyBwb2ludCwg
d2Uga25vdyB0aGF0IHRoZSBmaXJzdCBhbmQgc2Vjb25kIHJ1bnMgaGFkIHRoZSBleGFjdCBzYW1l
IGZhaWx1cmVzLAotICAgICAgICAjIGFuZCB0aGF0IHRob3NlIGZhaWx1cmVzIGFyZSBhbGwgcHJl
c2VudCBvbiB0aGUgY2xlYW4gdHJlZSwgc28gd2UgY2FuIHNheSB3aXRoIGNlcnRhaW50eQotICAg
ICAgICAjIHRoYXQgdGhlIHBhdGNoIGlzIGdvb2QuCi0gICAgICAgIHJldHVybiBUcnVlCisgICAg
ICAgICAgICBpZiBzZWxmLl9yZXN1bHRzX2ZhaWxlZF9kaWZmZXJlbnRfdGVzdHMoZmlyc3RfcmVz
dWx0cywgc2Vjb25kX3Jlc3VsdHMpOgorICAgICAgICAgICAgICAgIGZpcnN0X2ZhaWxpbmdfcmVz
dWx0c19zZXQgPSBmcm96ZW5zZXQoZmlyc3RfcmVzdWx0cy5mYWlsaW5nX3Rlc3RfcmVzdWx0cygp
KQorICAgICAgICAgICAgICAgIHNlY29uZF9mYWlsaW5nX3Jlc3VsdHNfc2V0ID0gZnJvemVuc2V0
KHNlY29uZF9yZXN1bHRzLmZhaWxpbmdfdGVzdF9yZXN1bHRzKCkpCisKKyAgICAgICAgICAgICAg
ICB0ZXN0c190aGF0X29ubHlfZmFpbGVkX2ZpcnN0ID0gZmlyc3RfZmFpbGluZ19yZXN1bHRzX3Nl
dC5kaWZmZXJlbmNlKHNlY29uZF9mYWlsaW5nX3Jlc3VsdHNfc2V0KQorICAgICAgICAgICAgICAg
IHNlbGYuX3JlcG9ydF9mbGFreV90ZXN0cyh0ZXN0c190aGF0X29ubHlfZmFpbGVkX2ZpcnN0LCBm
aXJzdF9yZXN1bHRzX2FyY2hpdmUpCisKKyAgICAgICAgICAgICAgICB0ZXN0c190aGF0X29ubHlf
ZmFpbGVkX3NlY29uZCA9IHNlY29uZF9mYWlsaW5nX3Jlc3VsdHNfc2V0LmRpZmZlcmVuY2UoZmly
c3RfZmFpbGluZ19yZXN1bHRzX3NldCkKKyAgICAgICAgICAgICAgICBzZWxmLl9yZXBvcnRfZmxh
a3lfdGVzdHModGVzdHNfdGhhdF9vbmx5X2ZhaWxlZF9zZWNvbmQsIHNlY29uZF9yZXN1bHRzX2Fy
Y2hpdmUpCisKKyAgICAgICAgICAgICAgICB0ZXN0c190aGF0X2NvbnNpc3RlbnRseV9mYWlsZWQg
PSBmaXJzdF9mYWlsaW5nX3Jlc3VsdHNfc2V0LmludGVyc2VjdGlvbihzZWNvbmRfZmFpbGluZ19y
ZXN1bHRzX3NldCkKKyAgICAgICAgICAgICAgICBpZiB0ZXN0c190aGF0X2NvbnNpc3RlbnRseV9m
YWlsZWQ6CisgICAgICAgICAgICAgICAgICAgIGlmIHNlbGYuX3Nob3VsZF9kZWZlcl9wYXRjaF9v
cl90aHJvdyh0ZXN0c190aGF0X2NvbnNpc3RlbnRseV9mYWlsZWQsIGZpcnN0X3Jlc3VsdHNfYXJj
aGl2ZSwgZmlyc3Rfc2NyaXB0X2Vycm9yLCBmaXJzdF9mYWlsdXJlX3N0YXR1c19pZCk6CisgICAg
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UgICMgRGVmZXIgcGF0Y2gKKworICAgICAg
ICAgICAgICAgICMgQXQgdGhpcyBwb2ludCB3ZSBrbm93IHRoYXQgYXQgbGVhc3Qgb25lIHRlc3Qg
Zmxha2VkLCBidXQgbm8gY29uc2lzdGVudCBmYWlsdXJlcworICAgICAgICAgICAgICAgICMgd2Vy
ZSBpbnRyb2R1Y2VkLiBUaGlzIGlzIGEgYml0IG9mIGEgZ3JleS16b25lLgorICAgICAgICAgICAg
ICAgIHJldHVybiBGYWxzZSAgIyBEZWZlciBwYXRjaAorCisgICAgICAgICAgICBpZiBzZWxmLl9z
aG91bGRfZGVmZXJfcGF0Y2hfb3JfdGhyb3coZmlyc3RfcmVzdWx0cy5mYWlsaW5nX3Rlc3RfcmVz
dWx0cygpLCBmaXJzdF9yZXN1bHRzX2FyY2hpdmUsIGZpcnN0X3NjcmlwdF9lcnJvciwgZmlyc3Rf
ZmFpbHVyZV9zdGF0dXNfaWQpOgorICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZSAgIyBEZWZl
ciBwYXRjaAorCisgICAgICAgICAgICAjIEF0IHRoaXMgcG9pbnQsIHdlIGtub3cgdGhhdCB0aGUg
Zmlyc3QgYW5kIHNlY29uZCBydW5zIGhhZCB0aGUgZXhhY3Qgc2FtZSBmYWlsdXJlcywKKyAgICAg
ICAgICAgICMgYW5kIHRoYXQgdGhvc2UgZmFpbHVyZXMgYXJlIGFsbCBwcmVzZW50IG9uIHRoZSBj
bGVhbiB0cmVlLCBzbyB3ZSBjYW4gc2F5IHdpdGggY2VydGFpbnR5CisgICAgICAgICAgICAjIHRo
YXQgdGhlIHBhdGNoIGlzIGdvb2QuCisgICAgICAgICAgICByZXR1cm4gVHJ1ZQogCiAgICAgZGVm
IHJlc3VsdHNfYXJjaGl2ZV9mcm9tX3BhdGNoX3Rlc3RfcnVuKHNlbGYsIHBhdGNoKToKICAgICAg
ICAgYXNzZXJ0KHNlbGYuX3BhdGNoLmlkKCkgPT0gcGF0Y2guaWQoKSkgICMgUGF0Y2hBbmFseXNp
c1Rhc2sgaXMgbm90IGN1cnJlbnRseSByZS11c2VhYmxlLgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Vhcmx5d2FybmluZ3N5c3RlbS5weSBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9lYXJseXdhcm5pbmdzeXN0ZW0ucHkKaW5k
ZXggOWJjMDQxODYwY2U2NzQ1NDQ1NGU0YjI1MTQzOGE5ZGJlNTI2NDUxMy4uYWMwMjJjODljODRi
NDg4NTc2MmY3NDAzYjYyYjBlYjc0MDQzMDYyOCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS90b29sL2NvbW1hbmRzL2Vhcmx5d2FybmluZ3N5c3RlbS5weQorKysgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZWFybHl3YXJuaW5nc3lzdGVtLnB5CkBAIC0x
LDQgKzEsNSBAQAogIyBDb3B5cmlnaHQgKGMpIDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChjKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTI4LDYgKzI5LDcgQEAK
IAogaW1wb3J0IGpzb24KIGltcG9ydCBsb2dnaW5nCitpbXBvcnQgb3MKIGZyb20gb3B0cGFyc2Ug
aW1wb3J0IG1ha2Vfb3B0aW9uCiAKIGZyb20gd2Via2l0cHkuY29tbW9uLmNvbmZpZy5jb21taXR0
ZXJzIGltcG9ydCBDb21taXR0ZXJMaXN0CkBAIC0zNiw2ICszOCw3IEBAIGZyb20gd2Via2l0cHku
Y29tbW9uLnN5c3RlbS5maWxlc3lzdGVtIGltcG9ydCBGaWxlU3lzdGVtCiBmcm9tIHdlYmtpdHB5
LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZlIGltcG9ydCBTY3JpcHRFcnJvcgogZnJvbSB3ZWJraXRw
eS50b29sLmJvdC5lYXJseXdhcm5pbmdzeXN0ZW10YXNrIGltcG9ydCBFYXJseVdhcm5pbmdTeXN0
ZW1UYXNrLCBFYXJseVdhcm5pbmdTeXN0ZW1UYXNrRGVsZWdhdGUKIGZyb20gd2Via2l0cHkudG9v
bC5ib3QubGF5b3V0dGVzdHJlc3VsdHNyZWFkZXIgaW1wb3J0IExheW91dFRlc3RSZXN1bHRzUmVh
ZGVyCitmcm9tIHdlYmtpdHB5LnRvb2wuYm90LmpzY3Rlc3RyZXN1bHRzcmVhZGVyIGltcG9ydCBK
U0NUZXN0UmVzdWx0c1JlYWRlcgogZnJvbSB3ZWJraXRweS50b29sLmJvdC5wYXRjaGFuYWx5c2lz
dGFzayBpbXBvcnQgVW5hYmxlVG9BcHBseVBhdGNoLCBQYXRjaElzTm90VmFsaWQKIGZyb20gd2Vi
a2l0cHkudG9vbC5ib3QucXVldWVlbmdpbmUgaW1wb3J0IFF1ZXVlRW5naW5lCiBmcm9tIHdlYmtp
dHB5LnRvb2wuY29tbWFuZHMucXVldWVzIGltcG9ydCBBYnN0cmFjdFJldmlld1F1ZXVlCkBAIC01
Myw3ICs1NiwxMiBAQCBjbGFzcyBBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbShBYnN0cmFjdFJl
dmlld1F1ZXVlLCBFYXJseVdhcm5pbmdTeXN0ZW1UYXNrRGVsZQogCiAgICAgZGVmIGJlZ2luX3dv
cmtfcXVldWUoc2VsZik6CiAgICAgICAgIEFic3RyYWN0UmV2aWV3UXVldWUuYmVnaW5fd29ya19x
dWV1ZShzZWxmKQotICAgICAgICBzZWxmLl9sYXlvdXRfdGVzdF9yZXN1bHRzX3JlYWRlciA9IExh
eW91dFRlc3RSZXN1bHRzUmVhZGVyKHNlbGYuX3Rvb2wsIHNlbGYuX3BvcnQucmVzdWx0c19kaXJl
Y3RvcnkoKSwgc2VsZi5fbG9nX2RpcmVjdG9yeSgpKQorCisgICAgICAgIGlmIHNlbGYuZ3JvdXAo
KSA9PSAianNjIjoKKyAgICAgICAgICAgIGRpciA9IG9zLnBhdGguZGlybmFtZShvcy5wYXRoLmRp
cm5hbWUob3MucGF0aC5kaXJuYW1lKHNlbGYuX3BvcnQucmVzdWx0c19kaXJlY3RvcnkoKSkpKQor
ICAgICAgICAgICAgc2VsZi5fdGVzdF9yZXN1bHRzX3JlYWRlciA9IEpTQ1Rlc3RSZXN1bHRzUmVh
ZGVyKHNlbGYuX3Rvb2wsIGRpcikKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYuX3Rl
c3RfcmVzdWx0c19yZWFkZXIgPSBMYXlvdXRUZXN0UmVzdWx0c1JlYWRlcihzZWxmLl90b29sLCBz
ZWxmLl9wb3J0LnJlc3VsdHNfZGlyZWN0b3J5KCksIHNlbGYuX2xvZ19kaXJlY3RvcnkoKSkKIAog
ICAgIGRlZiBfZmFpbGluZ190ZXN0c19tZXNzYWdlKHNlbGYsIHRhc2ssIHBhdGNoKToKICAgICAg
ICAgcmVzdWx0cyA9IHRhc2sucmVzdWx0c19mcm9tX3BhdGNoX3Rlc3RfcnVuKHBhdGNoKQpAQCAt
MTE3LDE0ICsxMjUsMTcgQEAgY2xhc3MgQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0oQWJzdHJh
Y3RSZXZpZXdRdWV1ZSwgRWFybHlXYXJuaW5nU3lzdGVtVGFza0RlbGUKICAgICAgICAgcmV0dXJu
IHNlbGYuX3VwZGF0ZV9zdGF0dXMobWVzc2FnZSwgcGF0Y2g9cGF0Y2gsIHJlc3VsdHNfZmlsZT1m
YWlsdXJlX2xvZykKIAogICAgIGRlZiB0ZXN0X3Jlc3VsdHMoc2VsZik6Ci0gICAgICAgIHJldHVy
biBzZWxmLl9sYXlvdXRfdGVzdF9yZXN1bHRzX3JlYWRlci5yZXN1bHRzKCkKKyAgICAgICAgcmV0
dXJuIHNlbGYuX3Rlc3RfcmVzdWx0c19yZWFkZXIucmVzdWx0cygpCiAKICAgICBkZWYgYXJjaGl2
ZV9sYXN0X3Rlc3RfcmVzdWx0cyhzZWxmLCBwYXRjaCk6Ci0gICAgICAgIHJldHVybiBzZWxmLl9s
YXlvdXRfdGVzdF9yZXN1bHRzX3JlYWRlci5hcmNoaXZlKHBhdGNoKQorICAgICAgICByZXR1cm4g
c2VsZi5fdGVzdF9yZXN1bHRzX3JlYWRlci5hcmNoaXZlKHBhdGNoKQogCiAgICAgZGVmIGJ1aWxk
X3N0eWxlKHNlbGYpOgogICAgICAgICByZXR1cm4gc2VsZi5fYnVpbGRfc3R5bGUKIAorICAgIGRl
ZiBncm91cChzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX2dyb3VwCisKICAgICBkZWYgcmVm
ZXRjaF9wYXRjaChzZWxmLCBwYXRjaCk6CiAgICAgICAgIHJldHVybiBzZWxmLl90b29sLmJ1Z3Mu
ZmV0Y2hfYXR0YWNobWVudChwYXRjaC5pZCgpKQogCkBAIC0xNTYsNSArMTY3LDYgQEAgY2xhc3Mg
QWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0oQWJzdHJhY3RSZXZpZXdRdWV1ZSwgRWFybHlXYXJu
aW5nU3lzdGVtVGFza0RlbGUKICAgICAgICAgICAgICAgICAnX2J1aWxkX3N0eWxlJzogY29uZmln
LmdldCgnc3R5bGUnLCAicmVsZWFzZSIpLAogICAgICAgICAgICAgICAgICd3YXRjaGVycyc6IGNv
bmZpZy5nZXQoJ3dhdGNoZXJzJywgW10pLAogICAgICAgICAgICAgICAgICdydW5fdGVzdHMnOiBj
b25maWcuZ2V0KCdydW5UZXN0cycsIGNscy5ydW5fdGVzdHMpLAorICAgICAgICAgICAgICAgICdf
Z3JvdXAnOiBjb25maWcuZ2V0KCdncm91cCcsIE5vbmUpLAogICAgICAgICAgICAgfSkpCiAgICAg
ICAgIHJldHVybiBjbGFzc2VzCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rv
b2wvY29tbWFuZHMvZWFybHl3YXJuaW5nc3lzdGVtX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Vhcmx5d2FybmluZ3N5c3RlbV91bml0dGVzdC5weQpp
bmRleCAwODg4NzgxM2NlMmU5M2E4ZWM5ZGEzNzYzNmVjYmRlOWVmZjNjOWU3Li5jNjY3ZWZmZThj
MzQ1YjU1ZjhiNmUwYzBlODVkM2E4M2Q5NDQ0MDM5IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZWFybHl3YXJuaW5nc3lzdGVtX3VuaXR0ZXN0LnB5Cisr
KyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9lYXJseXdhcm5pbmdzeXN0
ZW1fdW5pdHRlc3QucHkKQEAgLTEsNCArMSw1IEBACiAjIENvcHlyaWdodCAoQykgMjAwOSBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFy
ZQpAQCAtNDcsNiArNDgsNyBAQCBjbGFzcyBBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbVRlc3Qo
UXVldWVzVGVzdCk6CiAgICAgICAgIGNsYXNzIFRlc3RFV1MoQWJzdHJhY3RFYXJseVdhcm5pbmdT
eXN0ZW0pOgogICAgICAgICAgICAgcG9ydF9uYW1lID0gIndpbiIgICMgTmVlZHMgdG8gYmUgYSBw
b3J0IHdoaWNoIHBvcnQvZmFjdG9yeSB1bmRlcnN0YW5kcy4KICAgICAgICAgICAgIF9idWlsZF9z
dHlsZSA9IE5vbmUKKyAgICAgICAgICAgIF9ncm91cCA9IE5vbmUKIAogICAgICAgICBld3MgPSBU
ZXN0RVdTKCkKICAgICAgICAgZXdzLmJpbmRfdG9fdG9vbChNb2NrVG9vbCgpKQpAQCAtNjgsOSAr
NzAsMTAgQEAgY2xhc3MgRWFybHlXYXJuaW5nU3lzdGVtVGVzdChRdWV1ZXNUZXN0KToKICAgICAg
ICAgICAgICJwb3J0IjogZXdzLnBvcnRfbmFtZSwKICAgICAgICAgICAgICJhcmNoaXRlY3R1cmUi
OiAiIC0tYXJjaGl0ZWN0dXJlPSVzIiAlIGV3cy5hcmNoaXRlY3R1cmUgaWYgZXdzLmFyY2hpdGVj
dHVyZSBlbHNlICIiLAogICAgICAgICAgICAgImJ1aWxkX3N0eWxlIjogZXdzLmJ1aWxkX3N0eWxl
KCksCisgICAgICAgICAgICAiZ3JvdXAiOiBld3MuZ3JvdXAoKSwKICAgICAgICAgfQogICAgICAg
ICBpZiBld3MucnVuX3Rlc3RzOgotICAgICAgICAgICAgcnVuX3Rlc3RzX2xpbmUgPSAiUnVubmlu
Zzogd2Via2l0LXBhdGNoIC0tc3RhdHVzLWhvc3Q9ZXhhbXBsZS5jb20gYnVpbGQtYW5kLXRlc3Qg
LS1uby1jbGVhbiAtLW5vLXVwZGF0ZSAtLXRlc3QgLS1ub24taW50ZXJhY3RpdmUgLS1idWlsZC1z
dHlsZT0lKGJ1aWxkX3N0eWxlKXMgLS1wb3J0PSUocG9ydClzJShhcmNoaXRlY3R1cmUpc1xuIiAl
IHN0cmluZ19yZXBsYWNlbWVudHMKKyAgICAgICAgICAgIHJ1bl90ZXN0c19saW5lID0gIlJ1bm5p
bmc6IHdlYmtpdC1wYXRjaCAtLXN0YXR1cy1ob3N0PWV4YW1wbGUuY29tIGJ1aWxkLWFuZC10ZXN0
IC0tbm8tY2xlYW4gLS1uby11cGRhdGUgLS10ZXN0IC0tbm9uLWludGVyYWN0aXZlIC0tYnVpbGQt
c3R5bGU9JShidWlsZF9zdHlsZSlzIC0tZ3JvdXA9JShncm91cClzIC0tcG9ydD0lKHBvcnQpcyUo
YXJjaGl0ZWN0dXJlKXNcbiIgJSBzdHJpbmdfcmVwbGFjZW1lbnRzCiAgICAgICAgIGVsc2U6CiAg
ICAgICAgICAgICBydW5fdGVzdHNfbGluZSA9ICIiCiAgICAgICAgIHN0cmluZ19yZXBsYWNlbWVu
dHNbJ3J1bl90ZXN0c19saW5lJ10gPSBydW5fdGVzdHNfbGluZQpAQCAtODEsNyArODQsNyBAQCBj
bGFzcyBFYXJseVdhcm5pbmdTeXN0ZW1UZXN0KFF1ZXVlc1Rlc3QpOgogUnVubmluZzogd2Via2l0
LXBhdGNoIC0tc3RhdHVzLWhvc3Q9ZXhhbXBsZS5jb20gY2xlYW4gLS1wb3J0PSUocG9ydClzJShh
cmNoaXRlY3R1cmUpcwogUnVubmluZzogd2Via2l0LXBhdGNoIC0tc3RhdHVzLWhvc3Q9ZXhhbXBs
ZS5jb20gdXBkYXRlIC0tcG9ydD0lKHBvcnQpcyUoYXJjaGl0ZWN0dXJlKXMKIFJ1bm5pbmc6IHdl
YmtpdC1wYXRjaCAtLXN0YXR1cy1ob3N0PWV4YW1wbGUuY29tIGFwcGx5LWF0dGFjaG1lbnQgLS1u
by11cGRhdGUgLS1ub24taW50ZXJhY3RpdmUgMTAwMDAgLS1wb3J0PSUocG9ydClzJShhcmNoaXRl
Y3R1cmUpcwotUnVubmluZzogd2Via2l0LXBhdGNoIC0tc3RhdHVzLWhvc3Q9ZXhhbXBsZS5jb20g
YnVpbGQgLS1uby1jbGVhbiAtLW5vLXVwZGF0ZSAtLWJ1aWxkLXN0eWxlPSUoYnVpbGRfc3R5bGUp
cyAtLXBvcnQ9JShwb3J0KXMlKGFyY2hpdGVjdHVyZSlzCitSdW5uaW5nOiB3ZWJraXQtcGF0Y2gg
LS1zdGF0dXMtaG9zdD1leGFtcGxlLmNvbSBidWlsZCAtLW5vLWNsZWFuIC0tbm8tdXBkYXRlIC0t
YnVpbGQtc3R5bGU9JShidWlsZF9zdHlsZSlzIC0tZ3JvdXA9JShncm91cClzIC0tcG9ydD0lKHBv
cnQpcyUoYXJjaGl0ZWN0dXJlKXMKICUocnVuX3Rlc3RzX2xpbmUpc01PQ0s6IHVwZGF0ZV9zdGF0
dXM6ICUobmFtZSlzIFBhc3MKIE1PQ0s6IHJlbGVhc2Vfd29ya19pdGVtOiAlKG5hbWUpcyAxMDAw
MAogIiIiICUgc3RyaW5nX3JlcGxhY2VtZW50cywKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvdG9vbC9zdGVwcy9idWlsZC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9v
bC9zdGVwcy9idWlsZC5weQppbmRleCBmNzRmZmNlNzA5NDFjNjFlNTk2NzkyZTRjNjBkY2Q3Zjhi
NjVlOWVjLi4zYzZjZjBiMWRlMDE4YzEzMmI3Zjg2ZGEyY2I5MDdlMmZkYTA2N2FlIDEwMDY0NAot
LS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvYnVpbGQucHkKKysrIGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL2J1aWxkLnB5CkBAIC0xLDQgKzEsNSBAQAog
IyBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMg
Q29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMg
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTQxLDI4ICs0MiwzNyBAQCBjbGFzcyBCdWls
ZChBYnN0cmFjdFN0ZXApOgogICAgICAgICAgICAgT3B0aW9ucy5idWlsZCwKICAgICAgICAgICAg
IE9wdGlvbnMucXVpZXQsCiAgICAgICAgICAgICBPcHRpb25zLmJ1aWxkX3N0eWxlLAorICAgICAg
ICAgICAgT3B0aW9ucy5ncm91cCwKICAgICAgICAgXQogCi0gICAgZGVmIGJ1aWxkKHNlbGYsIGJ1
aWxkX3N0eWxlKToKKyAgICBkZWYgYnVpbGQoc2VsZiwgYnVpbGRfc3R5bGUsIGdyb3VwKToKICAg
ICAgICAgZW52aXJvbm1lbnQgPSBzZWxmLl90b29sLmNvcHlfY3VycmVudF9lbnZpcm9ubWVudCgp
CiAgICAgICAgIGVudmlyb25tZW50LmRpc2FibGVfZ2NjX3NtYXJ0cXVvdGVzKCkKICAgICAgICAg
ZW52aXJvbm1lbnQuZGlzYWJsZV9qaGJ1aWxkX1ZUMTAwX291dHB1dCgpCiAgICAgICAgIGVudiA9
IGVudmlyb25tZW50LnRvX2RpY3Rpb25hcnkoKQogCi0gICAgICAgIGJ1aWxkX3dlYmtpdF9jb21t
YW5kID0gc2VsZi5fdG9vbC5kZXByZWNhdGVkX3BvcnQoKS5idWlsZF93ZWJraXRfY29tbWFuZChi
dWlsZF9zdHlsZT1idWlsZF9zdHlsZSkKKyAgICAgICAgaWYgZ3JvdXAgPT0gImpzYyI6CisgICAg
ICAgICAgICBidWlsZF9jb21tYW5kID0gc2VsZi5fdG9vbC5kZXByZWNhdGVkX3BvcnQoKS5idWls
ZF9qc2NfY29tbWFuZChidWlsZF9zdHlsZT1idWlsZF9zdHlsZSkKKyAgICAgICAgZWxzZToKKyAg
ICAgICAgICAgIGJ1aWxkX2NvbW1hbmQgPSBzZWxmLl90b29sLmRlcHJlY2F0ZWRfcG9ydCgpLmJ1
aWxkX3dlYmtpdF9jb21tYW5kKGJ1aWxkX3N0eWxlPWJ1aWxkX3N0eWxlKQogCiAgICAgICAgIGlm
IHNlbGYuX29wdGlvbnMuYXJjaGl0ZWN0dXJlOgotICAgICAgICAgICAgYnVpbGRfd2Via2l0X2Nv
bW1hbmQgKz0gWydBUkNIUz0lcycgJSBzZWxmLl9vcHRpb25zLmFyY2hpdGVjdHVyZV0KKyAgICAg
ICAgICAgIGJ1aWxkX2NvbW1hbmQgKz0gWydBUkNIUz0lcycgJSBzZWxmLl9vcHRpb25zLmFyY2hp
dGVjdHVyZV0KIAotICAgICAgICBzZWxmLl90b29sLmV4ZWN1dGl2ZS5ydW5fYW5kX3Rocm93X2lm
X2ZhaWwoYnVpbGRfd2Via2l0X2NvbW1hbmQsIHNlbGYuX29wdGlvbnMucXVpZXQsCisgICAgICAg
IHNlbGYuX3Rvb2wuZXhlY3V0aXZlLnJ1bl9hbmRfdGhyb3dfaWZfZmFpbChidWlsZF9jb21tYW5k
LCBzZWxmLl9vcHRpb25zLnF1aWV0LAogICAgICAgICAgICAgY3dkPXNlbGYuX3Rvb2wuc2NtKCku
Y2hlY2tvdXRfcm9vdCwgZW52PWVudikKIAogICAgIGRlZiBydW4oc2VsZiwgc3RhdGUpOgogICAg
ICAgICBpZiBub3Qgc2VsZi5fb3B0aW9ucy5idWlsZDoKICAgICAgICAgICAgIHJldHVybgogICAg
ICAgICBfbG9nLmluZm8oIkJ1aWxkaW5nIFdlYktpdCIpCisKKyAgICAgICAgZ3JvdXAgPSBOb25l
CisgICAgICAgIGlmIGhhc2F0dHIoc2VsZi5fb3B0aW9ucywgJ2dyb3VwJyk6CisgICAgICAgICAg
ICBncm91cCA9IHNlbGYuX29wdGlvbnMuZ3JvdXAKKwogICAgICAgICBpZiBzZWxmLl9vcHRpb25z
LmJ1aWxkX3N0eWxlID09ICJib3RoIjoKLSAgICAgICAgICAgIHNlbGYuYnVpbGQoImRlYnVnIikK
LSAgICAgICAgICAgIHNlbGYuYnVpbGQoInJlbGVhc2UiKQorICAgICAgICAgICAgc2VsZi5idWls
ZCgiZGVidWciLCBncm91cCkKKyAgICAgICAgICAgIHNlbGYuYnVpbGQoInJlbGVhc2UiLCBncm91
cCkKICAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHNlbGYuYnVpbGQoc2VsZi5fb3B0aW9ucy5i
dWlsZF9zdHlsZSkKKyAgICAgICAgICAgIHNlbGYuYnVpbGQoc2VsZi5fb3B0aW9ucy5idWlsZF9z
dHlsZSwgZ3JvdXApCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3Rl
cHMvb3B0aW9ucy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9vcHRpb25z
LnB5CmluZGV4IDNlZjQ3ZDAwOGE1OWUwNTBkNGNhMGM0ODc3ZGRkMWE2MDczMWE0MDkuLmY1ZTBk
ZWYzMjcxN2UzMDZlNjMxNjk4NDExMTBiMjg5OGI3MmExZjEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9vcHRpb25zLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvdG9vbC9zdGVwcy9vcHRpb25zLnB5CkBAIC0xLDQgKzEsNSBAQAogIyBDb3B5cmln
aHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0
IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucyBhcmUKQEAgLTQ2LDYgKzQ3LDcgQEAgY2xhc3MgT3B0aW9ucyhvYmplY3Qp
OgogICAgIGVtYWlsID0gbWFrZV9vcHRpb24oIi0tZW1haWwiLCBhY3Rpb249InN0b3JlIiwgdHlw
ZT0ic3RyaW5nIiwgZGVzdD0iZW1haWwiLCBoZWxwPSJFbWFpbCBhZGRyZXNzIHRvIHVzZSBpbiBD
aGFuZ2VMb2dzLiIpCiAgICAgZm9yY2VfY2xlYW4gPSBtYWtlX29wdGlvbigiLS1mb3JjZS1jbGVh
biIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGRlc3Q9ImZvcmNlX2NsZWFuIiwgZGVmYXVsdD1GYWxz
ZSwgaGVscD0iQ2xlYW4gd29ya2luZyBkaXJlY3RvcnkgYmVmb3JlIGFwcGx5aW5nIHBhdGNoZXMg
KHJlbW92ZXMgbG9jYWwgY2hhbmdlcyBhbmQgY29tbWl0cykiKQogICAgIGdpdF9jb21taXQgPSBt
YWtlX29wdGlvbigiLWciLCAiLS1naXQtY29tbWl0IiwgYWN0aW9uPSJzdG9yZSIsIGRlc3Q9Imdp
dF9jb21taXQiLCBoZWxwPSJPcGVyYXRlIG9uIGEgbG9jYWwgY29tbWl0LiBJZiBhIHJhbmdlLCB0
aGUgY29tbWl0cyBhcmUgc3F1YXNoZWQgaW50byBvbmUuIDxyZWY+Li4uLiBpbmNsdWRlcyB0aGUg
d29ya2luZyBjb3B5IGNoYW5nZXMuIFVQU1RSRUFNIGNhbiBiZSB1c2VkIGZvciB0aGUgdXBzdHJl
YW0vdHJhY2tpbmcgYnJhbmNoLiIpCisgICAgZ3JvdXAgPSBtYWtlX29wdGlvbigiLS1ncm91cCIs
IGFjdGlvbj0ic3RvcmUiLCBkZXN0PSJncm91cCIsIGRlZmF1bHQ9Tm9uZSwgaGVscD0iIikKICAg
ICBsb2NhbF9jb21taXQgPSBtYWtlX29wdGlvbigiLS1sb2NhbC1jb21taXQiLCBhY3Rpb249InN0
b3JlX3RydWUiLCBkZXN0PSJsb2NhbF9jb21taXQiLCBkZWZhdWx0PUZhbHNlLCBoZWxwPSJNYWtl
IGEgbG9jYWwgY29tbWl0IGZvciBlYWNoIGFwcGxpZWQgcGF0Y2giKQogICAgIG5vbl9pbnRlcmFj
dGl2ZSA9IG1ha2Vfb3B0aW9uKCItLW5vbi1pbnRlcmFjdGl2ZSIsIGFjdGlvbj0ic3RvcmVfdHJ1
ZSIsIGRlc3Q9Im5vbl9pbnRlcmFjdGl2ZSIsIGRlZmF1bHQ9RmFsc2UsIGhlbHA9Ik5ldmVyIHBy
b21wdCB0aGUgdXNlciwgZmFpbCBhcyBmYXN0IGFzIHBvc3NpYmxlLiIpCiAgICAgb2Jzb2xldGVf
cGF0Y2hlcyA9IG1ha2Vfb3B0aW9uKCItLW5vLW9ic29sZXRlIiwgYWN0aW9uPSJzdG9yZV9mYWxz
ZSIsIGRlc3Q9Im9ic29sZXRlX3BhdGNoZXMiLCBkZWZhdWx0PVRydWUsIGhlbHA9IkRvIG5vdCBv
YnNvbGV0ZSBvbGQgcGF0Y2hlcyBiZWZvcmUgcG9zdGluZyB0aGlzIG9uZS4iKQpkaWZmIC0tZ2l0
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3J1bnRlc3RzLnB5IGIvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3J1bnRlc3RzLnB5CmluZGV4IDc1ZDcyYmM5YWQy
ZjRlMzZkNDVmZGFjOTBmMTgxOTQ4MWNmMDI4OGIuLjVhN2YyYTk4YTNmYmIyNGVjYjAzZjYxYzZi
NjBmNjUwNDJkOTcxYTQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9z
dGVwcy9ydW50ZXN0cy5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMv
cnVudGVzdHMucHkKQEAgLTEsNCArMSw1IEBACiAjIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpA
QCAtNTMsNiArNTQsNyBAQCBjbGFzcyBSdW5UZXN0cyhBYnN0cmFjdFN0ZXApOgogICAgICAgICAg
ICAgT3B0aW9ucy5pdGVyYXRlX29uX25ld190ZXN0cywKICAgICAgICAgICAgIE9wdGlvbnMubm9u
X2ludGVyYWN0aXZlLAogICAgICAgICAgICAgT3B0aW9ucy5xdWlldCwKKyAgICAgICAgICAgIE9w
dGlvbnMuZ3JvdXAsCiAgICAgICAgIF0KIAogICAgIGRlZiBydW4oc2VsZiwgc3RhdGUpOgpAQCAt
NjMsNiArNjUsMTAgQEAgY2xhc3MgUnVuVGVzdHMoQWJzdHJhY3RTdGVwKToKICAgICAgICAgaWYg
bm90IHNlbGYuX29wdGlvbnMudGVzdDoKICAgICAgICAgICAgIHJldHVybgogCisgICAgICAgIGlm
IGhhc2F0dHIoc2VsZi5fb3B0aW9ucywgImdyb3VwIikgYW5kIHNlbGYuX29wdGlvbnMuZ3JvdXAg
PT0gImpzYyI6CisgICAgICAgICAgICBzZWxmLl9ydW5famF2YXNjcmlwdGNvcmVfdGVzdHMoKQor
ICAgICAgICAgICAgcmV0dXJuCisKICAgICAgICAgcHl0aG9uX3VuaXR0ZXN0c19jb21tYW5kID0g
c2VsZi5fdG9vbC5kZXByZWNhdGVkX3BvcnQoKS5ydW5fcHl0aG9uX3VuaXR0ZXN0c19jb21tYW5k
KCkKICAgICAgICAgaWYgcHl0aG9uX3VuaXR0ZXN0c19jb21tYW5kOgogICAgICAgICAgICAgX2xv
Zy5pbmZvKCJSdW5uaW5nIFB5dGhvbiB1bml0IHRlc3RzIikKQEAgLTE0MywzICsxNDksNyBAQCBj
bGFzcyBSdW5UZXN0cyhBYnN0cmFjdFN0ZXApOgogICAgICAgICAgICAgYXJncy5hcHBlbmQoIi0t
aXRlcmF0aW9ucz0lZCIgJSBpdGVyYXRlX29uX25ld190ZXN0cykKIAogICAgICAgICBzZWxmLl90
b29sLmV4ZWN1dGl2ZS5ydW5fYW5kX3Rocm93X2lmX2ZhaWwoYXJncywgY3dkPXNlbGYuX3Rvb2wu
c2NtKCkuY2hlY2tvdXRfcm9vdCkKKworICAgIGRlZiBfcnVuX2phdmFzY3JpcHRjb3JlX3Rlc3Rz
KHNlbGYpOgorICAgICAgICBhcmdzID0gc2VsZi5fdG9vbC5kZXByZWNhdGVkX3BvcnQoKS5ydW5f
amF2YXNjcmlwdGNvcmVfdGVzdHNfY29tbWFuZChzZWxmLl9vcHRpb25zLmJ1aWxkX3N0eWxlKQor
ICAgICAgICBzZWxmLl90b29sLmV4ZWN1dGl2ZS5ydW5fYW5kX3Rocm93X2lmX2ZhaWwoYXJncywg
Y3dkPXNlbGYuX3Rvb2wuc2NtKCkuY2hlY2tvdXRfcm9vdCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9zdGVwc191bml0dGVzdC5weSBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvdG9vbC9zdGVwcy9zdGVwc191bml0dGVzdC5weQppbmRleCA3ZDk0YTEzYjM0
NjNkOThhNDRmOTQ5ZjgxNGNjNzEyMWMwNjhhYjVkLi5kZmFhYTlkZTVkYjI0YTJjNmM4MDY3ODQw
ZWU1MjYxOGRjNzc5NGVhIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wv
c3RlcHMvc3RlcHNfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29s
L3N0ZXBzL3N0ZXBzX3VuaXR0ZXN0LnB5CkBAIC0xLDQgKzEsNSBAQAogIyBDb3B5cmlnaHQgKEMp
IDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAy
MDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucyBhcmUKQEAgLTk4LDYgKzk5LDcgQEAgY2xhc3MgU3RlcHNUZXN0KHVuaXR0ZXN0LlRl
c3RDYXNlKToKICAgICAgICAgc2VsZi5fYXNzZXJ0X3N0ZXBfb3V0cHV0X3dpdGhfYnVnKHN0ZXBz
LkVuc3VyZUJ1Z0lzT3BlbkFuZEFzc2lnbmVkLCA1MDAwMiwgZXhwZWN0ZWRfbG9ncykKIAogICAg
IGRlZiB0ZXN0X3J1bnRlc3RzX2FyZ3Moc2VsZik6CisgICAgICAgIHNlbGYubWF4RGlmZiA9IE5v
bmUKICAgICAgICAgbW9ja19vcHRpb25zID0gc2VsZi5fc3RlcF9vcHRpb25zKCkKICAgICAgICAg
bW9ja19vcHRpb25zLm5vbl9pbnRlcmFjdGl2ZSA9IEZhbHNlCiAgICAgICAgIG1vY2tfb3B0aW9u
cy5idWlsZF9zdHlsZSA9ICJyZWxlYXNlIgpAQCAtMTExLDcgKzExMyw3IEBAIE1PQ0sgcnVuX2Fu
ZF90aHJvd19pZl9mYWlsOiBbJ1Rvb2xzL1NjcmlwdHMvdGVzdC13ZWJraXRweSddLCBjd2Q9L21v
Y2stY2hlY2tvdXQKIFJ1bm5pbmcgUGVybCB1bml0IHRlc3RzCiBNT0NLIHJ1bl9hbmRfdGhyb3df
aWZfZmFpbDogWydUb29scy9TY3JpcHRzL3Rlc3Qtd2Via2l0cGVybCddLCBjd2Q9L21vY2stY2hl
Y2tvdXQKIFJ1bm5pbmcgSmF2YVNjcmlwdENvcmUgdGVzdHMKLU1PQ0sgcnVuX2FuZF90aHJvd19p
Zl9mYWlsOiBbJ1Rvb2xzL1NjcmlwdHMvcnVuLWphdmFzY3JpcHRjb3JlLXRlc3RzJ10sIGN3ZD0v
bW9jay1jaGVja291dAorTU9DSyBydW5fYW5kX3Rocm93X2lmX2ZhaWw6IFsnVG9vbHMvU2NyaXB0
cy9ydW4tamF2YXNjcmlwdGNvcmUtdGVzdHMnLCAnLS1uby1mYWlsLWZhc3QnLCAnLS1qc29uLW91
dHB1dD1qc2NfdGVzdF9yZXN1bHRzLmpzb24nXSwgY3dkPS9tb2NrLWNoZWNrb3V0CiBSdW5uaW5n
IGJpbmRpbmdzIGdlbmVyYXRpb24gdGVzdHMKIE1PQ0sgcnVuX2FuZF90aHJvd19pZl9mYWlsOiBb
J1Rvb2xzL1NjcmlwdHMvcnVuLWJpbmRpbmdzLXRlc3RzJ10sIGN3ZD0vbW9jay1jaGVja291dAog
UnVubmluZyBydW4td2Via2l0LXRlc3RzCkBAIC0xMjAsNiArMTIyLDcgQEAgTU9DSyBydW5fYW5k
X3Rocm93X2lmX2ZhaWw6IFsnVG9vbHMvU2NyaXB0cy9ydW4td2Via2l0LXRlc3RzJywgJy0tcmVs
ZWFzZScsICctLXEKICAgICAgICAgT3V0cHV0Q2FwdHVyZSgpLmFzc2VydF9vdXRwdXRzKHNlbGYs
IHN0ZXAucnVuLCBbe31dLCBleHBlY3RlZF9sb2dzPWV4cGVjdGVkX2xvZ3MpCiAKICAgICBkZWYg
dGVzdF9ydW50ZXN0c19kZWJ1Z19hcmdzKHNlbGYpOgorICAgICAgICBzZWxmLm1heERpZmYgPSBO
b25lCiAgICAgICAgIG1vY2tfb3B0aW9ucyA9IHNlbGYuX3N0ZXBfb3B0aW9ucygpCiAgICAgICAg
IG1vY2tfb3B0aW9ucy5ub25faW50ZXJhY3RpdmUgPSBGYWxzZQogICAgICAgICBtb2NrX29wdGlv
bnMuYnVpbGRfc3R5bGUgPSAiZGVidWciCkBAIC0xMzMsNyArMTM2LDcgQEAgTU9DSyBydW5fYW5k
X3Rocm93X2lmX2ZhaWw6IFsnVG9vbHMvU2NyaXB0cy90ZXN0LXdlYmtpdHB5J10sIGN3ZD0vbW9j
ay1jaGVja291dAogUnVubmluZyBQZXJsIHVuaXQgdGVzdHMKIE1PQ0sgcnVuX2FuZF90aHJvd19p
Zl9mYWlsOiBbJ1Rvb2xzL1NjcmlwdHMvdGVzdC13ZWJraXRwZXJsJ10sIGN3ZD0vbW9jay1jaGVj
a291dAogUnVubmluZyBKYXZhU2NyaXB0Q29yZSB0ZXN0cwotTU9DSyBydW5fYW5kX3Rocm93X2lm
X2ZhaWw6IFsnVG9vbHMvU2NyaXB0cy9ydW4tamF2YXNjcmlwdGNvcmUtdGVzdHMnXSwgY3dkPS9t
b2NrLWNoZWNrb3V0CitNT0NLIHJ1bl9hbmRfdGhyb3dfaWZfZmFpbDogWydUb29scy9TY3JpcHRz
L3J1bi1qYXZhc2NyaXB0Y29yZS10ZXN0cycsICctLW5vLWZhaWwtZmFzdCcsICctLWpzb24tb3V0
cHV0PWpzY190ZXN0X3Jlc3VsdHMuanNvbiddLCBjd2Q9L21vY2stY2hlY2tvdXQKIFJ1bm5pbmcg
YmluZGluZ3MgZ2VuZXJhdGlvbiB0ZXN0cwogTU9DSyBydW5fYW5kX3Rocm93X2lmX2ZhaWw6IFsn
VG9vbHMvU2NyaXB0cy9ydW4tYmluZGluZ3MtdGVzdHMnXSwgY3dkPS9tb2NrLWNoZWNrb3V0CiBS
dW5uaW5nIHJ1bi13ZWJraXQtdGVzdHMK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>300176</attachid>
            <date>2017-01-30 18:21:40 -0800</date>
            <delta_ts>2017-01-31 20:17:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-162458-20170130181931.patch</filename>
            <type>text/plain</type>
            <size>71188</size>
            <attacher name="Srinivasan Vijayaraghavan">webkit</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA2Mzc3CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOWI3NTZhN2Y2MTZlMzQ0YjFhYmFjNjFkZmVkMmExZWI4
NmY3ZTQ0ZC4uMTAwNTI2NjQ1YWVlZmU2YjNkZjBlYzk4OWZiY2E5ZjcxYWZhOGQ2YiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEw
NiBAQAorMjAxNy0wMS0zMCAgU3Jpbml2YXNhbiBWaWpheWFyYWdoYXZhbiAgPHN2aWpheWFyYWdo
YXZhbkBhcHBsZS5jb20+CisKKyAgICAgICAgRVdTIHNob3VsZCBydW4gSmF2YVNjcmlwdENvcmUg
dGVzdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2
MjQ1OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
U2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hlY2tvdXQvc2NtL3NjbV9tb2NrLnB5OgorICAgICAg
ICAoTW9ja1NDTS5fX2luaXRfXyk6IEFkZCBfbW9ja0NoYW5nZWRGaWxlcyB2YXJpYWJsZS4KKyAg
ICAgICAgKE1vY2tTQ00uY2hhbmdlZF9maWxlcyk6IENoYW5nZSB0byB1c2UgX21vY2tDaGFuZ2Vk
RmlsZXMgdmFyaWFibGVzLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZp
Zy9ld3MuanNvbjogQWRkIGNvbmZpZyBpbmZvIGZvciBKU0MgRVdTLgorICAgICAgICAqIFNjcmlw
dHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9wb3J0cy5weTogQWRkIHN1cHBvcnQgZm9yIEpTQyBF
V1MgaW4gTWFjIFBvcnQuCisgICAgICAgIChEZXByZWNhdGVkUG9ydC5idWlsZF9qc2NfY29tbWFu
ZCk6IEFkZGVkIC0gY29tbWFuZCB0byBidWlsZCBKU0Mgb25seSAocXVpY2tlciB0aGFuIGJ1aWxk
aW5nIGFsbCBvZiBXZWJLaXQpLgorICAgICAgICAoRGVwcmVjYXRlZFBvcnQucnVuX2phdmFzY3Jp
cHRjb3JlX3Rlc3RzX2NvbW1hbmQpOiBBbGxvdyBKU0MgRVdTIHRvIG9ubHkgcnVuIEpTQyB0ZXN0
cy4KKyAgICAgICAgKE1hY1BvcnQucnVuX3dlYmtpdF90ZXN0c19jb21tYW5kKTogQ2hlY2sgZm9y
IEpTQy4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvcG9ydHNfbW9j
ay5weToKKyAgICAgICAgKE1vY2tQb3J0LnJ1bl9qYXZhc2NyaXB0Y29yZV90ZXN0c19jb21tYW5k
KTogQWRkIGJ1aWxkX3N0eWxlIGFyZ3VtZW50LgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkv
Y29tbW9uL2NvbmZpZy9wb3J0c191bml0dGVzdC5weToKKyAgICAgICAgKERlcHJlY2F0ZWRQb3J0
VGVzdC50ZXN0X21hY19wb3J0KTogQWRkIHVuaXQgdGVzdHMgZm9yIGJ1aWxkLWpzYyBzaGVsbCBj
b21tYW5kLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9qc2N0ZXN0cmVz
dWx0cy5weTogQWRkZWQuCisgICAgICAgIChKU0NUZXN0UmVzdWx0cyk6IEFkZGVkLgorICAgICAg
ICAoSlNDVGVzdFJlc3VsdHMucmVzdWx0c19mcm9tX3N0cmluZyk6IFVzZSBqc29uIGxpYnJhcnkg
dG8gcGFyc2UgcmVzdWx0cy4KKyAgICAgICAgKEpTQ1Rlc3RSZXN1bHRzLl9faW5pdF9fKTogSW5p
dGlhbGl6ZSBtZW1iZXJzLgorICAgICAgICAoSlNDVGVzdFJlc3VsdHMuZXF1YWxzKTogVGhpcyBl
bmFibGVzIHVuaXQgdGVzdGluZy4KKyAgICAgICAgKEpTQ1Rlc3RSZXN1bHRzLmlzX3N1YnNldCk6
IENoZWNrcyBpZiBvbmUgc2V0IG9mIGZhaWx1cmVzIGlzIGEgc3Vic2V0IG9mIGFub3RoZXIuCisg
ICAgICAgIChKU0NUZXN0UmVzdWx0cy5zdHJlc3NfdGVzdF9mYWlsdXJlcyk6IEdldHRlci4KKyAg
ICAgICAgKEpTQ1Rlc3RSZXN1bHRzLmFsbF9hcGlfdGVzdHNfcGFzc2VkKTogR2V0dGVyLgorICAg
ICAgICAoSlNDVGVzdFJlc3VsdHMuYWxsX3Bhc3NlZCk6IEdldHRlci4KKyAgICAgICAgKEpTQ1Rl
c3RSZXN1bHRzLmZhaWxpbmdfdGVzdF9yZXN1bHRzKTogR2V0dGVyLiBTb21lIG9mIHRoZXNlIGV4
aXN0IGZvciBpbnRlcm9wYWJpbGl0eSByZWFzb25zLgorICAgICAgICAoSlNDVGVzdFJlc3VsdHMu
dGVzdF9yZXN1bHRzKTogR2V0dGVyLgorICAgICAgICAoSlNDVGVzdFJlc3VsdHMuZmFpbGluZ190
ZXN0cyk6IEdldHRlci4KKyAgICAgICAgKEpTQ1Rlc3RSZXN1bHRzLmRpZF9leGNlZWRfdGVzdF9m
YWlsdXJlX2xpbWl0KTogR2V0dGVyLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9u
L25ldC9qc2N0ZXN0cmVzdWx0c191bml0dGVzdC5weTogQWRkZWQuCisgICAgICAgIChKU0NUZXN0
UmVzdWx0c1Rlc3QpOiBDbGFzcyB0byB0ZXN0IEpTQ1Rlc3RSZXN1bHRzLgorICAgICAgICAoSlND
VGVzdFJlc3VsdHNUZXN0LnRlc3RfcmVzdWx0c19mcm9tX3N0cmluZyk6IFRlc3RzIHBhcnNpbmcu
CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9lYXJseXdhcm5pbmdzeXN0ZW10
YXNrLnB5OgorICAgICAgICAoRWFybHlXYXJuaW5nU3lzdGVtVGFzay5ydW4pOiBBZGQgY2hlY2tf
cGF0Y2hfcmVsZXZhbmNlIHN0ZXAuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL2Jv
dC9qc2Nld3NfdW5pdHRlc3QucHk6IEFkZGVkLgorICAgICAgICAoTW9ja1BhdGNoQW5hbHlzaXNU
YXNrKTogTW9ja2VkLW91dCB2ZXJzaW9uIG9mIFBhdGNoQW5hbHlzaXNUYXNrIHRoYXQgZG9lc24n
dCBydW4gY29tbWFuZHMuCisgICAgICAgIChNb2NrUGF0Y2hBbmFseXNpc1Rhc2suX19pbml0X18p
OiBTZXRzIGF0dHJpYnV0ZXMuCisgICAgICAgIChNb2NrUGF0Y2hBbmFseXNpc1Rhc2suX3Rlc3Qp
OiBPdmVycmlkZSB0byBub3QgcnVuIGNvbW1hbmQuCisgICAgICAgIChNb2NrUGF0Y2hBbmFseXNp
c1Rhc2suX2J1aWxkX2FuZF90ZXN0X3dpdGhvdXRfcGF0Y2gpOiBPdmVycmlkZSB0byBub3QgcnVu
IGNvbW1hbmQuCisgICAgICAgIChNb2NrUGF0Y2hBbmFseXNpc1Rhc2sudmFsaWRhdGUpOiBBc3N1
bWUgbW9ja2VkIHBhdGNoIGlzIHZhbGlkIGZvciBwdXJwb3NlcyBvZiB0ZXN0aW5nIHJldHJ5IGxv
Z2ljLgorICAgICAgICAoTW9ja1BhdGNoQW5hbHlzaXNUYXNrLnRlc3RfcnVuX2NvdW50KTogU3Bl
Y2lmaWMgdG8gdGhlIG1vY2tlZCB2ZXJzaW9uLCB0byB0ZXN0IHJldHJ5IGxvZ2ljLgorICAgICAg
ICAoTW9ja0pTQ0Vhcmx5V2FybmluZ1N5c3RlbSk6IE1vY2tlZC1vdXQgdmVyc2lvbiBvZiBBYnN0
YXJjdEVhcmx5V2FybmluZ1N5c3RlbSBzbyB3ZSBjYW4gcHJvdmlkZSB0ZXN0IHJlc3VsdHMuCisg
ICAgICAgIChNb2NrSlNDRWFybHlXYXJuaW5nU3lzdGVtLl9faW5pdF9fKTogU2V0cyBhdHRyaWJ1
dGVzLCBhbHNvIHNldHMgZ3JvdXAgdG8ganNjLgorICAgICAgICAoTW9ja0pTQ0Vhcmx5V2Fybmlu
Z1N5c3RlbS50ZXN0X3Jlc3VsdHMpOiBSZXR1cm5zIHRlc3QgcmVzdWx0cyBwcm92aWRlZCBieSB1
cywgaW5zdGVhZCBvZiB1c2luZyBhIEpTT04gcmVhZGVyLgorICAgICAgICAoSlNDRWFybHlXYXJu
aW5nU3lzdGVtVGVzdCk6IENsYXNzIHRvIHRlc3QgcmV0cnkgbG9naWMgaW4gYmVsb3cgc2l0dWF0
aW9ucy4KKyAgICAgICAgKEpTQ0Vhcmx5V2FybmluZ1N5c3RlbVRlc3QuX2NyZWF0ZV90YXNrKTog
SGVscGVyIGZ1bmN0aW9uIHRvIGFic3RyYWN0IG91dCBjb21tb24gY29kZS4KKyAgICAgICAgKEpT
Q0Vhcmx5V2FybmluZ1N5c3RlbVRlc3QudGVzdF9zdWNjZXNzX2Nhc2UpOiBDbGVhbiBwYXRjaCBv
biBjbGVhbiB0cmVlLgorICAgICAgICAoSlNDRWFybHlXYXJuaW5nU3lzdGVtVGVzdC50ZXN0X3Rl
c3RfZmFpbHVyZSk6IEZhaWxlZCBwYXRjaCBvbiBjbGVhbiB0cmVlLgorICAgICAgICAoSlNDRWFy
bHlXYXJuaW5nU3lzdGVtVGVzdC50ZXN0X2ZpeCk6IFBhdGNoIHRoYXQgZml4ZXMgYWxsIHRyZWUg
cmVkbmVzcy4KKyAgICAgICAgKEpTQ0Vhcmx5V2FybmluZ1N5c3RlbVRlc3QudGVzdF9pbmVmZmVj
dGl2ZV9wYXRjaCk6IFBhdGNoIHRoYXQgaGFzIHNhbWUgZmFpbHVyZXMgYXMgdHJlZS4KKyAgICAg
ICAgKEpTQ0Vhcmx5V2FybmluZ1N5c3RlbVRlc3QudGVzdF9wYXJ0aWFsbHlfZWZmZWN0aXZlX3Bh
dGNoKTogUGF0Y2ggZml4ZXMgc29tZSBmYWlsdXJlcyBidXQgYWRkcyBubyBuZXcgZmFpbHVyZXMu
CisgICAgICAgIChKU0NFYXJseVdhcm5pbmdTeXN0ZW1UZXN0LnRlc3RfZGlmZmVyZW50X3Rlc3Rf
ZmFpbHVyZXMpOiBQYXRjaCB0aGF0IGhhcyBzb21lIGZhaWx1cmVzIG5vdCBwcmVzZW50IGluIHRy
ZWUuCisgICAgICAgIChKU0NFYXJseVdhcm5pbmdTeXN0ZW1UZXN0LnRlc3RfZmlyc3RfcmVzdWx0
c19jb3VsZF9ub3RfYmVfcmVhZCk6IFJlc3VsdHMgZnJvbSBwYXRjaCBjb3VsZCBub3QgYmUgcmVh
ZC4KKyAgICAgICAgKEpTQ0Vhcmx5V2FybmluZ1N5c3RlbVRlc3QudGVzdF9jbGVhbl9yZXN1bHRz
X2NvdWxkX25vdF9iZV9yZWFkKTogUmVzdWx0cyBmcm9tIGNsZWFuIHRyZWUgY291bGQgbm90IGJl
IHJlYWQuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9qc2N0ZXN0cmVzdWx0
c3JlYWRlci5weTogQWRkZWQuCisgICAgICAgIChKU0NUZXN0UmVzdWx0c1JlYWRlcik6IFJlYWRz
IHJlc3VsdHMgZmlsZS4KKyAgICAgICAgKEpTQ1Rlc3RSZXN1bHRzUmVhZGVyLl9faW5pdF9fKTog
U2V0cyBhdHRyaWJ1dGVzLgorICAgICAgICAoSlNDVGVzdFJlc3VsdHNSZWFkZXIuX3JlYWRfZmls
ZV9jb250ZW50cyk6IFJlYWRzIGZpbGUuCisgICAgICAgIChKU0NUZXN0UmVzdWx0c1JlYWRlci5f
Y3JlYXRlX2pzY190ZXN0X3Jlc3VsdHMpOiBDcmVhdGVzIGEgSlNDVGVzdFJlc3VsdHMgb2JqZWN0
LgorICAgICAgICAoSlNDVGVzdFJlc3VsdHNSZWFkZXIucmVzdWx0cyk6IEludm9rZXMgX2NyZWF0
ZV9qc2NfdGVzdF9yZXN1bHRzIHRvIHJldHVybiBhIEpTQ1Rlc3RSZXN1bHRzIG9iamVjdC4KKyAg
ICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L3BhdGNoYW5hbHlzaXN0YXNrLnB5Ogor
ICAgICAgICAoUGF0Y2hJc05vdEFwcGxpY2FibGUpOiBFeGNlcHRpb24gZm9yIHdoZW4gcGF0Y2gg
ZG9lc24ndCBoYXZlIHJlbGV2YW50IGNoYW5nZXMuCisgICAgICAgIChQYXRjaEFuYWx5c2lzVGFz
ay5fY2hlY2tfcGF0Y2hfcmVsZXZhbmNlKTogQWRkZWQuCisgICAgICAgIChQYXRjaEFuYWx5c2lz
VGFzay5fYnVpbGQpOiBDaGVjayBmb3IgSlNDLgorICAgICAgICAoUGF0Y2hBbmFseXNpc1Rhc2su
X2J1aWxkX3dpdGhvdXRfcGF0Y2gpOiBDaGVjayBmb3IgSlNDLgorICAgICAgICAoUGF0Y2hBbmFs
eXNpc1Rhc2suX3Rlc3QpOiBDaGVjayBmb3IgSlNDLgorICAgICAgICAoUGF0Y2hBbmFseXNpc1Rh
c2suX2J1aWxkX2FuZF90ZXN0X3dpdGhvdXRfcGF0Y2gpOiBDaGVjayBmb3IgSlNDLgorICAgICAg
ICAoUGF0Y2hBbmFseXNpc1Rhc2suX3Rlc3RfcGF0Y2gpOiBBZGQgcmV0cnkgbG9naWMgZm9yIEpT
Qy4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZG93bmxvYWQucHk6
CisgICAgICAgIChDaGVja1BhdGNoUmVsZXZhbmNlKTogQWRkIGNoZWNrLXBhdGNoLXJlbGV2YW5j
ZSBjb21tYW5kLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9lYXJs
eXdhcm5pbmdzeXN0ZW0ucHk6CisgICAgICAgIChBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbS5i
ZWdpbl93b3JrX3F1ZXVlKTogVXNlIEpTQ1Rlc3RSZXN1bHRzUmVhZGVyIG5vdCBMYXlvdXRUZXN0
UmVzdWx0c1JlYWRlciBpbiBKU0MgRVdTLgorICAgICAgICAoQWJzdHJhY3RFYXJseVdhcm5pbmdT
eXN0ZW0ucmV2aWV3X3BhdGNoKTogSGFuZGxlIFBhdGNoSXNBcHBsaWNhYmxlCisgICAgICAgIChB
YnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbS50ZXN0X3Jlc3VsdHMpOiBfbGF5b3V0X3Rlc3RfcmVz
dWx0c19yZWFkZXIgLT4gX3Rlc3RfcmVzdWx0c19yZWFkZXIuCisgICAgICAgIChBYnN0cmFjdEVh
cmx5V2FybmluZ1N5c3RlbS5hcmNoaXZlX2xhc3RfdGVzdF9yZXN1bHRzKTogX2xheW91dF90ZXN0
X3Jlc3VsdHNfcmVhZGVyIC0+IF90ZXN0X3Jlc3VsdHNfcmVhZGVyLgorICAgICAgICAoQWJzdHJh
Y3RFYXJseVdhcm5pbmdTeXN0ZW0uZ3JvdXApOiBUaGlzIGF0dHJpYnV0ZSBkZXRlcm1pbmVzIHRo
ZSB0eXBlIG9mIEVXUyAoZWcuIEpTQykuCisgICAgICAgIChBYnN0cmFjdEVhcmx5V2FybmluZ1N5
c3RlbS5sb2FkX2V3c19jbGFzc2VzKTogQWRkIF9ncm91cC4KKyAgICAgICAgKiBTY3JpcHRzL3dl
YmtpdHB5L3Rvb2wvY29tbWFuZHMvZWFybHl3YXJuaW5nc3lzdGVtX3VuaXR0ZXN0LnB5OgorICAg
ICAgICAoQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW1UZXN0LnRlc3RfZmFpbGluZ190ZXN0c19t
ZXNzYWdlLlRlc3RFV1MpOiBBZGQgX2dyb3VwLgorICAgICAgICAoQWJzdHJhY3RFYXJseVdhcm5p
bmdTeXN0ZW1UZXN0KTogQWRkIF9ncm91cCB2YXJpYWJsZS4KKyAgICAgICAgKEVhcmx5V2Fybmlu
Z1N5c3RlbVRlc3QuX2RlZmF1bHRfZXhwZWN0ZWRfbG9ncyk6IEFkZCBjaGVjay1wYXRjaC1yZWxl
dmFuY2Ugc3RlcCBhbmQgLS1ncm91cCBvcHRpb24uCisgICAgICAgICogU2NyaXB0cy93ZWJraXRw
eS90b29sL3N0ZXBzL19faW5pdF9fLnB5OiBBZGQgQ2hlY2tQYXRjaFJlbGV2YW5jZSBpbXBvcnQu
CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL2J1aWxkLnB5OgorICAgICAg
ICAoQnVpbGQub3B0aW9ucyk6IENoZWNrIGZvciBKU0MuCisgICAgICAgIChCdWlsZC5idWlsZCk6
IENoZWNrIGZvciBKU0MuCisgICAgICAgIChCdWlsZC5ydW4pOiBDaGVjayBmb3IgSlNDLgorICAg
ICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9jaGVja3BhdGNocmVsZXZhbmNlLnB5
OiBBZGRlZC4KKyAgICAgICAgKENoZWNrUGF0Y2hSZWxldmFuY2UpOiBBZGRlZC4KKyAgICAgICAg
KENoZWNrUGF0Y2hSZWxldmFuY2UuX2RvZXNfY29udGFpbl9jaGFuZ2VfaW5fcGF0aHMpOiBBYnN0
cmFjdCBmdW5jdGlvbiB0byBwZXJmb3JtIHJlZ2V4IG1hdGNoaW5nLgorICAgICAgICAoQ2hlY2tQ
YXRjaFJlbGV2YW5jZS5ydW4pOiBDaGVjayBpZiBjaGFuZ2VkIGZpbGVzIGluIHBhdGNoIGJlbG9u
ZyBpbiBjZXJ0YWluIGZvbGRlcnMuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL3N0
ZXBzL29wdGlvbnMucHk6CisgICAgICAgIChPcHRpb25zKTogQWRkIC0tZ3JvdXAgY29tbWFuZCBs
aW5lIG9wdGlvbi4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvcnVudGVz
dHMucHk6CisgICAgICAgIChSdW5UZXN0cy5vcHRpb25zKTogQWRkIGdyb3VwLgorICAgICAgICAo
UnVuVGVzdHMucnVuKTogQ2hlY2sgZm9yIEpTQy4KKyAgICAgICAgKFJ1blRlc3RzLl9ydW5fd2Vi
a2l0X3Rlc3RzKTogQ2hlY2sgZm9yIEpTQy4KKyAgICAgICAgKFJ1blRlc3RzKTogQWRkIF9ncm91
cCBhdHRyaWJ1dGUuCisgICAgICAgIChSdW5UZXN0cy5fcnVuX2phdmFzY3JpcHRjb3JlX3Rlc3Rz
KTogTmV3LgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9zdGVwc191bml0
dGVzdC5weTogVW5pdCB0ZXN0cy4KKwogMjAxNi0wOS0yNSAgR3l1eW91bmcgS2ltICA8Z3l1eW91
bmcua2ltQHdlYmtpdC5vcmc+CiAKICAgICAgICAgW0VGTF0gQWRqdXN0IEVGTCBpbmRlbnRhdGlv
biB0byBFRkwgTWluaUJyb3dzZXIKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
Y29tbW9uL2NoZWNrb3V0L3NjbS9zY21fbW9jay5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
Y29tbW9uL2NoZWNrb3V0L3NjbS9zY21fbW9jay5weQppbmRleCBjNWQxMGZjYjE4OWIwYThiNTE5
ZmE1NTYyNTAyMmE3MGM0ODZkNDRiLi45Nzc0ZWM4YWU4NzNhMWIwYjgzNzYwNzE4MDY2NzkyMTU4
MDllZWVjIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja291
dC9zY20vc2NtX21vY2sucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hl
Y2tvdXQvc2NtL3NjbV9tb2NrLnB5CkBAIC0xLDQgKzEsNSBAQAogIyBDb3B5cmlnaHQgKEMpIDIw
MTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDE3
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucyBhcmUKQEAgLTM3LDYgKzM4LDcgQEAgY2xhc3MgTW9ja1NDTShvYmplY3QpOgogICAgICAg
ICBzZWxmLmFkZGVkX3BhdGhzID0gc2V0KCkKICAgICAgICAgc2VsZi5fZmlsZXN5c3RlbSA9IGZp
bGVzeXN0ZW0gb3IgTW9ja0ZpbGVTeXN0ZW0oKQogICAgICAgICBzZWxmLl9leGVjdXRpdmUgPSBl
eGVjdXRpdmUgb3IgTW9ja0V4ZWN1dGl2ZSgpCisgICAgICAgIHNlbGYuX21vY2tDaGFuZ2VkRmls
ZXMgPSBbIk1vY2tGaWxlMSJdCiAKICAgICBkZWYgYWRkKHNlbGYsIGRlc3RpbmF0aW9uX3BhdGgp
OgogICAgICAgICBzZWxmLmFkZF9saXN0KFtkZXN0aW5hdGlvbl9wYXRoXSkKQEAgLTcxLDcgKzcz
LDcgQEAgY2xhc3MgTW9ja1NDTShvYmplY3QpOgogICAgICAgICByZXR1cm4gc2VsZi5fZmlsZXN5
c3RlbS5qb2luKHNlbGYuY2hlY2tvdXRfcm9vdCwgKmNvbXBzKQogCiAgICAgZGVmIGNoYW5nZWRf
ZmlsZXMoc2VsZiwgZ2l0X2NvbW1pdD1Ob25lKToKLSAgICAgICAgcmV0dXJuIFsiTW9ja0ZpbGUx
Il0KKyAgICAgICAgcmV0dXJuIHNlbGYuX21vY2tDaGFuZ2VkRmlsZXMKIAogICAgIGRlZiBjaGFu
Z2VkX2ZpbGVzX2Zvcl9yZXZpc2lvbihzZWxmLCByZXZpc2lvbik6CiAgICAgICAgIHJldHVybiBb
Ik1vY2tGaWxlMSJdCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9j
b25maWcvZXdzLmpzb24gYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvZXdz
Lmpzb24KaW5kZXggMzVkNDk4NWFiMGY5M2QxMjdiMzcyMWU0NjAxY2Q2ZDg5ZGZjY2YzYy4uZTUz
NDBmZTVjM2MyMWFlODFhZDFlZjdlMDNmN2ZiODFmMzgzOWNmZiAxMDA2NDQKLS0tIGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL2V3cy5qc29uCisrKyBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9ld3MuanNvbgpAQCAtNTAsNSArNTAsMTEgQEAKICAg
ICAgICAgInBvcnQiOiAibWFjIiwKICAgICAgICAgIm5hbWUiOiAibWFjLTMyYml0LWV3cyIsCiAg
ICAgICAgICJhcmNoaXRlY3R1cmUiOiAiaTM4NiIKKyAgICB9LAorICAgICJKU0MgRVdTIjogewor
ICAgICAgICAicG9ydCI6ICJtYWMiLAorICAgICAgICAibmFtZSI6ICJqc2MtZXdzIiwKKyAgICAg
ICAgImdyb3VwIjogImpzYyIsCisgICAgICAgICJydW5UZXN0cyI6IHRydWUKICAgICB9CiB9CmRp
ZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvcG9ydHMucHkg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvcG9ydHMucHkKaW5kZXggYTBk
NTBkY2I2ZWEwYjVmZGUwYjNjMTdlZjE1OWNlYWZlZTFhMmU5OC4uZDM3ZWQ5ZDFjNWUyNTUwZTQ4
ODM0ZTdlZjAwYmFlNGMyNGNiZDc4NCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9jb21tb24vY29uZmlnL3BvcnRzLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29t
bW9uL2NvbmZpZy9wb3J0cy5weQpAQCAtMSw2ICsxLDYgQEAKICMgQ29weXJpZ2h0IChDKSAyMDA5
LCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIyBDb3B5cmlnaHQgKEMpIDIwMTMg
Tm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgotIyBDb3B5cmln
aHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQg
KEMpIDIwMTUsIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtMTAzLDggKzEwMywyMSBAQCBjbGFzcyBEZXByZWNh
dGVkUG9ydChvYmplY3QpOgogICAgICAgICAgICAgY29tbWFuZC5hcHBlbmQoIi0tcmVsZWFzZSIp
CiAgICAgICAgIHJldHVybiBjb21tYW5kCiAKLSAgICBkZWYgcnVuX2phdmFzY3JpcHRjb3JlX3Rl
c3RzX2NvbW1hbmQoc2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmLnNjcmlwdF9zaGVsbF9jb21t
YW5kKCJydW4tamF2YXNjcmlwdGNvcmUtdGVzdHMiKQorICAgIGRlZiBidWlsZF9qc2NfY29tbWFu
ZChzZWxmLCBidWlsZF9zdHlsZT1Ob25lKToKKyAgICAgICAgY29tbWFuZCA9IHNlbGYuc2NyaXB0
X3NoZWxsX2NvbW1hbmQoImJ1aWxkLWpzYyIpCisgICAgICAgIGlmIGJ1aWxkX3N0eWxlID09ICJk
ZWJ1ZyI6CisgICAgICAgICAgICBjb21tYW5kLmFwcGVuZCgiLS1kZWJ1ZyIpCisgICAgICAgIGlm
IGJ1aWxkX3N0eWxlID09ICJyZWxlYXNlIjoKKyAgICAgICAgICAgIGNvbW1hbmQuYXBwZW5kKCIt
LXJlbGVhc2UiKQorICAgICAgICByZXR1cm4gY29tbWFuZAorCisgICAgZGVmIHJ1bl9qYXZhc2Ny
aXB0Y29yZV90ZXN0c19jb21tYW5kKHNlbGYsIGJ1aWxkX3N0eWxlPU5vbmUpOgorICAgICAgICBj
b21tYW5kID0gc2VsZi5zY3JpcHRfc2hlbGxfY29tbWFuZCgicnVuLWphdmFzY3JpcHRjb3JlLXRl
c3RzIikKKyAgICAgICAgY29tbWFuZC5hcHBlbmQoIi0tbm8tZmFpbC1mYXN0IikKKyAgICAgICAg
Y29tbWFuZC5hcHBlbmQoIi0tanNvbi1vdXRwdXQ9anNjX3Rlc3RfcmVzdWx0cy5qc29uIikKKyAg
ICAgICAgaWYgKGJ1aWxkX3N0eWxlID09ICJkZWJ1ZyIpOgorICAgICAgICAgICAgY29tbWFuZC5h
cHBlbmQoIi0tZGVidWciKQorICAgICAgICByZXR1cm4gY29tbWFuZAogCiAgICAgZGVmIHJ1bl93
ZWJraXRfdGVzdHNfY29tbWFuZChzZWxmLCBidWlsZF9zdHlsZT1Ob25lKToKICAgICAgICAgY29t
bWFuZCA9IHNlbGYuc2NyaXB0X3NoZWxsX2NvbW1hbmQoInJ1bi13ZWJraXQtdGVzdHMiKQpAQCAt
MTUwLDcgKzE2MywxMCBAQCBjbGFzcyBJT1NTaW11bGF0b3JXSzJQb3J0KERlcHJlY2F0ZWRQb3J0
KToKIGNsYXNzIE1hY1BvcnQoRGVwcmVjYXRlZFBvcnQpOgogICAgIHBvcnRfZmxhZ19uYW1lID0g
Im1hYyIKIAotICAgIGRlZiBydW5fd2Via2l0X3Rlc3RzX2NvbW1hbmQoc2VsZiwgYnVpbGRfc3R5
bGU9Tm9uZSk6CisgICAgZGVmIHJ1bl93ZWJraXRfdGVzdHNfY29tbWFuZChzZWxmLCBidWlsZF9z
dHlsZT1Ob25lLCB0ZXN0X3N1aXRlPU5vbmUpOgorICAgICAgICBpZiAodGVzdF9zdWl0ZSA9PSAi
anNjIik6CisgICAgICAgICAgICByZXR1cm4gc3VwZXIoTWFjUG9ydCwgc2VsZikucnVuX2phdmFz
Y3JpcHRjb3JlX3Rlc3RzX2NvbW1hbmQoYnVpbGRfc3R5bGUpCisKICAgICAgICAgY29tbWFuZCA9
IHN1cGVyKE1hY1BvcnQsIHNlbGYpLnJ1bl93ZWJraXRfdGVzdHNfY29tbWFuZChidWlsZF9zdHls
ZSkKICAgICAgICAgY29tbWFuZC5hcHBlbmQoIi0tZHVtcC1yZW5kZXItdHJlZSIpCiAgICAgICAg
IHJldHVybiBjb21tYW5kCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1v
bi9jb25maWcvcG9ydHNfbW9jay5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2Nv
bmZpZy9wb3J0c19tb2NrLnB5CmluZGV4IDYxNzQzZGViYjRlYmVlMzc1NmJhN2MyMGYwMTQ4MjM1
NDBkMmRjYTYuLmNhMWIxOGEzMTA2ODQyM2JkY2UwN2NkZWI3ZDdkN2QxOTlmNDAwYWIgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9wb3J0c19tb2NrLnB5
CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9wb3J0c19tb2NrLnB5
CkBAIC0xLDQgKzEsNSBAQAogIyBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTQ5LDcgKzUw
LDcgQEAgY2xhc3MgTW9ja1BvcnQob2JqZWN0KToKICAgICBkZWYgcnVuX3BlcmxfdW5pdHRlc3Rz
X2NvbW1hbmQoc2VsZik6CiAgICAgICAgIHJldHVybiBbJ21vY2stdGVzdC13ZWJraXRwZXJsJ10K
IAotICAgIGRlZiBydW5famF2YXNjcmlwdGNvcmVfdGVzdHNfY29tbWFuZChzZWxmKToKKyAgICBk
ZWYgcnVuX2phdmFzY3JpcHRjb3JlX3Rlc3RzX2NvbW1hbmQoc2VsZiwgYnVpbGRfc3R5bGU9Tm9u
ZSk6CiAgICAgICAgIHJldHVybiBbJ21vY2stcnVuLWphdmFjcmlwdGNvcmUtdGVzdHMnXQogCiAg
ICAgZGVmIHJ1bl93ZWJraXRfdGVzdHNfY29tbWFuZChzZWxmLCBidWlsZF9zdHlsZT1Ob25lKToK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9wb3J0c191
bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9wb3J0c191
bml0dGVzdC5weQppbmRleCAwOGQ1NDUyMzZkYTM3MDNlOTI4ZjFjZWVkMWRkOTEwMmQ5Yjg2MjJl
Li4xNmNkN2Y5MjgyNTFiYmM5OTZjYjY0NmU0MzU5ZDczZmRiNTM1YjI2IDEwMDY0NAotLS0gYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvcG9ydHNfdW5pdHRlc3QucHkKKysr
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL3BvcnRzX3VuaXR0ZXN0LnB5
CkBAIC0xLDQgKzEsNSBAQAogIyBDb3B5cmlnaHQgKGMpIDIwMDksIEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC0zOSw2ICs0
MCwxMCBAQCBjbGFzcyBEZXByZWNhdGVkUG9ydFRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKE1hY1BvcnQoKS5idWlsZF93ZWJraXRfY29tbWFuZChidWls
ZF9zdHlsZT0iZGVidWciKSwgRGVwcmVjYXRlZFBvcnQoKS5zY3JpcHRfc2hlbGxfY29tbWFuZCgi
YnVpbGQtd2Via2l0IikgKyBbIi0tZGVidWciXSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChN
YWNQb3J0KCkuYnVpbGRfd2Via2l0X2NvbW1hbmQoYnVpbGRfc3R5bGU9InJlbGVhc2UiKSwgRGVw
cmVjYXRlZFBvcnQoKS5zY3JpcHRfc2hlbGxfY29tbWFuZCgiYnVpbGQtd2Via2l0IikgKyBbIi0t
cmVsZWFzZSJdKQogCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTWFjUG9ydCgpLmJ1aWxkX2pz
Y19jb21tYW5kKCksIERlcHJlY2F0ZWRQb3J0KCkuc2NyaXB0X3NoZWxsX2NvbW1hbmQoImJ1aWxk
LWpzYyIpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE1hY1BvcnQoKS5idWlsZF9qc2NfY29t
bWFuZChidWlsZF9zdHlsZT0icmVsZWFzZSIpLCBEZXByZWNhdGVkUG9ydCgpLnNjcmlwdF9zaGVs
bF9jb21tYW5kKCJidWlsZC1qc2MiKSArIFsiLS1yZWxlYXNlIl0pCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoTWFjUG9ydCgpLmJ1aWxkX2pzY19jb21tYW5kKGJ1aWxkX3N0eWxlPSJkZWJ1ZyIp
LCBEZXByZWNhdGVkUG9ydCgpLnNjcmlwdF9zaGVsbF9jb21tYW5kKCJidWlsZC1qc2MiKSArIFsi
LS1kZWJ1ZyJdKQorCiAgICAgZGVmIHRlc3RfZ3RrX3drMl9wb3J0KHNlbGYpOgogICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKEd0a1dLMlBvcnQoKS5mbGFnKCksICItLXBvcnQ9Z3RrLXdrMiIpCiAg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoR3RrV0syUG9ydCgpLnJ1bl93ZWJraXRfdGVzdHNfY29t
bWFuZCgpLCBEZXByZWNhdGVkUG9ydCgpLnNjcmlwdF9zaGVsbF9jb21tYW5kKCJydW4td2Via2l0
LXRlc3RzIikgKyBbIi0tZ3RrIl0pCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2NvbW1vbi9uZXQvanNjdGVzdHJlc3VsdHMucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2Nv
bW1vbi9uZXQvanNjdGVzdHJlc3VsdHMucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDcxNTUxNzVlNDM2MjI0YmQw
ODY5MTI1ZTM5NTZkNzUyYzIxYWFmMQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvY29tbW9uL25ldC9qc2N0ZXN0cmVzdWx0cy5weQpAQCAtMCwwICsxLDc5IEBACisj
IENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisj
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisjIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SCisjIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisjIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisj
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK2ltcG9ydCBqc29uCitpbXBv
cnQgbG9nZ2luZworCitfbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18pCisKKworY2xh
c3MgSlNDVGVzdFJlc3VsdHMob2JqZWN0KToKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgcmVz
dWx0c19mcm9tX3N0cmluZyhjbHMsIHN0cmluZyk6CisgICAgICAgIGlmIG5vdCBzdHJpbmc6Cisg
ICAgICAgICAgICByZXR1cm4gTm9uZQorCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHBhcnNl
ZF9yZXN1bHRzID0ganNvbi5sb2FkcyhzdHJpbmcpCisgICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9y
OgorICAgICAgICAgICAgcmV0dXJuIE5vbmUKKworICAgICAgICBpZiAnYWxsQXBpVGVzdHNQYXNz
ZWQnIG5vdCBpbiBwYXJzZWRfcmVzdWx0cyBvciAnc3RyZXNzVGVzdEZhaWx1cmVzJyBub3QgaW4g
cGFyc2VkX3Jlc3VsdHM6CisgICAgICAgICAgICByZXR1cm4gTm9uZQorCisgICAgICAgIHJldHVy
biBjbHMocGFyc2VkX3Jlc3VsdHNbJ2FsbEFwaVRlc3RzUGFzc2VkJ10sIHBhcnNlZF9yZXN1bHRz
WydzdHJlc3NUZXN0RmFpbHVyZXMnXSkKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBhbGxfYXBp
X3Rlc3RzX3Bhc3NlZCwgc3RyZXNzX3Rlc3RfZmFpbHVyZXMpOgorICAgICAgICBzZWxmLl9hbGxf
YXBpX3Rlc3RzX3Bhc3NlZCA9IGFsbF9hcGlfdGVzdHNfcGFzc2VkCisgICAgICAgIHNlbGYuX3N0
cmVzc190ZXN0X2ZhaWx1cmVzID0gc3RyZXNzX3Rlc3RfZmFpbHVyZXMKKworICAgICAgICBzZWxm
Ll90ZXN0X3Jlc3VsdHMgPSBzdHJlc3NfdGVzdF9mYWlsdXJlc1s6XQorICAgICAgICBpZiBub3Qg
c2VsZi5fYWxsX2FwaV90ZXN0c19wYXNzZWQ6CisgICAgICAgICAgICBzZWxmLl90ZXN0X3Jlc3Vs
dHMuYXBwZW5kKCJhcGlUZXN0cyIpCisKKyAgICBkZWYgZXF1YWxzKHNlbGYsIG90aGVyKToKKyAg
ICAgICAgcmV0dXJuIHNlbGYuX2FsbF9hcGlfdGVzdHNfcGFzc2VkID09IG90aGVyLl9hbGxfYXBp
X3Rlc3RzX3Bhc3NlZCBhbmQgc2V0KHNlbGYuX3N0cmVzc190ZXN0X2ZhaWx1cmVzKSA9PSBzZXQo
b3RoZXIuX3N0cmVzc190ZXN0X2ZhaWx1cmVzKQorCisgICAgZGVmIGlzX3N1YnNldChzZWxmLCBv
dGhlcik6CisgICAgICAgIHJldHVybiBzZXQoc2VsZi50ZXN0X3Jlc3VsdHMoKSkgPD0gc2V0KG90
aGVyLnRlc3RfcmVzdWx0cygpKQorCisgICAgZGVmIHN0cmVzc190ZXN0X2ZhaWx1cmVzKHNlbGYp
OgorICAgICAgICByZXR1cm4gc2VsZi5fc3RyZXNzX3Rlc3RfZmFpbHVyZXMKKworICAgIGRlZiBh
bGxfYXBpX3Rlc3RzX3Bhc3NlZChzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX2FsbF9hcGlf
dGVzdHNfcGFzc2VkCisKKyAgICBkZWYgYWxsX3Bhc3NlZChzZWxmKToKKyAgICAgICAgcmV0dXJu
IHNlbGYuX2FsbF9hcGlfdGVzdHNfcGFzc2VkIGFuZCBub3Qgc2VsZi5fc3RyZXNzX3Rlc3RfZmFp
bHVyZXMKKworICAgIGRlZiBmYWlsaW5nX3Rlc3RfcmVzdWx0cyhzZWxmKToKKyAgICAgICAgcmV0
dXJuIHNlbGYuc3RyZXNzX3Rlc3RfZmFpbHVyZXMoKQorCisgICAgZGVmIHRlc3RfcmVzdWx0cyhz
ZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX3Rlc3RfcmVzdWx0cworCisgICAgZGVmIGZhaWxp
bmdfdGVzdHMoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl90ZXN0X3Jlc3VsdHMKKworICAg
ICMgTm8gZGVmaW5lZCBmYWlsdXJlIGxpbWl0IGZvciBKU0MuCisgICAgZGVmIGRpZF9leGNlZWRf
dGVzdF9mYWlsdXJlX2xpbWl0KHNlbGYpOgorICAgICAgICByZXR1cm4gRmFsc2UKZGlmZiAtLWdp
dCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9qc2N0ZXN0cmVzdWx0c191bml0
dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9qc2N0ZXN0cmVzdWx0
c191bml0dGVzdC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42YjFjN2U0ZmUwY2E2ZDdiYmU1MmU1OWEyMGVhZGE2
NTE4Njk0MTBjCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21t
b24vbmV0L2pzY3Rlc3RyZXN1bHRzX3VuaXR0ZXN0LnB5CkBAIC0wLDAgKzEsNTQgQEAKKyMgQ29w
eXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIwor
IyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IKKyMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyMgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworaW1wb3J0IHVuaXR0ZXN0CisKK2Zy
b20gd2Via2l0cHkuY29tbW9uLm5ldC5qc2N0ZXN0cmVzdWx0cyBpbXBvcnQgSlNDVGVzdFJlc3Vs
dHMKKworCitjbGFzcyBKU0NUZXN0UmVzdWx0c1Rlc3QodW5pdHRlc3QuVGVzdENhc2UpOgorICAg
IGRlZiB0ZXN0X3Jlc3VsdHNfZnJvbV9zdHJpbmcoc2VsZik6CisgICAgICAgIG5vbmVfaXRlbSA9
IE5vbmUKKyAgICAgICAgZW1wdHlfc3RyaW5nID0gIiIKKyAgICAgICAgaW52YWxpZF9qc29uID0g
J3siYWxsQXBpVGVzdHNQYXNzZWQiOicKKyAgICAgICAgaW5jb21wbGV0ZV9qc29uX3YxID0gJ3si
YWxsQXBpVGVzdHNQYXNzZWQiOiB0cnVlfScKKyAgICAgICAgaW5jb21wbGV0ZV9qc29uX3YyID0g
J3sic3RyZXNzVGVzdEZhaWx1cmVzIjpbXX0nCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9u
ZSwgSlNDVGVzdFJlc3VsdHMucmVzdWx0c19mcm9tX3N0cmluZyhub25lX2l0ZW0pKQorICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIEpTQ1Rlc3RSZXN1bHRzLnJlc3VsdHNfZnJvbV9zdHJp
bmcoZW1wdHlfc3RyaW5nKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCBKU0NUZXN0
UmVzdWx0cy5yZXN1bHRzX2Zyb21fc3RyaW5nKGludmFsaWRfanNvbikpCisgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoTm9uZSwgSlNDVGVzdFJlc3VsdHMucmVzdWx0c19mcm9tX3N0cmluZyhpbmNv
bXBsZXRlX2pzb25fdjEpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIEpTQ1Rlc3RS
ZXN1bHRzLnJlc3VsdHNfZnJvbV9zdHJpbmcoaW5jb21wbGV0ZV9qc29uX3YyKSkKKworICAgICAg
ICBub19mYWlsdXJlc19zdHJpbmcgPSAneyJhbGxBcGlUZXN0c1Bhc3NlZCI6IHRydWUsICJzdHJl
c3NUZXN0RmFpbHVyZXMiOltdfScKKyAgICAgICAgbm9fZmFpbHVyZXNfcmVzdWx0cyA9IEpTQ1Rl
c3RSZXN1bHRzKFRydWUsIFtdKQorICAgICAgICBzZWxmLmFzc2VydFRydWUobm9fZmFpbHVyZXNf
cmVzdWx0cy5lcXVhbHMoSlNDVGVzdFJlc3VsdHMucmVzdWx0c19mcm9tX3N0cmluZyhub19mYWls
dXJlc19zdHJpbmcpKSkKKworICAgICAgICBhcGlfdGVzdF9mYWlsdXJlc19zdHJpbmcgPSAneyJh
bGxBcGlUZXN0c1Bhc3NlZCI6IGZhbHNlLCAic3RyZXNzVGVzdEZhaWx1cmVzIjpbXX0nCisgICAg
ICAgIGFwaV90ZXN0X2ZhaWx1cmVzX3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhGYWxzZSwgW10p
CisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShhcGlfdGVzdF9mYWlsdXJlc19yZXN1bHRzLmVxdWFs
cyhKU0NUZXN0UmVzdWx0cy5yZXN1bHRzX2Zyb21fc3RyaW5nKGFwaV90ZXN0X2ZhaWx1cmVzX3N0
cmluZykpKQorCisgICAgICAgIG1hbnlfZmFpbHVyZXNfc3RyaW5nID0gJ3siYWxsQXBpVGVzdHNQ
YXNzZWQiOiBmYWxzZSwgInN0cmVzc1Rlc3RGYWlsdXJlcyI6WyJlczYueWFtbC9lczYvdHlwZWRf
YXJyYXlzX0ludDE2QXJyYXkuanMuZGVmYXVsdCIsICJlczYueWFtbC9lczYvdHlwZWRfYXJyYXlz
X0ludDhBcnJheS5qcy5kZWZhdWx0Il19JworICAgICAgICBtYW55X2ZhaWx1cmVzX3Jlc3VsdHMg
PSBKU0NUZXN0UmVzdWx0cyhGYWxzZSwgWyJlczYueWFtbC9lczYvdHlwZWRfYXJyYXlzX0ludDE2
QXJyYXkuanMuZGVmYXVsdCIsICJlczYueWFtbC9lczYvdHlwZWRfYXJyYXlzX0ludDhBcnJheS5q
cy5kZWZhdWx0Il0pCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtYW55X2ZhaWx1cmVzX3Jlc3Vs
dHMuZXF1YWxzKEpTQ1Rlc3RSZXN1bHRzLnJlc3VsdHNfZnJvbV9zdHJpbmcobWFueV9mYWlsdXJl
c19zdHJpbmcpKSkKKworICAgICAgICBzZWxmLmFzc2VydEZhbHNlKG5vX2ZhaWx1cmVzX3Jlc3Vs
dHMgPT0gYXBpX3Rlc3RfZmFpbHVyZXNfcmVzdWx0cykKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxz
ZShhcGlfdGVzdF9mYWlsdXJlc19yZXN1bHRzID09IG1hbnlfZmFpbHVyZXNfcmVzdWx0cykKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvZWFybHl3YXJuaW5nc3lz
dGVtdGFzay5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvZWFybHl3YXJuaW5n
c3lzdGVtdGFzay5weQppbmRleCBmYzMwOGI0M2QxZDE3MmFiNzNiMGUzYWY4MGQxYjEzOWRkM2Mx
MDMyLi5lY2ZhY2QwMTFiZTg4M2I0YmIxZTVjN2Q3ZGZmZGJkY2I0NTlkZTM1IDEwMDY0NAotLS0g
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2Vhcmx5d2FybmluZ3N5c3RlbXRhc2su
cHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9lYXJseXdhcm5pbmdzeXN0
ZW10YXNrLnB5CkBAIC0xLDQgKzEsNSBAQAogIyBDb3B5cmlnaHQgKGMpIDIwMTEgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAg
LTI2LDcgKzI3LDcgQEAKICMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKLWZyb20gd2Vi
a2l0cHkudG9vbC5ib3QucGF0Y2hhbmFseXNpc3Rhc2sgaW1wb3J0IFBhdGNoQW5hbHlzaXNUYXNr
LCBQYXRjaEFuYWx5c2lzVGFza0RlbGVnYXRlLCBVbmFibGVUb0FwcGx5UGF0Y2gsIFBhdGNoSXNO
b3RWYWxpZAorZnJvbSB3ZWJraXRweS50b29sLmJvdC5wYXRjaGFuYWx5c2lzdGFzayBpbXBvcnQg
UGF0Y2hBbmFseXNpc1Rhc2ssIFBhdGNoQW5hbHlzaXNUYXNrRGVsZWdhdGUsIFVuYWJsZVRvQXBw
bHlQYXRjaCwgUGF0Y2hJc05vdFZhbGlkLCBQYXRjaElzTm90QXBwbGljYWJsZQogCiAKIGNsYXNz
IEVhcmx5V2FybmluZ1N5c3RlbVRhc2tEZWxlZ2F0ZShQYXRjaEFuYWx5c2lzVGFza0RlbGVnYXRl
KToKQEAgLTU4LDYgKzU5LDggQEAgY2xhc3MgRWFybHlXYXJuaW5nU3lzdGVtVGFzayhQYXRjaEFu
YWx5c2lzVGFzayk6CiAgICAgICAgICAgICByZXR1cm4gRmFsc2UKICAgICAgICAgaWYgbm90IHNl
bGYuX2FwcGx5KCk6CiAgICAgICAgICAgICByYWlzZSBVbmFibGVUb0FwcGx5UGF0Y2goc2VsZi5f
cGF0Y2gpCisgICAgICAgIGlmIG5vdCBzZWxmLl9jaGVja19wYXRjaF9yZWxldmFuY2UoKToKKyAg
ICAgICAgICAgIHJhaXNlIFBhdGNoSXNOb3RBcHBsaWNhYmxlKHNlbGYuX3BhdGNoKQogICAgICAg
ICBpZiBub3Qgc2VsZi5fYnVpbGQoKToKICAgICAgICAgICAgIGlmIG5vdCBzZWxmLl9idWlsZF93
aXRob3V0X3BhdGNoKCk6CiAgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCmRpZmYgLS1naXQg
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2pzY2V3c191bml0dGVzdC5weSBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvanNjZXdzX3VuaXR0ZXN0LnB5Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjg4YjgyMjM3ZjUwMzRiNDNjMDU0Y2NkZTQ0NzJlZDZjODdmN2ZkYjgKLS0tIC9kZXYvbnVs
bAorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2pzY2V3c191bml0dGVzdC5w
eQpAQCAtMCwwICsxLDE1NSBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6
CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisjIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyMgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorIyBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorCitpbXBvcnQgbG9nZ2luZworaW1wb3J0IHVuaXR0ZXN0CisKK2Zyb20gd2Via2l0cHkuY29t
bW9uLm5ldC5qc2N0ZXN0cmVzdWx0cyBpbXBvcnQgSlNDVGVzdFJlc3VsdHMKK2Zyb20gd2Via2l0
cHkuY29tbW9uLnN5c3RlbS5leGVjdXRpdmUgaW1wb3J0IFNjcmlwdEVycm9yCitmcm9tIHdlYmtp
dHB5LnRvb2wuYm90LnBhdGNoYW5hbHlzaXN0YXNrIGltcG9ydCAqCitmcm9tIHdlYmtpdHB5LnRv
b2wuY29tbWFuZHMuZWFybHl3YXJuaW5nc3lzdGVtIGltcG9ydCBBYnN0cmFjdEVhcmx5V2Fybmlu
Z1N5c3RlbQorZnJvbSB3ZWJraXRweS50b29sLm1vY2t0b29sIGltcG9ydCBNb2NrVG9vbAorCitf
bG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18pCisKKworY2xhc3MgTW9ja1BhdGNoQW5h
bHlzaXNUYXNrKFBhdGNoQW5hbHlzaXNUYXNrKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgZGVs
ZWdhdGUsIHBhdGNoLCBmaXJzdF90ZXN0X2FsbF9wYXNzZWQpOgorICAgICAgICBzZWxmLl9kZWxl
Z2F0ZSA9IGRlbGVnYXRlCisgICAgICAgIHNlbGYuX3BhdGNoID0gcGF0Y2gKKyAgICAgICAgc2Vs
Zi5fc2NyaXB0X2Vycm9yID0gTm9uZQorICAgICAgICBzZWxmLl9yZXN1bHRzX2FyY2hpdmVfZnJv
bV9wYXRjaF90ZXN0X3J1biA9IE5vbmUKKyAgICAgICAgc2VsZi5fcmVzdWx0c19mcm9tX3BhdGNo
X3Rlc3RfcnVuID0gTm9uZQorICAgICAgICBzZWxmLmVycm9yID0gTm9uZQorICAgICAgICBzZWxm
Ll9maXJzdF90ZXN0X2FsbF9wYXNzZWQgPSBmaXJzdF90ZXN0X2FsbF9wYXNzZWQKKyAgICAgICAg
c2VsZi5fdGVzdF9ydW5fY291bnQgPSAwCisKKyAgICBkZWYgX3Rlc3Qoc2VsZik6CisgICAgICAg
IHNlbGYuX3Rlc3RfcnVuX2NvdW50ICs9IDEKKworICAgICAgICBpZiBzZWxmLl9maXJzdF90ZXN0
X2FsbF9wYXNzZWQgPT0gVHJ1ZToKKyAgICAgICAgICAgIHJldHVybiBUcnVlCisgICAgICAgIGVs
c2U6CisgICAgICAgICAgICBzZWxmLl9zY3JpcHRfZXJyb3IgPSBTY3JpcHRFcnJvcigiUmVncmVz
c2lvbiB0ZXN0IikKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgZGVmIF9idWlsZF9h
bmRfdGVzdF93aXRob3V0X3BhdGNoKHNlbGYpOgorICAgICAgICBzZWxmLl90ZXN0X3J1bl9jb3Vu
dCArPSAxCisgICAgICAgIHJldHVybiBUcnVlCisKKyAgICBkZWYgdmFsaWRhdGUoc2VsZik6Cisg
ICAgICAgIHJldHVybiBUcnVlCisKKyAgICBkZWYgdGVzdF9ydW5fY291bnQoc2VsZik6CisgICAg
ICAgIHJldHVybiBzZWxmLl90ZXN0X3J1bl9jb3VudAorCisKKyMgVGhpcyBpcyB0aGUgZGVsZWdh
dGUgdG8gYmUgdXNlZCB3aXRoIE1vY2tQYXRjaEFuYWx5c2lzVGFzaywgYWJvdmUuCitjbGFzcyBN
b2NrSlNDRWFybHlXYXJuaW5nU3lzdGVtKEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtKToKKyAg
ICBkZWYgX19pbml0X18oc2VsZiwgZmlyc3RfdGVzdF9yZXN1bHRzLCBjbGVhbl90ZXN0X3Jlc3Vs
dHMpOgorICAgICAgICBBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbS5fX2luaXRfXyhzZWxmKQor
ICAgICAgICBzZWxmLl9ncm91cCA9ICJqc2MiCisgICAgICAgIHNlbGYuX3Jlc3VsdHNfaW5fb3Jk
ZXIgPSBbY2xlYW5fdGVzdF9yZXN1bHRzLCBmaXJzdF90ZXN0X3Jlc3VsdHNdCisKKyAgICBkZWYg
dGVzdF9yZXN1bHRzKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5fcmVzdWx0c19pbl9vcmRl
ci5wb3AoKQorCisKK2NsYXNzIEpTQ0Vhcmx5V2FybmluZ1N5c3RlbVRlc3QodW5pdHRlc3QuVGVz
dENhc2UpOgorICAgIGRlZiBfY3JlYXRlX3Rhc2soc2VsZiwgZmlyc3RfdGVzdF9yZXN1bHRzLCBj
bGVhbl90ZXN0X3Jlc3VsdHMpOgorICAgICAgICBxdWV1ZSA9IE1vY2tKU0NFYXJseVdhcm5pbmdT
eXN0ZW0oZmlyc3RfdGVzdF9yZXN1bHRzLCBjbGVhbl90ZXN0X3Jlc3VsdHMpCisgICAgICAgIHRv
b2wgPSBNb2NrVG9vbChsb2dfZXhlY3V0aXZlPVRydWUpCisgICAgICAgIHBhdGNoID0gdG9vbC5i
dWdzLmZldGNoX2F0dGFjaG1lbnQoMTAwMDApCisgICAgICAgIHBhdGNoX3Bhc3NlZF9hbGxfdGVz
dHMgPSBGYWxzZSBpZiBmaXJzdF90ZXN0X3Jlc3VsdHMgaXMgTm9uZSBlbHNlIGZpcnN0X3Rlc3Rf
cmVzdWx0cy5hbGxfcGFzc2VkKCkKKyAgICAgICAgcmV0dXJuIE1vY2tQYXRjaEFuYWx5c2lzVGFz
ayhxdWV1ZSwgcGF0Y2gsIHBhdGNoX3Bhc3NlZF9hbGxfdGVzdHMpCisKKyAgICBkZWYgdGVzdF9z
dWNjZXNzX2Nhc2Uoc2VsZik6CisgICAgICAgIGZpcnN0X3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RS
ZXN1bHRzKFRydWUsIFtdKQorICAgICAgICBjbGVhbl90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVz
dWx0cyhUcnVlLCBbXSkKKyAgICAgICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90YXNrKGZpcnN0X3Rl
c3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKQorCisgICAgICAgIHJldHVybl92YWx1ZSA9
IHRhc2suX3Rlc3RfcGF0Y2goKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRhc2sudGVzdF9y
dW5fY291bnQoKSwgMSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXR1cm5fdmFsdWUsIFRy
dWUpCisKKyAgICBkZWYgdGVzdF90ZXN0X2ZhaWx1cmUoc2VsZik6CisgICAgICAgIGZpcnN0X3Rl
c3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFsnRmFpbC5qcyddKQorICAgICAgICBj
bGVhbl90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbXSkKKyAgICAgICAgdGFz
ayA9IHNlbGYuX2NyZWF0ZV90YXNrKGZpcnN0X3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1
bHRzKQorCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoU2NyaXB0RXJyb3IpOgorICAg
ICAgICAgICAgcmV0dXJuX3ZhbHVlID0gdGFzay5fdGVzdF9wYXRjaCgpCisgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwodGFzay50ZXN0X3J1bl9jb3VudCgpLCAyKQorCisgICAgZGVmIHRlc3RfZml4
KHNlbGYpOgorICAgICAgICBmaXJzdF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVl
LCBbXSkKKyAgICAgICAgY2xlYW5fdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwg
WydGYWlsLmpzJ10pCisgICAgICAgIHRhc2sgPSBzZWxmLl9jcmVhdGVfdGFzayhmaXJzdF90ZXN0
X3Jlc3VsdHMsIGNsZWFuX3Rlc3RfcmVzdWx0cykKKworICAgICAgICByZXR1cm5fdmFsdWUgPSB0
YXNrLl90ZXN0X3BhdGNoKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0YXNrLnRlc3RfcnVu
X2NvdW50KCksIDEpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmV0dXJuX3ZhbHVlLCBUcnVl
KQorCisgICAgZGVmIHRlc3RfaW5lZmZlY3RpdmVfcGF0Y2goc2VsZik6CisgICAgICAgIGZpcnN0
X3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKEZhbHNlLCBbJ2ZhaWx1cmUxLmpzJywgJ2Zh
aWx1cmUyLmpzJ10pCisgICAgICAgIGNsZWFuX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRz
KEZhbHNlLCBbJ2ZhaWx1cmUxLmpzJywgJ2ZhaWx1cmUyLmpzJ10pCisgICAgICAgIHRhc2sgPSBz
ZWxmLl9jcmVhdGVfdGFzayhmaXJzdF90ZXN0X3Jlc3VsdHMsIGNsZWFuX3Rlc3RfcmVzdWx0cykK
KworICAgICAgICByZXR1cm5fdmFsdWUgPSB0YXNrLl90ZXN0X3BhdGNoKCkKKyAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbCh0YXNrLnRlc3RfcnVuX2NvdW50KCksIDIpCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwocmV0dXJuX3ZhbHVlLCBUcnVlKQorCisgICAgZGVmIHRlc3RfcGFydGlhbGx5X2Vm
ZmVjdGl2ZV9wYXRjaChzZWxmKToKKyAgICAgICAgZmlyc3RfdGVzdF9yZXN1bHRzID0gSlNDVGVz
dFJlc3VsdHMoVHJ1ZSwgWydmYWlsdXJlMi5qcyddKQorICAgICAgICBjbGVhbl90ZXN0X3Jlc3Vs
dHMgPSBKU0NUZXN0UmVzdWx0cyhGYWxzZSwgWydmYWlsdXJlMS5qcycsICdmYWlsdXJlMi5qcydd
KQorICAgICAgICB0YXNrID0gc2VsZi5fY3JlYXRlX3Rhc2soZmlyc3RfdGVzdF9yZXN1bHRzLCBj
bGVhbl90ZXN0X3Jlc3VsdHMpCisKKyAgICAgICAgcmV0dXJuX3ZhbHVlID0gdGFzay5fdGVzdF9w
YXRjaCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGFzay50ZXN0X3J1bl9jb3VudCgpLCAy
KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJldHVybl92YWx1ZSwgVHJ1ZSkKKworICAgIGRl
ZiB0ZXN0X2RpZmZlcmVudF90ZXN0X2ZhaWx1cmVzKHNlbGYpOgorICAgICAgICBmaXJzdF90ZXN0
X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhGYWxzZSwgW10pCisgICAgICAgIGNsZWFuX3Rlc3Rf
cmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFsnZmFpbHVyZTEuanMnLCAnZmFpbHVyZTIu
anMnXSkKKyAgICAgICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90YXNrKGZpcnN0X3Rlc3RfcmVzdWx0
cywgY2xlYW5fdGVzdF9yZXN1bHRzKQorCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMo
U2NyaXB0RXJyb3IpOgorICAgICAgICAgICAgcmV0dXJuX3ZhbHVlID0gdGFzay5fdGVzdF9wYXRj
aCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGFzay50ZXN0X3J1bl9jb3VudCgpLCAyKQor
CisgICAgZGVmIHRlc3RfZmlyc3RfcmVzdWx0c19jb3VsZF9ub3RfYmVfcmVhZChzZWxmKToKKyAg
ICAgICAgZmlyc3RfdGVzdF9yZXN1bHRzID0gTm9uZQorICAgICAgICBjbGVhbl90ZXN0X3Jlc3Vs
dHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbXSkKKyAgICAgICAgdGFzayA9IHNlbGYuX2NyZWF0
ZV90YXNrKGZpcnN0X3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKQorCisgICAgICAg
IHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoU2NyaXB0RXJyb3IpOgorICAgICAgICAgICAgcmV0dXJu
X3ZhbHVlID0gdGFzay5fdGVzdF9wYXRjaCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGFz
ay50ZXN0X3J1bl9jb3VudCgpLCAxKQorCisgICAgZGVmIHRlc3RfY2xlYW5fcmVzdWx0c19jb3Vs
ZF9ub3RfYmVfcmVhZChzZWxmKToKKyAgICAgICAgZmlyc3RfdGVzdF9yZXN1bHRzID0gSlNDVGVz
dFJlc3VsdHMoVHJ1ZSwgWydmYWlsdXJlMi5qcyddKQorICAgICAgICBjbGVhbl90ZXN0X3Jlc3Vs
dHMgPSBOb25lCisgICAgICAgIHRhc2sgPSBzZWxmLl9jcmVhdGVfdGFzayhmaXJzdF90ZXN0X3Jl
c3VsdHMsIGNsZWFuX3Rlc3RfcmVzdWx0cykKKworICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFp
c2VzKFNjcmlwdEVycm9yKToKKyAgICAgICAgICAgIHJldHVybl92YWx1ZSA9IHRhc2suX3Rlc3Rf
cGF0Y2goKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRhc2sudGVzdF9ydW5fY291bnQoKSwg
MikKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvanNjdGVzdHJl
c3VsdHNyZWFkZXIucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2pzY3Rlc3Ry
ZXN1bHRzcmVhZGVyLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhhYzUzMmIxOWU3ZWE1NWQzNWI5MTM5YjRmMjA5
OTgwNWJhMDA0OWUKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rv
b2wvYm90L2pzY3Rlc3RyZXN1bHRzcmVhZGVyLnB5CkBAIC0wLDAgKzEsNDcgQEAKKyMgQ29weXJp
Z2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMg
Mi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
CisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IKKyMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyMgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworaW1wb3J0IGxvZ2dpbmcKKworZnJvbSB3
ZWJraXRweS5jb21tb24ubmV0LmpzY3Rlc3RyZXN1bHRzIGltcG9ydCBKU0NUZXN0UmVzdWx0cwor
CitfbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18pCisKKworY2xhc3MgSlNDVGVzdFJl
c3VsdHNSZWFkZXIob2JqZWN0KToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgaG9zdCwgcmVzdWx0
c19kaXJlY3RvcnkpOgorICAgICAgICBzZWxmLl9ob3N0ID0gaG9zdAorICAgICAgICBzZWxmLl9y
ZXN1bHRzX2RpcmVjdG9yeSA9IHJlc3VsdHNfZGlyZWN0b3J5CisKKyAgICBkZWYgX3JlYWRfZmls
ZV9jb250ZW50cyhzZWxmLCBwYXRoKToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcmV0dXJu
IHNlbGYuX2hvc3QuZmlsZXN5c3RlbS5yZWFkX3RleHRfZmlsZShwYXRoKQorICAgICAgICBleGNl
cHQgSU9FcnJvciwgZTogICMgRmlsZSBkb2VzIG5vdCBleGlzdCBvciBjYW4ndCBiZSByZWFkLgor
ICAgICAgICAgICAgcmV0dXJuIE5vbmUKKworICAgIGRlZiBfY3JlYXRlX2pzY190ZXN0X3Jlc3Vs
dHMoc2VsZik6CisgICAgICAgIHJlc3VsdHNfcGF0aCA9IHNlbGYuX2hvc3QuZmlsZXN5c3RlbS5q
b2luKHNlbGYuX3Jlc3VsdHNfZGlyZWN0b3J5LCAianNjX3Rlc3RfcmVzdWx0cy5qc29uIikKKyAg
ICAgICAgY29udGVudHMgPSBzZWxmLl9yZWFkX2ZpbGVfY29udGVudHMocmVzdWx0c19wYXRoKQor
ICAgICAgICByZXR1cm4gSlNDVGVzdFJlc3VsdHMucmVzdWx0c19mcm9tX3N0cmluZyhjb250ZW50
cykKKworICAgIGRlZiByZXN1bHRzKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5fY3JlYXRl
X2pzY190ZXN0X3Jlc3VsdHMoKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90
b29sL2JvdC9wYXRjaGFuYWx5c2lzdGFzay5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9v
bC9ib3QvcGF0Y2hhbmFseXNpc3Rhc2sucHkKaW5kZXggNzUyMzE2NDE2YzVmOWQwYTNlNTllZjZk
MDVlMzE3ODVmOTE3NDYyOS4uNjU4Mzk5ZTMxY2Q4ZjNkOWJmYzg2OWM5ODJiYjNmYWNiMWM5NDE5
YyAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9wYXRjaGFuYWx5
c2lzdGFzay5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L3BhdGNoYW5h
bHlzaXN0YXNrLnB5CkBAIC0xLDQgKzEsNSBAQAogIyBDb3B5cmlnaHQgKGMpIDIwMTAgR29vZ2xl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUK
QEAgLTQzLDYgKzQ0LDExIEBAIGNsYXNzIFBhdGNoSXNOb3RWYWxpZChFeGNlcHRpb24pOgogICAg
ICAgICBzZWxmLmZhaWx1cmVfbWVzc2FnZSA9IGZhaWx1cmVfbWVzc2FnZQogCiAKK2NsYXNzIFBh
dGNoSXNOb3RBcHBsaWNhYmxlKEV4Y2VwdGlvbik6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBh
dGNoKToKKyAgICAgICAgRXhjZXB0aW9uLl9faW5pdF9fKHNlbGYpCisgICAgICAgIHNlbGYucGF0
Y2ggPSBwYXRjaAorCiBjbGFzcyBQYXRjaEFuYWx5c2lzVGFza0RlbGVnYXRlKG9iamVjdCk6CiAg
ICAgZGVmIHBhcmVudF9jb21tYW5kKHNlbGYpOgogICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRl
ZEVycm9yKCJzdWJjbGFzc2VzIG11c3QgaW1wbGVtZW50IikKQEAgLTEyMiwyOCArMTI4LDUzIEBA
IGNsYXNzIFBhdGNoQW5hbHlzaXNUYXNrKG9iamVjdCk6CiAgICAgICAgICJBcHBsaWVkIHBhdGNo
IiwKICAgICAgICAgIlBhdGNoIGRvZXMgbm90IGFwcGx5IikKIAorICAgIGRlZiBfY2hlY2tfcGF0
Y2hfcmVsZXZhbmNlKHNlbGYpOgorICAgICAgICBhcmdzID0gWworICAgICAgICAgICAgImNoZWNr
LXBhdGNoLXJlbGV2YW5jZSIsCisgICAgICAgIF0KKworICAgICAgICBpZiBoYXNhdHRyKHNlbGYu
X2RlbGVnYXRlLCAnZ3JvdXAnKToKKyAgICAgICAgICAgIGFyZ3MuYXBwZW5kKCItLWdyb3VwPSVz
IiAlIHNlbGYuX2RlbGVnYXRlLmdyb3VwKCkpCisKKyAgICAgICAgcmV0dXJuIHNlbGYuX3J1bl9j
b21tYW5kKAorICAgICAgICAgICAgYXJncywKKyAgICAgICAgICAgICJDaGVja2VkIHJlbGV2YW5j
ZSBvZiBwYXRjaCIsCisgICAgICAgICAgICAiUGF0Y2ggd2FzIG5vdCByZWxldmFudCIpCisKICAg
ICBkZWYgX2J1aWxkKHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi5fcnVuX2NvbW1hbmQoWwor
ICAgICAgICBhcmdzID0gWwogICAgICAgICAgICAgImJ1aWxkIiwKICAgICAgICAgICAgICItLW5v
LWNsZWFuIiwKICAgICAgICAgICAgICItLW5vLXVwZGF0ZSIsCiAgICAgICAgICAgICAiLS1idWls
ZC1zdHlsZT0lcyIgJSBzZWxmLl9kZWxlZ2F0ZS5idWlsZF9zdHlsZSgpLAotICAgICAgICBdLAot
ICAgICAgICAiQnVpbHQgcGF0Y2giLAotICAgICAgICAiUGF0Y2ggZG9lcyBub3QgYnVpbGQiKQor
ICAgICAgICBdCisKKyAgICAgICAgaWYgaGFzYXR0cihzZWxmLl9kZWxlZ2F0ZSwgJ2dyb3VwJyk6
CisgICAgICAgICAgICBhcmdzLmFwcGVuZCgiLS1ncm91cD0lcyIgJSBzZWxmLl9kZWxlZ2F0ZS5n
cm91cCgpKQorCisgICAgICAgIHJldHVybiBzZWxmLl9ydW5fY29tbWFuZCgKKyAgICAgICAgICAg
IGFyZ3MsCisgICAgICAgICAgICAiQnVpbHQgcGF0Y2giLAorICAgICAgICAgICAgIlBhdGNoIGRv
ZXMgbm90IGJ1aWxkIikKIAogICAgIGRlZiBfYnVpbGRfd2l0aG91dF9wYXRjaChzZWxmKToKLSAg
ICAgICAgcmV0dXJuIHNlbGYuX3J1bl9jb21tYW5kKFsKKyAgICAgICAgYXJncyA9IFsKICAgICAg
ICAgICAgICJidWlsZCIsCiAgICAgICAgICAgICAiLS1mb3JjZS1jbGVhbiIsCiAgICAgICAgICAg
ICAiLS1uby11cGRhdGUiLAogICAgICAgICAgICAgIi0tYnVpbGQtc3R5bGU9JXMiICUgc2VsZi5f
ZGVsZWdhdGUuYnVpbGRfc3R5bGUoKSwKLSAgICAgICAgXSwKLSAgICAgICAgIkFibGUgdG8gYnVp
bGQgd2l0aG91dCBwYXRjaCIsCi0gICAgICAgICJVbmFibGUgdG8gYnVpbGQgd2l0aG91dCBwYXRj
aCIpCisgICAgICAgIF0KKworICAgICAgICBpZiBoYXNhdHRyKHNlbGYuX2RlbGVnYXRlLCAnZ3Jv
dXAnKToKKyAgICAgICAgICAgIGFyZ3MuYXBwZW5kKCItLWdyb3VwPSVzIiAlIHNlbGYuX2RlbGVn
YXRlLmdyb3VwKCkpCisKKyAgICAgICAgcmV0dXJuIHNlbGYuX3J1bl9jb21tYW5kKAorICAgICAg
ICAgICAgYXJncywKKyAgICAgICAgICAgICJBYmxlIHRvIGJ1aWxkIHdpdGhvdXQgcGF0Y2giLAor
ICAgICAgICAgICAgIlVuYWJsZSB0byBidWlsZCB3aXRob3V0IHBhdGNoIikKIAogICAgIGRlZiBf
dGVzdChzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYuX3J1bl9jb21tYW5kKFsKKyAgICAgICAg
YXJncyA9IFsKICAgICAgICAgICAgICJidWlsZC1hbmQtdGVzdCIsCiAgICAgICAgICAgICAiLS1u
by1jbGVhbiIsCiAgICAgICAgICAgICAiLS1uby11cGRhdGUiLApAQCAtMTUxLDEyICsxODIsMTgg
QEAgY2xhc3MgUGF0Y2hBbmFseXNpc1Rhc2sob2JqZWN0KToKICAgICAgICAgICAgICItLXRlc3Qi
LAogICAgICAgICAgICAgIi0tbm9uLWludGVyYWN0aXZlIiwKICAgICAgICAgICAgICItLWJ1aWxk
LXN0eWxlPSVzIiAlIHNlbGYuX2RlbGVnYXRlLmJ1aWxkX3N0eWxlKCksCi0gICAgICAgIF0sCi0g
ICAgICAgICJQYXNzZWQgdGVzdHMiLAotICAgICAgICAiUGF0Y2ggZG9lcyBub3QgcGFzcyB0ZXN0
cyIpCisgICAgICAgIF0KKworICAgICAgICBpZiBoYXNhdHRyKHNlbGYuX2RlbGVnYXRlLCAnZ3Jv
dXAnKToKKyAgICAgICAgICAgIGFyZ3MuYXBwZW5kKCItLWdyb3VwPSVzIiAlIHNlbGYuX2RlbGVn
YXRlLmdyb3VwKCkpCisKKyAgICAgICAgcmV0dXJuIHNlbGYuX3J1bl9jb21tYW5kKAorICAgICAg
ICAgICAgYXJncywKKyAgICAgICAgICAgICJQYXNzZWQgdGVzdHMiLAorICAgICAgICAgICAgIlBh
dGNoIGRvZXMgbm90IHBhc3MgdGVzdHMiKQogCiAgICAgZGVmIF9idWlsZF9hbmRfdGVzdF93aXRo
b3V0X3BhdGNoKHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi5fcnVuX2NvbW1hbmQoWworICAg
ICAgICBhcmdzID0gWwogICAgICAgICAgICAgImJ1aWxkLWFuZC10ZXN0IiwKICAgICAgICAgICAg
ICItLWZvcmNlLWNsZWFuIiwKICAgICAgICAgICAgICItLW5vLXVwZGF0ZSIsCkBAIC0xNjQsOSAr
MjAxLDE1IEBAIGNsYXNzIFBhdGNoQW5hbHlzaXNUYXNrKG9iamVjdCk6CiAgICAgICAgICAgICAi
LS10ZXN0IiwKICAgICAgICAgICAgICItLW5vbi1pbnRlcmFjdGl2ZSIsCiAgICAgICAgICAgICAi
LS1idWlsZC1zdHlsZT0lcyIgJSBzZWxmLl9kZWxlZ2F0ZS5idWlsZF9zdHlsZSgpLAotICAgICAg
ICBdLAotICAgICAgICAiQWJsZSB0byBwYXNzIHRlc3RzIHdpdGhvdXQgcGF0Y2giLAotICAgICAg
ICAiVW5hYmxlIHRvIHBhc3MgdGVzdHMgd2l0aG91dCBwYXRjaCAodHJlZSBpcyByZWQ/KSIpCisg
ICAgICAgIF0KKworICAgICAgICBpZiBoYXNhdHRyKHNlbGYuX2RlbGVnYXRlLCAnZ3JvdXAnKToK
KyAgICAgICAgICAgIGFyZ3MuYXBwZW5kKCItLWdyb3VwPSVzIiAlIHNlbGYuX2RlbGVnYXRlLmdy
b3VwKCkpCisKKyAgICAgICAgcmV0dXJuIHNlbGYuX3J1bl9jb21tYW5kKAorICAgICAgICAgICAg
YXJncywKKyAgICAgICAgICAgICJBYmxlIHRvIHBhc3MgdGVzdHMgd2l0aG91dCBwYXRjaCIsCisg
ICAgICAgICAgICAiVW5hYmxlIHRvIHBhc3MgdGVzdHMgd2l0aG91dCBwYXRjaCAodHJlZSBpcyBy
ZWQ/KSIpCiAKICAgICBkZWYgX2xhbmQoc2VsZik6CiAgICAgICAgICMgVW5jbGVhciBpZiB0aGlz
IHNob3VsZCBwYXNzIC0tcXVpZXQgb3Igbm90LiAgSWYgLS1wYXJlbnQtY29tbWFuZCBhbHdheXMg
ZG9lcyB0aGUgcmVwb3J0aW5nLCB0aGVuIGl0IHNob3VsZC4KQEAgLTIxMCw2OSArMjUzLDkyIEBA
IGNsYXNzIFBhdGNoQW5hbHlzaXNUYXNrKG9iamVjdCk6CiAgICAgICAgIGlmIHNlbGYuX3Rlc3Qo
KToKICAgICAgICAgICAgIHJldHVybiBUcnVlCiAKLSAgICAgICAgIyBOb3RlOiBhcmNoaXZlX2xh
c3RfdGVzdF9yZXN1bHRzIGRlbGV0ZXMgdGhlIHJlc3VsdHMgZGlyZWN0b3J5LCBtYWtpbmcgdGhl
c2UgY2FsbHMgb3JkZXItc2Vuc2l0dmUuCi0gICAgICAgICMgV2UgY291bGQgcmVtb3ZlIHRoaXMg
ZGVwZW5kZW5jeSBieSBidWlsZGluZyB0aGUgdGVzdF9yZXN1bHRzIGZyb20gdGhlIGFyY2hpdmUu
Ci0gICAgICAgIGZpcnN0X3Jlc3VsdHMgPSBzZWxmLl9kZWxlZ2F0ZS50ZXN0X3Jlc3VsdHMoKQot
ICAgICAgICBmaXJzdF9yZXN1bHRzX2FyY2hpdmUgPSBzZWxmLl9kZWxlZ2F0ZS5hcmNoaXZlX2xh
c3RfdGVzdF9yZXN1bHRzKHNlbGYuX3BhdGNoKQotICAgICAgICBmaXJzdF9zY3JpcHRfZXJyb3Ig
PSBzZWxmLl9zY3JpcHRfZXJyb3IKLSAgICAgICAgZmlyc3RfZmFpbHVyZV9zdGF0dXNfaWQgPSBz
ZWxmLmZhaWx1cmVfc3RhdHVzX2lkCi0KLSAgICAgICAgaWYgc2VsZi5fdGVzdCgpIGFuZCBub3Qg
Zmlyc3RfcmVzdWx0cy5kaWRfZXhjZWVkX3Rlc3RfZmFpbHVyZV9saW1pdCgpOgotICAgICAgICAg
ICAgIyBPbmx5IHJlcG9ydCBmbGFreSB0ZXN0cyBpZiB3ZSB3ZXJlIHN1Y2Nlc3NmdWwgYXQgcGFy
c2luZyByZXN1bHRzLmpzb24gYW5kIGFyY2hpdmluZyByZXN1bHRzLgotICAgICAgICAgICAgaWYg
Zmlyc3RfcmVzdWx0cyBhbmQgZmlyc3RfcmVzdWx0c19hcmNoaXZlOgotICAgICAgICAgICAgICAg
IHNlbGYuX3JlcG9ydF9mbGFreV90ZXN0cyhmaXJzdF9yZXN1bHRzLmZhaWxpbmdfdGVzdF9yZXN1
bHRzKCksIGZpcnN0X3Jlc3VsdHNfYXJjaGl2ZSkKLSAgICAgICAgICAgIHJldHVybiBUcnVlCisg
ICAgICAgICMgRklYTUU6IEFic3RyYWN0IG91dCB0aGUgcmV0cnkgbG9naWMgaW5zdGVhZCBvZiBj
YXNpbmcgb24gdGhlIHRlc3Qgc3VpdGUgaGVyZS4KKyAgICAgICAgaWYgaGFzYXR0cihzZWxmLl9k
ZWxlZ2F0ZSwgJ2dyb3VwJykgYW5kIHNlbGYuX2RlbGVnYXRlLmdyb3VwKCkgPT0gImpzYyI6Cisg
ICAgICAgICAgICBmaXJzdF9yZXN1bHRzID0gc2VsZi5fZGVsZWdhdGUudGVzdF9yZXN1bHRzKCkK
KyAgICAgICAgICAgIGZpcnN0X3NjcmlwdF9lcnJvciA9IHNlbGYuX3NjcmlwdF9lcnJvcgogCi0g
ICAgICAgIHNlY29uZF9yZXN1bHRzID0gc2VsZi5fZGVsZWdhdGUudGVzdF9yZXN1bHRzKCkKLSAg
ICAgICAgc2Vjb25kX3Jlc3VsdHNfYXJjaGl2ZSA9IHNlbGYuX2RlbGVnYXRlLmFyY2hpdmVfbGFz
dF90ZXN0X3Jlc3VsdHMoc2VsZi5fcGF0Y2gpCi0gICAgICAgIHNlY29uZF9zY3JpcHRfZXJyb3Ig
PSBzZWxmLl9zY3JpcHRfZXJyb3IKLSAgICAgICAgc2Vjb25kX2ZhaWx1cmVfc3RhdHVzX2lkID0g
c2VsZi5mYWlsdXJlX3N0YXR1c19pZAorICAgICAgICAgICAgaWYgZmlyc3RfcmVzdWx0cyBpcyBO
b25lOgorICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLnJlcG9ydF9mYWlsdXJlKE5vbmUsIE5v
bmUsIFNjcmlwdEVycm9yKCJDb3VsZCBub3QgcmVhZCBKU0MgdGVzdCByZXN1bHRzIGZvciBwYXRj
aC4iKSkKKworICAgICAgICAgICAgaWYgZmlyc3RfcmVzdWx0cy5hbGxfcGFzc2VkKCk6CisgICAg
ICAgICAgICAgICAgcmV0dXJuIFRydWUKIAotICAgICAgICBpZiBzZWNvbmRfcmVzdWx0cy5kaWRf
ZXhjZWVkX3Rlc3RfZmFpbHVyZV9saW1pdCgpIGFuZCBmaXJzdF9yZXN1bHRzLmRpZF9leGNlZWRf
dGVzdF9mYWlsdXJlX2xpbWl0KCk6CiAgICAgICAgICAgICBzZWxmLl9idWlsZF9hbmRfdGVzdF93
aXRob3V0X3BhdGNoKCkKICAgICAgICAgICAgIGNsZWFuX3RyZWVfcmVzdWx0cyA9IHNlbGYuX2Rl
bGVnYXRlLnRlc3RfcmVzdWx0cygpCiAKLSAgICAgICAgICAgIGlmIChsZW4oZmlyc3RfcmVzdWx0
cy5mYWlsaW5nX3Rlc3RzKCkpIC0gbGVuKGNsZWFuX3RyZWVfcmVzdWx0cy5mYWlsaW5nX3Rlc3Rz
KCkpKSA8PSA1OgotICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICAgICAgaWYg
Y2xlYW5fdHJlZV9yZXN1bHRzIGlzIE5vbmU6CisgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYu
cmVwb3J0X2ZhaWx1cmUoTm9uZSwgTm9uZSwgU2NyaXB0RXJyb3IoIkNvdWxkIG5vdCByZWFkIEpT
QyB0ZXN0IHJlc3VsdHMgZm9yIGNsZWFuIHRyZWUuIikpCiAKLSAgICAgICAgICAgIHNlbGYuZmFp
bHVyZV9zdGF0dXNfaWQgPSBmaXJzdF9mYWlsdXJlX3N0YXR1c19pZAorICAgICAgICAgICAgaWYg
Zmlyc3RfcmVzdWx0cy5pc19zdWJzZXQoY2xlYW5fdHJlZV9yZXN1bHRzKToKKyAgICAgICAgICAg
ICAgICByZXR1cm4gVHJ1ZQogCi0gICAgICAgICAgICByZXR1cm4gc2VsZi5yZXBvcnRfZmFpbHVy
ZShmaXJzdF9yZXN1bHRzX2FyY2hpdmUsIGZpcnN0X3Jlc3VsdHMsIGZpcnN0X3NjcmlwdF9lcnJv
cikKKyAgICAgICAgICAgIHJldHVybiBzZWxmLnJlcG9ydF9mYWlsdXJlKE5vbmUsIGZpcnN0X3Jl
c3VsdHMsIGZpcnN0X3NjcmlwdF9lcnJvcikKIAotICAgICAgICBpZiBzZWNvbmRfcmVzdWx0cy5k
aWRfZXhjZWVkX3Rlc3RfZmFpbHVyZV9saW1pdCgpOgotICAgICAgICAgICAgc2VsZi5fc2hvdWxk
X2RlZmVyX3BhdGNoX29yX3Rocm93KGZpcnN0X3Jlc3VsdHMuZmFpbGluZ190ZXN0X3Jlc3VsdHMo
KSwgZmlyc3RfcmVzdWx0c19hcmNoaXZlLCBmaXJzdF9zY3JpcHRfZXJyb3IsIGZpcnN0X2ZhaWx1
cmVfc3RhdHVzX2lkKQotICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgIGVsc2U6Cisg
ICAgICAgICAgICAjIE5vdGU6IGFyY2hpdmVfbGFzdF90ZXN0X3Jlc3VsdHMgZGVsZXRlcyB0aGUg
cmVzdWx0cyBkaXJlY3RvcnksIG1ha2luZyB0aGVzZSBjYWxscyBvcmRlci1zZW5zaXR2ZS4KKyAg
ICAgICAgICAgICMgV2UgY291bGQgcmVtb3ZlIHRoaXMgZGVwZW5kZW5jeSBieSBidWlsZGluZyB0
aGUgdGVzdF9yZXN1bHRzIGZyb20gdGhlIGFyY2hpdmUuCisgICAgICAgICAgICBmaXJzdF9yZXN1
bHRzID0gc2VsZi5fZGVsZWdhdGUudGVzdF9yZXN1bHRzKCkKKyAgICAgICAgICAgIGZpcnN0X3Jl
c3VsdHNfYXJjaGl2ZSA9IHNlbGYuX2RlbGVnYXRlLmFyY2hpdmVfbGFzdF90ZXN0X3Jlc3VsdHMo
c2VsZi5fcGF0Y2gpCisgICAgICAgICAgICBmaXJzdF9zY3JpcHRfZXJyb3IgPSBzZWxmLl9zY3Jp
cHRfZXJyb3IKKyAgICAgICAgICAgIGZpcnN0X2ZhaWx1cmVfc3RhdHVzX2lkID0gc2VsZi5mYWls
dXJlX3N0YXR1c19pZAogCi0gICAgICAgIGlmIGZpcnN0X3Jlc3VsdHMuZGlkX2V4Y2VlZF90ZXN0
X2ZhaWx1cmVfbGltaXQoKToKLSAgICAgICAgICAgIHNlbGYuX3Nob3VsZF9kZWZlcl9wYXRjaF9v
cl90aHJvdyhzZWNvbmRfcmVzdWx0cy5mYWlsaW5nX3Rlc3RfcmVzdWx0cygpLCBzZWNvbmRfcmVz
dWx0c19hcmNoaXZlLCBzZWNvbmRfc2NyaXB0X2Vycm9yLCBzZWNvbmRfZmFpbHVyZV9zdGF0dXNf
aWQpCi0gICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgICAgIGlmIHNlbGYuX3Rlc3Qo
KSBhbmQgbm90IGZpcnN0X3Jlc3VsdHMuZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQoKToK
KyAgICAgICAgICAgICAgICAjIE9ubHkgcmVwb3J0IGZsYWt5IHRlc3RzIGlmIHdlIHdlcmUgc3Vj
Y2Vzc2Z1bCBhdCBwYXJzaW5nIHJlc3VsdHMuanNvbiBhbmQgYXJjaGl2aW5nIHJlc3VsdHMuCisg
ICAgICAgICAgICAgICAgaWYgZmlyc3RfcmVzdWx0cyBhbmQgZmlyc3RfcmVzdWx0c19hcmNoaXZl
OgorICAgICAgICAgICAgICAgICAgICBzZWxmLl9yZXBvcnRfZmxha3lfdGVzdHMoZmlyc3RfcmVz
dWx0cy5mYWlsaW5nX3Rlc3RfcmVzdWx0cygpLCBmaXJzdF9yZXN1bHRzX2FyY2hpdmUpCisgICAg
ICAgICAgICAgICAgcmV0dXJuIFRydWUKIAotICAgICAgICBpZiBzZWxmLl9yZXN1bHRzX2ZhaWxl
ZF9kaWZmZXJlbnRfdGVzdHMoZmlyc3RfcmVzdWx0cywgc2Vjb25kX3Jlc3VsdHMpOgotICAgICAg
ICAgICAgZmlyc3RfZmFpbGluZ19yZXN1bHRzX3NldCA9IGZyb3plbnNldChmaXJzdF9yZXN1bHRz
LmZhaWxpbmdfdGVzdF9yZXN1bHRzKCkpCi0gICAgICAgICAgICBzZWNvbmRfZmFpbGluZ19yZXN1
bHRzX3NldCA9IGZyb3plbnNldChzZWNvbmRfcmVzdWx0cy5mYWlsaW5nX3Rlc3RfcmVzdWx0cygp
KQorICAgICAgICAgICAgc2Vjb25kX3Jlc3VsdHMgPSBzZWxmLl9kZWxlZ2F0ZS50ZXN0X3Jlc3Vs
dHMoKQorICAgICAgICAgICAgc2Vjb25kX3Jlc3VsdHNfYXJjaGl2ZSA9IHNlbGYuX2RlbGVnYXRl
LmFyY2hpdmVfbGFzdF90ZXN0X3Jlc3VsdHMoc2VsZi5fcGF0Y2gpCisgICAgICAgICAgICBzZWNv
bmRfc2NyaXB0X2Vycm9yID0gc2VsZi5fc2NyaXB0X2Vycm9yCisgICAgICAgICAgICBzZWNvbmRf
ZmFpbHVyZV9zdGF0dXNfaWQgPSBzZWxmLmZhaWx1cmVfc3RhdHVzX2lkCiAKLSAgICAgICAgICAg
IHRlc3RzX3RoYXRfb25seV9mYWlsZWRfZmlyc3QgPSBmaXJzdF9mYWlsaW5nX3Jlc3VsdHNfc2V0
LmRpZmZlcmVuY2Uoc2Vjb25kX2ZhaWxpbmdfcmVzdWx0c19zZXQpCi0gICAgICAgICAgICBzZWxm
Ll9yZXBvcnRfZmxha3lfdGVzdHModGVzdHNfdGhhdF9vbmx5X2ZhaWxlZF9maXJzdCwgZmlyc3Rf
cmVzdWx0c19hcmNoaXZlKQorICAgICAgICAgICAgaWYgc2Vjb25kX3Jlc3VsdHMuZGlkX2V4Y2Vl
ZF90ZXN0X2ZhaWx1cmVfbGltaXQoKSBhbmQgZmlyc3RfcmVzdWx0cy5kaWRfZXhjZWVkX3Rlc3Rf
ZmFpbHVyZV9saW1pdCgpOgorICAgICAgICAgICAgICAgIHNlbGYuX2J1aWxkX2FuZF90ZXN0X3dp
dGhvdXRfcGF0Y2goKQorICAgICAgICAgICAgICAgIGNsZWFuX3RyZWVfcmVzdWx0cyA9IHNlbGYu
X2RlbGVnYXRlLnRlc3RfcmVzdWx0cygpCiAKLSAgICAgICAgICAgIHRlc3RzX3RoYXRfb25seV9m
YWlsZWRfc2Vjb25kID0gc2Vjb25kX2ZhaWxpbmdfcmVzdWx0c19zZXQuZGlmZmVyZW5jZShmaXJz
dF9mYWlsaW5nX3Jlc3VsdHNfc2V0KQotICAgICAgICAgICAgc2VsZi5fcmVwb3J0X2ZsYWt5X3Rl
c3RzKHRlc3RzX3RoYXRfb25seV9mYWlsZWRfc2Vjb25kLCBzZWNvbmRfcmVzdWx0c19hcmNoaXZl
KQorICAgICAgICAgICAgICAgIGlmIChsZW4oZmlyc3RfcmVzdWx0cy5mYWlsaW5nX3Rlc3RzKCkp
IC0gbGVuKGNsZWFuX3RyZWVfcmVzdWx0cy5mYWlsaW5nX3Rlc3RzKCkpKSA8PSA1OgorICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKIAotICAgICAgICAgICAgdGVzdHNfdGhhdF9jb25z
aXN0ZW50bHlfZmFpbGVkID0gZmlyc3RfZmFpbGluZ19yZXN1bHRzX3NldC5pbnRlcnNlY3Rpb24o
c2Vjb25kX2ZhaWxpbmdfcmVzdWx0c19zZXQpCi0gICAgICAgICAgICBpZiB0ZXN0c190aGF0X2Nv
bnNpc3RlbnRseV9mYWlsZWQ6Ci0gICAgICAgICAgICAgICAgaWYgc2VsZi5fc2hvdWxkX2RlZmVy
X3BhdGNoX29yX3Rocm93KHRlc3RzX3RoYXRfY29uc2lzdGVudGx5X2ZhaWxlZCwgZmlyc3RfcmVz
dWx0c19hcmNoaXZlLCBmaXJzdF9zY3JpcHRfZXJyb3IsIGZpcnN0X2ZhaWx1cmVfc3RhdHVzX2lk
KToKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlICAjIERlZmVyIHBhdGNoCisgICAg
ICAgICAgICAgICAgc2VsZi5mYWlsdXJlX3N0YXR1c19pZCA9IGZpcnN0X2ZhaWx1cmVfc3RhdHVz
X2lkCiAKLSAgICAgICAgICAgICMgQXQgdGhpcyBwb2ludCB3ZSBrbm93IHRoYXQgYXQgbGVhc3Qg
b25lIHRlc3QgZmxha2VkLCBidXQgbm8gY29uc2lzdGVudCBmYWlsdXJlcwotICAgICAgICAgICAg
IyB3ZXJlIGludHJvZHVjZWQuIFRoaXMgaXMgYSBiaXQgb2YgYSBncmV5LXpvbmUuCi0gICAgICAg
ICAgICByZXR1cm4gRmFsc2UgICMgRGVmZXIgcGF0Y2gKKyAgICAgICAgICAgICAgICByZXR1cm4g
c2VsZi5yZXBvcnRfZmFpbHVyZShmaXJzdF9yZXN1bHRzX2FyY2hpdmUsIGZpcnN0X3Jlc3VsdHMs
IGZpcnN0X3NjcmlwdF9lcnJvcikKIAotICAgICAgICBpZiBzZWxmLl9zaG91bGRfZGVmZXJfcGF0
Y2hfb3JfdGhyb3coZmlyc3RfcmVzdWx0cy5mYWlsaW5nX3Rlc3RfcmVzdWx0cygpLCBmaXJzdF9y
ZXN1bHRzX2FyY2hpdmUsIGZpcnN0X3NjcmlwdF9lcnJvciwgZmlyc3RfZmFpbHVyZV9zdGF0dXNf
aWQpOgotICAgICAgICAgICAgcmV0dXJuIEZhbHNlICAjIERlZmVyIHBhdGNoCisgICAgICAgICAg
ICBpZiBzZWNvbmRfcmVzdWx0cy5kaWRfZXhjZWVkX3Rlc3RfZmFpbHVyZV9saW1pdCgpOgorICAg
ICAgICAgICAgICAgIHNlbGYuX3Nob3VsZF9kZWZlcl9wYXRjaF9vcl90aHJvdyhmaXJzdF9yZXN1
bHRzLmZhaWxpbmdfdGVzdF9yZXN1bHRzKCksIGZpcnN0X3Jlc3VsdHNfYXJjaGl2ZSwgZmlyc3Rf
c2NyaXB0X2Vycm9yLCBmaXJzdF9mYWlsdXJlX3N0YXR1c19pZCkKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gRmFsc2UKIAotICAgICAgICAjIEF0IHRoaXMgcG9pbnQsIHdlIGtub3cgdGhhdCB0aGUg
Zmlyc3QgYW5kIHNlY29uZCBydW5zIGhhZCB0aGUgZXhhY3Qgc2FtZSBmYWlsdXJlcywKLSAgICAg
ICAgIyBhbmQgdGhhdCB0aG9zZSBmYWlsdXJlcyBhcmUgYWxsIHByZXNlbnQgb24gdGhlIGNsZWFu
IHRyZWUsIHNvIHdlIGNhbiBzYXkgd2l0aCBjZXJ0YWludHkKLSAgICAgICAgIyB0aGF0IHRoZSBw
YXRjaCBpcyBnb29kLgotICAgICAgICByZXR1cm4gVHJ1ZQorICAgICAgICAgICAgaWYgZmlyc3Rf
cmVzdWx0cy5kaWRfZXhjZWVkX3Rlc3RfZmFpbHVyZV9saW1pdCgpOgorICAgICAgICAgICAgICAg
IHNlbGYuX3Nob3VsZF9kZWZlcl9wYXRjaF9vcl90aHJvdyhzZWNvbmRfcmVzdWx0cy5mYWlsaW5n
X3Rlc3RfcmVzdWx0cygpLCBzZWNvbmRfcmVzdWx0c19hcmNoaXZlLCBzZWNvbmRfc2NyaXB0X2Vy
cm9yLCBzZWNvbmRfZmFpbHVyZV9zdGF0dXNfaWQpCisgICAgICAgICAgICAgICAgcmV0dXJuIEZh
bHNlCisKKyAgICAgICAgICAgIGlmIHNlbGYuX3Jlc3VsdHNfZmFpbGVkX2RpZmZlcmVudF90ZXN0
cyhmaXJzdF9yZXN1bHRzLCBzZWNvbmRfcmVzdWx0cyk6CisgICAgICAgICAgICAgICAgZmlyc3Rf
ZmFpbGluZ19yZXN1bHRzX3NldCA9IGZyb3plbnNldChmaXJzdF9yZXN1bHRzLmZhaWxpbmdfdGVz
dF9yZXN1bHRzKCkpCisgICAgICAgICAgICAgICAgc2Vjb25kX2ZhaWxpbmdfcmVzdWx0c19zZXQg
PSBmcm96ZW5zZXQoc2Vjb25kX3Jlc3VsdHMuZmFpbGluZ190ZXN0X3Jlc3VsdHMoKSkKKworICAg
ICAgICAgICAgICAgIHRlc3RzX3RoYXRfb25seV9mYWlsZWRfZmlyc3QgPSBmaXJzdF9mYWlsaW5n
X3Jlc3VsdHNfc2V0LmRpZmZlcmVuY2Uoc2Vjb25kX2ZhaWxpbmdfcmVzdWx0c19zZXQpCisgICAg
ICAgICAgICAgICAgc2VsZi5fcmVwb3J0X2ZsYWt5X3Rlc3RzKHRlc3RzX3RoYXRfb25seV9mYWls
ZWRfZmlyc3QsIGZpcnN0X3Jlc3VsdHNfYXJjaGl2ZSkKKworICAgICAgICAgICAgICAgIHRlc3Rz
X3RoYXRfb25seV9mYWlsZWRfc2Vjb25kID0gc2Vjb25kX2ZhaWxpbmdfcmVzdWx0c19zZXQuZGlm
ZmVyZW5jZShmaXJzdF9mYWlsaW5nX3Jlc3VsdHNfc2V0KQorICAgICAgICAgICAgICAgIHNlbGYu
X3JlcG9ydF9mbGFreV90ZXN0cyh0ZXN0c190aGF0X29ubHlfZmFpbGVkX3NlY29uZCwgc2Vjb25k
X3Jlc3VsdHNfYXJjaGl2ZSkKKworICAgICAgICAgICAgICAgIHRlc3RzX3RoYXRfY29uc2lzdGVu
dGx5X2ZhaWxlZCA9IGZpcnN0X2ZhaWxpbmdfcmVzdWx0c19zZXQuaW50ZXJzZWN0aW9uKHNlY29u
ZF9mYWlsaW5nX3Jlc3VsdHNfc2V0KQorICAgICAgICAgICAgICAgIGlmIHRlc3RzX3RoYXRfY29u
c2lzdGVudGx5X2ZhaWxlZDoKKyAgICAgICAgICAgICAgICAgICAgaWYgc2VsZi5fc2hvdWxkX2Rl
ZmVyX3BhdGNoX29yX3Rocm93KHRlc3RzX3RoYXRfY29uc2lzdGVudGx5X2ZhaWxlZCwgZmlyc3Rf
cmVzdWx0c19hcmNoaXZlLCBmaXJzdF9zY3JpcHRfZXJyb3IsIGZpcnN0X2ZhaWx1cmVfc3RhdHVz
X2lkKToKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZSAgIyBEZWZlciBwYXRj
aAorCisgICAgICAgICAgICAgICAgIyBBdCB0aGlzIHBvaW50IHdlIGtub3cgdGhhdCBhdCBsZWFz
dCBvbmUgdGVzdCBmbGFrZWQsIGJ1dCBubyBjb25zaXN0ZW50IGZhaWx1cmVzCisgICAgICAgICAg
ICAgICAgIyB3ZXJlIGludHJvZHVjZWQuIFRoaXMgaXMgYSBiaXQgb2YgYSBncmV5LXpvbmUuCisg
ICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlICAjIERlZmVyIHBhdGNoCisKKyAgICAgICAgICAg
IGlmIHNlbGYuX3Nob3VsZF9kZWZlcl9wYXRjaF9vcl90aHJvdyhmaXJzdF9yZXN1bHRzLmZhaWxp
bmdfdGVzdF9yZXN1bHRzKCksIGZpcnN0X3Jlc3VsdHNfYXJjaGl2ZSwgZmlyc3Rfc2NyaXB0X2Vy
cm9yLCBmaXJzdF9mYWlsdXJlX3N0YXR1c19pZCk6CisgICAgICAgICAgICAgICAgcmV0dXJuIEZh
bHNlICAjIERlZmVyIHBhdGNoCisKKyAgICAgICAgICAgICMgQXQgdGhpcyBwb2ludCwgd2Uga25v
dyB0aGF0IHRoZSBmaXJzdCBhbmQgc2Vjb25kIHJ1bnMgaGFkIHRoZSBleGFjdCBzYW1lIGZhaWx1
cmVzLAorICAgICAgICAgICAgIyBhbmQgdGhhdCB0aG9zZSBmYWlsdXJlcyBhcmUgYWxsIHByZXNl
bnQgb24gdGhlIGNsZWFuIHRyZWUsIHNvIHdlIGNhbiBzYXkgd2l0aCBjZXJ0YWludHkKKyAgICAg
ICAgICAgICMgdGhhdCB0aGUgcGF0Y2ggaXMgZ29vZC4KKyAgICAgICAgICAgIHJldHVybiBUcnVl
CiAKICAgICBkZWYgcmVzdWx0c19hcmNoaXZlX2Zyb21fcGF0Y2hfdGVzdF9ydW4oc2VsZiwgcGF0
Y2gpOgogICAgICAgICBhc3NlcnQoc2VsZi5fcGF0Y2guaWQoKSA9PSBwYXRjaC5pZCgpKSAgIyBQ
YXRjaEFuYWx5c2lzVGFzayBpcyBub3QgY3VycmVudGx5IHJlLXVzZWFibGUuCmRpZmYgLS1naXQg
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZG93bmxvYWQucHkgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZG93bmxvYWQucHkKaW5kZXggZTUxNjlh
YWM4NWYzMTg2ZTg0YmU5ZDUwMjQ1OTJiZDdmZTZkNWRkNS4uMTRiNTViYzNmN2M5YzEwYjVkZjYw
ZmMxYWY4N2Q3Y2EzOWUzYmM5NCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90
b29sL2NvbW1hbmRzL2Rvd25sb2FkLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9v
bC9jb21tYW5kcy9kb3dubG9hZC5weQpAQCAtMSw1ICsxLDUgQEAKICMgQ29weXJpZ2h0IChjKSAy
MDA5LCAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jIENvcHlyaWdodCAo
YykgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoYykg
MjAwOSwgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC04Nyw2ICs4NywxNCBAQCBjbGFzcyBCdWlsZEFuZFRlc3Qo
QWJzdHJhY3RTZXF1ZW5jZWRDb21tYW5kKToKICAgICBdCiAKIAorY2xhc3MgQ2hlY2tQYXRjaFJl
bGV2YW5jZShBYnN0cmFjdFNlcXVlbmNlZENvbW1hbmQpOgorICAgIG5hbWUgPSAiY2hlY2stcGF0
Y2gtcmVsZXZhbmNlIgorICAgIGhlbHBfdGV4dCA9ICJDaGVjayBpZiB0aGlzIHBhdGNoIG5lZWRz
IHRvIGJlIHRlc3RlZCIKKyAgICBzdGVwcyA9IFsKKyAgICAgICAgc3RlcHMuQ2hlY2tQYXRjaFJl
bGV2YW5jZSwKKyAgICBdCisKKwogY2xhc3MgTGFuZChBYnN0cmFjdFNlcXVlbmNlZENvbW1hbmQp
OgogICAgIG5hbWUgPSAibGFuZCIKICAgICBoZWxwX3RleHQgPSAiTGFuZCB0aGUgY3VycmVudCB3
b3JraW5nIGRpcmVjdG9yeSBkaWZmIGFuZCB1cGRhdGVzIHRoZSBhc3NvY2lhdGVkIGJ1ZyBpZiBh
bnkiCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZWFy
bHl3YXJuaW5nc3lzdGVtLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRz
L2Vhcmx5d2FybmluZ3N5c3RlbS5weQppbmRleCA5YmMwNDE4NjBjZTY3NDU0NDU0ZTRiMjUxNDM4
YTlkYmU1MjY0NTEzLi42YWEyZjlmYzI5ODIyMTc5NmM4NzFlYWIyY2MxM2UwMjBmNDI0MDIxIDEw
MDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZWFybHl3YXJu
aW5nc3lzdGVtLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9l
YXJseXdhcm5pbmdzeXN0ZW0ucHkKQEAgLTEsNCArMSw1IEBACiAjIENvcHlyaWdodCAoYykgMjAw
OSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKGMpIDIwMTcg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zIGFyZQpAQCAtMjgsNiArMjksNyBAQAogCiBpbXBvcnQganNvbgogaW1wb3J0IGxvZ2dpbmcK
K2ltcG9ydCBvcwogZnJvbSBvcHRwYXJzZSBpbXBvcnQgbWFrZV9vcHRpb24KIAogZnJvbSB3ZWJr
aXRweS5jb21tb24uY29uZmlnLmNvbW1pdHRlcnMgaW1wb3J0IENvbW1pdHRlckxpc3QKQEAgLTM2
LDcgKzM4LDggQEAgZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmZpbGVzeXN0ZW0gaW1wb3J0
IEZpbGVTeXN0ZW0KIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5leGVjdXRpdmUgaW1wb3J0
IFNjcmlwdEVycm9yCiBmcm9tIHdlYmtpdHB5LnRvb2wuYm90LmVhcmx5d2FybmluZ3N5c3RlbXRh
c2sgaW1wb3J0IEVhcmx5V2FybmluZ1N5c3RlbVRhc2ssIEVhcmx5V2FybmluZ1N5c3RlbVRhc2tE
ZWxlZ2F0ZQogZnJvbSB3ZWJraXRweS50b29sLmJvdC5sYXlvdXR0ZXN0cmVzdWx0c3JlYWRlciBp
bXBvcnQgTGF5b3V0VGVzdFJlc3VsdHNSZWFkZXIKLWZyb20gd2Via2l0cHkudG9vbC5ib3QucGF0
Y2hhbmFseXNpc3Rhc2sgaW1wb3J0IFVuYWJsZVRvQXBwbHlQYXRjaCwgUGF0Y2hJc05vdFZhbGlk
Citmcm9tIHdlYmtpdHB5LnRvb2wuYm90LmpzY3Rlc3RyZXN1bHRzcmVhZGVyIGltcG9ydCBKU0NU
ZXN0UmVzdWx0c1JlYWRlcgorZnJvbSB3ZWJraXRweS50b29sLmJvdC5wYXRjaGFuYWx5c2lzdGFz
ayBpbXBvcnQgVW5hYmxlVG9BcHBseVBhdGNoLCBQYXRjaElzTm90VmFsaWQsIFBhdGNoSXNOb3RB
cHBsaWNhYmxlCiBmcm9tIHdlYmtpdHB5LnRvb2wuYm90LnF1ZXVlZW5naW5lIGltcG9ydCBRdWV1
ZUVuZ2luZQogZnJvbSB3ZWJraXRweS50b29sLmNvbW1hbmRzLnF1ZXVlcyBpbXBvcnQgQWJzdHJh
Y3RSZXZpZXdRdWV1ZQogCkBAIC01Myw3ICs1NiwxMiBAQCBjbGFzcyBBYnN0cmFjdEVhcmx5V2Fy
bmluZ1N5c3RlbShBYnN0cmFjdFJldmlld1F1ZXVlLCBFYXJseVdhcm5pbmdTeXN0ZW1UYXNrRGVs
ZQogCiAgICAgZGVmIGJlZ2luX3dvcmtfcXVldWUoc2VsZik6CiAgICAgICAgIEFic3RyYWN0UmV2
aWV3UXVldWUuYmVnaW5fd29ya19xdWV1ZShzZWxmKQotICAgICAgICBzZWxmLl9sYXlvdXRfdGVz
dF9yZXN1bHRzX3JlYWRlciA9IExheW91dFRlc3RSZXN1bHRzUmVhZGVyKHNlbGYuX3Rvb2wsIHNl
bGYuX3BvcnQucmVzdWx0c19kaXJlY3RvcnkoKSwgc2VsZi5fbG9nX2RpcmVjdG9yeSgpKQorCisg
ICAgICAgIGlmIHNlbGYuZ3JvdXAoKSA9PSAianNjIjoKKyAgICAgICAgICAgIGRpciA9IG9zLnBh
dGguZGlybmFtZShvcy5wYXRoLmRpcm5hbWUob3MucGF0aC5kaXJuYW1lKHNlbGYuX3BvcnQucmVz
dWx0c19kaXJlY3RvcnkoKSkpKQorICAgICAgICAgICAgc2VsZi5fdGVzdF9yZXN1bHRzX3JlYWRl
ciA9IEpTQ1Rlc3RSZXN1bHRzUmVhZGVyKHNlbGYuX3Rvb2wsIGRpcikKKyAgICAgICAgZWxzZToK
KyAgICAgICAgICAgIHNlbGYuX3Rlc3RfcmVzdWx0c19yZWFkZXIgPSBMYXlvdXRUZXN0UmVzdWx0
c1JlYWRlcihzZWxmLl90b29sLCBzZWxmLl9wb3J0LnJlc3VsdHNfZGlyZWN0b3J5KCksIHNlbGYu
X2xvZ19kaXJlY3RvcnkoKSkKIAogICAgIGRlZiBfZmFpbGluZ190ZXN0c19tZXNzYWdlKHNlbGYs
IHRhc2ssIHBhdGNoKToKICAgICAgICAgcmVzdWx0cyA9IHRhc2sucmVzdWx0c19mcm9tX3BhdGNo
X3Rlc3RfcnVuKHBhdGNoKQpAQCAtOTMsNiArMTAxLDkgQEAgY2xhc3MgQWJzdHJhY3RFYXJseVdh
cm5pbmdTeXN0ZW0oQWJzdHJhY3RSZXZpZXdRdWV1ZSwgRWFybHlXYXJuaW5nU3lzdGVtVGFza0Rl
bGUKICAgICAgICAgZXhjZXB0IFVuYWJsZVRvQXBwbHlQYXRjaCwgZToKICAgICAgICAgICAgIHNl
bGYuX2RpZF9lcnJvcihwYXRjaCwgIiVzIHVuYWJsZSB0byBhcHBseSBwYXRjaC4iICUgc2VsZi5u
YW1lKQogICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgIGV4Y2VwdCBQYXRjaElzTm90
QXBwbGljYWJsZSwgZToKKyAgICAgICAgICAgIHNlbGYuX2RpZF9lcnJvcihwYXRjaCwgIiVzIHBh
dGNoIG5vdCBhcHBsaWNhYmxlLiIgJSBzZWxmLm5hbWUpCisgICAgICAgICAgICByZXR1cm4gRmFs
c2UKICAgICAgICAgZXhjZXB0IFNjcmlwdEVycm9yLCBlOgogICAgICAgICAgICAgc2VsZi5fcG9z
dF9yZWplY3RfbWVzc2FnZV9vbl9idWcoc2VsZi5fdG9vbCwgcGF0Y2gsIHRhc2suZmFpbHVyZV9z
dGF0dXNfaWQsIHNlbGYuX2ZhaWxpbmdfdGVzdHNfbWVzc2FnZSh0YXNrLCBwYXRjaCkpCiAgICAg
ICAgICAgICByZXN1bHRzX2FyY2hpdmUgPSB0YXNrLnJlc3VsdHNfYXJjaGl2ZV9mcm9tX3BhdGNo
X3Rlc3RfcnVuKHBhdGNoKQpAQCAtMTE3LDE0ICsxMjgsMTcgQEAgY2xhc3MgQWJzdHJhY3RFYXJs
eVdhcm5pbmdTeXN0ZW0oQWJzdHJhY3RSZXZpZXdRdWV1ZSwgRWFybHlXYXJuaW5nU3lzdGVtVGFz
a0RlbGUKICAgICAgICAgcmV0dXJuIHNlbGYuX3VwZGF0ZV9zdGF0dXMobWVzc2FnZSwgcGF0Y2g9
cGF0Y2gsIHJlc3VsdHNfZmlsZT1mYWlsdXJlX2xvZykKIAogICAgIGRlZiB0ZXN0X3Jlc3VsdHMo
c2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmLl9sYXlvdXRfdGVzdF9yZXN1bHRzX3JlYWRlci5y
ZXN1bHRzKCkKKyAgICAgICAgcmV0dXJuIHNlbGYuX3Rlc3RfcmVzdWx0c19yZWFkZXIucmVzdWx0
cygpCiAKICAgICBkZWYgYXJjaGl2ZV9sYXN0X3Rlc3RfcmVzdWx0cyhzZWxmLCBwYXRjaCk6Ci0g
ICAgICAgIHJldHVybiBzZWxmLl9sYXlvdXRfdGVzdF9yZXN1bHRzX3JlYWRlci5hcmNoaXZlKHBh
dGNoKQorICAgICAgICByZXR1cm4gc2VsZi5fdGVzdF9yZXN1bHRzX3JlYWRlci5hcmNoaXZlKHBh
dGNoKQogCiAgICAgZGVmIGJ1aWxkX3N0eWxlKHNlbGYpOgogICAgICAgICByZXR1cm4gc2VsZi5f
YnVpbGRfc3R5bGUKIAorICAgIGRlZiBncm91cChzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYu
X2dyb3VwCisKICAgICBkZWYgcmVmZXRjaF9wYXRjaChzZWxmLCBwYXRjaCk6CiAgICAgICAgIHJl
dHVybiBzZWxmLl90b29sLmJ1Z3MuZmV0Y2hfYXR0YWNobWVudChwYXRjaC5pZCgpKQogCkBAIC0x
NTYsNSArMTcwLDYgQEAgY2xhc3MgQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0oQWJzdHJhY3RS
ZXZpZXdRdWV1ZSwgRWFybHlXYXJuaW5nU3lzdGVtVGFza0RlbGUKICAgICAgICAgICAgICAgICAn
X2J1aWxkX3N0eWxlJzogY29uZmlnLmdldCgnc3R5bGUnLCAicmVsZWFzZSIpLAogICAgICAgICAg
ICAgICAgICd3YXRjaGVycyc6IGNvbmZpZy5nZXQoJ3dhdGNoZXJzJywgW10pLAogICAgICAgICAg
ICAgICAgICdydW5fdGVzdHMnOiBjb25maWcuZ2V0KCdydW5UZXN0cycsIGNscy5ydW5fdGVzdHMp
LAorICAgICAgICAgICAgICAgICdfZ3JvdXAnOiBjb25maWcuZ2V0KCdncm91cCcsIE5vbmUpLAog
ICAgICAgICAgICAgfSkpCiAgICAgICAgIHJldHVybiBjbGFzc2VzCmRpZmYgLS1naXQgYS9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZWFybHl3YXJuaW5nc3lzdGVtX3VuaXR0
ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Vhcmx5d2Fybmlu
Z3N5c3RlbV91bml0dGVzdC5weQppbmRleCAwODg4NzgxM2NlMmU5M2E4ZWM5ZGEzNzYzNmVjYmRl
OWVmZjNjOWU3Li5lMzY1NDNmMDNhYTgyZjE1YzIwYmI4MjdhYTViYjU5MDdmMGIwOTgyIDEwMDY0
NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZWFybHl3YXJuaW5n
c3lzdGVtX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21t
YW5kcy9lYXJseXdhcm5pbmdzeXN0ZW1fdW5pdHRlc3QucHkKQEAgLTEsNCArMSw1IEBACiAjIENv
cHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5
cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtNDcsNiArNDgsNyBAQCBjbGFzcyBBYnN0cmFjdEVh
cmx5V2FybmluZ1N5c3RlbVRlc3QoUXVldWVzVGVzdCk6CiAgICAgICAgIGNsYXNzIFRlc3RFV1Mo
QWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0pOgogICAgICAgICAgICAgcG9ydF9uYW1lID0gIndp
biIgICMgTmVlZHMgdG8gYmUgYSBwb3J0IHdoaWNoIHBvcnQvZmFjdG9yeSB1bmRlcnN0YW5kcy4K
ICAgICAgICAgICAgIF9idWlsZF9zdHlsZSA9IE5vbmUKKyAgICAgICAgICAgIF9ncm91cCA9IE5v
bmUKIAogICAgICAgICBld3MgPSBUZXN0RVdTKCkKICAgICAgICAgZXdzLmJpbmRfdG9fdG9vbChN
b2NrVG9vbCgpKQpAQCAtNjgsOSArNzAsMTAgQEAgY2xhc3MgRWFybHlXYXJuaW5nU3lzdGVtVGVz
dChRdWV1ZXNUZXN0KToKICAgICAgICAgICAgICJwb3J0IjogZXdzLnBvcnRfbmFtZSwKICAgICAg
ICAgICAgICJhcmNoaXRlY3R1cmUiOiAiIC0tYXJjaGl0ZWN0dXJlPSVzIiAlIGV3cy5hcmNoaXRl
Y3R1cmUgaWYgZXdzLmFyY2hpdGVjdHVyZSBlbHNlICIiLAogICAgICAgICAgICAgImJ1aWxkX3N0
eWxlIjogZXdzLmJ1aWxkX3N0eWxlKCksCisgICAgICAgICAgICAiZ3JvdXAiOiBld3MuZ3JvdXAo
KSwKICAgICAgICAgfQogICAgICAgICBpZiBld3MucnVuX3Rlc3RzOgotICAgICAgICAgICAgcnVu
X3Rlc3RzX2xpbmUgPSAiUnVubmluZzogd2Via2l0LXBhdGNoIC0tc3RhdHVzLWhvc3Q9ZXhhbXBs
ZS5jb20gYnVpbGQtYW5kLXRlc3QgLS1uby1jbGVhbiAtLW5vLXVwZGF0ZSAtLXRlc3QgLS1ub24t
aW50ZXJhY3RpdmUgLS1idWlsZC1zdHlsZT0lKGJ1aWxkX3N0eWxlKXMgLS1wb3J0PSUocG9ydClz
JShhcmNoaXRlY3R1cmUpc1xuIiAlIHN0cmluZ19yZXBsYWNlbWVudHMKKyAgICAgICAgICAgIHJ1
bl90ZXN0c19saW5lID0gIlJ1bm5pbmc6IHdlYmtpdC1wYXRjaCAtLXN0YXR1cy1ob3N0PWV4YW1w
bGUuY29tIGJ1aWxkLWFuZC10ZXN0IC0tbm8tY2xlYW4gLS1uby11cGRhdGUgLS10ZXN0IC0tbm9u
LWludGVyYWN0aXZlIC0tYnVpbGQtc3R5bGU9JShidWlsZF9zdHlsZSlzIC0tZ3JvdXA9JShncm91
cClzIC0tcG9ydD0lKHBvcnQpcyUoYXJjaGl0ZWN0dXJlKXNcbiIgJSBzdHJpbmdfcmVwbGFjZW1l
bnRzCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICBydW5fdGVzdHNfbGluZSA9ICIiCiAgICAg
ICAgIHN0cmluZ19yZXBsYWNlbWVudHNbJ3J1bl90ZXN0c19saW5lJ10gPSBydW5fdGVzdHNfbGlu
ZQpAQCAtODEsNyArODQsOCBAQCBjbGFzcyBFYXJseVdhcm5pbmdTeXN0ZW1UZXN0KFF1ZXVlc1Rl
c3QpOgogUnVubmluZzogd2Via2l0LXBhdGNoIC0tc3RhdHVzLWhvc3Q9ZXhhbXBsZS5jb20gY2xl
YW4gLS1wb3J0PSUocG9ydClzJShhcmNoaXRlY3R1cmUpcwogUnVubmluZzogd2Via2l0LXBhdGNo
IC0tc3RhdHVzLWhvc3Q9ZXhhbXBsZS5jb20gdXBkYXRlIC0tcG9ydD0lKHBvcnQpcyUoYXJjaGl0
ZWN0dXJlKXMKIFJ1bm5pbmc6IHdlYmtpdC1wYXRjaCAtLXN0YXR1cy1ob3N0PWV4YW1wbGUuY29t
IGFwcGx5LWF0dGFjaG1lbnQgLS1uby11cGRhdGUgLS1ub24taW50ZXJhY3RpdmUgMTAwMDAgLS1w
b3J0PSUocG9ydClzJShhcmNoaXRlY3R1cmUpcwotUnVubmluZzogd2Via2l0LXBhdGNoIC0tc3Rh
dHVzLWhvc3Q9ZXhhbXBsZS5jb20gYnVpbGQgLS1uby1jbGVhbiAtLW5vLXVwZGF0ZSAtLWJ1aWxk
LXN0eWxlPSUoYnVpbGRfc3R5bGUpcyAtLXBvcnQ9JShwb3J0KXMlKGFyY2hpdGVjdHVyZSlzCitS
dW5uaW5nOiB3ZWJraXQtcGF0Y2ggLS1zdGF0dXMtaG9zdD1leGFtcGxlLmNvbSBjaGVjay1wYXRj
aC1yZWxldmFuY2UgLS1ncm91cD0lKGdyb3VwKXMgLS1wb3J0PSUocG9ydClzJShhcmNoaXRlY3R1
cmUpcworUnVubmluZzogd2Via2l0LXBhdGNoIC0tc3RhdHVzLWhvc3Q9ZXhhbXBsZS5jb20gYnVp
bGQgLS1uby1jbGVhbiAtLW5vLXVwZGF0ZSAtLWJ1aWxkLXN0eWxlPSUoYnVpbGRfc3R5bGUpcyAt
LWdyb3VwPSUoZ3JvdXApcyAtLXBvcnQ9JShwb3J0KXMlKGFyY2hpdGVjdHVyZSlzCiAlKHJ1bl90
ZXN0c19saW5lKXNNT0NLOiB1cGRhdGVfc3RhdHVzOiAlKG5hbWUpcyBQYXNzCiBNT0NLOiByZWxl
YXNlX3dvcmtfaXRlbTogJShuYW1lKXMgMTAwMDAKICIiIiAlIHN0cmluZ19yZXBsYWNlbWVudHMs
CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvX19pbml0X18u
cHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvX19pbml0X18ucHkKaW5kZXgg
MzU2YWNhYjAzYWQ4Mjc0Y2U5YmRhNjg1ODg2NGZmMTliNjRmNGEwYS4uNmM5YzA5YWM1MmEzODZi
OWYwY2YzNjNiOWMwM2JiYWE0YzAwMzg2MSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS90b29sL3N0ZXBzL19faW5pdF9fLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
dG9vbC9zdGVwcy9fX2luaXRfXy5weQpAQCAtMSw0ICsxLDUgQEAKICMgQ29weXJpZ2h0IChDKSAy
MDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAx
NyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogIyBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMgYXJlCkBAIC0zMyw2ICszNCw3IEBAIGZyb20gd2Via2l0cHkudG9vbC5zdGVwcy5hcHBs
eXBhdGNod2l0aGxvY2FsY29tbWl0IGltcG9ydCBBcHBseVBhdGNoV2l0aExvY2FsQ29tCiBmcm9t
IHdlYmtpdHB5LnRvb2wuc3RlcHMuYXBwbHl3YXRjaGxpc3QgaW1wb3J0IEFwcGx5V2F0Y2hMaXN0
CiBmcm9tIHdlYmtpdHB5LnRvb2wuc3RlcHMuYXR0YWNodG9idWcgaW1wb3J0IEF0dGFjaFRvQnVn
CiBmcm9tIHdlYmtpdHB5LnRvb2wuc3RlcHMuYnVpbGQgaW1wb3J0IEJ1aWxkCitmcm9tIHdlYmtp
dHB5LnRvb2wuc3RlcHMuY2hlY2twYXRjaHJlbGV2YW5jZSBpbXBvcnQgQ2hlY2tQYXRjaFJlbGV2
YW5jZQogZnJvbSB3ZWJraXRweS50b29sLnN0ZXBzLmNoZWNrc3R5bGUgaW1wb3J0IENoZWNrU3R5
bGUKIGZyb20gd2Via2l0cHkudG9vbC5zdGVwcy5jbGVhbndvcmtpbmdkaXJlY3RvcnkgaW1wb3J0
IENsZWFuV29ya2luZ0RpcmVjdG9yeQogZnJvbSB3ZWJraXRweS50b29sLnN0ZXBzLmNsb3NlYnVn
IGltcG9ydCBDbG9zZUJ1ZwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29s
L3N0ZXBzL2J1aWxkLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL2J1aWxk
LnB5CmluZGV4IGY3NGZmY2U3MDk0MWM2MWU1OTY3OTJlNGM2MGRjZDdmOGI2NWU5ZWMuLjNjNmNm
MGIxZGUwMThjMTMyYjdmODZkYTJjYjkwN2UyZmRhMDY3YWUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9idWlsZC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L3Rvb2wvc3RlcHMvYnVpbGQucHkKQEAgLTEsNCArMSw1IEBACiAjIENvcHlyaWdodCAo
QykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMp
IDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMg
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zIGFyZQpAQCAtNDEsMjggKzQyLDM3IEBAIGNsYXNzIEJ1aWxkKEFic3RyYWN0U3Rl
cCk6CiAgICAgICAgICAgICBPcHRpb25zLmJ1aWxkLAogICAgICAgICAgICAgT3B0aW9ucy5xdWll
dCwKICAgICAgICAgICAgIE9wdGlvbnMuYnVpbGRfc3R5bGUsCisgICAgICAgICAgICBPcHRpb25z
Lmdyb3VwLAogICAgICAgICBdCiAKLSAgICBkZWYgYnVpbGQoc2VsZiwgYnVpbGRfc3R5bGUpOgor
ICAgIGRlZiBidWlsZChzZWxmLCBidWlsZF9zdHlsZSwgZ3JvdXApOgogICAgICAgICBlbnZpcm9u
bWVudCA9IHNlbGYuX3Rvb2wuY29weV9jdXJyZW50X2Vudmlyb25tZW50KCkKICAgICAgICAgZW52
aXJvbm1lbnQuZGlzYWJsZV9nY2Nfc21hcnRxdW90ZXMoKQogICAgICAgICBlbnZpcm9ubWVudC5k
aXNhYmxlX2poYnVpbGRfVlQxMDBfb3V0cHV0KCkKICAgICAgICAgZW52ID0gZW52aXJvbm1lbnQu
dG9fZGljdGlvbmFyeSgpCiAKLSAgICAgICAgYnVpbGRfd2Via2l0X2NvbW1hbmQgPSBzZWxmLl90
b29sLmRlcHJlY2F0ZWRfcG9ydCgpLmJ1aWxkX3dlYmtpdF9jb21tYW5kKGJ1aWxkX3N0eWxlPWJ1
aWxkX3N0eWxlKQorICAgICAgICBpZiBncm91cCA9PSAianNjIjoKKyAgICAgICAgICAgIGJ1aWxk
X2NvbW1hbmQgPSBzZWxmLl90b29sLmRlcHJlY2F0ZWRfcG9ydCgpLmJ1aWxkX2pzY19jb21tYW5k
KGJ1aWxkX3N0eWxlPWJ1aWxkX3N0eWxlKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgYnVp
bGRfY29tbWFuZCA9IHNlbGYuX3Rvb2wuZGVwcmVjYXRlZF9wb3J0KCkuYnVpbGRfd2Via2l0X2Nv
bW1hbmQoYnVpbGRfc3R5bGU9YnVpbGRfc3R5bGUpCiAKICAgICAgICAgaWYgc2VsZi5fb3B0aW9u
cy5hcmNoaXRlY3R1cmU6Ci0gICAgICAgICAgICBidWlsZF93ZWJraXRfY29tbWFuZCArPSBbJ0FS
Q0hTPSVzJyAlIHNlbGYuX29wdGlvbnMuYXJjaGl0ZWN0dXJlXQorICAgICAgICAgICAgYnVpbGRf
Y29tbWFuZCArPSBbJ0FSQ0hTPSVzJyAlIHNlbGYuX29wdGlvbnMuYXJjaGl0ZWN0dXJlXQogCi0g
ICAgICAgIHNlbGYuX3Rvb2wuZXhlY3V0aXZlLnJ1bl9hbmRfdGhyb3dfaWZfZmFpbChidWlsZF93
ZWJraXRfY29tbWFuZCwgc2VsZi5fb3B0aW9ucy5xdWlldCwKKyAgICAgICAgc2VsZi5fdG9vbC5l
eGVjdXRpdmUucnVuX2FuZF90aHJvd19pZl9mYWlsKGJ1aWxkX2NvbW1hbmQsIHNlbGYuX29wdGlv
bnMucXVpZXQsCiAgICAgICAgICAgICBjd2Q9c2VsZi5fdG9vbC5zY20oKS5jaGVja291dF9yb290
LCBlbnY9ZW52KQogCiAgICAgZGVmIHJ1bihzZWxmLCBzdGF0ZSk6CiAgICAgICAgIGlmIG5vdCBz
ZWxmLl9vcHRpb25zLmJ1aWxkOgogICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgIF9sb2cuaW5m
bygiQnVpbGRpbmcgV2ViS2l0IikKKworICAgICAgICBncm91cCA9IE5vbmUKKyAgICAgICAgaWYg
aGFzYXR0cihzZWxmLl9vcHRpb25zLCAnZ3JvdXAnKToKKyAgICAgICAgICAgIGdyb3VwID0gc2Vs
Zi5fb3B0aW9ucy5ncm91cAorCiAgICAgICAgIGlmIHNlbGYuX29wdGlvbnMuYnVpbGRfc3R5bGUg
PT0gImJvdGgiOgotICAgICAgICAgICAgc2VsZi5idWlsZCgiZGVidWciKQotICAgICAgICAgICAg
c2VsZi5idWlsZCgicmVsZWFzZSIpCisgICAgICAgICAgICBzZWxmLmJ1aWxkKCJkZWJ1ZyIsIGdy
b3VwKQorICAgICAgICAgICAgc2VsZi5idWlsZCgicmVsZWFzZSIsIGdyb3VwKQogICAgICAgICBl
bHNlOgotICAgICAgICAgICAgc2VsZi5idWlsZChzZWxmLl9vcHRpb25zLmJ1aWxkX3N0eWxlKQor
ICAgICAgICAgICAgc2VsZi5idWlsZChzZWxmLl9vcHRpb25zLmJ1aWxkX3N0eWxlLCBncm91cCkK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9jaGVja3BhdGNo
cmVsZXZhbmNlLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL2NoZWNrcGF0
Y2hyZWxldmFuY2UucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDliOGYwOTNmZTI0NjhmMmI5ZTM3YjUyYzE3OTRk
ODI3M2E0MDJmYQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9v
bC9zdGVwcy9jaGVja3BhdGNocmVsZXZhbmNlLnB5CkBAIC0wLDAgKzEsNzUgQEAKKyMgQ29weXJp
Z2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMg
Mi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
CisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IKKyMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyMgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworaW1wb3J0IGxvZ2dpbmcKK2ltcG9ydCBy
ZQorCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZlIGltcG9ydCBTY3JpcHRF
cnJvcgorZnJvbSB3ZWJraXRweS50b29sLnN0ZXBzLmFic3RyYWN0c3RlcCBpbXBvcnQgQWJzdHJh
Y3RTdGVwCitmcm9tIHdlYmtpdHB5LnRvb2wuc3RlcHMub3B0aW9ucyBpbXBvcnQgT3B0aW9ucwor
CitfbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18pCisKKworY2xhc3MgQ2hlY2tQYXRj
aFJlbGV2YW5jZShBYnN0cmFjdFN0ZXApOgorICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBvcHRp
b25zKGNscyk6CisgICAgICAgIHJldHVybiBBYnN0cmFjdFN0ZXAub3B0aW9ucygpICsgWworICAg
ICAgICAgICAgT3B0aW9ucy5ncm91cCwKKyAgICAgICAgXQorCisgICAganNjX3BhdGhzID0gWwor
ICAgICAgICAiSlNUZXN0cy8iLAorICAgICAgICAiU291cmNlL0phdmFTY3JpcHRDb3JlLyIsCisg
ICAgICAgICJTb3VyY2UvV1RGLyIKKyAgICAgICAgIlNvdXJjZS9ibWFsbG9jLyIsCisgICAgICAg
ICJTb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS8iLAorICAgIF0KKworICAgIGRlZiBfZG9lc19jb250
YWluX2NoYW5nZV9pbl9wYXRocyhzZWxmLCBmaWxlcywgcGF0dGVybnMpOgorICAgICAgICBmb3Ig
aXRlbSBpbiBmaWxlczoKKyAgICAgICAgICAgIGZvciBwYXR0ZXJuIGluIHBhdHRlcm5zOgorICAg
ICAgICAgICAgICAgIGlmIHJlLnNlYXJjaChwYXR0ZXJuLCBpdGVtLCByZS5JR05PUkVDQVNFKToK
KyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFRydWUKKworICAgICAgICByZXR1cm4gRmFsc2UK
KworICAgIGRlZiBydW4oc2VsZiwgc3RhdGUpOgorICAgICAgICBfbG9nLmluZm8oIkNoZWNraW5n
IHJlbGV2YW5jZSBvZiBwYXRjaCIpCisKKyAgICAgICAgZ3JvdXAgPSBOb25lCisgICAgICAgIGlm
IGhhc2F0dHIoc2VsZi5fb3B0aW9ucywgJ2dyb3VwJyk6CisgICAgICAgICAgICBncm91cCA9IHNl
bGYuX29wdGlvbnMuZ3JvdXAKKworICAgICAgICBjaGFuZ2VfbGlzdCA9IHNlbGYuX3Rvb2wuc2Nt
KCkuY2hhbmdlZF9maWxlcygpCisKKyAgICAgICAgaWYgZ3JvdXAgPT0gImpzYyI6CisgICAgICAg
ICAgICByZWxldmFudCA9IHNlbGYuX2RvZXNfY29udGFpbl9jaGFuZ2VfaW5fcGF0aHMoY2hhbmdl
X2xpc3QsIHNlbGYuanNjX3BhdGhzKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmVsZXZh
bnQgPSBUcnVlCisKKyAgICAgICAgaWYgcmVsZXZhbnQgaXMgVHJ1ZToKKyAgICAgICAgICAgIF9s
b2cuaW5mbygiVGhpcyBwYXRjaCBoYXMgcmVsZXZhbnQgY2hhbmdlcy4iKQorICAgICAgICAgICAg
cmV0dXJuIFRydWUKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIF9sb2cuaW5mbygiVGhpcyBw
YXRjaCBkb2VzIG5vdCBoYXZlIHJlbGV2YW50IGNoYW5nZXMuIikKKyAgICAgICAgICAgIHJhaXNl
IFNjcmlwdEVycm9yKG1lc3NhZ2U9IlRoaXMgcGF0Y2ggZG9lcyBub3QgaGF2ZSByZWxldmFudCBj
aGFuZ2VzLiIpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMv
b3B0aW9ucy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9vcHRpb25zLnB5
CmluZGV4IDNlZjQ3ZDAwOGE1OWUwNTBkNGNhMGM0ODc3ZGRkMWE2MDczMWE0MDkuLmY1ZTBkZWYz
MjcxN2UzMDZlNjMxNjk4NDExMTBiMjg5OGI3MmExZjEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvdG9vbC9zdGVwcy9vcHRpb25zLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvdG9vbC9zdGVwcy9vcHRpb25zLnB5CkBAIC0xLDQgKzEsNSBAQAogIyBDb3B5cmlnaHQg
KEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChD
KSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAj
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucyBhcmUKQEAgLTQ2LDYgKzQ3LDcgQEAgY2xhc3MgT3B0aW9ucyhvYmplY3QpOgog
ICAgIGVtYWlsID0gbWFrZV9vcHRpb24oIi0tZW1haWwiLCBhY3Rpb249InN0b3JlIiwgdHlwZT0i
c3RyaW5nIiwgZGVzdD0iZW1haWwiLCBoZWxwPSJFbWFpbCBhZGRyZXNzIHRvIHVzZSBpbiBDaGFu
Z2VMb2dzLiIpCiAgICAgZm9yY2VfY2xlYW4gPSBtYWtlX29wdGlvbigiLS1mb3JjZS1jbGVhbiIs
IGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGRlc3Q9ImZvcmNlX2NsZWFuIiwgZGVmYXVsdD1GYWxzZSwg
aGVscD0iQ2xlYW4gd29ya2luZyBkaXJlY3RvcnkgYmVmb3JlIGFwcGx5aW5nIHBhdGNoZXMgKHJl
bW92ZXMgbG9jYWwgY2hhbmdlcyBhbmQgY29tbWl0cykiKQogICAgIGdpdF9jb21taXQgPSBtYWtl
X29wdGlvbigiLWciLCAiLS1naXQtY29tbWl0IiwgYWN0aW9uPSJzdG9yZSIsIGRlc3Q9ImdpdF9j
b21taXQiLCBoZWxwPSJPcGVyYXRlIG9uIGEgbG9jYWwgY29tbWl0LiBJZiBhIHJhbmdlLCB0aGUg
Y29tbWl0cyBhcmUgc3F1YXNoZWQgaW50byBvbmUuIDxyZWY+Li4uLiBpbmNsdWRlcyB0aGUgd29y
a2luZyBjb3B5IGNoYW5nZXMuIFVQU1RSRUFNIGNhbiBiZSB1c2VkIGZvciB0aGUgdXBzdHJlYW0v
dHJhY2tpbmcgYnJhbmNoLiIpCisgICAgZ3JvdXAgPSBtYWtlX29wdGlvbigiLS1ncm91cCIsIGFj
dGlvbj0ic3RvcmUiLCBkZXN0PSJncm91cCIsIGRlZmF1bHQ9Tm9uZSwgaGVscD0iIikKICAgICBs
b2NhbF9jb21taXQgPSBtYWtlX29wdGlvbigiLS1sb2NhbC1jb21taXQiLCBhY3Rpb249InN0b3Jl
X3RydWUiLCBkZXN0PSJsb2NhbF9jb21taXQiLCBkZWZhdWx0PUZhbHNlLCBoZWxwPSJNYWtlIGEg
bG9jYWwgY29tbWl0IGZvciBlYWNoIGFwcGxpZWQgcGF0Y2giKQogICAgIG5vbl9pbnRlcmFjdGl2
ZSA9IG1ha2Vfb3B0aW9uKCItLW5vbi1pbnRlcmFjdGl2ZSIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIs
IGRlc3Q9Im5vbl9pbnRlcmFjdGl2ZSIsIGRlZmF1bHQ9RmFsc2UsIGhlbHA9Ik5ldmVyIHByb21w
dCB0aGUgdXNlciwgZmFpbCBhcyBmYXN0IGFzIHBvc3NpYmxlLiIpCiAgICAgb2Jzb2xldGVfcGF0
Y2hlcyA9IG1ha2Vfb3B0aW9uKCItLW5vLW9ic29sZXRlIiwgYWN0aW9uPSJzdG9yZV9mYWxzZSIs
IGRlc3Q9Im9ic29sZXRlX3BhdGNoZXMiLCBkZWZhdWx0PVRydWUsIGhlbHA9IkRvIG5vdCBvYnNv
bGV0ZSBvbGQgcGF0Y2hlcyBiZWZvcmUgcG9zdGluZyB0aGlzIG9uZS4iKQpkaWZmIC0tZ2l0IGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3J1bnRlc3RzLnB5IGIvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3J1bnRlc3RzLnB5CmluZGV4IDc1ZDcyYmM5YWQyZjRl
MzZkNDVmZGFjOTBmMTgxOTQ4MWNmMDI4OGIuLjVhN2YyYTk4YTNmYmIyNGVjYjAzZjYxYzZiNjBm
NjUwNDJkOTcxYTQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVw
cy9ydW50ZXN0cy5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvcnVu
dGVzdHMucHkKQEAgLTEsNCArMSw1IEBACiAjIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAt
NTMsNiArNTQsNyBAQCBjbGFzcyBSdW5UZXN0cyhBYnN0cmFjdFN0ZXApOgogICAgICAgICAgICAg
T3B0aW9ucy5pdGVyYXRlX29uX25ld190ZXN0cywKICAgICAgICAgICAgIE9wdGlvbnMubm9uX2lu
dGVyYWN0aXZlLAogICAgICAgICAgICAgT3B0aW9ucy5xdWlldCwKKyAgICAgICAgICAgIE9wdGlv
bnMuZ3JvdXAsCiAgICAgICAgIF0KIAogICAgIGRlZiBydW4oc2VsZiwgc3RhdGUpOgpAQCAtNjMs
NiArNjUsMTAgQEAgY2xhc3MgUnVuVGVzdHMoQWJzdHJhY3RTdGVwKToKICAgICAgICAgaWYgbm90
IHNlbGYuX29wdGlvbnMudGVzdDoKICAgICAgICAgICAgIHJldHVybgogCisgICAgICAgIGlmIGhh
c2F0dHIoc2VsZi5fb3B0aW9ucywgImdyb3VwIikgYW5kIHNlbGYuX29wdGlvbnMuZ3JvdXAgPT0g
ImpzYyI6CisgICAgICAgICAgICBzZWxmLl9ydW5famF2YXNjcmlwdGNvcmVfdGVzdHMoKQorICAg
ICAgICAgICAgcmV0dXJuCisKICAgICAgICAgcHl0aG9uX3VuaXR0ZXN0c19jb21tYW5kID0gc2Vs
Zi5fdG9vbC5kZXByZWNhdGVkX3BvcnQoKS5ydW5fcHl0aG9uX3VuaXR0ZXN0c19jb21tYW5kKCkK
ICAgICAgICAgaWYgcHl0aG9uX3VuaXR0ZXN0c19jb21tYW5kOgogICAgICAgICAgICAgX2xvZy5p
bmZvKCJSdW5uaW5nIFB5dGhvbiB1bml0IHRlc3RzIikKQEAgLTE0MywzICsxNDksNyBAQCBjbGFz
cyBSdW5UZXN0cyhBYnN0cmFjdFN0ZXApOgogICAgICAgICAgICAgYXJncy5hcHBlbmQoIi0taXRl
cmF0aW9ucz0lZCIgJSBpdGVyYXRlX29uX25ld190ZXN0cykKIAogICAgICAgICBzZWxmLl90b29s
LmV4ZWN1dGl2ZS5ydW5fYW5kX3Rocm93X2lmX2ZhaWwoYXJncywgY3dkPXNlbGYuX3Rvb2wuc2Nt
KCkuY2hlY2tvdXRfcm9vdCkKKworICAgIGRlZiBfcnVuX2phdmFzY3JpcHRjb3JlX3Rlc3RzKHNl
bGYpOgorICAgICAgICBhcmdzID0gc2VsZi5fdG9vbC5kZXByZWNhdGVkX3BvcnQoKS5ydW5famF2
YXNjcmlwdGNvcmVfdGVzdHNfY29tbWFuZChzZWxmLl9vcHRpb25zLmJ1aWxkX3N0eWxlKQorICAg
ICAgICBzZWxmLl90b29sLmV4ZWN1dGl2ZS5ydW5fYW5kX3Rocm93X2lmX2ZhaWwoYXJncywgY3dk
PXNlbGYuX3Rvb2wuc2NtKCkuY2hlY2tvdXRfcm9vdCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvdG9vbC9zdGVwcy9zdGVwc191bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvdG9vbC9zdGVwcy9zdGVwc191bml0dGVzdC5weQppbmRleCA3ZDk0YTEzYjM0NjNk
OThhNDRmOTQ5ZjgxNGNjNzEyMWMwNjhhYjVkLi5jMzMwMGM4NTk0NGNkZTIxYWQ5ZDBiM2U1NmRl
ZDg4MDEzZWI2YWRlIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3Rl
cHMvc3RlcHNfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0
ZXBzL3N0ZXBzX3VuaXR0ZXN0LnB5CkBAIC0xLDQgKzEsNSBAQAogIyBDb3B5cmlnaHQgKEMpIDIw
MTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDE3
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucyBhcmUKQEAgLTI4LDYgKzI5LDcgQEAKIAogaW1wb3J0IHVuaXR0ZXN0CiAKK2Zyb20gd2Vi
a2l0cHkuY29tbW9uLnN5c3RlbS5leGVjdXRpdmUgaW1wb3J0IFNjcmlwdEVycm9yCiBmcm9tIHdl
YmtpdHB5LmNvbW1vbi5zeXN0ZW0ub3V0cHV0Y2FwdHVyZSBpbXBvcnQgT3V0cHV0Q2FwdHVyZQog
ZnJvbSB3ZWJraXRweS5jb21tb24uY29uZmlnLnBvcnRzIGltcG9ydCBEZXByZWNhdGVkUG9ydAog
ZnJvbSB3ZWJraXRweS50b29sLm1vY2t0b29sIGltcG9ydCBNb2NrT3B0aW9ucywgTW9ja1Rvb2wK
QEAgLTExMSw3ICsxMTMsNyBAQCBNT0NLIHJ1bl9hbmRfdGhyb3dfaWZfZmFpbDogWydUb29scy9T
Y3JpcHRzL3Rlc3Qtd2Via2l0cHknXSwgY3dkPS9tb2NrLWNoZWNrb3V0CiBSdW5uaW5nIFBlcmwg
dW5pdCB0ZXN0cwogTU9DSyBydW5fYW5kX3Rocm93X2lmX2ZhaWw6IFsnVG9vbHMvU2NyaXB0cy90
ZXN0LXdlYmtpdHBlcmwnXSwgY3dkPS9tb2NrLWNoZWNrb3V0CiBSdW5uaW5nIEphdmFTY3JpcHRD
b3JlIHRlc3RzCi1NT0NLIHJ1bl9hbmRfdGhyb3dfaWZfZmFpbDogWydUb29scy9TY3JpcHRzL3J1
bi1qYXZhc2NyaXB0Y29yZS10ZXN0cyddLCBjd2Q9L21vY2stY2hlY2tvdXQKK01PQ0sgcnVuX2Fu
ZF90aHJvd19pZl9mYWlsOiBbJ1Rvb2xzL1NjcmlwdHMvcnVuLWphdmFzY3JpcHRjb3JlLXRlc3Rz
JywgJy0tbm8tZmFpbC1mYXN0JywgJy0tanNvbi1vdXRwdXQ9anNjX3Rlc3RfcmVzdWx0cy5qc29u
J10sIGN3ZD0vbW9jay1jaGVja291dAogUnVubmluZyBiaW5kaW5ncyBnZW5lcmF0aW9uIHRlc3Rz
CiBNT0NLIHJ1bl9hbmRfdGhyb3dfaWZfZmFpbDogWydUb29scy9TY3JpcHRzL3J1bi1iaW5kaW5n
cy10ZXN0cyddLCBjd2Q9L21vY2stY2hlY2tvdXQKIFJ1bm5pbmcgcnVuLXdlYmtpdC10ZXN0cwpA
QCAtMTMzLDEwICsxMzUsMTExIEBAIE1PQ0sgcnVuX2FuZF90aHJvd19pZl9mYWlsOiBbJ1Rvb2xz
L1NjcmlwdHMvdGVzdC13ZWJraXRweSddLCBjd2Q9L21vY2stY2hlY2tvdXQKIFJ1bm5pbmcgUGVy
bCB1bml0IHRlc3RzCiBNT0NLIHJ1bl9hbmRfdGhyb3dfaWZfZmFpbDogWydUb29scy9TY3JpcHRz
L3Rlc3Qtd2Via2l0cGVybCddLCBjd2Q9L21vY2stY2hlY2tvdXQKIFJ1bm5pbmcgSmF2YVNjcmlw
dENvcmUgdGVzdHMKLU1PQ0sgcnVuX2FuZF90aHJvd19pZl9mYWlsOiBbJ1Rvb2xzL1NjcmlwdHMv
cnVuLWphdmFzY3JpcHRjb3JlLXRlc3RzJ10sIGN3ZD0vbW9jay1jaGVja291dAorTU9DSyBydW5f
YW5kX3Rocm93X2lmX2ZhaWw6IFsnVG9vbHMvU2NyaXB0cy9ydW4tamF2YXNjcmlwdGNvcmUtdGVz
dHMnLCAnLS1uby1mYWlsLWZhc3QnLCAnLS1qc29uLW91dHB1dD1qc2NfdGVzdF9yZXN1bHRzLmpz
b24nXSwgY3dkPS9tb2NrLWNoZWNrb3V0CiBSdW5uaW5nIGJpbmRpbmdzIGdlbmVyYXRpb24gdGVz
dHMKIE1PQ0sgcnVuX2FuZF90aHJvd19pZl9mYWlsOiBbJ1Rvb2xzL1NjcmlwdHMvcnVuLWJpbmRp
bmdzLXRlc3RzJ10sIGN3ZD0vbW9jay1jaGVja291dAogUnVubmluZyBydW4td2Via2l0LXRlc3Rz
CiBNT0NLIHJ1bl9hbmRfdGhyb3dfaWZfZmFpbDogWydUb29scy9TY3JpcHRzL3J1bi13ZWJraXQt
dGVzdHMnLCAnLS1kZWJ1ZycsICctLXF1aWV0J10sIGN3ZD0vbW9jay1jaGVja291dAogIiIiCiAg
ICAgICAgIE91dHB1dENhcHR1cmUoKS5hc3NlcnRfb3V0cHV0cyhzZWxmLCBzdGVwLnJ1biwgW3t9
XSwgZXhwZWN0ZWRfbG9ncz1leHBlY3RlZF9sb2dzKQorCisgICAgZGVmIHRlc3RfcnVudGVzdHNf
anNjKHNlbGYpOgorICAgICAgICBtb2NrX29wdGlvbnMgPSBzZWxmLl9zdGVwX29wdGlvbnMoKQor
ICAgICAgICBtb2NrX29wdGlvbnMubm9uX2ludGVyYWN0aXZlID0gRmFsc2UKKyAgICAgICAgbW9j
a19vcHRpb25zLmJ1aWxkX3N0eWxlID0gInJlbGVhc2UiCisgICAgICAgIG1vY2tfb3B0aW9ucy5n
cm91cCA9ICJqc2MiCisgICAgICAgIHN0ZXAgPSBzdGVwcy5SdW5UZXN0cyhNb2NrVG9vbChsb2df
ZXhlY3V0aXZlPVRydWUpLCBtb2NrX29wdGlvbnMpCisgICAgICAgIHRvb2wgPSBNb2NrVG9vbChs
b2dfZXhlY3V0aXZlPVRydWUpCisgICAgICAgICMgRklYTUU6IFdlIHNob3VsZG4ndCB1c2UgYSBy
ZWFsIHBvcnQtb2JqZWN0IGhlcmUsIGJ1dCB0aGVyZSBpcyB0b28gbXVjaCB0byBtb2NrIGF0IHRo
ZSBtb21lbnQuCisgICAgICAgIHRvb2wuX2RlcHJlY2F0ZWRfcG9ydCA9IERlcHJlY2F0ZWRQb3J0
KCkKKyAgICAgICAgc3RlcCA9IHN0ZXBzLlJ1blRlc3RzKHRvb2wsIG1vY2tfb3B0aW9ucykKKyAg
ICAgICAgZXhwZWN0ZWRfbG9ncyA9ICIiIk1PQ0sgcnVuX2FuZF90aHJvd19pZl9mYWlsOiBbJ1Rv
b2xzL1NjcmlwdHMvcnVuLWphdmFzY3JpcHRjb3JlLXRlc3RzJywgJy0tbm8tZmFpbC1mYXN0Jywg
Jy0tanNvbi1vdXRwdXQ9anNjX3Rlc3RfcmVzdWx0cy5qc29uJ10sIGN3ZD0vbW9jay1jaGVja291
dAorIiIiCisgICAgICAgIE91dHB1dENhcHR1cmUoKS5hc3NlcnRfb3V0cHV0cyhzZWxmLCBzdGVw
LnJ1biwgW3t9XSwgZXhwZWN0ZWRfbG9ncz1leHBlY3RlZF9sb2dzKQorCisgICAgZGVmIHRlc3Rf
cnVudGVzdHNfanNjX2RlYnVnKHNlbGYpOgorICAgICAgICBtb2NrX29wdGlvbnMgPSBzZWxmLl9z
dGVwX29wdGlvbnMoKQorICAgICAgICBtb2NrX29wdGlvbnMubm9uX2ludGVyYWN0aXZlID0gRmFs
c2UKKyAgICAgICAgbW9ja19vcHRpb25zLmJ1aWxkX3N0eWxlID0gImRlYnVnIgorICAgICAgICBt
b2NrX29wdGlvbnMuZ3JvdXAgPSAianNjIgorICAgICAgICB0b29sID0gTW9ja1Rvb2wobG9nX2V4
ZWN1dGl2ZT1UcnVlKQorICAgICAgICAjIEZJWE1FOiBXZSBzaG91bGRuJ3QgdXNlIGEgcmVhbCBw
b3J0LW9iamVjdCBoZXJlLCBidXQgdGhlcmUgaXMgdG9vIG11Y2ggdG8gbW9jayBhdCB0aGUgbW9t
ZW50LgorICAgICAgICB0b29sLl9kZXByZWNhdGVkX3BvcnQgPSBEZXByZWNhdGVkUG9ydCgpCisg
ICAgICAgIHN0ZXAgPSBzdGVwcy5SdW5UZXN0cyh0b29sLCBtb2NrX29wdGlvbnMpCisgICAgICAg
IGV4cGVjdGVkX2xvZ3MgPSAiIiJNT0NLIHJ1bl9hbmRfdGhyb3dfaWZfZmFpbDogWydUb29scy9T
Y3JpcHRzL3J1bi1qYXZhc2NyaXB0Y29yZS10ZXN0cycsICctLW5vLWZhaWwtZmFzdCcsICctLWpz
b24tb3V0cHV0PWpzY190ZXN0X3Jlc3VsdHMuanNvbicsICctLWRlYnVnJ10sIGN3ZD0vbW9jay1j
aGVja291dAorIiIiCisgICAgICAgIE91dHB1dENhcHR1cmUoKS5hc3NlcnRfb3V0cHV0cyhzZWxm
LCBzdGVwLnJ1biwgW3t9XSwgZXhwZWN0ZWRfbG9ncz1leHBlY3RlZF9sb2dzKQorCisgICAgZGVm
IHRlc3RfYnVpbGRfanNjX2RlYnVnKHNlbGYpOgorICAgICAgICBtb2NrX29wdGlvbnMgPSBzZWxm
Ll9zdGVwX29wdGlvbnMoKQorICAgICAgICBtb2NrX29wdGlvbnMubm9uX2ludGVyYWN0aXZlID0g
RmFsc2UKKyAgICAgICAgbW9ja19vcHRpb25zLmJ1aWxkX3N0eWxlID0gImRlYnVnIgorICAgICAg
ICBtb2NrX29wdGlvbnMuYnVpbGQgPSBUcnVlCisgICAgICAgIG1vY2tfb3B0aW9ucy5hcmNoaXRl
Y3R1cmUgPSBUcnVlCisgICAgICAgIG1vY2tfb3B0aW9ucy5ncm91cCA9ICJqc2MiCisgICAgICAg
IHRvb2wgPSBNb2NrVG9vbChsb2dfZXhlY3V0aXZlPVRydWUpCisgICAgICAgICMgRklYTUU6IFdl
IHNob3VsZG4ndCB1c2UgYSByZWFsIHBvcnQtb2JqZWN0IGhlcmUsIGJ1dCB0aGVyZSBpcyB0b28g
bXVjaCB0byBtb2NrIGF0IHRoZSBtb21lbnQuCisgICAgICAgIHRvb2wuX2RlcHJlY2F0ZWRfcG9y
dCA9IERlcHJlY2F0ZWRQb3J0KCkKKyAgICAgICAgc3RlcCA9IHN0ZXBzLkJ1aWxkKHRvb2wsIG1v
Y2tfb3B0aW9ucykKKyAgICAgICAgZXhwZWN0ZWRfbG9ncyA9ICIiIkJ1aWxkaW5nIFdlYktpdAor
TU9DSyBydW5fYW5kX3Rocm93X2lmX2ZhaWw6IFsnVG9vbHMvU2NyaXB0cy9idWlsZC1qc2MnLCAn
LS1kZWJ1ZycsICdBUkNIUz1UcnVlJ10sIGN3ZD0vbW9jay1jaGVja291dCwgZW52PXsnTENfQUxM
JzogJ0MnLCAnVEVSTSc6ICdub25lJywgJ01PQ0tfRU5WSVJPTl9DT1BZJzogJzEnfQorIiIiCisg
ICAgICAgIE91dHB1dENhcHR1cmUoKS5hc3NlcnRfb3V0cHV0cyhzZWxmLCBzdGVwLnJ1biwgW3t9
XSwgZXhwZWN0ZWRfbG9ncz1leHBlY3RlZF9sb2dzKQorCisgICAgZGVmIHRlc3RfYnVpbGRfanNj
KHNlbGYpOgorICAgICAgICBtb2NrX29wdGlvbnMgPSBzZWxmLl9zdGVwX29wdGlvbnMoKQorICAg
ICAgICBtb2NrX29wdGlvbnMubm9uX2ludGVyYWN0aXZlID0gRmFsc2UKKyAgICAgICAgbW9ja19v
cHRpb25zLmJ1aWxkX3N0eWxlID0gInJlbGVhc2UiCisgICAgICAgIG1vY2tfb3B0aW9ucy5idWls
ZCA9IFRydWUKKyAgICAgICAgbW9ja19vcHRpb25zLmFyY2hpdGVjdHVyZSA9IFRydWUKKyAgICAg
ICAgbW9ja19vcHRpb25zLmdyb3VwID0gImpzYyIKKyAgICAgICAgdG9vbCA9IE1vY2tUb29sKGxv
Z19leGVjdXRpdmU9VHJ1ZSkKKyAgICAgICAgIyBGSVhNRTogV2Ugc2hvdWxkbid0IHVzZSBhIHJl
YWwgcG9ydC1vYmplY3QgaGVyZSwgYnV0IHRoZXJlIGlzIHRvbyBtdWNoIHRvIG1vY2sgYXQgdGhl
IG1vbWVudC4KKyAgICAgICAgdG9vbC5fZGVwcmVjYXRlZF9wb3J0ID0gRGVwcmVjYXRlZFBvcnQo
KQorICAgICAgICBzdGVwID0gc3RlcHMuQnVpbGQodG9vbCwgbW9ja19vcHRpb25zKQorICAgICAg
ICBleHBlY3RlZF9sb2dzID0gIiIiQnVpbGRpbmcgV2ViS2l0CitNT0NLIHJ1bl9hbmRfdGhyb3df
aWZfZmFpbDogWydUb29scy9TY3JpcHRzL2J1aWxkLWpzYycsICctLXJlbGVhc2UnLCAnQVJDSFM9
VHJ1ZSddLCBjd2Q9L21vY2stY2hlY2tvdXQsIGVudj17J0xDX0FMTCc6ICdDJywgJ1RFUk0nOiAn
bm9uZScsICdNT0NLX0VOVklST05fQ09QWSc6ICcxJ30KKyIiIgorICAgICAgICBPdXRwdXRDYXB0
dXJlKCkuYXNzZXJ0X291dHB1dHMoc2VsZiwgc3RlcC5ydW4sIFt7fV0sIGV4cGVjdGVkX2xvZ3M9
ZXhwZWN0ZWRfbG9ncykKKworICAgIGRlZiB0ZXN0X3BhdGNoX3JlbGV2YW50KHNlbGYpOgorICAg
ICAgICBzZWxmLm1heERpZmYgPSBOb25lCisgICAgICAgIG1vY2tfb3B0aW9ucyA9IHNlbGYuX3N0
ZXBfb3B0aW9ucygpCisgICAgICAgIHRvb2wgPSBNb2NrVG9vbChsb2dfZXhlY3V0aXZlPVRydWUp
CisgICAgICAgIHRvb2wuc2NtKCkuX21vY2tDaGFuZ2VkRmlsZXMgPSBbIkpTVGVzdHMvTW9ja0Zp
bGUxIiwgIkNoYW5nZUxvZyJdCisgICAgICAgICMgRklYTUU6IFdlIHNob3VsZG4ndCB1c2UgYSBy
ZWFsIHBvcnQtb2JqZWN0IGhlcmUsIGJ1dCB0aGVyZSBpcyB0b28gbXVjaCB0byBtb2NrIGF0IHRo
ZSBtb21lbnQuCisgICAgICAgIHRvb2wuX2RlcHJlY2F0ZWRfcG9ydCA9IERlcHJlY2F0ZWRQb3J0
KCkKKyAgICAgICAgc3RlcCA9IHN0ZXBzLkNoZWNrUGF0Y2hSZWxldmFuY2UodG9vbCwgbW9ja19v
cHRpb25zKQorICAgICAgICBleHBlY3RlZF9sb2dzID0gIiIiQ2hlY2tpbmcgcmVsZXZhbmNlIG9m
IHBhdGNoCitUaGlzIHBhdGNoIGhhcyByZWxldmFudCBjaGFuZ2VzLgorIiIiCisgICAgICAgIE91
dHB1dENhcHR1cmUoKS5hc3NlcnRfb3V0cHV0cyhzZWxmLCBzdGVwLnJ1biwgW3t9XSwgZXhwZWN0
ZWRfbG9ncz1leHBlY3RlZF9sb2dzKQorCisgICAgZGVmIHRlc3RfcGF0Y2hfcmVsZXZhbnRfanNj
KHNlbGYpOgorICAgICAgICBzZWxmLm1heERpZmYgPSBOb25lCisgICAgICAgIG1vY2tfb3B0aW9u
cyA9IHNlbGYuX3N0ZXBfb3B0aW9ucygpCisgICAgICAgIG1vY2tfb3B0aW9ucy5ncm91cCA9ICJq
c2MiCisgICAgICAgIHRvb2wgPSBNb2NrVG9vbChsb2dfZXhlY3V0aXZlPVRydWUpCisgICAgICAg
IHRvb2wuc2NtKCkuX21vY2tDaGFuZ2VkRmlsZXMgPSBbIkpTVGVzdHMvTW9ja0ZpbGUxIiwgIkNo
YW5nZUxvZyJdCisgICAgICAgICMgRklYTUU6IFdlIHNob3VsZG4ndCB1c2UgYSByZWFsIHBvcnQt
b2JqZWN0IGhlcmUsIGJ1dCB0aGVyZSBpcyB0b28gbXVjaCB0byBtb2NrIGF0IHRoZSBtb21lbnQu
CisgICAgICAgIHRvb2wuX2RlcHJlY2F0ZWRfcG9ydCA9IERlcHJlY2F0ZWRQb3J0KCkKKyAgICAg
ICAgc3RlcCA9IHN0ZXBzLkNoZWNrUGF0Y2hSZWxldmFuY2UodG9vbCwgbW9ja19vcHRpb25zKQor
ICAgICAgICBleHBlY3RlZF9sb2dzID0gIiIiQ2hlY2tpbmcgcmVsZXZhbmNlIG9mIHBhdGNoCitU
aGlzIHBhdGNoIGhhcyByZWxldmFudCBjaGFuZ2VzLgorIiIiCisgICAgICAgIE91dHB1dENhcHR1
cmUoKS5hc3NlcnRfb3V0cHV0cyhzZWxmLCBzdGVwLnJ1biwgW3t9XSwgZXhwZWN0ZWRfbG9ncz1l
eHBlY3RlZF9sb2dzKQorCisgICAgZGVmIHRlc3RfcGF0Y2hfbm90X3JlbGV2YW50X2pzYyhzZWxm
KToKKyAgICAgICAgc2VsZi5tYXhEaWZmID0gTm9uZQorICAgICAgICBtb2NrX29wdGlvbnMgPSBz
ZWxmLl9zdGVwX29wdGlvbnMoKQorICAgICAgICBtb2NrX29wdGlvbnMuZ3JvdXAgPSAianNjIgor
ICAgICAgICB0b29sID0gTW9ja1Rvb2wobG9nX2V4ZWN1dGl2ZT1UcnVlKQorICAgICAgICB0b29s
LnNjbSgpLl9tb2NrQ2hhbmdlZEZpbGVzID0gWyJUb29scy9DaGFuZ2VMb2ciLCAiVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3N0ZXBzX3VuaXR0ZXN0LnB5Il0KKyAgICAgICAgIyBG
SVhNRTogV2Ugc2hvdWxkbid0IHVzZSBhIHJlYWwgcG9ydC1vYmplY3QgaGVyZSwgYnV0IHRoZXJl
IGlzIHRvbyBtdWNoIHRvIG1vY2sgYXQgdGhlIG1vbWVudC4KKyAgICAgICAgdG9vbC5fZGVwcmVj
YXRlZF9wb3J0ID0gRGVwcmVjYXRlZFBvcnQoKQorICAgICAgICBzdGVwID0gc3RlcHMuQ2hlY2tQ
YXRjaFJlbGV2YW5jZSh0b29sLCBtb2NrX29wdGlvbnMpCisgICAgICAgIGV4cGVjdGVkX2xvZ3Mg
PSAiIiJDaGVja2luZyByZWxldmFuY2Ugb2YgcGF0Y2gKK1RoaXMgcGF0Y2ggZG9lcyBub3QgaGF2
ZSByZWxldmFudCBjaGFuZ2VzLgorIiIiCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMo
U2NyaXB0RXJyb3IpOgorICAgICAgICAgICAgT3V0cHV0Q2FwdHVyZSgpLmFzc2VydF9vdXRwdXRz
KHNlbGYsIHN0ZXAucnVuLCBbe31dLCBleHBlY3RlZF9sb2dzPWV4cGVjdGVkX2xvZ3MpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>300294</attachid>
            <date>2017-01-31 20:17:53 -0800</date>
            <delta_ts>2017-02-02 15:27:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-162458-20170131201541.patch</filename>
            <type>text/plain</type>
            <size>77714</size>
            <attacher name="Srinivasan Vijayaraghavan">webkit</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA2Mzc3CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOWI3NTZhN2Y2MTZlMzQ0YjFhYmFjNjFkZmVkMmExZWI4
NmY3ZTQ0ZC4uZGQwYmNjOTQxODU1ODMzY2RmZGQwMzkwMzg5OGNiM2EwYzdhNzNjZCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEx
NiBAQAorMjAxNy0wMS0zMCAgU3Jpbml2YXNhbiBWaWpheWFyYWdoYXZhbiAgPHN2aWpheWFyYWdo
YXZhbkBhcHBsZS5jb20+CisKKyAgICAgICAgRVdTIHNob3VsZCBydW4gSmF2YVNjcmlwdENvcmUg
dGVzdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2
MjQ1OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
U2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hlY2tvdXQvc2NtL3NjbV9tb2NrLnB5OgorICAgICAg
ICAoTW9ja1NDTS5fX2luaXRfXyk6IEFkZCBfbW9ja0NoYW5nZWRGaWxlcyB2YXJpYWJsZS4KKyAg
ICAgICAgKE1vY2tTQ00uY2hhbmdlZF9maWxlcyk6IENoYW5nZSB0byB1c2UgX21vY2tDaGFuZ2Vk
RmlsZXMgdmFyaWFibGVzLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZp
Zy9ld3MuanNvbjogQWRkIGNvbmZpZyBpbmZvIGZvciBKU0MgRVdTLgorICAgICAgICAqIFNjcmlw
dHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9wb3J0cy5weTogQWRkIHN1cHBvcnQgZm9yIEpTQyBF
V1MgaW4gTWFjIFBvcnQuCisgICAgICAgIChEZXByZWNhdGVkUG9ydC5idWlsZF9qc2NfY29tbWFu
ZCk6IEFkZGVkIC0gY29tbWFuZCB0byBidWlsZCBKU0Mgb25seSAocXVpY2tlciB0aGFuIGJ1aWxk
aW5nIGFsbCBvZiBXZWJLaXQpLgorICAgICAgICAoRGVwcmVjYXRlZFBvcnQucnVuX2phdmFzY3Jp
cHRjb3JlX3Rlc3RzX2NvbW1hbmQpOiBBbGxvdyBKU0MgRVdTIHRvIG9ubHkgcnVuIEpTQyB0ZXN0
cy4KKyAgICAgICAgKE1hY1BvcnQucnVuX3dlYmtpdF90ZXN0c19jb21tYW5kKTogQ2hlY2sgZm9y
IEpTQy4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvcG9ydHNfbW9j
ay5weToKKyAgICAgICAgKE1vY2tQb3J0LnJ1bl9qYXZhc2NyaXB0Y29yZV90ZXN0c19jb21tYW5k
KTogQWRkIGJ1aWxkX3N0eWxlIGFyZ3VtZW50LgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkv
Y29tbW9uL2NvbmZpZy9wb3J0c191bml0dGVzdC5weToKKyAgICAgICAgKERlcHJlY2F0ZWRQb3J0
VGVzdC50ZXN0X21hY19wb3J0KTogQWRkIHVuaXQgdGVzdHMgZm9yIGJ1aWxkLWpzYyBzaGVsbCBj
b21tYW5kLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9qc2N0ZXN0cmVz
dWx0cy5weTogQWRkZWQuCisgICAgICAgIChKU0NUZXN0UmVzdWx0cyk6IEFkZGVkLgorICAgICAg
ICAoSlNDVGVzdFJlc3VsdHMuaW50ZXJzZWN0aW9uKTogUmV0dXJuIGEgSlNDVGVzdFJlc3VsdHMg
b2JqZWN0IHdpdGggZmFpbHVyZXMgY29tbW9uIHRvIGJvdGggaW5wdXQgb2JqZWN0cy4KKyAgICAg
ICAgKEpTQ1Rlc3RSZXN1bHRzLnJlc3VsdHNfZnJvbV9zdHJpbmcpOiBVc2UganNvbiBsaWJyYXJ5
IHRvIHBhcnNlIHJlc3VsdHMuCisgICAgICAgIChKU0NUZXN0UmVzdWx0cy5fX2luaXRfXyk6IElu
aXRpYWxpemUgbWVtYmVycy4KKyAgICAgICAgKEpTQ1Rlc3RSZXN1bHRzLmVxdWFscyk6IFRoaXMg
ZW5hYmxlcyB1bml0IHRlc3RpbmcuCisgICAgICAgIChKU0NUZXN0UmVzdWx0cy5pc19zdWJzZXQp
OiBDaGVja3MgaWYgb25lIHNldCBvZiBmYWlsdXJlcyBpcyBhIHN1YnNldCBvZiBhbm90aGVyLgor
ICAgICAgICAoSlNDVGVzdFJlc3VsdHMuc3RyZXNzX3Rlc3RfZmFpbHVyZXMpOiBHZXR0ZXIuCisg
ICAgICAgIChKU0NUZXN0UmVzdWx0cy5hbGxfYXBpX3Rlc3RzX3Bhc3NlZCk6IEdldHRlci4KKyAg
ICAgICAgKEpTQ1Rlc3RSZXN1bHRzLmFsbF9wYXNzZWQpOiBHZXR0ZXIuCisgICAgICAgIChKU0NU
ZXN0UmVzdWx0cy5mYWlsaW5nX3Rlc3RfcmVzdWx0cyk6IEdldHRlci4gU29tZSBvZiB0aGVzZSBl
eGlzdCBmb3IgaW50ZXJvcGFiaWxpdHkgcmVhc29ucy4KKyAgICAgICAgKEpTQ1Rlc3RSZXN1bHRz
LnRlc3RfcmVzdWx0cyk6IEdldHRlci4KKyAgICAgICAgKEpTQ1Rlc3RSZXN1bHRzLmZhaWxpbmdf
dGVzdHMpOiBHZXR0ZXIuCisgICAgICAgIChKU0NUZXN0UmVzdWx0cy5kaWRfZXhjZWVkX3Rlc3Rf
ZmFpbHVyZV9saW1pdCk6IEdldHRlci4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1v
bi9uZXQvanNjdGVzdHJlc3VsdHNfdW5pdHRlc3QucHk6IEFkZGVkLgorICAgICAgICAoSlNDVGVz
dFJlc3VsdHNUZXN0KTogQ2xhc3MgdG8gdGVzdCBKU0NUZXN0UmVzdWx0cy4KKyAgICAgICAgKEpT
Q1Rlc3RSZXN1bHRzVGVzdC50ZXN0X3Jlc3VsdHNfZnJvbV9zdHJpbmcpOiBUZXN0cyBwYXJzaW5n
LgorICAgICAgICAoSlNDVGVzdFJlc3VsdHNUZXN0LnRlc3RfaW50ZXJzZWN0aW9uX2FwaV90ZXN0
cyk6IFVuaXQgdGVzdCBmb3IgaW50ZXJzZWN0aW9uKCkgY2xhc3MgbWV0aG9kLgorICAgICAgICAo
SlNDVGVzdFJlc3VsdHNUZXN0LnRlc3RfaW50ZXJzZWN0aW9uX3N0cmVzc190ZXN0cyk6IFVuaXQg
dGVzdCBmb3IgaW50ZXJzZWN0aW9uKCkgY2xhc3MgbWV0aG9kLgorICAgICAgICAoSlNDVGVzdFJl
c3VsdHNUZXN0LnRlc3RfaW50ZXJzZWN0aW9uX2dlbmVyYWxfY2FzZSk6IFVuaXQgdGVzdCBmb3Ig
aW50ZXJzZWN0aW9uKCkgY2xhc3MgbWV0aG9kLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkv
dG9vbC9ib3QvZWFybHl3YXJuaW5nc3lzdGVtdGFzay5weToKKyAgICAgICAgKEVhcmx5V2Fybmlu
Z1N5c3RlbVRhc2sucnVuKTogQWRkIGNoZWNrX3BhdGNoX3JlbGV2YW5jZSBzdGVwLgorICAgICAg
ICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvanNjZXdzX3VuaXR0ZXN0LnB5OiBBZGRlZC4K
KyAgICAgICAgKE1vY2tQYXRjaEFuYWx5c2lzVGFzayk6IE1vY2tlZC1vdXQgdmVyc2lvbiBvZiBQ
YXRjaEFuYWx5c2lzVGFzayB0aGF0IGRvZXNuJ3QgcnVuIGNvbW1hbmRzLgorICAgICAgICAoTW9j
a1BhdGNoQW5hbHlzaXNUYXNrLl9faW5pdF9fKTogU2V0cyBhdHRyaWJ1dGVzLgorICAgICAgICAo
TW9ja1BhdGNoQW5hbHlzaXNUYXNrLl90ZXN0KTogT3ZlcnJpZGUgdG8gbm90IHJ1biBjb21tYW5k
LgorICAgICAgICAoTW9ja1BhdGNoQW5hbHlzaXNUYXNrLl9idWlsZF9hbmRfdGVzdF93aXRob3V0
X3BhdGNoKTogT3ZlcnJpZGUgdG8gbm90IHJ1biBjb21tYW5kLgorICAgICAgICAoTW9ja1BhdGNo
QW5hbHlzaXNUYXNrLnZhbGlkYXRlKTogQXNzdW1lIG1vY2tlZCBwYXRjaCBpcyB2YWxpZCBmb3Ig
cHVycG9zZXMgb2YgdGVzdGluZyByZXRyeSBsb2dpYy4KKyAgICAgICAgKE1vY2tQYXRjaEFuYWx5
c2lzVGFzay50ZXN0X3J1bl9jb3VudCk6IFNwZWNpZmljIHRvIHRoZSBtb2NrZWQgdmVyc2lvbiwg
dG8gdGVzdCByZXRyeSBsb2dpYy4KKyAgICAgICAgKE1vY2tKU0NFYXJseVdhcm5pbmdTeXN0ZW0p
OiBNb2NrZWQtb3V0IHZlcnNpb24gb2YgQWJzdGFyY3RFYXJseVdhcm5pbmdTeXN0ZW0gc28gd2Ug
Y2FuIHByb3ZpZGUgdGVzdCByZXN1bHRzLgorICAgICAgICAoTW9ja0pTQ0Vhcmx5V2FybmluZ1N5
c3RlbS5fX2luaXRfXyk6IFNldHMgYXR0cmlidXRlcywgYWxzbyBzZXRzIGdyb3VwIHRvIGpzYy4K
KyAgICAgICAgKE1vY2tKU0NFYXJseVdhcm5pbmdTeXN0ZW0udGVzdF9yZXN1bHRzKTogUmV0dXJu
cyB0ZXN0IHJlc3VsdHMgcHJvdmlkZWQgYnkgdXMsIGluc3RlYWQgb2YgdXNpbmcgYSBKU09OIHJl
YWRlci4KKyAgICAgICAgKEpTQ0Vhcmx5V2FybmluZ1N5c3RlbVRlc3QpOiBDbGFzcyB0byB0ZXN0
IHJldHJ5IGxvZ2ljIGluIGJlbG93IHNpdHVhdGlvbnMuCisgICAgICAgIChKU0NFYXJseVdhcm5p
bmdTeXN0ZW1UZXN0Ll9jcmVhdGVfdGFzayk6IEhlbHBlciBmdW5jdGlvbiB0byBhYnN0cmFjdCBv
dXQgY29tbW9uIGNvZGUuCisgICAgICAgIChKU0NFYXJseVdhcm5pbmdTeXN0ZW1UZXN0Ll9yZXN1
bHRzX2luZGljYXRlX2FsbF9wYXNzZWQpOiBGYWxzZSBpZiBpbnB1dCBpcyBOb25lIG9yIGhhcyBm
YWlsdXJlcywgZWxzZSBUcnVlLgorICAgICAgICAoSlNDRWFybHlXYXJuaW5nU3lzdGVtVGVzdC50
ZXN0X3N1Y2Nlc3NfY2FzZSk6IENsZWFuIHBhdGNoIG9uIGNsZWFuIHRyZWUuCisgICAgICAgIChK
U0NFYXJseVdhcm5pbmdTeXN0ZW1UZXN0LnRlc3RfdGVzdF9mYWlsdXJlKTogRmFpbGVkIHBhdGNo
IG9uIGNsZWFuIHRyZWUuCisgICAgICAgIChKU0NFYXJseVdhcm5pbmdTeXN0ZW1UZXN0LnRlc3Rf
Zml4KTogUGF0Y2ggdGhhdCBmaXhlcyBhbGwgdHJlZSByZWRuZXNzLgorICAgICAgICAoSlNDRWFy
bHlXYXJuaW5nU3lzdGVtVGVzdC50ZXN0X2luZWZmZWN0aXZlX3BhdGNoKTogUGF0Y2ggdGhhdCBo
YXMgc2FtZSBmYWlsdXJlcyBhcyB0cmVlLgorICAgICAgICAoSlNDRWFybHlXYXJuaW5nU3lzdGVt
VGVzdC50ZXN0X3BhcnRpYWxseV9lZmZlY3RpdmVfcGF0Y2gpOiBQYXRjaCBmaXhlcyBzb21lIGZh
aWx1cmVzIGJ1dCBhZGRzIG5vIG5ldyBmYWlsdXJlcy4KKyAgICAgICAgKEpTQ0Vhcmx5V2Fybmlu
Z1N5c3RlbVRlc3QudGVzdF9kaWZmZXJlbnRfdGVzdF9mYWlsdXJlc19pbl9wYXRjaF9hbmRfdHJl
ZSk6IFBhdGNoIGhhcyBzb21lIGZhaWx1cmVzIG5vdCBpbiB0cmVlLgorICAgICAgICAoSlNDRWFy
bHlXYXJuaW5nU3lzdGVtVGVzdC50ZXN0X2ZpcnN0X3Jlc3VsdHNfY291bGRfbm90X2JlX3JlYWQp
OiBQYXRjaCByZXN1bHRzIG5vdCByZWFkYWJsZS4KKyAgICAgICAgKEpTQ0Vhcmx5V2FybmluZ1N5
c3RlbVRlc3QudGVzdF9zZWNvbmRfcmVzdWx0c19jb3VsZF9ub3RfYmVfcmVhZCk6IFBhdGNoIHJl
c3VsdHMgbm90IHJlYWRhYmxlIG9uIHNlY29uZCBydW4uCisgICAgICAgIChKU0NFYXJseVdhcm5p
bmdTeXN0ZW1UZXN0LnRlc3RfY2xlYW5fcmVzdWx0c19jb3VsZF9ub3RfYmVfcmVhZCk6IFJlc3Vs
dHMgZnJvbSBjbGVhbiB0cmVlIG5vdCByZWFkYWJsZS4KKyAgICAgICAgKEpTQ0Vhcmx5V2Fybmlu
Z1N5c3RlbVRlc3QudGVzdF9mbGFreV9yZXN1bHRzX29uX2NsZWFuX3RyZWVfcGFzcyk6IFBhdGNo
IGhhcyBvbmUgZmxha2UgYW5kIG5vIGZhaWx1cmVzLgorICAgICAgICAoSlNDRWFybHlXYXJuaW5n
U3lzdGVtVGVzdC50ZXN0X2ZsYWt5X3Jlc3VsdHNfb25fY2xlYW5fdHJlZV9wYXNzX3YyKTogUGF0
Y2ggaGFzIG9uZSBmbGFrZSBhbmQgbm8gZmFpbHVyZXMuCisgICAgICAgIChKU0NFYXJseVdhcm5p
bmdTeXN0ZW1UZXN0LnRlc3RfZmxha3lfcmVzdWx0c19vbl9jbGVhbl90cmVlX2ZhaWx1cmUpOiBQ
YXRjaCBoYXMgZmxha2VzIGFuZCBmYWlsZWQgdGVzdHMuCisgICAgICAgIChKU0NFYXJseVdhcm5p
bmdTeXN0ZW1UZXN0LnRlc3RfZmxha3lfcmVzdWx0c19vbl9yZWRfdHJlZV9wYXNzKTogUGF0Y2gg
aGFzIHNhbWUgZmFpbHVyZXMgYXMgdHJlZSwgcGx1cyBhIGZsYWtlLgorICAgICAgICAqIFNjcmlw
dHMvd2Via2l0cHkvdG9vbC9ib3QvanNjdGVzdHJlc3VsdHNyZWFkZXIucHk6IEFkZGVkLgorICAg
ICAgICAoSlNDVGVzdFJlc3VsdHNSZWFkZXIpOiBSZWFkcyByZXN1bHRzIGZpbGUuCisgICAgICAg
IChKU0NUZXN0UmVzdWx0c1JlYWRlci5fX2luaXRfXyk6IFNldHMgYXR0cmlidXRlcy4KKyAgICAg
ICAgKEpTQ1Rlc3RSZXN1bHRzUmVhZGVyLl9yZWFkX2ZpbGVfY29udGVudHMpOiBSZWFkcyBmaWxl
LgorICAgICAgICAoSlNDVGVzdFJlc3VsdHNSZWFkZXIuX2NyZWF0ZV9qc2NfdGVzdF9yZXN1bHRz
KTogQ3JlYXRlcyBhIEpTQ1Rlc3RSZXN1bHRzIG9iamVjdC4KKyAgICAgICAgKEpTQ1Rlc3RSZXN1
bHRzUmVhZGVyLnJlc3VsdHMpOiBJbnZva2VzIF9jcmVhdGVfanNjX3Rlc3RfcmVzdWx0cyB0byBy
ZXR1cm4gYSBKU0NUZXN0UmVzdWx0cyBvYmplY3QuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRw
eS90b29sL2JvdC9wYXRjaGFuYWx5c2lzdGFzay5weToKKyAgICAgICAgKFBhdGNoSXNOb3RBcHBs
aWNhYmxlKTogRXhjZXB0aW9uIGZvciB3aGVuIHBhdGNoIGRvZXNuJ3QgaGF2ZSByZWxldmFudCBj
aGFuZ2VzLgorICAgICAgICAoUGF0Y2hBbmFseXNpc1Rhc2suX2NoZWNrX3BhdGNoX3JlbGV2YW5j
ZSk6IEFkZGVkLgorICAgICAgICAoUGF0Y2hBbmFseXNpc1Rhc2suX2J1aWxkKTogQ2hlY2sgZm9y
IEpTQy4KKyAgICAgICAgKFBhdGNoQW5hbHlzaXNUYXNrLl9idWlsZF93aXRob3V0X3BhdGNoKTog
Q2hlY2sgZm9yIEpTQy4KKyAgICAgICAgKFBhdGNoQW5hbHlzaXNUYXNrLl90ZXN0KTogQ2hlY2sg
Zm9yIEpTQy4KKyAgICAgICAgKFBhdGNoQW5hbHlzaXNUYXNrLl9idWlsZF9hbmRfdGVzdF93aXRo
b3V0X3BhdGNoKTogQ2hlY2sgZm9yIEpTQy4KKyAgICAgICAgKFBhdGNoQW5hbHlzaXNUYXNrLl90
ZXN0X3BhdGNoKTogQWRkIHJldHJ5IGxvZ2ljIGZvciBKU0MuCisgICAgICAgICogU2NyaXB0cy93
ZWJraXRweS90b29sL2NvbW1hbmRzL2Rvd25sb2FkLnB5OgorICAgICAgICAoQ2hlY2tQYXRjaFJl
bGV2YW5jZSk6IEFkZCBjaGVjay1wYXRjaC1yZWxldmFuY2UgY29tbWFuZC4KKyAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZWFybHl3YXJuaW5nc3lzdGVtLnB5OgorICAg
ICAgICAoQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0uYmVnaW5fd29ya19xdWV1ZSk6IFVzZSBK
U0NUZXN0UmVzdWx0c1JlYWRlciBub3QgTGF5b3V0VGVzdFJlc3VsdHNSZWFkZXIgaW4gSlNDIEVX
Uy4KKyAgICAgICAgKEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtLnJldmlld19wYXRjaCk6IEhh
bmRsZSBQYXRjaElzQXBwbGljYWJsZQorICAgICAgICAoQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0
ZW0udGVzdF9yZXN1bHRzKTogX2xheW91dF90ZXN0X3Jlc3VsdHNfcmVhZGVyIC0+IF90ZXN0X3Jl
c3VsdHNfcmVhZGVyLgorICAgICAgICAoQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0uYXJjaGl2
ZV9sYXN0X3Rlc3RfcmVzdWx0cyk6IF9sYXlvdXRfdGVzdF9yZXN1bHRzX3JlYWRlciAtPiBfdGVz
dF9yZXN1bHRzX3JlYWRlci4KKyAgICAgICAgKEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtLmdy
b3VwKTogVGhpcyBhdHRyaWJ1dGUgZGV0ZXJtaW5lcyB0aGUgdHlwZSBvZiBFV1MgKGVnLiBKU0Mp
LgorICAgICAgICAoQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0ubG9hZF9ld3NfY2xhc3Nlcyk6
IEFkZCBfZ3JvdXAuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Vh
cmx5d2FybmluZ3N5c3RlbV91bml0dGVzdC5weToKKyAgICAgICAgKEFic3RyYWN0RWFybHlXYXJu
aW5nU3lzdGVtVGVzdC50ZXN0X2ZhaWxpbmdfdGVzdHNfbWVzc2FnZS5UZXN0RVdTKTogQWRkIF9n
cm91cC4KKyAgICAgICAgKEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtVGVzdCk6IEFkZCBfZ3Jv
dXAgdmFyaWFibGUuCisgICAgICAgIChFYXJseVdhcm5pbmdTeXN0ZW1UZXN0Ll9kZWZhdWx0X2V4
cGVjdGVkX2xvZ3MpOiBBZGQgY2hlY2stcGF0Y2gtcmVsZXZhbmNlIHN0ZXAgYW5kIC0tZ3JvdXAg
b3B0aW9uLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9fX2luaXRfXy5w
eTogQWRkIENoZWNrUGF0Y2hSZWxldmFuY2UgaW1wb3J0LgorICAgICAgICAqIFNjcmlwdHMvd2Vi
a2l0cHkvdG9vbC9zdGVwcy9idWlsZC5weToKKyAgICAgICAgKEJ1aWxkLm9wdGlvbnMpOiBDaGVj
ayBmb3IgSlNDLgorICAgICAgICAoQnVpbGQuYnVpbGQpOiBDaGVjayBmb3IgSlNDLgorICAgICAg
ICAoQnVpbGQucnVuKTogQ2hlY2sgZm9yIEpTQy4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5
L3Rvb2wvc3RlcHMvY2hlY2twYXRjaHJlbGV2YW5jZS5weTogQWRkZWQuCisgICAgICAgIChDaGVj
a1BhdGNoUmVsZXZhbmNlKTogQWRkZWQuCisgICAgICAgIChDaGVja1BhdGNoUmVsZXZhbmNlLl9k
b2VzX2NvbnRhaW5fY2hhbmdlX2luX3BhdGhzKTogQWJzdHJhY3QgZnVuY3Rpb24gdG8gcGVyZm9y
bSByZWdleCBtYXRjaGluZy4KKyAgICAgICAgKENoZWNrUGF0Y2hSZWxldmFuY2UucnVuKTogQ2hl
Y2sgaWYgY2hhbmdlZCBmaWxlcyBpbiBwYXRjaCBiZWxvbmcgaW4gY2VydGFpbiBmb2xkZXJzLgor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9vcHRpb25zLnB5OgorICAgICAg
ICAoT3B0aW9ucyk6IEFkZCAtLWdyb3VwIGNvbW1hbmQgbGluZSBvcHRpb24uCisgICAgICAgICog
U2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3J1bnRlc3RzLnB5OgorICAgICAgICAoUnVuVGVz
dHMub3B0aW9ucyk6IEFkZCBncm91cC4KKyAgICAgICAgKFJ1blRlc3RzLnJ1bik6IENoZWNrIGZv
ciBKU0MuCisgICAgICAgIChSdW5UZXN0cy5fcnVuX3dlYmtpdF90ZXN0cyk6IENoZWNrIGZvciBK
U0MuCisgICAgICAgIChSdW5UZXN0cyk6IEFkZCBfZ3JvdXAgYXR0cmlidXRlLgorICAgICAgICAo
UnVuVGVzdHMuX3J1bl9qYXZhc2NyaXB0Y29yZV90ZXN0cyk6IE5ldy4KKyAgICAgICAgKiBTY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvc3RlcHNfdW5pdHRlc3QucHk6IFVuaXQgdGVzdHMuCisK
IDIwMTYtMDktMjUgIEd5dXlvdW5nIEtpbSAgPGd5dXlvdW5nLmtpbUB3ZWJraXQub3JnPgogCiAg
ICAgICAgIFtFRkxdIEFkanVzdCBFRkwgaW5kZW50YXRpb24gdG8gRUZMIE1pbmlCcm93c2VyCmRp
ZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja291dC9zY20vc2Nt
X21vY2sucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja291dC9zY20vc2Nt
X21vY2sucHkKaW5kZXggYzVkMTBmY2IxODliMGE4YjUxOWZhNTU2MjUwMjJhNzBjNDg2ZDQ0Yi4u
OTc3NGVjOGFlODczYTFiMGI4Mzc2MDcxODA2Njc5MjE1ODA5ZWVlYyAxMDA2NDQKLS0tIGEvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hlY2tvdXQvc2NtL3NjbV9tb2NrLnB5CisrKyBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNrb3V0L3NjbS9zY21fbW9jay5weQpA
QCAtMSw0ICsxLDUgQEAKICMgQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC0zNyw2ICszOCw3
IEBAIGNsYXNzIE1vY2tTQ00ob2JqZWN0KToKICAgICAgICAgc2VsZi5hZGRlZF9wYXRocyA9IHNl
dCgpCiAgICAgICAgIHNlbGYuX2ZpbGVzeXN0ZW0gPSBmaWxlc3lzdGVtIG9yIE1vY2tGaWxlU3lz
dGVtKCkKICAgICAgICAgc2VsZi5fZXhlY3V0aXZlID0gZXhlY3V0aXZlIG9yIE1vY2tFeGVjdXRp
dmUoKQorICAgICAgICBzZWxmLl9tb2NrQ2hhbmdlZEZpbGVzID0gWyJNb2NrRmlsZTEiXQogCiAg
ICAgZGVmIGFkZChzZWxmLCBkZXN0aW5hdGlvbl9wYXRoKToKICAgICAgICAgc2VsZi5hZGRfbGlz
dChbZGVzdGluYXRpb25fcGF0aF0pCkBAIC03MSw3ICs3Myw3IEBAIGNsYXNzIE1vY2tTQ00ob2Jq
ZWN0KToKICAgICAgICAgcmV0dXJuIHNlbGYuX2ZpbGVzeXN0ZW0uam9pbihzZWxmLmNoZWNrb3V0
X3Jvb3QsICpjb21wcykKIAogICAgIGRlZiBjaGFuZ2VkX2ZpbGVzKHNlbGYsIGdpdF9jb21taXQ9
Tm9uZSk6Ci0gICAgICAgIHJldHVybiBbIk1vY2tGaWxlMSJdCisgICAgICAgIHJldHVybiBzZWxm
Ll9tb2NrQ2hhbmdlZEZpbGVzCiAKICAgICBkZWYgY2hhbmdlZF9maWxlc19mb3JfcmV2aXNpb24o
c2VsZiwgcmV2aXNpb24pOgogICAgICAgICByZXR1cm4gWyJNb2NrRmlsZTEiXQpkaWZmIC0tZ2l0
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL2V3cy5qc29uIGIvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL2V3cy5qc29uCmluZGV4IDM1ZDQ5ODVhYjBm
OTNkMTI3YjM3MjFlNDYwMWNkNmQ4OWRmY2NmM2MuLmU1MzQwZmU1YzNjMjFhZTgxYWQxZWY3ZTAz
ZjdmYjgxZjM4MzljZmYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9u
L2NvbmZpZy9ld3MuanNvbgorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25m
aWcvZXdzLmpzb24KQEAgLTUwLDUgKzUwLDExIEBACiAgICAgICAgICJwb3J0IjogIm1hYyIsCiAg
ICAgICAgICJuYW1lIjogIm1hYy0zMmJpdC1ld3MiLAogICAgICAgICAiYXJjaGl0ZWN0dXJlIjog
ImkzODYiCisgICAgfSwKKyAgICAiSlNDIEVXUyI6IHsKKyAgICAgICAgInBvcnQiOiAibWFjIiwK
KyAgICAgICAgIm5hbWUiOiAianNjLWV3cyIsCisgICAgICAgICJncm91cCI6ICJqc2MiLAorICAg
ICAgICAicnVuVGVzdHMiOiB0cnVlCiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9jb21tb24vY29uZmlnL3BvcnRzLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9jb21tb24vY29uZmlnL3BvcnRzLnB5CmluZGV4IGEwZDUwZGNiNmVhMGI1ZmRlMGIzYzE3ZWYx
NTljZWFmZWUxYTJlOTguLmQzN2VkOWQxYzVlMjU1MGU0ODgzNGU3ZWYwMGJhZTRjMjRjYmQ3ODQg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9wb3J0cy5w
eQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvcG9ydHMucHkKQEAg
LTEsNiArMSw2IEBACiAjIENvcHlyaWdodCAoQykgMjAwOSwgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICMgQ29weXJpZ2h0IChDKSAyMDEzIE5va2lhIENvcnBvcmF0aW9uIGFuZC9v
ciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KLSMgQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDE1LCAyMDE3IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUK
QEAgLTEwMyw4ICsxMDMsMjEgQEAgY2xhc3MgRGVwcmVjYXRlZFBvcnQob2JqZWN0KToKICAgICAg
ICAgICAgIGNvbW1hbmQuYXBwZW5kKCItLXJlbGVhc2UiKQogICAgICAgICByZXR1cm4gY29tbWFu
ZAogCi0gICAgZGVmIHJ1bl9qYXZhc2NyaXB0Y29yZV90ZXN0c19jb21tYW5kKHNlbGYpOgotICAg
ICAgICByZXR1cm4gc2VsZi5zY3JpcHRfc2hlbGxfY29tbWFuZCgicnVuLWphdmFzY3JpcHRjb3Jl
LXRlc3RzIikKKyAgICBkZWYgYnVpbGRfanNjX2NvbW1hbmQoc2VsZiwgYnVpbGRfc3R5bGU9Tm9u
ZSk6CisgICAgICAgIGNvbW1hbmQgPSBzZWxmLnNjcmlwdF9zaGVsbF9jb21tYW5kKCJidWlsZC1q
c2MiKQorICAgICAgICBpZiBidWlsZF9zdHlsZSA9PSAiZGVidWciOgorICAgICAgICAgICAgY29t
bWFuZC5hcHBlbmQoIi0tZGVidWciKQorICAgICAgICBpZiBidWlsZF9zdHlsZSA9PSAicmVsZWFz
ZSI6CisgICAgICAgICAgICBjb21tYW5kLmFwcGVuZCgiLS1yZWxlYXNlIikKKyAgICAgICAgcmV0
dXJuIGNvbW1hbmQKKworICAgIGRlZiBydW5famF2YXNjcmlwdGNvcmVfdGVzdHNfY29tbWFuZChz
ZWxmLCBidWlsZF9zdHlsZT1Ob25lKToKKyAgICAgICAgY29tbWFuZCA9IHNlbGYuc2NyaXB0X3No
ZWxsX2NvbW1hbmQoInJ1bi1qYXZhc2NyaXB0Y29yZS10ZXN0cyIpCisgICAgICAgIGNvbW1hbmQu
YXBwZW5kKCItLW5vLWZhaWwtZmFzdCIpCisgICAgICAgIGNvbW1hbmQuYXBwZW5kKCItLWpzb24t
b3V0cHV0PWpzY190ZXN0X3Jlc3VsdHMuanNvbiIpCisgICAgICAgIGlmIChidWlsZF9zdHlsZSA9
PSAiZGVidWciKToKKyAgICAgICAgICAgIGNvbW1hbmQuYXBwZW5kKCItLWRlYnVnIikKKyAgICAg
ICAgcmV0dXJuIGNvbW1hbmQKIAogICAgIGRlZiBydW5fd2Via2l0X3Rlc3RzX2NvbW1hbmQoc2Vs
ZiwgYnVpbGRfc3R5bGU9Tm9uZSk6CiAgICAgICAgIGNvbW1hbmQgPSBzZWxmLnNjcmlwdF9zaGVs
bF9jb21tYW5kKCJydW4td2Via2l0LXRlc3RzIikKQEAgLTE1MCw3ICsxNjMsMTAgQEAgY2xhc3Mg
SU9TU2ltdWxhdG9yV0syUG9ydChEZXByZWNhdGVkUG9ydCk6CiBjbGFzcyBNYWNQb3J0KERlcHJl
Y2F0ZWRQb3J0KToKICAgICBwb3J0X2ZsYWdfbmFtZSA9ICJtYWMiCiAKLSAgICBkZWYgcnVuX3dl
YmtpdF90ZXN0c19jb21tYW5kKHNlbGYsIGJ1aWxkX3N0eWxlPU5vbmUpOgorICAgIGRlZiBydW5f
d2Via2l0X3Rlc3RzX2NvbW1hbmQoc2VsZiwgYnVpbGRfc3R5bGU9Tm9uZSwgdGVzdF9zdWl0ZT1O
b25lKToKKyAgICAgICAgaWYgKHRlc3Rfc3VpdGUgPT0gImpzYyIpOgorICAgICAgICAgICAgcmV0
dXJuIHN1cGVyKE1hY1BvcnQsIHNlbGYpLnJ1bl9qYXZhc2NyaXB0Y29yZV90ZXN0c19jb21tYW5k
KGJ1aWxkX3N0eWxlKQorCiAgICAgICAgIGNvbW1hbmQgPSBzdXBlcihNYWNQb3J0LCBzZWxmKS5y
dW5fd2Via2l0X3Rlc3RzX2NvbW1hbmQoYnVpbGRfc3R5bGUpCiAgICAgICAgIGNvbW1hbmQuYXBw
ZW5kKCItLWR1bXAtcmVuZGVyLXRyZWUiKQogICAgICAgICByZXR1cm4gY29tbWFuZApkaWZmIC0t
Z2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL3BvcnRzX21vY2sucHkg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvcG9ydHNfbW9jay5weQppbmRl
eCA2MTc0M2RlYmI0ZWJlZTM3NTZiYTdjMjBmMDE0ODIzNTQwZDJkY2E2Li5jYTFiMThhMzEwNjg0
MjNiZGNlMDdjZGViN2Q3ZDdkMTk5ZjQwMGFiIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2NvbW1vbi9jb25maWcvcG9ydHNfbW9jay5weQorKysgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2NvbW1vbi9jb25maWcvcG9ydHNfbW9jay5weQpAQCAtMSw0ICsxLDUgQEAKICMgQ29w
eXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHly
aWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC00OSw3ICs1MCw3IEBAIGNsYXNzIE1vY2tQb3J0KG9i
amVjdCk6CiAgICAgZGVmIHJ1bl9wZXJsX3VuaXR0ZXN0c19jb21tYW5kKHNlbGYpOgogICAgICAg
ICByZXR1cm4gWydtb2NrLXRlc3Qtd2Via2l0cGVybCddCiAKLSAgICBkZWYgcnVuX2phdmFzY3Jp
cHRjb3JlX3Rlc3RzX2NvbW1hbmQoc2VsZik6CisgICAgZGVmIHJ1bl9qYXZhc2NyaXB0Y29yZV90
ZXN0c19jb21tYW5kKHNlbGYsIGJ1aWxkX3N0eWxlPU5vbmUpOgogICAgICAgICByZXR1cm4gWydt
b2NrLXJ1bi1qYXZhY3JpcHRjb3JlLXRlc3RzJ10KIAogICAgIGRlZiBydW5fd2Via2l0X3Rlc3Rz
X2NvbW1hbmQoc2VsZiwgYnVpbGRfc3R5bGU9Tm9uZSk6CmRpZmYgLS1naXQgYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvcG9ydHNfdW5pdHRlc3QucHkgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvcG9ydHNfdW5pdHRlc3QucHkKaW5kZXggMDhkNTQ1
MjM2ZGEzNzAzZTkyOGYxY2VlZDFkZDkxMDJkOWI4NjIyZS4uMTZjZDdmOTI4MjUxYmJjOTk2Y2I2
NDZlNDM1OWQ3M2ZkYjUzNWIyNiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9j
b21tb24vY29uZmlnL3BvcnRzX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvY29tbW9uL2NvbmZpZy9wb3J0c191bml0dGVzdC5weQpAQCAtMSw0ICsxLDUgQEAKICMgQ29w
eXJpZ2h0IChjKSAyMDA5LCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5
cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtMzksNiArNDAsMTAgQEAgY2xhc3MgRGVwcmVjYXRl
ZFBvcnRUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChN
YWNQb3J0KCkuYnVpbGRfd2Via2l0X2NvbW1hbmQoYnVpbGRfc3R5bGU9ImRlYnVnIiksIERlcHJl
Y2F0ZWRQb3J0KCkuc2NyaXB0X3NoZWxsX2NvbW1hbmQoImJ1aWxkLXdlYmtpdCIpICsgWyItLWRl
YnVnIl0pCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTWFjUG9ydCgpLmJ1aWxkX3dlYmtpdF9j
b21tYW5kKGJ1aWxkX3N0eWxlPSJyZWxlYXNlIiksIERlcHJlY2F0ZWRQb3J0KCkuc2NyaXB0X3No
ZWxsX2NvbW1hbmQoImJ1aWxkLXdlYmtpdCIpICsgWyItLXJlbGVhc2UiXSkKIAorICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKE1hY1BvcnQoKS5idWlsZF9qc2NfY29tbWFuZCgpLCBEZXByZWNhdGVk
UG9ydCgpLnNjcmlwdF9zaGVsbF9jb21tYW5kKCJidWlsZC1qc2MiKSkKKyAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChNYWNQb3J0KCkuYnVpbGRfanNjX2NvbW1hbmQoYnVpbGRfc3R5bGU9InJlbGVh
c2UiKSwgRGVwcmVjYXRlZFBvcnQoKS5zY3JpcHRfc2hlbGxfY29tbWFuZCgiYnVpbGQtanNjIikg
KyBbIi0tcmVsZWFzZSJdKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE1hY1BvcnQoKS5idWls
ZF9qc2NfY29tbWFuZChidWlsZF9zdHlsZT0iZGVidWciKSwgRGVwcmVjYXRlZFBvcnQoKS5zY3Jp
cHRfc2hlbGxfY29tbWFuZCgiYnVpbGQtanNjIikgKyBbIi0tZGVidWciXSkKKwogICAgIGRlZiB0
ZXN0X2d0a193azJfcG9ydChzZWxmKToKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChHdGtXSzJQ
b3J0KCkuZmxhZygpLCAiLS1wb3J0PWd0ay13azIiKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KEd0a1dLMlBvcnQoKS5ydW5fd2Via2l0X3Rlc3RzX2NvbW1hbmQoKSwgRGVwcmVjYXRlZFBvcnQo
KS5zY3JpcHRfc2hlbGxfY29tbWFuZCgicnVuLXdlYmtpdC10ZXN0cyIpICsgWyItLWd0ayJdKQpk
aWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2pzY3Rlc3RyZXN1
bHRzLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2pzY3Rlc3RyZXN1bHRz
LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmJlNmViMGUzMGY2NzM2YmE5OTQyY2YwZjhjMTY4ZDMyMTMyYWE3YjUK
LS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvanNj
dGVzdHJlc3VsdHMucHkKQEAgLTAsMCArMSw4NiBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTcgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMg
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5E
CisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorIyBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
IyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorCitpbXBvcnQganNvbgoraW1wb3J0IGxvZ2dpbmcKKworX2xvZyA9IGxv
Z2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKQorCisKK2NsYXNzIEpTQ1Rlc3RSZXN1bHRzKG9iamVj
dCk6CisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIGludGVyc2VjdGlvbihjbHMsIGZpcnN0LCBz
ZWNvbmQpOgorICAgICAgICBpbnRlcnNlY3Rpb25fYXBpX3Rlc3RzX3Bhc3NlZCA9IGZpcnN0Ll9h
bGxfYXBpX3Rlc3RzX3Bhc3NlZCBvciBzZWNvbmQuX2FsbF9hcGlfdGVzdHNfcGFzc2VkCisgICAg
ICAgIGludGVyc2VjdGlvbl9zdHJlc3NfdGVzdF9mYWlsdXJlcyA9IGxpc3Qoc2V0KGZpcnN0Ll9z
dHJlc3NfdGVzdF9mYWlsdXJlcykgJiBzZXQoc2Vjb25kLl9zdHJlc3NfdGVzdF9mYWlsdXJlcykp
CisgICAgICAgIHJldHVybiBjbHMoaW50ZXJzZWN0aW9uX2FwaV90ZXN0c19wYXNzZWQsIGludGVy
c2VjdGlvbl9zdHJlc3NfdGVzdF9mYWlsdXJlcykKKworICAgIEBjbGFzc21ldGhvZAorICAgIGRl
ZiByZXN1bHRzX2Zyb21fc3RyaW5nKGNscywgc3RyaW5nKToKKyAgICAgICAgaWYgbm90IHN0cmlu
ZzoKKyAgICAgICAgICAgIHJldHVybiBOb25lCisKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAg
cGFyc2VkX3Jlc3VsdHMgPSBqc29uLmxvYWRzKHN0cmluZykKKyAgICAgICAgZXhjZXB0IFZhbHVl
RXJyb3I6CisgICAgICAgICAgICByZXR1cm4gTm9uZQorCisgICAgICAgIGlmICdhbGxBcGlUZXN0
c1Bhc3NlZCcgbm90IGluIHBhcnNlZF9yZXN1bHRzIG9yICdzdHJlc3NUZXN0RmFpbHVyZXMnIG5v
dCBpbiBwYXJzZWRfcmVzdWx0czoKKyAgICAgICAgICAgIHJldHVybiBOb25lCisKKyAgICAgICAg
cmV0dXJuIGNscyhwYXJzZWRfcmVzdWx0c1snYWxsQXBpVGVzdHNQYXNzZWQnXSwgcGFyc2VkX3Jl
c3VsdHNbJ3N0cmVzc1Rlc3RGYWlsdXJlcyddKQorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGFs
bF9hcGlfdGVzdHNfcGFzc2VkLCBzdHJlc3NfdGVzdF9mYWlsdXJlcyk6CisgICAgICAgIHNlbGYu
X2FsbF9hcGlfdGVzdHNfcGFzc2VkID0gYWxsX2FwaV90ZXN0c19wYXNzZWQKKyAgICAgICAgc2Vs
Zi5fc3RyZXNzX3Rlc3RfZmFpbHVyZXMgPSBzdHJlc3NfdGVzdF9mYWlsdXJlcworCisgICAgICAg
IHNlbGYuX3Rlc3RfcmVzdWx0cyA9IHN0cmVzc190ZXN0X2ZhaWx1cmVzWzpdCisgICAgICAgIGlm
IG5vdCBzZWxmLl9hbGxfYXBpX3Rlc3RzX3Bhc3NlZDoKKyAgICAgICAgICAgIHNlbGYuX3Rlc3Rf
cmVzdWx0cy5hcHBlbmQoImFwaVRlc3RzIikKKworICAgIGRlZiBlcXVhbHMoc2VsZiwgb3RoZXIp
OgorICAgICAgICByZXR1cm4gc2VsZi5fYWxsX2FwaV90ZXN0c19wYXNzZWQgPT0gb3RoZXIuX2Fs
bF9hcGlfdGVzdHNfcGFzc2VkIGFuZCBcCisgICAgICAgICAgICAgICBzZXQoc2VsZi5fc3RyZXNz
X3Rlc3RfZmFpbHVyZXMpID09IHNldChvdGhlci5fc3RyZXNzX3Rlc3RfZmFpbHVyZXMpCisKKyAg
ICBkZWYgaXNfc3Vic2V0KHNlbGYsIG90aGVyKToKKyAgICAgICAgcmV0dXJuIHNldChzZWxmLnRl
c3RfcmVzdWx0cygpKSA8PSBzZXQob3RoZXIudGVzdF9yZXN1bHRzKCkpCisKKyAgICBkZWYgc3Ry
ZXNzX3Rlc3RfZmFpbHVyZXMoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl9zdHJlc3NfdGVz
dF9mYWlsdXJlcworCisgICAgZGVmIGFsbF9hcGlfdGVzdHNfcGFzc2VkKHNlbGYpOgorICAgICAg
ICByZXR1cm4gc2VsZi5fYWxsX2FwaV90ZXN0c19wYXNzZWQKKworICAgIGRlZiBhbGxfcGFzc2Vk
KHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5fYWxsX2FwaV90ZXN0c19wYXNzZWQgYW5kIG5v
dCBzZWxmLl9zdHJlc3NfdGVzdF9mYWlsdXJlcworCisgICAgZGVmIGZhaWxpbmdfdGVzdF9yZXN1
bHRzKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5zdHJlc3NfdGVzdF9mYWlsdXJlcygpCisK
KyAgICBkZWYgdGVzdF9yZXN1bHRzKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5fdGVzdF9y
ZXN1bHRzCisKKyAgICBkZWYgZmFpbGluZ190ZXN0cyhzZWxmKToKKyAgICAgICAgcmV0dXJuIHNl
bGYuX3Rlc3RfcmVzdWx0cworCisgICAgIyBObyBkZWZpbmVkIGZhaWx1cmUgbGltaXQgZm9yIEpT
Qy4KKyAgICBkZWYgZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQoc2VsZik6CisgICAgICAg
IHJldHVybiBGYWxzZQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24v
bmV0L2pzY3Rlc3RyZXN1bHRzX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9j
b21tb24vbmV0L2pzY3Rlc3RyZXN1bHRzX3VuaXR0ZXN0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE4ZWY0NDRh
NTY4ZTQ2MDg4MDQ1OTE3NmM1ZmZhYzA2ZjE1ZjE3YjYKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvanNjdGVzdHJlc3VsdHNfdW5pdHRlc3QucHkK
QEAgLTAsMCArMSw3NSBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6Cisj
IDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisjIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorIyBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLAorIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
CitpbXBvcnQgdW5pdHRlc3QKKworZnJvbSB3ZWJraXRweS5jb21tb24ubmV0LmpzY3Rlc3RyZXN1
bHRzIGltcG9ydCBKU0NUZXN0UmVzdWx0cworCisKK2NsYXNzIEpTQ1Rlc3RSZXN1bHRzVGVzdCh1
bml0dGVzdC5UZXN0Q2FzZSk6CisgICAgZGVmIHRlc3RfcmVzdWx0c19mcm9tX3N0cmluZyhzZWxm
KToKKyAgICAgICAgbm9uZV9pdGVtID0gTm9uZQorICAgICAgICBlbXB0eV9zdHJpbmcgPSAiIgor
ICAgICAgICBpbnZhbGlkX2pzb24gPSAneyJhbGxBcGlUZXN0c1Bhc3NlZCI6JworICAgICAgICBp
bmNvbXBsZXRlX2pzb25fdjEgPSAneyJhbGxBcGlUZXN0c1Bhc3NlZCI6IHRydWV9JworICAgICAg
ICBpbmNvbXBsZXRlX2pzb25fdjIgPSAneyJzdHJlc3NUZXN0RmFpbHVyZXMiOltdfScKKyAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCBKU0NUZXN0UmVzdWx0cy5yZXN1bHRzX2Zyb21fc3Ry
aW5nKG5vbmVfaXRlbSkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgSlNDVGVzdFJl
c3VsdHMucmVzdWx0c19mcm9tX3N0cmluZyhlbXB0eV9zdHJpbmcpKQorICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKE5vbmUsIEpTQ1Rlc3RSZXN1bHRzLnJlc3VsdHNfZnJvbV9zdHJpbmcoaW52YWxp
ZF9qc29uKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCBKU0NUZXN0UmVzdWx0cy5y
ZXN1bHRzX2Zyb21fc3RyaW5nKGluY29tcGxldGVfanNvbl92MSkpCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoTm9uZSwgSlNDVGVzdFJlc3VsdHMucmVzdWx0c19mcm9tX3N0cmluZyhpbmNvbXBs
ZXRlX2pzb25fdjIpKQorCisgICAgICAgIG5vX2ZhaWx1cmVzX3N0cmluZyA9ICd7ImFsbEFwaVRl
c3RzUGFzc2VkIjogdHJ1ZSwgInN0cmVzc1Rlc3RGYWlsdXJlcyI6W119JworICAgICAgICBub19m
YWlsdXJlc19yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgW10pCisgICAgICAgIHNlbGYu
YXNzZXJ0VHJ1ZShub19mYWlsdXJlc19yZXN1bHRzLmVxdWFscyhKU0NUZXN0UmVzdWx0cy5yZXN1
bHRzX2Zyb21fc3RyaW5nKG5vX2ZhaWx1cmVzX3N0cmluZykpKQorCisgICAgICAgIGFwaV90ZXN0
X2ZhaWx1cmVzX3N0cmluZyA9ICd7ImFsbEFwaVRlc3RzUGFzc2VkIjogZmFsc2UsICJzdHJlc3NU
ZXN0RmFpbHVyZXMiOltdfScKKyAgICAgICAgYXBpX3Rlc3RfZmFpbHVyZXNfcmVzdWx0cyA9IEpT
Q1Rlc3RSZXN1bHRzKEZhbHNlLCBbXSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGFwaV90ZXN0
X2ZhaWx1cmVzX3Jlc3VsdHMuZXF1YWxzKEpTQ1Rlc3RSZXN1bHRzLnJlc3VsdHNfZnJvbV9zdHJp
bmcoYXBpX3Rlc3RfZmFpbHVyZXNfc3RyaW5nKSkpCisKKyAgICAgICAgbWFueV9mYWlsdXJlc19z
dHJpbmcgPSAneyJhbGxBcGlUZXN0c1Bhc3NlZCI6IGZhbHNlLCAic3RyZXNzVGVzdEZhaWx1cmVz
IjpbImVzNi55YW1sL2VzNi90eXBlZF9hcnJheXNfSW50MTZBcnJheS5qcy5kZWZhdWx0IiwgImVz
Ni55YW1sL2VzNi90eXBlZF9hcnJheXNfSW50OEFycmF5LmpzLmRlZmF1bHQiXX0nCisgICAgICAg
IG1hbnlfZmFpbHVyZXNfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKEZhbHNlLCBbImVzNi55YW1s
L2VzNi90eXBlZF9hcnJheXNfSW50MTZBcnJheS5qcy5kZWZhdWx0IiwgImVzNi55YW1sL2VzNi90
eXBlZF9hcnJheXNfSW50OEFycmF5LmpzLmRlZmF1bHQiXSkKKyAgICAgICAgc2VsZi5hc3NlcnRU
cnVlKG1hbnlfZmFpbHVyZXNfcmVzdWx0cy5lcXVhbHMoSlNDVGVzdFJlc3VsdHMucmVzdWx0c19m
cm9tX3N0cmluZyhtYW55X2ZhaWx1cmVzX3N0cmluZykpKQorCisgICAgICAgIHNlbGYuYXNzZXJ0
RmFsc2Uobm9fZmFpbHVyZXNfcmVzdWx0cyA9PSBhcGlfdGVzdF9mYWlsdXJlc19yZXN1bHRzKQor
ICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGFwaV90ZXN0X2ZhaWx1cmVzX3Jlc3VsdHMgPT0gbWFu
eV9mYWlsdXJlc19yZXN1bHRzKQorCisgICAgZGVmIHRlc3RfaW50ZXJzZWN0aW9uX2FwaV90ZXN0
cyhzZWxmKToKKyAgICAgICAgcmVzdWx0czEgPSBKU0NUZXN0UmVzdWx0cyhGYWxzZSwgW10pCisg
ICAgICAgIHJlc3VsdHMyID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgW10pCisKKyAgICAgICAgZXhw
ZWN0ZWRfaW50ZXJzZWN0aW9uID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgW10pCisgICAgICAgIHNl
bGYuYXNzZXJ0VHJ1ZShleHBlY3RlZF9pbnRlcnNlY3Rpb24uZXF1YWxzKEpTQ1Rlc3RSZXN1bHRz
LmludGVyc2VjdGlvbihyZXN1bHRzMSwgcmVzdWx0czIpKSkKKworICAgIGRlZiB0ZXN0X2ludGVy
c2VjdGlvbl9zdHJlc3NfdGVzdHMoc2VsZik6CisgICAgICAgIHJlc3VsdHMxID0gSlNDVGVzdFJl
c3VsdHMoVHJ1ZSwgWydmYWlsdXJlMScsICdmYWlsdXJlMiddKQorICAgICAgICByZXN1bHRzMiA9
IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFsnZmFpbHVyZTEnLCAnZmFpbHVyZTMnXSkKKworICAgICAg
ICBleHBlY3RlZF9pbnRlcnNlY3Rpb24gPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbJ2ZhaWx1cmUx
J10pCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShleHBlY3RlZF9pbnRlcnNlY3Rpb24uZXF1YWxz
KEpTQ1Rlc3RSZXN1bHRzLmludGVyc2VjdGlvbihyZXN1bHRzMSwgcmVzdWx0czIpKSkKKworICAg
IGRlZiB0ZXN0X2ludGVyc2VjdGlvbl9nZW5lcmFsX2Nhc2Uoc2VsZik6CisgICAgICAgIHJlc3Vs
dHMxID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgWydmYWlsdXJlMScsICdmYWlsdXJlMiddKQorICAg
ICAgICByZXN1bHRzMiA9IEpTQ1Rlc3RSZXN1bHRzKEZhbHNlLCBbJ2ZhaWx1cmUxJ10pCisKKyAg
ICAgICAgZXhwZWN0ZWRfaW50ZXJzZWN0aW9uID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgWydmYWls
dXJlMSddKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoZXhwZWN0ZWRfaW50ZXJzZWN0aW9uLmVx
dWFscyhKU0NUZXN0UmVzdWx0cy5pbnRlcnNlY3Rpb24ocmVzdWx0czEsIHJlc3VsdHMyKSkpCmRp
ZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2Vhcmx5d2FybmluZ3N5
c3RlbXRhc2sucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2Vhcmx5d2Fybmlu
Z3N5c3RlbXRhc2sucHkKaW5kZXggZmMzMDhiNDNkMWQxNzJhYjczYjBlM2FmODBkMWIxMzlkZDNj
MTAzMi4uZWNmYWNkMDExYmU4ODNiNGJiMWU1YzdkN2RmZmRiZGNiNDU5ZGUzNSAxMDA2NDQKLS0t
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9lYXJseXdhcm5pbmdzeXN0ZW10YXNr
LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvZWFybHl3YXJuaW5nc3lz
dGVtdGFzay5weQpAQCAtMSw0ICsxLDUgQEAKICMgQ29weXJpZ2h0IChjKSAyMDExIEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogIyBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBA
IC0yNiw3ICsyNyw3IEBACiAjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCi1mcm9tIHdl
YmtpdHB5LnRvb2wuYm90LnBhdGNoYW5hbHlzaXN0YXNrIGltcG9ydCBQYXRjaEFuYWx5c2lzVGFz
aywgUGF0Y2hBbmFseXNpc1Rhc2tEZWxlZ2F0ZSwgVW5hYmxlVG9BcHBseVBhdGNoLCBQYXRjaElz
Tm90VmFsaWQKK2Zyb20gd2Via2l0cHkudG9vbC5ib3QucGF0Y2hhbmFseXNpc3Rhc2sgaW1wb3J0
IFBhdGNoQW5hbHlzaXNUYXNrLCBQYXRjaEFuYWx5c2lzVGFza0RlbGVnYXRlLCBVbmFibGVUb0Fw
cGx5UGF0Y2gsIFBhdGNoSXNOb3RWYWxpZCwgUGF0Y2hJc05vdEFwcGxpY2FibGUKIAogCiBjbGFz
cyBFYXJseVdhcm5pbmdTeXN0ZW1UYXNrRGVsZWdhdGUoUGF0Y2hBbmFseXNpc1Rhc2tEZWxlZ2F0
ZSk6CkBAIC01OCw2ICs1OSw4IEBAIGNsYXNzIEVhcmx5V2FybmluZ1N5c3RlbVRhc2soUGF0Y2hB
bmFseXNpc1Rhc2spOgogICAgICAgICAgICAgcmV0dXJuIEZhbHNlCiAgICAgICAgIGlmIG5vdCBz
ZWxmLl9hcHBseSgpOgogICAgICAgICAgICAgcmFpc2UgVW5hYmxlVG9BcHBseVBhdGNoKHNlbGYu
X3BhdGNoKQorICAgICAgICBpZiBub3Qgc2VsZi5fY2hlY2tfcGF0Y2hfcmVsZXZhbmNlKCk6Cisg
ICAgICAgICAgICByYWlzZSBQYXRjaElzTm90QXBwbGljYWJsZShzZWxmLl9wYXRjaCkKICAgICAg
ICAgaWYgbm90IHNlbGYuX2J1aWxkKCk6CiAgICAgICAgICAgICBpZiBub3Qgc2VsZi5fYnVpbGRf
d2l0aG91dF9wYXRjaCgpOgogICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQpkaWZmIC0tZ2l0
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9qc2Nld3NfdW5pdHRlc3QucHkgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2pzY2V3c191bml0dGVzdC5weQpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5mYTJjZjdiZWJlMTE1NWJjYzZkOWY4OGM1OGVhZDI2MjRjNWEyMWQzCi0tLSAvZGV2L251
bGwKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9qc2Nld3NfdW5pdHRlc3Qu
cHkKQEAgLTAsMCArMSwyMTggQEAKKyMgQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0
OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorIyBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisjIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwKKyMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyMgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyMg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwKKyMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKworaW1wb3J0IGxvZ2dpbmcKK2ltcG9ydCB1bml0dGVzdAorCitmcm9tIHdlYmtpdHB5LmNv
bW1vbi5uZXQuanNjdGVzdHJlc3VsdHMgaW1wb3J0IEpTQ1Rlc3RSZXN1bHRzCitmcm9tIHdlYmtp
dHB5LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZlIGltcG9ydCBTY3JpcHRFcnJvcgorZnJvbSB3ZWJr
aXRweS50b29sLmJvdC5wYXRjaGFuYWx5c2lzdGFzayBpbXBvcnQgKgorZnJvbSB3ZWJraXRweS50
b29sLmNvbW1hbmRzLmVhcmx5d2FybmluZ3N5c3RlbSBpbXBvcnQgQWJzdHJhY3RFYXJseVdhcm5p
bmdTeXN0ZW0KK2Zyb20gd2Via2l0cHkudG9vbC5tb2NrdG9vbCBpbXBvcnQgTW9ja1Rvb2wKKwor
X2xvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKQorCisKK2NsYXNzIE1vY2tQYXRjaEFu
YWx5c2lzVGFzayhQYXRjaEFuYWx5c2lzVGFzayk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGRl
bGVnYXRlLCBwYXRjaCwgcGF0Y2hlc19wYXNzZWRfYWxsX3Rlc3RzKToKKyAgICAgICAgc2VsZi5f
ZGVsZWdhdGUgPSBkZWxlZ2F0ZQorICAgICAgICBzZWxmLl9wYXRjaCA9IHBhdGNoCisgICAgICAg
IHNlbGYuX3NjcmlwdF9lcnJvciA9IE5vbmUKKyAgICAgICAgc2VsZi5fcmVzdWx0c19hcmNoaXZl
X2Zyb21fcGF0Y2hfdGVzdF9ydW4gPSBOb25lCisgICAgICAgIHNlbGYuX3Jlc3VsdHNfZnJvbV9w
YXRjaF90ZXN0X3J1biA9IE5vbmUKKyAgICAgICAgc2VsZi5lcnJvciA9IE5vbmUKKyAgICAgICAg
c2VsZi5fcGF0Y2hlc19wYXNzZWRfYWxsX3Rlc3RzID0gcGF0Y2hlc19wYXNzZWRfYWxsX3Rlc3Rz
CisgICAgICAgIHNlbGYuX3Rlc3RfcnVuX2NvdW50ID0gMAorCisgICAgZGVmIF90ZXN0KHNlbGYp
OgorICAgICAgICBzZWxmLl90ZXN0X3J1bl9jb3VudCArPSAxCisKKyAgICAgICAgaWYgc2VsZi5f
cGF0Y2hlc19wYXNzZWRfYWxsX3Rlc3RzLnBvcCgpID09IFRydWU6CisgICAgICAgICAgICByZXR1
cm4gVHJ1ZQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZi5fc2NyaXB0X2Vycm9yID0g
U2NyaXB0RXJyb3IoIlJlZ3Jlc3Npb24gdGVzdCIpCisgICAgICAgICAgICByZXR1cm4gRmFsc2UK
KworICAgIGRlZiBfYnVpbGRfYW5kX3Rlc3Rfd2l0aG91dF9wYXRjaChzZWxmKToKKyAgICAgICAg
c2VsZi5fdGVzdF9ydW5fY291bnQgKz0gMQorICAgICAgICByZXR1cm4gVHJ1ZQorCisgICAgZGVm
IHZhbGlkYXRlKHNlbGYpOgorICAgICAgICByZXR1cm4gVHJ1ZQorCisgICAgZGVmIHRlc3RfcnVu
X2NvdW50KHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5fdGVzdF9ydW5fY291bnQKKworCisj
IFRoaXMgaXMgdGhlIGRlbGVnYXRlIHRvIGJlIHVzZWQgd2l0aCBNb2NrUGF0Y2hBbmFseXNpc1Rh
c2ssIGFib3ZlLgorY2xhc3MgTW9ja0pTQ0Vhcmx5V2FybmluZ1N5c3RlbShBYnN0cmFjdEVhcmx5
V2FybmluZ1N5c3RlbSk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGZpcnN0X3Rlc3RfcmVzdWx0
cywgc2Vjb25kX3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKToKKyAgICAgICAgQWJz
dHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0uX19pbml0X18oc2VsZikKKyAgICAgICAgc2VsZi5fZ3Jv
dXAgPSAianNjIgorICAgICAgICBzZWxmLl9yZXN1bHRzX2luX29yZGVyID0gW2NsZWFuX3Rlc3Rf
cmVzdWx0cywgc2Vjb25kX3Rlc3RfcmVzdWx0cywgZmlyc3RfdGVzdF9yZXN1bHRzXQorCisgICAg
ZGVmIHRlc3RfcmVzdWx0cyhzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX3Jlc3VsdHNfaW5f
b3JkZXIucG9wKCkKKworCitjbGFzcyBKU0NFYXJseVdhcm5pbmdTeXN0ZW1UZXN0KHVuaXR0ZXN0
LlRlc3RDYXNlKToKKyAgICBkZWYgX3Jlc3VsdHNfaW5kaWNhdGVfYWxsX3Bhc3NlZChzZWxmLCBy
ZXN1bHRzKToKKyAgICAgICAgaWYgcmVzdWx0cyA9PSBOb25lOgorICAgICAgICAgICAgcmV0dXJu
IEZhbHNlCisgICAgICAgIHJldHVybiByZXN1bHRzLmFsbF9wYXNzZWQoKQorCisgICAgZGVmIF9j
cmVhdGVfdGFzayhzZWxmLCBmaXJzdF90ZXN0X3Jlc3VsdHMsIHNlY29uZF90ZXN0X3Jlc3VsdHMs
IGNsZWFuX3Rlc3RfcmVzdWx0cyk6CisgICAgICAgIHF1ZXVlID0gTW9ja0pTQ0Vhcmx5V2Fybmlu
Z1N5c3RlbShmaXJzdF90ZXN0X3Jlc3VsdHMsIHNlY29uZF90ZXN0X3Jlc3VsdHMsIGNsZWFuX3Rl
c3RfcmVzdWx0cykKKyAgICAgICAgdG9vbCA9IE1vY2tUb29sKGxvZ19leGVjdXRpdmU9VHJ1ZSkK
KyAgICAgICAgcGF0Y2ggPSB0b29sLmJ1Z3MuZmV0Y2hfYXR0YWNobWVudCgxMDAwMCkKKyAgICAg
ICAgcGF0Y2hlc19wYXNzZWRfYWxsX3Rlc3RzID0gbWFwKHNlbGYuX3Jlc3VsdHNfaW5kaWNhdGVf
YWxsX3Bhc3NlZCwgW3NlY29uZF90ZXN0X3Jlc3VsdHMsIGZpcnN0X3Rlc3RfcmVzdWx0c10pCisg
ICAgICAgIHJldHVybiBNb2NrUGF0Y2hBbmFseXNpc1Rhc2socXVldWUsIHBhdGNoLCBwYXRjaGVz
X3Bhc3NlZF9hbGxfdGVzdHMpCisKKyAgICBkZWYgdGVzdF9zdWNjZXNzX2Nhc2Uoc2VsZik6Cisg
ICAgICAgIGZpcnN0X3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFtdKQorICAg
ICAgICBzZWNvbmRfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgW10pCisgICAg
ICAgIGNsZWFuX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFtdKQorICAgICAg
ICB0YXNrID0gc2VsZi5fY3JlYXRlX3Rhc2soZmlyc3RfdGVzdF9yZXN1bHRzLCBzZWNvbmRfdGVz
dF9yZXN1bHRzLCBjbGVhbl90ZXN0X3Jlc3VsdHMpCisKKyAgICAgICAgcmV0dXJuX3ZhbHVlID0g
dGFzay5fdGVzdF9wYXRjaCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGFzay50ZXN0X3J1
bl9jb3VudCgpLCAxKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJldHVybl92YWx1ZSwgVHJ1
ZSkKKworICAgIGRlZiB0ZXN0X3Rlc3RfZmFpbHVyZShzZWxmKToKKyAgICAgICAgZmlyc3RfdGVz
dF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgWydGYWlsLmpzJ10pCisgICAgICAgIHNl
Y29uZF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbJ0ZhaWwuanMnXSkKKyAg
ICAgICAgY2xlYW5fdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgW10pCisgICAg
ICAgIHRhc2sgPSBzZWxmLl9jcmVhdGVfdGFzayhmaXJzdF90ZXN0X3Jlc3VsdHMsIHNlY29uZF90
ZXN0X3Jlc3VsdHMsIGNsZWFuX3Rlc3RfcmVzdWx0cykKKworICAgICAgICB3aXRoIHNlbGYuYXNz
ZXJ0UmFpc2VzKFNjcmlwdEVycm9yKToKKyAgICAgICAgICAgIHJldHVybl92YWx1ZSA9IHRhc2su
X3Rlc3RfcGF0Y2goKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRhc2sudGVzdF9ydW5fY291
bnQoKSwgMykKKworICAgIGRlZiB0ZXN0X2ZpeChzZWxmKToKKyAgICAgICAgZmlyc3RfdGVzdF9y
ZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgW10pCisgICAgICAgIHNlY29uZF90ZXN0X3Jl
c3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbXSkKKyAgICAgICAgY2xlYW5fdGVzdF9yZXN1
bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgWydGYWlsLmpzJ10pCisgICAgICAgIHRhc2sgPSBz
ZWxmLl9jcmVhdGVfdGFzayhmaXJzdF90ZXN0X3Jlc3VsdHMsIHNlY29uZF90ZXN0X3Jlc3VsdHMs
IGNsZWFuX3Rlc3RfcmVzdWx0cykKKworICAgICAgICByZXR1cm5fdmFsdWUgPSB0YXNrLl90ZXN0
X3BhdGNoKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0YXNrLnRlc3RfcnVuX2NvdW50KCks
IDEpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmV0dXJuX3ZhbHVlLCBUcnVlKQorCisgICAg
ZGVmIHRlc3RfaW5lZmZlY3RpdmVfcGF0Y2goc2VsZik6CisgICAgICAgIGZpcnN0X3Rlc3RfcmVz
dWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKEZhbHNlLCBbJ2ZhaWx1cmUxLmpzJywgJ2ZhaWx1cmUyLmpz
J10pCisgICAgICAgIHNlY29uZF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhGYWxzZSwg
WydmYWlsdXJlMS5qcycsICdmYWlsdXJlMi5qcyddKQorICAgICAgICBjbGVhbl90ZXN0X3Jlc3Vs
dHMgPSBKU0NUZXN0UmVzdWx0cyhGYWxzZSwgWydmYWlsdXJlMS5qcycsICdmYWlsdXJlMi5qcydd
KQorICAgICAgICB0YXNrID0gc2VsZi5fY3JlYXRlX3Rhc2soZmlyc3RfdGVzdF9yZXN1bHRzLCBz
ZWNvbmRfdGVzdF9yZXN1bHRzLCBjbGVhbl90ZXN0X3Jlc3VsdHMpCisKKyAgICAgICAgcmV0dXJu
X3ZhbHVlID0gdGFzay5fdGVzdF9wYXRjaCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGFz
ay50ZXN0X3J1bl9jb3VudCgpLCAzKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJldHVybl92
YWx1ZSwgVHJ1ZSkKKworICAgIGRlZiB0ZXN0X3BhcnRpYWxseV9lZmZlY3RpdmVfcGF0Y2goc2Vs
Zik6CisgICAgICAgIGZpcnN0X3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFsn
ZmFpbHVyZTIuanMnXSkKKyAgICAgICAgc2Vjb25kX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1
bHRzKFRydWUsIFsnZmFpbHVyZTIuanMnXSkKKyAgICAgICAgY2xlYW5fdGVzdF9yZXN1bHRzID0g
SlNDVGVzdFJlc3VsdHMoRmFsc2UsIFsnZmFpbHVyZTEuanMnLCAnZmFpbHVyZTIuanMnXSkKKyAg
ICAgICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90YXNrKGZpcnN0X3Rlc3RfcmVzdWx0cywgc2Vjb25k
X3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKQorCisgICAgICAgIHJldHVybl92YWx1
ZSA9IHRhc2suX3Rlc3RfcGF0Y2goKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRhc2sudGVz
dF9ydW5fY291bnQoKSwgMykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXR1cm5fdmFsdWUs
IFRydWUpCisKKyAgICBkZWYgdGVzdF9kaWZmZXJlbnRfdGVzdF9mYWlsdXJlc19pbl9wYXRjaF9h
bmRfdHJlZShzZWxmKToKKyAgICAgICAgZmlyc3RfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3Vs
dHMoRmFsc2UsIFtdKQorICAgICAgICBzZWNvbmRfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3Vs
dHMoRmFsc2UsIFtdKQorICAgICAgICBjbGVhbl90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0
cyhUcnVlLCBbJ2ZhaWx1cmUxLmpzJywgJ2ZhaWx1cmUyLmpzJ10pCisgICAgICAgIHRhc2sgPSBz
ZWxmLl9jcmVhdGVfdGFzayhmaXJzdF90ZXN0X3Jlc3VsdHMsIHNlY29uZF90ZXN0X3Jlc3VsdHMs
IGNsZWFuX3Rlc3RfcmVzdWx0cykKKworICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFNj
cmlwdEVycm9yKToKKyAgICAgICAgICAgIHJldHVybl92YWx1ZSA9IHRhc2suX3Rlc3RfcGF0Y2go
KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRhc2sudGVzdF9ydW5fY291bnQoKSwgMykKKwor
ICAgIGRlZiB0ZXN0X2ZpcnN0X3Jlc3VsdHNfY291bGRfbm90X2JlX3JlYWQoc2VsZik6CisgICAg
ICAgIGZpcnN0X3Rlc3RfcmVzdWx0cyA9IE5vbmUKKyAgICAgICAgc2Vjb25kX3Rlc3RfcmVzdWx0
cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFtdKQorICAgICAgICBjbGVhbl90ZXN0X3Jlc3VsdHMg
PSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbXSkKKyAgICAgICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90
YXNrKGZpcnN0X3Rlc3RfcmVzdWx0cywgc2Vjb25kX3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9y
ZXN1bHRzKQorCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoU2NyaXB0RXJyb3IpOgor
ICAgICAgICAgICAgcmV0dXJuX3ZhbHVlID0gdGFzay5fdGVzdF9wYXRjaCgpCisgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwodGFzay50ZXN0X3J1bl9jb3VudCgpLCAxKQorCisgICAgZGVmIHRlc3Rf
c2Vjb25kX3Jlc3VsdHNfY291bGRfbm90X2JlX3JlYWQoc2VsZik6CisgICAgICAgIGZpcnN0X3Rl
c3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKEZhbHNlLCBbJ2ZhaWx1cmUxLmpzJywgJ2ZhaWx1
cmUyLmpzJ10pCisgICAgICAgIHNlY29uZF90ZXN0X3Jlc3VsdHMgPSBOb25lCisgICAgICAgIGNs
ZWFuX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFtdKQorICAgICAgICB0YXNr
ID0gc2VsZi5fY3JlYXRlX3Rhc2soZmlyc3RfdGVzdF9yZXN1bHRzLCBzZWNvbmRfdGVzdF9yZXN1
bHRzLCBjbGVhbl90ZXN0X3Jlc3VsdHMpCisKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNl
cyhTY3JpcHRFcnJvcik6CisgICAgICAgICAgICByZXR1cm5fdmFsdWUgPSB0YXNrLl90ZXN0X3Bh
dGNoKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0YXNrLnRlc3RfcnVuX2NvdW50KCksIDIp
CisKKyAgICBkZWYgdGVzdF9jbGVhbl9yZXN1bHRzX2NvdWxkX25vdF9iZV9yZWFkKHNlbGYpOgor
ICAgICAgICBmaXJzdF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbJ2ZhaWx1
cmUyLmpzJ10pCisgICAgICAgIHNlY29uZF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhU
cnVlLCBbJ2ZhaWx1cmUyLmpzJ10pCisgICAgICAgIGNsZWFuX3Rlc3RfcmVzdWx0cyA9IE5vbmUK
KyAgICAgICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90YXNrKGZpcnN0X3Rlc3RfcmVzdWx0cywgc2Vj
b25kX3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKQorCisgICAgICAgIHdpdGggc2Vs
Zi5hc3NlcnRSYWlzZXMoU2NyaXB0RXJyb3IpOgorICAgICAgICAgICAgcmV0dXJuX3ZhbHVlID0g
dGFzay5fdGVzdF9wYXRjaCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGFzay50ZXN0X3J1
bl9jb3VudCgpLCAzKQorCisgICAgZGVmIHRlc3RfZmxha3lfcmVzdWx0c19vbl9jbGVhbl90cmVl
X3Bhc3Moc2VsZik6CisgICAgICAgIGZpcnN0X3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRz
KFRydWUsIFsnZmFpbHVyZTIuanMnXSkKKyAgICAgICAgc2Vjb25kX3Rlc3RfcmVzdWx0cyA9IEpT
Q1Rlc3RSZXN1bHRzKFRydWUsIFtdKQorICAgICAgICBjbGVhbl90ZXN0X3Jlc3VsdHMgPSBKU0NU
ZXN0UmVzdWx0cyhUcnVlLCBbXSkKKyAgICAgICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90YXNrKGZp
cnN0X3Rlc3RfcmVzdWx0cywgc2Vjb25kX3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRz
KQorCisgICAgICAgIHJldHVybl92YWx1ZSA9IHRhc2suX3Rlc3RfcGF0Y2goKQorICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKHJldHVybl92YWx1ZSwgVHJ1ZSkKKyAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbCh0YXNrLnRlc3RfcnVuX2NvdW50KCksIDIpCisKKyAgICBkZWYgdGVzdF9mbGFreV9yZXN1
bHRzX29uX2NsZWFuX3RyZWVfcGFzc192MihzZWxmKToKKyAgICAgICAgZmlyc3RfdGVzdF9yZXN1
bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgW10pCisgICAgICAgIHNlY29uZF90ZXN0X3Jlc3Vs
dHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbJ2ZhaWx1cmUyLmpzJ10pCisgICAgICAgIGNsZWFu
X3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFtdKQorICAgICAgICB0YXNrID0g
c2VsZi5fY3JlYXRlX3Rhc2soZmlyc3RfdGVzdF9yZXN1bHRzLCBzZWNvbmRfdGVzdF9yZXN1bHRz
LCBjbGVhbl90ZXN0X3Jlc3VsdHMpCisKKyAgICAgICAgcmV0dXJuX3ZhbHVlID0gdGFzay5fdGVz
dF9wYXRjaCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmV0dXJuX3ZhbHVlLCBUcnVlKQor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRhc2sudGVzdF9ydW5fY291bnQoKSwgMSkKKworICAg
IGRlZiB0ZXN0X2ZsYWt5X3Jlc3VsdHNfb25fY2xlYW5fdHJlZV9mYWlsdXJlKHNlbGYpOgorICAg
ICAgICBmaXJzdF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhGYWxzZSwgWydmYWlsdXJl
MS5qcycsICdmYWlsdXJlMi5qcyddKQorICAgICAgICBzZWNvbmRfdGVzdF9yZXN1bHRzID0gSlND
VGVzdFJlc3VsdHMoVHJ1ZSwgWydmYWlsdXJlMi5qcyddKQorICAgICAgICBjbGVhbl90ZXN0X3Jl
c3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbXSkKKyAgICAgICAgdGFzayA9IHNlbGYuX2Ny
ZWF0ZV90YXNrKGZpcnN0X3Rlc3RfcmVzdWx0cywgc2Vjb25kX3Rlc3RfcmVzdWx0cywgY2xlYW5f
dGVzdF9yZXN1bHRzKQorCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoU2NyaXB0RXJy
b3IpOgorICAgICAgICAgICAgcmV0dXJuX3ZhbHVlID0gdGFzay5fdGVzdF9wYXRjaCgpCisgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwodGFzay50ZXN0X3J1bl9jb3VudCgpLCAzKQorCisgICAgZGVm
IHRlc3RfZmxha3lfcmVzdWx0c19vbl9yZWRfdHJlZV9wYXNzKHNlbGYpOgorICAgICAgICBmaXJz
dF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbJ2ZhaWx1cmUxLmpzJ10pCisg
ICAgICAgIHNlY29uZF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbJ2ZhaWx1
cmUxLmpzJywgJ2ZhaWx1cmUyLmpzJ10pCisgICAgICAgIGNsZWFuX3Rlc3RfcmVzdWx0cyA9IEpT
Q1Rlc3RSZXN1bHRzKFRydWUsIFsnZmFpbHVyZTEuanMnXSkKKyAgICAgICAgdGFzayA9IHNlbGYu
X2NyZWF0ZV90YXNrKGZpcnN0X3Rlc3RfcmVzdWx0cywgc2Vjb25kX3Rlc3RfcmVzdWx0cywgY2xl
YW5fdGVzdF9yZXN1bHRzKQorCisgICAgICAgIHJldHVybl92YWx1ZSA9IHRhc2suX3Rlc3RfcGF0
Y2goKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJldHVybl92YWx1ZSwgVHJ1ZSkKKyAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbCh0YXNrLnRlc3RfcnVuX2NvdW50KCksIDMpCmRpZmYgLS1naXQg
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2pzY3Rlc3RyZXN1bHRzcmVhZGVyLnB5
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9qc2N0ZXN0cmVzdWx0c3JlYWRlci5w
eQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi44YWM1MzJiMTllN2VhNTVkMzViOTEzOWI0ZjIwOTk4MDViYTAwNDllCi0t
LSAvZGV2L251bGwKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9qc2N0ZXN0
cmVzdWx0c3JlYWRlci5weQpAQCAtMCwwICsxLDQ3IEBACisjIENvcHlyaWdodCAoQykgMjAxNyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
IyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBB
TkQKKyMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUgorIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisjIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisjIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSCisjIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisjIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisKK2ltcG9ydCBsb2dnaW5nCisKK2Zyb20gd2Via2l0cHkuY29tbW9u
Lm5ldC5qc2N0ZXN0cmVzdWx0cyBpbXBvcnQgSlNDVGVzdFJlc3VsdHMKKworX2xvZyA9IGxvZ2dp
bmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKQorCisKK2NsYXNzIEpTQ1Rlc3RSZXN1bHRzUmVhZGVyKG9i
amVjdCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGhvc3QsIHJlc3VsdHNfZGlyZWN0b3J5KToK
KyAgICAgICAgc2VsZi5faG9zdCA9IGhvc3QKKyAgICAgICAgc2VsZi5fcmVzdWx0c19kaXJlY3Rv
cnkgPSByZXN1bHRzX2RpcmVjdG9yeQorCisgICAgZGVmIF9yZWFkX2ZpbGVfY29udGVudHMoc2Vs
ZiwgcGF0aCk6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLl9ob3N0LmZp
bGVzeXN0ZW0ucmVhZF90ZXh0X2ZpbGUocGF0aCkKKyAgICAgICAgZXhjZXB0IElPRXJyb3IsIGU6
ICAjIEZpbGUgZG9lcyBub3QgZXhpc3Qgb3IgY2FuJ3QgYmUgcmVhZC4KKyAgICAgICAgICAgIHJl
dHVybiBOb25lCisKKyAgICBkZWYgX2NyZWF0ZV9qc2NfdGVzdF9yZXN1bHRzKHNlbGYpOgorICAg
ICAgICByZXN1bHRzX3BhdGggPSBzZWxmLl9ob3N0LmZpbGVzeXN0ZW0uam9pbihzZWxmLl9yZXN1
bHRzX2RpcmVjdG9yeSwgImpzY190ZXN0X3Jlc3VsdHMuanNvbiIpCisgICAgICAgIGNvbnRlbnRz
ID0gc2VsZi5fcmVhZF9maWxlX2NvbnRlbnRzKHJlc3VsdHNfcGF0aCkKKyAgICAgICAgcmV0dXJu
IEpTQ1Rlc3RSZXN1bHRzLnJlc3VsdHNfZnJvbV9zdHJpbmcoY29udGVudHMpCisKKyAgICBkZWYg
cmVzdWx0cyhzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX2NyZWF0ZV9qc2NfdGVzdF9yZXN1
bHRzKCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvcGF0Y2hh
bmFseXNpc3Rhc2sucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L3BhdGNoYW5h
bHlzaXN0YXNrLnB5CmluZGV4IDc1MjMxNjQxNmM1ZjlkMGEzZTU5ZWY2ZDA1ZTMxNzg1ZjkxNzQ2
MjkuLjllNjk0Yjg3NTUyZjM3Y2M5YzU0MTAxNjgzMjQ4MDM2ZGI5YWU1YzUgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvcGF0Y2hhbmFseXNpc3Rhc2sucHkKKysr
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9wYXRjaGFuYWx5c2lzdGFzay5weQpA
QCAtMSw0ICsxLDUgQEAKICMgQ29weXJpZ2h0IChjKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC0yOCw2ICsyOSw3
IEBACiAKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5leGVjdXRpdmUgaW1wb3J0IFNjcmlw
dEVycm9yCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5uZXQubGF5b3V0dGVzdHJlc3VsdHMgaW1wb3J0
IExheW91dFRlc3RSZXN1bHRzCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5uZXQuanNjdGVzdHJlc3Vs
dHMgaW1wb3J0IEpTQ1Rlc3RSZXN1bHRzCiAKIAogY2xhc3MgVW5hYmxlVG9BcHBseVBhdGNoKEV4
Y2VwdGlvbik6CkBAIC00Myw2ICs0NSwxMSBAQCBjbGFzcyBQYXRjaElzTm90VmFsaWQoRXhjZXB0
aW9uKToKICAgICAgICAgc2VsZi5mYWlsdXJlX21lc3NhZ2UgPSBmYWlsdXJlX21lc3NhZ2UKIAog
CitjbGFzcyBQYXRjaElzTm90QXBwbGljYWJsZShFeGNlcHRpb24pOgorICAgIGRlZiBfX2luaXRf
XyhzZWxmLCBwYXRjaCk6CisgICAgICAgIEV4Y2VwdGlvbi5fX2luaXRfXyhzZWxmKQorICAgICAg
ICBzZWxmLnBhdGNoID0gcGF0Y2gKKwogY2xhc3MgUGF0Y2hBbmFseXNpc1Rhc2tEZWxlZ2F0ZShv
YmplY3QpOgogICAgIGRlZiBwYXJlbnRfY29tbWFuZChzZWxmKToKICAgICAgICAgcmFpc2UgTm90
SW1wbGVtZW50ZWRFcnJvcigic3ViY2xhc3NlcyBtdXN0IGltcGxlbWVudCIpCkBAIC0xMjIsMjgg
KzEyOSw1MyBAQCBjbGFzcyBQYXRjaEFuYWx5c2lzVGFzayhvYmplY3QpOgogICAgICAgICAiQXBw
bGllZCBwYXRjaCIsCiAgICAgICAgICJQYXRjaCBkb2VzIG5vdCBhcHBseSIpCiAKKyAgICBkZWYg
X2NoZWNrX3BhdGNoX3JlbGV2YW5jZShzZWxmKToKKyAgICAgICAgYXJncyA9IFsKKyAgICAgICAg
ICAgICJjaGVjay1wYXRjaC1yZWxldmFuY2UiLAorICAgICAgICBdCisKKyAgICAgICAgaWYgaGFz
YXR0cihzZWxmLl9kZWxlZ2F0ZSwgJ2dyb3VwJyk6CisgICAgICAgICAgICBhcmdzLmFwcGVuZCgi
LS1ncm91cD0lcyIgJSBzZWxmLl9kZWxlZ2F0ZS5ncm91cCgpKQorCisgICAgICAgIHJldHVybiBz
ZWxmLl9ydW5fY29tbWFuZCgKKyAgICAgICAgICAgIGFyZ3MsCisgICAgICAgICAgICAiQ2hlY2tl
ZCByZWxldmFuY2Ugb2YgcGF0Y2giLAorICAgICAgICAgICAgIlBhdGNoIHdhcyBub3QgcmVsZXZh
bnQiKQorCiAgICAgZGVmIF9idWlsZChzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYuX3J1bl9j
b21tYW5kKFsKKyAgICAgICAgYXJncyA9IFsKICAgICAgICAgICAgICJidWlsZCIsCiAgICAgICAg
ICAgICAiLS1uby1jbGVhbiIsCiAgICAgICAgICAgICAiLS1uby11cGRhdGUiLAogICAgICAgICAg
ICAgIi0tYnVpbGQtc3R5bGU9JXMiICUgc2VsZi5fZGVsZWdhdGUuYnVpbGRfc3R5bGUoKSwKLSAg
ICAgICAgXSwKLSAgICAgICAgIkJ1aWx0IHBhdGNoIiwKLSAgICAgICAgIlBhdGNoIGRvZXMgbm90
IGJ1aWxkIikKKyAgICAgICAgXQorCisgICAgICAgIGlmIGhhc2F0dHIoc2VsZi5fZGVsZWdhdGUs
ICdncm91cCcpOgorICAgICAgICAgICAgYXJncy5hcHBlbmQoIi0tZ3JvdXA9JXMiICUgc2VsZi5f
ZGVsZWdhdGUuZ3JvdXAoKSkKKworICAgICAgICByZXR1cm4gc2VsZi5fcnVuX2NvbW1hbmQoCisg
ICAgICAgICAgICBhcmdzLAorICAgICAgICAgICAgIkJ1aWx0IHBhdGNoIiwKKyAgICAgICAgICAg
ICJQYXRjaCBkb2VzIG5vdCBidWlsZCIpCiAKICAgICBkZWYgX2J1aWxkX3dpdGhvdXRfcGF0Y2go
c2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmLl9ydW5fY29tbWFuZChbCisgICAgICAgIGFyZ3Mg
PSBbCiAgICAgICAgICAgICAiYnVpbGQiLAogICAgICAgICAgICAgIi0tZm9yY2UtY2xlYW4iLAog
ICAgICAgICAgICAgIi0tbm8tdXBkYXRlIiwKICAgICAgICAgICAgICItLWJ1aWxkLXN0eWxlPSVz
IiAlIHNlbGYuX2RlbGVnYXRlLmJ1aWxkX3N0eWxlKCksCi0gICAgICAgIF0sCi0gICAgICAgICJB
YmxlIHRvIGJ1aWxkIHdpdGhvdXQgcGF0Y2giLAotICAgICAgICAiVW5hYmxlIHRvIGJ1aWxkIHdp
dGhvdXQgcGF0Y2giKQorICAgICAgICBdCisKKyAgICAgICAgaWYgaGFzYXR0cihzZWxmLl9kZWxl
Z2F0ZSwgJ2dyb3VwJyk6CisgICAgICAgICAgICBhcmdzLmFwcGVuZCgiLS1ncm91cD0lcyIgJSBz
ZWxmLl9kZWxlZ2F0ZS5ncm91cCgpKQorCisgICAgICAgIHJldHVybiBzZWxmLl9ydW5fY29tbWFu
ZCgKKyAgICAgICAgICAgIGFyZ3MsCisgICAgICAgICAgICAiQWJsZSB0byBidWlsZCB3aXRob3V0
IHBhdGNoIiwKKyAgICAgICAgICAgICJVbmFibGUgdG8gYnVpbGQgd2l0aG91dCBwYXRjaCIpCiAK
ICAgICBkZWYgX3Rlc3Qoc2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmLl9ydW5fY29tbWFuZChb
CisgICAgICAgIGFyZ3MgPSBbCiAgICAgICAgICAgICAiYnVpbGQtYW5kLXRlc3QiLAogICAgICAg
ICAgICAgIi0tbm8tY2xlYW4iLAogICAgICAgICAgICAgIi0tbm8tdXBkYXRlIiwKQEAgLTE1MSwx
MiArMTgzLDE4IEBAIGNsYXNzIFBhdGNoQW5hbHlzaXNUYXNrKG9iamVjdCk6CiAgICAgICAgICAg
ICAiLS10ZXN0IiwKICAgICAgICAgICAgICItLW5vbi1pbnRlcmFjdGl2ZSIsCiAgICAgICAgICAg
ICAiLS1idWlsZC1zdHlsZT0lcyIgJSBzZWxmLl9kZWxlZ2F0ZS5idWlsZF9zdHlsZSgpLAotICAg
ICAgICBdLAotICAgICAgICAiUGFzc2VkIHRlc3RzIiwKLSAgICAgICAgIlBhdGNoIGRvZXMgbm90
IHBhc3MgdGVzdHMiKQorICAgICAgICBdCisKKyAgICAgICAgaWYgaGFzYXR0cihzZWxmLl9kZWxl
Z2F0ZSwgJ2dyb3VwJyk6CisgICAgICAgICAgICBhcmdzLmFwcGVuZCgiLS1ncm91cD0lcyIgJSBz
ZWxmLl9kZWxlZ2F0ZS5ncm91cCgpKQorCisgICAgICAgIHJldHVybiBzZWxmLl9ydW5fY29tbWFu
ZCgKKyAgICAgICAgICAgIGFyZ3MsCisgICAgICAgICAgICAiUGFzc2VkIHRlc3RzIiwKKyAgICAg
ICAgICAgICJQYXRjaCBkb2VzIG5vdCBwYXNzIHRlc3RzIikKIAogICAgIGRlZiBfYnVpbGRfYW5k
X3Rlc3Rfd2l0aG91dF9wYXRjaChzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYuX3J1bl9jb21t
YW5kKFsKKyAgICAgICAgYXJncyA9IFsKICAgICAgICAgICAgICJidWlsZC1hbmQtdGVzdCIsCiAg
ICAgICAgICAgICAiLS1mb3JjZS1jbGVhbiIsCiAgICAgICAgICAgICAiLS1uby11cGRhdGUiLApA
QCAtMTY0LDkgKzIwMiwxNSBAQCBjbGFzcyBQYXRjaEFuYWx5c2lzVGFzayhvYmplY3QpOgogICAg
ICAgICAgICAgIi0tdGVzdCIsCiAgICAgICAgICAgICAiLS1ub24taW50ZXJhY3RpdmUiLAogICAg
ICAgICAgICAgIi0tYnVpbGQtc3R5bGU9JXMiICUgc2VsZi5fZGVsZWdhdGUuYnVpbGRfc3R5bGUo
KSwKLSAgICAgICAgXSwKLSAgICAgICAgIkFibGUgdG8gcGFzcyB0ZXN0cyB3aXRob3V0IHBhdGNo
IiwKLSAgICAgICAgIlVuYWJsZSB0byBwYXNzIHRlc3RzIHdpdGhvdXQgcGF0Y2ggKHRyZWUgaXMg
cmVkPykiKQorICAgICAgICBdCisKKyAgICAgICAgaWYgaGFzYXR0cihzZWxmLl9kZWxlZ2F0ZSwg
J2dyb3VwJyk6CisgICAgICAgICAgICBhcmdzLmFwcGVuZCgiLS1ncm91cD0lcyIgJSBzZWxmLl9k
ZWxlZ2F0ZS5ncm91cCgpKQorCisgICAgICAgIHJldHVybiBzZWxmLl9ydW5fY29tbWFuZCgKKyAg
ICAgICAgICAgIGFyZ3MsCisgICAgICAgICAgICAiQWJsZSB0byBwYXNzIHRlc3RzIHdpdGhvdXQg
cGF0Y2giLAorICAgICAgICAgICAgIlVuYWJsZSB0byBwYXNzIHRlc3RzIHdpdGhvdXQgcGF0Y2gg
KHRyZWUgaXMgcmVkPykiKQogCiAgICAgZGVmIF9sYW5kKHNlbGYpOgogICAgICAgICAjIFVuY2xl
YXIgaWYgdGhpcyBzaG91bGQgcGFzcyAtLXF1aWV0IG9yIG5vdC4gIElmIC0tcGFyZW50LWNvbW1h
bmQgYWx3YXlzIGRvZXMgdGhlIHJlcG9ydGluZywgdGhlbiBpdCBzaG91bGQuCkBAIC0yMTAsNjkg
KzI1NCw5NiBAQCBjbGFzcyBQYXRjaEFuYWx5c2lzVGFzayhvYmplY3QpOgogICAgICAgICBpZiBz
ZWxmLl90ZXN0KCk6CiAgICAgICAgICAgICByZXR1cm4gVHJ1ZQogCi0gICAgICAgICMgTm90ZTog
YXJjaGl2ZV9sYXN0X3Rlc3RfcmVzdWx0cyBkZWxldGVzIHRoZSByZXN1bHRzIGRpcmVjdG9yeSwg
bWFraW5nIHRoZXNlIGNhbGxzIG9yZGVyLXNlbnNpdHZlLgotICAgICAgICAjIFdlIGNvdWxkIHJl
bW92ZSB0aGlzIGRlcGVuZGVuY3kgYnkgYnVpbGRpbmcgdGhlIHRlc3RfcmVzdWx0cyBmcm9tIHRo
ZSBhcmNoaXZlLgotICAgICAgICBmaXJzdF9yZXN1bHRzID0gc2VsZi5fZGVsZWdhdGUudGVzdF9y
ZXN1bHRzKCkKLSAgICAgICAgZmlyc3RfcmVzdWx0c19hcmNoaXZlID0gc2VsZi5fZGVsZWdhdGUu
YXJjaGl2ZV9sYXN0X3Rlc3RfcmVzdWx0cyhzZWxmLl9wYXRjaCkKLSAgICAgICAgZmlyc3Rfc2Ny
aXB0X2Vycm9yID0gc2VsZi5fc2NyaXB0X2Vycm9yCi0gICAgICAgIGZpcnN0X2ZhaWx1cmVfc3Rh
dHVzX2lkID0gc2VsZi5mYWlsdXJlX3N0YXR1c19pZAotCi0gICAgICAgIGlmIHNlbGYuX3Rlc3Qo
KSBhbmQgbm90IGZpcnN0X3Jlc3VsdHMuZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQoKToK
LSAgICAgICAgICAgICMgT25seSByZXBvcnQgZmxha3kgdGVzdHMgaWYgd2Ugd2VyZSBzdWNjZXNz
ZnVsIGF0IHBhcnNpbmcgcmVzdWx0cy5qc29uIGFuZCBhcmNoaXZpbmcgcmVzdWx0cy4KLSAgICAg
ICAgICAgIGlmIGZpcnN0X3Jlc3VsdHMgYW5kIGZpcnN0X3Jlc3VsdHNfYXJjaGl2ZToKLSAgICAg
ICAgICAgICAgICBzZWxmLl9yZXBvcnRfZmxha3lfdGVzdHMoZmlyc3RfcmVzdWx0cy5mYWlsaW5n
X3Rlc3RfcmVzdWx0cygpLCBmaXJzdF9yZXN1bHRzX2FyY2hpdmUpCi0gICAgICAgICAgICByZXR1
cm4gVHJ1ZQorICAgICAgICAjIEZJWE1FOiBBYnN0cmFjdCBvdXQgdGhlIHJldHJ5IGxvZ2ljIGlu
c3RlYWQgb2YgY2FzaW5nIG9uIHRoZSB0ZXN0IHN1aXRlIGhlcmUuCisgICAgICAgIGlmIGhhc2F0
dHIoc2VsZi5fZGVsZWdhdGUsICdncm91cCcpIGFuZCBzZWxmLl9kZWxlZ2F0ZS5ncm91cCgpID09
ICJqc2MiOgorICAgICAgICAgICAgZmlyc3RfcmVzdWx0cyA9IHNlbGYuX2RlbGVnYXRlLnRlc3Rf
cmVzdWx0cygpCisgICAgICAgICAgICBmaXJzdF9zY3JpcHRfZXJyb3IgPSBzZWxmLl9zY3JpcHRf
ZXJyb3IKKyAgICAgICAgICAgIGlmIGZpcnN0X3Jlc3VsdHMgaXMgTm9uZToKKyAgICAgICAgICAg
ICAgICByZXR1cm4gc2VsZi5yZXBvcnRfZmFpbHVyZShOb25lLCBOb25lLCBTY3JpcHRFcnJvcigi
Q291bGQgbm90IHJlYWQgSlNDIHRlc3QgcmVzdWx0cyBmb3IgcGF0Y2guIikpCiAKLSAgICAgICAg
c2Vjb25kX3Jlc3VsdHMgPSBzZWxmLl9kZWxlZ2F0ZS50ZXN0X3Jlc3VsdHMoKQotICAgICAgICBz
ZWNvbmRfcmVzdWx0c19hcmNoaXZlID0gc2VsZi5fZGVsZWdhdGUuYXJjaGl2ZV9sYXN0X3Rlc3Rf
cmVzdWx0cyhzZWxmLl9wYXRjaCkKLSAgICAgICAgc2Vjb25kX3NjcmlwdF9lcnJvciA9IHNlbGYu
X3NjcmlwdF9lcnJvcgotICAgICAgICBzZWNvbmRfZmFpbHVyZV9zdGF0dXNfaWQgPSBzZWxmLmZh
aWx1cmVfc3RhdHVzX2lkCisgICAgICAgICAgICBpZiBzZWxmLl90ZXN0KCk6CisgICAgICAgICAg
ICAgICAgcmV0dXJuIFRydWUKKyAgICAgICAgICAgIHNlY29uZF9yZXN1bHRzID0gc2VsZi5fZGVs
ZWdhdGUudGVzdF9yZXN1bHRzKCkKKyAgICAgICAgICAgIHNlY29uZF9zY3JpcHRfZXJyb3IgPSBz
ZWxmLl9zY3JpcHRfZXJyb3IKKyAgICAgICAgICAgIGlmIHNlY29uZF9yZXN1bHRzIGlzIE5vbmU6
CisgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYucmVwb3J0X2ZhaWx1cmUoTm9uZSwgTm9uZSwg
U2NyaXB0RXJyb3IoIkNvdWxkIG5vdCByZWFkIEpTQyB0ZXN0IHJlc3VsdHMgb24gc2Vjb25kIHJ1
bi4iKSkKKworICAgICAgICAgICAgY29uc2lzdGVudF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMu
aW50ZXJzZWN0aW9uKGZpcnN0X3Jlc3VsdHMsIHNlY29uZF9yZXN1bHRzKQogCi0gICAgICAgIGlm
IHNlY29uZF9yZXN1bHRzLmRpZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xpbWl0KCkgYW5kIGZpcnN0
X3Jlc3VsdHMuZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQoKToKICAgICAgICAgICAgIHNl
bGYuX2J1aWxkX2FuZF90ZXN0X3dpdGhvdXRfcGF0Y2goKQogICAgICAgICAgICAgY2xlYW5fdHJl
ZV9yZXN1bHRzID0gc2VsZi5fZGVsZWdhdGUudGVzdF9yZXN1bHRzKCkKKyAgICAgICAgICAgIGlm
IGNsZWFuX3RyZWVfcmVzdWx0cyBpcyBOb25lOgorICAgICAgICAgICAgICAgIHJldHVybiBzZWxm
LnJlcG9ydF9mYWlsdXJlKE5vbmUsIE5vbmUsIFNjcmlwdEVycm9yKCJDb3VsZCBub3QgcmVhZCBK
U0MgdGVzdCByZXN1bHRzIGZvciBjbGVhbiB0cmVlLiIpKQogCi0gICAgICAgICAgICBpZiAobGVu
KGZpcnN0X3Jlc3VsdHMuZmFpbGluZ190ZXN0cygpKSAtIGxlbihjbGVhbl90cmVlX3Jlc3VsdHMu
ZmFpbGluZ190ZXN0cygpKSkgPD0gNToKLSAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAg
ICAgICAgICAgIGlmIGNvbnNpc3RlbnRfcmVzdWx0cy5pc19zdWJzZXQoY2xlYW5fdHJlZV9yZXN1
bHRzKToKKyAgICAgICAgICAgICAgICByZXR1cm4gVHJ1ZQogCi0gICAgICAgICAgICBzZWxmLmZh
aWx1cmVfc3RhdHVzX2lkID0gZmlyc3RfZmFpbHVyZV9zdGF0dXNfaWQKKyAgICAgICAgICAgIHJl
dHVybiBzZWxmLnJlcG9ydF9mYWlsdXJlKE5vbmUsIGNvbnNpc3RlbnRfcmVzdWx0cywgZmlyc3Rf
c2NyaXB0X2Vycm9yKQogCi0gICAgICAgICAgICByZXR1cm4gc2VsZi5yZXBvcnRfZmFpbHVyZShm
aXJzdF9yZXN1bHRzX2FyY2hpdmUsIGZpcnN0X3Jlc3VsdHMsIGZpcnN0X3NjcmlwdF9lcnJvcikK
KyAgICAgICAgZWxzZToKKyAgICAgICAgICAgICMgTm90ZTogYXJjaGl2ZV9sYXN0X3Rlc3RfcmVz
dWx0cyBkZWxldGVzIHRoZSByZXN1bHRzIGRpcmVjdG9yeSwgbWFraW5nIHRoZXNlIGNhbGxzIG9y
ZGVyLXNlbnNpdHZlLgorICAgICAgICAgICAgIyBXZSBjb3VsZCByZW1vdmUgdGhpcyBkZXBlbmRl
bmN5IGJ5IGJ1aWxkaW5nIHRoZSB0ZXN0X3Jlc3VsdHMgZnJvbSB0aGUgYXJjaGl2ZS4KKyAgICAg
ICAgICAgIGZpcnN0X3Jlc3VsdHMgPSBzZWxmLl9kZWxlZ2F0ZS50ZXN0X3Jlc3VsdHMoKQorICAg
ICAgICAgICAgZmlyc3RfcmVzdWx0c19hcmNoaXZlID0gc2VsZi5fZGVsZWdhdGUuYXJjaGl2ZV9s
YXN0X3Rlc3RfcmVzdWx0cyhzZWxmLl9wYXRjaCkKKyAgICAgICAgICAgIGZpcnN0X3NjcmlwdF9l
cnJvciA9IHNlbGYuX3NjcmlwdF9lcnJvcgorICAgICAgICAgICAgZmlyc3RfZmFpbHVyZV9zdGF0
dXNfaWQgPSBzZWxmLmZhaWx1cmVfc3RhdHVzX2lkCiAKLSAgICAgICAgaWYgc2Vjb25kX3Jlc3Vs
dHMuZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQoKToKLSAgICAgICAgICAgIHNlbGYuX3No
b3VsZF9kZWZlcl9wYXRjaF9vcl90aHJvdyhmaXJzdF9yZXN1bHRzLmZhaWxpbmdfdGVzdF9yZXN1
bHRzKCksIGZpcnN0X3Jlc3VsdHNfYXJjaGl2ZSwgZmlyc3Rfc2NyaXB0X2Vycm9yLCBmaXJzdF9m
YWlsdXJlX3N0YXR1c19pZCkKLSAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICAgICAg
aWYgc2VsZi5fdGVzdCgpIGFuZCBub3QgZmlyc3RfcmVzdWx0cy5kaWRfZXhjZWVkX3Rlc3RfZmFp
bHVyZV9saW1pdCgpOgorICAgICAgICAgICAgICAgICMgT25seSByZXBvcnQgZmxha3kgdGVzdHMg
aWYgd2Ugd2VyZSBzdWNjZXNzZnVsIGF0IHBhcnNpbmcgcmVzdWx0cy5qc29uIGFuZCBhcmNoaXZp
bmcgcmVzdWx0cy4KKyAgICAgICAgICAgICAgICBpZiBmaXJzdF9yZXN1bHRzIGFuZCBmaXJzdF9y
ZXN1bHRzX2FyY2hpdmU6CisgICAgICAgICAgICAgICAgICAgIHNlbGYuX3JlcG9ydF9mbGFreV90
ZXN0cyhmaXJzdF9yZXN1bHRzLmZhaWxpbmdfdGVzdF9yZXN1bHRzKCksIGZpcnN0X3Jlc3VsdHNf
YXJjaGl2ZSkKKyAgICAgICAgICAgICAgICByZXR1cm4gVHJ1ZQogCi0gICAgICAgIGlmIGZpcnN0
X3Jlc3VsdHMuZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQoKToKLSAgICAgICAgICAgIHNl
bGYuX3Nob3VsZF9kZWZlcl9wYXRjaF9vcl90aHJvdyhzZWNvbmRfcmVzdWx0cy5mYWlsaW5nX3Rl
c3RfcmVzdWx0cygpLCBzZWNvbmRfcmVzdWx0c19hcmNoaXZlLCBzZWNvbmRfc2NyaXB0X2Vycm9y
LCBzZWNvbmRfZmFpbHVyZV9zdGF0dXNfaWQpCi0gICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAg
ICAgICAgICAgIHNlY29uZF9yZXN1bHRzID0gc2VsZi5fZGVsZWdhdGUudGVzdF9yZXN1bHRzKCkK
KyAgICAgICAgICAgIHNlY29uZF9yZXN1bHRzX2FyY2hpdmUgPSBzZWxmLl9kZWxlZ2F0ZS5hcmNo
aXZlX2xhc3RfdGVzdF9yZXN1bHRzKHNlbGYuX3BhdGNoKQorICAgICAgICAgICAgc2Vjb25kX3Nj
cmlwdF9lcnJvciA9IHNlbGYuX3NjcmlwdF9lcnJvcgorICAgICAgICAgICAgc2Vjb25kX2ZhaWx1
cmVfc3RhdHVzX2lkID0gc2VsZi5mYWlsdXJlX3N0YXR1c19pZAogCi0gICAgICAgIGlmIHNlbGYu
X3Jlc3VsdHNfZmFpbGVkX2RpZmZlcmVudF90ZXN0cyhmaXJzdF9yZXN1bHRzLCBzZWNvbmRfcmVz
dWx0cyk6Ci0gICAgICAgICAgICBmaXJzdF9mYWlsaW5nX3Jlc3VsdHNfc2V0ID0gZnJvemVuc2V0
KGZpcnN0X3Jlc3VsdHMuZmFpbGluZ190ZXN0X3Jlc3VsdHMoKSkKLSAgICAgICAgICAgIHNlY29u
ZF9mYWlsaW5nX3Jlc3VsdHNfc2V0ID0gZnJvemVuc2V0KHNlY29uZF9yZXN1bHRzLmZhaWxpbmdf
dGVzdF9yZXN1bHRzKCkpCisgICAgICAgICAgICBpZiBzZWNvbmRfcmVzdWx0cy5kaWRfZXhjZWVk
X3Rlc3RfZmFpbHVyZV9saW1pdCgpIGFuZCBmaXJzdF9yZXN1bHRzLmRpZF9leGNlZWRfdGVzdF9m
YWlsdXJlX2xpbWl0KCk6CisgICAgICAgICAgICAgICAgc2VsZi5fYnVpbGRfYW5kX3Rlc3Rfd2l0
aG91dF9wYXRjaCgpCisgICAgICAgICAgICAgICAgY2xlYW5fdHJlZV9yZXN1bHRzID0gc2VsZi5f
ZGVsZWdhdGUudGVzdF9yZXN1bHRzKCkKIAotICAgICAgICAgICAgdGVzdHNfdGhhdF9vbmx5X2Zh
aWxlZF9maXJzdCA9IGZpcnN0X2ZhaWxpbmdfcmVzdWx0c19zZXQuZGlmZmVyZW5jZShzZWNvbmRf
ZmFpbGluZ19yZXN1bHRzX3NldCkKLSAgICAgICAgICAgIHNlbGYuX3JlcG9ydF9mbGFreV90ZXN0
cyh0ZXN0c190aGF0X29ubHlfZmFpbGVkX2ZpcnN0LCBmaXJzdF9yZXN1bHRzX2FyY2hpdmUpCisg
ICAgICAgICAgICAgICAgaWYgKGxlbihmaXJzdF9yZXN1bHRzLmZhaWxpbmdfdGVzdHMoKSkgLSBs
ZW4oY2xlYW5fdHJlZV9yZXN1bHRzLmZhaWxpbmdfdGVzdHMoKSkpIDw9IDU6CisgICAgICAgICAg
ICAgICAgICAgIHJldHVybiBGYWxzZQogCi0gICAgICAgICAgICB0ZXN0c190aGF0X29ubHlfZmFp
bGVkX3NlY29uZCA9IHNlY29uZF9mYWlsaW5nX3Jlc3VsdHNfc2V0LmRpZmZlcmVuY2UoZmlyc3Rf
ZmFpbGluZ19yZXN1bHRzX3NldCkKLSAgICAgICAgICAgIHNlbGYuX3JlcG9ydF9mbGFreV90ZXN0
cyh0ZXN0c190aGF0X29ubHlfZmFpbGVkX3NlY29uZCwgc2Vjb25kX3Jlc3VsdHNfYXJjaGl2ZSkK
KyAgICAgICAgICAgICAgICBzZWxmLmZhaWx1cmVfc3RhdHVzX2lkID0gZmlyc3RfZmFpbHVyZV9z
dGF0dXNfaWQKIAotICAgICAgICAgICAgdGVzdHNfdGhhdF9jb25zaXN0ZW50bHlfZmFpbGVkID0g
Zmlyc3RfZmFpbGluZ19yZXN1bHRzX3NldC5pbnRlcnNlY3Rpb24oc2Vjb25kX2ZhaWxpbmdfcmVz
dWx0c19zZXQpCi0gICAgICAgICAgICBpZiB0ZXN0c190aGF0X2NvbnNpc3RlbnRseV9mYWlsZWQ6
Ci0gICAgICAgICAgICAgICAgaWYgc2VsZi5fc2hvdWxkX2RlZmVyX3BhdGNoX29yX3Rocm93KHRl
c3RzX3RoYXRfY29uc2lzdGVudGx5X2ZhaWxlZCwgZmlyc3RfcmVzdWx0c19hcmNoaXZlLCBmaXJz
dF9zY3JpcHRfZXJyb3IsIGZpcnN0X2ZhaWx1cmVfc3RhdHVzX2lkKToKLSAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIEZhbHNlICAjIERlZmVyIHBhdGNoCisgICAgICAgICAgICAgICAgcmV0dXJu
IHNlbGYucmVwb3J0X2ZhaWx1cmUoZmlyc3RfcmVzdWx0c19hcmNoaXZlLCBmaXJzdF9yZXN1bHRz
LCBmaXJzdF9zY3JpcHRfZXJyb3IpCiAKLSAgICAgICAgICAgICMgQXQgdGhpcyBwb2ludCB3ZSBr
bm93IHRoYXQgYXQgbGVhc3Qgb25lIHRlc3QgZmxha2VkLCBidXQgbm8gY29uc2lzdGVudCBmYWls
dXJlcwotICAgICAgICAgICAgIyB3ZXJlIGludHJvZHVjZWQuIFRoaXMgaXMgYSBiaXQgb2YgYSBn
cmV5LXpvbmUuCi0gICAgICAgICAgICByZXR1cm4gRmFsc2UgICMgRGVmZXIgcGF0Y2gKKyAgICAg
ICAgICAgIGlmIHNlY29uZF9yZXN1bHRzLmRpZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xpbWl0KCk6
CisgICAgICAgICAgICAgICAgc2VsZi5fc2hvdWxkX2RlZmVyX3BhdGNoX29yX3Rocm93KGZpcnN0
X3Jlc3VsdHMuZmFpbGluZ190ZXN0X3Jlc3VsdHMoKSwgZmlyc3RfcmVzdWx0c19hcmNoaXZlLCBm
aXJzdF9zY3JpcHRfZXJyb3IsIGZpcnN0X2ZhaWx1cmVfc3RhdHVzX2lkKQorICAgICAgICAgICAg
ICAgIHJldHVybiBGYWxzZQorCisgICAgICAgICAgICBpZiBmaXJzdF9yZXN1bHRzLmRpZF9leGNl
ZWRfdGVzdF9mYWlsdXJlX2xpbWl0KCk6CisgICAgICAgICAgICAgICAgc2VsZi5fc2hvdWxkX2Rl
ZmVyX3BhdGNoX29yX3Rocm93KHNlY29uZF9yZXN1bHRzLmZhaWxpbmdfdGVzdF9yZXN1bHRzKCks
IHNlY29uZF9yZXN1bHRzX2FyY2hpdmUsIHNlY29uZF9zY3JpcHRfZXJyb3IsIHNlY29uZF9mYWls
dXJlX3N0YXR1c19pZCkKKyAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKKworICAgICAgICAg
ICAgaWYgc2VsZi5fcmVzdWx0c19mYWlsZWRfZGlmZmVyZW50X3Rlc3RzKGZpcnN0X3Jlc3VsdHMs
IHNlY29uZF9yZXN1bHRzKToKKyAgICAgICAgICAgICAgICBmaXJzdF9mYWlsaW5nX3Jlc3VsdHNf
c2V0ID0gZnJvemVuc2V0KGZpcnN0X3Jlc3VsdHMuZmFpbGluZ190ZXN0X3Jlc3VsdHMoKSkKKyAg
ICAgICAgICAgICAgICBzZWNvbmRfZmFpbGluZ19yZXN1bHRzX3NldCA9IGZyb3plbnNldChzZWNv
bmRfcmVzdWx0cy5mYWlsaW5nX3Rlc3RfcmVzdWx0cygpKQorCisgICAgICAgICAgICAgICAgdGVz
dHNfdGhhdF9vbmx5X2ZhaWxlZF9maXJzdCA9IGZpcnN0X2ZhaWxpbmdfcmVzdWx0c19zZXQuZGlm
ZmVyZW5jZShzZWNvbmRfZmFpbGluZ19yZXN1bHRzX3NldCkKKyAgICAgICAgICAgICAgICBzZWxm
Ll9yZXBvcnRfZmxha3lfdGVzdHModGVzdHNfdGhhdF9vbmx5X2ZhaWxlZF9maXJzdCwgZmlyc3Rf
cmVzdWx0c19hcmNoaXZlKQogCi0gICAgICAgIGlmIHNlbGYuX3Nob3VsZF9kZWZlcl9wYXRjaF9v
cl90aHJvdyhmaXJzdF9yZXN1bHRzLmZhaWxpbmdfdGVzdF9yZXN1bHRzKCksIGZpcnN0X3Jlc3Vs
dHNfYXJjaGl2ZSwgZmlyc3Rfc2NyaXB0X2Vycm9yLCBmaXJzdF9mYWlsdXJlX3N0YXR1c19pZCk6
Ci0gICAgICAgICAgICByZXR1cm4gRmFsc2UgICMgRGVmZXIgcGF0Y2gKKyAgICAgICAgICAgICAg
ICB0ZXN0c190aGF0X29ubHlfZmFpbGVkX3NlY29uZCA9IHNlY29uZF9mYWlsaW5nX3Jlc3VsdHNf
c2V0LmRpZmZlcmVuY2UoZmlyc3RfZmFpbGluZ19yZXN1bHRzX3NldCkKKyAgICAgICAgICAgICAg
ICBzZWxmLl9yZXBvcnRfZmxha3lfdGVzdHModGVzdHNfdGhhdF9vbmx5X2ZhaWxlZF9zZWNvbmQs
IHNlY29uZF9yZXN1bHRzX2FyY2hpdmUpCiAKLSAgICAgICAgIyBBdCB0aGlzIHBvaW50LCB3ZSBr
bm93IHRoYXQgdGhlIGZpcnN0IGFuZCBzZWNvbmQgcnVucyBoYWQgdGhlIGV4YWN0IHNhbWUgZmFp
bHVyZXMsCi0gICAgICAgICMgYW5kIHRoYXQgdGhvc2UgZmFpbHVyZXMgYXJlIGFsbCBwcmVzZW50
IG9uIHRoZSBjbGVhbiB0cmVlLCBzbyB3ZSBjYW4gc2F5IHdpdGggY2VydGFpbnR5Ci0gICAgICAg
ICMgdGhhdCB0aGUgcGF0Y2ggaXMgZ29vZC4KLSAgICAgICAgcmV0dXJuIFRydWUKKyAgICAgICAg
ICAgICAgICB0ZXN0c190aGF0X2NvbnNpc3RlbnRseV9mYWlsZWQgPSBmaXJzdF9mYWlsaW5nX3Jl
c3VsdHNfc2V0LmludGVyc2VjdGlvbihzZWNvbmRfZmFpbGluZ19yZXN1bHRzX3NldCkKKyAgICAg
ICAgICAgICAgICBpZiB0ZXN0c190aGF0X2NvbnNpc3RlbnRseV9mYWlsZWQ6CisgICAgICAgICAg
ICAgICAgICAgIGlmIHNlbGYuX3Nob3VsZF9kZWZlcl9wYXRjaF9vcl90aHJvdyh0ZXN0c190aGF0
X2NvbnNpc3RlbnRseV9mYWlsZWQsIGZpcnN0X3Jlc3VsdHNfYXJjaGl2ZSwgZmlyc3Rfc2NyaXB0
X2Vycm9yLCBmaXJzdF9mYWlsdXJlX3N0YXR1c19pZCk6CisgICAgICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gRmFsc2UgICMgRGVmZXIgcGF0Y2gKKworICAgICAgICAgICAgICAgICMgQXQgdGhp
cyBwb2ludCB3ZSBrbm93IHRoYXQgYXQgbGVhc3Qgb25lIHRlc3QgZmxha2VkLCBidXQgbm8gY29u
c2lzdGVudCBmYWlsdXJlcworICAgICAgICAgICAgICAgICMgd2VyZSBpbnRyb2R1Y2VkLiBUaGlz
IGlzIGEgYml0IG9mIGEgZ3JleS16b25lLgorICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZSAg
IyBEZWZlciBwYXRjaAorCisgICAgICAgICAgICBpZiBzZWxmLl9zaG91bGRfZGVmZXJfcGF0Y2hf
b3JfdGhyb3coZmlyc3RfcmVzdWx0cy5mYWlsaW5nX3Rlc3RfcmVzdWx0cygpLCBmaXJzdF9yZXN1
bHRzX2FyY2hpdmUsIGZpcnN0X3NjcmlwdF9lcnJvciwgZmlyc3RfZmFpbHVyZV9zdGF0dXNfaWQp
OgorICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZSAgIyBEZWZlciBwYXRjaAorCisgICAgICAg
ICAgICAjIEF0IHRoaXMgcG9pbnQsIHdlIGtub3cgdGhhdCB0aGUgZmlyc3QgYW5kIHNlY29uZCBy
dW5zIGhhZCB0aGUgZXhhY3Qgc2FtZSBmYWlsdXJlcywKKyAgICAgICAgICAgICMgYW5kIHRoYXQg
dGhvc2UgZmFpbHVyZXMgYXJlIGFsbCBwcmVzZW50IG9uIHRoZSBjbGVhbiB0cmVlLCBzbyB3ZSBj
YW4gc2F5IHdpdGggY2VydGFpbnR5CisgICAgICAgICAgICAjIHRoYXQgdGhlIHBhdGNoIGlzIGdv
b2QuCisgICAgICAgICAgICByZXR1cm4gVHJ1ZQogCiAgICAgZGVmIHJlc3VsdHNfYXJjaGl2ZV9m
cm9tX3BhdGNoX3Rlc3RfcnVuKHNlbGYsIHBhdGNoKToKICAgICAgICAgYXNzZXJ0KHNlbGYuX3Bh
dGNoLmlkKCkgPT0gcGF0Y2guaWQoKSkgICMgUGF0Y2hBbmFseXNpc1Rhc2sgaXMgbm90IGN1cnJl
bnRseSByZS11c2VhYmxlLgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29s
L2NvbW1hbmRzL2Rvd25sb2FkLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1h
bmRzL2Rvd25sb2FkLnB5CmluZGV4IGU1MTY5YWFjODVmMzE4NmU4NGJlOWQ1MDI0NTkyYmQ3ZmU2
ZDVkZDUuLjE0YjU1YmMzZjdjOWMxMGI1ZGY2MGZjMWFmODdkN2NhMzllM2JjOTQgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9kb3dubG9hZC5weQorKysg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZG93bmxvYWQucHkKQEAgLTEs
NSArMSw1IEBACiAjIENvcHlyaWdodCAoYykgMjAwOSwgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotIyBDb3B5cmlnaHQgKGMpIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKGMpIDIwMDksIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtODcsNiAr
ODcsMTQgQEAgY2xhc3MgQnVpbGRBbmRUZXN0KEFic3RyYWN0U2VxdWVuY2VkQ29tbWFuZCk6CiAg
ICAgXQogCiAKK2NsYXNzIENoZWNrUGF0Y2hSZWxldmFuY2UoQWJzdHJhY3RTZXF1ZW5jZWRDb21t
YW5kKToKKyAgICBuYW1lID0gImNoZWNrLXBhdGNoLXJlbGV2YW5jZSIKKyAgICBoZWxwX3RleHQg
PSAiQ2hlY2sgaWYgdGhpcyBwYXRjaCBuZWVkcyB0byBiZSB0ZXN0ZWQiCisgICAgc3RlcHMgPSBb
CisgICAgICAgIHN0ZXBzLkNoZWNrUGF0Y2hSZWxldmFuY2UsCisgICAgXQorCisKIGNsYXNzIExh
bmQoQWJzdHJhY3RTZXF1ZW5jZWRDb21tYW5kKToKICAgICBuYW1lID0gImxhbmQiCiAgICAgaGVs
cF90ZXh0ID0gIkxhbmQgdGhlIGN1cnJlbnQgd29ya2luZyBkaXJlY3RvcnkgZGlmZiBhbmQgdXBk
YXRlcyB0aGUgYXNzb2NpYXRlZCBidWcgaWYgYW55IgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Vhcmx5d2FybmluZ3N5c3RlbS5weSBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9lYXJseXdhcm5pbmdzeXN0ZW0ucHkKaW5kZXgg
OWJjMDQxODYwY2U2NzQ1NDQ1NGU0YjI1MTQzOGE5ZGJlNTI2NDUxMy4uNmFhMmY5ZmMyOTgyMjE3
OTZjODcxZWFiMmNjMTNlMDIwZjQyNDAyMSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS90b29sL2NvbW1hbmRzL2Vhcmx5d2FybmluZ3N5c3RlbS5weQorKysgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZWFybHl3YXJuaW5nc3lzdGVtLnB5CkBAIC0xLDQg
KzEsNSBAQAogIyBDb3B5cmlnaHQgKGMpIDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyMgQ29weXJpZ2h0IChjKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTI4LDYgKzI5LDcgQEAKIAog
aW1wb3J0IGpzb24KIGltcG9ydCBsb2dnaW5nCitpbXBvcnQgb3MKIGZyb20gb3B0cGFyc2UgaW1w
b3J0IG1ha2Vfb3B0aW9uCiAKIGZyb20gd2Via2l0cHkuY29tbW9uLmNvbmZpZy5jb21taXR0ZXJz
IGltcG9ydCBDb21taXR0ZXJMaXN0CkBAIC0zNiw3ICszOCw4IEBAIGZyb20gd2Via2l0cHkuY29t
bW9uLnN5c3RlbS5maWxlc3lzdGVtIGltcG9ydCBGaWxlU3lzdGVtCiBmcm9tIHdlYmtpdHB5LmNv
bW1vbi5zeXN0ZW0uZXhlY3V0aXZlIGltcG9ydCBTY3JpcHRFcnJvcgogZnJvbSB3ZWJraXRweS50
b29sLmJvdC5lYXJseXdhcm5pbmdzeXN0ZW10YXNrIGltcG9ydCBFYXJseVdhcm5pbmdTeXN0ZW1U
YXNrLCBFYXJseVdhcm5pbmdTeXN0ZW1UYXNrRGVsZWdhdGUKIGZyb20gd2Via2l0cHkudG9vbC5i
b3QubGF5b3V0dGVzdHJlc3VsdHNyZWFkZXIgaW1wb3J0IExheW91dFRlc3RSZXN1bHRzUmVhZGVy
Ci1mcm9tIHdlYmtpdHB5LnRvb2wuYm90LnBhdGNoYW5hbHlzaXN0YXNrIGltcG9ydCBVbmFibGVU
b0FwcGx5UGF0Y2gsIFBhdGNoSXNOb3RWYWxpZAorZnJvbSB3ZWJraXRweS50b29sLmJvdC5qc2N0
ZXN0cmVzdWx0c3JlYWRlciBpbXBvcnQgSlNDVGVzdFJlc3VsdHNSZWFkZXIKK2Zyb20gd2Via2l0
cHkudG9vbC5ib3QucGF0Y2hhbmFseXNpc3Rhc2sgaW1wb3J0IFVuYWJsZVRvQXBwbHlQYXRjaCwg
UGF0Y2hJc05vdFZhbGlkLCBQYXRjaElzTm90QXBwbGljYWJsZQogZnJvbSB3ZWJraXRweS50b29s
LmJvdC5xdWV1ZWVuZ2luZSBpbXBvcnQgUXVldWVFbmdpbmUKIGZyb20gd2Via2l0cHkudG9vbC5j
b21tYW5kcy5xdWV1ZXMgaW1wb3J0IEFic3RyYWN0UmV2aWV3UXVldWUKIApAQCAtNTMsNyArNTYs
MTIgQEAgY2xhc3MgQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0oQWJzdHJhY3RSZXZpZXdRdWV1
ZSwgRWFybHlXYXJuaW5nU3lzdGVtVGFza0RlbGUKIAogICAgIGRlZiBiZWdpbl93b3JrX3F1ZXVl
KHNlbGYpOgogICAgICAgICBBYnN0cmFjdFJldmlld1F1ZXVlLmJlZ2luX3dvcmtfcXVldWUoc2Vs
ZikKLSAgICAgICAgc2VsZi5fbGF5b3V0X3Rlc3RfcmVzdWx0c19yZWFkZXIgPSBMYXlvdXRUZXN0
UmVzdWx0c1JlYWRlcihzZWxmLl90b29sLCBzZWxmLl9wb3J0LnJlc3VsdHNfZGlyZWN0b3J5KCks
IHNlbGYuX2xvZ19kaXJlY3RvcnkoKSkKKworICAgICAgICBpZiBzZWxmLmdyb3VwKCkgPT0gImpz
YyI6CisgICAgICAgICAgICBkaXIgPSBvcy5wYXRoLmRpcm5hbWUob3MucGF0aC5kaXJuYW1lKG9z
LnBhdGguZGlybmFtZShzZWxmLl9wb3J0LnJlc3VsdHNfZGlyZWN0b3J5KCkpKSkKKyAgICAgICAg
ICAgIHNlbGYuX3Rlc3RfcmVzdWx0c19yZWFkZXIgPSBKU0NUZXN0UmVzdWx0c1JlYWRlcihzZWxm
Ll90b29sLCBkaXIpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLl90ZXN0X3Jlc3Vs
dHNfcmVhZGVyID0gTGF5b3V0VGVzdFJlc3VsdHNSZWFkZXIoc2VsZi5fdG9vbCwgc2VsZi5fcG9y
dC5yZXN1bHRzX2RpcmVjdG9yeSgpLCBzZWxmLl9sb2dfZGlyZWN0b3J5KCkpCiAKICAgICBkZWYg
X2ZhaWxpbmdfdGVzdHNfbWVzc2FnZShzZWxmLCB0YXNrLCBwYXRjaCk6CiAgICAgICAgIHJlc3Vs
dHMgPSB0YXNrLnJlc3VsdHNfZnJvbV9wYXRjaF90ZXN0X3J1bihwYXRjaCkKQEAgLTkzLDYgKzEw
MSw5IEBAIGNsYXNzIEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtKEFic3RyYWN0UmV2aWV3UXVl
dWUsIEVhcmx5V2FybmluZ1N5c3RlbVRhc2tEZWxlCiAgICAgICAgIGV4Y2VwdCBVbmFibGVUb0Fw
cGx5UGF0Y2gsIGU6CiAgICAgICAgICAgICBzZWxmLl9kaWRfZXJyb3IocGF0Y2gsICIlcyB1bmFi
bGUgdG8gYXBwbHkgcGF0Y2guIiAlIHNlbGYubmFtZSkKICAgICAgICAgICAgIHJldHVybiBGYWxz
ZQorICAgICAgICBleGNlcHQgUGF0Y2hJc05vdEFwcGxpY2FibGUsIGU6CisgICAgICAgICAgICBz
ZWxmLl9kaWRfZXJyb3IocGF0Y2gsICIlcyBwYXRjaCBub3QgYXBwbGljYWJsZS4iICUgc2VsZi5u
YW1lKQorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCiAgICAgICAgIGV4Y2VwdCBTY3JpcHRFcnJv
ciwgZToKICAgICAgICAgICAgIHNlbGYuX3Bvc3RfcmVqZWN0X21lc3NhZ2Vfb25fYnVnKHNlbGYu
X3Rvb2wsIHBhdGNoLCB0YXNrLmZhaWx1cmVfc3RhdHVzX2lkLCBzZWxmLl9mYWlsaW5nX3Rlc3Rz
X21lc3NhZ2UodGFzaywgcGF0Y2gpKQogICAgICAgICAgICAgcmVzdWx0c19hcmNoaXZlID0gdGFz
ay5yZXN1bHRzX2FyY2hpdmVfZnJvbV9wYXRjaF90ZXN0X3J1bihwYXRjaCkKQEAgLTExNywxNCAr
MTI4LDE3IEBAIGNsYXNzIEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtKEFic3RyYWN0UmV2aWV3
UXVldWUsIEVhcmx5V2FybmluZ1N5c3RlbVRhc2tEZWxlCiAgICAgICAgIHJldHVybiBzZWxmLl91
cGRhdGVfc3RhdHVzKG1lc3NhZ2UsIHBhdGNoPXBhdGNoLCByZXN1bHRzX2ZpbGU9ZmFpbHVyZV9s
b2cpCiAKICAgICBkZWYgdGVzdF9yZXN1bHRzKHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi5f
bGF5b3V0X3Rlc3RfcmVzdWx0c19yZWFkZXIucmVzdWx0cygpCisgICAgICAgIHJldHVybiBzZWxm
Ll90ZXN0X3Jlc3VsdHNfcmVhZGVyLnJlc3VsdHMoKQogCiAgICAgZGVmIGFyY2hpdmVfbGFzdF90
ZXN0X3Jlc3VsdHMoc2VsZiwgcGF0Y2gpOgotICAgICAgICByZXR1cm4gc2VsZi5fbGF5b3V0X3Rl
c3RfcmVzdWx0c19yZWFkZXIuYXJjaGl2ZShwYXRjaCkKKyAgICAgICAgcmV0dXJuIHNlbGYuX3Rl
c3RfcmVzdWx0c19yZWFkZXIuYXJjaGl2ZShwYXRjaCkKIAogICAgIGRlZiBidWlsZF9zdHlsZShz
ZWxmKToKICAgICAgICAgcmV0dXJuIHNlbGYuX2J1aWxkX3N0eWxlCiAKKyAgICBkZWYgZ3JvdXAo
c2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl9ncm91cAorCiAgICAgZGVmIHJlZmV0Y2hfcGF0
Y2goc2VsZiwgcGF0Y2gpOgogICAgICAgICByZXR1cm4gc2VsZi5fdG9vbC5idWdzLmZldGNoX2F0
dGFjaG1lbnQocGF0Y2guaWQoKSkKIApAQCAtMTU2LDUgKzE3MCw2IEBAIGNsYXNzIEFic3RyYWN0
RWFybHlXYXJuaW5nU3lzdGVtKEFic3RyYWN0UmV2aWV3UXVldWUsIEVhcmx5V2FybmluZ1N5c3Rl
bVRhc2tEZWxlCiAgICAgICAgICAgICAgICAgJ19idWlsZF9zdHlsZSc6IGNvbmZpZy5nZXQoJ3N0
eWxlJywgInJlbGVhc2UiKSwKICAgICAgICAgICAgICAgICAnd2F0Y2hlcnMnOiBjb25maWcuZ2V0
KCd3YXRjaGVycycsIFtdKSwKICAgICAgICAgICAgICAgICAncnVuX3Rlc3RzJzogY29uZmlnLmdl
dCgncnVuVGVzdHMnLCBjbHMucnVuX3Rlc3RzKSwKKyAgICAgICAgICAgICAgICAnX2dyb3VwJzog
Y29uZmlnLmdldCgnZ3JvdXAnLCBOb25lKSwKICAgICAgICAgICAgIH0pKQogICAgICAgICByZXR1
cm4gY2xhc3NlcwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1h
bmRzL2Vhcmx5d2FybmluZ3N5c3RlbV91bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvdG9vbC9jb21tYW5kcy9lYXJseXdhcm5pbmdzeXN0ZW1fdW5pdHRlc3QucHkKaW5kZXggMDg4
ODc4MTNjZTJlOTNhOGVjOWRhMzc2MzZlY2JkZTllZmYzYzllNy4uZTM2NTQzZjAzYWE4MmYxNWMy
MGJiODI3YWE1YmI1OTA3ZjBiMDk4MiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS90b29sL2NvbW1hbmRzL2Vhcmx5d2FybmluZ3N5c3RlbV91bml0dGVzdC5weQorKysgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZWFybHl3YXJuaW5nc3lzdGVtX3VuaXR0
ZXN0LnB5CkBAIC0xLDQgKzEsNSBAQAogIyBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTQ3
LDYgKzQ4LDcgQEAgY2xhc3MgQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW1UZXN0KFF1ZXVlc1Rl
c3QpOgogICAgICAgICBjbGFzcyBUZXN0RVdTKEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtKToK
ICAgICAgICAgICAgIHBvcnRfbmFtZSA9ICJ3aW4iICAjIE5lZWRzIHRvIGJlIGEgcG9ydCB3aGlj
aCBwb3J0L2ZhY3RvcnkgdW5kZXJzdGFuZHMuCiAgICAgICAgICAgICBfYnVpbGRfc3R5bGUgPSBO
b25lCisgICAgICAgICAgICBfZ3JvdXAgPSBOb25lCiAKICAgICAgICAgZXdzID0gVGVzdEVXUygp
CiAgICAgICAgIGV3cy5iaW5kX3RvX3Rvb2woTW9ja1Rvb2woKSkKQEAgLTY4LDkgKzcwLDEwIEBA
IGNsYXNzIEVhcmx5V2FybmluZ1N5c3RlbVRlc3QoUXVldWVzVGVzdCk6CiAgICAgICAgICAgICAi
cG9ydCI6IGV3cy5wb3J0X25hbWUsCiAgICAgICAgICAgICAiYXJjaGl0ZWN0dXJlIjogIiAtLWFy
Y2hpdGVjdHVyZT0lcyIgJSBld3MuYXJjaGl0ZWN0dXJlIGlmIGV3cy5hcmNoaXRlY3R1cmUgZWxz
ZSAiIiwKICAgICAgICAgICAgICJidWlsZF9zdHlsZSI6IGV3cy5idWlsZF9zdHlsZSgpLAorICAg
ICAgICAgICAgImdyb3VwIjogZXdzLmdyb3VwKCksCiAgICAgICAgIH0KICAgICAgICAgaWYgZXdz
LnJ1bl90ZXN0czoKLSAgICAgICAgICAgIHJ1bl90ZXN0c19saW5lID0gIlJ1bm5pbmc6IHdlYmtp
dC1wYXRjaCAtLXN0YXR1cy1ob3N0PWV4YW1wbGUuY29tIGJ1aWxkLWFuZC10ZXN0IC0tbm8tY2xl
YW4gLS1uby11cGRhdGUgLS10ZXN0IC0tbm9uLWludGVyYWN0aXZlIC0tYnVpbGQtc3R5bGU9JShi
dWlsZF9zdHlsZSlzIC0tcG9ydD0lKHBvcnQpcyUoYXJjaGl0ZWN0dXJlKXNcbiIgJSBzdHJpbmdf
cmVwbGFjZW1lbnRzCisgICAgICAgICAgICBydW5fdGVzdHNfbGluZSA9ICJSdW5uaW5nOiB3ZWJr
aXQtcGF0Y2ggLS1zdGF0dXMtaG9zdD1leGFtcGxlLmNvbSBidWlsZC1hbmQtdGVzdCAtLW5vLWNs
ZWFuIC0tbm8tdXBkYXRlIC0tdGVzdCAtLW5vbi1pbnRlcmFjdGl2ZSAtLWJ1aWxkLXN0eWxlPSUo
YnVpbGRfc3R5bGUpcyAtLWdyb3VwPSUoZ3JvdXApcyAtLXBvcnQ9JShwb3J0KXMlKGFyY2hpdGVj
dHVyZSlzXG4iICUgc3RyaW5nX3JlcGxhY2VtZW50cwogICAgICAgICBlbHNlOgogICAgICAgICAg
ICAgcnVuX3Rlc3RzX2xpbmUgPSAiIgogICAgICAgICBzdHJpbmdfcmVwbGFjZW1lbnRzWydydW5f
dGVzdHNfbGluZSddID0gcnVuX3Rlc3RzX2xpbmUKQEAgLTgxLDcgKzg0LDggQEAgY2xhc3MgRWFy
bHlXYXJuaW5nU3lzdGVtVGVzdChRdWV1ZXNUZXN0KToKIFJ1bm5pbmc6IHdlYmtpdC1wYXRjaCAt
LXN0YXR1cy1ob3N0PWV4YW1wbGUuY29tIGNsZWFuIC0tcG9ydD0lKHBvcnQpcyUoYXJjaGl0ZWN0
dXJlKXMKIFJ1bm5pbmc6IHdlYmtpdC1wYXRjaCAtLXN0YXR1cy1ob3N0PWV4YW1wbGUuY29tIHVw
ZGF0ZSAtLXBvcnQ9JShwb3J0KXMlKGFyY2hpdGVjdHVyZSlzCiBSdW5uaW5nOiB3ZWJraXQtcGF0
Y2ggLS1zdGF0dXMtaG9zdD1leGFtcGxlLmNvbSBhcHBseS1hdHRhY2htZW50IC0tbm8tdXBkYXRl
IC0tbm9uLWludGVyYWN0aXZlIDEwMDAwIC0tcG9ydD0lKHBvcnQpcyUoYXJjaGl0ZWN0dXJlKXMK
LVJ1bm5pbmc6IHdlYmtpdC1wYXRjaCAtLXN0YXR1cy1ob3N0PWV4YW1wbGUuY29tIGJ1aWxkIC0t
bm8tY2xlYW4gLS1uby11cGRhdGUgLS1idWlsZC1zdHlsZT0lKGJ1aWxkX3N0eWxlKXMgLS1wb3J0
PSUocG9ydClzJShhcmNoaXRlY3R1cmUpcworUnVubmluZzogd2Via2l0LXBhdGNoIC0tc3RhdHVz
LWhvc3Q9ZXhhbXBsZS5jb20gY2hlY2stcGF0Y2gtcmVsZXZhbmNlIC0tZ3JvdXA9JShncm91cClz
IC0tcG9ydD0lKHBvcnQpcyUoYXJjaGl0ZWN0dXJlKXMKK1J1bm5pbmc6IHdlYmtpdC1wYXRjaCAt
LXN0YXR1cy1ob3N0PWV4YW1wbGUuY29tIGJ1aWxkIC0tbm8tY2xlYW4gLS1uby11cGRhdGUgLS1i
dWlsZC1zdHlsZT0lKGJ1aWxkX3N0eWxlKXMgLS1ncm91cD0lKGdyb3VwKXMgLS1wb3J0PSUocG9y
dClzJShhcmNoaXRlY3R1cmUpcwogJShydW5fdGVzdHNfbGluZSlzTU9DSzogdXBkYXRlX3N0YXR1
czogJShuYW1lKXMgUGFzcwogTU9DSzogcmVsZWFzZV93b3JrX2l0ZW06ICUobmFtZSlzIDEwMDAw
CiAiIiIgJSBzdHJpbmdfcmVwbGFjZW1lbnRzLApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS90b29sL3N0ZXBzL19faW5pdF9fLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90
b29sL3N0ZXBzL19faW5pdF9fLnB5CmluZGV4IDM1NmFjYWIwM2FkODI3NGNlOWJkYTY4NTg4NjRm
ZjE5YjY0ZjRhMGEuLjZjOWMwOWFjNTJhMzg2YjlmMGNmMzYzYjljMDNiYmFhNGMwMDM4NjEgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9fX2luaXRfXy5weQor
KysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvX19pbml0X18ucHkKQEAgLTEs
NCArMSw1IEBACiAjIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtMzMsNiArMzQsNyBAQCBm
cm9tIHdlYmtpdHB5LnRvb2wuc3RlcHMuYXBwbHlwYXRjaHdpdGhsb2NhbGNvbW1pdCBpbXBvcnQg
QXBwbHlQYXRjaFdpdGhMb2NhbENvbQogZnJvbSB3ZWJraXRweS50b29sLnN0ZXBzLmFwcGx5d2F0
Y2hsaXN0IGltcG9ydCBBcHBseVdhdGNoTGlzdAogZnJvbSB3ZWJraXRweS50b29sLnN0ZXBzLmF0
dGFjaHRvYnVnIGltcG9ydCBBdHRhY2hUb0J1ZwogZnJvbSB3ZWJraXRweS50b29sLnN0ZXBzLmJ1
aWxkIGltcG9ydCBCdWlsZAorZnJvbSB3ZWJraXRweS50b29sLnN0ZXBzLmNoZWNrcGF0Y2hyZWxl
dmFuY2UgaW1wb3J0IENoZWNrUGF0Y2hSZWxldmFuY2UKIGZyb20gd2Via2l0cHkudG9vbC5zdGVw
cy5jaGVja3N0eWxlIGltcG9ydCBDaGVja1N0eWxlCiBmcm9tIHdlYmtpdHB5LnRvb2wuc3RlcHMu
Y2xlYW53b3JraW5nZGlyZWN0b3J5IGltcG9ydCBDbGVhbldvcmtpbmdEaXJlY3RvcnkKIGZyb20g
d2Via2l0cHkudG9vbC5zdGVwcy5jbG9zZWJ1ZyBpbXBvcnQgQ2xvc2VCdWcKZGlmZiAtLWdpdCBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9idWlsZC5weSBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvdG9vbC9zdGVwcy9idWlsZC5weQppbmRleCBmNzRmZmNlNzA5NDFjNjFlNTk2
NzkyZTRjNjBkY2Q3ZjhiNjVlOWVjLi4zYzZjZjBiMWRlMDE4YzEzMmI3Zjg2ZGEyY2I5MDdlMmZk
YTA2N2FlIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvYnVp
bGQucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL2J1aWxkLnB5CkBA
IC0xLDQgKzEsNSBAQAogIyBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTQxLDI4ICs0Miwz
NyBAQCBjbGFzcyBCdWlsZChBYnN0cmFjdFN0ZXApOgogICAgICAgICAgICAgT3B0aW9ucy5idWls
ZCwKICAgICAgICAgICAgIE9wdGlvbnMucXVpZXQsCiAgICAgICAgICAgICBPcHRpb25zLmJ1aWxk
X3N0eWxlLAorICAgICAgICAgICAgT3B0aW9ucy5ncm91cCwKICAgICAgICAgXQogCi0gICAgZGVm
IGJ1aWxkKHNlbGYsIGJ1aWxkX3N0eWxlKToKKyAgICBkZWYgYnVpbGQoc2VsZiwgYnVpbGRfc3R5
bGUsIGdyb3VwKToKICAgICAgICAgZW52aXJvbm1lbnQgPSBzZWxmLl90b29sLmNvcHlfY3VycmVu
dF9lbnZpcm9ubWVudCgpCiAgICAgICAgIGVudmlyb25tZW50LmRpc2FibGVfZ2NjX3NtYXJ0cXVv
dGVzKCkKICAgICAgICAgZW52aXJvbm1lbnQuZGlzYWJsZV9qaGJ1aWxkX1ZUMTAwX291dHB1dCgp
CiAgICAgICAgIGVudiA9IGVudmlyb25tZW50LnRvX2RpY3Rpb25hcnkoKQogCi0gICAgICAgIGJ1
aWxkX3dlYmtpdF9jb21tYW5kID0gc2VsZi5fdG9vbC5kZXByZWNhdGVkX3BvcnQoKS5idWlsZF93
ZWJraXRfY29tbWFuZChidWlsZF9zdHlsZT1idWlsZF9zdHlsZSkKKyAgICAgICAgaWYgZ3JvdXAg
PT0gImpzYyI6CisgICAgICAgICAgICBidWlsZF9jb21tYW5kID0gc2VsZi5fdG9vbC5kZXByZWNh
dGVkX3BvcnQoKS5idWlsZF9qc2NfY29tbWFuZChidWlsZF9zdHlsZT1idWlsZF9zdHlsZSkKKyAg
ICAgICAgZWxzZToKKyAgICAgICAgICAgIGJ1aWxkX2NvbW1hbmQgPSBzZWxmLl90b29sLmRlcHJl
Y2F0ZWRfcG9ydCgpLmJ1aWxkX3dlYmtpdF9jb21tYW5kKGJ1aWxkX3N0eWxlPWJ1aWxkX3N0eWxl
KQogCiAgICAgICAgIGlmIHNlbGYuX29wdGlvbnMuYXJjaGl0ZWN0dXJlOgotICAgICAgICAgICAg
YnVpbGRfd2Via2l0X2NvbW1hbmQgKz0gWydBUkNIUz0lcycgJSBzZWxmLl9vcHRpb25zLmFyY2hp
dGVjdHVyZV0KKyAgICAgICAgICAgIGJ1aWxkX2NvbW1hbmQgKz0gWydBUkNIUz0lcycgJSBzZWxm
Ll9vcHRpb25zLmFyY2hpdGVjdHVyZV0KIAotICAgICAgICBzZWxmLl90b29sLmV4ZWN1dGl2ZS5y
dW5fYW5kX3Rocm93X2lmX2ZhaWwoYnVpbGRfd2Via2l0X2NvbW1hbmQsIHNlbGYuX29wdGlvbnMu
cXVpZXQsCisgICAgICAgIHNlbGYuX3Rvb2wuZXhlY3V0aXZlLnJ1bl9hbmRfdGhyb3dfaWZfZmFp
bChidWlsZF9jb21tYW5kLCBzZWxmLl9vcHRpb25zLnF1aWV0LAogICAgICAgICAgICAgY3dkPXNl
bGYuX3Rvb2wuc2NtKCkuY2hlY2tvdXRfcm9vdCwgZW52PWVudikKIAogICAgIGRlZiBydW4oc2Vs
Ziwgc3RhdGUpOgogICAgICAgICBpZiBub3Qgc2VsZi5fb3B0aW9ucy5idWlsZDoKICAgICAgICAg
ICAgIHJldHVybgogICAgICAgICBfbG9nLmluZm8oIkJ1aWxkaW5nIFdlYktpdCIpCisKKyAgICAg
ICAgZ3JvdXAgPSBOb25lCisgICAgICAgIGlmIGhhc2F0dHIoc2VsZi5fb3B0aW9ucywgJ2dyb3Vw
Jyk6CisgICAgICAgICAgICBncm91cCA9IHNlbGYuX29wdGlvbnMuZ3JvdXAKKwogICAgICAgICBp
ZiBzZWxmLl9vcHRpb25zLmJ1aWxkX3N0eWxlID09ICJib3RoIjoKLSAgICAgICAgICAgIHNlbGYu
YnVpbGQoImRlYnVnIikKLSAgICAgICAgICAgIHNlbGYuYnVpbGQoInJlbGVhc2UiKQorICAgICAg
ICAgICAgc2VsZi5idWlsZCgiZGVidWciLCBncm91cCkKKyAgICAgICAgICAgIHNlbGYuYnVpbGQo
InJlbGVhc2UiLCBncm91cCkKICAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHNlbGYuYnVpbGQo
c2VsZi5fb3B0aW9ucy5idWlsZF9zdHlsZSkKKyAgICAgICAgICAgIHNlbGYuYnVpbGQoc2VsZi5f
b3B0aW9ucy5idWlsZF9zdHlsZSwgZ3JvdXApCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L3Rvb2wvc3RlcHMvY2hlY2twYXRjaHJlbGV2YW5jZS5weSBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvdG9vbC9zdGVwcy9jaGVja3BhdGNocmVsZXZhbmNlLnB5Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ5
YjhmMDkzZmUyNDY4ZjJiOWUzN2I1MmMxNzk0ZDgyNzNhNDAyZmEKLS0tIC9kZXYvbnVsbAorKysg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvY2hlY2twYXRjaHJlbGV2YW5jZS5w
eQpAQCAtMCwwICsxLDc1IEBACisjIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoK
KyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyMgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorIyBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMCisjIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisjIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisjIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksCisjIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisKK2ltcG9ydCBsb2dnaW5nCitpbXBvcnQgcmUKKworZnJvbSB3ZWJraXRweS5jb21tb24uc3lz
dGVtLmV4ZWN1dGl2ZSBpbXBvcnQgU2NyaXB0RXJyb3IKK2Zyb20gd2Via2l0cHkudG9vbC5zdGVw
cy5hYnN0cmFjdHN0ZXAgaW1wb3J0IEFic3RyYWN0U3RlcAorZnJvbSB3ZWJraXRweS50b29sLnN0
ZXBzLm9wdGlvbnMgaW1wb3J0IE9wdGlvbnMKKworX2xvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9f
bmFtZV9fKQorCisKK2NsYXNzIENoZWNrUGF0Y2hSZWxldmFuY2UoQWJzdHJhY3RTdGVwKToKKyAg
ICBAY2xhc3NtZXRob2QKKyAgICBkZWYgb3B0aW9ucyhjbHMpOgorICAgICAgICByZXR1cm4gQWJz
dHJhY3RTdGVwLm9wdGlvbnMoKSArIFsKKyAgICAgICAgICAgIE9wdGlvbnMuZ3JvdXAsCisgICAg
ICAgIF0KKworICAgIGpzY19wYXRocyA9IFsKKyAgICAgICAgIkpTVGVzdHMvIiwKKyAgICAgICAg
IlNvdXJjZS9KYXZhU2NyaXB0Q29yZS8iLAorICAgICAgICAiU291cmNlL1dURi8iCisgICAgICAg
ICJTb3VyY2UvYm1hbGxvYy8iLAorICAgICAgICAiU291cmNlL1RoaXJkUGFydHkvQU5HTEUvIiwK
KyAgICBdCisKKyAgICBkZWYgX2RvZXNfY29udGFpbl9jaGFuZ2VfaW5fcGF0aHMoc2VsZiwgZmls
ZXMsIHBhdHRlcm5zKToKKyAgICAgICAgZm9yIGl0ZW0gaW4gZmlsZXM6CisgICAgICAgICAgICBm
b3IgcGF0dGVybiBpbiBwYXR0ZXJuczoKKyAgICAgICAgICAgICAgICBpZiByZS5zZWFyY2gocGF0
dGVybiwgaXRlbSwgcmUuSUdOT1JFQ0FTRSk6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBU
cnVlCisKKyAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICBkZWYgcnVuKHNlbGYsIHN0YXRlKToK
KyAgICAgICAgX2xvZy5pbmZvKCJDaGVja2luZyByZWxldmFuY2Ugb2YgcGF0Y2giKQorCisgICAg
ICAgIGdyb3VwID0gTm9uZQorICAgICAgICBpZiBoYXNhdHRyKHNlbGYuX29wdGlvbnMsICdncm91
cCcpOgorICAgICAgICAgICAgZ3JvdXAgPSBzZWxmLl9vcHRpb25zLmdyb3VwCisKKyAgICAgICAg
Y2hhbmdlX2xpc3QgPSBzZWxmLl90b29sLnNjbSgpLmNoYW5nZWRfZmlsZXMoKQorCisgICAgICAg
IGlmIGdyb3VwID09ICJqc2MiOgorICAgICAgICAgICAgcmVsZXZhbnQgPSBzZWxmLl9kb2VzX2Nv
bnRhaW5fY2hhbmdlX2luX3BhdGhzKGNoYW5nZV9saXN0LCBzZWxmLmpzY19wYXRocykKKyAgICAg
ICAgZWxzZToKKyAgICAgICAgICAgIHJlbGV2YW50ID0gVHJ1ZQorCisgICAgICAgIGlmIHJlbGV2
YW50IGlzIFRydWU6CisgICAgICAgICAgICBfbG9nLmluZm8oIlRoaXMgcGF0Y2ggaGFzIHJlbGV2
YW50IGNoYW5nZXMuIikKKyAgICAgICAgICAgIHJldHVybiBUcnVlCisgICAgICAgIGVsc2U6Cisg
ICAgICAgICAgICBfbG9nLmluZm8oIlRoaXMgcGF0Y2ggZG9lcyBub3QgaGF2ZSByZWxldmFudCBj
aGFuZ2VzLiIpCisgICAgICAgICAgICByYWlzZSBTY3JpcHRFcnJvcihtZXNzYWdlPSJUaGlzIHBh
dGNoIGRvZXMgbm90IGhhdmUgcmVsZXZhbnQgY2hhbmdlcy4iKQpkaWZmIC0tZ2l0IGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL29wdGlvbnMucHkgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L3Rvb2wvc3RlcHMvb3B0aW9ucy5weQppbmRleCAzZWY0N2QwMDhhNTllMDUwZDRjYTBj
NDg3N2RkZDFhNjA3MzFhNDA5Li5mNWUwZGVmMzI3MTdlMzA2ZTYzMTY5ODQxMTEwYjI4OThiNzJh
MWYxIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvb3B0aW9u
cy5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvb3B0aW9ucy5weQpA
QCAtMSw0ICsxLDUgQEAKICMgQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC00Niw2ICs0Nyw3
IEBAIGNsYXNzIE9wdGlvbnMob2JqZWN0KToKICAgICBlbWFpbCA9IG1ha2Vfb3B0aW9uKCItLWVt
YWlsIiwgYWN0aW9uPSJzdG9yZSIsIHR5cGU9InN0cmluZyIsIGRlc3Q9ImVtYWlsIiwgaGVscD0i
RW1haWwgYWRkcmVzcyB0byB1c2UgaW4gQ2hhbmdlTG9ncy4iKQogICAgIGZvcmNlX2NsZWFuID0g
bWFrZV9vcHRpb24oIi0tZm9yY2UtY2xlYW4iLCBhY3Rpb249InN0b3JlX3RydWUiLCBkZXN0PSJm
b3JjZV9jbGVhbiIsIGRlZmF1bHQ9RmFsc2UsIGhlbHA9IkNsZWFuIHdvcmtpbmcgZGlyZWN0b3J5
IGJlZm9yZSBhcHBseWluZyBwYXRjaGVzIChyZW1vdmVzIGxvY2FsIGNoYW5nZXMgYW5kIGNvbW1p
dHMpIikKICAgICBnaXRfY29tbWl0ID0gbWFrZV9vcHRpb24oIi1nIiwgIi0tZ2l0LWNvbW1pdCIs
IGFjdGlvbj0ic3RvcmUiLCBkZXN0PSJnaXRfY29tbWl0IiwgaGVscD0iT3BlcmF0ZSBvbiBhIGxv
Y2FsIGNvbW1pdC4gSWYgYSByYW5nZSwgdGhlIGNvbW1pdHMgYXJlIHNxdWFzaGVkIGludG8gb25l
LiA8cmVmPi4uLi4gaW5jbHVkZXMgdGhlIHdvcmtpbmcgY29weSBjaGFuZ2VzLiBVUFNUUkVBTSBj
YW4gYmUgdXNlZCBmb3IgdGhlIHVwc3RyZWFtL3RyYWNraW5nIGJyYW5jaC4iKQorICAgIGdyb3Vw
ID0gbWFrZV9vcHRpb24oIi0tZ3JvdXAiLCBhY3Rpb249InN0b3JlIiwgZGVzdD0iZ3JvdXAiLCBk
ZWZhdWx0PU5vbmUsIGhlbHA9IiIpCiAgICAgbG9jYWxfY29tbWl0ID0gbWFrZV9vcHRpb24oIi0t
bG9jYWwtY29tbWl0IiwgYWN0aW9uPSJzdG9yZV90cnVlIiwgZGVzdD0ibG9jYWxfY29tbWl0Iiwg
ZGVmYXVsdD1GYWxzZSwgaGVscD0iTWFrZSBhIGxvY2FsIGNvbW1pdCBmb3IgZWFjaCBhcHBsaWVk
IHBhdGNoIikKICAgICBub25faW50ZXJhY3RpdmUgPSBtYWtlX29wdGlvbigiLS1ub24taW50ZXJh
Y3RpdmUiLCBhY3Rpb249InN0b3JlX3RydWUiLCBkZXN0PSJub25faW50ZXJhY3RpdmUiLCBkZWZh
dWx0PUZhbHNlLCBoZWxwPSJOZXZlciBwcm9tcHQgdGhlIHVzZXIsIGZhaWwgYXMgZmFzdCBhcyBw
b3NzaWJsZS4iKQogICAgIG9ic29sZXRlX3BhdGNoZXMgPSBtYWtlX29wdGlvbigiLS1uby1vYnNv
bGV0ZSIsIGFjdGlvbj0ic3RvcmVfZmFsc2UiLCBkZXN0PSJvYnNvbGV0ZV9wYXRjaGVzIiwgZGVm
YXVsdD1UcnVlLCBoZWxwPSJEbyBub3Qgb2Jzb2xldGUgb2xkIHBhdGNoZXMgYmVmb3JlIHBvc3Rp
bmcgdGhpcyBvbmUuIikKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9z
dGVwcy9ydW50ZXN0cy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9ydW50
ZXN0cy5weQppbmRleCA3NWQ3MmJjOWFkMmY0ZTM2ZDQ1ZmRhYzkwZjE4MTk0ODFjZjAyODhiLi41
YTdmMmE5OGEzZmJiMjRlY2IwM2Y2MWM2YjYwZjY1MDQyZDk3MWE0IDEwMDY0NAotLS0gYS9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvcnVudGVzdHMucHkKKysrIGIvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3J1bnRlc3RzLnB5CkBAIC0xLDQgKzEsNSBAQAogIyBD
b3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29w
eXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTUzLDYgKzU0LDcgQEAgY2xhc3MgUnVuVGVzdHMo
QWJzdHJhY3RTdGVwKToKICAgICAgICAgICAgIE9wdGlvbnMuaXRlcmF0ZV9vbl9uZXdfdGVzdHMs
CiAgICAgICAgICAgICBPcHRpb25zLm5vbl9pbnRlcmFjdGl2ZSwKICAgICAgICAgICAgIE9wdGlv
bnMucXVpZXQsCisgICAgICAgICAgICBPcHRpb25zLmdyb3VwLAogICAgICAgICBdCiAKICAgICBk
ZWYgcnVuKHNlbGYsIHN0YXRlKToKQEAgLTYzLDYgKzY1LDEwIEBAIGNsYXNzIFJ1blRlc3RzKEFi
c3RyYWN0U3RlcCk6CiAgICAgICAgIGlmIG5vdCBzZWxmLl9vcHRpb25zLnRlc3Q6CiAgICAgICAg
ICAgICByZXR1cm4KIAorICAgICAgICBpZiBoYXNhdHRyKHNlbGYuX29wdGlvbnMsICJncm91cCIp
IGFuZCBzZWxmLl9vcHRpb25zLmdyb3VwID09ICJqc2MiOgorICAgICAgICAgICAgc2VsZi5fcnVu
X2phdmFzY3JpcHRjb3JlX3Rlc3RzKCkKKyAgICAgICAgICAgIHJldHVybgorCiAgICAgICAgIHB5
dGhvbl91bml0dGVzdHNfY29tbWFuZCA9IHNlbGYuX3Rvb2wuZGVwcmVjYXRlZF9wb3J0KCkucnVu
X3B5dGhvbl91bml0dGVzdHNfY29tbWFuZCgpCiAgICAgICAgIGlmIHB5dGhvbl91bml0dGVzdHNf
Y29tbWFuZDoKICAgICAgICAgICAgIF9sb2cuaW5mbygiUnVubmluZyBQeXRob24gdW5pdCB0ZXN0
cyIpCkBAIC0xNDMsMyArMTQ5LDcgQEAgY2xhc3MgUnVuVGVzdHMoQWJzdHJhY3RTdGVwKToKICAg
ICAgICAgICAgIGFyZ3MuYXBwZW5kKCItLWl0ZXJhdGlvbnM9JWQiICUgaXRlcmF0ZV9vbl9uZXdf
dGVzdHMpCiAKICAgICAgICAgc2VsZi5fdG9vbC5leGVjdXRpdmUucnVuX2FuZF90aHJvd19pZl9m
YWlsKGFyZ3MsIGN3ZD1zZWxmLl90b29sLnNjbSgpLmNoZWNrb3V0X3Jvb3QpCisKKyAgICBkZWYg
X3J1bl9qYXZhc2NyaXB0Y29yZV90ZXN0cyhzZWxmKToKKyAgICAgICAgYXJncyA9IHNlbGYuX3Rv
b2wuZGVwcmVjYXRlZF9wb3J0KCkucnVuX2phdmFzY3JpcHRjb3JlX3Rlc3RzX2NvbW1hbmQoc2Vs
Zi5fb3B0aW9ucy5idWlsZF9zdHlsZSkKKyAgICAgICAgc2VsZi5fdG9vbC5leGVjdXRpdmUucnVu
X2FuZF90aHJvd19pZl9mYWlsKGFyZ3MsIGN3ZD1zZWxmLl90b29sLnNjbSgpLmNoZWNrb3V0X3Jv
b3QpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvc3RlcHNf
dW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvc3RlcHNfdW5p
dHRlc3QucHkKaW5kZXggN2Q5NGExM2IzNDYzZDk4YTQ0Zjk0OWY4MTRjYzcxMjFjMDY4YWI1ZC4u
YzMzMDBjODU5NDRjZGUyMWFkOWQwYjNlNTZkZWQ4ODAxM2ViNmFkZSAxMDA2NDQKLS0tIGEvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3N0ZXBzX3VuaXR0ZXN0LnB5CisrKyBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9zdGVwc191bml0dGVzdC5weQpAQCAtMSw0
ICsxLDUgQEAKICMgQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC0yOCw2ICsyOSw3IEBACiAK
IGltcG9ydCB1bml0dGVzdAogCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZl
IGltcG9ydCBTY3JpcHRFcnJvcgogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLm91dHB1dGNh
cHR1cmUgaW1wb3J0IE91dHB1dENhcHR1cmUKIGZyb20gd2Via2l0cHkuY29tbW9uLmNvbmZpZy5w
b3J0cyBpbXBvcnQgRGVwcmVjYXRlZFBvcnQKIGZyb20gd2Via2l0cHkudG9vbC5tb2NrdG9vbCBp
bXBvcnQgTW9ja09wdGlvbnMsIE1vY2tUb29sCkBAIC0xMTEsNyArMTEzLDcgQEAgTU9DSyBydW5f
YW5kX3Rocm93X2lmX2ZhaWw6IFsnVG9vbHMvU2NyaXB0cy90ZXN0LXdlYmtpdHB5J10sIGN3ZD0v
bW9jay1jaGVja291dAogUnVubmluZyBQZXJsIHVuaXQgdGVzdHMKIE1PQ0sgcnVuX2FuZF90aHJv
d19pZl9mYWlsOiBbJ1Rvb2xzL1NjcmlwdHMvdGVzdC13ZWJraXRwZXJsJ10sIGN3ZD0vbW9jay1j
aGVja291dAogUnVubmluZyBKYXZhU2NyaXB0Q29yZSB0ZXN0cwotTU9DSyBydW5fYW5kX3Rocm93
X2lmX2ZhaWw6IFsnVG9vbHMvU2NyaXB0cy9ydW4tamF2YXNjcmlwdGNvcmUtdGVzdHMnXSwgY3dk
PS9tb2NrLWNoZWNrb3V0CitNT0NLIHJ1bl9hbmRfdGhyb3dfaWZfZmFpbDogWydUb29scy9TY3Jp
cHRzL3J1bi1qYXZhc2NyaXB0Y29yZS10ZXN0cycsICctLW5vLWZhaWwtZmFzdCcsICctLWpzb24t
b3V0cHV0PWpzY190ZXN0X3Jlc3VsdHMuanNvbiddLCBjd2Q9L21vY2stY2hlY2tvdXQKIFJ1bm5p
bmcgYmluZGluZ3MgZ2VuZXJhdGlvbiB0ZXN0cwogTU9DSyBydW5fYW5kX3Rocm93X2lmX2ZhaWw6
IFsnVG9vbHMvU2NyaXB0cy9ydW4tYmluZGluZ3MtdGVzdHMnXSwgY3dkPS9tb2NrLWNoZWNrb3V0
CiBSdW5uaW5nIHJ1bi13ZWJraXQtdGVzdHMKQEAgLTEzMywxMCArMTM1LDExMSBAQCBNT0NLIHJ1
bl9hbmRfdGhyb3dfaWZfZmFpbDogWydUb29scy9TY3JpcHRzL3Rlc3Qtd2Via2l0cHknXSwgY3dk
PS9tb2NrLWNoZWNrb3V0CiBSdW5uaW5nIFBlcmwgdW5pdCB0ZXN0cwogTU9DSyBydW5fYW5kX3Ro
cm93X2lmX2ZhaWw6IFsnVG9vbHMvU2NyaXB0cy90ZXN0LXdlYmtpdHBlcmwnXSwgY3dkPS9tb2Nr
LWNoZWNrb3V0CiBSdW5uaW5nIEphdmFTY3JpcHRDb3JlIHRlc3RzCi1NT0NLIHJ1bl9hbmRfdGhy
b3dfaWZfZmFpbDogWydUb29scy9TY3JpcHRzL3J1bi1qYXZhc2NyaXB0Y29yZS10ZXN0cyddLCBj
d2Q9L21vY2stY2hlY2tvdXQKK01PQ0sgcnVuX2FuZF90aHJvd19pZl9mYWlsOiBbJ1Rvb2xzL1Nj
cmlwdHMvcnVuLWphdmFzY3JpcHRjb3JlLXRlc3RzJywgJy0tbm8tZmFpbC1mYXN0JywgJy0tanNv
bi1vdXRwdXQ9anNjX3Rlc3RfcmVzdWx0cy5qc29uJ10sIGN3ZD0vbW9jay1jaGVja291dAogUnVu
bmluZyBiaW5kaW5ncyBnZW5lcmF0aW9uIHRlc3RzCiBNT0NLIHJ1bl9hbmRfdGhyb3dfaWZfZmFp
bDogWydUb29scy9TY3JpcHRzL3J1bi1iaW5kaW5ncy10ZXN0cyddLCBjd2Q9L21vY2stY2hlY2tv
dXQKIFJ1bm5pbmcgcnVuLXdlYmtpdC10ZXN0cwogTU9DSyBydW5fYW5kX3Rocm93X2lmX2ZhaWw6
IFsnVG9vbHMvU2NyaXB0cy9ydW4td2Via2l0LXRlc3RzJywgJy0tZGVidWcnLCAnLS1xdWlldCdd
LCBjd2Q9L21vY2stY2hlY2tvdXQKICIiIgogICAgICAgICBPdXRwdXRDYXB0dXJlKCkuYXNzZXJ0
X291dHB1dHMoc2VsZiwgc3RlcC5ydW4sIFt7fV0sIGV4cGVjdGVkX2xvZ3M9ZXhwZWN0ZWRfbG9n
cykKKworICAgIGRlZiB0ZXN0X3J1bnRlc3RzX2pzYyhzZWxmKToKKyAgICAgICAgbW9ja19vcHRp
b25zID0gc2VsZi5fc3RlcF9vcHRpb25zKCkKKyAgICAgICAgbW9ja19vcHRpb25zLm5vbl9pbnRl
cmFjdGl2ZSA9IEZhbHNlCisgICAgICAgIG1vY2tfb3B0aW9ucy5idWlsZF9zdHlsZSA9ICJyZWxl
YXNlIgorICAgICAgICBtb2NrX29wdGlvbnMuZ3JvdXAgPSAianNjIgorICAgICAgICBzdGVwID0g
c3RlcHMuUnVuVGVzdHMoTW9ja1Rvb2wobG9nX2V4ZWN1dGl2ZT1UcnVlKSwgbW9ja19vcHRpb25z
KQorICAgICAgICB0b29sID0gTW9ja1Rvb2wobG9nX2V4ZWN1dGl2ZT1UcnVlKQorICAgICAgICAj
IEZJWE1FOiBXZSBzaG91bGRuJ3QgdXNlIGEgcmVhbCBwb3J0LW9iamVjdCBoZXJlLCBidXQgdGhl
cmUgaXMgdG9vIG11Y2ggdG8gbW9jayBhdCB0aGUgbW9tZW50LgorICAgICAgICB0b29sLl9kZXBy
ZWNhdGVkX3BvcnQgPSBEZXByZWNhdGVkUG9ydCgpCisgICAgICAgIHN0ZXAgPSBzdGVwcy5SdW5U
ZXN0cyh0b29sLCBtb2NrX29wdGlvbnMpCisgICAgICAgIGV4cGVjdGVkX2xvZ3MgPSAiIiJNT0NL
IHJ1bl9hbmRfdGhyb3dfaWZfZmFpbDogWydUb29scy9TY3JpcHRzL3J1bi1qYXZhc2NyaXB0Y29y
ZS10ZXN0cycsICctLW5vLWZhaWwtZmFzdCcsICctLWpzb24tb3V0cHV0PWpzY190ZXN0X3Jlc3Vs
dHMuanNvbiddLCBjd2Q9L21vY2stY2hlY2tvdXQKKyIiIgorICAgICAgICBPdXRwdXRDYXB0dXJl
KCkuYXNzZXJ0X291dHB1dHMoc2VsZiwgc3RlcC5ydW4sIFt7fV0sIGV4cGVjdGVkX2xvZ3M9ZXhw
ZWN0ZWRfbG9ncykKKworICAgIGRlZiB0ZXN0X3J1bnRlc3RzX2pzY19kZWJ1ZyhzZWxmKToKKyAg
ICAgICAgbW9ja19vcHRpb25zID0gc2VsZi5fc3RlcF9vcHRpb25zKCkKKyAgICAgICAgbW9ja19v
cHRpb25zLm5vbl9pbnRlcmFjdGl2ZSA9IEZhbHNlCisgICAgICAgIG1vY2tfb3B0aW9ucy5idWls
ZF9zdHlsZSA9ICJkZWJ1ZyIKKyAgICAgICAgbW9ja19vcHRpb25zLmdyb3VwID0gImpzYyIKKyAg
ICAgICAgdG9vbCA9IE1vY2tUb29sKGxvZ19leGVjdXRpdmU9VHJ1ZSkKKyAgICAgICAgIyBGSVhN
RTogV2Ugc2hvdWxkbid0IHVzZSBhIHJlYWwgcG9ydC1vYmplY3QgaGVyZSwgYnV0IHRoZXJlIGlz
IHRvbyBtdWNoIHRvIG1vY2sgYXQgdGhlIG1vbWVudC4KKyAgICAgICAgdG9vbC5fZGVwcmVjYXRl
ZF9wb3J0ID0gRGVwcmVjYXRlZFBvcnQoKQorICAgICAgICBzdGVwID0gc3RlcHMuUnVuVGVzdHMo
dG9vbCwgbW9ja19vcHRpb25zKQorICAgICAgICBleHBlY3RlZF9sb2dzID0gIiIiTU9DSyBydW5f
YW5kX3Rocm93X2lmX2ZhaWw6IFsnVG9vbHMvU2NyaXB0cy9ydW4tamF2YXNjcmlwdGNvcmUtdGVz
dHMnLCAnLS1uby1mYWlsLWZhc3QnLCAnLS1qc29uLW91dHB1dD1qc2NfdGVzdF9yZXN1bHRzLmpz
b24nLCAnLS1kZWJ1ZyddLCBjd2Q9L21vY2stY2hlY2tvdXQKKyIiIgorICAgICAgICBPdXRwdXRD
YXB0dXJlKCkuYXNzZXJ0X291dHB1dHMoc2VsZiwgc3RlcC5ydW4sIFt7fV0sIGV4cGVjdGVkX2xv
Z3M9ZXhwZWN0ZWRfbG9ncykKKworICAgIGRlZiB0ZXN0X2J1aWxkX2pzY19kZWJ1ZyhzZWxmKToK
KyAgICAgICAgbW9ja19vcHRpb25zID0gc2VsZi5fc3RlcF9vcHRpb25zKCkKKyAgICAgICAgbW9j
a19vcHRpb25zLm5vbl9pbnRlcmFjdGl2ZSA9IEZhbHNlCisgICAgICAgIG1vY2tfb3B0aW9ucy5i
dWlsZF9zdHlsZSA9ICJkZWJ1ZyIKKyAgICAgICAgbW9ja19vcHRpb25zLmJ1aWxkID0gVHJ1ZQor
ICAgICAgICBtb2NrX29wdGlvbnMuYXJjaGl0ZWN0dXJlID0gVHJ1ZQorICAgICAgICBtb2NrX29w
dGlvbnMuZ3JvdXAgPSAianNjIgorICAgICAgICB0b29sID0gTW9ja1Rvb2wobG9nX2V4ZWN1dGl2
ZT1UcnVlKQorICAgICAgICAjIEZJWE1FOiBXZSBzaG91bGRuJ3QgdXNlIGEgcmVhbCBwb3J0LW9i
amVjdCBoZXJlLCBidXQgdGhlcmUgaXMgdG9vIG11Y2ggdG8gbW9jayBhdCB0aGUgbW9tZW50Lgor
ICAgICAgICB0b29sLl9kZXByZWNhdGVkX3BvcnQgPSBEZXByZWNhdGVkUG9ydCgpCisgICAgICAg
IHN0ZXAgPSBzdGVwcy5CdWlsZCh0b29sLCBtb2NrX29wdGlvbnMpCisgICAgICAgIGV4cGVjdGVk
X2xvZ3MgPSAiIiJCdWlsZGluZyBXZWJLaXQKK01PQ0sgcnVuX2FuZF90aHJvd19pZl9mYWlsOiBb
J1Rvb2xzL1NjcmlwdHMvYnVpbGQtanNjJywgJy0tZGVidWcnLCAnQVJDSFM9VHJ1ZSddLCBjd2Q9
L21vY2stY2hlY2tvdXQsIGVudj17J0xDX0FMTCc6ICdDJywgJ1RFUk0nOiAnbm9uZScsICdNT0NL
X0VOVklST05fQ09QWSc6ICcxJ30KKyIiIgorICAgICAgICBPdXRwdXRDYXB0dXJlKCkuYXNzZXJ0
X291dHB1dHMoc2VsZiwgc3RlcC5ydW4sIFt7fV0sIGV4cGVjdGVkX2xvZ3M9ZXhwZWN0ZWRfbG9n
cykKKworICAgIGRlZiB0ZXN0X2J1aWxkX2pzYyhzZWxmKToKKyAgICAgICAgbW9ja19vcHRpb25z
ID0gc2VsZi5fc3RlcF9vcHRpb25zKCkKKyAgICAgICAgbW9ja19vcHRpb25zLm5vbl9pbnRlcmFj
dGl2ZSA9IEZhbHNlCisgICAgICAgIG1vY2tfb3B0aW9ucy5idWlsZF9zdHlsZSA9ICJyZWxlYXNl
IgorICAgICAgICBtb2NrX29wdGlvbnMuYnVpbGQgPSBUcnVlCisgICAgICAgIG1vY2tfb3B0aW9u
cy5hcmNoaXRlY3R1cmUgPSBUcnVlCisgICAgICAgIG1vY2tfb3B0aW9ucy5ncm91cCA9ICJqc2Mi
CisgICAgICAgIHRvb2wgPSBNb2NrVG9vbChsb2dfZXhlY3V0aXZlPVRydWUpCisgICAgICAgICMg
RklYTUU6IFdlIHNob3VsZG4ndCB1c2UgYSByZWFsIHBvcnQtb2JqZWN0IGhlcmUsIGJ1dCB0aGVy
ZSBpcyB0b28gbXVjaCB0byBtb2NrIGF0IHRoZSBtb21lbnQuCisgICAgICAgIHRvb2wuX2RlcHJl
Y2F0ZWRfcG9ydCA9IERlcHJlY2F0ZWRQb3J0KCkKKyAgICAgICAgc3RlcCA9IHN0ZXBzLkJ1aWxk
KHRvb2wsIG1vY2tfb3B0aW9ucykKKyAgICAgICAgZXhwZWN0ZWRfbG9ncyA9ICIiIkJ1aWxkaW5n
IFdlYktpdAorTU9DSyBydW5fYW5kX3Rocm93X2lmX2ZhaWw6IFsnVG9vbHMvU2NyaXB0cy9idWls
ZC1qc2MnLCAnLS1yZWxlYXNlJywgJ0FSQ0hTPVRydWUnXSwgY3dkPS9tb2NrLWNoZWNrb3V0LCBl
bnY9eydMQ19BTEwnOiAnQycsICdURVJNJzogJ25vbmUnLCAnTU9DS19FTlZJUk9OX0NPUFknOiAn
MSd9CisiIiIKKyAgICAgICAgT3V0cHV0Q2FwdHVyZSgpLmFzc2VydF9vdXRwdXRzKHNlbGYsIHN0
ZXAucnVuLCBbe31dLCBleHBlY3RlZF9sb2dzPWV4cGVjdGVkX2xvZ3MpCisKKyAgICBkZWYgdGVz
dF9wYXRjaF9yZWxldmFudChzZWxmKToKKyAgICAgICAgc2VsZi5tYXhEaWZmID0gTm9uZQorICAg
ICAgICBtb2NrX29wdGlvbnMgPSBzZWxmLl9zdGVwX29wdGlvbnMoKQorICAgICAgICB0b29sID0g
TW9ja1Rvb2wobG9nX2V4ZWN1dGl2ZT1UcnVlKQorICAgICAgICB0b29sLnNjbSgpLl9tb2NrQ2hh
bmdlZEZpbGVzID0gWyJKU1Rlc3RzL01vY2tGaWxlMSIsICJDaGFuZ2VMb2ciXQorICAgICAgICAj
IEZJWE1FOiBXZSBzaG91bGRuJ3QgdXNlIGEgcmVhbCBwb3J0LW9iamVjdCBoZXJlLCBidXQgdGhl
cmUgaXMgdG9vIG11Y2ggdG8gbW9jayBhdCB0aGUgbW9tZW50LgorICAgICAgICB0b29sLl9kZXBy
ZWNhdGVkX3BvcnQgPSBEZXByZWNhdGVkUG9ydCgpCisgICAgICAgIHN0ZXAgPSBzdGVwcy5DaGVj
a1BhdGNoUmVsZXZhbmNlKHRvb2wsIG1vY2tfb3B0aW9ucykKKyAgICAgICAgZXhwZWN0ZWRfbG9n
cyA9ICIiIkNoZWNraW5nIHJlbGV2YW5jZSBvZiBwYXRjaAorVGhpcyBwYXRjaCBoYXMgcmVsZXZh
bnQgY2hhbmdlcy4KKyIiIgorICAgICAgICBPdXRwdXRDYXB0dXJlKCkuYXNzZXJ0X291dHB1dHMo
c2VsZiwgc3RlcC5ydW4sIFt7fV0sIGV4cGVjdGVkX2xvZ3M9ZXhwZWN0ZWRfbG9ncykKKworICAg
IGRlZiB0ZXN0X3BhdGNoX3JlbGV2YW50X2pzYyhzZWxmKToKKyAgICAgICAgc2VsZi5tYXhEaWZm
ID0gTm9uZQorICAgICAgICBtb2NrX29wdGlvbnMgPSBzZWxmLl9zdGVwX29wdGlvbnMoKQorICAg
ICAgICBtb2NrX29wdGlvbnMuZ3JvdXAgPSAianNjIgorICAgICAgICB0b29sID0gTW9ja1Rvb2wo
bG9nX2V4ZWN1dGl2ZT1UcnVlKQorICAgICAgICB0b29sLnNjbSgpLl9tb2NrQ2hhbmdlZEZpbGVz
ID0gWyJKU1Rlc3RzL01vY2tGaWxlMSIsICJDaGFuZ2VMb2ciXQorICAgICAgICAjIEZJWE1FOiBX
ZSBzaG91bGRuJ3QgdXNlIGEgcmVhbCBwb3J0LW9iamVjdCBoZXJlLCBidXQgdGhlcmUgaXMgdG9v
IG11Y2ggdG8gbW9jayBhdCB0aGUgbW9tZW50LgorICAgICAgICB0b29sLl9kZXByZWNhdGVkX3Bv
cnQgPSBEZXByZWNhdGVkUG9ydCgpCisgICAgICAgIHN0ZXAgPSBzdGVwcy5DaGVja1BhdGNoUmVs
ZXZhbmNlKHRvb2wsIG1vY2tfb3B0aW9ucykKKyAgICAgICAgZXhwZWN0ZWRfbG9ncyA9ICIiIkNo
ZWNraW5nIHJlbGV2YW5jZSBvZiBwYXRjaAorVGhpcyBwYXRjaCBoYXMgcmVsZXZhbnQgY2hhbmdl
cy4KKyIiIgorICAgICAgICBPdXRwdXRDYXB0dXJlKCkuYXNzZXJ0X291dHB1dHMoc2VsZiwgc3Rl
cC5ydW4sIFt7fV0sIGV4cGVjdGVkX2xvZ3M9ZXhwZWN0ZWRfbG9ncykKKworICAgIGRlZiB0ZXN0
X3BhdGNoX25vdF9yZWxldmFudF9qc2Moc2VsZik6CisgICAgICAgIHNlbGYubWF4RGlmZiA9IE5v
bmUKKyAgICAgICAgbW9ja19vcHRpb25zID0gc2VsZi5fc3RlcF9vcHRpb25zKCkKKyAgICAgICAg
bW9ja19vcHRpb25zLmdyb3VwID0gImpzYyIKKyAgICAgICAgdG9vbCA9IE1vY2tUb29sKGxvZ19l
eGVjdXRpdmU9VHJ1ZSkKKyAgICAgICAgdG9vbC5zY20oKS5fbW9ja0NoYW5nZWRGaWxlcyA9IFsi
VG9vbHMvQ2hhbmdlTG9nIiwgIlRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9zdGVw
c191bml0dGVzdC5weSJdCisgICAgICAgICMgRklYTUU6IFdlIHNob3VsZG4ndCB1c2UgYSByZWFs
IHBvcnQtb2JqZWN0IGhlcmUsIGJ1dCB0aGVyZSBpcyB0b28gbXVjaCB0byBtb2NrIGF0IHRoZSBt
b21lbnQuCisgICAgICAgIHRvb2wuX2RlcHJlY2F0ZWRfcG9ydCA9IERlcHJlY2F0ZWRQb3J0KCkK
KyAgICAgICAgc3RlcCA9IHN0ZXBzLkNoZWNrUGF0Y2hSZWxldmFuY2UodG9vbCwgbW9ja19vcHRp
b25zKQorICAgICAgICBleHBlY3RlZF9sb2dzID0gIiIiQ2hlY2tpbmcgcmVsZXZhbmNlIG9mIHBh
dGNoCitUaGlzIHBhdGNoIGRvZXMgbm90IGhhdmUgcmVsZXZhbnQgY2hhbmdlcy4KKyIiIgorICAg
ICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFNjcmlwdEVycm9yKToKKyAgICAgICAgICAgIE91
dHB1dENhcHR1cmUoKS5hc3NlcnRfb3V0cHV0cyhzZWxmLCBzdGVwLnJ1biwgW3t9XSwgZXhwZWN0
ZWRfbG9ncz1leHBlY3RlZF9sb2dzKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>300461</attachid>
            <date>2017-02-02 15:27:58 -0800</date>
            <delta_ts>2017-02-02 16:27:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-162458-20170202152542.patch</filename>
            <type>text/plain</type>
            <size>79750</size>
            <attacher name="Srinivasan Vijayaraghavan">webkit</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA2Mzc3CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOWI3NTZhN2Y2MTZlMzQ0YjFhYmFjNjFkZmVkMmExZWI4
NmY3ZTQ0ZC4uODRjNDY5MTU1NThjNTA1YThlNjM0NWEyMjZlYTg5YjhjMzE1OTIxMSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEx
NyBAQAorMjAxNy0wMS0zMCAgU3Jpbml2YXNhbiBWaWpheWFyYWdoYXZhbiAgPHN2aWpheWFyYWdo
YXZhbkBhcHBsZS5jb20+CisKKyAgICAgICAgRVdTIHNob3VsZCBydW4gSmF2YVNjcmlwdENvcmUg
dGVzdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2
MjQ1OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
U2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hlY2tvdXQvc2NtL3NjbV9tb2NrLnB5OgorICAgICAg
ICAoTW9ja1NDTS5fX2luaXRfXyk6IEFkZCBfbW9ja0NoYW5nZWRGaWxlcyB2YXJpYWJsZS4KKyAg
ICAgICAgKE1vY2tTQ00uY2hhbmdlZF9maWxlcyk6IENoYW5nZSB0byB1c2UgX21vY2tDaGFuZ2Vk
RmlsZXMgdmFyaWFibGVzLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZp
Zy9ld3MuanNvbjogQWRkIGNvbmZpZyBpbmZvIGZvciBKU0MgRVdTLgorICAgICAgICAqIFNjcmlw
dHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9wb3J0cy5weTogQWRkIHN1cHBvcnQgZm9yIEpTQyBF
V1MgaW4gTWFjIFBvcnQuCisgICAgICAgIChEZXByZWNhdGVkUG9ydC5idWlsZF9qc2NfY29tbWFu
ZCk6IEFkZGVkIC0gY29tbWFuZCB0byBidWlsZCBKU0Mgb25seSAocXVpY2tlciB0aGFuIGJ1aWxk
aW5nIGFsbCBvZiBXZWJLaXQpLgorICAgICAgICAoRGVwcmVjYXRlZFBvcnQucnVuX2phdmFzY3Jp
cHRjb3JlX3Rlc3RzX2NvbW1hbmQpOiBBbGxvdyBKU0MgRVdTIHRvIG9ubHkgcnVuIEpTQyB0ZXN0
cy4KKyAgICAgICAgKE1hY1BvcnQucnVuX3dlYmtpdF90ZXN0c19jb21tYW5kKTogQ2hlY2sgZm9y
IEpTQy4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvcG9ydHNfbW9j
ay5weToKKyAgICAgICAgKE1vY2tQb3J0LnJ1bl9qYXZhc2NyaXB0Y29yZV90ZXN0c19jb21tYW5k
KTogQWRkIGJ1aWxkX3N0eWxlIGFyZ3VtZW50LgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkv
Y29tbW9uL2NvbmZpZy9wb3J0c191bml0dGVzdC5weToKKyAgICAgICAgKERlcHJlY2F0ZWRQb3J0
VGVzdC50ZXN0X21hY19wb3J0KTogQWRkIHVuaXQgdGVzdHMgZm9yIGJ1aWxkLWpzYyBzaGVsbCBj
b21tYW5kLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9qc2N0ZXN0cmVz
dWx0cy5weTogQWRkZWQuCisgICAgICAgIChKU0NUZXN0UmVzdWx0cyk6IEFkZGVkLgorICAgICAg
ICAoSlNDVGVzdFJlc3VsdHMuaW50ZXJzZWN0aW9uKTogUmV0dXJuIGEgSlNDVGVzdFJlc3VsdHMg
b2JqZWN0IHdpdGggZmFpbHVyZXMgY29tbW9uIHRvIGJvdGggaW5wdXQgb2JqZWN0cy4KKyAgICAg
ICAgKEpTQ1Rlc3RSZXN1bHRzLnJlc3VsdHNfZnJvbV9zdHJpbmcpOiBVc2UganNvbiBsaWJyYXJ5
IHRvIHBhcnNlIHJlc3VsdHMuCisgICAgICAgIChKU0NUZXN0UmVzdWx0cy5fX2luaXRfXyk6IElu
aXRpYWxpemUgbWVtYmVycy4KKyAgICAgICAgKEpTQ1Rlc3RSZXN1bHRzLmVxdWFscyk6IFRoaXMg
ZW5hYmxlcyB1bml0IHRlc3RpbmcuCisgICAgICAgIChKU0NUZXN0UmVzdWx0cy5pc19zdWJzZXQp
OiBDaGVja3MgaWYgb25lIHNldCBvZiBmYWlsdXJlcyBpcyBhIHN1YnNldCBvZiBhbm90aGVyLgor
ICAgICAgICAoSlNDVGVzdFJlc3VsdHMuc3RyZXNzX3Rlc3RfZmFpbHVyZXMpOiBHZXR0ZXIuCisg
ICAgICAgIChKU0NUZXN0UmVzdWx0cy5hbGxfYXBpX3Rlc3RzX3Bhc3NlZCk6IEdldHRlci4KKyAg
ICAgICAgKEpTQ1Rlc3RSZXN1bHRzLmFsbF9wYXNzZWQpOiBHZXR0ZXIuCisgICAgICAgIChKU0NU
ZXN0UmVzdWx0cy5mYWlsaW5nX3Rlc3RfcmVzdWx0cyk6IEdldHRlci4gU29tZSBvZiB0aGVzZSBl
eGlzdCBmb3IgaW50ZXJvcGFiaWxpdHkgcmVhc29ucy4KKyAgICAgICAgKEpTQ1Rlc3RSZXN1bHRz
LnRlc3RfcmVzdWx0cyk6IEdldHRlci4KKyAgICAgICAgKEpTQ1Rlc3RSZXN1bHRzLmZhaWxpbmdf
dGVzdHMpOiBHZXR0ZXIuCisgICAgICAgIChKU0NUZXN0UmVzdWx0cy5kaWRfZXhjZWVkX3Rlc3Rf
ZmFpbHVyZV9saW1pdCk6IEdldHRlci4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1v
bi9uZXQvanNjdGVzdHJlc3VsdHNfdW5pdHRlc3QucHk6IEFkZGVkLgorICAgICAgICAoSlNDVGVz
dFJlc3VsdHNUZXN0KTogQ2xhc3MgdG8gdGVzdCBKU0NUZXN0UmVzdWx0cy4KKyAgICAgICAgKEpT
Q1Rlc3RSZXN1bHRzVGVzdC50ZXN0X3Jlc3VsdHNfZnJvbV9zdHJpbmcpOiBUZXN0cyBwYXJzaW5n
LgorICAgICAgICAoSlNDVGVzdFJlc3VsdHNUZXN0LnRlc3RfaW50ZXJzZWN0aW9uX2FwaV90ZXN0
cyk6IFVuaXQgdGVzdCBmb3IgaW50ZXJzZWN0aW9uKCkgY2xhc3MgbWV0aG9kLgorICAgICAgICAo
SlNDVGVzdFJlc3VsdHNUZXN0LnRlc3RfaW50ZXJzZWN0aW9uX3N0cmVzc190ZXN0cyk6IFVuaXQg
dGVzdCBmb3IgaW50ZXJzZWN0aW9uKCkgY2xhc3MgbWV0aG9kLgorICAgICAgICAoSlNDVGVzdFJl
c3VsdHNUZXN0LnRlc3RfaW50ZXJzZWN0aW9uX2dlbmVyYWxfY2FzZSk6IFVuaXQgdGVzdCBmb3Ig
aW50ZXJzZWN0aW9uKCkgY2xhc3MgbWV0aG9kLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkv
dG9vbC9ib3QvZWFybHl3YXJuaW5nc3lzdGVtdGFzay5weToKKyAgICAgICAgKEVhcmx5V2Fybmlu
Z1N5c3RlbVRhc2sucnVuKTogQWRkIGNoZWNrX3BhdGNoX3JlbGV2YW5jZSBzdGVwLgorICAgICAg
ICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvanNjZXdzX3VuaXR0ZXN0LnB5OiBBZGRlZC4K
KyAgICAgICAgKE1vY2tQYXRjaEFuYWx5c2lzVGFzayk6IE1vY2tlZC1vdXQgdmVyc2lvbiBvZiBQ
YXRjaEFuYWx5c2lzVGFzayB0aGF0IGRvZXNuJ3QgcnVuIGNvbW1hbmRzLgorICAgICAgICAoTW9j
a1BhdGNoQW5hbHlzaXNUYXNrLl9faW5pdF9fKTogU2V0cyBhdHRyaWJ1dGVzLgorICAgICAgICAo
TW9ja1BhdGNoQW5hbHlzaXNUYXNrLl90ZXN0KTogT3ZlcnJpZGUgdG8gbm90IHJ1biBjb21tYW5k
LgorICAgICAgICAoTW9ja1BhdGNoQW5hbHlzaXNUYXNrLl9idWlsZF9hbmRfdGVzdF93aXRob3V0
X3BhdGNoKTogT3ZlcnJpZGUgdG8gbm90IHJ1biBjb21tYW5kLgorICAgICAgICAoTW9ja1BhdGNo
QW5hbHlzaXNUYXNrLnZhbGlkYXRlKTogQXNzdW1lIG1vY2tlZCBwYXRjaCBpcyB2YWxpZCBmb3Ig
cHVycG9zZXMgb2YgdGVzdGluZyByZXRyeSBsb2dpYy4KKyAgICAgICAgKE1vY2tQYXRjaEFuYWx5
c2lzVGFzay50ZXN0X3J1bl9jb3VudCk6IFNwZWNpZmljIHRvIHRoZSBtb2NrZWQgdmVyc2lvbiwg
dG8gdGVzdCByZXRyeSBsb2dpYy4KKyAgICAgICAgKE1vY2tKU0NFYXJseVdhcm5pbmdTeXN0ZW0p
OiBNb2NrZWQtb3V0IHZlcnNpb24gb2YgQWJzdGFyY3RFYXJseVdhcm5pbmdTeXN0ZW0gc28gd2Ug
Y2FuIHByb3ZpZGUgdGVzdCByZXN1bHRzLgorICAgICAgICAoTW9ja0pTQ0Vhcmx5V2FybmluZ1N5
c3RlbS5fX2luaXRfXyk6IFNldHMgYXR0cmlidXRlcywgYWxzbyBzZXRzIGdyb3VwIHRvIGpzYy4K
KyAgICAgICAgKE1vY2tKU0NFYXJseVdhcm5pbmdTeXN0ZW0udGVzdF9yZXN1bHRzKTogUmV0dXJu
cyB0ZXN0IHJlc3VsdHMgcHJvdmlkZWQgYnkgdXMsIGluc3RlYWQgb2YgdXNpbmcgYSBKU09OIHJl
YWRlci4KKyAgICAgICAgKEpTQ0Vhcmx5V2FybmluZ1N5c3RlbVRlc3QpOiBDbGFzcyB0byB0ZXN0
IHJldHJ5IGxvZ2ljIGluIGJlbG93IHNpdHVhdGlvbnMuCisgICAgICAgIChKU0NFYXJseVdhcm5p
bmdTeXN0ZW1UZXN0Ll9jcmVhdGVfdGFzayk6IEhlbHBlciBmdW5jdGlvbiB0byBhYnN0cmFjdCBv
dXQgY29tbW9uIGNvZGUuCisgICAgICAgIChKU0NFYXJseVdhcm5pbmdTeXN0ZW1UZXN0Ll9yZXN1
bHRzX2luZGljYXRlX2FsbF9wYXNzZWQpOiBGYWxzZSBpZiBpbnB1dCBpcyBOb25lIG9yIGhhcyBm
YWlsdXJlcywgZWxzZSBUcnVlLgorICAgICAgICAoSlNDRWFybHlXYXJuaW5nU3lzdGVtVGVzdC50
ZXN0X3N1Y2Nlc3NfY2FzZSk6IENsZWFuIHBhdGNoIG9uIGNsZWFuIHRyZWUuCisgICAgICAgIChK
U0NFYXJseVdhcm5pbmdTeXN0ZW1UZXN0LnRlc3RfdGVzdF9mYWlsdXJlKTogRmFpbGVkIHBhdGNo
IG9uIGNsZWFuIHRyZWUuCisgICAgICAgIChKU0NFYXJseVdhcm5pbmdTeXN0ZW1UZXN0LnRlc3Rf
Zml4KTogUGF0Y2ggdGhhdCBmaXhlcyBhbGwgdHJlZSByZWRuZXNzLgorICAgICAgICAoSlNDRWFy
bHlXYXJuaW5nU3lzdGVtVGVzdC50ZXN0X2luZWZmZWN0aXZlX3BhdGNoKTogUGF0Y2ggdGhhdCBo
YXMgc2FtZSBmYWlsdXJlcyBhcyB0cmVlLgorICAgICAgICAoSlNDRWFybHlXYXJuaW5nU3lzdGVt
VGVzdC50ZXN0X3BhcnRpYWxseV9lZmZlY3RpdmVfcGF0Y2gpOiBQYXRjaCBmaXhlcyBzb21lIGZh
aWx1cmVzIGJ1dCBhZGRzIG5vIG5ldyBmYWlsdXJlcy4KKyAgICAgICAgKEpTQ0Vhcmx5V2Fybmlu
Z1N5c3RlbVRlc3QudGVzdF9kaWZmZXJlbnRfdGVzdF9mYWlsdXJlc19pbl9wYXRjaF9hbmRfdHJl
ZSk6IFBhdGNoIGhhcyBzb21lIGZhaWx1cmVzIG5vdCBpbiB0cmVlLgorICAgICAgICAoSlNDRWFy
bHlXYXJuaW5nU3lzdGVtVGVzdC50ZXN0X2ZpcnN0X3Jlc3VsdHNfY291bGRfbm90X2JlX3JlYWQp
OiBQYXRjaCByZXN1bHRzIG5vdCByZWFkYWJsZS4KKyAgICAgICAgKEpTQ0Vhcmx5V2FybmluZ1N5
c3RlbVRlc3QudGVzdF9zZWNvbmRfcmVzdWx0c19jb3VsZF9ub3RfYmVfcmVhZCk6IFBhdGNoIHJl
c3VsdHMgbm90IHJlYWRhYmxlIG9uIHNlY29uZCBydW4uCisgICAgICAgIChKU0NFYXJseVdhcm5p
bmdTeXN0ZW1UZXN0LnRlc3RfY2xlYW5fcmVzdWx0c19jb3VsZF9ub3RfYmVfcmVhZCk6IFJlc3Vs
dHMgZnJvbSBjbGVhbiB0cmVlIG5vdCByZWFkYWJsZS4KKyAgICAgICAgKEpTQ0Vhcmx5V2Fybmlu
Z1N5c3RlbVRlc3QudGVzdF9mbGFreV9yZXN1bHRzX29uX2NsZWFuX3RyZWVfcGFzcyk6IFBhdGNo
IGhhcyBvbmUgZmxha2UgYW5kIG5vIGZhaWx1cmVzLgorICAgICAgICAoSlNDRWFybHlXYXJuaW5n
U3lzdGVtVGVzdC50ZXN0X2ZsYWt5X3Jlc3VsdHNfb25fY2xlYW5fdHJlZV9wYXNzX3YyKTogUGF0
Y2ggaGFzIG9uZSBmbGFrZSBhbmQgbm8gZmFpbHVyZXMuCisgICAgICAgIChKU0NFYXJseVdhcm5p
bmdTeXN0ZW1UZXN0LnRlc3RfZmxha3lfcmVzdWx0c19vbl9jbGVhbl90cmVlX2ZhaWx1cmUpOiBQ
YXRjaCBoYXMgZmxha2VzIGFuZCBmYWlsZWQgdGVzdHMuCisgICAgICAgIChKU0NFYXJseVdhcm5p
bmdTeXN0ZW1UZXN0LnRlc3RfZmxha3lfcmVzdWx0c19vbl9yZWRfdHJlZV9wYXNzKTogUGF0Y2gg
aGFzIHNhbWUgZmFpbHVyZXMgYXMgdHJlZSwgcGx1cyBhIGZsYWtlLgorICAgICAgICAqIFNjcmlw
dHMvd2Via2l0cHkvdG9vbC9ib3QvanNjdGVzdHJlc3VsdHNyZWFkZXIucHk6IEFkZGVkLgorICAg
ICAgICAoSlNDVGVzdFJlc3VsdHNSZWFkZXIpOiBSZWFkcyByZXN1bHRzIGZpbGUuCisgICAgICAg
IChKU0NUZXN0UmVzdWx0c1JlYWRlci5fX2luaXRfXyk6IFNldHMgYXR0cmlidXRlcy4KKyAgICAg
ICAgKEpTQ1Rlc3RSZXN1bHRzUmVhZGVyLl9yZWFkX2ZpbGVfY29udGVudHMpOiBSZWFkcyBmaWxl
LgorICAgICAgICAoSlNDVGVzdFJlc3VsdHNSZWFkZXIuX2NyZWF0ZV9qc2NfdGVzdF9yZXN1bHRz
KTogQ3JlYXRlcyBhIEpTQ1Rlc3RSZXN1bHRzIG9iamVjdC4KKyAgICAgICAgKEpTQ1Rlc3RSZXN1
bHRzUmVhZGVyLnJlc3VsdHMpOiBJbnZva2VzIF9jcmVhdGVfanNjX3Rlc3RfcmVzdWx0cyB0byBy
ZXR1cm4gYSBKU0NUZXN0UmVzdWx0cyBvYmplY3QuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRw
eS90b29sL2JvdC9wYXRjaGFuYWx5c2lzdGFzay5weToKKyAgICAgICAgKFBhdGNoSXNOb3RBcHBs
aWNhYmxlKTogRXhjZXB0aW9uIGZvciB3aGVuIHBhdGNoIGRvZXNuJ3QgaGF2ZSByZWxldmFudCBj
aGFuZ2VzLgorICAgICAgICAoUGF0Y2hBbmFseXNpc1Rhc2suX2NoZWNrX3BhdGNoX3JlbGV2YW5j
ZSk6IEFkZGVkLgorICAgICAgICAoUGF0Y2hBbmFseXNpc1Rhc2suX2J1aWxkKTogQ2hlY2sgZm9y
IEpTQy4KKyAgICAgICAgKFBhdGNoQW5hbHlzaXNUYXNrLl9idWlsZF93aXRob3V0X3BhdGNoKTog
Q2hlY2sgZm9yIEpTQy4KKyAgICAgICAgKFBhdGNoQW5hbHlzaXNUYXNrLl90ZXN0KTogQ2hlY2sg
Zm9yIEpTQy4KKyAgICAgICAgKFBhdGNoQW5hbHlzaXNUYXNrLl9idWlsZF9hbmRfdGVzdF93aXRo
b3V0X3BhdGNoKTogQ2hlY2sgZm9yIEpTQy4KKyAgICAgICAgKFBhdGNoQW5hbHlzaXNUYXNrLl90
ZXN0X3BhdGNoKTogQWRkIHJldHJ5IGxvZ2ljIGZvciBKU0MuCisgICAgICAgICogU2NyaXB0cy93
ZWJraXRweS90b29sL2NvbW1hbmRzL2Rvd25sb2FkLnB5OgorICAgICAgICAoQ2hlY2tQYXRjaFJl
bGV2YW5jZSk6IEFkZCBjaGVjay1wYXRjaC1yZWxldmFuY2UgY29tbWFuZC4KKyAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZWFybHl3YXJuaW5nc3lzdGVtLnB5OgorICAg
ICAgICAoQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0uYmVnaW5fd29ya19xdWV1ZSk6IFVzZSBK
U0NUZXN0UmVzdWx0c1JlYWRlciBub3QgTGF5b3V0VGVzdFJlc3VsdHNSZWFkZXIgaW4gSlNDIEVX
Uy4KKyAgICAgICAgKEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtLnJldmlld19wYXRjaCk6IEhh
bmRsZSBQYXRjaElzQXBwbGljYWJsZQorICAgICAgICAoQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0
ZW0udGVzdF9yZXN1bHRzKTogX2xheW91dF90ZXN0X3Jlc3VsdHNfcmVhZGVyIC0+IF90ZXN0X3Jl
c3VsdHNfcmVhZGVyLgorICAgICAgICAoQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0uYXJjaGl2
ZV9sYXN0X3Rlc3RfcmVzdWx0cyk6IF9sYXlvdXRfdGVzdF9yZXN1bHRzX3JlYWRlciAtPiBfdGVz
dF9yZXN1bHRzX3JlYWRlci4KKyAgICAgICAgKEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtLmdy
b3VwKTogVGhpcyBhdHRyaWJ1dGUgZGV0ZXJtaW5lcyB0aGUgdHlwZSBvZiBFV1MgKGVnLiBKU0Mp
LgorICAgICAgICAoQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0ubG9hZF9ld3NfY2xhc3Nlcyk6
IEFkZCBfZ3JvdXAuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Vh
cmx5d2FybmluZ3N5c3RlbV91bml0dGVzdC5weToKKyAgICAgICAgKEFic3RyYWN0RWFybHlXYXJu
aW5nU3lzdGVtVGVzdC50ZXN0X2ZhaWxpbmdfdGVzdHNfbWVzc2FnZS5UZXN0RVdTKTogQWRkIF9n
cm91cC4KKyAgICAgICAgKEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtVGVzdC50ZXN0X2ZhaWxp
bmdfanNjX3Rlc3RzX21lc3NhZ2UuVGVzdEVXUyk6IEFkZGVkIHRlc3QgZm9yIGpzYyBmYWlsdXJl
cyBtZXNzYWdlLgorICAgICAgICAoQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW1UZXN0KTogQWRk
IF9ncm91cCB2YXJpYWJsZS4KKyAgICAgICAgKEVhcmx5V2FybmluZ1N5c3RlbVRlc3QuX2RlZmF1
bHRfZXhwZWN0ZWRfbG9ncyk6IEFkZCBjaGVjay1wYXRjaC1yZWxldmFuY2Ugc3RlcCBhbmQgLS1n
cm91cCBvcHRpb24uCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL19faW5p
dF9fLnB5OiBBZGQgQ2hlY2tQYXRjaFJlbGV2YW5jZSBpbXBvcnQuCisgICAgICAgICogU2NyaXB0
cy93ZWJraXRweS90b29sL3N0ZXBzL2J1aWxkLnB5OgorICAgICAgICAoQnVpbGQub3B0aW9ucyk6
IENoZWNrIGZvciBKU0MuCisgICAgICAgIChCdWlsZC5idWlsZCk6IENoZWNrIGZvciBKU0MuCisg
ICAgICAgIChCdWlsZC5ydW4pOiBDaGVjayBmb3IgSlNDLgorICAgICAgICAqIFNjcmlwdHMvd2Vi
a2l0cHkvdG9vbC9zdGVwcy9jaGVja3BhdGNocmVsZXZhbmNlLnB5OiBBZGRlZC4KKyAgICAgICAg
KENoZWNrUGF0Y2hSZWxldmFuY2UpOiBBZGRlZC4KKyAgICAgICAgKENoZWNrUGF0Y2hSZWxldmFu
Y2UuX2RvZXNfY29udGFpbl9jaGFuZ2VfaW5fcGF0aHMpOiBBYnN0cmFjdCBmdW5jdGlvbiB0byBw
ZXJmb3JtIHJlZ2V4IG1hdGNoaW5nLgorICAgICAgICAoQ2hlY2tQYXRjaFJlbGV2YW5jZS5ydW4p
OiBDaGVjayBpZiBjaGFuZ2VkIGZpbGVzIGluIHBhdGNoIGJlbG9uZyBpbiBjZXJ0YWluIGZvbGRl
cnMuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL29wdGlvbnMucHk6Cisg
ICAgICAgIChPcHRpb25zKTogQWRkIC0tZ3JvdXAgY29tbWFuZCBsaW5lIG9wdGlvbi4KKyAgICAg
ICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvcnVudGVzdHMucHk6CisgICAgICAgIChS
dW5UZXN0cy5vcHRpb25zKTogQWRkIGdyb3VwLgorICAgICAgICAoUnVuVGVzdHMucnVuKTogQ2hl
Y2sgZm9yIEpTQy4KKyAgICAgICAgKFJ1blRlc3RzLl9ydW5fd2Via2l0X3Rlc3RzKTogQ2hlY2sg
Zm9yIEpTQy4KKyAgICAgICAgKFJ1blRlc3RzKTogQWRkIF9ncm91cCBhdHRyaWJ1dGUuCisgICAg
ICAgIChSdW5UZXN0cy5fcnVuX2phdmFzY3JpcHRjb3JlX3Rlc3RzKTogTmV3LgorICAgICAgICAq
IFNjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9zdGVwc191bml0dGVzdC5weTogVW5pdCB0ZXN0
cy4KKwogMjAxNi0wOS0yNSAgR3l1eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHdlYmtpdC5vcmc+
CiAKICAgICAgICAgW0VGTF0gQWRqdXN0IEVGTCBpbmRlbnRhdGlvbiB0byBFRkwgTWluaUJyb3dz
ZXIKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNrb3V0L3Nj
bS9zY21fbW9jay5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNrb3V0L3Nj
bS9zY21fbW9jay5weQppbmRleCBjNWQxMGZjYjE4OWIwYThiNTE5ZmE1NTYyNTAyMmE3MGM0ODZk
NDRiLi45Nzc0ZWM4YWU4NzNhMWIwYjgzNzYwNzE4MDY2NzkyMTU4MDllZWVjIDEwMDY0NAotLS0g
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja291dC9zY20vc2NtX21vY2sucHkK
KysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hlY2tvdXQvc2NtL3NjbV9tb2Nr
LnB5CkBAIC0xLDQgKzEsNSBAQAogIyBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTM3LDYg
KzM4LDcgQEAgY2xhc3MgTW9ja1NDTShvYmplY3QpOgogICAgICAgICBzZWxmLmFkZGVkX3BhdGhz
ID0gc2V0KCkKICAgICAgICAgc2VsZi5fZmlsZXN5c3RlbSA9IGZpbGVzeXN0ZW0gb3IgTW9ja0Zp
bGVTeXN0ZW0oKQogICAgICAgICBzZWxmLl9leGVjdXRpdmUgPSBleGVjdXRpdmUgb3IgTW9ja0V4
ZWN1dGl2ZSgpCisgICAgICAgIHNlbGYuX21vY2tDaGFuZ2VkRmlsZXMgPSBbIk1vY2tGaWxlMSJd
CiAKICAgICBkZWYgYWRkKHNlbGYsIGRlc3RpbmF0aW9uX3BhdGgpOgogICAgICAgICBzZWxmLmFk
ZF9saXN0KFtkZXN0aW5hdGlvbl9wYXRoXSkKQEAgLTcxLDcgKzczLDcgQEAgY2xhc3MgTW9ja1ND
TShvYmplY3QpOgogICAgICAgICByZXR1cm4gc2VsZi5fZmlsZXN5c3RlbS5qb2luKHNlbGYuY2hl
Y2tvdXRfcm9vdCwgKmNvbXBzKQogCiAgICAgZGVmIGNoYW5nZWRfZmlsZXMoc2VsZiwgZ2l0X2Nv
bW1pdD1Ob25lKToKLSAgICAgICAgcmV0dXJuIFsiTW9ja0ZpbGUxIl0KKyAgICAgICAgcmV0dXJu
IHNlbGYuX21vY2tDaGFuZ2VkRmlsZXMKIAogICAgIGRlZiBjaGFuZ2VkX2ZpbGVzX2Zvcl9yZXZp
c2lvbihzZWxmLCByZXZpc2lvbik6CiAgICAgICAgIHJldHVybiBbIk1vY2tGaWxlMSJdCmRpZmYg
LS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvZXdzLmpzb24gYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvZXdzLmpzb24KaW5kZXggMzVkNDk4
NWFiMGY5M2QxMjdiMzcyMWU0NjAxY2Q2ZDg5ZGZjY2YzYy4uZTUzNDBmZTVjM2MyMWFlODFhZDFl
ZjdlMDNmN2ZiODFmMzgzOWNmZiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9j
b21tb24vY29uZmlnL2V3cy5qc29uCisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9u
L2NvbmZpZy9ld3MuanNvbgpAQCAtNTAsNSArNTAsMTEgQEAKICAgICAgICAgInBvcnQiOiAibWFj
IiwKICAgICAgICAgIm5hbWUiOiAibWFjLTMyYml0LWV3cyIsCiAgICAgICAgICJhcmNoaXRlY3R1
cmUiOiAiaTM4NiIKKyAgICB9LAorICAgICJKU0MgRVdTIjogeworICAgICAgICAicG9ydCI6ICJt
YWMiLAorICAgICAgICAibmFtZSI6ICJqc2MtZXdzIiwKKyAgICAgICAgImdyb3VwIjogImpzYyIs
CisgICAgICAgICJydW5UZXN0cyI6IHRydWUKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvcG9ydHMucHkgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2NvbW1vbi9jb25maWcvcG9ydHMucHkKaW5kZXggYTBkNTBkY2I2ZWEwYjVmZGUwYjNj
MTdlZjE1OWNlYWZlZTFhMmU5OC4uZDM3ZWQ5ZDFjNWUyNTUwZTQ4ODM0ZTdlZjAwYmFlNGMyNGNi
ZDc4NCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL3Bv
cnRzLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9wb3J0cy5w
eQpAQCAtMSw2ICsxLDYgQEAKICMgQ29weXJpZ2h0IChDKSAyMDA5LCBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogIyBDb3B5cmlnaHQgKEMpIDIwMTMgTm9raWEgQ29ycG9yYXRpb24g
YW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgotIyBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMTUsIDIwMTcgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
IGFyZQpAQCAtMTAzLDggKzEwMywyMSBAQCBjbGFzcyBEZXByZWNhdGVkUG9ydChvYmplY3QpOgog
ICAgICAgICAgICAgY29tbWFuZC5hcHBlbmQoIi0tcmVsZWFzZSIpCiAgICAgICAgIHJldHVybiBj
b21tYW5kCiAKLSAgICBkZWYgcnVuX2phdmFzY3JpcHRjb3JlX3Rlc3RzX2NvbW1hbmQoc2VsZik6
Ci0gICAgICAgIHJldHVybiBzZWxmLnNjcmlwdF9zaGVsbF9jb21tYW5kKCJydW4tamF2YXNjcmlw
dGNvcmUtdGVzdHMiKQorICAgIGRlZiBidWlsZF9qc2NfY29tbWFuZChzZWxmLCBidWlsZF9zdHls
ZT1Ob25lKToKKyAgICAgICAgY29tbWFuZCA9IHNlbGYuc2NyaXB0X3NoZWxsX2NvbW1hbmQoImJ1
aWxkLWpzYyIpCisgICAgICAgIGlmIGJ1aWxkX3N0eWxlID09ICJkZWJ1ZyI6CisgICAgICAgICAg
ICBjb21tYW5kLmFwcGVuZCgiLS1kZWJ1ZyIpCisgICAgICAgIGlmIGJ1aWxkX3N0eWxlID09ICJy
ZWxlYXNlIjoKKyAgICAgICAgICAgIGNvbW1hbmQuYXBwZW5kKCItLXJlbGVhc2UiKQorICAgICAg
ICByZXR1cm4gY29tbWFuZAorCisgICAgZGVmIHJ1bl9qYXZhc2NyaXB0Y29yZV90ZXN0c19jb21t
YW5kKHNlbGYsIGJ1aWxkX3N0eWxlPU5vbmUpOgorICAgICAgICBjb21tYW5kID0gc2VsZi5zY3Jp
cHRfc2hlbGxfY29tbWFuZCgicnVuLWphdmFzY3JpcHRjb3JlLXRlc3RzIikKKyAgICAgICAgY29t
bWFuZC5hcHBlbmQoIi0tbm8tZmFpbC1mYXN0IikKKyAgICAgICAgY29tbWFuZC5hcHBlbmQoIi0t
anNvbi1vdXRwdXQ9anNjX3Rlc3RfcmVzdWx0cy5qc29uIikKKyAgICAgICAgaWYgKGJ1aWxkX3N0
eWxlID09ICJkZWJ1ZyIpOgorICAgICAgICAgICAgY29tbWFuZC5hcHBlbmQoIi0tZGVidWciKQor
ICAgICAgICByZXR1cm4gY29tbWFuZAogCiAgICAgZGVmIHJ1bl93ZWJraXRfdGVzdHNfY29tbWFu
ZChzZWxmLCBidWlsZF9zdHlsZT1Ob25lKToKICAgICAgICAgY29tbWFuZCA9IHNlbGYuc2NyaXB0
X3NoZWxsX2NvbW1hbmQoInJ1bi13ZWJraXQtdGVzdHMiKQpAQCAtMTUwLDcgKzE2MywxMCBAQCBj
bGFzcyBJT1NTaW11bGF0b3JXSzJQb3J0KERlcHJlY2F0ZWRQb3J0KToKIGNsYXNzIE1hY1BvcnQo
RGVwcmVjYXRlZFBvcnQpOgogICAgIHBvcnRfZmxhZ19uYW1lID0gIm1hYyIKIAotICAgIGRlZiBy
dW5fd2Via2l0X3Rlc3RzX2NvbW1hbmQoc2VsZiwgYnVpbGRfc3R5bGU9Tm9uZSk6CisgICAgZGVm
IHJ1bl93ZWJraXRfdGVzdHNfY29tbWFuZChzZWxmLCBidWlsZF9zdHlsZT1Ob25lLCB0ZXN0X3N1
aXRlPU5vbmUpOgorICAgICAgICBpZiAodGVzdF9zdWl0ZSA9PSAianNjIik6CisgICAgICAgICAg
ICByZXR1cm4gc3VwZXIoTWFjUG9ydCwgc2VsZikucnVuX2phdmFzY3JpcHRjb3JlX3Rlc3RzX2Nv
bW1hbmQoYnVpbGRfc3R5bGUpCisKICAgICAgICAgY29tbWFuZCA9IHN1cGVyKE1hY1BvcnQsIHNl
bGYpLnJ1bl93ZWJraXRfdGVzdHNfY29tbWFuZChidWlsZF9zdHlsZSkKICAgICAgICAgY29tbWFu
ZC5hcHBlbmQoIi0tZHVtcC1yZW5kZXItdHJlZSIpCiAgICAgICAgIHJldHVybiBjb21tYW5kCmRp
ZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvcG9ydHNfbW9j
ay5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9wb3J0c19tb2NrLnB5
CmluZGV4IDYxNzQzZGViYjRlYmVlMzc1NmJhN2MyMGYwMTQ4MjM1NDBkMmRjYTYuLmNhMWIxOGEz
MTA2ODQyM2JkY2UwN2NkZWI3ZDdkN2QxOTlmNDAwYWIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9wb3J0c19tb2NrLnB5CisrKyBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9wb3J0c19tb2NrLnB5CkBAIC0xLDQgKzEsNSBAQAog
IyBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMg
Q29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMg
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTQ5LDcgKzUwLDcgQEAgY2xhc3MgTW9ja1Bv
cnQob2JqZWN0KToKICAgICBkZWYgcnVuX3BlcmxfdW5pdHRlc3RzX2NvbW1hbmQoc2VsZik6CiAg
ICAgICAgIHJldHVybiBbJ21vY2stdGVzdC13ZWJraXRwZXJsJ10KIAotICAgIGRlZiBydW5famF2
YXNjcmlwdGNvcmVfdGVzdHNfY29tbWFuZChzZWxmKToKKyAgICBkZWYgcnVuX2phdmFzY3JpcHRj
b3JlX3Rlc3RzX2NvbW1hbmQoc2VsZiwgYnVpbGRfc3R5bGU9Tm9uZSk6CiAgICAgICAgIHJldHVy
biBbJ21vY2stcnVuLWphdmFjcmlwdGNvcmUtdGVzdHMnXQogCiAgICAgZGVmIHJ1bl93ZWJraXRf
dGVzdHNfY29tbWFuZChzZWxmLCBidWlsZF9zdHlsZT1Ob25lKToKZGlmZiAtLWdpdCBhL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9wb3J0c191bml0dGVzdC5weSBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9wb3J0c191bml0dGVzdC5weQppbmRleCAw
OGQ1NDUyMzZkYTM3MDNlOTI4ZjFjZWVkMWRkOTEwMmQ5Yjg2MjJlLi4xNmNkN2Y5MjgyNTFiYmM5
OTZjYjY0NmU0MzU5ZDczZmRiNTM1YjI2IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2NvbW1vbi9jb25maWcvcG9ydHNfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9jb21tb24vY29uZmlnL3BvcnRzX3VuaXR0ZXN0LnB5CkBAIC0xLDQgKzEsNSBAQAog
IyBDb3B5cmlnaHQgKGMpIDIwMDksIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisj
IENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAj
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC0zOSw2ICs0MCwxMCBAQCBjbGFzcyBEZXBy
ZWNhdGVkUG9ydFRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKE1hY1BvcnQoKS5idWlsZF93ZWJraXRfY29tbWFuZChidWlsZF9zdHlsZT0iZGVidWciKSwg
RGVwcmVjYXRlZFBvcnQoKS5zY3JpcHRfc2hlbGxfY29tbWFuZCgiYnVpbGQtd2Via2l0IikgKyBb
Ii0tZGVidWciXSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChNYWNQb3J0KCkuYnVpbGRfd2Vi
a2l0X2NvbW1hbmQoYnVpbGRfc3R5bGU9InJlbGVhc2UiKSwgRGVwcmVjYXRlZFBvcnQoKS5zY3Jp
cHRfc2hlbGxfY29tbWFuZCgiYnVpbGQtd2Via2l0IikgKyBbIi0tcmVsZWFzZSJdKQogCisgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoTWFjUG9ydCgpLmJ1aWxkX2pzY19jb21tYW5kKCksIERlcHJl
Y2F0ZWRQb3J0KCkuc2NyaXB0X3NoZWxsX2NvbW1hbmQoImJ1aWxkLWpzYyIpKQorICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKE1hY1BvcnQoKS5idWlsZF9qc2NfY29tbWFuZChidWlsZF9zdHlsZT0i
cmVsZWFzZSIpLCBEZXByZWNhdGVkUG9ydCgpLnNjcmlwdF9zaGVsbF9jb21tYW5kKCJidWlsZC1q
c2MiKSArIFsiLS1yZWxlYXNlIl0pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTWFjUG9ydCgp
LmJ1aWxkX2pzY19jb21tYW5kKGJ1aWxkX3N0eWxlPSJkZWJ1ZyIpLCBEZXByZWNhdGVkUG9ydCgp
LnNjcmlwdF9zaGVsbF9jb21tYW5kKCJidWlsZC1qc2MiKSArIFsiLS1kZWJ1ZyJdKQorCiAgICAg
ZGVmIHRlc3RfZ3RrX3drMl9wb3J0KHNlbGYpOgogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKEd0
a1dLMlBvcnQoKS5mbGFnKCksICItLXBvcnQ9Z3RrLXdrMiIpCiAgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoR3RrV0syUG9ydCgpLnJ1bl93ZWJraXRfdGVzdHNfY29tbWFuZCgpLCBEZXByZWNhdGVk
UG9ydCgpLnNjcmlwdF9zaGVsbF9jb21tYW5kKCJydW4td2Via2l0LXRlc3RzIikgKyBbIi0tZ3Rr
Il0pCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvanNjdGVz
dHJlc3VsdHMucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvanNjdGVzdHJl
c3VsdHMucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYmU2ZWIwZTMwZjY3MzZiYTk5NDJjZjBmOGMxNjhkMzIxMzJh
YTdiNQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25l
dC9qc2N0ZXN0cmVzdWx0cy5weQpAQCAtMCwwICsxLDg2IEBACisjIENvcHlyaWdodCAoQykgMjAx
NyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JyBBTkQKKyMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUgorIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisjIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisjIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSCisjIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisjIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisKK2ltcG9ydCBqc29uCitpbXBvcnQgbG9nZ2luZworCitfbG9n
ID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18pCisKKworY2xhc3MgSlNDVGVzdFJlc3VsdHMo
b2JqZWN0KToKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgaW50ZXJzZWN0aW9uKGNscywgZmly
c3QsIHNlY29uZCk6CisgICAgICAgIGludGVyc2VjdGlvbl9hcGlfdGVzdHNfcGFzc2VkID0gZmly
c3QuX2FsbF9hcGlfdGVzdHNfcGFzc2VkIG9yIHNlY29uZC5fYWxsX2FwaV90ZXN0c19wYXNzZWQK
KyAgICAgICAgaW50ZXJzZWN0aW9uX3N0cmVzc190ZXN0X2ZhaWx1cmVzID0gbGlzdChzZXQoZmly
c3QuX3N0cmVzc190ZXN0X2ZhaWx1cmVzKSAmIHNldChzZWNvbmQuX3N0cmVzc190ZXN0X2ZhaWx1
cmVzKSkKKyAgICAgICAgcmV0dXJuIGNscyhpbnRlcnNlY3Rpb25fYXBpX3Rlc3RzX3Bhc3NlZCwg
aW50ZXJzZWN0aW9uX3N0cmVzc190ZXN0X2ZhaWx1cmVzKQorCisgICAgQGNsYXNzbWV0aG9kCisg
ICAgZGVmIHJlc3VsdHNfZnJvbV9zdHJpbmcoY2xzLCBzdHJpbmcpOgorICAgICAgICBpZiBub3Qg
c3RyaW5nOgorICAgICAgICAgICAgcmV0dXJuIE5vbmUKKworICAgICAgICB0cnk6CisgICAgICAg
ICAgICBwYXJzZWRfcmVzdWx0cyA9IGpzb24ubG9hZHMoc3RyaW5nKQorICAgICAgICBleGNlcHQg
VmFsdWVFcnJvcjoKKyAgICAgICAgICAgIHJldHVybiBOb25lCisKKyAgICAgICAgaWYgJ2FsbEFw
aVRlc3RzUGFzc2VkJyBub3QgaW4gcGFyc2VkX3Jlc3VsdHMgb3IgJ3N0cmVzc1Rlc3RGYWlsdXJl
cycgbm90IGluIHBhcnNlZF9yZXN1bHRzOgorICAgICAgICAgICAgcmV0dXJuIE5vbmUKKworICAg
ICAgICByZXR1cm4gY2xzKHBhcnNlZF9yZXN1bHRzWydhbGxBcGlUZXN0c1Bhc3NlZCddLCBwYXJz
ZWRfcmVzdWx0c1snc3RyZXNzVGVzdEZhaWx1cmVzJ10pCisKKyAgICBkZWYgX19pbml0X18oc2Vs
ZiwgYWxsX2FwaV90ZXN0c19wYXNzZWQsIHN0cmVzc190ZXN0X2ZhaWx1cmVzKToKKyAgICAgICAg
c2VsZi5fYWxsX2FwaV90ZXN0c19wYXNzZWQgPSBhbGxfYXBpX3Rlc3RzX3Bhc3NlZAorICAgICAg
ICBzZWxmLl9zdHJlc3NfdGVzdF9mYWlsdXJlcyA9IHN0cmVzc190ZXN0X2ZhaWx1cmVzCisKKyAg
ICAgICAgc2VsZi5fdGVzdF9yZXN1bHRzID0gc3RyZXNzX3Rlc3RfZmFpbHVyZXNbOl0KKyAgICAg
ICAgaWYgbm90IHNlbGYuX2FsbF9hcGlfdGVzdHNfcGFzc2VkOgorICAgICAgICAgICAgc2VsZi5f
dGVzdF9yZXN1bHRzLmFwcGVuZCgiYXBpVGVzdHMiKQorCisgICAgZGVmIGVxdWFscyhzZWxmLCBv
dGhlcik6CisgICAgICAgIHJldHVybiBzZWxmLl9hbGxfYXBpX3Rlc3RzX3Bhc3NlZCA9PSBvdGhl
ci5fYWxsX2FwaV90ZXN0c19wYXNzZWQgYW5kIFwKKyAgICAgICAgICAgICAgIHNldChzZWxmLl9z
dHJlc3NfdGVzdF9mYWlsdXJlcykgPT0gc2V0KG90aGVyLl9zdHJlc3NfdGVzdF9mYWlsdXJlcykK
KworICAgIGRlZiBpc19zdWJzZXQoc2VsZiwgb3RoZXIpOgorICAgICAgICByZXR1cm4gc2V0KHNl
bGYudGVzdF9yZXN1bHRzKCkpIDw9IHNldChvdGhlci50ZXN0X3Jlc3VsdHMoKSkKKworICAgIGRl
ZiBzdHJlc3NfdGVzdF9mYWlsdXJlcyhzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX3N0cmVz
c190ZXN0X2ZhaWx1cmVzCisKKyAgICBkZWYgYWxsX2FwaV90ZXN0c19wYXNzZWQoc2VsZik6Cisg
ICAgICAgIHJldHVybiBzZWxmLl9hbGxfYXBpX3Rlc3RzX3Bhc3NlZAorCisgICAgZGVmIGFsbF9w
YXNzZWQoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl9hbGxfYXBpX3Rlc3RzX3Bhc3NlZCBh
bmQgbm90IHNlbGYuX3N0cmVzc190ZXN0X2ZhaWx1cmVzCisKKyAgICBkZWYgZmFpbGluZ190ZXN0
X3Jlc3VsdHMoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLnN0cmVzc190ZXN0X2ZhaWx1cmVz
KCkKKworICAgIGRlZiB0ZXN0X3Jlc3VsdHMoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl90
ZXN0X3Jlc3VsdHMKKworICAgIGRlZiBmYWlsaW5nX3Rlc3RzKHNlbGYpOgorICAgICAgICByZXR1
cm4gc2VsZi5fdGVzdF9yZXN1bHRzCisKKyAgICAjIE5vIGRlZmluZWQgZmFpbHVyZSBsaW1pdCBm
b3IgSlNDLgorICAgIGRlZiBkaWRfZXhjZWVkX3Rlc3RfZmFpbHVyZV9saW1pdChzZWxmKToKKyAg
ICAgICAgcmV0dXJuIEZhbHNlCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2Nv
bW1vbi9uZXQvanNjdGVzdHJlc3VsdHNfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2NvbW1vbi9uZXQvanNjdGVzdHJlc3VsdHNfdW5pdHRlc3QucHkKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMThl
ZjQ0NGE1NjhlNDYwODgwNDU5MTc2YzVmZmFjMDZmMTVmMTdiNgotLS0gL2Rldi9udWxsCisrKyBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9qc2N0ZXN0cmVzdWx0c191bml0dGVz
dC5weQpAQCAtMCwwICsxLDc1IEBACisjIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1l
dDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyMgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorIyBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMCisjIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisjIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisj
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksCisjIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisKK2ltcG9ydCB1bml0dGVzdAorCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5uZXQuanNjdGVz
dHJlc3VsdHMgaW1wb3J0IEpTQ1Rlc3RSZXN1bHRzCisKKworY2xhc3MgSlNDVGVzdFJlc3VsdHNU
ZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICBkZWYgdGVzdF9yZXN1bHRzX2Zyb21fc3RyaW5n
KHNlbGYpOgorICAgICAgICBub25lX2l0ZW0gPSBOb25lCisgICAgICAgIGVtcHR5X3N0cmluZyA9
ICIiCisgICAgICAgIGludmFsaWRfanNvbiA9ICd7ImFsbEFwaVRlc3RzUGFzc2VkIjonCisgICAg
ICAgIGluY29tcGxldGVfanNvbl92MSA9ICd7ImFsbEFwaVRlc3RzUGFzc2VkIjogdHJ1ZX0nCisg
ICAgICAgIGluY29tcGxldGVfanNvbl92MiA9ICd7InN0cmVzc1Rlc3RGYWlsdXJlcyI6W119Jwor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIEpTQ1Rlc3RSZXN1bHRzLnJlc3VsdHNfZnJv
bV9zdHJpbmcobm9uZV9pdGVtKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCBKU0NU
ZXN0UmVzdWx0cy5yZXN1bHRzX2Zyb21fc3RyaW5nKGVtcHR5X3N0cmluZykpCisgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoTm9uZSwgSlNDVGVzdFJlc3VsdHMucmVzdWx0c19mcm9tX3N0cmluZyhp
bnZhbGlkX2pzb24pKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIEpTQ1Rlc3RSZXN1
bHRzLnJlc3VsdHNfZnJvbV9zdHJpbmcoaW5jb21wbGV0ZV9qc29uX3YxKSkKKyAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChOb25lLCBKU0NUZXN0UmVzdWx0cy5yZXN1bHRzX2Zyb21fc3RyaW5nKGlu
Y29tcGxldGVfanNvbl92MikpCisKKyAgICAgICAgbm9fZmFpbHVyZXNfc3RyaW5nID0gJ3siYWxs
QXBpVGVzdHNQYXNzZWQiOiB0cnVlLCAic3RyZXNzVGVzdEZhaWx1cmVzIjpbXX0nCisgICAgICAg
IG5vX2ZhaWx1cmVzX3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbXSkKKyAgICAgICAg
c2VsZi5hc3NlcnRUcnVlKG5vX2ZhaWx1cmVzX3Jlc3VsdHMuZXF1YWxzKEpTQ1Rlc3RSZXN1bHRz
LnJlc3VsdHNfZnJvbV9zdHJpbmcobm9fZmFpbHVyZXNfc3RyaW5nKSkpCisKKyAgICAgICAgYXBp
X3Rlc3RfZmFpbHVyZXNfc3RyaW5nID0gJ3siYWxsQXBpVGVzdHNQYXNzZWQiOiBmYWxzZSwgInN0
cmVzc1Rlc3RGYWlsdXJlcyI6W119JworICAgICAgICBhcGlfdGVzdF9mYWlsdXJlc19yZXN1bHRz
ID0gSlNDVGVzdFJlc3VsdHMoRmFsc2UsIFtdKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoYXBp
X3Rlc3RfZmFpbHVyZXNfcmVzdWx0cy5lcXVhbHMoSlNDVGVzdFJlc3VsdHMucmVzdWx0c19mcm9t
X3N0cmluZyhhcGlfdGVzdF9mYWlsdXJlc19zdHJpbmcpKSkKKworICAgICAgICBtYW55X2ZhaWx1
cmVzX3N0cmluZyA9ICd7ImFsbEFwaVRlc3RzUGFzc2VkIjogZmFsc2UsICJzdHJlc3NUZXN0RmFp
bHVyZXMiOlsiZXM2LnlhbWwvZXM2L3R5cGVkX2FycmF5c19JbnQxNkFycmF5LmpzLmRlZmF1bHQi
LCAiZXM2LnlhbWwvZXM2L3R5cGVkX2FycmF5c19JbnQ4QXJyYXkuanMuZGVmYXVsdCJdfScKKyAg
ICAgICAgbWFueV9mYWlsdXJlc19yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoRmFsc2UsIFsiZXM2
LnlhbWwvZXM2L3R5cGVkX2FycmF5c19JbnQxNkFycmF5LmpzLmRlZmF1bHQiLCAiZXM2LnlhbWwv
ZXM2L3R5cGVkX2FycmF5c19JbnQ4QXJyYXkuanMuZGVmYXVsdCJdKQorICAgICAgICBzZWxmLmFz
c2VydFRydWUobWFueV9mYWlsdXJlc19yZXN1bHRzLmVxdWFscyhKU0NUZXN0UmVzdWx0cy5yZXN1
bHRzX2Zyb21fc3RyaW5nKG1hbnlfZmFpbHVyZXNfc3RyaW5nKSkpCisKKyAgICAgICAgc2VsZi5h
c3NlcnRGYWxzZShub19mYWlsdXJlc19yZXN1bHRzID09IGFwaV90ZXN0X2ZhaWx1cmVzX3Jlc3Vs
dHMpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoYXBpX3Rlc3RfZmFpbHVyZXNfcmVzdWx0cyA9
PSBtYW55X2ZhaWx1cmVzX3Jlc3VsdHMpCisKKyAgICBkZWYgdGVzdF9pbnRlcnNlY3Rpb25fYXBp
X3Rlc3RzKHNlbGYpOgorICAgICAgICByZXN1bHRzMSA9IEpTQ1Rlc3RSZXN1bHRzKEZhbHNlLCBb
XSkKKyAgICAgICAgcmVzdWx0czIgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbXSkKKworICAgICAg
ICBleHBlY3RlZF9pbnRlcnNlY3Rpb24gPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbXSkKKyAgICAg
ICAgc2VsZi5hc3NlcnRUcnVlKGV4cGVjdGVkX2ludGVyc2VjdGlvbi5lcXVhbHMoSlNDVGVzdFJl
c3VsdHMuaW50ZXJzZWN0aW9uKHJlc3VsdHMxLCByZXN1bHRzMikpKQorCisgICAgZGVmIHRlc3Rf
aW50ZXJzZWN0aW9uX3N0cmVzc190ZXN0cyhzZWxmKToKKyAgICAgICAgcmVzdWx0czEgPSBKU0NU
ZXN0UmVzdWx0cyhUcnVlLCBbJ2ZhaWx1cmUxJywgJ2ZhaWx1cmUyJ10pCisgICAgICAgIHJlc3Vs
dHMyID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgWydmYWlsdXJlMScsICdmYWlsdXJlMyddKQorCisg
ICAgICAgIGV4cGVjdGVkX2ludGVyc2VjdGlvbiA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFsnZmFp
bHVyZTEnXSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGV4cGVjdGVkX2ludGVyc2VjdGlvbi5l
cXVhbHMoSlNDVGVzdFJlc3VsdHMuaW50ZXJzZWN0aW9uKHJlc3VsdHMxLCByZXN1bHRzMikpKQor
CisgICAgZGVmIHRlc3RfaW50ZXJzZWN0aW9uX2dlbmVyYWxfY2FzZShzZWxmKToKKyAgICAgICAg
cmVzdWx0czEgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbJ2ZhaWx1cmUxJywgJ2ZhaWx1cmUyJ10p
CisgICAgICAgIHJlc3VsdHMyID0gSlNDVGVzdFJlc3VsdHMoRmFsc2UsIFsnZmFpbHVyZTEnXSkK
KworICAgICAgICBleHBlY3RlZF9pbnRlcnNlY3Rpb24gPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBb
J2ZhaWx1cmUxJ10pCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShleHBlY3RlZF9pbnRlcnNlY3Rp
b24uZXF1YWxzKEpTQ1Rlc3RSZXN1bHRzLmludGVyc2VjdGlvbihyZXN1bHRzMSwgcmVzdWx0czIp
KSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvZWFybHl3YXJu
aW5nc3lzdGVtdGFzay5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvZWFybHl3
YXJuaW5nc3lzdGVtdGFzay5weQppbmRleCBmYzMwOGI0M2QxZDE3MmFiNzNiMGUzYWY4MGQxYjEz
OWRkM2MxMDMyLi5lY2ZhY2QwMTFiZTg4M2I0YmIxZTVjN2Q3ZGZmZGJkY2I0NTlkZTM1IDEwMDY0
NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2Vhcmx5d2FybmluZ3N5c3Rl
bXRhc2sucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9lYXJseXdhcm5p
bmdzeXN0ZW10YXNrLnB5CkBAIC0xLDQgKzEsNSBAQAogIyBDb3B5cmlnaHQgKGMpIDIwMTEgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBh
cmUKQEAgLTI2LDcgKzI3LDcgQEAKICMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiAjIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKLWZy
b20gd2Via2l0cHkudG9vbC5ib3QucGF0Y2hhbmFseXNpc3Rhc2sgaW1wb3J0IFBhdGNoQW5hbHlz
aXNUYXNrLCBQYXRjaEFuYWx5c2lzVGFza0RlbGVnYXRlLCBVbmFibGVUb0FwcGx5UGF0Y2gsIFBh
dGNoSXNOb3RWYWxpZAorZnJvbSB3ZWJraXRweS50b29sLmJvdC5wYXRjaGFuYWx5c2lzdGFzayBp
bXBvcnQgUGF0Y2hBbmFseXNpc1Rhc2ssIFBhdGNoQW5hbHlzaXNUYXNrRGVsZWdhdGUsIFVuYWJs
ZVRvQXBwbHlQYXRjaCwgUGF0Y2hJc05vdFZhbGlkLCBQYXRjaElzTm90QXBwbGljYWJsZQogCiAK
IGNsYXNzIEVhcmx5V2FybmluZ1N5c3RlbVRhc2tEZWxlZ2F0ZShQYXRjaEFuYWx5c2lzVGFza0Rl
bGVnYXRlKToKQEAgLTU4LDYgKzU5LDggQEAgY2xhc3MgRWFybHlXYXJuaW5nU3lzdGVtVGFzayhQ
YXRjaEFuYWx5c2lzVGFzayk6CiAgICAgICAgICAgICByZXR1cm4gRmFsc2UKICAgICAgICAgaWYg
bm90IHNlbGYuX2FwcGx5KCk6CiAgICAgICAgICAgICByYWlzZSBVbmFibGVUb0FwcGx5UGF0Y2go
c2VsZi5fcGF0Y2gpCisgICAgICAgIGlmIG5vdCBzZWxmLl9jaGVja19wYXRjaF9yZWxldmFuY2Uo
KToKKyAgICAgICAgICAgIHJhaXNlIFBhdGNoSXNOb3RBcHBsaWNhYmxlKHNlbGYuX3BhdGNoKQog
ICAgICAgICBpZiBub3Qgc2VsZi5fYnVpbGQoKToKICAgICAgICAgICAgIGlmIG5vdCBzZWxmLl9i
dWlsZF93aXRob3V0X3BhdGNoKCk6CiAgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCmRpZmYg
LS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2pzY2V3c191bml0dGVzdC5w
eSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvanNjZXdzX3VuaXR0ZXN0LnB5Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjg3MTMwMDAyNTZjM2ZkYzA3MzUxOGIyYjQ5NTNkZmU5MGYzMWNiMDkKLS0tIC9k
ZXYvbnVsbAorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2pzY2V3c191bml0
dGVzdC5weQpAQCAtMCwwICsxLDIxOSBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFy
ZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisjIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IK
KyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorIyBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorCitpbXBvcnQgbG9nZ2luZworaW1wb3J0IHVuaXR0ZXN0CisKK2Zyb20gd2Via2l0
cHkuY29tbW9uLm5ldC5qc2N0ZXN0cmVzdWx0cyBpbXBvcnQgSlNDVGVzdFJlc3VsdHMKK2Zyb20g
d2Via2l0cHkuY29tbW9uLnN5c3RlbS5leGVjdXRpdmUgaW1wb3J0IFNjcmlwdEVycm9yCitmcm9t
IHdlYmtpdHB5LnRvb2wuYm90LnBhdGNoYW5hbHlzaXN0YXNrIGltcG9ydCAqCitmcm9tIHdlYmtp
dHB5LnRvb2wuY29tbWFuZHMuZWFybHl3YXJuaW5nc3lzdGVtIGltcG9ydCBBYnN0cmFjdEVhcmx5
V2FybmluZ1N5c3RlbQorZnJvbSB3ZWJraXRweS50b29sLm1vY2t0b29sIGltcG9ydCBNb2NrVG9v
bAorCitfbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18pCisKKworY2xhc3MgTW9ja1Bh
dGNoQW5hbHlzaXNUYXNrKFBhdGNoQW5hbHlzaXNUYXNrKToKKyAgICBkZWYgX19pbml0X18oc2Vs
ZiwgZGVsZWdhdGUsIHBhdGNoLCBwYXRjaGVzX3Bhc3NlZF9hbGxfdGVzdHMpOgorICAgICAgICBz
ZWxmLl9kZWxlZ2F0ZSA9IGRlbGVnYXRlCisgICAgICAgIHNlbGYuX3BhdGNoID0gcGF0Y2gKKyAg
ICAgICAgc2VsZi5fc2NyaXB0X2Vycm9yID0gTm9uZQorICAgICAgICBzZWxmLl9yZXN1bHRzX2Fy
Y2hpdmVfZnJvbV9wYXRjaF90ZXN0X3J1biA9IE5vbmUKKyAgICAgICAgc2VsZi5fcmVzdWx0c19m
cm9tX3BhdGNoX3Rlc3RfcnVuID0gTm9uZQorICAgICAgICBzZWxmLmVycm9yID0gTm9uZQorICAg
ICAgICBzZWxmLl9wYXRjaGVzX3Bhc3NlZF9hbGxfdGVzdHMgPSBwYXRjaGVzX3Bhc3NlZF9hbGxf
dGVzdHMKKyAgICAgICAgc2VsZi5fdGVzdF9ydW5fY291bnQgPSAwCisgICAgICAgIHNlbGYuZmFp
bHVyZV9zdGF0dXNfaWQgPSA0MgorCisgICAgZGVmIF90ZXN0KHNlbGYpOgorICAgICAgICBzZWxm
Ll90ZXN0X3J1bl9jb3VudCArPSAxCisKKyAgICAgICAgaWYgc2VsZi5fcGF0Y2hlc19wYXNzZWRf
YWxsX3Rlc3RzLnBvcCgpID09IFRydWU6CisgICAgICAgICAgICByZXR1cm4gVHJ1ZQorICAgICAg
ICBlbHNlOgorICAgICAgICAgICAgc2VsZi5fc2NyaXB0X2Vycm9yID0gU2NyaXB0RXJyb3IoIlJl
Z3Jlc3Npb24gdGVzdCIpCisgICAgICAgICAgICByZXR1cm4gRmFsc2UKKworICAgIGRlZiBfYnVp
bGRfYW5kX3Rlc3Rfd2l0aG91dF9wYXRjaChzZWxmKToKKyAgICAgICAgc2VsZi5fdGVzdF9ydW5f
Y291bnQgKz0gMQorICAgICAgICByZXR1cm4gVHJ1ZQorCisgICAgZGVmIHZhbGlkYXRlKHNlbGYp
OgorICAgICAgICByZXR1cm4gVHJ1ZQorCisgICAgZGVmIHRlc3RfcnVuX2NvdW50KHNlbGYpOgor
ICAgICAgICByZXR1cm4gc2VsZi5fdGVzdF9ydW5fY291bnQKKworCisjIFRoaXMgaXMgdGhlIGRl
bGVnYXRlIHRvIGJlIHVzZWQgd2l0aCBNb2NrUGF0Y2hBbmFseXNpc1Rhc2ssIGFib3ZlLgorY2xh
c3MgTW9ja0pTQ0Vhcmx5V2FybmluZ1N5c3RlbShBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbSk6
CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGZpcnN0X3Rlc3RfcmVzdWx0cywgc2Vjb25kX3Rlc3Rf
cmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKToKKyAgICAgICAgQWJzdHJhY3RFYXJseVdhcm5p
bmdTeXN0ZW0uX19pbml0X18oc2VsZikKKyAgICAgICAgc2VsZi5fZ3JvdXAgPSAianNjIgorICAg
ICAgICBzZWxmLl9yZXN1bHRzX2luX29yZGVyID0gW2NsZWFuX3Rlc3RfcmVzdWx0cywgc2Vjb25k
X3Rlc3RfcmVzdWx0cywgZmlyc3RfdGVzdF9yZXN1bHRzXQorCisgICAgZGVmIHRlc3RfcmVzdWx0
cyhzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX3Jlc3VsdHNfaW5fb3JkZXIucG9wKCkKKwor
CitjbGFzcyBKU0NFYXJseVdhcm5pbmdTeXN0ZW1UZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAg
ICBkZWYgX3Jlc3VsdHNfaW5kaWNhdGVfYWxsX3Bhc3NlZChzZWxmLCByZXN1bHRzKToKKyAgICAg
ICAgaWYgcmVzdWx0cyA9PSBOb25lOgorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAg
IHJldHVybiByZXN1bHRzLmFsbF9wYXNzZWQoKQorCisgICAgZGVmIF9jcmVhdGVfdGFzayhzZWxm
LCBmaXJzdF90ZXN0X3Jlc3VsdHMsIHNlY29uZF90ZXN0X3Jlc3VsdHMsIGNsZWFuX3Rlc3RfcmVz
dWx0cyk6CisgICAgICAgIHF1ZXVlID0gTW9ja0pTQ0Vhcmx5V2FybmluZ1N5c3RlbShmaXJzdF90
ZXN0X3Jlc3VsdHMsIHNlY29uZF90ZXN0X3Jlc3VsdHMsIGNsZWFuX3Rlc3RfcmVzdWx0cykKKyAg
ICAgICAgdG9vbCA9IE1vY2tUb29sKGxvZ19leGVjdXRpdmU9VHJ1ZSkKKyAgICAgICAgcGF0Y2gg
PSB0b29sLmJ1Z3MuZmV0Y2hfYXR0YWNobWVudCgxMDAwMCkKKyAgICAgICAgcGF0Y2hlc19wYXNz
ZWRfYWxsX3Rlc3RzID0gbWFwKHNlbGYuX3Jlc3VsdHNfaW5kaWNhdGVfYWxsX3Bhc3NlZCwgW3Nl
Y29uZF90ZXN0X3Jlc3VsdHMsIGZpcnN0X3Rlc3RfcmVzdWx0c10pCisgICAgICAgIHJldHVybiBN
b2NrUGF0Y2hBbmFseXNpc1Rhc2socXVldWUsIHBhdGNoLCBwYXRjaGVzX3Bhc3NlZF9hbGxfdGVz
dHMpCisKKyAgICBkZWYgdGVzdF9zdWNjZXNzX2Nhc2Uoc2VsZik6CisgICAgICAgIGZpcnN0X3Rl
c3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFtdKQorICAgICAgICBzZWNvbmRfdGVz
dF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgW10pCisgICAgICAgIGNsZWFuX3Rlc3Rf
cmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFtdKQorICAgICAgICB0YXNrID0gc2VsZi5f
Y3JlYXRlX3Rhc2soZmlyc3RfdGVzdF9yZXN1bHRzLCBzZWNvbmRfdGVzdF9yZXN1bHRzLCBjbGVh
bl90ZXN0X3Jlc3VsdHMpCisKKyAgICAgICAgcmV0dXJuX3ZhbHVlID0gdGFzay5fdGVzdF9wYXRj
aCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGFzay50ZXN0X3J1bl9jb3VudCgpLCAxKQor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJldHVybl92YWx1ZSwgVHJ1ZSkKKworICAgIGRlZiB0
ZXN0X3Rlc3RfZmFpbHVyZShzZWxmKToKKyAgICAgICAgZmlyc3RfdGVzdF9yZXN1bHRzID0gSlND
VGVzdFJlc3VsdHMoVHJ1ZSwgWydGYWlsLmpzJ10pCisgICAgICAgIHNlY29uZF90ZXN0X3Jlc3Vs
dHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbJ0ZhaWwuanMnXSkKKyAgICAgICAgY2xlYW5fdGVz
dF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgW10pCisgICAgICAgIHRhc2sgPSBzZWxm
Ll9jcmVhdGVfdGFzayhmaXJzdF90ZXN0X3Jlc3VsdHMsIHNlY29uZF90ZXN0X3Jlc3VsdHMsIGNs
ZWFuX3Rlc3RfcmVzdWx0cykKKworICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFNjcmlw
dEVycm9yKToKKyAgICAgICAgICAgIHJldHVybl92YWx1ZSA9IHRhc2suX3Rlc3RfcGF0Y2goKQor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRhc2sudGVzdF9ydW5fY291bnQoKSwgMykKKworICAg
IGRlZiB0ZXN0X2ZpeChzZWxmKToKKyAgICAgICAgZmlyc3RfdGVzdF9yZXN1bHRzID0gSlNDVGVz
dFJlc3VsdHMoVHJ1ZSwgW10pCisgICAgICAgIHNlY29uZF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0
UmVzdWx0cyhUcnVlLCBbXSkKKyAgICAgICAgY2xlYW5fdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJl
c3VsdHMoVHJ1ZSwgWydGYWlsLmpzJ10pCisgICAgICAgIHRhc2sgPSBzZWxmLl9jcmVhdGVfdGFz
ayhmaXJzdF90ZXN0X3Jlc3VsdHMsIHNlY29uZF90ZXN0X3Jlc3VsdHMsIGNsZWFuX3Rlc3RfcmVz
dWx0cykKKworICAgICAgICByZXR1cm5fdmFsdWUgPSB0YXNrLl90ZXN0X3BhdGNoKCkKKyAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbCh0YXNrLnRlc3RfcnVuX2NvdW50KCksIDEpCisgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwocmV0dXJuX3ZhbHVlLCBUcnVlKQorCisgICAgZGVmIHRlc3RfaW5lZmZl
Y3RpdmVfcGF0Y2goc2VsZik6CisgICAgICAgIGZpcnN0X3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RS
ZXN1bHRzKEZhbHNlLCBbJ2ZhaWx1cmUxLmpzJywgJ2ZhaWx1cmUyLmpzJ10pCisgICAgICAgIHNl
Y29uZF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhGYWxzZSwgWydmYWlsdXJlMS5qcycs
ICdmYWlsdXJlMi5qcyddKQorICAgICAgICBjbGVhbl90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVz
dWx0cyhGYWxzZSwgWydmYWlsdXJlMS5qcycsICdmYWlsdXJlMi5qcyddKQorICAgICAgICB0YXNr
ID0gc2VsZi5fY3JlYXRlX3Rhc2soZmlyc3RfdGVzdF9yZXN1bHRzLCBzZWNvbmRfdGVzdF9yZXN1
bHRzLCBjbGVhbl90ZXN0X3Jlc3VsdHMpCisKKyAgICAgICAgcmV0dXJuX3ZhbHVlID0gdGFzay5f
dGVzdF9wYXRjaCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGFzay50ZXN0X3J1bl9jb3Vu
dCgpLCAzKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJldHVybl92YWx1ZSwgVHJ1ZSkKKwor
ICAgIGRlZiB0ZXN0X3BhcnRpYWxseV9lZmZlY3RpdmVfcGF0Y2goc2VsZik6CisgICAgICAgIGZp
cnN0X3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFsnZmFpbHVyZTIuanMnXSkK
KyAgICAgICAgc2Vjb25kX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFsnZmFp
bHVyZTIuanMnXSkKKyAgICAgICAgY2xlYW5fdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMo
RmFsc2UsIFsnZmFpbHVyZTEuanMnLCAnZmFpbHVyZTIuanMnXSkKKyAgICAgICAgdGFzayA9IHNl
bGYuX2NyZWF0ZV90YXNrKGZpcnN0X3Rlc3RfcmVzdWx0cywgc2Vjb25kX3Rlc3RfcmVzdWx0cywg
Y2xlYW5fdGVzdF9yZXN1bHRzKQorCisgICAgICAgIHJldHVybl92YWx1ZSA9IHRhc2suX3Rlc3Rf
cGF0Y2goKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRhc2sudGVzdF9ydW5fY291bnQoKSwg
MykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXR1cm5fdmFsdWUsIFRydWUpCisKKyAgICBk
ZWYgdGVzdF9kaWZmZXJlbnRfdGVzdF9mYWlsdXJlc19pbl9wYXRjaF9hbmRfdHJlZShzZWxmKToK
KyAgICAgICAgZmlyc3RfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoRmFsc2UsIFtdKQor
ICAgICAgICBzZWNvbmRfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoRmFsc2UsIFtdKQor
ICAgICAgICBjbGVhbl90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbJ2ZhaWx1
cmUxLmpzJywgJ2ZhaWx1cmUyLmpzJ10pCisgICAgICAgIHRhc2sgPSBzZWxmLl9jcmVhdGVfdGFz
ayhmaXJzdF90ZXN0X3Jlc3VsdHMsIHNlY29uZF90ZXN0X3Jlc3VsdHMsIGNsZWFuX3Rlc3RfcmVz
dWx0cykKKworICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFNjcmlwdEVycm9yKToKKyAg
ICAgICAgICAgIHJldHVybl92YWx1ZSA9IHRhc2suX3Rlc3RfcGF0Y2goKQorICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKHRhc2sudGVzdF9ydW5fY291bnQoKSwgMykKKworICAgIGRlZiB0ZXN0X2Zp
cnN0X3Jlc3VsdHNfY291bGRfbm90X2JlX3JlYWQoc2VsZik6CisgICAgICAgIGZpcnN0X3Rlc3Rf
cmVzdWx0cyA9IE5vbmUKKyAgICAgICAgc2Vjb25kX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1
bHRzKFRydWUsIFtdKQorICAgICAgICBjbGVhbl90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0
cyhUcnVlLCBbXSkKKyAgICAgICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90YXNrKGZpcnN0X3Rlc3Rf
cmVzdWx0cywgc2Vjb25kX3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKQorCisgICAg
ICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoU2NyaXB0RXJyb3IpOgorICAgICAgICAgICAgcmV0
dXJuX3ZhbHVlID0gdGFzay5fdGVzdF9wYXRjaCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
dGFzay50ZXN0X3J1bl9jb3VudCgpLCAxKQorCisgICAgZGVmIHRlc3Rfc2Vjb25kX3Jlc3VsdHNf
Y291bGRfbm90X2JlX3JlYWQoc2VsZik6CisgICAgICAgIGZpcnN0X3Rlc3RfcmVzdWx0cyA9IEpT
Q1Rlc3RSZXN1bHRzKEZhbHNlLCBbJ2ZhaWx1cmUxLmpzJywgJ2ZhaWx1cmUyLmpzJ10pCisgICAg
ICAgIHNlY29uZF90ZXN0X3Jlc3VsdHMgPSBOb25lCisgICAgICAgIGNsZWFuX3Rlc3RfcmVzdWx0
cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFtdKQorICAgICAgICB0YXNrID0gc2VsZi5fY3JlYXRl
X3Rhc2soZmlyc3RfdGVzdF9yZXN1bHRzLCBzZWNvbmRfdGVzdF9yZXN1bHRzLCBjbGVhbl90ZXN0
X3Jlc3VsdHMpCisKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhTY3JpcHRFcnJvcik6
CisgICAgICAgICAgICByZXR1cm5fdmFsdWUgPSB0YXNrLl90ZXN0X3BhdGNoKCkKKyAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbCh0YXNrLnRlc3RfcnVuX2NvdW50KCksIDIpCisKKyAgICBkZWYgdGVz
dF9jbGVhbl9yZXN1bHRzX2NvdWxkX25vdF9iZV9yZWFkKHNlbGYpOgorICAgICAgICBmaXJzdF90
ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbJ2ZhaWx1cmUyLmpzJ10pCisgICAg
ICAgIHNlY29uZF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbJ2ZhaWx1cmUy
LmpzJ10pCisgICAgICAgIGNsZWFuX3Rlc3RfcmVzdWx0cyA9IE5vbmUKKyAgICAgICAgdGFzayA9
IHNlbGYuX2NyZWF0ZV90YXNrKGZpcnN0X3Rlc3RfcmVzdWx0cywgc2Vjb25kX3Rlc3RfcmVzdWx0
cywgY2xlYW5fdGVzdF9yZXN1bHRzKQorCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMo
U2NyaXB0RXJyb3IpOgorICAgICAgICAgICAgcmV0dXJuX3ZhbHVlID0gdGFzay5fdGVzdF9wYXRj
aCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGFzay50ZXN0X3J1bl9jb3VudCgpLCAzKQor
CisgICAgZGVmIHRlc3RfZmxha3lfcmVzdWx0c19vbl9jbGVhbl90cmVlX3Bhc3Moc2VsZik6Cisg
ICAgICAgIGZpcnN0X3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFsnZmFpbHVy
ZTIuanMnXSkKKyAgICAgICAgc2Vjb25kX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRy
dWUsIFtdKQorICAgICAgICBjbGVhbl90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVl
LCBbXSkKKyAgICAgICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90YXNrKGZpcnN0X3Rlc3RfcmVzdWx0
cywgc2Vjb25kX3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKQorCisgICAgICAgIHJl
dHVybl92YWx1ZSA9IHRhc2suX3Rlc3RfcGF0Y2goKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KHJldHVybl92YWx1ZSwgVHJ1ZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0YXNrLnRlc3Rf
cnVuX2NvdW50KCksIDIpCisKKyAgICBkZWYgdGVzdF9mbGFreV9yZXN1bHRzX29uX2NsZWFuX3Ry
ZWVfcGFzc192MihzZWxmKToKKyAgICAgICAgZmlyc3RfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJl
c3VsdHMoVHJ1ZSwgW10pCisgICAgICAgIHNlY29uZF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVz
dWx0cyhUcnVlLCBbJ2ZhaWx1cmUyLmpzJ10pCisgICAgICAgIGNsZWFuX3Rlc3RfcmVzdWx0cyA9
IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFtdKQorICAgICAgICB0YXNrID0gc2VsZi5fY3JlYXRlX3Rh
c2soZmlyc3RfdGVzdF9yZXN1bHRzLCBzZWNvbmRfdGVzdF9yZXN1bHRzLCBjbGVhbl90ZXN0X3Jl
c3VsdHMpCisKKyAgICAgICAgcmV0dXJuX3ZhbHVlID0gdGFzay5fdGVzdF9wYXRjaCgpCisgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwocmV0dXJuX3ZhbHVlLCBUcnVlKQorICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKHRhc2sudGVzdF9ydW5fY291bnQoKSwgMSkKKworICAgIGRlZiB0ZXN0X2ZsYWt5
X3Jlc3VsdHNfb25fY2xlYW5fdHJlZV9mYWlsdXJlKHNlbGYpOgorICAgICAgICBmaXJzdF90ZXN0
X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhGYWxzZSwgWydmYWlsdXJlMS5qcycsICdmYWlsdXJl
Mi5qcyddKQorICAgICAgICBzZWNvbmRfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1
ZSwgWydmYWlsdXJlMi5qcyddKQorICAgICAgICBjbGVhbl90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0
UmVzdWx0cyhUcnVlLCBbXSkKKyAgICAgICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90YXNrKGZpcnN0
X3Rlc3RfcmVzdWx0cywgc2Vjb25kX3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKQor
CisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoU2NyaXB0RXJyb3IpOgorICAgICAgICAg
ICAgcmV0dXJuX3ZhbHVlID0gdGFzay5fdGVzdF9wYXRjaCgpCisgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwodGFzay50ZXN0X3J1bl9jb3VudCgpLCAzKQorCisgICAgZGVmIHRlc3RfZmxha3lfcmVz
dWx0c19vbl9yZWRfdHJlZV9wYXNzKHNlbGYpOgorICAgICAgICBmaXJzdF90ZXN0X3Jlc3VsdHMg
PSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbJ2ZhaWx1cmUxLmpzJ10pCisgICAgICAgIHNlY29uZF90
ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbJ2ZhaWx1cmUxLmpzJywgJ2ZhaWx1
cmUyLmpzJ10pCisgICAgICAgIGNsZWFuX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRy
dWUsIFsnZmFpbHVyZTEuanMnXSkKKyAgICAgICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90YXNrKGZp
cnN0X3Rlc3RfcmVzdWx0cywgc2Vjb25kX3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRz
KQorCisgICAgICAgIHJldHVybl92YWx1ZSA9IHRhc2suX3Rlc3RfcGF0Y2goKQorICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKHJldHVybl92YWx1ZSwgVHJ1ZSkKKyAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbCh0YXNrLnRlc3RfcnVuX2NvdW50KCksIDMpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L3Rvb2wvYm90L2pzY3Rlc3RyZXN1bHRzcmVhZGVyLnB5IGIvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS90b29sL2JvdC9qc2N0ZXN0cmVzdWx0c3JlYWRlci5weQpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44
YWM1MzJiMTllN2VhNTVkMzViOTEzOWI0ZjIwOTk4MDViYTAwNDllCi0tLSAvZGV2L251bGwKKysr
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9qc2N0ZXN0cmVzdWx0c3JlYWRlci5w
eQpAQCAtMCwwICsxLDQ3IEBACisjIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoK
KyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyMgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorIyBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMCisjIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisjIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisjIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksCisjIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisKK2ltcG9ydCBsb2dnaW5nCisKK2Zyb20gd2Via2l0cHkuY29tbW9uLm5ldC5qc2N0ZXN0cmVz
dWx0cyBpbXBvcnQgSlNDVGVzdFJlc3VsdHMKKworX2xvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9f
bmFtZV9fKQorCisKK2NsYXNzIEpTQ1Rlc3RSZXN1bHRzUmVhZGVyKG9iamVjdCk6CisgICAgZGVm
IF9faW5pdF9fKHNlbGYsIGhvc3QsIHJlc3VsdHNfZGlyZWN0b3J5KToKKyAgICAgICAgc2VsZi5f
aG9zdCA9IGhvc3QKKyAgICAgICAgc2VsZi5fcmVzdWx0c19kaXJlY3RvcnkgPSByZXN1bHRzX2Rp
cmVjdG9yeQorCisgICAgZGVmIF9yZWFkX2ZpbGVfY29udGVudHMoc2VsZiwgcGF0aCk6CisgICAg
ICAgIHRyeToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLl9ob3N0LmZpbGVzeXN0ZW0ucmVhZF90
ZXh0X2ZpbGUocGF0aCkKKyAgICAgICAgZXhjZXB0IElPRXJyb3IsIGU6ICAjIEZpbGUgZG9lcyBu
b3QgZXhpc3Qgb3IgY2FuJ3QgYmUgcmVhZC4KKyAgICAgICAgICAgIHJldHVybiBOb25lCisKKyAg
ICBkZWYgX2NyZWF0ZV9qc2NfdGVzdF9yZXN1bHRzKHNlbGYpOgorICAgICAgICByZXN1bHRzX3Bh
dGggPSBzZWxmLl9ob3N0LmZpbGVzeXN0ZW0uam9pbihzZWxmLl9yZXN1bHRzX2RpcmVjdG9yeSwg
ImpzY190ZXN0X3Jlc3VsdHMuanNvbiIpCisgICAgICAgIGNvbnRlbnRzID0gc2VsZi5fcmVhZF9m
aWxlX2NvbnRlbnRzKHJlc3VsdHNfcGF0aCkKKyAgICAgICAgcmV0dXJuIEpTQ1Rlc3RSZXN1bHRz
LnJlc3VsdHNfZnJvbV9zdHJpbmcoY29udGVudHMpCisKKyAgICBkZWYgcmVzdWx0cyhzZWxmKToK
KyAgICAgICAgcmV0dXJuIHNlbGYuX2NyZWF0ZV9qc2NfdGVzdF9yZXN1bHRzKCkKZGlmZiAtLWdp
dCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvcGF0Y2hhbmFseXNpc3Rhc2sucHkg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L3BhdGNoYW5hbHlzaXN0YXNrLnB5Cmlu
ZGV4IDc1MjMxNjQxNmM1ZjlkMGEzZTU5ZWY2ZDA1ZTMxNzg1ZjkxNzQ2MjkuLmE3NDBmZDY4NDE1
YzNhZDdkMzk4ODEwM2NiNGEzNTM4MTQ3Y2IwMWIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvdG9vbC9ib3QvcGF0Y2hhbmFseXNpc3Rhc2sucHkKKysrIGIvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS90b29sL2JvdC9wYXRjaGFuYWx5c2lzdGFzay5weQpAQCAtMSw0ICsxLDUgQEAK
ICMgQ29weXJpZ2h0IChjKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisj
IENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAj
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC0yOCw2ICsyOSw3IEBACiAKIGZyb20gd2Vi
a2l0cHkuY29tbW9uLnN5c3RlbS5leGVjdXRpdmUgaW1wb3J0IFNjcmlwdEVycm9yCiBmcm9tIHdl
YmtpdHB5LmNvbW1vbi5uZXQubGF5b3V0dGVzdHJlc3VsdHMgaW1wb3J0IExheW91dFRlc3RSZXN1
bHRzCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5uZXQuanNjdGVzdHJlc3VsdHMgaW1wb3J0IEpTQ1Rl
c3RSZXN1bHRzCiAKIAogY2xhc3MgVW5hYmxlVG9BcHBseVBhdGNoKEV4Y2VwdGlvbik6CkBAIC00
Myw2ICs0NSwxMSBAQCBjbGFzcyBQYXRjaElzTm90VmFsaWQoRXhjZXB0aW9uKToKICAgICAgICAg
c2VsZi5mYWlsdXJlX21lc3NhZ2UgPSBmYWlsdXJlX21lc3NhZ2UKIAogCitjbGFzcyBQYXRjaElz
Tm90QXBwbGljYWJsZShFeGNlcHRpb24pOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwYXRjaCk6
CisgICAgICAgIEV4Y2VwdGlvbi5fX2luaXRfXyhzZWxmKQorICAgICAgICBzZWxmLnBhdGNoID0g
cGF0Y2gKKwogY2xhc3MgUGF0Y2hBbmFseXNpc1Rhc2tEZWxlZ2F0ZShvYmplY3QpOgogICAgIGRl
ZiBwYXJlbnRfY29tbWFuZChzZWxmKToKICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJv
cigic3ViY2xhc3NlcyBtdXN0IGltcGxlbWVudCIpCkBAIC0xMjIsMjggKzEyOSw1MyBAQCBjbGFz
cyBQYXRjaEFuYWx5c2lzVGFzayhvYmplY3QpOgogICAgICAgICAiQXBwbGllZCBwYXRjaCIsCiAg
ICAgICAgICJQYXRjaCBkb2VzIG5vdCBhcHBseSIpCiAKKyAgICBkZWYgX2NoZWNrX3BhdGNoX3Jl
bGV2YW5jZShzZWxmKToKKyAgICAgICAgYXJncyA9IFsKKyAgICAgICAgICAgICJjaGVjay1wYXRj
aC1yZWxldmFuY2UiLAorICAgICAgICBdCisKKyAgICAgICAgaWYgaGFzYXR0cihzZWxmLl9kZWxl
Z2F0ZSwgJ2dyb3VwJyk6CisgICAgICAgICAgICBhcmdzLmFwcGVuZCgiLS1ncm91cD0lcyIgJSBz
ZWxmLl9kZWxlZ2F0ZS5ncm91cCgpKQorCisgICAgICAgIHJldHVybiBzZWxmLl9ydW5fY29tbWFu
ZCgKKyAgICAgICAgICAgIGFyZ3MsCisgICAgICAgICAgICAiQ2hlY2tlZCByZWxldmFuY2Ugb2Yg
cGF0Y2giLAorICAgICAgICAgICAgIlBhdGNoIHdhcyBub3QgcmVsZXZhbnQiKQorCiAgICAgZGVm
IF9idWlsZChzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYuX3J1bl9jb21tYW5kKFsKKyAgICAg
ICAgYXJncyA9IFsKICAgICAgICAgICAgICJidWlsZCIsCiAgICAgICAgICAgICAiLS1uby1jbGVh
biIsCiAgICAgICAgICAgICAiLS1uby11cGRhdGUiLAogICAgICAgICAgICAgIi0tYnVpbGQtc3R5
bGU9JXMiICUgc2VsZi5fZGVsZWdhdGUuYnVpbGRfc3R5bGUoKSwKLSAgICAgICAgXSwKLSAgICAg
ICAgIkJ1aWx0IHBhdGNoIiwKLSAgICAgICAgIlBhdGNoIGRvZXMgbm90IGJ1aWxkIikKKyAgICAg
ICAgXQorCisgICAgICAgIGlmIGhhc2F0dHIoc2VsZi5fZGVsZWdhdGUsICdncm91cCcpOgorICAg
ICAgICAgICAgYXJncy5hcHBlbmQoIi0tZ3JvdXA9JXMiICUgc2VsZi5fZGVsZWdhdGUuZ3JvdXAo
KSkKKworICAgICAgICByZXR1cm4gc2VsZi5fcnVuX2NvbW1hbmQoCisgICAgICAgICAgICBhcmdz
LAorICAgICAgICAgICAgIkJ1aWx0IHBhdGNoIiwKKyAgICAgICAgICAgICJQYXRjaCBkb2VzIG5v
dCBidWlsZCIpCiAKICAgICBkZWYgX2J1aWxkX3dpdGhvdXRfcGF0Y2goc2VsZik6Ci0gICAgICAg
IHJldHVybiBzZWxmLl9ydW5fY29tbWFuZChbCisgICAgICAgIGFyZ3MgPSBbCiAgICAgICAgICAg
ICAiYnVpbGQiLAogICAgICAgICAgICAgIi0tZm9yY2UtY2xlYW4iLAogICAgICAgICAgICAgIi0t
bm8tdXBkYXRlIiwKICAgICAgICAgICAgICItLWJ1aWxkLXN0eWxlPSVzIiAlIHNlbGYuX2RlbGVn
YXRlLmJ1aWxkX3N0eWxlKCksCi0gICAgICAgIF0sCi0gICAgICAgICJBYmxlIHRvIGJ1aWxkIHdp
dGhvdXQgcGF0Y2giLAotICAgICAgICAiVW5hYmxlIHRvIGJ1aWxkIHdpdGhvdXQgcGF0Y2giKQor
ICAgICAgICBdCisKKyAgICAgICAgaWYgaGFzYXR0cihzZWxmLl9kZWxlZ2F0ZSwgJ2dyb3VwJyk6
CisgICAgICAgICAgICBhcmdzLmFwcGVuZCgiLS1ncm91cD0lcyIgJSBzZWxmLl9kZWxlZ2F0ZS5n
cm91cCgpKQorCisgICAgICAgIHJldHVybiBzZWxmLl9ydW5fY29tbWFuZCgKKyAgICAgICAgICAg
IGFyZ3MsCisgICAgICAgICAgICAiQWJsZSB0byBidWlsZCB3aXRob3V0IHBhdGNoIiwKKyAgICAg
ICAgICAgICJVbmFibGUgdG8gYnVpbGQgd2l0aG91dCBwYXRjaCIpCiAKICAgICBkZWYgX3Rlc3Qo
c2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmLl9ydW5fY29tbWFuZChbCisgICAgICAgIGFyZ3Mg
PSBbCiAgICAgICAgICAgICAiYnVpbGQtYW5kLXRlc3QiLAogICAgICAgICAgICAgIi0tbm8tY2xl
YW4iLAogICAgICAgICAgICAgIi0tbm8tdXBkYXRlIiwKQEAgLTE1MSwxMiArMTgzLDE4IEBAIGNs
YXNzIFBhdGNoQW5hbHlzaXNUYXNrKG9iamVjdCk6CiAgICAgICAgICAgICAiLS10ZXN0IiwKICAg
ICAgICAgICAgICItLW5vbi1pbnRlcmFjdGl2ZSIsCiAgICAgICAgICAgICAiLS1idWlsZC1zdHls
ZT0lcyIgJSBzZWxmLl9kZWxlZ2F0ZS5idWlsZF9zdHlsZSgpLAotICAgICAgICBdLAotICAgICAg
ICAiUGFzc2VkIHRlc3RzIiwKLSAgICAgICAgIlBhdGNoIGRvZXMgbm90IHBhc3MgdGVzdHMiKQor
ICAgICAgICBdCisKKyAgICAgICAgaWYgaGFzYXR0cihzZWxmLl9kZWxlZ2F0ZSwgJ2dyb3VwJyk6
CisgICAgICAgICAgICBhcmdzLmFwcGVuZCgiLS1ncm91cD0lcyIgJSBzZWxmLl9kZWxlZ2F0ZS5n
cm91cCgpKQorCisgICAgICAgIHJldHVybiBzZWxmLl9ydW5fY29tbWFuZCgKKyAgICAgICAgICAg
IGFyZ3MsCisgICAgICAgICAgICAiUGFzc2VkIHRlc3RzIiwKKyAgICAgICAgICAgICJQYXRjaCBk
b2VzIG5vdCBwYXNzIHRlc3RzIikKIAogICAgIGRlZiBfYnVpbGRfYW5kX3Rlc3Rfd2l0aG91dF9w
YXRjaChzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYuX3J1bl9jb21tYW5kKFsKKyAgICAgICAg
YXJncyA9IFsKICAgICAgICAgICAgICJidWlsZC1hbmQtdGVzdCIsCiAgICAgICAgICAgICAiLS1m
b3JjZS1jbGVhbiIsCiAgICAgICAgICAgICAiLS1uby11cGRhdGUiLApAQCAtMTY0LDkgKzIwMiwx
NSBAQCBjbGFzcyBQYXRjaEFuYWx5c2lzVGFzayhvYmplY3QpOgogICAgICAgICAgICAgIi0tdGVz
dCIsCiAgICAgICAgICAgICAiLS1ub24taW50ZXJhY3RpdmUiLAogICAgICAgICAgICAgIi0tYnVp
bGQtc3R5bGU9JXMiICUgc2VsZi5fZGVsZWdhdGUuYnVpbGRfc3R5bGUoKSwKLSAgICAgICAgXSwK
LSAgICAgICAgIkFibGUgdG8gcGFzcyB0ZXN0cyB3aXRob3V0IHBhdGNoIiwKLSAgICAgICAgIlVu
YWJsZSB0byBwYXNzIHRlc3RzIHdpdGhvdXQgcGF0Y2ggKHRyZWUgaXMgcmVkPykiKQorICAgICAg
ICBdCisKKyAgICAgICAgaWYgaGFzYXR0cihzZWxmLl9kZWxlZ2F0ZSwgJ2dyb3VwJyk6CisgICAg
ICAgICAgICBhcmdzLmFwcGVuZCgiLS1ncm91cD0lcyIgJSBzZWxmLl9kZWxlZ2F0ZS5ncm91cCgp
KQorCisgICAgICAgIHJldHVybiBzZWxmLl9ydW5fY29tbWFuZCgKKyAgICAgICAgICAgIGFyZ3Ms
CisgICAgICAgICAgICAiQWJsZSB0byBwYXNzIHRlc3RzIHdpdGhvdXQgcGF0Y2giLAorICAgICAg
ICAgICAgIlVuYWJsZSB0byBwYXNzIHRlc3RzIHdpdGhvdXQgcGF0Y2ggKHRyZWUgaXMgcmVkPyki
KQogCiAgICAgZGVmIF9sYW5kKHNlbGYpOgogICAgICAgICAjIFVuY2xlYXIgaWYgdGhpcyBzaG91
bGQgcGFzcyAtLXF1aWV0IG9yIG5vdC4gIElmIC0tcGFyZW50LWNvbW1hbmQgYWx3YXlzIGRvZXMg
dGhlIHJlcG9ydGluZywgdGhlbiBpdCBzaG91bGQuCkBAIC0yMTAsNjkgKzI1NCw5OCBAQCBjbGFz
cyBQYXRjaEFuYWx5c2lzVGFzayhvYmplY3QpOgogICAgICAgICBpZiBzZWxmLl90ZXN0KCk6CiAg
ICAgICAgICAgICByZXR1cm4gVHJ1ZQogCi0gICAgICAgICMgTm90ZTogYXJjaGl2ZV9sYXN0X3Rl
c3RfcmVzdWx0cyBkZWxldGVzIHRoZSByZXN1bHRzIGRpcmVjdG9yeSwgbWFraW5nIHRoZXNlIGNh
bGxzIG9yZGVyLXNlbnNpdHZlLgotICAgICAgICAjIFdlIGNvdWxkIHJlbW92ZSB0aGlzIGRlcGVu
ZGVuY3kgYnkgYnVpbGRpbmcgdGhlIHRlc3RfcmVzdWx0cyBmcm9tIHRoZSBhcmNoaXZlLgotICAg
ICAgICBmaXJzdF9yZXN1bHRzID0gc2VsZi5fZGVsZWdhdGUudGVzdF9yZXN1bHRzKCkKLSAgICAg
ICAgZmlyc3RfcmVzdWx0c19hcmNoaXZlID0gc2VsZi5fZGVsZWdhdGUuYXJjaGl2ZV9sYXN0X3Rl
c3RfcmVzdWx0cyhzZWxmLl9wYXRjaCkKLSAgICAgICAgZmlyc3Rfc2NyaXB0X2Vycm9yID0gc2Vs
Zi5fc2NyaXB0X2Vycm9yCi0gICAgICAgIGZpcnN0X2ZhaWx1cmVfc3RhdHVzX2lkID0gc2VsZi5m
YWlsdXJlX3N0YXR1c19pZAotCi0gICAgICAgIGlmIHNlbGYuX3Rlc3QoKSBhbmQgbm90IGZpcnN0
X3Jlc3VsdHMuZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQoKToKLSAgICAgICAgICAgICMg
T25seSByZXBvcnQgZmxha3kgdGVzdHMgaWYgd2Ugd2VyZSBzdWNjZXNzZnVsIGF0IHBhcnNpbmcg
cmVzdWx0cy5qc29uIGFuZCBhcmNoaXZpbmcgcmVzdWx0cy4KLSAgICAgICAgICAgIGlmIGZpcnN0
X3Jlc3VsdHMgYW5kIGZpcnN0X3Jlc3VsdHNfYXJjaGl2ZToKLSAgICAgICAgICAgICAgICBzZWxm
Ll9yZXBvcnRfZmxha3lfdGVzdHMoZmlyc3RfcmVzdWx0cy5mYWlsaW5nX3Rlc3RfcmVzdWx0cygp
LCBmaXJzdF9yZXN1bHRzX2FyY2hpdmUpCi0gICAgICAgICAgICByZXR1cm4gVHJ1ZQorICAgICAg
ICAjIEZJWE1FOiBBYnN0cmFjdCBvdXQgdGhlIHJldHJ5IGxvZ2ljIGluc3RlYWQgb2YgY2FzaW5n
IG9uIHRoZSB0ZXN0IHN1aXRlIGhlcmUuCisgICAgICAgIGlmIGhhc2F0dHIoc2VsZi5fZGVsZWdh
dGUsICdncm91cCcpIGFuZCBzZWxmLl9kZWxlZ2F0ZS5ncm91cCgpID09ICJqc2MiOgorICAgICAg
ICAgICAgZmlyc3RfcmVzdWx0cyA9IHNlbGYuX2RlbGVnYXRlLnRlc3RfcmVzdWx0cygpCisgICAg
ICAgICAgICBmaXJzdF9zY3JpcHRfZXJyb3IgPSBzZWxmLl9zY3JpcHRfZXJyb3IKKyAgICAgICAg
ICAgIGZpcnN0X2ZhaWx1cmVfc3RhdHVzX2lkID0gc2VsZi5mYWlsdXJlX3N0YXR1c19pZAorICAg
ICAgICAgICAgaWYgZmlyc3RfcmVzdWx0cyBpcyBOb25lOgorICAgICAgICAgICAgICAgIHJldHVy
biBzZWxmLnJlcG9ydF9mYWlsdXJlKE5vbmUsIE5vbmUsIFNjcmlwdEVycm9yKCJDb3VsZCBub3Qg
cmVhZCBKU0MgdGVzdCByZXN1bHRzIGZvciBwYXRjaC4iKSkKIAotICAgICAgICBzZWNvbmRfcmVz
dWx0cyA9IHNlbGYuX2RlbGVnYXRlLnRlc3RfcmVzdWx0cygpCi0gICAgICAgIHNlY29uZF9yZXN1
bHRzX2FyY2hpdmUgPSBzZWxmLl9kZWxlZ2F0ZS5hcmNoaXZlX2xhc3RfdGVzdF9yZXN1bHRzKHNl
bGYuX3BhdGNoKQotICAgICAgICBzZWNvbmRfc2NyaXB0X2Vycm9yID0gc2VsZi5fc2NyaXB0X2Vy
cm9yCi0gICAgICAgIHNlY29uZF9mYWlsdXJlX3N0YXR1c19pZCA9IHNlbGYuZmFpbHVyZV9zdGF0
dXNfaWQKKyAgICAgICAgICAgIGlmIHNlbGYuX3Rlc3QoKToKKyAgICAgICAgICAgICAgICByZXR1
cm4gVHJ1ZQorICAgICAgICAgICAgc2Vjb25kX3Jlc3VsdHMgPSBzZWxmLl9kZWxlZ2F0ZS50ZXN0
X3Jlc3VsdHMoKQorICAgICAgICAgICAgc2Vjb25kX3NjcmlwdF9lcnJvciA9IHNlbGYuX3Njcmlw
dF9lcnJvcgorICAgICAgICAgICAgaWYgc2Vjb25kX3Jlc3VsdHMgaXMgTm9uZToKKyAgICAgICAg
ICAgICAgICByZXR1cm4gc2VsZi5yZXBvcnRfZmFpbHVyZShOb25lLCBOb25lLCBTY3JpcHRFcnJv
cigiQ291bGQgbm90IHJlYWQgSlNDIHRlc3QgcmVzdWx0cyBvbiBzZWNvbmQgcnVuLiIpKQorCisg
ICAgICAgICAgICBjb25zaXN0ZW50X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cy5pbnRlcnNlY3Rp
b24oZmlyc3RfcmVzdWx0cywgc2Vjb25kX3Jlc3VsdHMpCiAKLSAgICAgICAgaWYgc2Vjb25kX3Jl
c3VsdHMuZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQoKSBhbmQgZmlyc3RfcmVzdWx0cy5k
aWRfZXhjZWVkX3Rlc3RfZmFpbHVyZV9saW1pdCgpOgogICAgICAgICAgICAgc2VsZi5fYnVpbGRf
YW5kX3Rlc3Rfd2l0aG91dF9wYXRjaCgpCiAgICAgICAgICAgICBjbGVhbl90cmVlX3Jlc3VsdHMg
PSBzZWxmLl9kZWxlZ2F0ZS50ZXN0X3Jlc3VsdHMoKQorICAgICAgICAgICAgaWYgY2xlYW5fdHJl
ZV9yZXN1bHRzIGlzIE5vbmU6CisgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYucmVwb3J0X2Zh
aWx1cmUoTm9uZSwgTm9uZSwgU2NyaXB0RXJyb3IoIkNvdWxkIG5vdCByZWFkIEpTQyB0ZXN0IHJl
c3VsdHMgZm9yIGNsZWFuIHRyZWUuIikpCiAKLSAgICAgICAgICAgIGlmIChsZW4oZmlyc3RfcmVz
dWx0cy5mYWlsaW5nX3Rlc3RzKCkpIC0gbGVuKGNsZWFuX3RyZWVfcmVzdWx0cy5mYWlsaW5nX3Rl
c3RzKCkpKSA8PSA1OgotICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICAgICAg
aWYgY29uc2lzdGVudF9yZXN1bHRzLmlzX3N1YnNldChjbGVhbl90cmVlX3Jlc3VsdHMpOgorICAg
ICAgICAgICAgICAgIHJldHVybiBUcnVlCiAKICAgICAgICAgICAgIHNlbGYuZmFpbHVyZV9zdGF0
dXNfaWQgPSBmaXJzdF9mYWlsdXJlX3N0YXR1c19pZAorICAgICAgICAgICAgcmV0dXJuIHNlbGYu
cmVwb3J0X2ZhaWx1cmUoTm9uZSwgY29uc2lzdGVudF9yZXN1bHRzLCBmaXJzdF9zY3JpcHRfZXJy
b3IpCiAKLSAgICAgICAgICAgIHJldHVybiBzZWxmLnJlcG9ydF9mYWlsdXJlKGZpcnN0X3Jlc3Vs
dHNfYXJjaGl2ZSwgZmlyc3RfcmVzdWx0cywgZmlyc3Rfc2NyaXB0X2Vycm9yKQorICAgICAgICBl
bHNlOgorICAgICAgICAgICAgIyBOb3RlOiBhcmNoaXZlX2xhc3RfdGVzdF9yZXN1bHRzIGRlbGV0
ZXMgdGhlIHJlc3VsdHMgZGlyZWN0b3J5LCBtYWtpbmcgdGhlc2UgY2FsbHMgb3JkZXItc2Vuc2l0
dmUuCisgICAgICAgICAgICAjIFdlIGNvdWxkIHJlbW92ZSB0aGlzIGRlcGVuZGVuY3kgYnkgYnVp
bGRpbmcgdGhlIHRlc3RfcmVzdWx0cyBmcm9tIHRoZSBhcmNoaXZlLgorICAgICAgICAgICAgZmly
c3RfcmVzdWx0cyA9IHNlbGYuX2RlbGVnYXRlLnRlc3RfcmVzdWx0cygpCisgICAgICAgICAgICBm
aXJzdF9yZXN1bHRzX2FyY2hpdmUgPSBzZWxmLl9kZWxlZ2F0ZS5hcmNoaXZlX2xhc3RfdGVzdF9y
ZXN1bHRzKHNlbGYuX3BhdGNoKQorICAgICAgICAgICAgZmlyc3Rfc2NyaXB0X2Vycm9yID0gc2Vs
Zi5fc2NyaXB0X2Vycm9yCisgICAgICAgICAgICBmaXJzdF9mYWlsdXJlX3N0YXR1c19pZCA9IHNl
bGYuZmFpbHVyZV9zdGF0dXNfaWQKIAotICAgICAgICBpZiBzZWNvbmRfcmVzdWx0cy5kaWRfZXhj
ZWVkX3Rlc3RfZmFpbHVyZV9saW1pdCgpOgotICAgICAgICAgICAgc2VsZi5fc2hvdWxkX2RlZmVy
X3BhdGNoX29yX3Rocm93KGZpcnN0X3Jlc3VsdHMuZmFpbGluZ190ZXN0X3Jlc3VsdHMoKSwgZmly
c3RfcmVzdWx0c19hcmNoaXZlLCBmaXJzdF9zY3JpcHRfZXJyb3IsIGZpcnN0X2ZhaWx1cmVfc3Rh
dHVzX2lkKQotICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgICAgICBpZiBzZWxmLl90
ZXN0KCkgYW5kIG5vdCBmaXJzdF9yZXN1bHRzLmRpZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xpbWl0
KCk6CisgICAgICAgICAgICAgICAgIyBPbmx5IHJlcG9ydCBmbGFreSB0ZXN0cyBpZiB3ZSB3ZXJl
IHN1Y2Nlc3NmdWwgYXQgcGFyc2luZyByZXN1bHRzLmpzb24gYW5kIGFyY2hpdmluZyByZXN1bHRz
LgorICAgICAgICAgICAgICAgIGlmIGZpcnN0X3Jlc3VsdHMgYW5kIGZpcnN0X3Jlc3VsdHNfYXJj
aGl2ZToKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5fcmVwb3J0X2ZsYWt5X3Rlc3RzKGZpcnN0
X3Jlc3VsdHMuZmFpbGluZ190ZXN0X3Jlc3VsdHMoKSwgZmlyc3RfcmVzdWx0c19hcmNoaXZlKQor
ICAgICAgICAgICAgICAgIHJldHVybiBUcnVlCiAKLSAgICAgICAgaWYgZmlyc3RfcmVzdWx0cy5k
aWRfZXhjZWVkX3Rlc3RfZmFpbHVyZV9saW1pdCgpOgotICAgICAgICAgICAgc2VsZi5fc2hvdWxk
X2RlZmVyX3BhdGNoX29yX3Rocm93KHNlY29uZF9yZXN1bHRzLmZhaWxpbmdfdGVzdF9yZXN1bHRz
KCksIHNlY29uZF9yZXN1bHRzX2FyY2hpdmUsIHNlY29uZF9zY3JpcHRfZXJyb3IsIHNlY29uZF9m
YWlsdXJlX3N0YXR1c19pZCkKLSAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICAgICAg
c2Vjb25kX3Jlc3VsdHMgPSBzZWxmLl9kZWxlZ2F0ZS50ZXN0X3Jlc3VsdHMoKQorICAgICAgICAg
ICAgc2Vjb25kX3Jlc3VsdHNfYXJjaGl2ZSA9IHNlbGYuX2RlbGVnYXRlLmFyY2hpdmVfbGFzdF90
ZXN0X3Jlc3VsdHMoc2VsZi5fcGF0Y2gpCisgICAgICAgICAgICBzZWNvbmRfc2NyaXB0X2Vycm9y
ID0gc2VsZi5fc2NyaXB0X2Vycm9yCisgICAgICAgICAgICBzZWNvbmRfZmFpbHVyZV9zdGF0dXNf
aWQgPSBzZWxmLmZhaWx1cmVfc3RhdHVzX2lkCiAKLSAgICAgICAgaWYgc2VsZi5fcmVzdWx0c19m
YWlsZWRfZGlmZmVyZW50X3Rlc3RzKGZpcnN0X3Jlc3VsdHMsIHNlY29uZF9yZXN1bHRzKToKLSAg
ICAgICAgICAgIGZpcnN0X2ZhaWxpbmdfcmVzdWx0c19zZXQgPSBmcm96ZW5zZXQoZmlyc3RfcmVz
dWx0cy5mYWlsaW5nX3Rlc3RfcmVzdWx0cygpKQotICAgICAgICAgICAgc2Vjb25kX2ZhaWxpbmdf
cmVzdWx0c19zZXQgPSBmcm96ZW5zZXQoc2Vjb25kX3Jlc3VsdHMuZmFpbGluZ190ZXN0X3Jlc3Vs
dHMoKSkKKyAgICAgICAgICAgIGlmIHNlY29uZF9yZXN1bHRzLmRpZF9leGNlZWRfdGVzdF9mYWls
dXJlX2xpbWl0KCkgYW5kIGZpcnN0X3Jlc3VsdHMuZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGlt
aXQoKToKKyAgICAgICAgICAgICAgICBzZWxmLl9idWlsZF9hbmRfdGVzdF93aXRob3V0X3BhdGNo
KCkKKyAgICAgICAgICAgICAgICBjbGVhbl90cmVlX3Jlc3VsdHMgPSBzZWxmLl9kZWxlZ2F0ZS50
ZXN0X3Jlc3VsdHMoKQogCi0gICAgICAgICAgICB0ZXN0c190aGF0X29ubHlfZmFpbGVkX2ZpcnN0
ID0gZmlyc3RfZmFpbGluZ19yZXN1bHRzX3NldC5kaWZmZXJlbmNlKHNlY29uZF9mYWlsaW5nX3Jl
c3VsdHNfc2V0KQotICAgICAgICAgICAgc2VsZi5fcmVwb3J0X2ZsYWt5X3Rlc3RzKHRlc3RzX3Ro
YXRfb25seV9mYWlsZWRfZmlyc3QsIGZpcnN0X3Jlc3VsdHNfYXJjaGl2ZSkKKyAgICAgICAgICAg
ICAgICBpZiAobGVuKGZpcnN0X3Jlc3VsdHMuZmFpbGluZ190ZXN0cygpKSAtIGxlbihjbGVhbl90
cmVlX3Jlc3VsdHMuZmFpbGluZ190ZXN0cygpKSkgPD0gNToKKyAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIEZhbHNlCiAKLSAgICAgICAgICAgIHRlc3RzX3RoYXRfb25seV9mYWlsZWRfc2Vjb25k
ID0gc2Vjb25kX2ZhaWxpbmdfcmVzdWx0c19zZXQuZGlmZmVyZW5jZShmaXJzdF9mYWlsaW5nX3Jl
c3VsdHNfc2V0KQotICAgICAgICAgICAgc2VsZi5fcmVwb3J0X2ZsYWt5X3Rlc3RzKHRlc3RzX3Ro
YXRfb25seV9mYWlsZWRfc2Vjb25kLCBzZWNvbmRfcmVzdWx0c19hcmNoaXZlKQorICAgICAgICAg
ICAgICAgIHNlbGYuZmFpbHVyZV9zdGF0dXNfaWQgPSBmaXJzdF9mYWlsdXJlX3N0YXR1c19pZAog
Ci0gICAgICAgICAgICB0ZXN0c190aGF0X2NvbnNpc3RlbnRseV9mYWlsZWQgPSBmaXJzdF9mYWls
aW5nX3Jlc3VsdHNfc2V0LmludGVyc2VjdGlvbihzZWNvbmRfZmFpbGluZ19yZXN1bHRzX3NldCkK
LSAgICAgICAgICAgIGlmIHRlc3RzX3RoYXRfY29uc2lzdGVudGx5X2ZhaWxlZDoKLSAgICAgICAg
ICAgICAgICBpZiBzZWxmLl9zaG91bGRfZGVmZXJfcGF0Y2hfb3JfdGhyb3codGVzdHNfdGhhdF9j
b25zaXN0ZW50bHlfZmFpbGVkLCBmaXJzdF9yZXN1bHRzX2FyY2hpdmUsIGZpcnN0X3NjcmlwdF9l
cnJvciwgZmlyc3RfZmFpbHVyZV9zdGF0dXNfaWQpOgotICAgICAgICAgICAgICAgICAgICByZXR1
cm4gRmFsc2UgICMgRGVmZXIgcGF0Y2gKKyAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5yZXBv
cnRfZmFpbHVyZShmaXJzdF9yZXN1bHRzX2FyY2hpdmUsIGZpcnN0X3Jlc3VsdHMsIGZpcnN0X3Nj
cmlwdF9lcnJvcikKIAotICAgICAgICAgICAgIyBBdCB0aGlzIHBvaW50IHdlIGtub3cgdGhhdCBh
dCBsZWFzdCBvbmUgdGVzdCBmbGFrZWQsIGJ1dCBubyBjb25zaXN0ZW50IGZhaWx1cmVzCi0gICAg
ICAgICAgICAjIHdlcmUgaW50cm9kdWNlZC4gVGhpcyBpcyBhIGJpdCBvZiBhIGdyZXktem9uZS4K
LSAgICAgICAgICAgIHJldHVybiBGYWxzZSAgIyBEZWZlciBwYXRjaAorICAgICAgICAgICAgaWYg
c2Vjb25kX3Jlc3VsdHMuZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQoKToKKyAgICAgICAg
ICAgICAgICBzZWxmLl9zaG91bGRfZGVmZXJfcGF0Y2hfb3JfdGhyb3coZmlyc3RfcmVzdWx0cy5m
YWlsaW5nX3Rlc3RfcmVzdWx0cygpLCBmaXJzdF9yZXN1bHRzX2FyY2hpdmUsIGZpcnN0X3Njcmlw
dF9lcnJvciwgZmlyc3RfZmFpbHVyZV9zdGF0dXNfaWQpCisgICAgICAgICAgICAgICAgcmV0dXJu
IEZhbHNlCisKKyAgICAgICAgICAgIGlmIGZpcnN0X3Jlc3VsdHMuZGlkX2V4Y2VlZF90ZXN0X2Zh
aWx1cmVfbGltaXQoKToKKyAgICAgICAgICAgICAgICBzZWxmLl9zaG91bGRfZGVmZXJfcGF0Y2hf
b3JfdGhyb3coc2Vjb25kX3Jlc3VsdHMuZmFpbGluZ190ZXN0X3Jlc3VsdHMoKSwgc2Vjb25kX3Jl
c3VsdHNfYXJjaGl2ZSwgc2Vjb25kX3NjcmlwdF9lcnJvciwgc2Vjb25kX2ZhaWx1cmVfc3RhdHVz
X2lkKQorICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgICAgICAgICBpZiBzZWxm
Ll9yZXN1bHRzX2ZhaWxlZF9kaWZmZXJlbnRfdGVzdHMoZmlyc3RfcmVzdWx0cywgc2Vjb25kX3Jl
c3VsdHMpOgorICAgICAgICAgICAgICAgIGZpcnN0X2ZhaWxpbmdfcmVzdWx0c19zZXQgPSBmcm96
ZW5zZXQoZmlyc3RfcmVzdWx0cy5mYWlsaW5nX3Rlc3RfcmVzdWx0cygpKQorICAgICAgICAgICAg
ICAgIHNlY29uZF9mYWlsaW5nX3Jlc3VsdHNfc2V0ID0gZnJvemVuc2V0KHNlY29uZF9yZXN1bHRz
LmZhaWxpbmdfdGVzdF9yZXN1bHRzKCkpCisKKyAgICAgICAgICAgICAgICB0ZXN0c190aGF0X29u
bHlfZmFpbGVkX2ZpcnN0ID0gZmlyc3RfZmFpbGluZ19yZXN1bHRzX3NldC5kaWZmZXJlbmNlKHNl
Y29uZF9mYWlsaW5nX3Jlc3VsdHNfc2V0KQorICAgICAgICAgICAgICAgIHNlbGYuX3JlcG9ydF9m
bGFreV90ZXN0cyh0ZXN0c190aGF0X29ubHlfZmFpbGVkX2ZpcnN0LCBmaXJzdF9yZXN1bHRzX2Fy
Y2hpdmUpCiAKLSAgICAgICAgaWYgc2VsZi5fc2hvdWxkX2RlZmVyX3BhdGNoX29yX3Rocm93KGZp
cnN0X3Jlc3VsdHMuZmFpbGluZ190ZXN0X3Jlc3VsdHMoKSwgZmlyc3RfcmVzdWx0c19hcmNoaXZl
LCBmaXJzdF9zY3JpcHRfZXJyb3IsIGZpcnN0X2ZhaWx1cmVfc3RhdHVzX2lkKToKLSAgICAgICAg
ICAgIHJldHVybiBGYWxzZSAgIyBEZWZlciBwYXRjaAorICAgICAgICAgICAgICAgIHRlc3RzX3Ro
YXRfb25seV9mYWlsZWRfc2Vjb25kID0gc2Vjb25kX2ZhaWxpbmdfcmVzdWx0c19zZXQuZGlmZmVy
ZW5jZShmaXJzdF9mYWlsaW5nX3Jlc3VsdHNfc2V0KQorICAgICAgICAgICAgICAgIHNlbGYuX3Jl
cG9ydF9mbGFreV90ZXN0cyh0ZXN0c190aGF0X29ubHlfZmFpbGVkX3NlY29uZCwgc2Vjb25kX3Jl
c3VsdHNfYXJjaGl2ZSkKIAotICAgICAgICAjIEF0IHRoaXMgcG9pbnQsIHdlIGtub3cgdGhhdCB0
aGUgZmlyc3QgYW5kIHNlY29uZCBydW5zIGhhZCB0aGUgZXhhY3Qgc2FtZSBmYWlsdXJlcywKLSAg
ICAgICAgIyBhbmQgdGhhdCB0aG9zZSBmYWlsdXJlcyBhcmUgYWxsIHByZXNlbnQgb24gdGhlIGNs
ZWFuIHRyZWUsIHNvIHdlIGNhbiBzYXkgd2l0aCBjZXJ0YWludHkKLSAgICAgICAgIyB0aGF0IHRo
ZSBwYXRjaCBpcyBnb29kLgotICAgICAgICByZXR1cm4gVHJ1ZQorICAgICAgICAgICAgICAgIHRl
c3RzX3RoYXRfY29uc2lzdGVudGx5X2ZhaWxlZCA9IGZpcnN0X2ZhaWxpbmdfcmVzdWx0c19zZXQu
aW50ZXJzZWN0aW9uKHNlY29uZF9mYWlsaW5nX3Jlc3VsdHNfc2V0KQorICAgICAgICAgICAgICAg
IGlmIHRlc3RzX3RoYXRfY29uc2lzdGVudGx5X2ZhaWxlZDoKKyAgICAgICAgICAgICAgICAgICAg
aWYgc2VsZi5fc2hvdWxkX2RlZmVyX3BhdGNoX29yX3Rocm93KHRlc3RzX3RoYXRfY29uc2lzdGVu
dGx5X2ZhaWxlZCwgZmlyc3RfcmVzdWx0c19hcmNoaXZlLCBmaXJzdF9zY3JpcHRfZXJyb3IsIGZp
cnN0X2ZhaWx1cmVfc3RhdHVzX2lkKToKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBG
YWxzZSAgIyBEZWZlciBwYXRjaAorCisgICAgICAgICAgICAgICAgIyBBdCB0aGlzIHBvaW50IHdl
IGtub3cgdGhhdCBhdCBsZWFzdCBvbmUgdGVzdCBmbGFrZWQsIGJ1dCBubyBjb25zaXN0ZW50IGZh
aWx1cmVzCisgICAgICAgICAgICAgICAgIyB3ZXJlIGludHJvZHVjZWQuIFRoaXMgaXMgYSBiaXQg
b2YgYSBncmV5LXpvbmUuCisgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlICAjIERlZmVyIHBh
dGNoCisKKyAgICAgICAgICAgIGlmIHNlbGYuX3Nob3VsZF9kZWZlcl9wYXRjaF9vcl90aHJvdyhm
aXJzdF9yZXN1bHRzLmZhaWxpbmdfdGVzdF9yZXN1bHRzKCksIGZpcnN0X3Jlc3VsdHNfYXJjaGl2
ZSwgZmlyc3Rfc2NyaXB0X2Vycm9yLCBmaXJzdF9mYWlsdXJlX3N0YXR1c19pZCk6CisgICAgICAg
ICAgICAgICAgcmV0dXJuIEZhbHNlICAjIERlZmVyIHBhdGNoCisKKyAgICAgICAgICAgICMgQXQg
dGhpcyBwb2ludCwgd2Uga25vdyB0aGF0IHRoZSBmaXJzdCBhbmQgc2Vjb25kIHJ1bnMgaGFkIHRo
ZSBleGFjdCBzYW1lIGZhaWx1cmVzLAorICAgICAgICAgICAgIyBhbmQgdGhhdCB0aG9zZSBmYWls
dXJlcyBhcmUgYWxsIHByZXNlbnQgb24gdGhlIGNsZWFuIHRyZWUsIHNvIHdlIGNhbiBzYXkgd2l0
aCBjZXJ0YWludHkKKyAgICAgICAgICAgICMgdGhhdCB0aGUgcGF0Y2ggaXMgZ29vZC4KKyAgICAg
ICAgICAgIHJldHVybiBUcnVlCiAKICAgICBkZWYgcmVzdWx0c19hcmNoaXZlX2Zyb21fcGF0Y2hf
dGVzdF9ydW4oc2VsZiwgcGF0Y2gpOgogICAgICAgICBhc3NlcnQoc2VsZi5fcGF0Y2guaWQoKSA9
PSBwYXRjaC5pZCgpKSAgIyBQYXRjaEFuYWx5c2lzVGFzayBpcyBub3QgY3VycmVudGx5IHJlLXVz
ZWFibGUuCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMv
ZG93bmxvYWQucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZG93bmxv
YWQucHkKaW5kZXggZTUxNjlhYWM4NWYzMTg2ZTg0YmU5ZDUwMjQ1OTJiZDdmZTZkNWRkNS4uMTRi
NTViYzNmN2M5YzEwYjVkZjYwZmMxYWY4N2Q3Y2EzOWUzYmM5NCAxMDA2NDQKLS0tIGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Rvd25sb2FkLnB5CisrKyBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9kb3dubG9hZC5weQpAQCAtMSw1ICsxLDUgQEAK
ICMgQ29weXJpZ2h0IChjKSAyMDA5LCAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0jIENvcHlyaWdodCAoYykgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisjIENvcHlyaWdodCAoYykgMjAwOSwgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC04Nyw2ICs4NywxNCBAQCBj
bGFzcyBCdWlsZEFuZFRlc3QoQWJzdHJhY3RTZXF1ZW5jZWRDb21tYW5kKToKICAgICBdCiAKIAor
Y2xhc3MgQ2hlY2tQYXRjaFJlbGV2YW5jZShBYnN0cmFjdFNlcXVlbmNlZENvbW1hbmQpOgorICAg
IG5hbWUgPSAiY2hlY2stcGF0Y2gtcmVsZXZhbmNlIgorICAgIGhlbHBfdGV4dCA9ICJDaGVjayBp
ZiB0aGlzIHBhdGNoIG5lZWRzIHRvIGJlIHRlc3RlZCIKKyAgICBzdGVwcyA9IFsKKyAgICAgICAg
c3RlcHMuQ2hlY2tQYXRjaFJlbGV2YW5jZSwKKyAgICBdCisKKwogY2xhc3MgTGFuZChBYnN0cmFj
dFNlcXVlbmNlZENvbW1hbmQpOgogICAgIG5hbWUgPSAibGFuZCIKICAgICBoZWxwX3RleHQgPSAi
TGFuZCB0aGUgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeSBkaWZmIGFuZCB1cGRhdGVzIHRoZSBh
c3NvY2lhdGVkIGJ1ZyBpZiBhbnkiCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L3Rvb2wvY29tbWFuZHMvZWFybHl3YXJuaW5nc3lzdGVtLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS90b29sL2NvbW1hbmRzL2Vhcmx5d2FybmluZ3N5c3RlbS5weQppbmRleCA5YmMwNDE4NjBj
ZTY3NDU0NDU0ZTRiMjUxNDM4YTlkYmU1MjY0NTEzLi42YWEyZjlmYzI5ODIyMTc5NmM4NzFlYWIy
Y2MxM2UwMjBmNDI0MDIxIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wv
Y29tbWFuZHMvZWFybHl3YXJuaW5nc3lzdGVtLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvdG9vbC9jb21tYW5kcy9lYXJseXdhcm5pbmdzeXN0ZW0ucHkKQEAgLTEsNCArMSw1IEBACiAj
IENvcHlyaWdodCAoYykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBD
b3B5cmlnaHQgKGMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtMjgsNiArMjksNyBAQAogCiBpbXBvcnQganNv
bgogaW1wb3J0IGxvZ2dpbmcKK2ltcG9ydCBvcwogZnJvbSBvcHRwYXJzZSBpbXBvcnQgbWFrZV9v
cHRpb24KIAogZnJvbSB3ZWJraXRweS5jb21tb24uY29uZmlnLmNvbW1pdHRlcnMgaW1wb3J0IENv
bW1pdHRlckxpc3QKQEAgLTM2LDcgKzM4LDggQEAgZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVt
LmZpbGVzeXN0ZW0gaW1wb3J0IEZpbGVTeXN0ZW0KIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3Rl
bS5leGVjdXRpdmUgaW1wb3J0IFNjcmlwdEVycm9yCiBmcm9tIHdlYmtpdHB5LnRvb2wuYm90LmVh
cmx5d2FybmluZ3N5c3RlbXRhc2sgaW1wb3J0IEVhcmx5V2FybmluZ1N5c3RlbVRhc2ssIEVhcmx5
V2FybmluZ1N5c3RlbVRhc2tEZWxlZ2F0ZQogZnJvbSB3ZWJraXRweS50b29sLmJvdC5sYXlvdXR0
ZXN0cmVzdWx0c3JlYWRlciBpbXBvcnQgTGF5b3V0VGVzdFJlc3VsdHNSZWFkZXIKLWZyb20gd2Vi
a2l0cHkudG9vbC5ib3QucGF0Y2hhbmFseXNpc3Rhc2sgaW1wb3J0IFVuYWJsZVRvQXBwbHlQYXRj
aCwgUGF0Y2hJc05vdFZhbGlkCitmcm9tIHdlYmtpdHB5LnRvb2wuYm90LmpzY3Rlc3RyZXN1bHRz
cmVhZGVyIGltcG9ydCBKU0NUZXN0UmVzdWx0c1JlYWRlcgorZnJvbSB3ZWJraXRweS50b29sLmJv
dC5wYXRjaGFuYWx5c2lzdGFzayBpbXBvcnQgVW5hYmxlVG9BcHBseVBhdGNoLCBQYXRjaElzTm90
VmFsaWQsIFBhdGNoSXNOb3RBcHBsaWNhYmxlCiBmcm9tIHdlYmtpdHB5LnRvb2wuYm90LnF1ZXVl
ZW5naW5lIGltcG9ydCBRdWV1ZUVuZ2luZQogZnJvbSB3ZWJraXRweS50b29sLmNvbW1hbmRzLnF1
ZXVlcyBpbXBvcnQgQWJzdHJhY3RSZXZpZXdRdWV1ZQogCkBAIC01Myw3ICs1NiwxMiBAQCBjbGFz
cyBBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbShBYnN0cmFjdFJldmlld1F1ZXVlLCBFYXJseVdh
cm5pbmdTeXN0ZW1UYXNrRGVsZQogCiAgICAgZGVmIGJlZ2luX3dvcmtfcXVldWUoc2VsZik6CiAg
ICAgICAgIEFic3RyYWN0UmV2aWV3UXVldWUuYmVnaW5fd29ya19xdWV1ZShzZWxmKQotICAgICAg
ICBzZWxmLl9sYXlvdXRfdGVzdF9yZXN1bHRzX3JlYWRlciA9IExheW91dFRlc3RSZXN1bHRzUmVh
ZGVyKHNlbGYuX3Rvb2wsIHNlbGYuX3BvcnQucmVzdWx0c19kaXJlY3RvcnkoKSwgc2VsZi5fbG9n
X2RpcmVjdG9yeSgpKQorCisgICAgICAgIGlmIHNlbGYuZ3JvdXAoKSA9PSAianNjIjoKKyAgICAg
ICAgICAgIGRpciA9IG9zLnBhdGguZGlybmFtZShvcy5wYXRoLmRpcm5hbWUob3MucGF0aC5kaXJu
YW1lKHNlbGYuX3BvcnQucmVzdWx0c19kaXJlY3RvcnkoKSkpKQorICAgICAgICAgICAgc2VsZi5f
dGVzdF9yZXN1bHRzX3JlYWRlciA9IEpTQ1Rlc3RSZXN1bHRzUmVhZGVyKHNlbGYuX3Rvb2wsIGRp
cikKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYuX3Rlc3RfcmVzdWx0c19yZWFkZXIg
PSBMYXlvdXRUZXN0UmVzdWx0c1JlYWRlcihzZWxmLl90b29sLCBzZWxmLl9wb3J0LnJlc3VsdHNf
ZGlyZWN0b3J5KCksIHNlbGYuX2xvZ19kaXJlY3RvcnkoKSkKIAogICAgIGRlZiBfZmFpbGluZ190
ZXN0c19tZXNzYWdlKHNlbGYsIHRhc2ssIHBhdGNoKToKICAgICAgICAgcmVzdWx0cyA9IHRhc2su
cmVzdWx0c19mcm9tX3BhdGNoX3Rlc3RfcnVuKHBhdGNoKQpAQCAtOTMsNiArMTAxLDkgQEAgY2xh
c3MgQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0oQWJzdHJhY3RSZXZpZXdRdWV1ZSwgRWFybHlX
YXJuaW5nU3lzdGVtVGFza0RlbGUKICAgICAgICAgZXhjZXB0IFVuYWJsZVRvQXBwbHlQYXRjaCwg
ZToKICAgICAgICAgICAgIHNlbGYuX2RpZF9lcnJvcihwYXRjaCwgIiVzIHVuYWJsZSB0byBhcHBs
eSBwYXRjaC4iICUgc2VsZi5uYW1lKQogICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAg
IGV4Y2VwdCBQYXRjaElzTm90QXBwbGljYWJsZSwgZToKKyAgICAgICAgICAgIHNlbGYuX2RpZF9l
cnJvcihwYXRjaCwgIiVzIHBhdGNoIG5vdCBhcHBsaWNhYmxlLiIgJSBzZWxmLm5hbWUpCisgICAg
ICAgICAgICByZXR1cm4gRmFsc2UKICAgICAgICAgZXhjZXB0IFNjcmlwdEVycm9yLCBlOgogICAg
ICAgICAgICAgc2VsZi5fcG9zdF9yZWplY3RfbWVzc2FnZV9vbl9idWcoc2VsZi5fdG9vbCwgcGF0
Y2gsIHRhc2suZmFpbHVyZV9zdGF0dXNfaWQsIHNlbGYuX2ZhaWxpbmdfdGVzdHNfbWVzc2FnZSh0
YXNrLCBwYXRjaCkpCiAgICAgICAgICAgICByZXN1bHRzX2FyY2hpdmUgPSB0YXNrLnJlc3VsdHNf
YXJjaGl2ZV9mcm9tX3BhdGNoX3Rlc3RfcnVuKHBhdGNoKQpAQCAtMTE3LDE0ICsxMjgsMTcgQEAg
Y2xhc3MgQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0oQWJzdHJhY3RSZXZpZXdRdWV1ZSwgRWFy
bHlXYXJuaW5nU3lzdGVtVGFza0RlbGUKICAgICAgICAgcmV0dXJuIHNlbGYuX3VwZGF0ZV9zdGF0
dXMobWVzc2FnZSwgcGF0Y2g9cGF0Y2gsIHJlc3VsdHNfZmlsZT1mYWlsdXJlX2xvZykKIAogICAg
IGRlZiB0ZXN0X3Jlc3VsdHMoc2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmLl9sYXlvdXRfdGVz
dF9yZXN1bHRzX3JlYWRlci5yZXN1bHRzKCkKKyAgICAgICAgcmV0dXJuIHNlbGYuX3Rlc3RfcmVz
dWx0c19yZWFkZXIucmVzdWx0cygpCiAKICAgICBkZWYgYXJjaGl2ZV9sYXN0X3Rlc3RfcmVzdWx0
cyhzZWxmLCBwYXRjaCk6Ci0gICAgICAgIHJldHVybiBzZWxmLl9sYXlvdXRfdGVzdF9yZXN1bHRz
X3JlYWRlci5hcmNoaXZlKHBhdGNoKQorICAgICAgICByZXR1cm4gc2VsZi5fdGVzdF9yZXN1bHRz
X3JlYWRlci5hcmNoaXZlKHBhdGNoKQogCiAgICAgZGVmIGJ1aWxkX3N0eWxlKHNlbGYpOgogICAg
ICAgICByZXR1cm4gc2VsZi5fYnVpbGRfc3R5bGUKIAorICAgIGRlZiBncm91cChzZWxmKToKKyAg
ICAgICAgcmV0dXJuIHNlbGYuX2dyb3VwCisKICAgICBkZWYgcmVmZXRjaF9wYXRjaChzZWxmLCBw
YXRjaCk6CiAgICAgICAgIHJldHVybiBzZWxmLl90b29sLmJ1Z3MuZmV0Y2hfYXR0YWNobWVudChw
YXRjaC5pZCgpKQogCkBAIC0xNTYsNSArMTcwLDYgQEAgY2xhc3MgQWJzdHJhY3RFYXJseVdhcm5p
bmdTeXN0ZW0oQWJzdHJhY3RSZXZpZXdRdWV1ZSwgRWFybHlXYXJuaW5nU3lzdGVtVGFza0RlbGUK
ICAgICAgICAgICAgICAgICAnX2J1aWxkX3N0eWxlJzogY29uZmlnLmdldCgnc3R5bGUnLCAicmVs
ZWFzZSIpLAogICAgICAgICAgICAgICAgICd3YXRjaGVycyc6IGNvbmZpZy5nZXQoJ3dhdGNoZXJz
JywgW10pLAogICAgICAgICAgICAgICAgICdydW5fdGVzdHMnOiBjb25maWcuZ2V0KCdydW5UZXN0
cycsIGNscy5ydW5fdGVzdHMpLAorICAgICAgICAgICAgICAgICdfZ3JvdXAnOiBjb25maWcuZ2V0
KCdncm91cCcsIE5vbmUpLAogICAgICAgICAgICAgfSkpCiAgICAgICAgIHJldHVybiBjbGFzc2Vz
CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZWFybHl3
YXJuaW5nc3lzdGVtX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2Nv
bW1hbmRzL2Vhcmx5d2FybmluZ3N5c3RlbV91bml0dGVzdC5weQppbmRleCAwODg4NzgxM2NlMmU5
M2E4ZWM5ZGEzNzYzNmVjYmRlOWVmZjNjOWU3Li5mZTMxMGIyMWIzZjI4MDAzZjJhY2JlYjc2OWUz
NTgzZTM5NTNmYTMyIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29t
bWFuZHMvZWFybHl3YXJuaW5nc3lzdGVtX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvdG9vbC9jb21tYW5kcy9lYXJseXdhcm5pbmdzeXN0ZW1fdW5pdHRlc3QucHkKQEAg
LTEsNCArMSw1IEBACiAjIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtMjksNiArMzAsNyBA
QAogZnJvbSB3ZWJraXRweS50aGlyZHBhcnR5Lm1vY2sgaW1wb3J0IE1vY2sKIGZyb20gd2Via2l0
cHkuY29tbW9uLmhvc3QgaW1wb3J0IEhvc3QKIGZyb20gd2Via2l0cHkuY29tbW9uLmhvc3RfbW9j
ayBpbXBvcnQgTW9ja0hvc3QKK2Zyb20gd2Via2l0cHkuY29tbW9uLm5ldC5qc2N0ZXN0cmVzdWx0
cyBpbXBvcnQgSlNDVGVzdFJlc3VsdHMKIGZyb20gd2Via2l0cHkuY29tbW9uLm5ldC5sYXlvdXR0
ZXN0cmVzdWx0cyBpbXBvcnQgTGF5b3V0VGVzdFJlc3VsdHMKIGZyb20gd2Via2l0cHkuY29tbW9u
LnN5c3RlbS5vdXRwdXRjYXB0dXJlIGltcG9ydCBPdXRwdXRDYXB0dXJlCiBmcm9tIHdlYmtpdHB5
LmxheW91dF90ZXN0cy5tb2RlbHMgaW1wb3J0IHRlc3RfcmVzdWx0cwpAQCAtNDcsNiArNDksNyBA
QCBjbGFzcyBBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbVRlc3QoUXVldWVzVGVzdCk6CiAgICAg
ICAgIGNsYXNzIFRlc3RFV1MoQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0pOgogICAgICAgICAg
ICAgcG9ydF9uYW1lID0gIndpbiIgICMgTmVlZHMgdG8gYmUgYSBwb3J0IHdoaWNoIHBvcnQvZmFj
dG9yeSB1bmRlcnN0YW5kcy4KICAgICAgICAgICAgIF9idWlsZF9zdHlsZSA9IE5vbmUKKyAgICAg
ICAgICAgIF9ncm91cCA9IE5vbmUKIAogICAgICAgICBld3MgPSBUZXN0RVdTKCkKICAgICAgICAg
ZXdzLmJpbmRfdG9fdG9vbChNb2NrVG9vbCgpKQpAQCAtNjAsNiArNjMsMjUgQEAgY2xhc3MgQWJz
dHJhY3RFYXJseVdhcm5pbmdTeXN0ZW1UZXN0KFF1ZXVlc1Rlc3QpOgogICAgICAgICBwYXRjaCA9
IGV3cy5fdG9vbC5idWdzLmZldGNoX2F0dGFjaG1lbnQoMTAwMDApCiAgICAgICAgIHNlbGYuYXNz
ZXJ0TXVsdGlMaW5lRXF1YWwoZXdzLl9mYWlsaW5nX3Rlc3RzX21lc3NhZ2UodGFzaywgcGF0Y2gp
LCAiTmV3IGZhaWxpbmcgdGVzdHM6XG5mb28uaHRtbFxuYmFyLmh0bWwiKQogCisgICAgZGVmIHRl
c3RfZmFpbGluZ19qc2NfdGVzdHNfbWVzc2FnZShzZWxmKToKKyAgICAgICAgIyBOZWVkZWQgdG8g
ZGVmaW5lIHBvcnRfbmFtZSwgdXNlZCBpbiBBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbS5fX2lu
aXRfXworICAgICAgICBjbGFzcyBUZXN0RVdTKEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtKToK
KyAgICAgICAgICAgIHBvcnRfbmFtZSA9ICJ3aW4iICAjIE5lZWRzIHRvIGJlIGEgcG9ydCB3aGlj
aCBwb3J0L2ZhY3RvcnkgdW5kZXJzdGFuZHMuCisgICAgICAgICAgICBfYnVpbGRfc3R5bGUgPSBO
b25lCisgICAgICAgICAgICBfZ3JvdXAgPSAianNjIgorCisgICAgICAgIGV3cyA9IFRlc3RFV1Mo
KQorICAgICAgICBld3MuYmluZF90b190b29sKE1vY2tUb29sKCkpCisgICAgICAgIGV3cy5ob3N0
ID0gTW9ja0hvc3QoKQorICAgICAgICBld3MuX29wdGlvbnMgPSBNb2NrT3B0aW9ucyhwb3J0PU5v
bmUsIGNvbmZpcm09RmFsc2UpCisgICAgICAgIE91dHB1dENhcHR1cmUoKS5hc3NlcnRfb3V0cHV0
cyhzZWxmLCBld3MuYmVnaW5fd29ya19xdWV1ZSwgZXhwZWN0ZWRfbG9ncz1zZWxmLl9kZWZhdWx0
X2JlZ2luX3dvcmtfcXVldWVfbG9ncyhld3MubmFtZSkpCisgICAgICAgIHRhc2sgPSBNb2NrKCkK
KyAgICAgICAgdGFzay5yZXN1bHRzX2Zyb21fcGF0Y2hfdGVzdF9ydW4gPSBsYW1iZGEgYTogSlND
VGVzdFJlc3VsdHMoRmFsc2UsIFsiZXM2LnlhbWwvZXM2L3R5cGVkX2FycmF5c19JbnQ4QXJyYXku
anMuZGVmYXVsdCIsICJlczYueWFtbC9lczYvdHlwZWRfYXJyYXlzX1VpbnQ4QXJyYXkuanMuZGVm
YXVsdCJdKQorICAgICAgICBwYXRjaCA9IGV3cy5fdG9vbC5idWdzLmZldGNoX2F0dGFjaG1lbnQo
MTAwMDApCisgICAgICAgIHNlbGYuYXNzZXJ0TXVsdGlMaW5lRXF1YWwoZXdzLl9mYWlsaW5nX3Rl
c3RzX21lc3NhZ2UodGFzaywgcGF0Y2gpLCAiTmV3IGZhaWxpbmcgdGVzdHM6XG5lczYueWFtbC9l
czYvdHlwZWRfYXJyYXlzX0ludDhBcnJheS5qcy5kZWZhdWx0XG5lczYueWFtbC9lczYvdHlwZWRf
YXJyYXlzX1VpbnQ4QXJyYXkuanMuZGVmYXVsdFxuYXBpVGVzdHMiKQorCisKKwogCiBjbGFzcyBF
YXJseVdhcm5pbmdTeXN0ZW1UZXN0KFF1ZXVlc1Rlc3QpOgogICAgIGRlZiBfZGVmYXVsdF9leHBl
Y3RlZF9sb2dzKHNlbGYsIGV3cyk6CkBAIC02OCw5ICs5MCwxMCBAQCBjbGFzcyBFYXJseVdhcm5p
bmdTeXN0ZW1UZXN0KFF1ZXVlc1Rlc3QpOgogICAgICAgICAgICAgInBvcnQiOiBld3MucG9ydF9u
YW1lLAogICAgICAgICAgICAgImFyY2hpdGVjdHVyZSI6ICIgLS1hcmNoaXRlY3R1cmU9JXMiICUg
ZXdzLmFyY2hpdGVjdHVyZSBpZiBld3MuYXJjaGl0ZWN0dXJlIGVsc2UgIiIsCiAgICAgICAgICAg
ICAiYnVpbGRfc3R5bGUiOiBld3MuYnVpbGRfc3R5bGUoKSwKKyAgICAgICAgICAgICJncm91cCI6
IGV3cy5ncm91cCgpLAogICAgICAgICB9CiAgICAgICAgIGlmIGV3cy5ydW5fdGVzdHM6Ci0gICAg
ICAgICAgICBydW5fdGVzdHNfbGluZSA9ICJSdW5uaW5nOiB3ZWJraXQtcGF0Y2ggLS1zdGF0dXMt
aG9zdD1leGFtcGxlLmNvbSBidWlsZC1hbmQtdGVzdCAtLW5vLWNsZWFuIC0tbm8tdXBkYXRlIC0t
dGVzdCAtLW5vbi1pbnRlcmFjdGl2ZSAtLWJ1aWxkLXN0eWxlPSUoYnVpbGRfc3R5bGUpcyAtLXBv
cnQ9JShwb3J0KXMlKGFyY2hpdGVjdHVyZSlzXG4iICUgc3RyaW5nX3JlcGxhY2VtZW50cworICAg
ICAgICAgICAgcnVuX3Rlc3RzX2xpbmUgPSAiUnVubmluZzogd2Via2l0LXBhdGNoIC0tc3RhdHVz
LWhvc3Q9ZXhhbXBsZS5jb20gYnVpbGQtYW5kLXRlc3QgLS1uby1jbGVhbiAtLW5vLXVwZGF0ZSAt
LXRlc3QgLS1ub24taW50ZXJhY3RpdmUgLS1idWlsZC1zdHlsZT0lKGJ1aWxkX3N0eWxlKXMgLS1n
cm91cD0lKGdyb3VwKXMgLS1wb3J0PSUocG9ydClzJShhcmNoaXRlY3R1cmUpc1xuIiAlIHN0cmlu
Z19yZXBsYWNlbWVudHMKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIHJ1bl90ZXN0c19saW5l
ID0gIiIKICAgICAgICAgc3RyaW5nX3JlcGxhY2VtZW50c1sncnVuX3Rlc3RzX2xpbmUnXSA9IHJ1
bl90ZXN0c19saW5lCkBAIC04MSw3ICsxMDQsOCBAQCBjbGFzcyBFYXJseVdhcm5pbmdTeXN0ZW1U
ZXN0KFF1ZXVlc1Rlc3QpOgogUnVubmluZzogd2Via2l0LXBhdGNoIC0tc3RhdHVzLWhvc3Q9ZXhh
bXBsZS5jb20gY2xlYW4gLS1wb3J0PSUocG9ydClzJShhcmNoaXRlY3R1cmUpcwogUnVubmluZzog
d2Via2l0LXBhdGNoIC0tc3RhdHVzLWhvc3Q9ZXhhbXBsZS5jb20gdXBkYXRlIC0tcG9ydD0lKHBv
cnQpcyUoYXJjaGl0ZWN0dXJlKXMKIFJ1bm5pbmc6IHdlYmtpdC1wYXRjaCAtLXN0YXR1cy1ob3N0
PWV4YW1wbGUuY29tIGFwcGx5LWF0dGFjaG1lbnQgLS1uby11cGRhdGUgLS1ub24taW50ZXJhY3Rp
dmUgMTAwMDAgLS1wb3J0PSUocG9ydClzJShhcmNoaXRlY3R1cmUpcwotUnVubmluZzogd2Via2l0
LXBhdGNoIC0tc3RhdHVzLWhvc3Q9ZXhhbXBsZS5jb20gYnVpbGQgLS1uby1jbGVhbiAtLW5vLXVw
ZGF0ZSAtLWJ1aWxkLXN0eWxlPSUoYnVpbGRfc3R5bGUpcyAtLXBvcnQ9JShwb3J0KXMlKGFyY2hp
dGVjdHVyZSlzCitSdW5uaW5nOiB3ZWJraXQtcGF0Y2ggLS1zdGF0dXMtaG9zdD1leGFtcGxlLmNv
bSBjaGVjay1wYXRjaC1yZWxldmFuY2UgLS1ncm91cD0lKGdyb3VwKXMgLS1wb3J0PSUocG9ydClz
JShhcmNoaXRlY3R1cmUpcworUnVubmluZzogd2Via2l0LXBhdGNoIC0tc3RhdHVzLWhvc3Q9ZXhh
bXBsZS5jb20gYnVpbGQgLS1uby1jbGVhbiAtLW5vLXVwZGF0ZSAtLWJ1aWxkLXN0eWxlPSUoYnVp
bGRfc3R5bGUpcyAtLWdyb3VwPSUoZ3JvdXApcyAtLXBvcnQ9JShwb3J0KXMlKGFyY2hpdGVjdHVy
ZSlzCiAlKHJ1bl90ZXN0c19saW5lKXNNT0NLOiB1cGRhdGVfc3RhdHVzOiAlKG5hbWUpcyBQYXNz
CiBNT0NLOiByZWxlYXNlX3dvcmtfaXRlbTogJShuYW1lKXMgMTAwMDAKICIiIiAlIHN0cmluZ19y
ZXBsYWNlbWVudHMsCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3Rl
cHMvX19pbml0X18ucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvX19pbml0
X18ucHkKaW5kZXggMzU2YWNhYjAzYWQ4Mjc0Y2U5YmRhNjg1ODg2NGZmMTliNjRmNGEwYS4uNmM5
YzA5YWM1MmEzODZiOWYwY2YzNjNiOWMwM2JiYWE0YzAwMzg2MSAxMDA2NDQKLS0tIGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL19faW5pdF9fLnB5CisrKyBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvdG9vbC9zdGVwcy9fX2luaXRfXy5weQpAQCAtMSw0ICsxLDUgQEAKICMgQ29w
eXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHly
aWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC0zMyw2ICszNCw3IEBAIGZyb20gd2Via2l0cHkudG9v
bC5zdGVwcy5hcHBseXBhdGNod2l0aGxvY2FsY29tbWl0IGltcG9ydCBBcHBseVBhdGNoV2l0aExv
Y2FsQ29tCiBmcm9tIHdlYmtpdHB5LnRvb2wuc3RlcHMuYXBwbHl3YXRjaGxpc3QgaW1wb3J0IEFw
cGx5V2F0Y2hMaXN0CiBmcm9tIHdlYmtpdHB5LnRvb2wuc3RlcHMuYXR0YWNodG9idWcgaW1wb3J0
IEF0dGFjaFRvQnVnCiBmcm9tIHdlYmtpdHB5LnRvb2wuc3RlcHMuYnVpbGQgaW1wb3J0IEJ1aWxk
Citmcm9tIHdlYmtpdHB5LnRvb2wuc3RlcHMuY2hlY2twYXRjaHJlbGV2YW5jZSBpbXBvcnQgQ2hl
Y2tQYXRjaFJlbGV2YW5jZQogZnJvbSB3ZWJraXRweS50b29sLnN0ZXBzLmNoZWNrc3R5bGUgaW1w
b3J0IENoZWNrU3R5bGUKIGZyb20gd2Via2l0cHkudG9vbC5zdGVwcy5jbGVhbndvcmtpbmdkaXJl
Y3RvcnkgaW1wb3J0IENsZWFuV29ya2luZ0RpcmVjdG9yeQogZnJvbSB3ZWJraXRweS50b29sLnN0
ZXBzLmNsb3NlYnVnIGltcG9ydCBDbG9zZUJ1ZwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS90b29sL3N0ZXBzL2J1aWxkLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29s
L3N0ZXBzL2J1aWxkLnB5CmluZGV4IGY3NGZmY2U3MDk0MWM2MWU1OTY3OTJlNGM2MGRjZDdmOGI2
NWU5ZWMuLjNjNmNmMGIxZGUwMThjMTMyYjdmODZkYTJjYjkwN2UyZmRhMDY3YWUgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9idWlsZC5weQorKysgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvYnVpbGQucHkKQEAgLTEsNCArMSw1IEBACiAj
IENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBD
b3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtNDEsMjggKzQyLDM3IEBAIGNsYXNzIEJ1aWxk
KEFic3RyYWN0U3RlcCk6CiAgICAgICAgICAgICBPcHRpb25zLmJ1aWxkLAogICAgICAgICAgICAg
T3B0aW9ucy5xdWlldCwKICAgICAgICAgICAgIE9wdGlvbnMuYnVpbGRfc3R5bGUsCisgICAgICAg
ICAgICBPcHRpb25zLmdyb3VwLAogICAgICAgICBdCiAKLSAgICBkZWYgYnVpbGQoc2VsZiwgYnVp
bGRfc3R5bGUpOgorICAgIGRlZiBidWlsZChzZWxmLCBidWlsZF9zdHlsZSwgZ3JvdXApOgogICAg
ICAgICBlbnZpcm9ubWVudCA9IHNlbGYuX3Rvb2wuY29weV9jdXJyZW50X2Vudmlyb25tZW50KCkK
ICAgICAgICAgZW52aXJvbm1lbnQuZGlzYWJsZV9nY2Nfc21hcnRxdW90ZXMoKQogICAgICAgICBl
bnZpcm9ubWVudC5kaXNhYmxlX2poYnVpbGRfVlQxMDBfb3V0cHV0KCkKICAgICAgICAgZW52ID0g
ZW52aXJvbm1lbnQudG9fZGljdGlvbmFyeSgpCiAKLSAgICAgICAgYnVpbGRfd2Via2l0X2NvbW1h
bmQgPSBzZWxmLl90b29sLmRlcHJlY2F0ZWRfcG9ydCgpLmJ1aWxkX3dlYmtpdF9jb21tYW5kKGJ1
aWxkX3N0eWxlPWJ1aWxkX3N0eWxlKQorICAgICAgICBpZiBncm91cCA9PSAianNjIjoKKyAgICAg
ICAgICAgIGJ1aWxkX2NvbW1hbmQgPSBzZWxmLl90b29sLmRlcHJlY2F0ZWRfcG9ydCgpLmJ1aWxk
X2pzY19jb21tYW5kKGJ1aWxkX3N0eWxlPWJ1aWxkX3N0eWxlKQorICAgICAgICBlbHNlOgorICAg
ICAgICAgICAgYnVpbGRfY29tbWFuZCA9IHNlbGYuX3Rvb2wuZGVwcmVjYXRlZF9wb3J0KCkuYnVp
bGRfd2Via2l0X2NvbW1hbmQoYnVpbGRfc3R5bGU9YnVpbGRfc3R5bGUpCiAKICAgICAgICAgaWYg
c2VsZi5fb3B0aW9ucy5hcmNoaXRlY3R1cmU6Ci0gICAgICAgICAgICBidWlsZF93ZWJraXRfY29t
bWFuZCArPSBbJ0FSQ0hTPSVzJyAlIHNlbGYuX29wdGlvbnMuYXJjaGl0ZWN0dXJlXQorICAgICAg
ICAgICAgYnVpbGRfY29tbWFuZCArPSBbJ0FSQ0hTPSVzJyAlIHNlbGYuX29wdGlvbnMuYXJjaGl0
ZWN0dXJlXQogCi0gICAgICAgIHNlbGYuX3Rvb2wuZXhlY3V0aXZlLnJ1bl9hbmRfdGhyb3dfaWZf
ZmFpbChidWlsZF93ZWJraXRfY29tbWFuZCwgc2VsZi5fb3B0aW9ucy5xdWlldCwKKyAgICAgICAg
c2VsZi5fdG9vbC5leGVjdXRpdmUucnVuX2FuZF90aHJvd19pZl9mYWlsKGJ1aWxkX2NvbW1hbmQs
IHNlbGYuX29wdGlvbnMucXVpZXQsCiAgICAgICAgICAgICBjd2Q9c2VsZi5fdG9vbC5zY20oKS5j
aGVja291dF9yb290LCBlbnY9ZW52KQogCiAgICAgZGVmIHJ1bihzZWxmLCBzdGF0ZSk6CiAgICAg
ICAgIGlmIG5vdCBzZWxmLl9vcHRpb25zLmJ1aWxkOgogICAgICAgICAgICAgcmV0dXJuCiAgICAg
ICAgIF9sb2cuaW5mbygiQnVpbGRpbmcgV2ViS2l0IikKKworICAgICAgICBncm91cCA9IE5vbmUK
KyAgICAgICAgaWYgaGFzYXR0cihzZWxmLl9vcHRpb25zLCAnZ3JvdXAnKToKKyAgICAgICAgICAg
IGdyb3VwID0gc2VsZi5fb3B0aW9ucy5ncm91cAorCiAgICAgICAgIGlmIHNlbGYuX29wdGlvbnMu
YnVpbGRfc3R5bGUgPT0gImJvdGgiOgotICAgICAgICAgICAgc2VsZi5idWlsZCgiZGVidWciKQot
ICAgICAgICAgICAgc2VsZi5idWlsZCgicmVsZWFzZSIpCisgICAgICAgICAgICBzZWxmLmJ1aWxk
KCJkZWJ1ZyIsIGdyb3VwKQorICAgICAgICAgICAgc2VsZi5idWlsZCgicmVsZWFzZSIsIGdyb3Vw
KQogICAgICAgICBlbHNlOgotICAgICAgICAgICAgc2VsZi5idWlsZChzZWxmLl9vcHRpb25zLmJ1
aWxkX3N0eWxlKQorICAgICAgICAgICAgc2VsZi5idWlsZChzZWxmLl9vcHRpb25zLmJ1aWxkX3N0
eWxlLCBncm91cCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVw
cy9jaGVja3BhdGNocmVsZXZhbmNlLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0
ZXBzL2NoZWNrcGF0Y2hyZWxldmFuY2UucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDliOGYwOTNmZTI0NjhmMmI5
ZTM3YjUyYzE3OTRkODI3M2E0MDJmYQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvdG9vbC9zdGVwcy9jaGVja3BhdGNocmVsZXZhbmNlLnB5CkBAIC0wLDAgKzEsNzUg
QEAKKyMgQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMg
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IKKyMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwKKyMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworaW1wb3J0IGxvZ2dp
bmcKK2ltcG9ydCByZQorCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZlIGlt
cG9ydCBTY3JpcHRFcnJvcgorZnJvbSB3ZWJraXRweS50b29sLnN0ZXBzLmFic3RyYWN0c3RlcCBp
bXBvcnQgQWJzdHJhY3RTdGVwCitmcm9tIHdlYmtpdHB5LnRvb2wuc3RlcHMub3B0aW9ucyBpbXBv
cnQgT3B0aW9ucworCitfbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18pCisKKworY2xh
c3MgQ2hlY2tQYXRjaFJlbGV2YW5jZShBYnN0cmFjdFN0ZXApOgorICAgIEBjbGFzc21ldGhvZAor
ICAgIGRlZiBvcHRpb25zKGNscyk6CisgICAgICAgIHJldHVybiBBYnN0cmFjdFN0ZXAub3B0aW9u
cygpICsgWworICAgICAgICAgICAgT3B0aW9ucy5ncm91cCwKKyAgICAgICAgXQorCisgICAganNj
X3BhdGhzID0gWworICAgICAgICAiSlNUZXN0cy8iLAorICAgICAgICAiU291cmNlL0phdmFTY3Jp
cHRDb3JlLyIsCisgICAgICAgICJTb3VyY2UvV1RGLyIKKyAgICAgICAgIlNvdXJjZS9ibWFsbG9j
LyIsCisgICAgICAgICJTb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS8iLAorICAgIF0KKworICAgIGRl
ZiBfZG9lc19jb250YWluX2NoYW5nZV9pbl9wYXRocyhzZWxmLCBmaWxlcywgcGF0dGVybnMpOgor
ICAgICAgICBmb3IgaXRlbSBpbiBmaWxlczoKKyAgICAgICAgICAgIGZvciBwYXR0ZXJuIGluIHBh
dHRlcm5zOgorICAgICAgICAgICAgICAgIGlmIHJlLnNlYXJjaChwYXR0ZXJuLCBpdGVtLCByZS5J
R05PUkVDQVNFKToKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFRydWUKKworICAgICAgICBy
ZXR1cm4gRmFsc2UKKworICAgIGRlZiBydW4oc2VsZiwgc3RhdGUpOgorICAgICAgICBfbG9nLmlu
Zm8oIkNoZWNraW5nIHJlbGV2YW5jZSBvZiBwYXRjaCIpCisKKyAgICAgICAgZ3JvdXAgPSBOb25l
CisgICAgICAgIGlmIGhhc2F0dHIoc2VsZi5fb3B0aW9ucywgJ2dyb3VwJyk6CisgICAgICAgICAg
ICBncm91cCA9IHNlbGYuX29wdGlvbnMuZ3JvdXAKKworICAgICAgICBjaGFuZ2VfbGlzdCA9IHNl
bGYuX3Rvb2wuc2NtKCkuY2hhbmdlZF9maWxlcygpCisKKyAgICAgICAgaWYgZ3JvdXAgPT0gImpz
YyI6CisgICAgICAgICAgICByZWxldmFudCA9IHNlbGYuX2RvZXNfY29udGFpbl9jaGFuZ2VfaW5f
cGF0aHMoY2hhbmdlX2xpc3QsIHNlbGYuanNjX3BhdGhzKQorICAgICAgICBlbHNlOgorICAgICAg
ICAgICAgcmVsZXZhbnQgPSBUcnVlCisKKyAgICAgICAgaWYgcmVsZXZhbnQgaXMgVHJ1ZToKKyAg
ICAgICAgICAgIF9sb2cuaW5mbygiVGhpcyBwYXRjaCBoYXMgcmVsZXZhbnQgY2hhbmdlcy4iKQor
ICAgICAgICAgICAgcmV0dXJuIFRydWUKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIF9sb2cu
aW5mbygiVGhpcyBwYXRjaCBkb2VzIG5vdCBoYXZlIHJlbGV2YW50IGNoYW5nZXMuIikKKyAgICAg
ICAgICAgIHJhaXNlIFNjcmlwdEVycm9yKG1lc3NhZ2U9IlRoaXMgcGF0Y2ggZG9lcyBub3QgaGF2
ZSByZWxldmFudCBjaGFuZ2VzLiIpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L3Rvb2wvc3RlcHMvb3B0aW9ucy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVw
cy9vcHRpb25zLnB5CmluZGV4IDNlZjQ3ZDAwOGE1OWUwNTBkNGNhMGM0ODc3ZGRkMWE2MDczMWE0
MDkuLmY1ZTBkZWYzMjcxN2UzMDZlNjMxNjk4NDExMTBiMjg5OGI3MmExZjEgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9vcHRpb25zLnB5CisrKyBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9vcHRpb25zLnB5CkBAIC0xLDQgKzEsNSBAQAog
IyBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMg
Q29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMg
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTQ2LDYgKzQ3LDcgQEAgY2xhc3MgT3B0aW9u
cyhvYmplY3QpOgogICAgIGVtYWlsID0gbWFrZV9vcHRpb24oIi0tZW1haWwiLCBhY3Rpb249InN0
b3JlIiwgdHlwZT0ic3RyaW5nIiwgZGVzdD0iZW1haWwiLCBoZWxwPSJFbWFpbCBhZGRyZXNzIHRv
IHVzZSBpbiBDaGFuZ2VMb2dzLiIpCiAgICAgZm9yY2VfY2xlYW4gPSBtYWtlX29wdGlvbigiLS1m
b3JjZS1jbGVhbiIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGRlc3Q9ImZvcmNlX2NsZWFuIiwgZGVm
YXVsdD1GYWxzZSwgaGVscD0iQ2xlYW4gd29ya2luZyBkaXJlY3RvcnkgYmVmb3JlIGFwcGx5aW5n
IHBhdGNoZXMgKHJlbW92ZXMgbG9jYWwgY2hhbmdlcyBhbmQgY29tbWl0cykiKQogICAgIGdpdF9j
b21taXQgPSBtYWtlX29wdGlvbigiLWciLCAiLS1naXQtY29tbWl0IiwgYWN0aW9uPSJzdG9yZSIs
IGRlc3Q9ImdpdF9jb21taXQiLCBoZWxwPSJPcGVyYXRlIG9uIGEgbG9jYWwgY29tbWl0LiBJZiBh
IHJhbmdlLCB0aGUgY29tbWl0cyBhcmUgc3F1YXNoZWQgaW50byBvbmUuIDxyZWY+Li4uLiBpbmNs
dWRlcyB0aGUgd29ya2luZyBjb3B5IGNoYW5nZXMuIFVQU1RSRUFNIGNhbiBiZSB1c2VkIGZvciB0
aGUgdXBzdHJlYW0vdHJhY2tpbmcgYnJhbmNoLiIpCisgICAgZ3JvdXAgPSBtYWtlX29wdGlvbigi
LS1ncm91cCIsIGFjdGlvbj0ic3RvcmUiLCBkZXN0PSJncm91cCIsIGRlZmF1bHQ9Tm9uZSwgaGVs
cD0iIikKICAgICBsb2NhbF9jb21taXQgPSBtYWtlX29wdGlvbigiLS1sb2NhbC1jb21taXQiLCBh
Y3Rpb249InN0b3JlX3RydWUiLCBkZXN0PSJsb2NhbF9jb21taXQiLCBkZWZhdWx0PUZhbHNlLCBo
ZWxwPSJNYWtlIGEgbG9jYWwgY29tbWl0IGZvciBlYWNoIGFwcGxpZWQgcGF0Y2giKQogICAgIG5v
bl9pbnRlcmFjdGl2ZSA9IG1ha2Vfb3B0aW9uKCItLW5vbi1pbnRlcmFjdGl2ZSIsIGFjdGlvbj0i
c3RvcmVfdHJ1ZSIsIGRlc3Q9Im5vbl9pbnRlcmFjdGl2ZSIsIGRlZmF1bHQ9RmFsc2UsIGhlbHA9
Ik5ldmVyIHByb21wdCB0aGUgdXNlciwgZmFpbCBhcyBmYXN0IGFzIHBvc3NpYmxlLiIpCiAgICAg
b2Jzb2xldGVfcGF0Y2hlcyA9IG1ha2Vfb3B0aW9uKCItLW5vLW9ic29sZXRlIiwgYWN0aW9uPSJz
dG9yZV9mYWxzZSIsIGRlc3Q9Im9ic29sZXRlX3BhdGNoZXMiLCBkZWZhdWx0PVRydWUsIGhlbHA9
IkRvIG5vdCBvYnNvbGV0ZSBvbGQgcGF0Y2hlcyBiZWZvcmUgcG9zdGluZyB0aGlzIG9uZS4iKQpk
aWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3J1bnRlc3RzLnB5
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3J1bnRlc3RzLnB5CmluZGV4IDc1
ZDcyYmM5YWQyZjRlMzZkNDVmZGFjOTBmMTgxOTQ4MWNmMDI4OGIuLjVhN2YyYTk4YTNmYmIyNGVj
YjAzZjYxYzZiNjBmNjUwNDJkOTcxYTQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvdG9vbC9zdGVwcy9ydW50ZXN0cy5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rv
b2wvc3RlcHMvcnVudGVzdHMucHkKQEAgLTEsNCArMSw1IEBACiAjIENvcHlyaWdodCAoQykgMjAx
MCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMTcg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zIGFyZQpAQCAtNTMsNiArNTQsNyBAQCBjbGFzcyBSdW5UZXN0cyhBYnN0cmFjdFN0ZXApOgog
ICAgICAgICAgICAgT3B0aW9ucy5pdGVyYXRlX29uX25ld190ZXN0cywKICAgICAgICAgICAgIE9w
dGlvbnMubm9uX2ludGVyYWN0aXZlLAogICAgICAgICAgICAgT3B0aW9ucy5xdWlldCwKKyAgICAg
ICAgICAgIE9wdGlvbnMuZ3JvdXAsCiAgICAgICAgIF0KIAogICAgIGRlZiBydW4oc2VsZiwgc3Rh
dGUpOgpAQCAtNjMsNiArNjUsMTAgQEAgY2xhc3MgUnVuVGVzdHMoQWJzdHJhY3RTdGVwKToKICAg
ICAgICAgaWYgbm90IHNlbGYuX29wdGlvbnMudGVzdDoKICAgICAgICAgICAgIHJldHVybgogCisg
ICAgICAgIGlmIGhhc2F0dHIoc2VsZi5fb3B0aW9ucywgImdyb3VwIikgYW5kIHNlbGYuX29wdGlv
bnMuZ3JvdXAgPT0gImpzYyI6CisgICAgICAgICAgICBzZWxmLl9ydW5famF2YXNjcmlwdGNvcmVf
dGVzdHMoKQorICAgICAgICAgICAgcmV0dXJuCisKICAgICAgICAgcHl0aG9uX3VuaXR0ZXN0c19j
b21tYW5kID0gc2VsZi5fdG9vbC5kZXByZWNhdGVkX3BvcnQoKS5ydW5fcHl0aG9uX3VuaXR0ZXN0
c19jb21tYW5kKCkKICAgICAgICAgaWYgcHl0aG9uX3VuaXR0ZXN0c19jb21tYW5kOgogICAgICAg
ICAgICAgX2xvZy5pbmZvKCJSdW5uaW5nIFB5dGhvbiB1bml0IHRlc3RzIikKQEAgLTE0MywzICsx
NDksNyBAQCBjbGFzcyBSdW5UZXN0cyhBYnN0cmFjdFN0ZXApOgogICAgICAgICAgICAgYXJncy5h
cHBlbmQoIi0taXRlcmF0aW9ucz0lZCIgJSBpdGVyYXRlX29uX25ld190ZXN0cykKIAogICAgICAg
ICBzZWxmLl90b29sLmV4ZWN1dGl2ZS5ydW5fYW5kX3Rocm93X2lmX2ZhaWwoYXJncywgY3dkPXNl
bGYuX3Rvb2wuc2NtKCkuY2hlY2tvdXRfcm9vdCkKKworICAgIGRlZiBfcnVuX2phdmFzY3JpcHRj
b3JlX3Rlc3RzKHNlbGYpOgorICAgICAgICBhcmdzID0gc2VsZi5fdG9vbC5kZXByZWNhdGVkX3Bv
cnQoKS5ydW5famF2YXNjcmlwdGNvcmVfdGVzdHNfY29tbWFuZChzZWxmLl9vcHRpb25zLmJ1aWxk
X3N0eWxlKQorICAgICAgICBzZWxmLl90b29sLmV4ZWN1dGl2ZS5ydW5fYW5kX3Rocm93X2lmX2Zh
aWwoYXJncywgY3dkPXNlbGYuX3Rvb2wuc2NtKCkuY2hlY2tvdXRfcm9vdCkKZGlmZiAtLWdpdCBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9zdGVwc191bml0dGVzdC5weSBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9zdGVwc191bml0dGVzdC5weQppbmRleCA3
ZDk0YTEzYjM0NjNkOThhNDRmOTQ5ZjgxNGNjNzEyMWMwNjhhYjVkLi5jMzMwMGM4NTk0NGNkZTIx
YWQ5ZDBiM2U1NmRlZDg4MDEzZWI2YWRlIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L3Rvb2wvc3RlcHMvc3RlcHNfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS90b29sL3N0ZXBzL3N0ZXBzX3VuaXR0ZXN0LnB5CkBAIC0xLDQgKzEsNSBAQAogIyBDb3B5
cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJp
Z2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTI4LDYgKzI5LDcgQEAKIAogaW1wb3J0IHVuaXR0ZXN0
CiAKK2Zyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5leGVjdXRpdmUgaW1wb3J0IFNjcmlwdEVy
cm9yCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0ub3V0cHV0Y2FwdHVyZSBpbXBvcnQgT3V0
cHV0Q2FwdHVyZQogZnJvbSB3ZWJraXRweS5jb21tb24uY29uZmlnLnBvcnRzIGltcG9ydCBEZXBy
ZWNhdGVkUG9ydAogZnJvbSB3ZWJraXRweS50b29sLm1vY2t0b29sIGltcG9ydCBNb2NrT3B0aW9u
cywgTW9ja1Rvb2wKQEAgLTExMSw3ICsxMTMsNyBAQCBNT0NLIHJ1bl9hbmRfdGhyb3dfaWZfZmFp
bDogWydUb29scy9TY3JpcHRzL3Rlc3Qtd2Via2l0cHknXSwgY3dkPS9tb2NrLWNoZWNrb3V0CiBS
dW5uaW5nIFBlcmwgdW5pdCB0ZXN0cwogTU9DSyBydW5fYW5kX3Rocm93X2lmX2ZhaWw6IFsnVG9v
bHMvU2NyaXB0cy90ZXN0LXdlYmtpdHBlcmwnXSwgY3dkPS9tb2NrLWNoZWNrb3V0CiBSdW5uaW5n
IEphdmFTY3JpcHRDb3JlIHRlc3RzCi1NT0NLIHJ1bl9hbmRfdGhyb3dfaWZfZmFpbDogWydUb29s
cy9TY3JpcHRzL3J1bi1qYXZhc2NyaXB0Y29yZS10ZXN0cyddLCBjd2Q9L21vY2stY2hlY2tvdXQK
K01PQ0sgcnVuX2FuZF90aHJvd19pZl9mYWlsOiBbJ1Rvb2xzL1NjcmlwdHMvcnVuLWphdmFzY3Jp
cHRjb3JlLXRlc3RzJywgJy0tbm8tZmFpbC1mYXN0JywgJy0tanNvbi1vdXRwdXQ9anNjX3Rlc3Rf
cmVzdWx0cy5qc29uJ10sIGN3ZD0vbW9jay1jaGVja291dAogUnVubmluZyBiaW5kaW5ncyBnZW5l
cmF0aW9uIHRlc3RzCiBNT0NLIHJ1bl9hbmRfdGhyb3dfaWZfZmFpbDogWydUb29scy9TY3JpcHRz
L3J1bi1iaW5kaW5ncy10ZXN0cyddLCBjd2Q9L21vY2stY2hlY2tvdXQKIFJ1bm5pbmcgcnVuLXdl
YmtpdC10ZXN0cwpAQCAtMTMzLDEwICsxMzUsMTExIEBAIE1PQ0sgcnVuX2FuZF90aHJvd19pZl9m
YWlsOiBbJ1Rvb2xzL1NjcmlwdHMvdGVzdC13ZWJraXRweSddLCBjd2Q9L21vY2stY2hlY2tvdXQK
IFJ1bm5pbmcgUGVybCB1bml0IHRlc3RzCiBNT0NLIHJ1bl9hbmRfdGhyb3dfaWZfZmFpbDogWydU
b29scy9TY3JpcHRzL3Rlc3Qtd2Via2l0cGVybCddLCBjd2Q9L21vY2stY2hlY2tvdXQKIFJ1bm5p
bmcgSmF2YVNjcmlwdENvcmUgdGVzdHMKLU1PQ0sgcnVuX2FuZF90aHJvd19pZl9mYWlsOiBbJ1Rv
b2xzL1NjcmlwdHMvcnVuLWphdmFzY3JpcHRjb3JlLXRlc3RzJ10sIGN3ZD0vbW9jay1jaGVja291
dAorTU9DSyBydW5fYW5kX3Rocm93X2lmX2ZhaWw6IFsnVG9vbHMvU2NyaXB0cy9ydW4tamF2YXNj
cmlwdGNvcmUtdGVzdHMnLCAnLS1uby1mYWlsLWZhc3QnLCAnLS1qc29uLW91dHB1dD1qc2NfdGVz
dF9yZXN1bHRzLmpzb24nXSwgY3dkPS9tb2NrLWNoZWNrb3V0CiBSdW5uaW5nIGJpbmRpbmdzIGdl
bmVyYXRpb24gdGVzdHMKIE1PQ0sgcnVuX2FuZF90aHJvd19pZl9mYWlsOiBbJ1Rvb2xzL1Njcmlw
dHMvcnVuLWJpbmRpbmdzLXRlc3RzJ10sIGN3ZD0vbW9jay1jaGVja291dAogUnVubmluZyBydW4t
d2Via2l0LXRlc3RzCiBNT0NLIHJ1bl9hbmRfdGhyb3dfaWZfZmFpbDogWydUb29scy9TY3JpcHRz
L3J1bi13ZWJraXQtdGVzdHMnLCAnLS1kZWJ1ZycsICctLXF1aWV0J10sIGN3ZD0vbW9jay1jaGVj
a291dAogIiIiCiAgICAgICAgIE91dHB1dENhcHR1cmUoKS5hc3NlcnRfb3V0cHV0cyhzZWxmLCBz
dGVwLnJ1biwgW3t9XSwgZXhwZWN0ZWRfbG9ncz1leHBlY3RlZF9sb2dzKQorCisgICAgZGVmIHRl
c3RfcnVudGVzdHNfanNjKHNlbGYpOgorICAgICAgICBtb2NrX29wdGlvbnMgPSBzZWxmLl9zdGVw
X29wdGlvbnMoKQorICAgICAgICBtb2NrX29wdGlvbnMubm9uX2ludGVyYWN0aXZlID0gRmFsc2UK
KyAgICAgICAgbW9ja19vcHRpb25zLmJ1aWxkX3N0eWxlID0gInJlbGVhc2UiCisgICAgICAgIG1v
Y2tfb3B0aW9ucy5ncm91cCA9ICJqc2MiCisgICAgICAgIHN0ZXAgPSBzdGVwcy5SdW5UZXN0cyhN
b2NrVG9vbChsb2dfZXhlY3V0aXZlPVRydWUpLCBtb2NrX29wdGlvbnMpCisgICAgICAgIHRvb2wg
PSBNb2NrVG9vbChsb2dfZXhlY3V0aXZlPVRydWUpCisgICAgICAgICMgRklYTUU6IFdlIHNob3Vs
ZG4ndCB1c2UgYSByZWFsIHBvcnQtb2JqZWN0IGhlcmUsIGJ1dCB0aGVyZSBpcyB0b28gbXVjaCB0
byBtb2NrIGF0IHRoZSBtb21lbnQuCisgICAgICAgIHRvb2wuX2RlcHJlY2F0ZWRfcG9ydCA9IERl
cHJlY2F0ZWRQb3J0KCkKKyAgICAgICAgc3RlcCA9IHN0ZXBzLlJ1blRlc3RzKHRvb2wsIG1vY2tf
b3B0aW9ucykKKyAgICAgICAgZXhwZWN0ZWRfbG9ncyA9ICIiIk1PQ0sgcnVuX2FuZF90aHJvd19p
Zl9mYWlsOiBbJ1Rvb2xzL1NjcmlwdHMvcnVuLWphdmFzY3JpcHRjb3JlLXRlc3RzJywgJy0tbm8t
ZmFpbC1mYXN0JywgJy0tanNvbi1vdXRwdXQ9anNjX3Rlc3RfcmVzdWx0cy5qc29uJ10sIGN3ZD0v
bW9jay1jaGVja291dAorIiIiCisgICAgICAgIE91dHB1dENhcHR1cmUoKS5hc3NlcnRfb3V0cHV0
cyhzZWxmLCBzdGVwLnJ1biwgW3t9XSwgZXhwZWN0ZWRfbG9ncz1leHBlY3RlZF9sb2dzKQorCisg
ICAgZGVmIHRlc3RfcnVudGVzdHNfanNjX2RlYnVnKHNlbGYpOgorICAgICAgICBtb2NrX29wdGlv
bnMgPSBzZWxmLl9zdGVwX29wdGlvbnMoKQorICAgICAgICBtb2NrX29wdGlvbnMubm9uX2ludGVy
YWN0aXZlID0gRmFsc2UKKyAgICAgICAgbW9ja19vcHRpb25zLmJ1aWxkX3N0eWxlID0gImRlYnVn
IgorICAgICAgICBtb2NrX29wdGlvbnMuZ3JvdXAgPSAianNjIgorICAgICAgICB0b29sID0gTW9j
a1Rvb2wobG9nX2V4ZWN1dGl2ZT1UcnVlKQorICAgICAgICAjIEZJWE1FOiBXZSBzaG91bGRuJ3Qg
dXNlIGEgcmVhbCBwb3J0LW9iamVjdCBoZXJlLCBidXQgdGhlcmUgaXMgdG9vIG11Y2ggdG8gbW9j
ayBhdCB0aGUgbW9tZW50LgorICAgICAgICB0b29sLl9kZXByZWNhdGVkX3BvcnQgPSBEZXByZWNh
dGVkUG9ydCgpCisgICAgICAgIHN0ZXAgPSBzdGVwcy5SdW5UZXN0cyh0b29sLCBtb2NrX29wdGlv
bnMpCisgICAgICAgIGV4cGVjdGVkX2xvZ3MgPSAiIiJNT0NLIHJ1bl9hbmRfdGhyb3dfaWZfZmFp
bDogWydUb29scy9TY3JpcHRzL3J1bi1qYXZhc2NyaXB0Y29yZS10ZXN0cycsICctLW5vLWZhaWwt
ZmFzdCcsICctLWpzb24tb3V0cHV0PWpzY190ZXN0X3Jlc3VsdHMuanNvbicsICctLWRlYnVnJ10s
IGN3ZD0vbW9jay1jaGVja291dAorIiIiCisgICAgICAgIE91dHB1dENhcHR1cmUoKS5hc3NlcnRf
b3V0cHV0cyhzZWxmLCBzdGVwLnJ1biwgW3t9XSwgZXhwZWN0ZWRfbG9ncz1leHBlY3RlZF9sb2dz
KQorCisgICAgZGVmIHRlc3RfYnVpbGRfanNjX2RlYnVnKHNlbGYpOgorICAgICAgICBtb2NrX29w
dGlvbnMgPSBzZWxmLl9zdGVwX29wdGlvbnMoKQorICAgICAgICBtb2NrX29wdGlvbnMubm9uX2lu
dGVyYWN0aXZlID0gRmFsc2UKKyAgICAgICAgbW9ja19vcHRpb25zLmJ1aWxkX3N0eWxlID0gImRl
YnVnIgorICAgICAgICBtb2NrX29wdGlvbnMuYnVpbGQgPSBUcnVlCisgICAgICAgIG1vY2tfb3B0
aW9ucy5hcmNoaXRlY3R1cmUgPSBUcnVlCisgICAgICAgIG1vY2tfb3B0aW9ucy5ncm91cCA9ICJq
c2MiCisgICAgICAgIHRvb2wgPSBNb2NrVG9vbChsb2dfZXhlY3V0aXZlPVRydWUpCisgICAgICAg
ICMgRklYTUU6IFdlIHNob3VsZG4ndCB1c2UgYSByZWFsIHBvcnQtb2JqZWN0IGhlcmUsIGJ1dCB0
aGVyZSBpcyB0b28gbXVjaCB0byBtb2NrIGF0IHRoZSBtb21lbnQuCisgICAgICAgIHRvb2wuX2Rl
cHJlY2F0ZWRfcG9ydCA9IERlcHJlY2F0ZWRQb3J0KCkKKyAgICAgICAgc3RlcCA9IHN0ZXBzLkJ1
aWxkKHRvb2wsIG1vY2tfb3B0aW9ucykKKyAgICAgICAgZXhwZWN0ZWRfbG9ncyA9ICIiIkJ1aWxk
aW5nIFdlYktpdAorTU9DSyBydW5fYW5kX3Rocm93X2lmX2ZhaWw6IFsnVG9vbHMvU2NyaXB0cy9i
dWlsZC1qc2MnLCAnLS1kZWJ1ZycsICdBUkNIUz1UcnVlJ10sIGN3ZD0vbW9jay1jaGVja291dCwg
ZW52PXsnTENfQUxMJzogJ0MnLCAnVEVSTSc6ICdub25lJywgJ01PQ0tfRU5WSVJPTl9DT1BZJzog
JzEnfQorIiIiCisgICAgICAgIE91dHB1dENhcHR1cmUoKS5hc3NlcnRfb3V0cHV0cyhzZWxmLCBz
dGVwLnJ1biwgW3t9XSwgZXhwZWN0ZWRfbG9ncz1leHBlY3RlZF9sb2dzKQorCisgICAgZGVmIHRl
c3RfYnVpbGRfanNjKHNlbGYpOgorICAgICAgICBtb2NrX29wdGlvbnMgPSBzZWxmLl9zdGVwX29w
dGlvbnMoKQorICAgICAgICBtb2NrX29wdGlvbnMubm9uX2ludGVyYWN0aXZlID0gRmFsc2UKKyAg
ICAgICAgbW9ja19vcHRpb25zLmJ1aWxkX3N0eWxlID0gInJlbGVhc2UiCisgICAgICAgIG1vY2tf
b3B0aW9ucy5idWlsZCA9IFRydWUKKyAgICAgICAgbW9ja19vcHRpb25zLmFyY2hpdGVjdHVyZSA9
IFRydWUKKyAgICAgICAgbW9ja19vcHRpb25zLmdyb3VwID0gImpzYyIKKyAgICAgICAgdG9vbCA9
IE1vY2tUb29sKGxvZ19leGVjdXRpdmU9VHJ1ZSkKKyAgICAgICAgIyBGSVhNRTogV2Ugc2hvdWxk
bid0IHVzZSBhIHJlYWwgcG9ydC1vYmplY3QgaGVyZSwgYnV0IHRoZXJlIGlzIHRvbyBtdWNoIHRv
IG1vY2sgYXQgdGhlIG1vbWVudC4KKyAgICAgICAgdG9vbC5fZGVwcmVjYXRlZF9wb3J0ID0gRGVw
cmVjYXRlZFBvcnQoKQorICAgICAgICBzdGVwID0gc3RlcHMuQnVpbGQodG9vbCwgbW9ja19vcHRp
b25zKQorICAgICAgICBleHBlY3RlZF9sb2dzID0gIiIiQnVpbGRpbmcgV2ViS2l0CitNT0NLIHJ1
bl9hbmRfdGhyb3dfaWZfZmFpbDogWydUb29scy9TY3JpcHRzL2J1aWxkLWpzYycsICctLXJlbGVh
c2UnLCAnQVJDSFM9VHJ1ZSddLCBjd2Q9L21vY2stY2hlY2tvdXQsIGVudj17J0xDX0FMTCc6ICdD
JywgJ1RFUk0nOiAnbm9uZScsICdNT0NLX0VOVklST05fQ09QWSc6ICcxJ30KKyIiIgorICAgICAg
ICBPdXRwdXRDYXB0dXJlKCkuYXNzZXJ0X291dHB1dHMoc2VsZiwgc3RlcC5ydW4sIFt7fV0sIGV4
cGVjdGVkX2xvZ3M9ZXhwZWN0ZWRfbG9ncykKKworICAgIGRlZiB0ZXN0X3BhdGNoX3JlbGV2YW50
KHNlbGYpOgorICAgICAgICBzZWxmLm1heERpZmYgPSBOb25lCisgICAgICAgIG1vY2tfb3B0aW9u
cyA9IHNlbGYuX3N0ZXBfb3B0aW9ucygpCisgICAgICAgIHRvb2wgPSBNb2NrVG9vbChsb2dfZXhl
Y3V0aXZlPVRydWUpCisgICAgICAgIHRvb2wuc2NtKCkuX21vY2tDaGFuZ2VkRmlsZXMgPSBbIkpT
VGVzdHMvTW9ja0ZpbGUxIiwgIkNoYW5nZUxvZyJdCisgICAgICAgICMgRklYTUU6IFdlIHNob3Vs
ZG4ndCB1c2UgYSByZWFsIHBvcnQtb2JqZWN0IGhlcmUsIGJ1dCB0aGVyZSBpcyB0b28gbXVjaCB0
byBtb2NrIGF0IHRoZSBtb21lbnQuCisgICAgICAgIHRvb2wuX2RlcHJlY2F0ZWRfcG9ydCA9IERl
cHJlY2F0ZWRQb3J0KCkKKyAgICAgICAgc3RlcCA9IHN0ZXBzLkNoZWNrUGF0Y2hSZWxldmFuY2Uo
dG9vbCwgbW9ja19vcHRpb25zKQorICAgICAgICBleHBlY3RlZF9sb2dzID0gIiIiQ2hlY2tpbmcg
cmVsZXZhbmNlIG9mIHBhdGNoCitUaGlzIHBhdGNoIGhhcyByZWxldmFudCBjaGFuZ2VzLgorIiIi
CisgICAgICAgIE91dHB1dENhcHR1cmUoKS5hc3NlcnRfb3V0cHV0cyhzZWxmLCBzdGVwLnJ1biwg
W3t9XSwgZXhwZWN0ZWRfbG9ncz1leHBlY3RlZF9sb2dzKQorCisgICAgZGVmIHRlc3RfcGF0Y2hf
cmVsZXZhbnRfanNjKHNlbGYpOgorICAgICAgICBzZWxmLm1heERpZmYgPSBOb25lCisgICAgICAg
IG1vY2tfb3B0aW9ucyA9IHNlbGYuX3N0ZXBfb3B0aW9ucygpCisgICAgICAgIG1vY2tfb3B0aW9u
cy5ncm91cCA9ICJqc2MiCisgICAgICAgIHRvb2wgPSBNb2NrVG9vbChsb2dfZXhlY3V0aXZlPVRy
dWUpCisgICAgICAgIHRvb2wuc2NtKCkuX21vY2tDaGFuZ2VkRmlsZXMgPSBbIkpTVGVzdHMvTW9j
a0ZpbGUxIiwgIkNoYW5nZUxvZyJdCisgICAgICAgICMgRklYTUU6IFdlIHNob3VsZG4ndCB1c2Ug
YSByZWFsIHBvcnQtb2JqZWN0IGhlcmUsIGJ1dCB0aGVyZSBpcyB0b28gbXVjaCB0byBtb2NrIGF0
IHRoZSBtb21lbnQuCisgICAgICAgIHRvb2wuX2RlcHJlY2F0ZWRfcG9ydCA9IERlcHJlY2F0ZWRQ
b3J0KCkKKyAgICAgICAgc3RlcCA9IHN0ZXBzLkNoZWNrUGF0Y2hSZWxldmFuY2UodG9vbCwgbW9j
a19vcHRpb25zKQorICAgICAgICBleHBlY3RlZF9sb2dzID0gIiIiQ2hlY2tpbmcgcmVsZXZhbmNl
IG9mIHBhdGNoCitUaGlzIHBhdGNoIGhhcyByZWxldmFudCBjaGFuZ2VzLgorIiIiCisgICAgICAg
IE91dHB1dENhcHR1cmUoKS5hc3NlcnRfb3V0cHV0cyhzZWxmLCBzdGVwLnJ1biwgW3t9XSwgZXhw
ZWN0ZWRfbG9ncz1leHBlY3RlZF9sb2dzKQorCisgICAgZGVmIHRlc3RfcGF0Y2hfbm90X3JlbGV2
YW50X2pzYyhzZWxmKToKKyAgICAgICAgc2VsZi5tYXhEaWZmID0gTm9uZQorICAgICAgICBtb2Nr
X29wdGlvbnMgPSBzZWxmLl9zdGVwX29wdGlvbnMoKQorICAgICAgICBtb2NrX29wdGlvbnMuZ3Jv
dXAgPSAianNjIgorICAgICAgICB0b29sID0gTW9ja1Rvb2wobG9nX2V4ZWN1dGl2ZT1UcnVlKQor
ICAgICAgICB0b29sLnNjbSgpLl9tb2NrQ2hhbmdlZEZpbGVzID0gWyJUb29scy9DaGFuZ2VMb2ci
LCAiVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3N0ZXBzX3VuaXR0ZXN0LnB5Il0K
KyAgICAgICAgIyBGSVhNRTogV2Ugc2hvdWxkbid0IHVzZSBhIHJlYWwgcG9ydC1vYmplY3QgaGVy
ZSwgYnV0IHRoZXJlIGlzIHRvbyBtdWNoIHRvIG1vY2sgYXQgdGhlIG1vbWVudC4KKyAgICAgICAg
dG9vbC5fZGVwcmVjYXRlZF9wb3J0ID0gRGVwcmVjYXRlZFBvcnQoKQorICAgICAgICBzdGVwID0g
c3RlcHMuQ2hlY2tQYXRjaFJlbGV2YW5jZSh0b29sLCBtb2NrX29wdGlvbnMpCisgICAgICAgIGV4
cGVjdGVkX2xvZ3MgPSAiIiJDaGVja2luZyByZWxldmFuY2Ugb2YgcGF0Y2gKK1RoaXMgcGF0Y2gg
ZG9lcyBub3QgaGF2ZSByZWxldmFudCBjaGFuZ2VzLgorIiIiCisgICAgICAgIHdpdGggc2VsZi5h
c3NlcnRSYWlzZXMoU2NyaXB0RXJyb3IpOgorICAgICAgICAgICAgT3V0cHV0Q2FwdHVyZSgpLmFz
c2VydF9vdXRwdXRzKHNlbGYsIHN0ZXAucnVuLCBbe31dLCBleHBlY3RlZF9sb2dzPWV4cGVjdGVk
X2xvZ3MpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>300474</attachid>
            <date>2017-02-02 16:27:51 -0800</date>
            <delta_ts>2017-02-06 20:28:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-162458-20170202162537.patch</filename>
            <type>text/plain</type>
            <size>79709</size>
            <attacher name="Srinivasan Vijayaraghavan">webkit</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA2Mzc3CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOWI3NTZhN2Y2MTZlMzQ0YjFhYmFjNjFkZmVkMmExZWI4
NmY3ZTQ0ZC4uODRjNDY5MTU1NThjNTA1YThlNjM0NWEyMjZlYTg5YjhjMzE1OTIxMSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEx
NyBAQAorMjAxNy0wMS0zMCAgU3Jpbml2YXNhbiBWaWpheWFyYWdoYXZhbiAgPHN2aWpheWFyYWdo
YXZhbkBhcHBsZS5jb20+CisKKyAgICAgICAgRVdTIHNob3VsZCBydW4gSmF2YVNjcmlwdENvcmUg
dGVzdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2
MjQ1OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
U2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hlY2tvdXQvc2NtL3NjbV9tb2NrLnB5OgorICAgICAg
ICAoTW9ja1NDTS5fX2luaXRfXyk6IEFkZCBfbW9ja0NoYW5nZWRGaWxlcyB2YXJpYWJsZS4KKyAg
ICAgICAgKE1vY2tTQ00uY2hhbmdlZF9maWxlcyk6IENoYW5nZSB0byB1c2UgX21vY2tDaGFuZ2Vk
RmlsZXMgdmFyaWFibGVzLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZp
Zy9ld3MuanNvbjogQWRkIGNvbmZpZyBpbmZvIGZvciBKU0MgRVdTLgorICAgICAgICAqIFNjcmlw
dHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9wb3J0cy5weTogQWRkIHN1cHBvcnQgZm9yIEpTQyBF
V1MgaW4gTWFjIFBvcnQuCisgICAgICAgIChEZXByZWNhdGVkUG9ydC5idWlsZF9qc2NfY29tbWFu
ZCk6IEFkZGVkIC0gY29tbWFuZCB0byBidWlsZCBKU0Mgb25seSAocXVpY2tlciB0aGFuIGJ1aWxk
aW5nIGFsbCBvZiBXZWJLaXQpLgorICAgICAgICAoRGVwcmVjYXRlZFBvcnQucnVuX2phdmFzY3Jp
cHRjb3JlX3Rlc3RzX2NvbW1hbmQpOiBBbGxvdyBKU0MgRVdTIHRvIG9ubHkgcnVuIEpTQyB0ZXN0
cy4KKyAgICAgICAgKE1hY1BvcnQucnVuX3dlYmtpdF90ZXN0c19jb21tYW5kKTogQ2hlY2sgZm9y
IEpTQy4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvcG9ydHNfbW9j
ay5weToKKyAgICAgICAgKE1vY2tQb3J0LnJ1bl9qYXZhc2NyaXB0Y29yZV90ZXN0c19jb21tYW5k
KTogQWRkIGJ1aWxkX3N0eWxlIGFyZ3VtZW50LgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkv
Y29tbW9uL2NvbmZpZy9wb3J0c191bml0dGVzdC5weToKKyAgICAgICAgKERlcHJlY2F0ZWRQb3J0
VGVzdC50ZXN0X21hY19wb3J0KTogQWRkIHVuaXQgdGVzdHMgZm9yIGJ1aWxkLWpzYyBzaGVsbCBj
b21tYW5kLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9qc2N0ZXN0cmVz
dWx0cy5weTogQWRkZWQuCisgICAgICAgIChKU0NUZXN0UmVzdWx0cyk6IEFkZGVkLgorICAgICAg
ICAoSlNDVGVzdFJlc3VsdHMuaW50ZXJzZWN0aW9uKTogUmV0dXJuIGEgSlNDVGVzdFJlc3VsdHMg
b2JqZWN0IHdpdGggZmFpbHVyZXMgY29tbW9uIHRvIGJvdGggaW5wdXQgb2JqZWN0cy4KKyAgICAg
ICAgKEpTQ1Rlc3RSZXN1bHRzLnJlc3VsdHNfZnJvbV9zdHJpbmcpOiBVc2UganNvbiBsaWJyYXJ5
IHRvIHBhcnNlIHJlc3VsdHMuCisgICAgICAgIChKU0NUZXN0UmVzdWx0cy5fX2luaXRfXyk6IElu
aXRpYWxpemUgbWVtYmVycy4KKyAgICAgICAgKEpTQ1Rlc3RSZXN1bHRzLmVxdWFscyk6IFRoaXMg
ZW5hYmxlcyB1bml0IHRlc3RpbmcuCisgICAgICAgIChKU0NUZXN0UmVzdWx0cy5pc19zdWJzZXQp
OiBDaGVja3MgaWYgb25lIHNldCBvZiBmYWlsdXJlcyBpcyBhIHN1YnNldCBvZiBhbm90aGVyLgor
ICAgICAgICAoSlNDVGVzdFJlc3VsdHMuc3RyZXNzX3Rlc3RfZmFpbHVyZXMpOiBHZXR0ZXIuCisg
ICAgICAgIChKU0NUZXN0UmVzdWx0cy5hbGxfYXBpX3Rlc3RzX3Bhc3NlZCk6IEdldHRlci4KKyAg
ICAgICAgKEpTQ1Rlc3RSZXN1bHRzLmFsbF9wYXNzZWQpOiBHZXR0ZXIuCisgICAgICAgIChKU0NU
ZXN0UmVzdWx0cy5mYWlsaW5nX3Rlc3RfcmVzdWx0cyk6IEdldHRlci4gU29tZSBvZiB0aGVzZSBl
eGlzdCBmb3IgaW50ZXJvcGFiaWxpdHkgcmVhc29ucy4KKyAgICAgICAgKEpTQ1Rlc3RSZXN1bHRz
LnRlc3RfcmVzdWx0cyk6IEdldHRlci4KKyAgICAgICAgKEpTQ1Rlc3RSZXN1bHRzLmZhaWxpbmdf
dGVzdHMpOiBHZXR0ZXIuCisgICAgICAgIChKU0NUZXN0UmVzdWx0cy5kaWRfZXhjZWVkX3Rlc3Rf
ZmFpbHVyZV9saW1pdCk6IEdldHRlci4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1v
bi9uZXQvanNjdGVzdHJlc3VsdHNfdW5pdHRlc3QucHk6IEFkZGVkLgorICAgICAgICAoSlNDVGVz
dFJlc3VsdHNUZXN0KTogQ2xhc3MgdG8gdGVzdCBKU0NUZXN0UmVzdWx0cy4KKyAgICAgICAgKEpT
Q1Rlc3RSZXN1bHRzVGVzdC50ZXN0X3Jlc3VsdHNfZnJvbV9zdHJpbmcpOiBUZXN0cyBwYXJzaW5n
LgorICAgICAgICAoSlNDVGVzdFJlc3VsdHNUZXN0LnRlc3RfaW50ZXJzZWN0aW9uX2FwaV90ZXN0
cyk6IFVuaXQgdGVzdCBmb3IgaW50ZXJzZWN0aW9uKCkgY2xhc3MgbWV0aG9kLgorICAgICAgICAo
SlNDVGVzdFJlc3VsdHNUZXN0LnRlc3RfaW50ZXJzZWN0aW9uX3N0cmVzc190ZXN0cyk6IFVuaXQg
dGVzdCBmb3IgaW50ZXJzZWN0aW9uKCkgY2xhc3MgbWV0aG9kLgorICAgICAgICAoSlNDVGVzdFJl
c3VsdHNUZXN0LnRlc3RfaW50ZXJzZWN0aW9uX2dlbmVyYWxfY2FzZSk6IFVuaXQgdGVzdCBmb3Ig
aW50ZXJzZWN0aW9uKCkgY2xhc3MgbWV0aG9kLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkv
dG9vbC9ib3QvZWFybHl3YXJuaW5nc3lzdGVtdGFzay5weToKKyAgICAgICAgKEVhcmx5V2Fybmlu
Z1N5c3RlbVRhc2sucnVuKTogQWRkIGNoZWNrX3BhdGNoX3JlbGV2YW5jZSBzdGVwLgorICAgICAg
ICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvanNjZXdzX3VuaXR0ZXN0LnB5OiBBZGRlZC4K
KyAgICAgICAgKE1vY2tQYXRjaEFuYWx5c2lzVGFzayk6IE1vY2tlZC1vdXQgdmVyc2lvbiBvZiBQ
YXRjaEFuYWx5c2lzVGFzayB0aGF0IGRvZXNuJ3QgcnVuIGNvbW1hbmRzLgorICAgICAgICAoTW9j
a1BhdGNoQW5hbHlzaXNUYXNrLl9faW5pdF9fKTogU2V0cyBhdHRyaWJ1dGVzLgorICAgICAgICAo
TW9ja1BhdGNoQW5hbHlzaXNUYXNrLl90ZXN0KTogT3ZlcnJpZGUgdG8gbm90IHJ1biBjb21tYW5k
LgorICAgICAgICAoTW9ja1BhdGNoQW5hbHlzaXNUYXNrLl9idWlsZF9hbmRfdGVzdF93aXRob3V0
X3BhdGNoKTogT3ZlcnJpZGUgdG8gbm90IHJ1biBjb21tYW5kLgorICAgICAgICAoTW9ja1BhdGNo
QW5hbHlzaXNUYXNrLnZhbGlkYXRlKTogQXNzdW1lIG1vY2tlZCBwYXRjaCBpcyB2YWxpZCBmb3Ig
cHVycG9zZXMgb2YgdGVzdGluZyByZXRyeSBsb2dpYy4KKyAgICAgICAgKE1vY2tQYXRjaEFuYWx5
c2lzVGFzay50ZXN0X3J1bl9jb3VudCk6IFNwZWNpZmljIHRvIHRoZSBtb2NrZWQgdmVyc2lvbiwg
dG8gdGVzdCByZXRyeSBsb2dpYy4KKyAgICAgICAgKE1vY2tKU0NFYXJseVdhcm5pbmdTeXN0ZW0p
OiBNb2NrZWQtb3V0IHZlcnNpb24gb2YgQWJzdGFyY3RFYXJseVdhcm5pbmdTeXN0ZW0gc28gd2Ug
Y2FuIHByb3ZpZGUgdGVzdCByZXN1bHRzLgorICAgICAgICAoTW9ja0pTQ0Vhcmx5V2FybmluZ1N5
c3RlbS5fX2luaXRfXyk6IFNldHMgYXR0cmlidXRlcywgYWxzbyBzZXRzIGdyb3VwIHRvIGpzYy4K
KyAgICAgICAgKE1vY2tKU0NFYXJseVdhcm5pbmdTeXN0ZW0udGVzdF9yZXN1bHRzKTogUmV0dXJu
cyB0ZXN0IHJlc3VsdHMgcHJvdmlkZWQgYnkgdXMsIGluc3RlYWQgb2YgdXNpbmcgYSBKU09OIHJl
YWRlci4KKyAgICAgICAgKEpTQ0Vhcmx5V2FybmluZ1N5c3RlbVRlc3QpOiBDbGFzcyB0byB0ZXN0
IHJldHJ5IGxvZ2ljIGluIGJlbG93IHNpdHVhdGlvbnMuCisgICAgICAgIChKU0NFYXJseVdhcm5p
bmdTeXN0ZW1UZXN0Ll9jcmVhdGVfdGFzayk6IEhlbHBlciBmdW5jdGlvbiB0byBhYnN0cmFjdCBv
dXQgY29tbW9uIGNvZGUuCisgICAgICAgIChKU0NFYXJseVdhcm5pbmdTeXN0ZW1UZXN0Ll9yZXN1
bHRzX2luZGljYXRlX2FsbF9wYXNzZWQpOiBGYWxzZSBpZiBpbnB1dCBpcyBOb25lIG9yIGhhcyBm
YWlsdXJlcywgZWxzZSBUcnVlLgorICAgICAgICAoSlNDRWFybHlXYXJuaW5nU3lzdGVtVGVzdC50
ZXN0X3N1Y2Nlc3NfY2FzZSk6IENsZWFuIHBhdGNoIG9uIGNsZWFuIHRyZWUuCisgICAgICAgIChK
U0NFYXJseVdhcm5pbmdTeXN0ZW1UZXN0LnRlc3RfdGVzdF9mYWlsdXJlKTogRmFpbGVkIHBhdGNo
IG9uIGNsZWFuIHRyZWUuCisgICAgICAgIChKU0NFYXJseVdhcm5pbmdTeXN0ZW1UZXN0LnRlc3Rf
Zml4KTogUGF0Y2ggdGhhdCBmaXhlcyBhbGwgdHJlZSByZWRuZXNzLgorICAgICAgICAoSlNDRWFy
bHlXYXJuaW5nU3lzdGVtVGVzdC50ZXN0X2luZWZmZWN0aXZlX3BhdGNoKTogUGF0Y2ggdGhhdCBo
YXMgc2FtZSBmYWlsdXJlcyBhcyB0cmVlLgorICAgICAgICAoSlNDRWFybHlXYXJuaW5nU3lzdGVt
VGVzdC50ZXN0X3BhcnRpYWxseV9lZmZlY3RpdmVfcGF0Y2gpOiBQYXRjaCBmaXhlcyBzb21lIGZh
aWx1cmVzIGJ1dCBhZGRzIG5vIG5ldyBmYWlsdXJlcy4KKyAgICAgICAgKEpTQ0Vhcmx5V2Fybmlu
Z1N5c3RlbVRlc3QudGVzdF9kaWZmZXJlbnRfdGVzdF9mYWlsdXJlc19pbl9wYXRjaF9hbmRfdHJl
ZSk6IFBhdGNoIGhhcyBzb21lIGZhaWx1cmVzIG5vdCBpbiB0cmVlLgorICAgICAgICAoSlNDRWFy
bHlXYXJuaW5nU3lzdGVtVGVzdC50ZXN0X2ZpcnN0X3Jlc3VsdHNfY291bGRfbm90X2JlX3JlYWQp
OiBQYXRjaCByZXN1bHRzIG5vdCByZWFkYWJsZS4KKyAgICAgICAgKEpTQ0Vhcmx5V2FybmluZ1N5
c3RlbVRlc3QudGVzdF9zZWNvbmRfcmVzdWx0c19jb3VsZF9ub3RfYmVfcmVhZCk6IFBhdGNoIHJl
c3VsdHMgbm90IHJlYWRhYmxlIG9uIHNlY29uZCBydW4uCisgICAgICAgIChKU0NFYXJseVdhcm5p
bmdTeXN0ZW1UZXN0LnRlc3RfY2xlYW5fcmVzdWx0c19jb3VsZF9ub3RfYmVfcmVhZCk6IFJlc3Vs
dHMgZnJvbSBjbGVhbiB0cmVlIG5vdCByZWFkYWJsZS4KKyAgICAgICAgKEpTQ0Vhcmx5V2Fybmlu
Z1N5c3RlbVRlc3QudGVzdF9mbGFreV9yZXN1bHRzX29uX2NsZWFuX3RyZWVfcGFzcyk6IFBhdGNo
IGhhcyBvbmUgZmxha2UgYW5kIG5vIGZhaWx1cmVzLgorICAgICAgICAoSlNDRWFybHlXYXJuaW5n
U3lzdGVtVGVzdC50ZXN0X2ZsYWt5X3Jlc3VsdHNfb25fY2xlYW5fdHJlZV9wYXNzX3YyKTogUGF0
Y2ggaGFzIG9uZSBmbGFrZSBhbmQgbm8gZmFpbHVyZXMuCisgICAgICAgIChKU0NFYXJseVdhcm5p
bmdTeXN0ZW1UZXN0LnRlc3RfZmxha3lfcmVzdWx0c19vbl9jbGVhbl90cmVlX2ZhaWx1cmUpOiBQ
YXRjaCBoYXMgZmxha2VzIGFuZCBmYWlsZWQgdGVzdHMuCisgICAgICAgIChKU0NFYXJseVdhcm5p
bmdTeXN0ZW1UZXN0LnRlc3RfZmxha3lfcmVzdWx0c19vbl9yZWRfdHJlZV9wYXNzKTogUGF0Y2gg
aGFzIHNhbWUgZmFpbHVyZXMgYXMgdHJlZSwgcGx1cyBhIGZsYWtlLgorICAgICAgICAqIFNjcmlw
dHMvd2Via2l0cHkvdG9vbC9ib3QvanNjdGVzdHJlc3VsdHNyZWFkZXIucHk6IEFkZGVkLgorICAg
ICAgICAoSlNDVGVzdFJlc3VsdHNSZWFkZXIpOiBSZWFkcyByZXN1bHRzIGZpbGUuCisgICAgICAg
IChKU0NUZXN0UmVzdWx0c1JlYWRlci5fX2luaXRfXyk6IFNldHMgYXR0cmlidXRlcy4KKyAgICAg
ICAgKEpTQ1Rlc3RSZXN1bHRzUmVhZGVyLl9yZWFkX2ZpbGVfY29udGVudHMpOiBSZWFkcyBmaWxl
LgorICAgICAgICAoSlNDVGVzdFJlc3VsdHNSZWFkZXIuX2NyZWF0ZV9qc2NfdGVzdF9yZXN1bHRz
KTogQ3JlYXRlcyBhIEpTQ1Rlc3RSZXN1bHRzIG9iamVjdC4KKyAgICAgICAgKEpTQ1Rlc3RSZXN1
bHRzUmVhZGVyLnJlc3VsdHMpOiBJbnZva2VzIF9jcmVhdGVfanNjX3Rlc3RfcmVzdWx0cyB0byBy
ZXR1cm4gYSBKU0NUZXN0UmVzdWx0cyBvYmplY3QuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRw
eS90b29sL2JvdC9wYXRjaGFuYWx5c2lzdGFzay5weToKKyAgICAgICAgKFBhdGNoSXNOb3RBcHBs
aWNhYmxlKTogRXhjZXB0aW9uIGZvciB3aGVuIHBhdGNoIGRvZXNuJ3QgaGF2ZSByZWxldmFudCBj
aGFuZ2VzLgorICAgICAgICAoUGF0Y2hBbmFseXNpc1Rhc2suX2NoZWNrX3BhdGNoX3JlbGV2YW5j
ZSk6IEFkZGVkLgorICAgICAgICAoUGF0Y2hBbmFseXNpc1Rhc2suX2J1aWxkKTogQ2hlY2sgZm9y
IEpTQy4KKyAgICAgICAgKFBhdGNoQW5hbHlzaXNUYXNrLl9idWlsZF93aXRob3V0X3BhdGNoKTog
Q2hlY2sgZm9yIEpTQy4KKyAgICAgICAgKFBhdGNoQW5hbHlzaXNUYXNrLl90ZXN0KTogQ2hlY2sg
Zm9yIEpTQy4KKyAgICAgICAgKFBhdGNoQW5hbHlzaXNUYXNrLl9idWlsZF9hbmRfdGVzdF93aXRo
b3V0X3BhdGNoKTogQ2hlY2sgZm9yIEpTQy4KKyAgICAgICAgKFBhdGNoQW5hbHlzaXNUYXNrLl90
ZXN0X3BhdGNoKTogQWRkIHJldHJ5IGxvZ2ljIGZvciBKU0MuCisgICAgICAgICogU2NyaXB0cy93
ZWJraXRweS90b29sL2NvbW1hbmRzL2Rvd25sb2FkLnB5OgorICAgICAgICAoQ2hlY2tQYXRjaFJl
bGV2YW5jZSk6IEFkZCBjaGVjay1wYXRjaC1yZWxldmFuY2UgY29tbWFuZC4KKyAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZWFybHl3YXJuaW5nc3lzdGVtLnB5OgorICAg
ICAgICAoQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0uYmVnaW5fd29ya19xdWV1ZSk6IFVzZSBK
U0NUZXN0UmVzdWx0c1JlYWRlciBub3QgTGF5b3V0VGVzdFJlc3VsdHNSZWFkZXIgaW4gSlNDIEVX
Uy4KKyAgICAgICAgKEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtLnJldmlld19wYXRjaCk6IEhh
bmRsZSBQYXRjaElzQXBwbGljYWJsZQorICAgICAgICAoQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0
ZW0udGVzdF9yZXN1bHRzKTogX2xheW91dF90ZXN0X3Jlc3VsdHNfcmVhZGVyIC0+IF90ZXN0X3Jl
c3VsdHNfcmVhZGVyLgorICAgICAgICAoQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0uYXJjaGl2
ZV9sYXN0X3Rlc3RfcmVzdWx0cyk6IF9sYXlvdXRfdGVzdF9yZXN1bHRzX3JlYWRlciAtPiBfdGVz
dF9yZXN1bHRzX3JlYWRlci4KKyAgICAgICAgKEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtLmdy
b3VwKTogVGhpcyBhdHRyaWJ1dGUgZGV0ZXJtaW5lcyB0aGUgdHlwZSBvZiBFV1MgKGVnLiBKU0Mp
LgorICAgICAgICAoQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0ubG9hZF9ld3NfY2xhc3Nlcyk6
IEFkZCBfZ3JvdXAuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Vh
cmx5d2FybmluZ3N5c3RlbV91bml0dGVzdC5weToKKyAgICAgICAgKEFic3RyYWN0RWFybHlXYXJu
aW5nU3lzdGVtVGVzdC50ZXN0X2ZhaWxpbmdfdGVzdHNfbWVzc2FnZS5UZXN0RVdTKTogQWRkIF9n
cm91cC4KKyAgICAgICAgKEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtVGVzdC50ZXN0X2ZhaWxp
bmdfanNjX3Rlc3RzX21lc3NhZ2UuVGVzdEVXUyk6IEFkZGVkIHRlc3QgZm9yIGpzYyBmYWlsdXJl
cyBtZXNzYWdlLgorICAgICAgICAoQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW1UZXN0KTogQWRk
IF9ncm91cCB2YXJpYWJsZS4KKyAgICAgICAgKEVhcmx5V2FybmluZ1N5c3RlbVRlc3QuX2RlZmF1
bHRfZXhwZWN0ZWRfbG9ncyk6IEFkZCBjaGVjay1wYXRjaC1yZWxldmFuY2Ugc3RlcCBhbmQgLS1n
cm91cCBvcHRpb24uCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL19faW5p
dF9fLnB5OiBBZGQgQ2hlY2tQYXRjaFJlbGV2YW5jZSBpbXBvcnQuCisgICAgICAgICogU2NyaXB0
cy93ZWJraXRweS90b29sL3N0ZXBzL2J1aWxkLnB5OgorICAgICAgICAoQnVpbGQub3B0aW9ucyk6
IENoZWNrIGZvciBKU0MuCisgICAgICAgIChCdWlsZC5idWlsZCk6IENoZWNrIGZvciBKU0MuCisg
ICAgICAgIChCdWlsZC5ydW4pOiBDaGVjayBmb3IgSlNDLgorICAgICAgICAqIFNjcmlwdHMvd2Vi
a2l0cHkvdG9vbC9zdGVwcy9jaGVja3BhdGNocmVsZXZhbmNlLnB5OiBBZGRlZC4KKyAgICAgICAg
KENoZWNrUGF0Y2hSZWxldmFuY2UpOiBBZGRlZC4KKyAgICAgICAgKENoZWNrUGF0Y2hSZWxldmFu
Y2UuX2RvZXNfY29udGFpbl9jaGFuZ2VfaW5fcGF0aHMpOiBBYnN0cmFjdCBmdW5jdGlvbiB0byBw
ZXJmb3JtIHJlZ2V4IG1hdGNoaW5nLgorICAgICAgICAoQ2hlY2tQYXRjaFJlbGV2YW5jZS5ydW4p
OiBDaGVjayBpZiBjaGFuZ2VkIGZpbGVzIGluIHBhdGNoIGJlbG9uZyBpbiBjZXJ0YWluIGZvbGRl
cnMuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL29wdGlvbnMucHk6Cisg
ICAgICAgIChPcHRpb25zKTogQWRkIC0tZ3JvdXAgY29tbWFuZCBsaW5lIG9wdGlvbi4KKyAgICAg
ICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvcnVudGVzdHMucHk6CisgICAgICAgIChS
dW5UZXN0cy5vcHRpb25zKTogQWRkIGdyb3VwLgorICAgICAgICAoUnVuVGVzdHMucnVuKTogQ2hl
Y2sgZm9yIEpTQy4KKyAgICAgICAgKFJ1blRlc3RzLl9ydW5fd2Via2l0X3Rlc3RzKTogQ2hlY2sg
Zm9yIEpTQy4KKyAgICAgICAgKFJ1blRlc3RzKTogQWRkIF9ncm91cCBhdHRyaWJ1dGUuCisgICAg
ICAgIChSdW5UZXN0cy5fcnVuX2phdmFzY3JpcHRjb3JlX3Rlc3RzKTogTmV3LgorICAgICAgICAq
IFNjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9zdGVwc191bml0dGVzdC5weTogVW5pdCB0ZXN0
cy4KKwogMjAxNi0wOS0yNSAgR3l1eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHdlYmtpdC5vcmc+
CiAKICAgICAgICAgW0VGTF0gQWRqdXN0IEVGTCBpbmRlbnRhdGlvbiB0byBFRkwgTWluaUJyb3dz
ZXIKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNrb3V0L3Nj
bS9zY21fbW9jay5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNrb3V0L3Nj
bS9zY21fbW9jay5weQppbmRleCBjNWQxMGZjYjE4OWIwYThiNTE5ZmE1NTYyNTAyMmE3MGM0ODZk
NDRiLi45Nzc0ZWM4YWU4NzNhMWIwYjgzNzYwNzE4MDY2NzkyMTU4MDllZWVjIDEwMDY0NAotLS0g
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja291dC9zY20vc2NtX21vY2sucHkK
KysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hlY2tvdXQvc2NtL3NjbV9tb2Nr
LnB5CkBAIC0xLDQgKzEsNSBAQAogIyBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTM3LDYg
KzM4LDcgQEAgY2xhc3MgTW9ja1NDTShvYmplY3QpOgogICAgICAgICBzZWxmLmFkZGVkX3BhdGhz
ID0gc2V0KCkKICAgICAgICAgc2VsZi5fZmlsZXN5c3RlbSA9IGZpbGVzeXN0ZW0gb3IgTW9ja0Zp
bGVTeXN0ZW0oKQogICAgICAgICBzZWxmLl9leGVjdXRpdmUgPSBleGVjdXRpdmUgb3IgTW9ja0V4
ZWN1dGl2ZSgpCisgICAgICAgIHNlbGYuX21vY2tDaGFuZ2VkRmlsZXMgPSBbIk1vY2tGaWxlMSJd
CiAKICAgICBkZWYgYWRkKHNlbGYsIGRlc3RpbmF0aW9uX3BhdGgpOgogICAgICAgICBzZWxmLmFk
ZF9saXN0KFtkZXN0aW5hdGlvbl9wYXRoXSkKQEAgLTcxLDcgKzczLDcgQEAgY2xhc3MgTW9ja1ND
TShvYmplY3QpOgogICAgICAgICByZXR1cm4gc2VsZi5fZmlsZXN5c3RlbS5qb2luKHNlbGYuY2hl
Y2tvdXRfcm9vdCwgKmNvbXBzKQogCiAgICAgZGVmIGNoYW5nZWRfZmlsZXMoc2VsZiwgZ2l0X2Nv
bW1pdD1Ob25lKToKLSAgICAgICAgcmV0dXJuIFsiTW9ja0ZpbGUxIl0KKyAgICAgICAgcmV0dXJu
IHNlbGYuX21vY2tDaGFuZ2VkRmlsZXMKIAogICAgIGRlZiBjaGFuZ2VkX2ZpbGVzX2Zvcl9yZXZp
c2lvbihzZWxmLCByZXZpc2lvbik6CiAgICAgICAgIHJldHVybiBbIk1vY2tGaWxlMSJdCmRpZmYg
LS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvZXdzLmpzb24gYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvZXdzLmpzb24KaW5kZXggMzVkNDk4
NWFiMGY5M2QxMjdiMzcyMWU0NjAxY2Q2ZDg5ZGZjY2YzYy4uZTUzNDBmZTVjM2MyMWFlODFhZDFl
ZjdlMDNmN2ZiODFmMzgzOWNmZiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9j
b21tb24vY29uZmlnL2V3cy5qc29uCisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9u
L2NvbmZpZy9ld3MuanNvbgpAQCAtNTAsNSArNTAsMTEgQEAKICAgICAgICAgInBvcnQiOiAibWFj
IiwKICAgICAgICAgIm5hbWUiOiAibWFjLTMyYml0LWV3cyIsCiAgICAgICAgICJhcmNoaXRlY3R1
cmUiOiAiaTM4NiIKKyAgICB9LAorICAgICJKU0MgRVdTIjogeworICAgICAgICAicG9ydCI6ICJt
YWMiLAorICAgICAgICAibmFtZSI6ICJqc2MtZXdzIiwKKyAgICAgICAgImdyb3VwIjogImpzYyIs
CisgICAgICAgICJydW5UZXN0cyI6IHRydWUKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvcG9ydHMucHkgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2NvbW1vbi9jb25maWcvcG9ydHMucHkKaW5kZXggYTBkNTBkY2I2ZWEwYjVmZGUwYjNj
MTdlZjE1OWNlYWZlZTFhMmU5OC4uZDM3ZWQ5ZDFjNWUyNTUwZTQ4ODM0ZTdlZjAwYmFlNGMyNGNi
ZDc4NCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL3Bv
cnRzLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9wb3J0cy5w
eQpAQCAtMSw2ICsxLDYgQEAKICMgQ29weXJpZ2h0IChDKSAyMDA5LCBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogIyBDb3B5cmlnaHQgKEMpIDIwMTMgTm9raWEgQ29ycG9yYXRpb24g
YW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgotIyBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMTUsIDIwMTcgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
IGFyZQpAQCAtMTAzLDggKzEwMywyMSBAQCBjbGFzcyBEZXByZWNhdGVkUG9ydChvYmplY3QpOgog
ICAgICAgICAgICAgY29tbWFuZC5hcHBlbmQoIi0tcmVsZWFzZSIpCiAgICAgICAgIHJldHVybiBj
b21tYW5kCiAKLSAgICBkZWYgcnVuX2phdmFzY3JpcHRjb3JlX3Rlc3RzX2NvbW1hbmQoc2VsZik6
Ci0gICAgICAgIHJldHVybiBzZWxmLnNjcmlwdF9zaGVsbF9jb21tYW5kKCJydW4tamF2YXNjcmlw
dGNvcmUtdGVzdHMiKQorICAgIGRlZiBidWlsZF9qc2NfY29tbWFuZChzZWxmLCBidWlsZF9zdHls
ZT1Ob25lKToKKyAgICAgICAgY29tbWFuZCA9IHNlbGYuc2NyaXB0X3NoZWxsX2NvbW1hbmQoImJ1
aWxkLWpzYyIpCisgICAgICAgIGlmIGJ1aWxkX3N0eWxlID09ICJkZWJ1ZyI6CisgICAgICAgICAg
ICBjb21tYW5kLmFwcGVuZCgiLS1kZWJ1ZyIpCisgICAgICAgIGlmIGJ1aWxkX3N0eWxlID09ICJy
ZWxlYXNlIjoKKyAgICAgICAgICAgIGNvbW1hbmQuYXBwZW5kKCItLXJlbGVhc2UiKQorICAgICAg
ICByZXR1cm4gY29tbWFuZAorCisgICAgZGVmIHJ1bl9qYXZhc2NyaXB0Y29yZV90ZXN0c19jb21t
YW5kKHNlbGYsIGJ1aWxkX3N0eWxlPU5vbmUpOgorICAgICAgICBjb21tYW5kID0gc2VsZi5zY3Jp
cHRfc2hlbGxfY29tbWFuZCgicnVuLWphdmFzY3JpcHRjb3JlLXRlc3RzIikKKyAgICAgICAgY29t
bWFuZC5hcHBlbmQoIi0tbm8tZmFpbC1mYXN0IikKKyAgICAgICAgY29tbWFuZC5hcHBlbmQoIi0t
anNvbi1vdXRwdXQ9anNjX3Rlc3RfcmVzdWx0cy5qc29uIikKKyAgICAgICAgaWYgKGJ1aWxkX3N0
eWxlID09ICJkZWJ1ZyIpOgorICAgICAgICAgICAgY29tbWFuZC5hcHBlbmQoIi0tZGVidWciKQor
ICAgICAgICByZXR1cm4gY29tbWFuZAogCiAgICAgZGVmIHJ1bl93ZWJraXRfdGVzdHNfY29tbWFu
ZChzZWxmLCBidWlsZF9zdHlsZT1Ob25lKToKICAgICAgICAgY29tbWFuZCA9IHNlbGYuc2NyaXB0
X3NoZWxsX2NvbW1hbmQoInJ1bi13ZWJraXQtdGVzdHMiKQpAQCAtMTUwLDcgKzE2MywxMCBAQCBj
bGFzcyBJT1NTaW11bGF0b3JXSzJQb3J0KERlcHJlY2F0ZWRQb3J0KToKIGNsYXNzIE1hY1BvcnQo
RGVwcmVjYXRlZFBvcnQpOgogICAgIHBvcnRfZmxhZ19uYW1lID0gIm1hYyIKIAotICAgIGRlZiBy
dW5fd2Via2l0X3Rlc3RzX2NvbW1hbmQoc2VsZiwgYnVpbGRfc3R5bGU9Tm9uZSk6CisgICAgZGVm
IHJ1bl93ZWJraXRfdGVzdHNfY29tbWFuZChzZWxmLCBidWlsZF9zdHlsZT1Ob25lLCB0ZXN0X3N1
aXRlPU5vbmUpOgorICAgICAgICBpZiAodGVzdF9zdWl0ZSA9PSAianNjIik6CisgICAgICAgICAg
ICByZXR1cm4gc3VwZXIoTWFjUG9ydCwgc2VsZikucnVuX2phdmFzY3JpcHRjb3JlX3Rlc3RzX2Nv
bW1hbmQoYnVpbGRfc3R5bGUpCisKICAgICAgICAgY29tbWFuZCA9IHN1cGVyKE1hY1BvcnQsIHNl
bGYpLnJ1bl93ZWJraXRfdGVzdHNfY29tbWFuZChidWlsZF9zdHlsZSkKICAgICAgICAgY29tbWFu
ZC5hcHBlbmQoIi0tZHVtcC1yZW5kZXItdHJlZSIpCiAgICAgICAgIHJldHVybiBjb21tYW5kCmRp
ZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvcG9ydHNfbW9j
ay5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9wb3J0c19tb2NrLnB5
CmluZGV4IDYxNzQzZGViYjRlYmVlMzc1NmJhN2MyMGYwMTQ4MjM1NDBkMmRjYTYuLmNhMWIxOGEz
MTA2ODQyM2JkY2UwN2NkZWI3ZDdkN2QxOTlmNDAwYWIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9wb3J0c19tb2NrLnB5CisrKyBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9wb3J0c19tb2NrLnB5CkBAIC0xLDQgKzEsNSBAQAog
IyBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMg
Q29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMg
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTQ5LDcgKzUwLDcgQEAgY2xhc3MgTW9ja1Bv
cnQob2JqZWN0KToKICAgICBkZWYgcnVuX3BlcmxfdW5pdHRlc3RzX2NvbW1hbmQoc2VsZik6CiAg
ICAgICAgIHJldHVybiBbJ21vY2stdGVzdC13ZWJraXRwZXJsJ10KIAotICAgIGRlZiBydW5famF2
YXNjcmlwdGNvcmVfdGVzdHNfY29tbWFuZChzZWxmKToKKyAgICBkZWYgcnVuX2phdmFzY3JpcHRj
b3JlX3Rlc3RzX2NvbW1hbmQoc2VsZiwgYnVpbGRfc3R5bGU9Tm9uZSk6CiAgICAgICAgIHJldHVy
biBbJ21vY2stcnVuLWphdmFjcmlwdGNvcmUtdGVzdHMnXQogCiAgICAgZGVmIHJ1bl93ZWJraXRf
dGVzdHNfY29tbWFuZChzZWxmLCBidWlsZF9zdHlsZT1Ob25lKToKZGlmZiAtLWdpdCBhL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9wb3J0c191bml0dGVzdC5weSBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9wb3J0c191bml0dGVzdC5weQppbmRleCAw
OGQ1NDUyMzZkYTM3MDNlOTI4ZjFjZWVkMWRkOTEwMmQ5Yjg2MjJlLi4xNmNkN2Y5MjgyNTFiYmM5
OTZjYjY0NmU0MzU5ZDczZmRiNTM1YjI2IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2NvbW1vbi9jb25maWcvcG9ydHNfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9jb21tb24vY29uZmlnL3BvcnRzX3VuaXR0ZXN0LnB5CkBAIC0xLDQgKzEsNSBAQAog
IyBDb3B5cmlnaHQgKGMpIDIwMDksIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisj
IENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAj
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC0zOSw2ICs0MCwxMCBAQCBjbGFzcyBEZXBy
ZWNhdGVkUG9ydFRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKE1hY1BvcnQoKS5idWlsZF93ZWJraXRfY29tbWFuZChidWlsZF9zdHlsZT0iZGVidWciKSwg
RGVwcmVjYXRlZFBvcnQoKS5zY3JpcHRfc2hlbGxfY29tbWFuZCgiYnVpbGQtd2Via2l0IikgKyBb
Ii0tZGVidWciXSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChNYWNQb3J0KCkuYnVpbGRfd2Vi
a2l0X2NvbW1hbmQoYnVpbGRfc3R5bGU9InJlbGVhc2UiKSwgRGVwcmVjYXRlZFBvcnQoKS5zY3Jp
cHRfc2hlbGxfY29tbWFuZCgiYnVpbGQtd2Via2l0IikgKyBbIi0tcmVsZWFzZSJdKQogCisgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoTWFjUG9ydCgpLmJ1aWxkX2pzY19jb21tYW5kKCksIERlcHJl
Y2F0ZWRQb3J0KCkuc2NyaXB0X3NoZWxsX2NvbW1hbmQoImJ1aWxkLWpzYyIpKQorICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKE1hY1BvcnQoKS5idWlsZF9qc2NfY29tbWFuZChidWlsZF9zdHlsZT0i
cmVsZWFzZSIpLCBEZXByZWNhdGVkUG9ydCgpLnNjcmlwdF9zaGVsbF9jb21tYW5kKCJidWlsZC1q
c2MiKSArIFsiLS1yZWxlYXNlIl0pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTWFjUG9ydCgp
LmJ1aWxkX2pzY19jb21tYW5kKGJ1aWxkX3N0eWxlPSJkZWJ1ZyIpLCBEZXByZWNhdGVkUG9ydCgp
LnNjcmlwdF9zaGVsbF9jb21tYW5kKCJidWlsZC1qc2MiKSArIFsiLS1kZWJ1ZyJdKQorCiAgICAg
ZGVmIHRlc3RfZ3RrX3drMl9wb3J0KHNlbGYpOgogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKEd0
a1dLMlBvcnQoKS5mbGFnKCksICItLXBvcnQ9Z3RrLXdrMiIpCiAgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoR3RrV0syUG9ydCgpLnJ1bl93ZWJraXRfdGVzdHNfY29tbWFuZCgpLCBEZXByZWNhdGVk
UG9ydCgpLnNjcmlwdF9zaGVsbF9jb21tYW5kKCJydW4td2Via2l0LXRlc3RzIikgKyBbIi0tZ3Rr
Il0pCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvanNjdGVz
dHJlc3VsdHMucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvanNjdGVzdHJl
c3VsdHMucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYmU2ZWIwZTMwZjY3MzZiYTk5NDJjZjBmOGMxNjhkMzIxMzJh
YTdiNQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25l
dC9qc2N0ZXN0cmVzdWx0cy5weQpAQCAtMCwwICsxLDg2IEBACisjIENvcHlyaWdodCAoQykgMjAx
NyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JyBBTkQKKyMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUgorIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisjIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisjIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSCisjIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisjIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisKK2ltcG9ydCBqc29uCitpbXBvcnQgbG9nZ2luZworCitfbG9n
ID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18pCisKKworY2xhc3MgSlNDVGVzdFJlc3VsdHMo
b2JqZWN0KToKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgaW50ZXJzZWN0aW9uKGNscywgZmly
c3QsIHNlY29uZCk6CisgICAgICAgIGludGVyc2VjdGlvbl9hcGlfdGVzdHNfcGFzc2VkID0gZmly
c3QuX2FsbF9hcGlfdGVzdHNfcGFzc2VkIG9yIHNlY29uZC5fYWxsX2FwaV90ZXN0c19wYXNzZWQK
KyAgICAgICAgaW50ZXJzZWN0aW9uX3N0cmVzc190ZXN0X2ZhaWx1cmVzID0gbGlzdChzZXQoZmly
c3QuX3N0cmVzc190ZXN0X2ZhaWx1cmVzKSAmIHNldChzZWNvbmQuX3N0cmVzc190ZXN0X2ZhaWx1
cmVzKSkKKyAgICAgICAgcmV0dXJuIGNscyhpbnRlcnNlY3Rpb25fYXBpX3Rlc3RzX3Bhc3NlZCwg
aW50ZXJzZWN0aW9uX3N0cmVzc190ZXN0X2ZhaWx1cmVzKQorCisgICAgQGNsYXNzbWV0aG9kCisg
ICAgZGVmIHJlc3VsdHNfZnJvbV9zdHJpbmcoY2xzLCBzdHJpbmcpOgorICAgICAgICBpZiBub3Qg
c3RyaW5nOgorICAgICAgICAgICAgcmV0dXJuIE5vbmUKKworICAgICAgICB0cnk6CisgICAgICAg
ICAgICBwYXJzZWRfcmVzdWx0cyA9IGpzb24ubG9hZHMoc3RyaW5nKQorICAgICAgICBleGNlcHQg
VmFsdWVFcnJvcjoKKyAgICAgICAgICAgIHJldHVybiBOb25lCisKKyAgICAgICAgaWYgJ2FsbEFw
aVRlc3RzUGFzc2VkJyBub3QgaW4gcGFyc2VkX3Jlc3VsdHMgb3IgJ3N0cmVzc1Rlc3RGYWlsdXJl
cycgbm90IGluIHBhcnNlZF9yZXN1bHRzOgorICAgICAgICAgICAgcmV0dXJuIE5vbmUKKworICAg
ICAgICByZXR1cm4gY2xzKHBhcnNlZF9yZXN1bHRzWydhbGxBcGlUZXN0c1Bhc3NlZCddLCBwYXJz
ZWRfcmVzdWx0c1snc3RyZXNzVGVzdEZhaWx1cmVzJ10pCisKKyAgICBkZWYgX19pbml0X18oc2Vs
ZiwgYWxsX2FwaV90ZXN0c19wYXNzZWQsIHN0cmVzc190ZXN0X2ZhaWx1cmVzKToKKyAgICAgICAg
c2VsZi5fYWxsX2FwaV90ZXN0c19wYXNzZWQgPSBhbGxfYXBpX3Rlc3RzX3Bhc3NlZAorICAgICAg
ICBzZWxmLl9zdHJlc3NfdGVzdF9mYWlsdXJlcyA9IHN0cmVzc190ZXN0X2ZhaWx1cmVzCisKKyAg
ICAgICAgc2VsZi5fdGVzdF9yZXN1bHRzID0gc3RyZXNzX3Rlc3RfZmFpbHVyZXNbOl0KKyAgICAg
ICAgaWYgbm90IHNlbGYuX2FsbF9hcGlfdGVzdHNfcGFzc2VkOgorICAgICAgICAgICAgc2VsZi5f
dGVzdF9yZXN1bHRzLmFwcGVuZCgiYXBpVGVzdHMiKQorCisgICAgZGVmIGVxdWFscyhzZWxmLCBv
dGhlcik6CisgICAgICAgIHJldHVybiBzZWxmLl9hbGxfYXBpX3Rlc3RzX3Bhc3NlZCA9PSBvdGhl
ci5fYWxsX2FwaV90ZXN0c19wYXNzZWQgYW5kIFwKKyAgICAgICAgICAgICAgIHNldChzZWxmLl9z
dHJlc3NfdGVzdF9mYWlsdXJlcykgPT0gc2V0KG90aGVyLl9zdHJlc3NfdGVzdF9mYWlsdXJlcykK
KworICAgIGRlZiBpc19zdWJzZXQoc2VsZiwgb3RoZXIpOgorICAgICAgICByZXR1cm4gc2V0KHNl
bGYudGVzdF9yZXN1bHRzKCkpIDw9IHNldChvdGhlci50ZXN0X3Jlc3VsdHMoKSkKKworICAgIGRl
ZiBzdHJlc3NfdGVzdF9mYWlsdXJlcyhzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX3N0cmVz
c190ZXN0X2ZhaWx1cmVzCisKKyAgICBkZWYgYWxsX2FwaV90ZXN0c19wYXNzZWQoc2VsZik6Cisg
ICAgICAgIHJldHVybiBzZWxmLl9hbGxfYXBpX3Rlc3RzX3Bhc3NlZAorCisgICAgZGVmIGFsbF9w
YXNzZWQoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl9hbGxfYXBpX3Rlc3RzX3Bhc3NlZCBh
bmQgbm90IHNlbGYuX3N0cmVzc190ZXN0X2ZhaWx1cmVzCisKKyAgICBkZWYgZmFpbGluZ190ZXN0
X3Jlc3VsdHMoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLnN0cmVzc190ZXN0X2ZhaWx1cmVz
KCkKKworICAgIGRlZiB0ZXN0X3Jlc3VsdHMoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl90
ZXN0X3Jlc3VsdHMKKworICAgIGRlZiBmYWlsaW5nX3Rlc3RzKHNlbGYpOgorICAgICAgICByZXR1
cm4gc2VsZi5fdGVzdF9yZXN1bHRzCisKKyAgICAjIE5vIGRlZmluZWQgZmFpbHVyZSBsaW1pdCBm
b3IgSlNDLgorICAgIGRlZiBkaWRfZXhjZWVkX3Rlc3RfZmFpbHVyZV9saW1pdChzZWxmKToKKyAg
ICAgICAgcmV0dXJuIEZhbHNlCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2Nv
bW1vbi9uZXQvanNjdGVzdHJlc3VsdHNfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2NvbW1vbi9uZXQvanNjdGVzdHJlc3VsdHNfdW5pdHRlc3QucHkKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMThl
ZjQ0NGE1NjhlNDYwODgwNDU5MTc2YzVmZmFjMDZmMTVmMTdiNgotLS0gL2Rldi9udWxsCisrKyBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9qc2N0ZXN0cmVzdWx0c191bml0dGVz
dC5weQpAQCAtMCwwICsxLDc1IEBACisjIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1l
dDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyMgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorIyBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMCisjIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisjIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisj
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksCisjIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisKK2ltcG9ydCB1bml0dGVzdAorCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5uZXQuanNjdGVz
dHJlc3VsdHMgaW1wb3J0IEpTQ1Rlc3RSZXN1bHRzCisKKworY2xhc3MgSlNDVGVzdFJlc3VsdHNU
ZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICBkZWYgdGVzdF9yZXN1bHRzX2Zyb21fc3RyaW5n
KHNlbGYpOgorICAgICAgICBub25lX2l0ZW0gPSBOb25lCisgICAgICAgIGVtcHR5X3N0cmluZyA9
ICIiCisgICAgICAgIGludmFsaWRfanNvbiA9ICd7ImFsbEFwaVRlc3RzUGFzc2VkIjonCisgICAg
ICAgIGluY29tcGxldGVfanNvbl92MSA9ICd7ImFsbEFwaVRlc3RzUGFzc2VkIjogdHJ1ZX0nCisg
ICAgICAgIGluY29tcGxldGVfanNvbl92MiA9ICd7InN0cmVzc1Rlc3RGYWlsdXJlcyI6W119Jwor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIEpTQ1Rlc3RSZXN1bHRzLnJlc3VsdHNfZnJv
bV9zdHJpbmcobm9uZV9pdGVtKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCBKU0NU
ZXN0UmVzdWx0cy5yZXN1bHRzX2Zyb21fc3RyaW5nKGVtcHR5X3N0cmluZykpCisgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoTm9uZSwgSlNDVGVzdFJlc3VsdHMucmVzdWx0c19mcm9tX3N0cmluZyhp
bnZhbGlkX2pzb24pKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIEpTQ1Rlc3RSZXN1
bHRzLnJlc3VsdHNfZnJvbV9zdHJpbmcoaW5jb21wbGV0ZV9qc29uX3YxKSkKKyAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChOb25lLCBKU0NUZXN0UmVzdWx0cy5yZXN1bHRzX2Zyb21fc3RyaW5nKGlu
Y29tcGxldGVfanNvbl92MikpCisKKyAgICAgICAgbm9fZmFpbHVyZXNfc3RyaW5nID0gJ3siYWxs
QXBpVGVzdHNQYXNzZWQiOiB0cnVlLCAic3RyZXNzVGVzdEZhaWx1cmVzIjpbXX0nCisgICAgICAg
IG5vX2ZhaWx1cmVzX3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbXSkKKyAgICAgICAg
c2VsZi5hc3NlcnRUcnVlKG5vX2ZhaWx1cmVzX3Jlc3VsdHMuZXF1YWxzKEpTQ1Rlc3RSZXN1bHRz
LnJlc3VsdHNfZnJvbV9zdHJpbmcobm9fZmFpbHVyZXNfc3RyaW5nKSkpCisKKyAgICAgICAgYXBp
X3Rlc3RfZmFpbHVyZXNfc3RyaW5nID0gJ3siYWxsQXBpVGVzdHNQYXNzZWQiOiBmYWxzZSwgInN0
cmVzc1Rlc3RGYWlsdXJlcyI6W119JworICAgICAgICBhcGlfdGVzdF9mYWlsdXJlc19yZXN1bHRz
ID0gSlNDVGVzdFJlc3VsdHMoRmFsc2UsIFtdKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoYXBp
X3Rlc3RfZmFpbHVyZXNfcmVzdWx0cy5lcXVhbHMoSlNDVGVzdFJlc3VsdHMucmVzdWx0c19mcm9t
X3N0cmluZyhhcGlfdGVzdF9mYWlsdXJlc19zdHJpbmcpKSkKKworICAgICAgICBtYW55X2ZhaWx1
cmVzX3N0cmluZyA9ICd7ImFsbEFwaVRlc3RzUGFzc2VkIjogZmFsc2UsICJzdHJlc3NUZXN0RmFp
bHVyZXMiOlsiZXM2LnlhbWwvZXM2L3R5cGVkX2FycmF5c19JbnQxNkFycmF5LmpzLmRlZmF1bHQi
LCAiZXM2LnlhbWwvZXM2L3R5cGVkX2FycmF5c19JbnQ4QXJyYXkuanMuZGVmYXVsdCJdfScKKyAg
ICAgICAgbWFueV9mYWlsdXJlc19yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoRmFsc2UsIFsiZXM2
LnlhbWwvZXM2L3R5cGVkX2FycmF5c19JbnQxNkFycmF5LmpzLmRlZmF1bHQiLCAiZXM2LnlhbWwv
ZXM2L3R5cGVkX2FycmF5c19JbnQ4QXJyYXkuanMuZGVmYXVsdCJdKQorICAgICAgICBzZWxmLmFz
c2VydFRydWUobWFueV9mYWlsdXJlc19yZXN1bHRzLmVxdWFscyhKU0NUZXN0UmVzdWx0cy5yZXN1
bHRzX2Zyb21fc3RyaW5nKG1hbnlfZmFpbHVyZXNfc3RyaW5nKSkpCisKKyAgICAgICAgc2VsZi5h
c3NlcnRGYWxzZShub19mYWlsdXJlc19yZXN1bHRzID09IGFwaV90ZXN0X2ZhaWx1cmVzX3Jlc3Vs
dHMpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoYXBpX3Rlc3RfZmFpbHVyZXNfcmVzdWx0cyA9
PSBtYW55X2ZhaWx1cmVzX3Jlc3VsdHMpCisKKyAgICBkZWYgdGVzdF9pbnRlcnNlY3Rpb25fYXBp
X3Rlc3RzKHNlbGYpOgorICAgICAgICByZXN1bHRzMSA9IEpTQ1Rlc3RSZXN1bHRzKEZhbHNlLCBb
XSkKKyAgICAgICAgcmVzdWx0czIgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbXSkKKworICAgICAg
ICBleHBlY3RlZF9pbnRlcnNlY3Rpb24gPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbXSkKKyAgICAg
ICAgc2VsZi5hc3NlcnRUcnVlKGV4cGVjdGVkX2ludGVyc2VjdGlvbi5lcXVhbHMoSlNDVGVzdFJl
c3VsdHMuaW50ZXJzZWN0aW9uKHJlc3VsdHMxLCByZXN1bHRzMikpKQorCisgICAgZGVmIHRlc3Rf
aW50ZXJzZWN0aW9uX3N0cmVzc190ZXN0cyhzZWxmKToKKyAgICAgICAgcmVzdWx0czEgPSBKU0NU
ZXN0UmVzdWx0cyhUcnVlLCBbJ2ZhaWx1cmUxJywgJ2ZhaWx1cmUyJ10pCisgICAgICAgIHJlc3Vs
dHMyID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgWydmYWlsdXJlMScsICdmYWlsdXJlMyddKQorCisg
ICAgICAgIGV4cGVjdGVkX2ludGVyc2VjdGlvbiA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFsnZmFp
bHVyZTEnXSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGV4cGVjdGVkX2ludGVyc2VjdGlvbi5l
cXVhbHMoSlNDVGVzdFJlc3VsdHMuaW50ZXJzZWN0aW9uKHJlc3VsdHMxLCByZXN1bHRzMikpKQor
CisgICAgZGVmIHRlc3RfaW50ZXJzZWN0aW9uX2dlbmVyYWxfY2FzZShzZWxmKToKKyAgICAgICAg
cmVzdWx0czEgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbJ2ZhaWx1cmUxJywgJ2ZhaWx1cmUyJ10p
CisgICAgICAgIHJlc3VsdHMyID0gSlNDVGVzdFJlc3VsdHMoRmFsc2UsIFsnZmFpbHVyZTEnXSkK
KworICAgICAgICBleHBlY3RlZF9pbnRlcnNlY3Rpb24gPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBb
J2ZhaWx1cmUxJ10pCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShleHBlY3RlZF9pbnRlcnNlY3Rp
b24uZXF1YWxzKEpTQ1Rlc3RSZXN1bHRzLmludGVyc2VjdGlvbihyZXN1bHRzMSwgcmVzdWx0czIp
KSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvZWFybHl3YXJu
aW5nc3lzdGVtdGFzay5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvZWFybHl3
YXJuaW5nc3lzdGVtdGFzay5weQppbmRleCBmYzMwOGI0M2QxZDE3MmFiNzNiMGUzYWY4MGQxYjEz
OWRkM2MxMDMyLi5lY2ZhY2QwMTFiZTg4M2I0YmIxZTVjN2Q3ZGZmZGJkY2I0NTlkZTM1IDEwMDY0
NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2Vhcmx5d2FybmluZ3N5c3Rl
bXRhc2sucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9lYXJseXdhcm5p
bmdzeXN0ZW10YXNrLnB5CkBAIC0xLDQgKzEsNSBAQAogIyBDb3B5cmlnaHQgKGMpIDIwMTEgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBh
cmUKQEAgLTI2LDcgKzI3LDcgQEAKICMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiAjIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKLWZy
b20gd2Via2l0cHkudG9vbC5ib3QucGF0Y2hhbmFseXNpc3Rhc2sgaW1wb3J0IFBhdGNoQW5hbHlz
aXNUYXNrLCBQYXRjaEFuYWx5c2lzVGFza0RlbGVnYXRlLCBVbmFibGVUb0FwcGx5UGF0Y2gsIFBh
dGNoSXNOb3RWYWxpZAorZnJvbSB3ZWJraXRweS50b29sLmJvdC5wYXRjaGFuYWx5c2lzdGFzayBp
bXBvcnQgUGF0Y2hBbmFseXNpc1Rhc2ssIFBhdGNoQW5hbHlzaXNUYXNrRGVsZWdhdGUsIFVuYWJs
ZVRvQXBwbHlQYXRjaCwgUGF0Y2hJc05vdFZhbGlkLCBQYXRjaElzTm90QXBwbGljYWJsZQogCiAK
IGNsYXNzIEVhcmx5V2FybmluZ1N5c3RlbVRhc2tEZWxlZ2F0ZShQYXRjaEFuYWx5c2lzVGFza0Rl
bGVnYXRlKToKQEAgLTU4LDYgKzU5LDggQEAgY2xhc3MgRWFybHlXYXJuaW5nU3lzdGVtVGFzayhQ
YXRjaEFuYWx5c2lzVGFzayk6CiAgICAgICAgICAgICByZXR1cm4gRmFsc2UKICAgICAgICAgaWYg
bm90IHNlbGYuX2FwcGx5KCk6CiAgICAgICAgICAgICByYWlzZSBVbmFibGVUb0FwcGx5UGF0Y2go
c2VsZi5fcGF0Y2gpCisgICAgICAgIGlmIG5vdCBzZWxmLl9jaGVja19wYXRjaF9yZWxldmFuY2Uo
KToKKyAgICAgICAgICAgIHJhaXNlIFBhdGNoSXNOb3RBcHBsaWNhYmxlKHNlbGYuX3BhdGNoKQog
ICAgICAgICBpZiBub3Qgc2VsZi5fYnVpbGQoKToKICAgICAgICAgICAgIGlmIG5vdCBzZWxmLl9i
dWlsZF93aXRob3V0X3BhdGNoKCk6CiAgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCmRpZmYg
LS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2pzY2V3c191bml0dGVzdC5w
eSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvanNjZXdzX3VuaXR0ZXN0LnB5Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjg3MTMwMDAyNTZjM2ZkYzA3MzUxOGIyYjQ5NTNkZmU5MGYzMWNiMDkKLS0tIC9k
ZXYvbnVsbAorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2pzY2V3c191bml0
dGVzdC5weQpAQCAtMCwwICsxLDIxOSBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFy
ZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisjIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IK
KyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorIyBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorCitpbXBvcnQgbG9nZ2luZworaW1wb3J0IHVuaXR0ZXN0CisKK2Zyb20gd2Via2l0
cHkuY29tbW9uLm5ldC5qc2N0ZXN0cmVzdWx0cyBpbXBvcnQgSlNDVGVzdFJlc3VsdHMKK2Zyb20g
d2Via2l0cHkuY29tbW9uLnN5c3RlbS5leGVjdXRpdmUgaW1wb3J0IFNjcmlwdEVycm9yCitmcm9t
IHdlYmtpdHB5LnRvb2wuYm90LnBhdGNoYW5hbHlzaXN0YXNrIGltcG9ydCAqCitmcm9tIHdlYmtp
dHB5LnRvb2wuY29tbWFuZHMuZWFybHl3YXJuaW5nc3lzdGVtIGltcG9ydCBBYnN0cmFjdEVhcmx5
V2FybmluZ1N5c3RlbQorZnJvbSB3ZWJraXRweS50b29sLm1vY2t0b29sIGltcG9ydCBNb2NrVG9v
bAorCitfbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18pCisKKworY2xhc3MgTW9ja1Bh
dGNoQW5hbHlzaXNUYXNrKFBhdGNoQW5hbHlzaXNUYXNrKToKKyAgICBkZWYgX19pbml0X18oc2Vs
ZiwgZGVsZWdhdGUsIHBhdGNoLCBwYXRjaGVzX3Bhc3NlZF9hbGxfdGVzdHMpOgorICAgICAgICBz
ZWxmLl9kZWxlZ2F0ZSA9IGRlbGVnYXRlCisgICAgICAgIHNlbGYuX3BhdGNoID0gcGF0Y2gKKyAg
ICAgICAgc2VsZi5fc2NyaXB0X2Vycm9yID0gTm9uZQorICAgICAgICBzZWxmLl9yZXN1bHRzX2Fy
Y2hpdmVfZnJvbV9wYXRjaF90ZXN0X3J1biA9IE5vbmUKKyAgICAgICAgc2VsZi5fcmVzdWx0c19m
cm9tX3BhdGNoX3Rlc3RfcnVuID0gTm9uZQorICAgICAgICBzZWxmLmVycm9yID0gTm9uZQorICAg
ICAgICBzZWxmLl9wYXRjaGVzX3Bhc3NlZF9hbGxfdGVzdHMgPSBwYXRjaGVzX3Bhc3NlZF9hbGxf
dGVzdHMKKyAgICAgICAgc2VsZi5fdGVzdF9ydW5fY291bnQgPSAwCisgICAgICAgIHNlbGYuZmFp
bHVyZV9zdGF0dXNfaWQgPSA0MgorCisgICAgZGVmIF90ZXN0KHNlbGYpOgorICAgICAgICBzZWxm
Ll90ZXN0X3J1bl9jb3VudCArPSAxCisKKyAgICAgICAgaWYgc2VsZi5fcGF0Y2hlc19wYXNzZWRf
YWxsX3Rlc3RzLnBvcCgpID09IFRydWU6CisgICAgICAgICAgICByZXR1cm4gVHJ1ZQorICAgICAg
ICBlbHNlOgorICAgICAgICAgICAgc2VsZi5fc2NyaXB0X2Vycm9yID0gU2NyaXB0RXJyb3IoIlJl
Z3Jlc3Npb24gdGVzdCIpCisgICAgICAgICAgICByZXR1cm4gRmFsc2UKKworICAgIGRlZiBfYnVp
bGRfYW5kX3Rlc3Rfd2l0aG91dF9wYXRjaChzZWxmKToKKyAgICAgICAgc2VsZi5fdGVzdF9ydW5f
Y291bnQgKz0gMQorICAgICAgICByZXR1cm4gVHJ1ZQorCisgICAgZGVmIHZhbGlkYXRlKHNlbGYp
OgorICAgICAgICByZXR1cm4gVHJ1ZQorCisgICAgZGVmIHRlc3RfcnVuX2NvdW50KHNlbGYpOgor
ICAgICAgICByZXR1cm4gc2VsZi5fdGVzdF9ydW5fY291bnQKKworCisjIFRoaXMgaXMgdGhlIGRl
bGVnYXRlIHRvIGJlIHVzZWQgd2l0aCBNb2NrUGF0Y2hBbmFseXNpc1Rhc2ssIGFib3ZlLgorY2xh
c3MgTW9ja0pTQ0Vhcmx5V2FybmluZ1N5c3RlbShBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbSk6
CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGZpcnN0X3Rlc3RfcmVzdWx0cywgc2Vjb25kX3Rlc3Rf
cmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKToKKyAgICAgICAgQWJzdHJhY3RFYXJseVdhcm5p
bmdTeXN0ZW0uX19pbml0X18oc2VsZikKKyAgICAgICAgc2VsZi5fZ3JvdXAgPSAianNjIgorICAg
ICAgICBzZWxmLl9yZXN1bHRzX2luX29yZGVyID0gW2NsZWFuX3Rlc3RfcmVzdWx0cywgc2Vjb25k
X3Rlc3RfcmVzdWx0cywgZmlyc3RfdGVzdF9yZXN1bHRzXQorCisgICAgZGVmIHRlc3RfcmVzdWx0
cyhzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX3Jlc3VsdHNfaW5fb3JkZXIucG9wKCkKKwor
CitjbGFzcyBKU0NFYXJseVdhcm5pbmdTeXN0ZW1UZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAg
ICBkZWYgX3Jlc3VsdHNfaW5kaWNhdGVfYWxsX3Bhc3NlZChzZWxmLCByZXN1bHRzKToKKyAgICAg
ICAgaWYgcmVzdWx0cyA9PSBOb25lOgorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAg
IHJldHVybiByZXN1bHRzLmFsbF9wYXNzZWQoKQorCisgICAgZGVmIF9jcmVhdGVfdGFzayhzZWxm
LCBmaXJzdF90ZXN0X3Jlc3VsdHMsIHNlY29uZF90ZXN0X3Jlc3VsdHMsIGNsZWFuX3Rlc3RfcmVz
dWx0cyk6CisgICAgICAgIHF1ZXVlID0gTW9ja0pTQ0Vhcmx5V2FybmluZ1N5c3RlbShmaXJzdF90
ZXN0X3Jlc3VsdHMsIHNlY29uZF90ZXN0X3Jlc3VsdHMsIGNsZWFuX3Rlc3RfcmVzdWx0cykKKyAg
ICAgICAgdG9vbCA9IE1vY2tUb29sKGxvZ19leGVjdXRpdmU9VHJ1ZSkKKyAgICAgICAgcGF0Y2gg
PSB0b29sLmJ1Z3MuZmV0Y2hfYXR0YWNobWVudCgxMDAwMCkKKyAgICAgICAgcGF0Y2hlc19wYXNz
ZWRfYWxsX3Rlc3RzID0gbWFwKHNlbGYuX3Jlc3VsdHNfaW5kaWNhdGVfYWxsX3Bhc3NlZCwgW3Nl
Y29uZF90ZXN0X3Jlc3VsdHMsIGZpcnN0X3Rlc3RfcmVzdWx0c10pCisgICAgICAgIHJldHVybiBN
b2NrUGF0Y2hBbmFseXNpc1Rhc2socXVldWUsIHBhdGNoLCBwYXRjaGVzX3Bhc3NlZF9hbGxfdGVz
dHMpCisKKyAgICBkZWYgdGVzdF9zdWNjZXNzX2Nhc2Uoc2VsZik6CisgICAgICAgIGZpcnN0X3Rl
c3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFtdKQorICAgICAgICBzZWNvbmRfdGVz
dF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgW10pCisgICAgICAgIGNsZWFuX3Rlc3Rf
cmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFtdKQorICAgICAgICB0YXNrID0gc2VsZi5f
Y3JlYXRlX3Rhc2soZmlyc3RfdGVzdF9yZXN1bHRzLCBzZWNvbmRfdGVzdF9yZXN1bHRzLCBjbGVh
bl90ZXN0X3Jlc3VsdHMpCisKKyAgICAgICAgcmV0dXJuX3ZhbHVlID0gdGFzay5fdGVzdF9wYXRj
aCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGFzay50ZXN0X3J1bl9jb3VudCgpLCAxKQor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJldHVybl92YWx1ZSwgVHJ1ZSkKKworICAgIGRlZiB0
ZXN0X3Rlc3RfZmFpbHVyZShzZWxmKToKKyAgICAgICAgZmlyc3RfdGVzdF9yZXN1bHRzID0gSlND
VGVzdFJlc3VsdHMoVHJ1ZSwgWydGYWlsLmpzJ10pCisgICAgICAgIHNlY29uZF90ZXN0X3Jlc3Vs
dHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbJ0ZhaWwuanMnXSkKKyAgICAgICAgY2xlYW5fdGVz
dF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgW10pCisgICAgICAgIHRhc2sgPSBzZWxm
Ll9jcmVhdGVfdGFzayhmaXJzdF90ZXN0X3Jlc3VsdHMsIHNlY29uZF90ZXN0X3Jlc3VsdHMsIGNs
ZWFuX3Rlc3RfcmVzdWx0cykKKworICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFNjcmlw
dEVycm9yKToKKyAgICAgICAgICAgIHJldHVybl92YWx1ZSA9IHRhc2suX3Rlc3RfcGF0Y2goKQor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRhc2sudGVzdF9ydW5fY291bnQoKSwgMykKKworICAg
IGRlZiB0ZXN0X2ZpeChzZWxmKToKKyAgICAgICAgZmlyc3RfdGVzdF9yZXN1bHRzID0gSlNDVGVz
dFJlc3VsdHMoVHJ1ZSwgW10pCisgICAgICAgIHNlY29uZF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0
UmVzdWx0cyhUcnVlLCBbXSkKKyAgICAgICAgY2xlYW5fdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJl
c3VsdHMoVHJ1ZSwgWydGYWlsLmpzJ10pCisgICAgICAgIHRhc2sgPSBzZWxmLl9jcmVhdGVfdGFz
ayhmaXJzdF90ZXN0X3Jlc3VsdHMsIHNlY29uZF90ZXN0X3Jlc3VsdHMsIGNsZWFuX3Rlc3RfcmVz
dWx0cykKKworICAgICAgICByZXR1cm5fdmFsdWUgPSB0YXNrLl90ZXN0X3BhdGNoKCkKKyAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbCh0YXNrLnRlc3RfcnVuX2NvdW50KCksIDEpCisgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwocmV0dXJuX3ZhbHVlLCBUcnVlKQorCisgICAgZGVmIHRlc3RfaW5lZmZl
Y3RpdmVfcGF0Y2goc2VsZik6CisgICAgICAgIGZpcnN0X3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RS
ZXN1bHRzKEZhbHNlLCBbJ2ZhaWx1cmUxLmpzJywgJ2ZhaWx1cmUyLmpzJ10pCisgICAgICAgIHNl
Y29uZF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhGYWxzZSwgWydmYWlsdXJlMS5qcycs
ICdmYWlsdXJlMi5qcyddKQorICAgICAgICBjbGVhbl90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVz
dWx0cyhGYWxzZSwgWydmYWlsdXJlMS5qcycsICdmYWlsdXJlMi5qcyddKQorICAgICAgICB0YXNr
ID0gc2VsZi5fY3JlYXRlX3Rhc2soZmlyc3RfdGVzdF9yZXN1bHRzLCBzZWNvbmRfdGVzdF9yZXN1
bHRzLCBjbGVhbl90ZXN0X3Jlc3VsdHMpCisKKyAgICAgICAgcmV0dXJuX3ZhbHVlID0gdGFzay5f
dGVzdF9wYXRjaCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGFzay50ZXN0X3J1bl9jb3Vu
dCgpLCAzKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJldHVybl92YWx1ZSwgVHJ1ZSkKKwor
ICAgIGRlZiB0ZXN0X3BhcnRpYWxseV9lZmZlY3RpdmVfcGF0Y2goc2VsZik6CisgICAgICAgIGZp
cnN0X3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFsnZmFpbHVyZTIuanMnXSkK
KyAgICAgICAgc2Vjb25kX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFsnZmFp
bHVyZTIuanMnXSkKKyAgICAgICAgY2xlYW5fdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMo
RmFsc2UsIFsnZmFpbHVyZTEuanMnLCAnZmFpbHVyZTIuanMnXSkKKyAgICAgICAgdGFzayA9IHNl
bGYuX2NyZWF0ZV90YXNrKGZpcnN0X3Rlc3RfcmVzdWx0cywgc2Vjb25kX3Rlc3RfcmVzdWx0cywg
Y2xlYW5fdGVzdF9yZXN1bHRzKQorCisgICAgICAgIHJldHVybl92YWx1ZSA9IHRhc2suX3Rlc3Rf
cGF0Y2goKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRhc2sudGVzdF9ydW5fY291bnQoKSwg
MykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXR1cm5fdmFsdWUsIFRydWUpCisKKyAgICBk
ZWYgdGVzdF9kaWZmZXJlbnRfdGVzdF9mYWlsdXJlc19pbl9wYXRjaF9hbmRfdHJlZShzZWxmKToK
KyAgICAgICAgZmlyc3RfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoRmFsc2UsIFtdKQor
ICAgICAgICBzZWNvbmRfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoRmFsc2UsIFtdKQor
ICAgICAgICBjbGVhbl90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbJ2ZhaWx1
cmUxLmpzJywgJ2ZhaWx1cmUyLmpzJ10pCisgICAgICAgIHRhc2sgPSBzZWxmLl9jcmVhdGVfdGFz
ayhmaXJzdF90ZXN0X3Jlc3VsdHMsIHNlY29uZF90ZXN0X3Jlc3VsdHMsIGNsZWFuX3Rlc3RfcmVz
dWx0cykKKworICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFNjcmlwdEVycm9yKToKKyAg
ICAgICAgICAgIHJldHVybl92YWx1ZSA9IHRhc2suX3Rlc3RfcGF0Y2goKQorICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKHRhc2sudGVzdF9ydW5fY291bnQoKSwgMykKKworICAgIGRlZiB0ZXN0X2Zp
cnN0X3Jlc3VsdHNfY291bGRfbm90X2JlX3JlYWQoc2VsZik6CisgICAgICAgIGZpcnN0X3Rlc3Rf
cmVzdWx0cyA9IE5vbmUKKyAgICAgICAgc2Vjb25kX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1
bHRzKFRydWUsIFtdKQorICAgICAgICBjbGVhbl90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0
cyhUcnVlLCBbXSkKKyAgICAgICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90YXNrKGZpcnN0X3Rlc3Rf
cmVzdWx0cywgc2Vjb25kX3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKQorCisgICAg
ICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoU2NyaXB0RXJyb3IpOgorICAgICAgICAgICAgcmV0
dXJuX3ZhbHVlID0gdGFzay5fdGVzdF9wYXRjaCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
dGFzay50ZXN0X3J1bl9jb3VudCgpLCAxKQorCisgICAgZGVmIHRlc3Rfc2Vjb25kX3Jlc3VsdHNf
Y291bGRfbm90X2JlX3JlYWQoc2VsZik6CisgICAgICAgIGZpcnN0X3Rlc3RfcmVzdWx0cyA9IEpT
Q1Rlc3RSZXN1bHRzKEZhbHNlLCBbJ2ZhaWx1cmUxLmpzJywgJ2ZhaWx1cmUyLmpzJ10pCisgICAg
ICAgIHNlY29uZF90ZXN0X3Jlc3VsdHMgPSBOb25lCisgICAgICAgIGNsZWFuX3Rlc3RfcmVzdWx0
cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFtdKQorICAgICAgICB0YXNrID0gc2VsZi5fY3JlYXRl
X3Rhc2soZmlyc3RfdGVzdF9yZXN1bHRzLCBzZWNvbmRfdGVzdF9yZXN1bHRzLCBjbGVhbl90ZXN0
X3Jlc3VsdHMpCisKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhTY3JpcHRFcnJvcik6
CisgICAgICAgICAgICByZXR1cm5fdmFsdWUgPSB0YXNrLl90ZXN0X3BhdGNoKCkKKyAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbCh0YXNrLnRlc3RfcnVuX2NvdW50KCksIDIpCisKKyAgICBkZWYgdGVz
dF9jbGVhbl9yZXN1bHRzX2NvdWxkX25vdF9iZV9yZWFkKHNlbGYpOgorICAgICAgICBmaXJzdF90
ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbJ2ZhaWx1cmUyLmpzJ10pCisgICAg
ICAgIHNlY29uZF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbJ2ZhaWx1cmUy
LmpzJ10pCisgICAgICAgIGNsZWFuX3Rlc3RfcmVzdWx0cyA9IE5vbmUKKyAgICAgICAgdGFzayA9
IHNlbGYuX2NyZWF0ZV90YXNrKGZpcnN0X3Rlc3RfcmVzdWx0cywgc2Vjb25kX3Rlc3RfcmVzdWx0
cywgY2xlYW5fdGVzdF9yZXN1bHRzKQorCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMo
U2NyaXB0RXJyb3IpOgorICAgICAgICAgICAgcmV0dXJuX3ZhbHVlID0gdGFzay5fdGVzdF9wYXRj
aCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGFzay50ZXN0X3J1bl9jb3VudCgpLCAzKQor
CisgICAgZGVmIHRlc3RfZmxha3lfcmVzdWx0c19vbl9jbGVhbl90cmVlX3Bhc3Moc2VsZik6Cisg
ICAgICAgIGZpcnN0X3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFsnZmFpbHVy
ZTIuanMnXSkKKyAgICAgICAgc2Vjb25kX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRy
dWUsIFtdKQorICAgICAgICBjbGVhbl90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVl
LCBbXSkKKyAgICAgICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90YXNrKGZpcnN0X3Rlc3RfcmVzdWx0
cywgc2Vjb25kX3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKQorCisgICAgICAgIHJl
dHVybl92YWx1ZSA9IHRhc2suX3Rlc3RfcGF0Y2goKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KHJldHVybl92YWx1ZSwgVHJ1ZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0YXNrLnRlc3Rf
cnVuX2NvdW50KCksIDIpCisKKyAgICBkZWYgdGVzdF9mbGFreV9yZXN1bHRzX29uX2NsZWFuX3Ry
ZWVfcGFzc192MihzZWxmKToKKyAgICAgICAgZmlyc3RfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJl
c3VsdHMoVHJ1ZSwgW10pCisgICAgICAgIHNlY29uZF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVz
dWx0cyhUcnVlLCBbJ2ZhaWx1cmUyLmpzJ10pCisgICAgICAgIGNsZWFuX3Rlc3RfcmVzdWx0cyA9
IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFtdKQorICAgICAgICB0YXNrID0gc2VsZi5fY3JlYXRlX3Rh
c2soZmlyc3RfdGVzdF9yZXN1bHRzLCBzZWNvbmRfdGVzdF9yZXN1bHRzLCBjbGVhbl90ZXN0X3Jl
c3VsdHMpCisKKyAgICAgICAgcmV0dXJuX3ZhbHVlID0gdGFzay5fdGVzdF9wYXRjaCgpCisgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwocmV0dXJuX3ZhbHVlLCBUcnVlKQorICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKHRhc2sudGVzdF9ydW5fY291bnQoKSwgMSkKKworICAgIGRlZiB0ZXN0X2ZsYWt5
X3Jlc3VsdHNfb25fY2xlYW5fdHJlZV9mYWlsdXJlKHNlbGYpOgorICAgICAgICBmaXJzdF90ZXN0
X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhGYWxzZSwgWydmYWlsdXJlMS5qcycsICdmYWlsdXJl
Mi5qcyddKQorICAgICAgICBzZWNvbmRfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1
ZSwgWydmYWlsdXJlMi5qcyddKQorICAgICAgICBjbGVhbl90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0
UmVzdWx0cyhUcnVlLCBbXSkKKyAgICAgICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90YXNrKGZpcnN0
X3Rlc3RfcmVzdWx0cywgc2Vjb25kX3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKQor
CisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoU2NyaXB0RXJyb3IpOgorICAgICAgICAg
ICAgcmV0dXJuX3ZhbHVlID0gdGFzay5fdGVzdF9wYXRjaCgpCisgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwodGFzay50ZXN0X3J1bl9jb3VudCgpLCAzKQorCisgICAgZGVmIHRlc3RfZmxha3lfcmVz
dWx0c19vbl9yZWRfdHJlZV9wYXNzKHNlbGYpOgorICAgICAgICBmaXJzdF90ZXN0X3Jlc3VsdHMg
PSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbJ2ZhaWx1cmUxLmpzJ10pCisgICAgICAgIHNlY29uZF90
ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbJ2ZhaWx1cmUxLmpzJywgJ2ZhaWx1
cmUyLmpzJ10pCisgICAgICAgIGNsZWFuX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRy
dWUsIFsnZmFpbHVyZTEuanMnXSkKKyAgICAgICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90YXNrKGZp
cnN0X3Rlc3RfcmVzdWx0cywgc2Vjb25kX3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRz
KQorCisgICAgICAgIHJldHVybl92YWx1ZSA9IHRhc2suX3Rlc3RfcGF0Y2goKQorICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKHJldHVybl92YWx1ZSwgVHJ1ZSkKKyAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbCh0YXNrLnRlc3RfcnVuX2NvdW50KCksIDMpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L3Rvb2wvYm90L2pzY3Rlc3RyZXN1bHRzcmVhZGVyLnB5IGIvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS90b29sL2JvdC9qc2N0ZXN0cmVzdWx0c3JlYWRlci5weQpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44
YWM1MzJiMTllN2VhNTVkMzViOTEzOWI0ZjIwOTk4MDViYTAwNDllCi0tLSAvZGV2L251bGwKKysr
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9qc2N0ZXN0cmVzdWx0c3JlYWRlci5w
eQpAQCAtMCwwICsxLDQ3IEBACisjIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoK
KyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyMgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorIyBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMCisjIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisjIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisjIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksCisjIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisKK2ltcG9ydCBsb2dnaW5nCisKK2Zyb20gd2Via2l0cHkuY29tbW9uLm5ldC5qc2N0ZXN0cmVz
dWx0cyBpbXBvcnQgSlNDVGVzdFJlc3VsdHMKKworX2xvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9f
bmFtZV9fKQorCisKK2NsYXNzIEpTQ1Rlc3RSZXN1bHRzUmVhZGVyKG9iamVjdCk6CisgICAgZGVm
IF9faW5pdF9fKHNlbGYsIGhvc3QsIHJlc3VsdHNfZGlyZWN0b3J5KToKKyAgICAgICAgc2VsZi5f
aG9zdCA9IGhvc3QKKyAgICAgICAgc2VsZi5fcmVzdWx0c19kaXJlY3RvcnkgPSByZXN1bHRzX2Rp
cmVjdG9yeQorCisgICAgZGVmIF9yZWFkX2ZpbGVfY29udGVudHMoc2VsZiwgcGF0aCk6CisgICAg
ICAgIHRyeToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLl9ob3N0LmZpbGVzeXN0ZW0ucmVhZF90
ZXh0X2ZpbGUocGF0aCkKKyAgICAgICAgZXhjZXB0IElPRXJyb3IsIGU6ICAjIEZpbGUgZG9lcyBu
b3QgZXhpc3Qgb3IgY2FuJ3QgYmUgcmVhZC4KKyAgICAgICAgICAgIHJldHVybiBOb25lCisKKyAg
ICBkZWYgX2NyZWF0ZV9qc2NfdGVzdF9yZXN1bHRzKHNlbGYpOgorICAgICAgICByZXN1bHRzX3Bh
dGggPSBzZWxmLl9ob3N0LmZpbGVzeXN0ZW0uam9pbihzZWxmLl9yZXN1bHRzX2RpcmVjdG9yeSwg
ImpzY190ZXN0X3Jlc3VsdHMuanNvbiIpCisgICAgICAgIGNvbnRlbnRzID0gc2VsZi5fcmVhZF9m
aWxlX2NvbnRlbnRzKHJlc3VsdHNfcGF0aCkKKyAgICAgICAgcmV0dXJuIEpTQ1Rlc3RSZXN1bHRz
LnJlc3VsdHNfZnJvbV9zdHJpbmcoY29udGVudHMpCisKKyAgICBkZWYgcmVzdWx0cyhzZWxmKToK
KyAgICAgICAgcmV0dXJuIHNlbGYuX2NyZWF0ZV9qc2NfdGVzdF9yZXN1bHRzKCkKZGlmZiAtLWdp
dCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvcGF0Y2hhbmFseXNpc3Rhc2sucHkg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L3BhdGNoYW5hbHlzaXN0YXNrLnB5Cmlu
ZGV4IDc1MjMxNjQxNmM1ZjlkMGEzZTU5ZWY2ZDA1ZTMxNzg1ZjkxNzQ2MjkuLmE3NDBmZDY4NDE1
YzNhZDdkMzk4ODEwM2NiNGEzNTM4MTQ3Y2IwMWIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvdG9vbC9ib3QvcGF0Y2hhbmFseXNpc3Rhc2sucHkKKysrIGIvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS90b29sL2JvdC9wYXRjaGFuYWx5c2lzdGFzay5weQpAQCAtMSw0ICsxLDUgQEAK
ICMgQ29weXJpZ2h0IChjKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisj
IENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAj
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC0yOCw2ICsyOSw3IEBACiAKIGZyb20gd2Vi
a2l0cHkuY29tbW9uLnN5c3RlbS5leGVjdXRpdmUgaW1wb3J0IFNjcmlwdEVycm9yCiBmcm9tIHdl
YmtpdHB5LmNvbW1vbi5uZXQubGF5b3V0dGVzdHJlc3VsdHMgaW1wb3J0IExheW91dFRlc3RSZXN1
bHRzCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5uZXQuanNjdGVzdHJlc3VsdHMgaW1wb3J0IEpTQ1Rl
c3RSZXN1bHRzCiAKIAogY2xhc3MgVW5hYmxlVG9BcHBseVBhdGNoKEV4Y2VwdGlvbik6CkBAIC00
Myw2ICs0NSwxMSBAQCBjbGFzcyBQYXRjaElzTm90VmFsaWQoRXhjZXB0aW9uKToKICAgICAgICAg
c2VsZi5mYWlsdXJlX21lc3NhZ2UgPSBmYWlsdXJlX21lc3NhZ2UKIAogCitjbGFzcyBQYXRjaElz
Tm90QXBwbGljYWJsZShFeGNlcHRpb24pOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwYXRjaCk6
CisgICAgICAgIEV4Y2VwdGlvbi5fX2luaXRfXyhzZWxmKQorICAgICAgICBzZWxmLnBhdGNoID0g
cGF0Y2gKKwogY2xhc3MgUGF0Y2hBbmFseXNpc1Rhc2tEZWxlZ2F0ZShvYmplY3QpOgogICAgIGRl
ZiBwYXJlbnRfY29tbWFuZChzZWxmKToKICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJv
cigic3ViY2xhc3NlcyBtdXN0IGltcGxlbWVudCIpCkBAIC0xMjIsMjggKzEyOSw1MyBAQCBjbGFz
cyBQYXRjaEFuYWx5c2lzVGFzayhvYmplY3QpOgogICAgICAgICAiQXBwbGllZCBwYXRjaCIsCiAg
ICAgICAgICJQYXRjaCBkb2VzIG5vdCBhcHBseSIpCiAKKyAgICBkZWYgX2NoZWNrX3BhdGNoX3Jl
bGV2YW5jZShzZWxmKToKKyAgICAgICAgYXJncyA9IFsKKyAgICAgICAgICAgICJjaGVjay1wYXRj
aC1yZWxldmFuY2UiLAorICAgICAgICBdCisKKyAgICAgICAgaWYgaGFzYXR0cihzZWxmLl9kZWxl
Z2F0ZSwgJ2dyb3VwJyk6CisgICAgICAgICAgICBhcmdzLmFwcGVuZCgiLS1ncm91cD0lcyIgJSBz
ZWxmLl9kZWxlZ2F0ZS5ncm91cCgpKQorCisgICAgICAgIHJldHVybiBzZWxmLl9ydW5fY29tbWFu
ZCgKKyAgICAgICAgICAgIGFyZ3MsCisgICAgICAgICAgICAiQ2hlY2tlZCByZWxldmFuY2Ugb2Yg
cGF0Y2giLAorICAgICAgICAgICAgIlBhdGNoIHdhcyBub3QgcmVsZXZhbnQiKQorCiAgICAgZGVm
IF9idWlsZChzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYuX3J1bl9jb21tYW5kKFsKKyAgICAg
ICAgYXJncyA9IFsKICAgICAgICAgICAgICJidWlsZCIsCiAgICAgICAgICAgICAiLS1uby1jbGVh
biIsCiAgICAgICAgICAgICAiLS1uby11cGRhdGUiLAogICAgICAgICAgICAgIi0tYnVpbGQtc3R5
bGU9JXMiICUgc2VsZi5fZGVsZWdhdGUuYnVpbGRfc3R5bGUoKSwKLSAgICAgICAgXSwKLSAgICAg
ICAgIkJ1aWx0IHBhdGNoIiwKLSAgICAgICAgIlBhdGNoIGRvZXMgbm90IGJ1aWxkIikKKyAgICAg
ICAgXQorCisgICAgICAgIGlmIGhhc2F0dHIoc2VsZi5fZGVsZWdhdGUsICdncm91cCcpOgorICAg
ICAgICAgICAgYXJncy5hcHBlbmQoIi0tZ3JvdXA9JXMiICUgc2VsZi5fZGVsZWdhdGUuZ3JvdXAo
KSkKKworICAgICAgICByZXR1cm4gc2VsZi5fcnVuX2NvbW1hbmQoCisgICAgICAgICAgICBhcmdz
LAorICAgICAgICAgICAgIkJ1aWx0IHBhdGNoIiwKKyAgICAgICAgICAgICJQYXRjaCBkb2VzIG5v
dCBidWlsZCIpCiAKICAgICBkZWYgX2J1aWxkX3dpdGhvdXRfcGF0Y2goc2VsZik6Ci0gICAgICAg
IHJldHVybiBzZWxmLl9ydW5fY29tbWFuZChbCisgICAgICAgIGFyZ3MgPSBbCiAgICAgICAgICAg
ICAiYnVpbGQiLAogICAgICAgICAgICAgIi0tZm9yY2UtY2xlYW4iLAogICAgICAgICAgICAgIi0t
bm8tdXBkYXRlIiwKICAgICAgICAgICAgICItLWJ1aWxkLXN0eWxlPSVzIiAlIHNlbGYuX2RlbGVn
YXRlLmJ1aWxkX3N0eWxlKCksCi0gICAgICAgIF0sCi0gICAgICAgICJBYmxlIHRvIGJ1aWxkIHdp
dGhvdXQgcGF0Y2giLAotICAgICAgICAiVW5hYmxlIHRvIGJ1aWxkIHdpdGhvdXQgcGF0Y2giKQor
ICAgICAgICBdCisKKyAgICAgICAgaWYgaGFzYXR0cihzZWxmLl9kZWxlZ2F0ZSwgJ2dyb3VwJyk6
CisgICAgICAgICAgICBhcmdzLmFwcGVuZCgiLS1ncm91cD0lcyIgJSBzZWxmLl9kZWxlZ2F0ZS5n
cm91cCgpKQorCisgICAgICAgIHJldHVybiBzZWxmLl9ydW5fY29tbWFuZCgKKyAgICAgICAgICAg
IGFyZ3MsCisgICAgICAgICAgICAiQWJsZSB0byBidWlsZCB3aXRob3V0IHBhdGNoIiwKKyAgICAg
ICAgICAgICJVbmFibGUgdG8gYnVpbGQgd2l0aG91dCBwYXRjaCIpCiAKICAgICBkZWYgX3Rlc3Qo
c2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmLl9ydW5fY29tbWFuZChbCisgICAgICAgIGFyZ3Mg
PSBbCiAgICAgICAgICAgICAiYnVpbGQtYW5kLXRlc3QiLAogICAgICAgICAgICAgIi0tbm8tY2xl
YW4iLAogICAgICAgICAgICAgIi0tbm8tdXBkYXRlIiwKQEAgLTE1MSwxMiArMTgzLDE4IEBAIGNs
YXNzIFBhdGNoQW5hbHlzaXNUYXNrKG9iamVjdCk6CiAgICAgICAgICAgICAiLS10ZXN0IiwKICAg
ICAgICAgICAgICItLW5vbi1pbnRlcmFjdGl2ZSIsCiAgICAgICAgICAgICAiLS1idWlsZC1zdHls
ZT0lcyIgJSBzZWxmLl9kZWxlZ2F0ZS5idWlsZF9zdHlsZSgpLAotICAgICAgICBdLAotICAgICAg
ICAiUGFzc2VkIHRlc3RzIiwKLSAgICAgICAgIlBhdGNoIGRvZXMgbm90IHBhc3MgdGVzdHMiKQor
ICAgICAgICBdCisKKyAgICAgICAgaWYgaGFzYXR0cihzZWxmLl9kZWxlZ2F0ZSwgJ2dyb3VwJyk6
CisgICAgICAgICAgICBhcmdzLmFwcGVuZCgiLS1ncm91cD0lcyIgJSBzZWxmLl9kZWxlZ2F0ZS5n
cm91cCgpKQorCisgICAgICAgIHJldHVybiBzZWxmLl9ydW5fY29tbWFuZCgKKyAgICAgICAgICAg
IGFyZ3MsCisgICAgICAgICAgICAiUGFzc2VkIHRlc3RzIiwKKyAgICAgICAgICAgICJQYXRjaCBk
b2VzIG5vdCBwYXNzIHRlc3RzIikKIAogICAgIGRlZiBfYnVpbGRfYW5kX3Rlc3Rfd2l0aG91dF9w
YXRjaChzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYuX3J1bl9jb21tYW5kKFsKKyAgICAgICAg
YXJncyA9IFsKICAgICAgICAgICAgICJidWlsZC1hbmQtdGVzdCIsCiAgICAgICAgICAgICAiLS1m
b3JjZS1jbGVhbiIsCiAgICAgICAgICAgICAiLS1uby11cGRhdGUiLApAQCAtMTY0LDkgKzIwMiwx
NSBAQCBjbGFzcyBQYXRjaEFuYWx5c2lzVGFzayhvYmplY3QpOgogICAgICAgICAgICAgIi0tdGVz
dCIsCiAgICAgICAgICAgICAiLS1ub24taW50ZXJhY3RpdmUiLAogICAgICAgICAgICAgIi0tYnVp
bGQtc3R5bGU9JXMiICUgc2VsZi5fZGVsZWdhdGUuYnVpbGRfc3R5bGUoKSwKLSAgICAgICAgXSwK
LSAgICAgICAgIkFibGUgdG8gcGFzcyB0ZXN0cyB3aXRob3V0IHBhdGNoIiwKLSAgICAgICAgIlVu
YWJsZSB0byBwYXNzIHRlc3RzIHdpdGhvdXQgcGF0Y2ggKHRyZWUgaXMgcmVkPykiKQorICAgICAg
ICBdCisKKyAgICAgICAgaWYgaGFzYXR0cihzZWxmLl9kZWxlZ2F0ZSwgJ2dyb3VwJyk6CisgICAg
ICAgICAgICBhcmdzLmFwcGVuZCgiLS1ncm91cD0lcyIgJSBzZWxmLl9kZWxlZ2F0ZS5ncm91cCgp
KQorCisgICAgICAgIHJldHVybiBzZWxmLl9ydW5fY29tbWFuZCgKKyAgICAgICAgICAgIGFyZ3Ms
CisgICAgICAgICAgICAiQWJsZSB0byBwYXNzIHRlc3RzIHdpdGhvdXQgcGF0Y2giLAorICAgICAg
ICAgICAgIlVuYWJsZSB0byBwYXNzIHRlc3RzIHdpdGhvdXQgcGF0Y2ggKHRyZWUgaXMgcmVkPyki
KQogCiAgICAgZGVmIF9sYW5kKHNlbGYpOgogICAgICAgICAjIFVuY2xlYXIgaWYgdGhpcyBzaG91
bGQgcGFzcyAtLXF1aWV0IG9yIG5vdC4gIElmIC0tcGFyZW50LWNvbW1hbmQgYWx3YXlzIGRvZXMg
dGhlIHJlcG9ydGluZywgdGhlbiBpdCBzaG91bGQuCkBAIC0yMTAsNjkgKzI1NCw5OCBAQCBjbGFz
cyBQYXRjaEFuYWx5c2lzVGFzayhvYmplY3QpOgogICAgICAgICBpZiBzZWxmLl90ZXN0KCk6CiAg
ICAgICAgICAgICByZXR1cm4gVHJ1ZQogCi0gICAgICAgICMgTm90ZTogYXJjaGl2ZV9sYXN0X3Rl
c3RfcmVzdWx0cyBkZWxldGVzIHRoZSByZXN1bHRzIGRpcmVjdG9yeSwgbWFraW5nIHRoZXNlIGNh
bGxzIG9yZGVyLXNlbnNpdHZlLgotICAgICAgICAjIFdlIGNvdWxkIHJlbW92ZSB0aGlzIGRlcGVu
ZGVuY3kgYnkgYnVpbGRpbmcgdGhlIHRlc3RfcmVzdWx0cyBmcm9tIHRoZSBhcmNoaXZlLgotICAg
ICAgICBmaXJzdF9yZXN1bHRzID0gc2VsZi5fZGVsZWdhdGUudGVzdF9yZXN1bHRzKCkKLSAgICAg
ICAgZmlyc3RfcmVzdWx0c19hcmNoaXZlID0gc2VsZi5fZGVsZWdhdGUuYXJjaGl2ZV9sYXN0X3Rl
c3RfcmVzdWx0cyhzZWxmLl9wYXRjaCkKLSAgICAgICAgZmlyc3Rfc2NyaXB0X2Vycm9yID0gc2Vs
Zi5fc2NyaXB0X2Vycm9yCi0gICAgICAgIGZpcnN0X2ZhaWx1cmVfc3RhdHVzX2lkID0gc2VsZi5m
YWlsdXJlX3N0YXR1c19pZAotCi0gICAgICAgIGlmIHNlbGYuX3Rlc3QoKSBhbmQgbm90IGZpcnN0
X3Jlc3VsdHMuZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQoKToKLSAgICAgICAgICAgICMg
T25seSByZXBvcnQgZmxha3kgdGVzdHMgaWYgd2Ugd2VyZSBzdWNjZXNzZnVsIGF0IHBhcnNpbmcg
cmVzdWx0cy5qc29uIGFuZCBhcmNoaXZpbmcgcmVzdWx0cy4KLSAgICAgICAgICAgIGlmIGZpcnN0
X3Jlc3VsdHMgYW5kIGZpcnN0X3Jlc3VsdHNfYXJjaGl2ZToKLSAgICAgICAgICAgICAgICBzZWxm
Ll9yZXBvcnRfZmxha3lfdGVzdHMoZmlyc3RfcmVzdWx0cy5mYWlsaW5nX3Rlc3RfcmVzdWx0cygp
LCBmaXJzdF9yZXN1bHRzX2FyY2hpdmUpCi0gICAgICAgICAgICByZXR1cm4gVHJ1ZQorICAgICAg
ICAjIEZJWE1FOiBBYnN0cmFjdCBvdXQgdGhlIHJldHJ5IGxvZ2ljIGluc3RlYWQgb2YgY2FzaW5n
IG9uIHRoZSB0ZXN0IHN1aXRlIGhlcmUuCisgICAgICAgIGlmIGhhc2F0dHIoc2VsZi5fZGVsZWdh
dGUsICdncm91cCcpIGFuZCBzZWxmLl9kZWxlZ2F0ZS5ncm91cCgpID09ICJqc2MiOgorICAgICAg
ICAgICAgZmlyc3RfcmVzdWx0cyA9IHNlbGYuX2RlbGVnYXRlLnRlc3RfcmVzdWx0cygpCisgICAg
ICAgICAgICBmaXJzdF9zY3JpcHRfZXJyb3IgPSBzZWxmLl9zY3JpcHRfZXJyb3IKKyAgICAgICAg
ICAgIGZpcnN0X2ZhaWx1cmVfc3RhdHVzX2lkID0gc2VsZi5mYWlsdXJlX3N0YXR1c19pZAorICAg
ICAgICAgICAgaWYgZmlyc3RfcmVzdWx0cyBpcyBOb25lOgorICAgICAgICAgICAgICAgIHJldHVy
biBzZWxmLnJlcG9ydF9mYWlsdXJlKE5vbmUsIE5vbmUsIFNjcmlwdEVycm9yKCJDb3VsZCBub3Qg
cmVhZCBKU0MgdGVzdCByZXN1bHRzIGZvciBwYXRjaC4iKSkKIAotICAgICAgICBzZWNvbmRfcmVz
dWx0cyA9IHNlbGYuX2RlbGVnYXRlLnRlc3RfcmVzdWx0cygpCi0gICAgICAgIHNlY29uZF9yZXN1
bHRzX2FyY2hpdmUgPSBzZWxmLl9kZWxlZ2F0ZS5hcmNoaXZlX2xhc3RfdGVzdF9yZXN1bHRzKHNl
bGYuX3BhdGNoKQotICAgICAgICBzZWNvbmRfc2NyaXB0X2Vycm9yID0gc2VsZi5fc2NyaXB0X2Vy
cm9yCi0gICAgICAgIHNlY29uZF9mYWlsdXJlX3N0YXR1c19pZCA9IHNlbGYuZmFpbHVyZV9zdGF0
dXNfaWQKKyAgICAgICAgICAgIGlmIHNlbGYuX3Rlc3QoKToKKyAgICAgICAgICAgICAgICByZXR1
cm4gVHJ1ZQorICAgICAgICAgICAgc2Vjb25kX3Jlc3VsdHMgPSBzZWxmLl9kZWxlZ2F0ZS50ZXN0
X3Jlc3VsdHMoKQorICAgICAgICAgICAgc2Vjb25kX3NjcmlwdF9lcnJvciA9IHNlbGYuX3Njcmlw
dF9lcnJvcgorICAgICAgICAgICAgaWYgc2Vjb25kX3Jlc3VsdHMgaXMgTm9uZToKKyAgICAgICAg
ICAgICAgICByZXR1cm4gc2VsZi5yZXBvcnRfZmFpbHVyZShOb25lLCBOb25lLCBTY3JpcHRFcnJv
cigiQ291bGQgbm90IHJlYWQgSlNDIHRlc3QgcmVzdWx0cyBvbiBzZWNvbmQgcnVuLiIpKQorCisg
ICAgICAgICAgICBjb25zaXN0ZW50X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cy5pbnRlcnNlY3Rp
b24oZmlyc3RfcmVzdWx0cywgc2Vjb25kX3Jlc3VsdHMpCiAKLSAgICAgICAgaWYgc2Vjb25kX3Jl
c3VsdHMuZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQoKSBhbmQgZmlyc3RfcmVzdWx0cy5k
aWRfZXhjZWVkX3Rlc3RfZmFpbHVyZV9saW1pdCgpOgogICAgICAgICAgICAgc2VsZi5fYnVpbGRf
YW5kX3Rlc3Rfd2l0aG91dF9wYXRjaCgpCiAgICAgICAgICAgICBjbGVhbl90cmVlX3Jlc3VsdHMg
PSBzZWxmLl9kZWxlZ2F0ZS50ZXN0X3Jlc3VsdHMoKQorICAgICAgICAgICAgaWYgY2xlYW5fdHJl
ZV9yZXN1bHRzIGlzIE5vbmU6CisgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYucmVwb3J0X2Zh
aWx1cmUoTm9uZSwgTm9uZSwgU2NyaXB0RXJyb3IoIkNvdWxkIG5vdCByZWFkIEpTQyB0ZXN0IHJl
c3VsdHMgZm9yIGNsZWFuIHRyZWUuIikpCiAKLSAgICAgICAgICAgIGlmIChsZW4oZmlyc3RfcmVz
dWx0cy5mYWlsaW5nX3Rlc3RzKCkpIC0gbGVuKGNsZWFuX3RyZWVfcmVzdWx0cy5mYWlsaW5nX3Rl
c3RzKCkpKSA8PSA1OgotICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICAgICAg
aWYgY29uc2lzdGVudF9yZXN1bHRzLmlzX3N1YnNldChjbGVhbl90cmVlX3Jlc3VsdHMpOgorICAg
ICAgICAgICAgICAgIHJldHVybiBUcnVlCiAKICAgICAgICAgICAgIHNlbGYuZmFpbHVyZV9zdGF0
dXNfaWQgPSBmaXJzdF9mYWlsdXJlX3N0YXR1c19pZAorICAgICAgICAgICAgcmV0dXJuIHNlbGYu
cmVwb3J0X2ZhaWx1cmUoTm9uZSwgY29uc2lzdGVudF9yZXN1bHRzLCBmaXJzdF9zY3JpcHRfZXJy
b3IpCiAKLSAgICAgICAgICAgIHJldHVybiBzZWxmLnJlcG9ydF9mYWlsdXJlKGZpcnN0X3Jlc3Vs
dHNfYXJjaGl2ZSwgZmlyc3RfcmVzdWx0cywgZmlyc3Rfc2NyaXB0X2Vycm9yKQorICAgICAgICBl
bHNlOgorICAgICAgICAgICAgIyBOb3RlOiBhcmNoaXZlX2xhc3RfdGVzdF9yZXN1bHRzIGRlbGV0
ZXMgdGhlIHJlc3VsdHMgZGlyZWN0b3J5LCBtYWtpbmcgdGhlc2UgY2FsbHMgb3JkZXItc2Vuc2l0
dmUuCisgICAgICAgICAgICAjIFdlIGNvdWxkIHJlbW92ZSB0aGlzIGRlcGVuZGVuY3kgYnkgYnVp
bGRpbmcgdGhlIHRlc3RfcmVzdWx0cyBmcm9tIHRoZSBhcmNoaXZlLgorICAgICAgICAgICAgZmly
c3RfcmVzdWx0cyA9IHNlbGYuX2RlbGVnYXRlLnRlc3RfcmVzdWx0cygpCisgICAgICAgICAgICBm
aXJzdF9yZXN1bHRzX2FyY2hpdmUgPSBzZWxmLl9kZWxlZ2F0ZS5hcmNoaXZlX2xhc3RfdGVzdF9y
ZXN1bHRzKHNlbGYuX3BhdGNoKQorICAgICAgICAgICAgZmlyc3Rfc2NyaXB0X2Vycm9yID0gc2Vs
Zi5fc2NyaXB0X2Vycm9yCisgICAgICAgICAgICBmaXJzdF9mYWlsdXJlX3N0YXR1c19pZCA9IHNl
bGYuZmFpbHVyZV9zdGF0dXNfaWQKIAotICAgICAgICBpZiBzZWNvbmRfcmVzdWx0cy5kaWRfZXhj
ZWVkX3Rlc3RfZmFpbHVyZV9saW1pdCgpOgotICAgICAgICAgICAgc2VsZi5fc2hvdWxkX2RlZmVy
X3BhdGNoX29yX3Rocm93KGZpcnN0X3Jlc3VsdHMuZmFpbGluZ190ZXN0X3Jlc3VsdHMoKSwgZmly
c3RfcmVzdWx0c19hcmNoaXZlLCBmaXJzdF9zY3JpcHRfZXJyb3IsIGZpcnN0X2ZhaWx1cmVfc3Rh
dHVzX2lkKQotICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgICAgICBpZiBzZWxmLl90
ZXN0KCkgYW5kIG5vdCBmaXJzdF9yZXN1bHRzLmRpZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xpbWl0
KCk6CisgICAgICAgICAgICAgICAgIyBPbmx5IHJlcG9ydCBmbGFreSB0ZXN0cyBpZiB3ZSB3ZXJl
IHN1Y2Nlc3NmdWwgYXQgcGFyc2luZyByZXN1bHRzLmpzb24gYW5kIGFyY2hpdmluZyByZXN1bHRz
LgorICAgICAgICAgICAgICAgIGlmIGZpcnN0X3Jlc3VsdHMgYW5kIGZpcnN0X3Jlc3VsdHNfYXJj
aGl2ZToKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5fcmVwb3J0X2ZsYWt5X3Rlc3RzKGZpcnN0
X3Jlc3VsdHMuZmFpbGluZ190ZXN0X3Jlc3VsdHMoKSwgZmlyc3RfcmVzdWx0c19hcmNoaXZlKQor
ICAgICAgICAgICAgICAgIHJldHVybiBUcnVlCiAKLSAgICAgICAgaWYgZmlyc3RfcmVzdWx0cy5k
aWRfZXhjZWVkX3Rlc3RfZmFpbHVyZV9saW1pdCgpOgotICAgICAgICAgICAgc2VsZi5fc2hvdWxk
X2RlZmVyX3BhdGNoX29yX3Rocm93KHNlY29uZF9yZXN1bHRzLmZhaWxpbmdfdGVzdF9yZXN1bHRz
KCksIHNlY29uZF9yZXN1bHRzX2FyY2hpdmUsIHNlY29uZF9zY3JpcHRfZXJyb3IsIHNlY29uZF9m
YWlsdXJlX3N0YXR1c19pZCkKLSAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICAgICAg
c2Vjb25kX3Jlc3VsdHMgPSBzZWxmLl9kZWxlZ2F0ZS50ZXN0X3Jlc3VsdHMoKQorICAgICAgICAg
ICAgc2Vjb25kX3Jlc3VsdHNfYXJjaGl2ZSA9IHNlbGYuX2RlbGVnYXRlLmFyY2hpdmVfbGFzdF90
ZXN0X3Jlc3VsdHMoc2VsZi5fcGF0Y2gpCisgICAgICAgICAgICBzZWNvbmRfc2NyaXB0X2Vycm9y
ID0gc2VsZi5fc2NyaXB0X2Vycm9yCisgICAgICAgICAgICBzZWNvbmRfZmFpbHVyZV9zdGF0dXNf
aWQgPSBzZWxmLmZhaWx1cmVfc3RhdHVzX2lkCiAKLSAgICAgICAgaWYgc2VsZi5fcmVzdWx0c19m
YWlsZWRfZGlmZmVyZW50X3Rlc3RzKGZpcnN0X3Jlc3VsdHMsIHNlY29uZF9yZXN1bHRzKToKLSAg
ICAgICAgICAgIGZpcnN0X2ZhaWxpbmdfcmVzdWx0c19zZXQgPSBmcm96ZW5zZXQoZmlyc3RfcmVz
dWx0cy5mYWlsaW5nX3Rlc3RfcmVzdWx0cygpKQotICAgICAgICAgICAgc2Vjb25kX2ZhaWxpbmdf
cmVzdWx0c19zZXQgPSBmcm96ZW5zZXQoc2Vjb25kX3Jlc3VsdHMuZmFpbGluZ190ZXN0X3Jlc3Vs
dHMoKSkKKyAgICAgICAgICAgIGlmIHNlY29uZF9yZXN1bHRzLmRpZF9leGNlZWRfdGVzdF9mYWls
dXJlX2xpbWl0KCkgYW5kIGZpcnN0X3Jlc3VsdHMuZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGlt
aXQoKToKKyAgICAgICAgICAgICAgICBzZWxmLl9idWlsZF9hbmRfdGVzdF93aXRob3V0X3BhdGNo
KCkKKyAgICAgICAgICAgICAgICBjbGVhbl90cmVlX3Jlc3VsdHMgPSBzZWxmLl9kZWxlZ2F0ZS50
ZXN0X3Jlc3VsdHMoKQogCi0gICAgICAgICAgICB0ZXN0c190aGF0X29ubHlfZmFpbGVkX2ZpcnN0
ID0gZmlyc3RfZmFpbGluZ19yZXN1bHRzX3NldC5kaWZmZXJlbmNlKHNlY29uZF9mYWlsaW5nX3Jl
c3VsdHNfc2V0KQotICAgICAgICAgICAgc2VsZi5fcmVwb3J0X2ZsYWt5X3Rlc3RzKHRlc3RzX3Ro
YXRfb25seV9mYWlsZWRfZmlyc3QsIGZpcnN0X3Jlc3VsdHNfYXJjaGl2ZSkKKyAgICAgICAgICAg
ICAgICBpZiAobGVuKGZpcnN0X3Jlc3VsdHMuZmFpbGluZ190ZXN0cygpKSAtIGxlbihjbGVhbl90
cmVlX3Jlc3VsdHMuZmFpbGluZ190ZXN0cygpKSkgPD0gNToKKyAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIEZhbHNlCiAKLSAgICAgICAgICAgIHRlc3RzX3RoYXRfb25seV9mYWlsZWRfc2Vjb25k
ID0gc2Vjb25kX2ZhaWxpbmdfcmVzdWx0c19zZXQuZGlmZmVyZW5jZShmaXJzdF9mYWlsaW5nX3Jl
c3VsdHNfc2V0KQotICAgICAgICAgICAgc2VsZi5fcmVwb3J0X2ZsYWt5X3Rlc3RzKHRlc3RzX3Ro
YXRfb25seV9mYWlsZWRfc2Vjb25kLCBzZWNvbmRfcmVzdWx0c19hcmNoaXZlKQorICAgICAgICAg
ICAgICAgIHNlbGYuZmFpbHVyZV9zdGF0dXNfaWQgPSBmaXJzdF9mYWlsdXJlX3N0YXR1c19pZAog
Ci0gICAgICAgICAgICB0ZXN0c190aGF0X2NvbnNpc3RlbnRseV9mYWlsZWQgPSBmaXJzdF9mYWls
aW5nX3Jlc3VsdHNfc2V0LmludGVyc2VjdGlvbihzZWNvbmRfZmFpbGluZ19yZXN1bHRzX3NldCkK
LSAgICAgICAgICAgIGlmIHRlc3RzX3RoYXRfY29uc2lzdGVudGx5X2ZhaWxlZDoKLSAgICAgICAg
ICAgICAgICBpZiBzZWxmLl9zaG91bGRfZGVmZXJfcGF0Y2hfb3JfdGhyb3codGVzdHNfdGhhdF9j
b25zaXN0ZW50bHlfZmFpbGVkLCBmaXJzdF9yZXN1bHRzX2FyY2hpdmUsIGZpcnN0X3NjcmlwdF9l
cnJvciwgZmlyc3RfZmFpbHVyZV9zdGF0dXNfaWQpOgotICAgICAgICAgICAgICAgICAgICByZXR1
cm4gRmFsc2UgICMgRGVmZXIgcGF0Y2gKKyAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5yZXBv
cnRfZmFpbHVyZShmaXJzdF9yZXN1bHRzX2FyY2hpdmUsIGZpcnN0X3Jlc3VsdHMsIGZpcnN0X3Nj
cmlwdF9lcnJvcikKIAotICAgICAgICAgICAgIyBBdCB0aGlzIHBvaW50IHdlIGtub3cgdGhhdCBh
dCBsZWFzdCBvbmUgdGVzdCBmbGFrZWQsIGJ1dCBubyBjb25zaXN0ZW50IGZhaWx1cmVzCi0gICAg
ICAgICAgICAjIHdlcmUgaW50cm9kdWNlZC4gVGhpcyBpcyBhIGJpdCBvZiBhIGdyZXktem9uZS4K
LSAgICAgICAgICAgIHJldHVybiBGYWxzZSAgIyBEZWZlciBwYXRjaAorICAgICAgICAgICAgaWYg
c2Vjb25kX3Jlc3VsdHMuZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQoKToKKyAgICAgICAg
ICAgICAgICBzZWxmLl9zaG91bGRfZGVmZXJfcGF0Y2hfb3JfdGhyb3coZmlyc3RfcmVzdWx0cy5m
YWlsaW5nX3Rlc3RfcmVzdWx0cygpLCBmaXJzdF9yZXN1bHRzX2FyY2hpdmUsIGZpcnN0X3Njcmlw
dF9lcnJvciwgZmlyc3RfZmFpbHVyZV9zdGF0dXNfaWQpCisgICAgICAgICAgICAgICAgcmV0dXJu
IEZhbHNlCisKKyAgICAgICAgICAgIGlmIGZpcnN0X3Jlc3VsdHMuZGlkX2V4Y2VlZF90ZXN0X2Zh
aWx1cmVfbGltaXQoKToKKyAgICAgICAgICAgICAgICBzZWxmLl9zaG91bGRfZGVmZXJfcGF0Y2hf
b3JfdGhyb3coc2Vjb25kX3Jlc3VsdHMuZmFpbGluZ190ZXN0X3Jlc3VsdHMoKSwgc2Vjb25kX3Jl
c3VsdHNfYXJjaGl2ZSwgc2Vjb25kX3NjcmlwdF9lcnJvciwgc2Vjb25kX2ZhaWx1cmVfc3RhdHVz
X2lkKQorICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgICAgICAgICBpZiBzZWxm
Ll9yZXN1bHRzX2ZhaWxlZF9kaWZmZXJlbnRfdGVzdHMoZmlyc3RfcmVzdWx0cywgc2Vjb25kX3Jl
c3VsdHMpOgorICAgICAgICAgICAgICAgIGZpcnN0X2ZhaWxpbmdfcmVzdWx0c19zZXQgPSBmcm96
ZW5zZXQoZmlyc3RfcmVzdWx0cy5mYWlsaW5nX3Rlc3RfcmVzdWx0cygpKQorICAgICAgICAgICAg
ICAgIHNlY29uZF9mYWlsaW5nX3Jlc3VsdHNfc2V0ID0gZnJvemVuc2V0KHNlY29uZF9yZXN1bHRz
LmZhaWxpbmdfdGVzdF9yZXN1bHRzKCkpCisKKyAgICAgICAgICAgICAgICB0ZXN0c190aGF0X29u
bHlfZmFpbGVkX2ZpcnN0ID0gZmlyc3RfZmFpbGluZ19yZXN1bHRzX3NldC5kaWZmZXJlbmNlKHNl
Y29uZF9mYWlsaW5nX3Jlc3VsdHNfc2V0KQorICAgICAgICAgICAgICAgIHNlbGYuX3JlcG9ydF9m
bGFreV90ZXN0cyh0ZXN0c190aGF0X29ubHlfZmFpbGVkX2ZpcnN0LCBmaXJzdF9yZXN1bHRzX2Fy
Y2hpdmUpCiAKLSAgICAgICAgaWYgc2VsZi5fc2hvdWxkX2RlZmVyX3BhdGNoX29yX3Rocm93KGZp
cnN0X3Jlc3VsdHMuZmFpbGluZ190ZXN0X3Jlc3VsdHMoKSwgZmlyc3RfcmVzdWx0c19hcmNoaXZl
LCBmaXJzdF9zY3JpcHRfZXJyb3IsIGZpcnN0X2ZhaWx1cmVfc3RhdHVzX2lkKToKLSAgICAgICAg
ICAgIHJldHVybiBGYWxzZSAgIyBEZWZlciBwYXRjaAorICAgICAgICAgICAgICAgIHRlc3RzX3Ro
YXRfb25seV9mYWlsZWRfc2Vjb25kID0gc2Vjb25kX2ZhaWxpbmdfcmVzdWx0c19zZXQuZGlmZmVy
ZW5jZShmaXJzdF9mYWlsaW5nX3Jlc3VsdHNfc2V0KQorICAgICAgICAgICAgICAgIHNlbGYuX3Jl
cG9ydF9mbGFreV90ZXN0cyh0ZXN0c190aGF0X29ubHlfZmFpbGVkX3NlY29uZCwgc2Vjb25kX3Jl
c3VsdHNfYXJjaGl2ZSkKIAotICAgICAgICAjIEF0IHRoaXMgcG9pbnQsIHdlIGtub3cgdGhhdCB0
aGUgZmlyc3QgYW5kIHNlY29uZCBydW5zIGhhZCB0aGUgZXhhY3Qgc2FtZSBmYWlsdXJlcywKLSAg
ICAgICAgIyBhbmQgdGhhdCB0aG9zZSBmYWlsdXJlcyBhcmUgYWxsIHByZXNlbnQgb24gdGhlIGNs
ZWFuIHRyZWUsIHNvIHdlIGNhbiBzYXkgd2l0aCBjZXJ0YWludHkKLSAgICAgICAgIyB0aGF0IHRo
ZSBwYXRjaCBpcyBnb29kLgotICAgICAgICByZXR1cm4gVHJ1ZQorICAgICAgICAgICAgICAgIHRl
c3RzX3RoYXRfY29uc2lzdGVudGx5X2ZhaWxlZCA9IGZpcnN0X2ZhaWxpbmdfcmVzdWx0c19zZXQu
aW50ZXJzZWN0aW9uKHNlY29uZF9mYWlsaW5nX3Jlc3VsdHNfc2V0KQorICAgICAgICAgICAgICAg
IGlmIHRlc3RzX3RoYXRfY29uc2lzdGVudGx5X2ZhaWxlZDoKKyAgICAgICAgICAgICAgICAgICAg
aWYgc2VsZi5fc2hvdWxkX2RlZmVyX3BhdGNoX29yX3Rocm93KHRlc3RzX3RoYXRfY29uc2lzdGVu
dGx5X2ZhaWxlZCwgZmlyc3RfcmVzdWx0c19hcmNoaXZlLCBmaXJzdF9zY3JpcHRfZXJyb3IsIGZp
cnN0X2ZhaWx1cmVfc3RhdHVzX2lkKToKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBG
YWxzZSAgIyBEZWZlciBwYXRjaAorCisgICAgICAgICAgICAgICAgIyBBdCB0aGlzIHBvaW50IHdl
IGtub3cgdGhhdCBhdCBsZWFzdCBvbmUgdGVzdCBmbGFrZWQsIGJ1dCBubyBjb25zaXN0ZW50IGZh
aWx1cmVzCisgICAgICAgICAgICAgICAgIyB3ZXJlIGludHJvZHVjZWQuIFRoaXMgaXMgYSBiaXQg
b2YgYSBncmV5LXpvbmUuCisgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlICAjIERlZmVyIHBh
dGNoCisKKyAgICAgICAgICAgIGlmIHNlbGYuX3Nob3VsZF9kZWZlcl9wYXRjaF9vcl90aHJvdyhm
aXJzdF9yZXN1bHRzLmZhaWxpbmdfdGVzdF9yZXN1bHRzKCksIGZpcnN0X3Jlc3VsdHNfYXJjaGl2
ZSwgZmlyc3Rfc2NyaXB0X2Vycm9yLCBmaXJzdF9mYWlsdXJlX3N0YXR1c19pZCk6CisgICAgICAg
ICAgICAgICAgcmV0dXJuIEZhbHNlICAjIERlZmVyIHBhdGNoCisKKyAgICAgICAgICAgICMgQXQg
dGhpcyBwb2ludCwgd2Uga25vdyB0aGF0IHRoZSBmaXJzdCBhbmQgc2Vjb25kIHJ1bnMgaGFkIHRo
ZSBleGFjdCBzYW1lIGZhaWx1cmVzLAorICAgICAgICAgICAgIyBhbmQgdGhhdCB0aG9zZSBmYWls
dXJlcyBhcmUgYWxsIHByZXNlbnQgb24gdGhlIGNsZWFuIHRyZWUsIHNvIHdlIGNhbiBzYXkgd2l0
aCBjZXJ0YWludHkKKyAgICAgICAgICAgICMgdGhhdCB0aGUgcGF0Y2ggaXMgZ29vZC4KKyAgICAg
ICAgICAgIHJldHVybiBUcnVlCiAKICAgICBkZWYgcmVzdWx0c19hcmNoaXZlX2Zyb21fcGF0Y2hf
dGVzdF9ydW4oc2VsZiwgcGF0Y2gpOgogICAgICAgICBhc3NlcnQoc2VsZi5fcGF0Y2guaWQoKSA9
PSBwYXRjaC5pZCgpKSAgIyBQYXRjaEFuYWx5c2lzVGFzayBpcyBub3QgY3VycmVudGx5IHJlLXVz
ZWFibGUuCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMv
ZG93bmxvYWQucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZG93bmxv
YWQucHkKaW5kZXggZTUxNjlhYWM4NWYzMTg2ZTg0YmU5ZDUwMjQ1OTJiZDdmZTZkNWRkNS4uMTRi
NTViYzNmN2M5YzEwYjVkZjYwZmMxYWY4N2Q3Y2EzOWUzYmM5NCAxMDA2NDQKLS0tIGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Rvd25sb2FkLnB5CisrKyBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9kb3dubG9hZC5weQpAQCAtMSw1ICsxLDUgQEAK
ICMgQ29weXJpZ2h0IChjKSAyMDA5LCAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0jIENvcHlyaWdodCAoYykgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisjIENvcHlyaWdodCAoYykgMjAwOSwgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC04Nyw2ICs4NywxNCBAQCBj
bGFzcyBCdWlsZEFuZFRlc3QoQWJzdHJhY3RTZXF1ZW5jZWRDb21tYW5kKToKICAgICBdCiAKIAor
Y2xhc3MgQ2hlY2tQYXRjaFJlbGV2YW5jZShBYnN0cmFjdFNlcXVlbmNlZENvbW1hbmQpOgorICAg
IG5hbWUgPSAiY2hlY2stcGF0Y2gtcmVsZXZhbmNlIgorICAgIGhlbHBfdGV4dCA9ICJDaGVjayBp
ZiB0aGlzIHBhdGNoIG5lZWRzIHRvIGJlIHRlc3RlZCIKKyAgICBzdGVwcyA9IFsKKyAgICAgICAg
c3RlcHMuQ2hlY2tQYXRjaFJlbGV2YW5jZSwKKyAgICBdCisKKwogY2xhc3MgTGFuZChBYnN0cmFj
dFNlcXVlbmNlZENvbW1hbmQpOgogICAgIG5hbWUgPSAibGFuZCIKICAgICBoZWxwX3RleHQgPSAi
TGFuZCB0aGUgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeSBkaWZmIGFuZCB1cGRhdGVzIHRoZSBh
c3NvY2lhdGVkIGJ1ZyBpZiBhbnkiCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L3Rvb2wvY29tbWFuZHMvZWFybHl3YXJuaW5nc3lzdGVtLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS90b29sL2NvbW1hbmRzL2Vhcmx5d2FybmluZ3N5c3RlbS5weQppbmRleCA5YmMwNDE4NjBj
ZTY3NDU0NDU0ZTRiMjUxNDM4YTlkYmU1MjY0NTEzLi42YWEyZjlmYzI5ODIyMTc5NmM4NzFlYWIy
Y2MxM2UwMjBmNDI0MDIxIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wv
Y29tbWFuZHMvZWFybHl3YXJuaW5nc3lzdGVtLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvdG9vbC9jb21tYW5kcy9lYXJseXdhcm5pbmdzeXN0ZW0ucHkKQEAgLTEsNCArMSw1IEBACiAj
IENvcHlyaWdodCAoYykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBD
b3B5cmlnaHQgKGMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtMjgsNiArMjksNyBAQAogCiBpbXBvcnQganNv
bgogaW1wb3J0IGxvZ2dpbmcKK2ltcG9ydCBvcwogZnJvbSBvcHRwYXJzZSBpbXBvcnQgbWFrZV9v
cHRpb24KIAogZnJvbSB3ZWJraXRweS5jb21tb24uY29uZmlnLmNvbW1pdHRlcnMgaW1wb3J0IENv
bW1pdHRlckxpc3QKQEAgLTM2LDcgKzM4LDggQEAgZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVt
LmZpbGVzeXN0ZW0gaW1wb3J0IEZpbGVTeXN0ZW0KIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3Rl
bS5leGVjdXRpdmUgaW1wb3J0IFNjcmlwdEVycm9yCiBmcm9tIHdlYmtpdHB5LnRvb2wuYm90LmVh
cmx5d2FybmluZ3N5c3RlbXRhc2sgaW1wb3J0IEVhcmx5V2FybmluZ1N5c3RlbVRhc2ssIEVhcmx5
V2FybmluZ1N5c3RlbVRhc2tEZWxlZ2F0ZQogZnJvbSB3ZWJraXRweS50b29sLmJvdC5sYXlvdXR0
ZXN0cmVzdWx0c3JlYWRlciBpbXBvcnQgTGF5b3V0VGVzdFJlc3VsdHNSZWFkZXIKLWZyb20gd2Vi
a2l0cHkudG9vbC5ib3QucGF0Y2hhbmFseXNpc3Rhc2sgaW1wb3J0IFVuYWJsZVRvQXBwbHlQYXRj
aCwgUGF0Y2hJc05vdFZhbGlkCitmcm9tIHdlYmtpdHB5LnRvb2wuYm90LmpzY3Rlc3RyZXN1bHRz
cmVhZGVyIGltcG9ydCBKU0NUZXN0UmVzdWx0c1JlYWRlcgorZnJvbSB3ZWJraXRweS50b29sLmJv
dC5wYXRjaGFuYWx5c2lzdGFzayBpbXBvcnQgVW5hYmxlVG9BcHBseVBhdGNoLCBQYXRjaElzTm90
VmFsaWQsIFBhdGNoSXNOb3RBcHBsaWNhYmxlCiBmcm9tIHdlYmtpdHB5LnRvb2wuYm90LnF1ZXVl
ZW5naW5lIGltcG9ydCBRdWV1ZUVuZ2luZQogZnJvbSB3ZWJraXRweS50b29sLmNvbW1hbmRzLnF1
ZXVlcyBpbXBvcnQgQWJzdHJhY3RSZXZpZXdRdWV1ZQogCkBAIC01Myw3ICs1NiwxMiBAQCBjbGFz
cyBBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbShBYnN0cmFjdFJldmlld1F1ZXVlLCBFYXJseVdh
cm5pbmdTeXN0ZW1UYXNrRGVsZQogCiAgICAgZGVmIGJlZ2luX3dvcmtfcXVldWUoc2VsZik6CiAg
ICAgICAgIEFic3RyYWN0UmV2aWV3UXVldWUuYmVnaW5fd29ya19xdWV1ZShzZWxmKQotICAgICAg
ICBzZWxmLl9sYXlvdXRfdGVzdF9yZXN1bHRzX3JlYWRlciA9IExheW91dFRlc3RSZXN1bHRzUmVh
ZGVyKHNlbGYuX3Rvb2wsIHNlbGYuX3BvcnQucmVzdWx0c19kaXJlY3RvcnkoKSwgc2VsZi5fbG9n
X2RpcmVjdG9yeSgpKQorCisgICAgICAgIGlmIHNlbGYuZ3JvdXAoKSA9PSAianNjIjoKKyAgICAg
ICAgICAgIGRpciA9IG9zLnBhdGguZGlybmFtZShvcy5wYXRoLmRpcm5hbWUob3MucGF0aC5kaXJu
YW1lKHNlbGYuX3BvcnQucmVzdWx0c19kaXJlY3RvcnkoKSkpKQorICAgICAgICAgICAgc2VsZi5f
dGVzdF9yZXN1bHRzX3JlYWRlciA9IEpTQ1Rlc3RSZXN1bHRzUmVhZGVyKHNlbGYuX3Rvb2wsIGRp
cikKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYuX3Rlc3RfcmVzdWx0c19yZWFkZXIg
PSBMYXlvdXRUZXN0UmVzdWx0c1JlYWRlcihzZWxmLl90b29sLCBzZWxmLl9wb3J0LnJlc3VsdHNf
ZGlyZWN0b3J5KCksIHNlbGYuX2xvZ19kaXJlY3RvcnkoKSkKIAogICAgIGRlZiBfZmFpbGluZ190
ZXN0c19tZXNzYWdlKHNlbGYsIHRhc2ssIHBhdGNoKToKICAgICAgICAgcmVzdWx0cyA9IHRhc2su
cmVzdWx0c19mcm9tX3BhdGNoX3Rlc3RfcnVuKHBhdGNoKQpAQCAtOTMsNiArMTAxLDkgQEAgY2xh
c3MgQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0oQWJzdHJhY3RSZXZpZXdRdWV1ZSwgRWFybHlX
YXJuaW5nU3lzdGVtVGFza0RlbGUKICAgICAgICAgZXhjZXB0IFVuYWJsZVRvQXBwbHlQYXRjaCwg
ZToKICAgICAgICAgICAgIHNlbGYuX2RpZF9lcnJvcihwYXRjaCwgIiVzIHVuYWJsZSB0byBhcHBs
eSBwYXRjaC4iICUgc2VsZi5uYW1lKQogICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAg
IGV4Y2VwdCBQYXRjaElzTm90QXBwbGljYWJsZSwgZToKKyAgICAgICAgICAgIHNlbGYuX2RpZF9l
cnJvcihwYXRjaCwgIiVzIHBhdGNoIG5vdCBhcHBsaWNhYmxlLiIgJSBzZWxmLm5hbWUpCisgICAg
ICAgICAgICByZXR1cm4gRmFsc2UKICAgICAgICAgZXhjZXB0IFNjcmlwdEVycm9yLCBlOgogICAg
ICAgICAgICAgc2VsZi5fcG9zdF9yZWplY3RfbWVzc2FnZV9vbl9idWcoc2VsZi5fdG9vbCwgcGF0
Y2gsIHRhc2suZmFpbHVyZV9zdGF0dXNfaWQsIHNlbGYuX2ZhaWxpbmdfdGVzdHNfbWVzc2FnZSh0
YXNrLCBwYXRjaCkpCiAgICAgICAgICAgICByZXN1bHRzX2FyY2hpdmUgPSB0YXNrLnJlc3VsdHNf
YXJjaGl2ZV9mcm9tX3BhdGNoX3Rlc3RfcnVuKHBhdGNoKQpAQCAtMTE3LDE0ICsxMjgsMTcgQEAg
Y2xhc3MgQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0oQWJzdHJhY3RSZXZpZXdRdWV1ZSwgRWFy
bHlXYXJuaW5nU3lzdGVtVGFza0RlbGUKICAgICAgICAgcmV0dXJuIHNlbGYuX3VwZGF0ZV9zdGF0
dXMobWVzc2FnZSwgcGF0Y2g9cGF0Y2gsIHJlc3VsdHNfZmlsZT1mYWlsdXJlX2xvZykKIAogICAg
IGRlZiB0ZXN0X3Jlc3VsdHMoc2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmLl9sYXlvdXRfdGVz
dF9yZXN1bHRzX3JlYWRlci5yZXN1bHRzKCkKKyAgICAgICAgcmV0dXJuIHNlbGYuX3Rlc3RfcmVz
dWx0c19yZWFkZXIucmVzdWx0cygpCiAKICAgICBkZWYgYXJjaGl2ZV9sYXN0X3Rlc3RfcmVzdWx0
cyhzZWxmLCBwYXRjaCk6Ci0gICAgICAgIHJldHVybiBzZWxmLl9sYXlvdXRfdGVzdF9yZXN1bHRz
X3JlYWRlci5hcmNoaXZlKHBhdGNoKQorICAgICAgICByZXR1cm4gc2VsZi5fdGVzdF9yZXN1bHRz
X3JlYWRlci5hcmNoaXZlKHBhdGNoKQogCiAgICAgZGVmIGJ1aWxkX3N0eWxlKHNlbGYpOgogICAg
ICAgICByZXR1cm4gc2VsZi5fYnVpbGRfc3R5bGUKIAorICAgIGRlZiBncm91cChzZWxmKToKKyAg
ICAgICAgcmV0dXJuIHNlbGYuX2dyb3VwCisKICAgICBkZWYgcmVmZXRjaF9wYXRjaChzZWxmLCBw
YXRjaCk6CiAgICAgICAgIHJldHVybiBzZWxmLl90b29sLmJ1Z3MuZmV0Y2hfYXR0YWNobWVudChw
YXRjaC5pZCgpKQogCkBAIC0xNTYsNSArMTcwLDYgQEAgY2xhc3MgQWJzdHJhY3RFYXJseVdhcm5p
bmdTeXN0ZW0oQWJzdHJhY3RSZXZpZXdRdWV1ZSwgRWFybHlXYXJuaW5nU3lzdGVtVGFza0RlbGUK
ICAgICAgICAgICAgICAgICAnX2J1aWxkX3N0eWxlJzogY29uZmlnLmdldCgnc3R5bGUnLCAicmVs
ZWFzZSIpLAogICAgICAgICAgICAgICAgICd3YXRjaGVycyc6IGNvbmZpZy5nZXQoJ3dhdGNoZXJz
JywgW10pLAogICAgICAgICAgICAgICAgICdydW5fdGVzdHMnOiBjb25maWcuZ2V0KCdydW5UZXN0
cycsIGNscy5ydW5fdGVzdHMpLAorICAgICAgICAgICAgICAgICdfZ3JvdXAnOiBjb25maWcuZ2V0
KCdncm91cCcsIE5vbmUpLAogICAgICAgICAgICAgfSkpCiAgICAgICAgIHJldHVybiBjbGFzc2Vz
CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZWFybHl3
YXJuaW5nc3lzdGVtX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2Nv
bW1hbmRzL2Vhcmx5d2FybmluZ3N5c3RlbV91bml0dGVzdC5weQppbmRleCAwODg4NzgxM2NlMmU5
M2E4ZWM5ZGEzNzYzNmVjYmRlOWVmZjNjOWU3Li41ZDc4YTgxNzBiZmFiNmQzMjc2NGU1ZGQyMmNm
NWU3MDE0ZGI2MzI4IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29t
bWFuZHMvZWFybHl3YXJuaW5nc3lzdGVtX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvdG9vbC9jb21tYW5kcy9lYXJseXdhcm5pbmdzeXN0ZW1fdW5pdHRlc3QucHkKQEAg
LTEsNCArMSw1IEBACiAjIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtMjksNiArMzAsNyBA
QAogZnJvbSB3ZWJraXRweS50aGlyZHBhcnR5Lm1vY2sgaW1wb3J0IE1vY2sKIGZyb20gd2Via2l0
cHkuY29tbW9uLmhvc3QgaW1wb3J0IEhvc3QKIGZyb20gd2Via2l0cHkuY29tbW9uLmhvc3RfbW9j
ayBpbXBvcnQgTW9ja0hvc3QKK2Zyb20gd2Via2l0cHkuY29tbW9uLm5ldC5qc2N0ZXN0cmVzdWx0
cyBpbXBvcnQgSlNDVGVzdFJlc3VsdHMKIGZyb20gd2Via2l0cHkuY29tbW9uLm5ldC5sYXlvdXR0
ZXN0cmVzdWx0cyBpbXBvcnQgTGF5b3V0VGVzdFJlc3VsdHMKIGZyb20gd2Via2l0cHkuY29tbW9u
LnN5c3RlbS5vdXRwdXRjYXB0dXJlIGltcG9ydCBPdXRwdXRDYXB0dXJlCiBmcm9tIHdlYmtpdHB5
LmxheW91dF90ZXN0cy5tb2RlbHMgaW1wb3J0IHRlc3RfcmVzdWx0cwpAQCAtNDcsNiArNDksNyBA
QCBjbGFzcyBBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbVRlc3QoUXVldWVzVGVzdCk6CiAgICAg
ICAgIGNsYXNzIFRlc3RFV1MoQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0pOgogICAgICAgICAg
ICAgcG9ydF9uYW1lID0gIndpbiIgICMgTmVlZHMgdG8gYmUgYSBwb3J0IHdoaWNoIHBvcnQvZmFj
dG9yeSB1bmRlcnN0YW5kcy4KICAgICAgICAgICAgIF9idWlsZF9zdHlsZSA9IE5vbmUKKyAgICAg
ICAgICAgIF9ncm91cCA9IE5vbmUKIAogICAgICAgICBld3MgPSBUZXN0RVdTKCkKICAgICAgICAg
ZXdzLmJpbmRfdG9fdG9vbChNb2NrVG9vbCgpKQpAQCAtNjAsNiArNjMsMjMgQEAgY2xhc3MgQWJz
dHJhY3RFYXJseVdhcm5pbmdTeXN0ZW1UZXN0KFF1ZXVlc1Rlc3QpOgogICAgICAgICBwYXRjaCA9
IGV3cy5fdG9vbC5idWdzLmZldGNoX2F0dGFjaG1lbnQoMTAwMDApCiAgICAgICAgIHNlbGYuYXNz
ZXJ0TXVsdGlMaW5lRXF1YWwoZXdzLl9mYWlsaW5nX3Rlc3RzX21lc3NhZ2UodGFzaywgcGF0Y2gp
LCAiTmV3IGZhaWxpbmcgdGVzdHM6XG5mb28uaHRtbFxuYmFyLmh0bWwiKQogCisgICAgZGVmIHRl
c3RfZmFpbGluZ19qc2NfdGVzdHNfbWVzc2FnZShzZWxmKToKKyAgICAgICAgIyBOZWVkZWQgdG8g
ZGVmaW5lIHBvcnRfbmFtZSwgdXNlZCBpbiBBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbS5fX2lu
aXRfXworICAgICAgICBjbGFzcyBUZXN0RVdTKEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtKToK
KyAgICAgICAgICAgIHBvcnRfbmFtZSA9ICJ3aW4iICAjIE5lZWRzIHRvIGJlIGEgcG9ydCB3aGlj
aCBwb3J0L2ZhY3RvcnkgdW5kZXJzdGFuZHMuCisgICAgICAgICAgICBfYnVpbGRfc3R5bGUgPSBO
b25lCisgICAgICAgICAgICBfZ3JvdXAgPSAianNjIgorCisgICAgICAgIGV3cyA9IFRlc3RFV1Mo
KQorICAgICAgICBld3MuYmluZF90b190b29sKE1vY2tUb29sKCkpCisgICAgICAgIGV3cy5ob3N0
ID0gTW9ja0hvc3QoKQorICAgICAgICBld3MuX29wdGlvbnMgPSBNb2NrT3B0aW9ucyhwb3J0PU5v
bmUsIGNvbmZpcm09RmFsc2UpCisgICAgICAgIE91dHB1dENhcHR1cmUoKS5hc3NlcnRfb3V0cHV0
cyhzZWxmLCBld3MuYmVnaW5fd29ya19xdWV1ZSwgZXhwZWN0ZWRfbG9ncz1zZWxmLl9kZWZhdWx0
X2JlZ2luX3dvcmtfcXVldWVfbG9ncyhld3MubmFtZSkpCisgICAgICAgIHRhc2sgPSBNb2NrKCkK
KyAgICAgICAgdGFzay5yZXN1bHRzX2Zyb21fcGF0Y2hfdGVzdF9ydW4gPSBsYW1iZGEgYTogSlND
VGVzdFJlc3VsdHMoRmFsc2UsIFsiZXM2LnlhbWwvZXM2L3R5cGVkX2FycmF5c19JbnQ4QXJyYXku
anMuZGVmYXVsdCIsICJlczYueWFtbC9lczYvdHlwZWRfYXJyYXlzX1VpbnQ4QXJyYXkuanMuZGVm
YXVsdCJdKQorICAgICAgICBwYXRjaCA9IGV3cy5fdG9vbC5idWdzLmZldGNoX2F0dGFjaG1lbnQo
MTAwMDApCisgICAgICAgIHNlbGYuYXNzZXJ0TXVsdGlMaW5lRXF1YWwoZXdzLl9mYWlsaW5nX3Rl
c3RzX21lc3NhZ2UodGFzaywgcGF0Y2gpLCAiTmV3IGZhaWxpbmcgdGVzdHM6XG5lczYueWFtbC9l
czYvdHlwZWRfYXJyYXlzX0ludDhBcnJheS5qcy5kZWZhdWx0XG5lczYueWFtbC9lczYvdHlwZWRf
YXJyYXlzX1VpbnQ4QXJyYXkuanMuZGVmYXVsdFxuYXBpVGVzdHMiKQorCiAKIGNsYXNzIEVhcmx5
V2FybmluZ1N5c3RlbVRlc3QoUXVldWVzVGVzdCk6CiAgICAgZGVmIF9kZWZhdWx0X2V4cGVjdGVk
X2xvZ3Moc2VsZiwgZXdzKToKQEAgLTY4LDkgKzg4LDEwIEBAIGNsYXNzIEVhcmx5V2FybmluZ1N5
c3RlbVRlc3QoUXVldWVzVGVzdCk6CiAgICAgICAgICAgICAicG9ydCI6IGV3cy5wb3J0X25hbWUs
CiAgICAgICAgICAgICAiYXJjaGl0ZWN0dXJlIjogIiAtLWFyY2hpdGVjdHVyZT0lcyIgJSBld3Mu
YXJjaGl0ZWN0dXJlIGlmIGV3cy5hcmNoaXRlY3R1cmUgZWxzZSAiIiwKICAgICAgICAgICAgICJi
dWlsZF9zdHlsZSI6IGV3cy5idWlsZF9zdHlsZSgpLAorICAgICAgICAgICAgImdyb3VwIjogZXdz
Lmdyb3VwKCksCiAgICAgICAgIH0KICAgICAgICAgaWYgZXdzLnJ1bl90ZXN0czoKLSAgICAgICAg
ICAgIHJ1bl90ZXN0c19saW5lID0gIlJ1bm5pbmc6IHdlYmtpdC1wYXRjaCAtLXN0YXR1cy1ob3N0
PWV4YW1wbGUuY29tIGJ1aWxkLWFuZC10ZXN0IC0tbm8tY2xlYW4gLS1uby11cGRhdGUgLS10ZXN0
IC0tbm9uLWludGVyYWN0aXZlIC0tYnVpbGQtc3R5bGU9JShidWlsZF9zdHlsZSlzIC0tcG9ydD0l
KHBvcnQpcyUoYXJjaGl0ZWN0dXJlKXNcbiIgJSBzdHJpbmdfcmVwbGFjZW1lbnRzCisgICAgICAg
ICAgICBydW5fdGVzdHNfbGluZSA9ICJSdW5uaW5nOiB3ZWJraXQtcGF0Y2ggLS1zdGF0dXMtaG9z
dD1leGFtcGxlLmNvbSBidWlsZC1hbmQtdGVzdCAtLW5vLWNsZWFuIC0tbm8tdXBkYXRlIC0tdGVz
dCAtLW5vbi1pbnRlcmFjdGl2ZSAtLWJ1aWxkLXN0eWxlPSUoYnVpbGRfc3R5bGUpcyAtLWdyb3Vw
PSUoZ3JvdXApcyAtLXBvcnQ9JShwb3J0KXMlKGFyY2hpdGVjdHVyZSlzXG4iICUgc3RyaW5nX3Jl
cGxhY2VtZW50cwogICAgICAgICBlbHNlOgogICAgICAgICAgICAgcnVuX3Rlc3RzX2xpbmUgPSAi
IgogICAgICAgICBzdHJpbmdfcmVwbGFjZW1lbnRzWydydW5fdGVzdHNfbGluZSddID0gcnVuX3Rl
c3RzX2xpbmUKQEAgLTgxLDcgKzEwMiw4IEBAIGNsYXNzIEVhcmx5V2FybmluZ1N5c3RlbVRlc3Qo
UXVldWVzVGVzdCk6CiBSdW5uaW5nOiB3ZWJraXQtcGF0Y2ggLS1zdGF0dXMtaG9zdD1leGFtcGxl
LmNvbSBjbGVhbiAtLXBvcnQ9JShwb3J0KXMlKGFyY2hpdGVjdHVyZSlzCiBSdW5uaW5nOiB3ZWJr
aXQtcGF0Y2ggLS1zdGF0dXMtaG9zdD1leGFtcGxlLmNvbSB1cGRhdGUgLS1wb3J0PSUocG9ydClz
JShhcmNoaXRlY3R1cmUpcwogUnVubmluZzogd2Via2l0LXBhdGNoIC0tc3RhdHVzLWhvc3Q9ZXhh
bXBsZS5jb20gYXBwbHktYXR0YWNobWVudCAtLW5vLXVwZGF0ZSAtLW5vbi1pbnRlcmFjdGl2ZSAx
MDAwMCAtLXBvcnQ9JShwb3J0KXMlKGFyY2hpdGVjdHVyZSlzCi1SdW5uaW5nOiB3ZWJraXQtcGF0
Y2ggLS1zdGF0dXMtaG9zdD1leGFtcGxlLmNvbSBidWlsZCAtLW5vLWNsZWFuIC0tbm8tdXBkYXRl
IC0tYnVpbGQtc3R5bGU9JShidWlsZF9zdHlsZSlzIC0tcG9ydD0lKHBvcnQpcyUoYXJjaGl0ZWN0
dXJlKXMKK1J1bm5pbmc6IHdlYmtpdC1wYXRjaCAtLXN0YXR1cy1ob3N0PWV4YW1wbGUuY29tIGNo
ZWNrLXBhdGNoLXJlbGV2YW5jZSAtLWdyb3VwPSUoZ3JvdXApcyAtLXBvcnQ9JShwb3J0KXMlKGFy
Y2hpdGVjdHVyZSlzCitSdW5uaW5nOiB3ZWJraXQtcGF0Y2ggLS1zdGF0dXMtaG9zdD1leGFtcGxl
LmNvbSBidWlsZCAtLW5vLWNsZWFuIC0tbm8tdXBkYXRlIC0tYnVpbGQtc3R5bGU9JShidWlsZF9z
dHlsZSlzIC0tZ3JvdXA9JShncm91cClzIC0tcG9ydD0lKHBvcnQpcyUoYXJjaGl0ZWN0dXJlKXMK
ICUocnVuX3Rlc3RzX2xpbmUpc01PQ0s6IHVwZGF0ZV9zdGF0dXM6ICUobmFtZSlzIFBhc3MKIE1P
Q0s6IHJlbGVhc2Vfd29ya19pdGVtOiAlKG5hbWUpcyAxMDAwMAogIiIiICUgc3RyaW5nX3JlcGxh
Y2VtZW50cywKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9f
X2luaXRfXy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9fX2luaXRfXy5w
eQppbmRleCAzNTZhY2FiMDNhZDgyNzRjZTliZGE2ODU4ODY0ZmYxOWI2NGY0YTBhLi42YzljMDlh
YzUyYTM4NmI5ZjBjZjM2M2I5YzAzYmJhYTRjMDAzODYxIDEwMDY0NAotLS0gYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvX19pbml0X18ucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS90b29sL3N0ZXBzL19faW5pdF9fLnB5CkBAIC0xLDQgKzEsNSBAQAogIyBDb3B5cmln
aHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0
IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucyBhcmUKQEAgLTMzLDYgKzM0LDcgQEAgZnJvbSB3ZWJraXRweS50b29sLnN0
ZXBzLmFwcGx5cGF0Y2h3aXRobG9jYWxjb21taXQgaW1wb3J0IEFwcGx5UGF0Y2hXaXRoTG9jYWxD
b20KIGZyb20gd2Via2l0cHkudG9vbC5zdGVwcy5hcHBseXdhdGNobGlzdCBpbXBvcnQgQXBwbHlX
YXRjaExpc3QKIGZyb20gd2Via2l0cHkudG9vbC5zdGVwcy5hdHRhY2h0b2J1ZyBpbXBvcnQgQXR0
YWNoVG9CdWcKIGZyb20gd2Via2l0cHkudG9vbC5zdGVwcy5idWlsZCBpbXBvcnQgQnVpbGQKK2Zy
b20gd2Via2l0cHkudG9vbC5zdGVwcy5jaGVja3BhdGNocmVsZXZhbmNlIGltcG9ydCBDaGVja1Bh
dGNoUmVsZXZhbmNlCiBmcm9tIHdlYmtpdHB5LnRvb2wuc3RlcHMuY2hlY2tzdHlsZSBpbXBvcnQg
Q2hlY2tTdHlsZQogZnJvbSB3ZWJraXRweS50b29sLnN0ZXBzLmNsZWFud29ya2luZ2RpcmVjdG9y
eSBpbXBvcnQgQ2xlYW5Xb3JraW5nRGlyZWN0b3J5CiBmcm9tIHdlYmtpdHB5LnRvb2wuc3RlcHMu
Y2xvc2VidWcgaW1wb3J0IENsb3NlQnVnCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L3Rvb2wvc3RlcHMvYnVpbGQucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3Rl
cHMvYnVpbGQucHkKaW5kZXggZjc0ZmZjZTcwOTQxYzYxZTU5Njc5MmU0YzYwZGNkN2Y4YjY1ZTll
Yy4uM2M2Y2YwYjFkZTAxOGMxMzJiN2Y4NmRhMmNiOTA3ZTJmZGEwNjdhZSAxMDA2NDQKLS0tIGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL2J1aWxkLnB5CisrKyBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9idWlsZC5weQpAQCAtMSw0ICsxLDUgQEAKICMgQ29w
eXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHly
aWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC00MSwyOCArNDIsMzcgQEAgY2xhc3MgQnVpbGQoQWJz
dHJhY3RTdGVwKToKICAgICAgICAgICAgIE9wdGlvbnMuYnVpbGQsCiAgICAgICAgICAgICBPcHRp
b25zLnF1aWV0LAogICAgICAgICAgICAgT3B0aW9ucy5idWlsZF9zdHlsZSwKKyAgICAgICAgICAg
IE9wdGlvbnMuZ3JvdXAsCiAgICAgICAgIF0KIAotICAgIGRlZiBidWlsZChzZWxmLCBidWlsZF9z
dHlsZSk6CisgICAgZGVmIGJ1aWxkKHNlbGYsIGJ1aWxkX3N0eWxlLCBncm91cCk6CiAgICAgICAg
IGVudmlyb25tZW50ID0gc2VsZi5fdG9vbC5jb3B5X2N1cnJlbnRfZW52aXJvbm1lbnQoKQogICAg
ICAgICBlbnZpcm9ubWVudC5kaXNhYmxlX2djY19zbWFydHF1b3RlcygpCiAgICAgICAgIGVudmly
b25tZW50LmRpc2FibGVfamhidWlsZF9WVDEwMF9vdXRwdXQoKQogICAgICAgICBlbnYgPSBlbnZp
cm9ubWVudC50b19kaWN0aW9uYXJ5KCkKIAotICAgICAgICBidWlsZF93ZWJraXRfY29tbWFuZCA9
IHNlbGYuX3Rvb2wuZGVwcmVjYXRlZF9wb3J0KCkuYnVpbGRfd2Via2l0X2NvbW1hbmQoYnVpbGRf
c3R5bGU9YnVpbGRfc3R5bGUpCisgICAgICAgIGlmIGdyb3VwID09ICJqc2MiOgorICAgICAgICAg
ICAgYnVpbGRfY29tbWFuZCA9IHNlbGYuX3Rvb2wuZGVwcmVjYXRlZF9wb3J0KCkuYnVpbGRfanNj
X2NvbW1hbmQoYnVpbGRfc3R5bGU9YnVpbGRfc3R5bGUpCisgICAgICAgIGVsc2U6CisgICAgICAg
ICAgICBidWlsZF9jb21tYW5kID0gc2VsZi5fdG9vbC5kZXByZWNhdGVkX3BvcnQoKS5idWlsZF93
ZWJraXRfY29tbWFuZChidWlsZF9zdHlsZT1idWlsZF9zdHlsZSkKIAogICAgICAgICBpZiBzZWxm
Ll9vcHRpb25zLmFyY2hpdGVjdHVyZToKLSAgICAgICAgICAgIGJ1aWxkX3dlYmtpdF9jb21tYW5k
ICs9IFsnQVJDSFM9JXMnICUgc2VsZi5fb3B0aW9ucy5hcmNoaXRlY3R1cmVdCisgICAgICAgICAg
ICBidWlsZF9jb21tYW5kICs9IFsnQVJDSFM9JXMnICUgc2VsZi5fb3B0aW9ucy5hcmNoaXRlY3R1
cmVdCiAKLSAgICAgICAgc2VsZi5fdG9vbC5leGVjdXRpdmUucnVuX2FuZF90aHJvd19pZl9mYWls
KGJ1aWxkX3dlYmtpdF9jb21tYW5kLCBzZWxmLl9vcHRpb25zLnF1aWV0LAorICAgICAgICBzZWxm
Ll90b29sLmV4ZWN1dGl2ZS5ydW5fYW5kX3Rocm93X2lmX2ZhaWwoYnVpbGRfY29tbWFuZCwgc2Vs
Zi5fb3B0aW9ucy5xdWlldCwKICAgICAgICAgICAgIGN3ZD1zZWxmLl90b29sLnNjbSgpLmNoZWNr
b3V0X3Jvb3QsIGVudj1lbnYpCiAKICAgICBkZWYgcnVuKHNlbGYsIHN0YXRlKToKICAgICAgICAg
aWYgbm90IHNlbGYuX29wdGlvbnMuYnVpbGQ6CiAgICAgICAgICAgICByZXR1cm4KICAgICAgICAg
X2xvZy5pbmZvKCJCdWlsZGluZyBXZWJLaXQiKQorCisgICAgICAgIGdyb3VwID0gTm9uZQorICAg
ICAgICBpZiBoYXNhdHRyKHNlbGYuX29wdGlvbnMsICdncm91cCcpOgorICAgICAgICAgICAgZ3Jv
dXAgPSBzZWxmLl9vcHRpb25zLmdyb3VwCisKICAgICAgICAgaWYgc2VsZi5fb3B0aW9ucy5idWls
ZF9zdHlsZSA9PSAiYm90aCI6Ci0gICAgICAgICAgICBzZWxmLmJ1aWxkKCJkZWJ1ZyIpCi0gICAg
ICAgICAgICBzZWxmLmJ1aWxkKCJyZWxlYXNlIikKKyAgICAgICAgICAgIHNlbGYuYnVpbGQoImRl
YnVnIiwgZ3JvdXApCisgICAgICAgICAgICBzZWxmLmJ1aWxkKCJyZWxlYXNlIiwgZ3JvdXApCiAg
ICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBzZWxmLmJ1aWxkKHNlbGYuX29wdGlvbnMuYnVpbGRf
c3R5bGUpCisgICAgICAgICAgICBzZWxmLmJ1aWxkKHNlbGYuX29wdGlvbnMuYnVpbGRfc3R5bGUs
IGdyb3VwKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL2No
ZWNrcGF0Y2hyZWxldmFuY2UucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMv
Y2hlY2twYXRjaHJlbGV2YW5jZS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MmY3NDVlMzRkYjlkNjliMjQ0NTM0
ODg0NDY4NTk2NmVhNjYzMjUyCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS90b29sL3N0ZXBzL2NoZWNrcGF0Y2hyZWxldmFuY2UucHkKQEAgLTAsMCArMSw3NCBAQAor
IyBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIwor
IyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUgorIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAor
IyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitpbXBvcnQgbG9nZ2luZwor
aW1wb3J0IHJlCisKK2Zyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5leGVjdXRpdmUgaW1wb3J0
IFNjcmlwdEVycm9yCitmcm9tIHdlYmtpdHB5LnRvb2wuc3RlcHMuYWJzdHJhY3RzdGVwIGltcG9y
dCBBYnN0cmFjdFN0ZXAKK2Zyb20gd2Via2l0cHkudG9vbC5zdGVwcy5vcHRpb25zIGltcG9ydCBP
cHRpb25zCisKK19sb2cgPSBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVfXykKKworCitjbGFzcyBD
aGVja1BhdGNoUmVsZXZhbmNlKEFic3RyYWN0U3RlcCk6CisgICAgQGNsYXNzbWV0aG9kCisgICAg
ZGVmIG9wdGlvbnMoY2xzKToKKyAgICAgICAgcmV0dXJuIEFic3RyYWN0U3RlcC5vcHRpb25zKCkg
KyBbCisgICAgICAgICAgICBPcHRpb25zLmdyb3VwLAorICAgICAgICBdCisKKyAgICBqc2NfcGF0
aHMgPSBbCisgICAgICAgICJKU1Rlc3RzLyIsCisgICAgICAgICJTb3VyY2UvSmF2YVNjcmlwdENv
cmUvIiwKKyAgICAgICAgIlNvdXJjZS9XVEYvIgorICAgICAgICAiU291cmNlL2JtYWxsb2MvIiwK
KyAgICBdCisKKyAgICBkZWYgX2RvZXNfY29udGFpbl9jaGFuZ2VfaW5fcGF0aHMoc2VsZiwgZmls
ZXMsIHBhdHRlcm5zKToKKyAgICAgICAgZm9yIGl0ZW0gaW4gZmlsZXM6CisgICAgICAgICAgICBm
b3IgcGF0dGVybiBpbiBwYXR0ZXJuczoKKyAgICAgICAgICAgICAgICBpZiByZS5zZWFyY2gocGF0
dGVybiwgaXRlbSwgcmUuSUdOT1JFQ0FTRSk6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBU
cnVlCisKKyAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICBkZWYgcnVuKHNlbGYsIHN0YXRlKToK
KyAgICAgICAgX2xvZy5pbmZvKCJDaGVja2luZyByZWxldmFuY2Ugb2YgcGF0Y2giKQorCisgICAg
ICAgIGdyb3VwID0gTm9uZQorICAgICAgICBpZiBoYXNhdHRyKHNlbGYuX29wdGlvbnMsICdncm91
cCcpOgorICAgICAgICAgICAgZ3JvdXAgPSBzZWxmLl9vcHRpb25zLmdyb3VwCisKKyAgICAgICAg
Y2hhbmdlX2xpc3QgPSBzZWxmLl90b29sLnNjbSgpLmNoYW5nZWRfZmlsZXMoKQorCisgICAgICAg
IGlmIGdyb3VwID09ICJqc2MiOgorICAgICAgICAgICAgcmVsZXZhbnQgPSBzZWxmLl9kb2VzX2Nv
bnRhaW5fY2hhbmdlX2luX3BhdGhzKGNoYW5nZV9saXN0LCBzZWxmLmpzY19wYXRocykKKyAgICAg
ICAgZWxzZToKKyAgICAgICAgICAgIHJlbGV2YW50ID0gVHJ1ZQorCisgICAgICAgIGlmIHJlbGV2
YW50IGlzIFRydWU6CisgICAgICAgICAgICBfbG9nLmluZm8oIlRoaXMgcGF0Y2ggaGFzIHJlbGV2
YW50IGNoYW5nZXMuIikKKyAgICAgICAgICAgIHJldHVybiBUcnVlCisgICAgICAgIGVsc2U6Cisg
ICAgICAgICAgICBfbG9nLmluZm8oIlRoaXMgcGF0Y2ggZG9lcyBub3QgaGF2ZSByZWxldmFudCBj
aGFuZ2VzLiIpCisgICAgICAgICAgICByYWlzZSBTY3JpcHRFcnJvcihtZXNzYWdlPSJUaGlzIHBh
dGNoIGRvZXMgbm90IGhhdmUgcmVsZXZhbnQgY2hhbmdlcy4iKQpkaWZmIC0tZ2l0IGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL29wdGlvbnMucHkgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L3Rvb2wvc3RlcHMvb3B0aW9ucy5weQppbmRleCAzZWY0N2QwMDhhNTllMDUwZDRjYTBj
NDg3N2RkZDFhNjA3MzFhNDA5Li5mNWUwZGVmMzI3MTdlMzA2ZTYzMTY5ODQxMTEwYjI4OThiNzJh
MWYxIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvb3B0aW9u
cy5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvb3B0aW9ucy5weQpA
QCAtMSw0ICsxLDUgQEAKICMgQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC00Niw2ICs0Nyw3
IEBAIGNsYXNzIE9wdGlvbnMob2JqZWN0KToKICAgICBlbWFpbCA9IG1ha2Vfb3B0aW9uKCItLWVt
YWlsIiwgYWN0aW9uPSJzdG9yZSIsIHR5cGU9InN0cmluZyIsIGRlc3Q9ImVtYWlsIiwgaGVscD0i
RW1haWwgYWRkcmVzcyB0byB1c2UgaW4gQ2hhbmdlTG9ncy4iKQogICAgIGZvcmNlX2NsZWFuID0g
bWFrZV9vcHRpb24oIi0tZm9yY2UtY2xlYW4iLCBhY3Rpb249InN0b3JlX3RydWUiLCBkZXN0PSJm
b3JjZV9jbGVhbiIsIGRlZmF1bHQ9RmFsc2UsIGhlbHA9IkNsZWFuIHdvcmtpbmcgZGlyZWN0b3J5
IGJlZm9yZSBhcHBseWluZyBwYXRjaGVzIChyZW1vdmVzIGxvY2FsIGNoYW5nZXMgYW5kIGNvbW1p
dHMpIikKICAgICBnaXRfY29tbWl0ID0gbWFrZV9vcHRpb24oIi1nIiwgIi0tZ2l0LWNvbW1pdCIs
IGFjdGlvbj0ic3RvcmUiLCBkZXN0PSJnaXRfY29tbWl0IiwgaGVscD0iT3BlcmF0ZSBvbiBhIGxv
Y2FsIGNvbW1pdC4gSWYgYSByYW5nZSwgdGhlIGNvbW1pdHMgYXJlIHNxdWFzaGVkIGludG8gb25l
LiA8cmVmPi4uLi4gaW5jbHVkZXMgdGhlIHdvcmtpbmcgY29weSBjaGFuZ2VzLiBVUFNUUkVBTSBj
YW4gYmUgdXNlZCBmb3IgdGhlIHVwc3RyZWFtL3RyYWNraW5nIGJyYW5jaC4iKQorICAgIGdyb3Vw
ID0gbWFrZV9vcHRpb24oIi0tZ3JvdXAiLCBhY3Rpb249InN0b3JlIiwgZGVzdD0iZ3JvdXAiLCBk
ZWZhdWx0PU5vbmUsIGhlbHA9IiIpCiAgICAgbG9jYWxfY29tbWl0ID0gbWFrZV9vcHRpb24oIi0t
bG9jYWwtY29tbWl0IiwgYWN0aW9uPSJzdG9yZV90cnVlIiwgZGVzdD0ibG9jYWxfY29tbWl0Iiwg
ZGVmYXVsdD1GYWxzZSwgaGVscD0iTWFrZSBhIGxvY2FsIGNvbW1pdCBmb3IgZWFjaCBhcHBsaWVk
IHBhdGNoIikKICAgICBub25faW50ZXJhY3RpdmUgPSBtYWtlX29wdGlvbigiLS1ub24taW50ZXJh
Y3RpdmUiLCBhY3Rpb249InN0b3JlX3RydWUiLCBkZXN0PSJub25faW50ZXJhY3RpdmUiLCBkZWZh
dWx0PUZhbHNlLCBoZWxwPSJOZXZlciBwcm9tcHQgdGhlIHVzZXIsIGZhaWwgYXMgZmFzdCBhcyBw
b3NzaWJsZS4iKQogICAgIG9ic29sZXRlX3BhdGNoZXMgPSBtYWtlX29wdGlvbigiLS1uby1vYnNv
bGV0ZSIsIGFjdGlvbj0ic3RvcmVfZmFsc2UiLCBkZXN0PSJvYnNvbGV0ZV9wYXRjaGVzIiwgZGVm
YXVsdD1UcnVlLCBoZWxwPSJEbyBub3Qgb2Jzb2xldGUgb2xkIHBhdGNoZXMgYmVmb3JlIHBvc3Rp
bmcgdGhpcyBvbmUuIikKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9z
dGVwcy9ydW50ZXN0cy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9ydW50
ZXN0cy5weQppbmRleCA3NWQ3MmJjOWFkMmY0ZTM2ZDQ1ZmRhYzkwZjE4MTk0ODFjZjAyODhiLi41
YTdmMmE5OGEzZmJiMjRlY2IwM2Y2MWM2YjYwZjY1MDQyZDk3MWE0IDEwMDY0NAotLS0gYS9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvcnVudGVzdHMucHkKKysrIGIvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3J1bnRlc3RzLnB5CkBAIC0xLDQgKzEsNSBAQAogIyBD
b3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29w
eXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTUzLDYgKzU0LDcgQEAgY2xhc3MgUnVuVGVzdHMo
QWJzdHJhY3RTdGVwKToKICAgICAgICAgICAgIE9wdGlvbnMuaXRlcmF0ZV9vbl9uZXdfdGVzdHMs
CiAgICAgICAgICAgICBPcHRpb25zLm5vbl9pbnRlcmFjdGl2ZSwKICAgICAgICAgICAgIE9wdGlv
bnMucXVpZXQsCisgICAgICAgICAgICBPcHRpb25zLmdyb3VwLAogICAgICAgICBdCiAKICAgICBk
ZWYgcnVuKHNlbGYsIHN0YXRlKToKQEAgLTYzLDYgKzY1LDEwIEBAIGNsYXNzIFJ1blRlc3RzKEFi
c3RyYWN0U3RlcCk6CiAgICAgICAgIGlmIG5vdCBzZWxmLl9vcHRpb25zLnRlc3Q6CiAgICAgICAg
ICAgICByZXR1cm4KIAorICAgICAgICBpZiBoYXNhdHRyKHNlbGYuX29wdGlvbnMsICJncm91cCIp
IGFuZCBzZWxmLl9vcHRpb25zLmdyb3VwID09ICJqc2MiOgorICAgICAgICAgICAgc2VsZi5fcnVu
X2phdmFzY3JpcHRjb3JlX3Rlc3RzKCkKKyAgICAgICAgICAgIHJldHVybgorCiAgICAgICAgIHB5
dGhvbl91bml0dGVzdHNfY29tbWFuZCA9IHNlbGYuX3Rvb2wuZGVwcmVjYXRlZF9wb3J0KCkucnVu
X3B5dGhvbl91bml0dGVzdHNfY29tbWFuZCgpCiAgICAgICAgIGlmIHB5dGhvbl91bml0dGVzdHNf
Y29tbWFuZDoKICAgICAgICAgICAgIF9sb2cuaW5mbygiUnVubmluZyBQeXRob24gdW5pdCB0ZXN0
cyIpCkBAIC0xNDMsMyArMTQ5LDcgQEAgY2xhc3MgUnVuVGVzdHMoQWJzdHJhY3RTdGVwKToKICAg
ICAgICAgICAgIGFyZ3MuYXBwZW5kKCItLWl0ZXJhdGlvbnM9JWQiICUgaXRlcmF0ZV9vbl9uZXdf
dGVzdHMpCiAKICAgICAgICAgc2VsZi5fdG9vbC5leGVjdXRpdmUucnVuX2FuZF90aHJvd19pZl9m
YWlsKGFyZ3MsIGN3ZD1zZWxmLl90b29sLnNjbSgpLmNoZWNrb3V0X3Jvb3QpCisKKyAgICBkZWYg
X3J1bl9qYXZhc2NyaXB0Y29yZV90ZXN0cyhzZWxmKToKKyAgICAgICAgYXJncyA9IHNlbGYuX3Rv
b2wuZGVwcmVjYXRlZF9wb3J0KCkucnVuX2phdmFzY3JpcHRjb3JlX3Rlc3RzX2NvbW1hbmQoc2Vs
Zi5fb3B0aW9ucy5idWlsZF9zdHlsZSkKKyAgICAgICAgc2VsZi5fdG9vbC5leGVjdXRpdmUucnVu
X2FuZF90aHJvd19pZl9mYWlsKGFyZ3MsIGN3ZD1zZWxmLl90b29sLnNjbSgpLmNoZWNrb3V0X3Jv
b3QpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvc3RlcHNf
dW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvc3RlcHNfdW5p
dHRlc3QucHkKaW5kZXggN2Q5NGExM2IzNDYzZDk4YTQ0Zjk0OWY4MTRjYzcxMjFjMDY4YWI1ZC4u
YzMzMDBjODU5NDRjZGUyMWFkOWQwYjNlNTZkZWQ4ODAxM2ViNmFkZSAxMDA2NDQKLS0tIGEvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3N0ZXBzX3VuaXR0ZXN0LnB5CisrKyBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9zdGVwc191bml0dGVzdC5weQpAQCAtMSw0
ICsxLDUgQEAKICMgQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC0yOCw2ICsyOSw3IEBACiAK
IGltcG9ydCB1bml0dGVzdAogCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZl
IGltcG9ydCBTY3JpcHRFcnJvcgogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLm91dHB1dGNh
cHR1cmUgaW1wb3J0IE91dHB1dENhcHR1cmUKIGZyb20gd2Via2l0cHkuY29tbW9uLmNvbmZpZy5w
b3J0cyBpbXBvcnQgRGVwcmVjYXRlZFBvcnQKIGZyb20gd2Via2l0cHkudG9vbC5tb2NrdG9vbCBp
bXBvcnQgTW9ja09wdGlvbnMsIE1vY2tUb29sCkBAIC0xMTEsNyArMTEzLDcgQEAgTU9DSyBydW5f
YW5kX3Rocm93X2lmX2ZhaWw6IFsnVG9vbHMvU2NyaXB0cy90ZXN0LXdlYmtpdHB5J10sIGN3ZD0v
bW9jay1jaGVja291dAogUnVubmluZyBQZXJsIHVuaXQgdGVzdHMKIE1PQ0sgcnVuX2FuZF90aHJv
d19pZl9mYWlsOiBbJ1Rvb2xzL1NjcmlwdHMvdGVzdC13ZWJraXRwZXJsJ10sIGN3ZD0vbW9jay1j
aGVja291dAogUnVubmluZyBKYXZhU2NyaXB0Q29yZSB0ZXN0cwotTU9DSyBydW5fYW5kX3Rocm93
X2lmX2ZhaWw6IFsnVG9vbHMvU2NyaXB0cy9ydW4tamF2YXNjcmlwdGNvcmUtdGVzdHMnXSwgY3dk
PS9tb2NrLWNoZWNrb3V0CitNT0NLIHJ1bl9hbmRfdGhyb3dfaWZfZmFpbDogWydUb29scy9TY3Jp
cHRzL3J1bi1qYXZhc2NyaXB0Y29yZS10ZXN0cycsICctLW5vLWZhaWwtZmFzdCcsICctLWpzb24t
b3V0cHV0PWpzY190ZXN0X3Jlc3VsdHMuanNvbiddLCBjd2Q9L21vY2stY2hlY2tvdXQKIFJ1bm5p
bmcgYmluZGluZ3MgZ2VuZXJhdGlvbiB0ZXN0cwogTU9DSyBydW5fYW5kX3Rocm93X2lmX2ZhaWw6
IFsnVG9vbHMvU2NyaXB0cy9ydW4tYmluZGluZ3MtdGVzdHMnXSwgY3dkPS9tb2NrLWNoZWNrb3V0
CiBSdW5uaW5nIHJ1bi13ZWJraXQtdGVzdHMKQEAgLTEzMywxMCArMTM1LDExMSBAQCBNT0NLIHJ1
bl9hbmRfdGhyb3dfaWZfZmFpbDogWydUb29scy9TY3JpcHRzL3Rlc3Qtd2Via2l0cHknXSwgY3dk
PS9tb2NrLWNoZWNrb3V0CiBSdW5uaW5nIFBlcmwgdW5pdCB0ZXN0cwogTU9DSyBydW5fYW5kX3Ro
cm93X2lmX2ZhaWw6IFsnVG9vbHMvU2NyaXB0cy90ZXN0LXdlYmtpdHBlcmwnXSwgY3dkPS9tb2Nr
LWNoZWNrb3V0CiBSdW5uaW5nIEphdmFTY3JpcHRDb3JlIHRlc3RzCi1NT0NLIHJ1bl9hbmRfdGhy
b3dfaWZfZmFpbDogWydUb29scy9TY3JpcHRzL3J1bi1qYXZhc2NyaXB0Y29yZS10ZXN0cyddLCBj
d2Q9L21vY2stY2hlY2tvdXQKK01PQ0sgcnVuX2FuZF90aHJvd19pZl9mYWlsOiBbJ1Rvb2xzL1Nj
cmlwdHMvcnVuLWphdmFzY3JpcHRjb3JlLXRlc3RzJywgJy0tbm8tZmFpbC1mYXN0JywgJy0tanNv
bi1vdXRwdXQ9anNjX3Rlc3RfcmVzdWx0cy5qc29uJ10sIGN3ZD0vbW9jay1jaGVja291dAogUnVu
bmluZyBiaW5kaW5ncyBnZW5lcmF0aW9uIHRlc3RzCiBNT0NLIHJ1bl9hbmRfdGhyb3dfaWZfZmFp
bDogWydUb29scy9TY3JpcHRzL3J1bi1iaW5kaW5ncy10ZXN0cyddLCBjd2Q9L21vY2stY2hlY2tv
dXQKIFJ1bm5pbmcgcnVuLXdlYmtpdC10ZXN0cwogTU9DSyBydW5fYW5kX3Rocm93X2lmX2ZhaWw6
IFsnVG9vbHMvU2NyaXB0cy9ydW4td2Via2l0LXRlc3RzJywgJy0tZGVidWcnLCAnLS1xdWlldCdd
LCBjd2Q9L21vY2stY2hlY2tvdXQKICIiIgogICAgICAgICBPdXRwdXRDYXB0dXJlKCkuYXNzZXJ0
X291dHB1dHMoc2VsZiwgc3RlcC5ydW4sIFt7fV0sIGV4cGVjdGVkX2xvZ3M9ZXhwZWN0ZWRfbG9n
cykKKworICAgIGRlZiB0ZXN0X3J1bnRlc3RzX2pzYyhzZWxmKToKKyAgICAgICAgbW9ja19vcHRp
b25zID0gc2VsZi5fc3RlcF9vcHRpb25zKCkKKyAgICAgICAgbW9ja19vcHRpb25zLm5vbl9pbnRl
cmFjdGl2ZSA9IEZhbHNlCisgICAgICAgIG1vY2tfb3B0aW9ucy5idWlsZF9zdHlsZSA9ICJyZWxl
YXNlIgorICAgICAgICBtb2NrX29wdGlvbnMuZ3JvdXAgPSAianNjIgorICAgICAgICBzdGVwID0g
c3RlcHMuUnVuVGVzdHMoTW9ja1Rvb2wobG9nX2V4ZWN1dGl2ZT1UcnVlKSwgbW9ja19vcHRpb25z
KQorICAgICAgICB0b29sID0gTW9ja1Rvb2wobG9nX2V4ZWN1dGl2ZT1UcnVlKQorICAgICAgICAj
IEZJWE1FOiBXZSBzaG91bGRuJ3QgdXNlIGEgcmVhbCBwb3J0LW9iamVjdCBoZXJlLCBidXQgdGhl
cmUgaXMgdG9vIG11Y2ggdG8gbW9jayBhdCB0aGUgbW9tZW50LgorICAgICAgICB0b29sLl9kZXBy
ZWNhdGVkX3BvcnQgPSBEZXByZWNhdGVkUG9ydCgpCisgICAgICAgIHN0ZXAgPSBzdGVwcy5SdW5U
ZXN0cyh0b29sLCBtb2NrX29wdGlvbnMpCisgICAgICAgIGV4cGVjdGVkX2xvZ3MgPSAiIiJNT0NL
IHJ1bl9hbmRfdGhyb3dfaWZfZmFpbDogWydUb29scy9TY3JpcHRzL3J1bi1qYXZhc2NyaXB0Y29y
ZS10ZXN0cycsICctLW5vLWZhaWwtZmFzdCcsICctLWpzb24tb3V0cHV0PWpzY190ZXN0X3Jlc3Vs
dHMuanNvbiddLCBjd2Q9L21vY2stY2hlY2tvdXQKKyIiIgorICAgICAgICBPdXRwdXRDYXB0dXJl
KCkuYXNzZXJ0X291dHB1dHMoc2VsZiwgc3RlcC5ydW4sIFt7fV0sIGV4cGVjdGVkX2xvZ3M9ZXhw
ZWN0ZWRfbG9ncykKKworICAgIGRlZiB0ZXN0X3J1bnRlc3RzX2pzY19kZWJ1ZyhzZWxmKToKKyAg
ICAgICAgbW9ja19vcHRpb25zID0gc2VsZi5fc3RlcF9vcHRpb25zKCkKKyAgICAgICAgbW9ja19v
cHRpb25zLm5vbl9pbnRlcmFjdGl2ZSA9IEZhbHNlCisgICAgICAgIG1vY2tfb3B0aW9ucy5idWls
ZF9zdHlsZSA9ICJkZWJ1ZyIKKyAgICAgICAgbW9ja19vcHRpb25zLmdyb3VwID0gImpzYyIKKyAg
ICAgICAgdG9vbCA9IE1vY2tUb29sKGxvZ19leGVjdXRpdmU9VHJ1ZSkKKyAgICAgICAgIyBGSVhN
RTogV2Ugc2hvdWxkbid0IHVzZSBhIHJlYWwgcG9ydC1vYmplY3QgaGVyZSwgYnV0IHRoZXJlIGlz
IHRvbyBtdWNoIHRvIG1vY2sgYXQgdGhlIG1vbWVudC4KKyAgICAgICAgdG9vbC5fZGVwcmVjYXRl
ZF9wb3J0ID0gRGVwcmVjYXRlZFBvcnQoKQorICAgICAgICBzdGVwID0gc3RlcHMuUnVuVGVzdHMo
dG9vbCwgbW9ja19vcHRpb25zKQorICAgICAgICBleHBlY3RlZF9sb2dzID0gIiIiTU9DSyBydW5f
YW5kX3Rocm93X2lmX2ZhaWw6IFsnVG9vbHMvU2NyaXB0cy9ydW4tamF2YXNjcmlwdGNvcmUtdGVz
dHMnLCAnLS1uby1mYWlsLWZhc3QnLCAnLS1qc29uLW91dHB1dD1qc2NfdGVzdF9yZXN1bHRzLmpz
b24nLCAnLS1kZWJ1ZyddLCBjd2Q9L21vY2stY2hlY2tvdXQKKyIiIgorICAgICAgICBPdXRwdXRD
YXB0dXJlKCkuYXNzZXJ0X291dHB1dHMoc2VsZiwgc3RlcC5ydW4sIFt7fV0sIGV4cGVjdGVkX2xv
Z3M9ZXhwZWN0ZWRfbG9ncykKKworICAgIGRlZiB0ZXN0X2J1aWxkX2pzY19kZWJ1ZyhzZWxmKToK
KyAgICAgICAgbW9ja19vcHRpb25zID0gc2VsZi5fc3RlcF9vcHRpb25zKCkKKyAgICAgICAgbW9j
a19vcHRpb25zLm5vbl9pbnRlcmFjdGl2ZSA9IEZhbHNlCisgICAgICAgIG1vY2tfb3B0aW9ucy5i
dWlsZF9zdHlsZSA9ICJkZWJ1ZyIKKyAgICAgICAgbW9ja19vcHRpb25zLmJ1aWxkID0gVHJ1ZQor
ICAgICAgICBtb2NrX29wdGlvbnMuYXJjaGl0ZWN0dXJlID0gVHJ1ZQorICAgICAgICBtb2NrX29w
dGlvbnMuZ3JvdXAgPSAianNjIgorICAgICAgICB0b29sID0gTW9ja1Rvb2wobG9nX2V4ZWN1dGl2
ZT1UcnVlKQorICAgICAgICAjIEZJWE1FOiBXZSBzaG91bGRuJ3QgdXNlIGEgcmVhbCBwb3J0LW9i
amVjdCBoZXJlLCBidXQgdGhlcmUgaXMgdG9vIG11Y2ggdG8gbW9jayBhdCB0aGUgbW9tZW50Lgor
ICAgICAgICB0b29sLl9kZXByZWNhdGVkX3BvcnQgPSBEZXByZWNhdGVkUG9ydCgpCisgICAgICAg
IHN0ZXAgPSBzdGVwcy5CdWlsZCh0b29sLCBtb2NrX29wdGlvbnMpCisgICAgICAgIGV4cGVjdGVk
X2xvZ3MgPSAiIiJCdWlsZGluZyBXZWJLaXQKK01PQ0sgcnVuX2FuZF90aHJvd19pZl9mYWlsOiBb
J1Rvb2xzL1NjcmlwdHMvYnVpbGQtanNjJywgJy0tZGVidWcnLCAnQVJDSFM9VHJ1ZSddLCBjd2Q9
L21vY2stY2hlY2tvdXQsIGVudj17J0xDX0FMTCc6ICdDJywgJ1RFUk0nOiAnbm9uZScsICdNT0NL
X0VOVklST05fQ09QWSc6ICcxJ30KKyIiIgorICAgICAgICBPdXRwdXRDYXB0dXJlKCkuYXNzZXJ0
X291dHB1dHMoc2VsZiwgc3RlcC5ydW4sIFt7fV0sIGV4cGVjdGVkX2xvZ3M9ZXhwZWN0ZWRfbG9n
cykKKworICAgIGRlZiB0ZXN0X2J1aWxkX2pzYyhzZWxmKToKKyAgICAgICAgbW9ja19vcHRpb25z
ID0gc2VsZi5fc3RlcF9vcHRpb25zKCkKKyAgICAgICAgbW9ja19vcHRpb25zLm5vbl9pbnRlcmFj
dGl2ZSA9IEZhbHNlCisgICAgICAgIG1vY2tfb3B0aW9ucy5idWlsZF9zdHlsZSA9ICJyZWxlYXNl
IgorICAgICAgICBtb2NrX29wdGlvbnMuYnVpbGQgPSBUcnVlCisgICAgICAgIG1vY2tfb3B0aW9u
cy5hcmNoaXRlY3R1cmUgPSBUcnVlCisgICAgICAgIG1vY2tfb3B0aW9ucy5ncm91cCA9ICJqc2Mi
CisgICAgICAgIHRvb2wgPSBNb2NrVG9vbChsb2dfZXhlY3V0aXZlPVRydWUpCisgICAgICAgICMg
RklYTUU6IFdlIHNob3VsZG4ndCB1c2UgYSByZWFsIHBvcnQtb2JqZWN0IGhlcmUsIGJ1dCB0aGVy
ZSBpcyB0b28gbXVjaCB0byBtb2NrIGF0IHRoZSBtb21lbnQuCisgICAgICAgIHRvb2wuX2RlcHJl
Y2F0ZWRfcG9ydCA9IERlcHJlY2F0ZWRQb3J0KCkKKyAgICAgICAgc3RlcCA9IHN0ZXBzLkJ1aWxk
KHRvb2wsIG1vY2tfb3B0aW9ucykKKyAgICAgICAgZXhwZWN0ZWRfbG9ncyA9ICIiIkJ1aWxkaW5n
IFdlYktpdAorTU9DSyBydW5fYW5kX3Rocm93X2lmX2ZhaWw6IFsnVG9vbHMvU2NyaXB0cy9idWls
ZC1qc2MnLCAnLS1yZWxlYXNlJywgJ0FSQ0hTPVRydWUnXSwgY3dkPS9tb2NrLWNoZWNrb3V0LCBl
bnY9eydMQ19BTEwnOiAnQycsICdURVJNJzogJ25vbmUnLCAnTU9DS19FTlZJUk9OX0NPUFknOiAn
MSd9CisiIiIKKyAgICAgICAgT3V0cHV0Q2FwdHVyZSgpLmFzc2VydF9vdXRwdXRzKHNlbGYsIHN0
ZXAucnVuLCBbe31dLCBleHBlY3RlZF9sb2dzPWV4cGVjdGVkX2xvZ3MpCisKKyAgICBkZWYgdGVz
dF9wYXRjaF9yZWxldmFudChzZWxmKToKKyAgICAgICAgc2VsZi5tYXhEaWZmID0gTm9uZQorICAg
ICAgICBtb2NrX29wdGlvbnMgPSBzZWxmLl9zdGVwX29wdGlvbnMoKQorICAgICAgICB0b29sID0g
TW9ja1Rvb2wobG9nX2V4ZWN1dGl2ZT1UcnVlKQorICAgICAgICB0b29sLnNjbSgpLl9tb2NrQ2hh
bmdlZEZpbGVzID0gWyJKU1Rlc3RzL01vY2tGaWxlMSIsICJDaGFuZ2VMb2ciXQorICAgICAgICAj
IEZJWE1FOiBXZSBzaG91bGRuJ3QgdXNlIGEgcmVhbCBwb3J0LW9iamVjdCBoZXJlLCBidXQgdGhl
cmUgaXMgdG9vIG11Y2ggdG8gbW9jayBhdCB0aGUgbW9tZW50LgorICAgICAgICB0b29sLl9kZXBy
ZWNhdGVkX3BvcnQgPSBEZXByZWNhdGVkUG9ydCgpCisgICAgICAgIHN0ZXAgPSBzdGVwcy5DaGVj
a1BhdGNoUmVsZXZhbmNlKHRvb2wsIG1vY2tfb3B0aW9ucykKKyAgICAgICAgZXhwZWN0ZWRfbG9n
cyA9ICIiIkNoZWNraW5nIHJlbGV2YW5jZSBvZiBwYXRjaAorVGhpcyBwYXRjaCBoYXMgcmVsZXZh
bnQgY2hhbmdlcy4KKyIiIgorICAgICAgICBPdXRwdXRDYXB0dXJlKCkuYXNzZXJ0X291dHB1dHMo
c2VsZiwgc3RlcC5ydW4sIFt7fV0sIGV4cGVjdGVkX2xvZ3M9ZXhwZWN0ZWRfbG9ncykKKworICAg
IGRlZiB0ZXN0X3BhdGNoX3JlbGV2YW50X2pzYyhzZWxmKToKKyAgICAgICAgc2VsZi5tYXhEaWZm
ID0gTm9uZQorICAgICAgICBtb2NrX29wdGlvbnMgPSBzZWxmLl9zdGVwX29wdGlvbnMoKQorICAg
ICAgICBtb2NrX29wdGlvbnMuZ3JvdXAgPSAianNjIgorICAgICAgICB0b29sID0gTW9ja1Rvb2wo
bG9nX2V4ZWN1dGl2ZT1UcnVlKQorICAgICAgICB0b29sLnNjbSgpLl9tb2NrQ2hhbmdlZEZpbGVz
ID0gWyJKU1Rlc3RzL01vY2tGaWxlMSIsICJDaGFuZ2VMb2ciXQorICAgICAgICAjIEZJWE1FOiBX
ZSBzaG91bGRuJ3QgdXNlIGEgcmVhbCBwb3J0LW9iamVjdCBoZXJlLCBidXQgdGhlcmUgaXMgdG9v
IG11Y2ggdG8gbW9jayBhdCB0aGUgbW9tZW50LgorICAgICAgICB0b29sLl9kZXByZWNhdGVkX3Bv
cnQgPSBEZXByZWNhdGVkUG9ydCgpCisgICAgICAgIHN0ZXAgPSBzdGVwcy5DaGVja1BhdGNoUmVs
ZXZhbmNlKHRvb2wsIG1vY2tfb3B0aW9ucykKKyAgICAgICAgZXhwZWN0ZWRfbG9ncyA9ICIiIkNo
ZWNraW5nIHJlbGV2YW5jZSBvZiBwYXRjaAorVGhpcyBwYXRjaCBoYXMgcmVsZXZhbnQgY2hhbmdl
cy4KKyIiIgorICAgICAgICBPdXRwdXRDYXB0dXJlKCkuYXNzZXJ0X291dHB1dHMoc2VsZiwgc3Rl
cC5ydW4sIFt7fV0sIGV4cGVjdGVkX2xvZ3M9ZXhwZWN0ZWRfbG9ncykKKworICAgIGRlZiB0ZXN0
X3BhdGNoX25vdF9yZWxldmFudF9qc2Moc2VsZik6CisgICAgICAgIHNlbGYubWF4RGlmZiA9IE5v
bmUKKyAgICAgICAgbW9ja19vcHRpb25zID0gc2VsZi5fc3RlcF9vcHRpb25zKCkKKyAgICAgICAg
bW9ja19vcHRpb25zLmdyb3VwID0gImpzYyIKKyAgICAgICAgdG9vbCA9IE1vY2tUb29sKGxvZ19l
eGVjdXRpdmU9VHJ1ZSkKKyAgICAgICAgdG9vbC5zY20oKS5fbW9ja0NoYW5nZWRGaWxlcyA9IFsi
VG9vbHMvQ2hhbmdlTG9nIiwgIlRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9zdGVw
c191bml0dGVzdC5weSJdCisgICAgICAgICMgRklYTUU6IFdlIHNob3VsZG4ndCB1c2UgYSByZWFs
IHBvcnQtb2JqZWN0IGhlcmUsIGJ1dCB0aGVyZSBpcyB0b28gbXVjaCB0byBtb2NrIGF0IHRoZSBt
b21lbnQuCisgICAgICAgIHRvb2wuX2RlcHJlY2F0ZWRfcG9ydCA9IERlcHJlY2F0ZWRQb3J0KCkK
KyAgICAgICAgc3RlcCA9IHN0ZXBzLkNoZWNrUGF0Y2hSZWxldmFuY2UodG9vbCwgbW9ja19vcHRp
b25zKQorICAgICAgICBleHBlY3RlZF9sb2dzID0gIiIiQ2hlY2tpbmcgcmVsZXZhbmNlIG9mIHBh
dGNoCitUaGlzIHBhdGNoIGRvZXMgbm90IGhhdmUgcmVsZXZhbnQgY2hhbmdlcy4KKyIiIgorICAg
ICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFNjcmlwdEVycm9yKToKKyAgICAgICAgICAgIE91
dHB1dENhcHR1cmUoKS5hc3NlcnRfb3V0cHV0cyhzZWxmLCBzdGVwLnJ1biwgW3t9XSwgZXhwZWN0
ZWRfbG9ncz1leHBlY3RlZF9sb2dzKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>300784</attachid>
            <date>2017-02-06 20:28:06 -0800</date>
            <delta_ts>2017-02-07 12:50:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-162458-20170206202545.patch</filename>
            <type>text/plain</type>
            <size>82284</size>
            <attacher name="Srinivasan Vijayaraghavan">webkit</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjExNjYyCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYTEzMjZiMTZmODdkYzkzZjY5MjY1MmNhNjc0MmFlOTIz
OGFlN2QyYS4uOTZlOTJjMDhkYTUxYWNiNTYwOGY3NjI2M2ZhZTBkYzMyZmNlNTRkMiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEy
MCBAQAorMjAxNy0wMi0wNiAgU3Jpbml2YXNhbiBWaWpheWFyYWdoYXZhbiAgPHN2aWpheWFyYWdo
YXZhbkBhcHBsZS5jb20+CisKKyAgICAgICAgRVdTIHNob3VsZCBydW4gSmF2YVNjcmlwdENvcmUg
dGVzdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2
MjQ1OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
UXVldWVTdGF0dXNTZXJ2ZXIvY29uZmlnL3F1ZXVlcy5weTogQWRkIGpzYy1ld3MgcXVldWUKKyAg
ICAgICAgKiBRdWV1ZVN0YXR1c1NlcnZlci9oYW5kbGVycy9zdGF0dXNidWJibGUucHk6CisgICAg
ICAgIChTdGF0dXNCdWJibGUuX3Nob3VsZF9zaG93X2J1YmJsZV9mb3IpOiBBZGQgbG9naWMgdG8g
aGlkZSBqc2MtZXdzIGJ1YmJsZSBpZiB0aGUgcGF0Y2ggZG9lcyBub3QgdG91Y2gganNjLgorICAg
ICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNrb3V0L3NjbS9zY21fbW9jay5weToK
KyAgICAgICAgKE1vY2tTQ00uX19pbml0X18pOiBBZGQgX21vY2tDaGFuZ2VkRmlsZXMgdmFyaWFi
bGUuCisgICAgICAgIChNb2NrU0NNLmNoYW5nZWRfZmlsZXMpOiBDaGFuZ2UgdG8gdXNlIF9tb2Nr
Q2hhbmdlZEZpbGVzIHZhcmlhYmxlcy4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1v
bi9jb25maWcvZXdzLmpzb246IEFkZCBjb25maWcgaW5mbyBmb3IgSlNDIEVXUy4KKyAgICAgICAg
KiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvcG9ydHMucHk6IEFkZCBzdXBwb3J0IGZv
ciBKU0MgRVdTIGluIE1hYyBQb3J0LgorICAgICAgICAoRGVwcmVjYXRlZFBvcnQuYnVpbGRfanNj
X2NvbW1hbmQpOiBBZGRlZCAtIGNvbW1hbmQgdG8gYnVpbGQgSlNDIG9ubHkgKHF1aWNrZXIgdGhh
biBidWlsZGluZyBhbGwgb2YgV2ViS2l0KS4KKyAgICAgICAgKERlcHJlY2F0ZWRQb3J0LnJ1bl9q
YXZhc2NyaXB0Y29yZV90ZXN0c19jb21tYW5kKTogQWxsb3cgSlNDIEVXUyB0byBvbmx5IHJ1biBK
U0MgdGVzdHMuCisgICAgICAgIChNYWNQb3J0LnJ1bl93ZWJraXRfdGVzdHNfY29tbWFuZCk6IENo
ZWNrIGZvciBKU0MuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL3Bv
cnRzX21vY2sucHk6CisgICAgICAgIChNb2NrUG9ydC5ydW5famF2YXNjcmlwdGNvcmVfdGVzdHNf
Y29tbWFuZCk6IEFkZCBidWlsZF9zdHlsZSBhcmd1bWVudC4KKyAgICAgICAgKiBTY3JpcHRzL3dl
YmtpdHB5L2NvbW1vbi9jb25maWcvcG9ydHNfdW5pdHRlc3QucHk6CisgICAgICAgIChEZXByZWNh
dGVkUG9ydFRlc3QudGVzdF9tYWNfcG9ydCk6IEFkZCB1bml0IHRlc3RzIGZvciBidWlsZC1qc2Mg
c2hlbGwgY29tbWFuZC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvanNj
dGVzdHJlc3VsdHMucHk6IEFkZGVkLgorICAgICAgICAoSlNDVGVzdFJlc3VsdHMpOiBBZGRlZC4K
KyAgICAgICAgKEpTQ1Rlc3RSZXN1bHRzLmludGVyc2VjdGlvbik6IFJldHVybiBhIEpTQ1Rlc3RS
ZXN1bHRzIG9iamVjdCB3aXRoIGZhaWx1cmVzIGNvbW1vbiB0byBib3RoIGlucHV0IG9iamVjdHMu
CisgICAgICAgIChKU0NUZXN0UmVzdWx0cy5yZXN1bHRzX2Zyb21fc3RyaW5nKTogVXNlIGpzb24g
bGlicmFyeSB0byBwYXJzZSByZXN1bHRzLgorICAgICAgICAoSlNDVGVzdFJlc3VsdHMuX19pbml0
X18pOiBJbml0aWFsaXplIG1lbWJlcnMuCisgICAgICAgIChKU0NUZXN0UmVzdWx0cy5lcXVhbHMp
OiBUaGlzIGVuYWJsZXMgdW5pdCB0ZXN0aW5nLgorICAgICAgICAoSlNDVGVzdFJlc3VsdHMuaXNf
c3Vic2V0KTogQ2hlY2tzIGlmIG9uZSBzZXQgb2YgZmFpbHVyZXMgaXMgYSBzdWJzZXQgb2YgYW5v
dGhlci4KKyAgICAgICAgKEpTQ1Rlc3RSZXN1bHRzLnN0cmVzc190ZXN0X2ZhaWx1cmVzKTogR2V0
dGVyLgorICAgICAgICAoSlNDVGVzdFJlc3VsdHMuYWxsX2FwaV90ZXN0c19wYXNzZWQpOiBHZXR0
ZXIuCisgICAgICAgIChKU0NUZXN0UmVzdWx0cy5hbGxfcGFzc2VkKTogR2V0dGVyLgorICAgICAg
ICAoSlNDVGVzdFJlc3VsdHMuZmFpbGluZ190ZXN0X3Jlc3VsdHMpOiBHZXR0ZXIuIFNvbWUgb2Yg
dGhlc2UgZXhpc3QgZm9yIGludGVyb3BhYmlsaXR5IHJlYXNvbnMuCisgICAgICAgIChKU0NUZXN0
UmVzdWx0cy50ZXN0X3Jlc3VsdHMpOiBHZXR0ZXIuCisgICAgICAgIChKU0NUZXN0UmVzdWx0cy5m
YWlsaW5nX3Rlc3RzKTogR2V0dGVyLgorICAgICAgICAoSlNDVGVzdFJlc3VsdHMuZGlkX2V4Y2Vl
ZF90ZXN0X2ZhaWx1cmVfbGltaXQpOiBHZXR0ZXIuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRw
eS9jb21tb24vbmV0L2pzY3Rlc3RyZXN1bHRzX3VuaXR0ZXN0LnB5OiBBZGRlZC4KKyAgICAgICAg
KEpTQ1Rlc3RSZXN1bHRzVGVzdCk6IENsYXNzIHRvIHRlc3QgSlNDVGVzdFJlc3VsdHMuCisgICAg
ICAgIChKU0NUZXN0UmVzdWx0c1Rlc3QudGVzdF9yZXN1bHRzX2Zyb21fc3RyaW5nKTogVGVzdHMg
cGFyc2luZy4KKyAgICAgICAgKEpTQ1Rlc3RSZXN1bHRzVGVzdC50ZXN0X2ludGVyc2VjdGlvbl9h
cGlfdGVzdHMpOiBVbml0IHRlc3QgZm9yIGludGVyc2VjdGlvbigpIGNsYXNzIG1ldGhvZC4KKyAg
ICAgICAgKEpTQ1Rlc3RSZXN1bHRzVGVzdC50ZXN0X2ludGVyc2VjdGlvbl9zdHJlc3NfdGVzdHMp
OiBVbml0IHRlc3QgZm9yIGludGVyc2VjdGlvbigpIGNsYXNzIG1ldGhvZC4KKyAgICAgICAgKEpT
Q1Rlc3RSZXN1bHRzVGVzdC50ZXN0X2ludGVyc2VjdGlvbl9nZW5lcmFsX2Nhc2UpOiBVbml0IHRl
c3QgZm9yIGludGVyc2VjdGlvbigpIGNsYXNzIG1ldGhvZC4KKyAgICAgICAgKiBTY3JpcHRzL3dl
YmtpdHB5L3Rvb2wvYm90L2Vhcmx5d2FybmluZ3N5c3RlbXRhc2sucHk6CisgICAgICAgIChFYXJs
eVdhcm5pbmdTeXN0ZW1UYXNrLnJ1bik6IEFkZCBjaGVja19wYXRjaF9yZWxldmFuY2Ugc3RlcC4K
KyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2pzY2V3c191bml0dGVzdC5weTog
QWRkZWQuCisgICAgICAgIChNb2NrUGF0Y2hBbmFseXNpc1Rhc2spOiBNb2NrZWQtb3V0IHZlcnNp
b24gb2YgUGF0Y2hBbmFseXNpc1Rhc2sgdGhhdCBkb2Vzbid0IHJ1biBjb21tYW5kcy4KKyAgICAg
ICAgKE1vY2tQYXRjaEFuYWx5c2lzVGFzay5fX2luaXRfXyk6IFNldHMgYXR0cmlidXRlcy4KKyAg
ICAgICAgKE1vY2tQYXRjaEFuYWx5c2lzVGFzay5fdGVzdCk6IE92ZXJyaWRlIHRvIG5vdCBydW4g
Y29tbWFuZC4KKyAgICAgICAgKE1vY2tQYXRjaEFuYWx5c2lzVGFzay5fYnVpbGRfYW5kX3Rlc3Rf
d2l0aG91dF9wYXRjaCk6IE92ZXJyaWRlIHRvIG5vdCBydW4gY29tbWFuZC4KKyAgICAgICAgKE1v
Y2tQYXRjaEFuYWx5c2lzVGFzay52YWxpZGF0ZSk6IEFzc3VtZSBtb2NrZWQgcGF0Y2ggaXMgdmFs
aWQgZm9yIHB1cnBvc2VzIG9mIHRlc3RpbmcgcmV0cnkgbG9naWMuCisgICAgICAgIChNb2NrUGF0
Y2hBbmFseXNpc1Rhc2sudGVzdF9ydW5fY291bnQpOiBTcGVjaWZpYyB0byB0aGUgbW9ja2VkIHZl
cnNpb24sIHRvIHRlc3QgcmV0cnkgbG9naWMuCisgICAgICAgIChNb2NrSlNDRWFybHlXYXJuaW5n
U3lzdGVtKTogTW9ja2VkLW91dCB2ZXJzaW9uIG9mIEFic3RhcmN0RWFybHlXYXJuaW5nU3lzdGVt
IHNvIHdlIGNhbiBwcm92aWRlIHRlc3QgcmVzdWx0cy4KKyAgICAgICAgKE1vY2tKU0NFYXJseVdh
cm5pbmdTeXN0ZW0uX19pbml0X18pOiBTZXRzIGF0dHJpYnV0ZXMsIGFsc28gc2V0cyBncm91cCB0
byBqc2MuCisgICAgICAgIChNb2NrSlNDRWFybHlXYXJuaW5nU3lzdGVtLnRlc3RfcmVzdWx0cyk6
IFJldHVybnMgdGVzdCByZXN1bHRzIHByb3ZpZGVkIGJ5IHVzLCBpbnN0ZWFkIG9mIHVzaW5nIGEg
SlNPTiByZWFkZXIuCisgICAgICAgIChKU0NFYXJseVdhcm5pbmdTeXN0ZW1UZXN0KTogQ2xhc3Mg
dG8gdGVzdCByZXRyeSBsb2dpYyBpbiBiZWxvdyBzaXR1YXRpb25zLgorICAgICAgICAoSlNDRWFy
bHlXYXJuaW5nU3lzdGVtVGVzdC5fY3JlYXRlX3Rhc2spOiBIZWxwZXIgZnVuY3Rpb24gdG8gYWJz
dHJhY3Qgb3V0IGNvbW1vbiBjb2RlLgorICAgICAgICAoSlNDRWFybHlXYXJuaW5nU3lzdGVtVGVz
dC5fcmVzdWx0c19pbmRpY2F0ZV9hbGxfcGFzc2VkKTogRmFsc2UgaWYgaW5wdXQgaXMgTm9uZSBv
ciBoYXMgZmFpbHVyZXMsIGVsc2UgVHJ1ZS4KKyAgICAgICAgKEpTQ0Vhcmx5V2FybmluZ1N5c3Rl
bVRlc3QudGVzdF9zdWNjZXNzX2Nhc2UpOiBDbGVhbiBwYXRjaCBvbiBjbGVhbiB0cmVlLgorICAg
ICAgICAoSlNDRWFybHlXYXJuaW5nU3lzdGVtVGVzdC50ZXN0X3Rlc3RfZmFpbHVyZSk6IEZhaWxl
ZCBwYXRjaCBvbiBjbGVhbiB0cmVlLgorICAgICAgICAoSlNDRWFybHlXYXJuaW5nU3lzdGVtVGVz
dC50ZXN0X2ZpeCk6IFBhdGNoIHRoYXQgZml4ZXMgYWxsIHRyZWUgcmVkbmVzcy4KKyAgICAgICAg
KEpTQ0Vhcmx5V2FybmluZ1N5c3RlbVRlc3QudGVzdF9pbmVmZmVjdGl2ZV9wYXRjaCk6IFBhdGNo
IHRoYXQgaGFzIHNhbWUgZmFpbHVyZXMgYXMgdHJlZS4KKyAgICAgICAgKEpTQ0Vhcmx5V2Fybmlu
Z1N5c3RlbVRlc3QudGVzdF9wYXJ0aWFsbHlfZWZmZWN0aXZlX3BhdGNoKTogUGF0Y2ggZml4ZXMg
c29tZSBmYWlsdXJlcyBidXQgYWRkcyBubyBuZXcgZmFpbHVyZXMuCisgICAgICAgIChKU0NFYXJs
eVdhcm5pbmdTeXN0ZW1UZXN0LnRlc3RfZGlmZmVyZW50X3Rlc3RfZmFpbHVyZXNfaW5fcGF0Y2hf
YW5kX3RyZWUpOiBQYXRjaCBoYXMgc29tZSBmYWlsdXJlcyBub3QgaW4gdHJlZS4KKyAgICAgICAg
KEpTQ0Vhcmx5V2FybmluZ1N5c3RlbVRlc3QudGVzdF9maXJzdF9yZXN1bHRzX2NvdWxkX25vdF9i
ZV9yZWFkKTogUGF0Y2ggcmVzdWx0cyBub3QgcmVhZGFibGUuCisgICAgICAgIChKU0NFYXJseVdh
cm5pbmdTeXN0ZW1UZXN0LnRlc3Rfc2Vjb25kX3Jlc3VsdHNfY291bGRfbm90X2JlX3JlYWQpOiBQ
YXRjaCByZXN1bHRzIG5vdCByZWFkYWJsZSBvbiBzZWNvbmQgcnVuLgorICAgICAgICAoSlNDRWFy
bHlXYXJuaW5nU3lzdGVtVGVzdC50ZXN0X2NsZWFuX3Jlc3VsdHNfY291bGRfbm90X2JlX3JlYWQp
OiBSZXN1bHRzIGZyb20gY2xlYW4gdHJlZSBub3QgcmVhZGFibGUuCisgICAgICAgIChKU0NFYXJs
eVdhcm5pbmdTeXN0ZW1UZXN0LnRlc3RfZmxha3lfcmVzdWx0c19vbl9jbGVhbl90cmVlX3Bhc3Mp
OiBQYXRjaCBoYXMgb25lIGZsYWtlIGFuZCBubyBmYWlsdXJlcy4KKyAgICAgICAgKEpTQ0Vhcmx5
V2FybmluZ1N5c3RlbVRlc3QudGVzdF9mbGFreV9yZXN1bHRzX29uX2NsZWFuX3RyZWVfcGFzc192
Mik6IFBhdGNoIGhhcyBvbmUgZmxha2UgYW5kIG5vIGZhaWx1cmVzLgorICAgICAgICAoSlNDRWFy
bHlXYXJuaW5nU3lzdGVtVGVzdC50ZXN0X2ZsYWt5X3Jlc3VsdHNfb25fY2xlYW5fdHJlZV9mYWls
dXJlKTogUGF0Y2ggaGFzIGZsYWtlcyBhbmQgZmFpbGVkIHRlc3RzLgorICAgICAgICAoSlNDRWFy
bHlXYXJuaW5nU3lzdGVtVGVzdC50ZXN0X2ZsYWt5X3Jlc3VsdHNfb25fcmVkX3RyZWVfcGFzcyk6
IFBhdGNoIGhhcyBzYW1lIGZhaWx1cmVzIGFzIHRyZWUsIHBsdXMgYSBmbGFrZS4KKyAgICAgICAg
KiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2pzY3Rlc3RyZXN1bHRzcmVhZGVyLnB5OiBBZGRl
ZC4KKyAgICAgICAgKEpTQ1Rlc3RSZXN1bHRzUmVhZGVyKTogUmVhZHMgcmVzdWx0cyBmaWxlLgor
ICAgICAgICAoSlNDVGVzdFJlc3VsdHNSZWFkZXIuX19pbml0X18pOiBTZXRzIGF0dHJpYnV0ZXMu
CisgICAgICAgIChKU0NUZXN0UmVzdWx0c1JlYWRlci5fcmVhZF9maWxlX2NvbnRlbnRzKTogUmVh
ZHMgZmlsZS4KKyAgICAgICAgKEpTQ1Rlc3RSZXN1bHRzUmVhZGVyLl9jcmVhdGVfanNjX3Rlc3Rf
cmVzdWx0cyk6IENyZWF0ZXMgYSBKU0NUZXN0UmVzdWx0cyBvYmplY3QuCisgICAgICAgIChKU0NU
ZXN0UmVzdWx0c1JlYWRlci5yZXN1bHRzKTogSW52b2tlcyBfY3JlYXRlX2pzY190ZXN0X3Jlc3Vs
dHMgdG8gcmV0dXJuIGEgSlNDVGVzdFJlc3VsdHMgb2JqZWN0LgorICAgICAgICAqIFNjcmlwdHMv
d2Via2l0cHkvdG9vbC9ib3QvcGF0Y2hhbmFseXNpc3Rhc2sucHk6CisgICAgICAgIChQYXRjaElz
Tm90QXBwbGljYWJsZSk6IEV4Y2VwdGlvbiBmb3Igd2hlbiBwYXRjaCBkb2Vzbid0IGhhdmUgcmVs
ZXZhbnQgY2hhbmdlcy4KKyAgICAgICAgKFBhdGNoQW5hbHlzaXNUYXNrLl9jaGVja19wYXRjaF9y
ZWxldmFuY2UpOiBBZGRlZC4KKyAgICAgICAgKFBhdGNoQW5hbHlzaXNUYXNrLl9idWlsZCk6IENo
ZWNrIGZvciBKU0MuCisgICAgICAgIChQYXRjaEFuYWx5c2lzVGFzay5fYnVpbGRfd2l0aG91dF9w
YXRjaCk6IENoZWNrIGZvciBKU0MuCisgICAgICAgIChQYXRjaEFuYWx5c2lzVGFzay5fdGVzdCk6
IENoZWNrIGZvciBKU0MuCisgICAgICAgIChQYXRjaEFuYWx5c2lzVGFzay5fYnVpbGRfYW5kX3Rl
c3Rfd2l0aG91dF9wYXRjaCk6IENoZWNrIGZvciBKU0MuCisgICAgICAgIChQYXRjaEFuYWx5c2lz
VGFzay5fdGVzdF9wYXRjaCk6IEFkZCByZXRyeSBsb2dpYyBmb3IgSlNDLgorICAgICAgICAqIFNj
cmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9kb3dubG9hZC5weToKKyAgICAgICAgKENoZWNr
UGF0Y2hSZWxldmFuY2UpOiBBZGQgY2hlY2stcGF0Y2gtcmVsZXZhbmNlIGNvbW1hbmQuCisgICAg
ICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Vhcmx5d2FybmluZ3N5c3RlbS5w
eToKKyAgICAgICAgKEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtLmJlZ2luX3dvcmtfcXVldWUp
OiBVc2UgSlNDVGVzdFJlc3VsdHNSZWFkZXIgbm90IExheW91dFRlc3RSZXN1bHRzUmVhZGVyIGlu
IEpTQyBFV1MuCisgICAgICAgIChBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbS5yZXZpZXdfcGF0
Y2gpOiBIYW5kbGUgUGF0Y2hJc0FwcGxpY2FibGUKKyAgICAgICAgKEFic3RyYWN0RWFybHlXYXJu
aW5nU3lzdGVtLnRlc3RfcmVzdWx0cyk6IF9sYXlvdXRfdGVzdF9yZXN1bHRzX3JlYWRlciAtPiBf
dGVzdF9yZXN1bHRzX3JlYWRlci4KKyAgICAgICAgKEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVt
LmFyY2hpdmVfbGFzdF90ZXN0X3Jlc3VsdHMpOiBfbGF5b3V0X3Rlc3RfcmVzdWx0c19yZWFkZXIg
LT4gX3Rlc3RfcmVzdWx0c19yZWFkZXIuCisgICAgICAgIChBYnN0cmFjdEVhcmx5V2FybmluZ1N5
c3RlbS5ncm91cCk6IFRoaXMgYXR0cmlidXRlIGRldGVybWluZXMgdGhlIHR5cGUgb2YgRVdTIChl
Zy4gSlNDKS4KKyAgICAgICAgKEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtLmxvYWRfZXdzX2Ns
YXNzZXMpOiBBZGQgX2dyb3VwLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21t
YW5kcy9lYXJseXdhcm5pbmdzeXN0ZW1fdW5pdHRlc3QucHk6CisgICAgICAgIChBYnN0cmFjdEVh
cmx5V2FybmluZ1N5c3RlbVRlc3QudGVzdF9mYWlsaW5nX3Rlc3RzX21lc3NhZ2UuVGVzdEVXUyk6
IEFkZCBfZ3JvdXAuCisgICAgICAgIChBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbVRlc3QudGVz
dF9mYWlsaW5nX2pzY190ZXN0c19tZXNzYWdlLlRlc3RFV1MpOiBBZGRlZCB0ZXN0IGZvciBqc2Mg
ZmFpbHVyZXMgbWVzc2FnZS4KKyAgICAgICAgKEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtVGVz
dCk6IEFkZCBfZ3JvdXAgdmFyaWFibGUuCisgICAgICAgIChFYXJseVdhcm5pbmdTeXN0ZW1UZXN0
Ll9kZWZhdWx0X2V4cGVjdGVkX2xvZ3MpOiBBZGQgY2hlY2stcGF0Y2gtcmVsZXZhbmNlIHN0ZXAg
YW5kIC0tZ3JvdXAgb3B0aW9uLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVw
cy9fX2luaXRfXy5weTogQWRkIENoZWNrUGF0Y2hSZWxldmFuY2UgaW1wb3J0LgorICAgICAgICAq
IFNjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9idWlsZC5weToKKyAgICAgICAgKEJ1aWxkLm9w
dGlvbnMpOiBDaGVjayBmb3IgSlNDLgorICAgICAgICAoQnVpbGQuYnVpbGQpOiBDaGVjayBmb3Ig
SlNDLgorICAgICAgICAoQnVpbGQucnVuKTogQ2hlY2sgZm9yIEpTQy4KKyAgICAgICAgKiBTY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvY2hlY2twYXRjaHJlbGV2YW5jZS5weTogQWRkZWQuCisg
ICAgICAgIChDaGVja1BhdGNoUmVsZXZhbmNlKTogQWRkZWQuCisgICAgICAgIChDaGVja1BhdGNo
UmVsZXZhbmNlLl9kb2VzX2NvbnRhaW5fY2hhbmdlX2luX3BhdGhzKTogQWJzdHJhY3QgZnVuY3Rp
b24gdG8gcGVyZm9ybSByZWdleCBtYXRjaGluZy4KKyAgICAgICAgKENoZWNrUGF0Y2hSZWxldmFu
Y2UucnVuKTogQ2hlY2sgaWYgY2hhbmdlZCBmaWxlcyBpbiBwYXRjaCBiZWxvbmcgaW4gY2VydGFp
biBmb2xkZXJzLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9vcHRpb25z
LnB5OgorICAgICAgICAoT3B0aW9ucyk6IEFkZCAtLWdyb3VwIGNvbW1hbmQgbGluZSBvcHRpb24u
CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3J1bnRlc3RzLnB5OgorICAg
ICAgICAoUnVuVGVzdHMub3B0aW9ucyk6IEFkZCBncm91cC4KKyAgICAgICAgKFJ1blRlc3RzLnJ1
bik6IENoZWNrIGZvciBKU0MuCisgICAgICAgIChSdW5UZXN0cy5fcnVuX3dlYmtpdF90ZXN0cyk6
IENoZWNrIGZvciBKU0MuCisgICAgICAgIChSdW5UZXN0cyk6IEFkZCBfZ3JvdXAgYXR0cmlidXRl
LgorICAgICAgICAoUnVuVGVzdHMuX3J1bl9qYXZhc2NyaXB0Y29yZV90ZXN0cyk6IE5ldy4KKyAg
ICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvc3RlcHNfdW5pdHRlc3QucHk6IFVu
aXQgdGVzdHMuCisKIDIwMTctMDItMDMgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBs
ZS5jb20+CiAKICAgICAgICAgQ29ycmVjdGx5IHNldCB0aGUgImluV2luZG93IiBmbGFnIGZvciBU
aWxlQ29udHJvbGxlcnMgdGhhdCBhcmVuJ3QgdGhlIHBhZ2UgdGlsZXMsIGFuZCBjbGFyaWZ5ICJ1
c2luZ1RpbGVkQmFja2luZyIgbG9naWMKZGlmZiAtLWdpdCBhL1Rvb2xzL1F1ZXVlU3RhdHVzU2Vy
dmVyL2NvbmZpZy9xdWV1ZXMucHkgYi9Ub29scy9RdWV1ZVN0YXR1c1NlcnZlci9jb25maWcvcXVl
dWVzLnB5CmluZGV4IDM0MWRkMDgzYWRmYmI4OTA3MTk4YmVlZDVlYWIyMTkzMDI2OTgzZjUuLjBh
MjJmZjMyYzhmMDNjODcxNDk2OTg3NzRmNjQzOGVkNWZhYmFkYzcgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1F1ZXVlU3RhdHVzU2VydmVyL2NvbmZpZy9xdWV1ZXMucHkKKysrIGIvVG9vbHMvUXVldWVTdGF0
dXNTZXJ2ZXIvY29uZmlnL3F1ZXVlcy5weQpAQCAtMSw0ICsxLDQgQEAKLSMgQ29weXJpZ2h0IChD
KSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAy
MDE0LCAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMgQ29weXJpZ2h0IChD
KSAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dApA
QCAtMzYsNiArMzYsNyBAQCBhbGxfcXVldWVfbmFtZXMgPSBbCiAgICAgImd0ay13azItZXdzIiwK
ICAgICAiaW9zLWV3cyIsCiAgICAgImlvcy1zaW0tZXdzIiwKKyAgICAianNjLWV3cyIsCiAgICAg
Im1hYy1ld3MiLAogICAgICJtYWMtd2syLWV3cyIsCiAgICAgIm1hYy1kZWJ1Zy1ld3MiLApkaWZm
IC0tZ2l0IGEvVG9vbHMvUXVldWVTdGF0dXNTZXJ2ZXIvaGFuZGxlcnMvc3RhdHVzYnViYmxlLnB5
IGIvVG9vbHMvUXVldWVTdGF0dXNTZXJ2ZXIvaGFuZGxlcnMvc3RhdHVzYnViYmxlLnB5CmluZGV4
IGM4MDUxNGZmODc4OWVmNjk0Yjk5NTcxNGUyZWI1ZDk2ZjhiY2E3ODIuLjI3M2Y4ZGZmMDZjNjli
NDgzMDViOTM4MzMwZWM1MDJlMDAzYjNiNzUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1F1ZXVlU3RhdHVz
U2VydmVyL2hhbmRsZXJzL3N0YXR1c2J1YmJsZS5weQorKysgYi9Ub29scy9RdWV1ZVN0YXR1c1Nl
cnZlci9oYW5kbGVycy9zdGF0dXNidWJibGUucHkKQEAgLTEsNCArMSw1IEBACiAjIENvcHlyaWdo
dCAoQykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQg
KEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zIGFyZQpAQCAtMTgyLDExICsxODMsMTkgQEAgY2xhc3MgU3RhdHVzQnViYmxl
KHdlYmFwcC5SZXF1ZXN0SGFuZGxlcik6CiAgICAgICAgIHJldHVybiBidWJibGUKIAogICAgIGRl
ZiBfc2hvdWxkX3Nob3dfYnViYmxlX2ZvcihzZWxmLCBhdHRhY2htZW50LCBxdWV1ZSk6Ci0gICAg
ICAgICAjIEFueSBwZW5kaW5nIHF1ZXVlIGlzIHNob3duLgorICAgICAgICAjIEFueSBwZW5kaW5n
IHF1ZXVlIGlzIHNob3duLgogICAgICAgICBpZiBhdHRhY2htZW50LnBvc2l0aW9uX2luX3F1ZXVl
KHF1ZXVlKToKICAgICAgICAgICAgIHJldHVybiBUcnVlCi0gICAgICAgICMgRVdTIHF1ZXVlcyBh
cmUgYWxzbyBzaG93biB3aGVuIGNvbXBsZXRlLgotICAgICAgICByZXR1cm4gYm9vbChxdWV1ZS5p
c19ld3MoKSBhbmQgYXR0YWNobWVudC5zdGF0dXNfZm9yX3F1ZXVlKHF1ZXVlKSkKKworICAgICAg
ICAjIEVXUyBxdWV1ZXMgYXJlIGFsc28gc2hvd24gd2hlbiBjb21wbGV0ZQorICAgICAgICAjIEJ1
dCBKU0MgRVdTIGJ1YmJsZSBpcyBub3Qgc2hvd24gaWYgdGhlIHBhdGNoIGlzIG5vdCByZWxldmFu
dCB0byBKU0MuCisgICAgICAgIGlmIG5vdCBxdWV1ZS5pc19ld3MoKToKKyAgICAgICAgICAgIHJl
dHVybiBGYWxzZQorCisgICAgICAgIHN0YXR1cyA9IGF0dGFjaG1lbnQuc3RhdHVzX2Zvcl9xdWV1
ZShxdWV1ZSkKKyAgICAgICAgaWYgcXVldWUubmFtZSgpID09ICJqc2MtZXdzIjoKKyAgICAgICAg
ICAgIHJldHVybiBub3Qgc3RhdHVzLm1lc3NhZ2Uuc3RhcnRzd2l0aCgiUGF0Y2ggbm90IGFwcGxp
Y2FibGUiKQorICAgICAgICByZXR1cm4gYm9vbChzdGF0dXMpCiAKICAgICBkZWYgX2J1aWxkX2J1
YmJsZXNfZm9yX2F0dGFjaG1lbnQoc2VsZiwgYXR0YWNobWVudCk6CiAgICAgICAgIHNob3dfc3Vi
bWl0X3RvX2V3cyA9IFRydWUKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29t
bW9uL2NoZWNrb3V0L3NjbS9zY21fbW9jay5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29t
bW9uL2NoZWNrb3V0L3NjbS9zY21fbW9jay5weQppbmRleCBjNWQxMGZjYjE4OWIwYThiNTE5ZmE1
NTYyNTAyMmE3MGM0ODZkNDRiLi45Nzc0ZWM4YWU4NzNhMWIwYjgzNzYwNzE4MDY2NzkyMTU4MDll
ZWVjIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja291dC9z
Y20vc2NtX21vY2sucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hlY2tv
dXQvc2NtL3NjbV9tb2NrLnB5CkBAIC0xLDQgKzEsNSBAQAogIyBDb3B5cmlnaHQgKEMpIDIwMTEg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDE3IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cyBhcmUKQEAgLTM3LDYgKzM4LDcgQEAgY2xhc3MgTW9ja1NDTShvYmplY3QpOgogICAgICAgICBz
ZWxmLmFkZGVkX3BhdGhzID0gc2V0KCkKICAgICAgICAgc2VsZi5fZmlsZXN5c3RlbSA9IGZpbGVz
eXN0ZW0gb3IgTW9ja0ZpbGVTeXN0ZW0oKQogICAgICAgICBzZWxmLl9leGVjdXRpdmUgPSBleGVj
dXRpdmUgb3IgTW9ja0V4ZWN1dGl2ZSgpCisgICAgICAgIHNlbGYuX21vY2tDaGFuZ2VkRmlsZXMg
PSBbIk1vY2tGaWxlMSJdCiAKICAgICBkZWYgYWRkKHNlbGYsIGRlc3RpbmF0aW9uX3BhdGgpOgog
ICAgICAgICBzZWxmLmFkZF9saXN0KFtkZXN0aW5hdGlvbl9wYXRoXSkKQEAgLTcxLDcgKzczLDcg
QEAgY2xhc3MgTW9ja1NDTShvYmplY3QpOgogICAgICAgICByZXR1cm4gc2VsZi5fZmlsZXN5c3Rl
bS5qb2luKHNlbGYuY2hlY2tvdXRfcm9vdCwgKmNvbXBzKQogCiAgICAgZGVmIGNoYW5nZWRfZmls
ZXMoc2VsZiwgZ2l0X2NvbW1pdD1Ob25lKToKLSAgICAgICAgcmV0dXJuIFsiTW9ja0ZpbGUxIl0K
KyAgICAgICAgcmV0dXJuIHNlbGYuX21vY2tDaGFuZ2VkRmlsZXMKIAogICAgIGRlZiBjaGFuZ2Vk
X2ZpbGVzX2Zvcl9yZXZpc2lvbihzZWxmLCByZXZpc2lvbik6CiAgICAgICAgIHJldHVybiBbIk1v
Y2tGaWxlMSJdCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25m
aWcvZXdzLmpzb24gYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvZXdzLmpz
b24KaW5kZXggMzVkNDk4NWFiMGY5M2QxMjdiMzcyMWU0NjAxY2Q2ZDg5ZGZjY2YzYy4uZTUzNDBm
ZTVjM2MyMWFlODFhZDFlZjdlMDNmN2ZiODFmMzgzOWNmZiAxMDA2NDQKLS0tIGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL2V3cy5qc29uCisrKyBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvY29tbW9uL2NvbmZpZy9ld3MuanNvbgpAQCAtNTAsNSArNTAsMTEgQEAKICAgICAg
ICAgInBvcnQiOiAibWFjIiwKICAgICAgICAgIm5hbWUiOiAibWFjLTMyYml0LWV3cyIsCiAgICAg
ICAgICJhcmNoaXRlY3R1cmUiOiAiaTM4NiIKKyAgICB9LAorICAgICJKU0MgRVdTIjogeworICAg
ICAgICAicG9ydCI6ICJtYWMiLAorICAgICAgICAibmFtZSI6ICJqc2MtZXdzIiwKKyAgICAgICAg
Imdyb3VwIjogImpzYyIsCisgICAgICAgICJydW5UZXN0cyI6IHRydWUKICAgICB9CiB9CmRpZmYg
LS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvcG9ydHMucHkgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvcG9ydHMucHkKaW5kZXggYTBkNTBk
Y2I2ZWEwYjVmZGUwYjNjMTdlZjE1OWNlYWZlZTFhMmU5OC4uZDM3ZWQ5ZDFjNWUyNTUwZTQ4ODM0
ZTdlZjAwYmFlNGMyNGNiZDc4NCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9j
b21tb24vY29uZmlnL3BvcnRzLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9u
L2NvbmZpZy9wb3J0cy5weQpAQCAtMSw2ICsxLDYgQEAKICMgQ29weXJpZ2h0IChDKSAyMDA5LCBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIyBDb3B5cmlnaHQgKEMpIDIwMTMgTm9r
aWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgotIyBDb3B5cmlnaHQg
KEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMp
IDIwMTUsIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zIGFyZQpAQCAtMTAzLDggKzEwMywyMSBAQCBjbGFzcyBEZXByZWNhdGVk
UG9ydChvYmplY3QpOgogICAgICAgICAgICAgY29tbWFuZC5hcHBlbmQoIi0tcmVsZWFzZSIpCiAg
ICAgICAgIHJldHVybiBjb21tYW5kCiAKLSAgICBkZWYgcnVuX2phdmFzY3JpcHRjb3JlX3Rlc3Rz
X2NvbW1hbmQoc2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmLnNjcmlwdF9zaGVsbF9jb21tYW5k
KCJydW4tamF2YXNjcmlwdGNvcmUtdGVzdHMiKQorICAgIGRlZiBidWlsZF9qc2NfY29tbWFuZChz
ZWxmLCBidWlsZF9zdHlsZT1Ob25lKToKKyAgICAgICAgY29tbWFuZCA9IHNlbGYuc2NyaXB0X3No
ZWxsX2NvbW1hbmQoImJ1aWxkLWpzYyIpCisgICAgICAgIGlmIGJ1aWxkX3N0eWxlID09ICJkZWJ1
ZyI6CisgICAgICAgICAgICBjb21tYW5kLmFwcGVuZCgiLS1kZWJ1ZyIpCisgICAgICAgIGlmIGJ1
aWxkX3N0eWxlID09ICJyZWxlYXNlIjoKKyAgICAgICAgICAgIGNvbW1hbmQuYXBwZW5kKCItLXJl
bGVhc2UiKQorICAgICAgICByZXR1cm4gY29tbWFuZAorCisgICAgZGVmIHJ1bl9qYXZhc2NyaXB0
Y29yZV90ZXN0c19jb21tYW5kKHNlbGYsIGJ1aWxkX3N0eWxlPU5vbmUpOgorICAgICAgICBjb21t
YW5kID0gc2VsZi5zY3JpcHRfc2hlbGxfY29tbWFuZCgicnVuLWphdmFzY3JpcHRjb3JlLXRlc3Rz
IikKKyAgICAgICAgY29tbWFuZC5hcHBlbmQoIi0tbm8tZmFpbC1mYXN0IikKKyAgICAgICAgY29t
bWFuZC5hcHBlbmQoIi0tanNvbi1vdXRwdXQ9anNjX3Rlc3RfcmVzdWx0cy5qc29uIikKKyAgICAg
ICAgaWYgKGJ1aWxkX3N0eWxlID09ICJkZWJ1ZyIpOgorICAgICAgICAgICAgY29tbWFuZC5hcHBl
bmQoIi0tZGVidWciKQorICAgICAgICByZXR1cm4gY29tbWFuZAogCiAgICAgZGVmIHJ1bl93ZWJr
aXRfdGVzdHNfY29tbWFuZChzZWxmLCBidWlsZF9zdHlsZT1Ob25lKToKICAgICAgICAgY29tbWFu
ZCA9IHNlbGYuc2NyaXB0X3NoZWxsX2NvbW1hbmQoInJ1bi13ZWJraXQtdGVzdHMiKQpAQCAtMTUw
LDcgKzE2MywxMCBAQCBjbGFzcyBJT1NTaW11bGF0b3JXSzJQb3J0KERlcHJlY2F0ZWRQb3J0KToK
IGNsYXNzIE1hY1BvcnQoRGVwcmVjYXRlZFBvcnQpOgogICAgIHBvcnRfZmxhZ19uYW1lID0gIm1h
YyIKIAotICAgIGRlZiBydW5fd2Via2l0X3Rlc3RzX2NvbW1hbmQoc2VsZiwgYnVpbGRfc3R5bGU9
Tm9uZSk6CisgICAgZGVmIHJ1bl93ZWJraXRfdGVzdHNfY29tbWFuZChzZWxmLCBidWlsZF9zdHls
ZT1Ob25lLCB0ZXN0X3N1aXRlPU5vbmUpOgorICAgICAgICBpZiAodGVzdF9zdWl0ZSA9PSAianNj
Iik6CisgICAgICAgICAgICByZXR1cm4gc3VwZXIoTWFjUG9ydCwgc2VsZikucnVuX2phdmFzY3Jp
cHRjb3JlX3Rlc3RzX2NvbW1hbmQoYnVpbGRfc3R5bGUpCisKICAgICAgICAgY29tbWFuZCA9IHN1
cGVyKE1hY1BvcnQsIHNlbGYpLnJ1bl93ZWJraXRfdGVzdHNfY29tbWFuZChidWlsZF9zdHlsZSkK
ICAgICAgICAgY29tbWFuZC5hcHBlbmQoIi0tZHVtcC1yZW5kZXItdHJlZSIpCiAgICAgICAgIHJl
dHVybiBjb21tYW5kCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9j
b25maWcvcG9ydHNfbW9jay5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZp
Zy9wb3J0c19tb2NrLnB5CmluZGV4IDYxNzQzZGViYjRlYmVlMzc1NmJhN2MyMGYwMTQ4MjM1NDBk
MmRjYTYuLmNhMWIxOGEzMTA2ODQyM2JkY2UwN2NkZWI3ZDdkN2QxOTlmNDAwYWIgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9wb3J0c19tb2NrLnB5Cisr
KyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9wb3J0c19tb2NrLnB5CkBA
IC0xLDQgKzEsNSBAQAogIyBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTQ5LDcgKzUwLDcg
QEAgY2xhc3MgTW9ja1BvcnQob2JqZWN0KToKICAgICBkZWYgcnVuX3BlcmxfdW5pdHRlc3RzX2Nv
bW1hbmQoc2VsZik6CiAgICAgICAgIHJldHVybiBbJ21vY2stdGVzdC13ZWJraXRwZXJsJ10KIAot
ICAgIGRlZiBydW5famF2YXNjcmlwdGNvcmVfdGVzdHNfY29tbWFuZChzZWxmKToKKyAgICBkZWYg
cnVuX2phdmFzY3JpcHRjb3JlX3Rlc3RzX2NvbW1hbmQoc2VsZiwgYnVpbGRfc3R5bGU9Tm9uZSk6
CiAgICAgICAgIHJldHVybiBbJ21vY2stcnVuLWphdmFjcmlwdGNvcmUtdGVzdHMnXQogCiAgICAg
ZGVmIHJ1bl93ZWJraXRfdGVzdHNfY29tbWFuZChzZWxmLCBidWlsZF9zdHlsZT1Ob25lKToKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9wb3J0c191bml0
dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9wb3J0c191bml0
dGVzdC5weQppbmRleCAwOGQ1NDUyMzZkYTM3MDNlOTI4ZjFjZWVkMWRkOTEwMmQ5Yjg2MjJlLi4x
NmNkN2Y5MjgyNTFiYmM5OTZjYjY0NmU0MzU5ZDczZmRiNTM1YjI2IDEwMDY0NAotLS0gYS9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvcG9ydHNfdW5pdHRlc3QucHkKKysrIGIv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL3BvcnRzX3VuaXR0ZXN0LnB5CkBA
IC0xLDQgKzEsNSBAQAogIyBDb3B5cmlnaHQgKGMpIDIwMDksIEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC0zOSw2ICs0MCwx
MCBAQCBjbGFzcyBEZXByZWNhdGVkUG9ydFRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKE1hY1BvcnQoKS5idWlsZF93ZWJraXRfY29tbWFuZChidWlsZF9z
dHlsZT0iZGVidWciKSwgRGVwcmVjYXRlZFBvcnQoKS5zY3JpcHRfc2hlbGxfY29tbWFuZCgiYnVp
bGQtd2Via2l0IikgKyBbIi0tZGVidWciXSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChNYWNQ
b3J0KCkuYnVpbGRfd2Via2l0X2NvbW1hbmQoYnVpbGRfc3R5bGU9InJlbGVhc2UiKSwgRGVwcmVj
YXRlZFBvcnQoKS5zY3JpcHRfc2hlbGxfY29tbWFuZCgiYnVpbGQtd2Via2l0IikgKyBbIi0tcmVs
ZWFzZSJdKQogCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTWFjUG9ydCgpLmJ1aWxkX2pzY19j
b21tYW5kKCksIERlcHJlY2F0ZWRQb3J0KCkuc2NyaXB0X3NoZWxsX2NvbW1hbmQoImJ1aWxkLWpz
YyIpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE1hY1BvcnQoKS5idWlsZF9qc2NfY29tbWFu
ZChidWlsZF9zdHlsZT0icmVsZWFzZSIpLCBEZXByZWNhdGVkUG9ydCgpLnNjcmlwdF9zaGVsbF9j
b21tYW5kKCJidWlsZC1qc2MiKSArIFsiLS1yZWxlYXNlIl0pCisgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoTWFjUG9ydCgpLmJ1aWxkX2pzY19jb21tYW5kKGJ1aWxkX3N0eWxlPSJkZWJ1ZyIpLCBE
ZXByZWNhdGVkUG9ydCgpLnNjcmlwdF9zaGVsbF9jb21tYW5kKCJidWlsZC1qc2MiKSArIFsiLS1k
ZWJ1ZyJdKQorCiAgICAgZGVmIHRlc3RfZ3RrX3drMl9wb3J0KHNlbGYpOgogICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKEd0a1dLMlBvcnQoKS5mbGFnKCksICItLXBvcnQ9Z3RrLXdrMiIpCiAgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoR3RrV0syUG9ydCgpLnJ1bl93ZWJraXRfdGVzdHNfY29tbWFu
ZCgpLCBEZXByZWNhdGVkUG9ydCgpLnNjcmlwdF9zaGVsbF9jb21tYW5kKCJydW4td2Via2l0LXRl
c3RzIikgKyBbIi0tZ3RrIl0pCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2Nv
bW1vbi9uZXQvanNjdGVzdHJlc3VsdHMucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1v
bi9uZXQvanNjdGVzdHJlc3VsdHMucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmU2ZWIwZTMwZjY3MzZiYTk5NDJj
ZjBmOGMxNjhkMzIxMzJhYTdiNQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvY29tbW9uL25ldC9qc2N0ZXN0cmVzdWx0cy5weQpAQCAtMCwwICsxLDg2IEBACisjIENv
cHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMK
KyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJyBBTkQKKyMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisjIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SCisjIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisjIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisjIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK2ltcG9ydCBqc29uCitpbXBvcnQg
bG9nZ2luZworCitfbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18pCisKKworY2xhc3Mg
SlNDVGVzdFJlc3VsdHMob2JqZWN0KToKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgaW50ZXJz
ZWN0aW9uKGNscywgZmlyc3QsIHNlY29uZCk6CisgICAgICAgIGludGVyc2VjdGlvbl9hcGlfdGVz
dHNfcGFzc2VkID0gZmlyc3QuX2FsbF9hcGlfdGVzdHNfcGFzc2VkIG9yIHNlY29uZC5fYWxsX2Fw
aV90ZXN0c19wYXNzZWQKKyAgICAgICAgaW50ZXJzZWN0aW9uX3N0cmVzc190ZXN0X2ZhaWx1cmVz
ID0gbGlzdChzZXQoZmlyc3QuX3N0cmVzc190ZXN0X2ZhaWx1cmVzKSAmIHNldChzZWNvbmQuX3N0
cmVzc190ZXN0X2ZhaWx1cmVzKSkKKyAgICAgICAgcmV0dXJuIGNscyhpbnRlcnNlY3Rpb25fYXBp
X3Rlc3RzX3Bhc3NlZCwgaW50ZXJzZWN0aW9uX3N0cmVzc190ZXN0X2ZhaWx1cmVzKQorCisgICAg
QGNsYXNzbWV0aG9kCisgICAgZGVmIHJlc3VsdHNfZnJvbV9zdHJpbmcoY2xzLCBzdHJpbmcpOgor
ICAgICAgICBpZiBub3Qgc3RyaW5nOgorICAgICAgICAgICAgcmV0dXJuIE5vbmUKKworICAgICAg
ICB0cnk6CisgICAgICAgICAgICBwYXJzZWRfcmVzdWx0cyA9IGpzb24ubG9hZHMoc3RyaW5nKQor
ICAgICAgICBleGNlcHQgVmFsdWVFcnJvcjoKKyAgICAgICAgICAgIHJldHVybiBOb25lCisKKyAg
ICAgICAgaWYgJ2FsbEFwaVRlc3RzUGFzc2VkJyBub3QgaW4gcGFyc2VkX3Jlc3VsdHMgb3IgJ3N0
cmVzc1Rlc3RGYWlsdXJlcycgbm90IGluIHBhcnNlZF9yZXN1bHRzOgorICAgICAgICAgICAgcmV0
dXJuIE5vbmUKKworICAgICAgICByZXR1cm4gY2xzKHBhcnNlZF9yZXN1bHRzWydhbGxBcGlUZXN0
c1Bhc3NlZCddLCBwYXJzZWRfcmVzdWx0c1snc3RyZXNzVGVzdEZhaWx1cmVzJ10pCisKKyAgICBk
ZWYgX19pbml0X18oc2VsZiwgYWxsX2FwaV90ZXN0c19wYXNzZWQsIHN0cmVzc190ZXN0X2ZhaWx1
cmVzKToKKyAgICAgICAgc2VsZi5fYWxsX2FwaV90ZXN0c19wYXNzZWQgPSBhbGxfYXBpX3Rlc3Rz
X3Bhc3NlZAorICAgICAgICBzZWxmLl9zdHJlc3NfdGVzdF9mYWlsdXJlcyA9IHN0cmVzc190ZXN0
X2ZhaWx1cmVzCisKKyAgICAgICAgc2VsZi5fdGVzdF9yZXN1bHRzID0gc3RyZXNzX3Rlc3RfZmFp
bHVyZXNbOl0KKyAgICAgICAgaWYgbm90IHNlbGYuX2FsbF9hcGlfdGVzdHNfcGFzc2VkOgorICAg
ICAgICAgICAgc2VsZi5fdGVzdF9yZXN1bHRzLmFwcGVuZCgiYXBpVGVzdHMiKQorCisgICAgZGVm
IGVxdWFscyhzZWxmLCBvdGhlcik6CisgICAgICAgIHJldHVybiBzZWxmLl9hbGxfYXBpX3Rlc3Rz
X3Bhc3NlZCA9PSBvdGhlci5fYWxsX2FwaV90ZXN0c19wYXNzZWQgYW5kIFwKKyAgICAgICAgICAg
ICAgIHNldChzZWxmLl9zdHJlc3NfdGVzdF9mYWlsdXJlcykgPT0gc2V0KG90aGVyLl9zdHJlc3Nf
dGVzdF9mYWlsdXJlcykKKworICAgIGRlZiBpc19zdWJzZXQoc2VsZiwgb3RoZXIpOgorICAgICAg
ICByZXR1cm4gc2V0KHNlbGYudGVzdF9yZXN1bHRzKCkpIDw9IHNldChvdGhlci50ZXN0X3Jlc3Vs
dHMoKSkKKworICAgIGRlZiBzdHJlc3NfdGVzdF9mYWlsdXJlcyhzZWxmKToKKyAgICAgICAgcmV0
dXJuIHNlbGYuX3N0cmVzc190ZXN0X2ZhaWx1cmVzCisKKyAgICBkZWYgYWxsX2FwaV90ZXN0c19w
YXNzZWQoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl9hbGxfYXBpX3Rlc3RzX3Bhc3NlZAor
CisgICAgZGVmIGFsbF9wYXNzZWQoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl9hbGxfYXBp
X3Rlc3RzX3Bhc3NlZCBhbmQgbm90IHNlbGYuX3N0cmVzc190ZXN0X2ZhaWx1cmVzCisKKyAgICBk
ZWYgZmFpbGluZ190ZXN0X3Jlc3VsdHMoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLnN0cmVz
c190ZXN0X2ZhaWx1cmVzKCkKKworICAgIGRlZiB0ZXN0X3Jlc3VsdHMoc2VsZik6CisgICAgICAg
IHJldHVybiBzZWxmLl90ZXN0X3Jlc3VsdHMKKworICAgIGRlZiBmYWlsaW5nX3Rlc3RzKHNlbGYp
OgorICAgICAgICByZXR1cm4gc2VsZi5fdGVzdF9yZXN1bHRzCisKKyAgICAjIE5vIGRlZmluZWQg
ZmFpbHVyZSBsaW1pdCBmb3IgSlNDLgorICAgIGRlZiBkaWRfZXhjZWVkX3Rlc3RfZmFpbHVyZV9s
aW1pdChzZWxmKToKKyAgICAgICAgcmV0dXJuIEZhbHNlCmRpZmYgLS1naXQgYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvanNjdGVzdHJlc3VsdHNfdW5pdHRlc3QucHkgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvanNjdGVzdHJlc3VsdHNfdW5pdHRlc3QucHkK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMThlZjQ0NGE1NjhlNDYwODgwNDU5MTc2YzVmZmFjMDZmMTVmMTdiNgotLS0g
L2Rldi9udWxsCisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9qc2N0ZXN0
cmVzdWx0c191bml0dGVzdC5weQpAQCAtMCwwICsxLDc1IEBACisjIENvcHlyaWdodCAoQykgMjAx
NyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JyBBTkQKKyMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUgorIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisjIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisjIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSCisjIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisjIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisKK2ltcG9ydCB1bml0dGVzdAorCitmcm9tIHdlYmtpdHB5LmNv
bW1vbi5uZXQuanNjdGVzdHJlc3VsdHMgaW1wb3J0IEpTQ1Rlc3RSZXN1bHRzCisKKworY2xhc3Mg
SlNDVGVzdFJlc3VsdHNUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICBkZWYgdGVzdF9yZXN1
bHRzX2Zyb21fc3RyaW5nKHNlbGYpOgorICAgICAgICBub25lX2l0ZW0gPSBOb25lCisgICAgICAg
IGVtcHR5X3N0cmluZyA9ICIiCisgICAgICAgIGludmFsaWRfanNvbiA9ICd7ImFsbEFwaVRlc3Rz
UGFzc2VkIjonCisgICAgICAgIGluY29tcGxldGVfanNvbl92MSA9ICd7ImFsbEFwaVRlc3RzUGFz
c2VkIjogdHJ1ZX0nCisgICAgICAgIGluY29tcGxldGVfanNvbl92MiA9ICd7InN0cmVzc1Rlc3RG
YWlsdXJlcyI6W119JworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIEpTQ1Rlc3RSZXN1
bHRzLnJlc3VsdHNfZnJvbV9zdHJpbmcobm9uZV9pdGVtKSkKKyAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChOb25lLCBKU0NUZXN0UmVzdWx0cy5yZXN1bHRzX2Zyb21fc3RyaW5nKGVtcHR5X3N0cmlu
ZykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgSlNDVGVzdFJlc3VsdHMucmVzdWx0
c19mcm9tX3N0cmluZyhpbnZhbGlkX2pzb24pKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5v
bmUsIEpTQ1Rlc3RSZXN1bHRzLnJlc3VsdHNfZnJvbV9zdHJpbmcoaW5jb21wbGV0ZV9qc29uX3Yx
KSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCBKU0NUZXN0UmVzdWx0cy5yZXN1bHRz
X2Zyb21fc3RyaW5nKGluY29tcGxldGVfanNvbl92MikpCisKKyAgICAgICAgbm9fZmFpbHVyZXNf
c3RyaW5nID0gJ3siYWxsQXBpVGVzdHNQYXNzZWQiOiB0cnVlLCAic3RyZXNzVGVzdEZhaWx1cmVz
IjpbXX0nCisgICAgICAgIG5vX2ZhaWx1cmVzX3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVl
LCBbXSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG5vX2ZhaWx1cmVzX3Jlc3VsdHMuZXF1YWxz
KEpTQ1Rlc3RSZXN1bHRzLnJlc3VsdHNfZnJvbV9zdHJpbmcobm9fZmFpbHVyZXNfc3RyaW5nKSkp
CisKKyAgICAgICAgYXBpX3Rlc3RfZmFpbHVyZXNfc3RyaW5nID0gJ3siYWxsQXBpVGVzdHNQYXNz
ZWQiOiBmYWxzZSwgInN0cmVzc1Rlc3RGYWlsdXJlcyI6W119JworICAgICAgICBhcGlfdGVzdF9m
YWlsdXJlc19yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoRmFsc2UsIFtdKQorICAgICAgICBzZWxm
LmFzc2VydFRydWUoYXBpX3Rlc3RfZmFpbHVyZXNfcmVzdWx0cy5lcXVhbHMoSlNDVGVzdFJlc3Vs
dHMucmVzdWx0c19mcm9tX3N0cmluZyhhcGlfdGVzdF9mYWlsdXJlc19zdHJpbmcpKSkKKworICAg
ICAgICBtYW55X2ZhaWx1cmVzX3N0cmluZyA9ICd7ImFsbEFwaVRlc3RzUGFzc2VkIjogZmFsc2Us
ICJzdHJlc3NUZXN0RmFpbHVyZXMiOlsiZXM2LnlhbWwvZXM2L3R5cGVkX2FycmF5c19JbnQxNkFy
cmF5LmpzLmRlZmF1bHQiLCAiZXM2LnlhbWwvZXM2L3R5cGVkX2FycmF5c19JbnQ4QXJyYXkuanMu
ZGVmYXVsdCJdfScKKyAgICAgICAgbWFueV9mYWlsdXJlc19yZXN1bHRzID0gSlNDVGVzdFJlc3Vs
dHMoRmFsc2UsIFsiZXM2LnlhbWwvZXM2L3R5cGVkX2FycmF5c19JbnQxNkFycmF5LmpzLmRlZmF1
bHQiLCAiZXM2LnlhbWwvZXM2L3R5cGVkX2FycmF5c19JbnQ4QXJyYXkuanMuZGVmYXVsdCJdKQor
ICAgICAgICBzZWxmLmFzc2VydFRydWUobWFueV9mYWlsdXJlc19yZXN1bHRzLmVxdWFscyhKU0NU
ZXN0UmVzdWx0cy5yZXN1bHRzX2Zyb21fc3RyaW5nKG1hbnlfZmFpbHVyZXNfc3RyaW5nKSkpCisK
KyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShub19mYWlsdXJlc19yZXN1bHRzID09IGFwaV90ZXN0
X2ZhaWx1cmVzX3Jlc3VsdHMpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoYXBpX3Rlc3RfZmFp
bHVyZXNfcmVzdWx0cyA9PSBtYW55X2ZhaWx1cmVzX3Jlc3VsdHMpCisKKyAgICBkZWYgdGVzdF9p
bnRlcnNlY3Rpb25fYXBpX3Rlc3RzKHNlbGYpOgorICAgICAgICByZXN1bHRzMSA9IEpTQ1Rlc3RS
ZXN1bHRzKEZhbHNlLCBbXSkKKyAgICAgICAgcmVzdWx0czIgPSBKU0NUZXN0UmVzdWx0cyhUcnVl
LCBbXSkKKworICAgICAgICBleHBlY3RlZF9pbnRlcnNlY3Rpb24gPSBKU0NUZXN0UmVzdWx0cyhU
cnVlLCBbXSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGV4cGVjdGVkX2ludGVyc2VjdGlvbi5l
cXVhbHMoSlNDVGVzdFJlc3VsdHMuaW50ZXJzZWN0aW9uKHJlc3VsdHMxLCByZXN1bHRzMikpKQor
CisgICAgZGVmIHRlc3RfaW50ZXJzZWN0aW9uX3N0cmVzc190ZXN0cyhzZWxmKToKKyAgICAgICAg
cmVzdWx0czEgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbJ2ZhaWx1cmUxJywgJ2ZhaWx1cmUyJ10p
CisgICAgICAgIHJlc3VsdHMyID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgWydmYWlsdXJlMScsICdm
YWlsdXJlMyddKQorCisgICAgICAgIGV4cGVjdGVkX2ludGVyc2VjdGlvbiA9IEpTQ1Rlc3RSZXN1
bHRzKFRydWUsIFsnZmFpbHVyZTEnXSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGV4cGVjdGVk
X2ludGVyc2VjdGlvbi5lcXVhbHMoSlNDVGVzdFJlc3VsdHMuaW50ZXJzZWN0aW9uKHJlc3VsdHMx
LCByZXN1bHRzMikpKQorCisgICAgZGVmIHRlc3RfaW50ZXJzZWN0aW9uX2dlbmVyYWxfY2FzZShz
ZWxmKToKKyAgICAgICAgcmVzdWx0czEgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbJ2ZhaWx1cmUx
JywgJ2ZhaWx1cmUyJ10pCisgICAgICAgIHJlc3VsdHMyID0gSlNDVGVzdFJlc3VsdHMoRmFsc2Us
IFsnZmFpbHVyZTEnXSkKKworICAgICAgICBleHBlY3RlZF9pbnRlcnNlY3Rpb24gPSBKU0NUZXN0
UmVzdWx0cyhUcnVlLCBbJ2ZhaWx1cmUxJ10pCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShleHBl
Y3RlZF9pbnRlcnNlY3Rpb24uZXF1YWxzKEpTQ1Rlc3RSZXN1bHRzLmludGVyc2VjdGlvbihyZXN1
bHRzMSwgcmVzdWx0czIpKSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9v
bC9ib3QvZWFybHl3YXJuaW5nc3lzdGVtdGFzay5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
dG9vbC9ib3QvZWFybHl3YXJuaW5nc3lzdGVtdGFzay5weQppbmRleCBmYzMwOGI0M2QxZDE3MmFi
NzNiMGUzYWY4MGQxYjEzOWRkM2MxMDMyLi5lY2ZhY2QwMTFiZTg4M2I0YmIxZTVjN2Q3ZGZmZGJk
Y2I0NTlkZTM1IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2Vh
cmx5d2FybmluZ3N5c3RlbXRhc2sucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29s
L2JvdC9lYXJseXdhcm5pbmdzeXN0ZW10YXNrLnB5CkBAIC0xLDQgKzEsNSBAQAogIyBDb3B5cmln
aHQgKGMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0
IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucyBhcmUKQEAgLTI2LDcgKzI3LDcgQEAKICMgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiAjIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCiAKLWZyb20gd2Via2l0cHkudG9vbC5ib3QucGF0Y2hhbmFseXNpc3Rhc2sgaW1w
b3J0IFBhdGNoQW5hbHlzaXNUYXNrLCBQYXRjaEFuYWx5c2lzVGFza0RlbGVnYXRlLCBVbmFibGVU
b0FwcGx5UGF0Y2gsIFBhdGNoSXNOb3RWYWxpZAorZnJvbSB3ZWJraXRweS50b29sLmJvdC5wYXRj
aGFuYWx5c2lzdGFzayBpbXBvcnQgUGF0Y2hBbmFseXNpc1Rhc2ssIFBhdGNoQW5hbHlzaXNUYXNr
RGVsZWdhdGUsIFVuYWJsZVRvQXBwbHlQYXRjaCwgUGF0Y2hJc05vdFZhbGlkLCBQYXRjaElzTm90
QXBwbGljYWJsZQogCiAKIGNsYXNzIEVhcmx5V2FybmluZ1N5c3RlbVRhc2tEZWxlZ2F0ZShQYXRj
aEFuYWx5c2lzVGFza0RlbGVnYXRlKToKQEAgLTU4LDYgKzU5LDggQEAgY2xhc3MgRWFybHlXYXJu
aW5nU3lzdGVtVGFzayhQYXRjaEFuYWx5c2lzVGFzayk6CiAgICAgICAgICAgICByZXR1cm4gRmFs
c2UKICAgICAgICAgaWYgbm90IHNlbGYuX2FwcGx5KCk6CiAgICAgICAgICAgICByYWlzZSBVbmFi
bGVUb0FwcGx5UGF0Y2goc2VsZi5fcGF0Y2gpCisgICAgICAgIGlmIG5vdCBzZWxmLl9jaGVja19w
YXRjaF9yZWxldmFuY2UoKToKKyAgICAgICAgICAgIHJhaXNlIFBhdGNoSXNOb3RBcHBsaWNhYmxl
KHNlbGYuX3BhdGNoKQogICAgICAgICBpZiBub3Qgc2VsZi5fYnVpbGQoKToKICAgICAgICAgICAg
IGlmIG5vdCBzZWxmLl9idWlsZF93aXRob3V0X3BhdGNoKCk6CiAgICAgICAgICAgICAgICAgcmV0
dXJuIEZhbHNlCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2pz
Y2V3c191bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvanNjZXdz
X3VuaXR0ZXN0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg3MTMwMDAyNTZjM2ZkYzA3MzUxOGIyYjQ5NTNkZmU5
MGYzMWNiMDkKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wv
Ym90L2pzY2V3c191bml0dGVzdC5weQpAQCAtMCwwICsxLDIxOSBAQAorIyBDb3B5cmlnaHQgKEMp
IDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMg
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycgQU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorIyBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitpbXBvcnQgbG9nZ2luZworaW1wb3J0IHVuaXR0ZXN0
CisKK2Zyb20gd2Via2l0cHkuY29tbW9uLm5ldC5qc2N0ZXN0cmVzdWx0cyBpbXBvcnQgSlNDVGVz
dFJlc3VsdHMKK2Zyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5leGVjdXRpdmUgaW1wb3J0IFNj
cmlwdEVycm9yCitmcm9tIHdlYmtpdHB5LnRvb2wuYm90LnBhdGNoYW5hbHlzaXN0YXNrIGltcG9y
dCAqCitmcm9tIHdlYmtpdHB5LnRvb2wuY29tbWFuZHMuZWFybHl3YXJuaW5nc3lzdGVtIGltcG9y
dCBBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbQorZnJvbSB3ZWJraXRweS50b29sLm1vY2t0b29s
IGltcG9ydCBNb2NrVG9vbAorCitfbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18pCisK
KworY2xhc3MgTW9ja1BhdGNoQW5hbHlzaXNUYXNrKFBhdGNoQW5hbHlzaXNUYXNrKToKKyAgICBk
ZWYgX19pbml0X18oc2VsZiwgZGVsZWdhdGUsIHBhdGNoLCBwYXRjaGVzX3Bhc3NlZF9hbGxfdGVz
dHMpOgorICAgICAgICBzZWxmLl9kZWxlZ2F0ZSA9IGRlbGVnYXRlCisgICAgICAgIHNlbGYuX3Bh
dGNoID0gcGF0Y2gKKyAgICAgICAgc2VsZi5fc2NyaXB0X2Vycm9yID0gTm9uZQorICAgICAgICBz
ZWxmLl9yZXN1bHRzX2FyY2hpdmVfZnJvbV9wYXRjaF90ZXN0X3J1biA9IE5vbmUKKyAgICAgICAg
c2VsZi5fcmVzdWx0c19mcm9tX3BhdGNoX3Rlc3RfcnVuID0gTm9uZQorICAgICAgICBzZWxmLmVy
cm9yID0gTm9uZQorICAgICAgICBzZWxmLl9wYXRjaGVzX3Bhc3NlZF9hbGxfdGVzdHMgPSBwYXRj
aGVzX3Bhc3NlZF9hbGxfdGVzdHMKKyAgICAgICAgc2VsZi5fdGVzdF9ydW5fY291bnQgPSAwCisg
ICAgICAgIHNlbGYuZmFpbHVyZV9zdGF0dXNfaWQgPSA0MgorCisgICAgZGVmIF90ZXN0KHNlbGYp
OgorICAgICAgICBzZWxmLl90ZXN0X3J1bl9jb3VudCArPSAxCisKKyAgICAgICAgaWYgc2VsZi5f
cGF0Y2hlc19wYXNzZWRfYWxsX3Rlc3RzLnBvcCgpID09IFRydWU6CisgICAgICAgICAgICByZXR1
cm4gVHJ1ZQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZi5fc2NyaXB0X2Vycm9yID0g
U2NyaXB0RXJyb3IoIlJlZ3Jlc3Npb24gdGVzdCIpCisgICAgICAgICAgICByZXR1cm4gRmFsc2UK
KworICAgIGRlZiBfYnVpbGRfYW5kX3Rlc3Rfd2l0aG91dF9wYXRjaChzZWxmKToKKyAgICAgICAg
c2VsZi5fdGVzdF9ydW5fY291bnQgKz0gMQorICAgICAgICByZXR1cm4gVHJ1ZQorCisgICAgZGVm
IHZhbGlkYXRlKHNlbGYpOgorICAgICAgICByZXR1cm4gVHJ1ZQorCisgICAgZGVmIHRlc3RfcnVu
X2NvdW50KHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5fdGVzdF9ydW5fY291bnQKKworCisj
IFRoaXMgaXMgdGhlIGRlbGVnYXRlIHRvIGJlIHVzZWQgd2l0aCBNb2NrUGF0Y2hBbmFseXNpc1Rh
c2ssIGFib3ZlLgorY2xhc3MgTW9ja0pTQ0Vhcmx5V2FybmluZ1N5c3RlbShBYnN0cmFjdEVhcmx5
V2FybmluZ1N5c3RlbSk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGZpcnN0X3Rlc3RfcmVzdWx0
cywgc2Vjb25kX3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKToKKyAgICAgICAgQWJz
dHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0uX19pbml0X18oc2VsZikKKyAgICAgICAgc2VsZi5fZ3Jv
dXAgPSAianNjIgorICAgICAgICBzZWxmLl9yZXN1bHRzX2luX29yZGVyID0gW2NsZWFuX3Rlc3Rf
cmVzdWx0cywgc2Vjb25kX3Rlc3RfcmVzdWx0cywgZmlyc3RfdGVzdF9yZXN1bHRzXQorCisgICAg
ZGVmIHRlc3RfcmVzdWx0cyhzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX3Jlc3VsdHNfaW5f
b3JkZXIucG9wKCkKKworCitjbGFzcyBKU0NFYXJseVdhcm5pbmdTeXN0ZW1UZXN0KHVuaXR0ZXN0
LlRlc3RDYXNlKToKKyAgICBkZWYgX3Jlc3VsdHNfaW5kaWNhdGVfYWxsX3Bhc3NlZChzZWxmLCBy
ZXN1bHRzKToKKyAgICAgICAgaWYgcmVzdWx0cyA9PSBOb25lOgorICAgICAgICAgICAgcmV0dXJu
IEZhbHNlCisgICAgICAgIHJldHVybiByZXN1bHRzLmFsbF9wYXNzZWQoKQorCisgICAgZGVmIF9j
cmVhdGVfdGFzayhzZWxmLCBmaXJzdF90ZXN0X3Jlc3VsdHMsIHNlY29uZF90ZXN0X3Jlc3VsdHMs
IGNsZWFuX3Rlc3RfcmVzdWx0cyk6CisgICAgICAgIHF1ZXVlID0gTW9ja0pTQ0Vhcmx5V2Fybmlu
Z1N5c3RlbShmaXJzdF90ZXN0X3Jlc3VsdHMsIHNlY29uZF90ZXN0X3Jlc3VsdHMsIGNsZWFuX3Rl
c3RfcmVzdWx0cykKKyAgICAgICAgdG9vbCA9IE1vY2tUb29sKGxvZ19leGVjdXRpdmU9VHJ1ZSkK
KyAgICAgICAgcGF0Y2ggPSB0b29sLmJ1Z3MuZmV0Y2hfYXR0YWNobWVudCgxMDAwMCkKKyAgICAg
ICAgcGF0Y2hlc19wYXNzZWRfYWxsX3Rlc3RzID0gbWFwKHNlbGYuX3Jlc3VsdHNfaW5kaWNhdGVf
YWxsX3Bhc3NlZCwgW3NlY29uZF90ZXN0X3Jlc3VsdHMsIGZpcnN0X3Rlc3RfcmVzdWx0c10pCisg
ICAgICAgIHJldHVybiBNb2NrUGF0Y2hBbmFseXNpc1Rhc2socXVldWUsIHBhdGNoLCBwYXRjaGVz
X3Bhc3NlZF9hbGxfdGVzdHMpCisKKyAgICBkZWYgdGVzdF9zdWNjZXNzX2Nhc2Uoc2VsZik6Cisg
ICAgICAgIGZpcnN0X3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFtdKQorICAg
ICAgICBzZWNvbmRfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgW10pCisgICAg
ICAgIGNsZWFuX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFtdKQorICAgICAg
ICB0YXNrID0gc2VsZi5fY3JlYXRlX3Rhc2soZmlyc3RfdGVzdF9yZXN1bHRzLCBzZWNvbmRfdGVz
dF9yZXN1bHRzLCBjbGVhbl90ZXN0X3Jlc3VsdHMpCisKKyAgICAgICAgcmV0dXJuX3ZhbHVlID0g
dGFzay5fdGVzdF9wYXRjaCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGFzay50ZXN0X3J1
bl9jb3VudCgpLCAxKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJldHVybl92YWx1ZSwgVHJ1
ZSkKKworICAgIGRlZiB0ZXN0X3Rlc3RfZmFpbHVyZShzZWxmKToKKyAgICAgICAgZmlyc3RfdGVz
dF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgWydGYWlsLmpzJ10pCisgICAgICAgIHNl
Y29uZF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbJ0ZhaWwuanMnXSkKKyAg
ICAgICAgY2xlYW5fdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgW10pCisgICAg
ICAgIHRhc2sgPSBzZWxmLl9jcmVhdGVfdGFzayhmaXJzdF90ZXN0X3Jlc3VsdHMsIHNlY29uZF90
ZXN0X3Jlc3VsdHMsIGNsZWFuX3Rlc3RfcmVzdWx0cykKKworICAgICAgICB3aXRoIHNlbGYuYXNz
ZXJ0UmFpc2VzKFNjcmlwdEVycm9yKToKKyAgICAgICAgICAgIHJldHVybl92YWx1ZSA9IHRhc2su
X3Rlc3RfcGF0Y2goKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRhc2sudGVzdF9ydW5fY291
bnQoKSwgMykKKworICAgIGRlZiB0ZXN0X2ZpeChzZWxmKToKKyAgICAgICAgZmlyc3RfdGVzdF9y
ZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgW10pCisgICAgICAgIHNlY29uZF90ZXN0X3Jl
c3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbXSkKKyAgICAgICAgY2xlYW5fdGVzdF9yZXN1
bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgWydGYWlsLmpzJ10pCisgICAgICAgIHRhc2sgPSBz
ZWxmLl9jcmVhdGVfdGFzayhmaXJzdF90ZXN0X3Jlc3VsdHMsIHNlY29uZF90ZXN0X3Jlc3VsdHMs
IGNsZWFuX3Rlc3RfcmVzdWx0cykKKworICAgICAgICByZXR1cm5fdmFsdWUgPSB0YXNrLl90ZXN0
X3BhdGNoKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0YXNrLnRlc3RfcnVuX2NvdW50KCks
IDEpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmV0dXJuX3ZhbHVlLCBUcnVlKQorCisgICAg
ZGVmIHRlc3RfaW5lZmZlY3RpdmVfcGF0Y2goc2VsZik6CisgICAgICAgIGZpcnN0X3Rlc3RfcmVz
dWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKEZhbHNlLCBbJ2ZhaWx1cmUxLmpzJywgJ2ZhaWx1cmUyLmpz
J10pCisgICAgICAgIHNlY29uZF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhGYWxzZSwg
WydmYWlsdXJlMS5qcycsICdmYWlsdXJlMi5qcyddKQorICAgICAgICBjbGVhbl90ZXN0X3Jlc3Vs
dHMgPSBKU0NUZXN0UmVzdWx0cyhGYWxzZSwgWydmYWlsdXJlMS5qcycsICdmYWlsdXJlMi5qcydd
KQorICAgICAgICB0YXNrID0gc2VsZi5fY3JlYXRlX3Rhc2soZmlyc3RfdGVzdF9yZXN1bHRzLCBz
ZWNvbmRfdGVzdF9yZXN1bHRzLCBjbGVhbl90ZXN0X3Jlc3VsdHMpCisKKyAgICAgICAgcmV0dXJu
X3ZhbHVlID0gdGFzay5fdGVzdF9wYXRjaCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGFz
ay50ZXN0X3J1bl9jb3VudCgpLCAzKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJldHVybl92
YWx1ZSwgVHJ1ZSkKKworICAgIGRlZiB0ZXN0X3BhcnRpYWxseV9lZmZlY3RpdmVfcGF0Y2goc2Vs
Zik6CisgICAgICAgIGZpcnN0X3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFsn
ZmFpbHVyZTIuanMnXSkKKyAgICAgICAgc2Vjb25kX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1
bHRzKFRydWUsIFsnZmFpbHVyZTIuanMnXSkKKyAgICAgICAgY2xlYW5fdGVzdF9yZXN1bHRzID0g
SlNDVGVzdFJlc3VsdHMoRmFsc2UsIFsnZmFpbHVyZTEuanMnLCAnZmFpbHVyZTIuanMnXSkKKyAg
ICAgICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90YXNrKGZpcnN0X3Rlc3RfcmVzdWx0cywgc2Vjb25k
X3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKQorCisgICAgICAgIHJldHVybl92YWx1
ZSA9IHRhc2suX3Rlc3RfcGF0Y2goKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRhc2sudGVz
dF9ydW5fY291bnQoKSwgMykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXR1cm5fdmFsdWUs
IFRydWUpCisKKyAgICBkZWYgdGVzdF9kaWZmZXJlbnRfdGVzdF9mYWlsdXJlc19pbl9wYXRjaF9h
bmRfdHJlZShzZWxmKToKKyAgICAgICAgZmlyc3RfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3Vs
dHMoRmFsc2UsIFtdKQorICAgICAgICBzZWNvbmRfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3Vs
dHMoRmFsc2UsIFtdKQorICAgICAgICBjbGVhbl90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0
cyhUcnVlLCBbJ2ZhaWx1cmUxLmpzJywgJ2ZhaWx1cmUyLmpzJ10pCisgICAgICAgIHRhc2sgPSBz
ZWxmLl9jcmVhdGVfdGFzayhmaXJzdF90ZXN0X3Jlc3VsdHMsIHNlY29uZF90ZXN0X3Jlc3VsdHMs
IGNsZWFuX3Rlc3RfcmVzdWx0cykKKworICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFNj
cmlwdEVycm9yKToKKyAgICAgICAgICAgIHJldHVybl92YWx1ZSA9IHRhc2suX3Rlc3RfcGF0Y2go
KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRhc2sudGVzdF9ydW5fY291bnQoKSwgMykKKwor
ICAgIGRlZiB0ZXN0X2ZpcnN0X3Jlc3VsdHNfY291bGRfbm90X2JlX3JlYWQoc2VsZik6CisgICAg
ICAgIGZpcnN0X3Rlc3RfcmVzdWx0cyA9IE5vbmUKKyAgICAgICAgc2Vjb25kX3Rlc3RfcmVzdWx0
cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFtdKQorICAgICAgICBjbGVhbl90ZXN0X3Jlc3VsdHMg
PSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbXSkKKyAgICAgICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90
YXNrKGZpcnN0X3Rlc3RfcmVzdWx0cywgc2Vjb25kX3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9y
ZXN1bHRzKQorCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoU2NyaXB0RXJyb3IpOgor
ICAgICAgICAgICAgcmV0dXJuX3ZhbHVlID0gdGFzay5fdGVzdF9wYXRjaCgpCisgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwodGFzay50ZXN0X3J1bl9jb3VudCgpLCAxKQorCisgICAgZGVmIHRlc3Rf
c2Vjb25kX3Jlc3VsdHNfY291bGRfbm90X2JlX3JlYWQoc2VsZik6CisgICAgICAgIGZpcnN0X3Rl
c3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKEZhbHNlLCBbJ2ZhaWx1cmUxLmpzJywgJ2ZhaWx1
cmUyLmpzJ10pCisgICAgICAgIHNlY29uZF90ZXN0X3Jlc3VsdHMgPSBOb25lCisgICAgICAgIGNs
ZWFuX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFtdKQorICAgICAgICB0YXNr
ID0gc2VsZi5fY3JlYXRlX3Rhc2soZmlyc3RfdGVzdF9yZXN1bHRzLCBzZWNvbmRfdGVzdF9yZXN1
bHRzLCBjbGVhbl90ZXN0X3Jlc3VsdHMpCisKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNl
cyhTY3JpcHRFcnJvcik6CisgICAgICAgICAgICByZXR1cm5fdmFsdWUgPSB0YXNrLl90ZXN0X3Bh
dGNoKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0YXNrLnRlc3RfcnVuX2NvdW50KCksIDIp
CisKKyAgICBkZWYgdGVzdF9jbGVhbl9yZXN1bHRzX2NvdWxkX25vdF9iZV9yZWFkKHNlbGYpOgor
ICAgICAgICBmaXJzdF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbJ2ZhaWx1
cmUyLmpzJ10pCisgICAgICAgIHNlY29uZF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhU
cnVlLCBbJ2ZhaWx1cmUyLmpzJ10pCisgICAgICAgIGNsZWFuX3Rlc3RfcmVzdWx0cyA9IE5vbmUK
KyAgICAgICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90YXNrKGZpcnN0X3Rlc3RfcmVzdWx0cywgc2Vj
b25kX3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKQorCisgICAgICAgIHdpdGggc2Vs
Zi5hc3NlcnRSYWlzZXMoU2NyaXB0RXJyb3IpOgorICAgICAgICAgICAgcmV0dXJuX3ZhbHVlID0g
dGFzay5fdGVzdF9wYXRjaCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGFzay50ZXN0X3J1
bl9jb3VudCgpLCAzKQorCisgICAgZGVmIHRlc3RfZmxha3lfcmVzdWx0c19vbl9jbGVhbl90cmVl
X3Bhc3Moc2VsZik6CisgICAgICAgIGZpcnN0X3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRz
KFRydWUsIFsnZmFpbHVyZTIuanMnXSkKKyAgICAgICAgc2Vjb25kX3Rlc3RfcmVzdWx0cyA9IEpT
Q1Rlc3RSZXN1bHRzKFRydWUsIFtdKQorICAgICAgICBjbGVhbl90ZXN0X3Jlc3VsdHMgPSBKU0NU
ZXN0UmVzdWx0cyhUcnVlLCBbXSkKKyAgICAgICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90YXNrKGZp
cnN0X3Rlc3RfcmVzdWx0cywgc2Vjb25kX3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRz
KQorCisgICAgICAgIHJldHVybl92YWx1ZSA9IHRhc2suX3Rlc3RfcGF0Y2goKQorICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKHJldHVybl92YWx1ZSwgVHJ1ZSkKKyAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbCh0YXNrLnRlc3RfcnVuX2NvdW50KCksIDIpCisKKyAgICBkZWYgdGVzdF9mbGFreV9yZXN1
bHRzX29uX2NsZWFuX3RyZWVfcGFzc192MihzZWxmKToKKyAgICAgICAgZmlyc3RfdGVzdF9yZXN1
bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgW10pCisgICAgICAgIHNlY29uZF90ZXN0X3Jlc3Vs
dHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbJ2ZhaWx1cmUyLmpzJ10pCisgICAgICAgIGNsZWFu
X3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFtdKQorICAgICAgICB0YXNrID0g
c2VsZi5fY3JlYXRlX3Rhc2soZmlyc3RfdGVzdF9yZXN1bHRzLCBzZWNvbmRfdGVzdF9yZXN1bHRz
LCBjbGVhbl90ZXN0X3Jlc3VsdHMpCisKKyAgICAgICAgcmV0dXJuX3ZhbHVlID0gdGFzay5fdGVz
dF9wYXRjaCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmV0dXJuX3ZhbHVlLCBUcnVlKQor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRhc2sudGVzdF9ydW5fY291bnQoKSwgMSkKKworICAg
IGRlZiB0ZXN0X2ZsYWt5X3Jlc3VsdHNfb25fY2xlYW5fdHJlZV9mYWlsdXJlKHNlbGYpOgorICAg
ICAgICBmaXJzdF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhGYWxzZSwgWydmYWlsdXJl
MS5qcycsICdmYWlsdXJlMi5qcyddKQorICAgICAgICBzZWNvbmRfdGVzdF9yZXN1bHRzID0gSlND
VGVzdFJlc3VsdHMoVHJ1ZSwgWydmYWlsdXJlMi5qcyddKQorICAgICAgICBjbGVhbl90ZXN0X3Jl
c3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbXSkKKyAgICAgICAgdGFzayA9IHNlbGYuX2Ny
ZWF0ZV90YXNrKGZpcnN0X3Rlc3RfcmVzdWx0cywgc2Vjb25kX3Rlc3RfcmVzdWx0cywgY2xlYW5f
dGVzdF9yZXN1bHRzKQorCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoU2NyaXB0RXJy
b3IpOgorICAgICAgICAgICAgcmV0dXJuX3ZhbHVlID0gdGFzay5fdGVzdF9wYXRjaCgpCisgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwodGFzay50ZXN0X3J1bl9jb3VudCgpLCAzKQorCisgICAgZGVm
IHRlc3RfZmxha3lfcmVzdWx0c19vbl9yZWRfdHJlZV9wYXNzKHNlbGYpOgorICAgICAgICBmaXJz
dF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbJ2ZhaWx1cmUxLmpzJ10pCisg
ICAgICAgIHNlY29uZF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbJ2ZhaWx1
cmUxLmpzJywgJ2ZhaWx1cmUyLmpzJ10pCisgICAgICAgIGNsZWFuX3Rlc3RfcmVzdWx0cyA9IEpT
Q1Rlc3RSZXN1bHRzKFRydWUsIFsnZmFpbHVyZTEuanMnXSkKKyAgICAgICAgdGFzayA9IHNlbGYu
X2NyZWF0ZV90YXNrKGZpcnN0X3Rlc3RfcmVzdWx0cywgc2Vjb25kX3Rlc3RfcmVzdWx0cywgY2xl
YW5fdGVzdF9yZXN1bHRzKQorCisgICAgICAgIHJldHVybl92YWx1ZSA9IHRhc2suX3Rlc3RfcGF0
Y2goKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJldHVybl92YWx1ZSwgVHJ1ZSkKKyAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbCh0YXNrLnRlc3RfcnVuX2NvdW50KCksIDMpCmRpZmYgLS1naXQg
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2pzY3Rlc3RyZXN1bHRzcmVhZGVyLnB5
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9qc2N0ZXN0cmVzdWx0c3JlYWRlci5w
eQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi44YWM1MzJiMTllN2VhNTVkMzViOTEzOWI0ZjIwOTk4MDViYTAwNDllCi0t
LSAvZGV2L251bGwKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9qc2N0ZXN0
cmVzdWx0c3JlYWRlci5weQpAQCAtMCwwICsxLDQ3IEBACisjIENvcHlyaWdodCAoQykgMjAxNyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
IyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBB
TkQKKyMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUgorIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisjIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisjIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSCisjIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisjIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisKK2ltcG9ydCBsb2dnaW5nCisKK2Zyb20gd2Via2l0cHkuY29tbW9u
Lm5ldC5qc2N0ZXN0cmVzdWx0cyBpbXBvcnQgSlNDVGVzdFJlc3VsdHMKKworX2xvZyA9IGxvZ2dp
bmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKQorCisKK2NsYXNzIEpTQ1Rlc3RSZXN1bHRzUmVhZGVyKG9i
amVjdCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGhvc3QsIHJlc3VsdHNfZGlyZWN0b3J5KToK
KyAgICAgICAgc2VsZi5faG9zdCA9IGhvc3QKKyAgICAgICAgc2VsZi5fcmVzdWx0c19kaXJlY3Rv
cnkgPSByZXN1bHRzX2RpcmVjdG9yeQorCisgICAgZGVmIF9yZWFkX2ZpbGVfY29udGVudHMoc2Vs
ZiwgcGF0aCk6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLl9ob3N0LmZp
bGVzeXN0ZW0ucmVhZF90ZXh0X2ZpbGUocGF0aCkKKyAgICAgICAgZXhjZXB0IElPRXJyb3IsIGU6
ICAjIEZpbGUgZG9lcyBub3QgZXhpc3Qgb3IgY2FuJ3QgYmUgcmVhZC4KKyAgICAgICAgICAgIHJl
dHVybiBOb25lCisKKyAgICBkZWYgX2NyZWF0ZV9qc2NfdGVzdF9yZXN1bHRzKHNlbGYpOgorICAg
ICAgICByZXN1bHRzX3BhdGggPSBzZWxmLl9ob3N0LmZpbGVzeXN0ZW0uam9pbihzZWxmLl9yZXN1
bHRzX2RpcmVjdG9yeSwgImpzY190ZXN0X3Jlc3VsdHMuanNvbiIpCisgICAgICAgIGNvbnRlbnRz
ID0gc2VsZi5fcmVhZF9maWxlX2NvbnRlbnRzKHJlc3VsdHNfcGF0aCkKKyAgICAgICAgcmV0dXJu
IEpTQ1Rlc3RSZXN1bHRzLnJlc3VsdHNfZnJvbV9zdHJpbmcoY29udGVudHMpCisKKyAgICBkZWYg
cmVzdWx0cyhzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX2NyZWF0ZV9qc2NfdGVzdF9yZXN1
bHRzKCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvcGF0Y2hh
bmFseXNpc3Rhc2sucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L3BhdGNoYW5h
bHlzaXN0YXNrLnB5CmluZGV4IDc1MjMxNjQxNmM1ZjlkMGEzZTU5ZWY2ZDA1ZTMxNzg1ZjkxNzQ2
MjkuLmE3NDBmZDY4NDE1YzNhZDdkMzk4ODEwM2NiNGEzNTM4MTQ3Y2IwMWIgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvcGF0Y2hhbmFseXNpc3Rhc2sucHkKKysr
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9wYXRjaGFuYWx5c2lzdGFzay5weQpA
QCAtMSw0ICsxLDUgQEAKICMgQ29weXJpZ2h0IChjKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC0yOCw2ICsyOSw3
IEBACiAKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5leGVjdXRpdmUgaW1wb3J0IFNjcmlw
dEVycm9yCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5uZXQubGF5b3V0dGVzdHJlc3VsdHMgaW1wb3J0
IExheW91dFRlc3RSZXN1bHRzCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5uZXQuanNjdGVzdHJlc3Vs
dHMgaW1wb3J0IEpTQ1Rlc3RSZXN1bHRzCiAKIAogY2xhc3MgVW5hYmxlVG9BcHBseVBhdGNoKEV4
Y2VwdGlvbik6CkBAIC00Myw2ICs0NSwxMSBAQCBjbGFzcyBQYXRjaElzTm90VmFsaWQoRXhjZXB0
aW9uKToKICAgICAgICAgc2VsZi5mYWlsdXJlX21lc3NhZ2UgPSBmYWlsdXJlX21lc3NhZ2UKIAog
CitjbGFzcyBQYXRjaElzTm90QXBwbGljYWJsZShFeGNlcHRpb24pOgorICAgIGRlZiBfX2luaXRf
XyhzZWxmLCBwYXRjaCk6CisgICAgICAgIEV4Y2VwdGlvbi5fX2luaXRfXyhzZWxmKQorICAgICAg
ICBzZWxmLnBhdGNoID0gcGF0Y2gKKwogY2xhc3MgUGF0Y2hBbmFseXNpc1Rhc2tEZWxlZ2F0ZShv
YmplY3QpOgogICAgIGRlZiBwYXJlbnRfY29tbWFuZChzZWxmKToKICAgICAgICAgcmFpc2UgTm90
SW1wbGVtZW50ZWRFcnJvcigic3ViY2xhc3NlcyBtdXN0IGltcGxlbWVudCIpCkBAIC0xMjIsMjgg
KzEyOSw1MyBAQCBjbGFzcyBQYXRjaEFuYWx5c2lzVGFzayhvYmplY3QpOgogICAgICAgICAiQXBw
bGllZCBwYXRjaCIsCiAgICAgICAgICJQYXRjaCBkb2VzIG5vdCBhcHBseSIpCiAKKyAgICBkZWYg
X2NoZWNrX3BhdGNoX3JlbGV2YW5jZShzZWxmKToKKyAgICAgICAgYXJncyA9IFsKKyAgICAgICAg
ICAgICJjaGVjay1wYXRjaC1yZWxldmFuY2UiLAorICAgICAgICBdCisKKyAgICAgICAgaWYgaGFz
YXR0cihzZWxmLl9kZWxlZ2F0ZSwgJ2dyb3VwJyk6CisgICAgICAgICAgICBhcmdzLmFwcGVuZCgi
LS1ncm91cD0lcyIgJSBzZWxmLl9kZWxlZ2F0ZS5ncm91cCgpKQorCisgICAgICAgIHJldHVybiBz
ZWxmLl9ydW5fY29tbWFuZCgKKyAgICAgICAgICAgIGFyZ3MsCisgICAgICAgICAgICAiQ2hlY2tl
ZCByZWxldmFuY2Ugb2YgcGF0Y2giLAorICAgICAgICAgICAgIlBhdGNoIHdhcyBub3QgcmVsZXZh
bnQiKQorCiAgICAgZGVmIF9idWlsZChzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYuX3J1bl9j
b21tYW5kKFsKKyAgICAgICAgYXJncyA9IFsKICAgICAgICAgICAgICJidWlsZCIsCiAgICAgICAg
ICAgICAiLS1uby1jbGVhbiIsCiAgICAgICAgICAgICAiLS1uby11cGRhdGUiLAogICAgICAgICAg
ICAgIi0tYnVpbGQtc3R5bGU9JXMiICUgc2VsZi5fZGVsZWdhdGUuYnVpbGRfc3R5bGUoKSwKLSAg
ICAgICAgXSwKLSAgICAgICAgIkJ1aWx0IHBhdGNoIiwKLSAgICAgICAgIlBhdGNoIGRvZXMgbm90
IGJ1aWxkIikKKyAgICAgICAgXQorCisgICAgICAgIGlmIGhhc2F0dHIoc2VsZi5fZGVsZWdhdGUs
ICdncm91cCcpOgorICAgICAgICAgICAgYXJncy5hcHBlbmQoIi0tZ3JvdXA9JXMiICUgc2VsZi5f
ZGVsZWdhdGUuZ3JvdXAoKSkKKworICAgICAgICByZXR1cm4gc2VsZi5fcnVuX2NvbW1hbmQoCisg
ICAgICAgICAgICBhcmdzLAorICAgICAgICAgICAgIkJ1aWx0IHBhdGNoIiwKKyAgICAgICAgICAg
ICJQYXRjaCBkb2VzIG5vdCBidWlsZCIpCiAKICAgICBkZWYgX2J1aWxkX3dpdGhvdXRfcGF0Y2go
c2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmLl9ydW5fY29tbWFuZChbCisgICAgICAgIGFyZ3Mg
PSBbCiAgICAgICAgICAgICAiYnVpbGQiLAogICAgICAgICAgICAgIi0tZm9yY2UtY2xlYW4iLAog
ICAgICAgICAgICAgIi0tbm8tdXBkYXRlIiwKICAgICAgICAgICAgICItLWJ1aWxkLXN0eWxlPSVz
IiAlIHNlbGYuX2RlbGVnYXRlLmJ1aWxkX3N0eWxlKCksCi0gICAgICAgIF0sCi0gICAgICAgICJB
YmxlIHRvIGJ1aWxkIHdpdGhvdXQgcGF0Y2giLAotICAgICAgICAiVW5hYmxlIHRvIGJ1aWxkIHdp
dGhvdXQgcGF0Y2giKQorICAgICAgICBdCisKKyAgICAgICAgaWYgaGFzYXR0cihzZWxmLl9kZWxl
Z2F0ZSwgJ2dyb3VwJyk6CisgICAgICAgICAgICBhcmdzLmFwcGVuZCgiLS1ncm91cD0lcyIgJSBz
ZWxmLl9kZWxlZ2F0ZS5ncm91cCgpKQorCisgICAgICAgIHJldHVybiBzZWxmLl9ydW5fY29tbWFu
ZCgKKyAgICAgICAgICAgIGFyZ3MsCisgICAgICAgICAgICAiQWJsZSB0byBidWlsZCB3aXRob3V0
IHBhdGNoIiwKKyAgICAgICAgICAgICJVbmFibGUgdG8gYnVpbGQgd2l0aG91dCBwYXRjaCIpCiAK
ICAgICBkZWYgX3Rlc3Qoc2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmLl9ydW5fY29tbWFuZChb
CisgICAgICAgIGFyZ3MgPSBbCiAgICAgICAgICAgICAiYnVpbGQtYW5kLXRlc3QiLAogICAgICAg
ICAgICAgIi0tbm8tY2xlYW4iLAogICAgICAgICAgICAgIi0tbm8tdXBkYXRlIiwKQEAgLTE1MSwx
MiArMTgzLDE4IEBAIGNsYXNzIFBhdGNoQW5hbHlzaXNUYXNrKG9iamVjdCk6CiAgICAgICAgICAg
ICAiLS10ZXN0IiwKICAgICAgICAgICAgICItLW5vbi1pbnRlcmFjdGl2ZSIsCiAgICAgICAgICAg
ICAiLS1idWlsZC1zdHlsZT0lcyIgJSBzZWxmLl9kZWxlZ2F0ZS5idWlsZF9zdHlsZSgpLAotICAg
ICAgICBdLAotICAgICAgICAiUGFzc2VkIHRlc3RzIiwKLSAgICAgICAgIlBhdGNoIGRvZXMgbm90
IHBhc3MgdGVzdHMiKQorICAgICAgICBdCisKKyAgICAgICAgaWYgaGFzYXR0cihzZWxmLl9kZWxl
Z2F0ZSwgJ2dyb3VwJyk6CisgICAgICAgICAgICBhcmdzLmFwcGVuZCgiLS1ncm91cD0lcyIgJSBz
ZWxmLl9kZWxlZ2F0ZS5ncm91cCgpKQorCisgICAgICAgIHJldHVybiBzZWxmLl9ydW5fY29tbWFu
ZCgKKyAgICAgICAgICAgIGFyZ3MsCisgICAgICAgICAgICAiUGFzc2VkIHRlc3RzIiwKKyAgICAg
ICAgICAgICJQYXRjaCBkb2VzIG5vdCBwYXNzIHRlc3RzIikKIAogICAgIGRlZiBfYnVpbGRfYW5k
X3Rlc3Rfd2l0aG91dF9wYXRjaChzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYuX3J1bl9jb21t
YW5kKFsKKyAgICAgICAgYXJncyA9IFsKICAgICAgICAgICAgICJidWlsZC1hbmQtdGVzdCIsCiAg
ICAgICAgICAgICAiLS1mb3JjZS1jbGVhbiIsCiAgICAgICAgICAgICAiLS1uby11cGRhdGUiLApA
QCAtMTY0LDkgKzIwMiwxNSBAQCBjbGFzcyBQYXRjaEFuYWx5c2lzVGFzayhvYmplY3QpOgogICAg
ICAgICAgICAgIi0tdGVzdCIsCiAgICAgICAgICAgICAiLS1ub24taW50ZXJhY3RpdmUiLAogICAg
ICAgICAgICAgIi0tYnVpbGQtc3R5bGU9JXMiICUgc2VsZi5fZGVsZWdhdGUuYnVpbGRfc3R5bGUo
KSwKLSAgICAgICAgXSwKLSAgICAgICAgIkFibGUgdG8gcGFzcyB0ZXN0cyB3aXRob3V0IHBhdGNo
IiwKLSAgICAgICAgIlVuYWJsZSB0byBwYXNzIHRlc3RzIHdpdGhvdXQgcGF0Y2ggKHRyZWUgaXMg
cmVkPykiKQorICAgICAgICBdCisKKyAgICAgICAgaWYgaGFzYXR0cihzZWxmLl9kZWxlZ2F0ZSwg
J2dyb3VwJyk6CisgICAgICAgICAgICBhcmdzLmFwcGVuZCgiLS1ncm91cD0lcyIgJSBzZWxmLl9k
ZWxlZ2F0ZS5ncm91cCgpKQorCisgICAgICAgIHJldHVybiBzZWxmLl9ydW5fY29tbWFuZCgKKyAg
ICAgICAgICAgIGFyZ3MsCisgICAgICAgICAgICAiQWJsZSB0byBwYXNzIHRlc3RzIHdpdGhvdXQg
cGF0Y2giLAorICAgICAgICAgICAgIlVuYWJsZSB0byBwYXNzIHRlc3RzIHdpdGhvdXQgcGF0Y2gg
KHRyZWUgaXMgcmVkPykiKQogCiAgICAgZGVmIF9sYW5kKHNlbGYpOgogICAgICAgICAjIFVuY2xl
YXIgaWYgdGhpcyBzaG91bGQgcGFzcyAtLXF1aWV0IG9yIG5vdC4gIElmIC0tcGFyZW50LWNvbW1h
bmQgYWx3YXlzIGRvZXMgdGhlIHJlcG9ydGluZywgdGhlbiBpdCBzaG91bGQuCkBAIC0yMTAsNjkg
KzI1NCw5OCBAQCBjbGFzcyBQYXRjaEFuYWx5c2lzVGFzayhvYmplY3QpOgogICAgICAgICBpZiBz
ZWxmLl90ZXN0KCk6CiAgICAgICAgICAgICByZXR1cm4gVHJ1ZQogCi0gICAgICAgICMgTm90ZTog
YXJjaGl2ZV9sYXN0X3Rlc3RfcmVzdWx0cyBkZWxldGVzIHRoZSByZXN1bHRzIGRpcmVjdG9yeSwg
bWFraW5nIHRoZXNlIGNhbGxzIG9yZGVyLXNlbnNpdHZlLgotICAgICAgICAjIFdlIGNvdWxkIHJl
bW92ZSB0aGlzIGRlcGVuZGVuY3kgYnkgYnVpbGRpbmcgdGhlIHRlc3RfcmVzdWx0cyBmcm9tIHRo
ZSBhcmNoaXZlLgotICAgICAgICBmaXJzdF9yZXN1bHRzID0gc2VsZi5fZGVsZWdhdGUudGVzdF9y
ZXN1bHRzKCkKLSAgICAgICAgZmlyc3RfcmVzdWx0c19hcmNoaXZlID0gc2VsZi5fZGVsZWdhdGUu
YXJjaGl2ZV9sYXN0X3Rlc3RfcmVzdWx0cyhzZWxmLl9wYXRjaCkKLSAgICAgICAgZmlyc3Rfc2Ny
aXB0X2Vycm9yID0gc2VsZi5fc2NyaXB0X2Vycm9yCi0gICAgICAgIGZpcnN0X2ZhaWx1cmVfc3Rh
dHVzX2lkID0gc2VsZi5mYWlsdXJlX3N0YXR1c19pZAotCi0gICAgICAgIGlmIHNlbGYuX3Rlc3Qo
KSBhbmQgbm90IGZpcnN0X3Jlc3VsdHMuZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQoKToK
LSAgICAgICAgICAgICMgT25seSByZXBvcnQgZmxha3kgdGVzdHMgaWYgd2Ugd2VyZSBzdWNjZXNz
ZnVsIGF0IHBhcnNpbmcgcmVzdWx0cy5qc29uIGFuZCBhcmNoaXZpbmcgcmVzdWx0cy4KLSAgICAg
ICAgICAgIGlmIGZpcnN0X3Jlc3VsdHMgYW5kIGZpcnN0X3Jlc3VsdHNfYXJjaGl2ZToKLSAgICAg
ICAgICAgICAgICBzZWxmLl9yZXBvcnRfZmxha3lfdGVzdHMoZmlyc3RfcmVzdWx0cy5mYWlsaW5n
X3Rlc3RfcmVzdWx0cygpLCBmaXJzdF9yZXN1bHRzX2FyY2hpdmUpCi0gICAgICAgICAgICByZXR1
cm4gVHJ1ZQorICAgICAgICAjIEZJWE1FOiBBYnN0cmFjdCBvdXQgdGhlIHJldHJ5IGxvZ2ljIGlu
c3RlYWQgb2YgY2FzaW5nIG9uIHRoZSB0ZXN0IHN1aXRlIGhlcmUuCisgICAgICAgIGlmIGhhc2F0
dHIoc2VsZi5fZGVsZWdhdGUsICdncm91cCcpIGFuZCBzZWxmLl9kZWxlZ2F0ZS5ncm91cCgpID09
ICJqc2MiOgorICAgICAgICAgICAgZmlyc3RfcmVzdWx0cyA9IHNlbGYuX2RlbGVnYXRlLnRlc3Rf
cmVzdWx0cygpCisgICAgICAgICAgICBmaXJzdF9zY3JpcHRfZXJyb3IgPSBzZWxmLl9zY3JpcHRf
ZXJyb3IKKyAgICAgICAgICAgIGZpcnN0X2ZhaWx1cmVfc3RhdHVzX2lkID0gc2VsZi5mYWlsdXJl
X3N0YXR1c19pZAorICAgICAgICAgICAgaWYgZmlyc3RfcmVzdWx0cyBpcyBOb25lOgorICAgICAg
ICAgICAgICAgIHJldHVybiBzZWxmLnJlcG9ydF9mYWlsdXJlKE5vbmUsIE5vbmUsIFNjcmlwdEVy
cm9yKCJDb3VsZCBub3QgcmVhZCBKU0MgdGVzdCByZXN1bHRzIGZvciBwYXRjaC4iKSkKIAotICAg
ICAgICBzZWNvbmRfcmVzdWx0cyA9IHNlbGYuX2RlbGVnYXRlLnRlc3RfcmVzdWx0cygpCi0gICAg
ICAgIHNlY29uZF9yZXN1bHRzX2FyY2hpdmUgPSBzZWxmLl9kZWxlZ2F0ZS5hcmNoaXZlX2xhc3Rf
dGVzdF9yZXN1bHRzKHNlbGYuX3BhdGNoKQotICAgICAgICBzZWNvbmRfc2NyaXB0X2Vycm9yID0g
c2VsZi5fc2NyaXB0X2Vycm9yCi0gICAgICAgIHNlY29uZF9mYWlsdXJlX3N0YXR1c19pZCA9IHNl
bGYuZmFpbHVyZV9zdGF0dXNfaWQKKyAgICAgICAgICAgIGlmIHNlbGYuX3Rlc3QoKToKKyAgICAg
ICAgICAgICAgICByZXR1cm4gVHJ1ZQorICAgICAgICAgICAgc2Vjb25kX3Jlc3VsdHMgPSBzZWxm
Ll9kZWxlZ2F0ZS50ZXN0X3Jlc3VsdHMoKQorICAgICAgICAgICAgc2Vjb25kX3NjcmlwdF9lcnJv
ciA9IHNlbGYuX3NjcmlwdF9lcnJvcgorICAgICAgICAgICAgaWYgc2Vjb25kX3Jlc3VsdHMgaXMg
Tm9uZToKKyAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5yZXBvcnRfZmFpbHVyZShOb25lLCBO
b25lLCBTY3JpcHRFcnJvcigiQ291bGQgbm90IHJlYWQgSlNDIHRlc3QgcmVzdWx0cyBvbiBzZWNv
bmQgcnVuLiIpKQorCisgICAgICAgICAgICBjb25zaXN0ZW50X3Jlc3VsdHMgPSBKU0NUZXN0UmVz
dWx0cy5pbnRlcnNlY3Rpb24oZmlyc3RfcmVzdWx0cywgc2Vjb25kX3Jlc3VsdHMpCiAKLSAgICAg
ICAgaWYgc2Vjb25kX3Jlc3VsdHMuZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQoKSBhbmQg
Zmlyc3RfcmVzdWx0cy5kaWRfZXhjZWVkX3Rlc3RfZmFpbHVyZV9saW1pdCgpOgogICAgICAgICAg
ICAgc2VsZi5fYnVpbGRfYW5kX3Rlc3Rfd2l0aG91dF9wYXRjaCgpCiAgICAgICAgICAgICBjbGVh
bl90cmVlX3Jlc3VsdHMgPSBzZWxmLl9kZWxlZ2F0ZS50ZXN0X3Jlc3VsdHMoKQorICAgICAgICAg
ICAgaWYgY2xlYW5fdHJlZV9yZXN1bHRzIGlzIE5vbmU6CisgICAgICAgICAgICAgICAgcmV0dXJu
IHNlbGYucmVwb3J0X2ZhaWx1cmUoTm9uZSwgTm9uZSwgU2NyaXB0RXJyb3IoIkNvdWxkIG5vdCBy
ZWFkIEpTQyB0ZXN0IHJlc3VsdHMgZm9yIGNsZWFuIHRyZWUuIikpCiAKLSAgICAgICAgICAgIGlm
IChsZW4oZmlyc3RfcmVzdWx0cy5mYWlsaW5nX3Rlc3RzKCkpIC0gbGVuKGNsZWFuX3RyZWVfcmVz
dWx0cy5mYWlsaW5nX3Rlc3RzKCkpKSA8PSA1OgotICAgICAgICAgICAgICAgIHJldHVybiBGYWxz
ZQorICAgICAgICAgICAgaWYgY29uc2lzdGVudF9yZXN1bHRzLmlzX3N1YnNldChjbGVhbl90cmVl
X3Jlc3VsdHMpOgorICAgICAgICAgICAgICAgIHJldHVybiBUcnVlCiAKICAgICAgICAgICAgIHNl
bGYuZmFpbHVyZV9zdGF0dXNfaWQgPSBmaXJzdF9mYWlsdXJlX3N0YXR1c19pZAorICAgICAgICAg
ICAgcmV0dXJuIHNlbGYucmVwb3J0X2ZhaWx1cmUoTm9uZSwgY29uc2lzdGVudF9yZXN1bHRzLCBm
aXJzdF9zY3JpcHRfZXJyb3IpCiAKLSAgICAgICAgICAgIHJldHVybiBzZWxmLnJlcG9ydF9mYWls
dXJlKGZpcnN0X3Jlc3VsdHNfYXJjaGl2ZSwgZmlyc3RfcmVzdWx0cywgZmlyc3Rfc2NyaXB0X2Vy
cm9yKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgIyBOb3RlOiBhcmNoaXZlX2xhc3RfdGVz
dF9yZXN1bHRzIGRlbGV0ZXMgdGhlIHJlc3VsdHMgZGlyZWN0b3J5LCBtYWtpbmcgdGhlc2UgY2Fs
bHMgb3JkZXItc2Vuc2l0dmUuCisgICAgICAgICAgICAjIFdlIGNvdWxkIHJlbW92ZSB0aGlzIGRl
cGVuZGVuY3kgYnkgYnVpbGRpbmcgdGhlIHRlc3RfcmVzdWx0cyBmcm9tIHRoZSBhcmNoaXZlLgor
ICAgICAgICAgICAgZmlyc3RfcmVzdWx0cyA9IHNlbGYuX2RlbGVnYXRlLnRlc3RfcmVzdWx0cygp
CisgICAgICAgICAgICBmaXJzdF9yZXN1bHRzX2FyY2hpdmUgPSBzZWxmLl9kZWxlZ2F0ZS5hcmNo
aXZlX2xhc3RfdGVzdF9yZXN1bHRzKHNlbGYuX3BhdGNoKQorICAgICAgICAgICAgZmlyc3Rfc2Ny
aXB0X2Vycm9yID0gc2VsZi5fc2NyaXB0X2Vycm9yCisgICAgICAgICAgICBmaXJzdF9mYWlsdXJl
X3N0YXR1c19pZCA9IHNlbGYuZmFpbHVyZV9zdGF0dXNfaWQKIAotICAgICAgICBpZiBzZWNvbmRf
cmVzdWx0cy5kaWRfZXhjZWVkX3Rlc3RfZmFpbHVyZV9saW1pdCgpOgotICAgICAgICAgICAgc2Vs
Zi5fc2hvdWxkX2RlZmVyX3BhdGNoX29yX3Rocm93KGZpcnN0X3Jlc3VsdHMuZmFpbGluZ190ZXN0
X3Jlc3VsdHMoKSwgZmlyc3RfcmVzdWx0c19hcmNoaXZlLCBmaXJzdF9zY3JpcHRfZXJyb3IsIGZp
cnN0X2ZhaWx1cmVfc3RhdHVzX2lkKQotICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAg
ICAgICBpZiBzZWxmLl90ZXN0KCkgYW5kIG5vdCBmaXJzdF9yZXN1bHRzLmRpZF9leGNlZWRfdGVz
dF9mYWlsdXJlX2xpbWl0KCk6CisgICAgICAgICAgICAgICAgIyBPbmx5IHJlcG9ydCBmbGFreSB0
ZXN0cyBpZiB3ZSB3ZXJlIHN1Y2Nlc3NmdWwgYXQgcGFyc2luZyByZXN1bHRzLmpzb24gYW5kIGFy
Y2hpdmluZyByZXN1bHRzLgorICAgICAgICAgICAgICAgIGlmIGZpcnN0X3Jlc3VsdHMgYW5kIGZp
cnN0X3Jlc3VsdHNfYXJjaGl2ZToKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5fcmVwb3J0X2Zs
YWt5X3Rlc3RzKGZpcnN0X3Jlc3VsdHMuZmFpbGluZ190ZXN0X3Jlc3VsdHMoKSwgZmlyc3RfcmVz
dWx0c19hcmNoaXZlKQorICAgICAgICAgICAgICAgIHJldHVybiBUcnVlCiAKLSAgICAgICAgaWYg
Zmlyc3RfcmVzdWx0cy5kaWRfZXhjZWVkX3Rlc3RfZmFpbHVyZV9saW1pdCgpOgotICAgICAgICAg
ICAgc2VsZi5fc2hvdWxkX2RlZmVyX3BhdGNoX29yX3Rocm93KHNlY29uZF9yZXN1bHRzLmZhaWxp
bmdfdGVzdF9yZXN1bHRzKCksIHNlY29uZF9yZXN1bHRzX2FyY2hpdmUsIHNlY29uZF9zY3JpcHRf
ZXJyb3IsIHNlY29uZF9mYWlsdXJlX3N0YXR1c19pZCkKLSAgICAgICAgICAgIHJldHVybiBGYWxz
ZQorICAgICAgICAgICAgc2Vjb25kX3Jlc3VsdHMgPSBzZWxmLl9kZWxlZ2F0ZS50ZXN0X3Jlc3Vs
dHMoKQorICAgICAgICAgICAgc2Vjb25kX3Jlc3VsdHNfYXJjaGl2ZSA9IHNlbGYuX2RlbGVnYXRl
LmFyY2hpdmVfbGFzdF90ZXN0X3Jlc3VsdHMoc2VsZi5fcGF0Y2gpCisgICAgICAgICAgICBzZWNv
bmRfc2NyaXB0X2Vycm9yID0gc2VsZi5fc2NyaXB0X2Vycm9yCisgICAgICAgICAgICBzZWNvbmRf
ZmFpbHVyZV9zdGF0dXNfaWQgPSBzZWxmLmZhaWx1cmVfc3RhdHVzX2lkCiAKLSAgICAgICAgaWYg
c2VsZi5fcmVzdWx0c19mYWlsZWRfZGlmZmVyZW50X3Rlc3RzKGZpcnN0X3Jlc3VsdHMsIHNlY29u
ZF9yZXN1bHRzKToKLSAgICAgICAgICAgIGZpcnN0X2ZhaWxpbmdfcmVzdWx0c19zZXQgPSBmcm96
ZW5zZXQoZmlyc3RfcmVzdWx0cy5mYWlsaW5nX3Rlc3RfcmVzdWx0cygpKQotICAgICAgICAgICAg
c2Vjb25kX2ZhaWxpbmdfcmVzdWx0c19zZXQgPSBmcm96ZW5zZXQoc2Vjb25kX3Jlc3VsdHMuZmFp
bGluZ190ZXN0X3Jlc3VsdHMoKSkKKyAgICAgICAgICAgIGlmIHNlY29uZF9yZXN1bHRzLmRpZF9l
eGNlZWRfdGVzdF9mYWlsdXJlX2xpbWl0KCkgYW5kIGZpcnN0X3Jlc3VsdHMuZGlkX2V4Y2VlZF90
ZXN0X2ZhaWx1cmVfbGltaXQoKToKKyAgICAgICAgICAgICAgICBzZWxmLl9idWlsZF9hbmRfdGVz
dF93aXRob3V0X3BhdGNoKCkKKyAgICAgICAgICAgICAgICBjbGVhbl90cmVlX3Jlc3VsdHMgPSBz
ZWxmLl9kZWxlZ2F0ZS50ZXN0X3Jlc3VsdHMoKQogCi0gICAgICAgICAgICB0ZXN0c190aGF0X29u
bHlfZmFpbGVkX2ZpcnN0ID0gZmlyc3RfZmFpbGluZ19yZXN1bHRzX3NldC5kaWZmZXJlbmNlKHNl
Y29uZF9mYWlsaW5nX3Jlc3VsdHNfc2V0KQotICAgICAgICAgICAgc2VsZi5fcmVwb3J0X2ZsYWt5
X3Rlc3RzKHRlc3RzX3RoYXRfb25seV9mYWlsZWRfZmlyc3QsIGZpcnN0X3Jlc3VsdHNfYXJjaGl2
ZSkKKyAgICAgICAgICAgICAgICBpZiAobGVuKGZpcnN0X3Jlc3VsdHMuZmFpbGluZ190ZXN0cygp
KSAtIGxlbihjbGVhbl90cmVlX3Jlc3VsdHMuZmFpbGluZ190ZXN0cygpKSkgPD0gNToKKyAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCiAKLSAgICAgICAgICAgIHRlc3RzX3RoYXRfb25s
eV9mYWlsZWRfc2Vjb25kID0gc2Vjb25kX2ZhaWxpbmdfcmVzdWx0c19zZXQuZGlmZmVyZW5jZShm
aXJzdF9mYWlsaW5nX3Jlc3VsdHNfc2V0KQotICAgICAgICAgICAgc2VsZi5fcmVwb3J0X2ZsYWt5
X3Rlc3RzKHRlc3RzX3RoYXRfb25seV9mYWlsZWRfc2Vjb25kLCBzZWNvbmRfcmVzdWx0c19hcmNo
aXZlKQorICAgICAgICAgICAgICAgIHNlbGYuZmFpbHVyZV9zdGF0dXNfaWQgPSBmaXJzdF9mYWls
dXJlX3N0YXR1c19pZAogCi0gICAgICAgICAgICB0ZXN0c190aGF0X2NvbnNpc3RlbnRseV9mYWls
ZWQgPSBmaXJzdF9mYWlsaW5nX3Jlc3VsdHNfc2V0LmludGVyc2VjdGlvbihzZWNvbmRfZmFpbGlu
Z19yZXN1bHRzX3NldCkKLSAgICAgICAgICAgIGlmIHRlc3RzX3RoYXRfY29uc2lzdGVudGx5X2Zh
aWxlZDoKLSAgICAgICAgICAgICAgICBpZiBzZWxmLl9zaG91bGRfZGVmZXJfcGF0Y2hfb3JfdGhy
b3codGVzdHNfdGhhdF9jb25zaXN0ZW50bHlfZmFpbGVkLCBmaXJzdF9yZXN1bHRzX2FyY2hpdmUs
IGZpcnN0X3NjcmlwdF9lcnJvciwgZmlyc3RfZmFpbHVyZV9zdGF0dXNfaWQpOgotICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gRmFsc2UgICMgRGVmZXIgcGF0Y2gKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gc2VsZi5yZXBvcnRfZmFpbHVyZShmaXJzdF9yZXN1bHRzX2FyY2hpdmUsIGZpcnN0X3Jl
c3VsdHMsIGZpcnN0X3NjcmlwdF9lcnJvcikKIAotICAgICAgICAgICAgIyBBdCB0aGlzIHBvaW50
IHdlIGtub3cgdGhhdCBhdCBsZWFzdCBvbmUgdGVzdCBmbGFrZWQsIGJ1dCBubyBjb25zaXN0ZW50
IGZhaWx1cmVzCi0gICAgICAgICAgICAjIHdlcmUgaW50cm9kdWNlZC4gVGhpcyBpcyBhIGJpdCBv
ZiBhIGdyZXktem9uZS4KLSAgICAgICAgICAgIHJldHVybiBGYWxzZSAgIyBEZWZlciBwYXRjaAor
ICAgICAgICAgICAgaWYgc2Vjb25kX3Jlc3VsdHMuZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGlt
aXQoKToKKyAgICAgICAgICAgICAgICBzZWxmLl9zaG91bGRfZGVmZXJfcGF0Y2hfb3JfdGhyb3co
Zmlyc3RfcmVzdWx0cy5mYWlsaW5nX3Rlc3RfcmVzdWx0cygpLCBmaXJzdF9yZXN1bHRzX2FyY2hp
dmUsIGZpcnN0X3NjcmlwdF9lcnJvciwgZmlyc3RfZmFpbHVyZV9zdGF0dXNfaWQpCisgICAgICAg
ICAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICAgICAgICAgIGlmIGZpcnN0X3Jlc3VsdHMuZGlk
X2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQoKToKKyAgICAgICAgICAgICAgICBzZWxmLl9zaG91
bGRfZGVmZXJfcGF0Y2hfb3JfdGhyb3coc2Vjb25kX3Jlc3VsdHMuZmFpbGluZ190ZXN0X3Jlc3Vs
dHMoKSwgc2Vjb25kX3Jlc3VsdHNfYXJjaGl2ZSwgc2Vjb25kX3NjcmlwdF9lcnJvciwgc2Vjb25k
X2ZhaWx1cmVfc3RhdHVzX2lkKQorICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQorCisgICAg
ICAgICAgICBpZiBzZWxmLl9yZXN1bHRzX2ZhaWxlZF9kaWZmZXJlbnRfdGVzdHMoZmlyc3RfcmVz
dWx0cywgc2Vjb25kX3Jlc3VsdHMpOgorICAgICAgICAgICAgICAgIGZpcnN0X2ZhaWxpbmdfcmVz
dWx0c19zZXQgPSBmcm96ZW5zZXQoZmlyc3RfcmVzdWx0cy5mYWlsaW5nX3Rlc3RfcmVzdWx0cygp
KQorICAgICAgICAgICAgICAgIHNlY29uZF9mYWlsaW5nX3Jlc3VsdHNfc2V0ID0gZnJvemVuc2V0
KHNlY29uZF9yZXN1bHRzLmZhaWxpbmdfdGVzdF9yZXN1bHRzKCkpCisKKyAgICAgICAgICAgICAg
ICB0ZXN0c190aGF0X29ubHlfZmFpbGVkX2ZpcnN0ID0gZmlyc3RfZmFpbGluZ19yZXN1bHRzX3Nl
dC5kaWZmZXJlbmNlKHNlY29uZF9mYWlsaW5nX3Jlc3VsdHNfc2V0KQorICAgICAgICAgICAgICAg
IHNlbGYuX3JlcG9ydF9mbGFreV90ZXN0cyh0ZXN0c190aGF0X29ubHlfZmFpbGVkX2ZpcnN0LCBm
aXJzdF9yZXN1bHRzX2FyY2hpdmUpCiAKLSAgICAgICAgaWYgc2VsZi5fc2hvdWxkX2RlZmVyX3Bh
dGNoX29yX3Rocm93KGZpcnN0X3Jlc3VsdHMuZmFpbGluZ190ZXN0X3Jlc3VsdHMoKSwgZmlyc3Rf
cmVzdWx0c19hcmNoaXZlLCBmaXJzdF9zY3JpcHRfZXJyb3IsIGZpcnN0X2ZhaWx1cmVfc3RhdHVz
X2lkKToKLSAgICAgICAgICAgIHJldHVybiBGYWxzZSAgIyBEZWZlciBwYXRjaAorICAgICAgICAg
ICAgICAgIHRlc3RzX3RoYXRfb25seV9mYWlsZWRfc2Vjb25kID0gc2Vjb25kX2ZhaWxpbmdfcmVz
dWx0c19zZXQuZGlmZmVyZW5jZShmaXJzdF9mYWlsaW5nX3Jlc3VsdHNfc2V0KQorICAgICAgICAg
ICAgICAgIHNlbGYuX3JlcG9ydF9mbGFreV90ZXN0cyh0ZXN0c190aGF0X29ubHlfZmFpbGVkX3Nl
Y29uZCwgc2Vjb25kX3Jlc3VsdHNfYXJjaGl2ZSkKIAotICAgICAgICAjIEF0IHRoaXMgcG9pbnQs
IHdlIGtub3cgdGhhdCB0aGUgZmlyc3QgYW5kIHNlY29uZCBydW5zIGhhZCB0aGUgZXhhY3Qgc2Ft
ZSBmYWlsdXJlcywKLSAgICAgICAgIyBhbmQgdGhhdCB0aG9zZSBmYWlsdXJlcyBhcmUgYWxsIHBy
ZXNlbnQgb24gdGhlIGNsZWFuIHRyZWUsIHNvIHdlIGNhbiBzYXkgd2l0aCBjZXJ0YWludHkKLSAg
ICAgICAgIyB0aGF0IHRoZSBwYXRjaCBpcyBnb29kLgotICAgICAgICByZXR1cm4gVHJ1ZQorICAg
ICAgICAgICAgICAgIHRlc3RzX3RoYXRfY29uc2lzdGVudGx5X2ZhaWxlZCA9IGZpcnN0X2ZhaWxp
bmdfcmVzdWx0c19zZXQuaW50ZXJzZWN0aW9uKHNlY29uZF9mYWlsaW5nX3Jlc3VsdHNfc2V0KQor
ICAgICAgICAgICAgICAgIGlmIHRlc3RzX3RoYXRfY29uc2lzdGVudGx5X2ZhaWxlZDoKKyAgICAg
ICAgICAgICAgICAgICAgaWYgc2VsZi5fc2hvdWxkX2RlZmVyX3BhdGNoX29yX3Rocm93KHRlc3Rz
X3RoYXRfY29uc2lzdGVudGx5X2ZhaWxlZCwgZmlyc3RfcmVzdWx0c19hcmNoaXZlLCBmaXJzdF9z
Y3JpcHRfZXJyb3IsIGZpcnN0X2ZhaWx1cmVfc3RhdHVzX2lkKToKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBGYWxzZSAgIyBEZWZlciBwYXRjaAorCisgICAgICAgICAgICAgICAgIyBB
dCB0aGlzIHBvaW50IHdlIGtub3cgdGhhdCBhdCBsZWFzdCBvbmUgdGVzdCBmbGFrZWQsIGJ1dCBu
byBjb25zaXN0ZW50IGZhaWx1cmVzCisgICAgICAgICAgICAgICAgIyB3ZXJlIGludHJvZHVjZWQu
IFRoaXMgaXMgYSBiaXQgb2YgYSBncmV5LXpvbmUuCisgICAgICAgICAgICAgICAgcmV0dXJuIEZh
bHNlICAjIERlZmVyIHBhdGNoCisKKyAgICAgICAgICAgIGlmIHNlbGYuX3Nob3VsZF9kZWZlcl9w
YXRjaF9vcl90aHJvdyhmaXJzdF9yZXN1bHRzLmZhaWxpbmdfdGVzdF9yZXN1bHRzKCksIGZpcnN0
X3Jlc3VsdHNfYXJjaGl2ZSwgZmlyc3Rfc2NyaXB0X2Vycm9yLCBmaXJzdF9mYWlsdXJlX3N0YXR1
c19pZCk6CisgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlICAjIERlZmVyIHBhdGNoCisKKyAg
ICAgICAgICAgICMgQXQgdGhpcyBwb2ludCwgd2Uga25vdyB0aGF0IHRoZSBmaXJzdCBhbmQgc2Vj
b25kIHJ1bnMgaGFkIHRoZSBleGFjdCBzYW1lIGZhaWx1cmVzLAorICAgICAgICAgICAgIyBhbmQg
dGhhdCB0aG9zZSBmYWlsdXJlcyBhcmUgYWxsIHByZXNlbnQgb24gdGhlIGNsZWFuIHRyZWUsIHNv
IHdlIGNhbiBzYXkgd2l0aCBjZXJ0YWludHkKKyAgICAgICAgICAgICMgdGhhdCB0aGUgcGF0Y2gg
aXMgZ29vZC4KKyAgICAgICAgICAgIHJldHVybiBUcnVlCiAKICAgICBkZWYgcmVzdWx0c19hcmNo
aXZlX2Zyb21fcGF0Y2hfdGVzdF9ydW4oc2VsZiwgcGF0Y2gpOgogICAgICAgICBhc3NlcnQoc2Vs
Zi5fcGF0Y2guaWQoKSA9PSBwYXRjaC5pZCgpKSAgIyBQYXRjaEFuYWx5c2lzVGFzayBpcyBub3Qg
Y3VycmVudGx5IHJlLXVzZWFibGUuCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L3Rvb2wvY29tbWFuZHMvZG93bmxvYWQucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wv
Y29tbWFuZHMvZG93bmxvYWQucHkKaW5kZXggZTUxNjlhYWM4NWYzMTg2ZTg0YmU5ZDUwMjQ1OTJi
ZDdmZTZkNWRkNS4uMTRiNTViYzNmN2M5YzEwYjVkZjYwZmMxYWY4N2Q3Y2EzOWUzYmM5NCAxMDA2
NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Rvd25sb2FkLnB5
CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9kb3dubG9hZC5weQpA
QCAtMSw1ICsxLDUgQEAKICMgQ29weXJpZ2h0IChjKSAyMDA5LCAyMDExIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0jIENvcHlyaWdodCAoYykgMjAwOSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoYykgMjAwOSwgMjAxNyBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogIyBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC04
Nyw2ICs4NywxNCBAQCBjbGFzcyBCdWlsZEFuZFRlc3QoQWJzdHJhY3RTZXF1ZW5jZWRDb21tYW5k
KToKICAgICBdCiAKIAorY2xhc3MgQ2hlY2tQYXRjaFJlbGV2YW5jZShBYnN0cmFjdFNlcXVlbmNl
ZENvbW1hbmQpOgorICAgIG5hbWUgPSAiY2hlY2stcGF0Y2gtcmVsZXZhbmNlIgorICAgIGhlbHBf
dGV4dCA9ICJDaGVjayBpZiB0aGlzIHBhdGNoIG5lZWRzIHRvIGJlIHRlc3RlZCIKKyAgICBzdGVw
cyA9IFsKKyAgICAgICAgc3RlcHMuQ2hlY2tQYXRjaFJlbGV2YW5jZSwKKyAgICBdCisKKwogY2xh
c3MgTGFuZChBYnN0cmFjdFNlcXVlbmNlZENvbW1hbmQpOgogICAgIG5hbWUgPSAibGFuZCIKICAg
ICBoZWxwX3RleHQgPSAiTGFuZCB0aGUgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeSBkaWZmIGFu
ZCB1cGRhdGVzIHRoZSBhc3NvY2lhdGVkIGJ1ZyBpZiBhbnkiCmRpZmYgLS1naXQgYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZWFybHl3YXJuaW5nc3lzdGVtLnB5IGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Vhcmx5d2FybmluZ3N5c3RlbS5weQpp
bmRleCA5YmMwNDE4NjBjZTY3NDU0NDU0ZTRiMjUxNDM4YTlkYmU1MjY0NTEzLi5hODE3MDU5MmQ3
YzE5NzkzNGViMjY5NzBhOTZkNzRlMWJkZWM0ZmM5IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZWFybHl3YXJuaW5nc3lzdGVtLnB5CisrKyBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9lYXJseXdhcm5pbmdzeXN0ZW0ucHkKQEAg
LTEsNCArMSw1IEBACiAjIENvcHlyaWdodCAoYykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKGMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtMjgsNiArMjksNyBA
QAogCiBpbXBvcnQganNvbgogaW1wb3J0IGxvZ2dpbmcKK2ltcG9ydCBvcwogZnJvbSBvcHRwYXJz
ZSBpbXBvcnQgbWFrZV9vcHRpb24KIAogZnJvbSB3ZWJraXRweS5jb21tb24uY29uZmlnLmNvbW1p
dHRlcnMgaW1wb3J0IENvbW1pdHRlckxpc3QKQEAgLTM2LDcgKzM4LDggQEAgZnJvbSB3ZWJraXRw
eS5jb21tb24uc3lzdGVtLmZpbGVzeXN0ZW0gaW1wb3J0IEZpbGVTeXN0ZW0KIGZyb20gd2Via2l0
cHkuY29tbW9uLnN5c3RlbS5leGVjdXRpdmUgaW1wb3J0IFNjcmlwdEVycm9yCiBmcm9tIHdlYmtp
dHB5LnRvb2wuYm90LmVhcmx5d2FybmluZ3N5c3RlbXRhc2sgaW1wb3J0IEVhcmx5V2FybmluZ1N5
c3RlbVRhc2ssIEVhcmx5V2FybmluZ1N5c3RlbVRhc2tEZWxlZ2F0ZQogZnJvbSB3ZWJraXRweS50
b29sLmJvdC5sYXlvdXR0ZXN0cmVzdWx0c3JlYWRlciBpbXBvcnQgTGF5b3V0VGVzdFJlc3VsdHNS
ZWFkZXIKLWZyb20gd2Via2l0cHkudG9vbC5ib3QucGF0Y2hhbmFseXNpc3Rhc2sgaW1wb3J0IFVu
YWJsZVRvQXBwbHlQYXRjaCwgUGF0Y2hJc05vdFZhbGlkCitmcm9tIHdlYmtpdHB5LnRvb2wuYm90
LmpzY3Rlc3RyZXN1bHRzcmVhZGVyIGltcG9ydCBKU0NUZXN0UmVzdWx0c1JlYWRlcgorZnJvbSB3
ZWJraXRweS50b29sLmJvdC5wYXRjaGFuYWx5c2lzdGFzayBpbXBvcnQgVW5hYmxlVG9BcHBseVBh
dGNoLCBQYXRjaElzTm90VmFsaWQsIFBhdGNoSXNOb3RBcHBsaWNhYmxlCiBmcm9tIHdlYmtpdHB5
LnRvb2wuYm90LnF1ZXVlZW5naW5lIGltcG9ydCBRdWV1ZUVuZ2luZQogZnJvbSB3ZWJraXRweS50
b29sLmNvbW1hbmRzLnF1ZXVlcyBpbXBvcnQgQWJzdHJhY3RSZXZpZXdRdWV1ZQogCkBAIC01Myw3
ICs1NiwxMiBAQCBjbGFzcyBBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbShBYnN0cmFjdFJldmll
d1F1ZXVlLCBFYXJseVdhcm5pbmdTeXN0ZW1UYXNrRGVsZQogCiAgICAgZGVmIGJlZ2luX3dvcmtf
cXVldWUoc2VsZik6CiAgICAgICAgIEFic3RyYWN0UmV2aWV3UXVldWUuYmVnaW5fd29ya19xdWV1
ZShzZWxmKQotICAgICAgICBzZWxmLl9sYXlvdXRfdGVzdF9yZXN1bHRzX3JlYWRlciA9IExheW91
dFRlc3RSZXN1bHRzUmVhZGVyKHNlbGYuX3Rvb2wsIHNlbGYuX3BvcnQucmVzdWx0c19kaXJlY3Rv
cnkoKSwgc2VsZi5fbG9nX2RpcmVjdG9yeSgpKQorCisgICAgICAgIGlmIHNlbGYuZ3JvdXAoKSA9
PSAianNjIjoKKyAgICAgICAgICAgIGRpciA9IG9zLnBhdGguZGlybmFtZShvcy5wYXRoLmRpcm5h
bWUob3MucGF0aC5kaXJuYW1lKHNlbGYuX3BvcnQucmVzdWx0c19kaXJlY3RvcnkoKSkpKQorICAg
ICAgICAgICAgc2VsZi5fdGVzdF9yZXN1bHRzX3JlYWRlciA9IEpTQ1Rlc3RSZXN1bHRzUmVhZGVy
KHNlbGYuX3Rvb2wsIGRpcikKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYuX3Rlc3Rf
cmVzdWx0c19yZWFkZXIgPSBMYXlvdXRUZXN0UmVzdWx0c1JlYWRlcihzZWxmLl90b29sLCBzZWxm
Ll9wb3J0LnJlc3VsdHNfZGlyZWN0b3J5KCksIHNlbGYuX2xvZ19kaXJlY3RvcnkoKSkKIAogICAg
IGRlZiBfZmFpbGluZ190ZXN0c19tZXNzYWdlKHNlbGYsIHRhc2ssIHBhdGNoKToKICAgICAgICAg
cmVzdWx0cyA9IHRhc2sucmVzdWx0c19mcm9tX3BhdGNoX3Rlc3RfcnVuKHBhdGNoKQpAQCAtOTMs
NiArMTAxLDEwIEBAIGNsYXNzIEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtKEFic3RyYWN0UmV2
aWV3UXVldWUsIEVhcmx5V2FybmluZ1N5c3RlbVRhc2tEZWxlCiAgICAgICAgIGV4Y2VwdCBVbmFi
bGVUb0FwcGx5UGF0Y2gsIGU6CiAgICAgICAgICAgICBzZWxmLl9kaWRfZXJyb3IocGF0Y2gsICIl
cyB1bmFibGUgdG8gYXBwbHkgcGF0Y2guIiAlIHNlbGYubmFtZSkKICAgICAgICAgICAgIHJldHVy
biBGYWxzZQorICAgICAgICBleGNlcHQgUGF0Y2hJc05vdEFwcGxpY2FibGUsIGU6CisgICAgICAg
ICAgICBzZWxmLl91cGRhdGVfc3RhdHVzKCJQYXRjaCBub3QgYXBwbGljYWJsZSB0byAlcy4iICUg
c2VsZi5uYW1lLCBwYXRjaCkKKyAgICAgICAgICAgIHNlbGYuX3JlbGVhc2Vfd29ya19pdGVtKHBh
dGNoKQorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCiAgICAgICAgIGV4Y2VwdCBTY3JpcHRFcnJv
ciwgZToKICAgICAgICAgICAgIHNlbGYuX3Bvc3RfcmVqZWN0X21lc3NhZ2Vfb25fYnVnKHNlbGYu
X3Rvb2wsIHBhdGNoLCB0YXNrLmZhaWx1cmVfc3RhdHVzX2lkLCBzZWxmLl9mYWlsaW5nX3Rlc3Rz
X21lc3NhZ2UodGFzaywgcGF0Y2gpKQogICAgICAgICAgICAgcmVzdWx0c19hcmNoaXZlID0gdGFz
ay5yZXN1bHRzX2FyY2hpdmVfZnJvbV9wYXRjaF90ZXN0X3J1bihwYXRjaCkKQEAgLTExNywxNCAr
MTI5LDE3IEBAIGNsYXNzIEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtKEFic3RyYWN0UmV2aWV3
UXVldWUsIEVhcmx5V2FybmluZ1N5c3RlbVRhc2tEZWxlCiAgICAgICAgIHJldHVybiBzZWxmLl91
cGRhdGVfc3RhdHVzKG1lc3NhZ2UsIHBhdGNoPXBhdGNoLCByZXN1bHRzX2ZpbGU9ZmFpbHVyZV9s
b2cpCiAKICAgICBkZWYgdGVzdF9yZXN1bHRzKHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi5f
bGF5b3V0X3Rlc3RfcmVzdWx0c19yZWFkZXIucmVzdWx0cygpCisgICAgICAgIHJldHVybiBzZWxm
Ll90ZXN0X3Jlc3VsdHNfcmVhZGVyLnJlc3VsdHMoKQogCiAgICAgZGVmIGFyY2hpdmVfbGFzdF90
ZXN0X3Jlc3VsdHMoc2VsZiwgcGF0Y2gpOgotICAgICAgICByZXR1cm4gc2VsZi5fbGF5b3V0X3Rl
c3RfcmVzdWx0c19yZWFkZXIuYXJjaGl2ZShwYXRjaCkKKyAgICAgICAgcmV0dXJuIHNlbGYuX3Rl
c3RfcmVzdWx0c19yZWFkZXIuYXJjaGl2ZShwYXRjaCkKIAogICAgIGRlZiBidWlsZF9zdHlsZShz
ZWxmKToKICAgICAgICAgcmV0dXJuIHNlbGYuX2J1aWxkX3N0eWxlCiAKKyAgICBkZWYgZ3JvdXAo
c2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl9ncm91cAorCiAgICAgZGVmIHJlZmV0Y2hfcGF0
Y2goc2VsZiwgcGF0Y2gpOgogICAgICAgICByZXR1cm4gc2VsZi5fdG9vbC5idWdzLmZldGNoX2F0
dGFjaG1lbnQocGF0Y2guaWQoKSkKIApAQCAtMTU2LDUgKzE3MSw2IEBAIGNsYXNzIEFic3RyYWN0
RWFybHlXYXJuaW5nU3lzdGVtKEFic3RyYWN0UmV2aWV3UXVldWUsIEVhcmx5V2FybmluZ1N5c3Rl
bVRhc2tEZWxlCiAgICAgICAgICAgICAgICAgJ19idWlsZF9zdHlsZSc6IGNvbmZpZy5nZXQoJ3N0
eWxlJywgInJlbGVhc2UiKSwKICAgICAgICAgICAgICAgICAnd2F0Y2hlcnMnOiBjb25maWcuZ2V0
KCd3YXRjaGVycycsIFtdKSwKICAgICAgICAgICAgICAgICAncnVuX3Rlc3RzJzogY29uZmlnLmdl
dCgncnVuVGVzdHMnLCBjbHMucnVuX3Rlc3RzKSwKKyAgICAgICAgICAgICAgICAnX2dyb3VwJzog
Y29uZmlnLmdldCgnZ3JvdXAnLCBOb25lKSwKICAgICAgICAgICAgIH0pKQogICAgICAgICByZXR1
cm4gY2xhc3NlcwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1h
bmRzL2Vhcmx5d2FybmluZ3N5c3RlbV91bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvdG9vbC9jb21tYW5kcy9lYXJseXdhcm5pbmdzeXN0ZW1fdW5pdHRlc3QucHkKaW5kZXggMDg4
ODc4MTNjZTJlOTNhOGVjOWRhMzc2MzZlY2JkZTllZmYzYzllNy4uNWQ3OGE4MTcwYmZhYjZkMzI3
NjRlNWRkMjJjZjVlNzAxNGRiNjMyOCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS90b29sL2NvbW1hbmRzL2Vhcmx5d2FybmluZ3N5c3RlbV91bml0dGVzdC5weQorKysgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZWFybHl3YXJuaW5nc3lzdGVtX3VuaXR0
ZXN0LnB5CkBAIC0xLDQgKzEsNSBAQAogIyBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTI5
LDYgKzMwLDcgQEAKIGZyb20gd2Via2l0cHkudGhpcmRwYXJ0eS5tb2NrIGltcG9ydCBNb2NrCiBm
cm9tIHdlYmtpdHB5LmNvbW1vbi5ob3N0IGltcG9ydCBIb3N0CiBmcm9tIHdlYmtpdHB5LmNvbW1v
bi5ob3N0X21vY2sgaW1wb3J0IE1vY2tIb3N0Citmcm9tIHdlYmtpdHB5LmNvbW1vbi5uZXQuanNj
dGVzdHJlc3VsdHMgaW1wb3J0IEpTQ1Rlc3RSZXN1bHRzCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5u
ZXQubGF5b3V0dGVzdHJlc3VsdHMgaW1wb3J0IExheW91dFRlc3RSZXN1bHRzCiBmcm9tIHdlYmtp
dHB5LmNvbW1vbi5zeXN0ZW0ub3V0cHV0Y2FwdHVyZSBpbXBvcnQgT3V0cHV0Q2FwdHVyZQogZnJv
bSB3ZWJraXRweS5sYXlvdXRfdGVzdHMubW9kZWxzIGltcG9ydCB0ZXN0X3Jlc3VsdHMKQEAgLTQ3
LDYgKzQ5LDcgQEAgY2xhc3MgQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW1UZXN0KFF1ZXVlc1Rl
c3QpOgogICAgICAgICBjbGFzcyBUZXN0RVdTKEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtKToK
ICAgICAgICAgICAgIHBvcnRfbmFtZSA9ICJ3aW4iICAjIE5lZWRzIHRvIGJlIGEgcG9ydCB3aGlj
aCBwb3J0L2ZhY3RvcnkgdW5kZXJzdGFuZHMuCiAgICAgICAgICAgICBfYnVpbGRfc3R5bGUgPSBO
b25lCisgICAgICAgICAgICBfZ3JvdXAgPSBOb25lCiAKICAgICAgICAgZXdzID0gVGVzdEVXUygp
CiAgICAgICAgIGV3cy5iaW5kX3RvX3Rvb2woTW9ja1Rvb2woKSkKQEAgLTYwLDYgKzYzLDIzIEBA
IGNsYXNzIEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtVGVzdChRdWV1ZXNUZXN0KToKICAgICAg
ICAgcGF0Y2ggPSBld3MuX3Rvb2wuYnVncy5mZXRjaF9hdHRhY2htZW50KDEwMDAwKQogICAgICAg
ICBzZWxmLmFzc2VydE11bHRpTGluZUVxdWFsKGV3cy5fZmFpbGluZ190ZXN0c19tZXNzYWdlKHRh
c2ssIHBhdGNoKSwgIk5ldyBmYWlsaW5nIHRlc3RzOlxuZm9vLmh0bWxcbmJhci5odG1sIikKIAor
ICAgIGRlZiB0ZXN0X2ZhaWxpbmdfanNjX3Rlc3RzX21lc3NhZ2Uoc2VsZik6CisgICAgICAgICMg
TmVlZGVkIHRvIGRlZmluZSBwb3J0X25hbWUsIHVzZWQgaW4gQWJzdHJhY3RFYXJseVdhcm5pbmdT
eXN0ZW0uX19pbml0X18KKyAgICAgICAgY2xhc3MgVGVzdEVXUyhBYnN0cmFjdEVhcmx5V2Fybmlu
Z1N5c3RlbSk6CisgICAgICAgICAgICBwb3J0X25hbWUgPSAid2luIiAgIyBOZWVkcyB0byBiZSBh
IHBvcnQgd2hpY2ggcG9ydC9mYWN0b3J5IHVuZGVyc3RhbmRzLgorICAgICAgICAgICAgX2J1aWxk
X3N0eWxlID0gTm9uZQorICAgICAgICAgICAgX2dyb3VwID0gImpzYyIKKworICAgICAgICBld3Mg
PSBUZXN0RVdTKCkKKyAgICAgICAgZXdzLmJpbmRfdG9fdG9vbChNb2NrVG9vbCgpKQorICAgICAg
ICBld3MuaG9zdCA9IE1vY2tIb3N0KCkKKyAgICAgICAgZXdzLl9vcHRpb25zID0gTW9ja09wdGlv
bnMocG9ydD1Ob25lLCBjb25maXJtPUZhbHNlKQorICAgICAgICBPdXRwdXRDYXB0dXJlKCkuYXNz
ZXJ0X291dHB1dHMoc2VsZiwgZXdzLmJlZ2luX3dvcmtfcXVldWUsIGV4cGVjdGVkX2xvZ3M9c2Vs
Zi5fZGVmYXVsdF9iZWdpbl93b3JrX3F1ZXVlX2xvZ3MoZXdzLm5hbWUpKQorICAgICAgICB0YXNr
ID0gTW9jaygpCisgICAgICAgIHRhc2sucmVzdWx0c19mcm9tX3BhdGNoX3Rlc3RfcnVuID0gbGFt
YmRhIGE6IEpTQ1Rlc3RSZXN1bHRzKEZhbHNlLCBbImVzNi55YW1sL2VzNi90eXBlZF9hcnJheXNf
SW50OEFycmF5LmpzLmRlZmF1bHQiLCAiZXM2LnlhbWwvZXM2L3R5cGVkX2FycmF5c19VaW50OEFy
cmF5LmpzLmRlZmF1bHQiXSkKKyAgICAgICAgcGF0Y2ggPSBld3MuX3Rvb2wuYnVncy5mZXRjaF9h
dHRhY2htZW50KDEwMDAwKQorICAgICAgICBzZWxmLmFzc2VydE11bHRpTGluZUVxdWFsKGV3cy5f
ZmFpbGluZ190ZXN0c19tZXNzYWdlKHRhc2ssIHBhdGNoKSwgIk5ldyBmYWlsaW5nIHRlc3RzOlxu
ZXM2LnlhbWwvZXM2L3R5cGVkX2FycmF5c19JbnQ4QXJyYXkuanMuZGVmYXVsdFxuZXM2LnlhbWwv
ZXM2L3R5cGVkX2FycmF5c19VaW50OEFycmF5LmpzLmRlZmF1bHRcbmFwaVRlc3RzIikKKwogCiBj
bGFzcyBFYXJseVdhcm5pbmdTeXN0ZW1UZXN0KFF1ZXVlc1Rlc3QpOgogICAgIGRlZiBfZGVmYXVs
dF9leHBlY3RlZF9sb2dzKHNlbGYsIGV3cyk6CkBAIC02OCw5ICs4OCwxMCBAQCBjbGFzcyBFYXJs
eVdhcm5pbmdTeXN0ZW1UZXN0KFF1ZXVlc1Rlc3QpOgogICAgICAgICAgICAgInBvcnQiOiBld3Mu
cG9ydF9uYW1lLAogICAgICAgICAgICAgImFyY2hpdGVjdHVyZSI6ICIgLS1hcmNoaXRlY3R1cmU9
JXMiICUgZXdzLmFyY2hpdGVjdHVyZSBpZiBld3MuYXJjaGl0ZWN0dXJlIGVsc2UgIiIsCiAgICAg
ICAgICAgICAiYnVpbGRfc3R5bGUiOiBld3MuYnVpbGRfc3R5bGUoKSwKKyAgICAgICAgICAgICJn
cm91cCI6IGV3cy5ncm91cCgpLAogICAgICAgICB9CiAgICAgICAgIGlmIGV3cy5ydW5fdGVzdHM6
Ci0gICAgICAgICAgICBydW5fdGVzdHNfbGluZSA9ICJSdW5uaW5nOiB3ZWJraXQtcGF0Y2ggLS1z
dGF0dXMtaG9zdD1leGFtcGxlLmNvbSBidWlsZC1hbmQtdGVzdCAtLW5vLWNsZWFuIC0tbm8tdXBk
YXRlIC0tdGVzdCAtLW5vbi1pbnRlcmFjdGl2ZSAtLWJ1aWxkLXN0eWxlPSUoYnVpbGRfc3R5bGUp
cyAtLXBvcnQ9JShwb3J0KXMlKGFyY2hpdGVjdHVyZSlzXG4iICUgc3RyaW5nX3JlcGxhY2VtZW50
cworICAgICAgICAgICAgcnVuX3Rlc3RzX2xpbmUgPSAiUnVubmluZzogd2Via2l0LXBhdGNoIC0t
c3RhdHVzLWhvc3Q9ZXhhbXBsZS5jb20gYnVpbGQtYW5kLXRlc3QgLS1uby1jbGVhbiAtLW5vLXVw
ZGF0ZSAtLXRlc3QgLS1ub24taW50ZXJhY3RpdmUgLS1idWlsZC1zdHlsZT0lKGJ1aWxkX3N0eWxl
KXMgLS1ncm91cD0lKGdyb3VwKXMgLS1wb3J0PSUocG9ydClzJShhcmNoaXRlY3R1cmUpc1xuIiAl
IHN0cmluZ19yZXBsYWNlbWVudHMKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIHJ1bl90ZXN0
c19saW5lID0gIiIKICAgICAgICAgc3RyaW5nX3JlcGxhY2VtZW50c1sncnVuX3Rlc3RzX2xpbmUn
XSA9IHJ1bl90ZXN0c19saW5lCkBAIC04MSw3ICsxMDIsOCBAQCBjbGFzcyBFYXJseVdhcm5pbmdT
eXN0ZW1UZXN0KFF1ZXVlc1Rlc3QpOgogUnVubmluZzogd2Via2l0LXBhdGNoIC0tc3RhdHVzLWhv
c3Q9ZXhhbXBsZS5jb20gY2xlYW4gLS1wb3J0PSUocG9ydClzJShhcmNoaXRlY3R1cmUpcwogUnVu
bmluZzogd2Via2l0LXBhdGNoIC0tc3RhdHVzLWhvc3Q9ZXhhbXBsZS5jb20gdXBkYXRlIC0tcG9y
dD0lKHBvcnQpcyUoYXJjaGl0ZWN0dXJlKXMKIFJ1bm5pbmc6IHdlYmtpdC1wYXRjaCAtLXN0YXR1
cy1ob3N0PWV4YW1wbGUuY29tIGFwcGx5LWF0dGFjaG1lbnQgLS1uby11cGRhdGUgLS1ub24taW50
ZXJhY3RpdmUgMTAwMDAgLS1wb3J0PSUocG9ydClzJShhcmNoaXRlY3R1cmUpcwotUnVubmluZzog
d2Via2l0LXBhdGNoIC0tc3RhdHVzLWhvc3Q9ZXhhbXBsZS5jb20gYnVpbGQgLS1uby1jbGVhbiAt
LW5vLXVwZGF0ZSAtLWJ1aWxkLXN0eWxlPSUoYnVpbGRfc3R5bGUpcyAtLXBvcnQ9JShwb3J0KXMl
KGFyY2hpdGVjdHVyZSlzCitSdW5uaW5nOiB3ZWJraXQtcGF0Y2ggLS1zdGF0dXMtaG9zdD1leGFt
cGxlLmNvbSBjaGVjay1wYXRjaC1yZWxldmFuY2UgLS1ncm91cD0lKGdyb3VwKXMgLS1wb3J0PSUo
cG9ydClzJShhcmNoaXRlY3R1cmUpcworUnVubmluZzogd2Via2l0LXBhdGNoIC0tc3RhdHVzLWhv
c3Q9ZXhhbXBsZS5jb20gYnVpbGQgLS1uby1jbGVhbiAtLW5vLXVwZGF0ZSAtLWJ1aWxkLXN0eWxl
PSUoYnVpbGRfc3R5bGUpcyAtLWdyb3VwPSUoZ3JvdXApcyAtLXBvcnQ9JShwb3J0KXMlKGFyY2hp
dGVjdHVyZSlzCiAlKHJ1bl90ZXN0c19saW5lKXNNT0NLOiB1cGRhdGVfc3RhdHVzOiAlKG5hbWUp
cyBQYXNzCiBNT0NLOiByZWxlYXNlX3dvcmtfaXRlbTogJShuYW1lKXMgMTAwMDAKICIiIiAlIHN0
cmluZ19yZXBsYWNlbWVudHMsCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rv
b2wvc3RlcHMvX19pbml0X18ucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMv
X19pbml0X18ucHkKaW5kZXggMzU2YWNhYjAzYWQ4Mjc0Y2U5YmRhNjg1ODg2NGZmMTliNjRmNGEw
YS4uNmM5YzA5YWM1MmEzODZiOWYwY2YzNjNiOWMwM2JiYWE0YzAwMzg2MSAxMDA2NDQKLS0tIGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL19faW5pdF9fLnB5CisrKyBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9fX2luaXRfXy5weQpAQCAtMSw0ICsxLDUgQEAK
ICMgQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisj
IENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAj
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC0zMyw2ICszNCw3IEBAIGZyb20gd2Via2l0
cHkudG9vbC5zdGVwcy5hcHBseXBhdGNod2l0aGxvY2FsY29tbWl0IGltcG9ydCBBcHBseVBhdGNo
V2l0aExvY2FsQ29tCiBmcm9tIHdlYmtpdHB5LnRvb2wuc3RlcHMuYXBwbHl3YXRjaGxpc3QgaW1w
b3J0IEFwcGx5V2F0Y2hMaXN0CiBmcm9tIHdlYmtpdHB5LnRvb2wuc3RlcHMuYXR0YWNodG9idWcg
aW1wb3J0IEF0dGFjaFRvQnVnCiBmcm9tIHdlYmtpdHB5LnRvb2wuc3RlcHMuYnVpbGQgaW1wb3J0
IEJ1aWxkCitmcm9tIHdlYmtpdHB5LnRvb2wuc3RlcHMuY2hlY2twYXRjaHJlbGV2YW5jZSBpbXBv
cnQgQ2hlY2tQYXRjaFJlbGV2YW5jZQogZnJvbSB3ZWJraXRweS50b29sLnN0ZXBzLmNoZWNrc3R5
bGUgaW1wb3J0IENoZWNrU3R5bGUKIGZyb20gd2Via2l0cHkudG9vbC5zdGVwcy5jbGVhbndvcmtp
bmdkaXJlY3RvcnkgaW1wb3J0IENsZWFuV29ya2luZ0RpcmVjdG9yeQogZnJvbSB3ZWJraXRweS50
b29sLnN0ZXBzLmNsb3NlYnVnIGltcG9ydCBDbG9zZUJ1ZwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS90b29sL3N0ZXBzL2J1aWxkLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS90b29sL3N0ZXBzL2J1aWxkLnB5CmluZGV4IGY3NGZmY2U3MDk0MWM2MWU1OTY3OTJlNGM2MGRj
ZDdmOGI2NWU5ZWMuLjNjNmNmMGIxZGUwMThjMTMyYjdmODZkYTJjYjkwN2UyZmRhMDY3YWUgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9idWlsZC5weQorKysg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvYnVpbGQucHkKQEAgLTEsNCArMSw1
IEBACiAjIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorIyBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
IwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtNDEsMjggKzQyLDM3IEBAIGNsYXNz
IEJ1aWxkKEFic3RyYWN0U3RlcCk6CiAgICAgICAgICAgICBPcHRpb25zLmJ1aWxkLAogICAgICAg
ICAgICAgT3B0aW9ucy5xdWlldCwKICAgICAgICAgICAgIE9wdGlvbnMuYnVpbGRfc3R5bGUsCisg
ICAgICAgICAgICBPcHRpb25zLmdyb3VwLAogICAgICAgICBdCiAKLSAgICBkZWYgYnVpbGQoc2Vs
ZiwgYnVpbGRfc3R5bGUpOgorICAgIGRlZiBidWlsZChzZWxmLCBidWlsZF9zdHlsZSwgZ3JvdXAp
OgogICAgICAgICBlbnZpcm9ubWVudCA9IHNlbGYuX3Rvb2wuY29weV9jdXJyZW50X2Vudmlyb25t
ZW50KCkKICAgICAgICAgZW52aXJvbm1lbnQuZGlzYWJsZV9nY2Nfc21hcnRxdW90ZXMoKQogICAg
ICAgICBlbnZpcm9ubWVudC5kaXNhYmxlX2poYnVpbGRfVlQxMDBfb3V0cHV0KCkKICAgICAgICAg
ZW52ID0gZW52aXJvbm1lbnQudG9fZGljdGlvbmFyeSgpCiAKLSAgICAgICAgYnVpbGRfd2Via2l0
X2NvbW1hbmQgPSBzZWxmLl90b29sLmRlcHJlY2F0ZWRfcG9ydCgpLmJ1aWxkX3dlYmtpdF9jb21t
YW5kKGJ1aWxkX3N0eWxlPWJ1aWxkX3N0eWxlKQorICAgICAgICBpZiBncm91cCA9PSAianNjIjoK
KyAgICAgICAgICAgIGJ1aWxkX2NvbW1hbmQgPSBzZWxmLl90b29sLmRlcHJlY2F0ZWRfcG9ydCgp
LmJ1aWxkX2pzY19jb21tYW5kKGJ1aWxkX3N0eWxlPWJ1aWxkX3N0eWxlKQorICAgICAgICBlbHNl
OgorICAgICAgICAgICAgYnVpbGRfY29tbWFuZCA9IHNlbGYuX3Rvb2wuZGVwcmVjYXRlZF9wb3J0
KCkuYnVpbGRfd2Via2l0X2NvbW1hbmQoYnVpbGRfc3R5bGU9YnVpbGRfc3R5bGUpCiAKICAgICAg
ICAgaWYgc2VsZi5fb3B0aW9ucy5hcmNoaXRlY3R1cmU6Ci0gICAgICAgICAgICBidWlsZF93ZWJr
aXRfY29tbWFuZCArPSBbJ0FSQ0hTPSVzJyAlIHNlbGYuX29wdGlvbnMuYXJjaGl0ZWN0dXJlXQor
ICAgICAgICAgICAgYnVpbGRfY29tbWFuZCArPSBbJ0FSQ0hTPSVzJyAlIHNlbGYuX29wdGlvbnMu
YXJjaGl0ZWN0dXJlXQogCi0gICAgICAgIHNlbGYuX3Rvb2wuZXhlY3V0aXZlLnJ1bl9hbmRfdGhy
b3dfaWZfZmFpbChidWlsZF93ZWJraXRfY29tbWFuZCwgc2VsZi5fb3B0aW9ucy5xdWlldCwKKyAg
ICAgICAgc2VsZi5fdG9vbC5leGVjdXRpdmUucnVuX2FuZF90aHJvd19pZl9mYWlsKGJ1aWxkX2Nv
bW1hbmQsIHNlbGYuX29wdGlvbnMucXVpZXQsCiAgICAgICAgICAgICBjd2Q9c2VsZi5fdG9vbC5z
Y20oKS5jaGVja291dF9yb290LCBlbnY9ZW52KQogCiAgICAgZGVmIHJ1bihzZWxmLCBzdGF0ZSk6
CiAgICAgICAgIGlmIG5vdCBzZWxmLl9vcHRpb25zLmJ1aWxkOgogICAgICAgICAgICAgcmV0dXJu
CiAgICAgICAgIF9sb2cuaW5mbygiQnVpbGRpbmcgV2ViS2l0IikKKworICAgICAgICBncm91cCA9
IE5vbmUKKyAgICAgICAgaWYgaGFzYXR0cihzZWxmLl9vcHRpb25zLCAnZ3JvdXAnKToKKyAgICAg
ICAgICAgIGdyb3VwID0gc2VsZi5fb3B0aW9ucy5ncm91cAorCiAgICAgICAgIGlmIHNlbGYuX29w
dGlvbnMuYnVpbGRfc3R5bGUgPT0gImJvdGgiOgotICAgICAgICAgICAgc2VsZi5idWlsZCgiZGVi
dWciKQotICAgICAgICAgICAgc2VsZi5idWlsZCgicmVsZWFzZSIpCisgICAgICAgICAgICBzZWxm
LmJ1aWxkKCJkZWJ1ZyIsIGdyb3VwKQorICAgICAgICAgICAgc2VsZi5idWlsZCgicmVsZWFzZSIs
IGdyb3VwKQogICAgICAgICBlbHNlOgotICAgICAgICAgICAgc2VsZi5idWlsZChzZWxmLl9vcHRp
b25zLmJ1aWxkX3N0eWxlKQorICAgICAgICAgICAgc2VsZi5idWlsZChzZWxmLl9vcHRpb25zLmJ1
aWxkX3N0eWxlLCBncm91cCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9v
bC9zdGVwcy9jaGVja3BhdGNocmVsZXZhbmNlLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90
b29sL3N0ZXBzL2NoZWNrcGF0Y2hyZWxldmFuY2UucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODJmNzQ1ZTM0ZGI5
ZDY5YjI0NDUzNDg4NDQ2ODU5NjZlYTY2MzI1MgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9jaGVja3BhdGNocmVsZXZhbmNlLnB5CkBAIC0wLDAg
KzEsNzQgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwK
KyMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IKKyMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwKKyMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworaW1wb3J0
IGxvZ2dpbmcKK2ltcG9ydCByZQorCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZXhlY3V0
aXZlIGltcG9ydCBTY3JpcHRFcnJvcgorZnJvbSB3ZWJraXRweS50b29sLnN0ZXBzLmFic3RyYWN0
c3RlcCBpbXBvcnQgQWJzdHJhY3RTdGVwCitmcm9tIHdlYmtpdHB5LnRvb2wuc3RlcHMub3B0aW9u
cyBpbXBvcnQgT3B0aW9ucworCitfbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18pCisK
KworY2xhc3MgQ2hlY2tQYXRjaFJlbGV2YW5jZShBYnN0cmFjdFN0ZXApOgorICAgIEBjbGFzc21l
dGhvZAorICAgIGRlZiBvcHRpb25zKGNscyk6CisgICAgICAgIHJldHVybiBBYnN0cmFjdFN0ZXAu
b3B0aW9ucygpICsgWworICAgICAgICAgICAgT3B0aW9ucy5ncm91cCwKKyAgICAgICAgXQorCisg
ICAganNjX3BhdGhzID0gWworICAgICAgICAiSlNUZXN0cy8iLAorICAgICAgICAiU291cmNlL0ph
dmFTY3JpcHRDb3JlLyIsCisgICAgICAgICJTb3VyY2UvV1RGLyIKKyAgICAgICAgIlNvdXJjZS9i
bWFsbG9jLyIsCisgICAgXQorCisgICAgZGVmIF9kb2VzX2NvbnRhaW5fY2hhbmdlX2luX3BhdGhz
KHNlbGYsIGZpbGVzLCBwYXR0ZXJucyk6CisgICAgICAgIGZvciBpdGVtIGluIGZpbGVzOgorICAg
ICAgICAgICAgZm9yIHBhdHRlcm4gaW4gcGF0dGVybnM6CisgICAgICAgICAgICAgICAgaWYgcmUu
c2VhcmNoKHBhdHRlcm4sIGl0ZW0sIHJlLklHTk9SRUNBU0UpOgorICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gVHJ1ZQorCisgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgZGVmIHJ1bihzZWxm
LCBzdGF0ZSk6CisgICAgICAgIF9sb2cuaW5mbygiQ2hlY2tpbmcgcmVsZXZhbmNlIG9mIHBhdGNo
IikKKworICAgICAgICBncm91cCA9IE5vbmUKKyAgICAgICAgaWYgaGFzYXR0cihzZWxmLl9vcHRp
b25zLCAnZ3JvdXAnKToKKyAgICAgICAgICAgIGdyb3VwID0gc2VsZi5fb3B0aW9ucy5ncm91cAor
CisgICAgICAgIGNoYW5nZV9saXN0ID0gc2VsZi5fdG9vbC5zY20oKS5jaGFuZ2VkX2ZpbGVzKCkK
KworICAgICAgICBpZiBncm91cCA9PSAianNjIjoKKyAgICAgICAgICAgIHJlbGV2YW50ID0gc2Vs
Zi5fZG9lc19jb250YWluX2NoYW5nZV9pbl9wYXRocyhjaGFuZ2VfbGlzdCwgc2VsZi5qc2NfcGF0
aHMpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZWxldmFudCA9IFRydWUKKworICAgICAg
ICBpZiByZWxldmFudCBpcyBUcnVlOgorICAgICAgICAgICAgX2xvZy5pbmZvKCJUaGlzIHBhdGNo
IGhhcyByZWxldmFudCBjaGFuZ2VzLiIpCisgICAgICAgICAgICByZXR1cm4gVHJ1ZQorICAgICAg
ICBlbHNlOgorICAgICAgICAgICAgX2xvZy5pbmZvKCJUaGlzIHBhdGNoIGRvZXMgbm90IGhhdmUg
cmVsZXZhbnQgY2hhbmdlcy4iKQorICAgICAgICAgICAgcmFpc2UgU2NyaXB0RXJyb3IobWVzc2Fn
ZT0iVGhpcyBwYXRjaCBkb2VzIG5vdCBoYXZlIHJlbGV2YW50IGNoYW5nZXMuIikKZGlmZiAtLWdp
dCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9vcHRpb25zLnB5IGIvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL29wdGlvbnMucHkKaW5kZXggM2VmNDdkMDA4YTU5
ZTA1MGQ0Y2EwYzQ4NzdkZGQxYTYwNzMxYTQwOS4uZjVlMGRlZjMyNzE3ZTMwNmU2MzE2OTg0MTEx
MGIyODk4YjcyYTFmMSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0
ZXBzL29wdGlvbnMucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL29w
dGlvbnMucHkKQEAgLTEsNCArMSw1IEBACiAjIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAt
NDYsNiArNDcsNyBAQCBjbGFzcyBPcHRpb25zKG9iamVjdCk6CiAgICAgZW1haWwgPSBtYWtlX29w
dGlvbigiLS1lbWFpbCIsIGFjdGlvbj0ic3RvcmUiLCB0eXBlPSJzdHJpbmciLCBkZXN0PSJlbWFp
bCIsIGhlbHA9IkVtYWlsIGFkZHJlc3MgdG8gdXNlIGluIENoYW5nZUxvZ3MuIikKICAgICBmb3Jj
ZV9jbGVhbiA9IG1ha2Vfb3B0aW9uKCItLWZvcmNlLWNsZWFuIiwgYWN0aW9uPSJzdG9yZV90cnVl
IiwgZGVzdD0iZm9yY2VfY2xlYW4iLCBkZWZhdWx0PUZhbHNlLCBoZWxwPSJDbGVhbiB3b3JraW5n
IGRpcmVjdG9yeSBiZWZvcmUgYXBwbHlpbmcgcGF0Y2hlcyAocmVtb3ZlcyBsb2NhbCBjaGFuZ2Vz
IGFuZCBjb21taXRzKSIpCiAgICAgZ2l0X2NvbW1pdCA9IG1ha2Vfb3B0aW9uKCItZyIsICItLWdp
dC1jb21taXQiLCBhY3Rpb249InN0b3JlIiwgZGVzdD0iZ2l0X2NvbW1pdCIsIGhlbHA9Ik9wZXJh
dGUgb24gYSBsb2NhbCBjb21taXQuIElmIGEgcmFuZ2UsIHRoZSBjb21taXRzIGFyZSBzcXVhc2hl
ZCBpbnRvIG9uZS4gPHJlZj4uLi4uIGluY2x1ZGVzIHRoZSB3b3JraW5nIGNvcHkgY2hhbmdlcy4g
VVBTVFJFQU0gY2FuIGJlIHVzZWQgZm9yIHRoZSB1cHN0cmVhbS90cmFja2luZyBicmFuY2guIikK
KyAgICBncm91cCA9IG1ha2Vfb3B0aW9uKCItLWdyb3VwIiwgYWN0aW9uPSJzdG9yZSIsIGRlc3Q9
Imdyb3VwIiwgZGVmYXVsdD1Ob25lLCBoZWxwPSIiKQogICAgIGxvY2FsX2NvbW1pdCA9IG1ha2Vf
b3B0aW9uKCItLWxvY2FsLWNvbW1pdCIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGRlc3Q9ImxvY2Fs
X2NvbW1pdCIsIGRlZmF1bHQ9RmFsc2UsIGhlbHA9Ik1ha2UgYSBsb2NhbCBjb21taXQgZm9yIGVh
Y2ggYXBwbGllZCBwYXRjaCIpCiAgICAgbm9uX2ludGVyYWN0aXZlID0gbWFrZV9vcHRpb24oIi0t
bm9uLWludGVyYWN0aXZlIiwgYWN0aW9uPSJzdG9yZV90cnVlIiwgZGVzdD0ibm9uX2ludGVyYWN0
aXZlIiwgZGVmYXVsdD1GYWxzZSwgaGVscD0iTmV2ZXIgcHJvbXB0IHRoZSB1c2VyLCBmYWlsIGFz
IGZhc3QgYXMgcG9zc2libGUuIikKICAgICBvYnNvbGV0ZV9wYXRjaGVzID0gbWFrZV9vcHRpb24o
Ii0tbm8tb2Jzb2xldGUiLCBhY3Rpb249InN0b3JlX2ZhbHNlIiwgZGVzdD0ib2Jzb2xldGVfcGF0
Y2hlcyIsIGRlZmF1bHQ9VHJ1ZSwgaGVscD0iRG8gbm90IG9ic29sZXRlIG9sZCBwYXRjaGVzIGJl
Zm9yZSBwb3N0aW5nIHRoaXMgb25lLiIpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L3Rvb2wvc3RlcHMvcnVudGVzdHMucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wv
c3RlcHMvcnVudGVzdHMucHkKaW5kZXggNzVkNzJiYzlhZDJmNGUzNmQ0NWZkYWM5MGYxODE5NDgx
Y2YwMjg4Yi4uNWE3ZjJhOThhM2ZiYjI0ZWNiMDNmNjFjNmI2MGY2NTA0MmQ5NzFhNCAxMDA2NDQK
LS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3J1bnRlc3RzLnB5CisrKyBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9ydW50ZXN0cy5weQpAQCAtMSw0ICsx
LDUgQEAKICMgQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisjIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC01Myw2ICs1NCw3IEBAIGNsYXNz
IFJ1blRlc3RzKEFic3RyYWN0U3RlcCk6CiAgICAgICAgICAgICBPcHRpb25zLml0ZXJhdGVfb25f
bmV3X3Rlc3RzLAogICAgICAgICAgICAgT3B0aW9ucy5ub25faW50ZXJhY3RpdmUsCiAgICAgICAg
ICAgICBPcHRpb25zLnF1aWV0LAorICAgICAgICAgICAgT3B0aW9ucy5ncm91cCwKICAgICAgICAg
XQogCiAgICAgZGVmIHJ1bihzZWxmLCBzdGF0ZSk6CkBAIC02Myw2ICs2NSwxMCBAQCBjbGFzcyBS
dW5UZXN0cyhBYnN0cmFjdFN0ZXApOgogICAgICAgICBpZiBub3Qgc2VsZi5fb3B0aW9ucy50ZXN0
OgogICAgICAgICAgICAgcmV0dXJuCiAKKyAgICAgICAgaWYgaGFzYXR0cihzZWxmLl9vcHRpb25z
LCAiZ3JvdXAiKSBhbmQgc2VsZi5fb3B0aW9ucy5ncm91cCA9PSAianNjIjoKKyAgICAgICAgICAg
IHNlbGYuX3J1bl9qYXZhc2NyaXB0Y29yZV90ZXN0cygpCisgICAgICAgICAgICByZXR1cm4KKwog
ICAgICAgICBweXRob25fdW5pdHRlc3RzX2NvbW1hbmQgPSBzZWxmLl90b29sLmRlcHJlY2F0ZWRf
cG9ydCgpLnJ1bl9weXRob25fdW5pdHRlc3RzX2NvbW1hbmQoKQogICAgICAgICBpZiBweXRob25f
dW5pdHRlc3RzX2NvbW1hbmQ6CiAgICAgICAgICAgICBfbG9nLmluZm8oIlJ1bm5pbmcgUHl0aG9u
IHVuaXQgdGVzdHMiKQpAQCAtMTQzLDMgKzE0OSw3IEBAIGNsYXNzIFJ1blRlc3RzKEFic3RyYWN0
U3RlcCk6CiAgICAgICAgICAgICBhcmdzLmFwcGVuZCgiLS1pdGVyYXRpb25zPSVkIiAlIGl0ZXJh
dGVfb25fbmV3X3Rlc3RzKQogCiAgICAgICAgIHNlbGYuX3Rvb2wuZXhlY3V0aXZlLnJ1bl9hbmRf
dGhyb3dfaWZfZmFpbChhcmdzLCBjd2Q9c2VsZi5fdG9vbC5zY20oKS5jaGVja291dF9yb290KQor
CisgICAgZGVmIF9ydW5famF2YXNjcmlwdGNvcmVfdGVzdHMoc2VsZik6CisgICAgICAgIGFyZ3Mg
PSBzZWxmLl90b29sLmRlcHJlY2F0ZWRfcG9ydCgpLnJ1bl9qYXZhc2NyaXB0Y29yZV90ZXN0c19j
b21tYW5kKHNlbGYuX29wdGlvbnMuYnVpbGRfc3R5bGUpCisgICAgICAgIHNlbGYuX3Rvb2wuZXhl
Y3V0aXZlLnJ1bl9hbmRfdGhyb3dfaWZfZmFpbChhcmdzLCBjd2Q9c2VsZi5fdG9vbC5zY20oKS5j
aGVja291dF9yb290KQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0
ZXBzL3N0ZXBzX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBz
L3N0ZXBzX3VuaXR0ZXN0LnB5CmluZGV4IDdkOTRhMTNiMzQ2M2Q5OGE0NGY5NDlmODE0Y2M3MTIx
YzA2OGFiNWQuLmMzMzAwYzg1OTQ0Y2RlMjFhZDlkMGIzZTU2ZGVkODgwMTNlYjZhZGUgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9zdGVwc191bml0dGVzdC5w
eQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvc3RlcHNfdW5pdHRlc3Qu
cHkKQEAgLTEsNCArMSw1IEBACiAjIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtMjgsNiAr
MjksNyBAQAogCiBpbXBvcnQgdW5pdHRlc3QKIAorZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVt
LmV4ZWN1dGl2ZSBpbXBvcnQgU2NyaXB0RXJyb3IKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3Rl
bS5vdXRwdXRjYXB0dXJlIGltcG9ydCBPdXRwdXRDYXB0dXJlCiBmcm9tIHdlYmtpdHB5LmNvbW1v
bi5jb25maWcucG9ydHMgaW1wb3J0IERlcHJlY2F0ZWRQb3J0CiBmcm9tIHdlYmtpdHB5LnRvb2wu
bW9ja3Rvb2wgaW1wb3J0IE1vY2tPcHRpb25zLCBNb2NrVG9vbApAQCAtMTExLDcgKzExMyw3IEBA
IE1PQ0sgcnVuX2FuZF90aHJvd19pZl9mYWlsOiBbJ1Rvb2xzL1NjcmlwdHMvdGVzdC13ZWJraXRw
eSddLCBjd2Q9L21vY2stY2hlY2tvdXQKIFJ1bm5pbmcgUGVybCB1bml0IHRlc3RzCiBNT0NLIHJ1
bl9hbmRfdGhyb3dfaWZfZmFpbDogWydUb29scy9TY3JpcHRzL3Rlc3Qtd2Via2l0cGVybCddLCBj
d2Q9L21vY2stY2hlY2tvdXQKIFJ1bm5pbmcgSmF2YVNjcmlwdENvcmUgdGVzdHMKLU1PQ0sgcnVu
X2FuZF90aHJvd19pZl9mYWlsOiBbJ1Rvb2xzL1NjcmlwdHMvcnVuLWphdmFzY3JpcHRjb3JlLXRl
c3RzJ10sIGN3ZD0vbW9jay1jaGVja291dAorTU9DSyBydW5fYW5kX3Rocm93X2lmX2ZhaWw6IFsn
VG9vbHMvU2NyaXB0cy9ydW4tamF2YXNjcmlwdGNvcmUtdGVzdHMnLCAnLS1uby1mYWlsLWZhc3Qn
LCAnLS1qc29uLW91dHB1dD1qc2NfdGVzdF9yZXN1bHRzLmpzb24nXSwgY3dkPS9tb2NrLWNoZWNr
b3V0CiBSdW5uaW5nIGJpbmRpbmdzIGdlbmVyYXRpb24gdGVzdHMKIE1PQ0sgcnVuX2FuZF90aHJv
d19pZl9mYWlsOiBbJ1Rvb2xzL1NjcmlwdHMvcnVuLWJpbmRpbmdzLXRlc3RzJ10sIGN3ZD0vbW9j
ay1jaGVja291dAogUnVubmluZyBydW4td2Via2l0LXRlc3RzCkBAIC0xMzMsMTAgKzEzNSwxMTEg
QEAgTU9DSyBydW5fYW5kX3Rocm93X2lmX2ZhaWw6IFsnVG9vbHMvU2NyaXB0cy90ZXN0LXdlYmtp
dHB5J10sIGN3ZD0vbW9jay1jaGVja291dAogUnVubmluZyBQZXJsIHVuaXQgdGVzdHMKIE1PQ0sg
cnVuX2FuZF90aHJvd19pZl9mYWlsOiBbJ1Rvb2xzL1NjcmlwdHMvdGVzdC13ZWJraXRwZXJsJ10s
IGN3ZD0vbW9jay1jaGVja291dAogUnVubmluZyBKYXZhU2NyaXB0Q29yZSB0ZXN0cwotTU9DSyBy
dW5fYW5kX3Rocm93X2lmX2ZhaWw6IFsnVG9vbHMvU2NyaXB0cy9ydW4tamF2YXNjcmlwdGNvcmUt
dGVzdHMnXSwgY3dkPS9tb2NrLWNoZWNrb3V0CitNT0NLIHJ1bl9hbmRfdGhyb3dfaWZfZmFpbDog
WydUb29scy9TY3JpcHRzL3J1bi1qYXZhc2NyaXB0Y29yZS10ZXN0cycsICctLW5vLWZhaWwtZmFz
dCcsICctLWpzb24tb3V0cHV0PWpzY190ZXN0X3Jlc3VsdHMuanNvbiddLCBjd2Q9L21vY2stY2hl
Y2tvdXQKIFJ1bm5pbmcgYmluZGluZ3MgZ2VuZXJhdGlvbiB0ZXN0cwogTU9DSyBydW5fYW5kX3Ro
cm93X2lmX2ZhaWw6IFsnVG9vbHMvU2NyaXB0cy9ydW4tYmluZGluZ3MtdGVzdHMnXSwgY3dkPS9t
b2NrLWNoZWNrb3V0CiBSdW5uaW5nIHJ1bi13ZWJraXQtdGVzdHMKIE1PQ0sgcnVuX2FuZF90aHJv
d19pZl9mYWlsOiBbJ1Rvb2xzL1NjcmlwdHMvcnVuLXdlYmtpdC10ZXN0cycsICctLWRlYnVnJywg
Jy0tcXVpZXQnXSwgY3dkPS9tb2NrLWNoZWNrb3V0CiAiIiIKICAgICAgICAgT3V0cHV0Q2FwdHVy
ZSgpLmFzc2VydF9vdXRwdXRzKHNlbGYsIHN0ZXAucnVuLCBbe31dLCBleHBlY3RlZF9sb2dzPWV4
cGVjdGVkX2xvZ3MpCisKKyAgICBkZWYgdGVzdF9ydW50ZXN0c19qc2Moc2VsZik6CisgICAgICAg
IG1vY2tfb3B0aW9ucyA9IHNlbGYuX3N0ZXBfb3B0aW9ucygpCisgICAgICAgIG1vY2tfb3B0aW9u
cy5ub25faW50ZXJhY3RpdmUgPSBGYWxzZQorICAgICAgICBtb2NrX29wdGlvbnMuYnVpbGRfc3R5
bGUgPSAicmVsZWFzZSIKKyAgICAgICAgbW9ja19vcHRpb25zLmdyb3VwID0gImpzYyIKKyAgICAg
ICAgc3RlcCA9IHN0ZXBzLlJ1blRlc3RzKE1vY2tUb29sKGxvZ19leGVjdXRpdmU9VHJ1ZSksIG1v
Y2tfb3B0aW9ucykKKyAgICAgICAgdG9vbCA9IE1vY2tUb29sKGxvZ19leGVjdXRpdmU9VHJ1ZSkK
KyAgICAgICAgIyBGSVhNRTogV2Ugc2hvdWxkbid0IHVzZSBhIHJlYWwgcG9ydC1vYmplY3QgaGVy
ZSwgYnV0IHRoZXJlIGlzIHRvbyBtdWNoIHRvIG1vY2sgYXQgdGhlIG1vbWVudC4KKyAgICAgICAg
dG9vbC5fZGVwcmVjYXRlZF9wb3J0ID0gRGVwcmVjYXRlZFBvcnQoKQorICAgICAgICBzdGVwID0g
c3RlcHMuUnVuVGVzdHModG9vbCwgbW9ja19vcHRpb25zKQorICAgICAgICBleHBlY3RlZF9sb2dz
ID0gIiIiTU9DSyBydW5fYW5kX3Rocm93X2lmX2ZhaWw6IFsnVG9vbHMvU2NyaXB0cy9ydW4tamF2
YXNjcmlwdGNvcmUtdGVzdHMnLCAnLS1uby1mYWlsLWZhc3QnLCAnLS1qc29uLW91dHB1dD1qc2Nf
dGVzdF9yZXN1bHRzLmpzb24nXSwgY3dkPS9tb2NrLWNoZWNrb3V0CisiIiIKKyAgICAgICAgT3V0
cHV0Q2FwdHVyZSgpLmFzc2VydF9vdXRwdXRzKHNlbGYsIHN0ZXAucnVuLCBbe31dLCBleHBlY3Rl
ZF9sb2dzPWV4cGVjdGVkX2xvZ3MpCisKKyAgICBkZWYgdGVzdF9ydW50ZXN0c19qc2NfZGVidWco
c2VsZik6CisgICAgICAgIG1vY2tfb3B0aW9ucyA9IHNlbGYuX3N0ZXBfb3B0aW9ucygpCisgICAg
ICAgIG1vY2tfb3B0aW9ucy5ub25faW50ZXJhY3RpdmUgPSBGYWxzZQorICAgICAgICBtb2NrX29w
dGlvbnMuYnVpbGRfc3R5bGUgPSAiZGVidWciCisgICAgICAgIG1vY2tfb3B0aW9ucy5ncm91cCA9
ICJqc2MiCisgICAgICAgIHRvb2wgPSBNb2NrVG9vbChsb2dfZXhlY3V0aXZlPVRydWUpCisgICAg
ICAgICMgRklYTUU6IFdlIHNob3VsZG4ndCB1c2UgYSByZWFsIHBvcnQtb2JqZWN0IGhlcmUsIGJ1
dCB0aGVyZSBpcyB0b28gbXVjaCB0byBtb2NrIGF0IHRoZSBtb21lbnQuCisgICAgICAgIHRvb2wu
X2RlcHJlY2F0ZWRfcG9ydCA9IERlcHJlY2F0ZWRQb3J0KCkKKyAgICAgICAgc3RlcCA9IHN0ZXBz
LlJ1blRlc3RzKHRvb2wsIG1vY2tfb3B0aW9ucykKKyAgICAgICAgZXhwZWN0ZWRfbG9ncyA9ICIi
Ik1PQ0sgcnVuX2FuZF90aHJvd19pZl9mYWlsOiBbJ1Rvb2xzL1NjcmlwdHMvcnVuLWphdmFzY3Jp
cHRjb3JlLXRlc3RzJywgJy0tbm8tZmFpbC1mYXN0JywgJy0tanNvbi1vdXRwdXQ9anNjX3Rlc3Rf
cmVzdWx0cy5qc29uJywgJy0tZGVidWcnXSwgY3dkPS9tb2NrLWNoZWNrb3V0CisiIiIKKyAgICAg
ICAgT3V0cHV0Q2FwdHVyZSgpLmFzc2VydF9vdXRwdXRzKHNlbGYsIHN0ZXAucnVuLCBbe31dLCBl
eHBlY3RlZF9sb2dzPWV4cGVjdGVkX2xvZ3MpCisKKyAgICBkZWYgdGVzdF9idWlsZF9qc2NfZGVi
dWcoc2VsZik6CisgICAgICAgIG1vY2tfb3B0aW9ucyA9IHNlbGYuX3N0ZXBfb3B0aW9ucygpCisg
ICAgICAgIG1vY2tfb3B0aW9ucy5ub25faW50ZXJhY3RpdmUgPSBGYWxzZQorICAgICAgICBtb2Nr
X29wdGlvbnMuYnVpbGRfc3R5bGUgPSAiZGVidWciCisgICAgICAgIG1vY2tfb3B0aW9ucy5idWls
ZCA9IFRydWUKKyAgICAgICAgbW9ja19vcHRpb25zLmFyY2hpdGVjdHVyZSA9IFRydWUKKyAgICAg
ICAgbW9ja19vcHRpb25zLmdyb3VwID0gImpzYyIKKyAgICAgICAgdG9vbCA9IE1vY2tUb29sKGxv
Z19leGVjdXRpdmU9VHJ1ZSkKKyAgICAgICAgIyBGSVhNRTogV2Ugc2hvdWxkbid0IHVzZSBhIHJl
YWwgcG9ydC1vYmplY3QgaGVyZSwgYnV0IHRoZXJlIGlzIHRvbyBtdWNoIHRvIG1vY2sgYXQgdGhl
IG1vbWVudC4KKyAgICAgICAgdG9vbC5fZGVwcmVjYXRlZF9wb3J0ID0gRGVwcmVjYXRlZFBvcnQo
KQorICAgICAgICBzdGVwID0gc3RlcHMuQnVpbGQodG9vbCwgbW9ja19vcHRpb25zKQorICAgICAg
ICBleHBlY3RlZF9sb2dzID0gIiIiQnVpbGRpbmcgV2ViS2l0CitNT0NLIHJ1bl9hbmRfdGhyb3df
aWZfZmFpbDogWydUb29scy9TY3JpcHRzL2J1aWxkLWpzYycsICctLWRlYnVnJywgJ0FSQ0hTPVRy
dWUnXSwgY3dkPS9tb2NrLWNoZWNrb3V0LCBlbnY9eydMQ19BTEwnOiAnQycsICdURVJNJzogJ25v
bmUnLCAnTU9DS19FTlZJUk9OX0NPUFknOiAnMSd9CisiIiIKKyAgICAgICAgT3V0cHV0Q2FwdHVy
ZSgpLmFzc2VydF9vdXRwdXRzKHNlbGYsIHN0ZXAucnVuLCBbe31dLCBleHBlY3RlZF9sb2dzPWV4
cGVjdGVkX2xvZ3MpCisKKyAgICBkZWYgdGVzdF9idWlsZF9qc2Moc2VsZik6CisgICAgICAgIG1v
Y2tfb3B0aW9ucyA9IHNlbGYuX3N0ZXBfb3B0aW9ucygpCisgICAgICAgIG1vY2tfb3B0aW9ucy5u
b25faW50ZXJhY3RpdmUgPSBGYWxzZQorICAgICAgICBtb2NrX29wdGlvbnMuYnVpbGRfc3R5bGUg
PSAicmVsZWFzZSIKKyAgICAgICAgbW9ja19vcHRpb25zLmJ1aWxkID0gVHJ1ZQorICAgICAgICBt
b2NrX29wdGlvbnMuYXJjaGl0ZWN0dXJlID0gVHJ1ZQorICAgICAgICBtb2NrX29wdGlvbnMuZ3Jv
dXAgPSAianNjIgorICAgICAgICB0b29sID0gTW9ja1Rvb2wobG9nX2V4ZWN1dGl2ZT1UcnVlKQor
ICAgICAgICAjIEZJWE1FOiBXZSBzaG91bGRuJ3QgdXNlIGEgcmVhbCBwb3J0LW9iamVjdCBoZXJl
LCBidXQgdGhlcmUgaXMgdG9vIG11Y2ggdG8gbW9jayBhdCB0aGUgbW9tZW50LgorICAgICAgICB0
b29sLl9kZXByZWNhdGVkX3BvcnQgPSBEZXByZWNhdGVkUG9ydCgpCisgICAgICAgIHN0ZXAgPSBz
dGVwcy5CdWlsZCh0b29sLCBtb2NrX29wdGlvbnMpCisgICAgICAgIGV4cGVjdGVkX2xvZ3MgPSAi
IiJCdWlsZGluZyBXZWJLaXQKK01PQ0sgcnVuX2FuZF90aHJvd19pZl9mYWlsOiBbJ1Rvb2xzL1Nj
cmlwdHMvYnVpbGQtanNjJywgJy0tcmVsZWFzZScsICdBUkNIUz1UcnVlJ10sIGN3ZD0vbW9jay1j
aGVja291dCwgZW52PXsnTENfQUxMJzogJ0MnLCAnVEVSTSc6ICdub25lJywgJ01PQ0tfRU5WSVJP
Tl9DT1BZJzogJzEnfQorIiIiCisgICAgICAgIE91dHB1dENhcHR1cmUoKS5hc3NlcnRfb3V0cHV0
cyhzZWxmLCBzdGVwLnJ1biwgW3t9XSwgZXhwZWN0ZWRfbG9ncz1leHBlY3RlZF9sb2dzKQorCisg
ICAgZGVmIHRlc3RfcGF0Y2hfcmVsZXZhbnQoc2VsZik6CisgICAgICAgIHNlbGYubWF4RGlmZiA9
IE5vbmUKKyAgICAgICAgbW9ja19vcHRpb25zID0gc2VsZi5fc3RlcF9vcHRpb25zKCkKKyAgICAg
ICAgdG9vbCA9IE1vY2tUb29sKGxvZ19leGVjdXRpdmU9VHJ1ZSkKKyAgICAgICAgdG9vbC5zY20o
KS5fbW9ja0NoYW5nZWRGaWxlcyA9IFsiSlNUZXN0cy9Nb2NrRmlsZTEiLCAiQ2hhbmdlTG9nIl0K
KyAgICAgICAgIyBGSVhNRTogV2Ugc2hvdWxkbid0IHVzZSBhIHJlYWwgcG9ydC1vYmplY3QgaGVy
ZSwgYnV0IHRoZXJlIGlzIHRvbyBtdWNoIHRvIG1vY2sgYXQgdGhlIG1vbWVudC4KKyAgICAgICAg
dG9vbC5fZGVwcmVjYXRlZF9wb3J0ID0gRGVwcmVjYXRlZFBvcnQoKQorICAgICAgICBzdGVwID0g
c3RlcHMuQ2hlY2tQYXRjaFJlbGV2YW5jZSh0b29sLCBtb2NrX29wdGlvbnMpCisgICAgICAgIGV4
cGVjdGVkX2xvZ3MgPSAiIiJDaGVja2luZyByZWxldmFuY2Ugb2YgcGF0Y2gKK1RoaXMgcGF0Y2gg
aGFzIHJlbGV2YW50IGNoYW5nZXMuCisiIiIKKyAgICAgICAgT3V0cHV0Q2FwdHVyZSgpLmFzc2Vy
dF9vdXRwdXRzKHNlbGYsIHN0ZXAucnVuLCBbe31dLCBleHBlY3RlZF9sb2dzPWV4cGVjdGVkX2xv
Z3MpCisKKyAgICBkZWYgdGVzdF9wYXRjaF9yZWxldmFudF9qc2Moc2VsZik6CisgICAgICAgIHNl
bGYubWF4RGlmZiA9IE5vbmUKKyAgICAgICAgbW9ja19vcHRpb25zID0gc2VsZi5fc3RlcF9vcHRp
b25zKCkKKyAgICAgICAgbW9ja19vcHRpb25zLmdyb3VwID0gImpzYyIKKyAgICAgICAgdG9vbCA9
IE1vY2tUb29sKGxvZ19leGVjdXRpdmU9VHJ1ZSkKKyAgICAgICAgdG9vbC5zY20oKS5fbW9ja0No
YW5nZWRGaWxlcyA9IFsiSlNUZXN0cy9Nb2NrRmlsZTEiLCAiQ2hhbmdlTG9nIl0KKyAgICAgICAg
IyBGSVhNRTogV2Ugc2hvdWxkbid0IHVzZSBhIHJlYWwgcG9ydC1vYmplY3QgaGVyZSwgYnV0IHRo
ZXJlIGlzIHRvbyBtdWNoIHRvIG1vY2sgYXQgdGhlIG1vbWVudC4KKyAgICAgICAgdG9vbC5fZGVw
cmVjYXRlZF9wb3J0ID0gRGVwcmVjYXRlZFBvcnQoKQorICAgICAgICBzdGVwID0gc3RlcHMuQ2hl
Y2tQYXRjaFJlbGV2YW5jZSh0b29sLCBtb2NrX29wdGlvbnMpCisgICAgICAgIGV4cGVjdGVkX2xv
Z3MgPSAiIiJDaGVja2luZyByZWxldmFuY2Ugb2YgcGF0Y2gKK1RoaXMgcGF0Y2ggaGFzIHJlbGV2
YW50IGNoYW5nZXMuCisiIiIKKyAgICAgICAgT3V0cHV0Q2FwdHVyZSgpLmFzc2VydF9vdXRwdXRz
KHNlbGYsIHN0ZXAucnVuLCBbe31dLCBleHBlY3RlZF9sb2dzPWV4cGVjdGVkX2xvZ3MpCisKKyAg
ICBkZWYgdGVzdF9wYXRjaF9ub3RfcmVsZXZhbnRfanNjKHNlbGYpOgorICAgICAgICBzZWxmLm1h
eERpZmYgPSBOb25lCisgICAgICAgIG1vY2tfb3B0aW9ucyA9IHNlbGYuX3N0ZXBfb3B0aW9ucygp
CisgICAgICAgIG1vY2tfb3B0aW9ucy5ncm91cCA9ICJqc2MiCisgICAgICAgIHRvb2wgPSBNb2Nr
VG9vbChsb2dfZXhlY3V0aXZlPVRydWUpCisgICAgICAgIHRvb2wuc2NtKCkuX21vY2tDaGFuZ2Vk
RmlsZXMgPSBbIlRvb2xzL0NoYW5nZUxvZyIsICJUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wv
c3RlcHMvc3RlcHNfdW5pdHRlc3QucHkiXQorICAgICAgICAjIEZJWE1FOiBXZSBzaG91bGRuJ3Qg
dXNlIGEgcmVhbCBwb3J0LW9iamVjdCBoZXJlLCBidXQgdGhlcmUgaXMgdG9vIG11Y2ggdG8gbW9j
ayBhdCB0aGUgbW9tZW50LgorICAgICAgICB0b29sLl9kZXByZWNhdGVkX3BvcnQgPSBEZXByZWNh
dGVkUG9ydCgpCisgICAgICAgIHN0ZXAgPSBzdGVwcy5DaGVja1BhdGNoUmVsZXZhbmNlKHRvb2ws
IG1vY2tfb3B0aW9ucykKKyAgICAgICAgZXhwZWN0ZWRfbG9ncyA9ICIiIkNoZWNraW5nIHJlbGV2
YW5jZSBvZiBwYXRjaAorVGhpcyBwYXRjaCBkb2VzIG5vdCBoYXZlIHJlbGV2YW50IGNoYW5nZXMu
CisiIiIKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhTY3JpcHRFcnJvcik6CisgICAg
ICAgICAgICBPdXRwdXRDYXB0dXJlKCkuYXNzZXJ0X291dHB1dHMoc2VsZiwgc3RlcC5ydW4sIFt7
fV0sIGV4cGVjdGVkX2xvZ3M9ZXhwZWN0ZWRfbG9ncykK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>300838</attachid>
            <date>2017-02-07 12:50:53 -0800</date>
            <delta_ts>2017-02-09 00:04:49 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-162458-20170207124831.patch</filename>
            <type>text/plain</type>
            <size>82176</size>
            <attacher name="Srinivasan Vijayaraghavan">webkit</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjExNjYyCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYTEzMjZiMTZmODdkYzkzZjY5MjY1MmNhNjc0MmFlOTIz
OGFlN2QyYS4uZTI5YmU5YjY2ZjBhZjBiNGM4MzEzMjkwMTc4ODNhOTI2ODA0ZjA4OCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEy
MCBAQAorMjAxNy0wMi0wNyAgU3Jpbml2YXNhbiBWaWpheWFyYWdoYXZhbiAgPHN2aWpheWFyYWdo
YXZhbkBhcHBsZS5jb20+CisKKyAgICAgICAgRVdTIHNob3VsZCBydW4gSmF2YVNjcmlwdENvcmUg
dGVzdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2
MjQ1OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
UXVldWVTdGF0dXNTZXJ2ZXIvY29uZmlnL3F1ZXVlcy5weTogQWRkIGpzYy1ld3MgcXVldWUKKyAg
ICAgICAgKiBRdWV1ZVN0YXR1c1NlcnZlci9oYW5kbGVycy9zdGF0dXNidWJibGUucHk6CisgICAg
ICAgIChTdGF0dXNCdWJibGUuX3Nob3VsZF9zaG93X2J1YmJsZV9mb3IpOiBBZGQgbG9naWMgdG8g
aGlkZSBqc2MtZXdzIGJ1YmJsZSBpZiB0aGUgcGF0Y2ggZG9lcyBub3QgdG91Y2gganNjLgorICAg
ICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNrb3V0L3NjbS9zY21fbW9jay5weToK
KyAgICAgICAgKE1vY2tTQ00uX19pbml0X18pOiBBZGQgX21vY2tDaGFuZ2VkRmlsZXMgdmFyaWFi
bGUuCisgICAgICAgIChNb2NrU0NNLmNoYW5nZWRfZmlsZXMpOiBDaGFuZ2UgdG8gdXNlIF9tb2Nr
Q2hhbmdlZEZpbGVzIHZhcmlhYmxlcy4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1v
bi9jb25maWcvZXdzLmpzb246IEFkZCBjb25maWcgaW5mbyBmb3IgSlNDIEVXUy4KKyAgICAgICAg
KiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvcG9ydHMucHk6IEFkZCBzdXBwb3J0IGZv
ciBKU0MgRVdTIGluIE1hYyBQb3J0LgorICAgICAgICAoRGVwcmVjYXRlZFBvcnQuYnVpbGRfanNj
X2NvbW1hbmQpOiBBZGRlZCAtIGNvbW1hbmQgdG8gYnVpbGQgSlNDIG9ubHkgKHF1aWNrZXIgdGhh
biBidWlsZGluZyBhbGwgb2YgV2ViS2l0KS4KKyAgICAgICAgKERlcHJlY2F0ZWRQb3J0LnJ1bl9q
YXZhc2NyaXB0Y29yZV90ZXN0c19jb21tYW5kKTogQWxsb3cgSlNDIEVXUyB0byBvbmx5IHJ1biBK
U0MgdGVzdHMuCisgICAgICAgIChNYWNQb3J0LnJ1bl93ZWJraXRfdGVzdHNfY29tbWFuZCk6IENo
ZWNrIGZvciBKU0MuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL3Bv
cnRzX21vY2sucHk6CisgICAgICAgIChNb2NrUG9ydC5ydW5famF2YXNjcmlwdGNvcmVfdGVzdHNf
Y29tbWFuZCk6IEFkZCBidWlsZF9zdHlsZSBhcmd1bWVudC4KKyAgICAgICAgKiBTY3JpcHRzL3dl
YmtpdHB5L2NvbW1vbi9jb25maWcvcG9ydHNfdW5pdHRlc3QucHk6CisgICAgICAgIChEZXByZWNh
dGVkUG9ydFRlc3QudGVzdF9tYWNfcG9ydCk6IEFkZCB1bml0IHRlc3RzIGZvciBidWlsZC1qc2Mg
c2hlbGwgY29tbWFuZC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvanNj
dGVzdHJlc3VsdHMucHk6IEFkZGVkLgorICAgICAgICAoSlNDVGVzdFJlc3VsdHMpOiBBZGRlZC4K
KyAgICAgICAgKEpTQ1Rlc3RSZXN1bHRzLmludGVyc2VjdGlvbik6IFJldHVybiBhIEpTQ1Rlc3RS
ZXN1bHRzIG9iamVjdCB3aXRoIGZhaWx1cmVzIGNvbW1vbiB0byBib3RoIGlucHV0IG9iamVjdHMu
CisgICAgICAgIChKU0NUZXN0UmVzdWx0cy5yZXN1bHRzX2Zyb21fc3RyaW5nKTogVXNlIGpzb24g
bGlicmFyeSB0byBwYXJzZSByZXN1bHRzLgorICAgICAgICAoSlNDVGVzdFJlc3VsdHMuX19pbml0
X18pOiBJbml0aWFsaXplIG1lbWJlcnMuCisgICAgICAgIChKU0NUZXN0UmVzdWx0cy5lcXVhbHMp
OiBUaGlzIGVuYWJsZXMgdW5pdCB0ZXN0aW5nLgorICAgICAgICAoSlNDVGVzdFJlc3VsdHMuaXNf
c3Vic2V0KTogQ2hlY2tzIGlmIG9uZSBzZXQgb2YgZmFpbHVyZXMgaXMgYSBzdWJzZXQgb2YgYW5v
dGhlci4KKyAgICAgICAgKEpTQ1Rlc3RSZXN1bHRzLnN0cmVzc190ZXN0X2ZhaWx1cmVzKTogR2V0
dGVyLgorICAgICAgICAoSlNDVGVzdFJlc3VsdHMuYWxsX2FwaV90ZXN0c19wYXNzZWQpOiBHZXR0
ZXIuCisgICAgICAgIChKU0NUZXN0UmVzdWx0cy5hbGxfcGFzc2VkKTogR2V0dGVyLgorICAgICAg
ICAoSlNDVGVzdFJlc3VsdHMuZmFpbGluZ190ZXN0X3Jlc3VsdHMpOiBHZXR0ZXIuIFNvbWUgb2Yg
dGhlc2UgZXhpc3QgZm9yIGludGVyb3BhYmlsaXR5IHJlYXNvbnMuCisgICAgICAgIChKU0NUZXN0
UmVzdWx0cy50ZXN0X3Jlc3VsdHMpOiBHZXR0ZXIuCisgICAgICAgIChKU0NUZXN0UmVzdWx0cy5m
YWlsaW5nX3Rlc3RzKTogR2V0dGVyLgorICAgICAgICAoSlNDVGVzdFJlc3VsdHMuZGlkX2V4Y2Vl
ZF90ZXN0X2ZhaWx1cmVfbGltaXQpOiBHZXR0ZXIuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRw
eS9jb21tb24vbmV0L2pzY3Rlc3RyZXN1bHRzX3VuaXR0ZXN0LnB5OiBBZGRlZC4KKyAgICAgICAg
KEpTQ1Rlc3RSZXN1bHRzVGVzdCk6IENsYXNzIHRvIHRlc3QgSlNDVGVzdFJlc3VsdHMuCisgICAg
ICAgIChKU0NUZXN0UmVzdWx0c1Rlc3QudGVzdF9yZXN1bHRzX2Zyb21fc3RyaW5nKTogVGVzdHMg
cGFyc2luZy4KKyAgICAgICAgKEpTQ1Rlc3RSZXN1bHRzVGVzdC50ZXN0X2ludGVyc2VjdGlvbl9h
cGlfdGVzdHMpOiBVbml0IHRlc3QgZm9yIGludGVyc2VjdGlvbigpIGNsYXNzIG1ldGhvZC4KKyAg
ICAgICAgKEpTQ1Rlc3RSZXN1bHRzVGVzdC50ZXN0X2ludGVyc2VjdGlvbl9zdHJlc3NfdGVzdHMp
OiBVbml0IHRlc3QgZm9yIGludGVyc2VjdGlvbigpIGNsYXNzIG1ldGhvZC4KKyAgICAgICAgKEpT
Q1Rlc3RSZXN1bHRzVGVzdC50ZXN0X2ludGVyc2VjdGlvbl9nZW5lcmFsX2Nhc2UpOiBVbml0IHRl
c3QgZm9yIGludGVyc2VjdGlvbigpIGNsYXNzIG1ldGhvZC4KKyAgICAgICAgKiBTY3JpcHRzL3dl
YmtpdHB5L3Rvb2wvYm90L2Vhcmx5d2FybmluZ3N5c3RlbXRhc2sucHk6CisgICAgICAgIChFYXJs
eVdhcm5pbmdTeXN0ZW1UYXNrLnJ1bik6IEFkZCBjaGVja19wYXRjaF9yZWxldmFuY2Ugc3RlcC4K
KyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2pzY2V3c191bml0dGVzdC5weTog
QWRkZWQuCisgICAgICAgIChNb2NrUGF0Y2hBbmFseXNpc1Rhc2spOiBNb2NrZWQtb3V0IHZlcnNp
b24gb2YgUGF0Y2hBbmFseXNpc1Rhc2sgdGhhdCBkb2Vzbid0IHJ1biBjb21tYW5kcy4KKyAgICAg
ICAgKE1vY2tQYXRjaEFuYWx5c2lzVGFzay5fX2luaXRfXyk6IFNldHMgYXR0cmlidXRlcy4KKyAg
ICAgICAgKE1vY2tQYXRjaEFuYWx5c2lzVGFzay5fdGVzdCk6IE92ZXJyaWRlIHRvIG5vdCBydW4g
Y29tbWFuZC4KKyAgICAgICAgKE1vY2tQYXRjaEFuYWx5c2lzVGFzay5fYnVpbGRfYW5kX3Rlc3Rf
d2l0aG91dF9wYXRjaCk6IE92ZXJyaWRlIHRvIG5vdCBydW4gY29tbWFuZC4KKyAgICAgICAgKE1v
Y2tQYXRjaEFuYWx5c2lzVGFzay52YWxpZGF0ZSk6IEFzc3VtZSBtb2NrZWQgcGF0Y2ggaXMgdmFs
aWQgZm9yIHB1cnBvc2VzIG9mIHRlc3RpbmcgcmV0cnkgbG9naWMuCisgICAgICAgIChNb2NrUGF0
Y2hBbmFseXNpc1Rhc2sudGVzdF9ydW5fY291bnQpOiBTcGVjaWZpYyB0byB0aGUgbW9ja2VkIHZl
cnNpb24sIHRvIHRlc3QgcmV0cnkgbG9naWMuCisgICAgICAgIChNb2NrSlNDRWFybHlXYXJuaW5n
U3lzdGVtKTogTW9ja2VkLW91dCB2ZXJzaW9uIG9mIEFic3RhcmN0RWFybHlXYXJuaW5nU3lzdGVt
IHNvIHdlIGNhbiBwcm92aWRlIHRlc3QgcmVzdWx0cy4KKyAgICAgICAgKE1vY2tKU0NFYXJseVdh
cm5pbmdTeXN0ZW0uX19pbml0X18pOiBTZXRzIGF0dHJpYnV0ZXMsIGFsc28gc2V0cyBncm91cCB0
byBqc2MuCisgICAgICAgIChNb2NrSlNDRWFybHlXYXJuaW5nU3lzdGVtLnRlc3RfcmVzdWx0cyk6
IFJldHVybnMgdGVzdCByZXN1bHRzIHByb3ZpZGVkIGJ5IHVzLCBpbnN0ZWFkIG9mIHVzaW5nIGEg
SlNPTiByZWFkZXIuCisgICAgICAgIChKU0NFYXJseVdhcm5pbmdTeXN0ZW1UZXN0KTogQ2xhc3Mg
dG8gdGVzdCByZXRyeSBsb2dpYyBpbiBiZWxvdyBzaXR1YXRpb25zLgorICAgICAgICAoSlNDRWFy
bHlXYXJuaW5nU3lzdGVtVGVzdC5fY3JlYXRlX3Rhc2spOiBIZWxwZXIgZnVuY3Rpb24gdG8gYWJz
dHJhY3Qgb3V0IGNvbW1vbiBjb2RlLgorICAgICAgICAoSlNDRWFybHlXYXJuaW5nU3lzdGVtVGVz
dC5fcmVzdWx0c19pbmRpY2F0ZV9hbGxfcGFzc2VkKTogRmFsc2UgaWYgaW5wdXQgaXMgTm9uZSBv
ciBoYXMgZmFpbHVyZXMsIGVsc2UgVHJ1ZS4KKyAgICAgICAgKEpTQ0Vhcmx5V2FybmluZ1N5c3Rl
bVRlc3QudGVzdF9zdWNjZXNzX2Nhc2UpOiBDbGVhbiBwYXRjaCBvbiBjbGVhbiB0cmVlLgorICAg
ICAgICAoSlNDRWFybHlXYXJuaW5nU3lzdGVtVGVzdC50ZXN0X3Rlc3RfZmFpbHVyZSk6IEZhaWxl
ZCBwYXRjaCBvbiBjbGVhbiB0cmVlLgorICAgICAgICAoSlNDRWFybHlXYXJuaW5nU3lzdGVtVGVz
dC50ZXN0X2ZpeCk6IFBhdGNoIHRoYXQgZml4ZXMgYWxsIHRyZWUgcmVkbmVzcy4KKyAgICAgICAg
KEpTQ0Vhcmx5V2FybmluZ1N5c3RlbVRlc3QudGVzdF9pbmVmZmVjdGl2ZV9wYXRjaCk6IFBhdGNo
IHRoYXQgaGFzIHNhbWUgZmFpbHVyZXMgYXMgdHJlZS4KKyAgICAgICAgKEpTQ0Vhcmx5V2Fybmlu
Z1N5c3RlbVRlc3QudGVzdF9wYXJ0aWFsbHlfZWZmZWN0aXZlX3BhdGNoKTogUGF0Y2ggZml4ZXMg
c29tZSBmYWlsdXJlcyBidXQgYWRkcyBubyBuZXcgZmFpbHVyZXMuCisgICAgICAgIChKU0NFYXJs
eVdhcm5pbmdTeXN0ZW1UZXN0LnRlc3RfZGlmZmVyZW50X3Rlc3RfZmFpbHVyZXNfaW5fcGF0Y2hf
YW5kX3RyZWUpOiBQYXRjaCBoYXMgc29tZSBmYWlsdXJlcyBub3QgaW4gdHJlZS4KKyAgICAgICAg
KEpTQ0Vhcmx5V2FybmluZ1N5c3RlbVRlc3QudGVzdF9maXJzdF9yZXN1bHRzX2NvdWxkX25vdF9i
ZV9yZWFkKTogUGF0Y2ggcmVzdWx0cyBub3QgcmVhZGFibGUuCisgICAgICAgIChKU0NFYXJseVdh
cm5pbmdTeXN0ZW1UZXN0LnRlc3Rfc2Vjb25kX3Jlc3VsdHNfY291bGRfbm90X2JlX3JlYWQpOiBQ
YXRjaCByZXN1bHRzIG5vdCByZWFkYWJsZSBvbiBzZWNvbmQgcnVuLgorICAgICAgICAoSlNDRWFy
bHlXYXJuaW5nU3lzdGVtVGVzdC50ZXN0X2NsZWFuX3Jlc3VsdHNfY291bGRfbm90X2JlX3JlYWQp
OiBSZXN1bHRzIGZyb20gY2xlYW4gdHJlZSBub3QgcmVhZGFibGUuCisgICAgICAgIChKU0NFYXJs
eVdhcm5pbmdTeXN0ZW1UZXN0LnRlc3RfZmxha3lfcmVzdWx0c19vbl9jbGVhbl90cmVlX3Bhc3Mp
OiBQYXRjaCBoYXMgb25lIGZsYWtlIGFuZCBubyBmYWlsdXJlcy4KKyAgICAgICAgKEpTQ0Vhcmx5
V2FybmluZ1N5c3RlbVRlc3QudGVzdF9mbGFreV9yZXN1bHRzX29uX2NsZWFuX3RyZWVfcGFzc192
Mik6IFBhdGNoIGhhcyBvbmUgZmxha2UgYW5kIG5vIGZhaWx1cmVzLgorICAgICAgICAoSlNDRWFy
bHlXYXJuaW5nU3lzdGVtVGVzdC50ZXN0X2ZsYWt5X3Jlc3VsdHNfb25fY2xlYW5fdHJlZV9mYWls
dXJlKTogUGF0Y2ggaGFzIGZsYWtlcyBhbmQgZmFpbGVkIHRlc3RzLgorICAgICAgICAoSlNDRWFy
bHlXYXJuaW5nU3lzdGVtVGVzdC50ZXN0X2ZsYWt5X3Jlc3VsdHNfb25fcmVkX3RyZWVfcGFzcyk6
IFBhdGNoIGhhcyBzYW1lIGZhaWx1cmVzIGFzIHRyZWUsIHBsdXMgYSBmbGFrZS4KKyAgICAgICAg
KiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2pzY3Rlc3RyZXN1bHRzcmVhZGVyLnB5OiBBZGRl
ZC4KKyAgICAgICAgKEpTQ1Rlc3RSZXN1bHRzUmVhZGVyKTogUmVhZHMgcmVzdWx0cyBmaWxlLgor
ICAgICAgICAoSlNDVGVzdFJlc3VsdHNSZWFkZXIuX19pbml0X18pOiBTZXRzIGF0dHJpYnV0ZXMu
CisgICAgICAgIChKU0NUZXN0UmVzdWx0c1JlYWRlci5fcmVhZF9maWxlX2NvbnRlbnRzKTogUmVh
ZHMgZmlsZS4KKyAgICAgICAgKEpTQ1Rlc3RSZXN1bHRzUmVhZGVyLl9jcmVhdGVfanNjX3Rlc3Rf
cmVzdWx0cyk6IENyZWF0ZXMgYSBKU0NUZXN0UmVzdWx0cyBvYmplY3QuCisgICAgICAgIChKU0NU
ZXN0UmVzdWx0c1JlYWRlci5yZXN1bHRzKTogSW52b2tlcyBfY3JlYXRlX2pzY190ZXN0X3Jlc3Vs
dHMgdG8gcmV0dXJuIGEgSlNDVGVzdFJlc3VsdHMgb2JqZWN0LgorICAgICAgICAqIFNjcmlwdHMv
d2Via2l0cHkvdG9vbC9ib3QvcGF0Y2hhbmFseXNpc3Rhc2sucHk6CisgICAgICAgIChQYXRjaElz
Tm90QXBwbGljYWJsZSk6IEV4Y2VwdGlvbiBmb3Igd2hlbiBwYXRjaCBkb2Vzbid0IGhhdmUgcmVs
ZXZhbnQgY2hhbmdlcy4KKyAgICAgICAgKFBhdGNoQW5hbHlzaXNUYXNrLl9jaGVja19wYXRjaF9y
ZWxldmFuY2UpOiBBZGRlZC4KKyAgICAgICAgKFBhdGNoQW5hbHlzaXNUYXNrLl9idWlsZCk6IENo
ZWNrIGZvciBKU0MuCisgICAgICAgIChQYXRjaEFuYWx5c2lzVGFzay5fYnVpbGRfd2l0aG91dF9w
YXRjaCk6IENoZWNrIGZvciBKU0MuCisgICAgICAgIChQYXRjaEFuYWx5c2lzVGFzay5fdGVzdCk6
IENoZWNrIGZvciBKU0MuCisgICAgICAgIChQYXRjaEFuYWx5c2lzVGFzay5fYnVpbGRfYW5kX3Rl
c3Rfd2l0aG91dF9wYXRjaCk6IENoZWNrIGZvciBKU0MuCisgICAgICAgIChQYXRjaEFuYWx5c2lz
VGFzay5fdGVzdF9wYXRjaCk6IEFkZCByZXRyeSBsb2dpYyBmb3IgSlNDLgorICAgICAgICAqIFNj
cmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9kb3dubG9hZC5weToKKyAgICAgICAgKENoZWNr
UGF0Y2hSZWxldmFuY2UpOiBBZGQgY2hlY2stcGF0Y2gtcmVsZXZhbmNlIGNvbW1hbmQuCisgICAg
ICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Vhcmx5d2FybmluZ3N5c3RlbS5w
eToKKyAgICAgICAgKEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtLmJlZ2luX3dvcmtfcXVldWUp
OiBVc2UgSlNDVGVzdFJlc3VsdHNSZWFkZXIgbm90IExheW91dFRlc3RSZXN1bHRzUmVhZGVyIGlu
IEpTQyBFV1MuCisgICAgICAgIChBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbS5yZXZpZXdfcGF0
Y2gpOiBIYW5kbGUgUGF0Y2hJc0FwcGxpY2FibGUKKyAgICAgICAgKEFic3RyYWN0RWFybHlXYXJu
aW5nU3lzdGVtLnRlc3RfcmVzdWx0cyk6IF9sYXlvdXRfdGVzdF9yZXN1bHRzX3JlYWRlciAtPiBf
dGVzdF9yZXN1bHRzX3JlYWRlci4KKyAgICAgICAgKEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVt
LmFyY2hpdmVfbGFzdF90ZXN0X3Jlc3VsdHMpOiBfbGF5b3V0X3Rlc3RfcmVzdWx0c19yZWFkZXIg
LT4gX3Rlc3RfcmVzdWx0c19yZWFkZXIuCisgICAgICAgIChBYnN0cmFjdEVhcmx5V2FybmluZ1N5
c3RlbS5ncm91cCk6IFRoaXMgYXR0cmlidXRlIGRldGVybWluZXMgdGhlIHR5cGUgb2YgRVdTIChl
Zy4gSlNDKS4KKyAgICAgICAgKEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtLmxvYWRfZXdzX2Ns
YXNzZXMpOiBBZGQgX2dyb3VwLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21t
YW5kcy9lYXJseXdhcm5pbmdzeXN0ZW1fdW5pdHRlc3QucHk6CisgICAgICAgIChBYnN0cmFjdEVh
cmx5V2FybmluZ1N5c3RlbVRlc3QudGVzdF9mYWlsaW5nX3Rlc3RzX21lc3NhZ2UuVGVzdEVXUyk6
IEFkZCBfZ3JvdXAuCisgICAgICAgIChBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbVRlc3QudGVz
dF9mYWlsaW5nX2pzY190ZXN0c19tZXNzYWdlLlRlc3RFV1MpOiBBZGRlZCB0ZXN0IGZvciBqc2Mg
ZmFpbHVyZXMgbWVzc2FnZS4KKyAgICAgICAgKEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtVGVz
dCk6IEFkZCBfZ3JvdXAgdmFyaWFibGUuCisgICAgICAgIChFYXJseVdhcm5pbmdTeXN0ZW1UZXN0
Ll9kZWZhdWx0X2V4cGVjdGVkX2xvZ3MpOiBBZGQgY2hlY2stcGF0Y2gtcmVsZXZhbmNlIHN0ZXAg
YW5kIC0tZ3JvdXAgb3B0aW9uLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVw
cy9fX2luaXRfXy5weTogQWRkIENoZWNrUGF0Y2hSZWxldmFuY2UgaW1wb3J0LgorICAgICAgICAq
IFNjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9idWlsZC5weToKKyAgICAgICAgKEJ1aWxkLm9w
dGlvbnMpOiBDaGVjayBmb3IgSlNDLgorICAgICAgICAoQnVpbGQuYnVpbGQpOiBDaGVjayBmb3Ig
SlNDLgorICAgICAgICAoQnVpbGQucnVuKTogQ2hlY2sgZm9yIEpTQy4KKyAgICAgICAgKiBTY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvY2hlY2twYXRjaHJlbGV2YW5jZS5weTogQWRkZWQuCisg
ICAgICAgIChDaGVja1BhdGNoUmVsZXZhbmNlKTogQWRkZWQuCisgICAgICAgIChDaGVja1BhdGNo
UmVsZXZhbmNlLl9kb2VzX2NvbnRhaW5fY2hhbmdlX2luX3BhdGhzKTogQWJzdHJhY3QgZnVuY3Rp
b24gdG8gcGVyZm9ybSByZWdleCBtYXRjaGluZy4KKyAgICAgICAgKENoZWNrUGF0Y2hSZWxldmFu
Y2UucnVuKTogQ2hlY2sgaWYgY2hhbmdlZCBmaWxlcyBpbiBwYXRjaCBiZWxvbmcgaW4gY2VydGFp
biBmb2xkZXJzLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9vcHRpb25z
LnB5OgorICAgICAgICAoT3B0aW9ucyk6IEFkZCAtLWdyb3VwIGNvbW1hbmQgbGluZSBvcHRpb24u
CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3J1bnRlc3RzLnB5OgorICAg
ICAgICAoUnVuVGVzdHMub3B0aW9ucyk6IEFkZCBncm91cC4KKyAgICAgICAgKFJ1blRlc3RzLnJ1
bik6IENoZWNrIGZvciBKU0MuCisgICAgICAgIChSdW5UZXN0cy5fcnVuX3dlYmtpdF90ZXN0cyk6
IENoZWNrIGZvciBKU0MuCisgICAgICAgIChSdW5UZXN0cyk6IEFkZCBfZ3JvdXAgYXR0cmlidXRl
LgorICAgICAgICAoUnVuVGVzdHMuX3J1bl9qYXZhc2NyaXB0Y29yZV90ZXN0cyk6IE5ldy4KKyAg
ICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvc3RlcHNfdW5pdHRlc3QucHk6IFVu
aXQgdGVzdHMuCisKIDIwMTctMDItMDMgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBs
ZS5jb20+CiAKICAgICAgICAgQ29ycmVjdGx5IHNldCB0aGUgImluV2luZG93IiBmbGFnIGZvciBU
aWxlQ29udHJvbGxlcnMgdGhhdCBhcmVuJ3QgdGhlIHBhZ2UgdGlsZXMsIGFuZCBjbGFyaWZ5ICJ1
c2luZ1RpbGVkQmFja2luZyIgbG9naWMKZGlmZiAtLWdpdCBhL1Rvb2xzL1F1ZXVlU3RhdHVzU2Vy
dmVyL2NvbmZpZy9xdWV1ZXMucHkgYi9Ub29scy9RdWV1ZVN0YXR1c1NlcnZlci9jb25maWcvcXVl
dWVzLnB5CmluZGV4IDM0MWRkMDgzYWRmYmI4OTA3MTk4YmVlZDVlYWIyMTkzMDI2OTgzZjUuLjBh
MjJmZjMyYzhmMDNjODcxNDk2OTg3NzRmNjQzOGVkNWZhYmFkYzcgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1F1ZXVlU3RhdHVzU2VydmVyL2NvbmZpZy9xdWV1ZXMucHkKKysrIGIvVG9vbHMvUXVldWVTdGF0
dXNTZXJ2ZXIvY29uZmlnL3F1ZXVlcy5weQpAQCAtMSw0ICsxLDQgQEAKLSMgQ29weXJpZ2h0IChD
KSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAy
MDE0LCAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMgQ29weXJpZ2h0IChD
KSAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dApA
QCAtMzYsNiArMzYsNyBAQCBhbGxfcXVldWVfbmFtZXMgPSBbCiAgICAgImd0ay13azItZXdzIiwK
ICAgICAiaW9zLWV3cyIsCiAgICAgImlvcy1zaW0tZXdzIiwKKyAgICAianNjLWV3cyIsCiAgICAg
Im1hYy1ld3MiLAogICAgICJtYWMtd2syLWV3cyIsCiAgICAgIm1hYy1kZWJ1Zy1ld3MiLApkaWZm
IC0tZ2l0IGEvVG9vbHMvUXVldWVTdGF0dXNTZXJ2ZXIvaGFuZGxlcnMvc3RhdHVzYnViYmxlLnB5
IGIvVG9vbHMvUXVldWVTdGF0dXNTZXJ2ZXIvaGFuZGxlcnMvc3RhdHVzYnViYmxlLnB5CmluZGV4
IGM4MDUxNGZmODc4OWVmNjk0Yjk5NTcxNGUyZWI1ZDk2ZjhiY2E3ODIuLjI3M2Y4ZGZmMDZjNjli
NDgzMDViOTM4MzMwZWM1MDJlMDAzYjNiNzUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1F1ZXVlU3RhdHVz
U2VydmVyL2hhbmRsZXJzL3N0YXR1c2J1YmJsZS5weQorKysgYi9Ub29scy9RdWV1ZVN0YXR1c1Nl
cnZlci9oYW5kbGVycy9zdGF0dXNidWJibGUucHkKQEAgLTEsNCArMSw1IEBACiAjIENvcHlyaWdo
dCAoQykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQg
KEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zIGFyZQpAQCAtMTgyLDExICsxODMsMTkgQEAgY2xhc3MgU3RhdHVzQnViYmxl
KHdlYmFwcC5SZXF1ZXN0SGFuZGxlcik6CiAgICAgICAgIHJldHVybiBidWJibGUKIAogICAgIGRl
ZiBfc2hvdWxkX3Nob3dfYnViYmxlX2ZvcihzZWxmLCBhdHRhY2htZW50LCBxdWV1ZSk6Ci0gICAg
ICAgICAjIEFueSBwZW5kaW5nIHF1ZXVlIGlzIHNob3duLgorICAgICAgICAjIEFueSBwZW5kaW5n
IHF1ZXVlIGlzIHNob3duLgogICAgICAgICBpZiBhdHRhY2htZW50LnBvc2l0aW9uX2luX3F1ZXVl
KHF1ZXVlKToKICAgICAgICAgICAgIHJldHVybiBUcnVlCi0gICAgICAgICMgRVdTIHF1ZXVlcyBh
cmUgYWxzbyBzaG93biB3aGVuIGNvbXBsZXRlLgotICAgICAgICByZXR1cm4gYm9vbChxdWV1ZS5p
c19ld3MoKSBhbmQgYXR0YWNobWVudC5zdGF0dXNfZm9yX3F1ZXVlKHF1ZXVlKSkKKworICAgICAg
ICAjIEVXUyBxdWV1ZXMgYXJlIGFsc28gc2hvd24gd2hlbiBjb21wbGV0ZQorICAgICAgICAjIEJ1
dCBKU0MgRVdTIGJ1YmJsZSBpcyBub3Qgc2hvd24gaWYgdGhlIHBhdGNoIGlzIG5vdCByZWxldmFu
dCB0byBKU0MuCisgICAgICAgIGlmIG5vdCBxdWV1ZS5pc19ld3MoKToKKyAgICAgICAgICAgIHJl
dHVybiBGYWxzZQorCisgICAgICAgIHN0YXR1cyA9IGF0dGFjaG1lbnQuc3RhdHVzX2Zvcl9xdWV1
ZShxdWV1ZSkKKyAgICAgICAgaWYgcXVldWUubmFtZSgpID09ICJqc2MtZXdzIjoKKyAgICAgICAg
ICAgIHJldHVybiBub3Qgc3RhdHVzLm1lc3NhZ2Uuc3RhcnRzd2l0aCgiUGF0Y2ggbm90IGFwcGxp
Y2FibGUiKQorICAgICAgICByZXR1cm4gYm9vbChzdGF0dXMpCiAKICAgICBkZWYgX2J1aWxkX2J1
YmJsZXNfZm9yX2F0dGFjaG1lbnQoc2VsZiwgYXR0YWNobWVudCk6CiAgICAgICAgIHNob3dfc3Vi
bWl0X3RvX2V3cyA9IFRydWUKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29t
bW9uL2NoZWNrb3V0L3NjbS9zY21fbW9jay5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29t
bW9uL2NoZWNrb3V0L3NjbS9zY21fbW9jay5weQppbmRleCBjNWQxMGZjYjE4OWIwYThiNTE5ZmE1
NTYyNTAyMmE3MGM0ODZkNDRiLi45Nzc0ZWM4YWU4NzNhMWIwYjgzNzYwNzE4MDY2NzkyMTU4MDll
ZWVjIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja291dC9z
Y20vc2NtX21vY2sucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hlY2tv
dXQvc2NtL3NjbV9tb2NrLnB5CkBAIC0xLDQgKzEsNSBAQAogIyBDb3B5cmlnaHQgKEMpIDIwMTEg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDE3IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cyBhcmUKQEAgLTM3LDYgKzM4LDcgQEAgY2xhc3MgTW9ja1NDTShvYmplY3QpOgogICAgICAgICBz
ZWxmLmFkZGVkX3BhdGhzID0gc2V0KCkKICAgICAgICAgc2VsZi5fZmlsZXN5c3RlbSA9IGZpbGVz
eXN0ZW0gb3IgTW9ja0ZpbGVTeXN0ZW0oKQogICAgICAgICBzZWxmLl9leGVjdXRpdmUgPSBleGVj
dXRpdmUgb3IgTW9ja0V4ZWN1dGl2ZSgpCisgICAgICAgIHNlbGYuX21vY2tDaGFuZ2VkRmlsZXMg
PSBbIk1vY2tGaWxlMSJdCiAKICAgICBkZWYgYWRkKHNlbGYsIGRlc3RpbmF0aW9uX3BhdGgpOgog
ICAgICAgICBzZWxmLmFkZF9saXN0KFtkZXN0aW5hdGlvbl9wYXRoXSkKQEAgLTcxLDcgKzczLDcg
QEAgY2xhc3MgTW9ja1NDTShvYmplY3QpOgogICAgICAgICByZXR1cm4gc2VsZi5fZmlsZXN5c3Rl
bS5qb2luKHNlbGYuY2hlY2tvdXRfcm9vdCwgKmNvbXBzKQogCiAgICAgZGVmIGNoYW5nZWRfZmls
ZXMoc2VsZiwgZ2l0X2NvbW1pdD1Ob25lKToKLSAgICAgICAgcmV0dXJuIFsiTW9ja0ZpbGUxIl0K
KyAgICAgICAgcmV0dXJuIHNlbGYuX21vY2tDaGFuZ2VkRmlsZXMKIAogICAgIGRlZiBjaGFuZ2Vk
X2ZpbGVzX2Zvcl9yZXZpc2lvbihzZWxmLCByZXZpc2lvbik6CiAgICAgICAgIHJldHVybiBbIk1v
Y2tGaWxlMSJdCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25m
aWcvZXdzLmpzb24gYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvZXdzLmpz
b24KaW5kZXggMzVkNDk4NWFiMGY5M2QxMjdiMzcyMWU0NjAxY2Q2ZDg5ZGZjY2YzYy4uZTUzNDBm
ZTVjM2MyMWFlODFhZDFlZjdlMDNmN2ZiODFmMzgzOWNmZiAxMDA2NDQKLS0tIGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL2V3cy5qc29uCisrKyBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvY29tbW9uL2NvbmZpZy9ld3MuanNvbgpAQCAtNTAsNSArNTAsMTEgQEAKICAgICAg
ICAgInBvcnQiOiAibWFjIiwKICAgICAgICAgIm5hbWUiOiAibWFjLTMyYml0LWV3cyIsCiAgICAg
ICAgICJhcmNoaXRlY3R1cmUiOiAiaTM4NiIKKyAgICB9LAorICAgICJKU0MgRVdTIjogeworICAg
ICAgICAicG9ydCI6ICJtYWMiLAorICAgICAgICAibmFtZSI6ICJqc2MtZXdzIiwKKyAgICAgICAg
Imdyb3VwIjogImpzYyIsCisgICAgICAgICJydW5UZXN0cyI6IHRydWUKICAgICB9CiB9CmRpZmYg
LS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvcG9ydHMucHkgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvcG9ydHMucHkKaW5kZXggYTBkNTBk
Y2I2ZWEwYjVmZGUwYjNjMTdlZjE1OWNlYWZlZTFhMmU5OC4uZDM3ZWQ5ZDFjNWUyNTUwZTQ4ODM0
ZTdlZjAwYmFlNGMyNGNiZDc4NCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9j
b21tb24vY29uZmlnL3BvcnRzLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9u
L2NvbmZpZy9wb3J0cy5weQpAQCAtMSw2ICsxLDYgQEAKICMgQ29weXJpZ2h0IChDKSAyMDA5LCBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIyBDb3B5cmlnaHQgKEMpIDIwMTMgTm9r
aWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgotIyBDb3B5cmlnaHQg
KEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMp
IDIwMTUsIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zIGFyZQpAQCAtMTAzLDggKzEwMywyMSBAQCBjbGFzcyBEZXByZWNhdGVk
UG9ydChvYmplY3QpOgogICAgICAgICAgICAgY29tbWFuZC5hcHBlbmQoIi0tcmVsZWFzZSIpCiAg
ICAgICAgIHJldHVybiBjb21tYW5kCiAKLSAgICBkZWYgcnVuX2phdmFzY3JpcHRjb3JlX3Rlc3Rz
X2NvbW1hbmQoc2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmLnNjcmlwdF9zaGVsbF9jb21tYW5k
KCJydW4tamF2YXNjcmlwdGNvcmUtdGVzdHMiKQorICAgIGRlZiBidWlsZF9qc2NfY29tbWFuZChz
ZWxmLCBidWlsZF9zdHlsZT1Ob25lKToKKyAgICAgICAgY29tbWFuZCA9IHNlbGYuc2NyaXB0X3No
ZWxsX2NvbW1hbmQoImJ1aWxkLWpzYyIpCisgICAgICAgIGlmIGJ1aWxkX3N0eWxlID09ICJkZWJ1
ZyI6CisgICAgICAgICAgICBjb21tYW5kLmFwcGVuZCgiLS1kZWJ1ZyIpCisgICAgICAgIGlmIGJ1
aWxkX3N0eWxlID09ICJyZWxlYXNlIjoKKyAgICAgICAgICAgIGNvbW1hbmQuYXBwZW5kKCItLXJl
bGVhc2UiKQorICAgICAgICByZXR1cm4gY29tbWFuZAorCisgICAgZGVmIHJ1bl9qYXZhc2NyaXB0
Y29yZV90ZXN0c19jb21tYW5kKHNlbGYsIGJ1aWxkX3N0eWxlPU5vbmUpOgorICAgICAgICBjb21t
YW5kID0gc2VsZi5zY3JpcHRfc2hlbGxfY29tbWFuZCgicnVuLWphdmFzY3JpcHRjb3JlLXRlc3Rz
IikKKyAgICAgICAgY29tbWFuZC5hcHBlbmQoIi0tbm8tZmFpbC1mYXN0IikKKyAgICAgICAgY29t
bWFuZC5hcHBlbmQoIi0tanNvbi1vdXRwdXQ9anNjX3Rlc3RfcmVzdWx0cy5qc29uIikKKyAgICAg
ICAgaWYgKGJ1aWxkX3N0eWxlID09ICJkZWJ1ZyIpOgorICAgICAgICAgICAgY29tbWFuZC5hcHBl
bmQoIi0tZGVidWciKQorICAgICAgICByZXR1cm4gY29tbWFuZAogCiAgICAgZGVmIHJ1bl93ZWJr
aXRfdGVzdHNfY29tbWFuZChzZWxmLCBidWlsZF9zdHlsZT1Ob25lKToKICAgICAgICAgY29tbWFu
ZCA9IHNlbGYuc2NyaXB0X3NoZWxsX2NvbW1hbmQoInJ1bi13ZWJraXQtdGVzdHMiKQpAQCAtMTUw
LDcgKzE2MywxMCBAQCBjbGFzcyBJT1NTaW11bGF0b3JXSzJQb3J0KERlcHJlY2F0ZWRQb3J0KToK
IGNsYXNzIE1hY1BvcnQoRGVwcmVjYXRlZFBvcnQpOgogICAgIHBvcnRfZmxhZ19uYW1lID0gIm1h
YyIKIAotICAgIGRlZiBydW5fd2Via2l0X3Rlc3RzX2NvbW1hbmQoc2VsZiwgYnVpbGRfc3R5bGU9
Tm9uZSk6CisgICAgZGVmIHJ1bl93ZWJraXRfdGVzdHNfY29tbWFuZChzZWxmLCBidWlsZF9zdHls
ZT1Ob25lLCB0ZXN0X3N1aXRlPU5vbmUpOgorICAgICAgICBpZiAodGVzdF9zdWl0ZSA9PSAianNj
Iik6CisgICAgICAgICAgICByZXR1cm4gc3VwZXIoTWFjUG9ydCwgc2VsZikucnVuX2phdmFzY3Jp
cHRjb3JlX3Rlc3RzX2NvbW1hbmQoYnVpbGRfc3R5bGUpCisKICAgICAgICAgY29tbWFuZCA9IHN1
cGVyKE1hY1BvcnQsIHNlbGYpLnJ1bl93ZWJraXRfdGVzdHNfY29tbWFuZChidWlsZF9zdHlsZSkK
ICAgICAgICAgY29tbWFuZC5hcHBlbmQoIi0tZHVtcC1yZW5kZXItdHJlZSIpCiAgICAgICAgIHJl
dHVybiBjb21tYW5kCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9j
b25maWcvcG9ydHNfbW9jay5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZp
Zy9wb3J0c19tb2NrLnB5CmluZGV4IDYxNzQzZGViYjRlYmVlMzc1NmJhN2MyMGYwMTQ4MjM1NDBk
MmRjYTYuLmNhMWIxOGEzMTA2ODQyM2JkY2UwN2NkZWI3ZDdkN2QxOTlmNDAwYWIgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9wb3J0c19tb2NrLnB5Cisr
KyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9wb3J0c19tb2NrLnB5CkBA
IC0xLDQgKzEsNSBAQAogIyBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTQ5LDcgKzUwLDcg
QEAgY2xhc3MgTW9ja1BvcnQob2JqZWN0KToKICAgICBkZWYgcnVuX3BlcmxfdW5pdHRlc3RzX2Nv
bW1hbmQoc2VsZik6CiAgICAgICAgIHJldHVybiBbJ21vY2stdGVzdC13ZWJraXRwZXJsJ10KIAot
ICAgIGRlZiBydW5famF2YXNjcmlwdGNvcmVfdGVzdHNfY29tbWFuZChzZWxmKToKKyAgICBkZWYg
cnVuX2phdmFzY3JpcHRjb3JlX3Rlc3RzX2NvbW1hbmQoc2VsZiwgYnVpbGRfc3R5bGU9Tm9uZSk6
CiAgICAgICAgIHJldHVybiBbJ21vY2stcnVuLWphdmFjcmlwdGNvcmUtdGVzdHMnXQogCiAgICAg
ZGVmIHJ1bl93ZWJraXRfdGVzdHNfY29tbWFuZChzZWxmLCBidWlsZF9zdHlsZT1Ob25lKToKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9wb3J0c191bml0
dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9wb3J0c191bml0
dGVzdC5weQppbmRleCAwOGQ1NDUyMzZkYTM3MDNlOTI4ZjFjZWVkMWRkOTEwMmQ5Yjg2MjJlLi4x
NmNkN2Y5MjgyNTFiYmM5OTZjYjY0NmU0MzU5ZDczZmRiNTM1YjI2IDEwMDY0NAotLS0gYS9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvcG9ydHNfdW5pdHRlc3QucHkKKysrIGIv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL3BvcnRzX3VuaXR0ZXN0LnB5CkBA
IC0xLDQgKzEsNSBAQAogIyBDb3B5cmlnaHQgKGMpIDIwMDksIEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC0zOSw2ICs0MCwx
MCBAQCBjbGFzcyBEZXByZWNhdGVkUG9ydFRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKE1hY1BvcnQoKS5idWlsZF93ZWJraXRfY29tbWFuZChidWlsZF9z
dHlsZT0iZGVidWciKSwgRGVwcmVjYXRlZFBvcnQoKS5zY3JpcHRfc2hlbGxfY29tbWFuZCgiYnVp
bGQtd2Via2l0IikgKyBbIi0tZGVidWciXSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChNYWNQ
b3J0KCkuYnVpbGRfd2Via2l0X2NvbW1hbmQoYnVpbGRfc3R5bGU9InJlbGVhc2UiKSwgRGVwcmVj
YXRlZFBvcnQoKS5zY3JpcHRfc2hlbGxfY29tbWFuZCgiYnVpbGQtd2Via2l0IikgKyBbIi0tcmVs
ZWFzZSJdKQogCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTWFjUG9ydCgpLmJ1aWxkX2pzY19j
b21tYW5kKCksIERlcHJlY2F0ZWRQb3J0KCkuc2NyaXB0X3NoZWxsX2NvbW1hbmQoImJ1aWxkLWpz
YyIpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE1hY1BvcnQoKS5idWlsZF9qc2NfY29tbWFu
ZChidWlsZF9zdHlsZT0icmVsZWFzZSIpLCBEZXByZWNhdGVkUG9ydCgpLnNjcmlwdF9zaGVsbF9j
b21tYW5kKCJidWlsZC1qc2MiKSArIFsiLS1yZWxlYXNlIl0pCisgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoTWFjUG9ydCgpLmJ1aWxkX2pzY19jb21tYW5kKGJ1aWxkX3N0eWxlPSJkZWJ1ZyIpLCBE
ZXByZWNhdGVkUG9ydCgpLnNjcmlwdF9zaGVsbF9jb21tYW5kKCJidWlsZC1qc2MiKSArIFsiLS1k
ZWJ1ZyJdKQorCiAgICAgZGVmIHRlc3RfZ3RrX3drMl9wb3J0KHNlbGYpOgogICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKEd0a1dLMlBvcnQoKS5mbGFnKCksICItLXBvcnQ9Z3RrLXdrMiIpCiAgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoR3RrV0syUG9ydCgpLnJ1bl93ZWJraXRfdGVzdHNfY29tbWFu
ZCgpLCBEZXByZWNhdGVkUG9ydCgpLnNjcmlwdF9zaGVsbF9jb21tYW5kKCJydW4td2Via2l0LXRl
c3RzIikgKyBbIi0tZ3RrIl0pCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2Nv
bW1vbi9uZXQvanNjdGVzdHJlc3VsdHMucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1v
bi9uZXQvanNjdGVzdHJlc3VsdHMucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmU2ZWIwZTMwZjY3MzZiYTk5NDJj
ZjBmOGMxNjhkMzIxMzJhYTdiNQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvY29tbW9uL25ldC9qc2N0ZXN0cmVzdWx0cy5weQpAQCAtMCwwICsxLDg2IEBACisjIENv
cHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMK
KyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJyBBTkQKKyMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisjIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SCisjIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisjIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisjIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK2ltcG9ydCBqc29uCitpbXBvcnQg
bG9nZ2luZworCitfbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18pCisKKworY2xhc3Mg
SlNDVGVzdFJlc3VsdHMob2JqZWN0KToKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgaW50ZXJz
ZWN0aW9uKGNscywgZmlyc3QsIHNlY29uZCk6CisgICAgICAgIGludGVyc2VjdGlvbl9hcGlfdGVz
dHNfcGFzc2VkID0gZmlyc3QuX2FsbF9hcGlfdGVzdHNfcGFzc2VkIG9yIHNlY29uZC5fYWxsX2Fw
aV90ZXN0c19wYXNzZWQKKyAgICAgICAgaW50ZXJzZWN0aW9uX3N0cmVzc190ZXN0X2ZhaWx1cmVz
ID0gbGlzdChzZXQoZmlyc3QuX3N0cmVzc190ZXN0X2ZhaWx1cmVzKSAmIHNldChzZWNvbmQuX3N0
cmVzc190ZXN0X2ZhaWx1cmVzKSkKKyAgICAgICAgcmV0dXJuIGNscyhpbnRlcnNlY3Rpb25fYXBp
X3Rlc3RzX3Bhc3NlZCwgaW50ZXJzZWN0aW9uX3N0cmVzc190ZXN0X2ZhaWx1cmVzKQorCisgICAg
QGNsYXNzbWV0aG9kCisgICAgZGVmIHJlc3VsdHNfZnJvbV9zdHJpbmcoY2xzLCBzdHJpbmcpOgor
ICAgICAgICBpZiBub3Qgc3RyaW5nOgorICAgICAgICAgICAgcmV0dXJuIE5vbmUKKworICAgICAg
ICB0cnk6CisgICAgICAgICAgICBwYXJzZWRfcmVzdWx0cyA9IGpzb24ubG9hZHMoc3RyaW5nKQor
ICAgICAgICBleGNlcHQgVmFsdWVFcnJvcjoKKyAgICAgICAgICAgIHJldHVybiBOb25lCisKKyAg
ICAgICAgaWYgJ2FsbEFwaVRlc3RzUGFzc2VkJyBub3QgaW4gcGFyc2VkX3Jlc3VsdHMgb3IgJ3N0
cmVzc1Rlc3RGYWlsdXJlcycgbm90IGluIHBhcnNlZF9yZXN1bHRzOgorICAgICAgICAgICAgcmV0
dXJuIE5vbmUKKworICAgICAgICByZXR1cm4gY2xzKHBhcnNlZF9yZXN1bHRzWydhbGxBcGlUZXN0
c1Bhc3NlZCddLCBwYXJzZWRfcmVzdWx0c1snc3RyZXNzVGVzdEZhaWx1cmVzJ10pCisKKyAgICBk
ZWYgX19pbml0X18oc2VsZiwgYWxsX2FwaV90ZXN0c19wYXNzZWQsIHN0cmVzc190ZXN0X2ZhaWx1
cmVzKToKKyAgICAgICAgc2VsZi5fYWxsX2FwaV90ZXN0c19wYXNzZWQgPSBhbGxfYXBpX3Rlc3Rz
X3Bhc3NlZAorICAgICAgICBzZWxmLl9zdHJlc3NfdGVzdF9mYWlsdXJlcyA9IHN0cmVzc190ZXN0
X2ZhaWx1cmVzCisKKyAgICAgICAgc2VsZi5fdGVzdF9yZXN1bHRzID0gc3RyZXNzX3Rlc3RfZmFp
bHVyZXNbOl0KKyAgICAgICAgaWYgbm90IHNlbGYuX2FsbF9hcGlfdGVzdHNfcGFzc2VkOgorICAg
ICAgICAgICAgc2VsZi5fdGVzdF9yZXN1bHRzLmFwcGVuZCgiYXBpVGVzdHMiKQorCisgICAgZGVm
IGVxdWFscyhzZWxmLCBvdGhlcik6CisgICAgICAgIHJldHVybiBzZWxmLl9hbGxfYXBpX3Rlc3Rz
X3Bhc3NlZCA9PSBvdGhlci5fYWxsX2FwaV90ZXN0c19wYXNzZWQgYW5kIFwKKyAgICAgICAgICAg
ICAgIHNldChzZWxmLl9zdHJlc3NfdGVzdF9mYWlsdXJlcykgPT0gc2V0KG90aGVyLl9zdHJlc3Nf
dGVzdF9mYWlsdXJlcykKKworICAgIGRlZiBpc19zdWJzZXQoc2VsZiwgb3RoZXIpOgorICAgICAg
ICByZXR1cm4gc2V0KHNlbGYudGVzdF9yZXN1bHRzKCkpIDw9IHNldChvdGhlci50ZXN0X3Jlc3Vs
dHMoKSkKKworICAgIGRlZiBzdHJlc3NfdGVzdF9mYWlsdXJlcyhzZWxmKToKKyAgICAgICAgcmV0
dXJuIHNlbGYuX3N0cmVzc190ZXN0X2ZhaWx1cmVzCisKKyAgICBkZWYgYWxsX2FwaV90ZXN0c19w
YXNzZWQoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl9hbGxfYXBpX3Rlc3RzX3Bhc3NlZAor
CisgICAgZGVmIGFsbF9wYXNzZWQoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl9hbGxfYXBp
X3Rlc3RzX3Bhc3NlZCBhbmQgbm90IHNlbGYuX3N0cmVzc190ZXN0X2ZhaWx1cmVzCisKKyAgICBk
ZWYgZmFpbGluZ190ZXN0X3Jlc3VsdHMoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLnN0cmVz
c190ZXN0X2ZhaWx1cmVzKCkKKworICAgIGRlZiB0ZXN0X3Jlc3VsdHMoc2VsZik6CisgICAgICAg
IHJldHVybiBzZWxmLl90ZXN0X3Jlc3VsdHMKKworICAgIGRlZiBmYWlsaW5nX3Rlc3RzKHNlbGYp
OgorICAgICAgICByZXR1cm4gc2VsZi5fdGVzdF9yZXN1bHRzCisKKyAgICAjIE5vIGRlZmluZWQg
ZmFpbHVyZSBsaW1pdCBmb3IgSlNDLgorICAgIGRlZiBkaWRfZXhjZWVkX3Rlc3RfZmFpbHVyZV9s
aW1pdChzZWxmKToKKyAgICAgICAgcmV0dXJuIEZhbHNlCmRpZmYgLS1naXQgYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvanNjdGVzdHJlc3VsdHNfdW5pdHRlc3QucHkgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvanNjdGVzdHJlc3VsdHNfdW5pdHRlc3QucHkK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMThlZjQ0NGE1NjhlNDYwODgwNDU5MTc2YzVmZmFjMDZmMTVmMTdiNgotLS0g
L2Rldi9udWxsCisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9qc2N0ZXN0
cmVzdWx0c191bml0dGVzdC5weQpAQCAtMCwwICsxLDc1IEBACisjIENvcHlyaWdodCAoQykgMjAx
NyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JyBBTkQKKyMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUgorIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisjIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisjIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSCisjIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisjIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisKK2ltcG9ydCB1bml0dGVzdAorCitmcm9tIHdlYmtpdHB5LmNv
bW1vbi5uZXQuanNjdGVzdHJlc3VsdHMgaW1wb3J0IEpTQ1Rlc3RSZXN1bHRzCisKKworY2xhc3Mg
SlNDVGVzdFJlc3VsdHNUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICBkZWYgdGVzdF9yZXN1
bHRzX2Zyb21fc3RyaW5nKHNlbGYpOgorICAgICAgICBub25lX2l0ZW0gPSBOb25lCisgICAgICAg
IGVtcHR5X3N0cmluZyA9ICIiCisgICAgICAgIGludmFsaWRfanNvbiA9ICd7ImFsbEFwaVRlc3Rz
UGFzc2VkIjonCisgICAgICAgIGluY29tcGxldGVfanNvbl92MSA9ICd7ImFsbEFwaVRlc3RzUGFz
c2VkIjogdHJ1ZX0nCisgICAgICAgIGluY29tcGxldGVfanNvbl92MiA9ICd7InN0cmVzc1Rlc3RG
YWlsdXJlcyI6W119JworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIEpTQ1Rlc3RSZXN1
bHRzLnJlc3VsdHNfZnJvbV9zdHJpbmcobm9uZV9pdGVtKSkKKyAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChOb25lLCBKU0NUZXN0UmVzdWx0cy5yZXN1bHRzX2Zyb21fc3RyaW5nKGVtcHR5X3N0cmlu
ZykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgSlNDVGVzdFJlc3VsdHMucmVzdWx0
c19mcm9tX3N0cmluZyhpbnZhbGlkX2pzb24pKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5v
bmUsIEpTQ1Rlc3RSZXN1bHRzLnJlc3VsdHNfZnJvbV9zdHJpbmcoaW5jb21wbGV0ZV9qc29uX3Yx
KSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCBKU0NUZXN0UmVzdWx0cy5yZXN1bHRz
X2Zyb21fc3RyaW5nKGluY29tcGxldGVfanNvbl92MikpCisKKyAgICAgICAgbm9fZmFpbHVyZXNf
c3RyaW5nID0gJ3siYWxsQXBpVGVzdHNQYXNzZWQiOiB0cnVlLCAic3RyZXNzVGVzdEZhaWx1cmVz
IjpbXX0nCisgICAgICAgIG5vX2ZhaWx1cmVzX3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVl
LCBbXSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG5vX2ZhaWx1cmVzX3Jlc3VsdHMuZXF1YWxz
KEpTQ1Rlc3RSZXN1bHRzLnJlc3VsdHNfZnJvbV9zdHJpbmcobm9fZmFpbHVyZXNfc3RyaW5nKSkp
CisKKyAgICAgICAgYXBpX3Rlc3RfZmFpbHVyZXNfc3RyaW5nID0gJ3siYWxsQXBpVGVzdHNQYXNz
ZWQiOiBmYWxzZSwgInN0cmVzc1Rlc3RGYWlsdXJlcyI6W119JworICAgICAgICBhcGlfdGVzdF9m
YWlsdXJlc19yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoRmFsc2UsIFtdKQorICAgICAgICBzZWxm
LmFzc2VydFRydWUoYXBpX3Rlc3RfZmFpbHVyZXNfcmVzdWx0cy5lcXVhbHMoSlNDVGVzdFJlc3Vs
dHMucmVzdWx0c19mcm9tX3N0cmluZyhhcGlfdGVzdF9mYWlsdXJlc19zdHJpbmcpKSkKKworICAg
ICAgICBtYW55X2ZhaWx1cmVzX3N0cmluZyA9ICd7ImFsbEFwaVRlc3RzUGFzc2VkIjogZmFsc2Us
ICJzdHJlc3NUZXN0RmFpbHVyZXMiOlsiZXM2LnlhbWwvZXM2L3R5cGVkX2FycmF5c19JbnQxNkFy
cmF5LmpzLmRlZmF1bHQiLCAiZXM2LnlhbWwvZXM2L3R5cGVkX2FycmF5c19JbnQ4QXJyYXkuanMu
ZGVmYXVsdCJdfScKKyAgICAgICAgbWFueV9mYWlsdXJlc19yZXN1bHRzID0gSlNDVGVzdFJlc3Vs
dHMoRmFsc2UsIFsiZXM2LnlhbWwvZXM2L3R5cGVkX2FycmF5c19JbnQxNkFycmF5LmpzLmRlZmF1
bHQiLCAiZXM2LnlhbWwvZXM2L3R5cGVkX2FycmF5c19JbnQ4QXJyYXkuanMuZGVmYXVsdCJdKQor
ICAgICAgICBzZWxmLmFzc2VydFRydWUobWFueV9mYWlsdXJlc19yZXN1bHRzLmVxdWFscyhKU0NU
ZXN0UmVzdWx0cy5yZXN1bHRzX2Zyb21fc3RyaW5nKG1hbnlfZmFpbHVyZXNfc3RyaW5nKSkpCisK
KyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShub19mYWlsdXJlc19yZXN1bHRzID09IGFwaV90ZXN0
X2ZhaWx1cmVzX3Jlc3VsdHMpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoYXBpX3Rlc3RfZmFp
bHVyZXNfcmVzdWx0cyA9PSBtYW55X2ZhaWx1cmVzX3Jlc3VsdHMpCisKKyAgICBkZWYgdGVzdF9p
bnRlcnNlY3Rpb25fYXBpX3Rlc3RzKHNlbGYpOgorICAgICAgICByZXN1bHRzMSA9IEpTQ1Rlc3RS
ZXN1bHRzKEZhbHNlLCBbXSkKKyAgICAgICAgcmVzdWx0czIgPSBKU0NUZXN0UmVzdWx0cyhUcnVl
LCBbXSkKKworICAgICAgICBleHBlY3RlZF9pbnRlcnNlY3Rpb24gPSBKU0NUZXN0UmVzdWx0cyhU
cnVlLCBbXSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGV4cGVjdGVkX2ludGVyc2VjdGlvbi5l
cXVhbHMoSlNDVGVzdFJlc3VsdHMuaW50ZXJzZWN0aW9uKHJlc3VsdHMxLCByZXN1bHRzMikpKQor
CisgICAgZGVmIHRlc3RfaW50ZXJzZWN0aW9uX3N0cmVzc190ZXN0cyhzZWxmKToKKyAgICAgICAg
cmVzdWx0czEgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbJ2ZhaWx1cmUxJywgJ2ZhaWx1cmUyJ10p
CisgICAgICAgIHJlc3VsdHMyID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgWydmYWlsdXJlMScsICdm
YWlsdXJlMyddKQorCisgICAgICAgIGV4cGVjdGVkX2ludGVyc2VjdGlvbiA9IEpTQ1Rlc3RSZXN1
bHRzKFRydWUsIFsnZmFpbHVyZTEnXSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGV4cGVjdGVk
X2ludGVyc2VjdGlvbi5lcXVhbHMoSlNDVGVzdFJlc3VsdHMuaW50ZXJzZWN0aW9uKHJlc3VsdHMx
LCByZXN1bHRzMikpKQorCisgICAgZGVmIHRlc3RfaW50ZXJzZWN0aW9uX2dlbmVyYWxfY2FzZShz
ZWxmKToKKyAgICAgICAgcmVzdWx0czEgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbJ2ZhaWx1cmUx
JywgJ2ZhaWx1cmUyJ10pCisgICAgICAgIHJlc3VsdHMyID0gSlNDVGVzdFJlc3VsdHMoRmFsc2Us
IFsnZmFpbHVyZTEnXSkKKworICAgICAgICBleHBlY3RlZF9pbnRlcnNlY3Rpb24gPSBKU0NUZXN0
UmVzdWx0cyhUcnVlLCBbJ2ZhaWx1cmUxJ10pCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShleHBl
Y3RlZF9pbnRlcnNlY3Rpb24uZXF1YWxzKEpTQ1Rlc3RSZXN1bHRzLmludGVyc2VjdGlvbihyZXN1
bHRzMSwgcmVzdWx0czIpKSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9v
bC9ib3QvZWFybHl3YXJuaW5nc3lzdGVtdGFzay5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
dG9vbC9ib3QvZWFybHl3YXJuaW5nc3lzdGVtdGFzay5weQppbmRleCBmYzMwOGI0M2QxZDE3MmFi
NzNiMGUzYWY4MGQxYjEzOWRkM2MxMDMyLi5lY2ZhY2QwMTFiZTg4M2I0YmIxZTVjN2Q3ZGZmZGJk
Y2I0NTlkZTM1IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2Vh
cmx5d2FybmluZ3N5c3RlbXRhc2sucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29s
L2JvdC9lYXJseXdhcm5pbmdzeXN0ZW10YXNrLnB5CkBAIC0xLDQgKzEsNSBAQAogIyBDb3B5cmln
aHQgKGMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0
IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucyBhcmUKQEAgLTI2LDcgKzI3LDcgQEAKICMgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiAjIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCiAKLWZyb20gd2Via2l0cHkudG9vbC5ib3QucGF0Y2hhbmFseXNpc3Rhc2sgaW1w
b3J0IFBhdGNoQW5hbHlzaXNUYXNrLCBQYXRjaEFuYWx5c2lzVGFza0RlbGVnYXRlLCBVbmFibGVU
b0FwcGx5UGF0Y2gsIFBhdGNoSXNOb3RWYWxpZAorZnJvbSB3ZWJraXRweS50b29sLmJvdC5wYXRj
aGFuYWx5c2lzdGFzayBpbXBvcnQgUGF0Y2hBbmFseXNpc1Rhc2ssIFBhdGNoQW5hbHlzaXNUYXNr
RGVsZWdhdGUsIFVuYWJsZVRvQXBwbHlQYXRjaCwgUGF0Y2hJc05vdFZhbGlkLCBQYXRjaElzTm90
QXBwbGljYWJsZQogCiAKIGNsYXNzIEVhcmx5V2FybmluZ1N5c3RlbVRhc2tEZWxlZ2F0ZShQYXRj
aEFuYWx5c2lzVGFza0RlbGVnYXRlKToKQEAgLTU4LDYgKzU5LDggQEAgY2xhc3MgRWFybHlXYXJu
aW5nU3lzdGVtVGFzayhQYXRjaEFuYWx5c2lzVGFzayk6CiAgICAgICAgICAgICByZXR1cm4gRmFs
c2UKICAgICAgICAgaWYgbm90IHNlbGYuX2FwcGx5KCk6CiAgICAgICAgICAgICByYWlzZSBVbmFi
bGVUb0FwcGx5UGF0Y2goc2VsZi5fcGF0Y2gpCisgICAgICAgIGlmIG5vdCBzZWxmLl9jaGVja19w
YXRjaF9yZWxldmFuY2UoKToKKyAgICAgICAgICAgIHJhaXNlIFBhdGNoSXNOb3RBcHBsaWNhYmxl
KHNlbGYuX3BhdGNoKQogICAgICAgICBpZiBub3Qgc2VsZi5fYnVpbGQoKToKICAgICAgICAgICAg
IGlmIG5vdCBzZWxmLl9idWlsZF93aXRob3V0X3BhdGNoKCk6CiAgICAgICAgICAgICAgICAgcmV0
dXJuIEZhbHNlCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2pz
Y2V3c191bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvanNjZXdz
X3VuaXR0ZXN0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg3MTMwMDAyNTZjM2ZkYzA3MzUxOGIyYjQ5NTNkZmU5
MGYzMWNiMDkKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wv
Ym90L2pzY2V3c191bml0dGVzdC5weQpAQCAtMCwwICsxLDIxOSBAQAorIyBDb3B5cmlnaHQgKEMp
IDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMg
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycgQU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorIyBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitpbXBvcnQgbG9nZ2luZworaW1wb3J0IHVuaXR0ZXN0
CisKK2Zyb20gd2Via2l0cHkuY29tbW9uLm5ldC5qc2N0ZXN0cmVzdWx0cyBpbXBvcnQgSlNDVGVz
dFJlc3VsdHMKK2Zyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5leGVjdXRpdmUgaW1wb3J0IFNj
cmlwdEVycm9yCitmcm9tIHdlYmtpdHB5LnRvb2wuYm90LnBhdGNoYW5hbHlzaXN0YXNrIGltcG9y
dCAqCitmcm9tIHdlYmtpdHB5LnRvb2wuY29tbWFuZHMuZWFybHl3YXJuaW5nc3lzdGVtIGltcG9y
dCBBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbQorZnJvbSB3ZWJraXRweS50b29sLm1vY2t0b29s
IGltcG9ydCBNb2NrVG9vbAorCitfbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18pCisK
KworY2xhc3MgTW9ja1BhdGNoQW5hbHlzaXNUYXNrKFBhdGNoQW5hbHlzaXNUYXNrKToKKyAgICBk
ZWYgX19pbml0X18oc2VsZiwgZGVsZWdhdGUsIHBhdGNoLCBwYXRjaGVzX3Bhc3NlZF9hbGxfdGVz
dHMpOgorICAgICAgICBzZWxmLl9kZWxlZ2F0ZSA9IGRlbGVnYXRlCisgICAgICAgIHNlbGYuX3Bh
dGNoID0gcGF0Y2gKKyAgICAgICAgc2VsZi5fc2NyaXB0X2Vycm9yID0gTm9uZQorICAgICAgICBz
ZWxmLl9yZXN1bHRzX2FyY2hpdmVfZnJvbV9wYXRjaF90ZXN0X3J1biA9IE5vbmUKKyAgICAgICAg
c2VsZi5fcmVzdWx0c19mcm9tX3BhdGNoX3Rlc3RfcnVuID0gTm9uZQorICAgICAgICBzZWxmLmVy
cm9yID0gTm9uZQorICAgICAgICBzZWxmLl9wYXRjaGVzX3Bhc3NlZF9hbGxfdGVzdHMgPSBwYXRj
aGVzX3Bhc3NlZF9hbGxfdGVzdHMKKyAgICAgICAgc2VsZi5fdGVzdF9ydW5fY291bnQgPSAwCisg
ICAgICAgIHNlbGYuZmFpbHVyZV9zdGF0dXNfaWQgPSA0MgorCisgICAgZGVmIF90ZXN0KHNlbGYp
OgorICAgICAgICBzZWxmLl90ZXN0X3J1bl9jb3VudCArPSAxCisKKyAgICAgICAgaWYgc2VsZi5f
cGF0Y2hlc19wYXNzZWRfYWxsX3Rlc3RzLnBvcCgpID09IFRydWU6CisgICAgICAgICAgICByZXR1
cm4gVHJ1ZQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZi5fc2NyaXB0X2Vycm9yID0g
U2NyaXB0RXJyb3IoIlJlZ3Jlc3Npb24gdGVzdCIpCisgICAgICAgICAgICByZXR1cm4gRmFsc2UK
KworICAgIGRlZiBfYnVpbGRfYW5kX3Rlc3Rfd2l0aG91dF9wYXRjaChzZWxmKToKKyAgICAgICAg
c2VsZi5fdGVzdF9ydW5fY291bnQgKz0gMQorICAgICAgICByZXR1cm4gVHJ1ZQorCisgICAgZGVm
IHZhbGlkYXRlKHNlbGYpOgorICAgICAgICByZXR1cm4gVHJ1ZQorCisgICAgZGVmIHRlc3RfcnVu
X2NvdW50KHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5fdGVzdF9ydW5fY291bnQKKworCisj
IFRoaXMgaXMgdGhlIGRlbGVnYXRlIHRvIGJlIHVzZWQgd2l0aCBNb2NrUGF0Y2hBbmFseXNpc1Rh
c2ssIGFib3ZlLgorY2xhc3MgTW9ja0pTQ0Vhcmx5V2FybmluZ1N5c3RlbShBYnN0cmFjdEVhcmx5
V2FybmluZ1N5c3RlbSk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGZpcnN0X3Rlc3RfcmVzdWx0
cywgc2Vjb25kX3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKToKKyAgICAgICAgQWJz
dHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0uX19pbml0X18oc2VsZikKKyAgICAgICAgc2VsZi5fZ3Jv
dXAgPSAianNjIgorICAgICAgICBzZWxmLl9yZXN1bHRzX2luX29yZGVyID0gW2NsZWFuX3Rlc3Rf
cmVzdWx0cywgc2Vjb25kX3Rlc3RfcmVzdWx0cywgZmlyc3RfdGVzdF9yZXN1bHRzXQorCisgICAg
ZGVmIHRlc3RfcmVzdWx0cyhzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX3Jlc3VsdHNfaW5f
b3JkZXIucG9wKCkKKworCitjbGFzcyBKU0NFYXJseVdhcm5pbmdTeXN0ZW1UZXN0KHVuaXR0ZXN0
LlRlc3RDYXNlKToKKyAgICBkZWYgX3Jlc3VsdHNfaW5kaWNhdGVfYWxsX3Bhc3NlZChzZWxmLCBy
ZXN1bHRzKToKKyAgICAgICAgaWYgcmVzdWx0cyA9PSBOb25lOgorICAgICAgICAgICAgcmV0dXJu
IEZhbHNlCisgICAgICAgIHJldHVybiByZXN1bHRzLmFsbF9wYXNzZWQoKQorCisgICAgZGVmIF9j
cmVhdGVfdGFzayhzZWxmLCBmaXJzdF90ZXN0X3Jlc3VsdHMsIHNlY29uZF90ZXN0X3Jlc3VsdHMs
IGNsZWFuX3Rlc3RfcmVzdWx0cyk6CisgICAgICAgIHF1ZXVlID0gTW9ja0pTQ0Vhcmx5V2Fybmlu
Z1N5c3RlbShmaXJzdF90ZXN0X3Jlc3VsdHMsIHNlY29uZF90ZXN0X3Jlc3VsdHMsIGNsZWFuX3Rl
c3RfcmVzdWx0cykKKyAgICAgICAgdG9vbCA9IE1vY2tUb29sKGxvZ19leGVjdXRpdmU9VHJ1ZSkK
KyAgICAgICAgcGF0Y2ggPSB0b29sLmJ1Z3MuZmV0Y2hfYXR0YWNobWVudCgxMDAwMCkKKyAgICAg
ICAgcGF0Y2hlc19wYXNzZWRfYWxsX3Rlc3RzID0gbWFwKHNlbGYuX3Jlc3VsdHNfaW5kaWNhdGVf
YWxsX3Bhc3NlZCwgW3NlY29uZF90ZXN0X3Jlc3VsdHMsIGZpcnN0X3Rlc3RfcmVzdWx0c10pCisg
ICAgICAgIHJldHVybiBNb2NrUGF0Y2hBbmFseXNpc1Rhc2socXVldWUsIHBhdGNoLCBwYXRjaGVz
X3Bhc3NlZF9hbGxfdGVzdHMpCisKKyAgICBkZWYgdGVzdF9zdWNjZXNzX2Nhc2Uoc2VsZik6Cisg
ICAgICAgIGZpcnN0X3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFtdKQorICAg
ICAgICBzZWNvbmRfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgW10pCisgICAg
ICAgIGNsZWFuX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFtdKQorICAgICAg
ICB0YXNrID0gc2VsZi5fY3JlYXRlX3Rhc2soZmlyc3RfdGVzdF9yZXN1bHRzLCBzZWNvbmRfdGVz
dF9yZXN1bHRzLCBjbGVhbl90ZXN0X3Jlc3VsdHMpCisKKyAgICAgICAgcmV0dXJuX3ZhbHVlID0g
dGFzay5fdGVzdF9wYXRjaCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGFzay50ZXN0X3J1
bl9jb3VudCgpLCAxKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJldHVybl92YWx1ZSwgVHJ1
ZSkKKworICAgIGRlZiB0ZXN0X3Rlc3RfZmFpbHVyZShzZWxmKToKKyAgICAgICAgZmlyc3RfdGVz
dF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgWydGYWlsLmpzJ10pCisgICAgICAgIHNl
Y29uZF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbJ0ZhaWwuanMnXSkKKyAg
ICAgICAgY2xlYW5fdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgW10pCisgICAg
ICAgIHRhc2sgPSBzZWxmLl9jcmVhdGVfdGFzayhmaXJzdF90ZXN0X3Jlc3VsdHMsIHNlY29uZF90
ZXN0X3Jlc3VsdHMsIGNsZWFuX3Rlc3RfcmVzdWx0cykKKworICAgICAgICB3aXRoIHNlbGYuYXNz
ZXJ0UmFpc2VzKFNjcmlwdEVycm9yKToKKyAgICAgICAgICAgIHJldHVybl92YWx1ZSA9IHRhc2su
X3Rlc3RfcGF0Y2goKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRhc2sudGVzdF9ydW5fY291
bnQoKSwgMykKKworICAgIGRlZiB0ZXN0X2ZpeChzZWxmKToKKyAgICAgICAgZmlyc3RfdGVzdF9y
ZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgW10pCisgICAgICAgIHNlY29uZF90ZXN0X3Jl
c3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbXSkKKyAgICAgICAgY2xlYW5fdGVzdF9yZXN1
bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgWydGYWlsLmpzJ10pCisgICAgICAgIHRhc2sgPSBz
ZWxmLl9jcmVhdGVfdGFzayhmaXJzdF90ZXN0X3Jlc3VsdHMsIHNlY29uZF90ZXN0X3Jlc3VsdHMs
IGNsZWFuX3Rlc3RfcmVzdWx0cykKKworICAgICAgICByZXR1cm5fdmFsdWUgPSB0YXNrLl90ZXN0
X3BhdGNoKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0YXNrLnRlc3RfcnVuX2NvdW50KCks
IDEpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmV0dXJuX3ZhbHVlLCBUcnVlKQorCisgICAg
ZGVmIHRlc3RfaW5lZmZlY3RpdmVfcGF0Y2goc2VsZik6CisgICAgICAgIGZpcnN0X3Rlc3RfcmVz
dWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKEZhbHNlLCBbJ2ZhaWx1cmUxLmpzJywgJ2ZhaWx1cmUyLmpz
J10pCisgICAgICAgIHNlY29uZF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhGYWxzZSwg
WydmYWlsdXJlMS5qcycsICdmYWlsdXJlMi5qcyddKQorICAgICAgICBjbGVhbl90ZXN0X3Jlc3Vs
dHMgPSBKU0NUZXN0UmVzdWx0cyhGYWxzZSwgWydmYWlsdXJlMS5qcycsICdmYWlsdXJlMi5qcydd
KQorICAgICAgICB0YXNrID0gc2VsZi5fY3JlYXRlX3Rhc2soZmlyc3RfdGVzdF9yZXN1bHRzLCBz
ZWNvbmRfdGVzdF9yZXN1bHRzLCBjbGVhbl90ZXN0X3Jlc3VsdHMpCisKKyAgICAgICAgcmV0dXJu
X3ZhbHVlID0gdGFzay5fdGVzdF9wYXRjaCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGFz
ay50ZXN0X3J1bl9jb3VudCgpLCAzKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJldHVybl92
YWx1ZSwgVHJ1ZSkKKworICAgIGRlZiB0ZXN0X3BhcnRpYWxseV9lZmZlY3RpdmVfcGF0Y2goc2Vs
Zik6CisgICAgICAgIGZpcnN0X3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFsn
ZmFpbHVyZTIuanMnXSkKKyAgICAgICAgc2Vjb25kX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1
bHRzKFRydWUsIFsnZmFpbHVyZTIuanMnXSkKKyAgICAgICAgY2xlYW5fdGVzdF9yZXN1bHRzID0g
SlNDVGVzdFJlc3VsdHMoRmFsc2UsIFsnZmFpbHVyZTEuanMnLCAnZmFpbHVyZTIuanMnXSkKKyAg
ICAgICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90YXNrKGZpcnN0X3Rlc3RfcmVzdWx0cywgc2Vjb25k
X3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKQorCisgICAgICAgIHJldHVybl92YWx1
ZSA9IHRhc2suX3Rlc3RfcGF0Y2goKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRhc2sudGVz
dF9ydW5fY291bnQoKSwgMykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXR1cm5fdmFsdWUs
IFRydWUpCisKKyAgICBkZWYgdGVzdF9kaWZmZXJlbnRfdGVzdF9mYWlsdXJlc19pbl9wYXRjaF9h
bmRfdHJlZShzZWxmKToKKyAgICAgICAgZmlyc3RfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3Vs
dHMoRmFsc2UsIFtdKQorICAgICAgICBzZWNvbmRfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3Vs
dHMoRmFsc2UsIFtdKQorICAgICAgICBjbGVhbl90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0
cyhUcnVlLCBbJ2ZhaWx1cmUxLmpzJywgJ2ZhaWx1cmUyLmpzJ10pCisgICAgICAgIHRhc2sgPSBz
ZWxmLl9jcmVhdGVfdGFzayhmaXJzdF90ZXN0X3Jlc3VsdHMsIHNlY29uZF90ZXN0X3Jlc3VsdHMs
IGNsZWFuX3Rlc3RfcmVzdWx0cykKKworICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFNj
cmlwdEVycm9yKToKKyAgICAgICAgICAgIHJldHVybl92YWx1ZSA9IHRhc2suX3Rlc3RfcGF0Y2go
KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRhc2sudGVzdF9ydW5fY291bnQoKSwgMykKKwor
ICAgIGRlZiB0ZXN0X2ZpcnN0X3Jlc3VsdHNfY291bGRfbm90X2JlX3JlYWQoc2VsZik6CisgICAg
ICAgIGZpcnN0X3Rlc3RfcmVzdWx0cyA9IE5vbmUKKyAgICAgICAgc2Vjb25kX3Rlc3RfcmVzdWx0
cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFtdKQorICAgICAgICBjbGVhbl90ZXN0X3Jlc3VsdHMg
PSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbXSkKKyAgICAgICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90
YXNrKGZpcnN0X3Rlc3RfcmVzdWx0cywgc2Vjb25kX3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9y
ZXN1bHRzKQorCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoU2NyaXB0RXJyb3IpOgor
ICAgICAgICAgICAgcmV0dXJuX3ZhbHVlID0gdGFzay5fdGVzdF9wYXRjaCgpCisgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwodGFzay50ZXN0X3J1bl9jb3VudCgpLCAxKQorCisgICAgZGVmIHRlc3Rf
c2Vjb25kX3Jlc3VsdHNfY291bGRfbm90X2JlX3JlYWQoc2VsZik6CisgICAgICAgIGZpcnN0X3Rl
c3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKEZhbHNlLCBbJ2ZhaWx1cmUxLmpzJywgJ2ZhaWx1
cmUyLmpzJ10pCisgICAgICAgIHNlY29uZF90ZXN0X3Jlc3VsdHMgPSBOb25lCisgICAgICAgIGNs
ZWFuX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFtdKQorICAgICAgICB0YXNr
ID0gc2VsZi5fY3JlYXRlX3Rhc2soZmlyc3RfdGVzdF9yZXN1bHRzLCBzZWNvbmRfdGVzdF9yZXN1
bHRzLCBjbGVhbl90ZXN0X3Jlc3VsdHMpCisKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNl
cyhTY3JpcHRFcnJvcik6CisgICAgICAgICAgICByZXR1cm5fdmFsdWUgPSB0YXNrLl90ZXN0X3Bh
dGNoKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0YXNrLnRlc3RfcnVuX2NvdW50KCksIDIp
CisKKyAgICBkZWYgdGVzdF9jbGVhbl9yZXN1bHRzX2NvdWxkX25vdF9iZV9yZWFkKHNlbGYpOgor
ICAgICAgICBmaXJzdF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbJ2ZhaWx1
cmUyLmpzJ10pCisgICAgICAgIHNlY29uZF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhU
cnVlLCBbJ2ZhaWx1cmUyLmpzJ10pCisgICAgICAgIGNsZWFuX3Rlc3RfcmVzdWx0cyA9IE5vbmUK
KyAgICAgICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90YXNrKGZpcnN0X3Rlc3RfcmVzdWx0cywgc2Vj
b25kX3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKQorCisgICAgICAgIHdpdGggc2Vs
Zi5hc3NlcnRSYWlzZXMoU2NyaXB0RXJyb3IpOgorICAgICAgICAgICAgcmV0dXJuX3ZhbHVlID0g
dGFzay5fdGVzdF9wYXRjaCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGFzay50ZXN0X3J1
bl9jb3VudCgpLCAzKQorCisgICAgZGVmIHRlc3RfZmxha3lfcmVzdWx0c19vbl9jbGVhbl90cmVl
X3Bhc3Moc2VsZik6CisgICAgICAgIGZpcnN0X3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRz
KFRydWUsIFsnZmFpbHVyZTIuanMnXSkKKyAgICAgICAgc2Vjb25kX3Rlc3RfcmVzdWx0cyA9IEpT
Q1Rlc3RSZXN1bHRzKFRydWUsIFtdKQorICAgICAgICBjbGVhbl90ZXN0X3Jlc3VsdHMgPSBKU0NU
ZXN0UmVzdWx0cyhUcnVlLCBbXSkKKyAgICAgICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90YXNrKGZp
cnN0X3Rlc3RfcmVzdWx0cywgc2Vjb25kX3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRz
KQorCisgICAgICAgIHJldHVybl92YWx1ZSA9IHRhc2suX3Rlc3RfcGF0Y2goKQorICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKHJldHVybl92YWx1ZSwgVHJ1ZSkKKyAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbCh0YXNrLnRlc3RfcnVuX2NvdW50KCksIDIpCisKKyAgICBkZWYgdGVzdF9mbGFreV9yZXN1
bHRzX29uX2NsZWFuX3RyZWVfcGFzc192MihzZWxmKToKKyAgICAgICAgZmlyc3RfdGVzdF9yZXN1
bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgW10pCisgICAgICAgIHNlY29uZF90ZXN0X3Jlc3Vs
dHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbJ2ZhaWx1cmUyLmpzJ10pCisgICAgICAgIGNsZWFu
X3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFtdKQorICAgICAgICB0YXNrID0g
c2VsZi5fY3JlYXRlX3Rhc2soZmlyc3RfdGVzdF9yZXN1bHRzLCBzZWNvbmRfdGVzdF9yZXN1bHRz
LCBjbGVhbl90ZXN0X3Jlc3VsdHMpCisKKyAgICAgICAgcmV0dXJuX3ZhbHVlID0gdGFzay5fdGVz
dF9wYXRjaCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmV0dXJuX3ZhbHVlLCBUcnVlKQor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRhc2sudGVzdF9ydW5fY291bnQoKSwgMSkKKworICAg
IGRlZiB0ZXN0X2ZsYWt5X3Jlc3VsdHNfb25fY2xlYW5fdHJlZV9mYWlsdXJlKHNlbGYpOgorICAg
ICAgICBmaXJzdF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhGYWxzZSwgWydmYWlsdXJl
MS5qcycsICdmYWlsdXJlMi5qcyddKQorICAgICAgICBzZWNvbmRfdGVzdF9yZXN1bHRzID0gSlND
VGVzdFJlc3VsdHMoVHJ1ZSwgWydmYWlsdXJlMi5qcyddKQorICAgICAgICBjbGVhbl90ZXN0X3Jl
c3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbXSkKKyAgICAgICAgdGFzayA9IHNlbGYuX2Ny
ZWF0ZV90YXNrKGZpcnN0X3Rlc3RfcmVzdWx0cywgc2Vjb25kX3Rlc3RfcmVzdWx0cywgY2xlYW5f
dGVzdF9yZXN1bHRzKQorCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoU2NyaXB0RXJy
b3IpOgorICAgICAgICAgICAgcmV0dXJuX3ZhbHVlID0gdGFzay5fdGVzdF9wYXRjaCgpCisgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwodGFzay50ZXN0X3J1bl9jb3VudCgpLCAzKQorCisgICAgZGVm
IHRlc3RfZmxha3lfcmVzdWx0c19vbl9yZWRfdHJlZV9wYXNzKHNlbGYpOgorICAgICAgICBmaXJz
dF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbJ2ZhaWx1cmUxLmpzJ10pCisg
ICAgICAgIHNlY29uZF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbJ2ZhaWx1
cmUxLmpzJywgJ2ZhaWx1cmUyLmpzJ10pCisgICAgICAgIGNsZWFuX3Rlc3RfcmVzdWx0cyA9IEpT
Q1Rlc3RSZXN1bHRzKFRydWUsIFsnZmFpbHVyZTEuanMnXSkKKyAgICAgICAgdGFzayA9IHNlbGYu
X2NyZWF0ZV90YXNrKGZpcnN0X3Rlc3RfcmVzdWx0cywgc2Vjb25kX3Rlc3RfcmVzdWx0cywgY2xl
YW5fdGVzdF9yZXN1bHRzKQorCisgICAgICAgIHJldHVybl92YWx1ZSA9IHRhc2suX3Rlc3RfcGF0
Y2goKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJldHVybl92YWx1ZSwgVHJ1ZSkKKyAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbCh0YXNrLnRlc3RfcnVuX2NvdW50KCksIDMpCmRpZmYgLS1naXQg
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2pzY3Rlc3RyZXN1bHRzcmVhZGVyLnB5
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9qc2N0ZXN0cmVzdWx0c3JlYWRlci5w
eQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi44YWM1MzJiMTllN2VhNTVkMzViOTEzOWI0ZjIwOTk4MDViYTAwNDllCi0t
LSAvZGV2L251bGwKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9qc2N0ZXN0
cmVzdWx0c3JlYWRlci5weQpAQCAtMCwwICsxLDQ3IEBACisjIENvcHlyaWdodCAoQykgMjAxNyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
IyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBB
TkQKKyMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUgorIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisjIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisjIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSCisjIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisjIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisKK2ltcG9ydCBsb2dnaW5nCisKK2Zyb20gd2Via2l0cHkuY29tbW9u
Lm5ldC5qc2N0ZXN0cmVzdWx0cyBpbXBvcnQgSlNDVGVzdFJlc3VsdHMKKworX2xvZyA9IGxvZ2dp
bmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKQorCisKK2NsYXNzIEpTQ1Rlc3RSZXN1bHRzUmVhZGVyKG9i
amVjdCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGhvc3QsIHJlc3VsdHNfZGlyZWN0b3J5KToK
KyAgICAgICAgc2VsZi5faG9zdCA9IGhvc3QKKyAgICAgICAgc2VsZi5fcmVzdWx0c19kaXJlY3Rv
cnkgPSByZXN1bHRzX2RpcmVjdG9yeQorCisgICAgZGVmIF9yZWFkX2ZpbGVfY29udGVudHMoc2Vs
ZiwgcGF0aCk6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLl9ob3N0LmZp
bGVzeXN0ZW0ucmVhZF90ZXh0X2ZpbGUocGF0aCkKKyAgICAgICAgZXhjZXB0IElPRXJyb3IsIGU6
ICAjIEZpbGUgZG9lcyBub3QgZXhpc3Qgb3IgY2FuJ3QgYmUgcmVhZC4KKyAgICAgICAgICAgIHJl
dHVybiBOb25lCisKKyAgICBkZWYgX2NyZWF0ZV9qc2NfdGVzdF9yZXN1bHRzKHNlbGYpOgorICAg
ICAgICByZXN1bHRzX3BhdGggPSBzZWxmLl9ob3N0LmZpbGVzeXN0ZW0uam9pbihzZWxmLl9yZXN1
bHRzX2RpcmVjdG9yeSwgImpzY190ZXN0X3Jlc3VsdHMuanNvbiIpCisgICAgICAgIGNvbnRlbnRz
ID0gc2VsZi5fcmVhZF9maWxlX2NvbnRlbnRzKHJlc3VsdHNfcGF0aCkKKyAgICAgICAgcmV0dXJu
IEpTQ1Rlc3RSZXN1bHRzLnJlc3VsdHNfZnJvbV9zdHJpbmcoY29udGVudHMpCisKKyAgICBkZWYg
cmVzdWx0cyhzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX2NyZWF0ZV9qc2NfdGVzdF9yZXN1
bHRzKCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvcGF0Y2hh
bmFseXNpc3Rhc2sucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L3BhdGNoYW5h
bHlzaXN0YXNrLnB5CmluZGV4IDc1MjMxNjQxNmM1ZjlkMGEzZTU5ZWY2ZDA1ZTMxNzg1ZjkxNzQ2
MjkuLmE3NDBmZDY4NDE1YzNhZDdkMzk4ODEwM2NiNGEzNTM4MTQ3Y2IwMWIgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvcGF0Y2hhbmFseXNpc3Rhc2sucHkKKysr
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9wYXRjaGFuYWx5c2lzdGFzay5weQpA
QCAtMSw0ICsxLDUgQEAKICMgQ29weXJpZ2h0IChjKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC0yOCw2ICsyOSw3
IEBACiAKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5leGVjdXRpdmUgaW1wb3J0IFNjcmlw
dEVycm9yCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5uZXQubGF5b3V0dGVzdHJlc3VsdHMgaW1wb3J0
IExheW91dFRlc3RSZXN1bHRzCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5uZXQuanNjdGVzdHJlc3Vs
dHMgaW1wb3J0IEpTQ1Rlc3RSZXN1bHRzCiAKIAogY2xhc3MgVW5hYmxlVG9BcHBseVBhdGNoKEV4
Y2VwdGlvbik6CkBAIC00Myw2ICs0NSwxMSBAQCBjbGFzcyBQYXRjaElzTm90VmFsaWQoRXhjZXB0
aW9uKToKICAgICAgICAgc2VsZi5mYWlsdXJlX21lc3NhZ2UgPSBmYWlsdXJlX21lc3NhZ2UKIAog
CitjbGFzcyBQYXRjaElzTm90QXBwbGljYWJsZShFeGNlcHRpb24pOgorICAgIGRlZiBfX2luaXRf
XyhzZWxmLCBwYXRjaCk6CisgICAgICAgIEV4Y2VwdGlvbi5fX2luaXRfXyhzZWxmKQorICAgICAg
ICBzZWxmLnBhdGNoID0gcGF0Y2gKKwogY2xhc3MgUGF0Y2hBbmFseXNpc1Rhc2tEZWxlZ2F0ZShv
YmplY3QpOgogICAgIGRlZiBwYXJlbnRfY29tbWFuZChzZWxmKToKICAgICAgICAgcmFpc2UgTm90
SW1wbGVtZW50ZWRFcnJvcigic3ViY2xhc3NlcyBtdXN0IGltcGxlbWVudCIpCkBAIC0xMjIsMjgg
KzEyOSw1MyBAQCBjbGFzcyBQYXRjaEFuYWx5c2lzVGFzayhvYmplY3QpOgogICAgICAgICAiQXBw
bGllZCBwYXRjaCIsCiAgICAgICAgICJQYXRjaCBkb2VzIG5vdCBhcHBseSIpCiAKKyAgICBkZWYg
X2NoZWNrX3BhdGNoX3JlbGV2YW5jZShzZWxmKToKKyAgICAgICAgYXJncyA9IFsKKyAgICAgICAg
ICAgICJjaGVjay1wYXRjaC1yZWxldmFuY2UiLAorICAgICAgICBdCisKKyAgICAgICAgaWYgaGFz
YXR0cihzZWxmLl9kZWxlZ2F0ZSwgJ2dyb3VwJyk6CisgICAgICAgICAgICBhcmdzLmFwcGVuZCgi
LS1ncm91cD0lcyIgJSBzZWxmLl9kZWxlZ2F0ZS5ncm91cCgpKQorCisgICAgICAgIHJldHVybiBz
ZWxmLl9ydW5fY29tbWFuZCgKKyAgICAgICAgICAgIGFyZ3MsCisgICAgICAgICAgICAiQ2hlY2tl
ZCByZWxldmFuY2Ugb2YgcGF0Y2giLAorICAgICAgICAgICAgIlBhdGNoIHdhcyBub3QgcmVsZXZh
bnQiKQorCiAgICAgZGVmIF9idWlsZChzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYuX3J1bl9j
b21tYW5kKFsKKyAgICAgICAgYXJncyA9IFsKICAgICAgICAgICAgICJidWlsZCIsCiAgICAgICAg
ICAgICAiLS1uby1jbGVhbiIsCiAgICAgICAgICAgICAiLS1uby11cGRhdGUiLAogICAgICAgICAg
ICAgIi0tYnVpbGQtc3R5bGU9JXMiICUgc2VsZi5fZGVsZWdhdGUuYnVpbGRfc3R5bGUoKSwKLSAg
ICAgICAgXSwKLSAgICAgICAgIkJ1aWx0IHBhdGNoIiwKLSAgICAgICAgIlBhdGNoIGRvZXMgbm90
IGJ1aWxkIikKKyAgICAgICAgXQorCisgICAgICAgIGlmIGhhc2F0dHIoc2VsZi5fZGVsZWdhdGUs
ICdncm91cCcpOgorICAgICAgICAgICAgYXJncy5hcHBlbmQoIi0tZ3JvdXA9JXMiICUgc2VsZi5f
ZGVsZWdhdGUuZ3JvdXAoKSkKKworICAgICAgICByZXR1cm4gc2VsZi5fcnVuX2NvbW1hbmQoCisg
ICAgICAgICAgICBhcmdzLAorICAgICAgICAgICAgIkJ1aWx0IHBhdGNoIiwKKyAgICAgICAgICAg
ICJQYXRjaCBkb2VzIG5vdCBidWlsZCIpCiAKICAgICBkZWYgX2J1aWxkX3dpdGhvdXRfcGF0Y2go
c2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmLl9ydW5fY29tbWFuZChbCisgICAgICAgIGFyZ3Mg
PSBbCiAgICAgICAgICAgICAiYnVpbGQiLAogICAgICAgICAgICAgIi0tZm9yY2UtY2xlYW4iLAog
ICAgICAgICAgICAgIi0tbm8tdXBkYXRlIiwKICAgICAgICAgICAgICItLWJ1aWxkLXN0eWxlPSVz
IiAlIHNlbGYuX2RlbGVnYXRlLmJ1aWxkX3N0eWxlKCksCi0gICAgICAgIF0sCi0gICAgICAgICJB
YmxlIHRvIGJ1aWxkIHdpdGhvdXQgcGF0Y2giLAotICAgICAgICAiVW5hYmxlIHRvIGJ1aWxkIHdp
dGhvdXQgcGF0Y2giKQorICAgICAgICBdCisKKyAgICAgICAgaWYgaGFzYXR0cihzZWxmLl9kZWxl
Z2F0ZSwgJ2dyb3VwJyk6CisgICAgICAgICAgICBhcmdzLmFwcGVuZCgiLS1ncm91cD0lcyIgJSBz
ZWxmLl9kZWxlZ2F0ZS5ncm91cCgpKQorCisgICAgICAgIHJldHVybiBzZWxmLl9ydW5fY29tbWFu
ZCgKKyAgICAgICAgICAgIGFyZ3MsCisgICAgICAgICAgICAiQWJsZSB0byBidWlsZCB3aXRob3V0
IHBhdGNoIiwKKyAgICAgICAgICAgICJVbmFibGUgdG8gYnVpbGQgd2l0aG91dCBwYXRjaCIpCiAK
ICAgICBkZWYgX3Rlc3Qoc2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmLl9ydW5fY29tbWFuZChb
CisgICAgICAgIGFyZ3MgPSBbCiAgICAgICAgICAgICAiYnVpbGQtYW5kLXRlc3QiLAogICAgICAg
ICAgICAgIi0tbm8tY2xlYW4iLAogICAgICAgICAgICAgIi0tbm8tdXBkYXRlIiwKQEAgLTE1MSwx
MiArMTgzLDE4IEBAIGNsYXNzIFBhdGNoQW5hbHlzaXNUYXNrKG9iamVjdCk6CiAgICAgICAgICAg
ICAiLS10ZXN0IiwKICAgICAgICAgICAgICItLW5vbi1pbnRlcmFjdGl2ZSIsCiAgICAgICAgICAg
ICAiLS1idWlsZC1zdHlsZT0lcyIgJSBzZWxmLl9kZWxlZ2F0ZS5idWlsZF9zdHlsZSgpLAotICAg
ICAgICBdLAotICAgICAgICAiUGFzc2VkIHRlc3RzIiwKLSAgICAgICAgIlBhdGNoIGRvZXMgbm90
IHBhc3MgdGVzdHMiKQorICAgICAgICBdCisKKyAgICAgICAgaWYgaGFzYXR0cihzZWxmLl9kZWxl
Z2F0ZSwgJ2dyb3VwJyk6CisgICAgICAgICAgICBhcmdzLmFwcGVuZCgiLS1ncm91cD0lcyIgJSBz
ZWxmLl9kZWxlZ2F0ZS5ncm91cCgpKQorCisgICAgICAgIHJldHVybiBzZWxmLl9ydW5fY29tbWFu
ZCgKKyAgICAgICAgICAgIGFyZ3MsCisgICAgICAgICAgICAiUGFzc2VkIHRlc3RzIiwKKyAgICAg
ICAgICAgICJQYXRjaCBkb2VzIG5vdCBwYXNzIHRlc3RzIikKIAogICAgIGRlZiBfYnVpbGRfYW5k
X3Rlc3Rfd2l0aG91dF9wYXRjaChzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYuX3J1bl9jb21t
YW5kKFsKKyAgICAgICAgYXJncyA9IFsKICAgICAgICAgICAgICJidWlsZC1hbmQtdGVzdCIsCiAg
ICAgICAgICAgICAiLS1mb3JjZS1jbGVhbiIsCiAgICAgICAgICAgICAiLS1uby11cGRhdGUiLApA
QCAtMTY0LDkgKzIwMiwxNSBAQCBjbGFzcyBQYXRjaEFuYWx5c2lzVGFzayhvYmplY3QpOgogICAg
ICAgICAgICAgIi0tdGVzdCIsCiAgICAgICAgICAgICAiLS1ub24taW50ZXJhY3RpdmUiLAogICAg
ICAgICAgICAgIi0tYnVpbGQtc3R5bGU9JXMiICUgc2VsZi5fZGVsZWdhdGUuYnVpbGRfc3R5bGUo
KSwKLSAgICAgICAgXSwKLSAgICAgICAgIkFibGUgdG8gcGFzcyB0ZXN0cyB3aXRob3V0IHBhdGNo
IiwKLSAgICAgICAgIlVuYWJsZSB0byBwYXNzIHRlc3RzIHdpdGhvdXQgcGF0Y2ggKHRyZWUgaXMg
cmVkPykiKQorICAgICAgICBdCisKKyAgICAgICAgaWYgaGFzYXR0cihzZWxmLl9kZWxlZ2F0ZSwg
J2dyb3VwJyk6CisgICAgICAgICAgICBhcmdzLmFwcGVuZCgiLS1ncm91cD0lcyIgJSBzZWxmLl9k
ZWxlZ2F0ZS5ncm91cCgpKQorCisgICAgICAgIHJldHVybiBzZWxmLl9ydW5fY29tbWFuZCgKKyAg
ICAgICAgICAgIGFyZ3MsCisgICAgICAgICAgICAiQWJsZSB0byBwYXNzIHRlc3RzIHdpdGhvdXQg
cGF0Y2giLAorICAgICAgICAgICAgIlVuYWJsZSB0byBwYXNzIHRlc3RzIHdpdGhvdXQgcGF0Y2gg
KHRyZWUgaXMgcmVkPykiKQogCiAgICAgZGVmIF9sYW5kKHNlbGYpOgogICAgICAgICAjIFVuY2xl
YXIgaWYgdGhpcyBzaG91bGQgcGFzcyAtLXF1aWV0IG9yIG5vdC4gIElmIC0tcGFyZW50LWNvbW1h
bmQgYWx3YXlzIGRvZXMgdGhlIHJlcG9ydGluZywgdGhlbiBpdCBzaG91bGQuCkBAIC0yMTAsNjkg
KzI1NCw5OCBAQCBjbGFzcyBQYXRjaEFuYWx5c2lzVGFzayhvYmplY3QpOgogICAgICAgICBpZiBz
ZWxmLl90ZXN0KCk6CiAgICAgICAgICAgICByZXR1cm4gVHJ1ZQogCi0gICAgICAgICMgTm90ZTog
YXJjaGl2ZV9sYXN0X3Rlc3RfcmVzdWx0cyBkZWxldGVzIHRoZSByZXN1bHRzIGRpcmVjdG9yeSwg
bWFraW5nIHRoZXNlIGNhbGxzIG9yZGVyLXNlbnNpdHZlLgotICAgICAgICAjIFdlIGNvdWxkIHJl
bW92ZSB0aGlzIGRlcGVuZGVuY3kgYnkgYnVpbGRpbmcgdGhlIHRlc3RfcmVzdWx0cyBmcm9tIHRo
ZSBhcmNoaXZlLgotICAgICAgICBmaXJzdF9yZXN1bHRzID0gc2VsZi5fZGVsZWdhdGUudGVzdF9y
ZXN1bHRzKCkKLSAgICAgICAgZmlyc3RfcmVzdWx0c19hcmNoaXZlID0gc2VsZi5fZGVsZWdhdGUu
YXJjaGl2ZV9sYXN0X3Rlc3RfcmVzdWx0cyhzZWxmLl9wYXRjaCkKLSAgICAgICAgZmlyc3Rfc2Ny
aXB0X2Vycm9yID0gc2VsZi5fc2NyaXB0X2Vycm9yCi0gICAgICAgIGZpcnN0X2ZhaWx1cmVfc3Rh
dHVzX2lkID0gc2VsZi5mYWlsdXJlX3N0YXR1c19pZAotCi0gICAgICAgIGlmIHNlbGYuX3Rlc3Qo
KSBhbmQgbm90IGZpcnN0X3Jlc3VsdHMuZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQoKToK
LSAgICAgICAgICAgICMgT25seSByZXBvcnQgZmxha3kgdGVzdHMgaWYgd2Ugd2VyZSBzdWNjZXNz
ZnVsIGF0IHBhcnNpbmcgcmVzdWx0cy5qc29uIGFuZCBhcmNoaXZpbmcgcmVzdWx0cy4KLSAgICAg
ICAgICAgIGlmIGZpcnN0X3Jlc3VsdHMgYW5kIGZpcnN0X3Jlc3VsdHNfYXJjaGl2ZToKLSAgICAg
ICAgICAgICAgICBzZWxmLl9yZXBvcnRfZmxha3lfdGVzdHMoZmlyc3RfcmVzdWx0cy5mYWlsaW5n
X3Rlc3RfcmVzdWx0cygpLCBmaXJzdF9yZXN1bHRzX2FyY2hpdmUpCi0gICAgICAgICAgICByZXR1
cm4gVHJ1ZQorICAgICAgICAjIEZJWE1FOiBBYnN0cmFjdCBvdXQgdGhlIHJldHJ5IGxvZ2ljIGlu
c3RlYWQgb2YgY2FzaW5nIG9uIHRoZSB0ZXN0IHN1aXRlIGhlcmUuCisgICAgICAgIGlmIGhhc2F0
dHIoc2VsZi5fZGVsZWdhdGUsICdncm91cCcpIGFuZCBzZWxmLl9kZWxlZ2F0ZS5ncm91cCgpID09
ICJqc2MiOgorICAgICAgICAgICAgZmlyc3RfcmVzdWx0cyA9IHNlbGYuX2RlbGVnYXRlLnRlc3Rf
cmVzdWx0cygpCisgICAgICAgICAgICBmaXJzdF9zY3JpcHRfZXJyb3IgPSBzZWxmLl9zY3JpcHRf
ZXJyb3IKKyAgICAgICAgICAgIGZpcnN0X2ZhaWx1cmVfc3RhdHVzX2lkID0gc2VsZi5mYWlsdXJl
X3N0YXR1c19pZAorICAgICAgICAgICAgaWYgZmlyc3RfcmVzdWx0cyBpcyBOb25lOgorICAgICAg
ICAgICAgICAgIHJldHVybiBzZWxmLnJlcG9ydF9mYWlsdXJlKE5vbmUsIE5vbmUsIFNjcmlwdEVy
cm9yKCJDb3VsZCBub3QgcmVhZCBKU0MgdGVzdCByZXN1bHRzIGZvciBwYXRjaC4iKSkKIAotICAg
ICAgICBzZWNvbmRfcmVzdWx0cyA9IHNlbGYuX2RlbGVnYXRlLnRlc3RfcmVzdWx0cygpCi0gICAg
ICAgIHNlY29uZF9yZXN1bHRzX2FyY2hpdmUgPSBzZWxmLl9kZWxlZ2F0ZS5hcmNoaXZlX2xhc3Rf
dGVzdF9yZXN1bHRzKHNlbGYuX3BhdGNoKQotICAgICAgICBzZWNvbmRfc2NyaXB0X2Vycm9yID0g
c2VsZi5fc2NyaXB0X2Vycm9yCi0gICAgICAgIHNlY29uZF9mYWlsdXJlX3N0YXR1c19pZCA9IHNl
bGYuZmFpbHVyZV9zdGF0dXNfaWQKKyAgICAgICAgICAgIGlmIHNlbGYuX3Rlc3QoKToKKyAgICAg
ICAgICAgICAgICByZXR1cm4gVHJ1ZQorICAgICAgICAgICAgc2Vjb25kX3Jlc3VsdHMgPSBzZWxm
Ll9kZWxlZ2F0ZS50ZXN0X3Jlc3VsdHMoKQorICAgICAgICAgICAgc2Vjb25kX3NjcmlwdF9lcnJv
ciA9IHNlbGYuX3NjcmlwdF9lcnJvcgorICAgICAgICAgICAgaWYgc2Vjb25kX3Jlc3VsdHMgaXMg
Tm9uZToKKyAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5yZXBvcnRfZmFpbHVyZShOb25lLCBO
b25lLCBTY3JpcHRFcnJvcigiQ291bGQgbm90IHJlYWQgSlNDIHRlc3QgcmVzdWx0cyBvbiBzZWNv
bmQgcnVuLiIpKQorCisgICAgICAgICAgICBjb25zaXN0ZW50X3Jlc3VsdHMgPSBKU0NUZXN0UmVz
dWx0cy5pbnRlcnNlY3Rpb24oZmlyc3RfcmVzdWx0cywgc2Vjb25kX3Jlc3VsdHMpCiAKLSAgICAg
ICAgaWYgc2Vjb25kX3Jlc3VsdHMuZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQoKSBhbmQg
Zmlyc3RfcmVzdWx0cy5kaWRfZXhjZWVkX3Rlc3RfZmFpbHVyZV9saW1pdCgpOgogICAgICAgICAg
ICAgc2VsZi5fYnVpbGRfYW5kX3Rlc3Rfd2l0aG91dF9wYXRjaCgpCiAgICAgICAgICAgICBjbGVh
bl90cmVlX3Jlc3VsdHMgPSBzZWxmLl9kZWxlZ2F0ZS50ZXN0X3Jlc3VsdHMoKQorICAgICAgICAg
ICAgaWYgY2xlYW5fdHJlZV9yZXN1bHRzIGlzIE5vbmU6CisgICAgICAgICAgICAgICAgcmV0dXJu
IHNlbGYucmVwb3J0X2ZhaWx1cmUoTm9uZSwgTm9uZSwgU2NyaXB0RXJyb3IoIkNvdWxkIG5vdCBy
ZWFkIEpTQyB0ZXN0IHJlc3VsdHMgZm9yIGNsZWFuIHRyZWUuIikpCiAKLSAgICAgICAgICAgIGlm
IChsZW4oZmlyc3RfcmVzdWx0cy5mYWlsaW5nX3Rlc3RzKCkpIC0gbGVuKGNsZWFuX3RyZWVfcmVz
dWx0cy5mYWlsaW5nX3Rlc3RzKCkpKSA8PSA1OgotICAgICAgICAgICAgICAgIHJldHVybiBGYWxz
ZQorICAgICAgICAgICAgaWYgY29uc2lzdGVudF9yZXN1bHRzLmlzX3N1YnNldChjbGVhbl90cmVl
X3Jlc3VsdHMpOgorICAgICAgICAgICAgICAgIHJldHVybiBUcnVlCiAKICAgICAgICAgICAgIHNl
bGYuZmFpbHVyZV9zdGF0dXNfaWQgPSBmaXJzdF9mYWlsdXJlX3N0YXR1c19pZAorICAgICAgICAg
ICAgcmV0dXJuIHNlbGYucmVwb3J0X2ZhaWx1cmUoTm9uZSwgY29uc2lzdGVudF9yZXN1bHRzLCBm
aXJzdF9zY3JpcHRfZXJyb3IpCiAKLSAgICAgICAgICAgIHJldHVybiBzZWxmLnJlcG9ydF9mYWls
dXJlKGZpcnN0X3Jlc3VsdHNfYXJjaGl2ZSwgZmlyc3RfcmVzdWx0cywgZmlyc3Rfc2NyaXB0X2Vy
cm9yKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgIyBOb3RlOiBhcmNoaXZlX2xhc3RfdGVz
dF9yZXN1bHRzIGRlbGV0ZXMgdGhlIHJlc3VsdHMgZGlyZWN0b3J5LCBtYWtpbmcgdGhlc2UgY2Fs
bHMgb3JkZXItc2Vuc2l0dmUuCisgICAgICAgICAgICAjIFdlIGNvdWxkIHJlbW92ZSB0aGlzIGRl
cGVuZGVuY3kgYnkgYnVpbGRpbmcgdGhlIHRlc3RfcmVzdWx0cyBmcm9tIHRoZSBhcmNoaXZlLgor
ICAgICAgICAgICAgZmlyc3RfcmVzdWx0cyA9IHNlbGYuX2RlbGVnYXRlLnRlc3RfcmVzdWx0cygp
CisgICAgICAgICAgICBmaXJzdF9yZXN1bHRzX2FyY2hpdmUgPSBzZWxmLl9kZWxlZ2F0ZS5hcmNo
aXZlX2xhc3RfdGVzdF9yZXN1bHRzKHNlbGYuX3BhdGNoKQorICAgICAgICAgICAgZmlyc3Rfc2Ny
aXB0X2Vycm9yID0gc2VsZi5fc2NyaXB0X2Vycm9yCisgICAgICAgICAgICBmaXJzdF9mYWlsdXJl
X3N0YXR1c19pZCA9IHNlbGYuZmFpbHVyZV9zdGF0dXNfaWQKIAotICAgICAgICBpZiBzZWNvbmRf
cmVzdWx0cy5kaWRfZXhjZWVkX3Rlc3RfZmFpbHVyZV9saW1pdCgpOgotICAgICAgICAgICAgc2Vs
Zi5fc2hvdWxkX2RlZmVyX3BhdGNoX29yX3Rocm93KGZpcnN0X3Jlc3VsdHMuZmFpbGluZ190ZXN0
X3Jlc3VsdHMoKSwgZmlyc3RfcmVzdWx0c19hcmNoaXZlLCBmaXJzdF9zY3JpcHRfZXJyb3IsIGZp
cnN0X2ZhaWx1cmVfc3RhdHVzX2lkKQotICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAg
ICAgICBpZiBzZWxmLl90ZXN0KCkgYW5kIG5vdCBmaXJzdF9yZXN1bHRzLmRpZF9leGNlZWRfdGVz
dF9mYWlsdXJlX2xpbWl0KCk6CisgICAgICAgICAgICAgICAgIyBPbmx5IHJlcG9ydCBmbGFreSB0
ZXN0cyBpZiB3ZSB3ZXJlIHN1Y2Nlc3NmdWwgYXQgcGFyc2luZyByZXN1bHRzLmpzb24gYW5kIGFy
Y2hpdmluZyByZXN1bHRzLgorICAgICAgICAgICAgICAgIGlmIGZpcnN0X3Jlc3VsdHMgYW5kIGZp
cnN0X3Jlc3VsdHNfYXJjaGl2ZToKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5fcmVwb3J0X2Zs
YWt5X3Rlc3RzKGZpcnN0X3Jlc3VsdHMuZmFpbGluZ190ZXN0X3Jlc3VsdHMoKSwgZmlyc3RfcmVz
dWx0c19hcmNoaXZlKQorICAgICAgICAgICAgICAgIHJldHVybiBUcnVlCiAKLSAgICAgICAgaWYg
Zmlyc3RfcmVzdWx0cy5kaWRfZXhjZWVkX3Rlc3RfZmFpbHVyZV9saW1pdCgpOgotICAgICAgICAg
ICAgc2VsZi5fc2hvdWxkX2RlZmVyX3BhdGNoX29yX3Rocm93KHNlY29uZF9yZXN1bHRzLmZhaWxp
bmdfdGVzdF9yZXN1bHRzKCksIHNlY29uZF9yZXN1bHRzX2FyY2hpdmUsIHNlY29uZF9zY3JpcHRf
ZXJyb3IsIHNlY29uZF9mYWlsdXJlX3N0YXR1c19pZCkKLSAgICAgICAgICAgIHJldHVybiBGYWxz
ZQorICAgICAgICAgICAgc2Vjb25kX3Jlc3VsdHMgPSBzZWxmLl9kZWxlZ2F0ZS50ZXN0X3Jlc3Vs
dHMoKQorICAgICAgICAgICAgc2Vjb25kX3Jlc3VsdHNfYXJjaGl2ZSA9IHNlbGYuX2RlbGVnYXRl
LmFyY2hpdmVfbGFzdF90ZXN0X3Jlc3VsdHMoc2VsZi5fcGF0Y2gpCisgICAgICAgICAgICBzZWNv
bmRfc2NyaXB0X2Vycm9yID0gc2VsZi5fc2NyaXB0X2Vycm9yCisgICAgICAgICAgICBzZWNvbmRf
ZmFpbHVyZV9zdGF0dXNfaWQgPSBzZWxmLmZhaWx1cmVfc3RhdHVzX2lkCiAKLSAgICAgICAgaWYg
c2VsZi5fcmVzdWx0c19mYWlsZWRfZGlmZmVyZW50X3Rlc3RzKGZpcnN0X3Jlc3VsdHMsIHNlY29u
ZF9yZXN1bHRzKToKLSAgICAgICAgICAgIGZpcnN0X2ZhaWxpbmdfcmVzdWx0c19zZXQgPSBmcm96
ZW5zZXQoZmlyc3RfcmVzdWx0cy5mYWlsaW5nX3Rlc3RfcmVzdWx0cygpKQotICAgICAgICAgICAg
c2Vjb25kX2ZhaWxpbmdfcmVzdWx0c19zZXQgPSBmcm96ZW5zZXQoc2Vjb25kX3Jlc3VsdHMuZmFp
bGluZ190ZXN0X3Jlc3VsdHMoKSkKKyAgICAgICAgICAgIGlmIHNlY29uZF9yZXN1bHRzLmRpZF9l
eGNlZWRfdGVzdF9mYWlsdXJlX2xpbWl0KCkgYW5kIGZpcnN0X3Jlc3VsdHMuZGlkX2V4Y2VlZF90
ZXN0X2ZhaWx1cmVfbGltaXQoKToKKyAgICAgICAgICAgICAgICBzZWxmLl9idWlsZF9hbmRfdGVz
dF93aXRob3V0X3BhdGNoKCkKKyAgICAgICAgICAgICAgICBjbGVhbl90cmVlX3Jlc3VsdHMgPSBz
ZWxmLl9kZWxlZ2F0ZS50ZXN0X3Jlc3VsdHMoKQogCi0gICAgICAgICAgICB0ZXN0c190aGF0X29u
bHlfZmFpbGVkX2ZpcnN0ID0gZmlyc3RfZmFpbGluZ19yZXN1bHRzX3NldC5kaWZmZXJlbmNlKHNl
Y29uZF9mYWlsaW5nX3Jlc3VsdHNfc2V0KQotICAgICAgICAgICAgc2VsZi5fcmVwb3J0X2ZsYWt5
X3Rlc3RzKHRlc3RzX3RoYXRfb25seV9mYWlsZWRfZmlyc3QsIGZpcnN0X3Jlc3VsdHNfYXJjaGl2
ZSkKKyAgICAgICAgICAgICAgICBpZiAobGVuKGZpcnN0X3Jlc3VsdHMuZmFpbGluZ190ZXN0cygp
KSAtIGxlbihjbGVhbl90cmVlX3Jlc3VsdHMuZmFpbGluZ190ZXN0cygpKSkgPD0gNToKKyAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCiAKLSAgICAgICAgICAgIHRlc3RzX3RoYXRfb25s
eV9mYWlsZWRfc2Vjb25kID0gc2Vjb25kX2ZhaWxpbmdfcmVzdWx0c19zZXQuZGlmZmVyZW5jZShm
aXJzdF9mYWlsaW5nX3Jlc3VsdHNfc2V0KQotICAgICAgICAgICAgc2VsZi5fcmVwb3J0X2ZsYWt5
X3Rlc3RzKHRlc3RzX3RoYXRfb25seV9mYWlsZWRfc2Vjb25kLCBzZWNvbmRfcmVzdWx0c19hcmNo
aXZlKQorICAgICAgICAgICAgICAgIHNlbGYuZmFpbHVyZV9zdGF0dXNfaWQgPSBmaXJzdF9mYWls
dXJlX3N0YXR1c19pZAogCi0gICAgICAgICAgICB0ZXN0c190aGF0X2NvbnNpc3RlbnRseV9mYWls
ZWQgPSBmaXJzdF9mYWlsaW5nX3Jlc3VsdHNfc2V0LmludGVyc2VjdGlvbihzZWNvbmRfZmFpbGlu
Z19yZXN1bHRzX3NldCkKLSAgICAgICAgICAgIGlmIHRlc3RzX3RoYXRfY29uc2lzdGVudGx5X2Zh
aWxlZDoKLSAgICAgICAgICAgICAgICBpZiBzZWxmLl9zaG91bGRfZGVmZXJfcGF0Y2hfb3JfdGhy
b3codGVzdHNfdGhhdF9jb25zaXN0ZW50bHlfZmFpbGVkLCBmaXJzdF9yZXN1bHRzX2FyY2hpdmUs
IGZpcnN0X3NjcmlwdF9lcnJvciwgZmlyc3RfZmFpbHVyZV9zdGF0dXNfaWQpOgotICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gRmFsc2UgICMgRGVmZXIgcGF0Y2gKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gc2VsZi5yZXBvcnRfZmFpbHVyZShmaXJzdF9yZXN1bHRzX2FyY2hpdmUsIGZpcnN0X3Jl
c3VsdHMsIGZpcnN0X3NjcmlwdF9lcnJvcikKIAotICAgICAgICAgICAgIyBBdCB0aGlzIHBvaW50
IHdlIGtub3cgdGhhdCBhdCBsZWFzdCBvbmUgdGVzdCBmbGFrZWQsIGJ1dCBubyBjb25zaXN0ZW50
IGZhaWx1cmVzCi0gICAgICAgICAgICAjIHdlcmUgaW50cm9kdWNlZC4gVGhpcyBpcyBhIGJpdCBv
ZiBhIGdyZXktem9uZS4KLSAgICAgICAgICAgIHJldHVybiBGYWxzZSAgIyBEZWZlciBwYXRjaAor
ICAgICAgICAgICAgaWYgc2Vjb25kX3Jlc3VsdHMuZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGlt
aXQoKToKKyAgICAgICAgICAgICAgICBzZWxmLl9zaG91bGRfZGVmZXJfcGF0Y2hfb3JfdGhyb3co
Zmlyc3RfcmVzdWx0cy5mYWlsaW5nX3Rlc3RfcmVzdWx0cygpLCBmaXJzdF9yZXN1bHRzX2FyY2hp
dmUsIGZpcnN0X3NjcmlwdF9lcnJvciwgZmlyc3RfZmFpbHVyZV9zdGF0dXNfaWQpCisgICAgICAg
ICAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICAgICAgICAgIGlmIGZpcnN0X3Jlc3VsdHMuZGlk
X2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQoKToKKyAgICAgICAgICAgICAgICBzZWxmLl9zaG91
bGRfZGVmZXJfcGF0Y2hfb3JfdGhyb3coc2Vjb25kX3Jlc3VsdHMuZmFpbGluZ190ZXN0X3Jlc3Vs
dHMoKSwgc2Vjb25kX3Jlc3VsdHNfYXJjaGl2ZSwgc2Vjb25kX3NjcmlwdF9lcnJvciwgc2Vjb25k
X2ZhaWx1cmVfc3RhdHVzX2lkKQorICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQorCisgICAg
ICAgICAgICBpZiBzZWxmLl9yZXN1bHRzX2ZhaWxlZF9kaWZmZXJlbnRfdGVzdHMoZmlyc3RfcmVz
dWx0cywgc2Vjb25kX3Jlc3VsdHMpOgorICAgICAgICAgICAgICAgIGZpcnN0X2ZhaWxpbmdfcmVz
dWx0c19zZXQgPSBmcm96ZW5zZXQoZmlyc3RfcmVzdWx0cy5mYWlsaW5nX3Rlc3RfcmVzdWx0cygp
KQorICAgICAgICAgICAgICAgIHNlY29uZF9mYWlsaW5nX3Jlc3VsdHNfc2V0ID0gZnJvemVuc2V0
KHNlY29uZF9yZXN1bHRzLmZhaWxpbmdfdGVzdF9yZXN1bHRzKCkpCisKKyAgICAgICAgICAgICAg
ICB0ZXN0c190aGF0X29ubHlfZmFpbGVkX2ZpcnN0ID0gZmlyc3RfZmFpbGluZ19yZXN1bHRzX3Nl
dC5kaWZmZXJlbmNlKHNlY29uZF9mYWlsaW5nX3Jlc3VsdHNfc2V0KQorICAgICAgICAgICAgICAg
IHNlbGYuX3JlcG9ydF9mbGFreV90ZXN0cyh0ZXN0c190aGF0X29ubHlfZmFpbGVkX2ZpcnN0LCBm
aXJzdF9yZXN1bHRzX2FyY2hpdmUpCiAKLSAgICAgICAgaWYgc2VsZi5fc2hvdWxkX2RlZmVyX3Bh
dGNoX29yX3Rocm93KGZpcnN0X3Jlc3VsdHMuZmFpbGluZ190ZXN0X3Jlc3VsdHMoKSwgZmlyc3Rf
cmVzdWx0c19hcmNoaXZlLCBmaXJzdF9zY3JpcHRfZXJyb3IsIGZpcnN0X2ZhaWx1cmVfc3RhdHVz
X2lkKToKLSAgICAgICAgICAgIHJldHVybiBGYWxzZSAgIyBEZWZlciBwYXRjaAorICAgICAgICAg
ICAgICAgIHRlc3RzX3RoYXRfb25seV9mYWlsZWRfc2Vjb25kID0gc2Vjb25kX2ZhaWxpbmdfcmVz
dWx0c19zZXQuZGlmZmVyZW5jZShmaXJzdF9mYWlsaW5nX3Jlc3VsdHNfc2V0KQorICAgICAgICAg
ICAgICAgIHNlbGYuX3JlcG9ydF9mbGFreV90ZXN0cyh0ZXN0c190aGF0X29ubHlfZmFpbGVkX3Nl
Y29uZCwgc2Vjb25kX3Jlc3VsdHNfYXJjaGl2ZSkKIAotICAgICAgICAjIEF0IHRoaXMgcG9pbnQs
IHdlIGtub3cgdGhhdCB0aGUgZmlyc3QgYW5kIHNlY29uZCBydW5zIGhhZCB0aGUgZXhhY3Qgc2Ft
ZSBmYWlsdXJlcywKLSAgICAgICAgIyBhbmQgdGhhdCB0aG9zZSBmYWlsdXJlcyBhcmUgYWxsIHBy
ZXNlbnQgb24gdGhlIGNsZWFuIHRyZWUsIHNvIHdlIGNhbiBzYXkgd2l0aCBjZXJ0YWludHkKLSAg
ICAgICAgIyB0aGF0IHRoZSBwYXRjaCBpcyBnb29kLgotICAgICAgICByZXR1cm4gVHJ1ZQorICAg
ICAgICAgICAgICAgIHRlc3RzX3RoYXRfY29uc2lzdGVudGx5X2ZhaWxlZCA9IGZpcnN0X2ZhaWxp
bmdfcmVzdWx0c19zZXQuaW50ZXJzZWN0aW9uKHNlY29uZF9mYWlsaW5nX3Jlc3VsdHNfc2V0KQor
ICAgICAgICAgICAgICAgIGlmIHRlc3RzX3RoYXRfY29uc2lzdGVudGx5X2ZhaWxlZDoKKyAgICAg
ICAgICAgICAgICAgICAgaWYgc2VsZi5fc2hvdWxkX2RlZmVyX3BhdGNoX29yX3Rocm93KHRlc3Rz
X3RoYXRfY29uc2lzdGVudGx5X2ZhaWxlZCwgZmlyc3RfcmVzdWx0c19hcmNoaXZlLCBmaXJzdF9z
Y3JpcHRfZXJyb3IsIGZpcnN0X2ZhaWx1cmVfc3RhdHVzX2lkKToKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBGYWxzZSAgIyBEZWZlciBwYXRjaAorCisgICAgICAgICAgICAgICAgIyBB
dCB0aGlzIHBvaW50IHdlIGtub3cgdGhhdCBhdCBsZWFzdCBvbmUgdGVzdCBmbGFrZWQsIGJ1dCBu
byBjb25zaXN0ZW50IGZhaWx1cmVzCisgICAgICAgICAgICAgICAgIyB3ZXJlIGludHJvZHVjZWQu
IFRoaXMgaXMgYSBiaXQgb2YgYSBncmV5LXpvbmUuCisgICAgICAgICAgICAgICAgcmV0dXJuIEZh
bHNlICAjIERlZmVyIHBhdGNoCisKKyAgICAgICAgICAgIGlmIHNlbGYuX3Nob3VsZF9kZWZlcl9w
YXRjaF9vcl90aHJvdyhmaXJzdF9yZXN1bHRzLmZhaWxpbmdfdGVzdF9yZXN1bHRzKCksIGZpcnN0
X3Jlc3VsdHNfYXJjaGl2ZSwgZmlyc3Rfc2NyaXB0X2Vycm9yLCBmaXJzdF9mYWlsdXJlX3N0YXR1
c19pZCk6CisgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlICAjIERlZmVyIHBhdGNoCisKKyAg
ICAgICAgICAgICMgQXQgdGhpcyBwb2ludCwgd2Uga25vdyB0aGF0IHRoZSBmaXJzdCBhbmQgc2Vj
b25kIHJ1bnMgaGFkIHRoZSBleGFjdCBzYW1lIGZhaWx1cmVzLAorICAgICAgICAgICAgIyBhbmQg
dGhhdCB0aG9zZSBmYWlsdXJlcyBhcmUgYWxsIHByZXNlbnQgb24gdGhlIGNsZWFuIHRyZWUsIHNv
IHdlIGNhbiBzYXkgd2l0aCBjZXJ0YWludHkKKyAgICAgICAgICAgICMgdGhhdCB0aGUgcGF0Y2gg
aXMgZ29vZC4KKyAgICAgICAgICAgIHJldHVybiBUcnVlCiAKICAgICBkZWYgcmVzdWx0c19hcmNo
aXZlX2Zyb21fcGF0Y2hfdGVzdF9ydW4oc2VsZiwgcGF0Y2gpOgogICAgICAgICBhc3NlcnQoc2Vs
Zi5fcGF0Y2guaWQoKSA9PSBwYXRjaC5pZCgpKSAgIyBQYXRjaEFuYWx5c2lzVGFzayBpcyBub3Qg
Y3VycmVudGx5IHJlLXVzZWFibGUuCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L3Rvb2wvY29tbWFuZHMvZG93bmxvYWQucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wv
Y29tbWFuZHMvZG93bmxvYWQucHkKaW5kZXggZTUxNjlhYWM4NWYzMTg2ZTg0YmU5ZDUwMjQ1OTJi
ZDdmZTZkNWRkNS4uMTRiNTViYzNmN2M5YzEwYjVkZjYwZmMxYWY4N2Q3Y2EzOWUzYmM5NCAxMDA2
NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Rvd25sb2FkLnB5
CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9kb3dubG9hZC5weQpA
QCAtMSw1ICsxLDUgQEAKICMgQ29weXJpZ2h0IChjKSAyMDA5LCAyMDExIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0jIENvcHlyaWdodCAoYykgMjAwOSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoYykgMjAwOSwgMjAxNyBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogIyBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC04
Nyw2ICs4NywxNCBAQCBjbGFzcyBCdWlsZEFuZFRlc3QoQWJzdHJhY3RTZXF1ZW5jZWRDb21tYW5k
KToKICAgICBdCiAKIAorY2xhc3MgQ2hlY2tQYXRjaFJlbGV2YW5jZShBYnN0cmFjdFNlcXVlbmNl
ZENvbW1hbmQpOgorICAgIG5hbWUgPSAiY2hlY2stcGF0Y2gtcmVsZXZhbmNlIgorICAgIGhlbHBf
dGV4dCA9ICJDaGVjayBpZiB0aGlzIHBhdGNoIG5lZWRzIHRvIGJlIHRlc3RlZCIKKyAgICBzdGVw
cyA9IFsKKyAgICAgICAgc3RlcHMuQ2hlY2tQYXRjaFJlbGV2YW5jZSwKKyAgICBdCisKKwogY2xh
c3MgTGFuZChBYnN0cmFjdFNlcXVlbmNlZENvbW1hbmQpOgogICAgIG5hbWUgPSAibGFuZCIKICAg
ICBoZWxwX3RleHQgPSAiTGFuZCB0aGUgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeSBkaWZmIGFu
ZCB1cGRhdGVzIHRoZSBhc3NvY2lhdGVkIGJ1ZyBpZiBhbnkiCmRpZmYgLS1naXQgYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZWFybHl3YXJuaW5nc3lzdGVtLnB5IGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Vhcmx5d2FybmluZ3N5c3RlbS5weQpp
bmRleCA5YmMwNDE4NjBjZTY3NDU0NDU0ZTRiMjUxNDM4YTlkYmU1MjY0NTEzLi5hODE3MDU5MmQ3
YzE5NzkzNGViMjY5NzBhOTZkNzRlMWJkZWM0ZmM5IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZWFybHl3YXJuaW5nc3lzdGVtLnB5CisrKyBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9lYXJseXdhcm5pbmdzeXN0ZW0ucHkKQEAg
LTEsNCArMSw1IEBACiAjIENvcHlyaWdodCAoYykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKGMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtMjgsNiArMjksNyBA
QAogCiBpbXBvcnQganNvbgogaW1wb3J0IGxvZ2dpbmcKK2ltcG9ydCBvcwogZnJvbSBvcHRwYXJz
ZSBpbXBvcnQgbWFrZV9vcHRpb24KIAogZnJvbSB3ZWJraXRweS5jb21tb24uY29uZmlnLmNvbW1p
dHRlcnMgaW1wb3J0IENvbW1pdHRlckxpc3QKQEAgLTM2LDcgKzM4LDggQEAgZnJvbSB3ZWJraXRw
eS5jb21tb24uc3lzdGVtLmZpbGVzeXN0ZW0gaW1wb3J0IEZpbGVTeXN0ZW0KIGZyb20gd2Via2l0
cHkuY29tbW9uLnN5c3RlbS5leGVjdXRpdmUgaW1wb3J0IFNjcmlwdEVycm9yCiBmcm9tIHdlYmtp
dHB5LnRvb2wuYm90LmVhcmx5d2FybmluZ3N5c3RlbXRhc2sgaW1wb3J0IEVhcmx5V2FybmluZ1N5
c3RlbVRhc2ssIEVhcmx5V2FybmluZ1N5c3RlbVRhc2tEZWxlZ2F0ZQogZnJvbSB3ZWJraXRweS50
b29sLmJvdC5sYXlvdXR0ZXN0cmVzdWx0c3JlYWRlciBpbXBvcnQgTGF5b3V0VGVzdFJlc3VsdHNS
ZWFkZXIKLWZyb20gd2Via2l0cHkudG9vbC5ib3QucGF0Y2hhbmFseXNpc3Rhc2sgaW1wb3J0IFVu
YWJsZVRvQXBwbHlQYXRjaCwgUGF0Y2hJc05vdFZhbGlkCitmcm9tIHdlYmtpdHB5LnRvb2wuYm90
LmpzY3Rlc3RyZXN1bHRzcmVhZGVyIGltcG9ydCBKU0NUZXN0UmVzdWx0c1JlYWRlcgorZnJvbSB3
ZWJraXRweS50b29sLmJvdC5wYXRjaGFuYWx5c2lzdGFzayBpbXBvcnQgVW5hYmxlVG9BcHBseVBh
dGNoLCBQYXRjaElzTm90VmFsaWQsIFBhdGNoSXNOb3RBcHBsaWNhYmxlCiBmcm9tIHdlYmtpdHB5
LnRvb2wuYm90LnF1ZXVlZW5naW5lIGltcG9ydCBRdWV1ZUVuZ2luZQogZnJvbSB3ZWJraXRweS50
b29sLmNvbW1hbmRzLnF1ZXVlcyBpbXBvcnQgQWJzdHJhY3RSZXZpZXdRdWV1ZQogCkBAIC01Myw3
ICs1NiwxMiBAQCBjbGFzcyBBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbShBYnN0cmFjdFJldmll
d1F1ZXVlLCBFYXJseVdhcm5pbmdTeXN0ZW1UYXNrRGVsZQogCiAgICAgZGVmIGJlZ2luX3dvcmtf
cXVldWUoc2VsZik6CiAgICAgICAgIEFic3RyYWN0UmV2aWV3UXVldWUuYmVnaW5fd29ya19xdWV1
ZShzZWxmKQotICAgICAgICBzZWxmLl9sYXlvdXRfdGVzdF9yZXN1bHRzX3JlYWRlciA9IExheW91
dFRlc3RSZXN1bHRzUmVhZGVyKHNlbGYuX3Rvb2wsIHNlbGYuX3BvcnQucmVzdWx0c19kaXJlY3Rv
cnkoKSwgc2VsZi5fbG9nX2RpcmVjdG9yeSgpKQorCisgICAgICAgIGlmIHNlbGYuZ3JvdXAoKSA9
PSAianNjIjoKKyAgICAgICAgICAgIGRpciA9IG9zLnBhdGguZGlybmFtZShvcy5wYXRoLmRpcm5h
bWUob3MucGF0aC5kaXJuYW1lKHNlbGYuX3BvcnQucmVzdWx0c19kaXJlY3RvcnkoKSkpKQorICAg
ICAgICAgICAgc2VsZi5fdGVzdF9yZXN1bHRzX3JlYWRlciA9IEpTQ1Rlc3RSZXN1bHRzUmVhZGVy
KHNlbGYuX3Rvb2wsIGRpcikKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYuX3Rlc3Rf
cmVzdWx0c19yZWFkZXIgPSBMYXlvdXRUZXN0UmVzdWx0c1JlYWRlcihzZWxmLl90b29sLCBzZWxm
Ll9wb3J0LnJlc3VsdHNfZGlyZWN0b3J5KCksIHNlbGYuX2xvZ19kaXJlY3RvcnkoKSkKIAogICAg
IGRlZiBfZmFpbGluZ190ZXN0c19tZXNzYWdlKHNlbGYsIHRhc2ssIHBhdGNoKToKICAgICAgICAg
cmVzdWx0cyA9IHRhc2sucmVzdWx0c19mcm9tX3BhdGNoX3Rlc3RfcnVuKHBhdGNoKQpAQCAtOTMs
NiArMTAxLDEwIEBAIGNsYXNzIEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtKEFic3RyYWN0UmV2
aWV3UXVldWUsIEVhcmx5V2FybmluZ1N5c3RlbVRhc2tEZWxlCiAgICAgICAgIGV4Y2VwdCBVbmFi
bGVUb0FwcGx5UGF0Y2gsIGU6CiAgICAgICAgICAgICBzZWxmLl9kaWRfZXJyb3IocGF0Y2gsICIl
cyB1bmFibGUgdG8gYXBwbHkgcGF0Y2guIiAlIHNlbGYubmFtZSkKICAgICAgICAgICAgIHJldHVy
biBGYWxzZQorICAgICAgICBleGNlcHQgUGF0Y2hJc05vdEFwcGxpY2FibGUsIGU6CisgICAgICAg
ICAgICBzZWxmLl91cGRhdGVfc3RhdHVzKCJQYXRjaCBub3QgYXBwbGljYWJsZSB0byAlcy4iICUg
c2VsZi5uYW1lLCBwYXRjaCkKKyAgICAgICAgICAgIHNlbGYuX3JlbGVhc2Vfd29ya19pdGVtKHBh
dGNoKQorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCiAgICAgICAgIGV4Y2VwdCBTY3JpcHRFcnJv
ciwgZToKICAgICAgICAgICAgIHNlbGYuX3Bvc3RfcmVqZWN0X21lc3NhZ2Vfb25fYnVnKHNlbGYu
X3Rvb2wsIHBhdGNoLCB0YXNrLmZhaWx1cmVfc3RhdHVzX2lkLCBzZWxmLl9mYWlsaW5nX3Rlc3Rz
X21lc3NhZ2UodGFzaywgcGF0Y2gpKQogICAgICAgICAgICAgcmVzdWx0c19hcmNoaXZlID0gdGFz
ay5yZXN1bHRzX2FyY2hpdmVfZnJvbV9wYXRjaF90ZXN0X3J1bihwYXRjaCkKQEAgLTExNywxNCAr
MTI5LDE3IEBAIGNsYXNzIEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtKEFic3RyYWN0UmV2aWV3
UXVldWUsIEVhcmx5V2FybmluZ1N5c3RlbVRhc2tEZWxlCiAgICAgICAgIHJldHVybiBzZWxmLl91
cGRhdGVfc3RhdHVzKG1lc3NhZ2UsIHBhdGNoPXBhdGNoLCByZXN1bHRzX2ZpbGU9ZmFpbHVyZV9s
b2cpCiAKICAgICBkZWYgdGVzdF9yZXN1bHRzKHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi5f
bGF5b3V0X3Rlc3RfcmVzdWx0c19yZWFkZXIucmVzdWx0cygpCisgICAgICAgIHJldHVybiBzZWxm
Ll90ZXN0X3Jlc3VsdHNfcmVhZGVyLnJlc3VsdHMoKQogCiAgICAgZGVmIGFyY2hpdmVfbGFzdF90
ZXN0X3Jlc3VsdHMoc2VsZiwgcGF0Y2gpOgotICAgICAgICByZXR1cm4gc2VsZi5fbGF5b3V0X3Rl
c3RfcmVzdWx0c19yZWFkZXIuYXJjaGl2ZShwYXRjaCkKKyAgICAgICAgcmV0dXJuIHNlbGYuX3Rl
c3RfcmVzdWx0c19yZWFkZXIuYXJjaGl2ZShwYXRjaCkKIAogICAgIGRlZiBidWlsZF9zdHlsZShz
ZWxmKToKICAgICAgICAgcmV0dXJuIHNlbGYuX2J1aWxkX3N0eWxlCiAKKyAgICBkZWYgZ3JvdXAo
c2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl9ncm91cAorCiAgICAgZGVmIHJlZmV0Y2hfcGF0
Y2goc2VsZiwgcGF0Y2gpOgogICAgICAgICByZXR1cm4gc2VsZi5fdG9vbC5idWdzLmZldGNoX2F0
dGFjaG1lbnQocGF0Y2guaWQoKSkKIApAQCAtMTU2LDUgKzE3MSw2IEBAIGNsYXNzIEFic3RyYWN0
RWFybHlXYXJuaW5nU3lzdGVtKEFic3RyYWN0UmV2aWV3UXVldWUsIEVhcmx5V2FybmluZ1N5c3Rl
bVRhc2tEZWxlCiAgICAgICAgICAgICAgICAgJ19idWlsZF9zdHlsZSc6IGNvbmZpZy5nZXQoJ3N0
eWxlJywgInJlbGVhc2UiKSwKICAgICAgICAgICAgICAgICAnd2F0Y2hlcnMnOiBjb25maWcuZ2V0
KCd3YXRjaGVycycsIFtdKSwKICAgICAgICAgICAgICAgICAncnVuX3Rlc3RzJzogY29uZmlnLmdl
dCgncnVuVGVzdHMnLCBjbHMucnVuX3Rlc3RzKSwKKyAgICAgICAgICAgICAgICAnX2dyb3VwJzog
Y29uZmlnLmdldCgnZ3JvdXAnLCBOb25lKSwKICAgICAgICAgICAgIH0pKQogICAgICAgICByZXR1
cm4gY2xhc3NlcwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1h
bmRzL2Vhcmx5d2FybmluZ3N5c3RlbV91bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvdG9vbC9jb21tYW5kcy9lYXJseXdhcm5pbmdzeXN0ZW1fdW5pdHRlc3QucHkKaW5kZXggMDg4
ODc4MTNjZTJlOTNhOGVjOWRhMzc2MzZlY2JkZTllZmYzYzllNy4uNWQ3OGE4MTcwYmZhYjZkMzI3
NjRlNWRkMjJjZjVlNzAxNGRiNjMyOCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS90b29sL2NvbW1hbmRzL2Vhcmx5d2FybmluZ3N5c3RlbV91bml0dGVzdC5weQorKysgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZWFybHl3YXJuaW5nc3lzdGVtX3VuaXR0
ZXN0LnB5CkBAIC0xLDQgKzEsNSBAQAogIyBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTI5
LDYgKzMwLDcgQEAKIGZyb20gd2Via2l0cHkudGhpcmRwYXJ0eS5tb2NrIGltcG9ydCBNb2NrCiBm
cm9tIHdlYmtpdHB5LmNvbW1vbi5ob3N0IGltcG9ydCBIb3N0CiBmcm9tIHdlYmtpdHB5LmNvbW1v
bi5ob3N0X21vY2sgaW1wb3J0IE1vY2tIb3N0Citmcm9tIHdlYmtpdHB5LmNvbW1vbi5uZXQuanNj
dGVzdHJlc3VsdHMgaW1wb3J0IEpTQ1Rlc3RSZXN1bHRzCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5u
ZXQubGF5b3V0dGVzdHJlc3VsdHMgaW1wb3J0IExheW91dFRlc3RSZXN1bHRzCiBmcm9tIHdlYmtp
dHB5LmNvbW1vbi5zeXN0ZW0ub3V0cHV0Y2FwdHVyZSBpbXBvcnQgT3V0cHV0Q2FwdHVyZQogZnJv
bSB3ZWJraXRweS5sYXlvdXRfdGVzdHMubW9kZWxzIGltcG9ydCB0ZXN0X3Jlc3VsdHMKQEAgLTQ3
LDYgKzQ5LDcgQEAgY2xhc3MgQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW1UZXN0KFF1ZXVlc1Rl
c3QpOgogICAgICAgICBjbGFzcyBUZXN0RVdTKEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtKToK
ICAgICAgICAgICAgIHBvcnRfbmFtZSA9ICJ3aW4iICAjIE5lZWRzIHRvIGJlIGEgcG9ydCB3aGlj
aCBwb3J0L2ZhY3RvcnkgdW5kZXJzdGFuZHMuCiAgICAgICAgICAgICBfYnVpbGRfc3R5bGUgPSBO
b25lCisgICAgICAgICAgICBfZ3JvdXAgPSBOb25lCiAKICAgICAgICAgZXdzID0gVGVzdEVXUygp
CiAgICAgICAgIGV3cy5iaW5kX3RvX3Rvb2woTW9ja1Rvb2woKSkKQEAgLTYwLDYgKzYzLDIzIEBA
IGNsYXNzIEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtVGVzdChRdWV1ZXNUZXN0KToKICAgICAg
ICAgcGF0Y2ggPSBld3MuX3Rvb2wuYnVncy5mZXRjaF9hdHRhY2htZW50KDEwMDAwKQogICAgICAg
ICBzZWxmLmFzc2VydE11bHRpTGluZUVxdWFsKGV3cy5fZmFpbGluZ190ZXN0c19tZXNzYWdlKHRh
c2ssIHBhdGNoKSwgIk5ldyBmYWlsaW5nIHRlc3RzOlxuZm9vLmh0bWxcbmJhci5odG1sIikKIAor
ICAgIGRlZiB0ZXN0X2ZhaWxpbmdfanNjX3Rlc3RzX21lc3NhZ2Uoc2VsZik6CisgICAgICAgICMg
TmVlZGVkIHRvIGRlZmluZSBwb3J0X25hbWUsIHVzZWQgaW4gQWJzdHJhY3RFYXJseVdhcm5pbmdT
eXN0ZW0uX19pbml0X18KKyAgICAgICAgY2xhc3MgVGVzdEVXUyhBYnN0cmFjdEVhcmx5V2Fybmlu
Z1N5c3RlbSk6CisgICAgICAgICAgICBwb3J0X25hbWUgPSAid2luIiAgIyBOZWVkcyB0byBiZSBh
IHBvcnQgd2hpY2ggcG9ydC9mYWN0b3J5IHVuZGVyc3RhbmRzLgorICAgICAgICAgICAgX2J1aWxk
X3N0eWxlID0gTm9uZQorICAgICAgICAgICAgX2dyb3VwID0gImpzYyIKKworICAgICAgICBld3Mg
PSBUZXN0RVdTKCkKKyAgICAgICAgZXdzLmJpbmRfdG9fdG9vbChNb2NrVG9vbCgpKQorICAgICAg
ICBld3MuaG9zdCA9IE1vY2tIb3N0KCkKKyAgICAgICAgZXdzLl9vcHRpb25zID0gTW9ja09wdGlv
bnMocG9ydD1Ob25lLCBjb25maXJtPUZhbHNlKQorICAgICAgICBPdXRwdXRDYXB0dXJlKCkuYXNz
ZXJ0X291dHB1dHMoc2VsZiwgZXdzLmJlZ2luX3dvcmtfcXVldWUsIGV4cGVjdGVkX2xvZ3M9c2Vs
Zi5fZGVmYXVsdF9iZWdpbl93b3JrX3F1ZXVlX2xvZ3MoZXdzLm5hbWUpKQorICAgICAgICB0YXNr
ID0gTW9jaygpCisgICAgICAgIHRhc2sucmVzdWx0c19mcm9tX3BhdGNoX3Rlc3RfcnVuID0gbGFt
YmRhIGE6IEpTQ1Rlc3RSZXN1bHRzKEZhbHNlLCBbImVzNi55YW1sL2VzNi90eXBlZF9hcnJheXNf
SW50OEFycmF5LmpzLmRlZmF1bHQiLCAiZXM2LnlhbWwvZXM2L3R5cGVkX2FycmF5c19VaW50OEFy
cmF5LmpzLmRlZmF1bHQiXSkKKyAgICAgICAgcGF0Y2ggPSBld3MuX3Rvb2wuYnVncy5mZXRjaF9h
dHRhY2htZW50KDEwMDAwKQorICAgICAgICBzZWxmLmFzc2VydE11bHRpTGluZUVxdWFsKGV3cy5f
ZmFpbGluZ190ZXN0c19tZXNzYWdlKHRhc2ssIHBhdGNoKSwgIk5ldyBmYWlsaW5nIHRlc3RzOlxu
ZXM2LnlhbWwvZXM2L3R5cGVkX2FycmF5c19JbnQ4QXJyYXkuanMuZGVmYXVsdFxuZXM2LnlhbWwv
ZXM2L3R5cGVkX2FycmF5c19VaW50OEFycmF5LmpzLmRlZmF1bHRcbmFwaVRlc3RzIikKKwogCiBj
bGFzcyBFYXJseVdhcm5pbmdTeXN0ZW1UZXN0KFF1ZXVlc1Rlc3QpOgogICAgIGRlZiBfZGVmYXVs
dF9leHBlY3RlZF9sb2dzKHNlbGYsIGV3cyk6CkBAIC02OCw5ICs4OCwxMCBAQCBjbGFzcyBFYXJs
eVdhcm5pbmdTeXN0ZW1UZXN0KFF1ZXVlc1Rlc3QpOgogICAgICAgICAgICAgInBvcnQiOiBld3Mu
cG9ydF9uYW1lLAogICAgICAgICAgICAgImFyY2hpdGVjdHVyZSI6ICIgLS1hcmNoaXRlY3R1cmU9
JXMiICUgZXdzLmFyY2hpdGVjdHVyZSBpZiBld3MuYXJjaGl0ZWN0dXJlIGVsc2UgIiIsCiAgICAg
ICAgICAgICAiYnVpbGRfc3R5bGUiOiBld3MuYnVpbGRfc3R5bGUoKSwKKyAgICAgICAgICAgICJn
cm91cCI6IGV3cy5ncm91cCgpLAogICAgICAgICB9CiAgICAgICAgIGlmIGV3cy5ydW5fdGVzdHM6
Ci0gICAgICAgICAgICBydW5fdGVzdHNfbGluZSA9ICJSdW5uaW5nOiB3ZWJraXQtcGF0Y2ggLS1z
dGF0dXMtaG9zdD1leGFtcGxlLmNvbSBidWlsZC1hbmQtdGVzdCAtLW5vLWNsZWFuIC0tbm8tdXBk
YXRlIC0tdGVzdCAtLW5vbi1pbnRlcmFjdGl2ZSAtLWJ1aWxkLXN0eWxlPSUoYnVpbGRfc3R5bGUp
cyAtLXBvcnQ9JShwb3J0KXMlKGFyY2hpdGVjdHVyZSlzXG4iICUgc3RyaW5nX3JlcGxhY2VtZW50
cworICAgICAgICAgICAgcnVuX3Rlc3RzX2xpbmUgPSAiUnVubmluZzogd2Via2l0LXBhdGNoIC0t
c3RhdHVzLWhvc3Q9ZXhhbXBsZS5jb20gYnVpbGQtYW5kLXRlc3QgLS1uby1jbGVhbiAtLW5vLXVw
ZGF0ZSAtLXRlc3QgLS1ub24taW50ZXJhY3RpdmUgLS1idWlsZC1zdHlsZT0lKGJ1aWxkX3N0eWxl
KXMgLS1ncm91cD0lKGdyb3VwKXMgLS1wb3J0PSUocG9ydClzJShhcmNoaXRlY3R1cmUpc1xuIiAl
IHN0cmluZ19yZXBsYWNlbWVudHMKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIHJ1bl90ZXN0
c19saW5lID0gIiIKICAgICAgICAgc3RyaW5nX3JlcGxhY2VtZW50c1sncnVuX3Rlc3RzX2xpbmUn
XSA9IHJ1bl90ZXN0c19saW5lCkBAIC04MSw3ICsxMDIsOCBAQCBjbGFzcyBFYXJseVdhcm5pbmdT
eXN0ZW1UZXN0KFF1ZXVlc1Rlc3QpOgogUnVubmluZzogd2Via2l0LXBhdGNoIC0tc3RhdHVzLWhv
c3Q9ZXhhbXBsZS5jb20gY2xlYW4gLS1wb3J0PSUocG9ydClzJShhcmNoaXRlY3R1cmUpcwogUnVu
bmluZzogd2Via2l0LXBhdGNoIC0tc3RhdHVzLWhvc3Q9ZXhhbXBsZS5jb20gdXBkYXRlIC0tcG9y
dD0lKHBvcnQpcyUoYXJjaGl0ZWN0dXJlKXMKIFJ1bm5pbmc6IHdlYmtpdC1wYXRjaCAtLXN0YXR1
cy1ob3N0PWV4YW1wbGUuY29tIGFwcGx5LWF0dGFjaG1lbnQgLS1uby11cGRhdGUgLS1ub24taW50
ZXJhY3RpdmUgMTAwMDAgLS1wb3J0PSUocG9ydClzJShhcmNoaXRlY3R1cmUpcwotUnVubmluZzog
d2Via2l0LXBhdGNoIC0tc3RhdHVzLWhvc3Q9ZXhhbXBsZS5jb20gYnVpbGQgLS1uby1jbGVhbiAt
LW5vLXVwZGF0ZSAtLWJ1aWxkLXN0eWxlPSUoYnVpbGRfc3R5bGUpcyAtLXBvcnQ9JShwb3J0KXMl
KGFyY2hpdGVjdHVyZSlzCitSdW5uaW5nOiB3ZWJraXQtcGF0Y2ggLS1zdGF0dXMtaG9zdD1leGFt
cGxlLmNvbSBjaGVjay1wYXRjaC1yZWxldmFuY2UgLS1ncm91cD0lKGdyb3VwKXMgLS1wb3J0PSUo
cG9ydClzJShhcmNoaXRlY3R1cmUpcworUnVubmluZzogd2Via2l0LXBhdGNoIC0tc3RhdHVzLWhv
c3Q9ZXhhbXBsZS5jb20gYnVpbGQgLS1uby1jbGVhbiAtLW5vLXVwZGF0ZSAtLWJ1aWxkLXN0eWxl
PSUoYnVpbGRfc3R5bGUpcyAtLWdyb3VwPSUoZ3JvdXApcyAtLXBvcnQ9JShwb3J0KXMlKGFyY2hp
dGVjdHVyZSlzCiAlKHJ1bl90ZXN0c19saW5lKXNNT0NLOiB1cGRhdGVfc3RhdHVzOiAlKG5hbWUp
cyBQYXNzCiBNT0NLOiByZWxlYXNlX3dvcmtfaXRlbTogJShuYW1lKXMgMTAwMDAKICIiIiAlIHN0
cmluZ19yZXBsYWNlbWVudHMsCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rv
b2wvc3RlcHMvX19pbml0X18ucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMv
X19pbml0X18ucHkKaW5kZXggMzU2YWNhYjAzYWQ4Mjc0Y2U5YmRhNjg1ODg2NGZmMTliNjRmNGEw
YS4uNmM5YzA5YWM1MmEzODZiOWYwY2YzNjNiOWMwM2JiYWE0YzAwMzg2MSAxMDA2NDQKLS0tIGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL19faW5pdF9fLnB5CisrKyBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9fX2luaXRfXy5weQpAQCAtMSw0ICsxLDUgQEAK
ICMgQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisj
IENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAj
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC0zMyw2ICszNCw3IEBAIGZyb20gd2Via2l0
cHkudG9vbC5zdGVwcy5hcHBseXBhdGNod2l0aGxvY2FsY29tbWl0IGltcG9ydCBBcHBseVBhdGNo
V2l0aExvY2FsQ29tCiBmcm9tIHdlYmtpdHB5LnRvb2wuc3RlcHMuYXBwbHl3YXRjaGxpc3QgaW1w
b3J0IEFwcGx5V2F0Y2hMaXN0CiBmcm9tIHdlYmtpdHB5LnRvb2wuc3RlcHMuYXR0YWNodG9idWcg
aW1wb3J0IEF0dGFjaFRvQnVnCiBmcm9tIHdlYmtpdHB5LnRvb2wuc3RlcHMuYnVpbGQgaW1wb3J0
IEJ1aWxkCitmcm9tIHdlYmtpdHB5LnRvb2wuc3RlcHMuY2hlY2twYXRjaHJlbGV2YW5jZSBpbXBv
cnQgQ2hlY2tQYXRjaFJlbGV2YW5jZQogZnJvbSB3ZWJraXRweS50b29sLnN0ZXBzLmNoZWNrc3R5
bGUgaW1wb3J0IENoZWNrU3R5bGUKIGZyb20gd2Via2l0cHkudG9vbC5zdGVwcy5jbGVhbndvcmtp
bmdkaXJlY3RvcnkgaW1wb3J0IENsZWFuV29ya2luZ0RpcmVjdG9yeQogZnJvbSB3ZWJraXRweS50
b29sLnN0ZXBzLmNsb3NlYnVnIGltcG9ydCBDbG9zZUJ1ZwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS90b29sL3N0ZXBzL2J1aWxkLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS90b29sL3N0ZXBzL2J1aWxkLnB5CmluZGV4IGY3NGZmY2U3MDk0MWM2MWU1OTY3OTJlNGM2MGRj
ZDdmOGI2NWU5ZWMuLjNjNmNmMGIxZGUwMThjMTMyYjdmODZkYTJjYjkwN2UyZmRhMDY3YWUgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9idWlsZC5weQorKysg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvYnVpbGQucHkKQEAgLTEsNCArMSw1
IEBACiAjIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorIyBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
IwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtNDEsMjggKzQyLDM3IEBAIGNsYXNz
IEJ1aWxkKEFic3RyYWN0U3RlcCk6CiAgICAgICAgICAgICBPcHRpb25zLmJ1aWxkLAogICAgICAg
ICAgICAgT3B0aW9ucy5xdWlldCwKICAgICAgICAgICAgIE9wdGlvbnMuYnVpbGRfc3R5bGUsCisg
ICAgICAgICAgICBPcHRpb25zLmdyb3VwLAogICAgICAgICBdCiAKLSAgICBkZWYgYnVpbGQoc2Vs
ZiwgYnVpbGRfc3R5bGUpOgorICAgIGRlZiBidWlsZChzZWxmLCBidWlsZF9zdHlsZSwgZ3JvdXAp
OgogICAgICAgICBlbnZpcm9ubWVudCA9IHNlbGYuX3Rvb2wuY29weV9jdXJyZW50X2Vudmlyb25t
ZW50KCkKICAgICAgICAgZW52aXJvbm1lbnQuZGlzYWJsZV9nY2Nfc21hcnRxdW90ZXMoKQogICAg
ICAgICBlbnZpcm9ubWVudC5kaXNhYmxlX2poYnVpbGRfVlQxMDBfb3V0cHV0KCkKICAgICAgICAg
ZW52ID0gZW52aXJvbm1lbnQudG9fZGljdGlvbmFyeSgpCiAKLSAgICAgICAgYnVpbGRfd2Via2l0
X2NvbW1hbmQgPSBzZWxmLl90b29sLmRlcHJlY2F0ZWRfcG9ydCgpLmJ1aWxkX3dlYmtpdF9jb21t
YW5kKGJ1aWxkX3N0eWxlPWJ1aWxkX3N0eWxlKQorICAgICAgICBpZiBncm91cCA9PSAianNjIjoK
KyAgICAgICAgICAgIGJ1aWxkX2NvbW1hbmQgPSBzZWxmLl90b29sLmRlcHJlY2F0ZWRfcG9ydCgp
LmJ1aWxkX2pzY19jb21tYW5kKGJ1aWxkX3N0eWxlPWJ1aWxkX3N0eWxlKQorICAgICAgICBlbHNl
OgorICAgICAgICAgICAgYnVpbGRfY29tbWFuZCA9IHNlbGYuX3Rvb2wuZGVwcmVjYXRlZF9wb3J0
KCkuYnVpbGRfd2Via2l0X2NvbW1hbmQoYnVpbGRfc3R5bGU9YnVpbGRfc3R5bGUpCiAKICAgICAg
ICAgaWYgc2VsZi5fb3B0aW9ucy5hcmNoaXRlY3R1cmU6Ci0gICAgICAgICAgICBidWlsZF93ZWJr
aXRfY29tbWFuZCArPSBbJ0FSQ0hTPSVzJyAlIHNlbGYuX29wdGlvbnMuYXJjaGl0ZWN0dXJlXQor
ICAgICAgICAgICAgYnVpbGRfY29tbWFuZCArPSBbJ0FSQ0hTPSVzJyAlIHNlbGYuX29wdGlvbnMu
YXJjaGl0ZWN0dXJlXQogCi0gICAgICAgIHNlbGYuX3Rvb2wuZXhlY3V0aXZlLnJ1bl9hbmRfdGhy
b3dfaWZfZmFpbChidWlsZF93ZWJraXRfY29tbWFuZCwgc2VsZi5fb3B0aW9ucy5xdWlldCwKKyAg
ICAgICAgc2VsZi5fdG9vbC5leGVjdXRpdmUucnVuX2FuZF90aHJvd19pZl9mYWlsKGJ1aWxkX2Nv
bW1hbmQsIHNlbGYuX29wdGlvbnMucXVpZXQsCiAgICAgICAgICAgICBjd2Q9c2VsZi5fdG9vbC5z
Y20oKS5jaGVja291dF9yb290LCBlbnY9ZW52KQogCiAgICAgZGVmIHJ1bihzZWxmLCBzdGF0ZSk6
CiAgICAgICAgIGlmIG5vdCBzZWxmLl9vcHRpb25zLmJ1aWxkOgogICAgICAgICAgICAgcmV0dXJu
CiAgICAgICAgIF9sb2cuaW5mbygiQnVpbGRpbmcgV2ViS2l0IikKKworICAgICAgICBncm91cCA9
IE5vbmUKKyAgICAgICAgaWYgaGFzYXR0cihzZWxmLl9vcHRpb25zLCAnZ3JvdXAnKToKKyAgICAg
ICAgICAgIGdyb3VwID0gc2VsZi5fb3B0aW9ucy5ncm91cAorCiAgICAgICAgIGlmIHNlbGYuX29w
dGlvbnMuYnVpbGRfc3R5bGUgPT0gImJvdGgiOgotICAgICAgICAgICAgc2VsZi5idWlsZCgiZGVi
dWciKQotICAgICAgICAgICAgc2VsZi5idWlsZCgicmVsZWFzZSIpCisgICAgICAgICAgICBzZWxm
LmJ1aWxkKCJkZWJ1ZyIsIGdyb3VwKQorICAgICAgICAgICAgc2VsZi5idWlsZCgicmVsZWFzZSIs
IGdyb3VwKQogICAgICAgICBlbHNlOgotICAgICAgICAgICAgc2VsZi5idWlsZChzZWxmLl9vcHRp
b25zLmJ1aWxkX3N0eWxlKQorICAgICAgICAgICAgc2VsZi5idWlsZChzZWxmLl9vcHRpb25zLmJ1
aWxkX3N0eWxlLCBncm91cCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9v
bC9zdGVwcy9jaGVja3BhdGNocmVsZXZhbmNlLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90
b29sL3N0ZXBzL2NoZWNrcGF0Y2hyZWxldmFuY2UucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODJmNzQ1ZTM0ZGI5
ZDY5YjI0NDUzNDg4NDQ2ODU5NjZlYTY2MzI1MgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9jaGVja3BhdGNocmVsZXZhbmNlLnB5CkBAIC0wLDAg
KzEsNzQgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwK
KyMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IKKyMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwKKyMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworaW1wb3J0
IGxvZ2dpbmcKK2ltcG9ydCByZQorCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZXhlY3V0
aXZlIGltcG9ydCBTY3JpcHRFcnJvcgorZnJvbSB3ZWJraXRweS50b29sLnN0ZXBzLmFic3RyYWN0
c3RlcCBpbXBvcnQgQWJzdHJhY3RTdGVwCitmcm9tIHdlYmtpdHB5LnRvb2wuc3RlcHMub3B0aW9u
cyBpbXBvcnQgT3B0aW9ucworCitfbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18pCisK
KworY2xhc3MgQ2hlY2tQYXRjaFJlbGV2YW5jZShBYnN0cmFjdFN0ZXApOgorICAgIEBjbGFzc21l
dGhvZAorICAgIGRlZiBvcHRpb25zKGNscyk6CisgICAgICAgIHJldHVybiBBYnN0cmFjdFN0ZXAu
b3B0aW9ucygpICsgWworICAgICAgICAgICAgT3B0aW9ucy5ncm91cCwKKyAgICAgICAgXQorCisg
ICAganNjX3BhdGhzID0gWworICAgICAgICAiSlNUZXN0cy8iLAorICAgICAgICAiU291cmNlL0ph
dmFTY3JpcHRDb3JlLyIsCisgICAgICAgICJTb3VyY2UvV1RGLyIKKyAgICAgICAgIlNvdXJjZS9i
bWFsbG9jLyIsCisgICAgXQorCisgICAgZGVmIF9kb2VzX2NvbnRhaW5fY2hhbmdlX2luX3BhdGhz
KHNlbGYsIGZpbGVzLCBwYXR0ZXJucyk6CisgICAgICAgIGZvciBpdGVtIGluIGZpbGVzOgorICAg
ICAgICAgICAgZm9yIHBhdHRlcm4gaW4gcGF0dGVybnM6CisgICAgICAgICAgICAgICAgaWYgcmUu
c2VhcmNoKHBhdHRlcm4sIGl0ZW0sIHJlLklHTk9SRUNBU0UpOgorICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gVHJ1ZQorCisgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgZGVmIHJ1bihzZWxm
LCBzdGF0ZSk6CisgICAgICAgIF9sb2cuaW5mbygiQ2hlY2tpbmcgcmVsZXZhbmNlIG9mIHBhdGNo
IikKKworICAgICAgICBncm91cCA9IE5vbmUKKyAgICAgICAgaWYgaGFzYXR0cihzZWxmLl9vcHRp
b25zLCAnZ3JvdXAnKToKKyAgICAgICAgICAgIGdyb3VwID0gc2VsZi5fb3B0aW9ucy5ncm91cAor
CisgICAgICAgIGNoYW5nZV9saXN0ID0gc2VsZi5fdG9vbC5zY20oKS5jaGFuZ2VkX2ZpbGVzKCkK
KworICAgICAgICBpZiBncm91cCA9PSAianNjIjoKKyAgICAgICAgICAgIHJlbGV2YW50ID0gc2Vs
Zi5fZG9lc19jb250YWluX2NoYW5nZV9pbl9wYXRocyhjaGFuZ2VfbGlzdCwgc2VsZi5qc2NfcGF0
aHMpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZWxldmFudCA9IFRydWUKKworICAgICAg
ICBpZiByZWxldmFudCBpcyBUcnVlOgorICAgICAgICAgICAgX2xvZy5pbmZvKCJUaGlzIHBhdGNo
IGhhcyByZWxldmFudCBjaGFuZ2VzLiIpCisgICAgICAgICAgICByZXR1cm4gVHJ1ZQorICAgICAg
ICBlbHNlOgorICAgICAgICAgICAgX2xvZy5pbmZvKCJUaGlzIHBhdGNoIGRvZXMgbm90IGhhdmUg
cmVsZXZhbnQgY2hhbmdlcy4iKQorICAgICAgICAgICAgcmFpc2UgU2NyaXB0RXJyb3IobWVzc2Fn
ZT0iVGhpcyBwYXRjaCBkb2VzIG5vdCBoYXZlIHJlbGV2YW50IGNoYW5nZXMuIikKZGlmZiAtLWdp
dCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9vcHRpb25zLnB5IGIvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL29wdGlvbnMucHkKaW5kZXggM2VmNDdkMDA4YTU5
ZTA1MGQ0Y2EwYzQ4NzdkZGQxYTYwNzMxYTQwOS4uZjVlMGRlZjMyNzE3ZTMwNmU2MzE2OTg0MTEx
MGIyODk4YjcyYTFmMSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0
ZXBzL29wdGlvbnMucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL29w
dGlvbnMucHkKQEAgLTEsNCArMSw1IEBACiAjIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAt
NDYsNiArNDcsNyBAQCBjbGFzcyBPcHRpb25zKG9iamVjdCk6CiAgICAgZW1haWwgPSBtYWtlX29w
dGlvbigiLS1lbWFpbCIsIGFjdGlvbj0ic3RvcmUiLCB0eXBlPSJzdHJpbmciLCBkZXN0PSJlbWFp
bCIsIGhlbHA9IkVtYWlsIGFkZHJlc3MgdG8gdXNlIGluIENoYW5nZUxvZ3MuIikKICAgICBmb3Jj
ZV9jbGVhbiA9IG1ha2Vfb3B0aW9uKCItLWZvcmNlLWNsZWFuIiwgYWN0aW9uPSJzdG9yZV90cnVl
IiwgZGVzdD0iZm9yY2VfY2xlYW4iLCBkZWZhdWx0PUZhbHNlLCBoZWxwPSJDbGVhbiB3b3JraW5n
IGRpcmVjdG9yeSBiZWZvcmUgYXBwbHlpbmcgcGF0Y2hlcyAocmVtb3ZlcyBsb2NhbCBjaGFuZ2Vz
IGFuZCBjb21taXRzKSIpCiAgICAgZ2l0X2NvbW1pdCA9IG1ha2Vfb3B0aW9uKCItZyIsICItLWdp
dC1jb21taXQiLCBhY3Rpb249InN0b3JlIiwgZGVzdD0iZ2l0X2NvbW1pdCIsIGhlbHA9Ik9wZXJh
dGUgb24gYSBsb2NhbCBjb21taXQuIElmIGEgcmFuZ2UsIHRoZSBjb21taXRzIGFyZSBzcXVhc2hl
ZCBpbnRvIG9uZS4gPHJlZj4uLi4uIGluY2x1ZGVzIHRoZSB3b3JraW5nIGNvcHkgY2hhbmdlcy4g
VVBTVFJFQU0gY2FuIGJlIHVzZWQgZm9yIHRoZSB1cHN0cmVhbS90cmFja2luZyBicmFuY2guIikK
KyAgICBncm91cCA9IG1ha2Vfb3B0aW9uKCItLWdyb3VwIiwgYWN0aW9uPSJzdG9yZSIsIGRlc3Q9
Imdyb3VwIiwgZGVmYXVsdD1Ob25lLCBoZWxwPSIiKQogICAgIGxvY2FsX2NvbW1pdCA9IG1ha2Vf
b3B0aW9uKCItLWxvY2FsLWNvbW1pdCIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGRlc3Q9ImxvY2Fs
X2NvbW1pdCIsIGRlZmF1bHQ9RmFsc2UsIGhlbHA9Ik1ha2UgYSBsb2NhbCBjb21taXQgZm9yIGVh
Y2ggYXBwbGllZCBwYXRjaCIpCiAgICAgbm9uX2ludGVyYWN0aXZlID0gbWFrZV9vcHRpb24oIi0t
bm9uLWludGVyYWN0aXZlIiwgYWN0aW9uPSJzdG9yZV90cnVlIiwgZGVzdD0ibm9uX2ludGVyYWN0
aXZlIiwgZGVmYXVsdD1GYWxzZSwgaGVscD0iTmV2ZXIgcHJvbXB0IHRoZSB1c2VyLCBmYWlsIGFz
IGZhc3QgYXMgcG9zc2libGUuIikKICAgICBvYnNvbGV0ZV9wYXRjaGVzID0gbWFrZV9vcHRpb24o
Ii0tbm8tb2Jzb2xldGUiLCBhY3Rpb249InN0b3JlX2ZhbHNlIiwgZGVzdD0ib2Jzb2xldGVfcGF0
Y2hlcyIsIGRlZmF1bHQ9VHJ1ZSwgaGVscD0iRG8gbm90IG9ic29sZXRlIG9sZCBwYXRjaGVzIGJl
Zm9yZSBwb3N0aW5nIHRoaXMgb25lLiIpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L3Rvb2wvc3RlcHMvcnVudGVzdHMucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wv
c3RlcHMvcnVudGVzdHMucHkKaW5kZXggNzVkNzJiYzlhZDJmNGUzNmQ0NWZkYWM5MGYxODE5NDgx
Y2YwMjg4Yi4uOGIyMjQwZTJhOGM3MDVjYzI3MjU0OGYxM2VkYTI2MzkzMDJmMTk4YiAxMDA2NDQK
LS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3J1bnRlc3RzLnB5CisrKyBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9ydW50ZXN0cy5weQpAQCAtMSw0ICsx
LDUgQEAKICMgQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisjIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC01Myw5ICs1NCwxNCBAQCBjbGFz
cyBSdW5UZXN0cyhBYnN0cmFjdFN0ZXApOgogICAgICAgICAgICAgT3B0aW9ucy5pdGVyYXRlX29u
X25ld190ZXN0cywKICAgICAgICAgICAgIE9wdGlvbnMubm9uX2ludGVyYWN0aXZlLAogICAgICAg
ICAgICAgT3B0aW9ucy5xdWlldCwKKyAgICAgICAgICAgIE9wdGlvbnMuZ3JvdXAsCiAgICAgICAg
IF0KIAogICAgIGRlZiBydW4oc2VsZiwgc3RhdGUpOgorICAgICAgICBpZiBoYXNhdHRyKHNlbGYu
X29wdGlvbnMsICJncm91cCIpIGFuZCBzZWxmLl9vcHRpb25zLmdyb3VwID09ICJqc2MiOgorICAg
ICAgICAgICAgc2VsZi5fcnVuX2phdmFzY3JpcHRjb3JlX3Rlc3RzKCkKKyAgICAgICAgICAgIHJl
dHVybgorCiAgICAgICAgIGlmIHNlbGYuX29wdGlvbnMuaXRlcmF0ZV9vbl9uZXdfdGVzdHM6CiAg
ICAgICAgICAgICBfbG9nLmluZm8oIlJ1bm5pbmcgcnVuLXdlYmtpdC10ZXN0cyBvbiBuZXcgdGVz
dHMiKQogICAgICAgICAgICAgc2VsZi5fcnVuX3dlYmtpdF90ZXN0cyhzZWxmLl9vcHRpb25zLml0
ZXJhdGVfb25fbmV3X3Rlc3RzKQpAQCAtMTQzLDMgKzE0OSw3IEBAIGNsYXNzIFJ1blRlc3RzKEFi
c3RyYWN0U3RlcCk6CiAgICAgICAgICAgICBhcmdzLmFwcGVuZCgiLS1pdGVyYXRpb25zPSVkIiAl
IGl0ZXJhdGVfb25fbmV3X3Rlc3RzKQogCiAgICAgICAgIHNlbGYuX3Rvb2wuZXhlY3V0aXZlLnJ1
bl9hbmRfdGhyb3dfaWZfZmFpbChhcmdzLCBjd2Q9c2VsZi5fdG9vbC5zY20oKS5jaGVja291dF9y
b290KQorCisgICAgZGVmIF9ydW5famF2YXNjcmlwdGNvcmVfdGVzdHMoc2VsZik6CisgICAgICAg
IGFyZ3MgPSBzZWxmLl90b29sLmRlcHJlY2F0ZWRfcG9ydCgpLnJ1bl9qYXZhc2NyaXB0Y29yZV90
ZXN0c19jb21tYW5kKHNlbGYuX29wdGlvbnMuYnVpbGRfc3R5bGUpCisgICAgICAgIHNlbGYuX3Rv
b2wuZXhlY3V0aXZlLnJ1bl9hbmRfdGhyb3dfaWZfZmFpbChhcmdzLCBjd2Q9c2VsZi5fdG9vbC5z
Y20oKS5jaGVja291dF9yb290KQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90
b29sL3N0ZXBzL3N0ZXBzX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29s
L3N0ZXBzL3N0ZXBzX3VuaXR0ZXN0LnB5CmluZGV4IDdkOTRhMTNiMzQ2M2Q5OGE0NGY5NDlmODE0
Y2M3MTIxYzA2OGFiNWQuLmMzMzAwYzg1OTQ0Y2RlMjFhZDlkMGIzZTU2ZGVkODgwMTNlYjZhZGUg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9zdGVwc191bml0
dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvc3RlcHNfdW5p
dHRlc3QucHkKQEAgLTEsNCArMSw1IEBACiAjIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAt
MjgsNiArMjksNyBAQAogCiBpbXBvcnQgdW5pdHRlc3QKIAorZnJvbSB3ZWJraXRweS5jb21tb24u
c3lzdGVtLmV4ZWN1dGl2ZSBpbXBvcnQgU2NyaXB0RXJyb3IKIGZyb20gd2Via2l0cHkuY29tbW9u
LnN5c3RlbS5vdXRwdXRjYXB0dXJlIGltcG9ydCBPdXRwdXRDYXB0dXJlCiBmcm9tIHdlYmtpdHB5
LmNvbW1vbi5jb25maWcucG9ydHMgaW1wb3J0IERlcHJlY2F0ZWRQb3J0CiBmcm9tIHdlYmtpdHB5
LnRvb2wubW9ja3Rvb2wgaW1wb3J0IE1vY2tPcHRpb25zLCBNb2NrVG9vbApAQCAtMTExLDcgKzEx
Myw3IEBAIE1PQ0sgcnVuX2FuZF90aHJvd19pZl9mYWlsOiBbJ1Rvb2xzL1NjcmlwdHMvdGVzdC13
ZWJraXRweSddLCBjd2Q9L21vY2stY2hlY2tvdXQKIFJ1bm5pbmcgUGVybCB1bml0IHRlc3RzCiBN
T0NLIHJ1bl9hbmRfdGhyb3dfaWZfZmFpbDogWydUb29scy9TY3JpcHRzL3Rlc3Qtd2Via2l0cGVy
bCddLCBjd2Q9L21vY2stY2hlY2tvdXQKIFJ1bm5pbmcgSmF2YVNjcmlwdENvcmUgdGVzdHMKLU1P
Q0sgcnVuX2FuZF90aHJvd19pZl9mYWlsOiBbJ1Rvb2xzL1NjcmlwdHMvcnVuLWphdmFzY3JpcHRj
b3JlLXRlc3RzJ10sIGN3ZD0vbW9jay1jaGVja291dAorTU9DSyBydW5fYW5kX3Rocm93X2lmX2Zh
aWw6IFsnVG9vbHMvU2NyaXB0cy9ydW4tamF2YXNjcmlwdGNvcmUtdGVzdHMnLCAnLS1uby1mYWls
LWZhc3QnLCAnLS1qc29uLW91dHB1dD1qc2NfdGVzdF9yZXN1bHRzLmpzb24nXSwgY3dkPS9tb2Nr
LWNoZWNrb3V0CiBSdW5uaW5nIGJpbmRpbmdzIGdlbmVyYXRpb24gdGVzdHMKIE1PQ0sgcnVuX2Fu
ZF90aHJvd19pZl9mYWlsOiBbJ1Rvb2xzL1NjcmlwdHMvcnVuLWJpbmRpbmdzLXRlc3RzJ10sIGN3
ZD0vbW9jay1jaGVja291dAogUnVubmluZyBydW4td2Via2l0LXRlc3RzCkBAIC0xMzMsMTAgKzEz
NSwxMTEgQEAgTU9DSyBydW5fYW5kX3Rocm93X2lmX2ZhaWw6IFsnVG9vbHMvU2NyaXB0cy90ZXN0
LXdlYmtpdHB5J10sIGN3ZD0vbW9jay1jaGVja291dAogUnVubmluZyBQZXJsIHVuaXQgdGVzdHMK
IE1PQ0sgcnVuX2FuZF90aHJvd19pZl9mYWlsOiBbJ1Rvb2xzL1NjcmlwdHMvdGVzdC13ZWJraXRw
ZXJsJ10sIGN3ZD0vbW9jay1jaGVja291dAogUnVubmluZyBKYXZhU2NyaXB0Q29yZSB0ZXN0cwot
TU9DSyBydW5fYW5kX3Rocm93X2lmX2ZhaWw6IFsnVG9vbHMvU2NyaXB0cy9ydW4tamF2YXNjcmlw
dGNvcmUtdGVzdHMnXSwgY3dkPS9tb2NrLWNoZWNrb3V0CitNT0NLIHJ1bl9hbmRfdGhyb3dfaWZf
ZmFpbDogWydUb29scy9TY3JpcHRzL3J1bi1qYXZhc2NyaXB0Y29yZS10ZXN0cycsICctLW5vLWZh
aWwtZmFzdCcsICctLWpzb24tb3V0cHV0PWpzY190ZXN0X3Jlc3VsdHMuanNvbiddLCBjd2Q9L21v
Y2stY2hlY2tvdXQKIFJ1bm5pbmcgYmluZGluZ3MgZ2VuZXJhdGlvbiB0ZXN0cwogTU9DSyBydW5f
YW5kX3Rocm93X2lmX2ZhaWw6IFsnVG9vbHMvU2NyaXB0cy9ydW4tYmluZGluZ3MtdGVzdHMnXSwg
Y3dkPS9tb2NrLWNoZWNrb3V0CiBSdW5uaW5nIHJ1bi13ZWJraXQtdGVzdHMKIE1PQ0sgcnVuX2Fu
ZF90aHJvd19pZl9mYWlsOiBbJ1Rvb2xzL1NjcmlwdHMvcnVuLXdlYmtpdC10ZXN0cycsICctLWRl
YnVnJywgJy0tcXVpZXQnXSwgY3dkPS9tb2NrLWNoZWNrb3V0CiAiIiIKICAgICAgICAgT3V0cHV0
Q2FwdHVyZSgpLmFzc2VydF9vdXRwdXRzKHNlbGYsIHN0ZXAucnVuLCBbe31dLCBleHBlY3RlZF9s
b2dzPWV4cGVjdGVkX2xvZ3MpCisKKyAgICBkZWYgdGVzdF9ydW50ZXN0c19qc2Moc2VsZik6Cisg
ICAgICAgIG1vY2tfb3B0aW9ucyA9IHNlbGYuX3N0ZXBfb3B0aW9ucygpCisgICAgICAgIG1vY2tf
b3B0aW9ucy5ub25faW50ZXJhY3RpdmUgPSBGYWxzZQorICAgICAgICBtb2NrX29wdGlvbnMuYnVp
bGRfc3R5bGUgPSAicmVsZWFzZSIKKyAgICAgICAgbW9ja19vcHRpb25zLmdyb3VwID0gImpzYyIK
KyAgICAgICAgc3RlcCA9IHN0ZXBzLlJ1blRlc3RzKE1vY2tUb29sKGxvZ19leGVjdXRpdmU9VHJ1
ZSksIG1vY2tfb3B0aW9ucykKKyAgICAgICAgdG9vbCA9IE1vY2tUb29sKGxvZ19leGVjdXRpdmU9
VHJ1ZSkKKyAgICAgICAgIyBGSVhNRTogV2Ugc2hvdWxkbid0IHVzZSBhIHJlYWwgcG9ydC1vYmpl
Y3QgaGVyZSwgYnV0IHRoZXJlIGlzIHRvbyBtdWNoIHRvIG1vY2sgYXQgdGhlIG1vbWVudC4KKyAg
ICAgICAgdG9vbC5fZGVwcmVjYXRlZF9wb3J0ID0gRGVwcmVjYXRlZFBvcnQoKQorICAgICAgICBz
dGVwID0gc3RlcHMuUnVuVGVzdHModG9vbCwgbW9ja19vcHRpb25zKQorICAgICAgICBleHBlY3Rl
ZF9sb2dzID0gIiIiTU9DSyBydW5fYW5kX3Rocm93X2lmX2ZhaWw6IFsnVG9vbHMvU2NyaXB0cy9y
dW4tamF2YXNjcmlwdGNvcmUtdGVzdHMnLCAnLS1uby1mYWlsLWZhc3QnLCAnLS1qc29uLW91dHB1
dD1qc2NfdGVzdF9yZXN1bHRzLmpzb24nXSwgY3dkPS9tb2NrLWNoZWNrb3V0CisiIiIKKyAgICAg
ICAgT3V0cHV0Q2FwdHVyZSgpLmFzc2VydF9vdXRwdXRzKHNlbGYsIHN0ZXAucnVuLCBbe31dLCBl
eHBlY3RlZF9sb2dzPWV4cGVjdGVkX2xvZ3MpCisKKyAgICBkZWYgdGVzdF9ydW50ZXN0c19qc2Nf
ZGVidWcoc2VsZik6CisgICAgICAgIG1vY2tfb3B0aW9ucyA9IHNlbGYuX3N0ZXBfb3B0aW9ucygp
CisgICAgICAgIG1vY2tfb3B0aW9ucy5ub25faW50ZXJhY3RpdmUgPSBGYWxzZQorICAgICAgICBt
b2NrX29wdGlvbnMuYnVpbGRfc3R5bGUgPSAiZGVidWciCisgICAgICAgIG1vY2tfb3B0aW9ucy5n
cm91cCA9ICJqc2MiCisgICAgICAgIHRvb2wgPSBNb2NrVG9vbChsb2dfZXhlY3V0aXZlPVRydWUp
CisgICAgICAgICMgRklYTUU6IFdlIHNob3VsZG4ndCB1c2UgYSByZWFsIHBvcnQtb2JqZWN0IGhl
cmUsIGJ1dCB0aGVyZSBpcyB0b28gbXVjaCB0byBtb2NrIGF0IHRoZSBtb21lbnQuCisgICAgICAg
IHRvb2wuX2RlcHJlY2F0ZWRfcG9ydCA9IERlcHJlY2F0ZWRQb3J0KCkKKyAgICAgICAgc3RlcCA9
IHN0ZXBzLlJ1blRlc3RzKHRvb2wsIG1vY2tfb3B0aW9ucykKKyAgICAgICAgZXhwZWN0ZWRfbG9n
cyA9ICIiIk1PQ0sgcnVuX2FuZF90aHJvd19pZl9mYWlsOiBbJ1Rvb2xzL1NjcmlwdHMvcnVuLWph
dmFzY3JpcHRjb3JlLXRlc3RzJywgJy0tbm8tZmFpbC1mYXN0JywgJy0tanNvbi1vdXRwdXQ9anNj
X3Rlc3RfcmVzdWx0cy5qc29uJywgJy0tZGVidWcnXSwgY3dkPS9tb2NrLWNoZWNrb3V0CisiIiIK
KyAgICAgICAgT3V0cHV0Q2FwdHVyZSgpLmFzc2VydF9vdXRwdXRzKHNlbGYsIHN0ZXAucnVuLCBb
e31dLCBleHBlY3RlZF9sb2dzPWV4cGVjdGVkX2xvZ3MpCisKKyAgICBkZWYgdGVzdF9idWlsZF9q
c2NfZGVidWcoc2VsZik6CisgICAgICAgIG1vY2tfb3B0aW9ucyA9IHNlbGYuX3N0ZXBfb3B0aW9u
cygpCisgICAgICAgIG1vY2tfb3B0aW9ucy5ub25faW50ZXJhY3RpdmUgPSBGYWxzZQorICAgICAg
ICBtb2NrX29wdGlvbnMuYnVpbGRfc3R5bGUgPSAiZGVidWciCisgICAgICAgIG1vY2tfb3B0aW9u
cy5idWlsZCA9IFRydWUKKyAgICAgICAgbW9ja19vcHRpb25zLmFyY2hpdGVjdHVyZSA9IFRydWUK
KyAgICAgICAgbW9ja19vcHRpb25zLmdyb3VwID0gImpzYyIKKyAgICAgICAgdG9vbCA9IE1vY2tU
b29sKGxvZ19leGVjdXRpdmU9VHJ1ZSkKKyAgICAgICAgIyBGSVhNRTogV2Ugc2hvdWxkbid0IHVz
ZSBhIHJlYWwgcG9ydC1vYmplY3QgaGVyZSwgYnV0IHRoZXJlIGlzIHRvbyBtdWNoIHRvIG1vY2sg
YXQgdGhlIG1vbWVudC4KKyAgICAgICAgdG9vbC5fZGVwcmVjYXRlZF9wb3J0ID0gRGVwcmVjYXRl
ZFBvcnQoKQorICAgICAgICBzdGVwID0gc3RlcHMuQnVpbGQodG9vbCwgbW9ja19vcHRpb25zKQor
ICAgICAgICBleHBlY3RlZF9sb2dzID0gIiIiQnVpbGRpbmcgV2ViS2l0CitNT0NLIHJ1bl9hbmRf
dGhyb3dfaWZfZmFpbDogWydUb29scy9TY3JpcHRzL2J1aWxkLWpzYycsICctLWRlYnVnJywgJ0FS
Q0hTPVRydWUnXSwgY3dkPS9tb2NrLWNoZWNrb3V0LCBlbnY9eydMQ19BTEwnOiAnQycsICdURVJN
JzogJ25vbmUnLCAnTU9DS19FTlZJUk9OX0NPUFknOiAnMSd9CisiIiIKKyAgICAgICAgT3V0cHV0
Q2FwdHVyZSgpLmFzc2VydF9vdXRwdXRzKHNlbGYsIHN0ZXAucnVuLCBbe31dLCBleHBlY3RlZF9s
b2dzPWV4cGVjdGVkX2xvZ3MpCisKKyAgICBkZWYgdGVzdF9idWlsZF9qc2Moc2VsZik6CisgICAg
ICAgIG1vY2tfb3B0aW9ucyA9IHNlbGYuX3N0ZXBfb3B0aW9ucygpCisgICAgICAgIG1vY2tfb3B0
aW9ucy5ub25faW50ZXJhY3RpdmUgPSBGYWxzZQorICAgICAgICBtb2NrX29wdGlvbnMuYnVpbGRf
c3R5bGUgPSAicmVsZWFzZSIKKyAgICAgICAgbW9ja19vcHRpb25zLmJ1aWxkID0gVHJ1ZQorICAg
ICAgICBtb2NrX29wdGlvbnMuYXJjaGl0ZWN0dXJlID0gVHJ1ZQorICAgICAgICBtb2NrX29wdGlv
bnMuZ3JvdXAgPSAianNjIgorICAgICAgICB0b29sID0gTW9ja1Rvb2wobG9nX2V4ZWN1dGl2ZT1U
cnVlKQorICAgICAgICAjIEZJWE1FOiBXZSBzaG91bGRuJ3QgdXNlIGEgcmVhbCBwb3J0LW9iamVj
dCBoZXJlLCBidXQgdGhlcmUgaXMgdG9vIG11Y2ggdG8gbW9jayBhdCB0aGUgbW9tZW50LgorICAg
ICAgICB0b29sLl9kZXByZWNhdGVkX3BvcnQgPSBEZXByZWNhdGVkUG9ydCgpCisgICAgICAgIHN0
ZXAgPSBzdGVwcy5CdWlsZCh0b29sLCBtb2NrX29wdGlvbnMpCisgICAgICAgIGV4cGVjdGVkX2xv
Z3MgPSAiIiJCdWlsZGluZyBXZWJLaXQKK01PQ0sgcnVuX2FuZF90aHJvd19pZl9mYWlsOiBbJ1Rv
b2xzL1NjcmlwdHMvYnVpbGQtanNjJywgJy0tcmVsZWFzZScsICdBUkNIUz1UcnVlJ10sIGN3ZD0v
bW9jay1jaGVja291dCwgZW52PXsnTENfQUxMJzogJ0MnLCAnVEVSTSc6ICdub25lJywgJ01PQ0tf
RU5WSVJPTl9DT1BZJzogJzEnfQorIiIiCisgICAgICAgIE91dHB1dENhcHR1cmUoKS5hc3NlcnRf
b3V0cHV0cyhzZWxmLCBzdGVwLnJ1biwgW3t9XSwgZXhwZWN0ZWRfbG9ncz1leHBlY3RlZF9sb2dz
KQorCisgICAgZGVmIHRlc3RfcGF0Y2hfcmVsZXZhbnQoc2VsZik6CisgICAgICAgIHNlbGYubWF4
RGlmZiA9IE5vbmUKKyAgICAgICAgbW9ja19vcHRpb25zID0gc2VsZi5fc3RlcF9vcHRpb25zKCkK
KyAgICAgICAgdG9vbCA9IE1vY2tUb29sKGxvZ19leGVjdXRpdmU9VHJ1ZSkKKyAgICAgICAgdG9v
bC5zY20oKS5fbW9ja0NoYW5nZWRGaWxlcyA9IFsiSlNUZXN0cy9Nb2NrRmlsZTEiLCAiQ2hhbmdl
TG9nIl0KKyAgICAgICAgIyBGSVhNRTogV2Ugc2hvdWxkbid0IHVzZSBhIHJlYWwgcG9ydC1vYmpl
Y3QgaGVyZSwgYnV0IHRoZXJlIGlzIHRvbyBtdWNoIHRvIG1vY2sgYXQgdGhlIG1vbWVudC4KKyAg
ICAgICAgdG9vbC5fZGVwcmVjYXRlZF9wb3J0ID0gRGVwcmVjYXRlZFBvcnQoKQorICAgICAgICBz
dGVwID0gc3RlcHMuQ2hlY2tQYXRjaFJlbGV2YW5jZSh0b29sLCBtb2NrX29wdGlvbnMpCisgICAg
ICAgIGV4cGVjdGVkX2xvZ3MgPSAiIiJDaGVja2luZyByZWxldmFuY2Ugb2YgcGF0Y2gKK1RoaXMg
cGF0Y2ggaGFzIHJlbGV2YW50IGNoYW5nZXMuCisiIiIKKyAgICAgICAgT3V0cHV0Q2FwdHVyZSgp
LmFzc2VydF9vdXRwdXRzKHNlbGYsIHN0ZXAucnVuLCBbe31dLCBleHBlY3RlZF9sb2dzPWV4cGVj
dGVkX2xvZ3MpCisKKyAgICBkZWYgdGVzdF9wYXRjaF9yZWxldmFudF9qc2Moc2VsZik6CisgICAg
ICAgIHNlbGYubWF4RGlmZiA9IE5vbmUKKyAgICAgICAgbW9ja19vcHRpb25zID0gc2VsZi5fc3Rl
cF9vcHRpb25zKCkKKyAgICAgICAgbW9ja19vcHRpb25zLmdyb3VwID0gImpzYyIKKyAgICAgICAg
dG9vbCA9IE1vY2tUb29sKGxvZ19leGVjdXRpdmU9VHJ1ZSkKKyAgICAgICAgdG9vbC5zY20oKS5f
bW9ja0NoYW5nZWRGaWxlcyA9IFsiSlNUZXN0cy9Nb2NrRmlsZTEiLCAiQ2hhbmdlTG9nIl0KKyAg
ICAgICAgIyBGSVhNRTogV2Ugc2hvdWxkbid0IHVzZSBhIHJlYWwgcG9ydC1vYmplY3QgaGVyZSwg
YnV0IHRoZXJlIGlzIHRvbyBtdWNoIHRvIG1vY2sgYXQgdGhlIG1vbWVudC4KKyAgICAgICAgdG9v
bC5fZGVwcmVjYXRlZF9wb3J0ID0gRGVwcmVjYXRlZFBvcnQoKQorICAgICAgICBzdGVwID0gc3Rl
cHMuQ2hlY2tQYXRjaFJlbGV2YW5jZSh0b29sLCBtb2NrX29wdGlvbnMpCisgICAgICAgIGV4cGVj
dGVkX2xvZ3MgPSAiIiJDaGVja2luZyByZWxldmFuY2Ugb2YgcGF0Y2gKK1RoaXMgcGF0Y2ggaGFz
IHJlbGV2YW50IGNoYW5nZXMuCisiIiIKKyAgICAgICAgT3V0cHV0Q2FwdHVyZSgpLmFzc2VydF9v
dXRwdXRzKHNlbGYsIHN0ZXAucnVuLCBbe31dLCBleHBlY3RlZF9sb2dzPWV4cGVjdGVkX2xvZ3Mp
CisKKyAgICBkZWYgdGVzdF9wYXRjaF9ub3RfcmVsZXZhbnRfanNjKHNlbGYpOgorICAgICAgICBz
ZWxmLm1heERpZmYgPSBOb25lCisgICAgICAgIG1vY2tfb3B0aW9ucyA9IHNlbGYuX3N0ZXBfb3B0
aW9ucygpCisgICAgICAgIG1vY2tfb3B0aW9ucy5ncm91cCA9ICJqc2MiCisgICAgICAgIHRvb2wg
PSBNb2NrVG9vbChsb2dfZXhlY3V0aXZlPVRydWUpCisgICAgICAgIHRvb2wuc2NtKCkuX21vY2tD
aGFuZ2VkRmlsZXMgPSBbIlRvb2xzL0NoYW5nZUxvZyIsICJUb29scy9TY3JpcHRzL3dlYmtpdHB5
L3Rvb2wvc3RlcHMvc3RlcHNfdW5pdHRlc3QucHkiXQorICAgICAgICAjIEZJWE1FOiBXZSBzaG91
bGRuJ3QgdXNlIGEgcmVhbCBwb3J0LW9iamVjdCBoZXJlLCBidXQgdGhlcmUgaXMgdG9vIG11Y2gg
dG8gbW9jayBhdCB0aGUgbW9tZW50LgorICAgICAgICB0b29sLl9kZXByZWNhdGVkX3BvcnQgPSBE
ZXByZWNhdGVkUG9ydCgpCisgICAgICAgIHN0ZXAgPSBzdGVwcy5DaGVja1BhdGNoUmVsZXZhbmNl
KHRvb2wsIG1vY2tfb3B0aW9ucykKKyAgICAgICAgZXhwZWN0ZWRfbG9ncyA9ICIiIkNoZWNraW5n
IHJlbGV2YW5jZSBvZiBwYXRjaAorVGhpcyBwYXRjaCBkb2VzIG5vdCBoYXZlIHJlbGV2YW50IGNo
YW5nZXMuCisiIiIKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhTY3JpcHRFcnJvcik6
CisgICAgICAgICAgICBPdXRwdXRDYXB0dXJlKCkuYXNzZXJ0X291dHB1dHMoc2VsZiwgc3RlcC5y
dW4sIFt7fV0sIGV4cGVjdGVkX2xvZ3M9ZXhwZWN0ZWRfbG9ncykK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>301020</attachid>
            <date>2017-02-09 00:04:55 -0800</date>
            <delta_ts>2017-02-09 12:24:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-162458-20170209000230.patch</filename>
            <type>text/plain</type>
            <size>86692</size>
            <attacher name="Srinivasan Vijayaraghavan">webkit</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjExNjYyCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYTEzMjZiMTZmODdkYzkzZjY5MjY1MmNhNjc0MmFlOTIz
OGFlN2QyYS4uNzJmMzkzMmRhODI5NGJlNjJlNGU1YzI1MTExODkyOGY4ZmZjNjYxZCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEy
OCBAQAorMjAxNy0wMi0wOCAgU3Jpbml2YXNhbiBWaWpheWFyYWdoYXZhbiAgPHN2aWpheWFyYWdo
YXZhbkBhcHBsZS5jb20+CisKKyAgICAgICAgRVdTIHNob3VsZCBydW4gSmF2YVNjcmlwdENvcmUg
dGVzdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2
MjQ1OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
UXVldWVTdGF0dXNTZXJ2ZXIvY29uZmlnL3F1ZXVlcy5weTogQWRkIGpzYy1ld3MgcXVldWUKKyAg
ICAgICAgKiBRdWV1ZVN0YXR1c1NlcnZlci9oYW5kbGVycy9zdGF0dXNidWJibGUucHk6CisgICAg
ICAgIChTdGF0dXNCdWJibGUuX3Nob3VsZF9zaG93X2J1YmJsZV9mb3IpOiBBZGQgbG9naWMgdG8g
aGlkZSBqc2MtZXdzIGJ1YmJsZSBpZiB0aGUgcGF0Y2ggZG9lcyBub3QgdG91Y2gganNjLgorICAg
ICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNrb3V0L3NjbS9zY21fbW9jay5weToK
KyAgICAgICAgKE1vY2tTQ00uX19pbml0X18pOiBBZGQgX21vY2tDaGFuZ2VkRmlsZXMgdmFyaWFi
bGUuCisgICAgICAgIChNb2NrU0NNLmNoYW5nZWRfZmlsZXMpOiBDaGFuZ2UgdG8gdXNlIF9tb2Nr
Q2hhbmdlZEZpbGVzIHZhcmlhYmxlcy4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1v
bi9jb25maWcvZXdzLmpzb246IEFkZCBjb25maWcgaW5mbyBmb3IgSlNDIEVXUy4KKyAgICAgICAg
KiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvcG9ydHMucHk6IEFkZCBzdXBwb3J0IGZv
ciBKU0MgRVdTIGluIE1hYyBQb3J0LgorICAgICAgICAoRGVwcmVjYXRlZFBvcnQuYnVpbGRfanNj
X2NvbW1hbmQpOiBBZGRlZCAtIGNvbW1hbmQgdG8gYnVpbGQgSlNDIG9ubHkgKHF1aWNrZXIgdGhh
biBidWlsZGluZyBhbGwgb2YgV2ViS2l0KS4KKyAgICAgICAgKERlcHJlY2F0ZWRQb3J0LnJ1bl9q
YXZhc2NyaXB0Y29yZV90ZXN0c19jb21tYW5kKTogQWxsb3cgSlNDIEVXUyB0byBvbmx5IHJ1biBK
U0MgdGVzdHMuCisgICAgICAgIChNYWNQb3J0LnJ1bl93ZWJraXRfdGVzdHNfY29tbWFuZCk6IENo
ZWNrIGZvciBKU0MuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL3Bv
cnRzX21vY2sucHk6CisgICAgICAgIChNb2NrUG9ydC5ydW5famF2YXNjcmlwdGNvcmVfdGVzdHNf
Y29tbWFuZCk6IEFkZCBidWlsZF9zdHlsZSBhcmd1bWVudC4KKyAgICAgICAgKiBTY3JpcHRzL3dl
YmtpdHB5L2NvbW1vbi9jb25maWcvcG9ydHNfdW5pdHRlc3QucHk6CisgICAgICAgIChEZXByZWNh
dGVkUG9ydFRlc3QudGVzdF9tYWNfcG9ydCk6IEFkZCB1bml0IHRlc3RzIGZvciBidWlsZC1qc2Mg
c2hlbGwgY29tbWFuZC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvanNj
dGVzdHJlc3VsdHMucHk6IEFkZGVkLgorICAgICAgICAoSlNDVGVzdFJlc3VsdHMpOiBBZGRlZC4K
KyAgICAgICAgKEpTQ1Rlc3RSZXN1bHRzLmludGVyc2VjdGlvbik6IFJldHVybiBhIEpTQ1Rlc3RS
ZXN1bHRzIG9iamVjdCB3aXRoIGZhaWx1cmVzIGNvbW1vbiB0byBib3RoIGlucHV0IG9iamVjdHMu
CisgICAgICAgIChKU0NUZXN0UmVzdWx0cy5yZXN1bHRzX2Zyb21fc3RyaW5nKTogVXNlIGpzb24g
bGlicmFyeSB0byBwYXJzZSByZXN1bHRzLgorICAgICAgICAoSlNDVGVzdFJlc3VsdHMuX19pbml0
X18pOiBJbml0aWFsaXplIG1lbWJlcnMuCisgICAgICAgIChKU0NUZXN0UmVzdWx0cy5lcXVhbHMp
OiBUaGlzIGVuYWJsZXMgdW5pdCB0ZXN0aW5nLgorICAgICAgICAoSlNDVGVzdFJlc3VsdHMuaXNf
c3Vic2V0KTogQ2hlY2tzIGlmIG9uZSBzZXQgb2YgZmFpbHVyZXMgaXMgYSBzdWJzZXQgb2YgYW5v
dGhlci4KKyAgICAgICAgKEpTQ1Rlc3RSZXN1bHRzLnN0cmVzc190ZXN0X2ZhaWx1cmVzKTogR2V0
dGVyLgorICAgICAgICAoSlNDVGVzdFJlc3VsdHMuYWxsX2FwaV90ZXN0c19wYXNzZWQpOiBHZXR0
ZXIuCisgICAgICAgIChKU0NUZXN0UmVzdWx0cy5hbGxfcGFzc2VkKTogR2V0dGVyLgorICAgICAg
ICAoSlNDVGVzdFJlc3VsdHMuZmFpbGluZ190ZXN0X3Jlc3VsdHMpOiBHZXR0ZXIuIFNvbWUgb2Yg
dGhlc2UgZXhpc3QgZm9yIGludGVyb3BhYmlsaXR5IHJlYXNvbnMuCisgICAgICAgIChKU0NUZXN0
UmVzdWx0cy50ZXN0X3Jlc3VsdHMpOiBHZXR0ZXIuCisgICAgICAgIChKU0NUZXN0UmVzdWx0cy5m
YWlsaW5nX3Rlc3RzKTogR2V0dGVyLgorICAgICAgICAoSlNDVGVzdFJlc3VsdHMuZGlkX2V4Y2Vl
ZF90ZXN0X2ZhaWx1cmVfbGltaXQpOiBHZXR0ZXIuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRw
eS9jb21tb24vbmV0L2pzY3Rlc3RyZXN1bHRzX3VuaXR0ZXN0LnB5OiBBZGRlZC4KKyAgICAgICAg
KEpTQ1Rlc3RSZXN1bHRzVGVzdCk6IENsYXNzIHRvIHRlc3QgSlNDVGVzdFJlc3VsdHMuCisgICAg
ICAgIChKU0NUZXN0UmVzdWx0c1Rlc3QudGVzdF9yZXN1bHRzX2Zyb21fc3RyaW5nKTogVGVzdHMg
cGFyc2luZy4KKyAgICAgICAgKEpTQ1Rlc3RSZXN1bHRzVGVzdC50ZXN0X2ludGVyc2VjdGlvbl9h
cGlfdGVzdHMpOiBVbml0IHRlc3QgZm9yIGludGVyc2VjdGlvbigpIGNsYXNzIG1ldGhvZC4KKyAg
ICAgICAgKEpTQ1Rlc3RSZXN1bHRzVGVzdC50ZXN0X2ludGVyc2VjdGlvbl9zdHJlc3NfdGVzdHMp
OiBVbml0IHRlc3QgZm9yIGludGVyc2VjdGlvbigpIGNsYXNzIG1ldGhvZC4KKyAgICAgICAgKEpT
Q1Rlc3RSZXN1bHRzVGVzdC50ZXN0X2ludGVyc2VjdGlvbl9nZW5lcmFsX2Nhc2UpOiBVbml0IHRl
c3QgZm9yIGludGVyc2VjdGlvbigpIGNsYXNzIG1ldGhvZC4KKyAgICAgICAgKiBTY3JpcHRzL3dl
YmtpdHB5L3Rvb2wvYm90L2Vhcmx5d2FybmluZ3N5c3RlbXRhc2sucHk6CisgICAgICAgIChFYXJs
eVdhcm5pbmdTeXN0ZW1UYXNrLnJ1bik6IEFkZCBjaGVja19wYXRjaF9yZWxldmFuY2Ugc3RlcC4K
KyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2pzY2V3c191bml0dGVzdC5weTog
QWRkZWQuCisgICAgICAgIChNb2NrUGF0Y2hBbmFseXNpc1Rhc2spOiBNb2NrZWQtb3V0IHZlcnNp
b24gb2YgUGF0Y2hBbmFseXNpc1Rhc2sgdGhhdCBkb2Vzbid0IHJ1biBjb21tYW5kcy4KKyAgICAg
ICAgKE1vY2tQYXRjaEFuYWx5c2lzVGFzay5fX2luaXRfXyk6IFNldHMgYXR0cmlidXRlcy4KKyAg
ICAgICAgKE1vY2tQYXRjaEFuYWx5c2lzVGFzay5fdGVzdCk6IE92ZXJyaWRlIHRvIG5vdCBydW4g
Y29tbWFuZC4KKyAgICAgICAgKE1vY2tQYXRjaEFuYWx5c2lzVGFzay5fYnVpbGRfYW5kX3Rlc3Rf
d2l0aG91dF9wYXRjaCk6IE92ZXJyaWRlIHRvIG5vdCBydW4gY29tbWFuZC4KKyAgICAgICAgKE1v
Y2tQYXRjaEFuYWx5c2lzVGFzay52YWxpZGF0ZSk6IEFzc3VtZSBtb2NrZWQgcGF0Y2ggaXMgdmFs
aWQgZm9yIHB1cnBvc2VzIG9mIHRlc3RpbmcgcmV0cnkgbG9naWMuCisgICAgICAgIChNb2NrUGF0
Y2hBbmFseXNpc1Rhc2sudGVzdF9ydW5fY291bnQpOiBTcGVjaWZpYyB0byB0aGUgbW9ja2VkIHZl
cnNpb24sIHRvIHRlc3QgcmV0cnkgbG9naWMuCisgICAgICAgIChNb2NrSlNDRWFybHlXYXJuaW5n
U3lzdGVtKTogTW9ja2VkLW91dCB2ZXJzaW9uIG9mIEFic3RhcmN0RWFybHlXYXJuaW5nU3lzdGVt
IHNvIHdlIGNhbiBwcm92aWRlIHRlc3QgcmVzdWx0cy4KKyAgICAgICAgKE1vY2tKU0NFYXJseVdh
cm5pbmdTeXN0ZW0uX19pbml0X18pOiBTZXRzIGF0dHJpYnV0ZXMsIGFsc28gc2V0cyBncm91cCB0
byBqc2MuCisgICAgICAgIChNb2NrSlNDRWFybHlXYXJuaW5nU3lzdGVtLnRlc3RfcmVzdWx0cyk6
IFJldHVybnMgdGVzdCByZXN1bHRzIHByb3ZpZGVkIGJ5IHVzLCBpbnN0ZWFkIG9mIHVzaW5nIGEg
SlNPTiByZWFkZXIuCisgICAgICAgIChKU0NFYXJseVdhcm5pbmdTeXN0ZW1UZXN0KTogQ2xhc3Mg
dG8gdGVzdCByZXRyeSBsb2dpYyBpbiBiZWxvdyBzaXR1YXRpb25zLgorICAgICAgICAoSlNDRWFy
bHlXYXJuaW5nU3lzdGVtVGVzdC5fY3JlYXRlX3Rhc2spOiBIZWxwZXIgZnVuY3Rpb24gdG8gYWJz
dHJhY3Qgb3V0IGNvbW1vbiBjb2RlLgorICAgICAgICAoSlNDRWFybHlXYXJuaW5nU3lzdGVtVGVz
dC5fcmVzdWx0c19pbmRpY2F0ZV9hbGxfcGFzc2VkKTogRmFsc2UgaWYgaW5wdXQgaXMgTm9uZSBv
ciBoYXMgZmFpbHVyZXMsIGVsc2UgVHJ1ZS4KKyAgICAgICAgKEpTQ0Vhcmx5V2FybmluZ1N5c3Rl
bVRlc3QudGVzdF9zdWNjZXNzX2Nhc2UpOiBDbGVhbiBwYXRjaCBvbiBjbGVhbiB0cmVlLgorICAg
ICAgICAoSlNDRWFybHlXYXJuaW5nU3lzdGVtVGVzdC50ZXN0X3Rlc3RfZmFpbHVyZSk6IEZhaWxl
ZCBwYXRjaCBvbiBjbGVhbiB0cmVlLgorICAgICAgICAoSlNDRWFybHlXYXJuaW5nU3lzdGVtVGVz
dC50ZXN0X2ZpeCk6IFBhdGNoIHRoYXQgZml4ZXMgYWxsIHRyZWUgcmVkbmVzcy4KKyAgICAgICAg
KEpTQ0Vhcmx5V2FybmluZ1N5c3RlbVRlc3QudGVzdF9pbmVmZmVjdGl2ZV9wYXRjaCk6IFBhdGNo
IHRoYXQgaGFzIHNhbWUgZmFpbHVyZXMgYXMgdHJlZS4KKyAgICAgICAgKEpTQ0Vhcmx5V2Fybmlu
Z1N5c3RlbVRlc3QudGVzdF9wYXJ0aWFsbHlfZWZmZWN0aXZlX3BhdGNoKTogUGF0Y2ggZml4ZXMg
c29tZSBmYWlsdXJlcyBidXQgYWRkcyBubyBuZXcgZmFpbHVyZXMuCisgICAgICAgIChKU0NFYXJs
eVdhcm5pbmdTeXN0ZW1UZXN0LnRlc3RfZGlmZmVyZW50X3Rlc3RfZmFpbHVyZXNfaW5fcGF0Y2hf
YW5kX3RyZWUpOiBQYXRjaCBoYXMgc29tZSBmYWlsdXJlcyBub3QgaW4gdHJlZS4KKyAgICAgICAg
KEpTQ0Vhcmx5V2FybmluZ1N5c3RlbVRlc3QudGVzdF9maXJzdF9yZXN1bHRzX2NvdWxkX25vdF9i
ZV9yZWFkKTogUGF0Y2ggcmVzdWx0cyBub3QgcmVhZGFibGUuCisgICAgICAgIChKU0NFYXJseVdh
cm5pbmdTeXN0ZW1UZXN0LnRlc3Rfc2Vjb25kX3Jlc3VsdHNfY291bGRfbm90X2JlX3JlYWQpOiBQ
YXRjaCByZXN1bHRzIG5vdCByZWFkYWJsZSBvbiBzZWNvbmQgcnVuLgorICAgICAgICAoSlNDRWFy
bHlXYXJuaW5nU3lzdGVtVGVzdC50ZXN0X2NsZWFuX3Jlc3VsdHNfY291bGRfbm90X2JlX3JlYWQp
OiBSZXN1bHRzIGZyb20gY2xlYW4gdHJlZSBub3QgcmVhZGFibGUuCisgICAgICAgIChKU0NFYXJs
eVdhcm5pbmdTeXN0ZW1UZXN0LnRlc3RfZmxha3lfcmVzdWx0c19vbl9jbGVhbl90cmVlX3Bhc3Mp
OiBQYXRjaCBoYXMgb25lIGZsYWtlIGFuZCBubyBmYWlsdXJlcy4KKyAgICAgICAgKEpTQ0Vhcmx5
V2FybmluZ1N5c3RlbVRlc3QudGVzdF9mbGFreV9yZXN1bHRzX29uX2NsZWFuX3RyZWVfcGFzc192
Mik6IFBhdGNoIGhhcyBvbmUgZmxha2UgYW5kIG5vIGZhaWx1cmVzLgorICAgICAgICAoSlNDRWFy
bHlXYXJuaW5nU3lzdGVtVGVzdC50ZXN0X2ZsYWt5X3Jlc3VsdHNfb25fY2xlYW5fdHJlZV9mYWls
dXJlKTogUGF0Y2ggaGFzIGZsYWtlcyBhbmQgZmFpbGVkIHRlc3RzLgorICAgICAgICAoSlNDRWFy
bHlXYXJuaW5nU3lzdGVtVGVzdC50ZXN0X2ZsYWt5X3Jlc3VsdHNfb25fcmVkX3RyZWVfcGFzcyk6
IFBhdGNoIGhhcyBzYW1lIGZhaWx1cmVzIGFzIHRyZWUsIHBsdXMgYSBmbGFrZS4KKyAgICAgICAg
KiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2pzY3Rlc3RyZXN1bHRzcmVhZGVyLnB5OiBBZGRl
ZC4KKyAgICAgICAgKEpTQ1Rlc3RSZXN1bHRzUmVhZGVyKTogUmVhZHMgcmVzdWx0cyBmaWxlLgor
ICAgICAgICAoSlNDVGVzdFJlc3VsdHNSZWFkZXIuX19pbml0X18pOiBTZXRzIGF0dHJpYnV0ZXMu
CisgICAgICAgIChKU0NUZXN0UmVzdWx0c1JlYWRlci5fcmVhZF9maWxlX2NvbnRlbnRzKTogUmVh
ZHMgZmlsZS4KKyAgICAgICAgKEpTQ1Rlc3RSZXN1bHRzUmVhZGVyLl9jcmVhdGVfanNjX3Rlc3Rf
cmVzdWx0cyk6IENyZWF0ZXMgYSBKU0NUZXN0UmVzdWx0cyBvYmplY3QuCisgICAgICAgIChKU0NU
ZXN0UmVzdWx0c1JlYWRlci5yZXN1bHRzKTogSW52b2tlcyBfY3JlYXRlX2pzY190ZXN0X3Jlc3Vs
dHMgdG8gcmV0dXJuIGEgSlNDVGVzdFJlc3VsdHMgb2JqZWN0LgorICAgICAgICAqIFNjcmlwdHMv
d2Via2l0cHkvdG9vbC9ib3QvcGF0Y2hhbmFseXNpc3Rhc2sucHk6CisgICAgICAgIChQYXRjaElz
Tm90QXBwbGljYWJsZSk6IEV4Y2VwdGlvbiBmb3Igd2hlbiBwYXRjaCBkb2Vzbid0IGhhdmUgcmVs
ZXZhbnQgY2hhbmdlcy4KKyAgICAgICAgKFBhdGNoQW5hbHlzaXNUYXNrLl9jaGVja19wYXRjaF9y
ZWxldmFuY2UpOiBBZGRlZC4KKyAgICAgICAgKFBhdGNoQW5hbHlzaXNUYXNrLl9idWlsZCk6IENo
ZWNrIGZvciBKU0MuCisgICAgICAgIChQYXRjaEFuYWx5c2lzVGFzay5fYnVpbGRfd2l0aG91dF9w
YXRjaCk6IENoZWNrIGZvciBKU0MuCisgICAgICAgIChQYXRjaEFuYWx5c2lzVGFzay5fdGVzdCk6
IENoZWNrIGZvciBKU0MuCisgICAgICAgIChQYXRjaEFuYWx5c2lzVGFzay5fYnVpbGRfYW5kX3Rl
c3Rfd2l0aG91dF9wYXRjaCk6IENoZWNrIGZvciBKU0MuCisgICAgICAgIChQYXRjaEFuYWx5c2lz
VGFzay5fdGVzdF9wYXRjaCk6IEFkZCByZXRyeSBsb2dpYyBmb3IgSlNDLgorICAgICAgICAqIFNj
cmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9kb3dubG9hZC5weToKKyAgICAgICAgKENoZWNr
UGF0Y2hSZWxldmFuY2UpOiBBZGQgY2hlY2stcGF0Y2gtcmVsZXZhbmNlIGNvbW1hbmQuCisgICAg
ICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Vhcmx5d2FybmluZ3N5c3RlbS5w
eToKKyAgICAgICAgKEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtLl9jcmVhdGVfdGFzayk6IEFi
c3RyYWN0IG91dCB0byBlbmFibGUgbW9ja2luZy4KKyAgICAgICAgKEFic3RyYWN0RWFybHlXYXJu
aW5nU3lzdGVtLmJlZ2luX3dvcmtfcXVldWUpOiBVc2UgSlNDVGVzdFJlc3VsdHNSZWFkZXIgbm90
IExheW91dFRlc3RSZXN1bHRzUmVhZGVyIGluIEpTQyBFV1MuCisgICAgICAgIChBYnN0cmFjdEVh
cmx5V2FybmluZ1N5c3RlbS5yZXZpZXdfcGF0Y2gpOiBIYW5kbGUgUGF0Y2hJc0FwcGxpY2FibGUK
KyAgICAgICAgKEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtLnRlc3RfcmVzdWx0cyk6IF9sYXlv
dXRfdGVzdF9yZXN1bHRzX3JlYWRlciAtPiBfdGVzdF9yZXN1bHRzX3JlYWRlci4KKyAgICAgICAg
KEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtLmFyY2hpdmVfbGFzdF90ZXN0X3Jlc3VsdHMpOiBf
bGF5b3V0X3Rlc3RfcmVzdWx0c19yZWFkZXIgLT4gX3Rlc3RfcmVzdWx0c19yZWFkZXIuCisgICAg
ICAgIChBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbS5ncm91cCk6IFRoaXMgYXR0cmlidXRlIGRl
dGVybWluZXMgdGhlIHR5cGUgb2YgRVdTIChlZy4gSlNDKS4KKyAgICAgICAgKEFic3RyYWN0RWFy
bHlXYXJuaW5nU3lzdGVtLmxvYWRfZXdzX2NsYXNzZXMpOiBBZGQgX2dyb3VwLgorICAgICAgICAq
IFNjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9lYXJseXdhcm5pbmdzeXN0ZW1fdW5pdHRl
c3QucHk6CisgICAgICAgIChBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbVRlc3QudGVzdF9mYWls
aW5nX3Rlc3RzX21lc3NhZ2UuVGVzdEVXUyk6IEFkZCBfZ3JvdXAuCisgICAgICAgIChBYnN0cmFj
dEVhcmx5V2FybmluZ1N5c3RlbVRlc3QudGVzdF9mYWlsaW5nX2pzY190ZXN0c19tZXNzYWdlLlRl
c3RFV1MpOiBBZGRlZCB0ZXN0IGZvciBqc2MgZmFpbHVyZXMgbWVzc2FnZS4KKyAgICAgICAgKEFi
c3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtVGVzdCk6IEFkZCBfZ3JvdXAgdmFyaWFibGUuCisgICAg
ICAgIChFYXJseVdhcm5pbmdTeXN0ZW1UZXN0Ll9kZWZhdWx0X2V4cGVjdGVkX2xvZ3MpOiBBZGQg
Y2hlY2stcGF0Y2gtcmVsZXZhbmNlIHN0ZXAsIGluY29uY2x1c2l2ZSBsb2dzLCBhbmQgZ3JvdXAu
CisgICAgICAgIChFYXJseVdhcm5pbmdTeXN0ZW1UZXN0Ll90ZXN0X2V3cyk6IEFkZCBsb2dzX2Fy
ZV9jb25jbHVzaXZlIG9wdGlvbiB0byBwYXNzIHRocm91Z2ggdG8gZGVmYXVsdF9leHBlY3RlZF9s
b2dzKCkuCisgICAgICAgIChFYXJseVdhcm5pbmdTeXN0ZW1UZXN0LnRlc3RfaW5jb25jbHVzaXZl
X3Rlc3RfcmVzdWx0cyk6IFRlc3Qgbm90IHJlbW92aW5nIHBhdGNoIGZyb20gcXVldWUgaWYgbm90
IGNvbmNsdXNpdmUuCisgICAgICAgIChNb2NrQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0pOiBB
ZGRlZC4KKyAgICAgICAgKE1vY2tBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbS50ZXN0X3Jlc3Vs
dHMpOiBTaW11bGF0ZXMgaW5jb25jbHVzaXZlIHJlc3VsdHMuCisgICAgICAgIChNb2NrQWJzdHJh
Y3RFYXJseVdhcm5pbmdTeXN0ZW0uX2NyZWF0ZV90YXNrKTogVXNlIE1vY2tFYXJseVdhcm5pbmdT
eXN0ZW1UYXNrIChub3QgRWFybHlXYXJuaW5nU3lzdGVtVGFzaykuCisgICAgICAgIChNb2NrRWFy
bHlXYXJuaW5nU3lzdGVtVGFzayk6IEFkZGVkLgorICAgICAgICAoTW9ja0Vhcmx5V2FybmluZ1N5
c3RlbVRhc2suX3Rlc3RfcGF0Y2gpOiBTaW11bGF0ZXMgcnVubmluZyB0ZXN0cyBidXQgbm90IGdl
dHRpbmcgYSBjb25jbHVzaXZlIHJlc3VsdC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rv
b2wvc3RlcHMvX19pbml0X18ucHk6IEFkZCBDaGVja1BhdGNoUmVsZXZhbmNlIGltcG9ydC4KKyAg
ICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvYnVpbGQucHk6CisgICAgICAgIChC
dWlsZC5vcHRpb25zKTogQ2hlY2sgZm9yIEpTQy4KKyAgICAgICAgKEJ1aWxkLmJ1aWxkKTogQ2hl
Y2sgZm9yIEpTQy4KKyAgICAgICAgKEJ1aWxkLnJ1bik6IENoZWNrIGZvciBKU0MuCisgICAgICAg
ICogU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL2NoZWNrcGF0Y2hyZWxldmFuY2UucHk6IEFk
ZGVkLgorICAgICAgICAoQ2hlY2tQYXRjaFJlbGV2YW5jZSk6IEFkZGVkLgorICAgICAgICAoQ2hl
Y2tQYXRjaFJlbGV2YW5jZS5fZG9lc19jb250YWluX2NoYW5nZV9pbl9wYXRocyk6IEFic3RyYWN0
IGZ1bmN0aW9uIHRvIHBlcmZvcm0gcmVnZXggbWF0Y2hpbmcuCisgICAgICAgIChDaGVja1BhdGNo
UmVsZXZhbmNlLnJ1bik6IENoZWNrIGlmIGNoYW5nZWQgZmlsZXMgaW4gcGF0Y2ggYmVsb25nIGlu
IGNlcnRhaW4gZm9sZGVycy4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMv
b3B0aW9ucy5weToKKyAgICAgICAgKE9wdGlvbnMpOiBBZGQgLS1ncm91cCBjb21tYW5kIGxpbmUg
b3B0aW9uLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9ydW50ZXN0cy5w
eToKKyAgICAgICAgKFJ1blRlc3RzLm9wdGlvbnMpOiBBZGQgZ3JvdXAuCisgICAgICAgIChSdW5U
ZXN0cy5ydW4pOiBDaGVjayBmb3IgSlNDLgorICAgICAgICAoUnVuVGVzdHMuX3J1bl93ZWJraXRf
dGVzdHMpOiBDaGVjayBmb3IgSlNDLgorICAgICAgICAoUnVuVGVzdHMpOiBBZGQgX2dyb3VwIGF0
dHJpYnV0ZS4KKyAgICAgICAgKFJ1blRlc3RzLl9ydW5famF2YXNjcmlwdGNvcmVfdGVzdHMpOiBO
ZXcuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3N0ZXBzX3VuaXR0ZXN0
LnB5OiBVbml0IHRlc3RzLgorCiAyMDE3LTAyLTAzICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFz
ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIENvcnJlY3RseSBzZXQgdGhlICJpbldpbmRvdyIgZmxh
ZyBmb3IgVGlsZUNvbnRyb2xsZXJzIHRoYXQgYXJlbid0IHRoZSBwYWdlIHRpbGVzLCBhbmQgY2xh
cmlmeSAidXNpbmdUaWxlZEJhY2tpbmciIGxvZ2ljCmRpZmYgLS1naXQgYS9Ub29scy9RdWV1ZVN0
YXR1c1NlcnZlci9jb25maWcvcXVldWVzLnB5IGIvVG9vbHMvUXVldWVTdGF0dXNTZXJ2ZXIvY29u
ZmlnL3F1ZXVlcy5weQppbmRleCAzNDFkZDA4M2FkZmJiODkwNzE5OGJlZWQ1ZWFiMjE5MzAyNjk4
M2Y1Li4wYTIyZmYzMmM4ZjAzYzg3MTQ5Njk4Nzc0ZjY0MzhlZDVmYWJhZGM3IDEwMDY0NAotLS0g
YS9Ub29scy9RdWV1ZVN0YXR1c1NlcnZlci9jb25maWcvcXVldWVzLnB5CisrKyBiL1Rvb2xzL1F1
ZXVlU3RhdHVzU2VydmVyL2NvbmZpZy9xdWV1ZXMucHkKQEAgLTEsNCArMSw0IEBACi0jIENvcHly
aWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdo
dCAoQykgMjAxNCwgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjIENvcHly
aWdodCAoQykgMjAxMyBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKQEAgLTM2LDYgKzM2LDcgQEAgYWxsX3F1ZXVlX25hbWVzID0gWwogICAgICJndGstd2sy
LWV3cyIsCiAgICAgImlvcy1ld3MiLAogICAgICJpb3Mtc2ltLWV3cyIsCisgICAgImpzYy1ld3Mi
LAogICAgICJtYWMtZXdzIiwKICAgICAibWFjLXdrMi1ld3MiLAogICAgICJtYWMtZGVidWctZXdz
IiwKZGlmZiAtLWdpdCBhL1Rvb2xzL1F1ZXVlU3RhdHVzU2VydmVyL2hhbmRsZXJzL3N0YXR1c2J1
YmJsZS5weSBiL1Rvb2xzL1F1ZXVlU3RhdHVzU2VydmVyL2hhbmRsZXJzL3N0YXR1c2J1YmJsZS5w
eQppbmRleCBjODA1MTRmZjg3ODllZjY5NGI5OTU3MTRlMmViNWQ5NmY4YmNhNzgyLi4yNzNmOGRm
ZjA2YzY5YjQ4MzA1YjkzODMzMGVjNTAyZTAwM2IzYjc1IDEwMDY0NAotLS0gYS9Ub29scy9RdWV1
ZVN0YXR1c1NlcnZlci9oYW5kbGVycy9zdGF0dXNidWJibGUucHkKKysrIGIvVG9vbHMvUXVldWVT
dGF0dXNTZXJ2ZXIvaGFuZGxlcnMvc3RhdHVzYnViYmxlLnB5CkBAIC0xLDQgKzEsNSBAQAogIyBD
b3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29w
eXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTE4MiwxMSArMTgzLDE5IEBAIGNsYXNzIFN0YXR1
c0J1YmJsZSh3ZWJhcHAuUmVxdWVzdEhhbmRsZXIpOgogICAgICAgICByZXR1cm4gYnViYmxlCiAK
ICAgICBkZWYgX3Nob3VsZF9zaG93X2J1YmJsZV9mb3Ioc2VsZiwgYXR0YWNobWVudCwgcXVldWUp
OgotICAgICAgICAgIyBBbnkgcGVuZGluZyBxdWV1ZSBpcyBzaG93bi4KKyAgICAgICAgIyBBbnkg
cGVuZGluZyBxdWV1ZSBpcyBzaG93bi4KICAgICAgICAgaWYgYXR0YWNobWVudC5wb3NpdGlvbl9p
bl9xdWV1ZShxdWV1ZSk6CiAgICAgICAgICAgICByZXR1cm4gVHJ1ZQotICAgICAgICAjIEVXUyBx
dWV1ZXMgYXJlIGFsc28gc2hvd24gd2hlbiBjb21wbGV0ZS4KLSAgICAgICAgcmV0dXJuIGJvb2wo
cXVldWUuaXNfZXdzKCkgYW5kIGF0dGFjaG1lbnQuc3RhdHVzX2Zvcl9xdWV1ZShxdWV1ZSkpCisK
KyAgICAgICAgIyBFV1MgcXVldWVzIGFyZSBhbHNvIHNob3duIHdoZW4gY29tcGxldGUKKyAgICAg
ICAgIyBCdXQgSlNDIEVXUyBidWJibGUgaXMgbm90IHNob3duIGlmIHRoZSBwYXRjaCBpcyBub3Qg
cmVsZXZhbnQgdG8gSlNDLgorICAgICAgICBpZiBub3QgcXVldWUuaXNfZXdzKCk6CisgICAgICAg
ICAgICByZXR1cm4gRmFsc2UKKworICAgICAgICBzdGF0dXMgPSBhdHRhY2htZW50LnN0YXR1c19m
b3JfcXVldWUocXVldWUpCisgICAgICAgIGlmIHF1ZXVlLm5hbWUoKSA9PSAianNjLWV3cyI6Cisg
ICAgICAgICAgICByZXR1cm4gbm90IHN0YXR1cy5tZXNzYWdlLnN0YXJ0c3dpdGgoIlBhdGNoIG5v
dCBhcHBsaWNhYmxlIikKKyAgICAgICAgcmV0dXJuIGJvb2woc3RhdHVzKQogCiAgICAgZGVmIF9i
dWlsZF9idWJibGVzX2Zvcl9hdHRhY2htZW50KHNlbGYsIGF0dGFjaG1lbnQpOgogICAgICAgICBz
aG93X3N1Ym1pdF90b19ld3MgPSBUcnVlCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2NvbW1vbi9jaGVja291dC9zY20vc2NtX21vY2sucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2NvbW1vbi9jaGVja291dC9zY20vc2NtX21vY2sucHkKaW5kZXggYzVkMTBmY2IxODliMGE4
YjUxOWZhNTU2MjUwMjJhNzBjNDg2ZDQ0Yi4uOTc3NGVjOGFlODczYTFiMGI4Mzc2MDcxODA2Njc5
MjE1ODA5ZWVlYyAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hl
Y2tvdXQvc2NtL3NjbV9tb2NrLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9u
L2NoZWNrb3V0L3NjbS9zY21fbW9jay5weQpAQCAtMSw0ICsxLDUgQEAKICMgQ29weXJpZ2h0IChD
KSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykg
MjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogIyBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMgYXJlCkBAIC0zNyw2ICszOCw3IEBAIGNsYXNzIE1vY2tTQ00ob2JqZWN0KToKICAg
ICAgICAgc2VsZi5hZGRlZF9wYXRocyA9IHNldCgpCiAgICAgICAgIHNlbGYuX2ZpbGVzeXN0ZW0g
PSBmaWxlc3lzdGVtIG9yIE1vY2tGaWxlU3lzdGVtKCkKICAgICAgICAgc2VsZi5fZXhlY3V0aXZl
ID0gZXhlY3V0aXZlIG9yIE1vY2tFeGVjdXRpdmUoKQorICAgICAgICBzZWxmLl9tb2NrQ2hhbmdl
ZEZpbGVzID0gWyJNb2NrRmlsZTEiXQogCiAgICAgZGVmIGFkZChzZWxmLCBkZXN0aW5hdGlvbl9w
YXRoKToKICAgICAgICAgc2VsZi5hZGRfbGlzdChbZGVzdGluYXRpb25fcGF0aF0pCkBAIC03MSw3
ICs3Myw3IEBAIGNsYXNzIE1vY2tTQ00ob2JqZWN0KToKICAgICAgICAgcmV0dXJuIHNlbGYuX2Zp
bGVzeXN0ZW0uam9pbihzZWxmLmNoZWNrb3V0X3Jvb3QsICpjb21wcykKIAogICAgIGRlZiBjaGFu
Z2VkX2ZpbGVzKHNlbGYsIGdpdF9jb21taXQ9Tm9uZSk6Ci0gICAgICAgIHJldHVybiBbIk1vY2tG
aWxlMSJdCisgICAgICAgIHJldHVybiBzZWxmLl9tb2NrQ2hhbmdlZEZpbGVzCiAKICAgICBkZWYg
Y2hhbmdlZF9maWxlc19mb3JfcmV2aXNpb24oc2VsZiwgcmV2aXNpb24pOgogICAgICAgICByZXR1
cm4gWyJNb2NrRmlsZTEiXQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21t
b24vY29uZmlnL2V3cy5qc29uIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmln
L2V3cy5qc29uCmluZGV4IDM1ZDQ5ODVhYjBmOTNkMTI3YjM3MjFlNDYwMWNkNmQ4OWRmY2NmM2Mu
LmU1MzQwZmU1YzNjMjFhZTgxYWQxZWY3ZTAzZjdmYjgxZjM4MzljZmYgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9ld3MuanNvbgorKysgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvZXdzLmpzb24KQEAgLTUwLDUgKzUwLDExIEBA
CiAgICAgICAgICJwb3J0IjogIm1hYyIsCiAgICAgICAgICJuYW1lIjogIm1hYy0zMmJpdC1ld3Mi
LAogICAgICAgICAiYXJjaGl0ZWN0dXJlIjogImkzODYiCisgICAgfSwKKyAgICAiSlNDIEVXUyI6
IHsKKyAgICAgICAgInBvcnQiOiAibWFjIiwKKyAgICAgICAgIm5hbWUiOiAianNjLWV3cyIsCisg
ICAgICAgICJncm91cCI6ICJqc2MiLAorICAgICAgICAicnVuVGVzdHMiOiB0cnVlCiAgICAgfQog
fQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL3BvcnRz
LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL3BvcnRzLnB5CmluZGV4
IGEwZDUwZGNiNmVhMGI1ZmRlMGIzYzE3ZWYxNTljZWFmZWUxYTJlOTguLmQzN2VkOWQxYzVlMjU1
MGU0ODgzNGU3ZWYwMGJhZTRjMjRjYmQ3ODQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvY29tbW9uL2NvbmZpZy9wb3J0cy5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2NvbW1vbi9jb25maWcvcG9ydHMucHkKQEAgLTEsNiArMSw2IEBACiAjIENvcHlyaWdodCAoQykg
MjAwOSwgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMgQ29weXJpZ2h0IChDKSAy
MDEzIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KLSMgQ29w
eXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJp
Z2h0IChDKSAyMDE1LCAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMg
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTEwMyw4ICsxMDMsMjEgQEAgY2xhc3MgRGVw
cmVjYXRlZFBvcnQob2JqZWN0KToKICAgICAgICAgICAgIGNvbW1hbmQuYXBwZW5kKCItLXJlbGVh
c2UiKQogICAgICAgICByZXR1cm4gY29tbWFuZAogCi0gICAgZGVmIHJ1bl9qYXZhc2NyaXB0Y29y
ZV90ZXN0c19jb21tYW5kKHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi5zY3JpcHRfc2hlbGxf
Y29tbWFuZCgicnVuLWphdmFzY3JpcHRjb3JlLXRlc3RzIikKKyAgICBkZWYgYnVpbGRfanNjX2Nv
bW1hbmQoc2VsZiwgYnVpbGRfc3R5bGU9Tm9uZSk6CisgICAgICAgIGNvbW1hbmQgPSBzZWxmLnNj
cmlwdF9zaGVsbF9jb21tYW5kKCJidWlsZC1qc2MiKQorICAgICAgICBpZiBidWlsZF9zdHlsZSA9
PSAiZGVidWciOgorICAgICAgICAgICAgY29tbWFuZC5hcHBlbmQoIi0tZGVidWciKQorICAgICAg
ICBpZiBidWlsZF9zdHlsZSA9PSAicmVsZWFzZSI6CisgICAgICAgICAgICBjb21tYW5kLmFwcGVu
ZCgiLS1yZWxlYXNlIikKKyAgICAgICAgcmV0dXJuIGNvbW1hbmQKKworICAgIGRlZiBydW5famF2
YXNjcmlwdGNvcmVfdGVzdHNfY29tbWFuZChzZWxmLCBidWlsZF9zdHlsZT1Ob25lKToKKyAgICAg
ICAgY29tbWFuZCA9IHNlbGYuc2NyaXB0X3NoZWxsX2NvbW1hbmQoInJ1bi1qYXZhc2NyaXB0Y29y
ZS10ZXN0cyIpCisgICAgICAgIGNvbW1hbmQuYXBwZW5kKCItLW5vLWZhaWwtZmFzdCIpCisgICAg
ICAgIGNvbW1hbmQuYXBwZW5kKCItLWpzb24tb3V0cHV0PWpzY190ZXN0X3Jlc3VsdHMuanNvbiIp
CisgICAgICAgIGlmIChidWlsZF9zdHlsZSA9PSAiZGVidWciKToKKyAgICAgICAgICAgIGNvbW1h
bmQuYXBwZW5kKCItLWRlYnVnIikKKyAgICAgICAgcmV0dXJuIGNvbW1hbmQKIAogICAgIGRlZiBy
dW5fd2Via2l0X3Rlc3RzX2NvbW1hbmQoc2VsZiwgYnVpbGRfc3R5bGU9Tm9uZSk6CiAgICAgICAg
IGNvbW1hbmQgPSBzZWxmLnNjcmlwdF9zaGVsbF9jb21tYW5kKCJydW4td2Via2l0LXRlc3RzIikK
QEAgLTE1MCw3ICsxNjMsMTAgQEAgY2xhc3MgSU9TU2ltdWxhdG9yV0syUG9ydChEZXByZWNhdGVk
UG9ydCk6CiBjbGFzcyBNYWNQb3J0KERlcHJlY2F0ZWRQb3J0KToKICAgICBwb3J0X2ZsYWdfbmFt
ZSA9ICJtYWMiCiAKLSAgICBkZWYgcnVuX3dlYmtpdF90ZXN0c19jb21tYW5kKHNlbGYsIGJ1aWxk
X3N0eWxlPU5vbmUpOgorICAgIGRlZiBydW5fd2Via2l0X3Rlc3RzX2NvbW1hbmQoc2VsZiwgYnVp
bGRfc3R5bGU9Tm9uZSwgdGVzdF9zdWl0ZT1Ob25lKToKKyAgICAgICAgaWYgKHRlc3Rfc3VpdGUg
PT0gImpzYyIpOgorICAgICAgICAgICAgcmV0dXJuIHN1cGVyKE1hY1BvcnQsIHNlbGYpLnJ1bl9q
YXZhc2NyaXB0Y29yZV90ZXN0c19jb21tYW5kKGJ1aWxkX3N0eWxlKQorCiAgICAgICAgIGNvbW1h
bmQgPSBzdXBlcihNYWNQb3J0LCBzZWxmKS5ydW5fd2Via2l0X3Rlc3RzX2NvbW1hbmQoYnVpbGRf
c3R5bGUpCiAgICAgICAgIGNvbW1hbmQuYXBwZW5kKCItLWR1bXAtcmVuZGVyLXRyZWUiKQogICAg
ICAgICByZXR1cm4gY29tbWFuZApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9j
b21tb24vY29uZmlnL3BvcnRzX21vY2sucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1v
bi9jb25maWcvcG9ydHNfbW9jay5weQppbmRleCA2MTc0M2RlYmI0ZWJlZTM3NTZiYTdjMjBmMDE0
ODIzNTQwZDJkY2E2Li5jYTFiMThhMzEwNjg0MjNiZGNlMDdjZGViN2Q3ZDdkMTk5ZjQwMGFiIDEw
MDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvcG9ydHNfbW9j
ay5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvcG9ydHNfbW9j
ay5weQpAQCAtMSw0ICsxLDUgQEAKICMgQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogIyBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC00OSw3
ICs1MCw3IEBAIGNsYXNzIE1vY2tQb3J0KG9iamVjdCk6CiAgICAgZGVmIHJ1bl9wZXJsX3VuaXR0
ZXN0c19jb21tYW5kKHNlbGYpOgogICAgICAgICByZXR1cm4gWydtb2NrLXRlc3Qtd2Via2l0cGVy
bCddCiAKLSAgICBkZWYgcnVuX2phdmFzY3JpcHRjb3JlX3Rlc3RzX2NvbW1hbmQoc2VsZik6Cisg
ICAgZGVmIHJ1bl9qYXZhc2NyaXB0Y29yZV90ZXN0c19jb21tYW5kKHNlbGYsIGJ1aWxkX3N0eWxl
PU5vbmUpOgogICAgICAgICByZXR1cm4gWydtb2NrLXJ1bi1qYXZhY3JpcHRjb3JlLXRlc3RzJ10K
IAogICAgIGRlZiBydW5fd2Via2l0X3Rlc3RzX2NvbW1hbmQoc2VsZiwgYnVpbGRfc3R5bGU9Tm9u
ZSk6CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvcG9y
dHNfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvcG9y
dHNfdW5pdHRlc3QucHkKaW5kZXggMDhkNTQ1MjM2ZGEzNzAzZTkyOGYxY2VlZDFkZDkxMDJkOWI4
NjIyZS4uMTZjZDdmOTI4MjUxYmJjOTk2Y2I2NDZlNDM1OWQ3M2ZkYjUzNWIyNiAxMDA2NDQKLS0t
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL3BvcnRzX3VuaXR0ZXN0LnB5
CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9wb3J0c191bml0dGVz
dC5weQpAQCAtMSw0ICsxLDUgQEAKICMgQ29weXJpZ2h0IChjKSAyMDA5LCBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtMzks
NiArNDAsMTAgQEAgY2xhc3MgRGVwcmVjYXRlZFBvcnRUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToK
ICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChNYWNQb3J0KCkuYnVpbGRfd2Via2l0X2NvbW1hbmQo
YnVpbGRfc3R5bGU9ImRlYnVnIiksIERlcHJlY2F0ZWRQb3J0KCkuc2NyaXB0X3NoZWxsX2NvbW1h
bmQoImJ1aWxkLXdlYmtpdCIpICsgWyItLWRlYnVnIl0pCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoTWFjUG9ydCgpLmJ1aWxkX3dlYmtpdF9jb21tYW5kKGJ1aWxkX3N0eWxlPSJyZWxlYXNlIiks
IERlcHJlY2F0ZWRQb3J0KCkuc2NyaXB0X3NoZWxsX2NvbW1hbmQoImJ1aWxkLXdlYmtpdCIpICsg
WyItLXJlbGVhc2UiXSkKIAorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE1hY1BvcnQoKS5idWls
ZF9qc2NfY29tbWFuZCgpLCBEZXByZWNhdGVkUG9ydCgpLnNjcmlwdF9zaGVsbF9jb21tYW5kKCJi
dWlsZC1qc2MiKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChNYWNQb3J0KCkuYnVpbGRfanNj
X2NvbW1hbmQoYnVpbGRfc3R5bGU9InJlbGVhc2UiKSwgRGVwcmVjYXRlZFBvcnQoKS5zY3JpcHRf
c2hlbGxfY29tbWFuZCgiYnVpbGQtanNjIikgKyBbIi0tcmVsZWFzZSJdKQorICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKE1hY1BvcnQoKS5idWlsZF9qc2NfY29tbWFuZChidWlsZF9zdHlsZT0iZGVi
dWciKSwgRGVwcmVjYXRlZFBvcnQoKS5zY3JpcHRfc2hlbGxfY29tbWFuZCgiYnVpbGQtanNjIikg
KyBbIi0tZGVidWciXSkKKwogICAgIGRlZiB0ZXN0X2d0a193azJfcG9ydChzZWxmKToKICAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChHdGtXSzJQb3J0KCkuZmxhZygpLCAiLS1wb3J0PWd0ay13azIi
KQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKEd0a1dLMlBvcnQoKS5ydW5fd2Via2l0X3Rlc3Rz
X2NvbW1hbmQoKSwgRGVwcmVjYXRlZFBvcnQoKS5zY3JpcHRfc2hlbGxfY29tbWFuZCgicnVuLXdl
YmtpdC10ZXN0cyIpICsgWyItLWd0ayJdKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9jb21tb24vbmV0L2pzY3Rlc3RyZXN1bHRzLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9jb21tb24vbmV0L2pzY3Rlc3RyZXN1bHRzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJlNmViMGUzMGY2NzM2
YmE5OTQyY2YwZjhjMTY4ZDMyMTMyYWE3YjUKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvanNjdGVzdHJlc3VsdHMucHkKQEAgLTAsMCArMSw4NiBA
QAorIyBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
IworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUgorIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LAorIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitpbXBvcnQganNvbgor
aW1wb3J0IGxvZ2dpbmcKKworX2xvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKQorCisK
K2NsYXNzIEpTQ1Rlc3RSZXN1bHRzKG9iamVjdCk6CisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVm
IGludGVyc2VjdGlvbihjbHMsIGZpcnN0LCBzZWNvbmQpOgorICAgICAgICBpbnRlcnNlY3Rpb25f
YXBpX3Rlc3RzX3Bhc3NlZCA9IGZpcnN0Ll9hbGxfYXBpX3Rlc3RzX3Bhc3NlZCBvciBzZWNvbmQu
X2FsbF9hcGlfdGVzdHNfcGFzc2VkCisgICAgICAgIGludGVyc2VjdGlvbl9zdHJlc3NfdGVzdF9m
YWlsdXJlcyA9IGxpc3Qoc2V0KGZpcnN0Ll9zdHJlc3NfdGVzdF9mYWlsdXJlcykgJiBzZXQoc2Vj
b25kLl9zdHJlc3NfdGVzdF9mYWlsdXJlcykpCisgICAgICAgIHJldHVybiBjbHMoaW50ZXJzZWN0
aW9uX2FwaV90ZXN0c19wYXNzZWQsIGludGVyc2VjdGlvbl9zdHJlc3NfdGVzdF9mYWlsdXJlcykK
KworICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiByZXN1bHRzX2Zyb21fc3RyaW5nKGNscywgc3Ry
aW5nKToKKyAgICAgICAgaWYgbm90IHN0cmluZzoKKyAgICAgICAgICAgIHJldHVybiBOb25lCisK
KyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcGFyc2VkX3Jlc3VsdHMgPSBqc29uLmxvYWRzKHN0
cmluZykKKyAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3I6CisgICAgICAgICAgICByZXR1cm4gTm9u
ZQorCisgICAgICAgIGlmICdhbGxBcGlUZXN0c1Bhc3NlZCcgbm90IGluIHBhcnNlZF9yZXN1bHRz
IG9yICdzdHJlc3NUZXN0RmFpbHVyZXMnIG5vdCBpbiBwYXJzZWRfcmVzdWx0czoKKyAgICAgICAg
ICAgIHJldHVybiBOb25lCisKKyAgICAgICAgcmV0dXJuIGNscyhwYXJzZWRfcmVzdWx0c1snYWxs
QXBpVGVzdHNQYXNzZWQnXSwgcGFyc2VkX3Jlc3VsdHNbJ3N0cmVzc1Rlc3RGYWlsdXJlcyddKQor
CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGFsbF9hcGlfdGVzdHNfcGFzc2VkLCBzdHJlc3NfdGVz
dF9mYWlsdXJlcyk6CisgICAgICAgIHNlbGYuX2FsbF9hcGlfdGVzdHNfcGFzc2VkID0gYWxsX2Fw
aV90ZXN0c19wYXNzZWQKKyAgICAgICAgc2VsZi5fc3RyZXNzX3Rlc3RfZmFpbHVyZXMgPSBzdHJl
c3NfdGVzdF9mYWlsdXJlcworCisgICAgICAgIHNlbGYuX3Rlc3RfcmVzdWx0cyA9IHN0cmVzc190
ZXN0X2ZhaWx1cmVzWzpdCisgICAgICAgIGlmIG5vdCBzZWxmLl9hbGxfYXBpX3Rlc3RzX3Bhc3Nl
ZDoKKyAgICAgICAgICAgIHNlbGYuX3Rlc3RfcmVzdWx0cy5hcHBlbmQoImFwaVRlc3RzIikKKwor
ICAgIGRlZiBlcXVhbHMoc2VsZiwgb3RoZXIpOgorICAgICAgICByZXR1cm4gc2VsZi5fYWxsX2Fw
aV90ZXN0c19wYXNzZWQgPT0gb3RoZXIuX2FsbF9hcGlfdGVzdHNfcGFzc2VkIGFuZCBcCisgICAg
ICAgICAgICAgICBzZXQoc2VsZi5fc3RyZXNzX3Rlc3RfZmFpbHVyZXMpID09IHNldChvdGhlci5f
c3RyZXNzX3Rlc3RfZmFpbHVyZXMpCisKKyAgICBkZWYgaXNfc3Vic2V0KHNlbGYsIG90aGVyKToK
KyAgICAgICAgcmV0dXJuIHNldChzZWxmLnRlc3RfcmVzdWx0cygpKSA8PSBzZXQob3RoZXIudGVz
dF9yZXN1bHRzKCkpCisKKyAgICBkZWYgc3RyZXNzX3Rlc3RfZmFpbHVyZXMoc2VsZik6CisgICAg
ICAgIHJldHVybiBzZWxmLl9zdHJlc3NfdGVzdF9mYWlsdXJlcworCisgICAgZGVmIGFsbF9hcGlf
dGVzdHNfcGFzc2VkKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5fYWxsX2FwaV90ZXN0c19w
YXNzZWQKKworICAgIGRlZiBhbGxfcGFzc2VkKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5f
YWxsX2FwaV90ZXN0c19wYXNzZWQgYW5kIG5vdCBzZWxmLl9zdHJlc3NfdGVzdF9mYWlsdXJlcwor
CisgICAgZGVmIGZhaWxpbmdfdGVzdF9yZXN1bHRzKHNlbGYpOgorICAgICAgICByZXR1cm4gc2Vs
Zi5zdHJlc3NfdGVzdF9mYWlsdXJlcygpCisKKyAgICBkZWYgdGVzdF9yZXN1bHRzKHNlbGYpOgor
ICAgICAgICByZXR1cm4gc2VsZi5fdGVzdF9yZXN1bHRzCisKKyAgICBkZWYgZmFpbGluZ190ZXN0
cyhzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX3Rlc3RfcmVzdWx0cworCisgICAgIyBObyBk
ZWZpbmVkIGZhaWx1cmUgbGltaXQgZm9yIEpTQy4KKyAgICBkZWYgZGlkX2V4Y2VlZF90ZXN0X2Zh
aWx1cmVfbGltaXQoc2VsZik6CisgICAgICAgIHJldHVybiBGYWxzZQpkaWZmIC0tZ2l0IGEvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2pzY3Rlc3RyZXN1bHRzX3VuaXR0ZXN0LnB5
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2pzY3Rlc3RyZXN1bHRzX3VuaXR0
ZXN0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjE4ZWY0NDRhNTY4ZTQ2MDg4MDQ1OTE3NmM1ZmZhYzA2ZjE1ZjE3
YjYKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQv
anNjdGVzdHJlc3VsdHNfdW5pdHRlc3QucHkKQEAgLTAsMCArMSw3NSBAQAorIyBDb3B5cmlnaHQg
KEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAg
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycgQU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgor
IyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitpbXBvcnQgdW5pdHRlc3QKKworZnJvbSB3ZWJr
aXRweS5jb21tb24ubmV0LmpzY3Rlc3RyZXN1bHRzIGltcG9ydCBKU0NUZXN0UmVzdWx0cworCisK
K2NsYXNzIEpTQ1Rlc3RSZXN1bHRzVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CisgICAgZGVmIHRl
c3RfcmVzdWx0c19mcm9tX3N0cmluZyhzZWxmKToKKyAgICAgICAgbm9uZV9pdGVtID0gTm9uZQor
ICAgICAgICBlbXB0eV9zdHJpbmcgPSAiIgorICAgICAgICBpbnZhbGlkX2pzb24gPSAneyJhbGxB
cGlUZXN0c1Bhc3NlZCI6JworICAgICAgICBpbmNvbXBsZXRlX2pzb25fdjEgPSAneyJhbGxBcGlU
ZXN0c1Bhc3NlZCI6IHRydWV9JworICAgICAgICBpbmNvbXBsZXRlX2pzb25fdjIgPSAneyJzdHJl
c3NUZXN0RmFpbHVyZXMiOltdfScKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCBKU0NU
ZXN0UmVzdWx0cy5yZXN1bHRzX2Zyb21fc3RyaW5nKG5vbmVfaXRlbSkpCisgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoTm9uZSwgSlNDVGVzdFJlc3VsdHMucmVzdWx0c19mcm9tX3N0cmluZyhlbXB0
eV9zdHJpbmcpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIEpTQ1Rlc3RSZXN1bHRz
LnJlc3VsdHNfZnJvbV9zdHJpbmcoaW52YWxpZF9qc29uKSkKKyAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChOb25lLCBKU0NUZXN0UmVzdWx0cy5yZXN1bHRzX2Zyb21fc3RyaW5nKGluY29tcGxldGVf
anNvbl92MSkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgSlNDVGVzdFJlc3VsdHMu
cmVzdWx0c19mcm9tX3N0cmluZyhpbmNvbXBsZXRlX2pzb25fdjIpKQorCisgICAgICAgIG5vX2Zh
aWx1cmVzX3N0cmluZyA9ICd7ImFsbEFwaVRlc3RzUGFzc2VkIjogdHJ1ZSwgInN0cmVzc1Rlc3RG
YWlsdXJlcyI6W119JworICAgICAgICBub19mYWlsdXJlc19yZXN1bHRzID0gSlNDVGVzdFJlc3Vs
dHMoVHJ1ZSwgW10pCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShub19mYWlsdXJlc19yZXN1bHRz
LmVxdWFscyhKU0NUZXN0UmVzdWx0cy5yZXN1bHRzX2Zyb21fc3RyaW5nKG5vX2ZhaWx1cmVzX3N0
cmluZykpKQorCisgICAgICAgIGFwaV90ZXN0X2ZhaWx1cmVzX3N0cmluZyA9ICd7ImFsbEFwaVRl
c3RzUGFzc2VkIjogZmFsc2UsICJzdHJlc3NUZXN0RmFpbHVyZXMiOltdfScKKyAgICAgICAgYXBp
X3Rlc3RfZmFpbHVyZXNfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKEZhbHNlLCBbXSkKKyAgICAg
ICAgc2VsZi5hc3NlcnRUcnVlKGFwaV90ZXN0X2ZhaWx1cmVzX3Jlc3VsdHMuZXF1YWxzKEpTQ1Rl
c3RSZXN1bHRzLnJlc3VsdHNfZnJvbV9zdHJpbmcoYXBpX3Rlc3RfZmFpbHVyZXNfc3RyaW5nKSkp
CisKKyAgICAgICAgbWFueV9mYWlsdXJlc19zdHJpbmcgPSAneyJhbGxBcGlUZXN0c1Bhc3NlZCI6
IGZhbHNlLCAic3RyZXNzVGVzdEZhaWx1cmVzIjpbImVzNi55YW1sL2VzNi90eXBlZF9hcnJheXNf
SW50MTZBcnJheS5qcy5kZWZhdWx0IiwgImVzNi55YW1sL2VzNi90eXBlZF9hcnJheXNfSW50OEFy
cmF5LmpzLmRlZmF1bHQiXX0nCisgICAgICAgIG1hbnlfZmFpbHVyZXNfcmVzdWx0cyA9IEpTQ1Rl
c3RSZXN1bHRzKEZhbHNlLCBbImVzNi55YW1sL2VzNi90eXBlZF9hcnJheXNfSW50MTZBcnJheS5q
cy5kZWZhdWx0IiwgImVzNi55YW1sL2VzNi90eXBlZF9hcnJheXNfSW50OEFycmF5LmpzLmRlZmF1
bHQiXSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG1hbnlfZmFpbHVyZXNfcmVzdWx0cy5lcXVh
bHMoSlNDVGVzdFJlc3VsdHMucmVzdWx0c19mcm9tX3N0cmluZyhtYW55X2ZhaWx1cmVzX3N0cmlu
ZykpKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2Uobm9fZmFpbHVyZXNfcmVzdWx0cyA9PSBh
cGlfdGVzdF9mYWlsdXJlc19yZXN1bHRzKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGFwaV90
ZXN0X2ZhaWx1cmVzX3Jlc3VsdHMgPT0gbWFueV9mYWlsdXJlc19yZXN1bHRzKQorCisgICAgZGVm
IHRlc3RfaW50ZXJzZWN0aW9uX2FwaV90ZXN0cyhzZWxmKToKKyAgICAgICAgcmVzdWx0czEgPSBK
U0NUZXN0UmVzdWx0cyhGYWxzZSwgW10pCisgICAgICAgIHJlc3VsdHMyID0gSlNDVGVzdFJlc3Vs
dHMoVHJ1ZSwgW10pCisKKyAgICAgICAgZXhwZWN0ZWRfaW50ZXJzZWN0aW9uID0gSlNDVGVzdFJl
c3VsdHMoVHJ1ZSwgW10pCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShleHBlY3RlZF9pbnRlcnNl
Y3Rpb24uZXF1YWxzKEpTQ1Rlc3RSZXN1bHRzLmludGVyc2VjdGlvbihyZXN1bHRzMSwgcmVzdWx0
czIpKSkKKworICAgIGRlZiB0ZXN0X2ludGVyc2VjdGlvbl9zdHJlc3NfdGVzdHMoc2VsZik6Cisg
ICAgICAgIHJlc3VsdHMxID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgWydmYWlsdXJlMScsICdmYWls
dXJlMiddKQorICAgICAgICByZXN1bHRzMiA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFsnZmFpbHVy
ZTEnLCAnZmFpbHVyZTMnXSkKKworICAgICAgICBleHBlY3RlZF9pbnRlcnNlY3Rpb24gPSBKU0NU
ZXN0UmVzdWx0cyhUcnVlLCBbJ2ZhaWx1cmUxJ10pCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShl
eHBlY3RlZF9pbnRlcnNlY3Rpb24uZXF1YWxzKEpTQ1Rlc3RSZXN1bHRzLmludGVyc2VjdGlvbihy
ZXN1bHRzMSwgcmVzdWx0czIpKSkKKworICAgIGRlZiB0ZXN0X2ludGVyc2VjdGlvbl9nZW5lcmFs
X2Nhc2Uoc2VsZik6CisgICAgICAgIHJlc3VsdHMxID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgWydm
YWlsdXJlMScsICdmYWlsdXJlMiddKQorICAgICAgICByZXN1bHRzMiA9IEpTQ1Rlc3RSZXN1bHRz
KEZhbHNlLCBbJ2ZhaWx1cmUxJ10pCisKKyAgICAgICAgZXhwZWN0ZWRfaW50ZXJzZWN0aW9uID0g
SlNDVGVzdFJlc3VsdHMoVHJ1ZSwgWydmYWlsdXJlMSddKQorICAgICAgICBzZWxmLmFzc2VydFRy
dWUoZXhwZWN0ZWRfaW50ZXJzZWN0aW9uLmVxdWFscyhKU0NUZXN0UmVzdWx0cy5pbnRlcnNlY3Rp
b24ocmVzdWx0czEsIHJlc3VsdHMyKSkpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L3Rvb2wvYm90L2Vhcmx5d2FybmluZ3N5c3RlbXRhc2sucHkgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L3Rvb2wvYm90L2Vhcmx5d2FybmluZ3N5c3RlbXRhc2sucHkKaW5kZXggZmMzMDhiNDNk
MWQxNzJhYjczYjBlM2FmODBkMWIxMzlkZDNjMTAzMi4uZWNmYWNkMDExYmU4ODNiNGJiMWU1Yzdk
N2RmZmRiZGNiNDU5ZGUzNSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29s
L2JvdC9lYXJseXdhcm5pbmdzeXN0ZW10YXNrLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvdG9vbC9ib3QvZWFybHl3YXJuaW5nc3lzdGVtdGFzay5weQpAQCAtMSw0ICsxLDUgQEAKICMg
Q29weXJpZ2h0IChjKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENv
cHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC0yNiw3ICsyNyw3IEBACiAjIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgogCi1mcm9tIHdlYmtpdHB5LnRvb2wuYm90LnBhdGNoYW5hbHlzaXN0
YXNrIGltcG9ydCBQYXRjaEFuYWx5c2lzVGFzaywgUGF0Y2hBbmFseXNpc1Rhc2tEZWxlZ2F0ZSwg
VW5hYmxlVG9BcHBseVBhdGNoLCBQYXRjaElzTm90VmFsaWQKK2Zyb20gd2Via2l0cHkudG9vbC5i
b3QucGF0Y2hhbmFseXNpc3Rhc2sgaW1wb3J0IFBhdGNoQW5hbHlzaXNUYXNrLCBQYXRjaEFuYWx5
c2lzVGFza0RlbGVnYXRlLCBVbmFibGVUb0FwcGx5UGF0Y2gsIFBhdGNoSXNOb3RWYWxpZCwgUGF0
Y2hJc05vdEFwcGxpY2FibGUKIAogCiBjbGFzcyBFYXJseVdhcm5pbmdTeXN0ZW1UYXNrRGVsZWdh
dGUoUGF0Y2hBbmFseXNpc1Rhc2tEZWxlZ2F0ZSk6CkBAIC01OCw2ICs1OSw4IEBAIGNsYXNzIEVh
cmx5V2FybmluZ1N5c3RlbVRhc2soUGF0Y2hBbmFseXNpc1Rhc2spOgogICAgICAgICAgICAgcmV0
dXJuIEZhbHNlCiAgICAgICAgIGlmIG5vdCBzZWxmLl9hcHBseSgpOgogICAgICAgICAgICAgcmFp
c2UgVW5hYmxlVG9BcHBseVBhdGNoKHNlbGYuX3BhdGNoKQorICAgICAgICBpZiBub3Qgc2VsZi5f
Y2hlY2tfcGF0Y2hfcmVsZXZhbmNlKCk6CisgICAgICAgICAgICByYWlzZSBQYXRjaElzTm90QXBw
bGljYWJsZShzZWxmLl9wYXRjaCkKICAgICAgICAgaWYgbm90IHNlbGYuX2J1aWxkKCk6CiAgICAg
ICAgICAgICBpZiBub3Qgc2VsZi5fYnVpbGRfd2l0aG91dF9wYXRjaCgpOgogICAgICAgICAgICAg
ICAgIHJldHVybiBGYWxzZQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29s
L2JvdC9qc2Nld3NfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90
L2pzY2V3c191bml0dGVzdC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NzMwZGUxMTEzZWI4YzU5MmUzOGZmNjUx
YTBkYTZiYzE2ZmYwMjQ5Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS90b29sL2JvdC9qc2Nld3NfdW5pdHRlc3QucHkKQEAgLTAsMCArMSwyMjAgQEAKKyMgQ29weXJp
Z2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMg
Mi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
CisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IKKyMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyMgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworaW1wb3J0IGxvZ2dpbmcKK2ltcG9ydCB1
bml0dGVzdAorCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5uZXQuanNjdGVzdHJlc3VsdHMgaW1wb3J0
IEpTQ1Rlc3RSZXN1bHRzCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZlIGlt
cG9ydCBTY3JpcHRFcnJvcgorZnJvbSB3ZWJraXRweS50b29sLmJvdC5wYXRjaGFuYWx5c2lzdGFz
ayBpbXBvcnQgKgorZnJvbSB3ZWJraXRweS50b29sLmNvbW1hbmRzLmVhcmx5d2FybmluZ3N5c3Rl
bSBpbXBvcnQgQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0KK2Zyb20gd2Via2l0cHkudG9vbC5t
b2NrdG9vbCBpbXBvcnQgTW9ja1Rvb2wKKworX2xvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFt
ZV9fKQorCisKKyMgRklYTUU6IEl0IHdvdWxkIGJlIGJldHRlciBzZW1hbnRpY3MgdG8gdXNlIGEg
TW9ja0Vhcmx5V2FybmluZ1N5c3RlbVRhc2sgaGVyZSBpbnN0ZWFkLCBidXQgd2UgYWxyZWFkeSBo
YXZlIG9uZS4KK2NsYXNzIE1vY2tQYXRjaEFuYWx5c2lzVGFzayhQYXRjaEFuYWx5c2lzVGFzayk6
CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGRlbGVnYXRlLCBwYXRjaCwgcGF0Y2hlc19wYXNzZWRf
YWxsX3Rlc3RzKToKKyAgICAgICAgc2VsZi5fZGVsZWdhdGUgPSBkZWxlZ2F0ZQorICAgICAgICBz
ZWxmLl9wYXRjaCA9IHBhdGNoCisgICAgICAgIHNlbGYuX3NjcmlwdF9lcnJvciA9IE5vbmUKKyAg
ICAgICAgc2VsZi5fcmVzdWx0c19hcmNoaXZlX2Zyb21fcGF0Y2hfdGVzdF9ydW4gPSBOb25lCisg
ICAgICAgIHNlbGYuX3Jlc3VsdHNfZnJvbV9wYXRjaF90ZXN0X3J1biA9IE5vbmUKKyAgICAgICAg
c2VsZi5lcnJvciA9IE5vbmUKKyAgICAgICAgc2VsZi5fcGF0Y2hlc19wYXNzZWRfYWxsX3Rlc3Rz
ID0gcGF0Y2hlc19wYXNzZWRfYWxsX3Rlc3RzCisgICAgICAgIHNlbGYuX3Rlc3RfcnVuX2NvdW50
ID0gMAorICAgICAgICBzZWxmLmZhaWx1cmVfc3RhdHVzX2lkID0gNDIKKworICAgIGRlZiBfdGVz
dChzZWxmKToKKyAgICAgICAgc2VsZi5fdGVzdF9ydW5fY291bnQgKz0gMQorCisgICAgICAgIGlm
IHNlbGYuX3BhdGNoZXNfcGFzc2VkX2FsbF90ZXN0cy5wb3AoKSA9PSBUcnVlOgorICAgICAgICAg
ICAgcmV0dXJuIFRydWUKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYuX3NjcmlwdF9l
cnJvciA9IFNjcmlwdEVycm9yKCJSZWdyZXNzaW9uIHRlc3QiKQorICAgICAgICAgICAgcmV0dXJu
IEZhbHNlCisKKyAgICBkZWYgX2J1aWxkX2FuZF90ZXN0X3dpdGhvdXRfcGF0Y2goc2VsZik6Cisg
ICAgICAgIHNlbGYuX3Rlc3RfcnVuX2NvdW50ICs9IDEKKyAgICAgICAgcmV0dXJuIFRydWUKKwor
ICAgIGRlZiB2YWxpZGF0ZShzZWxmKToKKyAgICAgICAgcmV0dXJuIFRydWUKKworICAgIGRlZiB0
ZXN0X3J1bl9jb3VudChzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX3Rlc3RfcnVuX2NvdW50
CisKKworIyBUaGlzIGlzIHRoZSBkZWxlZ2F0ZSB0byBiZSB1c2VkIHdpdGggTW9ja1BhdGNoQW5h
bHlzaXNUYXNrLCBhYm92ZS4KK2NsYXNzIE1vY2tKU0NFYXJseVdhcm5pbmdTeXN0ZW0oQWJzdHJh
Y3RFYXJseVdhcm5pbmdTeXN0ZW0pOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBmaXJzdF90ZXN0
X3Jlc3VsdHMsIHNlY29uZF90ZXN0X3Jlc3VsdHMsIGNsZWFuX3Rlc3RfcmVzdWx0cyk6CisgICAg
ICAgIEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtLl9faW5pdF9fKHNlbGYpCisgICAgICAgIHNl
bGYuX2dyb3VwID0gImpzYyIKKyAgICAgICAgc2VsZi5fcmVzdWx0c19pbl9vcmRlciA9IFtjbGVh
bl90ZXN0X3Jlc3VsdHMsIHNlY29uZF90ZXN0X3Jlc3VsdHMsIGZpcnN0X3Rlc3RfcmVzdWx0c10K
KworICAgIGRlZiB0ZXN0X3Jlc3VsdHMoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl9yZXN1
bHRzX2luX29yZGVyLnBvcCgpCisKKworY2xhc3MgSlNDRWFybHlXYXJuaW5nU3lzdGVtVGVzdCh1
bml0dGVzdC5UZXN0Q2FzZSk6CisgICAgZGVmIF9yZXN1bHRzX2luZGljYXRlX2FsbF9wYXNzZWQo
c2VsZiwgcmVzdWx0cyk6CisgICAgICAgIGlmIHJlc3VsdHMgPT0gTm9uZToKKyAgICAgICAgICAg
IHJldHVybiBGYWxzZQorICAgICAgICByZXR1cm4gcmVzdWx0cy5hbGxfcGFzc2VkKCkKKworICAg
IGRlZiBfY3JlYXRlX3Rhc2soc2VsZiwgZmlyc3RfdGVzdF9yZXN1bHRzLCBzZWNvbmRfdGVzdF9y
ZXN1bHRzLCBjbGVhbl90ZXN0X3Jlc3VsdHMpOgorICAgICAgICBxdWV1ZSA9IE1vY2tKU0NFYXJs
eVdhcm5pbmdTeXN0ZW0oZmlyc3RfdGVzdF9yZXN1bHRzLCBzZWNvbmRfdGVzdF9yZXN1bHRzLCBj
bGVhbl90ZXN0X3Jlc3VsdHMpCisgICAgICAgIHRvb2wgPSBNb2NrVG9vbChsb2dfZXhlY3V0aXZl
PVRydWUpCisgICAgICAgIHBhdGNoID0gdG9vbC5idWdzLmZldGNoX2F0dGFjaG1lbnQoMTAwMDAp
CisgICAgICAgIHBhdGNoZXNfcGFzc2VkX2FsbF90ZXN0cyA9IG1hcChzZWxmLl9yZXN1bHRzX2lu
ZGljYXRlX2FsbF9wYXNzZWQsIFtzZWNvbmRfdGVzdF9yZXN1bHRzLCBmaXJzdF90ZXN0X3Jlc3Vs
dHNdKQorICAgICAgICByZXR1cm4gTW9ja1BhdGNoQW5hbHlzaXNUYXNrKHF1ZXVlLCBwYXRjaCwg
cGF0Y2hlc19wYXNzZWRfYWxsX3Rlc3RzKQorCisgICAgZGVmIHRlc3Rfc3VjY2Vzc19jYXNlKHNl
bGYpOgorICAgICAgICBmaXJzdF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBb
XSkKKyAgICAgICAgc2Vjb25kX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFtd
KQorICAgICAgICBjbGVhbl90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbXSkK
KyAgICAgICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90YXNrKGZpcnN0X3Rlc3RfcmVzdWx0cywgc2Vj
b25kX3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKQorCisgICAgICAgIHJldHVybl92
YWx1ZSA9IHRhc2suX3Rlc3RfcGF0Y2goKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRhc2su
dGVzdF9ydW5fY291bnQoKSwgMSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXR1cm5fdmFs
dWUsIFRydWUpCisKKyAgICBkZWYgdGVzdF90ZXN0X2ZhaWx1cmUoc2VsZik6CisgICAgICAgIGZp
cnN0X3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFsnRmFpbC5qcyddKQorICAg
ICAgICBzZWNvbmRfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgWydGYWlsLmpz
J10pCisgICAgICAgIGNsZWFuX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFtd
KQorICAgICAgICB0YXNrID0gc2VsZi5fY3JlYXRlX3Rhc2soZmlyc3RfdGVzdF9yZXN1bHRzLCBz
ZWNvbmRfdGVzdF9yZXN1bHRzLCBjbGVhbl90ZXN0X3Jlc3VsdHMpCisKKyAgICAgICAgd2l0aCBz
ZWxmLmFzc2VydFJhaXNlcyhTY3JpcHRFcnJvcik6CisgICAgICAgICAgICByZXR1cm5fdmFsdWUg
PSB0YXNrLl90ZXN0X3BhdGNoKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0YXNrLnRlc3Rf
cnVuX2NvdW50KCksIDMpCisKKyAgICBkZWYgdGVzdF9maXgoc2VsZik6CisgICAgICAgIGZpcnN0
X3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFtdKQorICAgICAgICBzZWNvbmRf
dGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgW10pCisgICAgICAgIGNsZWFuX3Rl
c3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFsnRmFpbC5qcyddKQorICAgICAgICB0
YXNrID0gc2VsZi5fY3JlYXRlX3Rhc2soZmlyc3RfdGVzdF9yZXN1bHRzLCBzZWNvbmRfdGVzdF9y
ZXN1bHRzLCBjbGVhbl90ZXN0X3Jlc3VsdHMpCisKKyAgICAgICAgcmV0dXJuX3ZhbHVlID0gdGFz
ay5fdGVzdF9wYXRjaCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGFzay50ZXN0X3J1bl9j
b3VudCgpLCAxKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJldHVybl92YWx1ZSwgVHJ1ZSkK
KworICAgIGRlZiB0ZXN0X2luZWZmZWN0aXZlX3BhdGNoKHNlbGYpOgorICAgICAgICBmaXJzdF90
ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhGYWxzZSwgWydmYWlsdXJlMS5qcycsICdmYWls
dXJlMi5qcyddKQorICAgICAgICBzZWNvbmRfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMo
RmFsc2UsIFsnZmFpbHVyZTEuanMnLCAnZmFpbHVyZTIuanMnXSkKKyAgICAgICAgY2xlYW5fdGVz
dF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoRmFsc2UsIFsnZmFpbHVyZTEuanMnLCAnZmFpbHVy
ZTIuanMnXSkKKyAgICAgICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90YXNrKGZpcnN0X3Rlc3RfcmVz
dWx0cywgc2Vjb25kX3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKQorCisgICAgICAg
IHJldHVybl92YWx1ZSA9IHRhc2suX3Rlc3RfcGF0Y2goKQorICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKHRhc2sudGVzdF9ydW5fY291bnQoKSwgMykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChy
ZXR1cm5fdmFsdWUsIFRydWUpCisKKyAgICBkZWYgdGVzdF9wYXJ0aWFsbHlfZWZmZWN0aXZlX3Bh
dGNoKHNlbGYpOgorICAgICAgICBmaXJzdF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhU
cnVlLCBbJ2ZhaWx1cmUyLmpzJ10pCisgICAgICAgIHNlY29uZF90ZXN0X3Jlc3VsdHMgPSBKU0NU
ZXN0UmVzdWx0cyhUcnVlLCBbJ2ZhaWx1cmUyLmpzJ10pCisgICAgICAgIGNsZWFuX3Rlc3RfcmVz
dWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKEZhbHNlLCBbJ2ZhaWx1cmUxLmpzJywgJ2ZhaWx1cmUyLmpz
J10pCisgICAgICAgIHRhc2sgPSBzZWxmLl9jcmVhdGVfdGFzayhmaXJzdF90ZXN0X3Jlc3VsdHMs
IHNlY29uZF90ZXN0X3Jlc3VsdHMsIGNsZWFuX3Rlc3RfcmVzdWx0cykKKworICAgICAgICByZXR1
cm5fdmFsdWUgPSB0YXNrLl90ZXN0X3BhdGNoKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0
YXNrLnRlc3RfcnVuX2NvdW50KCksIDMpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmV0dXJu
X3ZhbHVlLCBUcnVlKQorCisgICAgZGVmIHRlc3RfZGlmZmVyZW50X3Rlc3RfZmFpbHVyZXNfaW5f
cGF0Y2hfYW5kX3RyZWUoc2VsZik6CisgICAgICAgIGZpcnN0X3Rlc3RfcmVzdWx0cyA9IEpTQ1Rl
c3RSZXN1bHRzKEZhbHNlLCBbXSkKKyAgICAgICAgc2Vjb25kX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rl
c3RSZXN1bHRzKEZhbHNlLCBbXSkKKyAgICAgICAgY2xlYW5fdGVzdF9yZXN1bHRzID0gSlNDVGVz
dFJlc3VsdHMoVHJ1ZSwgWydmYWlsdXJlMS5qcycsICdmYWlsdXJlMi5qcyddKQorICAgICAgICB0
YXNrID0gc2VsZi5fY3JlYXRlX3Rhc2soZmlyc3RfdGVzdF9yZXN1bHRzLCBzZWNvbmRfdGVzdF9y
ZXN1bHRzLCBjbGVhbl90ZXN0X3Jlc3VsdHMpCisKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJh
aXNlcyhTY3JpcHRFcnJvcik6CisgICAgICAgICAgICByZXR1cm5fdmFsdWUgPSB0YXNrLl90ZXN0
X3BhdGNoKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0YXNrLnRlc3RfcnVuX2NvdW50KCks
IDMpCisKKyAgICBkZWYgdGVzdF9maXJzdF9yZXN1bHRzX2NvdWxkX25vdF9iZV9yZWFkKHNlbGYp
OgorICAgICAgICBmaXJzdF90ZXN0X3Jlc3VsdHMgPSBOb25lCisgICAgICAgIHNlY29uZF90ZXN0
X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbXSkKKyAgICAgICAgY2xlYW5fdGVzdF9y
ZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgW10pCisgICAgICAgIHRhc2sgPSBzZWxmLl9j
cmVhdGVfdGFzayhmaXJzdF90ZXN0X3Jlc3VsdHMsIHNlY29uZF90ZXN0X3Jlc3VsdHMsIGNsZWFu
X3Rlc3RfcmVzdWx0cykKKworICAgICAgICByZXR1cm5fdmFsdWUgPSB0YXNrLl90ZXN0X3BhdGNo
KCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0YXNrLnRlc3RfcnVuX2NvdW50KCksIDEpCisg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmV0dXJuX3ZhbHVlLCBGYWxzZSkKKworICAgIGRlZiB0
ZXN0X3NlY29uZF9yZXN1bHRzX2NvdWxkX25vdF9iZV9yZWFkKHNlbGYpOgorICAgICAgICBmaXJz
dF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhGYWxzZSwgWydmYWlsdXJlMS5qcycsICdm
YWlsdXJlMi5qcyddKQorICAgICAgICBzZWNvbmRfdGVzdF9yZXN1bHRzID0gTm9uZQorICAgICAg
ICBjbGVhbl90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbXSkKKyAgICAgICAg
dGFzayA9IHNlbGYuX2NyZWF0ZV90YXNrKGZpcnN0X3Rlc3RfcmVzdWx0cywgc2Vjb25kX3Rlc3Rf
cmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKQorCisgICAgICAgIHJldHVybl92YWx1ZSA9IHRh
c2suX3Rlc3RfcGF0Y2goKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRhc2sudGVzdF9ydW5f
Y291bnQoKSwgMikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXR1cm5fdmFsdWUsIEZhbHNl
KQorCisgICAgZGVmIHRlc3RfY2xlYW5fcmVzdWx0c19jb3VsZF9ub3RfYmVfcmVhZChzZWxmKToK
KyAgICAgICAgZmlyc3RfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgWydmYWls
dXJlMi5qcyddKQorICAgICAgICBzZWNvbmRfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMo
VHJ1ZSwgWydmYWlsdXJlMi5qcyddKQorICAgICAgICBjbGVhbl90ZXN0X3Jlc3VsdHMgPSBOb25l
CisgICAgICAgIHRhc2sgPSBzZWxmLl9jcmVhdGVfdGFzayhmaXJzdF90ZXN0X3Jlc3VsdHMsIHNl
Y29uZF90ZXN0X3Jlc3VsdHMsIGNsZWFuX3Rlc3RfcmVzdWx0cykKKworICAgICAgICByZXR1cm5f
dmFsdWUgPSB0YXNrLl90ZXN0X3BhdGNoKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0YXNr
LnRlc3RfcnVuX2NvdW50KCksIDMpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmV0dXJuX3Zh
bHVlLCBGYWxzZSkKKworICAgIGRlZiB0ZXN0X2ZsYWt5X3Jlc3VsdHNfb25fY2xlYW5fdHJlZV9w
YXNzKHNlbGYpOgorICAgICAgICBmaXJzdF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhU
cnVlLCBbJ2ZhaWx1cmUyLmpzJ10pCisgICAgICAgIHNlY29uZF90ZXN0X3Jlc3VsdHMgPSBKU0NU
ZXN0UmVzdWx0cyhUcnVlLCBbXSkKKyAgICAgICAgY2xlYW5fdGVzdF9yZXN1bHRzID0gSlNDVGVz
dFJlc3VsdHMoVHJ1ZSwgW10pCisgICAgICAgIHRhc2sgPSBzZWxmLl9jcmVhdGVfdGFzayhmaXJz
dF90ZXN0X3Jlc3VsdHMsIHNlY29uZF90ZXN0X3Jlc3VsdHMsIGNsZWFuX3Rlc3RfcmVzdWx0cykK
KworICAgICAgICByZXR1cm5fdmFsdWUgPSB0YXNrLl90ZXN0X3BhdGNoKCkKKyAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChyZXR1cm5fdmFsdWUsIFRydWUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwodGFzay50ZXN0X3J1bl9jb3VudCgpLCAyKQorCisgICAgZGVmIHRlc3RfZmxha3lfcmVzdWx0
c19vbl9jbGVhbl90cmVlX3Bhc3NfdjIoc2VsZik6CisgICAgICAgIGZpcnN0X3Rlc3RfcmVzdWx0
cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFtdKQorICAgICAgICBzZWNvbmRfdGVzdF9yZXN1bHRz
ID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgWydmYWlsdXJlMi5qcyddKQorICAgICAgICBjbGVhbl90
ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbXSkKKyAgICAgICAgdGFzayA9IHNl
bGYuX2NyZWF0ZV90YXNrKGZpcnN0X3Rlc3RfcmVzdWx0cywgc2Vjb25kX3Rlc3RfcmVzdWx0cywg
Y2xlYW5fdGVzdF9yZXN1bHRzKQorCisgICAgICAgIHJldHVybl92YWx1ZSA9IHRhc2suX3Rlc3Rf
cGF0Y2goKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJldHVybl92YWx1ZSwgVHJ1ZSkKKyAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0YXNrLnRlc3RfcnVuX2NvdW50KCksIDEpCisKKyAgICBk
ZWYgdGVzdF9mbGFreV9yZXN1bHRzX29uX2NsZWFuX3RyZWVfZmFpbHVyZShzZWxmKToKKyAgICAg
ICAgZmlyc3RfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoRmFsc2UsIFsnZmFpbHVyZTEu
anMnLCAnZmFpbHVyZTIuanMnXSkKKyAgICAgICAgc2Vjb25kX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rl
c3RSZXN1bHRzKFRydWUsIFsnZmFpbHVyZTIuanMnXSkKKyAgICAgICAgY2xlYW5fdGVzdF9yZXN1
bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgW10pCisgICAgICAgIHRhc2sgPSBzZWxmLl9jcmVh
dGVfdGFzayhmaXJzdF90ZXN0X3Jlc3VsdHMsIHNlY29uZF90ZXN0X3Jlc3VsdHMsIGNsZWFuX3Rl
c3RfcmVzdWx0cykKKworICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFNjcmlwdEVycm9y
KToKKyAgICAgICAgICAgIHJldHVybl92YWx1ZSA9IHRhc2suX3Rlc3RfcGF0Y2goKQorICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKHRhc2sudGVzdF9ydW5fY291bnQoKSwgMykKKworICAgIGRlZiB0
ZXN0X2ZsYWt5X3Jlc3VsdHNfb25fcmVkX3RyZWVfcGFzcyhzZWxmKToKKyAgICAgICAgZmlyc3Rf
dGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgWydmYWlsdXJlMS5qcyddKQorICAg
ICAgICBzZWNvbmRfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgWydmYWlsdXJl
MS5qcycsICdmYWlsdXJlMi5qcyddKQorICAgICAgICBjbGVhbl90ZXN0X3Jlc3VsdHMgPSBKU0NU
ZXN0UmVzdWx0cyhUcnVlLCBbJ2ZhaWx1cmUxLmpzJ10pCisgICAgICAgIHRhc2sgPSBzZWxmLl9j
cmVhdGVfdGFzayhmaXJzdF90ZXN0X3Jlc3VsdHMsIHNlY29uZF90ZXN0X3Jlc3VsdHMsIGNsZWFu
X3Rlc3RfcmVzdWx0cykKKworICAgICAgICByZXR1cm5fdmFsdWUgPSB0YXNrLl90ZXN0X3BhdGNo
KCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXR1cm5fdmFsdWUsIFRydWUpCisgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwodGFzay50ZXN0X3J1bl9jb3VudCgpLCAzKQpkaWZmIC0tZ2l0IGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9qc2N0ZXN0cmVzdWx0c3JlYWRlci5weSBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvanNjdGVzdHJlc3VsdHNyZWFkZXIucHkK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYTU2YmQwNWRmYTc3NDU5ZDQ2YzM3YmU4NWQ0NDkxODk0OGEwNjY2NgotLS0g
L2Rldi9udWxsCisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvanNjdGVzdHJl
c3VsdHNyZWFkZXIucHkKQEAgLTAsMCArMSw0NyBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTcgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMg
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5E
CisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorIyBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
IyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorCitpbXBvcnQgbG9nZ2luZworCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5u
ZXQuanNjdGVzdHJlc3VsdHMgaW1wb3J0IEpTQ1Rlc3RSZXN1bHRzCisKK19sb2cgPSBsb2dnaW5n
LmdldExvZ2dlcihfX25hbWVfXykKKworCitjbGFzcyBKU0NUZXN0UmVzdWx0c1JlYWRlcihvYmpl
Y3QpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBob3N0LCByZXN1bHRzX2RpcmVjdG9yeSk6Cisg
ICAgICAgIHNlbGYuX2hvc3QgPSBob3N0CisgICAgICAgIHNlbGYuX3Jlc3VsdHNfZGlyZWN0b3J5
ID0gcmVzdWx0c19kaXJlY3RvcnkKKworICAgIGRlZiBfcmVhZF9maWxlX2NvbnRlbnRzKHNlbGYs
IHBhdGgpOgorICAgICAgICB0cnk6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5faG9zdC5maWxl
c3lzdGVtLnJlYWRfdGV4dF9maWxlKHBhdGgpCisgICAgICAgIGV4Y2VwdCAoSU9FcnJvciwgS2V5
RXJyb3IpOiAgIyBGaWxlIGRvZXMgbm90IGV4aXN0IG9yIGNhbid0IGJlIHJlYWQuCisgICAgICAg
ICAgICByZXR1cm4gTm9uZQorCisgICAgZGVmIF9jcmVhdGVfanNjX3Rlc3RfcmVzdWx0cyhzZWxm
KToKKyAgICAgICAgcmVzdWx0c19wYXRoID0gc2VsZi5faG9zdC5maWxlc3lzdGVtLmpvaW4oc2Vs
Zi5fcmVzdWx0c19kaXJlY3RvcnksICJqc2NfdGVzdF9yZXN1bHRzLmpzb24iKQorICAgICAgICBj
b250ZW50cyA9IHNlbGYuX3JlYWRfZmlsZV9jb250ZW50cyhyZXN1bHRzX3BhdGgpCisgICAgICAg
IHJldHVybiBKU0NUZXN0UmVzdWx0cy5yZXN1bHRzX2Zyb21fc3RyaW5nKGNvbnRlbnRzKQorCisg
ICAgZGVmIHJlc3VsdHMoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl9jcmVhdGVfanNjX3Rl
c3RfcmVzdWx0cygpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90
L3BhdGNoYW5hbHlzaXN0YXNrLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9w
YXRjaGFuYWx5c2lzdGFzay5weQppbmRleCA3NTIzMTY0MTZjNWY5ZDBhM2U1OWVmNmQwNWUzMTc4
NWY5MTc0NjI5Li44ZTliOTcxYmZkZTM0ZjJlM2ExMDFlOGFhYjNkNmNkOTdjYTBkYzViIDEwMDY0
NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L3BhdGNoYW5hbHlzaXN0YXNr
LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvcGF0Y2hhbmFseXNpc3Rh
c2sucHkKQEAgLTEsNCArMSw1IEBACiAjIENvcHlyaWdodCAoYykgMjAxMCBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtMjgs
NiArMjksNyBAQAogCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZlIGltcG9y
dCBTY3JpcHRFcnJvcgogZnJvbSB3ZWJraXRweS5jb21tb24ubmV0LmxheW91dHRlc3RyZXN1bHRz
IGltcG9ydCBMYXlvdXRUZXN0UmVzdWx0cworZnJvbSB3ZWJraXRweS5jb21tb24ubmV0LmpzY3Rl
c3RyZXN1bHRzIGltcG9ydCBKU0NUZXN0UmVzdWx0cwogCiAKIGNsYXNzIFVuYWJsZVRvQXBwbHlQ
YXRjaChFeGNlcHRpb24pOgpAQCAtNDMsNiArNDUsMTEgQEAgY2xhc3MgUGF0Y2hJc05vdFZhbGlk
KEV4Y2VwdGlvbik6CiAgICAgICAgIHNlbGYuZmFpbHVyZV9tZXNzYWdlID0gZmFpbHVyZV9tZXNz
YWdlCiAKIAorY2xhc3MgUGF0Y2hJc05vdEFwcGxpY2FibGUoRXhjZXB0aW9uKToKKyAgICBkZWYg
X19pbml0X18oc2VsZiwgcGF0Y2gpOgorICAgICAgICBFeGNlcHRpb24uX19pbml0X18oc2VsZikK
KyAgICAgICAgc2VsZi5wYXRjaCA9IHBhdGNoCisKIGNsYXNzIFBhdGNoQW5hbHlzaXNUYXNrRGVs
ZWdhdGUob2JqZWN0KToKICAgICBkZWYgcGFyZW50X2NvbW1hbmQoc2VsZik6CiAgICAgICAgIHJh
aXNlIE5vdEltcGxlbWVudGVkRXJyb3IoInN1YmNsYXNzZXMgbXVzdCBpbXBsZW1lbnQiKQpAQCAt
MTIyLDI4ICsxMjksNTMgQEAgY2xhc3MgUGF0Y2hBbmFseXNpc1Rhc2sob2JqZWN0KToKICAgICAg
ICAgIkFwcGxpZWQgcGF0Y2giLAogICAgICAgICAiUGF0Y2ggZG9lcyBub3QgYXBwbHkiKQogCisg
ICAgZGVmIF9jaGVja19wYXRjaF9yZWxldmFuY2Uoc2VsZik6CisgICAgICAgIGFyZ3MgPSBbCisg
ICAgICAgICAgICAiY2hlY2stcGF0Y2gtcmVsZXZhbmNlIiwKKyAgICAgICAgXQorCisgICAgICAg
IGlmIGhhc2F0dHIoc2VsZi5fZGVsZWdhdGUsICdncm91cCcpOgorICAgICAgICAgICAgYXJncy5h
cHBlbmQoIi0tZ3JvdXA9JXMiICUgc2VsZi5fZGVsZWdhdGUuZ3JvdXAoKSkKKworICAgICAgICBy
ZXR1cm4gc2VsZi5fcnVuX2NvbW1hbmQoCisgICAgICAgICAgICBhcmdzLAorICAgICAgICAgICAg
IkNoZWNrZWQgcmVsZXZhbmNlIG9mIHBhdGNoIiwKKyAgICAgICAgICAgICJQYXRjaCB3YXMgbm90
IHJlbGV2YW50IikKKwogICAgIGRlZiBfYnVpbGQoc2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxm
Ll9ydW5fY29tbWFuZChbCisgICAgICAgIGFyZ3MgPSBbCiAgICAgICAgICAgICAiYnVpbGQiLAog
ICAgICAgICAgICAgIi0tbm8tY2xlYW4iLAogICAgICAgICAgICAgIi0tbm8tdXBkYXRlIiwKICAg
ICAgICAgICAgICItLWJ1aWxkLXN0eWxlPSVzIiAlIHNlbGYuX2RlbGVnYXRlLmJ1aWxkX3N0eWxl
KCksCi0gICAgICAgIF0sCi0gICAgICAgICJCdWlsdCBwYXRjaCIsCi0gICAgICAgICJQYXRjaCBk
b2VzIG5vdCBidWlsZCIpCisgICAgICAgIF0KKworICAgICAgICBpZiBoYXNhdHRyKHNlbGYuX2Rl
bGVnYXRlLCAnZ3JvdXAnKToKKyAgICAgICAgICAgIGFyZ3MuYXBwZW5kKCItLWdyb3VwPSVzIiAl
IHNlbGYuX2RlbGVnYXRlLmdyb3VwKCkpCisKKyAgICAgICAgcmV0dXJuIHNlbGYuX3J1bl9jb21t
YW5kKAorICAgICAgICAgICAgYXJncywKKyAgICAgICAgICAgICJCdWlsdCBwYXRjaCIsCisgICAg
ICAgICAgICAiUGF0Y2ggZG9lcyBub3QgYnVpbGQiKQogCiAgICAgZGVmIF9idWlsZF93aXRob3V0
X3BhdGNoKHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi5fcnVuX2NvbW1hbmQoWworICAgICAg
ICBhcmdzID0gWwogICAgICAgICAgICAgImJ1aWxkIiwKICAgICAgICAgICAgICItLWZvcmNlLWNs
ZWFuIiwKICAgICAgICAgICAgICItLW5vLXVwZGF0ZSIsCiAgICAgICAgICAgICAiLS1idWlsZC1z
dHlsZT0lcyIgJSBzZWxmLl9kZWxlZ2F0ZS5idWlsZF9zdHlsZSgpLAotICAgICAgICBdLAotICAg
ICAgICAiQWJsZSB0byBidWlsZCB3aXRob3V0IHBhdGNoIiwKLSAgICAgICAgIlVuYWJsZSB0byBi
dWlsZCB3aXRob3V0IHBhdGNoIikKKyAgICAgICAgXQorCisgICAgICAgIGlmIGhhc2F0dHIoc2Vs
Zi5fZGVsZWdhdGUsICdncm91cCcpOgorICAgICAgICAgICAgYXJncy5hcHBlbmQoIi0tZ3JvdXA9
JXMiICUgc2VsZi5fZGVsZWdhdGUuZ3JvdXAoKSkKKworICAgICAgICByZXR1cm4gc2VsZi5fcnVu
X2NvbW1hbmQoCisgICAgICAgICAgICBhcmdzLAorICAgICAgICAgICAgIkFibGUgdG8gYnVpbGQg
d2l0aG91dCBwYXRjaCIsCisgICAgICAgICAgICAiVW5hYmxlIHRvIGJ1aWxkIHdpdGhvdXQgcGF0
Y2giKQogCiAgICAgZGVmIF90ZXN0KHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi5fcnVuX2Nv
bW1hbmQoWworICAgICAgICBhcmdzID0gWwogICAgICAgICAgICAgImJ1aWxkLWFuZC10ZXN0IiwK
ICAgICAgICAgICAgICItLW5vLWNsZWFuIiwKICAgICAgICAgICAgICItLW5vLXVwZGF0ZSIsCkBA
IC0xNTEsMTIgKzE4MywxOCBAQCBjbGFzcyBQYXRjaEFuYWx5c2lzVGFzayhvYmplY3QpOgogICAg
ICAgICAgICAgIi0tdGVzdCIsCiAgICAgICAgICAgICAiLS1ub24taW50ZXJhY3RpdmUiLAogICAg
ICAgICAgICAgIi0tYnVpbGQtc3R5bGU9JXMiICUgc2VsZi5fZGVsZWdhdGUuYnVpbGRfc3R5bGUo
KSwKLSAgICAgICAgXSwKLSAgICAgICAgIlBhc3NlZCB0ZXN0cyIsCi0gICAgICAgICJQYXRjaCBk
b2VzIG5vdCBwYXNzIHRlc3RzIikKKyAgICAgICAgXQorCisgICAgICAgIGlmIGhhc2F0dHIoc2Vs
Zi5fZGVsZWdhdGUsICdncm91cCcpOgorICAgICAgICAgICAgYXJncy5hcHBlbmQoIi0tZ3JvdXA9
JXMiICUgc2VsZi5fZGVsZWdhdGUuZ3JvdXAoKSkKKworICAgICAgICByZXR1cm4gc2VsZi5fcnVu
X2NvbW1hbmQoCisgICAgICAgICAgICBhcmdzLAorICAgICAgICAgICAgIlBhc3NlZCB0ZXN0cyIs
CisgICAgICAgICAgICAiUGF0Y2ggZG9lcyBub3QgcGFzcyB0ZXN0cyIpCiAKICAgICBkZWYgX2J1
aWxkX2FuZF90ZXN0X3dpdGhvdXRfcGF0Y2goc2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmLl9y
dW5fY29tbWFuZChbCisgICAgICAgIGFyZ3MgPSBbCiAgICAgICAgICAgICAiYnVpbGQtYW5kLXRl
c3QiLAogICAgICAgICAgICAgIi0tZm9yY2UtY2xlYW4iLAogICAgICAgICAgICAgIi0tbm8tdXBk
YXRlIiwKQEAgLTE2NCw5ICsyMDIsMTUgQEAgY2xhc3MgUGF0Y2hBbmFseXNpc1Rhc2sob2JqZWN0
KToKICAgICAgICAgICAgICItLXRlc3QiLAogICAgICAgICAgICAgIi0tbm9uLWludGVyYWN0aXZl
IiwKICAgICAgICAgICAgICItLWJ1aWxkLXN0eWxlPSVzIiAlIHNlbGYuX2RlbGVnYXRlLmJ1aWxk
X3N0eWxlKCksCi0gICAgICAgIF0sCi0gICAgICAgICJBYmxlIHRvIHBhc3MgdGVzdHMgd2l0aG91
dCBwYXRjaCIsCi0gICAgICAgICJVbmFibGUgdG8gcGFzcyB0ZXN0cyB3aXRob3V0IHBhdGNoICh0
cmVlIGlzIHJlZD8pIikKKyAgICAgICAgXQorCisgICAgICAgIGlmIGhhc2F0dHIoc2VsZi5fZGVs
ZWdhdGUsICdncm91cCcpOgorICAgICAgICAgICAgYXJncy5hcHBlbmQoIi0tZ3JvdXA9JXMiICUg
c2VsZi5fZGVsZWdhdGUuZ3JvdXAoKSkKKworICAgICAgICByZXR1cm4gc2VsZi5fcnVuX2NvbW1h
bmQoCisgICAgICAgICAgICBhcmdzLAorICAgICAgICAgICAgIkFibGUgdG8gcGFzcyB0ZXN0cyB3
aXRob3V0IHBhdGNoIiwKKyAgICAgICAgICAgICJVbmFibGUgdG8gcGFzcyB0ZXN0cyB3aXRob3V0
IHBhdGNoICh0cmVlIGlzIHJlZD8pIikKIAogICAgIGRlZiBfbGFuZChzZWxmKToKICAgICAgICAg
IyBVbmNsZWFyIGlmIHRoaXMgc2hvdWxkIHBhc3MgLS1xdWlldCBvciBub3QuICBJZiAtLXBhcmVu
dC1jb21tYW5kIGFsd2F5cyBkb2VzIHRoZSByZXBvcnRpbmcsIHRoZW4gaXQgc2hvdWxkLgpAQCAt
MjEwLDY5ICsyNTQsOTggQEAgY2xhc3MgUGF0Y2hBbmFseXNpc1Rhc2sob2JqZWN0KToKICAgICAg
ICAgaWYgc2VsZi5fdGVzdCgpOgogICAgICAgICAgICAgcmV0dXJuIFRydWUKIAotICAgICAgICAj
IE5vdGU6IGFyY2hpdmVfbGFzdF90ZXN0X3Jlc3VsdHMgZGVsZXRlcyB0aGUgcmVzdWx0cyBkaXJl
Y3RvcnksIG1ha2luZyB0aGVzZSBjYWxscyBvcmRlci1zZW5zaXR2ZS4KLSAgICAgICAgIyBXZSBj
b3VsZCByZW1vdmUgdGhpcyBkZXBlbmRlbmN5IGJ5IGJ1aWxkaW5nIHRoZSB0ZXN0X3Jlc3VsdHMg
ZnJvbSB0aGUgYXJjaGl2ZS4KLSAgICAgICAgZmlyc3RfcmVzdWx0cyA9IHNlbGYuX2RlbGVnYXRl
LnRlc3RfcmVzdWx0cygpCi0gICAgICAgIGZpcnN0X3Jlc3VsdHNfYXJjaGl2ZSA9IHNlbGYuX2Rl
bGVnYXRlLmFyY2hpdmVfbGFzdF90ZXN0X3Jlc3VsdHMoc2VsZi5fcGF0Y2gpCi0gICAgICAgIGZp
cnN0X3NjcmlwdF9lcnJvciA9IHNlbGYuX3NjcmlwdF9lcnJvcgotICAgICAgICBmaXJzdF9mYWls
dXJlX3N0YXR1c19pZCA9IHNlbGYuZmFpbHVyZV9zdGF0dXNfaWQKLQotICAgICAgICBpZiBzZWxm
Ll90ZXN0KCkgYW5kIG5vdCBmaXJzdF9yZXN1bHRzLmRpZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xp
bWl0KCk6Ci0gICAgICAgICAgICAjIE9ubHkgcmVwb3J0IGZsYWt5IHRlc3RzIGlmIHdlIHdlcmUg
c3VjY2Vzc2Z1bCBhdCBwYXJzaW5nIHJlc3VsdHMuanNvbiBhbmQgYXJjaGl2aW5nIHJlc3VsdHMu
Ci0gICAgICAgICAgICBpZiBmaXJzdF9yZXN1bHRzIGFuZCBmaXJzdF9yZXN1bHRzX2FyY2hpdmU6
Ci0gICAgICAgICAgICAgICAgc2VsZi5fcmVwb3J0X2ZsYWt5X3Rlc3RzKGZpcnN0X3Jlc3VsdHMu
ZmFpbGluZ190ZXN0X3Jlc3VsdHMoKSwgZmlyc3RfcmVzdWx0c19hcmNoaXZlKQotICAgICAgICAg
ICAgcmV0dXJuIFRydWUKKyAgICAgICAgIyBGSVhNRTogQWJzdHJhY3Qgb3V0IHRoZSByZXRyeSBs
b2dpYyBpbnN0ZWFkIG9mIGNhc2luZyBvbiB0aGUgdGVzdCBzdWl0ZSBoZXJlLgorICAgICAgICBp
ZiBoYXNhdHRyKHNlbGYuX2RlbGVnYXRlLCAnZ3JvdXAnKSBhbmQgc2VsZi5fZGVsZWdhdGUuZ3Jv
dXAoKSA9PSAianNjIjoKKyAgICAgICAgICAgIGZpcnN0X3Jlc3VsdHMgPSBzZWxmLl9kZWxlZ2F0
ZS50ZXN0X3Jlc3VsdHMoKQorICAgICAgICAgICAgZmlyc3Rfc2NyaXB0X2Vycm9yID0gc2VsZi5f
c2NyaXB0X2Vycm9yCisgICAgICAgICAgICBmaXJzdF9mYWlsdXJlX3N0YXR1c19pZCA9IHNlbGYu
ZmFpbHVyZV9zdGF0dXNfaWQKKyAgICAgICAgICAgIGlmIGZpcnN0X3Jlc3VsdHMgaXMgTm9uZToK
KyAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKIAotICAgICAgICBzZWNvbmRfcmVzdWx0cyA9
IHNlbGYuX2RlbGVnYXRlLnRlc3RfcmVzdWx0cygpCi0gICAgICAgIHNlY29uZF9yZXN1bHRzX2Fy
Y2hpdmUgPSBzZWxmLl9kZWxlZ2F0ZS5hcmNoaXZlX2xhc3RfdGVzdF9yZXN1bHRzKHNlbGYuX3Bh
dGNoKQotICAgICAgICBzZWNvbmRfc2NyaXB0X2Vycm9yID0gc2VsZi5fc2NyaXB0X2Vycm9yCi0g
ICAgICAgIHNlY29uZF9mYWlsdXJlX3N0YXR1c19pZCA9IHNlbGYuZmFpbHVyZV9zdGF0dXNfaWQK
KyAgICAgICAgICAgIGlmIHNlbGYuX3Rlc3QoKToKKyAgICAgICAgICAgICAgICByZXR1cm4gVHJ1
ZQorICAgICAgICAgICAgc2Vjb25kX3Jlc3VsdHMgPSBzZWxmLl9kZWxlZ2F0ZS50ZXN0X3Jlc3Vs
dHMoKQorICAgICAgICAgICAgc2Vjb25kX3NjcmlwdF9lcnJvciA9IHNlbGYuX3NjcmlwdF9lcnJv
cgorICAgICAgICAgICAgaWYgc2Vjb25kX3Jlc3VsdHMgaXMgTm9uZToKKyAgICAgICAgICAgICAg
ICByZXR1cm4gRmFsc2UKKworICAgICAgICAgICAgY29uc2lzdGVudF9yZXN1bHRzID0gSlNDVGVz
dFJlc3VsdHMuaW50ZXJzZWN0aW9uKGZpcnN0X3Jlc3VsdHMsIHNlY29uZF9yZXN1bHRzKQogCi0g
ICAgICAgIGlmIHNlY29uZF9yZXN1bHRzLmRpZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xpbWl0KCkg
YW5kIGZpcnN0X3Jlc3VsdHMuZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQoKToKICAgICAg
ICAgICAgIHNlbGYuX2J1aWxkX2FuZF90ZXN0X3dpdGhvdXRfcGF0Y2goKQogICAgICAgICAgICAg
Y2xlYW5fdHJlZV9yZXN1bHRzID0gc2VsZi5fZGVsZWdhdGUudGVzdF9yZXN1bHRzKCkKLQotICAg
ICAgICAgICAgaWYgKGxlbihmaXJzdF9yZXN1bHRzLmZhaWxpbmdfdGVzdHMoKSkgLSBsZW4oY2xl
YW5fdHJlZV9yZXN1bHRzLmZhaWxpbmdfdGVzdHMoKSkpIDw9IDU6CisgICAgICAgICAgICBpZiBj
bGVhbl90cmVlX3Jlc3VsdHMgaXMgTm9uZToKICAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UK
IAorICAgICAgICAgICAgaWYgY29uc2lzdGVudF9yZXN1bHRzLmlzX3N1YnNldChjbGVhbl90cmVl
X3Jlc3VsdHMpOgorICAgICAgICAgICAgICAgIHJldHVybiBUcnVlCisKICAgICAgICAgICAgIHNl
bGYuZmFpbHVyZV9zdGF0dXNfaWQgPSBmaXJzdF9mYWlsdXJlX3N0YXR1c19pZAorICAgICAgICAg
ICAgcmV0dXJuIHNlbGYucmVwb3J0X2ZhaWx1cmUoTm9uZSwgY29uc2lzdGVudF9yZXN1bHRzLCBm
aXJzdF9zY3JpcHRfZXJyb3IpCiAKLSAgICAgICAgICAgIHJldHVybiBzZWxmLnJlcG9ydF9mYWls
dXJlKGZpcnN0X3Jlc3VsdHNfYXJjaGl2ZSwgZmlyc3RfcmVzdWx0cywgZmlyc3Rfc2NyaXB0X2Vy
cm9yKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgIyBOb3RlOiBhcmNoaXZlX2xhc3RfdGVz
dF9yZXN1bHRzIGRlbGV0ZXMgdGhlIHJlc3VsdHMgZGlyZWN0b3J5LCBtYWtpbmcgdGhlc2UgY2Fs
bHMgb3JkZXItc2Vuc2l0dmUuCisgICAgICAgICAgICAjIFdlIGNvdWxkIHJlbW92ZSB0aGlzIGRl
cGVuZGVuY3kgYnkgYnVpbGRpbmcgdGhlIHRlc3RfcmVzdWx0cyBmcm9tIHRoZSBhcmNoaXZlLgor
ICAgICAgICAgICAgZmlyc3RfcmVzdWx0cyA9IHNlbGYuX2RlbGVnYXRlLnRlc3RfcmVzdWx0cygp
CisgICAgICAgICAgICBmaXJzdF9yZXN1bHRzX2FyY2hpdmUgPSBzZWxmLl9kZWxlZ2F0ZS5hcmNo
aXZlX2xhc3RfdGVzdF9yZXN1bHRzKHNlbGYuX3BhdGNoKQorICAgICAgICAgICAgZmlyc3Rfc2Ny
aXB0X2Vycm9yID0gc2VsZi5fc2NyaXB0X2Vycm9yCisgICAgICAgICAgICBmaXJzdF9mYWlsdXJl
X3N0YXR1c19pZCA9IHNlbGYuZmFpbHVyZV9zdGF0dXNfaWQKIAotICAgICAgICBpZiBzZWNvbmRf
cmVzdWx0cy5kaWRfZXhjZWVkX3Rlc3RfZmFpbHVyZV9saW1pdCgpOgotICAgICAgICAgICAgc2Vs
Zi5fc2hvdWxkX2RlZmVyX3BhdGNoX29yX3Rocm93KGZpcnN0X3Jlc3VsdHMuZmFpbGluZ190ZXN0
X3Jlc3VsdHMoKSwgZmlyc3RfcmVzdWx0c19hcmNoaXZlLCBmaXJzdF9zY3JpcHRfZXJyb3IsIGZp
cnN0X2ZhaWx1cmVfc3RhdHVzX2lkKQotICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAg
ICAgICBpZiBzZWxmLl90ZXN0KCkgYW5kIG5vdCBmaXJzdF9yZXN1bHRzLmRpZF9leGNlZWRfdGVz
dF9mYWlsdXJlX2xpbWl0KCk6CisgICAgICAgICAgICAgICAgIyBPbmx5IHJlcG9ydCBmbGFreSB0
ZXN0cyBpZiB3ZSB3ZXJlIHN1Y2Nlc3NmdWwgYXQgcGFyc2luZyByZXN1bHRzLmpzb24gYW5kIGFy
Y2hpdmluZyByZXN1bHRzLgorICAgICAgICAgICAgICAgIGlmIGZpcnN0X3Jlc3VsdHMgYW5kIGZp
cnN0X3Jlc3VsdHNfYXJjaGl2ZToKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5fcmVwb3J0X2Zs
YWt5X3Rlc3RzKGZpcnN0X3Jlc3VsdHMuZmFpbGluZ190ZXN0X3Jlc3VsdHMoKSwgZmlyc3RfcmVz
dWx0c19hcmNoaXZlKQorICAgICAgICAgICAgICAgIHJldHVybiBUcnVlCiAKLSAgICAgICAgaWYg
Zmlyc3RfcmVzdWx0cy5kaWRfZXhjZWVkX3Rlc3RfZmFpbHVyZV9saW1pdCgpOgotICAgICAgICAg
ICAgc2VsZi5fc2hvdWxkX2RlZmVyX3BhdGNoX29yX3Rocm93KHNlY29uZF9yZXN1bHRzLmZhaWxp
bmdfdGVzdF9yZXN1bHRzKCksIHNlY29uZF9yZXN1bHRzX2FyY2hpdmUsIHNlY29uZF9zY3JpcHRf
ZXJyb3IsIHNlY29uZF9mYWlsdXJlX3N0YXR1c19pZCkKLSAgICAgICAgICAgIHJldHVybiBGYWxz
ZQorICAgICAgICAgICAgc2Vjb25kX3Jlc3VsdHMgPSBzZWxmLl9kZWxlZ2F0ZS50ZXN0X3Jlc3Vs
dHMoKQorICAgICAgICAgICAgc2Vjb25kX3Jlc3VsdHNfYXJjaGl2ZSA9IHNlbGYuX2RlbGVnYXRl
LmFyY2hpdmVfbGFzdF90ZXN0X3Jlc3VsdHMoc2VsZi5fcGF0Y2gpCisgICAgICAgICAgICBzZWNv
bmRfc2NyaXB0X2Vycm9yID0gc2VsZi5fc2NyaXB0X2Vycm9yCisgICAgICAgICAgICBzZWNvbmRf
ZmFpbHVyZV9zdGF0dXNfaWQgPSBzZWxmLmZhaWx1cmVfc3RhdHVzX2lkCisKKyAgICAgICAgICAg
IGlmIHNlY29uZF9yZXN1bHRzLmRpZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xpbWl0KCkgYW5kIGZp
cnN0X3Jlc3VsdHMuZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQoKToKKyAgICAgICAgICAg
ICAgICBzZWxmLl9idWlsZF9hbmRfdGVzdF93aXRob3V0X3BhdGNoKCkKKyAgICAgICAgICAgICAg
ICBjbGVhbl90cmVlX3Jlc3VsdHMgPSBzZWxmLl9kZWxlZ2F0ZS50ZXN0X3Jlc3VsdHMoKQorCisg
ICAgICAgICAgICAgICAgaWYgKGxlbihmaXJzdF9yZXN1bHRzLmZhaWxpbmdfdGVzdHMoKSkgLSBs
ZW4oY2xlYW5fdHJlZV9yZXN1bHRzLmZhaWxpbmdfdGVzdHMoKSkpIDw9IDU6CisgICAgICAgICAg
ICAgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgICAgICAgICAgICAgc2VsZi5mYWlsdXJlX3N0
YXR1c19pZCA9IGZpcnN0X2ZhaWx1cmVfc3RhdHVzX2lkCisKKyAgICAgICAgICAgICAgICByZXR1
cm4gc2VsZi5yZXBvcnRfZmFpbHVyZShmaXJzdF9yZXN1bHRzX2FyY2hpdmUsIGZpcnN0X3Jlc3Vs
dHMsIGZpcnN0X3NjcmlwdF9lcnJvcikKIAotICAgICAgICBpZiBzZWxmLl9yZXN1bHRzX2ZhaWxl
ZF9kaWZmZXJlbnRfdGVzdHMoZmlyc3RfcmVzdWx0cywgc2Vjb25kX3Jlc3VsdHMpOgotICAgICAg
ICAgICAgZmlyc3RfZmFpbGluZ19yZXN1bHRzX3NldCA9IGZyb3plbnNldChmaXJzdF9yZXN1bHRz
LmZhaWxpbmdfdGVzdF9yZXN1bHRzKCkpCi0gICAgICAgICAgICBzZWNvbmRfZmFpbGluZ19yZXN1
bHRzX3NldCA9IGZyb3plbnNldChzZWNvbmRfcmVzdWx0cy5mYWlsaW5nX3Rlc3RfcmVzdWx0cygp
KQorICAgICAgICAgICAgaWYgc2Vjb25kX3Jlc3VsdHMuZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVf
bGltaXQoKToKKyAgICAgICAgICAgICAgICBzZWxmLl9zaG91bGRfZGVmZXJfcGF0Y2hfb3JfdGhy
b3coZmlyc3RfcmVzdWx0cy5mYWlsaW5nX3Rlc3RfcmVzdWx0cygpLCBmaXJzdF9yZXN1bHRzX2Fy
Y2hpdmUsIGZpcnN0X3NjcmlwdF9lcnJvciwgZmlyc3RfZmFpbHVyZV9zdGF0dXNfaWQpCisgICAg
ICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICAgICAgICAgIGlmIGZpcnN0X3Jlc3VsdHMu
ZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQoKToKKyAgICAgICAgICAgICAgICBzZWxmLl9z
aG91bGRfZGVmZXJfcGF0Y2hfb3JfdGhyb3coc2Vjb25kX3Jlc3VsdHMuZmFpbGluZ190ZXN0X3Jl
c3VsdHMoKSwgc2Vjb25kX3Jlc3VsdHNfYXJjaGl2ZSwgc2Vjb25kX3NjcmlwdF9lcnJvciwgc2Vj
b25kX2ZhaWx1cmVfc3RhdHVzX2lkKQorICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQogCi0g
ICAgICAgICAgICB0ZXN0c190aGF0X29ubHlfZmFpbGVkX2ZpcnN0ID0gZmlyc3RfZmFpbGluZ19y
ZXN1bHRzX3NldC5kaWZmZXJlbmNlKHNlY29uZF9mYWlsaW5nX3Jlc3VsdHNfc2V0KQotICAgICAg
ICAgICAgc2VsZi5fcmVwb3J0X2ZsYWt5X3Rlc3RzKHRlc3RzX3RoYXRfb25seV9mYWlsZWRfZmly
c3QsIGZpcnN0X3Jlc3VsdHNfYXJjaGl2ZSkKKyAgICAgICAgICAgIGlmIHNlbGYuX3Jlc3VsdHNf
ZmFpbGVkX2RpZmZlcmVudF90ZXN0cyhmaXJzdF9yZXN1bHRzLCBzZWNvbmRfcmVzdWx0cyk6Cisg
ICAgICAgICAgICAgICAgZmlyc3RfZmFpbGluZ19yZXN1bHRzX3NldCA9IGZyb3plbnNldChmaXJz
dF9yZXN1bHRzLmZhaWxpbmdfdGVzdF9yZXN1bHRzKCkpCisgICAgICAgICAgICAgICAgc2Vjb25k
X2ZhaWxpbmdfcmVzdWx0c19zZXQgPSBmcm96ZW5zZXQoc2Vjb25kX3Jlc3VsdHMuZmFpbGluZ190
ZXN0X3Jlc3VsdHMoKSkKIAotICAgICAgICAgICAgdGVzdHNfdGhhdF9vbmx5X2ZhaWxlZF9zZWNv
bmQgPSBzZWNvbmRfZmFpbGluZ19yZXN1bHRzX3NldC5kaWZmZXJlbmNlKGZpcnN0X2ZhaWxpbmdf
cmVzdWx0c19zZXQpCi0gICAgICAgICAgICBzZWxmLl9yZXBvcnRfZmxha3lfdGVzdHModGVzdHNf
dGhhdF9vbmx5X2ZhaWxlZF9zZWNvbmQsIHNlY29uZF9yZXN1bHRzX2FyY2hpdmUpCisgICAgICAg
ICAgICAgICAgdGVzdHNfdGhhdF9vbmx5X2ZhaWxlZF9maXJzdCA9IGZpcnN0X2ZhaWxpbmdfcmVz
dWx0c19zZXQuZGlmZmVyZW5jZShzZWNvbmRfZmFpbGluZ19yZXN1bHRzX3NldCkKKyAgICAgICAg
ICAgICAgICBzZWxmLl9yZXBvcnRfZmxha3lfdGVzdHModGVzdHNfdGhhdF9vbmx5X2ZhaWxlZF9m
aXJzdCwgZmlyc3RfcmVzdWx0c19hcmNoaXZlKQogCi0gICAgICAgICAgICB0ZXN0c190aGF0X2Nv
bnNpc3RlbnRseV9mYWlsZWQgPSBmaXJzdF9mYWlsaW5nX3Jlc3VsdHNfc2V0LmludGVyc2VjdGlv
bihzZWNvbmRfZmFpbGluZ19yZXN1bHRzX3NldCkKLSAgICAgICAgICAgIGlmIHRlc3RzX3RoYXRf
Y29uc2lzdGVudGx5X2ZhaWxlZDoKLSAgICAgICAgICAgICAgICBpZiBzZWxmLl9zaG91bGRfZGVm
ZXJfcGF0Y2hfb3JfdGhyb3codGVzdHNfdGhhdF9jb25zaXN0ZW50bHlfZmFpbGVkLCBmaXJzdF9y
ZXN1bHRzX2FyY2hpdmUsIGZpcnN0X3NjcmlwdF9lcnJvciwgZmlyc3RfZmFpbHVyZV9zdGF0dXNf
aWQpOgotICAgICAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UgICMgRGVmZXIgcGF0Y2gKKyAg
ICAgICAgICAgICAgICB0ZXN0c190aGF0X29ubHlfZmFpbGVkX3NlY29uZCA9IHNlY29uZF9mYWls
aW5nX3Jlc3VsdHNfc2V0LmRpZmZlcmVuY2UoZmlyc3RfZmFpbGluZ19yZXN1bHRzX3NldCkKKyAg
ICAgICAgICAgICAgICBzZWxmLl9yZXBvcnRfZmxha3lfdGVzdHModGVzdHNfdGhhdF9vbmx5X2Zh
aWxlZF9zZWNvbmQsIHNlY29uZF9yZXN1bHRzX2FyY2hpdmUpCiAKLSAgICAgICAgICAgICMgQXQg
dGhpcyBwb2ludCB3ZSBrbm93IHRoYXQgYXQgbGVhc3Qgb25lIHRlc3QgZmxha2VkLCBidXQgbm8g
Y29uc2lzdGVudCBmYWlsdXJlcwotICAgICAgICAgICAgIyB3ZXJlIGludHJvZHVjZWQuIFRoaXMg
aXMgYSBiaXQgb2YgYSBncmV5LXpvbmUuCi0gICAgICAgICAgICByZXR1cm4gRmFsc2UgICMgRGVm
ZXIgcGF0Y2gKKyAgICAgICAgICAgICAgICB0ZXN0c190aGF0X2NvbnNpc3RlbnRseV9mYWlsZWQg
PSBmaXJzdF9mYWlsaW5nX3Jlc3VsdHNfc2V0LmludGVyc2VjdGlvbihzZWNvbmRfZmFpbGluZ19y
ZXN1bHRzX3NldCkKKyAgICAgICAgICAgICAgICBpZiB0ZXN0c190aGF0X2NvbnNpc3RlbnRseV9m
YWlsZWQ6CisgICAgICAgICAgICAgICAgICAgIGlmIHNlbGYuX3Nob3VsZF9kZWZlcl9wYXRjaF9v
cl90aHJvdyh0ZXN0c190aGF0X2NvbnNpc3RlbnRseV9mYWlsZWQsIGZpcnN0X3Jlc3VsdHNfYXJj
aGl2ZSwgZmlyc3Rfc2NyaXB0X2Vycm9yLCBmaXJzdF9mYWlsdXJlX3N0YXR1c19pZCk6CisgICAg
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UgICMgRGVmZXIgcGF0Y2gKIAotICAgICAg
ICBpZiBzZWxmLl9zaG91bGRfZGVmZXJfcGF0Y2hfb3JfdGhyb3coZmlyc3RfcmVzdWx0cy5mYWls
aW5nX3Rlc3RfcmVzdWx0cygpLCBmaXJzdF9yZXN1bHRzX2FyY2hpdmUsIGZpcnN0X3NjcmlwdF9l
cnJvciwgZmlyc3RfZmFpbHVyZV9zdGF0dXNfaWQpOgotICAgICAgICAgICAgcmV0dXJuIEZhbHNl
ICAjIERlZmVyIHBhdGNoCisgICAgICAgICAgICAgICAgIyBBdCB0aGlzIHBvaW50IHdlIGtub3cg
dGhhdCBhdCBsZWFzdCBvbmUgdGVzdCBmbGFrZWQsIGJ1dCBubyBjb25zaXN0ZW50IGZhaWx1cmVz
CisgICAgICAgICAgICAgICAgIyB3ZXJlIGludHJvZHVjZWQuIFRoaXMgaXMgYSBiaXQgb2YgYSBn
cmV5LXpvbmUuCisgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlICAjIERlZmVyIHBhdGNoCiAK
LSAgICAgICAgIyBBdCB0aGlzIHBvaW50LCB3ZSBrbm93IHRoYXQgdGhlIGZpcnN0IGFuZCBzZWNv
bmQgcnVucyBoYWQgdGhlIGV4YWN0IHNhbWUgZmFpbHVyZXMsCi0gICAgICAgICMgYW5kIHRoYXQg
dGhvc2UgZmFpbHVyZXMgYXJlIGFsbCBwcmVzZW50IG9uIHRoZSBjbGVhbiB0cmVlLCBzbyB3ZSBj
YW4gc2F5IHdpdGggY2VydGFpbnR5Ci0gICAgICAgICMgdGhhdCB0aGUgcGF0Y2ggaXMgZ29vZC4K
LSAgICAgICAgcmV0dXJuIFRydWUKKyAgICAgICAgICAgIGlmIHNlbGYuX3Nob3VsZF9kZWZlcl9w
YXRjaF9vcl90aHJvdyhmaXJzdF9yZXN1bHRzLmZhaWxpbmdfdGVzdF9yZXN1bHRzKCksIGZpcnN0
X3Jlc3VsdHNfYXJjaGl2ZSwgZmlyc3Rfc2NyaXB0X2Vycm9yLCBmaXJzdF9mYWlsdXJlX3N0YXR1
c19pZCk6CisgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlICAjIERlZmVyIHBhdGNoCisKKyAg
ICAgICAgICAgICMgQXQgdGhpcyBwb2ludCwgd2Uga25vdyB0aGF0IHRoZSBmaXJzdCBhbmQgc2Vj
b25kIHJ1bnMgaGFkIHRoZSBleGFjdCBzYW1lIGZhaWx1cmVzLAorICAgICAgICAgICAgIyBhbmQg
dGhhdCB0aG9zZSBmYWlsdXJlcyBhcmUgYWxsIHByZXNlbnQgb24gdGhlIGNsZWFuIHRyZWUsIHNv
IHdlIGNhbiBzYXkgd2l0aCBjZXJ0YWludHkKKyAgICAgICAgICAgICMgdGhhdCB0aGUgcGF0Y2gg
aXMgZ29vZC4KKyAgICAgICAgICAgIHJldHVybiBUcnVlCiAKICAgICBkZWYgcmVzdWx0c19hcmNo
aXZlX2Zyb21fcGF0Y2hfdGVzdF9ydW4oc2VsZiwgcGF0Y2gpOgogICAgICAgICBhc3NlcnQoc2Vs
Zi5fcGF0Y2guaWQoKSA9PSBwYXRjaC5pZCgpKSAgIyBQYXRjaEFuYWx5c2lzVGFzayBpcyBub3Qg
Y3VycmVudGx5IHJlLXVzZWFibGUuCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L3Rvb2wvY29tbWFuZHMvZG93bmxvYWQucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wv
Y29tbWFuZHMvZG93bmxvYWQucHkKaW5kZXggZTUxNjlhYWM4NWYzMTg2ZTg0YmU5ZDUwMjQ1OTJi
ZDdmZTZkNWRkNS4uMTRiNTViYzNmN2M5YzEwYjVkZjYwZmMxYWY4N2Q3Y2EzOWUzYmM5NCAxMDA2
NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Rvd25sb2FkLnB5
CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9kb3dubG9hZC5weQpA
QCAtMSw1ICsxLDUgQEAKICMgQ29weXJpZ2h0IChjKSAyMDA5LCAyMDExIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0jIENvcHlyaWdodCAoYykgMjAwOSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoYykgMjAwOSwgMjAxNyBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogIyBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC04
Nyw2ICs4NywxNCBAQCBjbGFzcyBCdWlsZEFuZFRlc3QoQWJzdHJhY3RTZXF1ZW5jZWRDb21tYW5k
KToKICAgICBdCiAKIAorY2xhc3MgQ2hlY2tQYXRjaFJlbGV2YW5jZShBYnN0cmFjdFNlcXVlbmNl
ZENvbW1hbmQpOgorICAgIG5hbWUgPSAiY2hlY2stcGF0Y2gtcmVsZXZhbmNlIgorICAgIGhlbHBf
dGV4dCA9ICJDaGVjayBpZiB0aGlzIHBhdGNoIG5lZWRzIHRvIGJlIHRlc3RlZCIKKyAgICBzdGVw
cyA9IFsKKyAgICAgICAgc3RlcHMuQ2hlY2tQYXRjaFJlbGV2YW5jZSwKKyAgICBdCisKKwogY2xh
c3MgTGFuZChBYnN0cmFjdFNlcXVlbmNlZENvbW1hbmQpOgogICAgIG5hbWUgPSAibGFuZCIKICAg
ICBoZWxwX3RleHQgPSAiTGFuZCB0aGUgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeSBkaWZmIGFu
ZCB1cGRhdGVzIHRoZSBhc3NvY2lhdGVkIGJ1ZyBpZiBhbnkiCmRpZmYgLS1naXQgYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZWFybHl3YXJuaW5nc3lzdGVtLnB5IGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Vhcmx5d2FybmluZ3N5c3RlbS5weQpp
bmRleCA5YmMwNDE4NjBjZTY3NDU0NDU0ZTRiMjUxNDM4YTlkYmU1MjY0NTEzLi44NmIxODY1NWYy
ZWEyNDlhMmE2MWI1YjQ1MmVkODM0ZmEyYTcyMzZlIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZWFybHl3YXJuaW5nc3lzdGVtLnB5CisrKyBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9lYXJseXdhcm5pbmdzeXN0ZW0ucHkKQEAg
LTEsNCArMSw1IEBACiAjIENvcHlyaWdodCAoYykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKGMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtMjgsNiArMjksNyBA
QAogCiBpbXBvcnQganNvbgogaW1wb3J0IGxvZ2dpbmcKK2ltcG9ydCBvcwogZnJvbSBvcHRwYXJz
ZSBpbXBvcnQgbWFrZV9vcHRpb24KIAogZnJvbSB3ZWJraXRweS5jb21tb24uY29uZmlnLmNvbW1p
dHRlcnMgaW1wb3J0IENvbW1pdHRlckxpc3QKQEAgLTM2LDcgKzM4LDggQEAgZnJvbSB3ZWJraXRw
eS5jb21tb24uc3lzdGVtLmZpbGVzeXN0ZW0gaW1wb3J0IEZpbGVTeXN0ZW0KIGZyb20gd2Via2l0
cHkuY29tbW9uLnN5c3RlbS5leGVjdXRpdmUgaW1wb3J0IFNjcmlwdEVycm9yCiBmcm9tIHdlYmtp
dHB5LnRvb2wuYm90LmVhcmx5d2FybmluZ3N5c3RlbXRhc2sgaW1wb3J0IEVhcmx5V2FybmluZ1N5
c3RlbVRhc2ssIEVhcmx5V2FybmluZ1N5c3RlbVRhc2tEZWxlZ2F0ZQogZnJvbSB3ZWJraXRweS50
b29sLmJvdC5sYXlvdXR0ZXN0cmVzdWx0c3JlYWRlciBpbXBvcnQgTGF5b3V0VGVzdFJlc3VsdHNS
ZWFkZXIKLWZyb20gd2Via2l0cHkudG9vbC5ib3QucGF0Y2hhbmFseXNpc3Rhc2sgaW1wb3J0IFVu
YWJsZVRvQXBwbHlQYXRjaCwgUGF0Y2hJc05vdFZhbGlkCitmcm9tIHdlYmtpdHB5LnRvb2wuYm90
LmpzY3Rlc3RyZXN1bHRzcmVhZGVyIGltcG9ydCBKU0NUZXN0UmVzdWx0c1JlYWRlcgorZnJvbSB3
ZWJraXRweS50b29sLmJvdC5wYXRjaGFuYWx5c2lzdGFzayBpbXBvcnQgVW5hYmxlVG9BcHBseVBh
dGNoLCBQYXRjaElzTm90VmFsaWQsIFBhdGNoSXNOb3RBcHBsaWNhYmxlCiBmcm9tIHdlYmtpdHB5
LnRvb2wuYm90LnF1ZXVlZW5naW5lIGltcG9ydCBRdWV1ZUVuZ2luZQogZnJvbSB3ZWJraXRweS50
b29sLmNvbW1hbmRzLnF1ZXVlcyBpbXBvcnQgQWJzdHJhY3RSZXZpZXdRdWV1ZQogCkBAIC01Myw3
ICs1NiwxMiBAQCBjbGFzcyBBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbShBYnN0cmFjdFJldmll
d1F1ZXVlLCBFYXJseVdhcm5pbmdTeXN0ZW1UYXNrRGVsZQogCiAgICAgZGVmIGJlZ2luX3dvcmtf
cXVldWUoc2VsZik6CiAgICAgICAgIEFic3RyYWN0UmV2aWV3UXVldWUuYmVnaW5fd29ya19xdWV1
ZShzZWxmKQotICAgICAgICBzZWxmLl9sYXlvdXRfdGVzdF9yZXN1bHRzX3JlYWRlciA9IExheW91
dFRlc3RSZXN1bHRzUmVhZGVyKHNlbGYuX3Rvb2wsIHNlbGYuX3BvcnQucmVzdWx0c19kaXJlY3Rv
cnkoKSwgc2VsZi5fbG9nX2RpcmVjdG9yeSgpKQorCisgICAgICAgIGlmIHNlbGYuZ3JvdXAoKSA9
PSAianNjIjoKKyAgICAgICAgICAgIGRpciA9IG9zLnBhdGguZGlybmFtZShvcy5wYXRoLmRpcm5h
bWUob3MucGF0aC5kaXJuYW1lKHNlbGYuX3BvcnQucmVzdWx0c19kaXJlY3RvcnkoKSkpKQorICAg
ICAgICAgICAgc2VsZi5fdGVzdF9yZXN1bHRzX3JlYWRlciA9IEpTQ1Rlc3RSZXN1bHRzUmVhZGVy
KHNlbGYuX3Rvb2wsIGRpcikKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYuX3Rlc3Rf
cmVzdWx0c19yZWFkZXIgPSBMYXlvdXRUZXN0UmVzdWx0c1JlYWRlcihzZWxmLl90b29sLCBzZWxm
Ll9wb3J0LnJlc3VsdHNfZGlyZWN0b3J5KCksIHNlbGYuX2xvZ19kaXJlY3RvcnkoKSkKIAogICAg
IGRlZiBfZmFpbGluZ190ZXN0c19tZXNzYWdlKHNlbGYsIHRhc2ssIHBhdGNoKToKICAgICAgICAg
cmVzdWx0cyA9IHRhc2sucmVzdWx0c19mcm9tX3BhdGNoX3Rlc3RfcnVuKHBhdGNoKQpAQCAtNzks
OCArODcsMTIgQEAgY2xhc3MgQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0oQWJzdHJhY3RSZXZp
ZXdRdWV1ZSwgRWFybHlXYXJuaW5nU3lzdGVtVGFza0RlbGUKICAgICAgICAgICAgIHRvb2wuYnVn
cy5hZGRfY2NfdG9fYnVnKHBhdGNoLmJ1Z19pZCgpLCBzZWxmLndhdGNoZXJzKQogICAgICAgICB0
b29sLmJ1Z3Muc2V0X2ZsYWdfb25fYXR0YWNobWVudChwYXRjaC5pZCgpLCAiY29tbWl0LXF1ZXVl
IiwgIi0iLCBtZXNzYWdlKQogCisgICAgIyBUaGlzIGV4aXN0cyBmb3IgbW9ja2luZworICAgIGRl
ZiBfY3JlYXRlX3Rhc2soc2VsZiwgcGF0Y2gpOgorICAgICAgICByZXR1cm4gRWFybHlXYXJuaW5n
U3lzdGVtVGFzayhzZWxmLCBwYXRjaCwgc2VsZi5fb3B0aW9ucy5ydW5fdGVzdHMpCisKICAgICBk
ZWYgcmV2aWV3X3BhdGNoKHNlbGYsIHBhdGNoKToKLSAgICAgICAgdGFzayA9IEVhcmx5V2Fybmlu
Z1N5c3RlbVRhc2soc2VsZiwgcGF0Y2gsIHNlbGYuX29wdGlvbnMucnVuX3Rlc3RzKQorICAgICAg
ICB0YXNrID0gc2VsZi5fY3JlYXRlX3Rhc2socGF0Y2gpCiAgICAgICAgIHRyeToKICAgICAgICAg
ICAgIHN1Y2NlZWRlZCA9IHRhc2sucnVuKCkKICAgICAgICAgICAgIGlmIG5vdCBzdWNjZWVkZWQ6
CkBAIC05Myw2ICsxMDUsMTAgQEAgY2xhc3MgQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0oQWJz
dHJhY3RSZXZpZXdRdWV1ZSwgRWFybHlXYXJuaW5nU3lzdGVtVGFza0RlbGUKICAgICAgICAgZXhj
ZXB0IFVuYWJsZVRvQXBwbHlQYXRjaCwgZToKICAgICAgICAgICAgIHNlbGYuX2RpZF9lcnJvcihw
YXRjaCwgIiVzIHVuYWJsZSB0byBhcHBseSBwYXRjaC4iICUgc2VsZi5uYW1lKQogICAgICAgICAg
ICAgcmV0dXJuIEZhbHNlCisgICAgICAgIGV4Y2VwdCBQYXRjaElzTm90QXBwbGljYWJsZSwgZToK
KyAgICAgICAgICAgIHNlbGYuX3VwZGF0ZV9zdGF0dXMoIlBhdGNoIG5vdCBhcHBsaWNhYmxlIHRv
ICVzLiIgJSBzZWxmLm5hbWUsIHBhdGNoKQorICAgICAgICAgICAgc2VsZi5fcmVsZWFzZV93b3Jr
X2l0ZW0ocGF0Y2gpCisgICAgICAgICAgICByZXR1cm4gRmFsc2UKICAgICAgICAgZXhjZXB0IFNj
cmlwdEVycm9yLCBlOgogICAgICAgICAgICAgc2VsZi5fcG9zdF9yZWplY3RfbWVzc2FnZV9vbl9i
dWcoc2VsZi5fdG9vbCwgcGF0Y2gsIHRhc2suZmFpbHVyZV9zdGF0dXNfaWQsIHNlbGYuX2ZhaWxp
bmdfdGVzdHNfbWVzc2FnZSh0YXNrLCBwYXRjaCkpCiAgICAgICAgICAgICByZXN1bHRzX2FyY2hp
dmUgPSB0YXNrLnJlc3VsdHNfYXJjaGl2ZV9mcm9tX3BhdGNoX3Rlc3RfcnVuKHBhdGNoKQpAQCAt
MTE3LDE0ICsxMzMsMTcgQEAgY2xhc3MgQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0oQWJzdHJh
Y3RSZXZpZXdRdWV1ZSwgRWFybHlXYXJuaW5nU3lzdGVtVGFza0RlbGUKICAgICAgICAgcmV0dXJu
IHNlbGYuX3VwZGF0ZV9zdGF0dXMobWVzc2FnZSwgcGF0Y2g9cGF0Y2gsIHJlc3VsdHNfZmlsZT1m
YWlsdXJlX2xvZykKIAogICAgIGRlZiB0ZXN0X3Jlc3VsdHMoc2VsZik6Ci0gICAgICAgIHJldHVy
biBzZWxmLl9sYXlvdXRfdGVzdF9yZXN1bHRzX3JlYWRlci5yZXN1bHRzKCkKKyAgICAgICAgcmV0
dXJuIHNlbGYuX3Rlc3RfcmVzdWx0c19yZWFkZXIucmVzdWx0cygpCiAKICAgICBkZWYgYXJjaGl2
ZV9sYXN0X3Rlc3RfcmVzdWx0cyhzZWxmLCBwYXRjaCk6Ci0gICAgICAgIHJldHVybiBzZWxmLl9s
YXlvdXRfdGVzdF9yZXN1bHRzX3JlYWRlci5hcmNoaXZlKHBhdGNoKQorICAgICAgICByZXR1cm4g
c2VsZi5fdGVzdF9yZXN1bHRzX3JlYWRlci5hcmNoaXZlKHBhdGNoKQogCiAgICAgZGVmIGJ1aWxk
X3N0eWxlKHNlbGYpOgogICAgICAgICByZXR1cm4gc2VsZi5fYnVpbGRfc3R5bGUKIAorICAgIGRl
ZiBncm91cChzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX2dyb3VwCisKICAgICBkZWYgcmVm
ZXRjaF9wYXRjaChzZWxmLCBwYXRjaCk6CiAgICAgICAgIHJldHVybiBzZWxmLl90b29sLmJ1Z3Mu
ZmV0Y2hfYXR0YWNobWVudChwYXRjaC5pZCgpKQogCkBAIC0xNDksMTIgKzE2OCwxMyBAQCBjbGFz
cyBBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbShBYnN0cmFjdFJldmlld1F1ZXVlLCBFYXJseVdh
cm5pbmdTeXN0ZW1UYXNrRGVsZQogCiAgICAgICAgIGNsYXNzZXMgPSBbXQogICAgICAgICBmb3Ig
bmFtZSwgY29uZmlnIGluIGV3c2VzLml0ZXJpdGVtcygpOgotICAgICAgICAgICAgY2xhc3Nlcy5h
cHBlbmQodHlwZShuYW1lLmVuY29kZSgndXRmLTgnKS50cmFuc2xhdGUoTm9uZSwgJyAtJyksIChB
YnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbSwpLCB7CisgICAgICAgICAgICBjbGFzc2VzLmFwcGVu
ZCh0eXBlKG5hbWUuZW5jb2RlKCd1dGYtOCcpLnRyYW5zbGF0ZShOb25lLCAnIC0nKSwgKGNscywp
LCB7CiAgICAgICAgICAgICAgICAgJ25hbWUnOiBjb25maWcuZ2V0KCduYW1lJywgY29uZmlnWydw
b3J0J10gKyAnLWV3cycpLAogICAgICAgICAgICAgICAgICdwb3J0X25hbWUnOiBjb25maWdbJ3Bv
cnQnXSwKICAgICAgICAgICAgICAgICAnYXJjaGl0ZWN0dXJlJzogY29uZmlnLmdldCgnYXJjaGl0
ZWN0dXJlJywgTm9uZSksCiAgICAgICAgICAgICAgICAgJ19idWlsZF9zdHlsZSc6IGNvbmZpZy5n
ZXQoJ3N0eWxlJywgInJlbGVhc2UiKSwKICAgICAgICAgICAgICAgICAnd2F0Y2hlcnMnOiBjb25m
aWcuZ2V0KCd3YXRjaGVycycsIFtdKSwKICAgICAgICAgICAgICAgICAncnVuX3Rlc3RzJzogY29u
ZmlnLmdldCgncnVuVGVzdHMnLCBjbHMucnVuX3Rlc3RzKSwKKyAgICAgICAgICAgICAgICAnX2dy
b3VwJzogY29uZmlnLmdldCgnZ3JvdXAnLCBOb25lKSwKICAgICAgICAgICAgIH0pKQogICAgICAg
ICByZXR1cm4gY2xhc3NlcwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29s
L2NvbW1hbmRzL2Vhcmx5d2FybmluZ3N5c3RlbV91bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvdG9vbC9jb21tYW5kcy9lYXJseXdhcm5pbmdzeXN0ZW1fdW5pdHRlc3QucHkKaW5k
ZXggMDg4ODc4MTNjZTJlOTNhOGVjOWRhMzc2MzZlY2JkZTllZmYzYzllNy4uNWE5NjNmNzMxNjNk
NTZiYzgwZmUyNjk3OTRkMmMxMzRlN2VhOGM5MSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS90b29sL2NvbW1hbmRzL2Vhcmx5d2FybmluZ3N5c3RlbV91bml0dGVzdC5weQorKysg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZWFybHl3YXJuaW5nc3lzdGVt
X3VuaXR0ZXN0LnB5CkBAIC0xLDQgKzEsNSBAQAogIyBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUK
QEAgLTI5LDExICszMCwxMyBAQAogZnJvbSB3ZWJraXRweS50aGlyZHBhcnR5Lm1vY2sgaW1wb3J0
IE1vY2sKIGZyb20gd2Via2l0cHkuY29tbW9uLmhvc3QgaW1wb3J0IEhvc3QKIGZyb20gd2Via2l0
cHkuY29tbW9uLmhvc3RfbW9jayBpbXBvcnQgTW9ja0hvc3QKK2Zyb20gd2Via2l0cHkuY29tbW9u
Lm5ldC5qc2N0ZXN0cmVzdWx0cyBpbXBvcnQgSlNDVGVzdFJlc3VsdHMKIGZyb20gd2Via2l0cHku
Y29tbW9uLm5ldC5sYXlvdXR0ZXN0cmVzdWx0cyBpbXBvcnQgTGF5b3V0VGVzdFJlc3VsdHMKIGZy
b20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5vdXRwdXRjYXB0dXJlIGltcG9ydCBPdXRwdXRDYXB0
dXJlCiBmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5tb2RlbHMgaW1wb3J0IHRlc3RfcmVzdWx0
cwogZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMubW9kZWxzIGltcG9ydCB0ZXN0X2ZhaWx1cmVz
CiBmcm9tIHdlYmtpdHB5LnBvcnQuZmFjdG9yeSBpbXBvcnQgUG9ydEZhY3RvcnkKK2Zyb20gd2Vi
a2l0cHkudG9vbC5ib3QuZWFybHl3YXJuaW5nc3lzdGVtdGFzayBpbXBvcnQgRWFybHlXYXJuaW5n
U3lzdGVtVGFzawogZnJvbSB3ZWJraXRweS50b29sLmJvdC5xdWV1ZWVuZ2luZSBpbXBvcnQgUXVl
dWVFbmdpbmUKIGZyb20gd2Via2l0cHkudG9vbC5jb21tYW5kcy5lYXJseXdhcm5pbmdzeXN0ZW0g
aW1wb3J0ICoKIGZyb20gd2Via2l0cHkudG9vbC5jb21tYW5kcy5xdWV1ZXMgaW1wb3J0IFBhdGNo
UHJvY2Vzc2luZ1F1ZXVlCkBAIC00MSwxMiArNDQsMjggQEAgZnJvbSB3ZWJraXRweS50b29sLmNv
bW1hbmRzLnF1ZXVlc3Rlc3QgaW1wb3J0IFF1ZXVlc1Rlc3QKIGZyb20gd2Via2l0cHkudG9vbC5t
b2NrdG9vbCBpbXBvcnQgTW9ja1Rvb2wsIE1vY2tPcHRpb25zCiAKIAorY2xhc3MgTW9ja0Vhcmx5
V2FybmluZ1N5c3RlbVRhc2soRWFybHlXYXJuaW5nU3lzdGVtVGFzayk6CisgICAgZGVmIF90ZXN0
X3BhdGNoKHNlbGYpOgorICAgICAgICBzZWxmLl90ZXN0KCkKKyAgICAgICAgcmV0dXJuIEZhbHNl
CisKKworY2xhc3MgTW9ja0Fic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtKEFic3RyYWN0RWFybHlX
YXJuaW5nU3lzdGVtKToKKyAgICBkZWYgdGVzdF9yZXN1bHRzKHNlbGYpOgorICAgICAgICByZXR1
cm4gTm9uZQorCisgICAgZGVmIF9jcmVhdGVfdGFzayhzZWxmLCBwYXRjaCk6CisgICAgICAgIHRh
c2sgPSBNb2NrRWFybHlXYXJuaW5nU3lzdGVtVGFzayhzZWxmLCBwYXRjaCwgc2VsZi5fb3B0aW9u
cy5ydW5fdGVzdHMpCisgICAgICAgIHJldHVybiB0YXNrCisKKwogY2xhc3MgQWJzdHJhY3RFYXJs
eVdhcm5pbmdTeXN0ZW1UZXN0KFF1ZXVlc1Rlc3QpOgogICAgIGRlZiB0ZXN0X2ZhaWxpbmdfdGVz
dHNfbWVzc2FnZShzZWxmKToKICAgICAgICAgIyBOZWVkZWQgdG8gZGVmaW5lIHBvcnRfbmFtZSwg
dXNlZCBpbiBBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbS5fX2luaXRfXwogICAgICAgICBjbGFz
cyBUZXN0RVdTKEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtKToKICAgICAgICAgICAgIHBvcnRf
bmFtZSA9ICJ3aW4iICAjIE5lZWRzIHRvIGJlIGEgcG9ydCB3aGljaCBwb3J0L2ZhY3RvcnkgdW5k
ZXJzdGFuZHMuCiAgICAgICAgICAgICBfYnVpbGRfc3R5bGUgPSBOb25lCisgICAgICAgICAgICBf
Z3JvdXAgPSBOb25lCiAKICAgICAgICAgZXdzID0gVGVzdEVXUygpCiAgICAgICAgIGV3cy5iaW5k
X3RvX3Rvb2woTW9ja1Rvb2woKSkKQEAgLTYwLDQzICs3OSw2NiBAQCBjbGFzcyBBYnN0cmFjdEVh
cmx5V2FybmluZ1N5c3RlbVRlc3QoUXVldWVzVGVzdCk6CiAgICAgICAgIHBhdGNoID0gZXdzLl90
b29sLmJ1Z3MuZmV0Y2hfYXR0YWNobWVudCgxMDAwMCkKICAgICAgICAgc2VsZi5hc3NlcnRNdWx0
aUxpbmVFcXVhbChld3MuX2ZhaWxpbmdfdGVzdHNfbWVzc2FnZSh0YXNrLCBwYXRjaCksICJOZXcg
ZmFpbGluZyB0ZXN0czpcbmZvby5odG1sXG5iYXIuaHRtbCIpCiAKKyAgICBkZWYgdGVzdF9mYWls
aW5nX2pzY190ZXN0c19tZXNzYWdlKHNlbGYpOgorICAgICAgICAjIE5lZWRlZCB0byBkZWZpbmUg
cG9ydF9uYW1lLCB1c2VkIGluIEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtLl9faW5pdF9fCisg
ICAgICAgIGNsYXNzIFRlc3RFV1MoQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0pOgorICAgICAg
ICAgICAgcG9ydF9uYW1lID0gIm1hYyIgICMgTmVlZHMgdG8gYmUgYSBwb3J0IHdoaWNoIHBvcnQv
ZmFjdG9yeSB1bmRlcnN0YW5kcy4KKyAgICAgICAgICAgIF9idWlsZF9zdHlsZSA9IE5vbmUKKyAg
ICAgICAgICAgIF9ncm91cCA9ICJqc2MiCisKKyAgICAgICAgZXdzID0gVGVzdEVXUygpCisgICAg
ICAgIGV3cy5iaW5kX3RvX3Rvb2woTW9ja1Rvb2woKSkKKyAgICAgICAgZXdzLmhvc3QgPSBNb2Nr
SG9zdCgpCisgICAgICAgIGV3cy5fb3B0aW9ucyA9IE1vY2tPcHRpb25zKHBvcnQ9Tm9uZSwgY29u
ZmlybT1GYWxzZSkKKyAgICAgICAgT3V0cHV0Q2FwdHVyZSgpLmFzc2VydF9vdXRwdXRzKHNlbGYs
IGV3cy5iZWdpbl93b3JrX3F1ZXVlLCBleHBlY3RlZF9sb2dzPXNlbGYuX2RlZmF1bHRfYmVnaW5f
d29ya19xdWV1ZV9sb2dzKGV3cy5uYW1lKSkKKyAgICAgICAgdGFzayA9IE1vY2soKQorICAgICAg
ICB0YXNrLnJlc3VsdHNfZnJvbV9wYXRjaF90ZXN0X3J1biA9IGxhbWJkYSBhOiBKU0NUZXN0UmVz
dWx0cyhGYWxzZSwgWyJlczYueWFtbC9lczYvdHlwZWRfYXJyYXlzX0ludDhBcnJheS5qcy5kZWZh
dWx0IiwgImVzNi55YW1sL2VzNi90eXBlZF9hcnJheXNfVWludDhBcnJheS5qcy5kZWZhdWx0Il0p
CisgICAgICAgIHBhdGNoID0gZXdzLl90b29sLmJ1Z3MuZmV0Y2hfYXR0YWNobWVudCgxMDAwMCkK
KyAgICAgICAgc2VsZi5hc3NlcnRNdWx0aUxpbmVFcXVhbChld3MuX2ZhaWxpbmdfdGVzdHNfbWVz
c2FnZSh0YXNrLCBwYXRjaCksICJOZXcgZmFpbGluZyB0ZXN0czpcbmVzNi55YW1sL2VzNi90eXBl
ZF9hcnJheXNfSW50OEFycmF5LmpzLmRlZmF1bHRcbmVzNi55YW1sL2VzNi90eXBlZF9hcnJheXNf
VWludDhBcnJheS5qcy5kZWZhdWx0XG5hcGlUZXN0cyIpCisKIAogY2xhc3MgRWFybHlXYXJuaW5n
U3lzdGVtVGVzdChRdWV1ZXNUZXN0KToKLSAgICBkZWYgX2RlZmF1bHRfZXhwZWN0ZWRfbG9ncyhz
ZWxmLCBld3MpOgorICAgIGRlZiBfZGVmYXVsdF9leHBlY3RlZF9sb2dzKHNlbGYsIGV3cywgY29u
Y2x1c2l2ZSk6CiAgICAgICAgIHN0cmluZ19yZXBsYWNlbWVudHMgPSB7CiAgICAgICAgICAgICAi
bmFtZSI6IGV3cy5uYW1lLAogICAgICAgICAgICAgInBvcnQiOiBld3MucG9ydF9uYW1lLAogICAg
ICAgICAgICAgImFyY2hpdGVjdHVyZSI6ICIgLS1hcmNoaXRlY3R1cmU9JXMiICUgZXdzLmFyY2hp
dGVjdHVyZSBpZiBld3MuYXJjaGl0ZWN0dXJlIGVsc2UgIiIsCiAgICAgICAgICAgICAiYnVpbGRf
c3R5bGUiOiBld3MuYnVpbGRfc3R5bGUoKSwKKyAgICAgICAgICAgICJncm91cCI6IGV3cy5ncm91
cCgpLAogICAgICAgICB9CiAgICAgICAgIGlmIGV3cy5ydW5fdGVzdHM6Ci0gICAgICAgICAgICBy
dW5fdGVzdHNfbGluZSA9ICJSdW5uaW5nOiB3ZWJraXQtcGF0Y2ggLS1zdGF0dXMtaG9zdD1leGFt
cGxlLmNvbSBidWlsZC1hbmQtdGVzdCAtLW5vLWNsZWFuIC0tbm8tdXBkYXRlIC0tdGVzdCAtLW5v
bi1pbnRlcmFjdGl2ZSAtLWJ1aWxkLXN0eWxlPSUoYnVpbGRfc3R5bGUpcyAtLXBvcnQ9JShwb3J0
KXMlKGFyY2hpdGVjdHVyZSlzXG4iICUgc3RyaW5nX3JlcGxhY2VtZW50cworICAgICAgICAgICAg
cnVuX3Rlc3RzX2xpbmUgPSAiUnVubmluZzogd2Via2l0LXBhdGNoIC0tc3RhdHVzLWhvc3Q9ZXhh
bXBsZS5jb20gYnVpbGQtYW5kLXRlc3QgLS1uby1jbGVhbiAtLW5vLXVwZGF0ZSAtLXRlc3QgLS1u
b24taW50ZXJhY3RpdmUgLS1idWlsZC1zdHlsZT0lKGJ1aWxkX3N0eWxlKXMgLS1ncm91cD0lKGdy
b3VwKXMgLS1wb3J0PSUocG9ydClzJShhcmNoaXRlY3R1cmUpc1xuIiAlIHN0cmluZ19yZXBsYWNl
bWVudHMKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIHJ1bl90ZXN0c19saW5lID0gIiIKICAg
ICAgICAgc3RyaW5nX3JlcGxhY2VtZW50c1sncnVuX3Rlc3RzX2xpbmUnXSA9IHJ1bl90ZXN0c19s
aW5lCiAKKyAgICAgICAgaWYgY29uY2x1c2l2ZToKKyAgICAgICAgICAgIHJlc3VsdF9saW5lcyA9
ICJNT0NLOiB1cGRhdGVfc3RhdHVzOiAlKG5hbWUpcyBQYXNzXG5NT0NLOiByZWxlYXNlX3dvcmtf
aXRlbTogJShuYW1lKXMgMTAwMDBcbiIgJSBzdHJpbmdfcmVwbGFjZW1lbnRzCisgICAgICAgIGVs
c2U6CisgICAgICAgICAgICByZXN1bHRfbGluZXMgPSAiTU9DSzogcmVsZWFzZV9sb2NrOiAlKG5h
bWUpcyAxMDAwMFxuIiAlIHN0cmluZ19yZXBsYWNlbWVudHMKKyAgICAgICAgc3RyaW5nX3JlcGxh
Y2VtZW50c1sncmVzdWx0X2xpbmVzJ10gPSByZXN1bHRfbGluZXMKKwogICAgICAgICBleHBlY3Rl
ZF9sb2dzID0gewogICAgICAgICAgICAgImJlZ2luX3dvcmtfcXVldWUiOiBzZWxmLl9kZWZhdWx0
X2JlZ2luX3dvcmtfcXVldWVfbG9ncyhld3MubmFtZSksCiAgICAgICAgICAgICAicHJvY2Vzc193
b3JrX2l0ZW0iOiAiIiJNT0NLOiB1cGRhdGVfc3RhdHVzOiAlKG5hbWUpcyBTdGFydGVkIHByb2Nl
c3NpbmcgcGF0Y2gKIFJ1bm5pbmc6IHdlYmtpdC1wYXRjaCAtLXN0YXR1cy1ob3N0PWV4YW1wbGUu
Y29tIGNsZWFuIC0tcG9ydD0lKHBvcnQpcyUoYXJjaGl0ZWN0dXJlKXMKIFJ1bm5pbmc6IHdlYmtp
dC1wYXRjaCAtLXN0YXR1cy1ob3N0PWV4YW1wbGUuY29tIHVwZGF0ZSAtLXBvcnQ9JShwb3J0KXMl
KGFyY2hpdGVjdHVyZSlzCiBSdW5uaW5nOiB3ZWJraXQtcGF0Y2ggLS1zdGF0dXMtaG9zdD1leGFt
cGxlLmNvbSBhcHBseS1hdHRhY2htZW50IC0tbm8tdXBkYXRlIC0tbm9uLWludGVyYWN0aXZlIDEw
MDAwIC0tcG9ydD0lKHBvcnQpcyUoYXJjaGl0ZWN0dXJlKXMKLVJ1bm5pbmc6IHdlYmtpdC1wYXRj
aCAtLXN0YXR1cy1ob3N0PWV4YW1wbGUuY29tIGJ1aWxkIC0tbm8tY2xlYW4gLS1uby11cGRhdGUg
LS1idWlsZC1zdHlsZT0lKGJ1aWxkX3N0eWxlKXMgLS1wb3J0PSUocG9ydClzJShhcmNoaXRlY3R1
cmUpcwotJShydW5fdGVzdHNfbGluZSlzTU9DSzogdXBkYXRlX3N0YXR1czogJShuYW1lKXMgUGFz
cwotTU9DSzogcmVsZWFzZV93b3JrX2l0ZW06ICUobmFtZSlzIDEwMDAwCi0iIiIgJSBzdHJpbmdf
cmVwbGFjZW1lbnRzLAorUnVubmluZzogd2Via2l0LXBhdGNoIC0tc3RhdHVzLWhvc3Q9ZXhhbXBs
ZS5jb20gY2hlY2stcGF0Y2gtcmVsZXZhbmNlIC0tZ3JvdXA9JShncm91cClzIC0tcG9ydD0lKHBv
cnQpcyUoYXJjaGl0ZWN0dXJlKXMKK1J1bm5pbmc6IHdlYmtpdC1wYXRjaCAtLXN0YXR1cy1ob3N0
PWV4YW1wbGUuY29tIGJ1aWxkIC0tbm8tY2xlYW4gLS1uby11cGRhdGUgLS1idWlsZC1zdHlsZT0l
KGJ1aWxkX3N0eWxlKXMgLS1ncm91cD0lKGdyb3VwKXMgLS1wb3J0PSUocG9ydClzJShhcmNoaXRl
Y3R1cmUpcworJShydW5fdGVzdHNfbGluZSlzJShyZXN1bHRfbGluZXMpcyIiIiAlIHN0cmluZ19y
ZXBsYWNlbWVudHMsCiAgICAgICAgICAgICAiaGFuZGxlX3VuZXhwZWN0ZWRfZXJyb3IiOiAiTW9j
ayBlcnJvciBtZXNzYWdlXG4iLAogICAgICAgICAgICAgImhhbmRsZV9zY3JpcHRfZXJyb3IiOiAi
U2NyaXB0RXJyb3IgZXJyb3IgbWVzc2FnZVxuXG5NT0NLIG91dHB1dFxuIiwKICAgICAgICAgfQog
ICAgICAgICByZXR1cm4gZXhwZWN0ZWRfbG9ncwogCi0gICAgZGVmIF90ZXN0X2V3cyhzZWxmLCBl
d3MpOgorICAgIGRlZiBfdGVzdF9ld3Moc2VsZiwgZXdzLCByZXN1bHRzX2FyZV9jb25jbHVzaXZl
PVRydWUpOgogICAgICAgICBld3MuYmluZF90b190b29sKE1vY2tUb29sKCkpCiAgICAgICAgIGV3
cy5ob3N0ID0gTW9ja0hvc3QoKQogICAgICAgICBvcHRpb25zID0gTW9jaygpCiAgICAgICAgIG9w
dGlvbnMucG9ydCA9IE5vbmUKICAgICAgICAgb3B0aW9ucy5ydW5fdGVzdHMgPSBld3MucnVuX3Rl
c3RzCi0gICAgICAgIHNlbGYuYXNzZXJ0X3F1ZXVlX291dHB1dHMoZXdzLCBleHBlY3RlZF9sb2dz
PXNlbGYuX2RlZmF1bHRfZXhwZWN0ZWRfbG9ncyhld3MpLCBvcHRpb25zPW9wdGlvbnMpCisgICAg
ICAgIHNlbGYuYXNzZXJ0X3F1ZXVlX291dHB1dHMoZXdzLCBleHBlY3RlZF9sb2dzPXNlbGYuX2Rl
ZmF1bHRfZXhwZWN0ZWRfbG9ncyhld3MsIHJlc3VsdHNfYXJlX2NvbmNsdXNpdmUpLCBvcHRpb25z
PW9wdGlvbnMpCiAKICAgICBkZWYgdGVzdF9ld3NlcyhzZWxmKToKICAgICAgICAgY2xhc3NlcyA9
IEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtLmxvYWRfZXdzX2NsYXNzZXMoKQpAQCAtMTA0LDMg
KzE0NiwxMSBAQCBNT0NLOiByZWxlYXNlX3dvcmtfaXRlbTogJShuYW1lKXMgMTAwMDAKICAgICAg
ICAgc2VsZi5tYXhEaWZmID0gTm9uZQogICAgICAgICBmb3IgZXdzX2NsYXNzIGluIGNsYXNzZXM6
CiAgICAgICAgICAgICBzZWxmLl90ZXN0X2V3cyhld3NfY2xhc3MoKSkKKworICAgIGRlZiB0ZXN0
X2luY29uY2x1c2l2ZV90ZXN0X3Jlc3VsdHMoc2VsZik6CisgICAgICAgIGNsYXNzZXMgPSBNb2Nr
QWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0ubG9hZF9ld3NfY2xhc3NlcygpCisgICAgICAgIHNl
bGYuYXNzZXJ0VHJ1ZShjbGFzc2VzKQorICAgICAgICBzZWxmLm1heERpZmYgPSBOb25lCisgICAg
ICAgIHRlc3RfY2xhc3NlcyA9IGZpbHRlcihsYW1iZGEgeDogeC5ydW5fdGVzdHMsIGNsYXNzZXMp
CisgICAgICAgIGZvciBld3NfY2xhc3MgaW4gdGVzdF9jbGFzc2VzOgorICAgICAgICAgICAgc2Vs
Zi5fdGVzdF9ld3MoZXdzX2NsYXNzKCksIEZhbHNlKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS90b29sL3N0ZXBzL19faW5pdF9fLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS90b29sL3N0ZXBzL19faW5pdF9fLnB5CmluZGV4IDM1NmFjYWIwM2FkODI3NGNlOWJkYTY4NTg4
NjRmZjE5YjY0ZjRhMGEuLjZjOWMwOWFjNTJhMzg2YjlmMGNmMzYzYjljMDNiYmFhNGMwMDM4NjEg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9fX2luaXRfXy5w
eQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvX19pbml0X18ucHkKQEAg
LTEsNCArMSw1IEBACiAjIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtMzMsNiArMzQsNyBA
QCBmcm9tIHdlYmtpdHB5LnRvb2wuc3RlcHMuYXBwbHlwYXRjaHdpdGhsb2NhbGNvbW1pdCBpbXBv
cnQgQXBwbHlQYXRjaFdpdGhMb2NhbENvbQogZnJvbSB3ZWJraXRweS50b29sLnN0ZXBzLmFwcGx5
d2F0Y2hsaXN0IGltcG9ydCBBcHBseVdhdGNoTGlzdAogZnJvbSB3ZWJraXRweS50b29sLnN0ZXBz
LmF0dGFjaHRvYnVnIGltcG9ydCBBdHRhY2hUb0J1ZwogZnJvbSB3ZWJraXRweS50b29sLnN0ZXBz
LmJ1aWxkIGltcG9ydCBCdWlsZAorZnJvbSB3ZWJraXRweS50b29sLnN0ZXBzLmNoZWNrcGF0Y2hy
ZWxldmFuY2UgaW1wb3J0IENoZWNrUGF0Y2hSZWxldmFuY2UKIGZyb20gd2Via2l0cHkudG9vbC5z
dGVwcy5jaGVja3N0eWxlIGltcG9ydCBDaGVja1N0eWxlCiBmcm9tIHdlYmtpdHB5LnRvb2wuc3Rl
cHMuY2xlYW53b3JraW5nZGlyZWN0b3J5IGltcG9ydCBDbGVhbldvcmtpbmdEaXJlY3RvcnkKIGZy
b20gd2Via2l0cHkudG9vbC5zdGVwcy5jbG9zZWJ1ZyBpbXBvcnQgQ2xvc2VCdWcKZGlmZiAtLWdp
dCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9idWlsZC5weSBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9idWlsZC5weQppbmRleCBmNzRmZmNlNzA5NDFjNjFl
NTk2NzkyZTRjNjBkY2Q3ZjhiNjVlOWVjLi4zYzZjZjBiMWRlMDE4YzEzMmI3Zjg2ZGEyY2I5MDdl
MmZkYTA2N2FlIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMv
YnVpbGQucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL2J1aWxkLnB5
CkBAIC0xLDQgKzEsNSBAQAogIyBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTQxLDI4ICs0
MiwzNyBAQCBjbGFzcyBCdWlsZChBYnN0cmFjdFN0ZXApOgogICAgICAgICAgICAgT3B0aW9ucy5i
dWlsZCwKICAgICAgICAgICAgIE9wdGlvbnMucXVpZXQsCiAgICAgICAgICAgICBPcHRpb25zLmJ1
aWxkX3N0eWxlLAorICAgICAgICAgICAgT3B0aW9ucy5ncm91cCwKICAgICAgICAgXQogCi0gICAg
ZGVmIGJ1aWxkKHNlbGYsIGJ1aWxkX3N0eWxlKToKKyAgICBkZWYgYnVpbGQoc2VsZiwgYnVpbGRf
c3R5bGUsIGdyb3VwKToKICAgICAgICAgZW52aXJvbm1lbnQgPSBzZWxmLl90b29sLmNvcHlfY3Vy
cmVudF9lbnZpcm9ubWVudCgpCiAgICAgICAgIGVudmlyb25tZW50LmRpc2FibGVfZ2NjX3NtYXJ0
cXVvdGVzKCkKICAgICAgICAgZW52aXJvbm1lbnQuZGlzYWJsZV9qaGJ1aWxkX1ZUMTAwX291dHB1
dCgpCiAgICAgICAgIGVudiA9IGVudmlyb25tZW50LnRvX2RpY3Rpb25hcnkoKQogCi0gICAgICAg
IGJ1aWxkX3dlYmtpdF9jb21tYW5kID0gc2VsZi5fdG9vbC5kZXByZWNhdGVkX3BvcnQoKS5idWls
ZF93ZWJraXRfY29tbWFuZChidWlsZF9zdHlsZT1idWlsZF9zdHlsZSkKKyAgICAgICAgaWYgZ3Jv
dXAgPT0gImpzYyI6CisgICAgICAgICAgICBidWlsZF9jb21tYW5kID0gc2VsZi5fdG9vbC5kZXBy
ZWNhdGVkX3BvcnQoKS5idWlsZF9qc2NfY29tbWFuZChidWlsZF9zdHlsZT1idWlsZF9zdHlsZSkK
KyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGJ1aWxkX2NvbW1hbmQgPSBzZWxmLl90b29sLmRl
cHJlY2F0ZWRfcG9ydCgpLmJ1aWxkX3dlYmtpdF9jb21tYW5kKGJ1aWxkX3N0eWxlPWJ1aWxkX3N0
eWxlKQogCiAgICAgICAgIGlmIHNlbGYuX29wdGlvbnMuYXJjaGl0ZWN0dXJlOgotICAgICAgICAg
ICAgYnVpbGRfd2Via2l0X2NvbW1hbmQgKz0gWydBUkNIUz0lcycgJSBzZWxmLl9vcHRpb25zLmFy
Y2hpdGVjdHVyZV0KKyAgICAgICAgICAgIGJ1aWxkX2NvbW1hbmQgKz0gWydBUkNIUz0lcycgJSBz
ZWxmLl9vcHRpb25zLmFyY2hpdGVjdHVyZV0KIAotICAgICAgICBzZWxmLl90b29sLmV4ZWN1dGl2
ZS5ydW5fYW5kX3Rocm93X2lmX2ZhaWwoYnVpbGRfd2Via2l0X2NvbW1hbmQsIHNlbGYuX29wdGlv
bnMucXVpZXQsCisgICAgICAgIHNlbGYuX3Rvb2wuZXhlY3V0aXZlLnJ1bl9hbmRfdGhyb3dfaWZf
ZmFpbChidWlsZF9jb21tYW5kLCBzZWxmLl9vcHRpb25zLnF1aWV0LAogICAgICAgICAgICAgY3dk
PXNlbGYuX3Rvb2wuc2NtKCkuY2hlY2tvdXRfcm9vdCwgZW52PWVudikKIAogICAgIGRlZiBydW4o
c2VsZiwgc3RhdGUpOgogICAgICAgICBpZiBub3Qgc2VsZi5fb3B0aW9ucy5idWlsZDoKICAgICAg
ICAgICAgIHJldHVybgogICAgICAgICBfbG9nLmluZm8oIkJ1aWxkaW5nIFdlYktpdCIpCisKKyAg
ICAgICAgZ3JvdXAgPSBOb25lCisgICAgICAgIGlmIGhhc2F0dHIoc2VsZi5fb3B0aW9ucywgJ2dy
b3VwJyk6CisgICAgICAgICAgICBncm91cCA9IHNlbGYuX29wdGlvbnMuZ3JvdXAKKwogICAgICAg
ICBpZiBzZWxmLl9vcHRpb25zLmJ1aWxkX3N0eWxlID09ICJib3RoIjoKLSAgICAgICAgICAgIHNl
bGYuYnVpbGQoImRlYnVnIikKLSAgICAgICAgICAgIHNlbGYuYnVpbGQoInJlbGVhc2UiKQorICAg
ICAgICAgICAgc2VsZi5idWlsZCgiZGVidWciLCBncm91cCkKKyAgICAgICAgICAgIHNlbGYuYnVp
bGQoInJlbGVhc2UiLCBncm91cCkKICAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHNlbGYuYnVp
bGQoc2VsZi5fb3B0aW9ucy5idWlsZF9zdHlsZSkKKyAgICAgICAgICAgIHNlbGYuYnVpbGQoc2Vs
Zi5fb3B0aW9ucy5idWlsZF9zdHlsZSwgZ3JvdXApCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L3Rvb2wvc3RlcHMvY2hlY2twYXRjaHJlbGV2YW5jZS5weSBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvdG9vbC9zdGVwcy9jaGVja3BhdGNocmVsZXZhbmNlLnB5Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjgyZjc0NWUzNGRiOWQ2OWIyNDQ1MzQ4ODQ0Njg1OTY2ZWE2NjMyNTIKLS0tIC9kZXYvbnVsbAor
KysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvY2hlY2twYXRjaHJlbGV2YW5j
ZS5weQpAQCAtMCwwICsxLDc0IEBACisjIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1l
dDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyMgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorIyBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMCisjIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisjIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisj
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksCisjIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisKK2ltcG9ydCBsb2dnaW5nCitpbXBvcnQgcmUKKworZnJvbSB3ZWJraXRweS5jb21tb24u
c3lzdGVtLmV4ZWN1dGl2ZSBpbXBvcnQgU2NyaXB0RXJyb3IKK2Zyb20gd2Via2l0cHkudG9vbC5z
dGVwcy5hYnN0cmFjdHN0ZXAgaW1wb3J0IEFic3RyYWN0U3RlcAorZnJvbSB3ZWJraXRweS50b29s
LnN0ZXBzLm9wdGlvbnMgaW1wb3J0IE9wdGlvbnMKKworX2xvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2Vy
KF9fbmFtZV9fKQorCisKK2NsYXNzIENoZWNrUGF0Y2hSZWxldmFuY2UoQWJzdHJhY3RTdGVwKToK
KyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgb3B0aW9ucyhjbHMpOgorICAgICAgICByZXR1cm4g
QWJzdHJhY3RTdGVwLm9wdGlvbnMoKSArIFsKKyAgICAgICAgICAgIE9wdGlvbnMuZ3JvdXAsCisg
ICAgICAgIF0KKworICAgIGpzY19wYXRocyA9IFsKKyAgICAgICAgIkpTVGVzdHMvIiwKKyAgICAg
ICAgIlNvdXJjZS9KYXZhU2NyaXB0Q29yZS8iLAorICAgICAgICAiU291cmNlL1dURi8iCisgICAg
ICAgICJTb3VyY2UvYm1hbGxvYy8iLAorICAgIF0KKworICAgIGRlZiBfZG9lc19jb250YWluX2No
YW5nZV9pbl9wYXRocyhzZWxmLCBmaWxlcywgcGF0dGVybnMpOgorICAgICAgICBmb3IgaXRlbSBp
biBmaWxlczoKKyAgICAgICAgICAgIGZvciBwYXR0ZXJuIGluIHBhdHRlcm5zOgorICAgICAgICAg
ICAgICAgIGlmIHJlLnNlYXJjaChwYXR0ZXJuLCBpdGVtLCByZS5JR05PUkVDQVNFKToKKyAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIFRydWUKKworICAgICAgICByZXR1cm4gRmFsc2UKKworICAg
IGRlZiBydW4oc2VsZiwgc3RhdGUpOgorICAgICAgICBfbG9nLmluZm8oIkNoZWNraW5nIHJlbGV2
YW5jZSBvZiBwYXRjaCIpCisKKyAgICAgICAgZ3JvdXAgPSBOb25lCisgICAgICAgIGlmIGhhc2F0
dHIoc2VsZi5fb3B0aW9ucywgJ2dyb3VwJyk6CisgICAgICAgICAgICBncm91cCA9IHNlbGYuX29w
dGlvbnMuZ3JvdXAKKworICAgICAgICBjaGFuZ2VfbGlzdCA9IHNlbGYuX3Rvb2wuc2NtKCkuY2hh
bmdlZF9maWxlcygpCisKKyAgICAgICAgaWYgZ3JvdXAgPT0gImpzYyI6CisgICAgICAgICAgICBy
ZWxldmFudCA9IHNlbGYuX2RvZXNfY29udGFpbl9jaGFuZ2VfaW5fcGF0aHMoY2hhbmdlX2xpc3Qs
IHNlbGYuanNjX3BhdGhzKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmVsZXZhbnQgPSBU
cnVlCisKKyAgICAgICAgaWYgcmVsZXZhbnQgaXMgVHJ1ZToKKyAgICAgICAgICAgIF9sb2cuaW5m
bygiVGhpcyBwYXRjaCBoYXMgcmVsZXZhbnQgY2hhbmdlcy4iKQorICAgICAgICAgICAgcmV0dXJu
IFRydWUKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIF9sb2cuaW5mbygiVGhpcyBwYXRjaCBk
b2VzIG5vdCBoYXZlIHJlbGV2YW50IGNoYW5nZXMuIikKKyAgICAgICAgICAgIHJhaXNlIFNjcmlw
dEVycm9yKG1lc3NhZ2U9IlRoaXMgcGF0Y2ggZG9lcyBub3QgaGF2ZSByZWxldmFudCBjaGFuZ2Vz
LiIpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvb3B0aW9u
cy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9vcHRpb25zLnB5CmluZGV4
IDNlZjQ3ZDAwOGE1OWUwNTBkNGNhMGM0ODc3ZGRkMWE2MDczMWE0MDkuLmY1ZTBkZWYzMjcxN2Uz
MDZlNjMxNjk4NDExMTBiMjg5OGI3MmExZjEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvdG9vbC9zdGVwcy9vcHRpb25zLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
dG9vbC9zdGVwcy9vcHRpb25zLnB5CkBAIC0xLDQgKzEsNSBAQAogIyBDb3B5cmlnaHQgKEMpIDIw
MTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDE3
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucyBhcmUKQEAgLTQ2LDYgKzQ3LDcgQEAgY2xhc3MgT3B0aW9ucyhvYmplY3QpOgogICAgIGVt
YWlsID0gbWFrZV9vcHRpb24oIi0tZW1haWwiLCBhY3Rpb249InN0b3JlIiwgdHlwZT0ic3RyaW5n
IiwgZGVzdD0iZW1haWwiLCBoZWxwPSJFbWFpbCBhZGRyZXNzIHRvIHVzZSBpbiBDaGFuZ2VMb2dz
LiIpCiAgICAgZm9yY2VfY2xlYW4gPSBtYWtlX29wdGlvbigiLS1mb3JjZS1jbGVhbiIsIGFjdGlv
bj0ic3RvcmVfdHJ1ZSIsIGRlc3Q9ImZvcmNlX2NsZWFuIiwgZGVmYXVsdD1GYWxzZSwgaGVscD0i
Q2xlYW4gd29ya2luZyBkaXJlY3RvcnkgYmVmb3JlIGFwcGx5aW5nIHBhdGNoZXMgKHJlbW92ZXMg
bG9jYWwgY2hhbmdlcyBhbmQgY29tbWl0cykiKQogICAgIGdpdF9jb21taXQgPSBtYWtlX29wdGlv
bigiLWciLCAiLS1naXQtY29tbWl0IiwgYWN0aW9uPSJzdG9yZSIsIGRlc3Q9ImdpdF9jb21taXQi
LCBoZWxwPSJPcGVyYXRlIG9uIGEgbG9jYWwgY29tbWl0LiBJZiBhIHJhbmdlLCB0aGUgY29tbWl0
cyBhcmUgc3F1YXNoZWQgaW50byBvbmUuIDxyZWY+Li4uLiBpbmNsdWRlcyB0aGUgd29ya2luZyBj
b3B5IGNoYW5nZXMuIFVQU1RSRUFNIGNhbiBiZSB1c2VkIGZvciB0aGUgdXBzdHJlYW0vdHJhY2tp
bmcgYnJhbmNoLiIpCisgICAgZ3JvdXAgPSBtYWtlX29wdGlvbigiLS1ncm91cCIsIGFjdGlvbj0i
c3RvcmUiLCBkZXN0PSJncm91cCIsIGRlZmF1bHQ9Tm9uZSwgaGVscD0iIikKICAgICBsb2NhbF9j
b21taXQgPSBtYWtlX29wdGlvbigiLS1sb2NhbC1jb21taXQiLCBhY3Rpb249InN0b3JlX3RydWUi
LCBkZXN0PSJsb2NhbF9jb21taXQiLCBkZWZhdWx0PUZhbHNlLCBoZWxwPSJNYWtlIGEgbG9jYWwg
Y29tbWl0IGZvciBlYWNoIGFwcGxpZWQgcGF0Y2giKQogICAgIG5vbl9pbnRlcmFjdGl2ZSA9IG1h
a2Vfb3B0aW9uKCItLW5vbi1pbnRlcmFjdGl2ZSIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGRlc3Q9
Im5vbl9pbnRlcmFjdGl2ZSIsIGRlZmF1bHQ9RmFsc2UsIGhlbHA9Ik5ldmVyIHByb21wdCB0aGUg
dXNlciwgZmFpbCBhcyBmYXN0IGFzIHBvc3NpYmxlLiIpCiAgICAgb2Jzb2xldGVfcGF0Y2hlcyA9
IG1ha2Vfb3B0aW9uKCItLW5vLW9ic29sZXRlIiwgYWN0aW9uPSJzdG9yZV9mYWxzZSIsIGRlc3Q9
Im9ic29sZXRlX3BhdGNoZXMiLCBkZWZhdWx0PVRydWUsIGhlbHA9IkRvIG5vdCBvYnNvbGV0ZSBv
bGQgcGF0Y2hlcyBiZWZvcmUgcG9zdGluZyB0aGlzIG9uZS4iKQpkaWZmIC0tZ2l0IGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3J1bnRlc3RzLnB5IGIvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS90b29sL3N0ZXBzL3J1bnRlc3RzLnB5CmluZGV4IDc1ZDcyYmM5YWQyZjRlMzZkNDVm
ZGFjOTBmMTgxOTQ4MWNmMDI4OGIuLjhiMjI0MGUyYThjNzA1Y2MyNzI1NDhmMTNlZGEyNjM5MzAy
ZjE5OGIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9ydW50
ZXN0cy5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvcnVudGVzdHMu
cHkKQEAgLTEsNCArMSw1IEBACiAjIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtNTMsOSAr
NTQsMTQgQEAgY2xhc3MgUnVuVGVzdHMoQWJzdHJhY3RTdGVwKToKICAgICAgICAgICAgIE9wdGlv
bnMuaXRlcmF0ZV9vbl9uZXdfdGVzdHMsCiAgICAgICAgICAgICBPcHRpb25zLm5vbl9pbnRlcmFj
dGl2ZSwKICAgICAgICAgICAgIE9wdGlvbnMucXVpZXQsCisgICAgICAgICAgICBPcHRpb25zLmdy
b3VwLAogICAgICAgICBdCiAKICAgICBkZWYgcnVuKHNlbGYsIHN0YXRlKToKKyAgICAgICAgaWYg
aGFzYXR0cihzZWxmLl9vcHRpb25zLCAiZ3JvdXAiKSBhbmQgc2VsZi5fb3B0aW9ucy5ncm91cCA9
PSAianNjIjoKKyAgICAgICAgICAgIHNlbGYuX3J1bl9qYXZhc2NyaXB0Y29yZV90ZXN0cygpCisg
ICAgICAgICAgICByZXR1cm4KKwogICAgICAgICBpZiBzZWxmLl9vcHRpb25zLml0ZXJhdGVfb25f
bmV3X3Rlc3RzOgogICAgICAgICAgICAgX2xvZy5pbmZvKCJSdW5uaW5nIHJ1bi13ZWJraXQtdGVz
dHMgb24gbmV3IHRlc3RzIikKICAgICAgICAgICAgIHNlbGYuX3J1bl93ZWJraXRfdGVzdHMoc2Vs
Zi5fb3B0aW9ucy5pdGVyYXRlX29uX25ld190ZXN0cykKQEAgLTE0MywzICsxNDksNyBAQCBjbGFz
cyBSdW5UZXN0cyhBYnN0cmFjdFN0ZXApOgogICAgICAgICAgICAgYXJncy5hcHBlbmQoIi0taXRl
cmF0aW9ucz0lZCIgJSBpdGVyYXRlX29uX25ld190ZXN0cykKIAogICAgICAgICBzZWxmLl90b29s
LmV4ZWN1dGl2ZS5ydW5fYW5kX3Rocm93X2lmX2ZhaWwoYXJncywgY3dkPXNlbGYuX3Rvb2wuc2Nt
KCkuY2hlY2tvdXRfcm9vdCkKKworICAgIGRlZiBfcnVuX2phdmFzY3JpcHRjb3JlX3Rlc3RzKHNl
bGYpOgorICAgICAgICBhcmdzID0gc2VsZi5fdG9vbC5kZXByZWNhdGVkX3BvcnQoKS5ydW5famF2
YXNjcmlwdGNvcmVfdGVzdHNfY29tbWFuZChzZWxmLl9vcHRpb25zLmJ1aWxkX3N0eWxlKQorICAg
ICAgICBzZWxmLl90b29sLmV4ZWN1dGl2ZS5ydW5fYW5kX3Rocm93X2lmX2ZhaWwoYXJncywgY3dk
PXNlbGYuX3Rvb2wuc2NtKCkuY2hlY2tvdXRfcm9vdCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvdG9vbC9zdGVwcy9zdGVwc191bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvdG9vbC9zdGVwcy9zdGVwc191bml0dGVzdC5weQppbmRleCA3ZDk0YTEzYjM0NjNk
OThhNDRmOTQ5ZjgxNGNjNzEyMWMwNjhhYjVkLi5jMzMwMGM4NTk0NGNkZTIxYWQ5ZDBiM2U1NmRl
ZDg4MDEzZWI2YWRlIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3Rl
cHMvc3RlcHNfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0
ZXBzL3N0ZXBzX3VuaXR0ZXN0LnB5CkBAIC0xLDQgKzEsNSBAQAogIyBDb3B5cmlnaHQgKEMpIDIw
MTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDE3
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucyBhcmUKQEAgLTI4LDYgKzI5LDcgQEAKIAogaW1wb3J0IHVuaXR0ZXN0CiAKK2Zyb20gd2Vi
a2l0cHkuY29tbW9uLnN5c3RlbS5leGVjdXRpdmUgaW1wb3J0IFNjcmlwdEVycm9yCiBmcm9tIHdl
YmtpdHB5LmNvbW1vbi5zeXN0ZW0ub3V0cHV0Y2FwdHVyZSBpbXBvcnQgT3V0cHV0Q2FwdHVyZQog
ZnJvbSB3ZWJraXRweS5jb21tb24uY29uZmlnLnBvcnRzIGltcG9ydCBEZXByZWNhdGVkUG9ydAog
ZnJvbSB3ZWJraXRweS50b29sLm1vY2t0b29sIGltcG9ydCBNb2NrT3B0aW9ucywgTW9ja1Rvb2wK
QEAgLTExMSw3ICsxMTMsNyBAQCBNT0NLIHJ1bl9hbmRfdGhyb3dfaWZfZmFpbDogWydUb29scy9T
Y3JpcHRzL3Rlc3Qtd2Via2l0cHknXSwgY3dkPS9tb2NrLWNoZWNrb3V0CiBSdW5uaW5nIFBlcmwg
dW5pdCB0ZXN0cwogTU9DSyBydW5fYW5kX3Rocm93X2lmX2ZhaWw6IFsnVG9vbHMvU2NyaXB0cy90
ZXN0LXdlYmtpdHBlcmwnXSwgY3dkPS9tb2NrLWNoZWNrb3V0CiBSdW5uaW5nIEphdmFTY3JpcHRD
b3JlIHRlc3RzCi1NT0NLIHJ1bl9hbmRfdGhyb3dfaWZfZmFpbDogWydUb29scy9TY3JpcHRzL3J1
bi1qYXZhc2NyaXB0Y29yZS10ZXN0cyddLCBjd2Q9L21vY2stY2hlY2tvdXQKK01PQ0sgcnVuX2Fu
ZF90aHJvd19pZl9mYWlsOiBbJ1Rvb2xzL1NjcmlwdHMvcnVuLWphdmFzY3JpcHRjb3JlLXRlc3Rz
JywgJy0tbm8tZmFpbC1mYXN0JywgJy0tanNvbi1vdXRwdXQ9anNjX3Rlc3RfcmVzdWx0cy5qc29u
J10sIGN3ZD0vbW9jay1jaGVja291dAogUnVubmluZyBiaW5kaW5ncyBnZW5lcmF0aW9uIHRlc3Rz
CiBNT0NLIHJ1bl9hbmRfdGhyb3dfaWZfZmFpbDogWydUb29scy9TY3JpcHRzL3J1bi1iaW5kaW5n
cy10ZXN0cyddLCBjd2Q9L21vY2stY2hlY2tvdXQKIFJ1bm5pbmcgcnVuLXdlYmtpdC10ZXN0cwpA
QCAtMTMzLDEwICsxMzUsMTExIEBAIE1PQ0sgcnVuX2FuZF90aHJvd19pZl9mYWlsOiBbJ1Rvb2xz
L1NjcmlwdHMvdGVzdC13ZWJraXRweSddLCBjd2Q9L21vY2stY2hlY2tvdXQKIFJ1bm5pbmcgUGVy
bCB1bml0IHRlc3RzCiBNT0NLIHJ1bl9hbmRfdGhyb3dfaWZfZmFpbDogWydUb29scy9TY3JpcHRz
L3Rlc3Qtd2Via2l0cGVybCddLCBjd2Q9L21vY2stY2hlY2tvdXQKIFJ1bm5pbmcgSmF2YVNjcmlw
dENvcmUgdGVzdHMKLU1PQ0sgcnVuX2FuZF90aHJvd19pZl9mYWlsOiBbJ1Rvb2xzL1NjcmlwdHMv
cnVuLWphdmFzY3JpcHRjb3JlLXRlc3RzJ10sIGN3ZD0vbW9jay1jaGVja291dAorTU9DSyBydW5f
YW5kX3Rocm93X2lmX2ZhaWw6IFsnVG9vbHMvU2NyaXB0cy9ydW4tamF2YXNjcmlwdGNvcmUtdGVz
dHMnLCAnLS1uby1mYWlsLWZhc3QnLCAnLS1qc29uLW91dHB1dD1qc2NfdGVzdF9yZXN1bHRzLmpz
b24nXSwgY3dkPS9tb2NrLWNoZWNrb3V0CiBSdW5uaW5nIGJpbmRpbmdzIGdlbmVyYXRpb24gdGVz
dHMKIE1PQ0sgcnVuX2FuZF90aHJvd19pZl9mYWlsOiBbJ1Rvb2xzL1NjcmlwdHMvcnVuLWJpbmRp
bmdzLXRlc3RzJ10sIGN3ZD0vbW9jay1jaGVja291dAogUnVubmluZyBydW4td2Via2l0LXRlc3Rz
CiBNT0NLIHJ1bl9hbmRfdGhyb3dfaWZfZmFpbDogWydUb29scy9TY3JpcHRzL3J1bi13ZWJraXQt
dGVzdHMnLCAnLS1kZWJ1ZycsICctLXF1aWV0J10sIGN3ZD0vbW9jay1jaGVja291dAogIiIiCiAg
ICAgICAgIE91dHB1dENhcHR1cmUoKS5hc3NlcnRfb3V0cHV0cyhzZWxmLCBzdGVwLnJ1biwgW3t9
XSwgZXhwZWN0ZWRfbG9ncz1leHBlY3RlZF9sb2dzKQorCisgICAgZGVmIHRlc3RfcnVudGVzdHNf
anNjKHNlbGYpOgorICAgICAgICBtb2NrX29wdGlvbnMgPSBzZWxmLl9zdGVwX29wdGlvbnMoKQor
ICAgICAgICBtb2NrX29wdGlvbnMubm9uX2ludGVyYWN0aXZlID0gRmFsc2UKKyAgICAgICAgbW9j
a19vcHRpb25zLmJ1aWxkX3N0eWxlID0gInJlbGVhc2UiCisgICAgICAgIG1vY2tfb3B0aW9ucy5n
cm91cCA9ICJqc2MiCisgICAgICAgIHN0ZXAgPSBzdGVwcy5SdW5UZXN0cyhNb2NrVG9vbChsb2df
ZXhlY3V0aXZlPVRydWUpLCBtb2NrX29wdGlvbnMpCisgICAgICAgIHRvb2wgPSBNb2NrVG9vbChs
b2dfZXhlY3V0aXZlPVRydWUpCisgICAgICAgICMgRklYTUU6IFdlIHNob3VsZG4ndCB1c2UgYSBy
ZWFsIHBvcnQtb2JqZWN0IGhlcmUsIGJ1dCB0aGVyZSBpcyB0b28gbXVjaCB0byBtb2NrIGF0IHRo
ZSBtb21lbnQuCisgICAgICAgIHRvb2wuX2RlcHJlY2F0ZWRfcG9ydCA9IERlcHJlY2F0ZWRQb3J0
KCkKKyAgICAgICAgc3RlcCA9IHN0ZXBzLlJ1blRlc3RzKHRvb2wsIG1vY2tfb3B0aW9ucykKKyAg
ICAgICAgZXhwZWN0ZWRfbG9ncyA9ICIiIk1PQ0sgcnVuX2FuZF90aHJvd19pZl9mYWlsOiBbJ1Rv
b2xzL1NjcmlwdHMvcnVuLWphdmFzY3JpcHRjb3JlLXRlc3RzJywgJy0tbm8tZmFpbC1mYXN0Jywg
Jy0tanNvbi1vdXRwdXQ9anNjX3Rlc3RfcmVzdWx0cy5qc29uJ10sIGN3ZD0vbW9jay1jaGVja291
dAorIiIiCisgICAgICAgIE91dHB1dENhcHR1cmUoKS5hc3NlcnRfb3V0cHV0cyhzZWxmLCBzdGVw
LnJ1biwgW3t9XSwgZXhwZWN0ZWRfbG9ncz1leHBlY3RlZF9sb2dzKQorCisgICAgZGVmIHRlc3Rf
cnVudGVzdHNfanNjX2RlYnVnKHNlbGYpOgorICAgICAgICBtb2NrX29wdGlvbnMgPSBzZWxmLl9z
dGVwX29wdGlvbnMoKQorICAgICAgICBtb2NrX29wdGlvbnMubm9uX2ludGVyYWN0aXZlID0gRmFs
c2UKKyAgICAgICAgbW9ja19vcHRpb25zLmJ1aWxkX3N0eWxlID0gImRlYnVnIgorICAgICAgICBt
b2NrX29wdGlvbnMuZ3JvdXAgPSAianNjIgorICAgICAgICB0b29sID0gTW9ja1Rvb2wobG9nX2V4
ZWN1dGl2ZT1UcnVlKQorICAgICAgICAjIEZJWE1FOiBXZSBzaG91bGRuJ3QgdXNlIGEgcmVhbCBw
b3J0LW9iamVjdCBoZXJlLCBidXQgdGhlcmUgaXMgdG9vIG11Y2ggdG8gbW9jayBhdCB0aGUgbW9t
ZW50LgorICAgICAgICB0b29sLl9kZXByZWNhdGVkX3BvcnQgPSBEZXByZWNhdGVkUG9ydCgpCisg
ICAgICAgIHN0ZXAgPSBzdGVwcy5SdW5UZXN0cyh0b29sLCBtb2NrX29wdGlvbnMpCisgICAgICAg
IGV4cGVjdGVkX2xvZ3MgPSAiIiJNT0NLIHJ1bl9hbmRfdGhyb3dfaWZfZmFpbDogWydUb29scy9T
Y3JpcHRzL3J1bi1qYXZhc2NyaXB0Y29yZS10ZXN0cycsICctLW5vLWZhaWwtZmFzdCcsICctLWpz
b24tb3V0cHV0PWpzY190ZXN0X3Jlc3VsdHMuanNvbicsICctLWRlYnVnJ10sIGN3ZD0vbW9jay1j
aGVja291dAorIiIiCisgICAgICAgIE91dHB1dENhcHR1cmUoKS5hc3NlcnRfb3V0cHV0cyhzZWxm
LCBzdGVwLnJ1biwgW3t9XSwgZXhwZWN0ZWRfbG9ncz1leHBlY3RlZF9sb2dzKQorCisgICAgZGVm
IHRlc3RfYnVpbGRfanNjX2RlYnVnKHNlbGYpOgorICAgICAgICBtb2NrX29wdGlvbnMgPSBzZWxm
Ll9zdGVwX29wdGlvbnMoKQorICAgICAgICBtb2NrX29wdGlvbnMubm9uX2ludGVyYWN0aXZlID0g
RmFsc2UKKyAgICAgICAgbW9ja19vcHRpb25zLmJ1aWxkX3N0eWxlID0gImRlYnVnIgorICAgICAg
ICBtb2NrX29wdGlvbnMuYnVpbGQgPSBUcnVlCisgICAgICAgIG1vY2tfb3B0aW9ucy5hcmNoaXRl
Y3R1cmUgPSBUcnVlCisgICAgICAgIG1vY2tfb3B0aW9ucy5ncm91cCA9ICJqc2MiCisgICAgICAg
IHRvb2wgPSBNb2NrVG9vbChsb2dfZXhlY3V0aXZlPVRydWUpCisgICAgICAgICMgRklYTUU6IFdl
IHNob3VsZG4ndCB1c2UgYSByZWFsIHBvcnQtb2JqZWN0IGhlcmUsIGJ1dCB0aGVyZSBpcyB0b28g
bXVjaCB0byBtb2NrIGF0IHRoZSBtb21lbnQuCisgICAgICAgIHRvb2wuX2RlcHJlY2F0ZWRfcG9y
dCA9IERlcHJlY2F0ZWRQb3J0KCkKKyAgICAgICAgc3RlcCA9IHN0ZXBzLkJ1aWxkKHRvb2wsIG1v
Y2tfb3B0aW9ucykKKyAgICAgICAgZXhwZWN0ZWRfbG9ncyA9ICIiIkJ1aWxkaW5nIFdlYktpdAor
TU9DSyBydW5fYW5kX3Rocm93X2lmX2ZhaWw6IFsnVG9vbHMvU2NyaXB0cy9idWlsZC1qc2MnLCAn
LS1kZWJ1ZycsICdBUkNIUz1UcnVlJ10sIGN3ZD0vbW9jay1jaGVja291dCwgZW52PXsnTENfQUxM
JzogJ0MnLCAnVEVSTSc6ICdub25lJywgJ01PQ0tfRU5WSVJPTl9DT1BZJzogJzEnfQorIiIiCisg
ICAgICAgIE91dHB1dENhcHR1cmUoKS5hc3NlcnRfb3V0cHV0cyhzZWxmLCBzdGVwLnJ1biwgW3t9
XSwgZXhwZWN0ZWRfbG9ncz1leHBlY3RlZF9sb2dzKQorCisgICAgZGVmIHRlc3RfYnVpbGRfanNj
KHNlbGYpOgorICAgICAgICBtb2NrX29wdGlvbnMgPSBzZWxmLl9zdGVwX29wdGlvbnMoKQorICAg
ICAgICBtb2NrX29wdGlvbnMubm9uX2ludGVyYWN0aXZlID0gRmFsc2UKKyAgICAgICAgbW9ja19v
cHRpb25zLmJ1aWxkX3N0eWxlID0gInJlbGVhc2UiCisgICAgICAgIG1vY2tfb3B0aW9ucy5idWls
ZCA9IFRydWUKKyAgICAgICAgbW9ja19vcHRpb25zLmFyY2hpdGVjdHVyZSA9IFRydWUKKyAgICAg
ICAgbW9ja19vcHRpb25zLmdyb3VwID0gImpzYyIKKyAgICAgICAgdG9vbCA9IE1vY2tUb29sKGxv
Z19leGVjdXRpdmU9VHJ1ZSkKKyAgICAgICAgIyBGSVhNRTogV2Ugc2hvdWxkbid0IHVzZSBhIHJl
YWwgcG9ydC1vYmplY3QgaGVyZSwgYnV0IHRoZXJlIGlzIHRvbyBtdWNoIHRvIG1vY2sgYXQgdGhl
IG1vbWVudC4KKyAgICAgICAgdG9vbC5fZGVwcmVjYXRlZF9wb3J0ID0gRGVwcmVjYXRlZFBvcnQo
KQorICAgICAgICBzdGVwID0gc3RlcHMuQnVpbGQodG9vbCwgbW9ja19vcHRpb25zKQorICAgICAg
ICBleHBlY3RlZF9sb2dzID0gIiIiQnVpbGRpbmcgV2ViS2l0CitNT0NLIHJ1bl9hbmRfdGhyb3df
aWZfZmFpbDogWydUb29scy9TY3JpcHRzL2J1aWxkLWpzYycsICctLXJlbGVhc2UnLCAnQVJDSFM9
VHJ1ZSddLCBjd2Q9L21vY2stY2hlY2tvdXQsIGVudj17J0xDX0FMTCc6ICdDJywgJ1RFUk0nOiAn
bm9uZScsICdNT0NLX0VOVklST05fQ09QWSc6ICcxJ30KKyIiIgorICAgICAgICBPdXRwdXRDYXB0
dXJlKCkuYXNzZXJ0X291dHB1dHMoc2VsZiwgc3RlcC5ydW4sIFt7fV0sIGV4cGVjdGVkX2xvZ3M9
ZXhwZWN0ZWRfbG9ncykKKworICAgIGRlZiB0ZXN0X3BhdGNoX3JlbGV2YW50KHNlbGYpOgorICAg
ICAgICBzZWxmLm1heERpZmYgPSBOb25lCisgICAgICAgIG1vY2tfb3B0aW9ucyA9IHNlbGYuX3N0
ZXBfb3B0aW9ucygpCisgICAgICAgIHRvb2wgPSBNb2NrVG9vbChsb2dfZXhlY3V0aXZlPVRydWUp
CisgICAgICAgIHRvb2wuc2NtKCkuX21vY2tDaGFuZ2VkRmlsZXMgPSBbIkpTVGVzdHMvTW9ja0Zp
bGUxIiwgIkNoYW5nZUxvZyJdCisgICAgICAgICMgRklYTUU6IFdlIHNob3VsZG4ndCB1c2UgYSBy
ZWFsIHBvcnQtb2JqZWN0IGhlcmUsIGJ1dCB0aGVyZSBpcyB0b28gbXVjaCB0byBtb2NrIGF0IHRo
ZSBtb21lbnQuCisgICAgICAgIHRvb2wuX2RlcHJlY2F0ZWRfcG9ydCA9IERlcHJlY2F0ZWRQb3J0
KCkKKyAgICAgICAgc3RlcCA9IHN0ZXBzLkNoZWNrUGF0Y2hSZWxldmFuY2UodG9vbCwgbW9ja19v
cHRpb25zKQorICAgICAgICBleHBlY3RlZF9sb2dzID0gIiIiQ2hlY2tpbmcgcmVsZXZhbmNlIG9m
IHBhdGNoCitUaGlzIHBhdGNoIGhhcyByZWxldmFudCBjaGFuZ2VzLgorIiIiCisgICAgICAgIE91
dHB1dENhcHR1cmUoKS5hc3NlcnRfb3V0cHV0cyhzZWxmLCBzdGVwLnJ1biwgW3t9XSwgZXhwZWN0
ZWRfbG9ncz1leHBlY3RlZF9sb2dzKQorCisgICAgZGVmIHRlc3RfcGF0Y2hfcmVsZXZhbnRfanNj
KHNlbGYpOgorICAgICAgICBzZWxmLm1heERpZmYgPSBOb25lCisgICAgICAgIG1vY2tfb3B0aW9u
cyA9IHNlbGYuX3N0ZXBfb3B0aW9ucygpCisgICAgICAgIG1vY2tfb3B0aW9ucy5ncm91cCA9ICJq
c2MiCisgICAgICAgIHRvb2wgPSBNb2NrVG9vbChsb2dfZXhlY3V0aXZlPVRydWUpCisgICAgICAg
IHRvb2wuc2NtKCkuX21vY2tDaGFuZ2VkRmlsZXMgPSBbIkpTVGVzdHMvTW9ja0ZpbGUxIiwgIkNo
YW5nZUxvZyJdCisgICAgICAgICMgRklYTUU6IFdlIHNob3VsZG4ndCB1c2UgYSByZWFsIHBvcnQt
b2JqZWN0IGhlcmUsIGJ1dCB0aGVyZSBpcyB0b28gbXVjaCB0byBtb2NrIGF0IHRoZSBtb21lbnQu
CisgICAgICAgIHRvb2wuX2RlcHJlY2F0ZWRfcG9ydCA9IERlcHJlY2F0ZWRQb3J0KCkKKyAgICAg
ICAgc3RlcCA9IHN0ZXBzLkNoZWNrUGF0Y2hSZWxldmFuY2UodG9vbCwgbW9ja19vcHRpb25zKQor
ICAgICAgICBleHBlY3RlZF9sb2dzID0gIiIiQ2hlY2tpbmcgcmVsZXZhbmNlIG9mIHBhdGNoCitU
aGlzIHBhdGNoIGhhcyByZWxldmFudCBjaGFuZ2VzLgorIiIiCisgICAgICAgIE91dHB1dENhcHR1
cmUoKS5hc3NlcnRfb3V0cHV0cyhzZWxmLCBzdGVwLnJ1biwgW3t9XSwgZXhwZWN0ZWRfbG9ncz1l
eHBlY3RlZF9sb2dzKQorCisgICAgZGVmIHRlc3RfcGF0Y2hfbm90X3JlbGV2YW50X2pzYyhzZWxm
KToKKyAgICAgICAgc2VsZi5tYXhEaWZmID0gTm9uZQorICAgICAgICBtb2NrX29wdGlvbnMgPSBz
ZWxmLl9zdGVwX29wdGlvbnMoKQorICAgICAgICBtb2NrX29wdGlvbnMuZ3JvdXAgPSAianNjIgor
ICAgICAgICB0b29sID0gTW9ja1Rvb2wobG9nX2V4ZWN1dGl2ZT1UcnVlKQorICAgICAgICB0b29s
LnNjbSgpLl9tb2NrQ2hhbmdlZEZpbGVzID0gWyJUb29scy9DaGFuZ2VMb2ciLCAiVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3N0ZXBzX3VuaXR0ZXN0LnB5Il0KKyAgICAgICAgIyBG
SVhNRTogV2Ugc2hvdWxkbid0IHVzZSBhIHJlYWwgcG9ydC1vYmplY3QgaGVyZSwgYnV0IHRoZXJl
IGlzIHRvbyBtdWNoIHRvIG1vY2sgYXQgdGhlIG1vbWVudC4KKyAgICAgICAgdG9vbC5fZGVwcmVj
YXRlZF9wb3J0ID0gRGVwcmVjYXRlZFBvcnQoKQorICAgICAgICBzdGVwID0gc3RlcHMuQ2hlY2tQ
YXRjaFJlbGV2YW5jZSh0b29sLCBtb2NrX29wdGlvbnMpCisgICAgICAgIGV4cGVjdGVkX2xvZ3Mg
PSAiIiJDaGVja2luZyByZWxldmFuY2Ugb2YgcGF0Y2gKK1RoaXMgcGF0Y2ggZG9lcyBub3QgaGF2
ZSByZWxldmFudCBjaGFuZ2VzLgorIiIiCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMo
U2NyaXB0RXJyb3IpOgorICAgICAgICAgICAgT3V0cHV0Q2FwdHVyZSgpLmFzc2VydF9vdXRwdXRz
KHNlbGYsIHN0ZXAucnVuLCBbe31dLCBleHBlY3RlZF9sb2dzPWV4cGVjdGVkX2xvZ3MpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>301069</attachid>
            <date>2017-02-09 12:24:44 -0800</date>
            <delta_ts>2017-02-09 18:24:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-162458-20170209122218.patch</filename>
            <type>text/plain</type>
            <size>86164</size>
            <attacher name="Srinivasan Vijayaraghavan">webkit</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjExNjYyCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYTEzMjZiMTZmODdkYzkzZjY5MjY1MmNhNjc0MmFlOTIz
OGFlN2QyYS4uYWQ0Y2RlMDUyM2UwZTQ1OTgyN2I4OTNhZWNmZjRhYzU1NjFiNTkyNyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEy
OCBAQAorMjAxNy0wMi0wOCAgU3Jpbml2YXNhbiBWaWpheWFyYWdoYXZhbiAgPHN2aWpheWFyYWdo
YXZhbkBhcHBsZS5jb20+CisKKyAgICAgICAgRVdTIHNob3VsZCBydW4gSmF2YVNjcmlwdENvcmUg
dGVzdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2
MjQ1OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
UXVldWVTdGF0dXNTZXJ2ZXIvY29uZmlnL3F1ZXVlcy5weTogQWRkIGpzYy1ld3MgcXVldWUKKyAg
ICAgICAgKiBRdWV1ZVN0YXR1c1NlcnZlci9oYW5kbGVycy9zdGF0dXNidWJibGUucHk6CisgICAg
ICAgIChTdGF0dXNCdWJibGUuX3Nob3VsZF9zaG93X2J1YmJsZV9mb3IpOiBBZGQgbG9naWMgdG8g
aGlkZSBqc2MtZXdzIGJ1YmJsZSBpZiB0aGUgcGF0Y2ggZG9lcyBub3QgdG91Y2gganNjLgorICAg
ICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNrb3V0L3NjbS9zY21fbW9jay5weToK
KyAgICAgICAgKE1vY2tTQ00uX19pbml0X18pOiBBZGQgX21vY2tDaGFuZ2VkRmlsZXMgdmFyaWFi
bGUuCisgICAgICAgIChNb2NrU0NNLmNoYW5nZWRfZmlsZXMpOiBDaGFuZ2UgdG8gdXNlIF9tb2Nr
Q2hhbmdlZEZpbGVzIHZhcmlhYmxlcy4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1v
bi9jb25maWcvZXdzLmpzb246IEFkZCBjb25maWcgaW5mbyBmb3IgSlNDIEVXUy4KKyAgICAgICAg
KiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvcG9ydHMucHk6IEFkZCBzdXBwb3J0IGZv
ciBKU0MgRVdTIGluIE1hYyBQb3J0LgorICAgICAgICAoRGVwcmVjYXRlZFBvcnQuYnVpbGRfanNj
X2NvbW1hbmQpOiBBZGRlZCAtIGNvbW1hbmQgdG8gYnVpbGQgSlNDIG9ubHkgKHF1aWNrZXIgdGhh
biBidWlsZGluZyBhbGwgb2YgV2ViS2l0KS4KKyAgICAgICAgKERlcHJlY2F0ZWRQb3J0LnJ1bl9q
YXZhc2NyaXB0Y29yZV90ZXN0c19jb21tYW5kKTogQWxsb3cgSlNDIEVXUyB0byBvbmx5IHJ1biBK
U0MgdGVzdHMuCisgICAgICAgIChNYWNQb3J0LnJ1bl93ZWJraXRfdGVzdHNfY29tbWFuZCk6IENo
ZWNrIGZvciBKU0MuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL3Bv
cnRzX21vY2sucHk6CisgICAgICAgIChNb2NrUG9ydC5ydW5famF2YXNjcmlwdGNvcmVfdGVzdHNf
Y29tbWFuZCk6IEFkZCBidWlsZF9zdHlsZSBhcmd1bWVudC4KKyAgICAgICAgKiBTY3JpcHRzL3dl
YmtpdHB5L2NvbW1vbi9jb25maWcvcG9ydHNfdW5pdHRlc3QucHk6CisgICAgICAgIChEZXByZWNh
dGVkUG9ydFRlc3QudGVzdF9tYWNfcG9ydCk6IEFkZCB1bml0IHRlc3RzIGZvciBidWlsZC1qc2Mg
c2hlbGwgY29tbWFuZC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvanNj
dGVzdHJlc3VsdHMucHk6IEFkZGVkLgorICAgICAgICAoSlNDVGVzdFJlc3VsdHMpOiBBZGRlZC4K
KyAgICAgICAgKEpTQ1Rlc3RSZXN1bHRzLmludGVyc2VjdGlvbik6IFJldHVybiBhIEpTQ1Rlc3RS
ZXN1bHRzIG9iamVjdCB3aXRoIGZhaWx1cmVzIGNvbW1vbiB0byBib3RoIGlucHV0IG9iamVjdHMu
CisgICAgICAgIChKU0NUZXN0UmVzdWx0cy5yZXN1bHRzX2Zyb21fc3RyaW5nKTogVXNlIGpzb24g
bGlicmFyeSB0byBwYXJzZSByZXN1bHRzLgorICAgICAgICAoSlNDVGVzdFJlc3VsdHMuX19pbml0
X18pOiBJbml0aWFsaXplIG1lbWJlcnMuCisgICAgICAgIChKU0NUZXN0UmVzdWx0cy5lcXVhbHMp
OiBUaGlzIGVuYWJsZXMgdW5pdCB0ZXN0aW5nLgorICAgICAgICAoSlNDVGVzdFJlc3VsdHMuaXNf
c3Vic2V0KTogQ2hlY2tzIGlmIG9uZSBzZXQgb2YgZmFpbHVyZXMgaXMgYSBzdWJzZXQgb2YgYW5v
dGhlci4KKyAgICAgICAgKEpTQ1Rlc3RSZXN1bHRzLnN0cmVzc190ZXN0X2ZhaWx1cmVzKTogR2V0
dGVyLgorICAgICAgICAoSlNDVGVzdFJlc3VsdHMuYWxsX2FwaV90ZXN0c19wYXNzZWQpOiBHZXR0
ZXIuCisgICAgICAgIChKU0NUZXN0UmVzdWx0cy5hbGxfcGFzc2VkKTogR2V0dGVyLgorICAgICAg
ICAoSlNDVGVzdFJlc3VsdHMuZmFpbGluZ190ZXN0X3Jlc3VsdHMpOiBHZXR0ZXIuIFNvbWUgb2Yg
dGhlc2UgZXhpc3QgZm9yIGludGVyb3BhYmlsaXR5IHJlYXNvbnMuCisgICAgICAgIChKU0NUZXN0
UmVzdWx0cy50ZXN0X3Jlc3VsdHMpOiBHZXR0ZXIuCisgICAgICAgIChKU0NUZXN0UmVzdWx0cy5m
YWlsaW5nX3Rlc3RzKTogR2V0dGVyLgorICAgICAgICAoSlNDVGVzdFJlc3VsdHMuZGlkX2V4Y2Vl
ZF90ZXN0X2ZhaWx1cmVfbGltaXQpOiBHZXR0ZXIuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRw
eS9jb21tb24vbmV0L2pzY3Rlc3RyZXN1bHRzX3VuaXR0ZXN0LnB5OiBBZGRlZC4KKyAgICAgICAg
KEpTQ1Rlc3RSZXN1bHRzVGVzdCk6IENsYXNzIHRvIHRlc3QgSlNDVGVzdFJlc3VsdHMuCisgICAg
ICAgIChKU0NUZXN0UmVzdWx0c1Rlc3QudGVzdF9yZXN1bHRzX2Zyb21fc3RyaW5nKTogVGVzdHMg
cGFyc2luZy4KKyAgICAgICAgKEpTQ1Rlc3RSZXN1bHRzVGVzdC50ZXN0X2ludGVyc2VjdGlvbl9h
cGlfdGVzdHMpOiBVbml0IHRlc3QgZm9yIGludGVyc2VjdGlvbigpIGNsYXNzIG1ldGhvZC4KKyAg
ICAgICAgKEpTQ1Rlc3RSZXN1bHRzVGVzdC50ZXN0X2ludGVyc2VjdGlvbl9zdHJlc3NfdGVzdHMp
OiBVbml0IHRlc3QgZm9yIGludGVyc2VjdGlvbigpIGNsYXNzIG1ldGhvZC4KKyAgICAgICAgKEpT
Q1Rlc3RSZXN1bHRzVGVzdC50ZXN0X2ludGVyc2VjdGlvbl9nZW5lcmFsX2Nhc2UpOiBVbml0IHRl
c3QgZm9yIGludGVyc2VjdGlvbigpIGNsYXNzIG1ldGhvZC4KKyAgICAgICAgKiBTY3JpcHRzL3dl
YmtpdHB5L3Rvb2wvYm90L2Vhcmx5d2FybmluZ3N5c3RlbXRhc2sucHk6CisgICAgICAgIChFYXJs
eVdhcm5pbmdTeXN0ZW1UYXNrLnJ1bik6IEFkZCBjaGVja19wYXRjaF9yZWxldmFuY2Ugc3RlcC4K
KyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2pzY2V3c191bml0dGVzdC5weTog
QWRkZWQuCisgICAgICAgIChNb2NrUGF0Y2hBbmFseXNpc1Rhc2spOiBNb2NrZWQtb3V0IHZlcnNp
b24gb2YgUGF0Y2hBbmFseXNpc1Rhc2sgdGhhdCBkb2Vzbid0IHJ1biBjb21tYW5kcy4KKyAgICAg
ICAgKE1vY2tQYXRjaEFuYWx5c2lzVGFzay5fX2luaXRfXyk6IFNldHMgYXR0cmlidXRlcy4KKyAg
ICAgICAgKE1vY2tQYXRjaEFuYWx5c2lzVGFzay5fdGVzdCk6IE92ZXJyaWRlIHRvIG5vdCBydW4g
Y29tbWFuZC4KKyAgICAgICAgKE1vY2tQYXRjaEFuYWx5c2lzVGFzay5fYnVpbGRfYW5kX3Rlc3Rf
d2l0aG91dF9wYXRjaCk6IE92ZXJyaWRlIHRvIG5vdCBydW4gY29tbWFuZC4KKyAgICAgICAgKE1v
Y2tQYXRjaEFuYWx5c2lzVGFzay52YWxpZGF0ZSk6IEFzc3VtZSBtb2NrZWQgcGF0Y2ggaXMgdmFs
aWQgZm9yIHB1cnBvc2VzIG9mIHRlc3RpbmcgcmV0cnkgbG9naWMuCisgICAgICAgIChNb2NrUGF0
Y2hBbmFseXNpc1Rhc2sudGVzdF9ydW5fY291bnQpOiBTcGVjaWZpYyB0byB0aGUgbW9ja2VkIHZl
cnNpb24sIHRvIHRlc3QgcmV0cnkgbG9naWMuCisgICAgICAgIChNb2NrSlNDRWFybHlXYXJuaW5n
U3lzdGVtKTogTW9ja2VkLW91dCB2ZXJzaW9uIG9mIEFic3RhcmN0RWFybHlXYXJuaW5nU3lzdGVt
IHNvIHdlIGNhbiBwcm92aWRlIHRlc3QgcmVzdWx0cy4KKyAgICAgICAgKE1vY2tKU0NFYXJseVdh
cm5pbmdTeXN0ZW0uX19pbml0X18pOiBTZXRzIGF0dHJpYnV0ZXMsIGFsc28gc2V0cyBncm91cCB0
byBqc2MuCisgICAgICAgIChNb2NrSlNDRWFybHlXYXJuaW5nU3lzdGVtLnRlc3RfcmVzdWx0cyk6
IFJldHVybnMgdGVzdCByZXN1bHRzIHByb3ZpZGVkIGJ5IHVzLCBpbnN0ZWFkIG9mIHVzaW5nIGEg
SlNPTiByZWFkZXIuCisgICAgICAgIChKU0NFYXJseVdhcm5pbmdTeXN0ZW1UZXN0KTogQ2xhc3Mg
dG8gdGVzdCByZXRyeSBsb2dpYyBpbiBiZWxvdyBzaXR1YXRpb25zLgorICAgICAgICAoSlNDRWFy
bHlXYXJuaW5nU3lzdGVtVGVzdC5fY3JlYXRlX3Rhc2spOiBIZWxwZXIgZnVuY3Rpb24gdG8gYWJz
dHJhY3Qgb3V0IGNvbW1vbiBjb2RlLgorICAgICAgICAoSlNDRWFybHlXYXJuaW5nU3lzdGVtVGVz
dC5fcmVzdWx0c19pbmRpY2F0ZV9hbGxfcGFzc2VkKTogRmFsc2UgaWYgaW5wdXQgaXMgTm9uZSBv
ciBoYXMgZmFpbHVyZXMsIGVsc2UgVHJ1ZS4KKyAgICAgICAgKEpTQ0Vhcmx5V2FybmluZ1N5c3Rl
bVRlc3QudGVzdF9zdWNjZXNzX2Nhc2UpOiBDbGVhbiBwYXRjaCBvbiBjbGVhbiB0cmVlLgorICAg
ICAgICAoSlNDRWFybHlXYXJuaW5nU3lzdGVtVGVzdC50ZXN0X3Rlc3RfZmFpbHVyZSk6IEZhaWxl
ZCBwYXRjaCBvbiBjbGVhbiB0cmVlLgorICAgICAgICAoSlNDRWFybHlXYXJuaW5nU3lzdGVtVGVz
dC50ZXN0X2ZpeCk6IFBhdGNoIHRoYXQgZml4ZXMgYWxsIHRyZWUgcmVkbmVzcy4KKyAgICAgICAg
KEpTQ0Vhcmx5V2FybmluZ1N5c3RlbVRlc3QudGVzdF9pbmVmZmVjdGl2ZV9wYXRjaCk6IFBhdGNo
IHRoYXQgaGFzIHNhbWUgZmFpbHVyZXMgYXMgdHJlZS4KKyAgICAgICAgKEpTQ0Vhcmx5V2Fybmlu
Z1N5c3RlbVRlc3QudGVzdF9wYXJ0aWFsbHlfZWZmZWN0aXZlX3BhdGNoKTogUGF0Y2ggZml4ZXMg
c29tZSBmYWlsdXJlcyBidXQgYWRkcyBubyBuZXcgZmFpbHVyZXMuCisgICAgICAgIChKU0NFYXJs
eVdhcm5pbmdTeXN0ZW1UZXN0LnRlc3RfZGlmZmVyZW50X3Rlc3RfZmFpbHVyZXNfaW5fcGF0Y2hf
YW5kX3RyZWUpOiBQYXRjaCBoYXMgc29tZSBmYWlsdXJlcyBub3QgaW4gdHJlZS4KKyAgICAgICAg
KEpTQ0Vhcmx5V2FybmluZ1N5c3RlbVRlc3QudGVzdF9maXJzdF9yZXN1bHRzX2NvdWxkX25vdF9i
ZV9yZWFkKTogUGF0Y2ggcmVzdWx0cyBub3QgcmVhZGFibGUuCisgICAgICAgIChKU0NFYXJseVdh
cm5pbmdTeXN0ZW1UZXN0LnRlc3Rfc2Vjb25kX3Jlc3VsdHNfY291bGRfbm90X2JlX3JlYWQpOiBQ
YXRjaCByZXN1bHRzIG5vdCByZWFkYWJsZSBvbiBzZWNvbmQgcnVuLgorICAgICAgICAoSlNDRWFy
bHlXYXJuaW5nU3lzdGVtVGVzdC50ZXN0X2NsZWFuX3Jlc3VsdHNfY291bGRfbm90X2JlX3JlYWQp
OiBSZXN1bHRzIGZyb20gY2xlYW4gdHJlZSBub3QgcmVhZGFibGUuCisgICAgICAgIChKU0NFYXJs
eVdhcm5pbmdTeXN0ZW1UZXN0LnRlc3RfZmxha3lfcmVzdWx0c19vbl9jbGVhbl90cmVlX3Bhc3Mp
OiBQYXRjaCBoYXMgb25lIGZsYWtlIGFuZCBubyBmYWlsdXJlcy4KKyAgICAgICAgKEpTQ0Vhcmx5
V2FybmluZ1N5c3RlbVRlc3QudGVzdF9mbGFreV9yZXN1bHRzX29uX2NsZWFuX3RyZWVfcGFzc192
Mik6IFBhdGNoIGhhcyBvbmUgZmxha2UgYW5kIG5vIGZhaWx1cmVzLgorICAgICAgICAoSlNDRWFy
bHlXYXJuaW5nU3lzdGVtVGVzdC50ZXN0X2ZsYWt5X3Jlc3VsdHNfb25fY2xlYW5fdHJlZV9mYWls
dXJlKTogUGF0Y2ggaGFzIGZsYWtlcyBhbmQgZmFpbGVkIHRlc3RzLgorICAgICAgICAoSlNDRWFy
bHlXYXJuaW5nU3lzdGVtVGVzdC50ZXN0X2ZsYWt5X3Jlc3VsdHNfb25fcmVkX3RyZWVfcGFzcyk6
IFBhdGNoIGhhcyBzYW1lIGZhaWx1cmVzIGFzIHRyZWUsIHBsdXMgYSBmbGFrZS4KKyAgICAgICAg
KiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2pzY3Rlc3RyZXN1bHRzcmVhZGVyLnB5OiBBZGRl
ZC4KKyAgICAgICAgKEpTQ1Rlc3RSZXN1bHRzUmVhZGVyKTogUmVhZHMgcmVzdWx0cyBmaWxlLgor
ICAgICAgICAoSlNDVGVzdFJlc3VsdHNSZWFkZXIuX19pbml0X18pOiBTZXRzIGF0dHJpYnV0ZXMu
CisgICAgICAgIChKU0NUZXN0UmVzdWx0c1JlYWRlci5fcmVhZF9maWxlX2NvbnRlbnRzKTogUmVh
ZHMgZmlsZS4KKyAgICAgICAgKEpTQ1Rlc3RSZXN1bHRzUmVhZGVyLl9jcmVhdGVfanNjX3Rlc3Rf
cmVzdWx0cyk6IENyZWF0ZXMgYSBKU0NUZXN0UmVzdWx0cyBvYmplY3QuCisgICAgICAgIChKU0NU
ZXN0UmVzdWx0c1JlYWRlci5yZXN1bHRzKTogSW52b2tlcyBfY3JlYXRlX2pzY190ZXN0X3Jlc3Vs
dHMgdG8gcmV0dXJuIGEgSlNDVGVzdFJlc3VsdHMgb2JqZWN0LgorICAgICAgICAqIFNjcmlwdHMv
d2Via2l0cHkvdG9vbC9ib3QvcGF0Y2hhbmFseXNpc3Rhc2sucHk6CisgICAgICAgIChQYXRjaElz
Tm90QXBwbGljYWJsZSk6IEV4Y2VwdGlvbiBmb3Igd2hlbiBwYXRjaCBkb2Vzbid0IGhhdmUgcmVs
ZXZhbnQgY2hhbmdlcy4KKyAgICAgICAgKFBhdGNoQW5hbHlzaXNUYXNrLl9jaGVja19wYXRjaF9y
ZWxldmFuY2UpOiBBZGRlZC4KKyAgICAgICAgKFBhdGNoQW5hbHlzaXNUYXNrLl9idWlsZCk6IENo
ZWNrIGZvciBKU0MuCisgICAgICAgIChQYXRjaEFuYWx5c2lzVGFzay5fYnVpbGRfd2l0aG91dF9w
YXRjaCk6IENoZWNrIGZvciBKU0MuCisgICAgICAgIChQYXRjaEFuYWx5c2lzVGFzay5fdGVzdCk6
IENoZWNrIGZvciBKU0MuCisgICAgICAgIChQYXRjaEFuYWx5c2lzVGFzay5fYnVpbGRfYW5kX3Rl
c3Rfd2l0aG91dF9wYXRjaCk6IENoZWNrIGZvciBKU0MuCisgICAgICAgIChQYXRjaEFuYWx5c2lz
VGFzay5fdGVzdF9wYXRjaCk6IEFkZCByZXRyeSBsb2dpYyBmb3IgSlNDLgorICAgICAgICAqIFNj
cmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9kb3dubG9hZC5weToKKyAgICAgICAgKENoZWNr
UGF0Y2hSZWxldmFuY2UpOiBBZGQgY2hlY2stcGF0Y2gtcmVsZXZhbmNlIGNvbW1hbmQuCisgICAg
ICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Vhcmx5d2FybmluZ3N5c3RlbS5w
eToKKyAgICAgICAgKEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtLl9jcmVhdGVfdGFzayk6IEFi
c3RyYWN0IG91dCB0byBlbmFibGUgbW9ja2luZy4KKyAgICAgICAgKEFic3RyYWN0RWFybHlXYXJu
aW5nU3lzdGVtLmJlZ2luX3dvcmtfcXVldWUpOiBVc2UgSlNDVGVzdFJlc3VsdHNSZWFkZXIgbm90
IExheW91dFRlc3RSZXN1bHRzUmVhZGVyIGluIEpTQyBFV1MuCisgICAgICAgIChBYnN0cmFjdEVh
cmx5V2FybmluZ1N5c3RlbS5yZXZpZXdfcGF0Y2gpOiBIYW5kbGUgUGF0Y2hJc0FwcGxpY2FibGUK
KyAgICAgICAgKEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtLnRlc3RfcmVzdWx0cyk6IF9sYXlv
dXRfdGVzdF9yZXN1bHRzX3JlYWRlciAtPiBfdGVzdF9yZXN1bHRzX3JlYWRlci4KKyAgICAgICAg
KEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtLmFyY2hpdmVfbGFzdF90ZXN0X3Jlc3VsdHMpOiBf
bGF5b3V0X3Rlc3RfcmVzdWx0c19yZWFkZXIgLT4gX3Rlc3RfcmVzdWx0c19yZWFkZXIuCisgICAg
ICAgIChBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbS5ncm91cCk6IFRoaXMgYXR0cmlidXRlIGRl
dGVybWluZXMgdGhlIHR5cGUgb2YgRVdTIChlZy4gSlNDKS4KKyAgICAgICAgKEFic3RyYWN0RWFy
bHlXYXJuaW5nU3lzdGVtLmxvYWRfZXdzX2NsYXNzZXMpOiBBZGQgX2dyb3VwLCBhbmQgbWFrZSBj
bGFzc2VzIG9mIHR5cGUgY2xzIHRvIGVuYWJsZSBtb2NraW5nLgorICAgICAgICAqIFNjcmlwdHMv
d2Via2l0cHkvdG9vbC9jb21tYW5kcy9lYXJseXdhcm5pbmdzeXN0ZW1fdW5pdHRlc3QucHk6Cisg
ICAgICAgIChBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbVRlc3QudGVzdF9mYWlsaW5nX3Rlc3Rz
X21lc3NhZ2UuVGVzdEVXUyk6IEFkZCBfZ3JvdXAuCisgICAgICAgIChBYnN0cmFjdEVhcmx5V2Fy
bmluZ1N5c3RlbVRlc3QudGVzdF9mYWlsaW5nX2pzY190ZXN0c19tZXNzYWdlLlRlc3RFV1MpOiBB
ZGRlZCB0ZXN0IGZvciBqc2MgZmFpbHVyZXMgbWVzc2FnZS4KKyAgICAgICAgKEFic3RyYWN0RWFy
bHlXYXJuaW5nU3lzdGVtVGVzdCk6IEFkZCBfZ3JvdXAgdmFyaWFibGUuCisgICAgICAgIChFYXJs
eVdhcm5pbmdTeXN0ZW1UZXN0Ll9kZWZhdWx0X2V4cGVjdGVkX2xvZ3MpOiBBZGQgY2hlY2stcGF0
Y2gtcmVsZXZhbmNlIHN0ZXAsIGluY29uY2x1c2l2ZSBsb2dzLCBhbmQgZ3JvdXAuCisgICAgICAg
IChFYXJseVdhcm5pbmdTeXN0ZW1UZXN0Ll90ZXN0X2V3cyk6IEFkZCBsb2dzX2FyZV9jb25jbHVz
aXZlIG9wdGlvbiB0byBwYXNzIHRocm91Z2ggdG8gZGVmYXVsdF9leHBlY3RlZF9sb2dzKCkuCisg
ICAgICAgIChFYXJseVdhcm5pbmdTeXN0ZW1UZXN0LnRlc3RfaW5jb25jbHVzaXZlX3Rlc3RfcmVz
dWx0cyk6IFRlc3Qgbm90IHJlbW92aW5nIHBhdGNoIGZyb20gcXVldWUgaWYgbm90IGNvbmNsdXNp
dmUuCisgICAgICAgIChNb2NrQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0pOiBBZGRlZC4KKyAg
ICAgICAgKE1vY2tBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbS50ZXN0X3Jlc3VsdHMpOiBTaW11
bGF0ZXMgaW5jb25jbHVzaXZlIHJlc3VsdHMuCisgICAgICAgIChNb2NrQWJzdHJhY3RFYXJseVdh
cm5pbmdTeXN0ZW0uX2NyZWF0ZV90YXNrKTogVXNlIE1vY2tFYXJseVdhcm5pbmdTeXN0ZW1UYXNr
IChub3QgRWFybHlXYXJuaW5nU3lzdGVtVGFzaykuCisgICAgICAgIChNb2NrRWFybHlXYXJuaW5n
U3lzdGVtVGFzayk6IEFkZGVkLgorICAgICAgICAoTW9ja0Vhcmx5V2FybmluZ1N5c3RlbVRhc2su
X3Rlc3RfcGF0Y2gpOiBTaW11bGF0ZXMgcnVubmluZyB0ZXN0cyBidXQgbm90IGdldHRpbmcgYSBj
b25jbHVzaXZlIHJlc3VsdC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMv
X19pbml0X18ucHk6IEFkZCBDaGVja1BhdGNoUmVsZXZhbmNlIGltcG9ydC4KKyAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvYnVpbGQucHk6CisgICAgICAgIChCdWlsZC5vcHRp
b25zKTogQ2hlY2sgZm9yIEpTQy4KKyAgICAgICAgKEJ1aWxkLmJ1aWxkKTogQ2hlY2sgZm9yIEpT
Qy4KKyAgICAgICAgKEJ1aWxkLnJ1bik6IENoZWNrIGZvciBKU0MuCisgICAgICAgICogU2NyaXB0
cy93ZWJraXRweS90b29sL3N0ZXBzL2NoZWNrcGF0Y2hyZWxldmFuY2UucHk6IEFkZGVkLgorICAg
ICAgICAoQ2hlY2tQYXRjaFJlbGV2YW5jZSk6IEFkZGVkLgorICAgICAgICAoQ2hlY2tQYXRjaFJl
bGV2YW5jZS5fZG9lc19jb250YWluX2NoYW5nZV9pbl9wYXRocyk6IEFic3RyYWN0IGZ1bmN0aW9u
IHRvIHBlcmZvcm0gcmVnZXggbWF0Y2hpbmcuCisgICAgICAgIChDaGVja1BhdGNoUmVsZXZhbmNl
LnJ1bik6IENoZWNrIGlmIGNoYW5nZWQgZmlsZXMgaW4gcGF0Y2ggYmVsb25nIGluIGNlcnRhaW4g
Zm9sZGVycy4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvb3B0aW9ucy5w
eToKKyAgICAgICAgKE9wdGlvbnMpOiBBZGQgLS1ncm91cCBjb21tYW5kIGxpbmUgb3B0aW9uLgor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9ydW50ZXN0cy5weToKKyAgICAg
ICAgKFJ1blRlc3RzLm9wdGlvbnMpOiBBZGQgZ3JvdXAuCisgICAgICAgIChSdW5UZXN0cy5ydW4p
OiBDaGVjayBmb3IgSlNDLgorICAgICAgICAoUnVuVGVzdHMuX3J1bl93ZWJraXRfdGVzdHMpOiBD
aGVjayBmb3IgSlNDLgorICAgICAgICAoUnVuVGVzdHMpOiBBZGQgX2dyb3VwIGF0dHJpYnV0ZS4K
KyAgICAgICAgKFJ1blRlc3RzLl9ydW5famF2YXNjcmlwdGNvcmVfdGVzdHMpOiBOZXcuCisgICAg
ICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3N0ZXBzX3VuaXR0ZXN0LnB5OiBVbml0
IHRlc3RzLgorCiAyMDE3LTAyLTAzICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUu
Y29tPgogCiAgICAgICAgIENvcnJlY3RseSBzZXQgdGhlICJpbldpbmRvdyIgZmxhZyBmb3IgVGls
ZUNvbnRyb2xsZXJzIHRoYXQgYXJlbid0IHRoZSBwYWdlIHRpbGVzLCBhbmQgY2xhcmlmeSAidXNp
bmdUaWxlZEJhY2tpbmciIGxvZ2ljCmRpZmYgLS1naXQgYS9Ub29scy9RdWV1ZVN0YXR1c1NlcnZl
ci9jb25maWcvcXVldWVzLnB5IGIvVG9vbHMvUXVldWVTdGF0dXNTZXJ2ZXIvY29uZmlnL3F1ZXVl
cy5weQppbmRleCAzNDFkZDA4M2FkZmJiODkwNzE5OGJlZWQ1ZWFiMjE5MzAyNjk4M2Y1Li4wYTIy
ZmYzMmM4ZjAzYzg3MTQ5Njk4Nzc0ZjY0MzhlZDVmYWJhZGM3IDEwMDY0NAotLS0gYS9Ub29scy9R
dWV1ZVN0YXR1c1NlcnZlci9jb25maWcvcXVldWVzLnB5CisrKyBiL1Rvb2xzL1F1ZXVlU3RhdHVz
U2VydmVyL2NvbmZpZy9xdWV1ZXMucHkKQEAgLTEsNCArMSw0IEBACi0jIENvcHlyaWdodCAoQykg
MjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAx
NCwgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjIENvcHlyaWdodCAoQykg
MjAxMyBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKQEAg
LTM2LDYgKzM2LDcgQEAgYWxsX3F1ZXVlX25hbWVzID0gWwogICAgICJndGstd2syLWV3cyIsCiAg
ICAgImlvcy1ld3MiLAogICAgICJpb3Mtc2ltLWV3cyIsCisgICAgImpzYy1ld3MiLAogICAgICJt
YWMtZXdzIiwKICAgICAibWFjLXdrMi1ld3MiLAogICAgICJtYWMtZGVidWctZXdzIiwKZGlmZiAt
LWdpdCBhL1Rvb2xzL1F1ZXVlU3RhdHVzU2VydmVyL2hhbmRsZXJzL3N0YXR1c2J1YmJsZS5weSBi
L1Rvb2xzL1F1ZXVlU3RhdHVzU2VydmVyL2hhbmRsZXJzL3N0YXR1c2J1YmJsZS5weQppbmRleCBj
ODA1MTRmZjg3ODllZjY5NGI5OTU3MTRlMmViNWQ5NmY4YmNhNzgyLi4yNzNmOGRmZjA2YzY5YjQ4
MzA1YjkzODMzMGVjNTAyZTAwM2IzYjc1IDEwMDY0NAotLS0gYS9Ub29scy9RdWV1ZVN0YXR1c1Nl
cnZlci9oYW5kbGVycy9zdGF0dXNidWJibGUucHkKKysrIGIvVG9vbHMvUXVldWVTdGF0dXNTZXJ2
ZXIvaGFuZGxlcnMvc3RhdHVzYnViYmxlLnB5CkBAIC0xLDQgKzEsNSBAQAogIyBDb3B5cmlnaHQg
KEMpIDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChD
KSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAj
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucyBhcmUKQEAgLTE4MiwxMSArMTgzLDE5IEBAIGNsYXNzIFN0YXR1c0J1YmJsZSh3
ZWJhcHAuUmVxdWVzdEhhbmRsZXIpOgogICAgICAgICByZXR1cm4gYnViYmxlCiAKICAgICBkZWYg
X3Nob3VsZF9zaG93X2J1YmJsZV9mb3Ioc2VsZiwgYXR0YWNobWVudCwgcXVldWUpOgotICAgICAg
ICAgIyBBbnkgcGVuZGluZyBxdWV1ZSBpcyBzaG93bi4KKyAgICAgICAgIyBBbnkgcGVuZGluZyBx
dWV1ZSBpcyBzaG93bi4KICAgICAgICAgaWYgYXR0YWNobWVudC5wb3NpdGlvbl9pbl9xdWV1ZShx
dWV1ZSk6CiAgICAgICAgICAgICByZXR1cm4gVHJ1ZQotICAgICAgICAjIEVXUyBxdWV1ZXMgYXJl
IGFsc28gc2hvd24gd2hlbiBjb21wbGV0ZS4KLSAgICAgICAgcmV0dXJuIGJvb2wocXVldWUuaXNf
ZXdzKCkgYW5kIGF0dGFjaG1lbnQuc3RhdHVzX2Zvcl9xdWV1ZShxdWV1ZSkpCisKKyAgICAgICAg
IyBFV1MgcXVldWVzIGFyZSBhbHNvIHNob3duIHdoZW4gY29tcGxldGUKKyAgICAgICAgIyBCdXQg
SlNDIEVXUyBidWJibGUgaXMgbm90IHNob3duIGlmIHRoZSBwYXRjaCBpcyBub3QgcmVsZXZhbnQg
dG8gSlNDLgorICAgICAgICBpZiBub3QgcXVldWUuaXNfZXdzKCk6CisgICAgICAgICAgICByZXR1
cm4gRmFsc2UKKworICAgICAgICBzdGF0dXMgPSBhdHRhY2htZW50LnN0YXR1c19mb3JfcXVldWUo
cXVldWUpCisgICAgICAgIGlmIHF1ZXVlLm5hbWUoKSA9PSAianNjLWV3cyI6CisgICAgICAgICAg
ICByZXR1cm4gbm90IHN0YXR1cy5tZXNzYWdlLnN0YXJ0c3dpdGgoIlBhdGNoIG5vdCBhcHBsaWNh
YmxlIikKKyAgICAgICAgcmV0dXJuIGJvb2woc3RhdHVzKQogCiAgICAgZGVmIF9idWlsZF9idWJi
bGVzX2Zvcl9hdHRhY2htZW50KHNlbGYsIGF0dGFjaG1lbnQpOgogICAgICAgICBzaG93X3N1Ym1p
dF90b19ld3MgPSBUcnVlCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1v
bi9jaGVja291dC9zY20vc2NtX21vY2sucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1v
bi9jaGVja291dC9zY20vc2NtX21vY2sucHkKaW5kZXggYzVkMTBmY2IxODliMGE4YjUxOWZhNTU2
MjUwMjJhNzBjNDg2ZDQ0Yi4uOTc3NGVjOGFlODczYTFiMGI4Mzc2MDcxODA2Njc5MjE1ODA5ZWVl
YyAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hlY2tvdXQvc2Nt
L3NjbV9tb2NrLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNrb3V0
L3NjbS9zY21fbW9jay5weQpAQCAtMSw0ICsxLDUgQEAKICMgQ29weXJpZ2h0IChDKSAyMDExIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAxNyBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogIyBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMg
YXJlCkBAIC0zNyw2ICszOCw3IEBAIGNsYXNzIE1vY2tTQ00ob2JqZWN0KToKICAgICAgICAgc2Vs
Zi5hZGRlZF9wYXRocyA9IHNldCgpCiAgICAgICAgIHNlbGYuX2ZpbGVzeXN0ZW0gPSBmaWxlc3lz
dGVtIG9yIE1vY2tGaWxlU3lzdGVtKCkKICAgICAgICAgc2VsZi5fZXhlY3V0aXZlID0gZXhlY3V0
aXZlIG9yIE1vY2tFeGVjdXRpdmUoKQorICAgICAgICBzZWxmLl9tb2NrQ2hhbmdlZEZpbGVzID0g
WyJNb2NrRmlsZTEiXQogCiAgICAgZGVmIGFkZChzZWxmLCBkZXN0aW5hdGlvbl9wYXRoKToKICAg
ICAgICAgc2VsZi5hZGRfbGlzdChbZGVzdGluYXRpb25fcGF0aF0pCkBAIC03MSw3ICs3Myw3IEBA
IGNsYXNzIE1vY2tTQ00ob2JqZWN0KToKICAgICAgICAgcmV0dXJuIHNlbGYuX2ZpbGVzeXN0ZW0u
am9pbihzZWxmLmNoZWNrb3V0X3Jvb3QsICpjb21wcykKIAogICAgIGRlZiBjaGFuZ2VkX2ZpbGVz
KHNlbGYsIGdpdF9jb21taXQ9Tm9uZSk6Ci0gICAgICAgIHJldHVybiBbIk1vY2tGaWxlMSJdCisg
ICAgICAgIHJldHVybiBzZWxmLl9tb2NrQ2hhbmdlZEZpbGVzCiAKICAgICBkZWYgY2hhbmdlZF9m
aWxlc19mb3JfcmV2aXNpb24oc2VsZiwgcmV2aXNpb24pOgogICAgICAgICByZXR1cm4gWyJNb2Nr
RmlsZTEiXQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmln
L2V3cy5qc29uIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL2V3cy5qc29u
CmluZGV4IDM1ZDQ5ODVhYjBmOTNkMTI3YjM3MjFlNDYwMWNkNmQ4OWRmY2NmM2MuLmU1MzQwZmU1
YzNjMjFhZTgxYWQxZWY3ZTAzZjdmYjgxZjM4MzljZmYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9ld3MuanNvbgorKysgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2NvbW1vbi9jb25maWcvZXdzLmpzb24KQEAgLTUwLDUgKzUwLDExIEBACiAgICAgICAg
ICJwb3J0IjogIm1hYyIsCiAgICAgICAgICJuYW1lIjogIm1hYy0zMmJpdC1ld3MiLAogICAgICAg
ICAiYXJjaGl0ZWN0dXJlIjogImkzODYiCisgICAgfSwKKyAgICAiSlNDIEVXUyI6IHsKKyAgICAg
ICAgInBvcnQiOiAibWFjIiwKKyAgICAgICAgIm5hbWUiOiAianNjLWV3cyIsCisgICAgICAgICJn
cm91cCI6ICJqc2MiLAorICAgICAgICAicnVuVGVzdHMiOiB0cnVlCiAgICAgfQogfQpkaWZmIC0t
Z2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL3BvcnRzLnB5IGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL3BvcnRzLnB5CmluZGV4IGEwZDUwZGNi
NmVhMGI1ZmRlMGIzYzE3ZWYxNTljZWFmZWUxYTJlOTguLmQzN2VkOWQxYzVlMjU1MGU0ODgzNGU3
ZWYwMGJhZTRjMjRjYmQ3ODQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29t
bW9uL2NvbmZpZy9wb3J0cy5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9j
b25maWcvcG9ydHMucHkKQEAgLTEsNiArMSw2IEBACiAjIENvcHlyaWdodCAoQykgMjAwOSwgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMgQ29weXJpZ2h0IChDKSAyMDEzIE5va2lh
IENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KLSMgQ29weXJpZ2h0IChD
KSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAy
MDE1LCAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucyBhcmUKQEAgLTEwMyw4ICsxMDMsMjEgQEAgY2xhc3MgRGVwcmVjYXRlZFBv
cnQob2JqZWN0KToKICAgICAgICAgICAgIGNvbW1hbmQuYXBwZW5kKCItLXJlbGVhc2UiKQogICAg
ICAgICByZXR1cm4gY29tbWFuZAogCi0gICAgZGVmIHJ1bl9qYXZhc2NyaXB0Y29yZV90ZXN0c19j
b21tYW5kKHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi5zY3JpcHRfc2hlbGxfY29tbWFuZCgi
cnVuLWphdmFzY3JpcHRjb3JlLXRlc3RzIikKKyAgICBkZWYgYnVpbGRfanNjX2NvbW1hbmQoc2Vs
ZiwgYnVpbGRfc3R5bGU9Tm9uZSk6CisgICAgICAgIGNvbW1hbmQgPSBzZWxmLnNjcmlwdF9zaGVs
bF9jb21tYW5kKCJidWlsZC1qc2MiKQorICAgICAgICBpZiBidWlsZF9zdHlsZSA9PSAiZGVidWci
OgorICAgICAgICAgICAgY29tbWFuZC5hcHBlbmQoIi0tZGVidWciKQorICAgICAgICBpZiBidWls
ZF9zdHlsZSA9PSAicmVsZWFzZSI6CisgICAgICAgICAgICBjb21tYW5kLmFwcGVuZCgiLS1yZWxl
YXNlIikKKyAgICAgICAgcmV0dXJuIGNvbW1hbmQKKworICAgIGRlZiBydW5famF2YXNjcmlwdGNv
cmVfdGVzdHNfY29tbWFuZChzZWxmLCBidWlsZF9zdHlsZT1Ob25lKToKKyAgICAgICAgY29tbWFu
ZCA9IHNlbGYuc2NyaXB0X3NoZWxsX2NvbW1hbmQoInJ1bi1qYXZhc2NyaXB0Y29yZS10ZXN0cyIp
CisgICAgICAgIGNvbW1hbmQuYXBwZW5kKCItLW5vLWZhaWwtZmFzdCIpCisgICAgICAgIGNvbW1h
bmQuYXBwZW5kKCItLWpzb24tb3V0cHV0PWpzY190ZXN0X3Jlc3VsdHMuanNvbiIpCisgICAgICAg
IGlmIChidWlsZF9zdHlsZSA9PSAiZGVidWciKToKKyAgICAgICAgICAgIGNvbW1hbmQuYXBwZW5k
KCItLWRlYnVnIikKKyAgICAgICAgcmV0dXJuIGNvbW1hbmQKIAogICAgIGRlZiBydW5fd2Via2l0
X3Rlc3RzX2NvbW1hbmQoc2VsZiwgYnVpbGRfc3R5bGU9Tm9uZSk6CiAgICAgICAgIGNvbW1hbmQg
PSBzZWxmLnNjcmlwdF9zaGVsbF9jb21tYW5kKCJydW4td2Via2l0LXRlc3RzIikKQEAgLTE1MCw3
ICsxNjMsMTAgQEAgY2xhc3MgSU9TU2ltdWxhdG9yV0syUG9ydChEZXByZWNhdGVkUG9ydCk6CiBj
bGFzcyBNYWNQb3J0KERlcHJlY2F0ZWRQb3J0KToKICAgICBwb3J0X2ZsYWdfbmFtZSA9ICJtYWMi
CiAKLSAgICBkZWYgcnVuX3dlYmtpdF90ZXN0c19jb21tYW5kKHNlbGYsIGJ1aWxkX3N0eWxlPU5v
bmUpOgorICAgIGRlZiBydW5fd2Via2l0X3Rlc3RzX2NvbW1hbmQoc2VsZiwgYnVpbGRfc3R5bGU9
Tm9uZSwgdGVzdF9zdWl0ZT1Ob25lKToKKyAgICAgICAgaWYgKHRlc3Rfc3VpdGUgPT0gImpzYyIp
OgorICAgICAgICAgICAgcmV0dXJuIHN1cGVyKE1hY1BvcnQsIHNlbGYpLnJ1bl9qYXZhc2NyaXB0
Y29yZV90ZXN0c19jb21tYW5kKGJ1aWxkX3N0eWxlKQorCiAgICAgICAgIGNvbW1hbmQgPSBzdXBl
cihNYWNQb3J0LCBzZWxmKS5ydW5fd2Via2l0X3Rlc3RzX2NvbW1hbmQoYnVpbGRfc3R5bGUpCiAg
ICAgICAgIGNvbW1hbmQuYXBwZW5kKCItLWR1bXAtcmVuZGVyLXRyZWUiKQogICAgICAgICByZXR1
cm4gY29tbWFuZApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29u
ZmlnL3BvcnRzX21vY2sucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcv
cG9ydHNfbW9jay5weQppbmRleCA2MTc0M2RlYmI0ZWJlZTM3NTZiYTdjMjBmMDE0ODIzNTQwZDJk
Y2E2Li5jYTFiMThhMzEwNjg0MjNiZGNlMDdjZGViN2Q3ZDdkMTk5ZjQwMGFiIDEwMDY0NAotLS0g
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvcG9ydHNfbW9jay5weQorKysg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvcG9ydHNfbW9jay5weQpAQCAt
MSw0ICsxLDUgQEAKICMgQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC00OSw3ICs1MCw3IEBA
IGNsYXNzIE1vY2tQb3J0KG9iamVjdCk6CiAgICAgZGVmIHJ1bl9wZXJsX3VuaXR0ZXN0c19jb21t
YW5kKHNlbGYpOgogICAgICAgICByZXR1cm4gWydtb2NrLXRlc3Qtd2Via2l0cGVybCddCiAKLSAg
ICBkZWYgcnVuX2phdmFzY3JpcHRjb3JlX3Rlc3RzX2NvbW1hbmQoc2VsZik6CisgICAgZGVmIHJ1
bl9qYXZhc2NyaXB0Y29yZV90ZXN0c19jb21tYW5kKHNlbGYsIGJ1aWxkX3N0eWxlPU5vbmUpOgog
ICAgICAgICByZXR1cm4gWydtb2NrLXJ1bi1qYXZhY3JpcHRjb3JlLXRlc3RzJ10KIAogICAgIGRl
ZiBydW5fd2Via2l0X3Rlc3RzX2NvbW1hbmQoc2VsZiwgYnVpbGRfc3R5bGU9Tm9uZSk6CmRpZmYg
LS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvcG9ydHNfdW5pdHRl
c3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvcG9ydHNfdW5pdHRl
c3QucHkKaW5kZXggMDhkNTQ1MjM2ZGEzNzAzZTkyOGYxY2VlZDFkZDkxMDJkOWI4NjIyZS4uMTZj
ZDdmOTI4MjUxYmJjOTk2Y2I2NDZlNDM1OWQ3M2ZkYjUzNWIyNiAxMDA2NDQKLS0tIGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL3BvcnRzX3VuaXR0ZXN0LnB5CisrKyBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9wb3J0c191bml0dGVzdC5weQpAQCAt
MSw0ICsxLDUgQEAKICMgQ29weXJpZ2h0IChjKSAyMDA5LCBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtMzksNiArNDAsMTAg
QEAgY2xhc3MgRGVwcmVjYXRlZFBvcnRUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChNYWNQb3J0KCkuYnVpbGRfd2Via2l0X2NvbW1hbmQoYnVpbGRfc3R5
bGU9ImRlYnVnIiksIERlcHJlY2F0ZWRQb3J0KCkuc2NyaXB0X3NoZWxsX2NvbW1hbmQoImJ1aWxk
LXdlYmtpdCIpICsgWyItLWRlYnVnIl0pCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTWFjUG9y
dCgpLmJ1aWxkX3dlYmtpdF9jb21tYW5kKGJ1aWxkX3N0eWxlPSJyZWxlYXNlIiksIERlcHJlY2F0
ZWRQb3J0KCkuc2NyaXB0X3NoZWxsX2NvbW1hbmQoImJ1aWxkLXdlYmtpdCIpICsgWyItLXJlbGVh
c2UiXSkKIAorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE1hY1BvcnQoKS5idWlsZF9qc2NfY29t
bWFuZCgpLCBEZXByZWNhdGVkUG9ydCgpLnNjcmlwdF9zaGVsbF9jb21tYW5kKCJidWlsZC1qc2Mi
KSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChNYWNQb3J0KCkuYnVpbGRfanNjX2NvbW1hbmQo
YnVpbGRfc3R5bGU9InJlbGVhc2UiKSwgRGVwcmVjYXRlZFBvcnQoKS5zY3JpcHRfc2hlbGxfY29t
bWFuZCgiYnVpbGQtanNjIikgKyBbIi0tcmVsZWFzZSJdKQorICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKE1hY1BvcnQoKS5idWlsZF9qc2NfY29tbWFuZChidWlsZF9zdHlsZT0iZGVidWciKSwgRGVw
cmVjYXRlZFBvcnQoKS5zY3JpcHRfc2hlbGxfY29tbWFuZCgiYnVpbGQtanNjIikgKyBbIi0tZGVi
dWciXSkKKwogICAgIGRlZiB0ZXN0X2d0a193azJfcG9ydChzZWxmKToKICAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChHdGtXSzJQb3J0KCkuZmxhZygpLCAiLS1wb3J0PWd0ay13azIiKQogICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKEd0a1dLMlBvcnQoKS5ydW5fd2Via2l0X3Rlc3RzX2NvbW1hbmQo
KSwgRGVwcmVjYXRlZFBvcnQoKS5zY3JpcHRfc2hlbGxfY29tbWFuZCgicnVuLXdlYmtpdC10ZXN0
cyIpICsgWyItLWd0ayJdKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21t
b24vbmV0L2pzY3Rlc3RyZXN1bHRzLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24v
bmV0L2pzY3Rlc3RyZXN1bHRzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJlNmViMGUzMGY2NzM2YmE5OTQyY2Yw
ZjhjMTY4ZDMyMTMyYWE3YjUKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2NvbW1vbi9uZXQvanNjdGVzdHJlc3VsdHMucHkKQEAgLTAsMCArMSw4NiBAQAorIyBDb3B5
cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
IyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisj
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycgQU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUgorIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitpbXBvcnQganNvbgoraW1wb3J0IGxv
Z2dpbmcKKworX2xvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKQorCisKK2NsYXNzIEpT
Q1Rlc3RSZXN1bHRzKG9iamVjdCk6CisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIGludGVyc2Vj
dGlvbihjbHMsIGZpcnN0LCBzZWNvbmQpOgorICAgICAgICBpbnRlcnNlY3Rpb25fYXBpX3Rlc3Rz
X3Bhc3NlZCA9IGZpcnN0Ll9hbGxfYXBpX3Rlc3RzX3Bhc3NlZCBvciBzZWNvbmQuX2FsbF9hcGlf
dGVzdHNfcGFzc2VkCisgICAgICAgIGludGVyc2VjdGlvbl9zdHJlc3NfdGVzdF9mYWlsdXJlcyA9
IGxpc3Qoc2V0KGZpcnN0Ll9zdHJlc3NfdGVzdF9mYWlsdXJlcykgJiBzZXQoc2Vjb25kLl9zdHJl
c3NfdGVzdF9mYWlsdXJlcykpCisgICAgICAgIHJldHVybiBjbHMoaW50ZXJzZWN0aW9uX2FwaV90
ZXN0c19wYXNzZWQsIGludGVyc2VjdGlvbl9zdHJlc3NfdGVzdF9mYWlsdXJlcykKKworICAgIEBj
bGFzc21ldGhvZAorICAgIGRlZiByZXN1bHRzX2Zyb21fc3RyaW5nKGNscywgc3RyaW5nKToKKyAg
ICAgICAgaWYgbm90IHN0cmluZzoKKyAgICAgICAgICAgIHJldHVybiBOb25lCisKKyAgICAgICAg
dHJ5OgorICAgICAgICAgICAgcGFyc2VkX3Jlc3VsdHMgPSBqc29uLmxvYWRzKHN0cmluZykKKyAg
ICAgICAgZXhjZXB0IFZhbHVlRXJyb3I6CisgICAgICAgICAgICByZXR1cm4gTm9uZQorCisgICAg
ICAgIGlmICdhbGxBcGlUZXN0c1Bhc3NlZCcgbm90IGluIHBhcnNlZF9yZXN1bHRzIG9yICdzdHJl
c3NUZXN0RmFpbHVyZXMnIG5vdCBpbiBwYXJzZWRfcmVzdWx0czoKKyAgICAgICAgICAgIHJldHVy
biBOb25lCisKKyAgICAgICAgcmV0dXJuIGNscyhwYXJzZWRfcmVzdWx0c1snYWxsQXBpVGVzdHNQ
YXNzZWQnXSwgcGFyc2VkX3Jlc3VsdHNbJ3N0cmVzc1Rlc3RGYWlsdXJlcyddKQorCisgICAgZGVm
IF9faW5pdF9fKHNlbGYsIGFsbF9hcGlfdGVzdHNfcGFzc2VkLCBzdHJlc3NfdGVzdF9mYWlsdXJl
cyk6CisgICAgICAgIHNlbGYuX2FsbF9hcGlfdGVzdHNfcGFzc2VkID0gYWxsX2FwaV90ZXN0c19w
YXNzZWQKKyAgICAgICAgc2VsZi5fc3RyZXNzX3Rlc3RfZmFpbHVyZXMgPSBzdHJlc3NfdGVzdF9m
YWlsdXJlcworCisgICAgICAgIHNlbGYuX3Rlc3RfcmVzdWx0cyA9IHN0cmVzc190ZXN0X2ZhaWx1
cmVzWzpdCisgICAgICAgIGlmIG5vdCBzZWxmLl9hbGxfYXBpX3Rlc3RzX3Bhc3NlZDoKKyAgICAg
ICAgICAgIHNlbGYuX3Rlc3RfcmVzdWx0cy5hcHBlbmQoImFwaVRlc3RzIikKKworICAgIGRlZiBl
cXVhbHMoc2VsZiwgb3RoZXIpOgorICAgICAgICByZXR1cm4gc2VsZi5fYWxsX2FwaV90ZXN0c19w
YXNzZWQgPT0gb3RoZXIuX2FsbF9hcGlfdGVzdHNfcGFzc2VkIGFuZCBcCisgICAgICAgICAgICAg
ICBzZXQoc2VsZi5fc3RyZXNzX3Rlc3RfZmFpbHVyZXMpID09IHNldChvdGhlci5fc3RyZXNzX3Rl
c3RfZmFpbHVyZXMpCisKKyAgICBkZWYgaXNfc3Vic2V0KHNlbGYsIG90aGVyKToKKyAgICAgICAg
cmV0dXJuIHNldChzZWxmLnRlc3RfcmVzdWx0cygpKSA8PSBzZXQob3RoZXIudGVzdF9yZXN1bHRz
KCkpCisKKyAgICBkZWYgc3RyZXNzX3Rlc3RfZmFpbHVyZXMoc2VsZik6CisgICAgICAgIHJldHVy
biBzZWxmLl9zdHJlc3NfdGVzdF9mYWlsdXJlcworCisgICAgZGVmIGFsbF9hcGlfdGVzdHNfcGFz
c2VkKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5fYWxsX2FwaV90ZXN0c19wYXNzZWQKKwor
ICAgIGRlZiBhbGxfcGFzc2VkKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5fYWxsX2FwaV90
ZXN0c19wYXNzZWQgYW5kIG5vdCBzZWxmLl9zdHJlc3NfdGVzdF9mYWlsdXJlcworCisgICAgZGVm
IGZhaWxpbmdfdGVzdF9yZXN1bHRzKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5zdHJlc3Nf
dGVzdF9mYWlsdXJlcygpCisKKyAgICBkZWYgdGVzdF9yZXN1bHRzKHNlbGYpOgorICAgICAgICBy
ZXR1cm4gc2VsZi5fdGVzdF9yZXN1bHRzCisKKyAgICBkZWYgZmFpbGluZ190ZXN0cyhzZWxmKToK
KyAgICAgICAgcmV0dXJuIHNlbGYuX3Rlc3RfcmVzdWx0cworCisgICAgIyBObyBkZWZpbmVkIGZh
aWx1cmUgbGltaXQgZm9yIEpTQy4KKyAgICBkZWYgZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGlt
aXQoc2VsZik6CisgICAgICAgIHJldHVybiBGYWxzZQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9jb21tb24vbmV0L2pzY3Rlc3RyZXN1bHRzX3VuaXR0ZXN0LnB5IGIvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2pzY3Rlc3RyZXN1bHRzX3VuaXR0ZXN0LnB5Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjE4ZWY0NDRhNTY4ZTQ2MDg4MDQ1OTE3NmM1ZmZhYzA2ZjE1ZjE3YjYKLS0tIC9k
ZXYvbnVsbAorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvanNjdGVzdHJl
c3VsdHNfdW5pdHRlc3QucHkKQEAgLTAsMCArMSw3NSBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTcg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycg
QU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorIyBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorCitpbXBvcnQgdW5pdHRlc3QKKworZnJvbSB3ZWJraXRweS5jb21t
b24ubmV0LmpzY3Rlc3RyZXN1bHRzIGltcG9ydCBKU0NUZXN0UmVzdWx0cworCisKK2NsYXNzIEpT
Q1Rlc3RSZXN1bHRzVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CisgICAgZGVmIHRlc3RfcmVzdWx0
c19mcm9tX3N0cmluZyhzZWxmKToKKyAgICAgICAgbm9uZV9pdGVtID0gTm9uZQorICAgICAgICBl
bXB0eV9zdHJpbmcgPSAiIgorICAgICAgICBpbnZhbGlkX2pzb24gPSAneyJhbGxBcGlUZXN0c1Bh
c3NlZCI6JworICAgICAgICBpbmNvbXBsZXRlX2pzb25fdjEgPSAneyJhbGxBcGlUZXN0c1Bhc3Nl
ZCI6IHRydWV9JworICAgICAgICBpbmNvbXBsZXRlX2pzb25fdjIgPSAneyJzdHJlc3NUZXN0RmFp
bHVyZXMiOltdfScKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCBKU0NUZXN0UmVzdWx0
cy5yZXN1bHRzX2Zyb21fc3RyaW5nKG5vbmVfaXRlbSkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoTm9uZSwgSlNDVGVzdFJlc3VsdHMucmVzdWx0c19mcm9tX3N0cmluZyhlbXB0eV9zdHJpbmcp
KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIEpTQ1Rlc3RSZXN1bHRzLnJlc3VsdHNf
ZnJvbV9zdHJpbmcoaW52YWxpZF9qc29uKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25l
LCBKU0NUZXN0UmVzdWx0cy5yZXN1bHRzX2Zyb21fc3RyaW5nKGluY29tcGxldGVfanNvbl92MSkp
CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgSlNDVGVzdFJlc3VsdHMucmVzdWx0c19m
cm9tX3N0cmluZyhpbmNvbXBsZXRlX2pzb25fdjIpKQorCisgICAgICAgIG5vX2ZhaWx1cmVzX3N0
cmluZyA9ICd7ImFsbEFwaVRlc3RzUGFzc2VkIjogdHJ1ZSwgInN0cmVzc1Rlc3RGYWlsdXJlcyI6
W119JworICAgICAgICBub19mYWlsdXJlc19yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwg
W10pCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShub19mYWlsdXJlc19yZXN1bHRzLmVxdWFscyhK
U0NUZXN0UmVzdWx0cy5yZXN1bHRzX2Zyb21fc3RyaW5nKG5vX2ZhaWx1cmVzX3N0cmluZykpKQor
CisgICAgICAgIGFwaV90ZXN0X2ZhaWx1cmVzX3N0cmluZyA9ICd7ImFsbEFwaVRlc3RzUGFzc2Vk
IjogZmFsc2UsICJzdHJlc3NUZXN0RmFpbHVyZXMiOltdfScKKyAgICAgICAgYXBpX3Rlc3RfZmFp
bHVyZXNfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKEZhbHNlLCBbXSkKKyAgICAgICAgc2VsZi5h
c3NlcnRUcnVlKGFwaV90ZXN0X2ZhaWx1cmVzX3Jlc3VsdHMuZXF1YWxzKEpTQ1Rlc3RSZXN1bHRz
LnJlc3VsdHNfZnJvbV9zdHJpbmcoYXBpX3Rlc3RfZmFpbHVyZXNfc3RyaW5nKSkpCisKKyAgICAg
ICAgbWFueV9mYWlsdXJlc19zdHJpbmcgPSAneyJhbGxBcGlUZXN0c1Bhc3NlZCI6IGZhbHNlLCAi
c3RyZXNzVGVzdEZhaWx1cmVzIjpbImVzNi55YW1sL2VzNi90eXBlZF9hcnJheXNfSW50MTZBcnJh
eS5qcy5kZWZhdWx0IiwgImVzNi55YW1sL2VzNi90eXBlZF9hcnJheXNfSW50OEFycmF5LmpzLmRl
ZmF1bHQiXX0nCisgICAgICAgIG1hbnlfZmFpbHVyZXNfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRz
KEZhbHNlLCBbImVzNi55YW1sL2VzNi90eXBlZF9hcnJheXNfSW50MTZBcnJheS5qcy5kZWZhdWx0
IiwgImVzNi55YW1sL2VzNi90eXBlZF9hcnJheXNfSW50OEFycmF5LmpzLmRlZmF1bHQiXSkKKyAg
ICAgICAgc2VsZi5hc3NlcnRUcnVlKG1hbnlfZmFpbHVyZXNfcmVzdWx0cy5lcXVhbHMoSlNDVGVz
dFJlc3VsdHMucmVzdWx0c19mcm9tX3N0cmluZyhtYW55X2ZhaWx1cmVzX3N0cmluZykpKQorCisg
ICAgICAgIHNlbGYuYXNzZXJ0RmFsc2Uobm9fZmFpbHVyZXNfcmVzdWx0cyA9PSBhcGlfdGVzdF9m
YWlsdXJlc19yZXN1bHRzKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGFwaV90ZXN0X2ZhaWx1
cmVzX3Jlc3VsdHMgPT0gbWFueV9mYWlsdXJlc19yZXN1bHRzKQorCisgICAgZGVmIHRlc3RfaW50
ZXJzZWN0aW9uX2FwaV90ZXN0cyhzZWxmKToKKyAgICAgICAgcmVzdWx0czEgPSBKU0NUZXN0UmVz
dWx0cyhGYWxzZSwgW10pCisgICAgICAgIHJlc3VsdHMyID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwg
W10pCisKKyAgICAgICAgZXhwZWN0ZWRfaW50ZXJzZWN0aW9uID0gSlNDVGVzdFJlc3VsdHMoVHJ1
ZSwgW10pCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShleHBlY3RlZF9pbnRlcnNlY3Rpb24uZXF1
YWxzKEpTQ1Rlc3RSZXN1bHRzLmludGVyc2VjdGlvbihyZXN1bHRzMSwgcmVzdWx0czIpKSkKKwor
ICAgIGRlZiB0ZXN0X2ludGVyc2VjdGlvbl9zdHJlc3NfdGVzdHMoc2VsZik6CisgICAgICAgIHJl
c3VsdHMxID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgWydmYWlsdXJlMScsICdmYWlsdXJlMiddKQor
ICAgICAgICByZXN1bHRzMiA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFsnZmFpbHVyZTEnLCAnZmFp
bHVyZTMnXSkKKworICAgICAgICBleHBlY3RlZF9pbnRlcnNlY3Rpb24gPSBKU0NUZXN0UmVzdWx0
cyhUcnVlLCBbJ2ZhaWx1cmUxJ10pCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShleHBlY3RlZF9p
bnRlcnNlY3Rpb24uZXF1YWxzKEpTQ1Rlc3RSZXN1bHRzLmludGVyc2VjdGlvbihyZXN1bHRzMSwg
cmVzdWx0czIpKSkKKworICAgIGRlZiB0ZXN0X2ludGVyc2VjdGlvbl9nZW5lcmFsX2Nhc2Uoc2Vs
Zik6CisgICAgICAgIHJlc3VsdHMxID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgWydmYWlsdXJlMScs
ICdmYWlsdXJlMiddKQorICAgICAgICByZXN1bHRzMiA9IEpTQ1Rlc3RSZXN1bHRzKEZhbHNlLCBb
J2ZhaWx1cmUxJ10pCisKKyAgICAgICAgZXhwZWN0ZWRfaW50ZXJzZWN0aW9uID0gSlNDVGVzdFJl
c3VsdHMoVHJ1ZSwgWydmYWlsdXJlMSddKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoZXhwZWN0
ZWRfaW50ZXJzZWN0aW9uLmVxdWFscyhKU0NUZXN0UmVzdWx0cy5pbnRlcnNlY3Rpb24ocmVzdWx0
czEsIHJlc3VsdHMyKSkpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wv
Ym90L2Vhcmx5d2FybmluZ3N5c3RlbXRhc2sucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rv
b2wvYm90L2Vhcmx5d2FybmluZ3N5c3RlbXRhc2sucHkKaW5kZXggZmMzMDhiNDNkMWQxNzJhYjcz
YjBlM2FmODBkMWIxMzlkZDNjMTAzMi4uZWNmYWNkMDExYmU4ODNiNGJiMWU1YzdkN2RmZmRiZGNi
NDU5ZGUzNSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9lYXJs
eXdhcm5pbmdzeXN0ZW10YXNrLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9i
b3QvZWFybHl3YXJuaW5nc3lzdGVtdGFzay5weQpAQCAtMSw0ICsxLDUgQEAKICMgQ29weXJpZ2h0
IChjKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAo
QykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
IyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMgYXJlCkBAIC0yNiw3ICsyNyw3IEBACiAjIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogIyBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgogCi1mcm9tIHdlYmtpdHB5LnRvb2wuYm90LnBhdGNoYW5hbHlzaXN0YXNrIGltcG9y
dCBQYXRjaEFuYWx5c2lzVGFzaywgUGF0Y2hBbmFseXNpc1Rhc2tEZWxlZ2F0ZSwgVW5hYmxlVG9B
cHBseVBhdGNoLCBQYXRjaElzTm90VmFsaWQKK2Zyb20gd2Via2l0cHkudG9vbC5ib3QucGF0Y2hh
bmFseXNpc3Rhc2sgaW1wb3J0IFBhdGNoQW5hbHlzaXNUYXNrLCBQYXRjaEFuYWx5c2lzVGFza0Rl
bGVnYXRlLCBVbmFibGVUb0FwcGx5UGF0Y2gsIFBhdGNoSXNOb3RWYWxpZCwgUGF0Y2hJc05vdEFw
cGxpY2FibGUKIAogCiBjbGFzcyBFYXJseVdhcm5pbmdTeXN0ZW1UYXNrRGVsZWdhdGUoUGF0Y2hB
bmFseXNpc1Rhc2tEZWxlZ2F0ZSk6CkBAIC01OCw2ICs1OSw4IEBAIGNsYXNzIEVhcmx5V2Fybmlu
Z1N5c3RlbVRhc2soUGF0Y2hBbmFseXNpc1Rhc2spOgogICAgICAgICAgICAgcmV0dXJuIEZhbHNl
CiAgICAgICAgIGlmIG5vdCBzZWxmLl9hcHBseSgpOgogICAgICAgICAgICAgcmFpc2UgVW5hYmxl
VG9BcHBseVBhdGNoKHNlbGYuX3BhdGNoKQorICAgICAgICBpZiBub3Qgc2VsZi5fY2hlY2tfcGF0
Y2hfcmVsZXZhbmNlKCk6CisgICAgICAgICAgICByYWlzZSBQYXRjaElzTm90QXBwbGljYWJsZShz
ZWxmLl9wYXRjaCkKICAgICAgICAgaWYgbm90IHNlbGYuX2J1aWxkKCk6CiAgICAgICAgICAgICBp
ZiBub3Qgc2VsZi5fYnVpbGRfd2l0aG91dF9wYXRjaCgpOgogICAgICAgICAgICAgICAgIHJldHVy
biBGYWxzZQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9qc2Nl
d3NfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2pzY2V3c191
bml0dGVzdC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNTUwOGRhNjY2OGFjNGEyOWYyYjI1NjYyODU3MTQ2MmZm
Nzk2OGIwCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2Jv
dC9qc2Nld3NfdW5pdHRlc3QucHkKQEAgLTAsMCArMSwyMTkgQEAKKyMgQ29weXJpZ2h0IChDKSAy
MDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyMgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyMgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKworaW1wb3J0IGxvZ2dpbmcKK2ltcG9ydCB1bml0dGVzdAor
Citmcm9tIHdlYmtpdHB5LmNvbW1vbi5uZXQuanNjdGVzdHJlc3VsdHMgaW1wb3J0IEpTQ1Rlc3RS
ZXN1bHRzCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZlIGltcG9ydCBTY3Jp
cHRFcnJvcgorZnJvbSB3ZWJraXRweS50b29sLmJvdC5wYXRjaGFuYWx5c2lzdGFzayBpbXBvcnQg
KgorZnJvbSB3ZWJraXRweS50b29sLmNvbW1hbmRzLmVhcmx5d2FybmluZ3N5c3RlbSBpbXBvcnQg
QWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0KK2Zyb20gd2Via2l0cHkudG9vbC5tb2NrdG9vbCBp
bXBvcnQgTW9ja1Rvb2wKKworX2xvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKQorCisK
K2NsYXNzIE1vY2tQYXRjaEFuYWx5c2lzVGFzayhQYXRjaEFuYWx5c2lzVGFzayk6CisgICAgZGVm
IF9faW5pdF9fKHNlbGYsIGRlbGVnYXRlLCBwYXRjaCwgcGF0Y2hlc19wYXNzZWRfYWxsX3Rlc3Rz
KToKKyAgICAgICAgc2VsZi5fZGVsZWdhdGUgPSBkZWxlZ2F0ZQorICAgICAgICBzZWxmLl9wYXRj
aCA9IHBhdGNoCisgICAgICAgIHNlbGYuX3NjcmlwdF9lcnJvciA9IE5vbmUKKyAgICAgICAgc2Vs
Zi5fcmVzdWx0c19hcmNoaXZlX2Zyb21fcGF0Y2hfdGVzdF9ydW4gPSBOb25lCisgICAgICAgIHNl
bGYuX3Jlc3VsdHNfZnJvbV9wYXRjaF90ZXN0X3J1biA9IE5vbmUKKyAgICAgICAgc2VsZi5lcnJv
ciA9IE5vbmUKKyAgICAgICAgc2VsZi5fcGF0Y2hlc19wYXNzZWRfYWxsX3Rlc3RzID0gcGF0Y2hl
c19wYXNzZWRfYWxsX3Rlc3RzCisgICAgICAgIHNlbGYuX3Rlc3RfcnVuX2NvdW50ID0gMAorICAg
ICAgICBzZWxmLmZhaWx1cmVfc3RhdHVzX2lkID0gNDIKKworICAgIGRlZiBfdGVzdChzZWxmKToK
KyAgICAgICAgc2VsZi5fdGVzdF9ydW5fY291bnQgKz0gMQorCisgICAgICAgIGlmIHNlbGYuX3Bh
dGNoZXNfcGFzc2VkX2FsbF90ZXN0cy5wb3AoKSA9PSBUcnVlOgorICAgICAgICAgICAgcmV0dXJu
IFRydWUKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYuX3NjcmlwdF9lcnJvciA9IFNj
cmlwdEVycm9yKCJSZWdyZXNzaW9uIHRlc3QiKQorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisK
KyAgICBkZWYgX2J1aWxkX2FuZF90ZXN0X3dpdGhvdXRfcGF0Y2goc2VsZik6CisgICAgICAgIHNl
bGYuX3Rlc3RfcnVuX2NvdW50ICs9IDEKKyAgICAgICAgcmV0dXJuIFRydWUKKworICAgIGRlZiB2
YWxpZGF0ZShzZWxmKToKKyAgICAgICAgcmV0dXJuIFRydWUKKworICAgIGRlZiB0ZXN0X3J1bl9j
b3VudChzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX3Rlc3RfcnVuX2NvdW50CisKKworIyBU
aGlzIGlzIHRoZSBkZWxlZ2F0ZSB0byBiZSB1c2VkIHdpdGggTW9ja1BhdGNoQW5hbHlzaXNUYXNr
LCBhYm92ZS4KK2NsYXNzIE1vY2tKU0NFYXJseVdhcm5pbmdTeXN0ZW0oQWJzdHJhY3RFYXJseVdh
cm5pbmdTeXN0ZW0pOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBmaXJzdF90ZXN0X3Jlc3VsdHMs
IHNlY29uZF90ZXN0X3Jlc3VsdHMsIGNsZWFuX3Rlc3RfcmVzdWx0cyk6CisgICAgICAgIEFic3Ry
YWN0RWFybHlXYXJuaW5nU3lzdGVtLl9faW5pdF9fKHNlbGYpCisgICAgICAgIHNlbGYuX2dyb3Vw
ID0gImpzYyIKKyAgICAgICAgc2VsZi5fcmVzdWx0c19pbl9vcmRlciA9IFtjbGVhbl90ZXN0X3Jl
c3VsdHMsIHNlY29uZF90ZXN0X3Jlc3VsdHMsIGZpcnN0X3Rlc3RfcmVzdWx0c10KKworICAgIGRl
ZiB0ZXN0X3Jlc3VsdHMoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl9yZXN1bHRzX2luX29y
ZGVyLnBvcCgpCisKKworY2xhc3MgSlNDRWFybHlXYXJuaW5nU3lzdGVtVGVzdCh1bml0dGVzdC5U
ZXN0Q2FzZSk6CisgICAgZGVmIF9yZXN1bHRzX2luZGljYXRlX2FsbF9wYXNzZWQoc2VsZiwgcmVz
dWx0cyk6CisgICAgICAgIGlmIHJlc3VsdHMgPT0gTm9uZToKKyAgICAgICAgICAgIHJldHVybiBG
YWxzZQorICAgICAgICByZXR1cm4gcmVzdWx0cy5hbGxfcGFzc2VkKCkKKworICAgIGRlZiBfY3Jl
YXRlX3Rhc2soc2VsZiwgZmlyc3RfdGVzdF9yZXN1bHRzLCBzZWNvbmRfdGVzdF9yZXN1bHRzLCBj
bGVhbl90ZXN0X3Jlc3VsdHMpOgorICAgICAgICBxdWV1ZSA9IE1vY2tKU0NFYXJseVdhcm5pbmdT
eXN0ZW0oZmlyc3RfdGVzdF9yZXN1bHRzLCBzZWNvbmRfdGVzdF9yZXN1bHRzLCBjbGVhbl90ZXN0
X3Jlc3VsdHMpCisgICAgICAgIHRvb2wgPSBNb2NrVG9vbChsb2dfZXhlY3V0aXZlPVRydWUpCisg
ICAgICAgIHBhdGNoID0gdG9vbC5idWdzLmZldGNoX2F0dGFjaG1lbnQoMTAwMDApCisgICAgICAg
IHBhdGNoZXNfcGFzc2VkX2FsbF90ZXN0cyA9IG1hcChzZWxmLl9yZXN1bHRzX2luZGljYXRlX2Fs
bF9wYXNzZWQsIFtzZWNvbmRfdGVzdF9yZXN1bHRzLCBmaXJzdF90ZXN0X3Jlc3VsdHNdKQorICAg
ICAgICByZXR1cm4gTW9ja1BhdGNoQW5hbHlzaXNUYXNrKHF1ZXVlLCBwYXRjaCwgcGF0Y2hlc19w
YXNzZWRfYWxsX3Rlc3RzKQorCisgICAgZGVmIHRlc3Rfc3VjY2Vzc19jYXNlKHNlbGYpOgorICAg
ICAgICBmaXJzdF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbXSkKKyAgICAg
ICAgc2Vjb25kX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFtdKQorICAgICAg
ICBjbGVhbl90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbXSkKKyAgICAgICAg
dGFzayA9IHNlbGYuX2NyZWF0ZV90YXNrKGZpcnN0X3Rlc3RfcmVzdWx0cywgc2Vjb25kX3Rlc3Rf
cmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKQorCisgICAgICAgIHJldHVybl92YWx1ZSA9IHRh
c2suX3Rlc3RfcGF0Y2goKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRhc2sudGVzdF9ydW5f
Y291bnQoKSwgMSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXR1cm5fdmFsdWUsIFRydWUp
CisKKyAgICBkZWYgdGVzdF90ZXN0X2ZhaWx1cmUoc2VsZik6CisgICAgICAgIGZpcnN0X3Rlc3Rf
cmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFsnRmFpbC5qcyddKQorICAgICAgICBzZWNv
bmRfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgWydGYWlsLmpzJ10pCisgICAg
ICAgIGNsZWFuX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFtdKQorICAgICAg
ICB0YXNrID0gc2VsZi5fY3JlYXRlX3Rhc2soZmlyc3RfdGVzdF9yZXN1bHRzLCBzZWNvbmRfdGVz
dF9yZXN1bHRzLCBjbGVhbl90ZXN0X3Jlc3VsdHMpCisKKyAgICAgICAgd2l0aCBzZWxmLmFzc2Vy
dFJhaXNlcyhTY3JpcHRFcnJvcik6CisgICAgICAgICAgICByZXR1cm5fdmFsdWUgPSB0YXNrLl90
ZXN0X3BhdGNoKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0YXNrLnRlc3RfcnVuX2NvdW50
KCksIDMpCisKKyAgICBkZWYgdGVzdF9maXgoc2VsZik6CisgICAgICAgIGZpcnN0X3Rlc3RfcmVz
dWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFtdKQorICAgICAgICBzZWNvbmRfdGVzdF9yZXN1
bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgW10pCisgICAgICAgIGNsZWFuX3Rlc3RfcmVzdWx0
cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFsnRmFpbC5qcyddKQorICAgICAgICB0YXNrID0gc2Vs
Zi5fY3JlYXRlX3Rhc2soZmlyc3RfdGVzdF9yZXN1bHRzLCBzZWNvbmRfdGVzdF9yZXN1bHRzLCBj
bGVhbl90ZXN0X3Jlc3VsdHMpCisKKyAgICAgICAgcmV0dXJuX3ZhbHVlID0gdGFzay5fdGVzdF9w
YXRjaCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGFzay50ZXN0X3J1bl9jb3VudCgpLCAx
KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJldHVybl92YWx1ZSwgVHJ1ZSkKKworICAgIGRl
ZiB0ZXN0X2luZWZmZWN0aXZlX3BhdGNoKHNlbGYpOgorICAgICAgICBmaXJzdF90ZXN0X3Jlc3Vs
dHMgPSBKU0NUZXN0UmVzdWx0cyhGYWxzZSwgWydmYWlsdXJlMS5qcycsICdmYWlsdXJlMi5qcydd
KQorICAgICAgICBzZWNvbmRfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoRmFsc2UsIFsn
ZmFpbHVyZTEuanMnLCAnZmFpbHVyZTIuanMnXSkKKyAgICAgICAgY2xlYW5fdGVzdF9yZXN1bHRz
ID0gSlNDVGVzdFJlc3VsdHMoRmFsc2UsIFsnZmFpbHVyZTEuanMnLCAnZmFpbHVyZTIuanMnXSkK
KyAgICAgICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90YXNrKGZpcnN0X3Rlc3RfcmVzdWx0cywgc2Vj
b25kX3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKQorCisgICAgICAgIHJldHVybl92
YWx1ZSA9IHRhc2suX3Rlc3RfcGF0Y2goKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRhc2su
dGVzdF9ydW5fY291bnQoKSwgMykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXR1cm5fdmFs
dWUsIFRydWUpCisKKyAgICBkZWYgdGVzdF9wYXJ0aWFsbHlfZWZmZWN0aXZlX3BhdGNoKHNlbGYp
OgorICAgICAgICBmaXJzdF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbJ2Zh
aWx1cmUyLmpzJ10pCisgICAgICAgIHNlY29uZF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0
cyhUcnVlLCBbJ2ZhaWx1cmUyLmpzJ10pCisgICAgICAgIGNsZWFuX3Rlc3RfcmVzdWx0cyA9IEpT
Q1Rlc3RSZXN1bHRzKEZhbHNlLCBbJ2ZhaWx1cmUxLmpzJywgJ2ZhaWx1cmUyLmpzJ10pCisgICAg
ICAgIHRhc2sgPSBzZWxmLl9jcmVhdGVfdGFzayhmaXJzdF90ZXN0X3Jlc3VsdHMsIHNlY29uZF90
ZXN0X3Jlc3VsdHMsIGNsZWFuX3Rlc3RfcmVzdWx0cykKKworICAgICAgICByZXR1cm5fdmFsdWUg
PSB0YXNrLl90ZXN0X3BhdGNoKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0YXNrLnRlc3Rf
cnVuX2NvdW50KCksIDMpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmV0dXJuX3ZhbHVlLCBU
cnVlKQorCisgICAgZGVmIHRlc3RfZGlmZmVyZW50X3Rlc3RfZmFpbHVyZXNfaW5fcGF0Y2hfYW5k
X3RyZWUoc2VsZik6CisgICAgICAgIGZpcnN0X3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRz
KEZhbHNlLCBbXSkKKyAgICAgICAgc2Vjb25kX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRz
KEZhbHNlLCBbXSkKKyAgICAgICAgY2xlYW5fdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMo
VHJ1ZSwgWydmYWlsdXJlMS5qcycsICdmYWlsdXJlMi5qcyddKQorICAgICAgICB0YXNrID0gc2Vs
Zi5fY3JlYXRlX3Rhc2soZmlyc3RfdGVzdF9yZXN1bHRzLCBzZWNvbmRfdGVzdF9yZXN1bHRzLCBj
bGVhbl90ZXN0X3Jlc3VsdHMpCisKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhTY3Jp
cHRFcnJvcik6CisgICAgICAgICAgICByZXR1cm5fdmFsdWUgPSB0YXNrLl90ZXN0X3BhdGNoKCkK
KyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0YXNrLnRlc3RfcnVuX2NvdW50KCksIDMpCisKKyAg
ICBkZWYgdGVzdF9maXJzdF9yZXN1bHRzX2NvdWxkX25vdF9iZV9yZWFkKHNlbGYpOgorICAgICAg
ICBmaXJzdF90ZXN0X3Jlc3VsdHMgPSBOb25lCisgICAgICAgIHNlY29uZF90ZXN0X3Jlc3VsdHMg
PSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbXSkKKyAgICAgICAgY2xlYW5fdGVzdF9yZXN1bHRzID0g
SlNDVGVzdFJlc3VsdHMoVHJ1ZSwgW10pCisgICAgICAgIHRhc2sgPSBzZWxmLl9jcmVhdGVfdGFz
ayhmaXJzdF90ZXN0X3Jlc3VsdHMsIHNlY29uZF90ZXN0X3Jlc3VsdHMsIGNsZWFuX3Rlc3RfcmVz
dWx0cykKKworICAgICAgICByZXR1cm5fdmFsdWUgPSB0YXNrLl90ZXN0X3BhdGNoKCkKKyAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbCh0YXNrLnRlc3RfcnVuX2NvdW50KCksIDEpCisgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwocmV0dXJuX3ZhbHVlLCBGYWxzZSkKKworICAgIGRlZiB0ZXN0X3NlY29u
ZF9yZXN1bHRzX2NvdWxkX25vdF9iZV9yZWFkKHNlbGYpOgorICAgICAgICBmaXJzdF90ZXN0X3Jl
c3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhGYWxzZSwgWydmYWlsdXJlMS5qcycsICdmYWlsdXJlMi5q
cyddKQorICAgICAgICBzZWNvbmRfdGVzdF9yZXN1bHRzID0gTm9uZQorICAgICAgICBjbGVhbl90
ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbXSkKKyAgICAgICAgdGFzayA9IHNl
bGYuX2NyZWF0ZV90YXNrKGZpcnN0X3Rlc3RfcmVzdWx0cywgc2Vjb25kX3Rlc3RfcmVzdWx0cywg
Y2xlYW5fdGVzdF9yZXN1bHRzKQorCisgICAgICAgIHJldHVybl92YWx1ZSA9IHRhc2suX3Rlc3Rf
cGF0Y2goKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRhc2sudGVzdF9ydW5fY291bnQoKSwg
MikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXR1cm5fdmFsdWUsIEZhbHNlKQorCisgICAg
ZGVmIHRlc3RfY2xlYW5fcmVzdWx0c19jb3VsZF9ub3RfYmVfcmVhZChzZWxmKToKKyAgICAgICAg
Zmlyc3RfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgWydmYWlsdXJlMi5qcydd
KQorICAgICAgICBzZWNvbmRfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgWydm
YWlsdXJlMi5qcyddKQorICAgICAgICBjbGVhbl90ZXN0X3Jlc3VsdHMgPSBOb25lCisgICAgICAg
IHRhc2sgPSBzZWxmLl9jcmVhdGVfdGFzayhmaXJzdF90ZXN0X3Jlc3VsdHMsIHNlY29uZF90ZXN0
X3Jlc3VsdHMsIGNsZWFuX3Rlc3RfcmVzdWx0cykKKworICAgICAgICByZXR1cm5fdmFsdWUgPSB0
YXNrLl90ZXN0X3BhdGNoKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0YXNrLnRlc3RfcnVu
X2NvdW50KCksIDMpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmV0dXJuX3ZhbHVlLCBGYWxz
ZSkKKworICAgIGRlZiB0ZXN0X2ZsYWt5X3Jlc3VsdHNfb25fY2xlYW5fdHJlZV9wYXNzKHNlbGYp
OgorICAgICAgICBmaXJzdF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbJ2Zh
aWx1cmUyLmpzJ10pCisgICAgICAgIHNlY29uZF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0
cyhUcnVlLCBbXSkKKyAgICAgICAgY2xlYW5fdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMo
VHJ1ZSwgW10pCisgICAgICAgIHRhc2sgPSBzZWxmLl9jcmVhdGVfdGFzayhmaXJzdF90ZXN0X3Jl
c3VsdHMsIHNlY29uZF90ZXN0X3Jlc3VsdHMsIGNsZWFuX3Rlc3RfcmVzdWx0cykKKworICAgICAg
ICByZXR1cm5fdmFsdWUgPSB0YXNrLl90ZXN0X3BhdGNoKCkKKyAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChyZXR1cm5fdmFsdWUsIFRydWUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGFzay50
ZXN0X3J1bl9jb3VudCgpLCAyKQorCisgICAgZGVmIHRlc3RfZmxha3lfcmVzdWx0c19vbl9jbGVh
bl90cmVlX3Bhc3NfdjIoc2VsZik6CisgICAgICAgIGZpcnN0X3Rlc3RfcmVzdWx0cyA9IEpTQ1Rl
c3RSZXN1bHRzKFRydWUsIFtdKQorICAgICAgICBzZWNvbmRfdGVzdF9yZXN1bHRzID0gSlNDVGVz
dFJlc3VsdHMoVHJ1ZSwgWydmYWlsdXJlMi5qcyddKQorICAgICAgICBjbGVhbl90ZXN0X3Jlc3Vs
dHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbXSkKKyAgICAgICAgdGFzayA9IHNlbGYuX2NyZWF0
ZV90YXNrKGZpcnN0X3Rlc3RfcmVzdWx0cywgc2Vjb25kX3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVz
dF9yZXN1bHRzKQorCisgICAgICAgIHJldHVybl92YWx1ZSA9IHRhc2suX3Rlc3RfcGF0Y2goKQor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJldHVybl92YWx1ZSwgVHJ1ZSkKKyAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbCh0YXNrLnRlc3RfcnVuX2NvdW50KCksIDEpCisKKyAgICBkZWYgdGVzdF9m
bGFreV9yZXN1bHRzX29uX2NsZWFuX3RyZWVfZmFpbHVyZShzZWxmKToKKyAgICAgICAgZmlyc3Rf
dGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoRmFsc2UsIFsnZmFpbHVyZTEuanMnLCAnZmFp
bHVyZTIuanMnXSkKKyAgICAgICAgc2Vjb25kX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRz
KFRydWUsIFsnZmFpbHVyZTIuanMnXSkKKyAgICAgICAgY2xlYW5fdGVzdF9yZXN1bHRzID0gSlND
VGVzdFJlc3VsdHMoVHJ1ZSwgW10pCisgICAgICAgIHRhc2sgPSBzZWxmLl9jcmVhdGVfdGFzayhm
aXJzdF90ZXN0X3Jlc3VsdHMsIHNlY29uZF90ZXN0X3Jlc3VsdHMsIGNsZWFuX3Rlc3RfcmVzdWx0
cykKKworICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFNjcmlwdEVycm9yKToKKyAgICAg
ICAgICAgIHJldHVybl92YWx1ZSA9IHRhc2suX3Rlc3RfcGF0Y2goKQorICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKHRhc2sudGVzdF9ydW5fY291bnQoKSwgMykKKworICAgIGRlZiB0ZXN0X2ZsYWt5
X3Jlc3VsdHNfb25fcmVkX3RyZWVfcGFzcyhzZWxmKToKKyAgICAgICAgZmlyc3RfdGVzdF9yZXN1
bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgWydmYWlsdXJlMS5qcyddKQorICAgICAgICBzZWNv
bmRfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgWydmYWlsdXJlMS5qcycsICdm
YWlsdXJlMi5qcyddKQorICAgICAgICBjbGVhbl90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0
cyhUcnVlLCBbJ2ZhaWx1cmUxLmpzJ10pCisgICAgICAgIHRhc2sgPSBzZWxmLl9jcmVhdGVfdGFz
ayhmaXJzdF90ZXN0X3Jlc3VsdHMsIHNlY29uZF90ZXN0X3Jlc3VsdHMsIGNsZWFuX3Rlc3RfcmVz
dWx0cykKKworICAgICAgICByZXR1cm5fdmFsdWUgPSB0YXNrLl90ZXN0X3BhdGNoKCkKKyAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChyZXR1cm5fdmFsdWUsIFRydWUpCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwodGFzay50ZXN0X3J1bl9jb3VudCgpLCAzKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS90b29sL2JvdC9qc2N0ZXN0cmVzdWx0c3JlYWRlci5weSBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvanNjdGVzdHJlc3VsdHNyZWFkZXIucHkKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYTU2YmQwNWRmYTc3NDU5ZDQ2YzM3YmU4NWQ0NDkxODk0OGEwNjY2NgotLS0gL2Rldi9udWxs
CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvanNjdGVzdHJlc3VsdHNyZWFk
ZXIucHkKQEAgLTAsMCArMSw0NyBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBt
ZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisjIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyMg
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorIyBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgor
IyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorCitpbXBvcnQgbG9nZ2luZworCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5uZXQuanNjdGVz
dHJlc3VsdHMgaW1wb3J0IEpTQ1Rlc3RSZXN1bHRzCisKK19sb2cgPSBsb2dnaW5nLmdldExvZ2dl
cihfX25hbWVfXykKKworCitjbGFzcyBKU0NUZXN0UmVzdWx0c1JlYWRlcihvYmplY3QpOgorICAg
IGRlZiBfX2luaXRfXyhzZWxmLCBob3N0LCByZXN1bHRzX2RpcmVjdG9yeSk6CisgICAgICAgIHNl
bGYuX2hvc3QgPSBob3N0CisgICAgICAgIHNlbGYuX3Jlc3VsdHNfZGlyZWN0b3J5ID0gcmVzdWx0
c19kaXJlY3RvcnkKKworICAgIGRlZiBfcmVhZF9maWxlX2NvbnRlbnRzKHNlbGYsIHBhdGgpOgor
ICAgICAgICB0cnk6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5faG9zdC5maWxlc3lzdGVtLnJl
YWRfdGV4dF9maWxlKHBhdGgpCisgICAgICAgIGV4Y2VwdCAoSU9FcnJvciwgS2V5RXJyb3IpOiAg
IyBGaWxlIGRvZXMgbm90IGV4aXN0IG9yIGNhbid0IGJlIHJlYWQuCisgICAgICAgICAgICByZXR1
cm4gTm9uZQorCisgICAgZGVmIF9jcmVhdGVfanNjX3Rlc3RfcmVzdWx0cyhzZWxmKToKKyAgICAg
ICAgcmVzdWx0c19wYXRoID0gc2VsZi5faG9zdC5maWxlc3lzdGVtLmpvaW4oc2VsZi5fcmVzdWx0
c19kaXJlY3RvcnksICJqc2NfdGVzdF9yZXN1bHRzLmpzb24iKQorICAgICAgICBjb250ZW50cyA9
IHNlbGYuX3JlYWRfZmlsZV9jb250ZW50cyhyZXN1bHRzX3BhdGgpCisgICAgICAgIHJldHVybiBK
U0NUZXN0UmVzdWx0cy5yZXN1bHRzX2Zyb21fc3RyaW5nKGNvbnRlbnRzKQorCisgICAgZGVmIHJl
c3VsdHMoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl9jcmVhdGVfanNjX3Rlc3RfcmVzdWx0
cygpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L3BhdGNoYW5h
bHlzaXN0YXNrLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9wYXRjaGFuYWx5
c2lzdGFzay5weQppbmRleCA3NTIzMTY0MTZjNWY5ZDBhM2U1OWVmNmQwNWUzMTc4NWY5MTc0NjI5
Li44ZTliOTcxYmZkZTM0ZjJlM2ExMDFlOGFhYjNkNmNkOTdjYTBkYzViIDEwMDY0NAotLS0gYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L3BhdGNoYW5hbHlzaXN0YXNrLnB5CisrKyBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvcGF0Y2hhbmFseXNpc3Rhc2sucHkKQEAg
LTEsNCArMSw1IEBACiAjIENvcHlyaWdodCAoYykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtMjgsNiArMjksNyBA
QAogCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZlIGltcG9ydCBTY3JpcHRF
cnJvcgogZnJvbSB3ZWJraXRweS5jb21tb24ubmV0LmxheW91dHRlc3RyZXN1bHRzIGltcG9ydCBM
YXlvdXRUZXN0UmVzdWx0cworZnJvbSB3ZWJraXRweS5jb21tb24ubmV0LmpzY3Rlc3RyZXN1bHRz
IGltcG9ydCBKU0NUZXN0UmVzdWx0cwogCiAKIGNsYXNzIFVuYWJsZVRvQXBwbHlQYXRjaChFeGNl
cHRpb24pOgpAQCAtNDMsNiArNDUsMTEgQEAgY2xhc3MgUGF0Y2hJc05vdFZhbGlkKEV4Y2VwdGlv
bik6CiAgICAgICAgIHNlbGYuZmFpbHVyZV9tZXNzYWdlID0gZmFpbHVyZV9tZXNzYWdlCiAKIAor
Y2xhc3MgUGF0Y2hJc05vdEFwcGxpY2FibGUoRXhjZXB0aW9uKToKKyAgICBkZWYgX19pbml0X18o
c2VsZiwgcGF0Y2gpOgorICAgICAgICBFeGNlcHRpb24uX19pbml0X18oc2VsZikKKyAgICAgICAg
c2VsZi5wYXRjaCA9IHBhdGNoCisKIGNsYXNzIFBhdGNoQW5hbHlzaXNUYXNrRGVsZWdhdGUob2Jq
ZWN0KToKICAgICBkZWYgcGFyZW50X2NvbW1hbmQoc2VsZik6CiAgICAgICAgIHJhaXNlIE5vdElt
cGxlbWVudGVkRXJyb3IoInN1YmNsYXNzZXMgbXVzdCBpbXBsZW1lbnQiKQpAQCAtMTIyLDI4ICsx
MjksNTMgQEAgY2xhc3MgUGF0Y2hBbmFseXNpc1Rhc2sob2JqZWN0KToKICAgICAgICAgIkFwcGxp
ZWQgcGF0Y2giLAogICAgICAgICAiUGF0Y2ggZG9lcyBub3QgYXBwbHkiKQogCisgICAgZGVmIF9j
aGVja19wYXRjaF9yZWxldmFuY2Uoc2VsZik6CisgICAgICAgIGFyZ3MgPSBbCisgICAgICAgICAg
ICAiY2hlY2stcGF0Y2gtcmVsZXZhbmNlIiwKKyAgICAgICAgXQorCisgICAgICAgIGlmIGhhc2F0
dHIoc2VsZi5fZGVsZWdhdGUsICdncm91cCcpOgorICAgICAgICAgICAgYXJncy5hcHBlbmQoIi0t
Z3JvdXA9JXMiICUgc2VsZi5fZGVsZWdhdGUuZ3JvdXAoKSkKKworICAgICAgICByZXR1cm4gc2Vs
Zi5fcnVuX2NvbW1hbmQoCisgICAgICAgICAgICBhcmdzLAorICAgICAgICAgICAgIkNoZWNrZWQg
cmVsZXZhbmNlIG9mIHBhdGNoIiwKKyAgICAgICAgICAgICJQYXRjaCB3YXMgbm90IHJlbGV2YW50
IikKKwogICAgIGRlZiBfYnVpbGQoc2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmLl9ydW5fY29t
bWFuZChbCisgICAgICAgIGFyZ3MgPSBbCiAgICAgICAgICAgICAiYnVpbGQiLAogICAgICAgICAg
ICAgIi0tbm8tY2xlYW4iLAogICAgICAgICAgICAgIi0tbm8tdXBkYXRlIiwKICAgICAgICAgICAg
ICItLWJ1aWxkLXN0eWxlPSVzIiAlIHNlbGYuX2RlbGVnYXRlLmJ1aWxkX3N0eWxlKCksCi0gICAg
ICAgIF0sCi0gICAgICAgICJCdWlsdCBwYXRjaCIsCi0gICAgICAgICJQYXRjaCBkb2VzIG5vdCBi
dWlsZCIpCisgICAgICAgIF0KKworICAgICAgICBpZiBoYXNhdHRyKHNlbGYuX2RlbGVnYXRlLCAn
Z3JvdXAnKToKKyAgICAgICAgICAgIGFyZ3MuYXBwZW5kKCItLWdyb3VwPSVzIiAlIHNlbGYuX2Rl
bGVnYXRlLmdyb3VwKCkpCisKKyAgICAgICAgcmV0dXJuIHNlbGYuX3J1bl9jb21tYW5kKAorICAg
ICAgICAgICAgYXJncywKKyAgICAgICAgICAgICJCdWlsdCBwYXRjaCIsCisgICAgICAgICAgICAi
UGF0Y2ggZG9lcyBub3QgYnVpbGQiKQogCiAgICAgZGVmIF9idWlsZF93aXRob3V0X3BhdGNoKHNl
bGYpOgotICAgICAgICByZXR1cm4gc2VsZi5fcnVuX2NvbW1hbmQoWworICAgICAgICBhcmdzID0g
WwogICAgICAgICAgICAgImJ1aWxkIiwKICAgICAgICAgICAgICItLWZvcmNlLWNsZWFuIiwKICAg
ICAgICAgICAgICItLW5vLXVwZGF0ZSIsCiAgICAgICAgICAgICAiLS1idWlsZC1zdHlsZT0lcyIg
JSBzZWxmLl9kZWxlZ2F0ZS5idWlsZF9zdHlsZSgpLAotICAgICAgICBdLAotICAgICAgICAiQWJs
ZSB0byBidWlsZCB3aXRob3V0IHBhdGNoIiwKLSAgICAgICAgIlVuYWJsZSB0byBidWlsZCB3aXRo
b3V0IHBhdGNoIikKKyAgICAgICAgXQorCisgICAgICAgIGlmIGhhc2F0dHIoc2VsZi5fZGVsZWdh
dGUsICdncm91cCcpOgorICAgICAgICAgICAgYXJncy5hcHBlbmQoIi0tZ3JvdXA9JXMiICUgc2Vs
Zi5fZGVsZWdhdGUuZ3JvdXAoKSkKKworICAgICAgICByZXR1cm4gc2VsZi5fcnVuX2NvbW1hbmQo
CisgICAgICAgICAgICBhcmdzLAorICAgICAgICAgICAgIkFibGUgdG8gYnVpbGQgd2l0aG91dCBw
YXRjaCIsCisgICAgICAgICAgICAiVW5hYmxlIHRvIGJ1aWxkIHdpdGhvdXQgcGF0Y2giKQogCiAg
ICAgZGVmIF90ZXN0KHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi5fcnVuX2NvbW1hbmQoWwor
ICAgICAgICBhcmdzID0gWwogICAgICAgICAgICAgImJ1aWxkLWFuZC10ZXN0IiwKICAgICAgICAg
ICAgICItLW5vLWNsZWFuIiwKICAgICAgICAgICAgICItLW5vLXVwZGF0ZSIsCkBAIC0xNTEsMTIg
KzE4MywxOCBAQCBjbGFzcyBQYXRjaEFuYWx5c2lzVGFzayhvYmplY3QpOgogICAgICAgICAgICAg
Ii0tdGVzdCIsCiAgICAgICAgICAgICAiLS1ub24taW50ZXJhY3RpdmUiLAogICAgICAgICAgICAg
Ii0tYnVpbGQtc3R5bGU9JXMiICUgc2VsZi5fZGVsZWdhdGUuYnVpbGRfc3R5bGUoKSwKLSAgICAg
ICAgXSwKLSAgICAgICAgIlBhc3NlZCB0ZXN0cyIsCi0gICAgICAgICJQYXRjaCBkb2VzIG5vdCBw
YXNzIHRlc3RzIikKKyAgICAgICAgXQorCisgICAgICAgIGlmIGhhc2F0dHIoc2VsZi5fZGVsZWdh
dGUsICdncm91cCcpOgorICAgICAgICAgICAgYXJncy5hcHBlbmQoIi0tZ3JvdXA9JXMiICUgc2Vs
Zi5fZGVsZWdhdGUuZ3JvdXAoKSkKKworICAgICAgICByZXR1cm4gc2VsZi5fcnVuX2NvbW1hbmQo
CisgICAgICAgICAgICBhcmdzLAorICAgICAgICAgICAgIlBhc3NlZCB0ZXN0cyIsCisgICAgICAg
ICAgICAiUGF0Y2ggZG9lcyBub3QgcGFzcyB0ZXN0cyIpCiAKICAgICBkZWYgX2J1aWxkX2FuZF90
ZXN0X3dpdGhvdXRfcGF0Y2goc2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmLl9ydW5fY29tbWFu
ZChbCisgICAgICAgIGFyZ3MgPSBbCiAgICAgICAgICAgICAiYnVpbGQtYW5kLXRlc3QiLAogICAg
ICAgICAgICAgIi0tZm9yY2UtY2xlYW4iLAogICAgICAgICAgICAgIi0tbm8tdXBkYXRlIiwKQEAg
LTE2NCw5ICsyMDIsMTUgQEAgY2xhc3MgUGF0Y2hBbmFseXNpc1Rhc2sob2JqZWN0KToKICAgICAg
ICAgICAgICItLXRlc3QiLAogICAgICAgICAgICAgIi0tbm9uLWludGVyYWN0aXZlIiwKICAgICAg
ICAgICAgICItLWJ1aWxkLXN0eWxlPSVzIiAlIHNlbGYuX2RlbGVnYXRlLmJ1aWxkX3N0eWxlKCks
Ci0gICAgICAgIF0sCi0gICAgICAgICJBYmxlIHRvIHBhc3MgdGVzdHMgd2l0aG91dCBwYXRjaCIs
Ci0gICAgICAgICJVbmFibGUgdG8gcGFzcyB0ZXN0cyB3aXRob3V0IHBhdGNoICh0cmVlIGlzIHJl
ZD8pIikKKyAgICAgICAgXQorCisgICAgICAgIGlmIGhhc2F0dHIoc2VsZi5fZGVsZWdhdGUsICdn
cm91cCcpOgorICAgICAgICAgICAgYXJncy5hcHBlbmQoIi0tZ3JvdXA9JXMiICUgc2VsZi5fZGVs
ZWdhdGUuZ3JvdXAoKSkKKworICAgICAgICByZXR1cm4gc2VsZi5fcnVuX2NvbW1hbmQoCisgICAg
ICAgICAgICBhcmdzLAorICAgICAgICAgICAgIkFibGUgdG8gcGFzcyB0ZXN0cyB3aXRob3V0IHBh
dGNoIiwKKyAgICAgICAgICAgICJVbmFibGUgdG8gcGFzcyB0ZXN0cyB3aXRob3V0IHBhdGNoICh0
cmVlIGlzIHJlZD8pIikKIAogICAgIGRlZiBfbGFuZChzZWxmKToKICAgICAgICAgIyBVbmNsZWFy
IGlmIHRoaXMgc2hvdWxkIHBhc3MgLS1xdWlldCBvciBub3QuICBJZiAtLXBhcmVudC1jb21tYW5k
IGFsd2F5cyBkb2VzIHRoZSByZXBvcnRpbmcsIHRoZW4gaXQgc2hvdWxkLgpAQCAtMjEwLDY5ICsy
NTQsOTggQEAgY2xhc3MgUGF0Y2hBbmFseXNpc1Rhc2sob2JqZWN0KToKICAgICAgICAgaWYgc2Vs
Zi5fdGVzdCgpOgogICAgICAgICAgICAgcmV0dXJuIFRydWUKIAotICAgICAgICAjIE5vdGU6IGFy
Y2hpdmVfbGFzdF90ZXN0X3Jlc3VsdHMgZGVsZXRlcyB0aGUgcmVzdWx0cyBkaXJlY3RvcnksIG1h
a2luZyB0aGVzZSBjYWxscyBvcmRlci1zZW5zaXR2ZS4KLSAgICAgICAgIyBXZSBjb3VsZCByZW1v
dmUgdGhpcyBkZXBlbmRlbmN5IGJ5IGJ1aWxkaW5nIHRoZSB0ZXN0X3Jlc3VsdHMgZnJvbSB0aGUg
YXJjaGl2ZS4KLSAgICAgICAgZmlyc3RfcmVzdWx0cyA9IHNlbGYuX2RlbGVnYXRlLnRlc3RfcmVz
dWx0cygpCi0gICAgICAgIGZpcnN0X3Jlc3VsdHNfYXJjaGl2ZSA9IHNlbGYuX2RlbGVnYXRlLmFy
Y2hpdmVfbGFzdF90ZXN0X3Jlc3VsdHMoc2VsZi5fcGF0Y2gpCi0gICAgICAgIGZpcnN0X3Njcmlw
dF9lcnJvciA9IHNlbGYuX3NjcmlwdF9lcnJvcgotICAgICAgICBmaXJzdF9mYWlsdXJlX3N0YXR1
c19pZCA9IHNlbGYuZmFpbHVyZV9zdGF0dXNfaWQKLQotICAgICAgICBpZiBzZWxmLl90ZXN0KCkg
YW5kIG5vdCBmaXJzdF9yZXN1bHRzLmRpZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xpbWl0KCk6Ci0g
ICAgICAgICAgICAjIE9ubHkgcmVwb3J0IGZsYWt5IHRlc3RzIGlmIHdlIHdlcmUgc3VjY2Vzc2Z1
bCBhdCBwYXJzaW5nIHJlc3VsdHMuanNvbiBhbmQgYXJjaGl2aW5nIHJlc3VsdHMuCi0gICAgICAg
ICAgICBpZiBmaXJzdF9yZXN1bHRzIGFuZCBmaXJzdF9yZXN1bHRzX2FyY2hpdmU6Ci0gICAgICAg
ICAgICAgICAgc2VsZi5fcmVwb3J0X2ZsYWt5X3Rlc3RzKGZpcnN0X3Jlc3VsdHMuZmFpbGluZ190
ZXN0X3Jlc3VsdHMoKSwgZmlyc3RfcmVzdWx0c19hcmNoaXZlKQotICAgICAgICAgICAgcmV0dXJu
IFRydWUKKyAgICAgICAgIyBGSVhNRTogQWJzdHJhY3Qgb3V0IHRoZSByZXRyeSBsb2dpYyBpbnN0
ZWFkIG9mIGNhc2luZyBvbiB0aGUgdGVzdCBzdWl0ZSBoZXJlLgorICAgICAgICBpZiBoYXNhdHRy
KHNlbGYuX2RlbGVnYXRlLCAnZ3JvdXAnKSBhbmQgc2VsZi5fZGVsZWdhdGUuZ3JvdXAoKSA9PSAi
anNjIjoKKyAgICAgICAgICAgIGZpcnN0X3Jlc3VsdHMgPSBzZWxmLl9kZWxlZ2F0ZS50ZXN0X3Jl
c3VsdHMoKQorICAgICAgICAgICAgZmlyc3Rfc2NyaXB0X2Vycm9yID0gc2VsZi5fc2NyaXB0X2Vy
cm9yCisgICAgICAgICAgICBmaXJzdF9mYWlsdXJlX3N0YXR1c19pZCA9IHNlbGYuZmFpbHVyZV9z
dGF0dXNfaWQKKyAgICAgICAgICAgIGlmIGZpcnN0X3Jlc3VsdHMgaXMgTm9uZToKKyAgICAgICAg
ICAgICAgICByZXR1cm4gRmFsc2UKIAotICAgICAgICBzZWNvbmRfcmVzdWx0cyA9IHNlbGYuX2Rl
bGVnYXRlLnRlc3RfcmVzdWx0cygpCi0gICAgICAgIHNlY29uZF9yZXN1bHRzX2FyY2hpdmUgPSBz
ZWxmLl9kZWxlZ2F0ZS5hcmNoaXZlX2xhc3RfdGVzdF9yZXN1bHRzKHNlbGYuX3BhdGNoKQotICAg
ICAgICBzZWNvbmRfc2NyaXB0X2Vycm9yID0gc2VsZi5fc2NyaXB0X2Vycm9yCi0gICAgICAgIHNl
Y29uZF9mYWlsdXJlX3N0YXR1c19pZCA9IHNlbGYuZmFpbHVyZV9zdGF0dXNfaWQKKyAgICAgICAg
ICAgIGlmIHNlbGYuX3Rlc3QoKToKKyAgICAgICAgICAgICAgICByZXR1cm4gVHJ1ZQorICAgICAg
ICAgICAgc2Vjb25kX3Jlc3VsdHMgPSBzZWxmLl9kZWxlZ2F0ZS50ZXN0X3Jlc3VsdHMoKQorICAg
ICAgICAgICAgc2Vjb25kX3NjcmlwdF9lcnJvciA9IHNlbGYuX3NjcmlwdF9lcnJvcgorICAgICAg
ICAgICAgaWYgc2Vjb25kX3Jlc3VsdHMgaXMgTm9uZToKKyAgICAgICAgICAgICAgICByZXR1cm4g
RmFsc2UKKworICAgICAgICAgICAgY29uc2lzdGVudF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMu
aW50ZXJzZWN0aW9uKGZpcnN0X3Jlc3VsdHMsIHNlY29uZF9yZXN1bHRzKQogCi0gICAgICAgIGlm
IHNlY29uZF9yZXN1bHRzLmRpZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xpbWl0KCkgYW5kIGZpcnN0
X3Jlc3VsdHMuZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQoKToKICAgICAgICAgICAgIHNl
bGYuX2J1aWxkX2FuZF90ZXN0X3dpdGhvdXRfcGF0Y2goKQogICAgICAgICAgICAgY2xlYW5fdHJl
ZV9yZXN1bHRzID0gc2VsZi5fZGVsZWdhdGUudGVzdF9yZXN1bHRzKCkKLQotICAgICAgICAgICAg
aWYgKGxlbihmaXJzdF9yZXN1bHRzLmZhaWxpbmdfdGVzdHMoKSkgLSBsZW4oY2xlYW5fdHJlZV9y
ZXN1bHRzLmZhaWxpbmdfdGVzdHMoKSkpIDw9IDU6CisgICAgICAgICAgICBpZiBjbGVhbl90cmVl
X3Jlc3VsdHMgaXMgTm9uZToKICAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKIAorICAgICAg
ICAgICAgaWYgY29uc2lzdGVudF9yZXN1bHRzLmlzX3N1YnNldChjbGVhbl90cmVlX3Jlc3VsdHMp
OgorICAgICAgICAgICAgICAgIHJldHVybiBUcnVlCisKICAgICAgICAgICAgIHNlbGYuZmFpbHVy
ZV9zdGF0dXNfaWQgPSBmaXJzdF9mYWlsdXJlX3N0YXR1c19pZAorICAgICAgICAgICAgcmV0dXJu
IHNlbGYucmVwb3J0X2ZhaWx1cmUoTm9uZSwgY29uc2lzdGVudF9yZXN1bHRzLCBmaXJzdF9zY3Jp
cHRfZXJyb3IpCiAKLSAgICAgICAgICAgIHJldHVybiBzZWxmLnJlcG9ydF9mYWlsdXJlKGZpcnN0
X3Jlc3VsdHNfYXJjaGl2ZSwgZmlyc3RfcmVzdWx0cywgZmlyc3Rfc2NyaXB0X2Vycm9yKQorICAg
ICAgICBlbHNlOgorICAgICAgICAgICAgIyBOb3RlOiBhcmNoaXZlX2xhc3RfdGVzdF9yZXN1bHRz
IGRlbGV0ZXMgdGhlIHJlc3VsdHMgZGlyZWN0b3J5LCBtYWtpbmcgdGhlc2UgY2FsbHMgb3JkZXIt
c2Vuc2l0dmUuCisgICAgICAgICAgICAjIFdlIGNvdWxkIHJlbW92ZSB0aGlzIGRlcGVuZGVuY3kg
YnkgYnVpbGRpbmcgdGhlIHRlc3RfcmVzdWx0cyBmcm9tIHRoZSBhcmNoaXZlLgorICAgICAgICAg
ICAgZmlyc3RfcmVzdWx0cyA9IHNlbGYuX2RlbGVnYXRlLnRlc3RfcmVzdWx0cygpCisgICAgICAg
ICAgICBmaXJzdF9yZXN1bHRzX2FyY2hpdmUgPSBzZWxmLl9kZWxlZ2F0ZS5hcmNoaXZlX2xhc3Rf
dGVzdF9yZXN1bHRzKHNlbGYuX3BhdGNoKQorICAgICAgICAgICAgZmlyc3Rfc2NyaXB0X2Vycm9y
ID0gc2VsZi5fc2NyaXB0X2Vycm9yCisgICAgICAgICAgICBmaXJzdF9mYWlsdXJlX3N0YXR1c19p
ZCA9IHNlbGYuZmFpbHVyZV9zdGF0dXNfaWQKIAotICAgICAgICBpZiBzZWNvbmRfcmVzdWx0cy5k
aWRfZXhjZWVkX3Rlc3RfZmFpbHVyZV9saW1pdCgpOgotICAgICAgICAgICAgc2VsZi5fc2hvdWxk
X2RlZmVyX3BhdGNoX29yX3Rocm93KGZpcnN0X3Jlc3VsdHMuZmFpbGluZ190ZXN0X3Jlc3VsdHMo
KSwgZmlyc3RfcmVzdWx0c19hcmNoaXZlLCBmaXJzdF9zY3JpcHRfZXJyb3IsIGZpcnN0X2ZhaWx1
cmVfc3RhdHVzX2lkKQotICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgICAgICBpZiBz
ZWxmLl90ZXN0KCkgYW5kIG5vdCBmaXJzdF9yZXN1bHRzLmRpZF9leGNlZWRfdGVzdF9mYWlsdXJl
X2xpbWl0KCk6CisgICAgICAgICAgICAgICAgIyBPbmx5IHJlcG9ydCBmbGFreSB0ZXN0cyBpZiB3
ZSB3ZXJlIHN1Y2Nlc3NmdWwgYXQgcGFyc2luZyByZXN1bHRzLmpzb24gYW5kIGFyY2hpdmluZyBy
ZXN1bHRzLgorICAgICAgICAgICAgICAgIGlmIGZpcnN0X3Jlc3VsdHMgYW5kIGZpcnN0X3Jlc3Vs
dHNfYXJjaGl2ZToKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5fcmVwb3J0X2ZsYWt5X3Rlc3Rz
KGZpcnN0X3Jlc3VsdHMuZmFpbGluZ190ZXN0X3Jlc3VsdHMoKSwgZmlyc3RfcmVzdWx0c19hcmNo
aXZlKQorICAgICAgICAgICAgICAgIHJldHVybiBUcnVlCiAKLSAgICAgICAgaWYgZmlyc3RfcmVz
dWx0cy5kaWRfZXhjZWVkX3Rlc3RfZmFpbHVyZV9saW1pdCgpOgotICAgICAgICAgICAgc2VsZi5f
c2hvdWxkX2RlZmVyX3BhdGNoX29yX3Rocm93KHNlY29uZF9yZXN1bHRzLmZhaWxpbmdfdGVzdF9y
ZXN1bHRzKCksIHNlY29uZF9yZXN1bHRzX2FyY2hpdmUsIHNlY29uZF9zY3JpcHRfZXJyb3IsIHNl
Y29uZF9mYWlsdXJlX3N0YXR1c19pZCkKLSAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAg
ICAgICAgc2Vjb25kX3Jlc3VsdHMgPSBzZWxmLl9kZWxlZ2F0ZS50ZXN0X3Jlc3VsdHMoKQorICAg
ICAgICAgICAgc2Vjb25kX3Jlc3VsdHNfYXJjaGl2ZSA9IHNlbGYuX2RlbGVnYXRlLmFyY2hpdmVf
bGFzdF90ZXN0X3Jlc3VsdHMoc2VsZi5fcGF0Y2gpCisgICAgICAgICAgICBzZWNvbmRfc2NyaXB0
X2Vycm9yID0gc2VsZi5fc2NyaXB0X2Vycm9yCisgICAgICAgICAgICBzZWNvbmRfZmFpbHVyZV9z
dGF0dXNfaWQgPSBzZWxmLmZhaWx1cmVfc3RhdHVzX2lkCisKKyAgICAgICAgICAgIGlmIHNlY29u
ZF9yZXN1bHRzLmRpZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xpbWl0KCkgYW5kIGZpcnN0X3Jlc3Vs
dHMuZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQoKToKKyAgICAgICAgICAgICAgICBzZWxm
Ll9idWlsZF9hbmRfdGVzdF93aXRob3V0X3BhdGNoKCkKKyAgICAgICAgICAgICAgICBjbGVhbl90
cmVlX3Jlc3VsdHMgPSBzZWxmLl9kZWxlZ2F0ZS50ZXN0X3Jlc3VsdHMoKQorCisgICAgICAgICAg
ICAgICAgaWYgKGxlbihmaXJzdF9yZXN1bHRzLmZhaWxpbmdfdGVzdHMoKSkgLSBsZW4oY2xlYW5f
dHJlZV9yZXN1bHRzLmZhaWxpbmdfdGVzdHMoKSkpIDw9IDU6CisgICAgICAgICAgICAgICAgICAg
IHJldHVybiBGYWxzZQorCisgICAgICAgICAgICAgICAgc2VsZi5mYWlsdXJlX3N0YXR1c19pZCA9
IGZpcnN0X2ZhaWx1cmVfc3RhdHVzX2lkCisKKyAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5y
ZXBvcnRfZmFpbHVyZShmaXJzdF9yZXN1bHRzX2FyY2hpdmUsIGZpcnN0X3Jlc3VsdHMsIGZpcnN0
X3NjcmlwdF9lcnJvcikKIAotICAgICAgICBpZiBzZWxmLl9yZXN1bHRzX2ZhaWxlZF9kaWZmZXJl
bnRfdGVzdHMoZmlyc3RfcmVzdWx0cywgc2Vjb25kX3Jlc3VsdHMpOgotICAgICAgICAgICAgZmly
c3RfZmFpbGluZ19yZXN1bHRzX3NldCA9IGZyb3plbnNldChmaXJzdF9yZXN1bHRzLmZhaWxpbmdf
dGVzdF9yZXN1bHRzKCkpCi0gICAgICAgICAgICBzZWNvbmRfZmFpbGluZ19yZXN1bHRzX3NldCA9
IGZyb3plbnNldChzZWNvbmRfcmVzdWx0cy5mYWlsaW5nX3Rlc3RfcmVzdWx0cygpKQorICAgICAg
ICAgICAgaWYgc2Vjb25kX3Jlc3VsdHMuZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQoKToK
KyAgICAgICAgICAgICAgICBzZWxmLl9zaG91bGRfZGVmZXJfcGF0Y2hfb3JfdGhyb3coZmlyc3Rf
cmVzdWx0cy5mYWlsaW5nX3Rlc3RfcmVzdWx0cygpLCBmaXJzdF9yZXN1bHRzX2FyY2hpdmUsIGZp
cnN0X3NjcmlwdF9lcnJvciwgZmlyc3RfZmFpbHVyZV9zdGF0dXNfaWQpCisgICAgICAgICAgICAg
ICAgcmV0dXJuIEZhbHNlCisKKyAgICAgICAgICAgIGlmIGZpcnN0X3Jlc3VsdHMuZGlkX2V4Y2Vl
ZF90ZXN0X2ZhaWx1cmVfbGltaXQoKToKKyAgICAgICAgICAgICAgICBzZWxmLl9zaG91bGRfZGVm
ZXJfcGF0Y2hfb3JfdGhyb3coc2Vjb25kX3Jlc3VsdHMuZmFpbGluZ190ZXN0X3Jlc3VsdHMoKSwg
c2Vjb25kX3Jlc3VsdHNfYXJjaGl2ZSwgc2Vjb25kX3NjcmlwdF9lcnJvciwgc2Vjb25kX2ZhaWx1
cmVfc3RhdHVzX2lkKQorICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQogCi0gICAgICAgICAg
ICB0ZXN0c190aGF0X29ubHlfZmFpbGVkX2ZpcnN0ID0gZmlyc3RfZmFpbGluZ19yZXN1bHRzX3Nl
dC5kaWZmZXJlbmNlKHNlY29uZF9mYWlsaW5nX3Jlc3VsdHNfc2V0KQotICAgICAgICAgICAgc2Vs
Zi5fcmVwb3J0X2ZsYWt5X3Rlc3RzKHRlc3RzX3RoYXRfb25seV9mYWlsZWRfZmlyc3QsIGZpcnN0
X3Jlc3VsdHNfYXJjaGl2ZSkKKyAgICAgICAgICAgIGlmIHNlbGYuX3Jlc3VsdHNfZmFpbGVkX2Rp
ZmZlcmVudF90ZXN0cyhmaXJzdF9yZXN1bHRzLCBzZWNvbmRfcmVzdWx0cyk6CisgICAgICAgICAg
ICAgICAgZmlyc3RfZmFpbGluZ19yZXN1bHRzX3NldCA9IGZyb3plbnNldChmaXJzdF9yZXN1bHRz
LmZhaWxpbmdfdGVzdF9yZXN1bHRzKCkpCisgICAgICAgICAgICAgICAgc2Vjb25kX2ZhaWxpbmdf
cmVzdWx0c19zZXQgPSBmcm96ZW5zZXQoc2Vjb25kX3Jlc3VsdHMuZmFpbGluZ190ZXN0X3Jlc3Vs
dHMoKSkKIAotICAgICAgICAgICAgdGVzdHNfdGhhdF9vbmx5X2ZhaWxlZF9zZWNvbmQgPSBzZWNv
bmRfZmFpbGluZ19yZXN1bHRzX3NldC5kaWZmZXJlbmNlKGZpcnN0X2ZhaWxpbmdfcmVzdWx0c19z
ZXQpCi0gICAgICAgICAgICBzZWxmLl9yZXBvcnRfZmxha3lfdGVzdHModGVzdHNfdGhhdF9vbmx5
X2ZhaWxlZF9zZWNvbmQsIHNlY29uZF9yZXN1bHRzX2FyY2hpdmUpCisgICAgICAgICAgICAgICAg
dGVzdHNfdGhhdF9vbmx5X2ZhaWxlZF9maXJzdCA9IGZpcnN0X2ZhaWxpbmdfcmVzdWx0c19zZXQu
ZGlmZmVyZW5jZShzZWNvbmRfZmFpbGluZ19yZXN1bHRzX3NldCkKKyAgICAgICAgICAgICAgICBz
ZWxmLl9yZXBvcnRfZmxha3lfdGVzdHModGVzdHNfdGhhdF9vbmx5X2ZhaWxlZF9maXJzdCwgZmly
c3RfcmVzdWx0c19hcmNoaXZlKQogCi0gICAgICAgICAgICB0ZXN0c190aGF0X2NvbnNpc3RlbnRs
eV9mYWlsZWQgPSBmaXJzdF9mYWlsaW5nX3Jlc3VsdHNfc2V0LmludGVyc2VjdGlvbihzZWNvbmRf
ZmFpbGluZ19yZXN1bHRzX3NldCkKLSAgICAgICAgICAgIGlmIHRlc3RzX3RoYXRfY29uc2lzdGVu
dGx5X2ZhaWxlZDoKLSAgICAgICAgICAgICAgICBpZiBzZWxmLl9zaG91bGRfZGVmZXJfcGF0Y2hf
b3JfdGhyb3codGVzdHNfdGhhdF9jb25zaXN0ZW50bHlfZmFpbGVkLCBmaXJzdF9yZXN1bHRzX2Fy
Y2hpdmUsIGZpcnN0X3NjcmlwdF9lcnJvciwgZmlyc3RfZmFpbHVyZV9zdGF0dXNfaWQpOgotICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UgICMgRGVmZXIgcGF0Y2gKKyAgICAgICAgICAg
ICAgICB0ZXN0c190aGF0X29ubHlfZmFpbGVkX3NlY29uZCA9IHNlY29uZF9mYWlsaW5nX3Jlc3Vs
dHNfc2V0LmRpZmZlcmVuY2UoZmlyc3RfZmFpbGluZ19yZXN1bHRzX3NldCkKKyAgICAgICAgICAg
ICAgICBzZWxmLl9yZXBvcnRfZmxha3lfdGVzdHModGVzdHNfdGhhdF9vbmx5X2ZhaWxlZF9zZWNv
bmQsIHNlY29uZF9yZXN1bHRzX2FyY2hpdmUpCiAKLSAgICAgICAgICAgICMgQXQgdGhpcyBwb2lu
dCB3ZSBrbm93IHRoYXQgYXQgbGVhc3Qgb25lIHRlc3QgZmxha2VkLCBidXQgbm8gY29uc2lzdGVu
dCBmYWlsdXJlcwotICAgICAgICAgICAgIyB3ZXJlIGludHJvZHVjZWQuIFRoaXMgaXMgYSBiaXQg
b2YgYSBncmV5LXpvbmUuCi0gICAgICAgICAgICByZXR1cm4gRmFsc2UgICMgRGVmZXIgcGF0Y2gK
KyAgICAgICAgICAgICAgICB0ZXN0c190aGF0X2NvbnNpc3RlbnRseV9mYWlsZWQgPSBmaXJzdF9m
YWlsaW5nX3Jlc3VsdHNfc2V0LmludGVyc2VjdGlvbihzZWNvbmRfZmFpbGluZ19yZXN1bHRzX3Nl
dCkKKyAgICAgICAgICAgICAgICBpZiB0ZXN0c190aGF0X2NvbnNpc3RlbnRseV9mYWlsZWQ6Cisg
ICAgICAgICAgICAgICAgICAgIGlmIHNlbGYuX3Nob3VsZF9kZWZlcl9wYXRjaF9vcl90aHJvdyh0
ZXN0c190aGF0X2NvbnNpc3RlbnRseV9mYWlsZWQsIGZpcnN0X3Jlc3VsdHNfYXJjaGl2ZSwgZmly
c3Rfc2NyaXB0X2Vycm9yLCBmaXJzdF9mYWlsdXJlX3N0YXR1c19pZCk6CisgICAgICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gRmFsc2UgICMgRGVmZXIgcGF0Y2gKIAotICAgICAgICBpZiBzZWxm
Ll9zaG91bGRfZGVmZXJfcGF0Y2hfb3JfdGhyb3coZmlyc3RfcmVzdWx0cy5mYWlsaW5nX3Rlc3Rf
cmVzdWx0cygpLCBmaXJzdF9yZXN1bHRzX2FyY2hpdmUsIGZpcnN0X3NjcmlwdF9lcnJvciwgZmly
c3RfZmFpbHVyZV9zdGF0dXNfaWQpOgotICAgICAgICAgICAgcmV0dXJuIEZhbHNlICAjIERlZmVy
IHBhdGNoCisgICAgICAgICAgICAgICAgIyBBdCB0aGlzIHBvaW50IHdlIGtub3cgdGhhdCBhdCBs
ZWFzdCBvbmUgdGVzdCBmbGFrZWQsIGJ1dCBubyBjb25zaXN0ZW50IGZhaWx1cmVzCisgICAgICAg
ICAgICAgICAgIyB3ZXJlIGludHJvZHVjZWQuIFRoaXMgaXMgYSBiaXQgb2YgYSBncmV5LXpvbmUu
CisgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlICAjIERlZmVyIHBhdGNoCiAKLSAgICAgICAg
IyBBdCB0aGlzIHBvaW50LCB3ZSBrbm93IHRoYXQgdGhlIGZpcnN0IGFuZCBzZWNvbmQgcnVucyBo
YWQgdGhlIGV4YWN0IHNhbWUgZmFpbHVyZXMsCi0gICAgICAgICMgYW5kIHRoYXQgdGhvc2UgZmFp
bHVyZXMgYXJlIGFsbCBwcmVzZW50IG9uIHRoZSBjbGVhbiB0cmVlLCBzbyB3ZSBjYW4gc2F5IHdp
dGggY2VydGFpbnR5Ci0gICAgICAgICMgdGhhdCB0aGUgcGF0Y2ggaXMgZ29vZC4KLSAgICAgICAg
cmV0dXJuIFRydWUKKyAgICAgICAgICAgIGlmIHNlbGYuX3Nob3VsZF9kZWZlcl9wYXRjaF9vcl90
aHJvdyhmaXJzdF9yZXN1bHRzLmZhaWxpbmdfdGVzdF9yZXN1bHRzKCksIGZpcnN0X3Jlc3VsdHNf
YXJjaGl2ZSwgZmlyc3Rfc2NyaXB0X2Vycm9yLCBmaXJzdF9mYWlsdXJlX3N0YXR1c19pZCk6Cisg
ICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlICAjIERlZmVyIHBhdGNoCisKKyAgICAgICAgICAg
ICMgQXQgdGhpcyBwb2ludCwgd2Uga25vdyB0aGF0IHRoZSBmaXJzdCBhbmQgc2Vjb25kIHJ1bnMg
aGFkIHRoZSBleGFjdCBzYW1lIGZhaWx1cmVzLAorICAgICAgICAgICAgIyBhbmQgdGhhdCB0aG9z
ZSBmYWlsdXJlcyBhcmUgYWxsIHByZXNlbnQgb24gdGhlIGNsZWFuIHRyZWUsIHNvIHdlIGNhbiBz
YXkgd2l0aCBjZXJ0YWludHkKKyAgICAgICAgICAgICMgdGhhdCB0aGUgcGF0Y2ggaXMgZ29vZC4K
KyAgICAgICAgICAgIHJldHVybiBUcnVlCiAKICAgICBkZWYgcmVzdWx0c19hcmNoaXZlX2Zyb21f
cGF0Y2hfdGVzdF9ydW4oc2VsZiwgcGF0Y2gpOgogICAgICAgICBhc3NlcnQoc2VsZi5fcGF0Y2gu
aWQoKSA9PSBwYXRjaC5pZCgpKSAgIyBQYXRjaEFuYWx5c2lzVGFzayBpcyBub3QgY3VycmVudGx5
IHJlLXVzZWFibGUuCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29t
bWFuZHMvZG93bmxvYWQucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMv
ZG93bmxvYWQucHkKaW5kZXggZTUxNjlhYWM4NWYzMTg2ZTg0YmU5ZDUwMjQ1OTJiZDdmZTZkNWRk
NS4uMTRiNTViYzNmN2M5YzEwYjVkZjYwZmMxYWY4N2Q3Y2EzOWUzYmM5NCAxMDA2NDQKLS0tIGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Rvd25sb2FkLnB5CisrKyBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9kb3dubG9hZC5weQpAQCAtMSw1ICsx
LDUgQEAKICMgQ29weXJpZ2h0IChjKSAyMDA5LCAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0jIENvcHlyaWdodCAoYykgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisjIENvcHlyaWdodCAoYykgMjAwOSwgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC04Nyw2ICs4Nywx
NCBAQCBjbGFzcyBCdWlsZEFuZFRlc3QoQWJzdHJhY3RTZXF1ZW5jZWRDb21tYW5kKToKICAgICBd
CiAKIAorY2xhc3MgQ2hlY2tQYXRjaFJlbGV2YW5jZShBYnN0cmFjdFNlcXVlbmNlZENvbW1hbmQp
OgorICAgIG5hbWUgPSAiY2hlY2stcGF0Y2gtcmVsZXZhbmNlIgorICAgIGhlbHBfdGV4dCA9ICJD
aGVjayBpZiB0aGlzIHBhdGNoIG5lZWRzIHRvIGJlIHRlc3RlZCIKKyAgICBzdGVwcyA9IFsKKyAg
ICAgICAgc3RlcHMuQ2hlY2tQYXRjaFJlbGV2YW5jZSwKKyAgICBdCisKKwogY2xhc3MgTGFuZChB
YnN0cmFjdFNlcXVlbmNlZENvbW1hbmQpOgogICAgIG5hbWUgPSAibGFuZCIKICAgICBoZWxwX3Rl
eHQgPSAiTGFuZCB0aGUgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeSBkaWZmIGFuZCB1cGRhdGVz
IHRoZSBhc3NvY2lhdGVkIGJ1ZyBpZiBhbnkiCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L3Rvb2wvY29tbWFuZHMvZWFybHl3YXJuaW5nc3lzdGVtLnB5IGIvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Vhcmx5d2FybmluZ3N5c3RlbS5weQppbmRleCA5YmMw
NDE4NjBjZTY3NDU0NDU0ZTRiMjUxNDM4YTlkYmU1MjY0NTEzLi44NmIxODY1NWYyZWEyNDlhMmE2
MWI1YjQ1MmVkODM0ZmEyYTcyMzZlIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L3Rvb2wvY29tbWFuZHMvZWFybHl3YXJuaW5nc3lzdGVtLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvdG9vbC9jb21tYW5kcy9lYXJseXdhcm5pbmdzeXN0ZW0ucHkKQEAgLTEsNCArMSw1
IEBACiAjIENvcHlyaWdodCAoYykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorIyBDb3B5cmlnaHQgKGMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
IwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtMjgsNiArMjksNyBAQAogCiBpbXBv
cnQganNvbgogaW1wb3J0IGxvZ2dpbmcKK2ltcG9ydCBvcwogZnJvbSBvcHRwYXJzZSBpbXBvcnQg
bWFrZV9vcHRpb24KIAogZnJvbSB3ZWJraXRweS5jb21tb24uY29uZmlnLmNvbW1pdHRlcnMgaW1w
b3J0IENvbW1pdHRlckxpc3QKQEAgLTM2LDcgKzM4LDggQEAgZnJvbSB3ZWJraXRweS5jb21tb24u
c3lzdGVtLmZpbGVzeXN0ZW0gaW1wb3J0IEZpbGVTeXN0ZW0KIGZyb20gd2Via2l0cHkuY29tbW9u
LnN5c3RlbS5leGVjdXRpdmUgaW1wb3J0IFNjcmlwdEVycm9yCiBmcm9tIHdlYmtpdHB5LnRvb2wu
Ym90LmVhcmx5d2FybmluZ3N5c3RlbXRhc2sgaW1wb3J0IEVhcmx5V2FybmluZ1N5c3RlbVRhc2ss
IEVhcmx5V2FybmluZ1N5c3RlbVRhc2tEZWxlZ2F0ZQogZnJvbSB3ZWJraXRweS50b29sLmJvdC5s
YXlvdXR0ZXN0cmVzdWx0c3JlYWRlciBpbXBvcnQgTGF5b3V0VGVzdFJlc3VsdHNSZWFkZXIKLWZy
b20gd2Via2l0cHkudG9vbC5ib3QucGF0Y2hhbmFseXNpc3Rhc2sgaW1wb3J0IFVuYWJsZVRvQXBw
bHlQYXRjaCwgUGF0Y2hJc05vdFZhbGlkCitmcm9tIHdlYmtpdHB5LnRvb2wuYm90LmpzY3Rlc3Ry
ZXN1bHRzcmVhZGVyIGltcG9ydCBKU0NUZXN0UmVzdWx0c1JlYWRlcgorZnJvbSB3ZWJraXRweS50
b29sLmJvdC5wYXRjaGFuYWx5c2lzdGFzayBpbXBvcnQgVW5hYmxlVG9BcHBseVBhdGNoLCBQYXRj
aElzTm90VmFsaWQsIFBhdGNoSXNOb3RBcHBsaWNhYmxlCiBmcm9tIHdlYmtpdHB5LnRvb2wuYm90
LnF1ZXVlZW5naW5lIGltcG9ydCBRdWV1ZUVuZ2luZQogZnJvbSB3ZWJraXRweS50b29sLmNvbW1h
bmRzLnF1ZXVlcyBpbXBvcnQgQWJzdHJhY3RSZXZpZXdRdWV1ZQogCkBAIC01Myw3ICs1NiwxMiBA
QCBjbGFzcyBBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbShBYnN0cmFjdFJldmlld1F1ZXVlLCBF
YXJseVdhcm5pbmdTeXN0ZW1UYXNrRGVsZQogCiAgICAgZGVmIGJlZ2luX3dvcmtfcXVldWUoc2Vs
Zik6CiAgICAgICAgIEFic3RyYWN0UmV2aWV3UXVldWUuYmVnaW5fd29ya19xdWV1ZShzZWxmKQot
ICAgICAgICBzZWxmLl9sYXlvdXRfdGVzdF9yZXN1bHRzX3JlYWRlciA9IExheW91dFRlc3RSZXN1
bHRzUmVhZGVyKHNlbGYuX3Rvb2wsIHNlbGYuX3BvcnQucmVzdWx0c19kaXJlY3RvcnkoKSwgc2Vs
Zi5fbG9nX2RpcmVjdG9yeSgpKQorCisgICAgICAgIGlmIHNlbGYuZ3JvdXAoKSA9PSAianNjIjoK
KyAgICAgICAgICAgIGRpciA9IG9zLnBhdGguZGlybmFtZShvcy5wYXRoLmRpcm5hbWUob3MucGF0
aC5kaXJuYW1lKHNlbGYuX3BvcnQucmVzdWx0c19kaXJlY3RvcnkoKSkpKQorICAgICAgICAgICAg
c2VsZi5fdGVzdF9yZXN1bHRzX3JlYWRlciA9IEpTQ1Rlc3RSZXN1bHRzUmVhZGVyKHNlbGYuX3Rv
b2wsIGRpcikKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYuX3Rlc3RfcmVzdWx0c19y
ZWFkZXIgPSBMYXlvdXRUZXN0UmVzdWx0c1JlYWRlcihzZWxmLl90b29sLCBzZWxmLl9wb3J0LnJl
c3VsdHNfZGlyZWN0b3J5KCksIHNlbGYuX2xvZ19kaXJlY3RvcnkoKSkKIAogICAgIGRlZiBfZmFp
bGluZ190ZXN0c19tZXNzYWdlKHNlbGYsIHRhc2ssIHBhdGNoKToKICAgICAgICAgcmVzdWx0cyA9
IHRhc2sucmVzdWx0c19mcm9tX3BhdGNoX3Rlc3RfcnVuKHBhdGNoKQpAQCAtNzksOCArODcsMTIg
QEAgY2xhc3MgQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0oQWJzdHJhY3RSZXZpZXdRdWV1ZSwg
RWFybHlXYXJuaW5nU3lzdGVtVGFza0RlbGUKICAgICAgICAgICAgIHRvb2wuYnVncy5hZGRfY2Nf
dG9fYnVnKHBhdGNoLmJ1Z19pZCgpLCBzZWxmLndhdGNoZXJzKQogICAgICAgICB0b29sLmJ1Z3Mu
c2V0X2ZsYWdfb25fYXR0YWNobWVudChwYXRjaC5pZCgpLCAiY29tbWl0LXF1ZXVlIiwgIi0iLCBt
ZXNzYWdlKQogCisgICAgIyBUaGlzIGV4aXN0cyBmb3IgbW9ja2luZworICAgIGRlZiBfY3JlYXRl
X3Rhc2soc2VsZiwgcGF0Y2gpOgorICAgICAgICByZXR1cm4gRWFybHlXYXJuaW5nU3lzdGVtVGFz
ayhzZWxmLCBwYXRjaCwgc2VsZi5fb3B0aW9ucy5ydW5fdGVzdHMpCisKICAgICBkZWYgcmV2aWV3
X3BhdGNoKHNlbGYsIHBhdGNoKToKLSAgICAgICAgdGFzayA9IEVhcmx5V2FybmluZ1N5c3RlbVRh
c2soc2VsZiwgcGF0Y2gsIHNlbGYuX29wdGlvbnMucnVuX3Rlc3RzKQorICAgICAgICB0YXNrID0g
c2VsZi5fY3JlYXRlX3Rhc2socGF0Y2gpCiAgICAgICAgIHRyeToKICAgICAgICAgICAgIHN1Y2Nl
ZWRlZCA9IHRhc2sucnVuKCkKICAgICAgICAgICAgIGlmIG5vdCBzdWNjZWVkZWQ6CkBAIC05Myw2
ICsxMDUsMTAgQEAgY2xhc3MgQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0oQWJzdHJhY3RSZXZp
ZXdRdWV1ZSwgRWFybHlXYXJuaW5nU3lzdGVtVGFza0RlbGUKICAgICAgICAgZXhjZXB0IFVuYWJs
ZVRvQXBwbHlQYXRjaCwgZToKICAgICAgICAgICAgIHNlbGYuX2RpZF9lcnJvcihwYXRjaCwgIiVz
IHVuYWJsZSB0byBhcHBseSBwYXRjaC4iICUgc2VsZi5uYW1lKQogICAgICAgICAgICAgcmV0dXJu
IEZhbHNlCisgICAgICAgIGV4Y2VwdCBQYXRjaElzTm90QXBwbGljYWJsZSwgZToKKyAgICAgICAg
ICAgIHNlbGYuX3VwZGF0ZV9zdGF0dXMoIlBhdGNoIG5vdCBhcHBsaWNhYmxlIHRvICVzLiIgJSBz
ZWxmLm5hbWUsIHBhdGNoKQorICAgICAgICAgICAgc2VsZi5fcmVsZWFzZV93b3JrX2l0ZW0ocGF0
Y2gpCisgICAgICAgICAgICByZXR1cm4gRmFsc2UKICAgICAgICAgZXhjZXB0IFNjcmlwdEVycm9y
LCBlOgogICAgICAgICAgICAgc2VsZi5fcG9zdF9yZWplY3RfbWVzc2FnZV9vbl9idWcoc2VsZi5f
dG9vbCwgcGF0Y2gsIHRhc2suZmFpbHVyZV9zdGF0dXNfaWQsIHNlbGYuX2ZhaWxpbmdfdGVzdHNf
bWVzc2FnZSh0YXNrLCBwYXRjaCkpCiAgICAgICAgICAgICByZXN1bHRzX2FyY2hpdmUgPSB0YXNr
LnJlc3VsdHNfYXJjaGl2ZV9mcm9tX3BhdGNoX3Rlc3RfcnVuKHBhdGNoKQpAQCAtMTE3LDE0ICsx
MzMsMTcgQEAgY2xhc3MgQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0oQWJzdHJhY3RSZXZpZXdR
dWV1ZSwgRWFybHlXYXJuaW5nU3lzdGVtVGFza0RlbGUKICAgICAgICAgcmV0dXJuIHNlbGYuX3Vw
ZGF0ZV9zdGF0dXMobWVzc2FnZSwgcGF0Y2g9cGF0Y2gsIHJlc3VsdHNfZmlsZT1mYWlsdXJlX2xv
ZykKIAogICAgIGRlZiB0ZXN0X3Jlc3VsdHMoc2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmLl9s
YXlvdXRfdGVzdF9yZXN1bHRzX3JlYWRlci5yZXN1bHRzKCkKKyAgICAgICAgcmV0dXJuIHNlbGYu
X3Rlc3RfcmVzdWx0c19yZWFkZXIucmVzdWx0cygpCiAKICAgICBkZWYgYXJjaGl2ZV9sYXN0X3Rl
c3RfcmVzdWx0cyhzZWxmLCBwYXRjaCk6Ci0gICAgICAgIHJldHVybiBzZWxmLl9sYXlvdXRfdGVz
dF9yZXN1bHRzX3JlYWRlci5hcmNoaXZlKHBhdGNoKQorICAgICAgICByZXR1cm4gc2VsZi5fdGVz
dF9yZXN1bHRzX3JlYWRlci5hcmNoaXZlKHBhdGNoKQogCiAgICAgZGVmIGJ1aWxkX3N0eWxlKHNl
bGYpOgogICAgICAgICByZXR1cm4gc2VsZi5fYnVpbGRfc3R5bGUKIAorICAgIGRlZiBncm91cChz
ZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX2dyb3VwCisKICAgICBkZWYgcmVmZXRjaF9wYXRj
aChzZWxmLCBwYXRjaCk6CiAgICAgICAgIHJldHVybiBzZWxmLl90b29sLmJ1Z3MuZmV0Y2hfYXR0
YWNobWVudChwYXRjaC5pZCgpKQogCkBAIC0xNDksMTIgKzE2OCwxMyBAQCBjbGFzcyBBYnN0cmFj
dEVhcmx5V2FybmluZ1N5c3RlbShBYnN0cmFjdFJldmlld1F1ZXVlLCBFYXJseVdhcm5pbmdTeXN0
ZW1UYXNrRGVsZQogCiAgICAgICAgIGNsYXNzZXMgPSBbXQogICAgICAgICBmb3IgbmFtZSwgY29u
ZmlnIGluIGV3c2VzLml0ZXJpdGVtcygpOgotICAgICAgICAgICAgY2xhc3Nlcy5hcHBlbmQodHlw
ZShuYW1lLmVuY29kZSgndXRmLTgnKS50cmFuc2xhdGUoTm9uZSwgJyAtJyksIChBYnN0cmFjdEVh
cmx5V2FybmluZ1N5c3RlbSwpLCB7CisgICAgICAgICAgICBjbGFzc2VzLmFwcGVuZCh0eXBlKG5h
bWUuZW5jb2RlKCd1dGYtOCcpLnRyYW5zbGF0ZShOb25lLCAnIC0nKSwgKGNscywpLCB7CiAgICAg
ICAgICAgICAgICAgJ25hbWUnOiBjb25maWcuZ2V0KCduYW1lJywgY29uZmlnWydwb3J0J10gKyAn
LWV3cycpLAogICAgICAgICAgICAgICAgICdwb3J0X25hbWUnOiBjb25maWdbJ3BvcnQnXSwKICAg
ICAgICAgICAgICAgICAnYXJjaGl0ZWN0dXJlJzogY29uZmlnLmdldCgnYXJjaGl0ZWN0dXJlJywg
Tm9uZSksCiAgICAgICAgICAgICAgICAgJ19idWlsZF9zdHlsZSc6IGNvbmZpZy5nZXQoJ3N0eWxl
JywgInJlbGVhc2UiKSwKICAgICAgICAgICAgICAgICAnd2F0Y2hlcnMnOiBjb25maWcuZ2V0KCd3
YXRjaGVycycsIFtdKSwKICAgICAgICAgICAgICAgICAncnVuX3Rlc3RzJzogY29uZmlnLmdldCgn
cnVuVGVzdHMnLCBjbHMucnVuX3Rlc3RzKSwKKyAgICAgICAgICAgICAgICAnX2dyb3VwJzogY29u
ZmlnLmdldCgnZ3JvdXAnLCBOb25lKSwKICAgICAgICAgICAgIH0pKQogICAgICAgICByZXR1cm4g
Y2xhc3NlcwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRz
L2Vhcmx5d2FybmluZ3N5c3RlbV91bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
dG9vbC9jb21tYW5kcy9lYXJseXdhcm5pbmdzeXN0ZW1fdW5pdHRlc3QucHkKaW5kZXggMDg4ODc4
MTNjZTJlOTNhOGVjOWRhMzc2MzZlY2JkZTllZmYzYzllNy4uMmRlMGZkYjI2ZDM2YTYyODBiMTg4
ZDRiYjQzNzJkY2I1OGUwNjBiNSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90
b29sL2NvbW1hbmRzL2Vhcmx5d2FybmluZ3N5c3RlbV91bml0dGVzdC5weQorKysgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZWFybHl3YXJuaW5nc3lzdGVtX3VuaXR0ZXN0
LnB5CkBAIC0xLDQgKzEsNSBAQAogIyBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTI5LDYg
KzMwLDcgQEAKIGZyb20gd2Via2l0cHkudGhpcmRwYXJ0eS5tb2NrIGltcG9ydCBNb2NrCiBmcm9t
IHdlYmtpdHB5LmNvbW1vbi5ob3N0IGltcG9ydCBIb3N0CiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5o
b3N0X21vY2sgaW1wb3J0IE1vY2tIb3N0Citmcm9tIHdlYmtpdHB5LmNvbW1vbi5uZXQuanNjdGVz
dHJlc3VsdHMgaW1wb3J0IEpTQ1Rlc3RSZXN1bHRzCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5uZXQu
bGF5b3V0dGVzdHJlc3VsdHMgaW1wb3J0IExheW91dFRlc3RSZXN1bHRzCiBmcm9tIHdlYmtpdHB5
LmNvbW1vbi5zeXN0ZW0ub3V0cHV0Y2FwdHVyZSBpbXBvcnQgT3V0cHV0Q2FwdHVyZQogZnJvbSB3
ZWJraXRweS5sYXlvdXRfdGVzdHMubW9kZWxzIGltcG9ydCB0ZXN0X3Jlc3VsdHMKQEAgLTQ3LDYg
KzQ5LDcgQEAgY2xhc3MgQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW1UZXN0KFF1ZXVlc1Rlc3Qp
OgogICAgICAgICBjbGFzcyBUZXN0RVdTKEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtKToKICAg
ICAgICAgICAgIHBvcnRfbmFtZSA9ICJ3aW4iICAjIE5lZWRzIHRvIGJlIGEgcG9ydCB3aGljaCBw
b3J0L2ZhY3RvcnkgdW5kZXJzdGFuZHMuCiAgICAgICAgICAgICBfYnVpbGRfc3R5bGUgPSBOb25l
CisgICAgICAgICAgICBfZ3JvdXAgPSBOb25lCiAKICAgICAgICAgZXdzID0gVGVzdEVXUygpCiAg
ICAgICAgIGV3cy5iaW5kX3RvX3Rvb2woTW9ja1Rvb2woKSkKQEAgLTYwLDQzICs2Myw4MSBAQCBj
bGFzcyBBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbVRlc3QoUXVldWVzVGVzdCk6CiAgICAgICAg
IHBhdGNoID0gZXdzLl90b29sLmJ1Z3MuZmV0Y2hfYXR0YWNobWVudCgxMDAwMCkKICAgICAgICAg
c2VsZi5hc3NlcnRNdWx0aUxpbmVFcXVhbChld3MuX2ZhaWxpbmdfdGVzdHNfbWVzc2FnZSh0YXNr
LCBwYXRjaCksICJOZXcgZmFpbGluZyB0ZXN0czpcbmZvby5odG1sXG5iYXIuaHRtbCIpCiAKKyAg
ICBkZWYgdGVzdF9mYWlsaW5nX2pzY190ZXN0c19tZXNzYWdlKHNlbGYpOgorICAgICAgICAjIE5l
ZWRlZCB0byBkZWZpbmUgcG9ydF9uYW1lLCB1c2VkIGluIEFic3RyYWN0RWFybHlXYXJuaW5nU3lz
dGVtLl9faW5pdF9fCisgICAgICAgIGNsYXNzIFRlc3RFV1MoQWJzdHJhY3RFYXJseVdhcm5pbmdT
eXN0ZW0pOgorICAgICAgICAgICAgcG9ydF9uYW1lID0gIm1hYyIgICMgTmVlZHMgdG8gYmUgYSBw
b3J0IHdoaWNoIHBvcnQvZmFjdG9yeSB1bmRlcnN0YW5kcy4KKyAgICAgICAgICAgIF9idWlsZF9z
dHlsZSA9IE5vbmUKKyAgICAgICAgICAgIF9ncm91cCA9ICJqc2MiCisKKyAgICAgICAgZXdzID0g
VGVzdEVXUygpCisgICAgICAgIGV3cy5iaW5kX3RvX3Rvb2woTW9ja1Rvb2woKSkKKyAgICAgICAg
ZXdzLmhvc3QgPSBNb2NrSG9zdCgpCisgICAgICAgIGV3cy5fb3B0aW9ucyA9IE1vY2tPcHRpb25z
KHBvcnQ9Tm9uZSwgY29uZmlybT1GYWxzZSkKKyAgICAgICAgT3V0cHV0Q2FwdHVyZSgpLmFzc2Vy
dF9vdXRwdXRzKHNlbGYsIGV3cy5iZWdpbl93b3JrX3F1ZXVlLCBleHBlY3RlZF9sb2dzPXNlbGYu
X2RlZmF1bHRfYmVnaW5fd29ya19xdWV1ZV9sb2dzKGV3cy5uYW1lKSkKKyAgICAgICAgdGFzayA9
IE1vY2soKQorICAgICAgICB0YXNrLnJlc3VsdHNfZnJvbV9wYXRjaF90ZXN0X3J1biA9IGxhbWJk
YSBhOiBKU0NUZXN0UmVzdWx0cyhGYWxzZSwgWyJlczYueWFtbC9lczYvdHlwZWRfYXJyYXlzX0lu
dDhBcnJheS5qcy5kZWZhdWx0IiwgImVzNi55YW1sL2VzNi90eXBlZF9hcnJheXNfVWludDhBcnJh
eS5qcy5kZWZhdWx0Il0pCisgICAgICAgIHBhdGNoID0gZXdzLl90b29sLmJ1Z3MuZmV0Y2hfYXR0
YWNobWVudCgxMDAwMCkKKyAgICAgICAgc2VsZi5hc3NlcnRNdWx0aUxpbmVFcXVhbChld3MuX2Zh
aWxpbmdfdGVzdHNfbWVzc2FnZSh0YXNrLCBwYXRjaCksICJOZXcgZmFpbGluZyB0ZXN0czpcbmVz
Ni55YW1sL2VzNi90eXBlZF9hcnJheXNfSW50OEFycmF5LmpzLmRlZmF1bHRcbmVzNi55YW1sL2Vz
Ni90eXBlZF9hcnJheXNfVWludDhBcnJheS5qcy5kZWZhdWx0XG5hcGlUZXN0cyIpCisKKworY2xh
c3MgTW9ja0Vhcmx5V2FybmluZ1N5c3RlbVRhc2tGb3JJbmNvbmNsdXNpdmVSZXN1bHRzKEVhcmx5
V2FybmluZ1N5c3RlbVRhc2spOgorICAgIGRlZiBfdGVzdF9wYXRjaChzZWxmKToKKyAgICAgICAg
c2VsZi5fdGVzdCgpCisgICAgICAgIHJldHVybiBGYWxzZQorCisKK2NsYXNzIE1vY2tBYnN0cmFj
dEVhcmx5V2FybmluZ1N5c3RlbUZvckluY29uY2x1c2l2ZVJlc3VsdHMoQWJzdHJhY3RFYXJseVdh
cm5pbmdTeXN0ZW0pOgorICAgIGRlZiB0ZXN0X3Jlc3VsdHMoc2VsZik6CisgICAgICAgIHJldHVy
biBOb25lCisKKyAgICBkZWYgX2NyZWF0ZV90YXNrKHNlbGYsIHBhdGNoKToKKyAgICAgICAgdGFz
ayA9IE1vY2tFYXJseVdhcm5pbmdTeXN0ZW1UYXNrRm9ySW5jb25jbHVzaXZlUmVzdWx0cyhzZWxm
LCBwYXRjaCwgc2VsZi5fb3B0aW9ucy5ydW5fdGVzdHMpCisgICAgICAgIHJldHVybiB0YXNrCisK
IAogY2xhc3MgRWFybHlXYXJuaW5nU3lzdGVtVGVzdChRdWV1ZXNUZXN0KToKLSAgICBkZWYgX2Rl
ZmF1bHRfZXhwZWN0ZWRfbG9ncyhzZWxmLCBld3MpOgorICAgIGRlZiBfZGVmYXVsdF9leHBlY3Rl
ZF9sb2dzKHNlbGYsIGV3cywgY29uY2x1c2l2ZSk6CiAgICAgICAgIHN0cmluZ19yZXBsYWNlbWVu
dHMgPSB7CiAgICAgICAgICAgICAibmFtZSI6IGV3cy5uYW1lLAogICAgICAgICAgICAgInBvcnQi
OiBld3MucG9ydF9uYW1lLAogICAgICAgICAgICAgImFyY2hpdGVjdHVyZSI6ICIgLS1hcmNoaXRl
Y3R1cmU9JXMiICUgZXdzLmFyY2hpdGVjdHVyZSBpZiBld3MuYXJjaGl0ZWN0dXJlIGVsc2UgIiIs
CiAgICAgICAgICAgICAiYnVpbGRfc3R5bGUiOiBld3MuYnVpbGRfc3R5bGUoKSwKKyAgICAgICAg
ICAgICJncm91cCI6IGV3cy5ncm91cCgpLAogICAgICAgICB9CiAgICAgICAgIGlmIGV3cy5ydW5f
dGVzdHM6Ci0gICAgICAgICAgICBydW5fdGVzdHNfbGluZSA9ICJSdW5uaW5nOiB3ZWJraXQtcGF0
Y2ggLS1zdGF0dXMtaG9zdD1leGFtcGxlLmNvbSBidWlsZC1hbmQtdGVzdCAtLW5vLWNsZWFuIC0t
bm8tdXBkYXRlIC0tdGVzdCAtLW5vbi1pbnRlcmFjdGl2ZSAtLWJ1aWxkLXN0eWxlPSUoYnVpbGRf
c3R5bGUpcyAtLXBvcnQ9JShwb3J0KXMlKGFyY2hpdGVjdHVyZSlzXG4iICUgc3RyaW5nX3JlcGxh
Y2VtZW50cworICAgICAgICAgICAgcnVuX3Rlc3RzX2xpbmUgPSAiUnVubmluZzogd2Via2l0LXBh
dGNoIC0tc3RhdHVzLWhvc3Q9ZXhhbXBsZS5jb20gYnVpbGQtYW5kLXRlc3QgLS1uby1jbGVhbiAt
LW5vLXVwZGF0ZSAtLXRlc3QgLS1ub24taW50ZXJhY3RpdmUgLS1idWlsZC1zdHlsZT0lKGJ1aWxk
X3N0eWxlKXMgLS1ncm91cD0lKGdyb3VwKXMgLS1wb3J0PSUocG9ydClzJShhcmNoaXRlY3R1cmUp
c1xuIiAlIHN0cmluZ19yZXBsYWNlbWVudHMKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIHJ1
bl90ZXN0c19saW5lID0gIiIKICAgICAgICAgc3RyaW5nX3JlcGxhY2VtZW50c1sncnVuX3Rlc3Rz
X2xpbmUnXSA9IHJ1bl90ZXN0c19saW5lCiAKKyAgICAgICAgaWYgY29uY2x1c2l2ZToKKyAgICAg
ICAgICAgIHJlc3VsdF9saW5lcyA9ICJNT0NLOiB1cGRhdGVfc3RhdHVzOiAlKG5hbWUpcyBQYXNz
XG5NT0NLOiByZWxlYXNlX3dvcmtfaXRlbTogJShuYW1lKXMgMTAwMDBcbiIgJSBzdHJpbmdfcmVw
bGFjZW1lbnRzCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXN1bHRfbGluZXMgPSAiTU9D
SzogcmVsZWFzZV9sb2NrOiAlKG5hbWUpcyAxMDAwMFxuIiAlIHN0cmluZ19yZXBsYWNlbWVudHMK
KyAgICAgICAgc3RyaW5nX3JlcGxhY2VtZW50c1sncmVzdWx0X2xpbmVzJ10gPSByZXN1bHRfbGlu
ZXMKKwogICAgICAgICBleHBlY3RlZF9sb2dzID0gewogICAgICAgICAgICAgImJlZ2luX3dvcmtf
cXVldWUiOiBzZWxmLl9kZWZhdWx0X2JlZ2luX3dvcmtfcXVldWVfbG9ncyhld3MubmFtZSksCiAg
ICAgICAgICAgICAicHJvY2Vzc193b3JrX2l0ZW0iOiAiIiJNT0NLOiB1cGRhdGVfc3RhdHVzOiAl
KG5hbWUpcyBTdGFydGVkIHByb2Nlc3NpbmcgcGF0Y2gKIFJ1bm5pbmc6IHdlYmtpdC1wYXRjaCAt
LXN0YXR1cy1ob3N0PWV4YW1wbGUuY29tIGNsZWFuIC0tcG9ydD0lKHBvcnQpcyUoYXJjaGl0ZWN0
dXJlKXMKIFJ1bm5pbmc6IHdlYmtpdC1wYXRjaCAtLXN0YXR1cy1ob3N0PWV4YW1wbGUuY29tIHVw
ZGF0ZSAtLXBvcnQ9JShwb3J0KXMlKGFyY2hpdGVjdHVyZSlzCiBSdW5uaW5nOiB3ZWJraXQtcGF0
Y2ggLS1zdGF0dXMtaG9zdD1leGFtcGxlLmNvbSBhcHBseS1hdHRhY2htZW50IC0tbm8tdXBkYXRl
IC0tbm9uLWludGVyYWN0aXZlIDEwMDAwIC0tcG9ydD0lKHBvcnQpcyUoYXJjaGl0ZWN0dXJlKXMK
LVJ1bm5pbmc6IHdlYmtpdC1wYXRjaCAtLXN0YXR1cy1ob3N0PWV4YW1wbGUuY29tIGJ1aWxkIC0t
bm8tY2xlYW4gLS1uby11cGRhdGUgLS1idWlsZC1zdHlsZT0lKGJ1aWxkX3N0eWxlKXMgLS1wb3J0
PSUocG9ydClzJShhcmNoaXRlY3R1cmUpcwotJShydW5fdGVzdHNfbGluZSlzTU9DSzogdXBkYXRl
X3N0YXR1czogJShuYW1lKXMgUGFzcwotTU9DSzogcmVsZWFzZV93b3JrX2l0ZW06ICUobmFtZSlz
IDEwMDAwCi0iIiIgJSBzdHJpbmdfcmVwbGFjZW1lbnRzLAorUnVubmluZzogd2Via2l0LXBhdGNo
IC0tc3RhdHVzLWhvc3Q9ZXhhbXBsZS5jb20gY2hlY2stcGF0Y2gtcmVsZXZhbmNlIC0tZ3JvdXA9
JShncm91cClzIC0tcG9ydD0lKHBvcnQpcyUoYXJjaGl0ZWN0dXJlKXMKK1J1bm5pbmc6IHdlYmtp
dC1wYXRjaCAtLXN0YXR1cy1ob3N0PWV4YW1wbGUuY29tIGJ1aWxkIC0tbm8tY2xlYW4gLS1uby11
cGRhdGUgLS1idWlsZC1zdHlsZT0lKGJ1aWxkX3N0eWxlKXMgLS1ncm91cD0lKGdyb3VwKXMgLS1w
b3J0PSUocG9ydClzJShhcmNoaXRlY3R1cmUpcworJShydW5fdGVzdHNfbGluZSlzJShyZXN1bHRf
bGluZXMpcyIiIiAlIHN0cmluZ19yZXBsYWNlbWVudHMsCiAgICAgICAgICAgICAiaGFuZGxlX3Vu
ZXhwZWN0ZWRfZXJyb3IiOiAiTW9jayBlcnJvciBtZXNzYWdlXG4iLAogICAgICAgICAgICAgImhh
bmRsZV9zY3JpcHRfZXJyb3IiOiAiU2NyaXB0RXJyb3IgZXJyb3IgbWVzc2FnZVxuXG5NT0NLIG91
dHB1dFxuIiwKICAgICAgICAgfQogICAgICAgICByZXR1cm4gZXhwZWN0ZWRfbG9ncwogCi0gICAg
ZGVmIF90ZXN0X2V3cyhzZWxmLCBld3MpOgorICAgIGRlZiBfdGVzdF9ld3Moc2VsZiwgZXdzLCBy
ZXN1bHRzX2FyZV9jb25jbHVzaXZlPVRydWUpOgogICAgICAgICBld3MuYmluZF90b190b29sKE1v
Y2tUb29sKCkpCiAgICAgICAgIGV3cy5ob3N0ID0gTW9ja0hvc3QoKQogICAgICAgICBvcHRpb25z
ID0gTW9jaygpCiAgICAgICAgIG9wdGlvbnMucG9ydCA9IE5vbmUKICAgICAgICAgb3B0aW9ucy5y
dW5fdGVzdHMgPSBld3MucnVuX3Rlc3RzCi0gICAgICAgIHNlbGYuYXNzZXJ0X3F1ZXVlX291dHB1
dHMoZXdzLCBleHBlY3RlZF9sb2dzPXNlbGYuX2RlZmF1bHRfZXhwZWN0ZWRfbG9ncyhld3MpLCBv
cHRpb25zPW9wdGlvbnMpCisgICAgICAgIHNlbGYuYXNzZXJ0X3F1ZXVlX291dHB1dHMoZXdzLCBl
eHBlY3RlZF9sb2dzPXNlbGYuX2RlZmF1bHRfZXhwZWN0ZWRfbG9ncyhld3MsIHJlc3VsdHNfYXJl
X2NvbmNsdXNpdmUpLCBvcHRpb25zPW9wdGlvbnMpCiAKICAgICBkZWYgdGVzdF9ld3NlcyhzZWxm
KToKICAgICAgICAgY2xhc3NlcyA9IEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtLmxvYWRfZXdz
X2NsYXNzZXMoKQpAQCAtMTA0LDMgKzE0NSwxMiBAQCBNT0NLOiByZWxlYXNlX3dvcmtfaXRlbTog
JShuYW1lKXMgMTAwMDAKICAgICAgICAgc2VsZi5tYXhEaWZmID0gTm9uZQogICAgICAgICBmb3Ig
ZXdzX2NsYXNzIGluIGNsYXNzZXM6CiAgICAgICAgICAgICBzZWxmLl90ZXN0X2V3cyhld3NfY2xh
c3MoKSkKKworICAgICMgVGhpcyBtdXN0IHVzZSB0aGUgTW9jayBFV1MgY2xhc3NlcyBkZWZpbmVk
IGFib3ZlCisgICAgZGVmIHRlc3RfaW5jb25jbHVzaXZlX3Rlc3RfcmVzdWx0cyhzZWxmKToKKyAg
ICAgICAgY2xhc3NlcyA9IE1vY2tBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbUZvckluY29uY2x1
c2l2ZVJlc3VsdHMubG9hZF9ld3NfY2xhc3NlcygpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShj
bGFzc2VzKQorICAgICAgICBzZWxmLm1heERpZmYgPSBOb25lCisgICAgICAgIHRlc3RfY2xhc3Nl
cyA9IGZpbHRlcihsYW1iZGEgeDogeC5ydW5fdGVzdHMsIGNsYXNzZXMpCisgICAgICAgIGZvciBl
d3NfY2xhc3MgaW4gdGVzdF9jbGFzc2VzOgorICAgICAgICAgICAgc2VsZi5fdGVzdF9ld3MoZXdz
X2NsYXNzKCksIEZhbHNlKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29s
L3N0ZXBzL19faW5pdF9fLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL19f
aW5pdF9fLnB5CmluZGV4IDM1NmFjYWIwM2FkODI3NGNlOWJkYTY4NTg4NjRmZjE5YjY0ZjRhMGEu
LjZjOWMwOWFjNTJhMzg2YjlmMGNmMzYzYjljMDNiYmFhNGMwMDM4NjEgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9fX2luaXRfXy5weQorKysgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvX19pbml0X18ucHkKQEAgLTEsNCArMSw1IEBACiAj
IENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBD
b3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtMzMsNiArMzQsNyBAQCBmcm9tIHdlYmtpdHB5
LnRvb2wuc3RlcHMuYXBwbHlwYXRjaHdpdGhsb2NhbGNvbW1pdCBpbXBvcnQgQXBwbHlQYXRjaFdp
dGhMb2NhbENvbQogZnJvbSB3ZWJraXRweS50b29sLnN0ZXBzLmFwcGx5d2F0Y2hsaXN0IGltcG9y
dCBBcHBseVdhdGNoTGlzdAogZnJvbSB3ZWJraXRweS50b29sLnN0ZXBzLmF0dGFjaHRvYnVnIGlt
cG9ydCBBdHRhY2hUb0J1ZwogZnJvbSB3ZWJraXRweS50b29sLnN0ZXBzLmJ1aWxkIGltcG9ydCBC
dWlsZAorZnJvbSB3ZWJraXRweS50b29sLnN0ZXBzLmNoZWNrcGF0Y2hyZWxldmFuY2UgaW1wb3J0
IENoZWNrUGF0Y2hSZWxldmFuY2UKIGZyb20gd2Via2l0cHkudG9vbC5zdGVwcy5jaGVja3N0eWxl
IGltcG9ydCBDaGVja1N0eWxlCiBmcm9tIHdlYmtpdHB5LnRvb2wuc3RlcHMuY2xlYW53b3JraW5n
ZGlyZWN0b3J5IGltcG9ydCBDbGVhbldvcmtpbmdEaXJlY3RvcnkKIGZyb20gd2Via2l0cHkudG9v
bC5zdGVwcy5jbG9zZWJ1ZyBpbXBvcnQgQ2xvc2VCdWcKZGlmZiAtLWdpdCBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvdG9vbC9zdGVwcy9idWlsZC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
dG9vbC9zdGVwcy9idWlsZC5weQppbmRleCBmNzRmZmNlNzA5NDFjNjFlNTk2NzkyZTRjNjBkY2Q3
ZjhiNjVlOWVjLi4zYzZjZjBiMWRlMDE4YzEzMmI3Zjg2ZGEyY2I5MDdlMmZkYTA2N2FlIDEwMDY0
NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvYnVpbGQucHkKKysrIGIv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL2J1aWxkLnB5CkBAIC0xLDQgKzEsNSBA
QAogIyBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyMgQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMK
ICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTQxLDI4ICs0MiwzNyBAQCBjbGFzcyBC
dWlsZChBYnN0cmFjdFN0ZXApOgogICAgICAgICAgICAgT3B0aW9ucy5idWlsZCwKICAgICAgICAg
ICAgIE9wdGlvbnMucXVpZXQsCiAgICAgICAgICAgICBPcHRpb25zLmJ1aWxkX3N0eWxlLAorICAg
ICAgICAgICAgT3B0aW9ucy5ncm91cCwKICAgICAgICAgXQogCi0gICAgZGVmIGJ1aWxkKHNlbGYs
IGJ1aWxkX3N0eWxlKToKKyAgICBkZWYgYnVpbGQoc2VsZiwgYnVpbGRfc3R5bGUsIGdyb3VwKToK
ICAgICAgICAgZW52aXJvbm1lbnQgPSBzZWxmLl90b29sLmNvcHlfY3VycmVudF9lbnZpcm9ubWVu
dCgpCiAgICAgICAgIGVudmlyb25tZW50LmRpc2FibGVfZ2NjX3NtYXJ0cXVvdGVzKCkKICAgICAg
ICAgZW52aXJvbm1lbnQuZGlzYWJsZV9qaGJ1aWxkX1ZUMTAwX291dHB1dCgpCiAgICAgICAgIGVu
diA9IGVudmlyb25tZW50LnRvX2RpY3Rpb25hcnkoKQogCi0gICAgICAgIGJ1aWxkX3dlYmtpdF9j
b21tYW5kID0gc2VsZi5fdG9vbC5kZXByZWNhdGVkX3BvcnQoKS5idWlsZF93ZWJraXRfY29tbWFu
ZChidWlsZF9zdHlsZT1idWlsZF9zdHlsZSkKKyAgICAgICAgaWYgZ3JvdXAgPT0gImpzYyI6Cisg
ICAgICAgICAgICBidWlsZF9jb21tYW5kID0gc2VsZi5fdG9vbC5kZXByZWNhdGVkX3BvcnQoKS5i
dWlsZF9qc2NfY29tbWFuZChidWlsZF9zdHlsZT1idWlsZF9zdHlsZSkKKyAgICAgICAgZWxzZToK
KyAgICAgICAgICAgIGJ1aWxkX2NvbW1hbmQgPSBzZWxmLl90b29sLmRlcHJlY2F0ZWRfcG9ydCgp
LmJ1aWxkX3dlYmtpdF9jb21tYW5kKGJ1aWxkX3N0eWxlPWJ1aWxkX3N0eWxlKQogCiAgICAgICAg
IGlmIHNlbGYuX29wdGlvbnMuYXJjaGl0ZWN0dXJlOgotICAgICAgICAgICAgYnVpbGRfd2Via2l0
X2NvbW1hbmQgKz0gWydBUkNIUz0lcycgJSBzZWxmLl9vcHRpb25zLmFyY2hpdGVjdHVyZV0KKyAg
ICAgICAgICAgIGJ1aWxkX2NvbW1hbmQgKz0gWydBUkNIUz0lcycgJSBzZWxmLl9vcHRpb25zLmFy
Y2hpdGVjdHVyZV0KIAotICAgICAgICBzZWxmLl90b29sLmV4ZWN1dGl2ZS5ydW5fYW5kX3Rocm93
X2lmX2ZhaWwoYnVpbGRfd2Via2l0X2NvbW1hbmQsIHNlbGYuX29wdGlvbnMucXVpZXQsCisgICAg
ICAgIHNlbGYuX3Rvb2wuZXhlY3V0aXZlLnJ1bl9hbmRfdGhyb3dfaWZfZmFpbChidWlsZF9jb21t
YW5kLCBzZWxmLl9vcHRpb25zLnF1aWV0LAogICAgICAgICAgICAgY3dkPXNlbGYuX3Rvb2wuc2Nt
KCkuY2hlY2tvdXRfcm9vdCwgZW52PWVudikKIAogICAgIGRlZiBydW4oc2VsZiwgc3RhdGUpOgog
ICAgICAgICBpZiBub3Qgc2VsZi5fb3B0aW9ucy5idWlsZDoKICAgICAgICAgICAgIHJldHVybgog
ICAgICAgICBfbG9nLmluZm8oIkJ1aWxkaW5nIFdlYktpdCIpCisKKyAgICAgICAgZ3JvdXAgPSBO
b25lCisgICAgICAgIGlmIGhhc2F0dHIoc2VsZi5fb3B0aW9ucywgJ2dyb3VwJyk6CisgICAgICAg
ICAgICBncm91cCA9IHNlbGYuX29wdGlvbnMuZ3JvdXAKKwogICAgICAgICBpZiBzZWxmLl9vcHRp
b25zLmJ1aWxkX3N0eWxlID09ICJib3RoIjoKLSAgICAgICAgICAgIHNlbGYuYnVpbGQoImRlYnVn
IikKLSAgICAgICAgICAgIHNlbGYuYnVpbGQoInJlbGVhc2UiKQorICAgICAgICAgICAgc2VsZi5i
dWlsZCgiZGVidWciLCBncm91cCkKKyAgICAgICAgICAgIHNlbGYuYnVpbGQoInJlbGVhc2UiLCBn
cm91cCkKICAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHNlbGYuYnVpbGQoc2VsZi5fb3B0aW9u
cy5idWlsZF9zdHlsZSkKKyAgICAgICAgICAgIHNlbGYuYnVpbGQoc2VsZi5fb3B0aW9ucy5idWls
ZF9zdHlsZSwgZ3JvdXApCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wv
c3RlcHMvY2hlY2twYXRjaHJlbGV2YW5jZS5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9v
bC9zdGVwcy9jaGVja3BhdGNocmVsZXZhbmNlLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgyZjc0NWUzNGRiOWQ2
OWIyNDQ1MzQ4ODQ0Njg1OTY2ZWE2NjMyNTIKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvY2hlY2twYXRjaHJlbGV2YW5jZS5weQpAQCAtMCwwICsx
LDc0IEBACisjIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyMgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQK
KyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorIyBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisj
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SCisjIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisjIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksCisjIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK2ltcG9ydCBs
b2dnaW5nCitpbXBvcnQgcmUKKworZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmV4ZWN1dGl2
ZSBpbXBvcnQgU2NyaXB0RXJyb3IKK2Zyb20gd2Via2l0cHkudG9vbC5zdGVwcy5hYnN0cmFjdHN0
ZXAgaW1wb3J0IEFic3RyYWN0U3RlcAorZnJvbSB3ZWJraXRweS50b29sLnN0ZXBzLm9wdGlvbnMg
aW1wb3J0IE9wdGlvbnMKKworX2xvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKQorCisK
K2NsYXNzIENoZWNrUGF0Y2hSZWxldmFuY2UoQWJzdHJhY3RTdGVwKToKKyAgICBAY2xhc3NtZXRo
b2QKKyAgICBkZWYgb3B0aW9ucyhjbHMpOgorICAgICAgICByZXR1cm4gQWJzdHJhY3RTdGVwLm9w
dGlvbnMoKSArIFsKKyAgICAgICAgICAgIE9wdGlvbnMuZ3JvdXAsCisgICAgICAgIF0KKworICAg
IGpzY19wYXRocyA9IFsKKyAgICAgICAgIkpTVGVzdHMvIiwKKyAgICAgICAgIlNvdXJjZS9KYXZh
U2NyaXB0Q29yZS8iLAorICAgICAgICAiU291cmNlL1dURi8iCisgICAgICAgICJTb3VyY2UvYm1h
bGxvYy8iLAorICAgIF0KKworICAgIGRlZiBfZG9lc19jb250YWluX2NoYW5nZV9pbl9wYXRocyhz
ZWxmLCBmaWxlcywgcGF0dGVybnMpOgorICAgICAgICBmb3IgaXRlbSBpbiBmaWxlczoKKyAgICAg
ICAgICAgIGZvciBwYXR0ZXJuIGluIHBhdHRlcm5zOgorICAgICAgICAgICAgICAgIGlmIHJlLnNl
YXJjaChwYXR0ZXJuLCBpdGVtLCByZS5JR05PUkVDQVNFKToKKyAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIFRydWUKKworICAgICAgICByZXR1cm4gRmFsc2UKKworICAgIGRlZiBydW4oc2VsZiwg
c3RhdGUpOgorICAgICAgICBfbG9nLmluZm8oIkNoZWNraW5nIHJlbGV2YW5jZSBvZiBwYXRjaCIp
CisKKyAgICAgICAgZ3JvdXAgPSBOb25lCisgICAgICAgIGlmIGhhc2F0dHIoc2VsZi5fb3B0aW9u
cywgJ2dyb3VwJyk6CisgICAgICAgICAgICBncm91cCA9IHNlbGYuX29wdGlvbnMuZ3JvdXAKKwor
ICAgICAgICBjaGFuZ2VfbGlzdCA9IHNlbGYuX3Rvb2wuc2NtKCkuY2hhbmdlZF9maWxlcygpCisK
KyAgICAgICAgaWYgZ3JvdXAgPT0gImpzYyI6CisgICAgICAgICAgICByZWxldmFudCA9IHNlbGYu
X2RvZXNfY29udGFpbl9jaGFuZ2VfaW5fcGF0aHMoY2hhbmdlX2xpc3QsIHNlbGYuanNjX3BhdGhz
KQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmVsZXZhbnQgPSBUcnVlCisKKyAgICAgICAg
aWYgcmVsZXZhbnQgaXMgVHJ1ZToKKyAgICAgICAgICAgIF9sb2cuaW5mbygiVGhpcyBwYXRjaCBo
YXMgcmVsZXZhbnQgY2hhbmdlcy4iKQorICAgICAgICAgICAgcmV0dXJuIFRydWUKKyAgICAgICAg
ZWxzZToKKyAgICAgICAgICAgIF9sb2cuaW5mbygiVGhpcyBwYXRjaCBkb2VzIG5vdCBoYXZlIHJl
bGV2YW50IGNoYW5nZXMuIikKKyAgICAgICAgICAgIHJhaXNlIFNjcmlwdEVycm9yKG1lc3NhZ2U9
IlRoaXMgcGF0Y2ggZG9lcyBub3QgaGF2ZSByZWxldmFudCBjaGFuZ2VzLiIpCmRpZmYgLS1naXQg
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvb3B0aW9ucy5weSBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9vcHRpb25zLnB5CmluZGV4IDNlZjQ3ZDAwOGE1OWUw
NTBkNGNhMGM0ODc3ZGRkMWE2MDczMWE0MDkuLmY1ZTBkZWYzMjcxN2UzMDZlNjMxNjk4NDExMTBi
Mjg5OGI3MmExZjEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVw
cy9vcHRpb25zLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9vcHRp
b25zLnB5CkBAIC0xLDQgKzEsNSBAQAogIyBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTQ2
LDYgKzQ3LDcgQEAgY2xhc3MgT3B0aW9ucyhvYmplY3QpOgogICAgIGVtYWlsID0gbWFrZV9vcHRp
b24oIi0tZW1haWwiLCBhY3Rpb249InN0b3JlIiwgdHlwZT0ic3RyaW5nIiwgZGVzdD0iZW1haWwi
LCBoZWxwPSJFbWFpbCBhZGRyZXNzIHRvIHVzZSBpbiBDaGFuZ2VMb2dzLiIpCiAgICAgZm9yY2Vf
Y2xlYW4gPSBtYWtlX29wdGlvbigiLS1mb3JjZS1jbGVhbiIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIs
IGRlc3Q9ImZvcmNlX2NsZWFuIiwgZGVmYXVsdD1GYWxzZSwgaGVscD0iQ2xlYW4gd29ya2luZyBk
aXJlY3RvcnkgYmVmb3JlIGFwcGx5aW5nIHBhdGNoZXMgKHJlbW92ZXMgbG9jYWwgY2hhbmdlcyBh
bmQgY29tbWl0cykiKQogICAgIGdpdF9jb21taXQgPSBtYWtlX29wdGlvbigiLWciLCAiLS1naXQt
Y29tbWl0IiwgYWN0aW9uPSJzdG9yZSIsIGRlc3Q9ImdpdF9jb21taXQiLCBoZWxwPSJPcGVyYXRl
IG9uIGEgbG9jYWwgY29tbWl0LiBJZiBhIHJhbmdlLCB0aGUgY29tbWl0cyBhcmUgc3F1YXNoZWQg
aW50byBvbmUuIDxyZWY+Li4uLiBpbmNsdWRlcyB0aGUgd29ya2luZyBjb3B5IGNoYW5nZXMuIFVQ
U1RSRUFNIGNhbiBiZSB1c2VkIGZvciB0aGUgdXBzdHJlYW0vdHJhY2tpbmcgYnJhbmNoLiIpCisg
ICAgZ3JvdXAgPSBtYWtlX29wdGlvbigiLS1ncm91cCIsIGFjdGlvbj0ic3RvcmUiLCBkZXN0PSJn
cm91cCIsIGRlZmF1bHQ9Tm9uZSwgaGVscD0iIikKICAgICBsb2NhbF9jb21taXQgPSBtYWtlX29w
dGlvbigiLS1sb2NhbC1jb21taXQiLCBhY3Rpb249InN0b3JlX3RydWUiLCBkZXN0PSJsb2NhbF9j
b21taXQiLCBkZWZhdWx0PUZhbHNlLCBoZWxwPSJNYWtlIGEgbG9jYWwgY29tbWl0IGZvciBlYWNo
IGFwcGxpZWQgcGF0Y2giKQogICAgIG5vbl9pbnRlcmFjdGl2ZSA9IG1ha2Vfb3B0aW9uKCItLW5v
bi1pbnRlcmFjdGl2ZSIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGRlc3Q9Im5vbl9pbnRlcmFjdGl2
ZSIsIGRlZmF1bHQ9RmFsc2UsIGhlbHA9Ik5ldmVyIHByb21wdCB0aGUgdXNlciwgZmFpbCBhcyBm
YXN0IGFzIHBvc3NpYmxlLiIpCiAgICAgb2Jzb2xldGVfcGF0Y2hlcyA9IG1ha2Vfb3B0aW9uKCIt
LW5vLW9ic29sZXRlIiwgYWN0aW9uPSJzdG9yZV9mYWxzZSIsIGRlc3Q9Im9ic29sZXRlX3BhdGNo
ZXMiLCBkZWZhdWx0PVRydWUsIGhlbHA9IkRvIG5vdCBvYnNvbGV0ZSBvbGQgcGF0Y2hlcyBiZWZv
cmUgcG9zdGluZyB0aGlzIG9uZS4iKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS90b29sL3N0ZXBzL3J1bnRlc3RzLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0
ZXBzL3J1bnRlc3RzLnB5CmluZGV4IDc1ZDcyYmM5YWQyZjRlMzZkNDVmZGFjOTBmMTgxOTQ4MWNm
MDI4OGIuLjhiMjI0MGUyYThjNzA1Y2MyNzI1NDhmMTNlZGEyNjM5MzAyZjE5OGIgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9ydW50ZXN0cy5weQorKysgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvcnVudGVzdHMucHkKQEAgLTEsNCArMSw1
IEBACiAjIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorIyBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
IwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtNTMsOSArNTQsMTQgQEAgY2xhc3Mg
UnVuVGVzdHMoQWJzdHJhY3RTdGVwKToKICAgICAgICAgICAgIE9wdGlvbnMuaXRlcmF0ZV9vbl9u
ZXdfdGVzdHMsCiAgICAgICAgICAgICBPcHRpb25zLm5vbl9pbnRlcmFjdGl2ZSwKICAgICAgICAg
ICAgIE9wdGlvbnMucXVpZXQsCisgICAgICAgICAgICBPcHRpb25zLmdyb3VwLAogICAgICAgICBd
CiAKICAgICBkZWYgcnVuKHNlbGYsIHN0YXRlKToKKyAgICAgICAgaWYgaGFzYXR0cihzZWxmLl9v
cHRpb25zLCAiZ3JvdXAiKSBhbmQgc2VsZi5fb3B0aW9ucy5ncm91cCA9PSAianNjIjoKKyAgICAg
ICAgICAgIHNlbGYuX3J1bl9qYXZhc2NyaXB0Y29yZV90ZXN0cygpCisgICAgICAgICAgICByZXR1
cm4KKwogICAgICAgICBpZiBzZWxmLl9vcHRpb25zLml0ZXJhdGVfb25fbmV3X3Rlc3RzOgogICAg
ICAgICAgICAgX2xvZy5pbmZvKCJSdW5uaW5nIHJ1bi13ZWJraXQtdGVzdHMgb24gbmV3IHRlc3Rz
IikKICAgICAgICAgICAgIHNlbGYuX3J1bl93ZWJraXRfdGVzdHMoc2VsZi5fb3B0aW9ucy5pdGVy
YXRlX29uX25ld190ZXN0cykKQEAgLTE0MywzICsxNDksNyBAQCBjbGFzcyBSdW5UZXN0cyhBYnN0
cmFjdFN0ZXApOgogICAgICAgICAgICAgYXJncy5hcHBlbmQoIi0taXRlcmF0aW9ucz0lZCIgJSBp
dGVyYXRlX29uX25ld190ZXN0cykKIAogICAgICAgICBzZWxmLl90b29sLmV4ZWN1dGl2ZS5ydW5f
YW5kX3Rocm93X2lmX2ZhaWwoYXJncywgY3dkPXNlbGYuX3Rvb2wuc2NtKCkuY2hlY2tvdXRfcm9v
dCkKKworICAgIGRlZiBfcnVuX2phdmFzY3JpcHRjb3JlX3Rlc3RzKHNlbGYpOgorICAgICAgICBh
cmdzID0gc2VsZi5fdG9vbC5kZXByZWNhdGVkX3BvcnQoKS5ydW5famF2YXNjcmlwdGNvcmVfdGVz
dHNfY29tbWFuZChzZWxmLl9vcHRpb25zLmJ1aWxkX3N0eWxlKQorICAgICAgICBzZWxmLl90b29s
LmV4ZWN1dGl2ZS5ydW5fYW5kX3Rocm93X2lmX2ZhaWwoYXJncywgY3dkPXNlbGYuX3Rvb2wuc2Nt
KCkuY2hlY2tvdXRfcm9vdCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9v
bC9zdGVwcy9zdGVwc191bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9z
dGVwcy9zdGVwc191bml0dGVzdC5weQppbmRleCA3ZDk0YTEzYjM0NjNkOThhNDRmOTQ5ZjgxNGNj
NzEyMWMwNjhhYjVkLi5jMzMwMGM4NTk0NGNkZTIxYWQ5ZDBiM2U1NmRlZDg4MDEzZWI2YWRlIDEw
MDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvc3RlcHNfdW5pdHRl
c3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3N0ZXBzX3VuaXR0
ZXN0LnB5CkBAIC0xLDQgKzEsNSBAQAogIyBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTI4
LDYgKzI5LDcgQEAKIAogaW1wb3J0IHVuaXR0ZXN0CiAKK2Zyb20gd2Via2l0cHkuY29tbW9uLnN5
c3RlbS5leGVjdXRpdmUgaW1wb3J0IFNjcmlwdEVycm9yCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5z
eXN0ZW0ub3V0cHV0Y2FwdHVyZSBpbXBvcnQgT3V0cHV0Q2FwdHVyZQogZnJvbSB3ZWJraXRweS5j
b21tb24uY29uZmlnLnBvcnRzIGltcG9ydCBEZXByZWNhdGVkUG9ydAogZnJvbSB3ZWJraXRweS50
b29sLm1vY2t0b29sIGltcG9ydCBNb2NrT3B0aW9ucywgTW9ja1Rvb2wKQEAgLTExMSw3ICsxMTMs
NyBAQCBNT0NLIHJ1bl9hbmRfdGhyb3dfaWZfZmFpbDogWydUb29scy9TY3JpcHRzL3Rlc3Qtd2Vi
a2l0cHknXSwgY3dkPS9tb2NrLWNoZWNrb3V0CiBSdW5uaW5nIFBlcmwgdW5pdCB0ZXN0cwogTU9D
SyBydW5fYW5kX3Rocm93X2lmX2ZhaWw6IFsnVG9vbHMvU2NyaXB0cy90ZXN0LXdlYmtpdHBlcmwn
XSwgY3dkPS9tb2NrLWNoZWNrb3V0CiBSdW5uaW5nIEphdmFTY3JpcHRDb3JlIHRlc3RzCi1NT0NL
IHJ1bl9hbmRfdGhyb3dfaWZfZmFpbDogWydUb29scy9TY3JpcHRzL3J1bi1qYXZhc2NyaXB0Y29y
ZS10ZXN0cyddLCBjd2Q9L21vY2stY2hlY2tvdXQKK01PQ0sgcnVuX2FuZF90aHJvd19pZl9mYWls
OiBbJ1Rvb2xzL1NjcmlwdHMvcnVuLWphdmFzY3JpcHRjb3JlLXRlc3RzJywgJy0tbm8tZmFpbC1m
YXN0JywgJy0tanNvbi1vdXRwdXQ9anNjX3Rlc3RfcmVzdWx0cy5qc29uJ10sIGN3ZD0vbW9jay1j
aGVja291dAogUnVubmluZyBiaW5kaW5ncyBnZW5lcmF0aW9uIHRlc3RzCiBNT0NLIHJ1bl9hbmRf
dGhyb3dfaWZfZmFpbDogWydUb29scy9TY3JpcHRzL3J1bi1iaW5kaW5ncy10ZXN0cyddLCBjd2Q9
L21vY2stY2hlY2tvdXQKIFJ1bm5pbmcgcnVuLXdlYmtpdC10ZXN0cwpAQCAtMTMzLDEwICsxMzUs
MTExIEBAIE1PQ0sgcnVuX2FuZF90aHJvd19pZl9mYWlsOiBbJ1Rvb2xzL1NjcmlwdHMvdGVzdC13
ZWJraXRweSddLCBjd2Q9L21vY2stY2hlY2tvdXQKIFJ1bm5pbmcgUGVybCB1bml0IHRlc3RzCiBN
T0NLIHJ1bl9hbmRfdGhyb3dfaWZfZmFpbDogWydUb29scy9TY3JpcHRzL3Rlc3Qtd2Via2l0cGVy
bCddLCBjd2Q9L21vY2stY2hlY2tvdXQKIFJ1bm5pbmcgSmF2YVNjcmlwdENvcmUgdGVzdHMKLU1P
Q0sgcnVuX2FuZF90aHJvd19pZl9mYWlsOiBbJ1Rvb2xzL1NjcmlwdHMvcnVuLWphdmFzY3JpcHRj
b3JlLXRlc3RzJ10sIGN3ZD0vbW9jay1jaGVja291dAorTU9DSyBydW5fYW5kX3Rocm93X2lmX2Zh
aWw6IFsnVG9vbHMvU2NyaXB0cy9ydW4tamF2YXNjcmlwdGNvcmUtdGVzdHMnLCAnLS1uby1mYWls
LWZhc3QnLCAnLS1qc29uLW91dHB1dD1qc2NfdGVzdF9yZXN1bHRzLmpzb24nXSwgY3dkPS9tb2Nr
LWNoZWNrb3V0CiBSdW5uaW5nIGJpbmRpbmdzIGdlbmVyYXRpb24gdGVzdHMKIE1PQ0sgcnVuX2Fu
ZF90aHJvd19pZl9mYWlsOiBbJ1Rvb2xzL1NjcmlwdHMvcnVuLWJpbmRpbmdzLXRlc3RzJ10sIGN3
ZD0vbW9jay1jaGVja291dAogUnVubmluZyBydW4td2Via2l0LXRlc3RzCiBNT0NLIHJ1bl9hbmRf
dGhyb3dfaWZfZmFpbDogWydUb29scy9TY3JpcHRzL3J1bi13ZWJraXQtdGVzdHMnLCAnLS1kZWJ1
ZycsICctLXF1aWV0J10sIGN3ZD0vbW9jay1jaGVja291dAogIiIiCiAgICAgICAgIE91dHB1dENh
cHR1cmUoKS5hc3NlcnRfb3V0cHV0cyhzZWxmLCBzdGVwLnJ1biwgW3t9XSwgZXhwZWN0ZWRfbG9n
cz1leHBlY3RlZF9sb2dzKQorCisgICAgZGVmIHRlc3RfcnVudGVzdHNfanNjKHNlbGYpOgorICAg
ICAgICBtb2NrX29wdGlvbnMgPSBzZWxmLl9zdGVwX29wdGlvbnMoKQorICAgICAgICBtb2NrX29w
dGlvbnMubm9uX2ludGVyYWN0aXZlID0gRmFsc2UKKyAgICAgICAgbW9ja19vcHRpb25zLmJ1aWxk
X3N0eWxlID0gInJlbGVhc2UiCisgICAgICAgIG1vY2tfb3B0aW9ucy5ncm91cCA9ICJqc2MiCisg
ICAgICAgIHN0ZXAgPSBzdGVwcy5SdW5UZXN0cyhNb2NrVG9vbChsb2dfZXhlY3V0aXZlPVRydWUp
LCBtb2NrX29wdGlvbnMpCisgICAgICAgIHRvb2wgPSBNb2NrVG9vbChsb2dfZXhlY3V0aXZlPVRy
dWUpCisgICAgICAgICMgRklYTUU6IFdlIHNob3VsZG4ndCB1c2UgYSByZWFsIHBvcnQtb2JqZWN0
IGhlcmUsIGJ1dCB0aGVyZSBpcyB0b28gbXVjaCB0byBtb2NrIGF0IHRoZSBtb21lbnQuCisgICAg
ICAgIHRvb2wuX2RlcHJlY2F0ZWRfcG9ydCA9IERlcHJlY2F0ZWRQb3J0KCkKKyAgICAgICAgc3Rl
cCA9IHN0ZXBzLlJ1blRlc3RzKHRvb2wsIG1vY2tfb3B0aW9ucykKKyAgICAgICAgZXhwZWN0ZWRf
bG9ncyA9ICIiIk1PQ0sgcnVuX2FuZF90aHJvd19pZl9mYWlsOiBbJ1Rvb2xzL1NjcmlwdHMvcnVu
LWphdmFzY3JpcHRjb3JlLXRlc3RzJywgJy0tbm8tZmFpbC1mYXN0JywgJy0tanNvbi1vdXRwdXQ9
anNjX3Rlc3RfcmVzdWx0cy5qc29uJ10sIGN3ZD0vbW9jay1jaGVja291dAorIiIiCisgICAgICAg
IE91dHB1dENhcHR1cmUoKS5hc3NlcnRfb3V0cHV0cyhzZWxmLCBzdGVwLnJ1biwgW3t9XSwgZXhw
ZWN0ZWRfbG9ncz1leHBlY3RlZF9sb2dzKQorCisgICAgZGVmIHRlc3RfcnVudGVzdHNfanNjX2Rl
YnVnKHNlbGYpOgorICAgICAgICBtb2NrX29wdGlvbnMgPSBzZWxmLl9zdGVwX29wdGlvbnMoKQor
ICAgICAgICBtb2NrX29wdGlvbnMubm9uX2ludGVyYWN0aXZlID0gRmFsc2UKKyAgICAgICAgbW9j
a19vcHRpb25zLmJ1aWxkX3N0eWxlID0gImRlYnVnIgorICAgICAgICBtb2NrX29wdGlvbnMuZ3Jv
dXAgPSAianNjIgorICAgICAgICB0b29sID0gTW9ja1Rvb2wobG9nX2V4ZWN1dGl2ZT1UcnVlKQor
ICAgICAgICAjIEZJWE1FOiBXZSBzaG91bGRuJ3QgdXNlIGEgcmVhbCBwb3J0LW9iamVjdCBoZXJl
LCBidXQgdGhlcmUgaXMgdG9vIG11Y2ggdG8gbW9jayBhdCB0aGUgbW9tZW50LgorICAgICAgICB0
b29sLl9kZXByZWNhdGVkX3BvcnQgPSBEZXByZWNhdGVkUG9ydCgpCisgICAgICAgIHN0ZXAgPSBz
dGVwcy5SdW5UZXN0cyh0b29sLCBtb2NrX29wdGlvbnMpCisgICAgICAgIGV4cGVjdGVkX2xvZ3Mg
PSAiIiJNT0NLIHJ1bl9hbmRfdGhyb3dfaWZfZmFpbDogWydUb29scy9TY3JpcHRzL3J1bi1qYXZh
c2NyaXB0Y29yZS10ZXN0cycsICctLW5vLWZhaWwtZmFzdCcsICctLWpzb24tb3V0cHV0PWpzY190
ZXN0X3Jlc3VsdHMuanNvbicsICctLWRlYnVnJ10sIGN3ZD0vbW9jay1jaGVja291dAorIiIiCisg
ICAgICAgIE91dHB1dENhcHR1cmUoKS5hc3NlcnRfb3V0cHV0cyhzZWxmLCBzdGVwLnJ1biwgW3t9
XSwgZXhwZWN0ZWRfbG9ncz1leHBlY3RlZF9sb2dzKQorCisgICAgZGVmIHRlc3RfYnVpbGRfanNj
X2RlYnVnKHNlbGYpOgorICAgICAgICBtb2NrX29wdGlvbnMgPSBzZWxmLl9zdGVwX29wdGlvbnMo
KQorICAgICAgICBtb2NrX29wdGlvbnMubm9uX2ludGVyYWN0aXZlID0gRmFsc2UKKyAgICAgICAg
bW9ja19vcHRpb25zLmJ1aWxkX3N0eWxlID0gImRlYnVnIgorICAgICAgICBtb2NrX29wdGlvbnMu
YnVpbGQgPSBUcnVlCisgICAgICAgIG1vY2tfb3B0aW9ucy5hcmNoaXRlY3R1cmUgPSBUcnVlCisg
ICAgICAgIG1vY2tfb3B0aW9ucy5ncm91cCA9ICJqc2MiCisgICAgICAgIHRvb2wgPSBNb2NrVG9v
bChsb2dfZXhlY3V0aXZlPVRydWUpCisgICAgICAgICMgRklYTUU6IFdlIHNob3VsZG4ndCB1c2Ug
YSByZWFsIHBvcnQtb2JqZWN0IGhlcmUsIGJ1dCB0aGVyZSBpcyB0b28gbXVjaCB0byBtb2NrIGF0
IHRoZSBtb21lbnQuCisgICAgICAgIHRvb2wuX2RlcHJlY2F0ZWRfcG9ydCA9IERlcHJlY2F0ZWRQ
b3J0KCkKKyAgICAgICAgc3RlcCA9IHN0ZXBzLkJ1aWxkKHRvb2wsIG1vY2tfb3B0aW9ucykKKyAg
ICAgICAgZXhwZWN0ZWRfbG9ncyA9ICIiIkJ1aWxkaW5nIFdlYktpdAorTU9DSyBydW5fYW5kX3Ro
cm93X2lmX2ZhaWw6IFsnVG9vbHMvU2NyaXB0cy9idWlsZC1qc2MnLCAnLS1kZWJ1ZycsICdBUkNI
Uz1UcnVlJ10sIGN3ZD0vbW9jay1jaGVja291dCwgZW52PXsnTENfQUxMJzogJ0MnLCAnVEVSTSc6
ICdub25lJywgJ01PQ0tfRU5WSVJPTl9DT1BZJzogJzEnfQorIiIiCisgICAgICAgIE91dHB1dENh
cHR1cmUoKS5hc3NlcnRfb3V0cHV0cyhzZWxmLCBzdGVwLnJ1biwgW3t9XSwgZXhwZWN0ZWRfbG9n
cz1leHBlY3RlZF9sb2dzKQorCisgICAgZGVmIHRlc3RfYnVpbGRfanNjKHNlbGYpOgorICAgICAg
ICBtb2NrX29wdGlvbnMgPSBzZWxmLl9zdGVwX29wdGlvbnMoKQorICAgICAgICBtb2NrX29wdGlv
bnMubm9uX2ludGVyYWN0aXZlID0gRmFsc2UKKyAgICAgICAgbW9ja19vcHRpb25zLmJ1aWxkX3N0
eWxlID0gInJlbGVhc2UiCisgICAgICAgIG1vY2tfb3B0aW9ucy5idWlsZCA9IFRydWUKKyAgICAg
ICAgbW9ja19vcHRpb25zLmFyY2hpdGVjdHVyZSA9IFRydWUKKyAgICAgICAgbW9ja19vcHRpb25z
Lmdyb3VwID0gImpzYyIKKyAgICAgICAgdG9vbCA9IE1vY2tUb29sKGxvZ19leGVjdXRpdmU9VHJ1
ZSkKKyAgICAgICAgIyBGSVhNRTogV2Ugc2hvdWxkbid0IHVzZSBhIHJlYWwgcG9ydC1vYmplY3Qg
aGVyZSwgYnV0IHRoZXJlIGlzIHRvbyBtdWNoIHRvIG1vY2sgYXQgdGhlIG1vbWVudC4KKyAgICAg
ICAgdG9vbC5fZGVwcmVjYXRlZF9wb3J0ID0gRGVwcmVjYXRlZFBvcnQoKQorICAgICAgICBzdGVw
ID0gc3RlcHMuQnVpbGQodG9vbCwgbW9ja19vcHRpb25zKQorICAgICAgICBleHBlY3RlZF9sb2dz
ID0gIiIiQnVpbGRpbmcgV2ViS2l0CitNT0NLIHJ1bl9hbmRfdGhyb3dfaWZfZmFpbDogWydUb29s
cy9TY3JpcHRzL2J1aWxkLWpzYycsICctLXJlbGVhc2UnLCAnQVJDSFM9VHJ1ZSddLCBjd2Q9L21v
Y2stY2hlY2tvdXQsIGVudj17J0xDX0FMTCc6ICdDJywgJ1RFUk0nOiAnbm9uZScsICdNT0NLX0VO
VklST05fQ09QWSc6ICcxJ30KKyIiIgorICAgICAgICBPdXRwdXRDYXB0dXJlKCkuYXNzZXJ0X291
dHB1dHMoc2VsZiwgc3RlcC5ydW4sIFt7fV0sIGV4cGVjdGVkX2xvZ3M9ZXhwZWN0ZWRfbG9ncykK
KworICAgIGRlZiB0ZXN0X3BhdGNoX3JlbGV2YW50KHNlbGYpOgorICAgICAgICBzZWxmLm1heERp
ZmYgPSBOb25lCisgICAgICAgIG1vY2tfb3B0aW9ucyA9IHNlbGYuX3N0ZXBfb3B0aW9ucygpCisg
ICAgICAgIHRvb2wgPSBNb2NrVG9vbChsb2dfZXhlY3V0aXZlPVRydWUpCisgICAgICAgIHRvb2wu
c2NtKCkuX21vY2tDaGFuZ2VkRmlsZXMgPSBbIkpTVGVzdHMvTW9ja0ZpbGUxIiwgIkNoYW5nZUxv
ZyJdCisgICAgICAgICMgRklYTUU6IFdlIHNob3VsZG4ndCB1c2UgYSByZWFsIHBvcnQtb2JqZWN0
IGhlcmUsIGJ1dCB0aGVyZSBpcyB0b28gbXVjaCB0byBtb2NrIGF0IHRoZSBtb21lbnQuCisgICAg
ICAgIHRvb2wuX2RlcHJlY2F0ZWRfcG9ydCA9IERlcHJlY2F0ZWRQb3J0KCkKKyAgICAgICAgc3Rl
cCA9IHN0ZXBzLkNoZWNrUGF0Y2hSZWxldmFuY2UodG9vbCwgbW9ja19vcHRpb25zKQorICAgICAg
ICBleHBlY3RlZF9sb2dzID0gIiIiQ2hlY2tpbmcgcmVsZXZhbmNlIG9mIHBhdGNoCitUaGlzIHBh
dGNoIGhhcyByZWxldmFudCBjaGFuZ2VzLgorIiIiCisgICAgICAgIE91dHB1dENhcHR1cmUoKS5h
c3NlcnRfb3V0cHV0cyhzZWxmLCBzdGVwLnJ1biwgW3t9XSwgZXhwZWN0ZWRfbG9ncz1leHBlY3Rl
ZF9sb2dzKQorCisgICAgZGVmIHRlc3RfcGF0Y2hfcmVsZXZhbnRfanNjKHNlbGYpOgorICAgICAg
ICBzZWxmLm1heERpZmYgPSBOb25lCisgICAgICAgIG1vY2tfb3B0aW9ucyA9IHNlbGYuX3N0ZXBf
b3B0aW9ucygpCisgICAgICAgIG1vY2tfb3B0aW9ucy5ncm91cCA9ICJqc2MiCisgICAgICAgIHRv
b2wgPSBNb2NrVG9vbChsb2dfZXhlY3V0aXZlPVRydWUpCisgICAgICAgIHRvb2wuc2NtKCkuX21v
Y2tDaGFuZ2VkRmlsZXMgPSBbIkpTVGVzdHMvTW9ja0ZpbGUxIiwgIkNoYW5nZUxvZyJdCisgICAg
ICAgICMgRklYTUU6IFdlIHNob3VsZG4ndCB1c2UgYSByZWFsIHBvcnQtb2JqZWN0IGhlcmUsIGJ1
dCB0aGVyZSBpcyB0b28gbXVjaCB0byBtb2NrIGF0IHRoZSBtb21lbnQuCisgICAgICAgIHRvb2wu
X2RlcHJlY2F0ZWRfcG9ydCA9IERlcHJlY2F0ZWRQb3J0KCkKKyAgICAgICAgc3RlcCA9IHN0ZXBz
LkNoZWNrUGF0Y2hSZWxldmFuY2UodG9vbCwgbW9ja19vcHRpb25zKQorICAgICAgICBleHBlY3Rl
ZF9sb2dzID0gIiIiQ2hlY2tpbmcgcmVsZXZhbmNlIG9mIHBhdGNoCitUaGlzIHBhdGNoIGhhcyBy
ZWxldmFudCBjaGFuZ2VzLgorIiIiCisgICAgICAgIE91dHB1dENhcHR1cmUoKS5hc3NlcnRfb3V0
cHV0cyhzZWxmLCBzdGVwLnJ1biwgW3t9XSwgZXhwZWN0ZWRfbG9ncz1leHBlY3RlZF9sb2dzKQor
CisgICAgZGVmIHRlc3RfcGF0Y2hfbm90X3JlbGV2YW50X2pzYyhzZWxmKToKKyAgICAgICAgc2Vs
Zi5tYXhEaWZmID0gTm9uZQorICAgICAgICBtb2NrX29wdGlvbnMgPSBzZWxmLl9zdGVwX29wdGlv
bnMoKQorICAgICAgICBtb2NrX29wdGlvbnMuZ3JvdXAgPSAianNjIgorICAgICAgICB0b29sID0g
TW9ja1Rvb2wobG9nX2V4ZWN1dGl2ZT1UcnVlKQorICAgICAgICB0b29sLnNjbSgpLl9tb2NrQ2hh
bmdlZEZpbGVzID0gWyJUb29scy9DaGFuZ2VMb2ciLCAiVG9vbHMvU2NyaXB0cy93ZWJraXRweS90
b29sL3N0ZXBzL3N0ZXBzX3VuaXR0ZXN0LnB5Il0KKyAgICAgICAgIyBGSVhNRTogV2Ugc2hvdWxk
bid0IHVzZSBhIHJlYWwgcG9ydC1vYmplY3QgaGVyZSwgYnV0IHRoZXJlIGlzIHRvbyBtdWNoIHRv
IG1vY2sgYXQgdGhlIG1vbWVudC4KKyAgICAgICAgdG9vbC5fZGVwcmVjYXRlZF9wb3J0ID0gRGVw
cmVjYXRlZFBvcnQoKQorICAgICAgICBzdGVwID0gc3RlcHMuQ2hlY2tQYXRjaFJlbGV2YW5jZSh0
b29sLCBtb2NrX29wdGlvbnMpCisgICAgICAgIGV4cGVjdGVkX2xvZ3MgPSAiIiJDaGVja2luZyBy
ZWxldmFuY2Ugb2YgcGF0Y2gKK1RoaXMgcGF0Y2ggZG9lcyBub3QgaGF2ZSByZWxldmFudCBjaGFu
Z2VzLgorIiIiCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoU2NyaXB0RXJyb3IpOgor
ICAgICAgICAgICAgT3V0cHV0Q2FwdHVyZSgpLmFzc2VydF9vdXRwdXRzKHNlbGYsIHN0ZXAucnVu
LCBbe31dLCBleHBlY3RlZF9sb2dzPWV4cGVjdGVkX2xvZ3MpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>301117</attachid>
            <date>2017-02-09 18:25:05 -0800</date>
            <delta_ts>2017-02-13 18:54:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-162458-20170209182239.patch</filename>
            <type>text/plain</type>
            <size>84613</size>
            <attacher name="Srinivasan Vijayaraghavan">webkit</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjExNjYyCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYTEzMjZiMTZmODdkYzkzZjY5MjY1MmNhNjc0MmFlOTIz
OGFlN2QyYS4uZmVkMzFlOTI4NThlNTI0NWYxYTk2ZjhkMTkyYWE1MGU2ODk1ODZiMSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEz
MCBAQAorMjAxNy0wMi0wOSAgU3Jpbml2YXNhbiBWaWpheWFyYWdoYXZhbiAgPHN2aWpheWFyYWdo
YXZhbkBhcHBsZS5jb20+CisKKyAgICAgICAgRVdTIHNob3VsZCBydW4gSmF2YVNjcmlwdENvcmUg
dGVzdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2
MjQ1OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
UXVldWVTdGF0dXNTZXJ2ZXIvY29uZmlnL3F1ZXVlcy5weTogQWRkIGpzYy1ld3MgcXVldWUKKyAg
ICAgICAgKiBRdWV1ZVN0YXR1c1NlcnZlci9oYW5kbGVycy9zdGF0dXNidWJibGUucHk6CisgICAg
ICAgIChTdGF0dXNCdWJibGUuX3Nob3VsZF9zaG93X2J1YmJsZV9mb3IpOiBBZGQgbG9naWMgdG8g
aGlkZSBqc2MtZXdzIGJ1YmJsZSBpZiB0aGUgcGF0Y2ggZG9lcyBub3QgdG91Y2gganNjLgorICAg
ICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNrb3V0L3NjbS9zY21fbW9jay5weToK
KyAgICAgICAgKE1vY2tTQ00uX19pbml0X18pOiBBZGQgX21vY2tDaGFuZ2VkRmlsZXMgdmFyaWFi
bGUuCisgICAgICAgIChNb2NrU0NNLmNoYW5nZWRfZmlsZXMpOiBDaGFuZ2UgdG8gdXNlIF9tb2Nr
Q2hhbmdlZEZpbGVzIHZhcmlhYmxlcy4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1v
bi9jb25maWcvZXdzLmpzb246IEFkZCBjb25maWcgaW5mbyBmb3IgSlNDIEVXUy4KKyAgICAgICAg
KiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvcG9ydHMucHk6IEFkZCBzdXBwb3J0IGZv
ciBKU0MgRVdTIGluIE1hYyBQb3J0LgorICAgICAgICAoRGVwcmVjYXRlZFBvcnQuYnVpbGRfanNj
X2NvbW1hbmQpOiBBZGRlZCAtIGNvbW1hbmQgdG8gYnVpbGQgSlNDIG9ubHkgKHF1aWNrZXIgdGhh
biBidWlsZGluZyBhbGwgb2YgV2ViS2l0KS4KKyAgICAgICAgKERlcHJlY2F0ZWRQb3J0LnJ1bl9q
YXZhc2NyaXB0Y29yZV90ZXN0c19jb21tYW5kKTogQWxsb3cgSlNDIEVXUyB0byBvbmx5IHJ1biBK
U0MgdGVzdHMuCisgICAgICAgIChNYWNQb3J0LnJ1bl93ZWJraXRfdGVzdHNfY29tbWFuZCk6IENo
ZWNrIGZvciBKU0MuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL3Bv
cnRzX21vY2sucHk6CisgICAgICAgIChNb2NrUG9ydC5ydW5famF2YXNjcmlwdGNvcmVfdGVzdHNf
Y29tbWFuZCk6IEFkZCBidWlsZF9zdHlsZSBhcmd1bWVudC4KKyAgICAgICAgKiBTY3JpcHRzL3dl
YmtpdHB5L2NvbW1vbi9jb25maWcvcG9ydHNfdW5pdHRlc3QucHk6CisgICAgICAgIChEZXByZWNh
dGVkUG9ydFRlc3QudGVzdF9tYWNfcG9ydCk6IEFkZCB1bml0IHRlc3RzIGZvciBidWlsZC1qc2Mg
c2hlbGwgY29tbWFuZC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvanNj
dGVzdHJlc3VsdHMucHk6IEFkZGVkLgorICAgICAgICAoSlNDVGVzdFJlc3VsdHMpOiBBZGRlZC4K
KyAgICAgICAgKEpTQ1Rlc3RSZXN1bHRzLmludGVyc2VjdGlvbik6IFJldHVybiBhIEpTQ1Rlc3RS
ZXN1bHRzIG9iamVjdCB3aXRoIGZhaWx1cmVzIGNvbW1vbiB0byBib3RoIGlucHV0IG9iamVjdHMu
CisgICAgICAgIChKU0NUZXN0UmVzdWx0cy5yZXN1bHRzX2Zyb21fc3RyaW5nKTogVXNlIGpzb24g
bGlicmFyeSB0byBwYXJzZSByZXN1bHRzLgorICAgICAgICAoSlNDVGVzdFJlc3VsdHMuX19pbml0
X18pOiBJbml0aWFsaXplIG1lbWJlcnMuCisgICAgICAgIChKU0NUZXN0UmVzdWx0cy5lcXVhbHMp
OiBUaGlzIGVuYWJsZXMgdW5pdCB0ZXN0aW5nLgorICAgICAgICAoSlNDVGVzdFJlc3VsdHMuaXNf
c3Vic2V0KTogQ2hlY2tzIGlmIG9uZSBzZXQgb2YgZmFpbHVyZXMgaXMgYSBzdWJzZXQgb2YgYW5v
dGhlci4KKyAgICAgICAgKEpTQ1Rlc3RSZXN1bHRzLmFsbF9wYXNzZWQpOiBHZXR0ZXIuCisgICAg
ICAgIChKU0NUZXN0UmVzdWx0cy5mYWlsaW5nX3Rlc3RfcmVzdWx0cyk6IEdldHRlci4gU29tZSBv
ZiB0aGVzZSBleGlzdCBmb3IgaW50ZXJvcGFiaWxpdHkgcmVhc29ucy4KKyAgICAgICAgKEpTQ1Rl
c3RSZXN1bHRzLnRlc3RfcmVzdWx0cyk6IEdldHRlci4KKyAgICAgICAgKEpTQ1Rlc3RSZXN1bHRz
LmZhaWxpbmdfdGVzdHMpOiBHZXR0ZXIuCisgICAgICAgIChKU0NUZXN0UmVzdWx0cy5kaWRfZXhj
ZWVkX3Rlc3RfZmFpbHVyZV9saW1pdCk6IEdldHRlci4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dHB5L2NvbW1vbi9uZXQvanNjdGVzdHJlc3VsdHNfdW5pdHRlc3QucHk6IEFkZGVkLgorICAgICAg
ICAoSlNDVGVzdFJlc3VsdHNUZXN0KTogQ2xhc3MgdG8gdGVzdCBKU0NUZXN0UmVzdWx0cy4KKyAg
ICAgICAgKEpTQ1Rlc3RSZXN1bHRzVGVzdC50ZXN0X3Jlc3VsdHNfZnJvbV9zdHJpbmcpOiBUZXN0
cyBwYXJzaW5nLgorICAgICAgICAoSlNDVGVzdFJlc3VsdHNUZXN0LnRlc3RfaW50ZXJzZWN0aW9u
X2FwaV90ZXN0cyk6IFVuaXQgdGVzdCBmb3IgaW50ZXJzZWN0aW9uKCkgY2xhc3MgbWV0aG9kLgor
ICAgICAgICAoSlNDVGVzdFJlc3VsdHNUZXN0LnRlc3RfaW50ZXJzZWN0aW9uX3N0cmVzc190ZXN0
cyk6IFVuaXQgdGVzdCBmb3IgaW50ZXJzZWN0aW9uKCkgY2xhc3MgbWV0aG9kLgorICAgICAgICAo
SlNDVGVzdFJlc3VsdHNUZXN0LnRlc3RfaW50ZXJzZWN0aW9uX2dlbmVyYWxfY2FzZSk6IFVuaXQg
dGVzdCBmb3IgaW50ZXJzZWN0aW9uKCkgY2xhc3MgbWV0aG9kLgorICAgICAgICAqIFNjcmlwdHMv
d2Via2l0cHkvdG9vbC9ib3QvZWFybHl3YXJuaW5nc3lzdGVtdGFzay5weToKKyAgICAgICAgKEVh
cmx5V2FybmluZ1N5c3RlbVRhc2sucnVuKTogQWRkIGNoZWNrX3BhdGNoX3JlbGV2YW5jZSBzdGVw
LgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvanNjZXdzX3VuaXR0ZXN0LnB5
OiBBZGRlZC4KKyAgICAgICAgKE1vY2tQYXRjaEFuYWx5c2lzVGFzayk6IE1vY2tlZC1vdXQgdmVy
c2lvbiBvZiBQYXRjaEFuYWx5c2lzVGFzayB0aGF0IGRvZXNuJ3QgcnVuIGNvbW1hbmRzLgorICAg
ICAgICAoTW9ja1BhdGNoQW5hbHlzaXNUYXNrLl9faW5pdF9fKTogU2V0cyBhdHRyaWJ1dGVzLgor
ICAgICAgICAoTW9ja1BhdGNoQW5hbHlzaXNUYXNrLl90ZXN0KTogT3ZlcnJpZGUgdG8gbm90IHJ1
biBjb21tYW5kLgorICAgICAgICAoTW9ja1BhdGNoQW5hbHlzaXNUYXNrLl9idWlsZF9hbmRfdGVz
dF93aXRob3V0X3BhdGNoKTogT3ZlcnJpZGUgdG8gbm90IHJ1biBjb21tYW5kLgorICAgICAgICAo
TW9ja1BhdGNoQW5hbHlzaXNUYXNrLnZhbGlkYXRlKTogQXNzdW1lIG1vY2tlZCBwYXRjaCBpcyB2
YWxpZCBmb3IgcHVycG9zZXMgb2YgdGVzdGluZyByZXRyeSBsb2dpYy4KKyAgICAgICAgKE1vY2tQ
YXRjaEFuYWx5c2lzVGFzay50ZXN0X3J1bl9jb3VudCk6IFNwZWNpZmljIHRvIHRoZSBtb2NrZWQg
dmVyc2lvbiwgdG8gdGVzdCByZXRyeSBsb2dpYy4KKyAgICAgICAgKE1vY2tKU0NFYXJseVdhcm5p
bmdTeXN0ZW0pOiBNb2NrZWQtb3V0IHZlcnNpb24gb2YgQWJzdGFyY3RFYXJseVdhcm5pbmdTeXN0
ZW0gc28gd2UgY2FuIHByb3ZpZGUgdGVzdCByZXN1bHRzLgorICAgICAgICAoTW9ja0pTQ0Vhcmx5
V2FybmluZ1N5c3RlbS5fX2luaXRfXyk6IFNldHMgYXR0cmlidXRlcywgYWxzbyBzZXRzIGdyb3Vw
IHRvIGpzYy4KKyAgICAgICAgKE1vY2tKU0NFYXJseVdhcm5pbmdTeXN0ZW0udGVzdF9yZXN1bHRz
KTogUmV0dXJucyB0ZXN0IHJlc3VsdHMgcHJvdmlkZWQgYnkgdXMsIGluc3RlYWQgb2YgdXNpbmcg
YSBKU09OIHJlYWRlci4KKyAgICAgICAgKEpTQ0Vhcmx5V2FybmluZ1N5c3RlbVRlc3QpOiBDbGFz
cyB0byB0ZXN0IHJldHJ5IGxvZ2ljIGluIGJlbG93IHNpdHVhdGlvbnMuCisgICAgICAgIChKU0NF
YXJseVdhcm5pbmdTeXN0ZW1UZXN0Ll9jcmVhdGVfdGFzayk6IEhlbHBlciBmdW5jdGlvbiB0byBh
YnN0cmFjdCBvdXQgY29tbW9uIGNvZGUuCisgICAgICAgIChKU0NFYXJseVdhcm5pbmdTeXN0ZW1U
ZXN0Ll9yZXN1bHRzX2luZGljYXRlX2FsbF9wYXNzZWQpOiBGYWxzZSBpZiBpbnB1dCBpcyBOb25l
IG9yIGhhcyBmYWlsdXJlcywgZWxzZSBUcnVlLgorICAgICAgICAoSlNDRWFybHlXYXJuaW5nU3lz
dGVtVGVzdC50ZXN0X3N1Y2Nlc3NfY2FzZSk6IENsZWFuIHBhdGNoIG9uIGNsZWFuIHRyZWUuCisg
ICAgICAgIChKU0NFYXJseVdhcm5pbmdTeXN0ZW1UZXN0LnRlc3RfdGVzdF9mYWlsdXJlKTogRmFp
bGVkIHBhdGNoIG9uIGNsZWFuIHRyZWUuCisgICAgICAgIChKU0NFYXJseVdhcm5pbmdTeXN0ZW1U
ZXN0LnRlc3RfZml4KTogUGF0Y2ggdGhhdCBmaXhlcyBhbGwgdHJlZSByZWRuZXNzLgorICAgICAg
ICAoSlNDRWFybHlXYXJuaW5nU3lzdGVtVGVzdC50ZXN0X2luZWZmZWN0aXZlX3BhdGNoKTogUGF0
Y2ggdGhhdCBoYXMgc2FtZSBmYWlsdXJlcyBhcyB0cmVlLgorICAgICAgICAoSlNDRWFybHlXYXJu
aW5nU3lzdGVtVGVzdC50ZXN0X3BhcnRpYWxseV9lZmZlY3RpdmVfcGF0Y2gpOiBQYXRjaCBmaXhl
cyBzb21lIGZhaWx1cmVzIGJ1dCBhZGRzIG5vIG5ldyBmYWlsdXJlcy4KKyAgICAgICAgKEpTQ0Vh
cmx5V2FybmluZ1N5c3RlbVRlc3QudGVzdF9kaWZmZXJlbnRfdGVzdF9mYWlsdXJlc19pbl9wYXRj
aF9hbmRfdHJlZSk6IFBhdGNoIGhhcyBzb21lIGZhaWx1cmVzIG5vdCBpbiB0cmVlLgorICAgICAg
ICAoSlNDRWFybHlXYXJuaW5nU3lzdGVtVGVzdC50ZXN0X2ZpcnN0X3Jlc3VsdHNfY291bGRfbm90
X2JlX3JlYWQpOiBQYXRjaCByZXN1bHRzIG5vdCByZWFkYWJsZS4KKyAgICAgICAgKEpTQ0Vhcmx5
V2FybmluZ1N5c3RlbVRlc3QudGVzdF9zZWNvbmRfcmVzdWx0c19jb3VsZF9ub3RfYmVfcmVhZCk6
IFBhdGNoIHJlc3VsdHMgbm90IHJlYWRhYmxlIG9uIHNlY29uZCBydW4uCisgICAgICAgIChKU0NF
YXJseVdhcm5pbmdTeXN0ZW1UZXN0LnRlc3RfY2xlYW5fcmVzdWx0c19jb3VsZF9ub3RfYmVfcmVh
ZCk6IFJlc3VsdHMgZnJvbSBjbGVhbiB0cmVlIG5vdCByZWFkYWJsZS4KKyAgICAgICAgKEpTQ0Vh
cmx5V2FybmluZ1N5c3RlbVRlc3QudGVzdF9mbGFreV9yZXN1bHRzX29uX2NsZWFuX3RyZWVfcGFz
cyk6IFBhdGNoIGhhcyBvbmUgZmxha2UgYW5kIG5vIGZhaWx1cmVzLgorICAgICAgICAoSlNDRWFy
bHlXYXJuaW5nU3lzdGVtVGVzdC50ZXN0X2ZsYWt5X3Jlc3VsdHNfb25fY2xlYW5fdHJlZV9wYXNz
X3YyKTogUGF0Y2ggaGFzIG9uZSBmbGFrZSBhbmQgbm8gZmFpbHVyZXMuCisgICAgICAgIChKU0NF
YXJseVdhcm5pbmdTeXN0ZW1UZXN0LnRlc3RfZmxha3lfcmVzdWx0c19vbl9jbGVhbl90cmVlX2Zh
aWx1cmUpOiBQYXRjaCBoYXMgZmxha2VzIGFuZCBmYWlsZWQgdGVzdHMuCisgICAgICAgIChKU0NF
YXJseVdhcm5pbmdTeXN0ZW1UZXN0LnRlc3RfZmxha3lfcmVzdWx0c19vbl9yZWRfdHJlZV9wYXNz
KTogUGF0Y2ggaGFzIHNhbWUgZmFpbHVyZXMgYXMgdHJlZSwgcGx1cyBhIGZsYWtlLgorICAgICAg
ICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvanNjdGVzdHJlc3VsdHNyZWFkZXIucHk6IEFk
ZGVkLgorICAgICAgICAoSlNDVGVzdFJlc3VsdHNSZWFkZXIpOiBSZWFkcyByZXN1bHRzIGZpbGUu
CisgICAgICAgIChKU0NUZXN0UmVzdWx0c1JlYWRlci5fX2luaXRfXyk6IFNldHMgYXR0cmlidXRl
cy4KKyAgICAgICAgKEpTQ1Rlc3RSZXN1bHRzUmVhZGVyLl9yZWFkX2ZpbGVfY29udGVudHMpOiBS
ZWFkcyBmaWxlLgorICAgICAgICAoSlNDVGVzdFJlc3VsdHNSZWFkZXIuX2NyZWF0ZV9qc2NfdGVz
dF9yZXN1bHRzKTogQ3JlYXRlcyBhIEpTQ1Rlc3RSZXN1bHRzIG9iamVjdC4KKyAgICAgICAgKEpT
Q1Rlc3RSZXN1bHRzUmVhZGVyLnJlc3VsdHMpOiBJbnZva2VzIF9jcmVhdGVfanNjX3Rlc3RfcmVz
dWx0cyB0byByZXR1cm4gYSBKU0NUZXN0UmVzdWx0cyBvYmplY3QuCisgICAgICAgICogU2NyaXB0
cy93ZWJraXRweS90b29sL2JvdC9wYXRjaGFuYWx5c2lzdGFzay5weToKKyAgICAgICAgKFBhdGNo
SXNOb3RBcHBsaWNhYmxlKTogRXhjZXB0aW9uIGZvciB3aGVuIHBhdGNoIGRvZXNuJ3QgaGF2ZSBy
ZWxldmFudCBjaGFuZ2VzLgorICAgICAgICAoUGF0Y2hBbmFseXNpc1Rhc2suX2NoZWNrX3BhdGNo
X3JlbGV2YW5jZSk6IEFkZGVkLgorICAgICAgICAoUGF0Y2hBbmFseXNpc1Rhc2suX2J1aWxkKTog
Q2hlY2sgZm9yIEpTQy4KKyAgICAgICAgKFBhdGNoQW5hbHlzaXNUYXNrLl9idWlsZF93aXRob3V0
X3BhdGNoKTogQ2hlY2sgZm9yIEpTQy4KKyAgICAgICAgKFBhdGNoQW5hbHlzaXNUYXNrLl90ZXN0
KTogQ2hlY2sgZm9yIEpTQy4KKyAgICAgICAgKFBhdGNoQW5hbHlzaXNUYXNrLl9idWlsZF9hbmRf
dGVzdF93aXRob3V0X3BhdGNoKTogQ2hlY2sgZm9yIEpTQy4KKyAgICAgICAgKFBhdGNoQW5hbHlz
aXNUYXNrLl9yZXRyeV9qc2NfdGVzdHMpOiBSZXRyeSBsb2dpYyBmb3IgSlNDIEVXUy4KKyAgICAg
ICAgKFBhdGNoQW5hbHlzaXNUYXNrLl9yZXRyeV9sYXlvdXRfdGVzdHMpOiBSZXRyeSBsb2dpYyBm
b3IgbGF5b3V0IHRlc3RzIEVXUy4KKyAgICAgICAgKFBhdGNoQW5hbHlzaXNUYXNrLl90ZXN0X3Bh
dGNoKTogQWRkIHJldHJ5IGxvZ2ljIGZvciBKU0MuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRw
eS90b29sL2NvbW1hbmRzL2Rvd25sb2FkLnB5OgorICAgICAgICAoQ2hlY2tQYXRjaFJlbGV2YW5j
ZSk6IEFkZCBjaGVjay1wYXRjaC1yZWxldmFuY2UgY29tbWFuZC4KKyAgICAgICAgKiBTY3JpcHRz
L3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZWFybHl3YXJuaW5nc3lzdGVtLnB5OgorICAgICAgICAo
QWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0uX2NyZWF0ZV90YXNrKTogQWJzdHJhY3Qgb3V0IHRv
IGVuYWJsZSBtb2NraW5nLgorICAgICAgICAoQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0uYmVn
aW5fd29ya19xdWV1ZSk6IFVzZSBKU0NUZXN0UmVzdWx0c1JlYWRlciBub3QgTGF5b3V0VGVzdFJl
c3VsdHNSZWFkZXIgaW4gSlNDIEVXUy4KKyAgICAgICAgKEFic3RyYWN0RWFybHlXYXJuaW5nU3lz
dGVtLnJldmlld19wYXRjaCk6IEhhbmRsZSBQYXRjaElzQXBwbGljYWJsZQorICAgICAgICAoQWJz
dHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0udGVzdF9yZXN1bHRzKTogX2xheW91dF90ZXN0X3Jlc3Vs
dHNfcmVhZGVyIC0+IF90ZXN0X3Jlc3VsdHNfcmVhZGVyLgorICAgICAgICAoQWJzdHJhY3RFYXJs
eVdhcm5pbmdTeXN0ZW0uYXJjaGl2ZV9sYXN0X3Rlc3RfcmVzdWx0cyk6IF9sYXlvdXRfdGVzdF9y
ZXN1bHRzX3JlYWRlciAtPiBfdGVzdF9yZXN1bHRzX3JlYWRlci4KKyAgICAgICAgKEFic3RyYWN0
RWFybHlXYXJuaW5nU3lzdGVtLmdyb3VwKTogVGhpcyBhdHRyaWJ1dGUgZGV0ZXJtaW5lcyB0aGUg
dHlwZSBvZiBFV1MgKGVnLiBKU0MpLgorICAgICAgICAoQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0
ZW0ubG9hZF9ld3NfY2xhc3Nlcyk6IEFkZCBfZ3JvdXAsIGFuZCBtYWtlIGNsYXNzZXMgb2YgdHlw
ZSBjbHMgdG8gZW5hYmxlIG1vY2tpbmcuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29s
L2NvbW1hbmRzL2Vhcmx5d2FybmluZ3N5c3RlbV91bml0dGVzdC5weToKKyAgICAgICAgKFRlc3RF
V1MpOiBTYW1wbGUgbGF5b3V0IHRlc3QgRVdTIGNsYXNzIHVzZWQgZm9yIHVuaXQgdGVzdGluZy4K
KyAgICAgICAgKFRlc3RKU0NFV1MpOiBTYW1wbGUgSlNDIEVXUyBjbGFzcyB1c2VkIGZvciB1bml0
IHRlc3RpbmcuCisgICAgICAgIChBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbVRlc3QudGVzdF9m
YWlsaW5nX3Rlc3RzX21lc3NhZ2UuVGVzdEVXUyk6IEFkZCBfZ3JvdXAuCisgICAgICAgIChBYnN0
cmFjdEVhcmx5V2FybmluZ1N5c3RlbVRlc3QudGVzdF9mYWlsaW5nX2pzY190ZXN0c19tZXNzYWdl
LlRlc3RFV1MpOiBBZGRlZCB0ZXN0IGZvciBqc2MgZmFpbHVyZXMgbWVzc2FnZS4KKyAgICAgICAg
KEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtVGVzdCk6IEFkZCBfZ3JvdXAgdmFyaWFibGUuCisg
ICAgICAgIChFYXJseVdhcm5pbmdTeXN0ZW1UZXN0Ll9kZWZhdWx0X2V4cGVjdGVkX2xvZ3MpOiBB
ZGQgY2hlY2stcGF0Y2gtcmVsZXZhbmNlIHN0ZXAsIGluY29uY2x1c2l2ZSBsb2dzLCBhbmQgZ3Jv
dXAuCisgICAgICAgIChFYXJseVdhcm5pbmdTeXN0ZW1UZXN0Ll90ZXN0X2V3cyk6IEFkZCBsb2dz
X2FyZV9jb25jbHVzaXZlIG9wdGlvbiB0byBwYXNzIHRocm91Z2ggdG8gZGVmYXVsdF9leHBlY3Rl
ZF9sb2dzKCkuCisgICAgICAgIChFYXJseVdhcm5pbmdTeXN0ZW1UZXN0LnRlc3RfaW5jb25jbHVz
aXZlX3Rlc3RfcmVzdWx0cyk6IFRlc3Qgbm90IHJlbW92aW5nIHBhdGNoIGZyb20gcXVldWUgaWYg
bm90IGNvbmNsdXNpdmUuCisgICAgICAgIChNb2NrQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0p
OiBBZGRlZC4KKyAgICAgICAgKE1vY2tBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbS50ZXN0X3Jl
c3VsdHMpOiBTaW11bGF0ZXMgaW5jb25jbHVzaXZlIHJlc3VsdHMuCisgICAgICAgIChNb2NrQWJz
dHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0uX2NyZWF0ZV90YXNrKTogVXNlIE1vY2tFYXJseVdhcm5p
bmdTeXN0ZW1UYXNrIChub3QgRWFybHlXYXJuaW5nU3lzdGVtVGFzaykuCisgICAgICAgIChNb2Nr
RWFybHlXYXJuaW5nU3lzdGVtVGFzayk6IEFkZGVkLgorICAgICAgICAoTW9ja0Vhcmx5V2Fybmlu
Z1N5c3RlbVRhc2suX3Rlc3RfcGF0Y2gpOiBTaW11bGF0ZXMgcnVubmluZyB0ZXN0cyBidXQgbm90
IGdldHRpbmcgYSBjb25jbHVzaXZlIHJlc3VsdC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5
L3Rvb2wvc3RlcHMvX19pbml0X18ucHk6IEFkZCBDaGVja1BhdGNoUmVsZXZhbmNlIGltcG9ydC4K
KyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvYnVpbGQucHk6CisgICAgICAg
IChCdWlsZC5vcHRpb25zKTogQ2hlY2sgZm9yIEpTQy4KKyAgICAgICAgKEJ1aWxkLmJ1aWxkKTog
Q2hlY2sgZm9yIEpTQy4KKyAgICAgICAgKEJ1aWxkLnJ1bik6IENoZWNrIGZvciBKU0MuCisgICAg
ICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL2NoZWNrcGF0Y2hyZWxldmFuY2UucHk6
IEFkZGVkLgorICAgICAgICAoQ2hlY2tQYXRjaFJlbGV2YW5jZSk6IEFkZGVkLgorICAgICAgICAo
Q2hlY2tQYXRjaFJlbGV2YW5jZS5fZG9lc19jb250YWluX2NoYW5nZV9pbl9wYXRocyk6IEFic3Ry
YWN0IGZ1bmN0aW9uIHRvIHBlcmZvcm0gcmVnZXggbWF0Y2hpbmcuCisgICAgICAgIChDaGVja1Bh
dGNoUmVsZXZhbmNlLnJ1bik6IENoZWNrIGlmIGNoYW5nZWQgZmlsZXMgaW4gcGF0Y2ggYmVsb25n
IGluIGNlcnRhaW4gZm9sZGVycy4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3Rl
cHMvb3B0aW9ucy5weToKKyAgICAgICAgKE9wdGlvbnMpOiBBZGQgLS1ncm91cCBjb21tYW5kIGxp
bmUgb3B0aW9uLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9ydW50ZXN0
cy5weToKKyAgICAgICAgKFJ1blRlc3RzLm9wdGlvbnMpOiBBZGQgZ3JvdXAuCisgICAgICAgIChS
dW5UZXN0cy5ydW4pOiBDaGVjayBmb3IgSlNDLgorICAgICAgICAoUnVuVGVzdHMuX3J1bl93ZWJr
aXRfdGVzdHMpOiBDaGVjayBmb3IgSlNDLgorICAgICAgICAoUnVuVGVzdHMpOiBBZGQgX2dyb3Vw
IGF0dHJpYnV0ZS4KKyAgICAgICAgKFJ1blRlc3RzLl9ydW5famF2YXNjcmlwdGNvcmVfdGVzdHMp
OiBOZXcuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3N0ZXBzX3VuaXR0
ZXN0LnB5OiBVbml0IHRlc3RzLgorCiAyMDE3LTAyLTAzICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5m
cmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIENvcnJlY3RseSBzZXQgdGhlICJpbldpbmRvdyIg
ZmxhZyBmb3IgVGlsZUNvbnRyb2xsZXJzIHRoYXQgYXJlbid0IHRoZSBwYWdlIHRpbGVzLCBhbmQg
Y2xhcmlmeSAidXNpbmdUaWxlZEJhY2tpbmciIGxvZ2ljCmRpZmYgLS1naXQgYS9Ub29scy9RdWV1
ZVN0YXR1c1NlcnZlci9jb25maWcvcXVldWVzLnB5IGIvVG9vbHMvUXVldWVTdGF0dXNTZXJ2ZXIv
Y29uZmlnL3F1ZXVlcy5weQppbmRleCAzNDFkZDA4M2FkZmJiODkwNzE5OGJlZWQ1ZWFiMjE5MzAy
Njk4M2Y1Li4wYTIyZmYzMmM4ZjAzYzg3MTQ5Njk4Nzc0ZjY0MzhlZDVmYWJhZGM3IDEwMDY0NAot
LS0gYS9Ub29scy9RdWV1ZVN0YXR1c1NlcnZlci9jb25maWcvcXVldWVzLnB5CisrKyBiL1Rvb2xz
L1F1ZXVlU3RhdHVzU2VydmVyL2NvbmZpZy9xdWV1ZXMucHkKQEAgLTEsNCArMSw0IEBACi0jIENv
cHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHly
aWdodCAoQykgMjAxNCwgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjIENv
cHlyaWdodCAoQykgMjAxMyBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKQEAgLTM2LDYgKzM2LDcgQEAgYWxsX3F1ZXVlX25hbWVzID0gWwogICAgICJndGst
d2syLWV3cyIsCiAgICAgImlvcy1ld3MiLAogICAgICJpb3Mtc2ltLWV3cyIsCisgICAgImpzYy1l
d3MiLAogICAgICJtYWMtZXdzIiwKICAgICAibWFjLXdrMi1ld3MiLAogICAgICJtYWMtZGVidWct
ZXdzIiwKZGlmZiAtLWdpdCBhL1Rvb2xzL1F1ZXVlU3RhdHVzU2VydmVyL2hhbmRsZXJzL3N0YXR1
c2J1YmJsZS5weSBiL1Rvb2xzL1F1ZXVlU3RhdHVzU2VydmVyL2hhbmRsZXJzL3N0YXR1c2J1YmJs
ZS5weQppbmRleCBjODA1MTRmZjg3ODllZjY5NGI5OTU3MTRlMmViNWQ5NmY4YmNhNzgyLi4yNzNm
OGRmZjA2YzY5YjQ4MzA1YjkzODMzMGVjNTAyZTAwM2IzYjc1IDEwMDY0NAotLS0gYS9Ub29scy9R
dWV1ZVN0YXR1c1NlcnZlci9oYW5kbGVycy9zdGF0dXNidWJibGUucHkKKysrIGIvVG9vbHMvUXVl
dWVTdGF0dXNTZXJ2ZXIvaGFuZGxlcnMvc3RhdHVzYnViYmxlLnB5CkBAIC0xLDQgKzEsNSBAQAog
IyBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMg
Q29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMg
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTE4MiwxMSArMTgzLDE5IEBAIGNsYXNzIFN0
YXR1c0J1YmJsZSh3ZWJhcHAuUmVxdWVzdEhhbmRsZXIpOgogICAgICAgICByZXR1cm4gYnViYmxl
CiAKICAgICBkZWYgX3Nob3VsZF9zaG93X2J1YmJsZV9mb3Ioc2VsZiwgYXR0YWNobWVudCwgcXVl
dWUpOgotICAgICAgICAgIyBBbnkgcGVuZGluZyBxdWV1ZSBpcyBzaG93bi4KKyAgICAgICAgIyBB
bnkgcGVuZGluZyBxdWV1ZSBpcyBzaG93bi4KICAgICAgICAgaWYgYXR0YWNobWVudC5wb3NpdGlv
bl9pbl9xdWV1ZShxdWV1ZSk6CiAgICAgICAgICAgICByZXR1cm4gVHJ1ZQotICAgICAgICAjIEVX
UyBxdWV1ZXMgYXJlIGFsc28gc2hvd24gd2hlbiBjb21wbGV0ZS4KLSAgICAgICAgcmV0dXJuIGJv
b2wocXVldWUuaXNfZXdzKCkgYW5kIGF0dGFjaG1lbnQuc3RhdHVzX2Zvcl9xdWV1ZShxdWV1ZSkp
CisKKyAgICAgICAgIyBFV1MgcXVldWVzIGFyZSBhbHNvIHNob3duIHdoZW4gY29tcGxldGUKKyAg
ICAgICAgIyBCdXQgSlNDIEVXUyBidWJibGUgaXMgbm90IHNob3duIGlmIHRoZSBwYXRjaCBpcyBu
b3QgcmVsZXZhbnQgdG8gSlNDLgorICAgICAgICBpZiBub3QgcXVldWUuaXNfZXdzKCk6CisgICAg
ICAgICAgICByZXR1cm4gRmFsc2UKKworICAgICAgICBzdGF0dXMgPSBhdHRhY2htZW50LnN0YXR1
c19mb3JfcXVldWUocXVldWUpCisgICAgICAgIGlmIHF1ZXVlLm5hbWUoKSA9PSAianNjLWV3cyI6
CisgICAgICAgICAgICByZXR1cm4gbm90IHN0YXR1cy5tZXNzYWdlLnN0YXJ0c3dpdGgoIlBhdGNo
IG5vdCBhcHBsaWNhYmxlIikKKyAgICAgICAgcmV0dXJuIGJvb2woc3RhdHVzKQogCiAgICAgZGVm
IF9idWlsZF9idWJibGVzX2Zvcl9hdHRhY2htZW50KHNlbGYsIGF0dGFjaG1lbnQpOgogICAgICAg
ICBzaG93X3N1Ym1pdF90b19ld3MgPSBUcnVlCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2NvbW1vbi9jaGVja291dC9zY20vc2NtX21vY2sucHkgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2NvbW1vbi9jaGVja291dC9zY20vc2NtX21vY2sucHkKaW5kZXggYzVkMTBmY2IxODli
MGE4YjUxOWZhNTU2MjUwMjJhNzBjNDg2ZDQ0Yi4uOTc3NGVjOGFlODczYTFiMGI4Mzc2MDcxODA2
Njc5MjE1ODA5ZWVlYyAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24v
Y2hlY2tvdXQvc2NtL3NjbV9tb2NrLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29t
bW9uL2NoZWNrb3V0L3NjbS9zY21fbW9jay5weQpAQCAtMSw0ICsxLDUgQEAKICMgQ29weXJpZ2h0
IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAo
QykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
IyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMgYXJlCkBAIC0zNyw2ICszOCw3IEBAIGNsYXNzIE1vY2tTQ00ob2JqZWN0KToK
ICAgICAgICAgc2VsZi5hZGRlZF9wYXRocyA9IHNldCgpCiAgICAgICAgIHNlbGYuX2ZpbGVzeXN0
ZW0gPSBmaWxlc3lzdGVtIG9yIE1vY2tGaWxlU3lzdGVtKCkKICAgICAgICAgc2VsZi5fZXhlY3V0
aXZlID0gZXhlY3V0aXZlIG9yIE1vY2tFeGVjdXRpdmUoKQorICAgICAgICBzZWxmLl9tb2NrQ2hh
bmdlZEZpbGVzID0gWyJNb2NrRmlsZTEiXQogCiAgICAgZGVmIGFkZChzZWxmLCBkZXN0aW5hdGlv
bl9wYXRoKToKICAgICAgICAgc2VsZi5hZGRfbGlzdChbZGVzdGluYXRpb25fcGF0aF0pCkBAIC03
MSw3ICs3Myw3IEBAIGNsYXNzIE1vY2tTQ00ob2JqZWN0KToKICAgICAgICAgcmV0dXJuIHNlbGYu
X2ZpbGVzeXN0ZW0uam9pbihzZWxmLmNoZWNrb3V0X3Jvb3QsICpjb21wcykKIAogICAgIGRlZiBj
aGFuZ2VkX2ZpbGVzKHNlbGYsIGdpdF9jb21taXQ9Tm9uZSk6Ci0gICAgICAgIHJldHVybiBbIk1v
Y2tGaWxlMSJdCisgICAgICAgIHJldHVybiBzZWxmLl9tb2NrQ2hhbmdlZEZpbGVzCiAKICAgICBk
ZWYgY2hhbmdlZF9maWxlc19mb3JfcmV2aXNpb24oc2VsZiwgcmV2aXNpb24pOgogICAgICAgICBy
ZXR1cm4gWyJNb2NrRmlsZTEiXQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9j
b21tb24vY29uZmlnL2V3cy5qc29uIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29u
ZmlnL2V3cy5qc29uCmluZGV4IDM1ZDQ5ODVhYjBmOTNkMTI3YjM3MjFlNDYwMWNkNmQ4OWRmY2Nm
M2MuLmU1MzQwZmU1YzNjMjFhZTgxYWQxZWY3ZTAzZjdmYjgxZjM4MzljZmYgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9ld3MuanNvbgorKysgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvZXdzLmpzb24KQEAgLTUwLDUgKzUwLDEx
IEBACiAgICAgICAgICJwb3J0IjogIm1hYyIsCiAgICAgICAgICJuYW1lIjogIm1hYy0zMmJpdC1l
d3MiLAogICAgICAgICAiYXJjaGl0ZWN0dXJlIjogImkzODYiCisgICAgfSwKKyAgICAiSlNDIEVX
UyI6IHsKKyAgICAgICAgInBvcnQiOiAibWFjIiwKKyAgICAgICAgIm5hbWUiOiAianNjLWV3cyIs
CisgICAgICAgICJncm91cCI6ICJqc2MiLAorICAgICAgICAicnVuVGVzdHMiOiB0cnVlCiAgICAg
fQogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL3Bv
cnRzLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL3BvcnRzLnB5Cmlu
ZGV4IGEwZDUwZGNiNmVhMGI1ZmRlMGIzYzE3ZWYxNTljZWFmZWUxYTJlOTguLjEwNTZiYTZjMmVk
ZDg5M2Y1YTU5N2JkYThjNjJjZGZhNTQ4MjRmNGQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvY29tbW9uL2NvbmZpZy9wb3J0cy5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2NvbW1vbi9jb25maWcvcG9ydHMucHkKQEAgLTEsNiArMSw2IEBACiAjIENvcHlyaWdodCAo
QykgMjAwOSwgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMgQ29weXJpZ2h0IChD
KSAyMDEzIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KLSMg
Q29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29w
eXJpZ2h0IChDKSAyMDE1LCAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMK
ICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTEwMyw4ICsxMDMsMjEgQEAgY2xhc3Mg
RGVwcmVjYXRlZFBvcnQob2JqZWN0KToKICAgICAgICAgICAgIGNvbW1hbmQuYXBwZW5kKCItLXJl
bGVhc2UiKQogICAgICAgICByZXR1cm4gY29tbWFuZAogCi0gICAgZGVmIHJ1bl9qYXZhc2NyaXB0
Y29yZV90ZXN0c19jb21tYW5kKHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi5zY3JpcHRfc2hl
bGxfY29tbWFuZCgicnVuLWphdmFzY3JpcHRjb3JlLXRlc3RzIikKKyAgICBkZWYgYnVpbGRfanNj
X2NvbW1hbmQoc2VsZiwgYnVpbGRfc3R5bGU9Tm9uZSk6CisgICAgICAgIGNvbW1hbmQgPSBzZWxm
LnNjcmlwdF9zaGVsbF9jb21tYW5kKCJidWlsZC1qc2MiKQorICAgICAgICBpZiBidWlsZF9zdHls
ZSA9PSAiZGVidWciOgorICAgICAgICAgICAgY29tbWFuZC5hcHBlbmQoIi0tZGVidWciKQorICAg
ICAgICBpZiBidWlsZF9zdHlsZSA9PSAicmVsZWFzZSI6CisgICAgICAgICAgICBjb21tYW5kLmFw
cGVuZCgiLS1yZWxlYXNlIikKKyAgICAgICAgcmV0dXJuIGNvbW1hbmQKKworICAgIGRlZiBydW5f
amF2YXNjcmlwdGNvcmVfdGVzdHNfY29tbWFuZChzZWxmLCBidWlsZF9zdHlsZT1Ob25lKToKKyAg
ICAgICAgY29tbWFuZCA9IHNlbGYuc2NyaXB0X3NoZWxsX2NvbW1hbmQoInJ1bi1qYXZhc2NyaXB0
Y29yZS10ZXN0cyIpCisgICAgICAgIGNvbW1hbmQuYXBwZW5kKCItLW5vLWZhaWwtZmFzdCIpCisg
ICAgICAgIGNvbW1hbmQuYXBwZW5kKCItLWpzb24tb3V0cHV0PWpzY190ZXN0X3Jlc3VsdHMuanNv
biIpCisgICAgICAgIGlmIChidWlsZF9zdHlsZSA9PSAiZGVidWciKToKKyAgICAgICAgICAgIGNv
bW1hbmQuYXBwZW5kKCItLWRlYnVnIikKKyAgICAgICAgcmV0dXJuIGNvbW1hbmQKIAogICAgIGRl
ZiBydW5fd2Via2l0X3Rlc3RzX2NvbW1hbmQoc2VsZiwgYnVpbGRfc3R5bGU9Tm9uZSk6CiAgICAg
ICAgIGNvbW1hbmQgPSBzZWxmLnNjcmlwdF9zaGVsbF9jb21tYW5kKCJydW4td2Via2l0LXRlc3Rz
IikKQEAgLTE1MCw3ICsxNjMsMTAgQEAgY2xhc3MgSU9TU2ltdWxhdG9yV0syUG9ydChEZXByZWNh
dGVkUG9ydCk6CiBjbGFzcyBNYWNQb3J0KERlcHJlY2F0ZWRQb3J0KToKICAgICBwb3J0X2ZsYWdf
bmFtZSA9ICJtYWMiCiAKLSAgICBkZWYgcnVuX3dlYmtpdF90ZXN0c19jb21tYW5kKHNlbGYsIGJ1
aWxkX3N0eWxlPU5vbmUpOgorICAgIGRlZiBydW5fd2Via2l0X3Rlc3RzX2NvbW1hbmQoc2VsZiwg
YnVpbGRfc3R5bGU9Tm9uZSwgdGVzdF9zdWl0ZT1Ob25lKToKKyAgICAgICAgaWYgdGVzdF9zdWl0
ZSA9PSAianNjIjoKKyAgICAgICAgICAgIHJldHVybiBzdXBlcihNYWNQb3J0LCBzZWxmKS5ydW5f
amF2YXNjcmlwdGNvcmVfdGVzdHNfY29tbWFuZChidWlsZF9zdHlsZSkKKwogICAgICAgICBjb21t
YW5kID0gc3VwZXIoTWFjUG9ydCwgc2VsZikucnVuX3dlYmtpdF90ZXN0c19jb21tYW5kKGJ1aWxk
X3N0eWxlKQogICAgICAgICBjb21tYW5kLmFwcGVuZCgiLS1kdW1wLXJlbmRlci10cmVlIikKICAg
ICAgICAgcmV0dXJuIGNvbW1hbmQKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
Y29tbW9uL2NvbmZpZy9wb3J0c19tb2NrLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21t
b24vY29uZmlnL3BvcnRzX21vY2sucHkKaW5kZXggNjE3NDNkZWJiNGViZWUzNzU2YmE3YzIwZjAx
NDgyMzU0MGQyZGNhNi4uY2ExYjE4YTMxMDY4NDIzYmRjZTA3Y2RlYjdkN2Q3ZDE5OWY0MDBhYiAx
MDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL3BvcnRzX21v
Y2sucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL3BvcnRzX21v
Y2sucHkKQEAgLTEsNCArMSw1IEBACiAjIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtNDks
NyArNTAsNyBAQCBjbGFzcyBNb2NrUG9ydChvYmplY3QpOgogICAgIGRlZiBydW5fcGVybF91bml0
dGVzdHNfY29tbWFuZChzZWxmKToKICAgICAgICAgcmV0dXJuIFsnbW9jay10ZXN0LXdlYmtpdHBl
cmwnXQogCi0gICAgZGVmIHJ1bl9qYXZhc2NyaXB0Y29yZV90ZXN0c19jb21tYW5kKHNlbGYpOgor
ICAgIGRlZiBydW5famF2YXNjcmlwdGNvcmVfdGVzdHNfY29tbWFuZChzZWxmLCBidWlsZF9zdHls
ZT1Ob25lKToKICAgICAgICAgcmV0dXJuIFsnbW9jay1ydW4tamF2YWNyaXB0Y29yZS10ZXN0cydd
CiAKICAgICBkZWYgcnVuX3dlYmtpdF90ZXN0c19jb21tYW5kKHNlbGYsIGJ1aWxkX3N0eWxlPU5v
bmUpOgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL3Bv
cnRzX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL3Bv
cnRzX3VuaXR0ZXN0LnB5CmluZGV4IDA4ZDU0NTIzNmRhMzcwM2U5MjhmMWNlZWQxZGQ5MTAyZDli
ODYyMmUuLjE2Y2Q3ZjkyODI1MWJiYzk5NmNiNjQ2ZTQzNTlkNzNmZGI1MzViMjYgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9wb3J0c191bml0dGVzdC5w
eQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvcG9ydHNfdW5pdHRl
c3QucHkKQEAgLTEsNCArMSw1IEBACiAjIENvcHlyaWdodCAoYykgMjAwOSwgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTM5
LDYgKzQwLDEwIEBAIGNsYXNzIERlcHJlY2F0ZWRQb3J0VGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6
CiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTWFjUG9ydCgpLmJ1aWxkX3dlYmtpdF9jb21tYW5k
KGJ1aWxkX3N0eWxlPSJkZWJ1ZyIpLCBEZXByZWNhdGVkUG9ydCgpLnNjcmlwdF9zaGVsbF9jb21t
YW5kKCJidWlsZC13ZWJraXQiKSArIFsiLS1kZWJ1ZyJdKQogICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKE1hY1BvcnQoKS5idWlsZF93ZWJraXRfY29tbWFuZChidWlsZF9zdHlsZT0icmVsZWFzZSIp
LCBEZXByZWNhdGVkUG9ydCgpLnNjcmlwdF9zaGVsbF9jb21tYW5kKCJidWlsZC13ZWJraXQiKSAr
IFsiLS1yZWxlYXNlIl0pCiAKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChNYWNQb3J0KCkuYnVp
bGRfanNjX2NvbW1hbmQoKSwgRGVwcmVjYXRlZFBvcnQoKS5zY3JpcHRfc2hlbGxfY29tbWFuZCgi
YnVpbGQtanNjIikpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTWFjUG9ydCgpLmJ1aWxkX2pz
Y19jb21tYW5kKGJ1aWxkX3N0eWxlPSJyZWxlYXNlIiksIERlcHJlY2F0ZWRQb3J0KCkuc2NyaXB0
X3NoZWxsX2NvbW1hbmQoImJ1aWxkLWpzYyIpICsgWyItLXJlbGVhc2UiXSkKKyAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChNYWNQb3J0KCkuYnVpbGRfanNjX2NvbW1hbmQoYnVpbGRfc3R5bGU9ImRl
YnVnIiksIERlcHJlY2F0ZWRQb3J0KCkuc2NyaXB0X3NoZWxsX2NvbW1hbmQoImJ1aWxkLWpzYyIp
ICsgWyItLWRlYnVnIl0pCisKICAgICBkZWYgdGVzdF9ndGtfd2syX3BvcnQoc2VsZik6CiAgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoR3RrV0syUG9ydCgpLmZsYWcoKSwgIi0tcG9ydD1ndGstd2sy
IikKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChHdGtXSzJQb3J0KCkucnVuX3dlYmtpdF90ZXN0
c19jb21tYW5kKCksIERlcHJlY2F0ZWRQb3J0KCkuc2NyaXB0X3NoZWxsX2NvbW1hbmQoInJ1bi13
ZWJraXQtdGVzdHMiKSArIFsiLS1ndGsiXSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvY29tbW9uL25ldC9qc2N0ZXN0cmVzdWx0cy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvY29tbW9uL25ldC9qc2N0ZXN0cmVzdWx0cy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNTRkNjZhODM0ZWY1
Mjk3OTM1ZWNjYmI1M2RkYzZjMTY0ZWQ1ODJkCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9jb21tb24vbmV0L2pzY3Rlc3RyZXN1bHRzLnB5CkBAIC0wLDAgKzEsODEg
QEAKKyMgQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMg
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IKKyMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwKKyMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworaW1wb3J0IGpzb24K
K2ltcG9ydCBsb2dnaW5nCisKK19sb2cgPSBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVfXykKKwor
CitjbGFzcyBKU0NUZXN0UmVzdWx0cyhvYmplY3QpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBh
bGxfYXBpX3Rlc3RzX3Bhc3NlZCwgc3RyZXNzX3Rlc3RfZmFpbHVyZXMpOgorICAgICAgICBzZWxm
LmFsbF9hcGlfdGVzdHNfcGFzc2VkID0gYWxsX2FwaV90ZXN0c19wYXNzZWQKKyAgICAgICAgc2Vs
Zi5zdHJlc3NfdGVzdF9mYWlsdXJlcyA9IHN0cmVzc190ZXN0X2ZhaWx1cmVzCisKKyAgICAgICAg
c2VsZi5yZXN1bHRzID0gc3RyZXNzX3Rlc3RfZmFpbHVyZXNbOl0KKyAgICAgICAgaWYgbm90IHNl
bGYuYWxsX2FwaV90ZXN0c19wYXNzZWQ6CisgICAgICAgICAgICBzZWxmLnJlc3VsdHMuYXBwZW5k
KCJhcGlUZXN0cyIpCisKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgaW50ZXJzZWN0aW9uKGNs
cywgZmlyc3QsIHNlY29uZCk6CisgICAgICAgIGludGVyc2VjdGlvbl9hcGlfdGVzdHNfcGFzc2Vk
ID0gZmlyc3QuYWxsX2FwaV90ZXN0c19wYXNzZWQgb3Igc2Vjb25kLmFsbF9hcGlfdGVzdHNfcGFz
c2VkCisgICAgICAgIGludGVyc2VjdGlvbl9zdHJlc3NfdGVzdF9mYWlsdXJlcyA9IGxpc3Qoc2V0
KGZpcnN0LnN0cmVzc190ZXN0X2ZhaWx1cmVzKSAmIHNldChzZWNvbmQuc3RyZXNzX3Rlc3RfZmFp
bHVyZXMpKQorICAgICAgICByZXR1cm4gY2xzKGludGVyc2VjdGlvbl9hcGlfdGVzdHNfcGFzc2Vk
LCBpbnRlcnNlY3Rpb25fc3RyZXNzX3Rlc3RfZmFpbHVyZXMpCisKKyAgICBAY2xhc3NtZXRob2QK
KyAgICBkZWYgcmVzdWx0c19mcm9tX3N0cmluZyhjbHMsIHN0cmluZyk6CisgICAgICAgIGlmIG5v
dCBzdHJpbmc6CisgICAgICAgICAgICByZXR1cm4gTm9uZQorCisgICAgICAgIHRyeToKKyAgICAg
ICAgICAgIHBhcnNlZF9yZXN1bHRzID0ganNvbi5sb2FkcyhzdHJpbmcpCisgICAgICAgIGV4Y2Vw
dCBWYWx1ZUVycm9yOgorICAgICAgICAgICAgX2xvZy5lcnJvcigiSW52YWxpZCBKU09OIHJlc3Vs
dHMiKQorICAgICAgICAgICAgcmV0dXJuIE5vbmUKKworICAgICAgICBpZiAnYWxsQXBpVGVzdHNQ
YXNzZWQnIG5vdCBpbiBwYXJzZWRfcmVzdWx0cyBvciAnc3RyZXNzVGVzdEZhaWx1cmVzJyBub3Qg
aW4gcGFyc2VkX3Jlc3VsdHM6CisgICAgICAgICAgICByZXR1cm4gTm9uZQorCisgICAgICAgIHJl
dHVybiBjbHMocGFyc2VkX3Jlc3VsdHNbJ2FsbEFwaVRlc3RzUGFzc2VkJ10sIHBhcnNlZF9yZXN1
bHRzWydzdHJlc3NUZXN0RmFpbHVyZXMnXSkKKworICAgIGRlZiBlcXVhbHMoc2VsZiwgb3RoZXIp
OgorICAgICAgICByZXR1cm4gKHNlbGYuYWxsX2FwaV90ZXN0c19wYXNzZWQgPT0gb3RoZXIuYWxs
X2FwaV90ZXN0c19wYXNzZWQgYW5kCisgICAgICAgICAgICAgICBzZXQoc2VsZi5zdHJlc3NfdGVz
dF9mYWlsdXJlcykgPT0gc2V0KG90aGVyLnN0cmVzc190ZXN0X2ZhaWx1cmVzKSkKKworICAgIGRl
ZiBpc19zdWJzZXQoc2VsZiwgb3RoZXIpOgorICAgICAgICByZXR1cm4gc2V0KHNlbGYucmVzdWx0
cykgPD0gc2V0KG90aGVyLnJlc3VsdHMpCisKKyAgICBkZWYgYWxsX3Bhc3NlZChzZWxmKToKKyAg
ICAgICAgcmV0dXJuIHNlbGYuYWxsX2FwaV90ZXN0c19wYXNzZWQgYW5kIG5vdCBzZWxmLnN0cmVz
c190ZXN0X2ZhaWx1cmVzCisKKyAgICBkZWYgZmFpbGluZ190ZXN0X3Jlc3VsdHMoc2VsZik6Cisg
ICAgICAgIHJldHVybiBzZWxmLnJlc3VsdHMKKworICAgIGRlZiB0ZXN0X3Jlc3VsdHMoc2VsZik6
CisgICAgICAgIHJldHVybiBzZWxmLnJlc3VsdHMKKworICAgIGRlZiBmYWlsaW5nX3Rlc3RzKHNl
bGYpOgorICAgICAgICByZXR1cm4gc2VsZi5yZXN1bHRzCisKKyAgICAjIE5vIGRlZmluZWQgZmFp
bHVyZSBsaW1pdCBmb3IgSlNDLgorICAgIGRlZiBkaWRfZXhjZWVkX3Rlc3RfZmFpbHVyZV9saW1p
dChzZWxmKToKKyAgICAgICAgcmV0dXJuIEZhbHNlCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2NvbW1vbi9uZXQvanNjdGVzdHJlc3VsdHNfdW5pdHRlc3QucHkgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvanNjdGVzdHJlc3VsdHNfdW5pdHRlc3QucHkKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZTZmOTllMzQxNTY0ZTFlODkxZTNiMmY3Y2NlYWI4YjdjNzFhNzM0YgotLS0gL2Rl
di9udWxsCisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9qc2N0ZXN0cmVz
dWx0c191bml0dGVzdC5weQpAQCAtMCwwICsxLDc1IEBACisjIENvcHlyaWdodCAoQykgMjAxNyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
IyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBB
TkQKKyMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUgorIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisjIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisjIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSCisjIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisjIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisKK2ltcG9ydCB1bml0dGVzdAorCitmcm9tIHdlYmtpdHB5LmNvbW1v
bi5uZXQuanNjdGVzdHJlc3VsdHMgaW1wb3J0IEpTQ1Rlc3RSZXN1bHRzCisKKworY2xhc3MgSlND
VGVzdFJlc3VsdHNUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICBkZWYgdGVzdF9yZXN1bHRz
X2Zyb21fc3RyaW5nKHNlbGYpOgorICAgICAgICBub25lX2l0ZW0gPSBOb25lCisgICAgICAgIGVt
cHR5X2pzb24gPSAiIgorICAgICAgICBpbnZhbGlkX2pzb24gPSAneyJhbGxBcGlUZXN0c1Bhc3Nl
ZCI6JworICAgICAgICBpbmNvbXBsZXRlX2pzb25fdjEgPSAneyJhbGxBcGlUZXN0c1Bhc3NlZCI6
IHRydWV9JworICAgICAgICBpbmNvbXBsZXRlX2pzb25fdjIgPSAneyJzdHJlc3NUZXN0RmFpbHVy
ZXMiOltdfScKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCBKU0NUZXN0UmVzdWx0cy5y
ZXN1bHRzX2Zyb21fc3RyaW5nKG5vbmVfaXRlbSkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
Tm9uZSwgSlNDVGVzdFJlc3VsdHMucmVzdWx0c19mcm9tX3N0cmluZyhlbXB0eV9qc29uKSkKKyAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCBKU0NUZXN0UmVzdWx0cy5yZXN1bHRzX2Zyb21f
c3RyaW5nKGludmFsaWRfanNvbikpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgSlND
VGVzdFJlc3VsdHMucmVzdWx0c19mcm9tX3N0cmluZyhpbmNvbXBsZXRlX2pzb25fdjEpKQorICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIEpTQ1Rlc3RSZXN1bHRzLnJlc3VsdHNfZnJvbV9z
dHJpbmcoaW5jb21wbGV0ZV9qc29uX3YyKSkKKworICAgICAgICBub19mYWlsdXJlc19zdHJpbmcg
PSAneyJhbGxBcGlUZXN0c1Bhc3NlZCI6IHRydWUsICJzdHJlc3NUZXN0RmFpbHVyZXMiOltdfScK
KyAgICAgICAgbm9fZmFpbHVyZXNfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFtdKQor
ICAgICAgICBzZWxmLmFzc2VydFRydWUobm9fZmFpbHVyZXNfcmVzdWx0cy5lcXVhbHMoSlNDVGVz
dFJlc3VsdHMucmVzdWx0c19mcm9tX3N0cmluZyhub19mYWlsdXJlc19zdHJpbmcpKSkKKworICAg
ICAgICBhcGlfdGVzdF9mYWlsdXJlc19zdHJpbmcgPSAneyJhbGxBcGlUZXN0c1Bhc3NlZCI6IGZh
bHNlLCAic3RyZXNzVGVzdEZhaWx1cmVzIjpbXX0nCisgICAgICAgIGFwaV90ZXN0X2ZhaWx1cmVz
X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhGYWxzZSwgW10pCisgICAgICAgIHNlbGYuYXNzZXJ0
VHJ1ZShhcGlfdGVzdF9mYWlsdXJlc19yZXN1bHRzLmVxdWFscyhKU0NUZXN0UmVzdWx0cy5yZXN1
bHRzX2Zyb21fc3RyaW5nKGFwaV90ZXN0X2ZhaWx1cmVzX3N0cmluZykpKQorCisgICAgICAgIG1h
bnlfZmFpbHVyZXNfc3RyaW5nID0gJ3siYWxsQXBpVGVzdHNQYXNzZWQiOiBmYWxzZSwgInN0cmVz
c1Rlc3RGYWlsdXJlcyI6WyJlczYueWFtbC9lczYvdHlwZWRfYXJyYXlzX0ludDE2QXJyYXkuanMu
ZGVmYXVsdCIsICJlczYueWFtbC9lczYvdHlwZWRfYXJyYXlzX0ludDhBcnJheS5qcy5kZWZhdWx0
Il19JworICAgICAgICBtYW55X2ZhaWx1cmVzX3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhGYWxz
ZSwgWyJlczYueWFtbC9lczYvdHlwZWRfYXJyYXlzX0ludDE2QXJyYXkuanMuZGVmYXVsdCIsICJl
czYueWFtbC9lczYvdHlwZWRfYXJyYXlzX0ludDhBcnJheS5qcy5kZWZhdWx0Il0pCisgICAgICAg
IHNlbGYuYXNzZXJ0VHJ1ZShtYW55X2ZhaWx1cmVzX3Jlc3VsdHMuZXF1YWxzKEpTQ1Rlc3RSZXN1
bHRzLnJlc3VsdHNfZnJvbV9zdHJpbmcobWFueV9mYWlsdXJlc19zdHJpbmcpKSkKKworICAgICAg
ICBzZWxmLmFzc2VydEZhbHNlKG5vX2ZhaWx1cmVzX3Jlc3VsdHMgPT0gYXBpX3Rlc3RfZmFpbHVy
ZXNfcmVzdWx0cykKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShhcGlfdGVzdF9mYWlsdXJlc19y
ZXN1bHRzID09IG1hbnlfZmFpbHVyZXNfcmVzdWx0cykKKworICAgIGRlZiB0ZXN0X2ludGVyc2Vj
dGlvbl9hcGlfdGVzdHMoc2VsZik6CisgICAgICAgIHJlc3VsdHMxID0gSlNDVGVzdFJlc3VsdHMo
RmFsc2UsIFtdKQorICAgICAgICByZXN1bHRzMiA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFtdKQor
CisgICAgICAgIGV4cGVjdGVkX2ludGVyc2VjdGlvbiA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFtd
KQorICAgICAgICBzZWxmLmFzc2VydFRydWUoZXhwZWN0ZWRfaW50ZXJzZWN0aW9uLmVxdWFscyhK
U0NUZXN0UmVzdWx0cy5pbnRlcnNlY3Rpb24ocmVzdWx0czEsIHJlc3VsdHMyKSkpCisKKyAgICBk
ZWYgdGVzdF9pbnRlcnNlY3Rpb25fc3RyZXNzX3Rlc3RzKHNlbGYpOgorICAgICAgICByZXN1bHRz
MSA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFsnZmFpbHVyZTEnLCAnZmFpbHVyZTInXSkKKyAgICAg
ICAgcmVzdWx0czIgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbJ2ZhaWx1cmUxJywgJ2ZhaWx1cmUz
J10pCisKKyAgICAgICAgZXhwZWN0ZWRfaW50ZXJzZWN0aW9uID0gSlNDVGVzdFJlc3VsdHMoVHJ1
ZSwgWydmYWlsdXJlMSddKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoZXhwZWN0ZWRfaW50ZXJz
ZWN0aW9uLmVxdWFscyhKU0NUZXN0UmVzdWx0cy5pbnRlcnNlY3Rpb24ocmVzdWx0czEsIHJlc3Vs
dHMyKSkpCisKKyAgICBkZWYgdGVzdF9pbnRlcnNlY3Rpb25fZ2VuZXJhbF9jYXNlKHNlbGYpOgor
ICAgICAgICByZXN1bHRzMSA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFsnZmFpbHVyZTEnLCAnZmFp
bHVyZTInXSkKKyAgICAgICAgcmVzdWx0czIgPSBKU0NUZXN0UmVzdWx0cyhGYWxzZSwgWydmYWls
dXJlMSddKQorCisgICAgICAgIGV4cGVjdGVkX2ludGVyc2VjdGlvbiA9IEpTQ1Rlc3RSZXN1bHRz
KFRydWUsIFsnZmFpbHVyZTEnXSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGV4cGVjdGVkX2lu
dGVyc2VjdGlvbi5lcXVhbHMoSlNDVGVzdFJlc3VsdHMuaW50ZXJzZWN0aW9uKHJlc3VsdHMxLCBy
ZXN1bHRzMikpKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9l
YXJseXdhcm5pbmdzeXN0ZW10YXNrLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2Jv
dC9lYXJseXdhcm5pbmdzeXN0ZW10YXNrLnB5CmluZGV4IGZjMzA4YjQzZDFkMTcyYWI3M2IwZTNh
ZjgwZDFiMTM5ZGQzYzEwMzIuLmVjZmFjZDAxMWJlODgzYjRiYjFlNWM3ZDdkZmZkYmRjYjQ1OWRl
MzUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvZWFybHl3YXJu
aW5nc3lzdGVtdGFzay5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2Vh
cmx5d2FybmluZ3N5c3RlbXRhc2sucHkKQEAgLTEsNCArMSw1IEBACiAjIENvcHlyaWdodCAoYykg
MjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIw
MTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zIGFyZQpAQCAtMjYsNyArMjcsNyBAQAogIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKICMgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KIAotZnJvbSB3ZWJraXRweS50b29sLmJvdC5wYXRjaGFuYWx5c2lzdGFzayBpbXBvcnQgUGF0
Y2hBbmFseXNpc1Rhc2ssIFBhdGNoQW5hbHlzaXNUYXNrRGVsZWdhdGUsIFVuYWJsZVRvQXBwbHlQ
YXRjaCwgUGF0Y2hJc05vdFZhbGlkCitmcm9tIHdlYmtpdHB5LnRvb2wuYm90LnBhdGNoYW5hbHlz
aXN0YXNrIGltcG9ydCBQYXRjaEFuYWx5c2lzVGFzaywgUGF0Y2hBbmFseXNpc1Rhc2tEZWxlZ2F0
ZSwgVW5hYmxlVG9BcHBseVBhdGNoLCBQYXRjaElzTm90VmFsaWQsIFBhdGNoSXNOb3RBcHBsaWNh
YmxlCiAKIAogY2xhc3MgRWFybHlXYXJuaW5nU3lzdGVtVGFza0RlbGVnYXRlKFBhdGNoQW5hbHlz
aXNUYXNrRGVsZWdhdGUpOgpAQCAtNTgsNiArNTksOCBAQCBjbGFzcyBFYXJseVdhcm5pbmdTeXN0
ZW1UYXNrKFBhdGNoQW5hbHlzaXNUYXNrKToKICAgICAgICAgICAgIHJldHVybiBGYWxzZQogICAg
ICAgICBpZiBub3Qgc2VsZi5fYXBwbHkoKToKICAgICAgICAgICAgIHJhaXNlIFVuYWJsZVRvQXBw
bHlQYXRjaChzZWxmLl9wYXRjaCkKKyAgICAgICAgaWYgbm90IHNlbGYuX2NoZWNrX3BhdGNoX3Jl
bGV2YW5jZSgpOgorICAgICAgICAgICAgcmFpc2UgUGF0Y2hJc05vdEFwcGxpY2FibGUoc2VsZi5f
cGF0Y2gpCiAgICAgICAgIGlmIG5vdCBzZWxmLl9idWlsZCgpOgogICAgICAgICAgICAgaWYgbm90
IHNlbGYuX2J1aWxkX3dpdGhvdXRfcGF0Y2goKToKICAgICAgICAgICAgICAgICByZXR1cm4gRmFs
c2UKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvanNjZXdzX3Vu
aXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9qc2Nld3NfdW5pdHRl
c3QucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNTkzZDQ5YjNlZTc1NWI2OWExODE2OTI2ZmNkZDE3ZTU0MWNlMjhj
NgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvanNj
ZXdzX3VuaXR0ZXN0LnB5CkBAIC0wLDAgKzEsMjE4IEBACisjIENvcHlyaWdodCAoQykgMjAxNyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
IyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBB
TkQKKyMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUgorIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisjIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisjIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSCisjIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisjIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisKK2ltcG9ydCBsb2dnaW5nCitpbXBvcnQgdW5pdHRlc3QKKworZnJv
bSB3ZWJraXRweS5jb21tb24ubmV0LmpzY3Rlc3RyZXN1bHRzIGltcG9ydCBKU0NUZXN0UmVzdWx0
cworZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmV4ZWN1dGl2ZSBpbXBvcnQgU2NyaXB0RXJy
b3IKK2Zyb20gd2Via2l0cHkudG9vbC5ib3QucGF0Y2hhbmFseXNpc3Rhc2sgaW1wb3J0ICoKK2Zy
b20gd2Via2l0cHkudG9vbC5jb21tYW5kcy5lYXJseXdhcm5pbmdzeXN0ZW0gaW1wb3J0IEFic3Ry
YWN0RWFybHlXYXJuaW5nU3lzdGVtCitmcm9tIHdlYmtpdHB5LnRvb2wubW9ja3Rvb2wgaW1wb3J0
IE1vY2tUb29sCisKK19sb2cgPSBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVfXykKKworCitjbGFz
cyBNb2NrUGF0Y2hBbmFseXNpc1Rhc2soUGF0Y2hBbmFseXNpc1Rhc2spOgorICAgIGRlZiBfX2lu
aXRfXyhzZWxmLCBkZWxlZ2F0ZSwgcGF0Y2gsIHBhdGNoZXNfcGFzc2VkX2FsbF90ZXN0cyk6Cisg
ICAgICAgIHNlbGYuX2RlbGVnYXRlID0gZGVsZWdhdGUKKyAgICAgICAgc2VsZi5fcGF0Y2ggPSBw
YXRjaAorICAgICAgICBzZWxmLl9zY3JpcHRfZXJyb3IgPSBOb25lCisgICAgICAgIHNlbGYuX3Jl
c3VsdHNfYXJjaGl2ZV9mcm9tX3BhdGNoX3Rlc3RfcnVuID0gTm9uZQorICAgICAgICBzZWxmLl9y
ZXN1bHRzX2Zyb21fcGF0Y2hfdGVzdF9ydW4gPSBOb25lCisgICAgICAgIHNlbGYuZXJyb3IgPSBO
b25lCisgICAgICAgIHNlbGYuX3BhdGNoZXNfcGFzc2VkX2FsbF90ZXN0cyA9IHBhdGNoZXNfcGFz
c2VkX2FsbF90ZXN0cworICAgICAgICBzZWxmLl90ZXN0X3J1bl9jb3VudCA9IDAKKyAgICAgICAg
c2VsZi5mYWlsdXJlX3N0YXR1c19pZCA9IDAKKworICAgIGRlZiBfdGVzdChzZWxmKToKKyAgICAg
ICAgc2VsZi5fdGVzdF9ydW5fY291bnQgKz0gMQorCisgICAgICAgIGlmIHNlbGYuX3BhdGNoZXNf
cGFzc2VkX2FsbF90ZXN0cy5wb3AoKSA9PSBUcnVlOgorICAgICAgICAgICAgcmV0dXJuIFRydWUK
KyAgICAgICAgc2VsZi5fc2NyaXB0X2Vycm9yID0gU2NyaXB0RXJyb3IoIlJlZ3Jlc3Npb24gdGVz
dCIpCisgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgZGVmIF9idWlsZF9hbmRfdGVzdF93aXRo
b3V0X3BhdGNoKHNlbGYpOgorICAgICAgICBzZWxmLl90ZXN0X3J1bl9jb3VudCArPSAxCisgICAg
ICAgIHJldHVybiBUcnVlCisKKyAgICBkZWYgdmFsaWRhdGUoc2VsZik6CisgICAgICAgIHJldHVy
biBUcnVlCisKKyAgICBkZWYgdGVzdF9ydW5fY291bnQoc2VsZik6CisgICAgICAgIHJldHVybiBz
ZWxmLl90ZXN0X3J1bl9jb3VudAorCisKKyMgVGhpcyBpcyB0aGUgZGVsZWdhdGUgdG8gYmUgdXNl
ZCB3aXRoIE1vY2tQYXRjaEFuYWx5c2lzVGFzaywgYWJvdmUuCitjbGFzcyBNb2NrSlNDRWFybHlX
YXJuaW5nU3lzdGVtKEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtKToKKyAgICBkZWYgX19pbml0
X18oc2VsZiwgZmlyc3RfdGVzdF9yZXN1bHRzLCBzZWNvbmRfdGVzdF9yZXN1bHRzLCBjbGVhbl90
ZXN0X3Jlc3VsdHMpOgorICAgICAgICBBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbS5fX2luaXRf
XyhzZWxmKQorICAgICAgICBzZWxmLl9ncm91cCA9ICJqc2MiCisgICAgICAgIHNlbGYuX3Jlc3Vs
dHNfaW5fb3JkZXIgPSBbY2xlYW5fdGVzdF9yZXN1bHRzLCBzZWNvbmRfdGVzdF9yZXN1bHRzLCBm
aXJzdF90ZXN0X3Jlc3VsdHNdCisKKyAgICBkZWYgdGVzdF9yZXN1bHRzKHNlbGYpOgorICAgICAg
ICByZXR1cm4gc2VsZi5fcmVzdWx0c19pbl9vcmRlci5wb3AoKQorCisKK2NsYXNzIEpTQ0Vhcmx5
V2FybmluZ1N5c3RlbVRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgorICAgIGRlZiBfcmVzdWx0c19p
bmRpY2F0ZV9hbGxfcGFzc2VkKHNlbGYsIHJlc3VsdHMpOgorICAgICAgICBpZiByZXN1bHRzID09
IE5vbmU6CisgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgcmV0dXJuIHJlc3VsdHMu
YWxsX3Bhc3NlZCgpCisKKyAgICBkZWYgX2NyZWF0ZV90YXNrKHNlbGYsIGZpcnN0X3Rlc3RfcmVz
dWx0cywgc2Vjb25kX3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKToKKyAgICAgICAg
cXVldWUgPSBNb2NrSlNDRWFybHlXYXJuaW5nU3lzdGVtKGZpcnN0X3Rlc3RfcmVzdWx0cywgc2Vj
b25kX3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKQorICAgICAgICB0b29sID0gTW9j
a1Rvb2wobG9nX2V4ZWN1dGl2ZT1UcnVlKQorICAgICAgICBwYXRjaCA9IHRvb2wuYnVncy5mZXRj
aF9hdHRhY2htZW50KDEwMDAwKQorICAgICAgICBwYXRjaGVzX3Bhc3NlZF9hbGxfdGVzdHMgPSBt
YXAoc2VsZi5fcmVzdWx0c19pbmRpY2F0ZV9hbGxfcGFzc2VkLCBbc2Vjb25kX3Rlc3RfcmVzdWx0
cywgZmlyc3RfdGVzdF9yZXN1bHRzXSkKKyAgICAgICAgcmV0dXJuIE1vY2tQYXRjaEFuYWx5c2lz
VGFzayhxdWV1ZSwgcGF0Y2gsIHBhdGNoZXNfcGFzc2VkX2FsbF90ZXN0cykKKworICAgIGRlZiB0
ZXN0X3N1Y2Nlc3NfY2FzZShzZWxmKToKKyAgICAgICAgZmlyc3RfdGVzdF9yZXN1bHRzID0gSlND
VGVzdFJlc3VsdHMoVHJ1ZSwgW10pCisgICAgICAgIHNlY29uZF90ZXN0X3Jlc3VsdHMgPSBKU0NU
ZXN0UmVzdWx0cyhUcnVlLCBbXSkKKyAgICAgICAgY2xlYW5fdGVzdF9yZXN1bHRzID0gSlNDVGVz
dFJlc3VsdHMoVHJ1ZSwgW10pCisgICAgICAgIHRhc2sgPSBzZWxmLl9jcmVhdGVfdGFzayhmaXJz
dF90ZXN0X3Jlc3VsdHMsIHNlY29uZF90ZXN0X3Jlc3VsdHMsIGNsZWFuX3Rlc3RfcmVzdWx0cykK
KworICAgICAgICByZXR1cm5fdmFsdWUgPSB0YXNrLl90ZXN0X3BhdGNoKCkKKyAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbCh0YXNrLnRlc3RfcnVuX2NvdW50KCksIDEpCisgICAgICAgIHNlbGYuYXNz
ZXJ0VHJ1ZShyZXR1cm5fdmFsdWUpCisKKyAgICBkZWYgdGVzdF90ZXN0X2ZhaWx1cmUoc2VsZik6
CisgICAgICAgIGZpcnN0X3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFsnRmFp
bC5qcyddKQorICAgICAgICBzZWNvbmRfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1
ZSwgWydGYWlsLmpzJ10pCisgICAgICAgIGNsZWFuX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1
bHRzKFRydWUsIFtdKQorICAgICAgICB0YXNrID0gc2VsZi5fY3JlYXRlX3Rhc2soZmlyc3RfdGVz
dF9yZXN1bHRzLCBzZWNvbmRfdGVzdF9yZXN1bHRzLCBjbGVhbl90ZXN0X3Jlc3VsdHMpCisKKyAg
ICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhTY3JpcHRFcnJvcik6CisgICAgICAgICAgICBy
ZXR1cm5fdmFsdWUgPSB0YXNrLl90ZXN0X3BhdGNoKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCh0YXNrLnRlc3RfcnVuX2NvdW50KCksIDMpCisKKyAgICBkZWYgdGVzdF9maXgoc2VsZik6Cisg
ICAgICAgIGZpcnN0X3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFtdKQorICAg
ICAgICBzZWNvbmRfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgW10pCisgICAg
ICAgIGNsZWFuX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFsnRmFpbC5qcydd
KQorICAgICAgICB0YXNrID0gc2VsZi5fY3JlYXRlX3Rhc2soZmlyc3RfdGVzdF9yZXN1bHRzLCBz
ZWNvbmRfdGVzdF9yZXN1bHRzLCBjbGVhbl90ZXN0X3Jlc3VsdHMpCisKKyAgICAgICAgcmV0dXJu
X3ZhbHVlID0gdGFzay5fdGVzdF9wYXRjaCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGFz
ay50ZXN0X3J1bl9jb3VudCgpLCAxKQorICAgICAgICBzZWxmLmFzc2VydFRydWUocmV0dXJuX3Zh
bHVlKQorCisgICAgZGVmIHRlc3RfaW5lZmZlY3RpdmVfcGF0Y2goc2VsZik6CisgICAgICAgIGZp
cnN0X3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKEZhbHNlLCBbJ2ZhaWx1cmUxLmpzJywg
J2ZhaWx1cmUyLmpzJ10pCisgICAgICAgIHNlY29uZF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVz
dWx0cyhGYWxzZSwgWydmYWlsdXJlMS5qcycsICdmYWlsdXJlMi5qcyddKQorICAgICAgICBjbGVh
bl90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhGYWxzZSwgWydmYWlsdXJlMS5qcycsICdm
YWlsdXJlMi5qcyddKQorICAgICAgICB0YXNrID0gc2VsZi5fY3JlYXRlX3Rhc2soZmlyc3RfdGVz
dF9yZXN1bHRzLCBzZWNvbmRfdGVzdF9yZXN1bHRzLCBjbGVhbl90ZXN0X3Jlc3VsdHMpCisKKyAg
ICAgICAgcmV0dXJuX3ZhbHVlID0gdGFzay5fdGVzdF9wYXRjaCgpCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwodGFzay50ZXN0X3J1bl9jb3VudCgpLCAzKQorICAgICAgICBzZWxmLmFzc2VydFRy
dWUocmV0dXJuX3ZhbHVlKQorCisgICAgZGVmIHRlc3RfcGFydGlhbGx5X2VmZmVjdGl2ZV9wYXRj
aChzZWxmKToKKyAgICAgICAgZmlyc3RfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1
ZSwgWydmYWlsdXJlMi5qcyddKQorICAgICAgICBzZWNvbmRfdGVzdF9yZXN1bHRzID0gSlNDVGVz
dFJlc3VsdHMoVHJ1ZSwgWydmYWlsdXJlMi5qcyddKQorICAgICAgICBjbGVhbl90ZXN0X3Jlc3Vs
dHMgPSBKU0NUZXN0UmVzdWx0cyhGYWxzZSwgWydmYWlsdXJlMS5qcycsICdmYWlsdXJlMi5qcydd
KQorICAgICAgICB0YXNrID0gc2VsZi5fY3JlYXRlX3Rhc2soZmlyc3RfdGVzdF9yZXN1bHRzLCBz
ZWNvbmRfdGVzdF9yZXN1bHRzLCBjbGVhbl90ZXN0X3Jlc3VsdHMpCisKKyAgICAgICAgcmV0dXJu
X3ZhbHVlID0gdGFzay5fdGVzdF9wYXRjaCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGFz
ay50ZXN0X3J1bl9jb3VudCgpLCAzKQorICAgICAgICBzZWxmLmFzc2VydFRydWUocmV0dXJuX3Zh
bHVlKQorCisgICAgZGVmIHRlc3RfZGlmZmVyZW50X3Rlc3RfZmFpbHVyZXNfaW5fcGF0Y2hfYW5k
X3RyZWUoc2VsZik6CisgICAgICAgIGZpcnN0X3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRz
KEZhbHNlLCBbXSkKKyAgICAgICAgc2Vjb25kX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRz
KEZhbHNlLCBbXSkKKyAgICAgICAgY2xlYW5fdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMo
VHJ1ZSwgWydmYWlsdXJlMS5qcycsICdmYWlsdXJlMi5qcyddKQorICAgICAgICB0YXNrID0gc2Vs
Zi5fY3JlYXRlX3Rhc2soZmlyc3RfdGVzdF9yZXN1bHRzLCBzZWNvbmRfdGVzdF9yZXN1bHRzLCBj
bGVhbl90ZXN0X3Jlc3VsdHMpCisKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhTY3Jp
cHRFcnJvcik6CisgICAgICAgICAgICByZXR1cm5fdmFsdWUgPSB0YXNrLl90ZXN0X3BhdGNoKCkK
KyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0YXNrLnRlc3RfcnVuX2NvdW50KCksIDMpCisKKyAg
ICBkZWYgdGVzdF9maXJzdF9yZXN1bHRzX2NvdWxkX25vdF9iZV9yZWFkKHNlbGYpOgorICAgICAg
ICBmaXJzdF90ZXN0X3Jlc3VsdHMgPSBOb25lCisgICAgICAgIHNlY29uZF90ZXN0X3Jlc3VsdHMg
PSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbXSkKKyAgICAgICAgY2xlYW5fdGVzdF9yZXN1bHRzID0g
SlNDVGVzdFJlc3VsdHMoVHJ1ZSwgW10pCisgICAgICAgIHRhc2sgPSBzZWxmLl9jcmVhdGVfdGFz
ayhmaXJzdF90ZXN0X3Jlc3VsdHMsIHNlY29uZF90ZXN0X3Jlc3VsdHMsIGNsZWFuX3Rlc3RfcmVz
dWx0cykKKworICAgICAgICByZXR1cm5fdmFsdWUgPSB0YXNrLl90ZXN0X3BhdGNoKCkKKyAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbCh0YXNrLnRlc3RfcnVuX2NvdW50KCksIDEpCisgICAgICAgIHNl
bGYuYXNzZXJ0RmFsc2UocmV0dXJuX3ZhbHVlKQorCisgICAgZGVmIHRlc3Rfc2Vjb25kX3Jlc3Vs
dHNfY291bGRfbm90X2JlX3JlYWQoc2VsZik6CisgICAgICAgIGZpcnN0X3Rlc3RfcmVzdWx0cyA9
IEpTQ1Rlc3RSZXN1bHRzKEZhbHNlLCBbJ2ZhaWx1cmUxLmpzJywgJ2ZhaWx1cmUyLmpzJ10pCisg
ICAgICAgIHNlY29uZF90ZXN0X3Jlc3VsdHMgPSBOb25lCisgICAgICAgIGNsZWFuX3Rlc3RfcmVz
dWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFtdKQorICAgICAgICB0YXNrID0gc2VsZi5fY3Jl
YXRlX3Rhc2soZmlyc3RfdGVzdF9yZXN1bHRzLCBzZWNvbmRfdGVzdF9yZXN1bHRzLCBjbGVhbl90
ZXN0X3Jlc3VsdHMpCisKKyAgICAgICAgcmV0dXJuX3ZhbHVlID0gdGFzay5fdGVzdF9wYXRjaCgp
CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGFzay50ZXN0X3J1bl9jb3VudCgpLCAyKQorICAg
ICAgICBzZWxmLmFzc2VydEZhbHNlKHJldHVybl92YWx1ZSkKKworICAgIGRlZiB0ZXN0X2NsZWFu
X3Jlc3VsdHNfY291bGRfbm90X2JlX3JlYWQoc2VsZik6CisgICAgICAgIGZpcnN0X3Rlc3RfcmVz
dWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFsnZmFpbHVyZTIuanMnXSkKKyAgICAgICAgc2Vj
b25kX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFsnZmFpbHVyZTIuanMnXSkK
KyAgICAgICAgY2xlYW5fdGVzdF9yZXN1bHRzID0gTm9uZQorICAgICAgICB0YXNrID0gc2VsZi5f
Y3JlYXRlX3Rhc2soZmlyc3RfdGVzdF9yZXN1bHRzLCBzZWNvbmRfdGVzdF9yZXN1bHRzLCBjbGVh
bl90ZXN0X3Jlc3VsdHMpCisKKyAgICAgICAgcmV0dXJuX3ZhbHVlID0gdGFzay5fdGVzdF9wYXRj
aCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGFzay50ZXN0X3J1bl9jb3VudCgpLCAzKQor
ICAgICAgICBzZWxmLmFzc2VydEZhbHNlKHJldHVybl92YWx1ZSkKKworICAgIGRlZiB0ZXN0X2Zs
YWt5X3Jlc3VsdHNfb25fY2xlYW5fdHJlZV9wYXNzKHNlbGYpOgorICAgICAgICBmaXJzdF90ZXN0
X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbJ2ZhaWx1cmUyLmpzJ10pCisgICAgICAg
IHNlY29uZF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbXSkKKyAgICAgICAg
Y2xlYW5fdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgW10pCisgICAgICAgIHRh
c2sgPSBzZWxmLl9jcmVhdGVfdGFzayhmaXJzdF90ZXN0X3Jlc3VsdHMsIHNlY29uZF90ZXN0X3Jl
c3VsdHMsIGNsZWFuX3Rlc3RfcmVzdWx0cykKKworICAgICAgICByZXR1cm5fdmFsdWUgPSB0YXNr
Ll90ZXN0X3BhdGNoKCkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHJldHVybl92YWx1ZSkKKyAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0YXNrLnRlc3RfcnVuX2NvdW50KCksIDIpCisKKyAgICBk
ZWYgdGVzdF9mbGFreV9yZXN1bHRzX29uX2NsZWFuX3RyZWVfcGFzc192MihzZWxmKToKKyAgICAg
ICAgZmlyc3RfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgW10pCisgICAgICAg
IHNlY29uZF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbJ2ZhaWx1cmUyLmpz
J10pCisgICAgICAgIGNsZWFuX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFtd
KQorICAgICAgICB0YXNrID0gc2VsZi5fY3JlYXRlX3Rhc2soZmlyc3RfdGVzdF9yZXN1bHRzLCBz
ZWNvbmRfdGVzdF9yZXN1bHRzLCBjbGVhbl90ZXN0X3Jlc3VsdHMpCisKKyAgICAgICAgcmV0dXJu
X3ZhbHVlID0gdGFzay5fdGVzdF9wYXRjaCgpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZXR1
cm5fdmFsdWUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGFzay50ZXN0X3J1bl9jb3VudCgp
LCAxKQorCisgICAgZGVmIHRlc3RfZmxha3lfcmVzdWx0c19vbl9jbGVhbl90cmVlX2ZhaWx1cmUo
c2VsZik6CisgICAgICAgIGZpcnN0X3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKEZhbHNl
LCBbJ2ZhaWx1cmUxLmpzJywgJ2ZhaWx1cmUyLmpzJ10pCisgICAgICAgIHNlY29uZF90ZXN0X3Jl
c3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbJ2ZhaWx1cmUyLmpzJ10pCisgICAgICAgIGNs
ZWFuX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFtdKQorICAgICAgICB0YXNr
ID0gc2VsZi5fY3JlYXRlX3Rhc2soZmlyc3RfdGVzdF9yZXN1bHRzLCBzZWNvbmRfdGVzdF9yZXN1
bHRzLCBjbGVhbl90ZXN0X3Jlc3VsdHMpCisKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNl
cyhTY3JpcHRFcnJvcik6CisgICAgICAgICAgICB0YXNrLl90ZXN0X3BhdGNoKCkKKyAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbCh0YXNrLnRlc3RfcnVuX2NvdW50KCksIDMpCisKKyAgICBkZWYgdGVz
dF9mbGFreV9yZXN1bHRzX29uX3JlZF90cmVlX3Bhc3Moc2VsZik6CisgICAgICAgIGZpcnN0X3Rl
c3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFsnZmFpbHVyZTEuanMnXSkKKyAgICAg
ICAgc2Vjb25kX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFsnZmFpbHVyZTEu
anMnLCAnZmFpbHVyZTIuanMnXSkKKyAgICAgICAgY2xlYW5fdGVzdF9yZXN1bHRzID0gSlNDVGVz
dFJlc3VsdHMoVHJ1ZSwgWydmYWlsdXJlMS5qcyddKQorICAgICAgICB0YXNrID0gc2VsZi5fY3Jl
YXRlX3Rhc2soZmlyc3RfdGVzdF9yZXN1bHRzLCBzZWNvbmRfdGVzdF9yZXN1bHRzLCBjbGVhbl90
ZXN0X3Jlc3VsdHMpCisKKyAgICAgICAgcmV0dXJuX3ZhbHVlID0gdGFzay5fdGVzdF9wYXRjaCgp
CisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZXR1cm5fdmFsdWUpCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwodGFzay50ZXN0X3J1bl9jb3VudCgpLCAzKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS90b29sL2JvdC9qc2N0ZXN0cmVzdWx0c3JlYWRlci5weSBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvanNjdGVzdHJlc3VsdHNyZWFkZXIucHkKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYTU2YmQwNWRmYTc3NDU5ZDQ2YzM3YmU4NWQ0NDkxODk0OGEwNjY2NgotLS0gL2Rldi9udWxs
CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvanNjdGVzdHJlc3VsdHNyZWFk
ZXIucHkKQEAgLTAsMCArMSw0NyBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBt
ZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisjIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyMg
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorIyBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgor
IyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorCitpbXBvcnQgbG9nZ2luZworCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5uZXQuanNjdGVz
dHJlc3VsdHMgaW1wb3J0IEpTQ1Rlc3RSZXN1bHRzCisKK19sb2cgPSBsb2dnaW5nLmdldExvZ2dl
cihfX25hbWVfXykKKworCitjbGFzcyBKU0NUZXN0UmVzdWx0c1JlYWRlcihvYmplY3QpOgorICAg
IGRlZiBfX2luaXRfXyhzZWxmLCBob3N0LCByZXN1bHRzX2RpcmVjdG9yeSk6CisgICAgICAgIHNl
bGYuX2hvc3QgPSBob3N0CisgICAgICAgIHNlbGYuX3Jlc3VsdHNfZGlyZWN0b3J5ID0gcmVzdWx0
c19kaXJlY3RvcnkKKworICAgIGRlZiBfcmVhZF9maWxlX2NvbnRlbnRzKHNlbGYsIHBhdGgpOgor
ICAgICAgICB0cnk6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5faG9zdC5maWxlc3lzdGVtLnJl
YWRfdGV4dF9maWxlKHBhdGgpCisgICAgICAgIGV4Y2VwdCAoSU9FcnJvciwgS2V5RXJyb3IpOiAg
IyBGaWxlIGRvZXMgbm90IGV4aXN0IG9yIGNhbid0IGJlIHJlYWQuCisgICAgICAgICAgICByZXR1
cm4gTm9uZQorCisgICAgZGVmIF9jcmVhdGVfanNjX3Rlc3RfcmVzdWx0cyhzZWxmKToKKyAgICAg
ICAgcmVzdWx0c19wYXRoID0gc2VsZi5faG9zdC5maWxlc3lzdGVtLmpvaW4oc2VsZi5fcmVzdWx0
c19kaXJlY3RvcnksICJqc2NfdGVzdF9yZXN1bHRzLmpzb24iKQorICAgICAgICBjb250ZW50cyA9
IHNlbGYuX3JlYWRfZmlsZV9jb250ZW50cyhyZXN1bHRzX3BhdGgpCisgICAgICAgIHJldHVybiBK
U0NUZXN0UmVzdWx0cy5yZXN1bHRzX2Zyb21fc3RyaW5nKGNvbnRlbnRzKQorCisgICAgZGVmIHJl
c3VsdHMoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl9jcmVhdGVfanNjX3Rlc3RfcmVzdWx0
cygpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L3BhdGNoYW5h
bHlzaXN0YXNrLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9wYXRjaGFuYWx5
c2lzdGFzay5weQppbmRleCA3NTIzMTY0MTZjNWY5ZDBhM2U1OWVmNmQwNWUzMTc4NWY5MTc0NjI5
Li5kZDJmMWM1OWI3NjczZTNiOTQ3YjY4OWY1NmQ3YjBjMTBhZGFkMGE3IDEwMDY0NAotLS0gYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L3BhdGNoYW5hbHlzaXN0YXNrLnB5CisrKyBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvcGF0Y2hhbmFseXNpc3Rhc2sucHkKQEAg
LTEsNCArMSw1IEBACiAjIENvcHlyaWdodCAoYykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtMjgsNiArMjksNyBA
QAogCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZlIGltcG9ydCBTY3JpcHRF
cnJvcgogZnJvbSB3ZWJraXRweS5jb21tb24ubmV0LmxheW91dHRlc3RyZXN1bHRzIGltcG9ydCBM
YXlvdXRUZXN0UmVzdWx0cworZnJvbSB3ZWJraXRweS5jb21tb24ubmV0LmpzY3Rlc3RyZXN1bHRz
IGltcG9ydCBKU0NUZXN0UmVzdWx0cwogCiAKIGNsYXNzIFVuYWJsZVRvQXBwbHlQYXRjaChFeGNl
cHRpb24pOgpAQCAtNDMsNiArNDUsMTEgQEAgY2xhc3MgUGF0Y2hJc05vdFZhbGlkKEV4Y2VwdGlv
bik6CiAgICAgICAgIHNlbGYuZmFpbHVyZV9tZXNzYWdlID0gZmFpbHVyZV9tZXNzYWdlCiAKIAor
Y2xhc3MgUGF0Y2hJc05vdEFwcGxpY2FibGUoRXhjZXB0aW9uKToKKyAgICBkZWYgX19pbml0X18o
c2VsZiwgcGF0Y2gpOgorICAgICAgICBFeGNlcHRpb24uX19pbml0X18oc2VsZikKKyAgICAgICAg
c2VsZi5wYXRjaCA9IHBhdGNoCisKIGNsYXNzIFBhdGNoQW5hbHlzaXNUYXNrRGVsZWdhdGUob2Jq
ZWN0KToKICAgICBkZWYgcGFyZW50X2NvbW1hbmQoc2VsZik6CiAgICAgICAgIHJhaXNlIE5vdElt
cGxlbWVudGVkRXJyb3IoInN1YmNsYXNzZXMgbXVzdCBpbXBsZW1lbnQiKQpAQCAtMTIyLDI4ICsx
MjksNDQgQEAgY2xhc3MgUGF0Y2hBbmFseXNpc1Rhc2sob2JqZWN0KToKICAgICAgICAgIkFwcGxp
ZWQgcGF0Y2giLAogICAgICAgICAiUGF0Y2ggZG9lcyBub3QgYXBwbHkiKQogCisgICAgZGVmIF9j
aGVja19wYXRjaF9yZWxldmFuY2Uoc2VsZik6CisgICAgICAgIGFyZ3MgPSBbCisgICAgICAgICAg
ICAiY2hlY2stcGF0Y2gtcmVsZXZhbmNlIiwKKyAgICAgICAgXQorCisgICAgICAgIGlmIGhhc2F0
dHIoc2VsZi5fZGVsZWdhdGUsICdncm91cCcpOgorICAgICAgICAgICAgYXJncy5hcHBlbmQoIi0t
Z3JvdXA9JXMiICUgc2VsZi5fZGVsZWdhdGUuZ3JvdXAoKSkKKworICAgICAgICByZXR1cm4gc2Vs
Zi5fcnVuX2NvbW1hbmQoYXJncywgIkNoZWNrZWQgcmVsZXZhbmNlIG9mIHBhdGNoIiwgIlBhdGNo
IHdhcyBub3QgcmVsZXZhbnQiKQorCiAgICAgZGVmIF9idWlsZChzZWxmKToKLSAgICAgICAgcmV0
dXJuIHNlbGYuX3J1bl9jb21tYW5kKFsKKyAgICAgICAgYXJncyA9IFsKICAgICAgICAgICAgICJi
dWlsZCIsCiAgICAgICAgICAgICAiLS1uby1jbGVhbiIsCiAgICAgICAgICAgICAiLS1uby11cGRh
dGUiLAogICAgICAgICAgICAgIi0tYnVpbGQtc3R5bGU9JXMiICUgc2VsZi5fZGVsZWdhdGUuYnVp
bGRfc3R5bGUoKSwKLSAgICAgICAgXSwKLSAgICAgICAgIkJ1aWx0IHBhdGNoIiwKLSAgICAgICAg
IlBhdGNoIGRvZXMgbm90IGJ1aWxkIikKKyAgICAgICAgXQorCisgICAgICAgIGlmIGhhc2F0dHIo
c2VsZi5fZGVsZWdhdGUsICdncm91cCcpOgorICAgICAgICAgICAgYXJncy5hcHBlbmQoIi0tZ3Jv
dXA9JXMiICUgc2VsZi5fZGVsZWdhdGUuZ3JvdXAoKSkKKworICAgICAgICByZXR1cm4gc2VsZi5f
cnVuX2NvbW1hbmQoYXJncywgIkJ1aWx0IHBhdGNoIiwgIlBhdGNoIGRvZXMgbm90IGJ1aWxkIikK
IAogICAgIGRlZiBfYnVpbGRfd2l0aG91dF9wYXRjaChzZWxmKToKLSAgICAgICAgcmV0dXJuIHNl
bGYuX3J1bl9jb21tYW5kKFsKKyAgICAgICAgYXJncyA9IFsKICAgICAgICAgICAgICJidWlsZCIs
CiAgICAgICAgICAgICAiLS1mb3JjZS1jbGVhbiIsCiAgICAgICAgICAgICAiLS1uby11cGRhdGUi
LAogICAgICAgICAgICAgIi0tYnVpbGQtc3R5bGU9JXMiICUgc2VsZi5fZGVsZWdhdGUuYnVpbGRf
c3R5bGUoKSwKLSAgICAgICAgXSwKLSAgICAgICAgIkFibGUgdG8gYnVpbGQgd2l0aG91dCBwYXRj
aCIsCi0gICAgICAgICJVbmFibGUgdG8gYnVpbGQgd2l0aG91dCBwYXRjaCIpCisgICAgICAgIF0K
KworICAgICAgICBpZiBoYXNhdHRyKHNlbGYuX2RlbGVnYXRlLCAnZ3JvdXAnKToKKyAgICAgICAg
ICAgIGFyZ3MuYXBwZW5kKCItLWdyb3VwPSVzIiAlIHNlbGYuX2RlbGVnYXRlLmdyb3VwKCkpCisK
KyAgICAgICAgcmV0dXJuIHNlbGYuX3J1bl9jb21tYW5kKGFyZ3MsICJBYmxlIHRvIGJ1aWxkIHdp
dGhvdXQgcGF0Y2giLCAiVW5hYmxlIHRvIGJ1aWxkIHdpdGhvdXQgcGF0Y2giKQogCiAgICAgZGVm
IF90ZXN0KHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi5fcnVuX2NvbW1hbmQoWworICAgICAg
ICBhcmdzID0gWwogICAgICAgICAgICAgImJ1aWxkLWFuZC10ZXN0IiwKICAgICAgICAgICAgICIt
LW5vLWNsZWFuIiwKICAgICAgICAgICAgICItLW5vLXVwZGF0ZSIsCkBAIC0xNTEsMTIgKzE3NCwx
NSBAQCBjbGFzcyBQYXRjaEFuYWx5c2lzVGFzayhvYmplY3QpOgogICAgICAgICAgICAgIi0tdGVz
dCIsCiAgICAgICAgICAgICAiLS1ub24taW50ZXJhY3RpdmUiLAogICAgICAgICAgICAgIi0tYnVp
bGQtc3R5bGU9JXMiICUgc2VsZi5fZGVsZWdhdGUuYnVpbGRfc3R5bGUoKSwKLSAgICAgICAgXSwK
LSAgICAgICAgIlBhc3NlZCB0ZXN0cyIsCi0gICAgICAgICJQYXRjaCBkb2VzIG5vdCBwYXNzIHRl
c3RzIikKKyAgICAgICAgXQorCisgICAgICAgIGlmIGhhc2F0dHIoc2VsZi5fZGVsZWdhdGUsICdn
cm91cCcpOgorICAgICAgICAgICAgYXJncy5hcHBlbmQoIi0tZ3JvdXA9JXMiICUgc2VsZi5fZGVs
ZWdhdGUuZ3JvdXAoKSkKKworICAgICAgICByZXR1cm4gc2VsZi5fcnVuX2NvbW1hbmQoYXJncywg
IlBhc3NlZCB0ZXN0cyIsICJQYXRjaCBkb2VzIG5vdCBwYXNzIHRlc3RzIikKIAogICAgIGRlZiBf
YnVpbGRfYW5kX3Rlc3Rfd2l0aG91dF9wYXRjaChzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYu
X3J1bl9jb21tYW5kKFsKKyAgICAgICAgYXJncyA9IFsKICAgICAgICAgICAgICJidWlsZC1hbmQt
dGVzdCIsCiAgICAgICAgICAgICAiLS1mb3JjZS1jbGVhbiIsCiAgICAgICAgICAgICAiLS1uby11
cGRhdGUiLApAQCAtMTY0LDkgKzE5MCwxMiBAQCBjbGFzcyBQYXRjaEFuYWx5c2lzVGFzayhvYmpl
Y3QpOgogICAgICAgICAgICAgIi0tdGVzdCIsCiAgICAgICAgICAgICAiLS1ub24taW50ZXJhY3Rp
dmUiLAogICAgICAgICAgICAgIi0tYnVpbGQtc3R5bGU9JXMiICUgc2VsZi5fZGVsZWdhdGUuYnVp
bGRfc3R5bGUoKSwKLSAgICAgICAgXSwKLSAgICAgICAgIkFibGUgdG8gcGFzcyB0ZXN0cyB3aXRo
b3V0IHBhdGNoIiwKLSAgICAgICAgIlVuYWJsZSB0byBwYXNzIHRlc3RzIHdpdGhvdXQgcGF0Y2gg
KHRyZWUgaXMgcmVkPykiKQorICAgICAgICBdCisKKyAgICAgICAgaWYgaGFzYXR0cihzZWxmLl9k
ZWxlZ2F0ZSwgJ2dyb3VwJyk6CisgICAgICAgICAgICBhcmdzLmFwcGVuZCgiLS1ncm91cD0lcyIg
JSBzZWxmLl9kZWxlZ2F0ZS5ncm91cCgpKQorCisgICAgICAgIHJldHVybiBzZWxmLl9ydW5fY29t
bWFuZChhcmdzLCAiQWJsZSB0byBwYXNzIHRlc3RzIHdpdGhvdXQgcGF0Y2giLCAiVW5hYmxlIHRv
IHBhc3MgdGVzdHMgd2l0aG91dCBwYXRjaCAodHJlZSBpcyByZWQ/KSIpCiAKICAgICBkZWYgX2xh
bmQoc2VsZik6CiAgICAgICAgICMgVW5jbGVhciBpZiB0aGlzIHNob3VsZCBwYXNzIC0tcXVpZXQg
b3Igbm90LiAgSWYgLS1wYXJlbnQtY29tbWFuZCBhbHdheXMgZG9lcyB0aGUgcmVwb3J0aW5nLCB0
aGVuIGl0IHNob3VsZC4KQEAgLTIwNiwxMCArMjM1LDM1IEBAIGNsYXNzIFBhdGNoQW5hbHlzaXNU
YXNrKG9iamVjdCk6CiAgICAgICAgICMgYWxzbyBwcmVzZW50IHdpdGhvdXQgdGhlIHBhdGNoLCBz
byB3ZSBkb24ndCBuZWVkIHRvIGRlZmVyLgogICAgICAgICByZXR1cm4gRmFsc2UKIAotICAgIGRl
ZiBfdGVzdF9wYXRjaChzZWxmKToKKyAgICAjIEZJWE1FOiBBYnN0cmFjdCBvdXQgY29tbW9uIHBh
cnRzIG9mIHRoZSByZXRyeSBsb2dpYy4KKyAgICBkZWYgX3JldHJ5X2pzY190ZXN0cyhzZWxmKToK
KyAgICAgICAgZmlyc3RfcmVzdWx0cyA9IHNlbGYuX2RlbGVnYXRlLnRlc3RfcmVzdWx0cygpCisg
ICAgICAgIGZpcnN0X3NjcmlwdF9lcnJvciA9IHNlbGYuX3NjcmlwdF9lcnJvcgorICAgICAgICBm
aXJzdF9mYWlsdXJlX3N0YXR1c19pZCA9IHNlbGYuZmFpbHVyZV9zdGF0dXNfaWQKKyAgICAgICAg
aWYgZmlyc3RfcmVzdWx0cyBpcyBOb25lOgorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisKICAg
ICAgICAgaWYgc2VsZi5fdGVzdCgpOgogICAgICAgICAgICAgcmV0dXJuIFRydWUKKyAgICAgICAg
c2Vjb25kX3Jlc3VsdHMgPSBzZWxmLl9kZWxlZ2F0ZS50ZXN0X3Jlc3VsdHMoKQorICAgICAgICBz
ZWNvbmRfc2NyaXB0X2Vycm9yID0gc2VsZi5fc2NyaXB0X2Vycm9yCisgICAgICAgIGlmIHNlY29u
ZF9yZXN1bHRzIGlzIE5vbmU6CisgICAgICAgICAgICByZXR1cm4gRmFsc2UKKworICAgICAgICBj
b25zaXN0ZW50X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cy5pbnRlcnNlY3Rpb24oZmlyc3RfcmVz
dWx0cywgc2Vjb25kX3Jlc3VsdHMpCisKKyAgICAgICAgc2VsZi5fYnVpbGRfYW5kX3Rlc3Rfd2l0
aG91dF9wYXRjaCgpCisgICAgICAgIGNsZWFuX3RyZWVfcmVzdWx0cyA9IHNlbGYuX2RlbGVnYXRl
LnRlc3RfcmVzdWx0cygpCisgICAgICAgIGlmIGNsZWFuX3RyZWVfcmVzdWx0cyBpcyBOb25lOgor
ICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICAgICAgaWYgY29uc2lzdGVudF9yZXN1bHRz
LmlzX3N1YnNldChjbGVhbl90cmVlX3Jlc3VsdHMpOgorICAgICAgICAgICAgcmV0dXJuIFRydWUK
KworICAgICAgICBzZWxmLmZhaWx1cmVfc3RhdHVzX2lkID0gZmlyc3RfZmFpbHVyZV9zdGF0dXNf
aWQKKyAgICAgICAgcmV0dXJuIHNlbGYucmVwb3J0X2ZhaWx1cmUoTm9uZSwgY29uc2lzdGVudF9y
ZXN1bHRzLCBmaXJzdF9zY3JpcHRfZXJyb3IpCiAKKyAgICBkZWYgX3JldHJ5X2xheW91dF90ZXN0
cyhzZWxmKToKICAgICAgICAgIyBOb3RlOiBhcmNoaXZlX2xhc3RfdGVzdF9yZXN1bHRzIGRlbGV0
ZXMgdGhlIHJlc3VsdHMgZGlyZWN0b3J5LCBtYWtpbmcgdGhlc2UgY2FsbHMgb3JkZXItc2Vuc2l0
dmUuCiAgICAgICAgICMgV2UgY291bGQgcmVtb3ZlIHRoaXMgZGVwZW5kZW5jeSBieSBidWlsZGlu
ZyB0aGUgdGVzdF9yZXN1bHRzIGZyb20gdGhlIGFyY2hpdmUuCiAgICAgICAgIGZpcnN0X3Jlc3Vs
dHMgPSBzZWxmLl9kZWxlZ2F0ZS50ZXN0X3Jlc3VsdHMoKQpAQCAtMjQwLDExICsyOTQsMTMgQEAg
Y2xhc3MgUGF0Y2hBbmFseXNpc1Rhc2sob2JqZWN0KToKICAgICAgICAgICAgIHJldHVybiBzZWxm
LnJlcG9ydF9mYWlsdXJlKGZpcnN0X3Jlc3VsdHNfYXJjaGl2ZSwgZmlyc3RfcmVzdWx0cywgZmly
c3Rfc2NyaXB0X2Vycm9yKQogCiAgICAgICAgIGlmIHNlY29uZF9yZXN1bHRzLmRpZF9leGNlZWRf
dGVzdF9mYWlsdXJlX2xpbWl0KCk6Ci0gICAgICAgICAgICBzZWxmLl9zaG91bGRfZGVmZXJfcGF0
Y2hfb3JfdGhyb3coZmlyc3RfcmVzdWx0cy5mYWlsaW5nX3Rlc3RfcmVzdWx0cygpLCBmaXJzdF9y
ZXN1bHRzX2FyY2hpdmUsIGZpcnN0X3NjcmlwdF9lcnJvciwgZmlyc3RfZmFpbHVyZV9zdGF0dXNf
aWQpCisgICAgICAgICAgICBzZWxmLl9zaG91bGRfZGVmZXJfcGF0Y2hfb3JfdGhyb3coZmlyc3Rf
cmVzdWx0cy5mYWlsaW5nX3Rlc3RfcmVzdWx0cygpLCBmaXJzdF9yZXN1bHRzX2FyY2hpdmUsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlyc3Rfc2NyaXB0
X2Vycm9yLCBmaXJzdF9mYWlsdXJlX3N0YXR1c19pZCkKICAgICAgICAgICAgIHJldHVybiBGYWxz
ZQogCiAgICAgICAgIGlmIGZpcnN0X3Jlc3VsdHMuZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGlt
aXQoKToKLSAgICAgICAgICAgIHNlbGYuX3Nob3VsZF9kZWZlcl9wYXRjaF9vcl90aHJvdyhzZWNv
bmRfcmVzdWx0cy5mYWlsaW5nX3Rlc3RfcmVzdWx0cygpLCBzZWNvbmRfcmVzdWx0c19hcmNoaXZl
LCBzZWNvbmRfc2NyaXB0X2Vycm9yLCBzZWNvbmRfZmFpbHVyZV9zdGF0dXNfaWQpCisgICAgICAg
ICAgICBzZWxmLl9zaG91bGRfZGVmZXJfcGF0Y2hfb3JfdGhyb3coc2Vjb25kX3Jlc3VsdHMuZmFp
bGluZ190ZXN0X3Jlc3VsdHMoKSwgc2Vjb25kX3Jlc3VsdHNfYXJjaGl2ZSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWNvbmRfc2NyaXB0X2Vycm9yLCBz
ZWNvbmRfZmFpbHVyZV9zdGF0dXNfaWQpCiAgICAgICAgICAgICByZXR1cm4gRmFsc2UKIAogICAg
ICAgICBpZiBzZWxmLl9yZXN1bHRzX2ZhaWxlZF9kaWZmZXJlbnRfdGVzdHMoZmlyc3RfcmVzdWx0
cywgc2Vjb25kX3Jlc3VsdHMpOgpAQCAtMjU5LDE0ICszMTUsMTYgQEAgY2xhc3MgUGF0Y2hBbmFs
eXNpc1Rhc2sob2JqZWN0KToKIAogICAgICAgICAgICAgdGVzdHNfdGhhdF9jb25zaXN0ZW50bHlf
ZmFpbGVkID0gZmlyc3RfZmFpbGluZ19yZXN1bHRzX3NldC5pbnRlcnNlY3Rpb24oc2Vjb25kX2Zh
aWxpbmdfcmVzdWx0c19zZXQpCiAgICAgICAgICAgICBpZiB0ZXN0c190aGF0X2NvbnNpc3RlbnRs
eV9mYWlsZWQ6Ci0gICAgICAgICAgICAgICAgaWYgc2VsZi5fc2hvdWxkX2RlZmVyX3BhdGNoX29y
X3Rocm93KHRlc3RzX3RoYXRfY29uc2lzdGVudGx5X2ZhaWxlZCwgZmlyc3RfcmVzdWx0c19hcmNo
aXZlLCBmaXJzdF9zY3JpcHRfZXJyb3IsIGZpcnN0X2ZhaWx1cmVfc3RhdHVzX2lkKToKKyAgICAg
ICAgICAgICAgICBpZiBzZWxmLl9zaG91bGRfZGVmZXJfcGF0Y2hfb3JfdGhyb3codGVzdHNfdGhh
dF9jb25zaXN0ZW50bHlfZmFpbGVkLCBmaXJzdF9yZXN1bHRzX2FyY2hpdmUsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpcnN0X3NjcmlwdF9l
cnJvciwgZmlyc3RfZmFpbHVyZV9zdGF0dXNfaWQpOgogICAgICAgICAgICAgICAgICAgICByZXR1
cm4gRmFsc2UgICMgRGVmZXIgcGF0Y2gKIAogICAgICAgICAgICAgIyBBdCB0aGlzIHBvaW50IHdl
IGtub3cgdGhhdCBhdCBsZWFzdCBvbmUgdGVzdCBmbGFrZWQsIGJ1dCBubyBjb25zaXN0ZW50IGZh
aWx1cmVzCiAgICAgICAgICAgICAjIHdlcmUgaW50cm9kdWNlZC4gVGhpcyBpcyBhIGJpdCBvZiBh
IGdyZXktem9uZS4KICAgICAgICAgICAgIHJldHVybiBGYWxzZSAgIyBEZWZlciBwYXRjaAogCi0g
ICAgICAgIGlmIHNlbGYuX3Nob3VsZF9kZWZlcl9wYXRjaF9vcl90aHJvdyhmaXJzdF9yZXN1bHRz
LmZhaWxpbmdfdGVzdF9yZXN1bHRzKCksIGZpcnN0X3Jlc3VsdHNfYXJjaGl2ZSwgZmlyc3Rfc2Ny
aXB0X2Vycm9yLCBmaXJzdF9mYWlsdXJlX3N0YXR1c19pZCk6CisgICAgICAgIGlmIHNlbGYuX3No
b3VsZF9kZWZlcl9wYXRjaF9vcl90aHJvdyhmaXJzdF9yZXN1bHRzLmZhaWxpbmdfdGVzdF9yZXN1
bHRzKCksIGZpcnN0X3Jlc3VsdHNfYXJjaGl2ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGZpcnN0X3NjcmlwdF9lcnJvciwgZmlyc3RfZmFpbHVyZV9zdGF0
dXNfaWQpOgogICAgICAgICAgICAgcmV0dXJuIEZhbHNlICAjIERlZmVyIHBhdGNoCiAKICAgICAg
ICAgIyBBdCB0aGlzIHBvaW50LCB3ZSBrbm93IHRoYXQgdGhlIGZpcnN0IGFuZCBzZWNvbmQgcnVu
cyBoYWQgdGhlIGV4YWN0IHNhbWUgZmFpbHVyZXMsCkBAIC0yNzQsNiArMzMyLDE1IEBAIGNsYXNz
IFBhdGNoQW5hbHlzaXNUYXNrKG9iamVjdCk6CiAgICAgICAgICMgdGhhdCB0aGUgcGF0Y2ggaXMg
Z29vZC4KICAgICAgICAgcmV0dXJuIFRydWUKIAorICAgIGRlZiBfdGVzdF9wYXRjaChzZWxmKToK
KyAgICAgICAgaWYgc2VsZi5fdGVzdCgpOgorICAgICAgICAgICAgcmV0dXJuIFRydWUKKworICAg
ICAgICBpZiBoYXNhdHRyKHNlbGYuX2RlbGVnYXRlLCAnZ3JvdXAnKSBhbmQgc2VsZi5fZGVsZWdh
dGUuZ3JvdXAoKSA9PSAianNjIjoKKyAgICAgICAgICAgIHJldHVybiBzZWxmLl9yZXRyeV9qc2Nf
dGVzdHMoKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuX3JldHJ5X2xh
eW91dF90ZXN0cygpCisKICAgICBkZWYgcmVzdWx0c19hcmNoaXZlX2Zyb21fcGF0Y2hfdGVzdF9y
dW4oc2VsZiwgcGF0Y2gpOgogICAgICAgICBhc3NlcnQoc2VsZi5fcGF0Y2guaWQoKSA9PSBwYXRj
aC5pZCgpKSAgIyBQYXRjaEFuYWx5c2lzVGFzayBpcyBub3QgY3VycmVudGx5IHJlLXVzZWFibGUu
CiAgICAgICAgIHJldHVybiBzZWxmLl9yZXN1bHRzX2FyY2hpdmVfZnJvbV9wYXRjaF90ZXN0X3J1
bgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Rvd25s
b2FkLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Rvd25sb2FkLnB5
CmluZGV4IGU1MTY5YWFjODVmMzE4NmU4NGJlOWQ1MDI0NTkyYmQ3ZmU2ZDVkZDUuLjE0YjU1YmMz
ZjdjOWMxMGI1ZGY2MGZjMWFmODdkN2NhMzllM2JjOTQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9kb3dubG9hZC5weQorKysgYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZG93bmxvYWQucHkKQEAgLTEsNSArMSw1IEBACiAjIENv
cHlyaWdodCAoYykgMjAwOSwgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgot
IyBDb3B5cmlnaHQgKGMpIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBD
b3B5cmlnaHQgKGMpIDIwMDksIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
IwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtODcsNiArODcsMTQgQEAgY2xhc3Mg
QnVpbGRBbmRUZXN0KEFic3RyYWN0U2VxdWVuY2VkQ29tbWFuZCk6CiAgICAgXQogCiAKK2NsYXNz
IENoZWNrUGF0Y2hSZWxldmFuY2UoQWJzdHJhY3RTZXF1ZW5jZWRDb21tYW5kKToKKyAgICBuYW1l
ID0gImNoZWNrLXBhdGNoLXJlbGV2YW5jZSIKKyAgICBoZWxwX3RleHQgPSAiQ2hlY2sgaWYgdGhp
cyBwYXRjaCBuZWVkcyB0byBiZSB0ZXN0ZWQiCisgICAgc3RlcHMgPSBbCisgICAgICAgIHN0ZXBz
LkNoZWNrUGF0Y2hSZWxldmFuY2UsCisgICAgXQorCisKIGNsYXNzIExhbmQoQWJzdHJhY3RTZXF1
ZW5jZWRDb21tYW5kKToKICAgICBuYW1lID0gImxhbmQiCiAgICAgaGVscF90ZXh0ID0gIkxhbmQg
dGhlIGN1cnJlbnQgd29ya2luZyBkaXJlY3RvcnkgZGlmZiBhbmQgdXBkYXRlcyB0aGUgYXNzb2Np
YXRlZCBidWcgaWYgYW55IgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29s
L2NvbW1hbmRzL2Rvd25sb2FkX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90
b29sL2NvbW1hbmRzL2Rvd25sb2FkX3VuaXR0ZXN0LnB5CmluZGV4IDQyOWRhMTI0NmY4YmQ3NmFi
MDJlZTYzM2M0MmQ2ZmIzOGQzODU0YzUuLjU5Yzk0ODhjMDk0MDk5YjczNDdlOTZlZjIwMmMzNjBk
OTE5NDYzMDMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5k
cy9kb3dubG9hZF91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wv
Y29tbWFuZHMvZG93bmxvYWRfdW5pdHRlc3QucHkKQEAgLTg5LDYgKzg5LDcgQEAgY2xhc3MgRG93
bmxvYWRDb21tYW5kc1Rlc3QoQ29tbWFuZHNUZXN0KToKICAgICAgICAgb3B0aW9ucy51cGRhdGUg
PSBUcnVlCiAgICAgICAgIG9wdGlvbnMuYXJjaGl0ZWN0dXJlID0gJ01PQ0sgQVJDSCcKICAgICAg
ICAgb3B0aW9ucy5pdGVyYXRlX29uX25ld190ZXN0cyA9IDAKKyAgICAgICAgb3B0aW9ucy5ncm91
cCA9IE5vbmUKICAgICAgICAgcmV0dXJuIG9wdGlvbnMKIAogICAgIGRlZiB0ZXN0X2J1aWxkKHNl
bGYpOgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Vh
cmx5d2FybmluZ3N5c3RlbS5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5k
cy9lYXJseXdhcm5pbmdzeXN0ZW0ucHkKaW5kZXggOWJjMDQxODYwY2U2NzQ1NDQ1NGU0YjI1MTQz
OGE5ZGJlNTI2NDUxMy4uZjM5ZTUxNTMxMDIzNTVlZDI0ZjdiNDg5ZGMxYTA5YTg3ZWJhZjQ1NSAx
MDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Vhcmx5d2Fy
bmluZ3N5c3RlbS5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMv
ZWFybHl3YXJuaW5nc3lzdGVtLnB5CkBAIC0xLDQgKzEsNSBAQAogIyBDb3B5cmlnaHQgKGMpIDIw
MDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChjKSAyMDE3
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucyBhcmUKQEAgLTI4LDYgKzI5LDcgQEAKIAogaW1wb3J0IGpzb24KIGltcG9ydCBsb2dnaW5n
CitpbXBvcnQgb3MKIGZyb20gb3B0cGFyc2UgaW1wb3J0IG1ha2Vfb3B0aW9uCiAKIGZyb20gd2Vi
a2l0cHkuY29tbW9uLmNvbmZpZy5jb21taXR0ZXJzIGltcG9ydCBDb21taXR0ZXJMaXN0CkBAIC0z
Niw3ICszOCw4IEBAIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5maWxlc3lzdGVtIGltcG9y
dCBGaWxlU3lzdGVtCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZlIGltcG9y
dCBTY3JpcHRFcnJvcgogZnJvbSB3ZWJraXRweS50b29sLmJvdC5lYXJseXdhcm5pbmdzeXN0ZW10
YXNrIGltcG9ydCBFYXJseVdhcm5pbmdTeXN0ZW1UYXNrLCBFYXJseVdhcm5pbmdTeXN0ZW1UYXNr
RGVsZWdhdGUKIGZyb20gd2Via2l0cHkudG9vbC5ib3QubGF5b3V0dGVzdHJlc3VsdHNyZWFkZXIg
aW1wb3J0IExheW91dFRlc3RSZXN1bHRzUmVhZGVyCi1mcm9tIHdlYmtpdHB5LnRvb2wuYm90LnBh
dGNoYW5hbHlzaXN0YXNrIGltcG9ydCBVbmFibGVUb0FwcGx5UGF0Y2gsIFBhdGNoSXNOb3RWYWxp
ZAorZnJvbSB3ZWJraXRweS50b29sLmJvdC5qc2N0ZXN0cmVzdWx0c3JlYWRlciBpbXBvcnQgSlND
VGVzdFJlc3VsdHNSZWFkZXIKK2Zyb20gd2Via2l0cHkudG9vbC5ib3QucGF0Y2hhbmFseXNpc3Rh
c2sgaW1wb3J0IFVuYWJsZVRvQXBwbHlQYXRjaCwgUGF0Y2hJc05vdFZhbGlkLCBQYXRjaElzTm90
QXBwbGljYWJsZQogZnJvbSB3ZWJraXRweS50b29sLmJvdC5xdWV1ZWVuZ2luZSBpbXBvcnQgUXVl
dWVFbmdpbmUKIGZyb20gd2Via2l0cHkudG9vbC5jb21tYW5kcy5xdWV1ZXMgaW1wb3J0IEFic3Ry
YWN0UmV2aWV3UXVldWUKIApAQCAtNTMsNyArNTYsMTIgQEAgY2xhc3MgQWJzdHJhY3RFYXJseVdh
cm5pbmdTeXN0ZW0oQWJzdHJhY3RSZXZpZXdRdWV1ZSwgRWFybHlXYXJuaW5nU3lzdGVtVGFza0Rl
bGUKIAogICAgIGRlZiBiZWdpbl93b3JrX3F1ZXVlKHNlbGYpOgogICAgICAgICBBYnN0cmFjdFJl
dmlld1F1ZXVlLmJlZ2luX3dvcmtfcXVldWUoc2VsZikKLSAgICAgICAgc2VsZi5fbGF5b3V0X3Rl
c3RfcmVzdWx0c19yZWFkZXIgPSBMYXlvdXRUZXN0UmVzdWx0c1JlYWRlcihzZWxmLl90b29sLCBz
ZWxmLl9wb3J0LnJlc3VsdHNfZGlyZWN0b3J5KCksIHNlbGYuX2xvZ19kaXJlY3RvcnkoKSkKKwor
ICAgICAgICBpZiBzZWxmLmdyb3VwKCkgPT0gImpzYyI6CisgICAgICAgICAgICBqc2NfcmVzdWx0
c19kaXJlY3RvcnkgPSBvcy5wYXRoLmRpcm5hbWUob3MucGF0aC5kaXJuYW1lKG9zLnBhdGguZGly
bmFtZShzZWxmLl9wb3J0LnJlc3VsdHNfZGlyZWN0b3J5KCkpKSkKKyAgICAgICAgICAgIHNlbGYu
X3Rlc3RfcmVzdWx0c19yZWFkZXIgPSBKU0NUZXN0UmVzdWx0c1JlYWRlcihzZWxmLl90b29sLCBq
c2NfcmVzdWx0c19kaXJlY3RvcnkpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLl90
ZXN0X3Jlc3VsdHNfcmVhZGVyID0gTGF5b3V0VGVzdFJlc3VsdHNSZWFkZXIoc2VsZi5fdG9vbCwg
c2VsZi5fcG9ydC5yZXN1bHRzX2RpcmVjdG9yeSgpLCBzZWxmLl9sb2dfZGlyZWN0b3J5KCkpCiAK
ICAgICBkZWYgX2ZhaWxpbmdfdGVzdHNfbWVzc2FnZShzZWxmLCB0YXNrLCBwYXRjaCk6CiAgICAg
ICAgIHJlc3VsdHMgPSB0YXNrLnJlc3VsdHNfZnJvbV9wYXRjaF90ZXN0X3J1bihwYXRjaCkKQEAg
LTc5LDggKzg3LDEyIEBAIGNsYXNzIEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtKEFic3RyYWN0
UmV2aWV3UXVldWUsIEVhcmx5V2FybmluZ1N5c3RlbVRhc2tEZWxlCiAgICAgICAgICAgICB0b29s
LmJ1Z3MuYWRkX2NjX3RvX2J1ZyhwYXRjaC5idWdfaWQoKSwgc2VsZi53YXRjaGVycykKICAgICAg
ICAgdG9vbC5idWdzLnNldF9mbGFnX29uX2F0dGFjaG1lbnQocGF0Y2guaWQoKSwgImNvbW1pdC1x
dWV1ZSIsICItIiwgbWVzc2FnZSkKIAorICAgICMgVGhpcyBleGlzdHMgZm9yIG1vY2tpbmcKKyAg
ICBkZWYgX2NyZWF0ZV90YXNrKHNlbGYsIHBhdGNoKToKKyAgICAgICAgcmV0dXJuIEVhcmx5V2Fy
bmluZ1N5c3RlbVRhc2soc2VsZiwgcGF0Y2gsIHNlbGYuX29wdGlvbnMucnVuX3Rlc3RzKQorCiAg
ICAgZGVmIHJldmlld19wYXRjaChzZWxmLCBwYXRjaCk6Ci0gICAgICAgIHRhc2sgPSBFYXJseVdh
cm5pbmdTeXN0ZW1UYXNrKHNlbGYsIHBhdGNoLCBzZWxmLl9vcHRpb25zLnJ1bl90ZXN0cykKKyAg
ICAgICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90YXNrKHBhdGNoKQogICAgICAgICB0cnk6CiAgICAg
ICAgICAgICBzdWNjZWVkZWQgPSB0YXNrLnJ1bigpCiAgICAgICAgICAgICBpZiBub3Qgc3VjY2Vl
ZGVkOgpAQCAtOTMsNiArMTA1LDEwIEBAIGNsYXNzIEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVt
KEFic3RyYWN0UmV2aWV3UXVldWUsIEVhcmx5V2FybmluZ1N5c3RlbVRhc2tEZWxlCiAgICAgICAg
IGV4Y2VwdCBVbmFibGVUb0FwcGx5UGF0Y2gsIGU6CiAgICAgICAgICAgICBzZWxmLl9kaWRfZXJy
b3IocGF0Y2gsICIlcyB1bmFibGUgdG8gYXBwbHkgcGF0Y2guIiAlIHNlbGYubmFtZSkKICAgICAg
ICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICBleGNlcHQgUGF0Y2hJc05vdEFwcGxpY2FibGUs
IGU6CisgICAgICAgICAgICBzZWxmLl91cGRhdGVfc3RhdHVzKCJQYXRjaCBub3QgYXBwbGljYWJs
ZSB0byAlcy4iICUgc2VsZi5uYW1lLCBwYXRjaCkKKyAgICAgICAgICAgIHNlbGYuX3JlbGVhc2Vf
d29ya19pdGVtKHBhdGNoKQorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCiAgICAgICAgIGV4Y2Vw
dCBTY3JpcHRFcnJvciwgZToKICAgICAgICAgICAgIHNlbGYuX3Bvc3RfcmVqZWN0X21lc3NhZ2Vf
b25fYnVnKHNlbGYuX3Rvb2wsIHBhdGNoLCB0YXNrLmZhaWx1cmVfc3RhdHVzX2lkLCBzZWxmLl9m
YWlsaW5nX3Rlc3RzX21lc3NhZ2UodGFzaywgcGF0Y2gpKQogICAgICAgICAgICAgcmVzdWx0c19h
cmNoaXZlID0gdGFzay5yZXN1bHRzX2FyY2hpdmVfZnJvbV9wYXRjaF90ZXN0X3J1bihwYXRjaCkK
QEAgLTExNywxNCArMTMzLDE3IEBAIGNsYXNzIEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtKEFi
c3RyYWN0UmV2aWV3UXVldWUsIEVhcmx5V2FybmluZ1N5c3RlbVRhc2tEZWxlCiAgICAgICAgIHJl
dHVybiBzZWxmLl91cGRhdGVfc3RhdHVzKG1lc3NhZ2UsIHBhdGNoPXBhdGNoLCByZXN1bHRzX2Zp
bGU9ZmFpbHVyZV9sb2cpCiAKICAgICBkZWYgdGVzdF9yZXN1bHRzKHNlbGYpOgotICAgICAgICBy
ZXR1cm4gc2VsZi5fbGF5b3V0X3Rlc3RfcmVzdWx0c19yZWFkZXIucmVzdWx0cygpCisgICAgICAg
IHJldHVybiBzZWxmLl90ZXN0X3Jlc3VsdHNfcmVhZGVyLnJlc3VsdHMoKQogCiAgICAgZGVmIGFy
Y2hpdmVfbGFzdF90ZXN0X3Jlc3VsdHMoc2VsZiwgcGF0Y2gpOgotICAgICAgICByZXR1cm4gc2Vs
Zi5fbGF5b3V0X3Rlc3RfcmVzdWx0c19yZWFkZXIuYXJjaGl2ZShwYXRjaCkKKyAgICAgICAgcmV0
dXJuIHNlbGYuX3Rlc3RfcmVzdWx0c19yZWFkZXIuYXJjaGl2ZShwYXRjaCkKIAogICAgIGRlZiBi
dWlsZF9zdHlsZShzZWxmKToKICAgICAgICAgcmV0dXJuIHNlbGYuX2J1aWxkX3N0eWxlCiAKKyAg
ICBkZWYgZ3JvdXAoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl9ncm91cAorCiAgICAgZGVm
IHJlZmV0Y2hfcGF0Y2goc2VsZiwgcGF0Y2gpOgogICAgICAgICByZXR1cm4gc2VsZi5fdG9vbC5i
dWdzLmZldGNoX2F0dGFjaG1lbnQocGF0Y2guaWQoKSkKIApAQCAtMTQ5LDEyICsxNjgsMTMgQEAg
Y2xhc3MgQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0oQWJzdHJhY3RSZXZpZXdRdWV1ZSwgRWFy
bHlXYXJuaW5nU3lzdGVtVGFza0RlbGUKIAogICAgICAgICBjbGFzc2VzID0gW10KICAgICAgICAg
Zm9yIG5hbWUsIGNvbmZpZyBpbiBld3Nlcy5pdGVyaXRlbXMoKToKLSAgICAgICAgICAgIGNsYXNz
ZXMuYXBwZW5kKHR5cGUobmFtZS5lbmNvZGUoJ3V0Zi04JykudHJhbnNsYXRlKE5vbmUsICcgLScp
LCAoQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0sKSwgeworICAgICAgICAgICAgY2xhc3Nlcy5h
cHBlbmQodHlwZShuYW1lLmVuY29kZSgndXRmLTgnKS50cmFuc2xhdGUoTm9uZSwgJyAtJyksIChj
bHMsKSwgewogICAgICAgICAgICAgICAgICduYW1lJzogY29uZmlnLmdldCgnbmFtZScsIGNvbmZp
Z1sncG9ydCddICsgJy1ld3MnKSwKICAgICAgICAgICAgICAgICAncG9ydF9uYW1lJzogY29uZmln
Wydwb3J0J10sCiAgICAgICAgICAgICAgICAgJ2FyY2hpdGVjdHVyZSc6IGNvbmZpZy5nZXQoJ2Fy
Y2hpdGVjdHVyZScsIE5vbmUpLAogICAgICAgICAgICAgICAgICdfYnVpbGRfc3R5bGUnOiBjb25m
aWcuZ2V0KCdzdHlsZScsICJyZWxlYXNlIiksCiAgICAgICAgICAgICAgICAgJ3dhdGNoZXJzJzog
Y29uZmlnLmdldCgnd2F0Y2hlcnMnLCBbXSksCiAgICAgICAgICAgICAgICAgJ3J1bl90ZXN0cyc6
IGNvbmZpZy5nZXQoJ3J1blRlc3RzJywgY2xzLnJ1bl90ZXN0cyksCisgICAgICAgICAgICAgICAg
J19ncm91cCc6IGNvbmZpZy5nZXQoJ2dyb3VwJywgTm9uZSksCiAgICAgICAgICAgICB9KSkKICAg
ICAgICAgcmV0dXJuIGNsYXNzZXMKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
dG9vbC9jb21tYW5kcy9lYXJseXdhcm5pbmdzeXN0ZW1fdW5pdHRlc3QucHkgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZWFybHl3YXJuaW5nc3lzdGVtX3VuaXR0ZXN0LnB5
CmluZGV4IDA4ODg3ODEzY2UyZTkzYThlYzlkYTM3NjM2ZWNiZGU5ZWZmM2M5ZTcuLjQ4ZTFlNDQ5
NzYwMDZmNTAzM2NlNTg0NjcyMmY2OWNmYWQ1ZDdhMTUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9lYXJseXdhcm5pbmdzeXN0ZW1fdW5pdHRlc3QucHkK
KysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Vhcmx5d2FybmluZ3N5
c3RlbV91bml0dGVzdC5weQpAQCAtMSw0ICsxLDUgQEAKICMgQ29weXJpZ2h0IChDKSAyMDA5IEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAxNyBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogIyBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMg
YXJlCkBAIC0yOSw2ICszMCw3IEBACiBmcm9tIHdlYmtpdHB5LnRoaXJkcGFydHkubW9jayBpbXBv
cnQgTW9jawogZnJvbSB3ZWJraXRweS5jb21tb24uaG9zdCBpbXBvcnQgSG9zdAogZnJvbSB3ZWJr
aXRweS5jb21tb24uaG9zdF9tb2NrIGltcG9ydCBNb2NrSG9zdAorZnJvbSB3ZWJraXRweS5jb21t
b24ubmV0LmpzY3Rlc3RyZXN1bHRzIGltcG9ydCBKU0NUZXN0UmVzdWx0cwogZnJvbSB3ZWJraXRw
eS5jb21tb24ubmV0LmxheW91dHRlc3RyZXN1bHRzIGltcG9ydCBMYXlvdXRUZXN0UmVzdWx0cwog
ZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLm91dHB1dGNhcHR1cmUgaW1wb3J0IE91dHB1dENh
cHR1cmUKIGZyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLm1vZGVscyBpbXBvcnQgdGVzdF9yZXN1
bHRzCkBAIC00MSw2MiArNDMsMTAyIEBAIGZyb20gd2Via2l0cHkudG9vbC5jb21tYW5kcy5xdWV1
ZXN0ZXN0IGltcG9ydCBRdWV1ZXNUZXN0CiBmcm9tIHdlYmtpdHB5LnRvb2wubW9ja3Rvb2wgaW1w
b3J0IE1vY2tUb29sLCBNb2NrT3B0aW9ucwogCiAKLWNsYXNzIEFic3RyYWN0RWFybHlXYXJuaW5n
U3lzdGVtVGVzdChRdWV1ZXNUZXN0KToKLSAgICBkZWYgdGVzdF9mYWlsaW5nX3Rlc3RzX21lc3Nh
Z2Uoc2VsZik6Ci0gICAgICAgICMgTmVlZGVkIHRvIGRlZmluZSBwb3J0X25hbWUsIHVzZWQgaW4g
QWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0uX19pbml0X18KLSAgICAgICAgY2xhc3MgVGVzdEVX
UyhBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbSk6Ci0gICAgICAgICAgICBwb3J0X25hbWUgPSAi
d2luIiAgIyBOZWVkcyB0byBiZSBhIHBvcnQgd2hpY2ggcG9ydC9mYWN0b3J5IHVuZGVyc3RhbmRz
LgotICAgICAgICAgICAgX2J1aWxkX3N0eWxlID0gTm9uZQorIyBOZWVkZWQgdG8gZGVmaW5lIHBv
cnRfbmFtZSwgdXNlZCBpbiBBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbS5fX2luaXRfXworY2xh
c3MgVGVzdEVXUyhBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbSk6CisgICAgcG9ydF9uYW1lID0g
IndpbiIgICMgTmVlZHMgdG8gYmUgYSBwb3J0IHdoaWNoIHBvcnQvZmFjdG9yeSB1bmRlcnN0YW5k
cy4KKyAgICBfYnVpbGRfc3R5bGUgPSBOb25lCisgICAgX2dyb3VwID0gTm9uZQogCi0gICAgICAg
IGV3cyA9IFRlc3RFV1MoKQorCitjbGFzcyBUZXN0SlNDRVdTKEFic3RyYWN0RWFybHlXYXJuaW5n
U3lzdGVtKToKKyAgICBwb3J0X25hbWUgPSAibWFjIiAgIyBOZWVkcyB0byBiZSBhIHBvcnQgd2hp
Y2ggcG9ydC9mYWN0b3J5IHVuZGVyc3RhbmRzLgorICAgIF9idWlsZF9zdHlsZSA9IE5vbmUKKyAg
ICBfZ3JvdXAgPSAianNjIgorCisKK2NsYXNzIEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtVGVz
dChRdWV1ZXNUZXN0KToKKyAgICBkZWYgX3Rlc3RfbWVzc2FnZShzZWxmLCBld3MsIHJlc3VsdHMs
IG1lc3NhZ2UpOgogICAgICAgICBld3MuYmluZF90b190b29sKE1vY2tUb29sKCkpCiAgICAgICAg
IGV3cy5ob3N0ID0gTW9ja0hvc3QoKQogICAgICAgICBld3MuX29wdGlvbnMgPSBNb2NrT3B0aW9u
cyhwb3J0PU5vbmUsIGNvbmZpcm09RmFsc2UpCiAgICAgICAgIE91dHB1dENhcHR1cmUoKS5hc3Nl
cnRfb3V0cHV0cyhzZWxmLCBld3MuYmVnaW5fd29ya19xdWV1ZSwgZXhwZWN0ZWRfbG9ncz1zZWxm
Ll9kZWZhdWx0X2JlZ2luX3dvcmtfcXVldWVfbG9ncyhld3MubmFtZSkpCiAgICAgICAgIHRhc2sg
PSBNb2NrKCkKLSAgICAgICAgdGFzay5yZXN1bHRzX2Zyb21fcGF0Y2hfdGVzdF9ydW4gPSBsYW1i
ZGEgYTogTGF5b3V0VGVzdFJlc3VsdHMoW3Rlc3RfcmVzdWx0cy5UZXN0UmVzdWx0KCJmb28uaHRt
bCIsIGZhaWx1cmVzPVt0ZXN0X2ZhaWx1cmVzLkZhaWx1cmVUZXh0TWlzbWF0Y2goKV0pLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB0ZXN0X3Jlc3VsdHMuVGVzdFJlc3VsdCgiYmFyLmh0bWwiLCBmYWlsdXJl
cz1bdGVzdF9mYWlsdXJlcy5GYWlsdXJlVGV4dE1pc21hdGNoKCldKV0sCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGRpZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xpbWl0PUZhbHNlKQorICAgICAgICB0YXNrLnJl
c3VsdHNfZnJvbV9wYXRjaF90ZXN0X3J1biA9IHJlc3VsdHMKICAgICAgICAgcGF0Y2ggPSBld3Mu
X3Rvb2wuYnVncy5mZXRjaF9hdHRhY2htZW50KDEwMDAwKQotICAgICAgICBzZWxmLmFzc2VydE11
bHRpTGluZUVxdWFsKGV3cy5fZmFpbGluZ190ZXN0c19tZXNzYWdlKHRhc2ssIHBhdGNoKSwgIk5l
dyBmYWlsaW5nIHRlc3RzOlxuZm9vLmh0bWxcbmJhci5odG1sIikKKyAgICAgICAgc2VsZi5hc3Nl
cnRNdWx0aUxpbmVFcXVhbChld3MuX2ZhaWxpbmdfdGVzdHNfbWVzc2FnZSh0YXNrLCBwYXRjaCks
IG1lc3NhZ2UpCisKKyAgICBkZWYgdGVzdF9mYWlsaW5nX3Rlc3RzX21lc3NhZ2Uoc2VsZik6Cisg
ICAgICAgIGV3cyA9IFRlc3RFV1MoKQorICAgICAgICByZXN1bHRzID0gbGFtYmRhIGE6IExheW91
dFRlc3RSZXN1bHRzKFt0ZXN0X3Jlc3VsdHMuVGVzdFJlc3VsdCgiZm9vLmh0bWwiLCBmYWlsdXJl
cz1bdGVzdF9mYWlsdXJlcy5GYWlsdXJlVGV4dE1pc21hdGNoKCldKSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfcmVzdWx0cy5UZXN0UmVzdWx0
KCJiYXIuaHRtbCIsIGZhaWx1cmVzPVt0ZXN0X2ZhaWx1cmVzLkZhaWx1cmVUZXh0TWlzbWF0Y2go
KV0pXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRp
ZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xpbWl0PUZhbHNlKQorICAgICAgICBtZXNzYWdlID0gIk5l
dyBmYWlsaW5nIHRlc3RzOlxuZm9vLmh0bWxcbmJhci5odG1sIgorICAgICAgICBzZWxmLl90ZXN0
X21lc3NhZ2UoZXdzLCByZXN1bHRzLCBtZXNzYWdlKQorCisgICAgZGVmIHRlc3RfZmFpbGluZ19q
c2NfdGVzdHNfbWVzc2FnZShzZWxmKToKKyAgICAgICAgZXdzID0gVGVzdEpTQ0VXUygpCisgICAg
ICAgIHJlc3VsdHMgPSBsYW1iZGEgYTogSlNDVGVzdFJlc3VsdHMoRmFsc2UsIFsiZXM2LnlhbWwv
ZXM2L3R5cGVkX2FycmF5c19JbnQ4QXJyYXkuanMuZGVmYXVsdCIsICJlczYueWFtbC9lczYvdHlw
ZWRfYXJyYXlzX1VpbnQ4QXJyYXkuanMuZGVmYXVsdCJdKQorICAgICAgICBtZXNzYWdlID0gIk5l
dyBmYWlsaW5nIHRlc3RzOlxuZXM2LnlhbWwvZXM2L3R5cGVkX2FycmF5c19JbnQ4QXJyYXkuanMu
ZGVmYXVsdFxuZXM2LnlhbWwvZXM2L3R5cGVkX2FycmF5c19VaW50OEFycmF5LmpzLmRlZmF1bHRc
bmFwaVRlc3RzIgorICAgICAgICBzZWxmLl90ZXN0X21lc3NhZ2UoZXdzLCByZXN1bHRzLCBtZXNz
YWdlKQorCisKK2NsYXNzIE1vY2tFYXJseVdhcm5pbmdTeXN0ZW1UYXNrRm9ySW5jb25jbHVzaXZl
UmVzdWx0cyhFYXJseVdhcm5pbmdTeXN0ZW1UYXNrKToKKyAgICBkZWYgX3Rlc3RfcGF0Y2goc2Vs
Zik6CisgICAgICAgIHNlbGYuX3Rlc3QoKQorICAgICAgICByZXR1cm4gRmFsc2UKKworCitjbGFz
cyBNb2NrQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW1Gb3JJbmNvbmNsdXNpdmVSZXN1bHRzKEFi
c3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtKToKKyAgICBkZWYgdGVzdF9yZXN1bHRzKHNlbGYpOgor
ICAgICAgICByZXR1cm4gTm9uZQorCisgICAgZGVmIF9jcmVhdGVfdGFzayhzZWxmLCBwYXRjaCk6
CisgICAgICAgIHRhc2sgPSBNb2NrRWFybHlXYXJuaW5nU3lzdGVtVGFza0ZvckluY29uY2x1c2l2
ZVJlc3VsdHMoc2VsZiwgcGF0Y2gsIHNlbGYuX29wdGlvbnMucnVuX3Rlc3RzKQorICAgICAgICBy
ZXR1cm4gdGFzawogCiAKIGNsYXNzIEVhcmx5V2FybmluZ1N5c3RlbVRlc3QoUXVldWVzVGVzdCk6
Ci0gICAgZGVmIF9kZWZhdWx0X2V4cGVjdGVkX2xvZ3Moc2VsZiwgZXdzKToKKyAgICBkZWYgX2Rl
ZmF1bHRfZXhwZWN0ZWRfbG9ncyhzZWxmLCBld3MsIGNvbmNsdXNpdmUpOgogICAgICAgICBzdHJp
bmdfcmVwbGFjZW1lbnRzID0gewogICAgICAgICAgICAgIm5hbWUiOiBld3MubmFtZSwKICAgICAg
ICAgICAgICJwb3J0IjogZXdzLnBvcnRfbmFtZSwKICAgICAgICAgICAgICJhcmNoaXRlY3R1cmUi
OiAiIC0tYXJjaGl0ZWN0dXJlPSVzIiAlIGV3cy5hcmNoaXRlY3R1cmUgaWYgZXdzLmFyY2hpdGVj
dHVyZSBlbHNlICIiLAogICAgICAgICAgICAgImJ1aWxkX3N0eWxlIjogZXdzLmJ1aWxkX3N0eWxl
KCksCisgICAgICAgICAgICAiZ3JvdXAiOiBld3MuZ3JvdXAoKSwKICAgICAgICAgfQogICAgICAg
ICBpZiBld3MucnVuX3Rlc3RzOgotICAgICAgICAgICAgcnVuX3Rlc3RzX2xpbmUgPSAiUnVubmlu
Zzogd2Via2l0LXBhdGNoIC0tc3RhdHVzLWhvc3Q9ZXhhbXBsZS5jb20gYnVpbGQtYW5kLXRlc3Qg
LS1uby1jbGVhbiAtLW5vLXVwZGF0ZSAtLXRlc3QgLS1ub24taW50ZXJhY3RpdmUgLS1idWlsZC1z
dHlsZT0lKGJ1aWxkX3N0eWxlKXMgLS1wb3J0PSUocG9ydClzJShhcmNoaXRlY3R1cmUpc1xuIiAl
IHN0cmluZ19yZXBsYWNlbWVudHMKKyAgICAgICAgICAgIHJ1bl90ZXN0c19saW5lID0gIlJ1bm5p
bmc6IHdlYmtpdC1wYXRjaCAtLXN0YXR1cy1ob3N0PWV4YW1wbGUuY29tIGJ1aWxkLWFuZC10ZXN0
IC0tbm8tY2xlYW4gLS1uby11cGRhdGUgLS10ZXN0IC0tbm9uLWludGVyYWN0aXZlIC0tYnVpbGQt
c3R5bGU9JShidWlsZF9zdHlsZSlzIC0tZ3JvdXA9JShncm91cClzIC0tcG9ydD0lKHBvcnQpcyUo
YXJjaGl0ZWN0dXJlKXNcbiIgJSBzdHJpbmdfcmVwbGFjZW1lbnRzCiAgICAgICAgIGVsc2U6CiAg
ICAgICAgICAgICBydW5fdGVzdHNfbGluZSA9ICIiCiAgICAgICAgIHN0cmluZ19yZXBsYWNlbWVu
dHNbJ3J1bl90ZXN0c19saW5lJ10gPSBydW5fdGVzdHNfbGluZQogCisgICAgICAgIGlmIGNvbmNs
dXNpdmU6CisgICAgICAgICAgICByZXN1bHRfbGluZXMgPSAiTU9DSzogdXBkYXRlX3N0YXR1czog
JShuYW1lKXMgUGFzc1xuTU9DSzogcmVsZWFzZV93b3JrX2l0ZW06ICUobmFtZSlzIDEwMDAwXG4i
ICUgc3RyaW5nX3JlcGxhY2VtZW50cworICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmVzdWx0
X2xpbmVzID0gIk1PQ0s6IHJlbGVhc2VfbG9jazogJShuYW1lKXMgMTAwMDBcbiIgJSBzdHJpbmdf
cmVwbGFjZW1lbnRzCisgICAgICAgIHN0cmluZ19yZXBsYWNlbWVudHNbJ3Jlc3VsdF9saW5lcydd
ID0gcmVzdWx0X2xpbmVzCisKICAgICAgICAgZXhwZWN0ZWRfbG9ncyA9IHsKICAgICAgICAgICAg
ICJiZWdpbl93b3JrX3F1ZXVlIjogc2VsZi5fZGVmYXVsdF9iZWdpbl93b3JrX3F1ZXVlX2xvZ3Mo
ZXdzLm5hbWUpLAogICAgICAgICAgICAgInByb2Nlc3Nfd29ya19pdGVtIjogIiIiTU9DSzogdXBk
YXRlX3N0YXR1czogJShuYW1lKXMgU3RhcnRlZCBwcm9jZXNzaW5nIHBhdGNoCiBSdW5uaW5nOiB3
ZWJraXQtcGF0Y2ggLS1zdGF0dXMtaG9zdD1leGFtcGxlLmNvbSBjbGVhbiAtLXBvcnQ9JShwb3J0
KXMlKGFyY2hpdGVjdHVyZSlzCiBSdW5uaW5nOiB3ZWJraXQtcGF0Y2ggLS1zdGF0dXMtaG9zdD1l
eGFtcGxlLmNvbSB1cGRhdGUgLS1wb3J0PSUocG9ydClzJShhcmNoaXRlY3R1cmUpcwogUnVubmlu
Zzogd2Via2l0LXBhdGNoIC0tc3RhdHVzLWhvc3Q9ZXhhbXBsZS5jb20gYXBwbHktYXR0YWNobWVu
dCAtLW5vLXVwZGF0ZSAtLW5vbi1pbnRlcmFjdGl2ZSAxMDAwMCAtLXBvcnQ9JShwb3J0KXMlKGFy
Y2hpdGVjdHVyZSlzCi1SdW5uaW5nOiB3ZWJraXQtcGF0Y2ggLS1zdGF0dXMtaG9zdD1leGFtcGxl
LmNvbSBidWlsZCAtLW5vLWNsZWFuIC0tbm8tdXBkYXRlIC0tYnVpbGQtc3R5bGU9JShidWlsZF9z
dHlsZSlzIC0tcG9ydD0lKHBvcnQpcyUoYXJjaGl0ZWN0dXJlKXMKLSUocnVuX3Rlc3RzX2xpbmUp
c01PQ0s6IHVwZGF0ZV9zdGF0dXM6ICUobmFtZSlzIFBhc3MKLU1PQ0s6IHJlbGVhc2Vfd29ya19p
dGVtOiAlKG5hbWUpcyAxMDAwMAotIiIiICUgc3RyaW5nX3JlcGxhY2VtZW50cywKK1J1bm5pbmc6
IHdlYmtpdC1wYXRjaCAtLXN0YXR1cy1ob3N0PWV4YW1wbGUuY29tIGNoZWNrLXBhdGNoLXJlbGV2
YW5jZSAtLWdyb3VwPSUoZ3JvdXApcyAtLXBvcnQ9JShwb3J0KXMlKGFyY2hpdGVjdHVyZSlzCitS
dW5uaW5nOiB3ZWJraXQtcGF0Y2ggLS1zdGF0dXMtaG9zdD1leGFtcGxlLmNvbSBidWlsZCAtLW5v
LWNsZWFuIC0tbm8tdXBkYXRlIC0tYnVpbGQtc3R5bGU9JShidWlsZF9zdHlsZSlzIC0tZ3JvdXA9
JShncm91cClzIC0tcG9ydD0lKHBvcnQpcyUoYXJjaGl0ZWN0dXJlKXMKKyUocnVuX3Rlc3RzX2xp
bmUpcyUocmVzdWx0X2xpbmVzKXMiIiIgJSBzdHJpbmdfcmVwbGFjZW1lbnRzLAogICAgICAgICAg
ICAgImhhbmRsZV91bmV4cGVjdGVkX2Vycm9yIjogIk1vY2sgZXJyb3IgbWVzc2FnZVxuIiwKICAg
ICAgICAgICAgICJoYW5kbGVfc2NyaXB0X2Vycm9yIjogIlNjcmlwdEVycm9yIGVycm9yIG1lc3Nh
Z2VcblxuTU9DSyBvdXRwdXRcbiIsCiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIGV4cGVjdGVk
X2xvZ3MKIAotICAgIGRlZiBfdGVzdF9ld3Moc2VsZiwgZXdzKToKKyAgICBkZWYgX3Rlc3RfZXdz
KHNlbGYsIGV3cywgcmVzdWx0c19hcmVfY29uY2x1c2l2ZT1UcnVlKToKICAgICAgICAgZXdzLmJp
bmRfdG9fdG9vbChNb2NrVG9vbCgpKQogICAgICAgICBld3MuaG9zdCA9IE1vY2tIb3N0KCkKICAg
ICAgICAgb3B0aW9ucyA9IE1vY2soKQogICAgICAgICBvcHRpb25zLnBvcnQgPSBOb25lCiAgICAg
ICAgIG9wdGlvbnMucnVuX3Rlc3RzID0gZXdzLnJ1bl90ZXN0cwotICAgICAgICBzZWxmLmFzc2Vy
dF9xdWV1ZV9vdXRwdXRzKGV3cywgZXhwZWN0ZWRfbG9ncz1zZWxmLl9kZWZhdWx0X2V4cGVjdGVk
X2xvZ3MoZXdzKSwgb3B0aW9ucz1vcHRpb25zKQorICAgICAgICBzZWxmLmFzc2VydF9xdWV1ZV9v
dXRwdXRzKGV3cywgZXhwZWN0ZWRfbG9ncz1zZWxmLl9kZWZhdWx0X2V4cGVjdGVkX2xvZ3MoZXdz
LCByZXN1bHRzX2FyZV9jb25jbHVzaXZlKSwgb3B0aW9ucz1vcHRpb25zKQogCiAgICAgZGVmIHRl
c3RfZXdzZXMoc2VsZik6CiAgICAgICAgIGNsYXNzZXMgPSBBYnN0cmFjdEVhcmx5V2FybmluZ1N5
c3RlbS5sb2FkX2V3c19jbGFzc2VzKCkKQEAgLTEwNCwzICsxNDYsMTIgQEAgTU9DSzogcmVsZWFz
ZV93b3JrX2l0ZW06ICUobmFtZSlzIDEwMDAwCiAgICAgICAgIHNlbGYubWF4RGlmZiA9IE5vbmUK
ICAgICAgICAgZm9yIGV3c19jbGFzcyBpbiBjbGFzc2VzOgogICAgICAgICAgICAgc2VsZi5fdGVz
dF9ld3MoZXdzX2NsYXNzKCkpCisKKyAgICAjIFRoaXMgbXVzdCB1c2UgdGhlIE1vY2sgRVdTIGNs
YXNzZXMgZGVmaW5lZCBhYm92ZQorICAgIGRlZiB0ZXN0X2luY29uY2x1c2l2ZV90ZXN0X3Jlc3Vs
dHMoc2VsZik6CisgICAgICAgIGNsYXNzZXMgPSBNb2NrQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0
ZW1Gb3JJbmNvbmNsdXNpdmVSZXN1bHRzLmxvYWRfZXdzX2NsYXNzZXMoKQorICAgICAgICBzZWxm
LmFzc2VydFRydWUoY2xhc3NlcykKKyAgICAgICAgc2VsZi5tYXhEaWZmID0gTm9uZQorICAgICAg
ICB0ZXN0X2NsYXNzZXMgPSBmaWx0ZXIobGFtYmRhIHg6IHgucnVuX3Rlc3RzLCBjbGFzc2VzKQor
ICAgICAgICBmb3IgZXdzX2NsYXNzIGluIHRlc3RfY2xhc3NlczoKKyAgICAgICAgICAgIHNlbGYu
X3Rlc3RfZXdzKGV3c19jbGFzcygpLCBGYWxzZSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvdG9vbC9zdGVwcy9fX2luaXRfXy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
dG9vbC9zdGVwcy9fX2luaXRfXy5weQppbmRleCAzNTZhY2FiMDNhZDgyNzRjZTliZGE2ODU4ODY0
ZmYxOWI2NGY0YTBhLi42YzljMDlhYzUyYTM4NmI5ZjBjZjM2M2I5YzAzYmJhYTRjMDAzODYxIDEw
MDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvX19pbml0X18ucHkK
KysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL19faW5pdF9fLnB5CkBAIC0x
LDQgKzEsNSBAQAogIyBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTMzLDYgKzM0LDcgQEAg
ZnJvbSB3ZWJraXRweS50b29sLnN0ZXBzLmFwcGx5cGF0Y2h3aXRobG9jYWxjb21taXQgaW1wb3J0
IEFwcGx5UGF0Y2hXaXRoTG9jYWxDb20KIGZyb20gd2Via2l0cHkudG9vbC5zdGVwcy5hcHBseXdh
dGNobGlzdCBpbXBvcnQgQXBwbHlXYXRjaExpc3QKIGZyb20gd2Via2l0cHkudG9vbC5zdGVwcy5h
dHRhY2h0b2J1ZyBpbXBvcnQgQXR0YWNoVG9CdWcKIGZyb20gd2Via2l0cHkudG9vbC5zdGVwcy5i
dWlsZCBpbXBvcnQgQnVpbGQKK2Zyb20gd2Via2l0cHkudG9vbC5zdGVwcy5jaGVja3BhdGNocmVs
ZXZhbmNlIGltcG9ydCBDaGVja1BhdGNoUmVsZXZhbmNlCiBmcm9tIHdlYmtpdHB5LnRvb2wuc3Rl
cHMuY2hlY2tzdHlsZSBpbXBvcnQgQ2hlY2tTdHlsZQogZnJvbSB3ZWJraXRweS50b29sLnN0ZXBz
LmNsZWFud29ya2luZ2RpcmVjdG9yeSBpbXBvcnQgQ2xlYW5Xb3JraW5nRGlyZWN0b3J5CiBmcm9t
IHdlYmtpdHB5LnRvb2wuc3RlcHMuY2xvc2VidWcgaW1wb3J0IENsb3NlQnVnCmRpZmYgLS1naXQg
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvYnVpbGQucHkgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvYnVpbGQucHkKaW5kZXggZjc0ZmZjZTcwOTQxYzYxZTU5
Njc5MmU0YzYwZGNkN2Y4YjY1ZTllYy4uNmQ2NDhlMzRmZTNhOTI5YThjYTZiNzFiMDJhNzBkOWE4
NDMyNWQxYSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL2J1
aWxkLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9idWlsZC5weQpA
QCAtMSw0ICsxLDUgQEAKICMgQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC00MSwyOCArNDIs
MzUgQEAgY2xhc3MgQnVpbGQoQWJzdHJhY3RTdGVwKToKICAgICAgICAgICAgIE9wdGlvbnMuYnVp
bGQsCiAgICAgICAgICAgICBPcHRpb25zLnF1aWV0LAogICAgICAgICAgICAgT3B0aW9ucy5idWls
ZF9zdHlsZSwKKyAgICAgICAgICAgIE9wdGlvbnMuZ3JvdXAsCiAgICAgICAgIF0KIAotICAgIGRl
ZiBidWlsZChzZWxmLCBidWlsZF9zdHlsZSk6CisgICAgZGVmIGJ1aWxkKHNlbGYsIGJ1aWxkX3N0
eWxlLCBncm91cCk6CiAgICAgICAgIGVudmlyb25tZW50ID0gc2VsZi5fdG9vbC5jb3B5X2N1cnJl
bnRfZW52aXJvbm1lbnQoKQogICAgICAgICBlbnZpcm9ubWVudC5kaXNhYmxlX2djY19zbWFydHF1
b3RlcygpCiAgICAgICAgIGVudmlyb25tZW50LmRpc2FibGVfamhidWlsZF9WVDEwMF9vdXRwdXQo
KQogICAgICAgICBlbnYgPSBlbnZpcm9ubWVudC50b19kaWN0aW9uYXJ5KCkKIAotICAgICAgICBi
dWlsZF93ZWJraXRfY29tbWFuZCA9IHNlbGYuX3Rvb2wuZGVwcmVjYXRlZF9wb3J0KCkuYnVpbGRf
d2Via2l0X2NvbW1hbmQoYnVpbGRfc3R5bGU9YnVpbGRfc3R5bGUpCisgICAgICAgIGlmIGdyb3Vw
ID09ICJqc2MiOgorICAgICAgICAgICAgYnVpbGRfY29tbWFuZCA9IHNlbGYuX3Rvb2wuZGVwcmVj
YXRlZF9wb3J0KCkuYnVpbGRfanNjX2NvbW1hbmQoYnVpbGRfc3R5bGU9YnVpbGRfc3R5bGUpCisg
ICAgICAgIGVsc2U6CisgICAgICAgICAgICBidWlsZF9jb21tYW5kID0gc2VsZi5fdG9vbC5kZXBy
ZWNhdGVkX3BvcnQoKS5idWlsZF93ZWJraXRfY29tbWFuZChidWlsZF9zdHlsZT1idWlsZF9zdHls
ZSkKIAogICAgICAgICBpZiBzZWxmLl9vcHRpb25zLmFyY2hpdGVjdHVyZToKLSAgICAgICAgICAg
IGJ1aWxkX3dlYmtpdF9jb21tYW5kICs9IFsnQVJDSFM9JXMnICUgc2VsZi5fb3B0aW9ucy5hcmNo
aXRlY3R1cmVdCisgICAgICAgICAgICBidWlsZF9jb21tYW5kICs9IFsnQVJDSFM9JXMnICUgc2Vs
Zi5fb3B0aW9ucy5hcmNoaXRlY3R1cmVdCiAKLSAgICAgICAgc2VsZi5fdG9vbC5leGVjdXRpdmUu
cnVuX2FuZF90aHJvd19pZl9mYWlsKGJ1aWxkX3dlYmtpdF9jb21tYW5kLCBzZWxmLl9vcHRpb25z
LnF1aWV0LAorICAgICAgICBzZWxmLl90b29sLmV4ZWN1dGl2ZS5ydW5fYW5kX3Rocm93X2lmX2Zh
aWwoYnVpbGRfY29tbWFuZCwgc2VsZi5fb3B0aW9ucy5xdWlldCwKICAgICAgICAgICAgIGN3ZD1z
ZWxmLl90b29sLnNjbSgpLmNoZWNrb3V0X3Jvb3QsIGVudj1lbnYpCiAKICAgICBkZWYgcnVuKHNl
bGYsIHN0YXRlKToKICAgICAgICAgaWYgbm90IHNlbGYuX29wdGlvbnMuYnVpbGQ6CiAgICAgICAg
ICAgICByZXR1cm4KICAgICAgICAgX2xvZy5pbmZvKCJCdWlsZGluZyBXZWJLaXQiKQorCisgICAg
ICAgIGdyb3VwID0gc2VsZi5fb3B0aW9ucy5ncm91cAorCiAgICAgICAgIGlmIHNlbGYuX29wdGlv
bnMuYnVpbGRfc3R5bGUgPT0gImJvdGgiOgotICAgICAgICAgICAgc2VsZi5idWlsZCgiZGVidWci
KQotICAgICAgICAgICAgc2VsZi5idWlsZCgicmVsZWFzZSIpCisgICAgICAgICAgICBzZWxmLmJ1
aWxkKCJkZWJ1ZyIsIGdyb3VwKQorICAgICAgICAgICAgc2VsZi5idWlsZCgicmVsZWFzZSIsIGdy
b3VwKQogICAgICAgICBlbHNlOgotICAgICAgICAgICAgc2VsZi5idWlsZChzZWxmLl9vcHRpb25z
LmJ1aWxkX3N0eWxlKQorICAgICAgICAgICAgc2VsZi5idWlsZChzZWxmLl9vcHRpb25zLmJ1aWxk
X3N0eWxlLCBncm91cCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9z
dGVwcy9jaGVja3BhdGNocmVsZXZhbmNlLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29s
L3N0ZXBzL2NoZWNrcGF0Y2hyZWxldmFuY2UucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDU2MTc3NzUxOTQ5YTIy
Yjc0OWYxYTRjYzQzNzBkN2NlYTBkY2Y2ZgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvdG9vbC9zdGVwcy9jaGVja3BhdGNocmVsZXZhbmNlLnB5CkBAIC0wLDAgKzEs
NzUgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAor
IyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IKKyMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwKKyMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworaW1wb3J0IGxv
Z2dpbmcKK2ltcG9ydCByZQorCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZl
IGltcG9ydCBTY3JpcHRFcnJvcgorZnJvbSB3ZWJraXRweS50b29sLnN0ZXBzLmFic3RyYWN0c3Rl
cCBpbXBvcnQgQWJzdHJhY3RTdGVwCitmcm9tIHdlYmtpdHB5LnRvb2wuc3RlcHMub3B0aW9ucyBp
bXBvcnQgT3B0aW9ucworCitfbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18pCisKKwor
Y2xhc3MgQ2hlY2tQYXRjaFJlbGV2YW5jZShBYnN0cmFjdFN0ZXApOgorICAgIEBjbGFzc21ldGhv
ZAorICAgIGRlZiBvcHRpb25zKGNscyk6CisgICAgICAgIHJldHVybiBBYnN0cmFjdFN0ZXAub3B0
aW9ucygpICsgWworICAgICAgICAgICAgT3B0aW9ucy5ncm91cCwKKyAgICAgICAgXQorCisgICAg
anNjX3BhdGhzID0gWworICAgICAgICAiSlNUZXN0cy8iLAorICAgICAgICAiU291cmNlL0phdmFT
Y3JpcHRDb3JlLyIsCisgICAgICAgICJTb3VyY2UvV1RGLyIKKyAgICAgICAgIlNvdXJjZS9ibWFs
bG9jLyIsCisgICAgXQorCisgICAgZ3JvdXBfdG9fcGF0aHNfbWFwcGluZyA9IHsKKyAgICAgICAg
J2pzYyc6IGpzY19wYXRocywKKyAgICB9CisKKyAgICBkZWYgX2NoYW5nZXNfYXJlX3JlbGV2YW50
KHNlbGYsIGNoYW5nZWRfZmlsZXMpOgorICAgICAgICAjIEluIHRoZSBkZWZhdWx0IGNhc2UsIGFs
bCBwYXRjaGVzIGFyZSByZWxldmFudAorICAgICAgICBpZiBzZWxmLl9vcHRpb25zLmdyb3VwIGlz
IE5vbmU6CisgICAgICAgICAgICByZXR1cm4gVHJ1ZQorCisgICAgICAgIHBhdHRlcm5zID0gc2Vs
Zi5ncm91cF90b19wYXRoc19tYXBwaW5nW3NlbGYuX29wdGlvbnMuZ3JvdXBdCisKKyAgICAgICAg
Zm9yIGNoYW5nZWRfZmlsZSBpbiBjaGFuZ2VkX2ZpbGVzOgorICAgICAgICAgICAgZm9yIHBhdHRl
cm4gaW4gcGF0dGVybnM6CisgICAgICAgICAgICAgICAgaWYgcmUuc2VhcmNoKHBhdHRlcm4sIGNo
YW5nZWRfZmlsZSwgcmUuSUdOT1JFQ0FTRSk6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBU
cnVlCisKKyAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICBkZWYgcnVuKHNlbGYsIHN0YXRlKToK
KyAgICAgICAgX2xvZy5pbmZvKCJDaGVja2luZyByZWxldmFuY2Ugb2YgcGF0Y2giKQorCisgICAg
ICAgIGNoYW5nZV9saXN0ID0gc2VsZi5fdG9vbC5zY20oKS5jaGFuZ2VkX2ZpbGVzKCkKKworICAg
ICAgICBpZiBzZWxmLl9jaGFuZ2VzX2FyZV9yZWxldmFudChjaGFuZ2VfbGlzdCk6CisgICAgICAg
ICAgICBfbG9nLmluZm8oIlRoaXMgcGF0Y2ggaGFzIHJlbGV2YW50IGNoYW5nZXMuIikKKyAgICAg
ICAgICAgIHJldHVybiBUcnVlCisKKyAgICAgICAgX2xvZy5pbmZvKCJUaGlzIHBhdGNoIGRvZXMg
bm90IGhhdmUgcmVsZXZhbnQgY2hhbmdlcy4iKQorICAgICAgICByYWlzZSBTY3JpcHRFcnJvciht
ZXNzYWdlPSJUaGlzIHBhdGNoIGRvZXMgbm90IGhhdmUgcmVsZXZhbnQgY2hhbmdlcy4iKQpkaWZm
IC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL29wdGlvbnMucHkgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvb3B0aW9ucy5weQppbmRleCAzZWY0N2Qw
MDhhNTllMDUwZDRjYTBjNDg3N2RkZDFhNjA3MzFhNDA5Li5mNWUwZGVmMzI3MTdlMzA2ZTYzMTY5
ODQxMTEwYjI4OThiNzJhMWYxIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rv
b2wvc3RlcHMvb3B0aW9ucy5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3Rl
cHMvb3B0aW9ucy5weQpAQCAtMSw0ICsxLDUgQEAKICMgQ29weXJpZ2h0IChDKSAyMDEwIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogIyBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
CkBAIC00Niw2ICs0Nyw3IEBAIGNsYXNzIE9wdGlvbnMob2JqZWN0KToKICAgICBlbWFpbCA9IG1h
a2Vfb3B0aW9uKCItLWVtYWlsIiwgYWN0aW9uPSJzdG9yZSIsIHR5cGU9InN0cmluZyIsIGRlc3Q9
ImVtYWlsIiwgaGVscD0iRW1haWwgYWRkcmVzcyB0byB1c2UgaW4gQ2hhbmdlTG9ncy4iKQogICAg
IGZvcmNlX2NsZWFuID0gbWFrZV9vcHRpb24oIi0tZm9yY2UtY2xlYW4iLCBhY3Rpb249InN0b3Jl
X3RydWUiLCBkZXN0PSJmb3JjZV9jbGVhbiIsIGRlZmF1bHQ9RmFsc2UsIGhlbHA9IkNsZWFuIHdv
cmtpbmcgZGlyZWN0b3J5IGJlZm9yZSBhcHBseWluZyBwYXRjaGVzIChyZW1vdmVzIGxvY2FsIGNo
YW5nZXMgYW5kIGNvbW1pdHMpIikKICAgICBnaXRfY29tbWl0ID0gbWFrZV9vcHRpb24oIi1nIiwg
Ii0tZ2l0LWNvbW1pdCIsIGFjdGlvbj0ic3RvcmUiLCBkZXN0PSJnaXRfY29tbWl0IiwgaGVscD0i
T3BlcmF0ZSBvbiBhIGxvY2FsIGNvbW1pdC4gSWYgYSByYW5nZSwgdGhlIGNvbW1pdHMgYXJlIHNx
dWFzaGVkIGludG8gb25lLiA8cmVmPi4uLi4gaW5jbHVkZXMgdGhlIHdvcmtpbmcgY29weSBjaGFu
Z2VzLiBVUFNUUkVBTSBjYW4gYmUgdXNlZCBmb3IgdGhlIHVwc3RyZWFtL3RyYWNraW5nIGJyYW5j
aC4iKQorICAgIGdyb3VwID0gbWFrZV9vcHRpb24oIi0tZ3JvdXAiLCBhY3Rpb249InN0b3JlIiwg
ZGVzdD0iZ3JvdXAiLCBkZWZhdWx0PU5vbmUsIGhlbHA9IiIpCiAgICAgbG9jYWxfY29tbWl0ID0g
bWFrZV9vcHRpb24oIi0tbG9jYWwtY29tbWl0IiwgYWN0aW9uPSJzdG9yZV90cnVlIiwgZGVzdD0i
bG9jYWxfY29tbWl0IiwgZGVmYXVsdD1GYWxzZSwgaGVscD0iTWFrZSBhIGxvY2FsIGNvbW1pdCBm
b3IgZWFjaCBhcHBsaWVkIHBhdGNoIikKICAgICBub25faW50ZXJhY3RpdmUgPSBtYWtlX29wdGlv
bigiLS1ub24taW50ZXJhY3RpdmUiLCBhY3Rpb249InN0b3JlX3RydWUiLCBkZXN0PSJub25faW50
ZXJhY3RpdmUiLCBkZWZhdWx0PUZhbHNlLCBoZWxwPSJOZXZlciBwcm9tcHQgdGhlIHVzZXIsIGZh
aWwgYXMgZmFzdCBhcyBwb3NzaWJsZS4iKQogICAgIG9ic29sZXRlX3BhdGNoZXMgPSBtYWtlX29w
dGlvbigiLS1uby1vYnNvbGV0ZSIsIGFjdGlvbj0ic3RvcmVfZmFsc2UiLCBkZXN0PSJvYnNvbGV0
ZV9wYXRjaGVzIiwgZGVmYXVsdD1UcnVlLCBoZWxwPSJEbyBub3Qgb2Jzb2xldGUgb2xkIHBhdGNo
ZXMgYmVmb3JlIHBvc3RpbmcgdGhpcyBvbmUuIikKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvdG9vbC9zdGVwcy9ydW50ZXN0cy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
dG9vbC9zdGVwcy9ydW50ZXN0cy5weQppbmRleCA3NWQ3MmJjOWFkMmY0ZTM2ZDQ1ZmRhYzkwZjE4
MTk0ODFjZjAyODhiLi5lZjk3OWU1NzI3ODZmNzFlYzMzMTA0OWVjZmI3MWY2Y2RmZWNhZTk1IDEw
MDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvcnVudGVzdHMucHkK
KysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3J1bnRlc3RzLnB5CkBAIC0x
LDQgKzEsNSBAQAogIyBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTUzLDkgKzU0LDE0IEBA
IGNsYXNzIFJ1blRlc3RzKEFic3RyYWN0U3RlcCk6CiAgICAgICAgICAgICBPcHRpb25zLml0ZXJh
dGVfb25fbmV3X3Rlc3RzLAogICAgICAgICAgICAgT3B0aW9ucy5ub25faW50ZXJhY3RpdmUsCiAg
ICAgICAgICAgICBPcHRpb25zLnF1aWV0LAorICAgICAgICAgICAgT3B0aW9ucy5ncm91cCwKICAg
ICAgICAgXQogCiAgICAgZGVmIHJ1bihzZWxmLCBzdGF0ZSk6CisgICAgICAgIGlmIHNlbGYuX29w
dGlvbnMuZ3JvdXAgPT0gImpzYyI6CisgICAgICAgICAgICBzZWxmLl9ydW5famF2YXNjcmlwdGNv
cmVfdGVzdHMoKQorICAgICAgICAgICAgcmV0dXJuCisKICAgICAgICAgaWYgc2VsZi5fb3B0aW9u
cy5pdGVyYXRlX29uX25ld190ZXN0czoKICAgICAgICAgICAgIF9sb2cuaW5mbygiUnVubmluZyBy
dW4td2Via2l0LXRlc3RzIG9uIG5ldyB0ZXN0cyIpCiAgICAgICAgICAgICBzZWxmLl9ydW5fd2Vi
a2l0X3Rlc3RzKHNlbGYuX29wdGlvbnMuaXRlcmF0ZV9vbl9uZXdfdGVzdHMpCkBAIC0xNDMsMyAr
MTQ5LDcgQEAgY2xhc3MgUnVuVGVzdHMoQWJzdHJhY3RTdGVwKToKICAgICAgICAgICAgIGFyZ3Mu
YXBwZW5kKCItLWl0ZXJhdGlvbnM9JWQiICUgaXRlcmF0ZV9vbl9uZXdfdGVzdHMpCiAKICAgICAg
ICAgc2VsZi5fdG9vbC5leGVjdXRpdmUucnVuX2FuZF90aHJvd19pZl9mYWlsKGFyZ3MsIGN3ZD1z
ZWxmLl90b29sLnNjbSgpLmNoZWNrb3V0X3Jvb3QpCisKKyAgICBkZWYgX3J1bl9qYXZhc2NyaXB0
Y29yZV90ZXN0cyhzZWxmKToKKyAgICAgICAgYXJncyA9IHNlbGYuX3Rvb2wuZGVwcmVjYXRlZF9w
b3J0KCkucnVuX2phdmFzY3JpcHRjb3JlX3Rlc3RzX2NvbW1hbmQoc2VsZi5fb3B0aW9ucy5idWls
ZF9zdHlsZSkKKyAgICAgICAgc2VsZi5fdG9vbC5leGVjdXRpdmUucnVuX2FuZF90aHJvd19pZl9m
YWlsKGFyZ3MsIGN3ZD1zZWxmLl90b29sLnNjbSgpLmNoZWNrb3V0X3Jvb3QpCmRpZmYgLS1naXQg
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvcnVudGVzdHNfdW5pdHRlc3QucHkg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvcnVudGVzdHNfdW5pdHRlc3QucHkK
aW5kZXggMzAwMDY4MTkyMDBhZDkyZDg2MDk2NDJlOGY4MDI3ZDI0NmQ4Nzg0OS4uZDRkOTk2NDZj
MmZmMDVlY2RkY2M4ZDQxZTI3OTNmNTBmY2JkZjQ2NCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS90b29sL3N0ZXBzL3J1bnRlc3RzX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9ydW50ZXN0c191bml0dGVzdC5weQpAQCAtNDAsNyAr
NDAsNyBAQCBjbGFzcyBSdW5UZXN0c1Rlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICB0
b29sID0gTW9ja1Rvb2wobG9nX2V4ZWN1dGl2ZT1UcnVlKQogICAgICAgICB0b29sLl9kZXByZWNh
dGVkX3BvcnQucnVuX3B5dGhvbl91bml0dGVzdHNfY29tbWFuZCA9IGxhbWJkYTogTm9uZQogICAg
ICAgICB0b29sLl9kZXByZWNhdGVkX3BvcnQucnVuX3BlcmxfdW5pdHRlc3RzX2NvbW1hbmQgPSBs
YW1iZGE6IE5vbmUKLSAgICAgICAgc3RlcCA9IFJ1blRlc3RzKHRvb2wsIE1vY2tPcHRpb25zKHRl
c3Q9VHJ1ZSwgbm9uX2ludGVyYWN0aXZlPVRydWUsIHF1aWV0PUZhbHNlLCBidWlsZF9zdHlsZT0i
cmVsZWFzZSIsIGl0ZXJhdGVfb25fbmV3X3Rlc3RzPTApKQorICAgICAgICBzdGVwID0gUnVuVGVz
dHModG9vbCwgTW9ja09wdGlvbnModGVzdD1UcnVlLCBub25faW50ZXJhY3RpdmU9VHJ1ZSwgcXVp
ZXQ9RmFsc2UsIGJ1aWxkX3N0eWxlPSJyZWxlYXNlIiwgaXRlcmF0ZV9vbl9uZXdfdGVzdHM9MCwg
Z3JvdXA9Tm9uZSkpCiAKICAgICAgICAgaWYgc3lzLnBsYXRmb3JtICE9ICJjeWd3aW4iOgogICAg
ICAgICAgICAgZXhwZWN0ZWRfbG9ncyA9ICIiIlJ1bm5pbmcgYmluZGluZ3MgZ2VuZXJhdGlvbiB0
ZXN0cwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3N0ZXBz
X3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3N0ZXBzX3Vu
aXR0ZXN0LnB5CmluZGV4IDdkOTRhMTNiMzQ2M2Q5OGE0NGY5NDlmODE0Y2M3MTIxYzA2OGFiNWQu
LmY4YTczNjNkZmUzZGE0NDliMzNhYjcyZjhkMDBhNTQwYjQ2ZDRhMzIgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9zdGVwc191bml0dGVzdC5weQorKysgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvc3RlcHNfdW5pdHRlc3QucHkKQEAgLTEs
NCArMSw1IEBACiAjIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtMjgsNiArMjksNyBAQAog
CiBpbXBvcnQgdW5pdHRlc3QKIAorZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmV4ZWN1dGl2
ZSBpbXBvcnQgU2NyaXB0RXJyb3IKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5vdXRwdXRj
YXB0dXJlIGltcG9ydCBPdXRwdXRDYXB0dXJlCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5jb25maWcu
cG9ydHMgaW1wb3J0IERlcHJlY2F0ZWRQb3J0CiBmcm9tIHdlYmtpdHB5LnRvb2wubW9ja3Rvb2wg
aW1wb3J0IE1vY2tPcHRpb25zLCBNb2NrVG9vbApAQCAtMzgsNiArNDAsNyBAQCBmcm9tIHdlYmtp
dHB5LnRvb2wgaW1wb3J0IHN0ZXBzCiBjbGFzcyBTdGVwc1Rlc3QodW5pdHRlc3QuVGVzdENhc2Up
OgogICAgIGRlZiBfc3RlcF9vcHRpb25zKHNlbGYpOgogICAgICAgICBvcHRpb25zID0gTW9ja09w
dGlvbnMoKQorICAgICAgICBvcHRpb25zLmdyb3VwID0gTm9uZQogICAgICAgICBvcHRpb25zLm5v
bl9pbnRlcmFjdGl2ZSA9IFRydWUKICAgICAgICAgb3B0aW9ucy5wb3J0ID0gJ01PQ0sgcG9ydCcK
ICAgICAgICAgb3B0aW9ucy5xdWlldCA9IFRydWUKQEAgLTExMSw3ICsxMTQsNyBAQCBNT0NLIHJ1
bl9hbmRfdGhyb3dfaWZfZmFpbDogWydUb29scy9TY3JpcHRzL3Rlc3Qtd2Via2l0cHknXSwgY3dk
PS9tb2NrLWNoZWNrb3V0CiBSdW5uaW5nIFBlcmwgdW5pdCB0ZXN0cwogTU9DSyBydW5fYW5kX3Ro
cm93X2lmX2ZhaWw6IFsnVG9vbHMvU2NyaXB0cy90ZXN0LXdlYmtpdHBlcmwnXSwgY3dkPS9tb2Nr
LWNoZWNrb3V0CiBSdW5uaW5nIEphdmFTY3JpcHRDb3JlIHRlc3RzCi1NT0NLIHJ1bl9hbmRfdGhy
b3dfaWZfZmFpbDogWydUb29scy9TY3JpcHRzL3J1bi1qYXZhc2NyaXB0Y29yZS10ZXN0cyddLCBj
d2Q9L21vY2stY2hlY2tvdXQKK01PQ0sgcnVuX2FuZF90aHJvd19pZl9mYWlsOiBbJ1Rvb2xzL1Nj
cmlwdHMvcnVuLWphdmFzY3JpcHRjb3JlLXRlc3RzJywgJy0tbm8tZmFpbC1mYXN0JywgJy0tanNv
bi1vdXRwdXQ9anNjX3Rlc3RfcmVzdWx0cy5qc29uJ10sIGN3ZD0vbW9jay1jaGVja291dAogUnVu
bmluZyBiaW5kaW5ncyBnZW5lcmF0aW9uIHRlc3RzCiBNT0NLIHJ1bl9hbmRfdGhyb3dfaWZfZmFp
bDogWydUb29scy9TY3JpcHRzL3J1bi1iaW5kaW5ncy10ZXN0cyddLCBjd2Q9L21vY2stY2hlY2tv
dXQKIFJ1bm5pbmcgcnVuLXdlYmtpdC10ZXN0cwpAQCAtMTMzLDEwICsxMzYsMTExIEBAIE1PQ0sg
cnVuX2FuZF90aHJvd19pZl9mYWlsOiBbJ1Rvb2xzL1NjcmlwdHMvdGVzdC13ZWJraXRweSddLCBj
d2Q9L21vY2stY2hlY2tvdXQKIFJ1bm5pbmcgUGVybCB1bml0IHRlc3RzCiBNT0NLIHJ1bl9hbmRf
dGhyb3dfaWZfZmFpbDogWydUb29scy9TY3JpcHRzL3Rlc3Qtd2Via2l0cGVybCddLCBjd2Q9L21v
Y2stY2hlY2tvdXQKIFJ1bm5pbmcgSmF2YVNjcmlwdENvcmUgdGVzdHMKLU1PQ0sgcnVuX2FuZF90
aHJvd19pZl9mYWlsOiBbJ1Rvb2xzL1NjcmlwdHMvcnVuLWphdmFzY3JpcHRjb3JlLXRlc3RzJ10s
IGN3ZD0vbW9jay1jaGVja291dAorTU9DSyBydW5fYW5kX3Rocm93X2lmX2ZhaWw6IFsnVG9vbHMv
U2NyaXB0cy9ydW4tamF2YXNjcmlwdGNvcmUtdGVzdHMnLCAnLS1uby1mYWlsLWZhc3QnLCAnLS1q
c29uLW91dHB1dD1qc2NfdGVzdF9yZXN1bHRzLmpzb24nXSwgY3dkPS9tb2NrLWNoZWNrb3V0CiBS
dW5uaW5nIGJpbmRpbmdzIGdlbmVyYXRpb24gdGVzdHMKIE1PQ0sgcnVuX2FuZF90aHJvd19pZl9m
YWlsOiBbJ1Rvb2xzL1NjcmlwdHMvcnVuLWJpbmRpbmdzLXRlc3RzJ10sIGN3ZD0vbW9jay1jaGVj
a291dAogUnVubmluZyBydW4td2Via2l0LXRlc3RzCiBNT0NLIHJ1bl9hbmRfdGhyb3dfaWZfZmFp
bDogWydUb29scy9TY3JpcHRzL3J1bi13ZWJraXQtdGVzdHMnLCAnLS1kZWJ1ZycsICctLXF1aWV0
J10sIGN3ZD0vbW9jay1jaGVja291dAogIiIiCiAgICAgICAgIE91dHB1dENhcHR1cmUoKS5hc3Nl
cnRfb3V0cHV0cyhzZWxmLCBzdGVwLnJ1biwgW3t9XSwgZXhwZWN0ZWRfbG9ncz1leHBlY3RlZF9s
b2dzKQorCisgICAgZGVmIHRlc3RfcnVudGVzdHNfanNjKHNlbGYpOgorICAgICAgICBtb2NrX29w
dGlvbnMgPSBzZWxmLl9zdGVwX29wdGlvbnMoKQorICAgICAgICBtb2NrX29wdGlvbnMubm9uX2lu
dGVyYWN0aXZlID0gRmFsc2UKKyAgICAgICAgbW9ja19vcHRpb25zLmJ1aWxkX3N0eWxlID0gInJl
bGVhc2UiCisgICAgICAgIG1vY2tfb3B0aW9ucy5ncm91cCA9ICJqc2MiCisgICAgICAgIHN0ZXAg
PSBzdGVwcy5SdW5UZXN0cyhNb2NrVG9vbChsb2dfZXhlY3V0aXZlPVRydWUpLCBtb2NrX29wdGlv
bnMpCisgICAgICAgIHRvb2wgPSBNb2NrVG9vbChsb2dfZXhlY3V0aXZlPVRydWUpCisgICAgICAg
ICMgRklYTUU6IFdlIHNob3VsZG4ndCB1c2UgYSByZWFsIHBvcnQtb2JqZWN0IGhlcmUsIGJ1dCB0
aGVyZSBpcyB0b28gbXVjaCB0byBtb2NrIGF0IHRoZSBtb21lbnQuCisgICAgICAgIHRvb2wuX2Rl
cHJlY2F0ZWRfcG9ydCA9IERlcHJlY2F0ZWRQb3J0KCkKKyAgICAgICAgc3RlcCA9IHN0ZXBzLlJ1
blRlc3RzKHRvb2wsIG1vY2tfb3B0aW9ucykKKyAgICAgICAgZXhwZWN0ZWRfbG9ncyA9ICIiIk1P
Q0sgcnVuX2FuZF90aHJvd19pZl9mYWlsOiBbJ1Rvb2xzL1NjcmlwdHMvcnVuLWphdmFzY3JpcHRj
b3JlLXRlc3RzJywgJy0tbm8tZmFpbC1mYXN0JywgJy0tanNvbi1vdXRwdXQ9anNjX3Rlc3RfcmVz
dWx0cy5qc29uJ10sIGN3ZD0vbW9jay1jaGVja291dAorIiIiCisgICAgICAgIE91dHB1dENhcHR1
cmUoKS5hc3NlcnRfb3V0cHV0cyhzZWxmLCBzdGVwLnJ1biwgW3t9XSwgZXhwZWN0ZWRfbG9ncz1l
eHBlY3RlZF9sb2dzKQorCisgICAgZGVmIHRlc3RfcnVudGVzdHNfanNjX2RlYnVnKHNlbGYpOgor
ICAgICAgICBtb2NrX29wdGlvbnMgPSBzZWxmLl9zdGVwX29wdGlvbnMoKQorICAgICAgICBtb2Nr
X29wdGlvbnMubm9uX2ludGVyYWN0aXZlID0gRmFsc2UKKyAgICAgICAgbW9ja19vcHRpb25zLmJ1
aWxkX3N0eWxlID0gImRlYnVnIgorICAgICAgICBtb2NrX29wdGlvbnMuZ3JvdXAgPSAianNjIgor
ICAgICAgICB0b29sID0gTW9ja1Rvb2wobG9nX2V4ZWN1dGl2ZT1UcnVlKQorICAgICAgICAjIEZJ
WE1FOiBXZSBzaG91bGRuJ3QgdXNlIGEgcmVhbCBwb3J0LW9iamVjdCBoZXJlLCBidXQgdGhlcmUg
aXMgdG9vIG11Y2ggdG8gbW9jayBhdCB0aGUgbW9tZW50LgorICAgICAgICB0b29sLl9kZXByZWNh
dGVkX3BvcnQgPSBEZXByZWNhdGVkUG9ydCgpCisgICAgICAgIHN0ZXAgPSBzdGVwcy5SdW5UZXN0
cyh0b29sLCBtb2NrX29wdGlvbnMpCisgICAgICAgIGV4cGVjdGVkX2xvZ3MgPSAiIiJNT0NLIHJ1
bl9hbmRfdGhyb3dfaWZfZmFpbDogWydUb29scy9TY3JpcHRzL3J1bi1qYXZhc2NyaXB0Y29yZS10
ZXN0cycsICctLW5vLWZhaWwtZmFzdCcsICctLWpzb24tb3V0cHV0PWpzY190ZXN0X3Jlc3VsdHMu
anNvbicsICctLWRlYnVnJ10sIGN3ZD0vbW9jay1jaGVja291dAorIiIiCisgICAgICAgIE91dHB1
dENhcHR1cmUoKS5hc3NlcnRfb3V0cHV0cyhzZWxmLCBzdGVwLnJ1biwgW3t9XSwgZXhwZWN0ZWRf
bG9ncz1leHBlY3RlZF9sb2dzKQorCisgICAgZGVmIHRlc3RfYnVpbGRfanNjX2RlYnVnKHNlbGYp
OgorICAgICAgICBtb2NrX29wdGlvbnMgPSBzZWxmLl9zdGVwX29wdGlvbnMoKQorICAgICAgICBt
b2NrX29wdGlvbnMubm9uX2ludGVyYWN0aXZlID0gRmFsc2UKKyAgICAgICAgbW9ja19vcHRpb25z
LmJ1aWxkX3N0eWxlID0gImRlYnVnIgorICAgICAgICBtb2NrX29wdGlvbnMuYnVpbGQgPSBUcnVl
CisgICAgICAgIG1vY2tfb3B0aW9ucy5hcmNoaXRlY3R1cmUgPSBUcnVlCisgICAgICAgIG1vY2tf
b3B0aW9ucy5ncm91cCA9ICJqc2MiCisgICAgICAgIHRvb2wgPSBNb2NrVG9vbChsb2dfZXhlY3V0
aXZlPVRydWUpCisgICAgICAgICMgRklYTUU6IFdlIHNob3VsZG4ndCB1c2UgYSByZWFsIHBvcnQt
b2JqZWN0IGhlcmUsIGJ1dCB0aGVyZSBpcyB0b28gbXVjaCB0byBtb2NrIGF0IHRoZSBtb21lbnQu
CisgICAgICAgIHRvb2wuX2RlcHJlY2F0ZWRfcG9ydCA9IERlcHJlY2F0ZWRQb3J0KCkKKyAgICAg
ICAgc3RlcCA9IHN0ZXBzLkJ1aWxkKHRvb2wsIG1vY2tfb3B0aW9ucykKKyAgICAgICAgZXhwZWN0
ZWRfbG9ncyA9ICIiIkJ1aWxkaW5nIFdlYktpdAorTU9DSyBydW5fYW5kX3Rocm93X2lmX2ZhaWw6
IFsnVG9vbHMvU2NyaXB0cy9idWlsZC1qc2MnLCAnLS1kZWJ1ZycsICdBUkNIUz1UcnVlJ10sIGN3
ZD0vbW9jay1jaGVja291dCwgZW52PXsnTENfQUxMJzogJ0MnLCAnVEVSTSc6ICdub25lJywgJ01P
Q0tfRU5WSVJPTl9DT1BZJzogJzEnfQorIiIiCisgICAgICAgIE91dHB1dENhcHR1cmUoKS5hc3Nl
cnRfb3V0cHV0cyhzZWxmLCBzdGVwLnJ1biwgW3t9XSwgZXhwZWN0ZWRfbG9ncz1leHBlY3RlZF9s
b2dzKQorCisgICAgZGVmIHRlc3RfYnVpbGRfanNjKHNlbGYpOgorICAgICAgICBtb2NrX29wdGlv
bnMgPSBzZWxmLl9zdGVwX29wdGlvbnMoKQorICAgICAgICBtb2NrX29wdGlvbnMubm9uX2ludGVy
YWN0aXZlID0gRmFsc2UKKyAgICAgICAgbW9ja19vcHRpb25zLmJ1aWxkX3N0eWxlID0gInJlbGVh
c2UiCisgICAgICAgIG1vY2tfb3B0aW9ucy5idWlsZCA9IFRydWUKKyAgICAgICAgbW9ja19vcHRp
b25zLmFyY2hpdGVjdHVyZSA9IFRydWUKKyAgICAgICAgbW9ja19vcHRpb25zLmdyb3VwID0gImpz
YyIKKyAgICAgICAgdG9vbCA9IE1vY2tUb29sKGxvZ19leGVjdXRpdmU9VHJ1ZSkKKyAgICAgICAg
IyBGSVhNRTogV2Ugc2hvdWxkbid0IHVzZSBhIHJlYWwgcG9ydC1vYmplY3QgaGVyZSwgYnV0IHRo
ZXJlIGlzIHRvbyBtdWNoIHRvIG1vY2sgYXQgdGhlIG1vbWVudC4KKyAgICAgICAgdG9vbC5fZGVw
cmVjYXRlZF9wb3J0ID0gRGVwcmVjYXRlZFBvcnQoKQorICAgICAgICBzdGVwID0gc3RlcHMuQnVp
bGQodG9vbCwgbW9ja19vcHRpb25zKQorICAgICAgICBleHBlY3RlZF9sb2dzID0gIiIiQnVpbGRp
bmcgV2ViS2l0CitNT0NLIHJ1bl9hbmRfdGhyb3dfaWZfZmFpbDogWydUb29scy9TY3JpcHRzL2J1
aWxkLWpzYycsICctLXJlbGVhc2UnLCAnQVJDSFM9VHJ1ZSddLCBjd2Q9L21vY2stY2hlY2tvdXQs
IGVudj17J0xDX0FMTCc6ICdDJywgJ1RFUk0nOiAnbm9uZScsICdNT0NLX0VOVklST05fQ09QWSc6
ICcxJ30KKyIiIgorICAgICAgICBPdXRwdXRDYXB0dXJlKCkuYXNzZXJ0X291dHB1dHMoc2VsZiwg
c3RlcC5ydW4sIFt7fV0sIGV4cGVjdGVkX2xvZ3M9ZXhwZWN0ZWRfbG9ncykKKworICAgIGRlZiB0
ZXN0X3BhdGNoX3JlbGV2YW50KHNlbGYpOgorICAgICAgICBzZWxmLm1heERpZmYgPSBOb25lCisg
ICAgICAgIG1vY2tfb3B0aW9ucyA9IHNlbGYuX3N0ZXBfb3B0aW9ucygpCisgICAgICAgIHRvb2wg
PSBNb2NrVG9vbChsb2dfZXhlY3V0aXZlPVRydWUpCisgICAgICAgIHRvb2wuc2NtKCkuX21vY2tD
aGFuZ2VkRmlsZXMgPSBbIkpTVGVzdHMvTW9ja0ZpbGUxIiwgIkNoYW5nZUxvZyJdCisgICAgICAg
ICMgRklYTUU6IFdlIHNob3VsZG4ndCB1c2UgYSByZWFsIHBvcnQtb2JqZWN0IGhlcmUsIGJ1dCB0
aGVyZSBpcyB0b28gbXVjaCB0byBtb2NrIGF0IHRoZSBtb21lbnQuCisgICAgICAgIHRvb2wuX2Rl
cHJlY2F0ZWRfcG9ydCA9IERlcHJlY2F0ZWRQb3J0KCkKKyAgICAgICAgc3RlcCA9IHN0ZXBzLkNo
ZWNrUGF0Y2hSZWxldmFuY2UodG9vbCwgbW9ja19vcHRpb25zKQorICAgICAgICBleHBlY3RlZF9s
b2dzID0gIiIiQ2hlY2tpbmcgcmVsZXZhbmNlIG9mIHBhdGNoCitUaGlzIHBhdGNoIGhhcyByZWxl
dmFudCBjaGFuZ2VzLgorIiIiCisgICAgICAgIE91dHB1dENhcHR1cmUoKS5hc3NlcnRfb3V0cHV0
cyhzZWxmLCBzdGVwLnJ1biwgW3t9XSwgZXhwZWN0ZWRfbG9ncz1leHBlY3RlZF9sb2dzKQorCisg
ICAgZGVmIHRlc3RfcGF0Y2hfcmVsZXZhbnRfanNjKHNlbGYpOgorICAgICAgICBzZWxmLm1heERp
ZmYgPSBOb25lCisgICAgICAgIG1vY2tfb3B0aW9ucyA9IHNlbGYuX3N0ZXBfb3B0aW9ucygpCisg
ICAgICAgIG1vY2tfb3B0aW9ucy5ncm91cCA9ICJqc2MiCisgICAgICAgIHRvb2wgPSBNb2NrVG9v
bChsb2dfZXhlY3V0aXZlPVRydWUpCisgICAgICAgIHRvb2wuc2NtKCkuX21vY2tDaGFuZ2VkRmls
ZXMgPSBbIkpTVGVzdHMvTW9ja0ZpbGUxIiwgIkNoYW5nZUxvZyJdCisgICAgICAgICMgRklYTUU6
IFdlIHNob3VsZG4ndCB1c2UgYSByZWFsIHBvcnQtb2JqZWN0IGhlcmUsIGJ1dCB0aGVyZSBpcyB0
b28gbXVjaCB0byBtb2NrIGF0IHRoZSBtb21lbnQuCisgICAgICAgIHRvb2wuX2RlcHJlY2F0ZWRf
cG9ydCA9IERlcHJlY2F0ZWRQb3J0KCkKKyAgICAgICAgc3RlcCA9IHN0ZXBzLkNoZWNrUGF0Y2hS
ZWxldmFuY2UodG9vbCwgbW9ja19vcHRpb25zKQorICAgICAgICBleHBlY3RlZF9sb2dzID0gIiIi
Q2hlY2tpbmcgcmVsZXZhbmNlIG9mIHBhdGNoCitUaGlzIHBhdGNoIGhhcyByZWxldmFudCBjaGFu
Z2VzLgorIiIiCisgICAgICAgIE91dHB1dENhcHR1cmUoKS5hc3NlcnRfb3V0cHV0cyhzZWxmLCBz
dGVwLnJ1biwgW3t9XSwgZXhwZWN0ZWRfbG9ncz1leHBlY3RlZF9sb2dzKQorCisgICAgZGVmIHRl
c3RfcGF0Y2hfbm90X3JlbGV2YW50X2pzYyhzZWxmKToKKyAgICAgICAgc2VsZi5tYXhEaWZmID0g
Tm9uZQorICAgICAgICBtb2NrX29wdGlvbnMgPSBzZWxmLl9zdGVwX29wdGlvbnMoKQorICAgICAg
ICBtb2NrX29wdGlvbnMuZ3JvdXAgPSAianNjIgorICAgICAgICB0b29sID0gTW9ja1Rvb2wobG9n
X2V4ZWN1dGl2ZT1UcnVlKQorICAgICAgICB0b29sLnNjbSgpLl9tb2NrQ2hhbmdlZEZpbGVzID0g
WyJUb29scy9DaGFuZ2VMb2ciLCAiVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3N0
ZXBzX3VuaXR0ZXN0LnB5Il0KKyAgICAgICAgIyBGSVhNRTogV2Ugc2hvdWxkbid0IHVzZSBhIHJl
YWwgcG9ydC1vYmplY3QgaGVyZSwgYnV0IHRoZXJlIGlzIHRvbyBtdWNoIHRvIG1vY2sgYXQgdGhl
IG1vbWVudC4KKyAgICAgICAgdG9vbC5fZGVwcmVjYXRlZF9wb3J0ID0gRGVwcmVjYXRlZFBvcnQo
KQorICAgICAgICBzdGVwID0gc3RlcHMuQ2hlY2tQYXRjaFJlbGV2YW5jZSh0b29sLCBtb2NrX29w
dGlvbnMpCisgICAgICAgIGV4cGVjdGVkX2xvZ3MgPSAiIiJDaGVja2luZyByZWxldmFuY2Ugb2Yg
cGF0Y2gKK1RoaXMgcGF0Y2ggZG9lcyBub3QgaGF2ZSByZWxldmFudCBjaGFuZ2VzLgorIiIiCisg
ICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoU2NyaXB0RXJyb3IpOgorICAgICAgICAgICAg
T3V0cHV0Q2FwdHVyZSgpLmFzc2VydF9vdXRwdXRzKHNlbGYsIHN0ZXAucnVuLCBbe31dLCBleHBl
Y3RlZF9sb2dzPWV4cGVjdGVkX2xvZ3MpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>301137</attachid>
            <date>2017-02-10 00:19:27 -0800</date>
            <delta_ts>2017-02-10 00:19:27 -0800</delta_ts>
            <desc>Archive of layout-test-results from ews125 for ios-simulator-wk2</desc>
            <filename>layout-test-results.zip</filename>
            <type>application/zip</type>
            <size>824408</size>
            <attacher name="Build Bot">buildbot</attacher>
            
              <data encoding="base64">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
AAQUAAAAUEsDBBQAAgAIADefSUoL2YJA5gAAACQDAABEABwAY29tcG9zaXRpbmcvbWFza3MvY29t
cG9zaXRpbmctY2xpcC1wYXRoLWNoYW5nZS1uby1yZXBhaW50LWFjdHVhbC50eHRVVAkAAzo6nVg6
Op1YdXgLAAEE9QEAAAQUAAAA1VLLjsIwDLznK3ykF5QWCfW+By4r8Q1uEikR3aQbpzz+niQFWkBF
cORiyzOOZxy5cceSNe5Ysa1tTxC0AlLCWQkRBNKubyVo3CtA8KpDY8OSscXGY6eNoF88Kc8AFmiF
dh74kvMcigQ2rreSoOYZXq9vhNCmlV5ZKGMV68dxGZx7ncloMSgbaNvhf6+gHInr6OqCzIzPROfI
BOMs1EminghMHawGB0O6a5AeD/QzWBk9ZOoPaQdtEpzCL8y8pQgwVsXHC674V6z4UnW6d2y83GS8
TRHo3kWCxoOcF3z+0SGnWLCCsTNQSwMEFAACAAgAN59JSvf40vbmAAAAXgIAAEIAHABjb21wb3Np
dGluZy9tYXNrcy9jb21wb3NpdGluZy1jbGlwLXBhdGgtY2hhbmdlLW5vLXJlcGFpbnQtZGlmZi50
eHRVVAkAAzo6nVg6Op1YdXgLAAEE9QEAAAQUAAAAzZDBTsMwDIbvfYocmYqXAhJot2qAOMAJJHb2
UmuNliZR7Ijt7amqCq3hxI0cbMWfo+9XAEDpz+DyQKyfUFA/7z70jvavVua2zdZ1+p0cIRPY2AdP
bIfsUELSDs8hCwixQCLOTlibMMTAVqw/6AH5uJiAcTZCROnB9OgPBD6MLyNaL0CnSEaoW8tJqrqu
/1M2NJLRTcnaVsHtw/VG1WO9V21bqctz9ZIw9tbwG54pLdlI9yH7jtVd06ybZm6rX1tdwi9+DF7I
i7pZVVDwOZZK44dxSSduRE2GC82Prdgv9ItrYfqL5RtQSwMEFAACAAgAN59JSupdJ6fpAAAAgAMA
AEYAHABjb21wb3NpdGluZy9tYXNrcy9jb21wb3NpdGluZy1jbGlwLXBhdGgtY2hhbmdlLW5vLXJl
cGFpbnQtZXhwZWN0ZWQudHh0VVQJAAM6Op1YOjqdWHV4CwABBPUBAAAEFAAAANVSTQ/CIAy98yt6
dBfDNDG7e/Bi4m/ogATihEmZH/9extRNzRY9emnT96DvFVq6S85Kd1mwna2uELQCUsJZCREE0q6p
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
gIqPtsp109oqPr3TlCZqsWRz/FaswzSQzB4xpamVhGUvHWvbZRqw7EsBwAADDDDAAAMMMMAAAwww
wAADDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAA
AwwwwH8T+NH5mYM/vgUANm8zwAADDDDAAAMMMMAA/2/ADw4fuq2iP0W5t68+Xdw3q18fNT+Fcow7
EJZCtfi7HaClpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl
/ZP2/t3lJRFr7fu3ANg3WlpaWlpaWlpaWtp/uLUXejPjPXONbRL9isOlQmuocvkbUEsDBBQAAgAI
ADifSUqGMWOkphYAAJE0AAAtABwAY29tcG9zaXRpbmcvbWFza3Mvc29saWQtY29sb3ItbWFza2Vk
LWRpZmYucG5nVVQJAAM7Op1YOzqdWHV4CwABBPUBAAAEFAAAAO17ezzTe/x/yUm6SU6JMOfoLhyd
klzXiaaGau73aiRmSbm0zKS+hyKmXBZCJyH3SxnNrU4yEjsu2WEuMbOQsQ3bGPt9Ph/V6ff/9/H9
y+PRH6/4fF6f9+vyfD5fr3eP7p21Rmxar7x+1apVm05ZmKFWrVoLX7VKunQd8INVkb49yFWrDjue
Mjtue2P1ZL+V/xf94FVnF4Ju49Xh21eXp5nb8yXhbYXlj9xuHZSSbl6lwGhPCmyptMjL90PaB4me
h6rtf+jgmb5WDbHVaXZmRB1+a9VqKel1W/5PjPOaEey5P0rOnPGn+ed2sCvZ3BqrrOPJXiZ3OL8u
VarEJoIPBssL0+bydWzelNA9zpTUR/Z4Dglny91JrXJEWoSFLOgGFsHZPFIytdiQbtbnhZ/TP7zk
b2roGwB+42oCPESGtzTjeyN5dmaGh6HsbjaMtmQOpxADufoGhICz6yEPChGcpWGdNNc5YYx4kXvi
NynggEYv4eEyh2oPE+XSdZoZL39qnle24TtljoW8q1zU3wtEEbHpJ4phvKRnehjhPg4jfnEdBL4o
XC3Vr9rE+7sApj6ksRUI9nWUNIU+yNo9z+hk3GhomdEfx41ggD9OjDrjEuzvmT4vYzXamM8XR3DY
NJFl7uVw6KViKRIHfrEeofJqa4GqRfHfvi188WehStRySrZ8HogQ0zenqwQ0h5s8tQkDXvkkIxsY
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
A0Y6nVh5Tp1YdXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIAD2fSUolBS+d9AAAABwCAAAjABwAY29t
cG9zaXRpbmcvdmlkZW8vcG9zdGVyLXN0ZGVyci50eHRVVAkAA0U6nVhFOp1YdXgLAAEE9QEAAAQU
AAAAzZHBSsNAEIbvPsUc7SUbY6mtt9rixYKBgAriYZOdkLGbnWVnk9i3d4UIgvXuHP/vG5if4fq9
eb1ZFsu3W9hZLQLl4W4ga54wCLEDEqDeW+zRRTRADmqOHait95YaHZMj6qVhg5n2Xu04aS6K2uOI
lj0GVVodWw69KCo7dlhRP6SIQ+Zn8kOu9g+/PTFHVZ0kYq8OVAcdTqoMNOqI90H3OHE4itqKYJSZ
VxhGalCy9ls4z+Ey/7gqrovVarNZL0A78w+bpZ3Ifxc7h+de+TpNvsjg0SFwC7FDiBPDRNZCjTAI
mgyeO2o6SHd9PXtwBltyKb/4BFBLAwQUAAIACAA9n0lK7T43Z/UAAAAcAgAAMAAcAGNvbXBvc2l0
aW5nL3ZpZGVvL3ZpZGVvLWJvcmRlci1yYWRpdXMtc3RkZXJyLnR4dFVUCQADRjqdWEY6nVh1eAsA
AQT1AQAABBQAAADNkU1Lw0AQhu/+ijnaS7bWjybeaosXCwYCKoiHze6EjN3sLDubxP57I0QQrHev
7/O8MC/D9bt5XV+tbt5uYeu0CJT7u56cfcIoxB5IgLrgsEOf0AJ5qDm1oDYhODI6TY6oF8MWMx2C
2vKk+SRqhwM6DhhV6XRqOHaiqGzZY0VdP0UcszCTH3K1e/jtiT2o6igJO7WnOup4VGWkQSe8j7rD
keNB1EYEk8y8wjiQQcmab+E0h/Plx8VKF+ayKPIFaG//4bKpk/jvYafwvGuN13m+XGTw6BG4gdQi
pJFhJOegRugFbQbPLZkWpru+nt17iw35KT/7BFBLAwQKAAAAAABBn0lKAAAAAAAAAAAAAAAAEQAc
AGNvbnRlbnRmaWx0ZXJpbmcvVVQJAANKOp1YeU6dWHV4CwABBPUBAAAEFAAAAFBLAwQUAAIACABB
n0lKFiTehfQAAAAcAgAAMAAcAGNvbnRlbnRmaWx0ZXJpbmcvYWxsb3ctbWVkaWEtZG9jdW1lbnQt
c3RkZXJyLnR4dFVUCQADSjqdWEo6nVh1eAsAAQT1AQAABBQAAADNkUFLw0AQhe/+ijnaS7YpKbbe
aosXCwYCKoiHTXZCxu7uLDubxP57I0QQrHev7/sezGO4fm9eb4rV+u0W9laLQHm868maJ4xC7IEE
yAWLDn1CA+Sh5tSB2oVgqdFpckS9NGww0yGoPU+aT6IOOKDlgFGVVqeWoxNFZcceK3L9FHHMwkx+
yNXh4bcn5qSqsyR06kh11PGsykiDTngftcOR40nUTgSTzLzCOFCDkrXfwmUO18uPPMd1u9puNwvQ
3vzDZVMn8d/DLuF5V5EXm81ykcGjR+AWUoeQRoaRrIUaoRc0GTx31HQw3fX17N4bbMlP+dUnUEsD
BAoAAAAAAEmfSUoAAAAAAAAAAAAAAAAHABwAY3J5cHRvL1VUCQADWjqdWHlOnVh1eAsAAQT1AQAA
BBQAAABQSwMECgAAAAAAQ59JSgAAAAAAAAAAAAAAAA4AHABjcnlwdG8vc3VidGxlL1VUCQADTTqd
WHlOnVh1eAsAAQT1AQAABBQAAABQSwMECgACAAAAQp9JSiXg0wgsAAAALAAAAD4AHABjcnlwdG8v
c3VidGxlL3JzYS1nZW5lcmF0ZS1rZXktbWFsZm9ybWVkLXBhcmFtZXRlcnMtc3RkZXJyLnR4dFVU
CQADTDqdWEw6nVh1eAsAAQT1AQAABBQAAABDb3VsZCBub3QgZ2VuZXJhdGUgYSBrZXkgcGFpciwg
c3RhdHVzIC00MzA0ClBLAwQUAAIACABDn0lKMDu4sUsAAABoAAAAPAAcAGNyeXB0by9zdWJ0bGUv
cnNhLWltcG9ydC1rZXktbWFsZm9ybWVkLXBhcmFtZXRlcnMtc3RkZXJyLnR4dFVUCQADTTqdWE06
nVh1eAsAAQT1AQAABBQAAABty7ENgDAMRNGeKW4fGlawZEuxgDhyLkRsDw0d9X9/S7+Eht3ujuks
MQhRdXpUOaBCgaShBtFHa5E0XdaP44w3skgFZ6Cln9Z/hgdQSwMECgAAAAAASZ9JSgAAAAAAAAAA
AAAAAA8AHABjcnlwdG8vd29ya2Vycy9VVAkAA1o6nVh5Tp1YdXgLAAEE9QEAAAQUAAAAUEsDBAoA
AAAAAEmfSUoAAAAAAAAAAAAAAAAWABwAY3J5cHRvL3dvcmtlcnMvc3VidGxlL1VUCQADWjqdWHlO
nVh1eAsAAQT1AQAABBQAAABQSwMECgACAAAASZ9JSiXg0wgsAAAALAAAADEAHABjcnlwdG8vd29y
a2Vycy9zdWJ0bGUvcnNhLWdlbmVyYXRlLWtleS1zdGRlcnIudHh0VVQJAANaOp1YWjqdWHV4CwAB
BPUBAAAEFAAAAENvdWxkIG5vdCBnZW5lcmF0ZSBhIGtleSBwYWlyLCBzdGF0dXMgLTQzMDQKUEsD
BAoAAAAAAFegSUoAAAAAAAAAAAAAAAAIABwAZWRpdGluZy9VVAkAA2Y7nVh5Tp1YdXgLAAEE9QEA
AAQUAAAAUEsDBAoAAAAAAF2gSUoAAAAAAAAAAAAAAAASABwAZWRpdGluZy9zZWxlY3Rpb24vVVQJ
AANxO51YeU6dWHV4CwABBPUBAAAEFAAAAFBLAwQUAAIACABXoElK1hWshPUAAAAcAgAANwAcAGVk
aXRpbmcvc2VsZWN0aW9uL2NoYXJhY3Rlci1ncmFudWxhcml0eS1yZWN0LXN0ZGVyci50eHRVVAkA
A2Y7nVhmO51YdXgLAAEE9QEAAAQUAAAAzZFBS8NAEIXv/oo52ks2itbEW23xYsFAQAXxsMlOyNjd
nWVnk9h/b8QKgvXe6/u+B/MYbt7b15urZf52C2urRaDa3g1kzRNGIfZAAuSCRYc+oQHy0HDqQa1C
sNTqNDuiXlo2mOkQ1JpnzSdRGxzRcsCoKqtTx9GJoqpnjzW5YY44ZuFAfsn15uGvJ2an6r0kdGpL
TdRxr6pIo054H7XDieNO1EoEkxx4jXGkFiXrfoTjHM7zj4vLZY5lWRYL0N6c4LK5k/j/Ycfw967r
Lm+KIl9k8OgRuIPUI6SJYSJroUEYBE0Gzz21Pcx3fT178AY78nN+9glQSwMEFAACAAgAWKBJSkU/
30DzAAAAHAIAADIAHABlZGl0aW5nL3NlbGVjdGlvbi9jbGVhci1zZWxlY3Rpb24tY3Jhc2gtc3Rk
ZXJyLnR4dFVUCQADZzudWGc7nVh1eAsAAQT1AQAABBQAAADNkUFLw0AQhe/+ijnaS7Ytoqm32uLF
goGACuJhszshY3d3lp1NYv+9ESII1rvX930P5jHcvJvXm6vr9dst7JwWgepw15OzT5iEOAAJkI8O
PYaMFihAw7kDtY3RkdF5ckS9GLZY6BjVjictZFF7HNBxxKQqp3PLyYuiquOANfl+ijgVcSY/5Hr/
8NsTe1T1STJ6daAm6XRSVaJBZ7xP2uPI6ShqK4JZZl5jGsigFO23cJ7D5fJjtV6h0ZtNuQAd7D9c
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
WHlOnVh1eAsAAQT1AQAABBQAAABQSwMECgAAAAAAfaBJSgAAAAAAAAAAAAAAAAwAHABmYXN0L2Nh
bnZhcy9VVAkAA647nVh5Tp1YdXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIAHugSUpjfMBqjQAAADIB
AAAmABwAZmFzdC9jYW52YXMvY2FudmFzLWxpbmVEYXNoLXN0ZGVyci50eHRVVAkAA6k7nVipO51Y
dXgLAAEE9QEAAAQUAAAAzY69CsJAEIR7n2JewCMk/uAhNomx0M7CQiw2ZsGDu71wWYP69CY+hdXM
fAzD1NwAG+SZzQq7LIB7DIa6zrO5cHN0OkkZRVnUVDywj10Y/XW9WOU3bPcpxbSzKA+/0kvPrCcn
XFH/sHAykHct2jGBUqK3BSk8U6+IwmDP0xrCcwQNQ6LMP5yimdX/euwLUEsDBBQAAgAIAH2gSUog
MY598wAAABwCAAAnABwAZmFzdC9jYW52YXMvcXVhZHJhdGljQ3VydmVUby1zdGRlcnIudHh0VVQJ
AAOuO51YrjudWHV4CwABBPUBAAAEFAAAAM2RQUvDQBCF7/6KOdpLtlXR1Ftt8WLBQEAF8bDJzpKx
m51lZ5PYf+8KEQTr3ev7vgfzGG7e29ebq+vV2y1snRaBan83kDNPGIXYAwlQHxz26BMaIA8Npw7U
JgRHrU7ZEfXSssFCh6C2nDWfRO1wRMcBo6qcTpZjL4qqjj3W1A854liEmfyQ693Db0/MQdVHSdir
PTVRx6OqIo064X3UPU4cD6I2Iphk5jXGkVqUwn4LpzmcLz9WF5fWmPW6XID25h8uy53Efw87hedd
xtqyXC4KePQIbCF1CGlimMg5aBAGQVPAc0dtB/mur2cP3qAln/OzT1BLAwQKAAAAAACVoElKAAAA
AAAAAAAAAAAACQAcAGZhc3QvY3NzL1VUCQAD2TudWHlOnVh1eAsAAQT1AQAABBQAAABQSwMEFAAC
AAgAlaBJStsI00I7AAAAPwAAACkAHABmYXN0L2Nzcy9jb21wYXJlLWNvbnRlbnQtc3R5bGUtc3Rk
ZXJyLnR4dFVUCQAD2TudWNk7nVh1eAsAAQT1AQAABBQAAABzLClJzS0oUSjJV0jNKyxNLU1VSFQo
zy/KVsgESiiUZ2TmpCpAxDOLFZJSM/PSFQqK8pNTi4tTU/S4AFBLAwQKAAAAAAAJoUlKAAAAAAAA
AAAAAAAACwAcAGZhc3QvZm9ybXMvVVQJAAOyPJ1YeU6dWHV4CwABBPUBAAAEFAAAAFBLAwQUAAIA
CAD6oElKeXsRI6sAAADpAAAAMwAcAGZhc3QvZm9ybXMvZm9ybS1hc3NvY2lhdGVkLWVsZW1lbnQt
Y3Jhc2gtc3RkZXJyLnR4dFVUCQADlzydWJc8nVh1eAsAAQT1AQAABBQAAAB9jTEPgjAUhHd/xZtJ
aEoVi2xGHYxODjoQhwoPaIJ92D40/nvRMDvd5XL3nZKJjqWK5QqUzKXO00SoTENJd2H6vkNxwdvB
8lc25Bgdiy0+saP+PvpCL5Yqz7RKsnR+hSiKIC7W53UIyCcMNPgSj2Qq65oTPgYMDLV1NrRTeLHc
7rwnn1/hZQKEkQlMYBxYF9i4EoFq+E/k1vBvbTqPpnpPF1gJ2DeO/FgVsw9QSwMEFAACAAgA/aBJ
StUwR66UAAAAxAAAADMAHABmYXN0L2Zvcm1zL2ludGVyYWN0aXZlLXZhbGlkYXRpb24tY2FuY2Vs
LXN0ZGVyci50eHRVVAkAA548nViePJ1YdXgLAAEE9QEAAAQUAAAAfYyxCsIwFAB3v+L5AZXXmDYx
iFCcxE3UDuIQ5VkDNQnJk/r5ZnF1Pe5OYK0qFBWuQKBBZRq90FJCT7e94yNlPry9p9TFeFESa6NV
jctWX6G3yTs/GOiY6RUZOEBMlMkzrE+7s6NpGzynMI6UDOBHPXQjG4GtveMGgv9nIbYrWazp6UYC
+xtbdqVzGZwvKAyF5vnsC1BLAwQUAAIACAAEoUlKo1jHJGQAAABsAAAAJgAcAGZhc3QvZm9ybXMv
cGxhaW50ZXh0LW1vZGUtMi1zdGRlcnIudHh0VVQJAAOnPJ1YpzydWHV4CwABBPUBAAAEFAAAADMy
MDTXNTDSNbBUMDKwMrCwMjDTszA2UQhPTfLOLAlJLS4JKs3LSy1yLCiINjcxMLSyMDeytDQ1ilUI
cPIsSc11zs/JSU0uyczPC04tKstMTi1SSM4HagALKaRkFkN5qSl6XABQSwMEFAACAAgACaFJSk46
JI+7AAAAEAMAACkAHABmYXN0L2Zvcm1zL3ZhbGlkYXRpb24tbWVzc2FnZXMtc3RkZXJyLnR4dFVU
CQADsjydWLI8nVh1eAsAAQT1AQAABBQAAAC10sEKwjAMBuC7TxEfwJG229oVEcSTeBN1B/EwIWph
tqOL6OPbizfxZK/hT8hHIlHoGcoZNiDRorFCF03ZQEvnjeMdjbx9eE9xOQxHXaKwRgtUtTlB20Xv
/NXCkpnuAwMHGCKN5Bnm+/XB0XMVPMfQ9xQt4EtfTFVWAo2qcQHB/0oh1k2ZUs+b6wm6z+COXepz
IzifSuGaquN0Ir8ZtMpmkAoJVW6DKVDKfIa0Xf47JIPOZ6hk+iX9X8MbUEsDBAoAAAAAABahSUoA
AAAAAAAAAAAAAAAMABwAZmFzdC9mcmFtZXMvVVQJAAPLPJ1YeU6dWHV4CwABBPUBAAAEFAAAAFBL
AwQUAAIACAAWoUlK2wjTQjsAAAA/AAAALwAcAGZhc3QvZnJhbWVzL2ZyYW1lLWRpc3BsYXktbm9u
ZS1mb2N1cy1zdGRlcnIudHh0VVQJAAPLPJ1YyzydWHV4CwABBPUBAAAEFAAAAHMsKUnNLShRKMlX
SM0rLE0tTVVIVCjPL8pWyARKKJRnZOakKkDEM4sVklIz89IVCoryk1OLi1NT9LgAUEsDBAoAAAAA
ADChSUoAAAAAAAAAAAAAAAAMABwAZmFzdC9pbWFnZXMvVVQJAAP7PJ1YeU6dWHV4CwABBPUBAAAE
FAAAAFBLAwQUAAIACAAuoUlKvGeAv2QAAABsAAAALgAcAGZhc3QvaW1hZ2VzL2ltYWdlLWNvcHkt
bWVtb3J5LXVzYWdlLXN0ZGVyci50eHRVVAkAA/c8nVj3PJ1YdXgLAAEE9QEAAAQUAAAAMzIwNNc1
MNI1sFQwMrAysLQyMtczNDVUCE9N8s4sCUktLgkqzctLLXIsKIg2NzEwtLIwNzY0MTCNVQhw8ixJ
zXXOz8lJTS7JzM8LTi0qy0xOLVJIzgdqAAsppGQWQ3mpKXpcAFBLAwQUAAIACAAwoUlKIY+9ODIA
AAAzAAAALAAcAGZhc3QvaW1hZ2VzL3BkZi1hcy1pbWFnZS1jcm9wLWJveC1zdGRlcnIudHh0VVQJ
AAP7PJ1Y+zydWHV4CwABBPUBAAAEFAAAAHPLSSxJdUlNzk9JtVJIAdGZeekKqUVF+UVWCpl5yflF
RanJJQopiSWJCskZqcnZelwAUEsDBAoAAAAAAEKhSUoAAAAAAAAAAAAAAAAMABwAZmFzdC9sb2Fk
ZXIvVVQJAAMcPZ1YeU6dWHV4CwABBPUBAAAEFAAAAFBLAwQUAAIACAA9oUlK2wjTQjsAAAA/AAAA
UgAcAGZhc3QvbG9hZGVyL2Rpc3BsYXktaW1hZ2UtdW5zZXQtY2FuLWJsb2NrLWltYWdlLWFuZC1j
YW4tcmVsb2FkLWluLXBsYWNlLXN0ZGVyci50eHRVVAkAAxY9nVgWPZ1YdXgLAAEE9QEAAAQUAAAA
cywpSc0tKFEoyVdIzSssTS1NVUhUKM8vylbIBEoolGdk5qQqQMQzixWSUjPz0hUKivKTU4uLU1P0
uABQSwMEFAACAAgAQKFJStsI00I7AAAAPwAAAFMAHABmYXN0L2xvYWRlci9pbWFnZXMtZW5hYmxl
ZC11bnNldC1jYW4tYmxvY2staW1hZ2UtYW5kLWNhbi1yZWxvYWQtaW4tcGxhY2Utc3RkZXJyLnR4
dFVUCQADFz2dWBc9nVh1eAsAAQT1AQAABBQAAABzLClJzS0oUSjJV0jNKyxNLU1VSFQozy/KVsgE
SiiUZ2TmpCpAxDOLFZJSM/PSFQqK8pNTi4tTU/S4AFBLAwQUAAIACABCoUlK2wjTQjsAAAA/AAAA
LQAcAGZhc3QvbG9hZGVyL3JlbG9hZC1wb2xpY3ktZGVsZWdhdGUtc3RkZXJyLnR4dFVUCQADHD2d
WBw9nVh1eAsAAQT1AQAABBQAAABzLClJzS0oUSjJV0jNKyxNLU1VSFQozy/KVsgESiiUZ2TmpCpA
xDOLFZJSM/PSFQqK8pNTi4tTU/S4AFBLAwQKAAAAAABvoUlKAAAAAAAAAAAAAAAADAAcAGZhc3Qv
cGFyc2VyL1VUCQADcT2dWHlOnVh1eAsAAQT1AQAABBQAAABQSwMEFAACAAgAb6FJSmO54HBkAAAA
bAAAADIAHABmYXN0L3BhcnNlci9zdHJpcC1zY3JpcHQtYXR0cnMtb24taW5wdXQtc3RkZXJyLnR4
dFVUCQADcT2dWHE9nVh1eAsAAQT1AQAABBQAAAAzMjA01zUw0jWwVDAysDI0tDKy1DM3s1QIT03y
ziwJSS0uCSrNy0stciwoiDY3MTC0sjA3NjIyM49VCHDyLEnNdc7PyUlNLsnMzwtOLSrLTE4tUkjO
B2oACymkZBZDeakpelwAUEsDBAoAAAAAAI2hSUoAAAAAAAAAAAAAAAAPABwAZmFzdC9zY3JvbGxp
bmcvVVQJAAOpPZ1YeU6dWHV4CwABBPUBAAAEFAAAAFBLAwQKAAAAAACNoUlKAAAAAAAAAAAAAAAA
EwAcAGZhc3Qvc2Nyb2xsaW5nL2lvcy9VVAkAA6k9nVh5Tp1YdXgLAAEE9QEAAAQUAAAAUEsDBBQA
AgAIAI2hSUrN2pZUyAAAACEBAAA4ABwAZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1ldmVudHMt
YmFjay1mb3J3YXJkLWFjdHVhbC50eHRVVAkAA6k9nVipPZ1YdXgLAAEE9QEAAAQUAAAAVVDbasMw
DH3XVxzyPMK6Pyglg0FHAwns2fWUxNS1hmUv5O+nsI2xt4N0btLIWhRlcQXqs8QI/uRUEIMWTpwV
WoJNV8k3uKlwxiwhzbg6f0MROHy4mRGSmfA39s4v3BJdErR6z6oP2KRi3Y2U2TTKObBCJjT9cRga
3I1lWmNOVkJWfsd1QzN2w4jT5bU/d2PXmCftCbrIisc/eKDn48v554Bu73+SakfYskYzYhxavDnF
U0t73G+tqca49S6rpQX7Qq5M9C+S6AtQSwMEFAACAAgAjaFJStoRaaDoAAAAwQEAADYAHABmYXN0
L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWV2ZW50cy1iYWNrLWZvcndhcmQtZGlmZi50eHRVVAkAA6k9
nVipPZ1YdXgLAAEE9QEAAAQUAAAAxY7BTsMwDIbveQrfSxqGhLh2bEVCDFHRip7d1N0isqaKHba9
PSvbAYkH4GL71y9/+rTWYD6CT3tis0ZBU7a1aal7cXJdj8n53ryTJ2TSbtqFkdjtk0cJ0Xg8hSRa
iEVH4uSFzYAshm0M3rtxa1zga9L0RaOw7tB+6iHEA8Ze03EiK9TnchSVZdl/+6CVhP7HpihA3988
QDaPolCgYMIt8S4c4PbXvVC6WtY1XKjlDF2FNAo4PnfZ0/J587c7fybfQ0ewyKFFhrtcwQWTrCXm
IXl/qjAy9TNIYqLZoCnrBlZvr9WmbEr1DVBLAwQUAAIACACNoUlKkDh7MLoAAAASAQAAOgAcAGZh
c3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtZXZlbnRzLWJhY2stZm9yd2FyZC1leHBlY3RlZC50eHRV
VAkAA6k9nVipPZ1YdXgLAAEE9QEAAAQUAAAAVY/BasNADETv+xWDz6EknxCCby0x2D+w3sr2ks0q
rLQx/vvIpLT0NkgzT6OBRAW6eIWEwimBnpQVKYpSpiIQjTZdudzgJ6WCmWOeMfpwgzI8Hn4mxGwQ
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
66FJSgAAAAAAAAAAAAAAACgAHABmYXN0L3RleHQvaW50ZXJuYXRpb25hbC9zeXN0ZW0tbGFuZ3Vh
Z2UvVVQJAANZPp1YeU6dWHV4CwABBPUBAAAEFAAAAFBLAwQUAAIACADpoUlKkXKvyfQAAAAcAgAA
UgAcAGZhc3QvdGV4dC9pbnRlcm5hdGlvbmFsL3N5c3RlbS1sYW5ndWFnZS9hcmFiaWMtZ2x5cGgt
Y2FjaGUtZmlsbC1jb21iaW5lLXN0ZGVyci50eHRVVAkAA1Y+nVhWPp1YdXgLAAEE9QEAAAQUAAAA
zZFBS8NAEIXv/oo52ks2FltTb7XFiwUDARXEwyY7IWM3O8vOJrH/3hUiCNa71/d9D+YxXL83rzer
Vf52CzurRaA83A1kzRMGIXZAAtR7iz26iAbIQc2xA7X13lKjY3JEvTRsMNPeqx0nzUVRexzRsseg
Sqtjy6EXRWXHDivqhxRxyPxMfsjV/uG3J+aoqpNE7NWB6qDDSZWBRh3xPugeJw5HUVsRjDLzCsNI
DUrWfgvnOVzmH1fL9fW63myKBWhn/uGy1In897BzeN61LExR5IsMHh0CtxA7hDgxTGQt1AiDoMng
uaOmg3TX17MHZ7All/KLT1BLAwQUAAIACADqoUlK1hlnu/QAAAAcAgAARwAcAGZhc3QvdGV4dC9p
bnRlcm5hdGlvbmFsL3N5c3RlbS1sYW5ndWFnZS9kZWNsYXJhdGl2ZS1sYW5ndWFnZS1zdGRlcnIu
dHh0VVQJAANXPp1YVz6dWHV4CwABBPUBAAAEFAAAAM2RQUvDQBCF7/6KOdpLtlViU2+1xYsFAwEV
xMNmd0LGbnaWnU1i/70RIgjWu9f3fQ/mMVy/m9d1nudvt7BzWgTKw11Pzj5hFGIPJEBdcNihT2iB
PNScWlDbEBwZnSZH1Ithi5kOQe140nwStccBHQeMqnQ6NRw7UVS27LGirp8ijlmYyQ+52j/89sQe
VXWShJ06UB11PKky0qAT3kfd4cjxKGorgklmXmEcyKBkzbdwnsPl8mN1dbNZ6c2mWID29h8umzqJ
/x52Ds+71temKJaLDB49AjeQWoQ0MozkHNQIvaDN4Lkl08J019eze2+xIT/lF59QSwMEFAACAAgA
6qFJSoPEILP0AAAAHAIAAD0AHABmYXN0L3RleHQvaW50ZXJuYXRpb25hbC9zeXN0ZW0tbGFuZ3Vh
Z2UvaGFuLXF1b3Rlcy1zdGRlcnIudHh0VVQJAANYPp1YWD6dWHV4CwABBPUBAAAEFAAAAM2Ry0rE
QBBF935FLZ1NehwMSdzNAzcOGAioIC466Qopp9PVdHUS5++NEEFw3Lu951yoS3H93rxmaZq93cHe
ahEoj7uBrHnCIMQOSIB6b7FHF9EAOag5dqC23ltqdJwdUS8NG0y092rPs+aiqAOOaNljUKXVseXQ
i6KyY4cV9cMccUj8Qn7I1eHhtyfmpKqzROzVkeqgw1mVgUYd8T7oHicOJ1FbEYyy8ArDSA1K0n4L
lzlcrz9uNsVtnhZFvgLtzD9cNnci/z3sEl52bXSW5+tVAo8OgVuIHUKcGCayFmqEQdAk8NxR08F8
19ezB2ewJTfnV59QSwMEFAACAAgA66FJSqXicnP0AAAAHAIAAFAAHABmYXN0L3RleHQvaW50ZXJu
YXRpb25hbC9zeXN0ZW0tbGFuZ3VhZ2UvaGluZGktc3lzdGVtLWZvbnQtcHVuY3R1YXRpb24tc3Rk
ZXJyLnR4dFVUCQADWT6dWFk+nVh1eAsAAQT1AQAABBQAAADNkUFLw0AQhe/+ijnaS7YNWlNvtcWL
BQMBFcTDJjshY3d3lp1NYv+9ESII1rvX930P5jFcvzevN9fr1dst7KwWgfJw15M1TxiF2AMJkAsW
HfqEBshDzakDtQ3BUqPT5Ih6adhgpkNQO540n0TtcUDLAaMqrU4tRyeKyo49VuT6KeKYhZn8kKv9
w29PzFFVJ0no1IHqqONJlZEGnfA+aocjx6OorQgmmXmFcaAGJWu/hfMcLpcfqzzPzdVmUyxAe/MP
l02dxH8PO4fnXct2XRTLRQaPHoFbSB1CGhlGshZqhF7QZPDcUdPBdNfXs3tvsCU/5RefUEsDBBQA
AgAIAOuhSUrJea719AAAABwCAABKABwAZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvc3lzdGVtLWxh
bmd1YWdlL3N5c3RlbS1mb250LXB1bmN0dWF0aW9uLXN0ZGVyci50eHRVVAkAA1k+nVhZPp1YdXgL
AAEE9QEAAAQUAAAAzZFBS8NAEIXv/oo52ku2FlsTb7XFiwUDARXEwyY7IWM3O8vOJrH/3hUiCNa7
1/d9D+YxXL83rzfrzfrtFnZWi0B5uBvImicMQuyABKj3Fnt0EQ2Qg5pjB2rrvaVGx+SIemnYYKa9
VztOmoui9jiiZY9BlVbHlkMvisqOHVbUDynikPmZ/JCr/cNvT8xRVSeJ2KsD1UGHkyoDjTrifdA9
ThyOorYiGGXmFYaRGpSs/RbOc7hcflytinazKop8AdqZf7gsdSL/PewcnneZ/DrPl4sMHh0CtxA7
hDgxTGQt1AiDoMnguaOmg3TX17MHZ7All/KLT1BLAwQKAAAAAADroUlKAAAAAAAAAAAAAAAAFQAc
AGZhc3QvdGV4dC92YXJpYXRpb25zL1VUCQADWj6dWHlOnVh1eAsAAQT1AQAABBQAAABQSwMEFAAC
AAgA66FJSrU4uLXzAAAAHAIAAC8AHABmYXN0L3RleHQvdmFyaWF0aW9ucy9jYXNlLWF4aXMtbmFt
ZXMtc3RkZXJyLnR4dFVUCQADWj6dWFo+nVh1eAsAAQT1AQAABBQAAADNkU1LxDAQhu/+ijm6l2YV
tK23/cCLCxYKKoiHpJnScdNMyKSt+++tUEFwvXt9n+eFeRk2781rfnObv93BzmkRqA7bgZx9wijE
HkiA+uCwR5/QAnkwnDpQmxAcNTrNjqiXhi1mOgS141nzSdQeR3QcMKrK6dRy7EVR1bHHmvphjjhm
YSE/5Hr/8NsTe1T1SRL26kAm6nhSVaRRJ7yPuseJ41HURgSTLLzGOFKDkrXfwnkOl+uPq+vc6rIs
ixVob//hsrmT+O9h5/CyyzSmKNarDB49AreQOoQ0MUzkHBiEQdBm8NxR08F819ezB2+xJT/nF59Q
SwMECgAAAAAA+qpJSgAAAAAAAAAAAAAAABUAHABmYXN0L3RleHQtYXV0b3NpemluZy9VVAkAA2dO
nVh5Tp1YdXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAAAPqqSUoAAAAAAAAAAAAAAAAZABwAZmFzdC90
ZXh0LWF1dG9zaXppbmcvaW9zL1VUCQADZ06dWHlOnVh1eAsAAQT1AQAABBQAAABQSwMECgAAAAAA
+qpJSgAAAAAAAAAAAAAAAB4AHABmYXN0L3RleHQtYXV0b3NpemluZy9pb3MvaXBhZC9VVAkAA2dO
nVh5Tp1YdXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIAPqqSUoWRMeu9AAAABwCAABGABwAZmFzdC90
ZXh0LWF1dG9zaXppbmcvaW9zL2lwYWQvcHJvZ3JhbW1hdGljLXRleHQtc2l6ZS1hZGp1c3Qtc3Rk
ZXJyLnR4dFVUCQADZ06dWGdOnVh1eAsAAQT1AQAABBQAAADNkUFLw0AQhe/+ijnaS7aNiom32uLF
goGACuJhk52QsZudZWeT2n/vChEE673X930P5jHcfLRv5aq8er+DjdUiUO3uR7LmGYMQOyABGrzF
AV1EA+Sg4diDWntvqdUxOaJeWzaYae/VhpPmoqgtTmjZY1CV1bHjMIiiqmeHNQ1jijhkfia/5Hr7
+NcTs1f1USIOakdN0OGoqkCTjvgQ9IAHDntRaxGMMvMaw0QtStb9CKc5XC4/V3l+fVOUZbEA7cwZ
LkudyP8PO4XnXfmtLorlIoMnh8AdxB4hHhgOZC00CKOgyeClp7aHdNf3s0dnsCOX8osvUEsDBAoA
AAAAAO6hSUoAAAAAAAAAAAAAAAAPABwAZmFzdC90b2tlbml6ZXIvVVQJAANgPp1YeU6dWHV4CwAB
BPUBAAAEFAAAAFBLAwQUAAIACADuoUlKIzsVffQAAAAcAgAAJAAcAGZhc3QvdG9rZW5pemVyL3Rl
eHQtcGxhaW4tc3RkZXJyLnR4dFVUCQADYD6dWGA+nVh1eAsAAQT1AQAABBQAAADNkUFLw0AQhe/+
ijnaS7ZBram32uLFgoGACuJhszshYzc7y84msf/eCBEE673X930P5jFcf5i325vV6v0Otk6LQLm/
78nZZ4xC7IEEqAsOO/QJLZCHmlMLahOCI6PT5Ih6NWwx0yGoLU+aT6J2OKDjgFGVTqeGYyeKypY9
VtT1U8QxCzP5JVe7x7+e2IOqjpKwU3uqo45HVUYadMKHqDscOR5EbUQwycwrjAMZlKz5EU5zuFx+
5rm9bsx6XSxAe3uGy6ZO4v+HncLzrqsci2K5yODJI3ADqUVII8NIzkGN0AvaDF5aMi1Md30/u/cW
G/JTfvEFUEsDBAoAAAAAAPqqSUoAAAAAAAAAAAAAAAAOABwAZmFzdC92aWV3cG9ydC9VVAkAA2dO
nVh5Tp1YdXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAAAPqqSUoAAAAAAAAAAAAAAAASABwAZmFzdC92
aWV3cG9ydC9pb3MvVVQJAANnTp1YeU6dWHV4CwABBPUBAAAEFAAAAFBLAwQKAAAAAAD6qklKAAAA
AAAAAAAAAAAAFwAcAGZhc3Qvdmlld3BvcnQvaW9zL2lwYWQvVVQJAANnTp1YeU6dWHV4CwABBPUB
AAAEFAAAAFBLAwQUAAIACAD6qklK8QL5J2sAAACmAAAANwAcAGZhc3Qvdmlld3BvcnQvaW9zL2lw
YWQvd2lkdGgtaXMtZGV2aWNlLXdpZHRoLWFjdHVhbC50eHRVVAkAA2dOnVhnTp1YdXgLAAEE9QEA
AAQUAAAAC8tMLS/ILyqxUijPTCnJsE1JLctMTtUFc7i4ipMTc1I5DfUMQIArN7EiGCxgChPIzAtG
UVGWWZyZlJMalJpcwlmtlJOaVqJkpWQAkVTSUSrJL0Dhg20BihgbIcQyUjPTM0DaTE0soIK1XABQ
SwMEFAACAAgA+qpJSnuqqkHpAAAAEgIAADUAHABmYXN0L3ZpZXdwb3J0L2lvcy9pcGFkL3dpZHRo
LWlzLWRldmljZS13aWR0aC1kaWZmLnR4dFVUCQADZ06dWGdOnVh1eAsAAQT1AQAABBQAAADFj7Fu
g0AMhufwFIiVOCYNSaNOqGqnbkFqZgecYunIIc5HqKq+ewOJkKJuXerBlj/bv34DQIjv1viaHb6Q
Er7uc9zz4U30Vp69mBJ3bJgcgzSVPbGT2htS26KhT+sVlJ1Cy84bdXgkp9gJnxvbKop1KA2VeJZS
KxAHJXdSMFx77hsulMuF9hrEcfzPdqhQT2Y0k2UhrOZpGA8py4LQFWR4tlwkQwRhTX0+kvVE5JTf
7UAnTg6Gd5cXZ1+R4aNGT1FynUbzSG1z148eLuRxs51YxfJRDWfLJElv9DuI/6i8ekh+K6/T7ST8
A1BLAwQUAAIACAD6qklKnS/hgm0AAACnAAAAOQAcAGZhc3Qvdmlld3BvcnQvaW9zL2lwYWQvd2lk
dGgtaXMtZGV2aWNlLXdpZHRoLWV4cGVjdGVkLnR4dFVUCQADZ06dWGdOnVh1eAsAAQT1AQAABBQA
AAALy0wtL8gvKrFSKM9MKcmwTUkty0xO1QVzuLiKkxNzUjkN9QxAgCs3sSIYLGAKE8jMC0ZRUZZZ
nJmUkxqUmlzCWa2Uk5pWomSlZACRVNJRKskvQOGDbQGKmJtZwMUyUjPTM0DaDA0MTKCitVwAUEsD
BBQAAgAIAPqqSUpvuiqc5gcAAKYaAAA9ABwAZmFzdC92aWV3cG9ydC9pb3MvaXBhZC93aWR0aC1p
cy1kZXZpY2Utd2lkdGgtcHJldHR5LWRpZmYuaHRtbFVUCQADZ06dWGdOnVh1eAsAAQT1AQAABBQA
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
AtIQfzEORurHioF/ANO/RjY9Adl0GBmca540uNl/AW52ArjZAXCkeDpkOX1pQmwk6uXaDu8rclro
mFPv0dBpyB00xc0JpviqiES5GraHqtnALb9CQnzx11cfKyZXqgk0d0tzGRlTmYcrc4HCfFRG52JL
6hYO/OtvbuZgQbjpmWJ4aX/OWHlK3ein6f78z0cd2XYFEMlxP1ihg044YGB2grf+DydAf7SeXINB
1c2JTlCiMzND30/n+9M//5tk6lw0wUDx1n+e+gdQSwMECgAAAAAA9qFJSgAAAAAAAAAAAAAAAAkA
HABmYXN0L3hzbC9VVAkAA28+nVh5Tp1YdXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIAPWhSUpO+yD4
iAAAAOcAAAAlABwAZmFzdC94c2wvdHJhbnNmb3JtLXhoci1kb2Mtc3RkZXJyLnR4dFVUCQADbj6d
WG4+nVh1eAsAAQT1AQAABBQAAACljrEOwjAMRPd+hX+geGDLDBNsIDq7rSsiOXHlOFL5ewLlD1hO
J9/J7yZNaxTyqBnYTC3AEoW/EhDxoVITFzyRE56HGw48XqLjlV5a/c7FCy5UHLciaFy02tTq29P6
WadDu4LEzHAEFk6cHWJa1bxrSdgtBKiZxgZ1BVGaf/D/0P3+nOfPhu4NUEsDBBQAAgAIAPWhSUr9
oi5kjwAAAO4AAAAnABwAZmFzdC94c2wveHNsdC1iYWQtaW1wb3J0LXVyaS1zdGRlcnIudHh0VVQJ
AANuPp1Ybj6dWHV4CwABBPUBAAAEFAAAAJ2OMQ7CMAxF957CFyge2DLDBBuIzm7rikhOXDmOVG5P
oJyA5cv/f9t6k6Y1CnnUDGymFmCJwl8JiPhQqYkLnsgJz8MNBx4v0fFKL61+5+IFFyqOWxE0Llpt
auvNeT/S3Me0qnlfLR5aBhIzwxFYOHF22NuuNWEfIUDNNDYAVxCl+QfyJ0bWUqfn50W7E+neUEsD
BBQAAgAIAPWhSUrPj2YOUAAAAKAAAAAkABwAZmFzdC94c2wveHNsdC1jb250ZW50VHlwZS1zdGRl
cnIudHh0VVQJAANuPp1Ybj6dWHV4CwABBPUBAAAEFAAAAK3MsQ3AIAwF0Z4p/gZR2myDwAhLNkaW
iTJ+yA5prrtXTCdLDrYBcje/0FgIEB6EEySkNAK2Yq5IPO4sXLG7CM0cStGt7ssslb+wp4fK8ZEv
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
LEnNdc7PyUlNLsnMzwtOLSrLTE4tUkjOB2oACymkZBZDeakpelxG2OwyMcVrlwk17bI0IGSXKTl2
AQBQSwMECgAAAAAAPKJJSgAAAAAAAAAAAAAAABAAHABodHRwL3Rlc3RzL21pc2MvVVQJAAPzPp1Y
eU6dWHV4CwABBPUBAAAEFAAAAFBLAwQUAAIACAA8oklKFTU1knoAAAC8AAAAKgAcAGh0dHAvdGVz
dHMvbWlzYy94c2x0LWJhZC1pbXBvcnQtc3RkZXJyLnR4dFVUCQAD8z6dWPM+nVh1eAsAAQT1AQAA
BBQAAACNjkEOwyAMBO95hT9AIO2hFb8hxFUsGYyMkfr8EuUD1V5WO4fZLKURJyOpgKqiET7ECKdZ
i95vj9caZrb4DiH4Qj17xS5DM3b/7WxuT4ej0kTNDaV1bsBUEZ6AjAWrwU2XSeJdIcKoaZ8aE2BJ
x3+6Kn3k87qXLDEvP1BLAwQKAAAAAABDoklKAAAAAAAAAAAAAAAAFgAcAGh0dHAvdGVzdHMvbmF2
aWdhdGlvbi9VVAkAA/0+nVh5Tp1YdXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIAEOiSUrbCNNCOwAA
AD8AAAA3ABwAaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL2ZhbGxiYWNrLWFuY2hvci1yZWxvYWQtc3Rk
ZXJyLnR4dFVUCQAD/T6dWP0+nVh1eAsAAQT1AQAABBQAAABzLClJzS0oUSjJV0jNKyxNLU1VSFQo
zy/KVsgESiiUZ2TmpCpAxDOLFZJSM/PSFQqK8pNTi4tTU/S4AFBLAwQKAAAAAABqoklKAAAAAAAA
AAAAAAAAFAAcAGh0dHAvdGVzdHMvc2VjdXJpdHkvVVQJAANIP51YeU6dWHV4CwABBPUBAAAEFAAA
AFBLAwQKAAAAAABpoklKAAAAAAAAAAAAAAAAKgAcAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVu
dFNlY3VyaXR5UG9saWN5L1VUCQADRj+dWHlOnVh1eAsAAQT1AQAABBQAAABQSwMEFAACAAgAW6JJ
ShRu5MZyAAAAdAAAAFcAHABodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGlj
eS9jb25uZWN0LXNyYy1zdGFyLXdlYnNvY2tldC1hbGxvd2VkLXN0ZGVyci50eHRVVAkAAy0/nVgt
P51YdXgLAAEE9QEAAAQUAAAAMzIwNNc1MNI1sFQwMrAytLAyNdazMDVRSM7P1UssKMhJ1QtPTfLO
LAFRzvl5Jal5JXouqWWpOfkFuUB2tLmpmbmVhbmJoYmZcayCs5tfakl5flG2QnCwj0diXkpxRmJ2
qkJaYmZOaoqChq6lhYG5JhcAUEsDBBQAAgAIAFuiSUoJ1QQ0cgAAAHQAAABXABwAaHR0cC90ZXN0
cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvZGVmYXVsdC1zcmMtc3Rhci13ZWJzb2Nr
ZXQtYWxsb3dlZC1zdGRlcnIudHh0VVQJAAMuP51YLj+dWHV4CwABBPUBAAAEFAAAADMyMDTXNTDS
NbBUMDKwMrSwMjXRMzQ1V0jOz9VLLCjISdULT03yziwBUc75eSWpeSV6LqllqTn5BblAdrS5qZm5
lYW5iaGJmXGsgrObX2pJeX5RtkJwsI9HYl5KcUZidqpCWmJmTmqKgoaupYWBuSYXAFBLAwQKAAAA
AABpoklKAAAAAAAAAAAAAAAARAAcAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5
UG9saWN5L3VwZ3JhZGUtaW5zZWN1cmUtcmVxdWVzdHMvVVQJAANFP51YeU6dWHV4CwABBPUBAAAE
FAAAAFBLAwQUAAIACABpoklKWTTnvpAAAACdAAAAfgAcAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29u
dGVudFNlY3VyaXR5UG9saWN5L3VwZ3JhZGUtaW5zZWN1cmUtcmVxdWVzdHMvdXBncmFkZS1yZWRp
cmVjdC1odHRwcy10by1odHRwLXNjcmlwdC1pbi1pZnJhbWUtc3RkZXJyLnR4dFVUCQADRT+dWEU/
nVh1eAsAAQT1AQAABBQAAAAdx8EKgjAYAOB7T7FjQa5NbFOvWgSJRDM6RIelfzHc9ssc9fpF3+1L
GZcJSxNWkJSVvCi5pCJjpEdH9TRZoFd4HE2kLcQPhtH4F63hDRYnBz7e5FaIMpcZz+T2Tlp1OTcK
5tmg3/xToffQx9/JoetOxKIeyFMbCwNZjtVexQDa7ULAUKPTxivVrElS5EysFl9QSwMECgAAAAAA
aqJJSgAAAAAAAAAAAAAAAD0AHABodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBv
bGljeS91c2VyQWdlbnRTaGFkb3dET00vVVQJAANHP51YeU6dWHV4CwABBPUBAAAEFAAAAFBLAwQU
AAIACABpoklK0dCIYPQAAAAcAgAAawAcAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3Vy
aXR5UG9saWN5L3VzZXJBZ2VudFNoYWRvd0RPTS9kZWZhdWx0LXNyYy1vYmplY3QtZGF0YS11cmwt
YWxsb3dlZC1zdGRlcnIudHh0VVQJAANGP51YRj+dWHV4CwABBPUBAAAEFAAAAM2RQUvDQBCF7/6K
OdpLNharqbfa4sWCgYAK4mGTnZCxuzvLziax/94IEQTrvdf3fQ/mMVx/NG/FMi/e72BrtQiU+/ue
rHnGKMQeSIBcsOjQJzRAHmpOHahNCJYanSZH1GvDBjMdgtrypPkkaocDWg4YVWl1ajk6UVR27LEi
108RxyzM5Jdc7R7/emIOqjpKQqf2VEcdj6qMNOiED1E7HDkeRG1EMMnMK4wDNShZ+yOc5nCZf14t
V7fX9XpdLEB7c4bLpk7i/4edwvOu1Y0pinyRwZNH4BZSh5BGhpGshRqhFzQZvHTUdDDd9f3s3hts
yU/5xRdQSwMEFAACAAgAaqJJSlJ0cqnzAAAAHAIAAGsAHABodHRwL3Rlc3RzL3NlY3VyaXR5L2Nv
bnRlbnRTZWN1cml0eVBvbGljeS91c2VyQWdlbnRTaGFkb3dET00vZGVmYXVsdC1zcmMtb2JqZWN0
LWRhdGEtdXJsLWJsb2NrZWQtc3RkZXJyLnR4dFVUCQADRz+dWEc/nVh1eAsAAQT1AQAABBQAAADN
kUFLw0AQhe/+ijnaS7axiIm32uLFgoGACuJhszshYzc7y84msf/eCBEE693r+74H8xhu3s1rcZVv
3m5h57QIVIe7gZx9wijEHkiA+uCwR5/QAnloOHWgtiE4MjrNjqgXwxYzHYLa8az5JGqPIzoOGFXl
dGo59qKo6thjTf0wRxyzsJAfcr1/+O2JPar6JAl7daAm6nhSVaRRJ7yPuseJ41HUVgSTLLzGOJJB
ydpv4TyHy/VHnpvSbMqyWIH29h8umzuJ/x52Di+7bvC6KNarDB49AreQOoQ0MUzkHDQIg6DN4Lkj
08F819ezB2+xJT/nF59QSwMEFAACAAgAaqJJSukBjJTzAAAAHAIAAGwAHABodHRwL3Rlc3RzL3Nl
Y3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS91c2VyQWdlbnRTaGFkb3dET00vZGVmYXVsdC1z
cmMtb2JqZWN0LWRhdGEtdXJsLWJsb2NrZWQzLXN0ZGVyci50eHRVVAkAA0c/nVhHP51YdXgLAAEE
9QEAAAQUAAAAzZFNS8QwEIbv/oo5updmK6Ktt/3AiwsWCiqIh7SZ0nGTTMikrfvvrVBBcL17fZ/n
hXkZbt7b1+IqX7/dwc5qEagO24GsecIoxB5IgFyw6NAnNEAeGk49qE0IllqdZkfUS8sGMx2C2vGs
+SRqjyNaDhhVZXXqODpRVPXssSY3zBHHLCzkh1zvH357Yo6qPklCpw7URB1Pqoo06oT3UTucOB5F
bUQwycJrjCO1KFn3LZzncLn+yHMsr5uyLFagvfmHy+ZO4r+HncPLrtsbUxTrVQaPHoE7SD1Cmhgm
shYahEHQZPDcU9vDfNfXswdvsCM/5xefUEsDBBQAAgAIAGOiSUpjqqxsggAAAKgAAABAABwAaHR0
cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kveHNsLWFsbG93ZWQtc3RkZXJy
LnR4dFVUCQADOT+dWDk/nVh1eAsAAQT1AQAABBQAAAAtjUEKwzAMBO95hV4QO72k+BWFviC4G2JQ
LCMppf59TSl7WobZzXK2wpsXqQRV0UR7YdDh3lIIy22d48iS7jHGYMiXFu8hS3VUf/77Q7jkHhQm
l2ZYMO+M+WNMXCpoJTDOIdAP2AH4NGh6Q21cJ5LKnZY50o7NrzFEm4Lsak3U8Zq+UEsDBBQAAgAI
AGOiSUpjqqxsggAAAKgAAABSABwAaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQ
b2xpY3kveHNsLXVuYWZmZWN0ZWQtYnktc3R5bGUtc3JjLTItc3RkZXJyLnR4dFVUCQADOT+dWDk/
nVh1eAsAAQT1AQAABBQAAAAtjUEKwzAMBO95hV4QO72k+BWFviC4G2JQLCMppf59TSl7WobZzXK2
wpsXqQRV0UR7YdDh3lIIy22d48iS7jHGYMiXFu8hS3VUf/77Q7jkHhQml2ZYMO+M+WNMXCpoJTDO
IdAP2AH4NGh6Q21cJ5LKnZY50o7NrzFEm4Lsak3U8Zq+UEsDBAoAAAAAAGuiSUoAAAAAAAAAAAAA
AAAcABwAaHR0cC90ZXN0cy9zZWN1cml0eS9jb29raWVzL1VUCQADST+dWHlOnVh1eAsAAQT1AQAA
BBQAAABQSwMEFAACAAgAaqJJSmj9RmP1AAAAHAIAADoAHABodHRwL3Rlc3RzL3NlY3VyaXR5L2Nv
b2tpZXMvYXNzaWduLWRvY3VtZW50LXVybC1zdGRlcnIudHh0VVQJAANIP51YSD+dWHV4CwABBPUB
AAAEFAAAAM2RQUvDQBCF7/6KOdpLto0GE2+1xYsFAwEVxMMmOyFjNzvLziax/94IEQTr3ev7vgfz
GK7fm9c83WRvt7CzWgTKw91A1jxhEGIHJEC9t9iji2iAHNQcO1Bb7y01Os6OqJeGDSbae7XjWXNR
1B5HtOwxqNLq2HLoRVHZscOK+mGOOCR+IT/kav/w2xNzVNVJIvbqQHXQ4aTKQKOOeB90jxOHo6it
CEZZeIVhpAYlab+F8xwu1x+bNCuu0qLIV6Cd+YfL5k7kv4edw8uum+w6z9erBB4dArcQO4Q4MUxk
LdQIg6BJ4LmjpoP5rq9nD85gS27OLz4BUEsDBBQAAgAIAGuiSUoD3/Kh9AAAABwCAABEABwAaHR0
cC90ZXN0cy9zZWN1cml0eS9jb29raWVzL2ZpcnN0LXBhcnR5LWNvb2tpZS1hbGxvdy14c2x0LXN0
ZGVyci50eHRVVAkAA0k/nVhJP51YdXgLAAEE9QEAAAQUAAAAzZFNS8NAEIbv/oo52ku2aRVSb/3A
iwUDARXEwyY7IWM3O8vOJrH/3hUiCNa71/d5XpiX4fq9eS1W+c3bHeytFoHyuBvImicMQuyABKj3
Fnt0EQ2Qg5pjB2rrvaVGx+SIemnYYKa9V3tOmouiDjiiZY9BlVbHlkMvisqOHVbUDynikPmZ/JCr
w8NvT8xJVWeJ2Ksj1UGHsyoDjTrifdA9ThxOorYiGGXmFYaRGpSs/RYuc7hefuQrvV6bzaZYgHbm
Hy5Lnch/D7uE5135bVsUy0UGjw6BW4gdQpwYJrIWaoRB0GTw3FHTQbrr69mDM9iSS/nVJ1BLAwQU
AAIACABaoklKYEtmEJEAAAD7AQAARQAcAGh0dHAvdGVzdHMvc2VjdXJpdHkveHNzLURFTklFRC14
c2wtZG9jdW1lbnQtc2VjdXJpdHlPcmlnaW4tc3RkZXJyLnR4dFVUCQADKz+dWCs/nVh1eAsAAQT1
AQAABBQAAADtjjEOgzAMRXdO4QuEBJZWmWHo0p4BBVMimSSynQpuXzr0Bh2rv76v90LeSqRJY06A
zJk9LJEQVtXire36S+vOdf7qnLOCoXLUw+4iZhjvt3Ewu5CZc6gbJjVf4MHxGVO7bwQUE0IPSPgh
QPQglBVRm/PpX8hyuj3kRAd0rYMFJ62MAhMjSC0ls+LchH/oj0PfUEsDBAoAAAAAAIiiSUoAAAAA
AAAAAAAAAAAaABwAaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9VVAkAA4A/nVh5Tp1YdXgLAAEE
9QEAAAQUAAAAUEsDBBQAAgAIAIeiSUqJpjIBNQEAAGgFAABOABwAaHR0cC90ZXN0cy94bWxodHRw
cmVxdWVzdC9hY2Nlc3MtY29udHJvbC1wcmVmbGlnaHQtY3JlZGVudGlhbC1hc3luYy1zdGRlcnIu
dHh0VVQJAAN9P51YfT+dWHV4CwABBPUBAAAEFAAAAO2Sv07DMBDGd57CD4Bjx3+SuFuapAuIpUIM
iMFJ3XJqYkeOC+rb46iFAZCYOhXJ8skn3333/XSMpjmmDFOFGF3Ek/JEFBnq3JDocexN8mTaOwjJ
gwnvzu/B7pLavJnejYOx4blgqVgUuaSSZy+ohmlfObcHsw7O651B3au2u1iERtdDd0Rb7wbEUHCI
3kaR+SvaQm8Wp5sQ8jgZP5H2AP2mdYHcQ+u1P5KzqPGkct6sYTj0OmrMeejMRLig5WolKM5qzrAQ
hcTLlGVYFumSSiUakdVko4OO9TZosLNKPb/LaBM6HcDZ2IVnkosSN5UosCgLhcu0anDTrJTKFat5
yb9GOjmdPmPSgo3pk6nphv1KNv9JNoZ5pEjzO1l5Jpv/k/2TrOKX3Vk6k2VXSFZSdtmdvQqyH1BL
AwQUAAIACACHoklK58SQrE0BAADQCgAATQAcAGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvYWNj
ZXNzLWNvbnRyb2wtcHJlZmxpZ2h0LWNyZWRlbnRpYWwtc3luYy1zdGRlcnIudHh0VVQJAAN9P51Y
fT+dWHV4CwABBPUBAAAEFAAAAO2VvU7DMBDHd57CD4Dj73x0S5N0AbFUiAExOKlbrCZ25Ligvj2O
WhgAqWIISyNZPvnk8//up9OZYpJATCHOAMWLsAiLBE1AY7tI9n2roidV32kfPSj/bt1em11UqjfV
2r5Txj+nlPBFmggsWPwCSj3sC2v3Wq29dXKnQPMqzS4Egd62ujmCrbMdoMBbgG+DyHgVbHWrFqcd
IfQ4KDeg+qDbTW09ute1k+6IzqLKocI6tdbdoZVBY/TrRg2IcZyvVhzDuGQUcp4KuCQ0hiIlSywy
XvG4RBvpZYg3XmozqpTjOQ9l6kZ6bU14hcWC8RxWBU8hz9MM5qSoYFWtsizJaMly9pXSqdLh00a1
NsF9Kmq4ob+RZWJasngkS6+SbPyTbDBjSoHmd7LiTDaZe/YiWYGnJXu9PZuIec5ORHaeBhORTcn8
g/0f2XnO/pHsB1BLAwQUAAIACACHoklK6mu10jQBAABoBQAASwAcAGh0dHAvdGVzdHMveG1saHR0
cHJlcXVlc3QvYWNjZXNzLWNvbnRyb2wtcHJlZmxpZ2h0LWhlYWRlcnMtYXN5bmMtc3RkZXJyLnR4
dFVUCQADfT+dWH0/nVh1eAsAAQT1AQAABBQAAADtkj1PwzAQhnd+hX8Ajr/z0S1N0gXEUiEGxOCk
bjk1sSPHBfXf46iFAZCYOhXJ8skn3733PjpOWYYpx7RAnC7iYSJJKUWdGxI9jr1Jnkx7ByF5MOHd
+T3YXVKbN9O7cTA2POecyUWeKapE+oJqmPaVc3sw6+C83hnUvWq7i0VodD10R7T1bkAcBYfobRSZ
v6It9GZxugkhj5PxE2kP0G9aF8g9tF77IzmLGk8q580ahkOvo8ach85MREharlaS4rQWHEuZK7xk
PMUqZ0uqCtnItCYbHXSst0GDnVXq+V1Gm9DpAM7GLiJVQpa4qWSOZZkXuGRVg5tmVRRZwWtRiq+R
Tk6nz5i0YGP6ZGq64b+SzS9Lls5k+TWSZfwn2RjmkSLN72TVmWz2v7N/kuXZZclexc5+AFBLAwQU
AAIACACIoklKStwDqCEBAAC0AgAAQAAcAGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvY3Jvc3Mt
b3JpZ2luLWNvb2tpZS1zdG9yYWdlLXN0ZGVyci50eHRVVAkAA4A/nViAP51YdXgLAAEE9QEAAAQU
AAAA7ZBNTsMwEIX3nMIHwLHjv8TdpUm6AbGpEAvEwkndMmpiR44L6u1x1IIQcASkkUcezcyb9zGa
F5gyTDVidJUiV5liHPV+zMw0DTZ7st0dxOzBxncfjuAOWWPf7OCn0br4XLJcrMpCUsnVC2pgPtbe
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
c8z8GM4d6Gts6Qmq0x7eIcPjXTfgxqNvKQnsJ6kfZQXSVFY71fH1C0wVxHwbS5tK05rV1VjTDGxq
7J5QmCuTDThwNkpfB5xi9RqgLXkmPGIUy32Z4VOxnRHrbsB0Iii/1phg5a+Ff5VFholJEOPQdOHm
2JWIs90pGXGhJjwlbKJgCNM1YSv6r5Vzo3w4YCEcu/q02xLCZc5HcJoOfr8duOPJ9WB8Pjz9hr6M
R73+YBs40sqdt8hG92ePJeOfqVAZjnWvgd5+6B4dvcsN723hzIR7tfHmuLXFB3VvrDeoB0tCbJkS
jwbUM7dsuZCKJCgVXOW3TweQq96qIaTw/o8Waqu91A2b8/bBeXB0/+QHcAn+Lxa2esV/AVBLAwQK
AAAAAADto0lKAAAAAAAAAAAAAAAACQAcAGltcG9ydGVkL1VUCQADHkKdWHlOnVh1eAsAAQT1AQAA
BBQAAABQSwMECgAAAAAAVqVJSgAAAAAAAAAAAAAAAA0AHABpbXBvcnRlZC93M2MvVVQJAAPDRJ1Y
eU6dWHV4CwABBPUBAAAEFAAAAFBLAwQKAAAAAADto0lKAAAAAAAAAAAAAAAAGgAcAGltcG9ydGVk
L3czYy9XZWJDcnlwdG9BUEkvVVQJAAMeQp1YeU6dWHV4CwABBPUBAAAEFAAAAFBLAwQKAAAAAADu
o0lKAAAAAAAAAAAAAAAAJgAcAGltcG9ydGVkL3czYy9XZWJDcnlwdG9BUEkvZ2VuZXJhdGVLZXkv
VVQJAAMfQp1YeU6dWHV4CwABBPUBAAAEFAAAAFBLAwQUAAIACADto0lKjzQacEQAAACgCQAARwAc
AGltcG9ydGVkL3czYy9XZWJDcnlwdG9BUEkvZ2VuZXJhdGVLZXkvdGVzdF9mYWlsdXJlc19SU0Et
T0FFUC1zdGRlcnIudHh0VVQJAAMeQp1YHkKdWHV4CwABBPUBAAAEFAAAAHPOL81JUcjLL1FIT81L
LUosSVVIVMhOrVQoSMws0lEoLkksKS1W0DUxNjDhch5VO6p2VO2o2lG1o2pH1Y6qHVVLc7UAUEsD
BBQAAgAIAO6jSUpUAsmyNgAAAMACAABQABwAaW1wb3J0ZWQvdzNjL1dlYkNyeXB0b0FQSS9nZW5l
cmF0ZUtleS90ZXN0X2ZhaWx1cmVzX1JTQVNTQS1QS0NTMS12MV81LXN0ZGVyci50eHRVVAkAAx9C
nVgfQp1YdXgLAAEE9QEAAAQUAAAAc84vzUlRyMsvUUhPzUstSixJVUhUyE6tVChIzCzSUSguSSwp
LVbQNTE2MOFyHlU7qnaQqQUAUEsDBAoAAAAAAKmoSUoAAAAAAAAAAAAAAAAgABwAaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9VVAkAAw1KnVh5Tp1YdXgLAAEE9QEAAAQUAAAAUEsDBAoA
AAAAAFalSUoAAAAAAAAAAAAAAAAmABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9VVAkAA8NEnVh5Tp1YdXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAAAFilSUoAAAAAAAAAAAAA
AAAqABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvVVQJAAPHRJ1Y
eU6dWHV4CwABBPUBAAAEFAAAAFBLAwQKAAAAAABWpUlKAAAAAAAAAAAAAAAAMAAcAGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL1VUCQADw0SdWHlOnVh1eAsA
AQT1AQAABBQAAABQSwMEFAACAAgAVqVJSlztvkWQAAAAnQAAAEcAHABpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy9tb2RlLW5vLWNvcnMtc3RkZXJyLnR4dFVU
CQADw0SdWMNEnVh1eAsAAQT1AQAABBQAAAAdx0ELgjAUAOB7v+IdC3LNqaRetQgSiWZ0iA5LXzHc
9mSO+vtF3+0TPN5GXES8AMHLVJRpwpK0gJ4sU9NkkF3xcdSBtRg+5EftXqzGNxqaLLpwy0Wclvk2
41nG79DKy7mROM+a3OafipzDPvwOh647gSE1wFNpgwMsx2ovg0dld96Tr8kq7aRs1hAVeZysFl9Q
SwMEFAACAAgAVqVJSiwWyjCQAAAAnQAAAE4AHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL2FwaS9iYXNpYy9tb2RlLW5vLWNvcnMtd29ya2VyLXN0ZGVyci50eHRVVAkAA8NE
nVjDRJ1YdXgLAAEE9QEAAAQUAAAAHcdBC4IwFADge79ix4Jcz6mkXrUIEolmdIgOS18x3PZkjvr7
Rd/tExBvIxARFExAmYoyTbgAYD1ZrqbJIL/i46gDbzF8yI/avXiNbzQ0WXThlos4LfNtBlkGd9bK
y7mROM+a3OafipzDPvzODl13YobUwJ5KGxzYcqz2MnhUduc9+Zqs0k7KZs2iIo+T1eILUEsDBAoA
AAAAAFulSUoAAAAAAAAAAAAAAAAvABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9hcGkvY29ycy9VVAkAA81EnVh5Tp1YdXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIAFilSUqp
TsWUqwAAAK4DAABEABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkv
Y29ycy9jb3JzLWJhc2ljLXN0ZGVyci50eHRVVAkAA8dEnVjHRJ1YdXgLAAEE9QEAAAQUAAAAzdMx
DoIwGEDh3VN01ERqW8FSVtCYSIixGAfjUOHXNEBLSqPX1zh7gI5v+5bHCOURYRERiJEsZlnMcSw4
auyA1Tj2gC9wP2iPK/Bv6zptnriAF/R2HMD4a8ponKU8IUlCbqiS51MpYZq0Natf5NYYaPy30b6u
j6i3qkUPpXto0bzLd9I7UMPWOesKOyhtpCyXKBIpXS9m7A8uoSRgHGMB4zY0ZJwIGMcDGeIDUEsD
BBQAAgAIAFilSUpkg+2yqgAAAK4DAABLABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9hcGkvY29ycy9jb3JzLWJhc2ljLXdvcmtlci1zdGRlcnIudHh0VVQJAAPHRJ1Yx0Sd
WHV4CwABBPUBAAAEFAAAAM3OwQqCMBgA4HtPsWNBrjmdU69aBIlEMzpEh6V/MdRN5qjXLzr3ADt+
t4+SkAeEBiRDlOQxzWOOaZqg1oxYTtMA+AL3g3K4Bvc2tlf6iUt4wWCmEbS7pjSM85Qzwhi5oVqc
T5WAeVZGb34ojNbQuq/RvmmOaDCyQw+pBujQsi92wlmQ49ZaY0szSqWFqNYoyNIwWi3on1xEiMe5
kHqcizOPc4x7nEuYH7kPUEsDBBQAAgAIAFmlSUrB0ub2nAAAADoBAABLABwAaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvY29ycy9jb3JzLW5vLXByZWZsaWdodC1zdGRl
cnIudHh0VVQJAAPJRJ1YyUSdWHV4CwABBPUBAAAEFAAAAM3OvQrCMBRA4d2nyKhgY5q29GdtFcFS
xFQcxCG2VwlNcksa9PUtzj6A4wdnOJyFacB4wHLCWRHzIs4pD2PSoaFyHDXQC9wPytMG/BvdoOyT
VvACjaMB66/ZHBdZmrAkYTfSiPOpFjBNCu3mixKthc7PJvu2PRKNsicPqTT0ZDmUO+EdSLN1Dl2F
RiorRL0mQZ6F0WrBf81F7D/mPlBLAwQUAAIACABZpUlKlBGGm5sAAAA6AQAAUgAcAGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2NvcnMvY29ycy1uby1wcmVmbGlnaHQt
d29ya2VyLXN0ZGVyci50eHRVVAkAA8lEnVjJRJ1YdXgLAAEE9QEAAAQUAAAAzc4xDoIwFADQ3VP8
UROppRYprKAxkRBjNQ7GocLXNJSWlEavr3H2AI5ve4zGaURZRDNgNOcs54JkqxQa1xM1DAbJGW87
HUiN4eV8p+2DlPhE44YebbgIFvNcpAlNEnqFWp4OlcRx1M4uviictdiEj2F7PO7BONXCXWmDLUy7
YiODR9WvvXe+dL3SVspqDlEm4uVswn7lBP+P3BtQSwMEFAACAAgAWaVJSkUQomNFAgAARQwAAEUA
HABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9jb3JzL2NvcnMtb3Jp
Z2luLXN0ZGVyci50eHRVVAkAA8lEnVjJRJ1YdXgLAAEE9QEAAAQUAAAA7ZZfa9swFMXf9yn0srLB
ZOufLSkQRkjTdqxrytyyhzGKLF0lpo5lHG1dv/2UlBU6BusoZSkd1oss+57rH8c6ms5PqvnxDH2Y
VdXkcDZC86FZNB1axtiP8rwN1rTLsI4jpQhBzRp1ISLTtuEKHKqv0cRaWK/xNHRxCC2ebFbwTY3s
xfTX4gcQ7RJNTt8ha7pNpTYY91OLMpmRdNGtVu43z+amb/IB1uHrkHTyfgDfNotlzPrrtzFcQjem
zgvPicWaE4mFoIBrcB7LUlvpZMm193sr8/3CLGBM9sK2tfFG8iWfvGQHadwKpzsb6b3t912sIC6D
W48PZ2fZ42L5d8zvaNH7MidcSlLwAhtnCBYlcVjXZYk9BwDHPVOa/IH5rfANc/qMmN/x+b2Zc0dq
oIRi4XzyOS2TzyV4rMCA4rX2xti/8/mjM2eESkwYJhoxMhJsJHQmywLZsMpM37eQfYL6fROzE4hX
YbhsukW2D9+gDf0KuvhZMSpGShakKMgXdFKdfzyukloTunw7Saod2Jjm6Ojs7PQGsjdNm3p7dTk9
qOIAZjUbhjDsh5Vpuqo6foOwVpS//n1zcpeb02R3m1N0R8hNn3yeaedEehVTq3XKM27TL56SrWYe
hHBpay3kw/LsdF49k8313tCJtGCpAqzqssCCAcGaFQQzykBT6Y1UxcOgH80m+9mT46K8L8F6ktzH
6pQ8VmMtipQ8qja1N0q4gj7QjOf/vXiXOfOMSkinKUZ8SnutCFalrjEXxpXCSV+4XTvQ/gBQSwME
FAACAAgAWaVJSkWvkYCjAAAAdAIAAEwAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL2FwaS9jb3JzL2NvcnMtb3JpZ2luLXdvcmtlci1zdGRlcnIudHh0VVQJAAPJRJ1YyUSd
WHV4CwABBPUBAAAEFAAAAM3QwQqCMByA8XtPsWNBrm06nF61CBKJZnSIDkv/xdBtMke9ftG5B/D4
3X58jNA0IiwiGWIkT1ieZJhTglpnsBrHAfAF7gcdcA3h7Xyv7ROX8ILBjQZsuApGk1yknHBObqiW
51MlYZq0s5tfFM5aaMO30b5pjmhwqkMPpQfo0LIvdjJ4UGbrvfOlM0pbKas1ijJB49WC/cOxeMa4
WMwYx2dy7gNQSwMEFAACAAgAWqVJStGibhSZAQAA3gUAAEgAHABpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9jb3JzL2NvcnMtcHJlZmxpZ2h0LXN0ZGVyci50eHRVVAkA
A8tEnVjLRJ1YdXgLAAEE9QEAAAQUAAAAzZRNa9wwEIbv/RU69TZryZJlaSEUs3WbQr7obumxjKRR
vNS1XVuh2X9fbXIqLCSHEpa5zQczDy/zbm5vtrdXLbtut9vmc7tmnyj5jjV3X5jHYRgT60cMrEtp
WheFKOsVzyHWxnBexGNvgdO+mGkZH2ZPSzHNFPv9fZdW0+FDGn/ScIG2slGgAycdgYrag0MRIRpf
W6tcrtL7X/j4A+/pgq/YNaVuDOxje9XuWrZf2PEM7PvxDwXmDqzxedECm3FI89hDc6zA89Cyerd5
AyKK6J01EYIkBFUHCaYWHLTVFfqyssGfIrr7tjtLHHS6VOglKO84KKlrQJEFUkbI4KLRpMtTOM1u
c3mWQDxItGXIgihSoAQvAcuqBhWM40YboaI9AXTTfj9LnKi4i9oqkFFqUCgDoMxyGSNrbtGQCv/o
85V+P9CSWEcYaGZxT31gj5ByDp5z4rWcl0/tb/VWrnTaVhyMjyJzxggWqQKBwkntax8q/iLn8X4a
EuwOE50lpVGSo82+YaLP5qHJgiOrAdF6V3nvhIv/yTz+AlBLAwQUAAIACABbpUlKZZUe3soCAAC/
EwAAUQAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2NvcnMvY29y
cy1yZWRpcmVjdC1wcmVmbGlnaHQtc3RkZXJyLnR4dFVUCQADzUSdWM1EnVh1eAsAAQT1AQAABBQA
AADtl9uKGzkQhu/zFH0T35WtQ0kqDZjFDDObQA7LzgOEklSKzXrds+4eJnn7qBOSCYwxgfgi2THd
SEJ9Kr6uX3/p8u2bm7evrrrXVzc3qz+vLrprGfO6W/31ssu82/Vjt+25dOtxvL1YLLQJc9UOfUGk
1KJO9y74drPYy9Df7bMMi9u91O3m/Xqc337841/+8I7fy1LNxv4f2S118N6E6kCitYCpjSgiApJx
jitTCWG2l7LZSx7fDSOPd8PSKj3b9pnHTb9bToE8t6vn5rqd38JpM1NAbepzSK1vQbU29/uhdfN5
a76F2MbfBznL/d1uXOp597f8dyfD2K2Fi+y7upFt6T7Avc3dZugmFrzd9vdSuvSxW+X2qgEu+924
77ewmq7Ai89PDvNnl6fG+hXKRPULS8uYc/EFODoC1OyByFUgJbHaaGuONHv4AT9OdZrdrvth/Bmq
vxtN9qYIR4EUpdEUVJACMaDiYHQtoiqegqb+H9I8KvlMygv5AMEVBViVBbK6QnWWUk3EiQ/hNGfJ
P07STGy9Cwg58bR8JgJ2DajLCQu7Ismmo0lqzpJ/oEntU8hKgEMqgC5WiLoIWBFy0SmhKKeg+eQk
X3TAikFB9SINbDaQFFqwPpcgRiVf4gGc9iz5A75Uo9KGLOTgDGAmagafA3hM2jdv0j4f9yV7lvwD
TXTMxmoPRprVIxUERq0hayJuI1+8PQXNJyd5X0iq0q4VoyYBthW1uTwLONWyV6ERHewBnOEs+cdJ
6hGz8ZPBY3GAJTMkGyrokLWimn1Jx10+nCX/ncuLFBMwgHamlfOYAkTvBLyq2hqsuVh9CppPTvI1
+GKZPPjoW66GXCHVtmNipNxK01ahyiGXp7PkHydpQi3KNSMizc3lqe3luTZzclEUOe99TseTlM6S
f6ApEaM1LoHy3BbQFNs2SXEFH8Q7ixIK8Slo/gKS/wRQSwMECgAAAAAAqahJSgAAAAAAAAAAAAAA
ACUAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvVVQJAAMNSp1YeU6dWHV4
CwABBPUBAAAEFAAAAFBLAwQKAAAAAACpqElKAAAAAAAAAAAAAAAALwAcAGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvVVQJAAMNSp1YeU6dWHV4CwABBPUBAAAE
FAAAAFBLAwQKAAAAAACpqElKAAAAAAAAAAAAAAAANQAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZm9ybXMvVVQJAAMNSp1YeU6dWHV4CwABBPUBAAAEFAAA
AFBLAwQKAAAAAACpqElKAAAAAAAAAAAAAAAAQQAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9zZW1hbnRpY3MvZm9ybXMvY29uc3RyYWludHMvVVQJAAMNSp1YeU6dWHV4CwAB
BPUBAAAEFAAAAFBLAwQUAAIACACpqElK+RfthjQCAADIPgAAagAcAGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZm9ybXMvY29uc3RyYWludHMvZm9ybS12YWxp
ZGF0aW9uLXJlcG9ydFZhbGlkaXR5LXN0ZGVyci50eHRVVAkAAw1KnVgNSp1YdXgLAAEE9QEAAAQU
AAAA3du9jtQwEAfwnqcwD3BoPP6OENKJCtEh4ApEYXudI9KSrHaDjscnV9BSMSP9r7WcUX7yeBxZ
Eyab7ojvqBi2E4XJpje+ZPMw2sdl/zxu+6df6zqu95fLt+TJTjlZcjF/Nw/1ui7r42Tu9338vOxm
38zlOm5j3c3bLx++LuPp/bbu1+18HtfJ0O805+A52d4KvTPb+o9ZpdhK7Zj19GM5D1P/Bq77cjy3
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
cy9VVAkAA2hOnVh5Tp1YdXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAAAPqqSUoAAAAAAAAAAAAAAAAU
ABwAbWVkaWEvY29udHJvbHMvaXBhZC9VVAkAA2hOnVh5Tp1YdXgLAAEE9QEAAAQUAAAAUEsDBBQA
AgAIAPqqSUoy4lZv+QAAANwBAABZABwAbWVkaWEvY29udHJvbHMvaXBhZC9jbG9zZS1wYWdlLXdp
dGgtcGljdHVyZS1pbi1waWN0dXJlLXZpZGVvLWFzc2VydGlvbi1mYWlsdXJlLWFjdHVhbC50eHRV
VAkAA2hOnVhoTp1YdXgLAAEE9QEAAAQUAAAAlZDBasMwDIbvfoqfnDZo+w5j9LaRQvICTqy0Yp4c
LLuhbz9lzRiDwdhFGOmT9Fn9hRWFtFi8+IIxJmU5w2NhCWm5Z42ZMylJudeuHCiBBTOPpWbas+y3
J0IihSQb5asSvMCrUi6cBJPnuDLW6RFoqGcMlWM4oE/IVWzbpoPhhouXsDMjHt+sQGhnEggtX2pD
LSWtPZb+pn5R2sCH4udP5K5vGW67x4NzrUDrOJLqDrdUbX6MUDJ5i5ntP2lCc3rqugbvRvkzGTml
GNNCYVVt+mPX47l9Pb0c+2NjM92KI3D44xaHf4Kb6FRjvJ18Vtu/nixXcu6HhHMfUEsDBBQAAgAI
APqqSUpbLBeN4gAAAPoBAABXABwAbWVkaWEvY29udHJvbHMvaXBhZC9jbG9zZS1wYWdlLXdpdGgt
cGljdHVyZS1pbi1waWN0dXJlLXZpZGVvLWFzc2VydGlvbi1mYWlsdXJlLWRpZmYudHh0VVQJAANo
Tp1YaE6dWHV4CwABBPUBAAAEFAAAAM2OP0/DQAzF93wK7+n1lgrW8CcTICoS0dncua0lJxedfdB+
exKoOjMiD8+yn39+zjnw70nKQOof0dC3u87v6OOJ7SL3hSX6NxJCJcfTMY2kPBRBS9kLnlMxZ6Tm
MmkRUz9QZPQhjZaTqOcJow+S5usJD+S+2I5u4mAlz7zx2n5ypORQlbJxGt0eWZY5nSYKRnFtJ6vq
uv73gXFeo/zEbRpwm9UN1JvVLTRNBUtt77oOIkcYk0HAogQ4wpUDF866qv/s/GVqCYFU90XkvMWs
FIEVLBda3vZt18PD68v2ue3b6htQSwMEFAACAAgA+qpJSnePZaP5AAAAswEAAFsAHABtZWRpYS9j
b250cm9scy9pcGFkL2Nsb3NlLXBhZ2Utd2l0aC1waWN0dXJlLWluLXBpY3R1cmUtdmlkZW8tYXNz
ZXJ0aW9uLWZhaWx1cmUtZXhwZWN0ZWQudHh0VVQJAANoTp1YaE6dWHV4CwABBPUBAAAEFAAAAIWQ
QWrEMAxF9z7FJ6sWZuYOpcyuJQPJBZxYmRF15WDZDXP7Kk1KKRS6Eebr6etb/Y0VhbRYvfmCMSZl
ucJjYQlp2VRj5kxKUrbeBwdKYMHMY6mZjizH/YmQSCHJrHxVghd4VcqFk2DyHFfGJj0CDfWKoXIM
J/QJuYpt2+NguOPmJRwsEY9v1iC0MwmElu9oQy0lrTMm/1B/RNrBh+LnL2SLbwq33ePJuVagdRxJ
9YB7quYfI5QsvNXM9p80obk8dV2Dd6P8lYycUoxpobBGbfpz1+O5fb28nPtzY55uxRE4/HOL0wbu
+6ca4/3is5rteolcyblf3s59AlBLAwQUAAIACAD6qklKs3eeItMHAADTGgAAXwAcAG1lZGlhL2Nv
bnRyb2xzL2lwYWQvY2xvc2UtcGFnZS13aXRoLXBpY3R1cmUtaW4tcGljdHVyZS12aWRlby1hc3Nl
cnRpb24tZmFpbHVyZS1wcmV0dHktZGlmZi5odG1sVVQJAANoTp1YaE6dWHV4CwABBPUBAAAEFAAA
ANVZa2/kthX97l8h2EgNBJY0Y3u889h1kbXHKNCkXdRG8jGgRGrENSWqJGXPbNv/3suXRtJI9gAJ
AmSDzUh8nnt57j2X2o+5KtjtycecIAw/BVEoSHMkJFGfzmuVhfNzaJZqx8jtyZLR8vkiWL5QSRXB
wX9OAvijyFaFmKRcIEV5uQxKXpKV6Uq4wESECVeKF8tgWm0DDM8Er07+d2KXc4uknHGxDM4mVwvT
Fz1QRu5plrn+BKXPG8HrEod+aDbX/7U3sjtIzigOzjDGti/jpQozVFC2WwYFL7msUOoAFkhsKECe
kiKY2KaKg3HGDkEYWPRCDKB82kN6dXU1sL5EpQwlETRrdUr6jZg92puGjGRqGUyimW/HVFYMwSK0
BM84hK8UqxwmTybfOXwIY1pumpkWmzsa/dQ9HQeXljmAUs3wnL8Q0bNoNputxpxNiHVDpM/kR9hL
uskZ4wjMEHSTq+7J6VF3YD4CW/xWHFxPFZg46ZmsUMJImBLGOlaGZt2Ol15zsC40Z6ip9ipQtUf2
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
ABwAbWVkaWEvbWVkaWEtY29udHJvbHMtY2xvbmUtc3RkZXJyLnR4dFVUCQADLkydWC5MnVh1eAsA
AQT1AQAABBQAAADNkU1LxDAQhu/+ijm6l6auCq23/cCLCxYKKoiHNJnScdNMyKSt+++tUEFwvXt9
n+eFeRlu3s1rURY3b3ewc1oEqsN2IGefMAqxBxKgPjjs0Se0QB4aTh2oTQiOjE6zI+rFsMVMh6B2
PGs+idrjiI4DRlU5nVqOvSiqOvZYUz/MEccsLOSHXO8ffntij6o+ScJeHaiJOp5UFWnUCe+j7nHi
eBS1EcEkC68xjmRQsvZbOM/hMv+4Whcmvy7LYgXa23+4bO4k/nvYObzs0uvboshXGTx6BG4hdQhp
YpjIOWgQBkGbwXNHpoP5rq9nD95iS37OLz4BUEsDBBQAAgAIAMypSUos5R8O9AAAABwCAAA5ABwA
bWVkaWEvbWVkaWEtY29udHJvbHMtc2hhZG93LWNvbnN0cnVjdGlvbi1jcmFzaC1zdGRlcnIudHh0
VVQJAAMvTJ1YL0ydWHV4CwABBPUBAAAEFAAAAM2RQUvDQBCF7/6KOdpLNlYtW2+1xYsFAwEVxMMm
OyFjNzvLziax/94IEQTrvdf3fQ/mMVx91G96rVfvd7B1RgSK/X1Pzj5jFGIPJEBdcNihT2iBPFSc
WlCbEBzVJk2OqNeaLWYmBLXlSfNJ1A4HdBwwqsKZ1HDsRFHRsseSun6KOGZhJr/kcvf41xN7UOVR
EnZqT1U08aiKSINJ+BBNhyPHg6iNCCaZeYlxoBola36E0xwu88+rpV7l1+u1XoDx9gyXTZ3E/w87
heddN8tbrfNFBk8egRtILUIaGUZyDiqEXtBm8NJS3cJ01/eze2+xIT/lF19QSwMEFAACAAgAzKlJ
SgPzqIkKAQAAOAQAADYAHABtZWRpYS9tZWRpYS1kb2N1bWVudC1hdWRpby1jb250cm9scy12aXNp
YmxlLXN0ZGVyci50eHRVVAkAAy9MnVgvTJ1YdXgLAAEE9QEAAAQUAAAA5ZLBSsNAEIbvPsUc7SWb
1EMTb9rixYKBgAriYZOdJWM3O8vOprVvb4QIgvXkRfQ6/zcwP/Nx+9I9lVVZPl/C2mkRqLfXIzlz
j1GIPZAADcHhgD6hAfLQcupBXYXgqNNpYkQ9dmww0yGoNU+YT6I2uEfHAaOqnU6W4yCK6p49NjSM
04hjFubkE9xsbr9yYnaqOUrCQW2pjToeVR1prxPeRD3ggeNO1JUIJpnzBuOeOpTMfgCnczjPX4tl
UVisqnIB2ptf2GzaSfx9sVPx3Ctf5mWZLzK48whsIfUI6cBwIOegRRgFTQYPPXU9THe9P3v0Bi35
aX7Gsxur/+xGXqyKP+hGYW118QM33gBQSwMEFAACAAgAzKlJStCkm5IKAQAAOAQAACoAHABtZWRp
YS9tZWRpYS1kb2N1bWVudC1hdWRpby1zaXplLXN0ZGVyci50eHRVVAkAAzBMnVgwTJ1YdXgLAAEE
9QEAAAQUAAAA5ZJNS8NAEIbv/oo52ku2H34k3mqLFwsGAipID5vshIzd7Cw7m8T+eyNWEKwnL6LX
eZ+BeZmHy+fqKc2y6fYKVlaLQL657siaewxC7IAEqPUWW3QRDZCDkmMDaum9pUrHkRH1WLHBRHuv
VjxiLopaY4+WPQaVWx1rDq0oyht2WFDbjSMOiT8kn+BiffuVE7NTxV4itmpDZdBhr/JAvY54E3SL
A4edqKUIRjnkBYaeKpSk/gCO53A6fZnNL87qRZalE9DO/MJm407k74sdiw+9FrPzNJ1OErhzCFxD
bBDiwDCQtVAidIImgYeGqgbGu96e3TmDNblxfsLvbqTZf3Zjri//pBvzNPuJG69QSwMECgAAAAAA
+qpJSgAAAAAAAAAAAAAAABwAHABtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvVVQJAANoTp1Y
eU6dWHV4CwABBPUBAAAEFAAAAFBLAwQKAAAAAAD6qklKAAAAAAAAAAAAAAAAKAAcAG1lZGlhL21v
ZGVybi1tZWRpYS1jb250cm9scy9waXAtc3VwcG9ydC9VVAkAA2hOnVh5Tp1YdXgLAAEE9QEAAAQU
AAAAUEsDBAoAAAAAAPqqSUoAAAAAAAAAAAAAAAAtABwAbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRy
b2xzL3BpcC1zdXBwb3J0L2lwYWQvVVQJAANoTp1YeU6dWHV4CwABBPUBAAAEFAAAAFBLAwQUAAIA
CAD6qklKoozYSrkAAAAsAQAASwAcAG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9waXAtc3Vw
cG9ydC9pcGFkL3BpcC1zdXBwb3J0LWVuYWJsZWQtYWN0dWFsLnR4dFVUCQADaE6dWGhOnVh1eAsA
AQT1AQAABBQAAACVj8EKwjAMhu95irCz9B1UJgiKgw08dzNzhdiUplX29nZsF49eQg7f//1JR5qc
f2KaCBsX2hyCxIQ9TfbtJBqAm0fNw0CqO5wl48cxoxKhLTM6UpQRq2bfthW+CmWfVMhRmOVDD+xn
rLq67fB4uzaXuqur4oTT/nwp9MPZo/gUC0zRDOuqJrhwyCmJN+Rtz8Wik2QuMsIUMxm8W8XRspKB
pfkflduSsCa338bMPDc26kosLQA/dwN8AVBLAwQUAAIACAD6qklKX+QgCx8BAACOAgAASQAcAG1l
ZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9waXAtc3VwcG9ydC9pcGFkL3BpcC1zdXBwb3J0LWVu
YWJsZWQtZGlmZi50eHRVVAkAA2hOnVhoTp1YdXgLAAEE9QEAAAQUAAAAzdDBasMwDAbge55C9Jo6
Puywa9oug7GOlqWsZzVRVoMSB0um7dvPzTrodTsNg4yNf/TJxhiwH55jT2KfUNFW+9ru6fDq9LYt
o+PWvhMTChk3Hv1A4vrIqD5YxouPapRETSCJrGJ7ah3a3rcUBjMdTOMHDZ7Fjm40EsfRB7VuxPb+
wtCAB6bW0HmkRqkt9KxZnuf/kIiNRuQJWJZgHuaPkF9LWWawGUBi05DIHFJrODlmECLAVIMjAd/B
bLuo6xmkoQQ/Kb3sPLM/UQuHC8x2Vb2D1eZtu6521azIIC1zTcCEXX1bmULxwy6SchlV/VDcjOAE
NETK8ufFy/o3QTn6yAlCU76APQp0yEIJ8gfEFL2OMGVvX9NF5ssWg9xBvwBQSwMEFAACAAgA+qpJ
SqsF3VqmAAAAGQEAAE0AHABtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvcGlwLXN1cHBvcnQv
aXBhZC9waXAtc3VwcG9ydC1lbmFibGVkLWV4cGVjdGVkLnR4dFVUCQADaE6dWGhOnVh1eAsAAQT1
AQAABBQAAACdjzEOwyAMRXdOYWWuuEMbZWtVJLgASUxiiQLC0Ci3L1UztGsXy8Pz+98GuVBYoKwI
ipKuKcVcYMTVPilmKcQ9ANdpQuYT7LHCRt4DI4JtMxMyRAedOmvdwaNRdsFGuuh93HCGcYfODNpA
f7+p62CGrjnFG2/0TLaPoeQGY5bTZ2WZKF1qKTFIDHb0zUIMJVf8585Zz3gkHo+46v2ubOYvs/gp
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
L3RyYWNrLWN1ZS1yZW5kZXJpbmctcnRsLXN0ZGVyci50eHRVVAkAA5dMnViXTJ1YdXgLAAEE9QEA
AAQUAAAAzZFNS8NAEIbv/oo52ku2LUoTb/3AiwUDARXEwyY7IWM3O8vOJrH/3hUiCNa71/d5XpiX
4fq9eS2W6+LtDvZWi0B53A1kzRMGIXZAAtR7iz26iAbIQc2xA7X13lKjY3JEvTRsMNPeqz0nzUVR
BxzRssegSqtjy6EXRWXHDivqhxRxyPxMfsjV4eG3J+akqrNE7NWR6qDDWZWBRh3xPugeJw4nUVsR
jDLzCsNIDUrWfguXOVwvP1YrU6xviyJfgHbmHy5Lnch/D7uE512bm02eLxcZPDoEbiF2CHFimMha
qBEGQZPBc0dNB+mur2cPzmBLLuVXn1BLAwQUAAIACAAEqklK+ORjafIAAAAcAgAAMwAcAG1lZGlh
L3RyYWNrL3RyYWNrLWN1ZS1yZW5kZXJpbmctdmVydGljYWwtc3RkZXJyLnR4dFVUCQADl0ydWJdM
nVh1eAsAAQT1AQAABBQAAADNkUFLw0AQhe/+ijnaSzatl8RbbfFiwUBABfGwyU7I2N2dZWeT2H/v
ChUE693r+74H8xju3vvXurzZvN3CzmoRaA53E1nzhFGIPZAAuWDRoU9ogDx0nEZQ2xAs9TplR9RL
zwYLHYLacdZ8ErXHGS0HjKqxOg0cnShqRvbYkptyxLEIZ/JDbvcPvz0xR9WeJKFTB+qijifVRJp1
wvuoHS4cj6K2IpjkzFuMM/UoxfAtXOZwXX6sN91QY11XK9De/MNluZP472GX8HmX6cuqKlcFPHoE
HiCNCGlhWMha6BAmQVPA80j9CPmur2dP3uBAPudXn1BLAwQUAAIACAAEqklKhy90yvUAAAAcAgAA
NwAcAG1lZGlhL3RyYWNrL3RyYWNrLWN1ZS1yZW5kZXJpbmctd2l0aC1wYWRkaW5nLXN0ZGVyci50
eHRVVAkAA5hMnViYTJ1YdXgLAAEE9QEAAAQUAAAAzZHLSsRAEEX3fkUtnU06cUZI3M0DNw4YCKgg
LjrpCimn09V0dRLn740QQXDcu73nXKhLcf3evBbpevN2B3urRaA87gay5gmDEDsgAeq9xR5dRAPk
oObYgdp6b6nRcXZEvTRsMNHeqz3PmouiDjiiZY9BlVbHlkMvisqOHVbUD3PEIfEL+SFXh4ffnpiT
qs4SsVdHqoMOZ1UGGnXE+6B7nDicRG1FMMrCKwwjNShJ+y1c5nCdfmQ32W3WFkW+Au3MP1w2dyL/
PewSXnatN1mep6sEHh0CtxA7hDgxTGQt1AiDoEnguaOmg/mur2cPzmBLbs6vPgFQSwMEFAACAAgA
B6pJSlaJeJv0AAAAHAIAACsAHABtZWRpYS90cmFjay90cmFjay1jdWVzLWN1ZWNoYW5nZS1zdGRl
cnIudHh0VVQJAAOeTJ1YnkydWHV4CwABBPUBAAAEFAAAAM2RQUvDQBCF7/6KOdpLtla0ibfa4sWC
gYAK4mGTnZCxuzvLziax/94IEQTrvdf3fQ/mMVx/NG/F8vr2/Q62VotAub/vyZpnjELsgQTIBYsO
fUID5KHm1IHahGCp0WlyRL02bDDTIagtT5pPonY4oOWAUZVWp5ajE0Vlxx4rcv0UcczCTH7J1e7x
ryfmoKqjJHRqT3XU8ajKSINO+BC1w5HjQdRGBJPMvMI4UIOStT/CaQ6Xy8+r1Wqdr4siX4D25gyX
TZ3E/w87heddN7rI8+UigyePwC2kDiGNDCNZCzVCL2gyeOmo6WC66/vZvTfYkp/yiy9QSwMEFAAC
AAgAC6pJSskX59n0AAAAHAIAACgAHABtZWRpYS90cmFjay90cmFjay1jdWVzLW1pc3NlZC1zdGRl
cnIudHh0VVQJAAOlTJ1YpUydWHV4CwABBPUBAAAEFAAAAM2RTUvEMBCG7/6KObqXpqseWm/7gRcX
LBRUEA9pMqXjJpmQSbvuv7fiCoLr3ev7PC/My3D3Zl7q8rp+vYWN0yLQ7NYjOfuISYgDkAD56NBj
yGiBAnScB1CrGB0ZnWdH1LNhi4WOUW141kIWtcUJHUdMqnE695y8KGoGDtiSH+eIUxFP5Ifcbu9/
e2L3qj1KRq921CWdjqpJNOmMd0l7PHDai1qJYJYTbzFNZFCK/ls4z+GyfF8ubYlXdV0tQAf7D5fN
ncx/DzuHv3aZvrypqnJRwENA4B7ygJAPDAdyDjqEUdAW8DSQGWC+6/PZY7DYU5jziw9QSwMEFAAC
AAgADqpJSjHziRH0AAAAHAIAAEkAHABtZWRpYS90cmFjay90cmFjay1pbi1iYW5kLWR1cGxpY2F0
ZS10cmFja3Mtd2hlbi1zb3VyY2UtY2hhbmdlcy1zdGRlcnIudHh0VVQJAAOsTJ1YrEydWHV4CwAB
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
L3NvbGlkLWNvbG9yLW1hc2tlZC1hY3R1YWwucG5nVVQJAANaTp1YWk6dWHV4CwABBPUBAAAEFAAA
AO3cMWgTURjA8e8laUzjBVNECCp6iCAWh7S2tlXE15rSxiFIqOjQIbnrHYK4pFUcRC6CoYJDqJQu
dRKFIgbpoBQpnuCgi7uDiFIUwaEOQgdRT4qL+ATBSf9Z7rj7/g/u/bghy109XhrJpLemRSRTHC2U
RZJaJHEvlYyu3FSNueiwd2r41JR72nPPTJ47K1Wn1+v2D/R0uX37+32vL1/1fcdznYGq2z/hdTu+
v9yIIjVZHhmS1vPt70W0FAuDYxfUhxePM2Jb8a7K1xsbnWvXHw7Of1l897KWSGVtHYiK/XxSb4bt
XseVX9xZP1lts+wdddPtp+05XZtNFwLDQE5/Nq7c3JwPVjq3TJsG8sGaKdX2noo8O9GZNQ1U5GPc
9Mi6FMrMnTHbtHYobzYYd2s+ULtPLmjT2oF6ssmQqtiAio+2ynXT2io+vdOUJmqxZHP8VqzDNJDM
HjGlqZWEZS8da9tlGrDsSwHAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwww
wAADDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAfxP40fmZgz++BQA2bzPAAAMMMMAA
AwwwwAD/b8APDh+6raI/Rbm3rz5d3DerXx81P4VyjDsQlkK1+LsdoKWlpaWlpaWlpaWlpaWlpaWl
paWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaX9k/b+3eUlEWvt+7cA2DdaWlpaWlpaWlpa
2n+4tRd6M+M9c41tEv2Kw6VCa6hy+RtQSwMEFAACAAgA86pJSoYxY6SmFgAAkTQAADUAHAByZXRy
aWVzL2NvbXBvc2l0aW5nL21hc2tzL3NvbGlkLWNvbG9yLW1hc2tlZC1kaWZmLnBuZ1VUCQADWk6d
WFpOnVh1eAsAAQT1AQAABBQAAADte3s803v8f8lJuklOiTDn6C4cnZJc14mmhmru92okZkm5tMyk
vociplwWQich90sZza1OMhI7LtlhLjGzkLEN2xj7fT4f1en3//fx/cvj0R+v+Hxen/fr8nw+X693
j+6dtUZsWq+8ftWqVZtOWZihVq1aC1+1Srp0HfCDVZG+PchVqw47njI7bntj9WS/lf8X/eBVZxeC
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
aW5nL2lvcy9VVAkAA1pOnVh5Tp1YdXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIAPOqSUrN2pZUyAAA
ACEBAABAABwAcmV0cmllcy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWV2ZW50cy1iYWNrLWZv
cndhcmQtYWN0dWFsLnR4dFVUCQADWk6dWFpOnVh1eAsAAQT1AQAABBQAAABVUNtqwzAMfddXHPI8
wro/KCWDQUcDCezZ9ZTE1LWGZS/k76ewjbG3g3Ru0shaFGVxBeqzxAj+5FQQgxZOnBVagk1XyTe4
qXDGLCHNuDp/QxE4fLiZEZKZ8Df2zi/cEl0StHrPqg/YpGLdjZTZNMo5sEImNP1xGBrcjWVaY05W
QlZ+x3VDM3bDiNPltT93Y9eYJ+0JusiKxz94oOfjy/nngG7vf5JqR9iyRjNiHFq8OcVTS3vcb62p
xrj1LqulBftCrkz0L5LoC1BLAwQUAAIACADzqklKIdWCEe0AAADRAQAAPgAcAHJldHJpZXMvZmFz
dC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1ldmVudHMtYmFjay1mb3J3YXJkLWRpZmYudHh0VVQJAANa
Tp1YWk6dWHV4CwABBPUBAAAEFAAAAM2OwU7DMAyG73kK30sahoS4dmxFQgxR0Yqd3dTdIrKmih22
vT0t2wGJF+Bi+9cvf/q01mA+gk8HYrNGQVNua7Ol9sXJdT0m5zvzTp6QSbtxHwZid0geJUTj8RyS
aCEWHYmTFzaRJLqJ1yOLYRuD927YGRf4mjR90SCsW7Sfug/xiLHTdBrJCnW5nERlWfZfvNBKQv9j
VRSg728eIJtHUShQMOKOeB+OcPvrXihdLesaLtRyhq5CGgQcT132tHze/O2mz+Q7aAkWOWyR4S5X
cMEka4m5T96fK4xM3QySmGg2aMq6gdXba7Upm1J9A1BLAwQUAAIACADzqklKkDh7MLoAAAASAQAA
QgAcAHJldHJpZXMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1ldmVudHMtYmFjay1mb3J3YXJk
LWV4cGVjdGVkLnR4dFVUCQADWk6dWFpOnVh1eAsAAQT1AQAABBQAAABVj8Fqw0AMRO/7FYPPoSSf
EIJvLTHYP7DeyvaSzSqstDH++8iktPQ2SDNPo4FEBbp4hYTCKYGelBUpilKmIhCNNl253OAnpYKZ
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
RlFRllmcmZSTGpSaXMJZrZSTmlaiZKVkAJFU0lEqyS9A4YNtAYoYGyHEMlIz0zNA2kxNLKCCtVwA
UEsDBBQAAgAIAAKrSUrOzqG+7gAAACICAAA9ABwAcmV0cmllcy9mYXN0L3ZpZXdwb3J0L2lvcy9p
cGFkL3dpZHRoLWlzLWRldmljZS13aWR0aC1kaWZmLnR4dFVUCQADc06dWHNOnVh1eAsAAQT1AQAA
BBQAAADNj7Fug0AMhufwFIiVOCYNSaNOqGqnbkFq5gs4xdKRQ9hHqKq+e4FEkaJunerBlj/bv34D
QIjvzvqaBF+MGnzd57inwxvrtTx7tiXuyJIRAm4qdyLh2lujrkVrPp1XUBKFlsRbFWxJWx70jkYU
O6Zz41pFdoLcmBLPXGoFLFBSxwXBpae+oUKpXGivQRzH/8SWKdQbO5nKshBW8zSMx5RlQSiFsTRb
LpIxgrA2fT6R9Y3wKb/bgY6FD5Z2w6uzr8jSUaOnKLlMo3mkrrnrJw8Dedxsb6wi/qjGs2WSpFf6
HcR/VF49JL+V1+n2JvwDUEsDBBQAAgAIAAKrSUqdL+GCbQAAAKcAAABBABwAcmV0cmllcy9mYXN0
L3ZpZXdwb3J0L2lvcy9pcGFkL3dpZHRoLWlzLWRldmljZS13aWR0aC1leHBlY3RlZC50eHRVVAkA
A3NOnVhzTp1YdXgLAAEE9QEAAAQUAAAAC8tMLS/ILyqxUijPTCnJsE1JLctMTtUFc7i4ipMTc1I5
DfUMQIArN7EiGCxgChPIzAtGUVGWWZyZlJMalJpcwlmtlJOaVqJkpWQAkVTSUSrJL0Dhg20Bipib
WcDFMlIz0zNA2gwNDEygorVcAFBLAwQUAAIACAACq0lKdBcalOsHAACuGgAARQAcAHJldHJpZXMv
ZmFzdC92aWV3cG9ydC9pb3MvaXBhZC93aWR0aC1pcy1kZXZpY2Utd2lkdGgtcHJldHR5LWRpZmYu
aHRtbFVUCQADc06dWHNOnVh1eAsAAQT1AQAABBQAAADFWdlu4zYUfW6+QkjQBigiyY7t1EvGRScL
CnRB0RTtY0FJlMUJJWpIKnGmnX/v5SZLsmQbKIpmkNHCS/Lc9Vwqt5nM6frsNsMogUuOJfLiDHGB
5bvLSqb+/BJeC/lG8fpsSUnxfOUtX4ggEifeX2ce/Ei8lX6CY8aRJKxYegUr8EoPRYwnmPsRk5Ll
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
9NN0f/7no45suwII5bgfrNBBJxwwMDvBW/+HE6BPWk+uwaDq5kQnKNGZmaHvp/P96Z//TTJ1Lppo
oHjrP1P9A1BLAwQKAAAAAAACq0lKAAAAAAAAAAAAAAAADgAcAHJldHJpZXMvbWVkaWEvVVQJAANz
Tp1YeU6dWHV4CwABBPUBAAAEFAAAAFBLAwQKAAAAAAACq0lKAAAAAAAAAAAAAAAAFwAcAHJldHJp
ZXMvbWVkaWEvY29udHJvbHMvVVQJAANzTp1YeU6dWHV4CwABBPUBAAAEFAAAAFBLAwQKAAAAAAAC
q0lKAAAAAAAAAAAAAAAAHAAcAHJldHJpZXMvbWVkaWEvY29udHJvbHMvaXBhZC9VVAkAA3NOnVh5
Tp1YdXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIAAKrSUoy4lZv+QAAANwBAABhABwAcmV0cmllcy9t
ZWRpYS9jb250cm9scy9pcGFkL2Nsb3NlLXBhZ2Utd2l0aC1waWN0dXJlLWluLXBpY3R1cmUtdmlk
ZW8tYXNzZXJ0aW9uLWZhaWx1cmUtYWN0dWFsLnR4dFVUCQADc06dWHNOnVh1eAsAAQT1AQAABBQA
AACVkMFqwzAMhu9+ip+cNmj7DmP0tpFC8gJOrLRinhwsu6FvP2XNGIPB2EUY6ZP0Wf2FFYW0WLz4
gjEmZTnDY2EJablnjZkzKUm5164cKIEFM4+lZtqz7LcnQiKFJBvlqxK8wKtSLpwEk+e4MtbpEWio
ZwyVYzigT8hVbNumg+GGi5ewMyMe36xAaGcSCC1fakMtJa09lv6mflHawIfi50/krm8ZbrvHg3Ot
QOs4kuoOt1RtfoxQMnmLme0/aUJzeuq6Bu9G+TMZOaUY00JhVW36Y9fjuX09vRz7Y2Mz3YojcPjj
Fod/gpvoVGO8nXxW27+eLFdy7oeEcx9QSwMEFAACAAgAAqtJSoDPnmTmAAAACgIAAF8AHAByZXRy
aWVzL21lZGlhL2NvbnRyb2xzL2lwYWQvY2xvc2UtcGFnZS13aXRoLXBpY3R1cmUtaW4tcGljdHVy
ZS12aWRlby1hc3NlcnRpb24tZmFpbHVyZS1kaWZmLnR4dFVUCQADc06dWHNOnVh1eAsAAQT1AQAA
BBQAAADVzr1Ow0AMAOA9T+E9vd5SwRp+MgGiIhGdzZ3bWnJy0dkH7duTQNWZFXmwZVuf7ZwD/56k
DKT+EQ19u+v8jj6e2C7pvrBE/0ZCqOR4OqaRlIciaCl7wXMq5ozUXCYtYuozWebZGygy+pBGy0nU
84TRB0mzMuGB3Bfb0U0crOTZHa/lJ0dKDlUpG6fR7ZFl6dNpomAU13ayqq7rf/M4zmOUn7ebBtxm
dQP1ZnULTVPBEtu7roPIEcZkELAoAY5wdeDirKv6z5u/ppYQSHVfRM5bzEoRWMFyoeVs33Y9PLy+
bJ/bvq2+AVBLAwQUAAIACAACq0lKd49lo/kAAACzAQAAYwAcAHJldHJpZXMvbWVkaWEvY29udHJv
bHMvaXBhZC9jbG9zZS1wYWdlLXdpdGgtcGljdHVyZS1pbi1waWN0dXJlLXZpZGVvLWFzc2VydGlv
bi1mYWlsdXJlLWV4cGVjdGVkLnR4dFVUCQADc06dWHNOnVh1eAsAAQT1AQAABBQAAACFkEFqxDAM
Rfc+xSerFmbmDqXMriUDyQWcWJkRdeVg2Q1z+ypNSikUuhHm6+nrW/2NFYW0WL35gjEmZbnCY2EJ
adlUY+ZMSlK23gcHSmDBzGOpmY4sx/2JkEghyax8VYIXeFXKhZNg8hxXxiY9Ag31iqFyDCf0CbmK
bdvjYLjj5iUcLBGPb9YgtDMJhJbvaEMtJa0zJv9Qf0TawYfi5y9ki28Kt93jyblWoHUcSfWAe6rm
HyOULLzVzPafNKG5PHVdg3ej/JWMnFKMaaGwRm36c9fjuX29vJz7c2OebsUROPxzi9MG7vunGuP9
4rOa7XqJXMm5X97OfQJQSwMEFAACAAgAAqtJSgI8Z5fZBwAA2xoAAGcAHAByZXRyaWVzL21lZGlh
L2NvbnRyb2xzL2lwYWQvY2xvc2UtcGFnZS13aXRoLXBpY3R1cmUtaW4tcGljdHVyZS12aWRlby1h
c3NlcnRpb24tZmFpbHVyZS1wcmV0dHktZGlmZi5odG1sVVQJAANzTp1Yc06dWHV4CwABBPUBAAAE
FAAAANVZbW/jxhH+7l9B2EgNBCYp2ZZPL3cucraMAk3aQ20kH4Mldynueclld5e2dG3/e2ffKJIi
bQEJAuSCi0ju2zMzz8wz5H3MVcFuTz7mBGH4KYhCQZojIYn6dF6rLJyfw2OpdozcniwZLZ8vguUL
lVQRHPznJIA/imxViEnKBVKUl8ug5CVZmaGEC0xEmHCleLEMptU2wHBN8Orkfyd2O7dJyhkXy+Bs
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
4/pp/Vuo0/sxqgR13Pyb1v8BUEsDBBQAAgAIAAKrSUpc7VlP8wAAABwCAABhABwAcmV0cmllcy9t
ZWRpYS9jb250cm9scy9pcGFkL2Nsb3NlLXBhZ2Utd2l0aC1waWN0dXJlLWluLXBpY3R1cmUtdmlk
ZW8tYXNzZXJ0aW9uLWZhaWx1cmUtc3RkZXJyLnR4dFVUCQADc06dWHNOnVh1eAsAAQT1AQAABBQA
AADNkU1LxDAQhu/+ijm6l2Z3Pbj1th94ccFCQQXxkCZTOm6SCZm0df+9FSoIrnev7/O8MC/Dzbt5
Lder8u0O9k6LQHXc9eTsEyYhDkAC5KNDjyGjBQrQcO5AbWN0ZHSeHFEvhi0WOka150kLWdQBB3Qc
ManK6dxy8qKo6jhgTb6fIk5FnMkPuT48/PbEnlR9loxeHalJOp1VlWjQGe+T9jhyOonaimCWmdeY
BjIoRfstXOZwvfxYrW/wVpflZgE62H+4bOpk/nvYJTzvMqXZbJaLAh4DAreQO4Q8MozkHDQIvaAt
4Lkj08F019ez+2CxpTDlV59QSwMECgAAAAAAAqtJSgAAAAAAAAAAAAAAACQAHAByZXRyaWVzL21l
ZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9VVAkAA3NOnVh5Tp1YdXgLAAEE9QEAAAQUAAAAUEsD
BAoAAAAAAAKrSUoAAAAAAAAAAAAAAAAwABwAcmV0cmllcy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29u
dHJvbHMvcGlwLXN1cHBvcnQvVVQJAANzTp1YeU6dWHV4CwABBPUBAAAEFAAAAFBLAwQKAAAAAAAC
q0lKAAAAAAAAAAAAAAAANQAcAHJldHJpZXMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3Bp
cC1zdXBwb3J0L2lwYWQvVVQJAANzTp1YeU6dWHV4CwABBPUBAAAEFAAAAFBLAwQUAAIACAACq0lK
oozYSrkAAAAsAQAAUwAcAHJldHJpZXMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL3BpcC1z
dXBwb3J0L2lwYWQvcGlwLXN1cHBvcnQtZW5hYmxlZC1hY3R1YWwudHh0VVQJAANzTp1Yc06dWHV4
CwABBPUBAAAEFAAAAJWPwQrCMAyG73mKsLP0HVQmCIqDDTx3M3OF2JSmVfb2dmwXj15CDt///UlH
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
3ahBBFwnVzblOKY9nH99OL+8Y/XXzJKcxharDlEOinXVFmnKK0lYhfo4bzjVyDYPOULNZLeN7hIM
MXQoshRab48Gv6L6YX4TCLBHIAem6ZUvpk88Xt6mLDvhu3qXoinBd9IEKDIz/QmvbXJtPlLpYC+X
7MBIU9f2OK14eU9zpNCbKeFu/GF6Sc0DeVfXexdjqysh96Wuids6JohbmhlzI6VwTJARWlJ37PeI
lst3luhoWgg2ydT+TlC81M6QW8dLo19zIXkOYf5PE1Nw2jbv9dUK8V4EIxJB3U/LN74ZTO02mcyi
4WZvuhN8I/ZorgOuLPr2JA+szj58al1mMLsPTe/IlWusj0ubD/qcl/yE75fnhlcQkVQ3YBmd5tK4
8n4tl04HL+3nS2l4HPdaMIc0jO7dnZCYOCEmjl3fY21WKgWQIu7fp5xUxOP1PA2Evjw/PH08nsld
qOFrnC2hRu+MdKqlrxFmbOX40/jfb/9rbDD/83BA4KOYZspu+aZri2kjV03dIUt5beCty/MHuZ3p
TOp1WKN7LK55LbWERka3G/l8fbzx+Ou1iMsrs6Gm2/oyPs7zy+vp5WV6eOuMzhA7F18eL6/vv/25
oPdfr68TohFydWdi4LfL48vl7q00MLycyrWJccDaWBSc4s+lno8OJ0y/+8dlPNkv3y5DyD82fY2v
6F2ev/4LuP/hrOpd8mkmw5R+k9riMnaVfZ96pO+e3l+nTs/3p6mvGfJF6GQpbkT+dZ5OUzsaGJG7
g0qWiwnT23QNx87XYMH3mppBnZg572+k0/iG2N3nl+/okKpzyInqy9bmdtnyyuiqT/Pb9fXy38OO
S+vO+ytiANUdv3WbRzG1sj+dT+N/1kbN253hsVl8fMnvjXQYDljxnVtG0oHKPJUv14ePt/lOwgPC
d2uJmseDmnbfad4D4qmcukHajaeKbf06jTF/Pb8MwcTdr4ijui/1Iqe2fVW30nuw+TEiILvKnS7k
e52katz8QqqFqD9Est7VgbFD9jb46fn6GXGY7XuVN8QWtp0fsP18ebzcLffcEW57L2DOH3wsIyau
v92NCnZUzW9U+qPp9M0xbYJsUNPPWD/4Xx/XqdY437IYCx9vy2y7wXn7DSlW07krPkcpzeXGOx0+
X96562bbQrSuwXfHPC8kQvjTHe25MN9o9qeLKqvPTi1D6Ku2W6Nstji4cBM/Pz2dXt7W9up94NGS
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
mBkOLcbacBHNx8xwaDHWhktoPmaGQ4vxnviWaD9uM99oMt6WQ3SBneXQZLwth/ACO8uhyXhbDvEF
dpZDk/G2HAIM7CyHJuNtOUQY2FkOTcbbcggxsLMcmoyF5V5cNmu0s9KHTiQXO2H7YRSdG5UoJRUz
lDDmIRFZ4VtTKtEVvjWlV68b1fIs60ZrruGNzXYYrPBFSx1uqXWu8P16KmtV88No51/hu5kWW+cK
XxiO2wpfGI71Cl8YjtsKXxiO9QpfGI7bCl8YjvUKXxiO2wpfGI71Cl8YjtsKXxiO9QpfGI7bCl8Y
jvUKXxiO2wpfGI71Cl8YjtsKXxiO9wpfOI7dCl9YjvcKX1iO3QpfWI73Cl9Yjt0KX1iO9wpfWI7d
Cl9YjvcKX1iO3QpfWI73Cl9Yjt0KX1iO9wpfWI7dCl9Y7owrfKMuw1RDEXHolbDRZxGtLqL4NATX
xzHbnsgK35pSia7wrSn94LpRs78i/jzrRmuugdh2BeYCLTVzS61nhe83DXVE88No7zIaWmybZ/jC
cGc1HFpsa2f4wnBnNRxabGtn+MJwZzUcWmxrZ/jCcGc1HFpsa2f4wnBnNRxabGtn+MJwZzUcWmxr
Z/jCcGc1HFpsa2f4wnBnNRxabHNn+MJx5535RpNRstxf/u0//vUvP/1705jQm5v+N4vYkbi6daTy
ztOIRuqLs18ZSSe+sJL0iKt/sePdB0HFko0vk8OabvLNeqRJV9Gkp8nYbMOtZmNuNet3q9mgW+02
3Go35la7frfaDbrVbcOtbmNudet3q9ugW/023Oo35la/frf6Dbo1bMOtYWNuDet3a9igW+M23Bo3
5ta4frfGDbo1bcOtaWNuTet3a9qeW7XchFubXSbV/RzYNSudSyS5r1dIvuQShY+lF7abLiqmkITr
+z4NSlrXd1T29aoolWqCqKJ08rtFVVwDsU0KT9nXCy3FcjvQuaKyNc0Po1Ha12vlLbb2fb1gOG77
esFwrPf1guG47esFw7He1wuG47avFwzHel8vGI7bvl4wHOt9vWA4bvt6wXCs9/WC4bjt6wXDsd7X
C4bjtq8XDMd6Xy8Yjtu+XjAc73294Dh2+3rBcmfb1+u4mNBeClBx2Ndr5qtbRyrvPI142r5eLBtw
tg2vaq7+rbSuor+v1yyXyWhfL7rNOtu+XoyadLYNr9boVrMxt5r1u9Vs0K12G261G3OrXb9b7Qbd
6rbhVrcxt7r1u9Vt0K1+G271G3OrX79b/QbdGrbh1rAxt4b1uzVs0K1xG26NG3NrXL9b4wbdmrbh
1rQxt6b1uzVtz60v7Y60Qrc2u0xG+3qtzK1ra9KKX/nx/tNVbQP8eHlVTtu1q7KQiz/8dHNd3r7G
31ty98OP+fa63N1NdN74WH/z6dPN9R9/Lvdi1wTi8nq8+XD3uav+5Of7y6vD33MCsNev6Lb8enN7
P/f3LfORrzJ4ra1mssRONgcF87WQA61/rloe9bT49x+W21LlvNo/N/HZwe0El26JU3rIJXhUlXF2
fby4+aPTJareBuFkGoQNPok4uiC60Ps4BpuMt0T2qawp9eyQX0uO1hR/cP9DtZ9UT63j5zXlvnGs
dKMbVHUB9m+yJ2iDx90JX6O7//hQ1WD0W+GJaijYYettQNYW+o3uhwHnI7taerbYbhuQtYWBLc5u
CwNbULOFhS3ObgsLW1CzhYMtzm4LB1tQs4WHLc5uCw9bULNFgC3ObosAW1CzRYQtzm6LCFtQs0WC
Lc5uiwRbkJvOk/DF+efzJIxBzhgKxji/MRSMQc4YmOomYAzMddMzBia7CRgDs930jIHpbgLGwHw3
PWNgwpuAMTDjTc8YmPImYAzMedNa6RWtiXLsiuiLc8Iqk0QaXRTG9mHoujLmIRBZ6VVTKtmVXjXF
V682mkTY+qCRinLfOGiEzkqv7bFnvtKrqsHot8IT1XBb6bXGNsBKr3acj+xq6dliu22AlV6wBdqA
jy0sbLH1lV6wBblVRrDFptsAK71gC7QBH1sE2GLrK71gC3KrjGCLTbcBVnrBFmgDPrY49yIj+GLb
jYCVXjAGGoGVMTDVjZVeMAa9RUYwxrYbASu9YAw0AitjYMIbK71gDHqLjGCMbTcCzZVefY7eqjKI
oZhB2BTydBmliFyUd37wObuByEqvmlLJrvSqKf6gNfT+ssHmq41qyj3PmV76AuzfZM9qpZd+tsqo
qsHot8IT1RA6MX2zbcB0pZfmwPnIrpaeLbbbBkxXesEWS9jCwBa8VnrBFkvYwsIWvFZ6wRZL2MLB
FrxWesEWS9jCwxa8VnrBFkvYIsAWvFZ6wRZL2CLCFrxWesEWS9giwRbMVnrBF4vM50kYg3ncY4Gw
VvvcxNOw008316XhIqGTBKMpuXaGq2lC2ayKsiFK2a6KsiVK2a2KsiNK2a+Ksj8v5Rejr1oNQ9fL
URirjLC2G0VMvhe+U2ZItou200RSujWlkr1tqymeUFK0ptzznMdwwt3m9tgzT+lWNRj9VmCd0l1j
GyCl247zkV0tUrp02gApXdgCbcDHFha22HpKF7YglxCFLTbdBkjpwhZoAz62CLDF1lO6sAW5hChs
sek2QEoXtkAb8LHFuQOi8MW2G2EtcY+9iA/f3MT+RSyU0j1SMDTgznc1C6V0OVM2RCnbVVG2RCm7
VVF2RCn7VVH256X8YvRVJZv8KL0ILkphpR1F11snpEv9kFTXhWKJpHRrSiV721ZT/BvbTO/dnqbv
89XVzd//+rHkodze/fCPL2W1vh2vuYY3Fs1NP3hS+fTD32qnsN03WqqmpQgngH9vlRehv9lURwgA
VptjZ320GG/LaTQgM8uhxZhbzqABmVkOLcbcchYNyMxyaDHmlnNoQGaWQ4sxt5xHAzKzHFqMueUC
GpCZ5dBizC0X0YDMLIcWY265hAZkZjm0GPepcIkW5DYXjibjbjrEGdiZDk3G3XQINLAzHZqMu+kQ
aWBnOjQZd9Mh1MDOdGgy7qZDrIGd6dBk3E2HYAM706HJmJjuxaW1po+2N6MXyYxFWDdEkZPthR2z
VVn2xXaByCrgmlLJrgKuKb56bamWZ1lbWnMNb2zKw2AVMFrqcEutdRXw13NdqwQAq51/FfBmWmyt
q4BhOW6rgGE55quAYTluq4BhOeargGE5bquAYTnmq4BhOW6rgGE55quAYTluq4BhOeargGE5bquA
YTnmq4BhOW6rgGE55quAYTluq4BhOe6rgOE5dquAYTruq4BhOnargGE67quAYTp2q4BhOu6rgGE6
dquAYTruq4BhOnargGE67quAYTp2q4BhOu6rgGE6dquAYbqzrgLuu97pMXQi28ELG4YionNO9OMg
x7HLMnYjkVXANaWSXQVcU/zBtaVmf+X8edaW1lwDsW0NzAVaauaWWtMq4G+a6ggBwGrvshpabKtn
AcNyZ7UcWmx7ZwHDcme1HFpse2cBw3JntRxabHtnAcNyZ7UcWmx7ZwHDcme1HFpse2cBw3JntRxa
bHtnAcNyZ7UcWmx7ZwHDcme1HFpsg2cBw3PnnQtHk9Ey3V/+7T/+9S8//XvT8NCbxwU0i96RuLq1
pPXO04xG6ouzXxlRN76w3vSI63+x+91HQcWWjS+Tx9pv8g17pFFX0qinSdlsw7Fmc44163es2aRj
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
4VkQpwoMuT2RwgUXABxG2fBSynVGLm2TSOGCGwhoonUSiZ0mDDTROonEThMWmmidRGKnCQdNtE4i
sdOEhyZaJ5HYaSJAE62TSOw0EaGJ1kkkdppI0ETzJBI7UfBIIi3EQkEVnJJIC7HAy0xWSaSFWOB1
Jqsk0kIs8EKTVRJpIRZ4pckqibQQC7zUpJdE6r031qRRDMlFYZUeRBqCEXJMWnV9iF1WRJJINaXS
SCLVVFovQ8UniXSWC+eQRKoCQ25PpBmTSI0BsBtl1fxceCaR2oGAJrgmkdqBgCa4JpHagYAmuCaR
2oGAJrgmkdqBgCa4JpHagYAmuCaR2oGAJrgmkdqBgCbYJpEakoAq2CaRGpKAKtgmkRqSgCrYJpEa
koAq2CaRGpKAKtgmkRqSgCrYJpEakiCTRMrODs7bQQSnOmF7p0VW2ojeWutL5/KYApEkUk2pNJJI
NZUelGGksydSvKB+4fSSSPFZEKcKDLk9keIFFwAcRtn4Usp1Ri5tk0jxghsIaKJ1EomdJgw00TqJ
xE4TFpponURipwkHTbROIrHThIcmWieR2GkiQBOtk0jsNBGhidZJJHaaSNBE8yQSO1HwSCItxEJB
FZySSAuxwMtMVkmkhVjgdSarJNJCLPBCk1USaSEWeKXJKom0EAu81KSXRHJy7HprRpGK7IV1w27n
p+SEH6WLzkcZcySSRKoplUYSqabSehkqPkmks1w4hyRSFRhyeyLNmERqDIDdKKvm58IzidQOBDTB
NYnUDgQ0wTWJ1A4ENME1idQOBDTBNYnUDgQ0wTWJ1A4ENME1idQOBDTBNYnUDgQ0wTaJ1JAEVME2
idSQBFTBNonUkARUwTaJ1JAEVME2idSQBFTBNonUkARUwTaJ1JDEkqr49vc8Vir+fnP7S7n98htr
W+bHy6tyWsiopoqLP/x0c13evrrf23f3w4/59rrc3X34290pH7stv97c3h/88AkI3kPtcJmnKOcl
1gcpH65lqSqqNTR36x0l4EVpHK/82ZX4zuudPn7aoPb5/vLqbpGW/vYbz3K5h6NerV7cqFOzZwqQ
mEL6/c7lO20ur/8zX10On2+vvjN/Jofv9VIBFmABFmABFmABFmABFmABFmABFmABFmABFmABFmAB
FmABthnYId/nqcjv9H/78k/aaTmVTRjvywUD8jYhtwo+61MhakBiCmnxweZ0fKwGG4AFWIAFWIAF
WIAFWIAFWIAFWIAFWIAFWIAFWIAFWIAF2LWAXXTCbw68fCb8ALk95FYbB5lTIRpAYgpp8cHmdHys
BhuABViABViABViABViABViABViABViABViABViABViABdi1gF10wm8OvHwm/AC5PeRWp0GGUyEG
QGIKafHB5nR8rAYbgAVYgAVYgAVYgAVYgAVYgAVYgAVYgAVYgAVYgAVYgAXYtYBddMJvDrx8JvwA
uT3keN4jyl8oCJCYQlp8sDkdH6vBBmABFmABFmABFmABFmABFmABFmABFmABFmABFmABFmABdi1g
F53wmwMvnwk/QH4P5Fd/0cf7T9Xofry8Km8i01JeHPf1F3/46ea6zHQ9f7t747f83n67H37Mt9fl
7u7tj70kgM/3l1d3J37jbfn15vb+4IdPgE/2I8ep4m937zLHTlQH5fS1mtfEsNDXHxLVOQl8FWfb
Ik49sZrcEdrAxBjT4rfFcxzVPuttMdACLdACLdACLdACLdACLdACLdACLdACLdACLdACLdACLdC+
t95F4wtzAG4QXwBm1pg1ueO2gYkxpsWHnTmOdWcx7AAt0AIt0AIt0AIt0AIt0AIt0AIt0AIt0AIt
0AIt0AIt0G4H7aJTg3MA5jQ1CMxLYDbkjuYGJsaYFh925jgCnsWwA7RAC7RAC7RAC7RAC7RAC7RA
C7RAC7RAC7RAC7RAC7RAux20i04NzgGY09QgMC+BOZA7xhuYGGNafNiZ47h4FsMO0AIt0AIt0AIt
0AIt0AIt0AIt0AIt0AIt0AIt0AIt0ALtdtAuOjU4B2BOU4PAvATmSO7Ib2BijGnxYWeOo+VZDDtA
C7RAC7RAC7RAC7RAC7RAC7RAC7RAC7RAC7RAC7RAC7TbQbvo1OAcgDlNDQLz+zB/+6s+lYnDIP5+
c/tLuf3y+2oJ/nh5Vd4kp6W8OKGGiz/8dHNd3r6y31th98OP+fa63N3dll9vbu8//O3ulA8f/NgJ
AN7D7PDVnSKc56QPMj5cyTI1VKpn7nY7QrgLclhEsg1bffrwaaPC5/vLq7tF2vjbbzzDxT58/Nd/
NhnMDl71168+w2VXH6jels88h76fE+TX764s8ft+onX/gzqj3I6stB3Uf/vLv9OX55xFvhOlchDo
ogL9n//9z/9CXqBzFnkOlOQEOn+p5AZ4vZxA5zhTiOoAr9n0n5rVAL+oPOcsktoAD4G2GeAXFeic
RVIb4DWfAV5zGuDNcgKdY8tKqgO8YdN/GlYD/KLynLNIagM8BNpmgF9UoHMWiQ6UlT7fv9a4tTzn
WA9NVZ2BjToDq+F9UXnOWWTD4f31MskpdP5SG3I9dfBcVKNzFkntET7weYQPNMb4V37NOQNh70+C
vZ0BOy1rcqZM0rsib8tk14jFjeoTbo0iQKcV0CBn9t6w3wyxw3eEgpknolqloTeYiZpBQwidnIAV
uahjYSIZtbhIkY1aBCbSUecY7DeYj2oz2G8+gNJssN9iRqrRYA+Rthrst5iTajTYIym1wFm/W8lK
tRnsNz/Z32yw32JeqtFgD5G2Guy3mJlCR8pqqN9gbqqNQjefnGo21G8xO/X2UI/0VCuyyE+d/dEe
CaoZdia6GcqZd9b6poLGaSra2aQ2QaNvCJ8tYnNMHVW6Oc+OWr998TIEGO+m9Rumty+xv/n06eb6
jz+Xe7H7zeLyerz5cPe5a3aVB76w6YW+az79/ubXD/f/uCccnXqoEAj5IXz43qrijr3Dev82d6dU
BxWuzch6KYRzJEuAkC3C13sbTbov1Fz6Qqhwzqn3tgjnmHgHQrYIX+9tDOm+0HDpC6HCOecm2yKc
Y2YSCNkifL23CaT7wsClL4QK5zx6pi3COc6aAUK2CF/vbSLpvjBy6QuhwmNnAs83eX3UrPVJk11z
7R5y9BTqOnfzIDVDWj8h32La8txxgLk2H3nflPwSm1+sf9oHEM8KEXO4UCIHO29q+gcQifaJm5vL
hRIJ23lT00CASLRP3NycLpRI2M6bmg4CRKJ94ubmdqFEwnbe1LQQIBLtEzc3xwslnkWJ3/6am9vL
ny+vz7ta+XkN71qvXDGNutwy0NnnRd81Pfic9DsmKpepoVI9Z1m1/PWrl+LwMF399kklMyzlfc8p
GF/BrHkx9hEXedpxM3OP7wu1KPe15+9s1/6q5GsxjfZ3H3fj//3NL+X6h2hKyT5aMbiYhB2UFDkW
I/qiZDJFutHG5feqOrnUM2Ddv6eqL/T7T/kff80/lx/k9wcndneX853583f6x+mvrxc1/WR3WdOP
vlQ0/e9U0/T3x181/eOHD1/+/aHK6Z8vr+9+3V3ux5KHcns3lfud+fHhX74z//IbhfNOcbPHdwb5
Pa/r/3z4xx9++817qI7gS4nq+fbM2xBcMgNSMl3QRolhzE5YN/2+Lste6G702vS6M85SGZAqSqUx
IFUUelKPqnT4IKf/V7PJs7+ZtKk9yXGJPUUaw9OuuO/f6kZrWBMkTGqo2gLo2hdy1Z267nzofJkI
hH4awH1QIpWSplF8tDml6Y86RWT8qSmVxPhTUyjGn/VT5DP+VLHG+APQVB6bvLTT4O2j6E0swo55
EClZPY3oPssQtQ3ZExm2akolMWzVFEr0RdSk2J1wKQxb/CmSfKv3pXP9tjetYk2QMOU3fKsEPf9j
kxtjcb0VpuuVsMZk0alpMDc+Jq+6PMpI5rGpolQaj00VhR7sOfXa5pH0xTbwsZhHquJLiSqneSS2
cKk8EOluepjshihUNw7CRm9FLv0gjNUuSp+c1HTe471dKpH3eG8XelKPyv093nHjEnuKnN7jVbAm
SJjhezzeoGd/IFIylRRdFlmn3cSamp4Qtc5C9qWPQ1BDHEYi409NqSTGn5pCMf6snyKf8aeKNcYf
gKby2CTHIQwyjEJ2WQqrVBSxhCh6lZ1L3dCVgco8Uk2pJIatmkKJvohqO4901LDFnyKfeaQq1gQJ
s5tH4g569scm52NyJRgxjJ0WdhiDyNF5EZIb+t56mftEZPypKZXE+FNT6MGe06xtHslcbAMfi3mk
Kr6UqHKaR2ILl8oDUS+ld1EPIqhOTQCjFtHaQWRjbTeN127oOiIDUk2pJAakmkJP6lG5v8c7alzi
T5HPe7wq1gQJs3uPxx307A9EoysxqWJF7tUEpBuLyK4rInbTVccUez9QGX9qSiUx/tQUivFn/RT5
jD9VrDH+ADSZ9UjBmNKNSZh+gmmDDiL1XopeeZNVUloFKts41JRKYz1SRaFEX0S1nUc6atjiT5HR
eqQa1gQJ81uPxBz0/OuRRutyb6MY3O45UsZOpNxrMXbSd07bokKmEv+uKJVG/Lui0IM9Z1jbPFK4
2AY+HuuRavhSospqPRJXuFQeiFKQtg8piaFYJ2wv9W5Bl54GbJWj8aPvPJUBqaZUEgNSTaEn9ajc
3+MdNS7xp8jnPV4Va4KE2b3H4w56/geiZEPotBHJ2d0TYonTAF6ScNHanG1ysaOy0XdNqTQeiCoK
xfizfoqM1sPWsMb4A9BUHptGn2ycUIrBdIOw04OmmB43s1Bj73UXjOnJnE9RUyqN+ENFoURfRLWd
Rzpq2OJPkc88UhVrgoTZzSNxBz37Y1NwUnW2y8LEnIUt09/i4KMYOhs6O3bOek1k/KkplcT4U1Po
wZ4zrm0eKV5sAx+LeaQqvpSocppHYguXygNRp5TvY0gi6H56sOz7XnSjHURfzBCCUVk7KvNINaWS
GJBqCj2pR+X+Hu+ocYk/RT7v8apYEyTM7j0ed9CzPxDZPA3hwXlhxzQ9IapoRVdyElIPTuo0pKE4
IuNPTakkxp+aQjH+rJ8in/GnijXGH4Amc6zsqKMbnRRJaSlsMF5k64pQxdugsg+DoTJs1ZRK41jZ
ikKJvohqO4901LDFnyKfeaQq1gQJs5tH4g76lMemVyT+8f7TVW27/Xh5VU5rrwNfXnstvzf67ocf
8+11ububHPrGx/qbT59urv/4+f7yquK/fvFLbsuvN7f3Bz98AqdXNf12qSd82zIf+dr2rzXWO/ri
nVYOquTrl3/T5It852HhLFLCIS21LGCf+c9l6sim3y4ur8ebD3efu7ctVzUMkxH2getcvJFfpdW8
tevX6qhuNL4E0Qdvhe20FXG301+vx05qOfouUNkvtabUs4B9YUlMRalEzyylcOQrY3xnEeDx0+hV
hClx5ZRRYAuXzrAUjOpKmpgNfki7bZSUSHa3ejj5mHToXC5UhqWaUokMSzWlntSvcp8nOmp04k+R
yiBVM4FRRZsgY3YzRdxBz55UkP3opeuskN0wCGum35f6fhQ661BGb3VKVHZOrSmVyBhUUyrGoPVT
5DQGVdHGGATQdB6gtB6H3ndJaO93+y2FIqKyvYiDji7ZzrjRUNmuoaJUIoNXTalEX0y1TSwcNXjx
p0j0Ld+LU+lVtAkyZpdZ4A569geoPo5xGsy9KDboaTTPSnQm90KlWIZB2eCsonL0UUWpRMagmlKJ
nmNK4RhYxviYzC1VEabEldPcElu4dB6NbNK97ju5G6eDsN6NIoeuCDuUbtTDmAZP5YjymlKJDEs1
pZ7Ur3J/r3fU6MSfIqf3elW0CTLmtwqJOej5V8HG0rvUJzHkMkzPijqJ1AUldme2q34Y0tCRGYMq
SqUyBlWUijFo/RRZjUE1tDEGATSdB6h+QuVGkyd+xgurRi+Si4MwyXfB9GUcdU/lvV5FqVTe61WU
SvTFVNu5peNe77GnyGluqYo2Qcbs5pa4g579AcoYk9T0NCn0kHf7WpgosvK90KmTOZfSB0PlAaqm
VCJjUE2pRM82pXA0LGN8TOaWqghT4sppboktXDqPRkY575PuhbFSCltcmRAqLcYoTXLFmDhQid3V
lEplWKoo9aR+lft7veNGJ/YUOb3Xq6JNkDG793rcQc8/t+Rt8LokkXQ3AdGhF9nHLHzReXBqTIbM
o1FNqVTmlipKxRi0foqs5pZqaGMMAmg6D1A+dNF3cRrNk9W7fEgQXZeSGKWzKsbBazkQGbxqSiUy
eNWUSvTFVNu5paMGL/4UOc0tVdEmyJjd3BJ30POf2ed7KU3RQsVO7/ZvGkW0QxSqDHl0IZtgJZXN
hypKpbL5UEWpRM87pXBcLGN8TOaWqghT4srq3D6ucAlt6eBzUUVbMaihCFumv6XOKOFscYMzxvU+
UNnSoaJUKls6VJR6Ur/K/b3eUaMTf4qc3utV0SbImN17Pe6gZ380GnK0UvZJ5M6ECcj01JjK9EsH
WzprSjZmpLIva02pRMagmlIxBq2fIqcxqIo2xiCApvMAVaTUXiYpjPJGWKmCyCZFYXVWUhfpbEdl
P6KaUokMXjWlEn0x1XZu6ajBiz9FTnNLVbQJMmY3t8Qd9OwPULrrR+/89AjZSyvsGEeRe1XEqAaj
ZVBKjmRe4lWUSuUlXkWpRM9ApXCELGN8TOaWqghT4sppboktXELnLQU12lKCKGPMwlqtRbbTYN2Z
wfY5OusLlePNa0qlEnmoKPWkfpX7e72jRif+FFmdt1RDmyBjfuctMQc9+6ORk1002RUhh9EJ2+tB
dHkMwunO6JBSryKV85ZqSiUyBtWUijFo/RQ5jUFVtDEGATShPfFKGb3ulSi2C8Lq5EX22Qijoja6
mC4VS2VPvIpSqeyJV1Eq0RdTbeeWjhq8+FNktSdeDW2CjPnticcc9CkPUN+K/LaM5fa23Iq/39z+
Um6/qL22AX+8vCqnNVxNFbVX97sMdj/8mG+vy93dh7/dnfKx2/Lrze39wQ+fgOA91A6XeUq39hLr
g5QP17JUFdUamrv1jhLwojT6m0+fbq7/+Pn+8uqu2VV/8yXvubrp4y3sPLu9lrjMl4axtg156Bub
X+6Din4u0wg3/XZxeT3efLj73LWW7UtfeJa23b+pXv724Uv55fb3m5nH6/n15uqy/+cPn6/v8ljE
59ur827BTZnMWWRz4M72sXLKzEg+EnACh77qGaTrm73bpY/lWgw3f7/++Xb6OPquWlLoy97PEH3b
zCDR1z2Ddpc/FUHhYC/SaNCbnQAN3dd7yaG/ekYJXdXrVNBLHccLHdQ7oKFvegXQb/ee/e3N3R1u
rI7ihP7rvQTRo82KEX3coYdsdGuvokFPdgI0dF7vJYf+6vlT9f3t5dekHXqsA3DQZ52EDb3W+9mh
3zrMCY+U78SFvm0mkOjtWtDcbv+30X4M/dG3DkK/coAK+gf0D+gf0D+gf0D/cLB/gPFh/NN1AEdj
xIfxMeKjf6DYP5y+lRlsztfmp7f627JdYC8k3stCSQGicofwZNOuw04hxY/uzmcMIa6+Y+K1BpQ0
MHRc8/JER9YQ6uo7NuILPmkRQtf1ToDoq+akuPrOCf0Sm0WevMyE3mhWgBvpiHjkbgnjQmc1J010
X82Qbul9FvowLss32b5cQU81J8X1v5OivkiTGiN0UO9GiC5qXo7b6qTwZLiuhZmMDYjnxOXJrqWz
23anhc7nkEXQiVQSQmeAzgCdAToDdAar7wzgcrgcLseQjyEfnQE6g5V1BrMusISnN+fpV4eK8554
vcRR16edNdv8iGEGx3BTOTj5vGd0H/H1zQ4ZfieBWU5MP+5Ybv5nHeNM9hMx4NBnHPr8LuHg2Gcc
+4z+Cgc/0zr4eWP9GY5+5nH081r7Oxz+3HwTgI31aDj+mcrxz2vts9BdNdobYGM9FTqp8x4Bve7+
CSd2nWXLgE32YTili/Ix0Bt4V4aurc1OAtt9G4YO7KxHQa/2fRcOg15ig4GtvfPCcdCEjoPeRN+F
x8tz7juw5f4ND5sMjoRm3gfiCDj0STgdqvEhcOgj0Eegj0AfgT4Ch0PD+jgcGo7GqA/rY9THqI8D
omF0HBCNA6I3dUD0rHcJOCIaR0TjiGh0VQwXjeKQaJzAg0OicUg0y/WhOCYax0TjmGicxYpOCQdF
46BoHBS9kYOiN99d4QgwHBWNo6L5HRWNN1c4LBqHReOwaMKHRW/5/RSOi8Zx0TguejXHRaMrw9Mi
DozGGVFnOjBuA90PuhEcGYfuAN0BugN0B+gOcGg0XA6XY9DHoI/uAN0Bjo2Gp+HpihNN7/qP5VO5
O9Op0fvf3vjQaNoHMzc87Xef8fJnLld/+3H976d8eXV/86f8f+UP/c0nIoPC06II0Rryff7Tf/mf
/0qE02M5hAiNuS/3l5/Kl8a7uf2ZCKlvyyJELHc3n+//1F3l61+IwNqriBynz9eX02h+TYrUQ02E
WHVXN92fhr+Nv9yN9UNyY1ZPalqW1be/6f5G7LrOz7dX4u83t788POEvf9f2ch24f5v73ullzu+4
h3vXfeQJ1RyhpLnb8EghL8xkuj38dHP9x5/L9MQ3fZG4vB5vPtx97ppROPCF77vu6Re0sDw9C1Zd
6FujypfXCU/ug78zf74v/9i9E5h+3+X1d+a/dvmuePud/m/9p//3/+v/R/rc6//nuv/nf73s9P/t
zjsovrt8NAGaAE2AJkAToAkWboIDv+rcT1GUH59Ov109480/2Y+0vkel8Xx4RBntnkvqa1joCXGm
l2UYNtAIaAQ0AhoBjYBGOFMj/O/P088f/1d0eRBfbpyWeZA48OXveoiofRpY5G3ueTM0BxC3j9Cc
+uVvCKXP/ccihjLmz1fTv91cD5c7v+Wrs8j2cDXrmUvcf8r5fH95ddfoaXvdj7zHaGep59/5a/pG
Jmct4tQn8tkKquk/Fpk0fvl7abB41PBvVU23Uvc3v5TrH/TokrXOihA6JawrWaQUg7C2N6mX0epg
v58quC/X9z/IDy7oKHUIQbuUXDTf3+efpx9LrYP30U3/dfJapuS/L//4dbp7uvvhPz5+/i/fTbSm
GzL5Y+mmv2up/O4n8U9S/mkXfpb/43/9x/eXP1/f3Jblkty8uEBD0NBKNTT9we0/7+7zffm+HhuB
Nj6pbtI+HlQ3ejUakaIehFV9FtGMo0g6Tz9QcRxL3terU1YpmZz2ynn1/fSMXH748fZyJ0kl9yUZ
voj0T9b8SeoHSTK3Nn1UUBo9pRlpobSzjSs1JCmOKzV1k3Z7lipn0zlhuzD9zSYpYuyN6Psgg9Lj
4JTcl3Ca7oJ8MtaqqJXyD/dByVklpfFeSqmjiV/V+u+fr5+rNZIfQkhRgX6gnxXq51lfWgON4hhQ
UzdpD6c+qKEvUsgw1W5dH0T0XSe6IQ4uee9NP+6pVRoTzSQ57Uwy2kd92o0MU2tzgAW1UVTbKU8Y
UNt840sNS4rjS03dpB2v8vR0FHQvRi+nh6RuTCKNuRdF92OXo0u6378bijFEvfuEncAlqx7uhoxM
yUgXvNFRGmks9/dUtLBAQVDQKhX0rD+toUZxHKipm7SLYxq6bvomEQfZCWum35j6XMT0QzVOj7iq
H8OeXJVK0QQro/TT7UyydlPvljnAgtrWMmcGtc03vtSwpDi+1NRN2vHWjyaqOIiuL2kaIF0Sneqi
yGbIYydLNyq3J2Jrp2dkq2SwLjn39XbIGR+TjyoEHaQ0jvsLK1JUoB/oZ4X6edaX1kCjOAbU1E3a
w8aWsdeynwaxMApbnBZpcFnYsUsuD9O1yLSv1ui91y5Eq5Sb/trUy2UGrKC1lUybQWuzjS01KCmO
LTV1k/b7GH0OVg8iJyWFtYOfBkc/PS+NMndDKqO2ZU/Dyezes04ajsr5oB9THVJpE4xRPqRdPCB5
w/3lATEu0BA0tFINPetTa7BRHAtq6ibt46A67a0LwivXCavzKHIoQchB97bvZcnB7Cf8YjTaTXo0
yhoZ/aZeLjNgBa1BaxvX2rM+ugYlxbGlpm7aK7C6oSSTrPBJO2GdyaILfS+KtNOl9Tnsgn1790LR
+qCMDTqYqJN+jHV4b5XWNoZopI6a/YtoWligICholQp6vsatghrJtXkVddOej0zKSDl2YjRmGsi8
nJ6P5KhF7kpQPtvsY3xyLyODCVZJY/x0bdt6v8yAFbQGrW1ca8/nmytQkpwnr6ib9txlzKO2U8Ux
+EFYk7KY7na86FMMuyRxdN3++9bpccpZr1OUzrjpjsg93gvZqELycnqC9kpKyX5fIGJcoCFoaKUa
ej4/XIGN5Lx2Rd205yRLUTrJLMqoemH1EEVnixejSr2d7l1G9+SxeHr2nW5lpmcqG0J0zptNvWDm
AAtqg9o2r7bnc84VLEnOlVfUTdrxfrRdmR5WxZicFtaNTkQng/AmlOJi501R+yI2cRKxC1qFaNPD
zdBu7apyLibvd8kPzf0dAiEm0A60o1f+nqkGGcW+v6Zu2js3pKDUMGShum56OMr99JiU8nQppiu+
eK1T6vY3sFEypelRd7pG410MJm3qzTILWtAb9Aa9vbA/RwVMkvuKVNRNew/SPJhuLFaYXk5lW+1E
Z1QQSY9pNL4rNvk9FWsdTZj+8kZFJWV4DI8bZ7T3012RkjZGrbm/O6CFBQqCglapoOf7wVZQI7mP
bUXdpF3sUj/IwZtd4GsUtk9RJGN6kUebrMzTvUvcl2tIKk3/Z00Mu2fhtKkXywxYQWvQ2sa19qyP
rkFJcWypqZt21iVn2Y2pCKv87gCpMYquG3vRTcXLlKUtqt9/Unbaa+/89FfYhTjiw62Qmn4qnVc2
KBmUc+wj9cS4QEPQ0Eo19Dx3VIGNZF6qom7aPh47p/s0TM9Iu8XrUSWRozViDEHqvpgw9vv5PieN
9dPDr5cqBSO3dVwGA1bQGrS2ca0976MrUJIcWyrqpu137/rkTBJajlbYrvci5pTEbkeUsVhdit0/
8MWrKKe7oOleyFjtzNc3rn5S9fRIpXQI090S/0Q9JSrQD/SzQv0870sroJEcAyrqpp1hsXEou8PK
c8hZ2Dx4kaQNQqe8S/LZ0g37qYzovQnGToOdcUr7bR1cwIAVtAatbVxrzzNHFShJZqUq6qZ9+uYg
e52lE2OM0+CojBadmwZH4zvfdSHGp3Nxu61TgnR+t5go6q/7bBppk0rTh6WbHqCNYn+oKyUq0A/0
s0L9PD/XtAIayfNYK+om7WGdJwJSWTFOj7fTBVgnkpdmt6Awq5ycU08O+5ruY5LZbaYs4+6xym/q
nTIDVtAatLZxrT3ro2tQUhxbauqmfX+YSt/vosOj68bdpotKZNcZ0amSQonT1ZXy5E4o6Jistyru
lhSFx9PCvNROO+lSVN5Z9kF6UlSgH+hnhfp5fp9eAY3k80VF3aQ93JdSbHBRjJ30wubsRe60F6r4
6YFX6W5Uw5M8n5UhejMNe874JMOmXipzgAW1QW2bV9uzfrqGJcXxpaZu0o6PdghBdk4MgyvCjj6J
mPoook8uOB2VVftnvEjtZVJRO5dskrtJuYf7IR2N9V4pPX3Q6+gM9xcI1MBARVDRalX0rF+t4UZx
PKipm/Y75ijDVHAnbDBS2E4G0dloRPL92OXQpf7JTU3QMngdQlAyukme23rHTJ8VtAatbVxrz+cF
KlCSnM+oqJv22ZspGG9VJ0zok7BaFZHHkkRW0dtxDH0/7m/APN0DSR/MJF9lU1L24VYoSZtisjZI
Y6KNlv0pm5SoQD/Qzwr18/xc0wpoJM9jraibdkZe6zHlXIQ2vZouIBWRnOtEP0x3KykOLti8n8uI
JkprXTLJWS3dtjLy9FlBa9DaxrX2fF1DBUqS6zEq6qaddykmDp0NwusyCjtqKbrokhhj7lUYp+ck
Y/f38t/tmeJdcn66TPkYHJ8ecJ130gW52/zGr+CIA1pYoCAoaJUKep49qqBGMjNVUTdpF5fk5FiG
UchgtLC9yiLnbhDBG9eNQ+61dk/OjNRxdyi9Ddq76W/bOoCZAyyoDWrbvNqe9dM1LCmOLzV10z7h
IOgifSwiDMYL23VBpGySsMYX2/fjaKzc38o/Rmvl9KRsjZvui4x5uCGyZroh0kqnNF25MY79CQek
sEBBUNAqFfT8rIkKaiTPyKiom/b+cCEnl7sslOp7YcOwO+RDFuGzd50eZO7k/h42wQSXpHPeWyej
8pt6v8yAFbQGrW1ca8/3/6tASXLfwoq6Sfvdjp0JQxyELmW3sMRE0cXBiy4l76Ltky5P5uOc0UnL
lFywMn595zo9aTmtw/QzpZ1lvzUQJShQD9SzOvU860drmFHs/2vqJu3gcYjBWReE7DsrbO+MiHqU
whkn9ah815f9hUPeOBWl9dHL6VN2WycvM2AFrUFrG9fasz66BiXFsaWmbtJ+72wsvc5FlGDz9HCk
i4heK6HG3RLTwYfe7U/CGS2tm+6G/HQTpIN1X7fYVM7GEJO3cXeQfQjc3xsQ4wINQUMr1dCzPrUG
G8WxoKZu2u+VjZsKjlEY0xthh+kq4qQ9oUIoZVQ5yG5/t2WbbArSKim1VWFrhxZwgAW1QW2bV9vz
+YAKliTnMSrqpp100YPqx+SF96UIK0ctuuCdGKd7nS6r6Q/t/vPy7rWqkt45E+wkYf2YHdfBB+3i
7mhJ9ds5xczfIxDjAg1BQyvV0PPcUQU2knmpirpp3/2pHAc7DWFD7qSwefewFMcsik5yKLHrxqD2
N0ObnoenS9PTTU1Mu3Pqt3UAMwNYUBvUtnm1Pb9nr2BJ8lmjom4abfDCb/7y22qp/nh5Vd5H87UK
Lv7w0811efuq+ptPn26u//j5/vLq7sPf7t74r39vvd0PP+bb63J36sduy683t/cHP3wCrP2L+rnc
i50yxOX1ePPh7nM395ct85Gv7f9NW73TAm/L/usXH26/M9exaAUHlNW8iJo+YG6F1/Y9Z73+V24l
hiGEIcYgZMle2D4Puy3RpfDJxKJKr33eT18nHcyXFTw6qeS+Tn8Z6ZULzqoQVDz6dBUy91UUYEAh
UAgbhTy7K63hQ/FuuqZugs7Ug0vDIErcHWfRlSi6SVPCTKIancr9qPp9McbotJmeAZWPLqjKE03M
aTNOhBxLFxIUdW5FTcVDUYuNDW9zozk2vF03OSePcfCmi8M0oHkrrC1FdMUUobNJUo22M2Z/B3oV
QzRpul2JKVilY3w8ONHpEOT0R8Zaf8LB7HSS4DR4UPZnDSKSCe+Kusn5sx9UkLYksTs7aLrh3B0P
MBoreqN6b0K2ut/Xo94tSvDTM0S00nib3GmjCDfXkqZE2cs14Eie0FdRNzkvZ+2SHIY8lbrrgEYj
RTSDEr3LWdqhG+XTZIe2RsokXfBSJ/24D86k3OlOUYXpD620J2TIv1T119333N5c/XB9I+7uaeVf
CFOCpqCpFWvqhXTS2+Bopqrerpucl4vXyRQ9ihx3seCilEjJWrHbyMZoV4Is9snRwy4aa7SV3kx1
B9P0jQF1i3OEBwVCgVDgqzvKVvAkuRNuRd3knG87ZdRuvXvvghQ27op2xQptvOxUb5wd98Wr3XR/
5KQzMsRko388cMy76OLuwTokLa09/jAA4h6njQmqgqpWrarnO0JVkCO5k1VF3eTcbOxuZisk0Ye8
W6oSgoi2jKL3Q+hj79XQySc3ONrqaJTdbfKvYnBtX7NSNzlLetAgNAgNHlhdUQGU5KqQirpJZLDF
9N/35SEXfb7VIN9W0WZFyElLLd61KOTEhShkl3cQWBHyrVTOsxrjtCoarMiYEce7F8kcVctKV4jM
w+C19JTvumR8EsPorLBD8iLn6IXqrez7oPsc9h9kzXRrYXbZdzdVrrV9TL5bpaxKWuvglDaW7zIA
IjyIaeV5MqsCE8lEWUXdJH3q4jg6Fa3w4+4VtVRZpE4VUaR0Ue9eUhu9n3I0MXiVjLRaR+lqD9Pg
viSANCXqnq6BR9HTNXWT9HSUcbC9NkL6Tgmb1Shi0Ul0JvRSRye7fv/Z3qtpINkFXPyk1vS4bZBy
JgUlk9VhN9ZYwzYSSgMHdZfWUKLo0pq6Sbo0mS5pW6RQNklhUzIixeCEUzJ0ahx9MPvHldjdSYfS
BRuCTzbIjeS5SVOi7ukaeCRPqK+om6SnuxJHVcooTLRTZ+R3YfSYwtQ32Vii7cZBPnmrnpSzu6c8
PV2jc1o9PuVNI0xMKcXopVGK71MvER7UfVqDieTu6BV1k/SpGkrpp4FCpKSmwvsuimRSL3QZRj9q
O8gnb2O8TtNthksumKSmR7ttPPRShkTd0TXsKDq6pm6a75uz6Xs3KJGU7oW1eRCdG6Rw1mqtO+sH
u3+fmKROLk19lVbeqvj4enX6r6e+S0kftDdBBr6Ll0ngIP+2uYISybfNFXXTdKl1vZPZTf2JtMK6
Lk8P650RfeyHzpkSSoz7T3NhEpa1ysjpH6zXZhvPvKQpkfd0BTySnq6om6SnbRmtKkmJcRizsNkV
kbKPQstcoutDN4bxyYmJMvqYpJVaWe3Sw1Cjg9O7CZPdAe27AzH80cta/jPf/vOH/4NOkpsUFigH
ylmFcp7n5ytokcz9V9RN0rV9r0bX205kb3cD1RBE7KMSRVuVB+tTCf7JEhWrTQxaexuST6rt2kZi
VmbAChqDxjamsed7CFUgJLn3UUXdNBMquuhQrBHJTs859ssLR99poW20oeR+MGX/Fse66FVwzqU4
3eg4b37fF1lpHYOSzjhnojt6nQkxLxPjAu1AOyvRzvPcUAUuknmnirpJ+jaPXcr97vihPujpgae3
IoZsRdIlD9P4lfzwJEObrJHGhTT9ibLRtH2rSc3MHGBBZVDZ5lT2fH+5CoYk98WrqJtmbjY52U0P
r2ISoBfTqGdE530Q2qlorPY6mv37HGekMlZ+OWY7Rf+4LXe0u3/zZnoOTiEqyzalQwMHlAKlrCO5
VUOJZGa6om6az/PZdjK4IKw0o7A+StFJN4rejoObRPT/t/euPa4j15bgX6kv9twLNDMlknp1o1Cw
XW7YQPnYOOXbdwaDQYIiQxLrUKRMUicz/euH1PtBSRHBiB07qD3TvnXypVjcsdbaO54MJ+7khJbj
nl89UH888n2verDJc+zFxBwkYpWt7yUiVrWYh+GIHcr5Iw7cOE+qV8hmfjh13DGr0E+iqTNhvb4T
9PxwMhn5vV5wvi3CHY6Ho/pm3YE/7u+3RYwG3nDiVg/TG/RG1Z9Zu0kQRzjQnz3niBLKs+ccuFGq
dDQLw8ib9JzIG3iOP/Mre5kEodObsfGwcpjJ4Ox1p77X7/sjr1+xa+KPn+VQK+YgYVc0T+wwKpoH
N5rbrJw0M37R3hkE3lv2xC+wa39pHvfNfhLRkr8MEP8te6ovujsjjNAtd20v+pNoWc+1dvIhUHnR
Hz+Kjt6spyAAt44GzYa93tDznVFUJRCfDVxnGg3Gjjfrh5PQd6eDs6NBg+0c7civBnxjv7c/Tz8Y
DSf9Yd/t992ROxoO7L1VD0U4iCZEE8tocn38jCNEKI/NceDGp8+BFwVsOJ04w6Ae3ocjz5l4s6FT
wQoG4TCKmHe2Z9t1B73xsO/7vfFkMhh7T3LrIuYoEansXPMgUknPSXJEDuVcKgdufGoeDbzQZ37g
zMLhwPHHk4EzYeHUiTzfZbOe6/bOLr6rfr037A37/bE/8ob+aFez9Eb9oTfqV8z1vKqUEd/NjWfO
FEc8iChEFOuIcj0ZzREjlJPoHLgRjsa9AfP9cd/x+yxy/FFv5ARuMKiaG7Cgwh/6s9nZCc2B35+M
hj1vMnbH49Gz3HqDOUpEKvOkkqn2iVTSEysckUM5IcSBG8fChrN/rZ3ZRdYjhFaLrMpXS+FeSPZ0
i6wq1hmPtIFeahVtWcM6s+TDK15k5UTR3UXWtgG49W5U1hvNJpP6dS/DseO7vaEznfmRE0XM9Ubh
YBRMTqcIR73eZDIeTIaTycj1hvs3hgwmvVE1bvTrVwF5Q/H7t/C8KhZFOIgmRBPLaHL9rl2OEKF8
RzAHbnz6DCaTmT8ZTJ0w6gUVan/sjKNo4LCADSYD5g6n49PTLW5/0vN6o8GwGvaNJ4P+6DkWWVFH
iUhFpOo0qa6vZeCIHMrrJDhw41NzbzTxR4Nw4njTse/4s6B+gU0wdcb90B3XLxGbTs94OvSH/mA4
mvR73sT3Bv7+rt2xN5qMK7Z5w5Hrj1xr5+CRxIOIQkSxjihXlsgTI4xWzoMbn0JH41l/OGL1RH/U
c/yoN3GmgyFzRn0280bBcMjY9GxfV323STXyHFe87E1Gz3LyEHOUiFREqk6T6no/C0fkUO7D4cCN
T83+OJrOhu7UmYzC+lD9pEpss6gasnhR1ItGQz/qn153WOW6sdsfDEaeP5p4+wnK3rhfbwce9nv1
dYhjz94JWxzhIJoQTWyftOEJEcp30HDgxqfPkLHe2B1FjjfZjE+80Bn7Q8/pjUbhLJzM3N74dIPv
uBq0eO5oUq809Uf98XPMwGIOElGKKPVMc/o8gUP5ehkO3Pi0HEWzcOD2e07kDqL6FdYjZzIO/Gps
Eg78gTdgo3H/9LD3uN/3KnoORhWlhr39+Y/hyK8qFnfSd4cjb+SOrR2c4wgH0YRoYvtkDU+IMNo4
D26EU69BOOr3B6MKZjBx/IHvO5P+YOa4kRdO/Ul/Mp6eVhte9QveYOL3vWqA2e+5zzL1ijlKRCoi
1ZPN53NEDuV8Pgdu8wcVkixlm1MTRs5LnbWu7z5KJDcqnj2t5iNhpzD2H6PlNk1UB6n4I9zIzstA
6e/jO5+UpcV6yRy2XJWfZtR5hQDpjbH23rF6FWFDF52K4eDjjUnOdoytljt6G06aV4W5XMLb/gNN
RHFRrvMpi4wo8rx1yiBqVXIeXTM6EcDwgCssz7PcCEuPLRND1TL0GFkz7ORs/wE/FiyIWF4Y4eZp
28ROHRw5jTD0/RfcbT9gSRwlRti5bxeMmVWDPH/1lb3ncRmn8x92SH9YBeXi9IP+m03/+vMv/wjy
guV115XZ6U+rj6xacl+TeLr/t+36uYAo+oTGRH7W4+IK2zMUWtkK2m3habKtN7NCU/uPvCWNS6fX
6xuboL4C0PU56qsH1jdNjakAkHjshx/mmmSsS9WiPnW4Jm2dGwIfUTzT3uo9m7d6tASobcpULMS6
ReopSSdFma/Dcm3oStPz1kFuMwXRN6bq4zzG0MMUgdZvcGW5TsrYmSfZNEgq9eaJs6oG1dXQG5Sx
91EQc1Uy936soRjcAgUXh+I0XC+nLC2P/zLI6Fto8MQrXOd5jW/3X4OxakIiG6dbcReLV7HK0oId
/uGEQRqypDZfFiyBIvUYA22ZsGt4+rhHoQpgVUjajgda4riJoczj8Fuy2em7LH70er8Pqy4vf+z3
elr2HuPHka1eyo8SblC4a9AIBy4/b7PJ05BnH9rW7NVy3mnBvKDJ2Yrbvam/ZtbSdrscwYeAxwu3
Luj+PmJJ8KnNDe8b1B00FJ3bect0dWEFMrOMuvwcA0cTHmOgxS7lGcLY8YSWSLjZY3b4fQ2iO7OU
z3QIjaNjDZR3siCU17iCQHh1Y1a1eIdg7TcGPluCMy8ODMm1zVDj0WSQib9UmbR0NIZg6qLNnJoS
6RAACAAPcxrkuavbbdMATnV+gz97JYngIUvgTrfcalmcndYdVMG3gIv9sAoWocse9hA+WaOqYflT
JqoQqHI4uXMuV5+yP4BgyOROm6c8rFyep+E1RlRuELx0cc2y1aU5mO5owzU4CWPkWI88iIf6qG8h
jEOjo7orCJRUVAvnKsSmmCsGhJc6OYvinIWlWQKfoSAOa+LwWZQN05gfCweH6hWv4/1ITt8YmRuB
0JkYXUxqDDf8GrAMkJsVVhSUQYUjS+HWJw5N0sPTw9PDAz78ow91sWQyuugCKHW4hoszcTjdlTQ9
PD08PbyaTOZhyWQeZTKYTObhymTeM0uaHp4enh5eTSbzsWQynzIZTCbzcWUy/5klTQ9PD08PryaT
DbBksgFlMphMNsCVyQbPLGl6eHp4eniRTGb6AlQuGJTFFGUxbZefyuQwlXd6Nn6kuUtQheBgCpnY
Pah8n5mzhH0P0vLwD/WdoLXfZG9kFSKBxPZx/ljDoj1BmmZFGs9mr/EymOu/9eK6NUoc8onjOpr6
84Ngmw19f3JAcPMZq8+fys8V+/Hj9aPl5yiBoeX2OjWXpD6MIDbsN9R/hwF6CP+oeVOU33z1Oo9n
GKJvNgirdK6OR8Yf5X9Nk2BhuRoP5DSjyaaIokCim1y78YKz+xqsJmtql6qz9tVZU1zh6jTh1u9K
YvcdZxbnRfkSFDF3J/2h+GvR3qGu2zcZhfVqxfIwKNiDSHB9WBI8jCjX5/xrnZUsUt83XI2nmfOh
vmmYP+Em33m36zYBgf42DeVAYdNADjQ06Q7bjnHqT06YQa+8xgEXlWJTmYKVMCfNUeXSvnI5CSdc
wcLb6F3u/1ZwzOfwfsIH/LzOaevS02KbD8E2CNU5fj2NmiaGczRtrmXu+TO1jZvRdck+ylcWLoPt
B/8+W5dhtmQ/rhR99G/Bd10ffUS9mdXg+fxOi/VmvM1J6X4/ocGlC1IDnPcs/8ZysFLupDkq5dqX
cifhhCvleBu9S/7dh2iqZB5q79C8iUdutEfDcWjEZDg4R0PEE5wjJjTB+V+fwaeaD1bzKR9WrbVf
gn+1b7n9MT00ZRNOQGZb/zDc/OuHBqdY5E4ZL9nrNCjiUGP1dt0OlW3yddR1NPXc7ybYTkNPSwwL
/nvzJ4Ust0BGBpCV+s3H03d5omlGt7Cw3Z/qerobjUH1HW5S/lbw99bJ2x/0Z52LxsBSD9K3sFhw
Q7wVb2BprZ4LXmp5g4qitsRemqKoUZkMItLkmUksszQrszQO63dVh98AbKmpRboXuT0FmuKqt0AW
bvGMB/W33sI8K4q3WR4s2VtRBnkJQMA7DdPwrA0f7gQWwgNlmz8jx+lWofft5wBQ8lareh+5+q3X
aZ69V+VVsf1HvbWpXDCn+pPXRVyUWf7plHnwvfqFIHnV+7YsaTiUPFpoRzbomjKLFjjS9HKw8f3w
Ggk7wudiC59rTfj+ka1+LYOS/fm73uP/CoCR/wL673X4kTixIDA58u1/5S3M0nqh7i2ti55tAZTl
8TxOMUmFEy3pB4SgnL2hdaRiArNC7uKqh+5B7EAPsNpIC0wBP0FEEyUgnnUScVS+xItLjmeLoFiE
VY/M2RvDVv42YiM1gKihMfaodCGOUI6Fq2xVvzwToT4akJE6QNTREHlU2hDFJ8e/dVqwEnHRehMf
qm1buPZRqWThzfij0oocSknHrv5TfZNFzrr6k81LmZlTPWf1a0EZZ2n9zOsKQL3glDtZ6uw/Yhro
3S8A/yCUqWAyVeuOwpXY9D6OPjHsgrOqHn07rZGlb0kWRBtMP9Xf+XGWZRapm++BqOM54jQN8m51
fPVA1PGkeOp4UvzTdHwR5lmSnH7L0X7kDfYhqGLHVOje7Sok+xQ0PgScAGZ5MF+ytHS2P6sb2CxJ
Ovg2Qeh6PFI+WrnwdJ9dI3gdD6m/Ngrm1afE5eKA1bbZuvsPQt3PBzUNvsfz7T+7lCTuPRZtqUOb
HO51m/VJQfrhtHvoNAnSb31LE8AJeOpebohFsGRRFnbI50+fiCzeHi887TeLpwFknohHJ/vPrb4V
bH2l+uh1XV0WZs9c8gAjHWrgK0/gDRZLreEpIJ+DVxftziCgCK6LN7iu5cFFG1qX5lXN+LmL289d
EFXsTPOnVVxfwprH4beE/UfU/0+MQrmF1ebw47UlnY4PElwPa2g9cnwzju/hdnwPRBV4K3hPZwUP
FFwXb3A1+rnngNTwPtbg+uToJo3TNzfF2RqYAvLhdXRfp6ODBHeANbQDshwzmh7gLiIH+lWxyNkM
pywOyGwNba83xGo4Q1p3MmM4Q9yGMyTD0WU4QwjDGWE1nBFVOGYMZ4TbcEZkOLoMZwRhOGOshjOm
CseM4YxxG86YDEeX4YwhDGeC1XAmZDgmdT3BOm08IcPRZTgAoe31e0gNZweMDMeM4ezCj89weIC1
Jd/mMFHT/i0X316zO1htDf+T+j1EaHt9rOuv/T5NoZkxVNxnRfp9MhxdhgOxEaqPdZdZnw4zGDIc
3IcZ+i4VmCYLTJf8XpffQxxl6GM9ytD3aELBpK16WCcUIHbb97FuB+/7pAqTqsC6HbwPsWO5j3XH
cp92LBuiHe4dy32AbbXhIk6it91vsOJtFeTV99/qp6jvlcGpGB7QpCZgNfF0ClKltYaumdBYjzHx
wX7GDnPt7DDXUIdBHJJ9BMGzs8s8U13mGuuyYj1dxqVV3XUCmQoTHIXJSZfYVZbwAtdKZctKkjPQ
z9ZVro1d5RrpKoOFyA7ANp//ZFlv7VCDdxdAEcKWq/LzzfwbKwQxUpkBXGY09AHSukIUqVp2vsXV
v5bMBiGdQu1AP/wWfA+KMI9XpbPOE+dfa5Z/Ht8bE2bLVeUY1S/i7Boh9OR+wO4n1DtIfVHdMyjm
es7KdZ4634NkzZwNFaq/skKlt5GTQs0q9HbP2KFOSfxt+X185cbbOq3f7/sWBWXwViHCqccHeGkn
DrAKH/QHUu21Qa2PwVjnIB8i7nwPFZsXoBt+q2M7yOSMSJzmsmPQ7V5sCVkrle2xyGvQ3euqZ32R
keGwb51g/yvM2SwpOLN1Gm42MmxXFHB2Cz90Gk8D2z5/1yAt6hU9gCKKF+tV/aiv0Xq5/EQtxmuk
ne+cWzCKPLTSN/e4yTRxmea+X+x0TC70ik2oYOXODNCL8Q7k5+grSm3YeuYGBhtzGuUzfPnM3lwG
7o2HYwVVdrDCIq8Ad7+PKH9xEcFA4qpyphNMs3XpHO/PsSR/NUGnNIYijTV1jVXZTPgBeCiesyBy
liyKg9dVMGf1dLYTL6t/mVPdfUikJg1quh9ygyppAUyWat/jiGW42H+EROwHYv8x5MjYzwmMm2ol
+6irvt2/6o8xucvlPiRivy723wy5afbLAduACrPlMktfT/6u/Cj1dEljU4Ye+8HHF1WxmSROmW3O
AsRRvVfCnN5voqENaxqkfjPaBlUuh0mSWy4qprvEdHBuueZ2XcqhkeSWh4rpHpVvgKzyEHq6p43p
Piqm+8R0QKb7CJnua2P6ABXT6ZpfSKYPEDJ9oI3pQ1RMHxLTAZk+RMj0oTamj1AxfURMB2T6CCHT
R2qYvj0YVX/n7FCWObLfA0R818D3ewE3SHlpWLIk22+sqo8kIuP/NTQLgzpFG9Op6pBe95fu4AZo
gxtYGlyjaxD3AFESBEuCLs4k6EJYios3Cbo6kiBMUNEmQVdjEnRhkqCLNgm6gaXBNbo8eQ8QJUGw
JOjhTIIehKV4eJOgpyMJwgQVbRL0NCZBDyYJemiToBdYGlyjOxfuAaINacA5x+B7jKUBtReujzcJ
+jqSIExQ0SZBX2MS9DX7tIbk5/f8H1ojsjGYA2xJj/YxAWeXAc6R3wDCnwd4k95AR9KDCSrapDfQ
mPQGMCO/AdqR3yCwNLhTVn0I2/7EyVJnERdlln860yD8hivYD5FS2gTNUg/7A80gsh1Sab4GBUOm
oD0i+2N7p1VsVQ0H1s71x/FaeiebGb8GvhViyiqGXPpmjyAbranBTVkGcYw5Wseede5gfq5+ci3s
J9dEP+kcdZ609x6Xizh1ThHh6iEOrFQjANUIHH2BrDpoi5jqAozRvd/uzjl/6r2MJoPJ0J+MJ2PP
7ff6viWmdvsBut93rk3ZR31lYKpX6jslF3HETucsqo99D3Jk5cAjoFQLgObXR92BZhK6FVCqAtCF
9k6j2OYCHkO1vjPybLkq8Z3qv8BFu1lhc8N59PGkAgFc7ZnnoNWEBvOBjey2+v79Kl6xH8s8Dr8l
7D8i9z/RbM58DFVL7B2I6LtIWU0X6Zp0ehep07vk9JqcHiKyHtK4euQ1Br3GQ+o1HnmNJq/RGNnt
9/CNYC9wkdeAes1F9NF4jQiu9sw7WY7qeUPfHbieN+x7o34foUxug7U3/i5WT1K//gUaWaxxpVvY
THq9i9TrXQhFHO3T7w2Gg15vPPDG/X71Tx+hTu6gtbUHntPtISLrIY0rXTdm0u09pG4PMdb1jv7p
Vr7pj/qjoe/1KugDF6FO7qC1tQdcHW7fZsnqCpmtkfWRuj3dq2XS7X2kbu9DKOLon3WFPPYm3rA3
HveH/QlCmdwGa2v8n7Oyh4jsEGlc6WVhZtx0iPEkkgi69sw7sc9hf9wb9SsHHVT/vz9GKJPbYO2N
v3uyDNF3B72JP/An7sDrY4z/TbBa4n+7u/V2yghpmqA37Zm04xHSIcEIwKZGRykO3H5VYY9GQ7c/
8gc9hGniDlh7439w3qE3dHvDfr+qmD1v7I8wxv8mWC3xv93dejtljDRNjGnmyGCaGCNNE2MAmxo7
WHfFjdXvNgSN7ARpXCdUkhr0mglSr5lAKAKt10w0eo1cZHfne1/rJvZnfeO0ZPksCBnoGhgfEvKT
9orlizTc3KcCPBJ8GqBhNr0yAorZA2TMHmhh9hANs2n1CpZPQ7CqTwESCT6N0DB7RDMpoMweoWH2
SAuzx2iYTXOEsMweo2H2WAuzJ2iYTTNSUEyaIKuz9cyNQM4z8WLBHa/tru2fNlcYFespjsBdgFIU
wf1KZ9/1fPWBHGAM5EBPILfTPz9VcRwoDmS/h0W/OySUm4Aywi7eCKouHiQyfMKTmw5YcMcLX266
BqUoghpzU/XhA4yBHOgJpMbchEe/fcpNQLmgj2vc1O9r8VoXDbPplhQoZrvImO1qYHaYLadxunnz
xtvup2+Qt8HJo6PZXhje3esD82MRaXSKuOijVgrtPzLJQlx7kqQxKuLiALVSaD+TSaUMLFDKAEwp
Q9RKof1RJpUytEApQzCljFArhQ44m+fiCPU4Rce+rP2nT4PwGxJ5XEEiTejm21XIsaQMMWCtqPbW
R8j/N5q9MkW3NyyTVqKgpAnH0jL/3C73rfOk+PG0YQebOjjA2hR81TprE1vFvOXoKX2uvr8fY9Py
7+PoRxeXwV/j60LoO8zm5k7TQ2Dod8uLo6LCBCr7K3pfvJZyqc2rs4VaQFejn+OigaoR3qGr1AVw
Ka9/d23vUtT/uPy2a0kZz/UYlvXZE9b4XN2oNWWc1WrN7SMbFggC73Y3dlgzgv2sVyXuxYjGw6eH
K4hd64wn4PpVH+ph9Tx7W8bpukBW7JzBoqEz7GDhLPh4xgr8sNrQLs3egny+uVAPnyYuwZEywJVx
2QWo9CEETvlI9ByA7eNqkaexsRufcIwt0qUQCca+Ebcc/qfo2w7rSa7XaRiucxiOqE9oNE7pAUt6
IFk8W0KosKwSjBNYB1S02A04BD5EHdvWD25sbThXZm/rPManhRNcNGcFzruT6KOaruLFpWNuZ9t2
ByapeB7Esn57zqkpno7UnDisHHGIQe96Z3Z71CHW1zbPQHWh/8FmwhTS4qknnygLWGtL5PsAE01V
FNksTlmEb4R9Do2mnMAH2ecdgGqcLQBNxwj10HwHRtucz2JfBz7nmJuzO/UnFCtrLmH0T9Cr3a7D
hHsczRAcS392dQiulhlPPQr/N8szfAOMAypawAMfWxxij2pYwYdKRxVet9yBwcTjx7Cqx55zCPG4
E7UmCisHDiLAu92N3R4uiPQzjRSeZKSgjBRPP0gg77fMjsjt9br9al0sijIoGbIxwDkuWpyDGqSe
xx3bjnABdO2Z98byHKsqDthIGeDKOMQerTr4ECpgYZplq/pFEkGyCvJgiVYtTThpUhZeOU39gFdF
wmilmVo9SFJ9jbEQu4JGGQeWj1cdgGdFQwyaEgoiLMoa4ZFKTJAQbWkmDlINHXEXaA+hkoqMqMiG
Mq0dYGnKYizRqDYzRUKMRZmuaqzMg+/Vb7G36seHF0dieWfGHXCkCRhN3OkC8+KQBadgD9PvzxZ2
jt//Hw3faoap4/14fs//AdPDWdXJjQ25mK3QJSs0bYUuZit0DexKve8WLTzFteaFotpDYCNhnnBT
rHYeIFf2XezINmQBPjRRjzxCJ78wucJDtJ7tFvD4CYlGpPAW9DEm54fQfKu0+/hxnpYNz63Kx8SA
keBDHAO8enuM/Tk69YmU9LjLIaZnz85Z1K0Osc7VXiPtUu90l/+8vQnAdh/zYoRPixGmFyN8zIsR
fpcWI3xajPB1L0b4NNFoEw9sXIzwn3Exwu/MYoRPixHY+YV+McLv/GKEb+dihE+LESimn328ixF+
txYjfAsWI3xajICft/aRLEb4Fi9G+NgWI3xajNA83e0DL0b41ixG+AgWI3xajFA1UWZkMWKAeTFi
QIsR5mb6B6iOFstCtGcmfkCLEQPdixEDmmi0iQc2LkYMnnExYtCZxYgBLUZg5xf6xYhB5xcjBnYu
RgxoMQLF9PMA72LEoFuLEQMLFiMGtBgBP289QLIYMbB4MWKAbTFiQIsRmqe7B8CLEQNrFiMGCBYj
BrQYoWqizMhixDpNsiDCfXHdGUZamjA4+3/WE0iPS/Bj1Fuq7HGgX2PgQW9xbz17/XTRk4A55Sqh
ucgTzDXgbvXWk1VUt7sVQATveVyyt2BW/dIb/hLrBlp6KZDBYutGnyAtu2TQ6i1hrhHZWYrdfI5O
9OWzl2c3e9dIjrKmZOOB/tx96VpVb7hUbyDK3S7+jagymJWvBe/fS92/s0K0BZptxyL23MUt/Wid
6PEnXL6W7nA9kjuH8zDpXmBCthVUwcM8HwU6rEEFfAArKS8aP9bXHura8jbsJ+9IC+YhM1rwRTIm
yBQt+EKNB7IU09xjlto/75ilkHOOGS0Hg8xRZamZ+akstXKeMUuRzTEa7j/XmhqC3vSHpYZwLash
aD7xKeYT9fc2zSXSXCLNJdJcIs0l0lyiVR35W1b9+62oSq84S/etv/Z6WEqO+/hoL4Humv9+/LFU
+i1QqmOkg14zCqtt8xGfxUkVuq2PVr7Yxxr3S5xao+8Yi79rSfzdjsbfsyT+Xkfj71sSf78r8e/1
XOT5lva7mq1RXStqVBdSMehrVBegRnWpRjVYo7pUoxqtUVXEv4ZVVh970lyQJNn72yrPyqz8XLG3
8DNM6imtPFvPF2/7P3gp1lMjDtQesb71ZRx5tX2E9NU4mE72QsRJqPUiWLK3LI/ncfo2y6svsAis
GVgHIh5l4XrJKnc9NIQk4s3AaAQC5APN4Yc+zK8GmDj5Dt9aBeUireTuFKysfuj8a119Yv2DZZB/
wyIVAbSkH+0EFegNM+N5jZg3eMNsuczS12kSpDolctUMvkj8zvvfSp/d7/k/7D8Y39NKtlwXPmGW
7FrG56kN+MhFwX2poRcQFCPy+Noysh4qbBqL0zlOzVwhJNUYUc1VP6DTjRjCFrwsyrxqIp7FCPPM
JTakZ0BOS68TyBgkZosqL3sakx7lsDXzwSAyeR2+BUURz6v/TLN1+aZ7DKMUIuVXYCXf6ghEgpaC
qJSahpbppUBaHfpFUCzQhfoAio60wmn+EHR084uc0NoQrgKITwV7UJSiwQm3Dz2mpMwHqiXhUkTL
583AKCfAUu4QeIR5gRteG/LlbIZPEXtQlBvASbcPParcwAWqBeG2u5jQ6eAEFuUFOLqdhB1fVuAF
14J2+4VvdHo4A0aKgFPEWeDxaYIfXhvy1cjRKWIPiiolcNLtQ4+pUuID1YZwu00d+JRwCoxyAyDl
TgOPMDdww2tBvpzVF/mg08QJLFIEnCJOwo5PD7zgWtPOiVGdVrqDjgJsYYBPP5/iTHGmOFOc8cS5
+qwQY4SPuFCdd8d1elxDzXWMO8aKkBNdC+YVLMhDfFuxTmDRAAlODydhxycHXnDitNsmoLfDae1s
xdLtTcBYhPEAIU0yA5HxQT8gmHFug1AlL/FspX6IkeLeybjruW/rsj3UaUJRhqAqql3w0dRSkhAV
ERGvNWl3JQo0ZKABnX/3qhDU8T7FSHnATB447QPc6YAbqVp2Ivesc5QU/U5HX2v+WFV437CF+wQU
ZQioDHESdGwpgRdaS8I5OHWgwWd4A/qPv/+qN6L1tXyKGlEfn4PxTpRe1Bzm8apk0VuYxOG3/VUH
0bq+o+UNU/XOB5QMWrtB83UEGtNWAFcDWfGYOy/ULneGa09nuICdoafUv2j28pYd/KnnEWJacIbO
QY96BGsyaoVbJ4/RpqfHmJ+rn1wL+8k10U+ac1n9KW/FerqMSxsSGQdcGknBZTGO7sCXwtqC1kZf
hMmLC/CzdI9rW/e44N2jKVuxsGqi/DzmyV7dDIaeaEbGm4N211bPWenU/VJ98CzbvGdNwzDKguyF
N+E1dzOe3NYG3x0SGgO3AaaHKGafqXUru7cwIvW+HbonfL3rnWhonlGTSiLdO8Uh2wFGfZCbIZZ5
IfdznbeUzWZJnLLXZZDGs+qX3tZ58hYuWAj3CowHEHidrflDjzLYf/zr8eP334J8Si5ANKPSPns8
oBVcJdkGCKqc3UaHu284RRmU7DUNvsfzoLK4eqdg9ePdf8Athx8VKVKdIvmjDi9SRdjucK5K43kW
rcNNTvdf2fd622wYVIYQgfP/ERbluTesOgFN3j0HQ2vx6hT+iFfwum6FqDNZuDkKdSkC+UpZfjTk
P+Q/6vznlFlYHIgbU7c9KM3WqygoGQ4POkNDHkSjHGUedMYsJB7Ej6nbHrTKs3lefzoKDzpDQx5k
1Eyw8F6l6s/4BXHhliI09nvQ5gVHu/842cypvDdw9geo4cznMQyqBhSw/nGYAcuAlmBu0yjMs6Jw
9h88/Y2FZdH4TacSfcrenfc4jbJ3aLa3gUlqUKaGNt0ArhZtYAVpWn3sQapRtgzidL/mb1xBd6Ah
CjXUrh1121skY66SdbBX6fMhsSZ4Td9Em/LgDqRC7sG2dBu15lQlkEm1mlhLbLDFCHkrhe5JQoej
N56lA4l17WZmyTaIdeR1xDpiHbGOWEesI9YR64h1xDpiHbGOWEesI9YR64h1xDpiHbGOWEesI9YR
64h1xDpiHbGOWEesI9YR64h1xDpiHbGOWEesI9YR64h1xDpi3ZOyLmdJ8BGnc6e+f7uocO4/O6/+
MI83V1e8Hl55vztACLyrXBojnWNXdnRMug/AD7HrQdrAzvrzt6eyd0J8/Xn3qU7EZsE6Kf9PzODu
fRCAQ7porwuBcMNJQBUoLnr99/Yr8Ot8+JAQx/WRqineEMeYFSA5Peg9TYJU57s/rpqBfcpHn7r7
KkjioGCFQfk2ACH16lBLQ6BN5iZROCJkqv4v+2CRs8qzFcvLmBXOtvozz/P70Ij52gl3vwPMJLL2
0NpREKMs4K7psfOueH16wCgEtQpIgyUy/jciomygkWONEUdQEInjEuFZ9ampk2b1f1hunvbXcIjz
Gjl/HW4EhBcEJUIvTA5PlQ00sTBVNLr8vPrcMis/V8wJF5CLc0KAyNMhuH4VdtOEFwPERbIgrIAW
9fpeVv0wdza/Wn8ZZmnJPsridT90uPqJ0+sbVIcC4JQx9KlIQfeYUZtu4IrIXX+YK76TSbapPuYd
Tu3ih57hKnsQtSriZTCvdDzPGUtfVulcD3cuW9EXkiPHDOdp19Y87VKexpynXVvztAuapz3U8jsi
7HhX3AHh2WqQHhkkZoP0bDVID06VJcuDMstxK/AUJE2+GaLraSeYXGZRCVURQbe//5awdF4uUEvp
GinpyYyernsCt6gE8fLxdRUXTvVHTpizoKybqzrMSYPv8Xz75XVunH5udhTU754u2NuUVX/N1mmS
BZFJ3Sl/DlKlRq4r7y1DJSbsc8Arwel3RdNOy/nfLvZ0EebxqnyL2Mzozi31z0HejdLtrvrJaL0F
+zTalRAkyTQIv2l7JTMMdl7lau9d+ytaqmWx+6Ga+tW8E+KqarpQueKoWdH06+4v3va/8rb7lbe6
/beerV3N9Vjk3di8m6vbbDX09g9n5ZUICEL2COI8yKfBnFUAkoRtrh3aYLyeJ47iIgzy6C3eXBT2
toiLMss/30y6pBrsZIU6rFBN35j0O4AngGG5Y7VGW5ar3enF7Zau/6W0G/2e/wMsfGP96GDpSddi
NbqUMdFmTNf6jOliUajVGdM1nDFdZBnT1rrHNduLaPKlZ3Ev0kZy7DnH5F5yAOwwLLc6X3qG8yWe
XnSt7kWz+dLDky8dqzOm4xnuRyz1q29xL/o0T4C2avCtnyfwsSjU6rrHN1z34OlF1+peNFv3+Gjq
Ht/qusc3XPf4yuqe7cWw24NnTgXj1m+cvhfMTJ/JIKW5HH11gUx/mJm5UY5UEV/rD0MtqAPArkV+
fyv2Okk2G7hw+1ozWhqvmfGK5t4wOULTgpmLuwUL13lcfu6+vW9n/22DquJBBlId7Lanzlnp1D3q
xOkseynWU3vrCnylCE9nmyk91CG7wyNj4DbA9BDF7DO1baXuF7zet0enr4LAlNF5o4ExDzyFO3N1
gEkf5GeIXV7I/1znLW0/p3hNs7w++J6z3Dl5zRCY8XHAoPkfVbLmCDZEhdUWxh0aFetVHZHdq7I2
QyXgF1rxIZG7HuG5nvJID4NuRLM0mh3IoOsocZot3TfUN6a+SwztdHe5gLWdbHrtAR7P54RCulQn
iwehhpsaVQFIilIOJn47fZ1KdvE8KZ1vA1Oyi03Jrh4lu5iULHY2zEzIrr4dLrKsYA77iIv6Rgws
0eTCSVai3Uq4+gGNz7RHK85UbMq5UIilUa3+VwRzhiWop3CUxFRn7G711yrIWVpid/gTlOTvxvz9
pBfQuzsvVnGObj8ZTYl5CsfqiLq4Iuqqi+hpF1FKlO4LoIxYsGSGZwTJgZIyorGMeNIL6DMiL1Zx
jtafjEYwRzCWRrPrln7sIEhDd60wdJoNx2OVLvjStCaUch7qYjJ0F8jQYQrNiM2CdVKa2WknDZL2
4ZlypauuwGhKYiCpLIILaNXtZdPbsfd7icts5ZjY3SOCi8xH+RY8geiD7s9ThevIvChbVuBm+1sa
2HLKoohpfynYvWY1l/iH9rM8nsdpkDgYRwfnUFP27nT4gOQjIdxjC5/+7nW65qZbGJPC5z5nkJ5W
z1tkCVuytCyOH8AvzWPzmFLM3UeD6siz0ED0o3h2OP/7kUZfrP6czeKURbx/MMsym92TI3fqIMT5
izk2nQrV0KGHoRqsGAKhqv7LQOO7U3YtQDzILEgKxvvL/+/25Obv3N7fN//4/0wrq6H/6+eBIttV
PCB67EvwRXMMqxYgHuSvaeUMcfnJ+/uO6B/Up4YsTBfXHbJ/cCheO9AN1j0FQbn6e9Uw+9cyr8bf
GgubTTvfg2TN/j7T2Uy+ZiJhPnt8PfFWwvfT8EFRsI4lGAUfUgOITvb2lvY2bxbs9e8UwBNsxzaR
LqC3mJp7jkmvYw9CTzuJtqxqro2zXbCZUqgpqhtzTdtw6LqVqv38kjRN5KcmpZu8Cqp2Xp78/TzP
1iuAA1D3moVaY+GVo9nlFUo399kCJmiJVtXluTaP3DLV8Td9w8cOH9CZNRbpPNSmG5viCdGPJx+x
ZGUQBWUAnB3OmtW9owTWsEETWaevKL7HGVjDbNO0fHqSaFVFLuZv9oabHT6geyvwJ48GxR/pzCTb
j6cfERchdGbYNwmyz1Bu5ACaGNBavJKeb+GOe6JAF+6CDSvLQQqeV0uTt6yy/mPt80eXzel+PH2J
SqXzt3owJ5sWWcJKBuz8Z80i3WVuaPb3GWaMpLz4jDNwxijRrIKM16bVlsmHv+kb9nz4AEtXSRS6
c5tubIonRD+efESx/S/0kvJZs7BjA5r+sTQ7nHEGLjtINKsgO7RptWV24G/6hpsdPoDWE9p0Y1M8
Ifrx5CPKYLpOghw4OZy2inU1AfT8YMeOAGrIDaeUgUsN4q0qyAwtGm2ZGLhbvuFj+7+Hm0Y6tgjw
nFYMV1o/m1MfGodOCPsmEY8UwDyaXn/7mOR7vgD7o2SzLXKBWItKch5Xk7f8uP5jGhXIEuUyjrr7
LcrC9abB+iunzBnbvUg9y4vXn3c/fJlm0SdEQhBEQ5f9tZK8YLRBlm1VYpLhVrjO61uTfw3zeFXi
ofw1LF7uS713Ga4AIaHd6WO9b4TWjwzECwTBmXpPtd4H4msizLOicKofBDHAAFYECvrQHZqoZPbn
XY32x88/JUFRfAmWbPv+3s1lJHiSBh9Uuh4QzKr4OkTzQA8MqgBld01ZIC4xpDRA0UdVsZ4wX7Ao
xCvA1/0PXzYXE9QZd/f1KlnP47Rw9F9eqwwjZSrdHOXtCZMpSglGGXaC3cshCoeyDADbgO/XUApK
hl430lQB8N4FdSBJGQDKeNQJiPTSCqoMQRcsiFCVWKeAqJ4CI95p2FEUT9yA5EnmYmO9S6w3wXoX
G+tdPayPl8GcIRognOChOgiAXCfxRlTy8KKSYVgZlwlDVd6cISLWA7D+LOKIeM+PqwXP3JcPbNTf
QdLHffxc3IUA1YkSI+TnDoTcx3vofN8j3wfWmofU9z2tvu/j832ffN8n3xcMhNzHD9D5/oBmdoC1
NkDq+wOtvj9Ex/whVTzAzB8iZf5QK/NH6Jg/6hjzN+1tzgpmUdXez3//21+Xq+1iZbA53hXmLCjZ
X/75t18OuzSfTnwjpOITwSXcx+BQW6hyjM4nxpQhgUU6RirSsVbmT9Axf9Kx63VsGX5P8Cx48yMS
4FkaLFkUl2yJYenvCgzNAujm+1XITVJdDIwcsVxMLHepnoGjlIuklBGDJEcsDxPLPfJyaGJ5mLzc
08VyHxPLffJyOEr5+Lzc18XyASaW0+ocIMsH+Fg+0MXyISaWD4nl0MQaYqpYhgDnMOvTand+5IRB
wZzN3g9EG5RaPcFT7mdqFbEn3v6kOW660bzYK1kax6D1BtRnsNU8gHaKx5HdWfUcP+VUsXhRRtUT
Nb1YXmyVKuVSpJ5gdSblga+f3GnJ8lkQ2lrqnuMnjSKl+lkvodiHowu/dsbXE1zFqsJidwHc+BhU
B0uFjcphrcEDgfRiuYxprcUG4luafwXw62c8ez+8EsruDNz8IJSDJQNHWVhz+LSCOlz2brmoG5+D
NC0XN5K03ujBYHqxXco0t4XcM6yeh9b9nhMhMKsgD5Z2p+CrR6DsKxwySrzaAqcdzovFsqVZLOxk
t3QGixO7dpYjflsMN3SqhLGxG/2bZdQ8wC2K75/HWbIyiIIycJZBGsw3LRx+zQmz5Sool1kEf0G7
LEDKhErpKtsNYOlOC0B1pHSxq4ZugjBMRyO3Q2iBqY6UHnbV0B3xKEjpYc81HqRqoC+Ul0bY2dlF
6Yh0fPJQY1yUtDZAr5wBKac5IqQc2bgoaW2IXjlDUk5zREg5snFp0Vr2LWY4BzcHZDSDBqzMQ+SR
TgLw4WvHvyQoyr9lUTyLWYR0rrkJIs0AgGqlqQtQikYYqDpqYpcO6casbuwQjW7F5CyIPn8tgxJl
NXaBjtQCqpaL6KPUigjGCy5+psEyDqtPzb+tV06cFiyvXxv0GiZZEadzp1zUp8dX69IpyqqZI7aX
+jc2C6ggY35VOLs28lcVl26O/+Gi87jNg1rf87hkrz2gcY0gHBrv6+TdjaDrXrNUCUeWXi4uttNO
F1BiQe5rUQlKll4eLrbTu08M0MvD5e2ePrb7uNhO70ABJZaP0dt9fWwf4GL7gNgOyfYBRrYP9LF9
iIvt9E4UULYPMbJ9qI/tI1xsH5G3w9NrhKtuH+lj+xgX28fEdkhijTF6+1gf2ye42D4htkOyfYKR
7RNtbO/3ULF9B4fYDsP2XbhxsZ0HlCy9cK2l9mk/KCjb+xjZrm8ttY9rLbVPa6mgbMe4ltrXt5ba
x7WW2qe1VAP0wrWW2te3ltrHtZbap7VUUGJhXEvt61tL7eNaS+3TWioo2zGupfb1raX2ca2l9ofE
dnh6DXFVMvrWUvu41lL7tJYKSqwRRm/Xt5bax7WW2h/TKBWeXmNc3q5vLbWPay21T2upBtg+wcV2
fWupLq61VJfWUiGJ5WJcS3X1raW6uNZSXVpLNUAvXOdSXX1rqS6utVSX1lJBiYVxLdXVt5bq4lpL
dWkt1QC9cK2luvrWUl1ca6kuraWCEgvjWqqrby3VxbWW6g7I2+HpNcDl7frWUl1ca6kuraWCEgvj
uVRX31qqi2st1aW1VFC2Y1xLdfWtpbq41lJdOpcKynaM51JdfWupLq61VHdCdTs8vXCtpbr61lI9
XGupXo/YDs52r4eK7Z6+tVQP11qqR3f8GmA7rrVUT99aqodrLdVzie3wbHdxsV3fWqqHay3Vo7dQ
G2A7rrVUT99aqodrLdWjtVRQYmFcS/X0raV6uNZSPVpLNUAvXGupnr61VA/XWqpHa6mgxMK4lurp
W0v1cK2leiPydnh64brj19O3lurhWkv16FyqAbbjOpfq6VtL9XCtpXp0LhWUWBjv+PX0raX6uNZS
fVpLhaeXj2st1de3lurjWkv16VwqKLEw3vHr61tL9XGtpfq0lmqAXrjWUn19a6k+rrVUn9ZSQYnl
YfR2fWupPq61VJ/WUkHZjnEt1de3lurjWkv1aS3VAL1wraX6+tZSfVxrqT6tpYISC+Naqq9vLdXH
tZbq07lUULZjPJfq61tL9XGtpfp0LtUAvXCtpfr61lJ9XGupPq2lghIL41qqr28tdYBrLXVAd/zC
02uAay11oG8tdYBrLXVA51INsB3XudSBtrXU/Zcvmy+dXv/lAxH5b6DT5/yo644b0dDnCRYoVTom
rVtCtQehGRxVSEZ0ifDebAmIckSMZ3mwZG+9Hqoi6gIV1VKA1LuIPZKSSgRVS865KJVAe9ZMsA1h
ahDB1pJzHkol0H42E0rwECvB064EH6USfMoJxjjno6yOfO1KGKBUAu2DM6eEAUolDACUoGsurh0m
XhXItzJE6QG0O9CEzoaI68Khdg8YoVQC7Rw0oYQRYiWMtCthjFIJtKvQhBLGiJUw1q6ECUol0I5D
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
2EkHAAAABwAAABEAGAAAAAAAAQAAAKSBbTQAAF93cHRfY2VydHMvc2VyaWFsVVQFAAPROZ1YdXgL
AAEE9QEAAAQUAAAAUEsBAh4DCgACAAAAAZ9JSjwTmQYHAAAABwAAABUAGAAAAAAAAQAAAKSBvzQA
AF93cHRfY2VydHMvc2VyaWFsLm9sZFVUBQAD0TmdWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
AIGjSUoyFER/HUIBAGw+DQAOABgAAAAAAAEAAACkgRU1AABhY2Nlc3NfbG9nLnR4dFVUBQADUUGd
WHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAAWfSUoAAAAAAAAAAAAAAAAOABgAAAAAAAAAEADt
QXp3AQBhY2Nlc3NpYmlsaXR5L1VUBQAD2TmdWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAAWf
SUo7Pxr28wAAABwCAAAlABgAAAAAAAEAAACkgcJ3AQBhY2Nlc3NpYmlsaXR5L2FyaWEtY3VycmVu
dC1zdGRlcnIudHh0VVQFAAPZOZ1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAPZ9JSgAAAAAA
AAAAAAAAAAwAGAAAAAAAAAAQAO1BFHkBAGNvbXBvc2l0aW5nL1VUBQADRTqdWHV4CwABBPUBAAAE
FAAAAFBLAQIeAwoAAAAAADifSUoAAAAAAAAAAAAAAAASABgAAAAAAAAAEADtQVp5AQBjb21wb3Np
dGluZy9tYXNrcy9VVAUAAzs6nVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAA3n0lKC9mCQOYA
AAAkAwAARAAYAAAAAAABAAAApIGmeQEAY29tcG9zaXRpbmcvbWFza3MvY29tcG9zaXRpbmctY2xp
cC1wYXRoLWNoYW5nZS1uby1yZXBhaW50LWFjdHVhbC50eHRVVAUAAzo6nVh1eAsAAQT1AQAABBQA
AABQSwECHgMUAAIACAA3n0lK9/jS9uYAAABeAgAAQgAYAAAAAAABAAAApIEKewEAY29tcG9zaXRp
bmcvbWFza3MvY29tcG9zaXRpbmctY2xpcC1wYXRoLWNoYW5nZS1uby1yZXBhaW50LWRpZmYudHh0
VVQFAAM6Op1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAN59JSupdJ6fpAAAAgAMAAEYAGAAA
AAAAAQAAAKSBbHwBAGNvbXBvc2l0aW5nL21hc2tzL2NvbXBvc2l0aW5nLWNsaXAtcGF0aC1jaGFu
Z2Utbm8tcmVwYWludC1leHBlY3RlZC50eHRVVAUAAzo6nVh1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACAA3n0lKweOR4uIHAACMHAAASgAYAAAAAAABAAAApIHVfQEAY29tcG9zaXRpbmcvbWFza3Mv
Y29tcG9zaXRpbmctY2xpcC1wYXRoLWNoYW5nZS1uby1yZXBhaW50LXByZXR0eS1kaWZmLmh0bWxV
VAUAAzo6nVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAA4n0lKCHrbdVACAACLjQAALwAYAAAA
AAAAAAAApIE7hgEAY29tcG9zaXRpbmcvbWFza3Mvc29saWQtY29sb3ItbWFza2VkLWFjdHVhbC5w
bmdVVAUAAzs6nVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAA4n0lKhjFjpKYWAACRNAAALQAY
AAAAAAAAAAAApIH0iAEAY29tcG9zaXRpbmcvbWFza3Mvc29saWQtY29sb3ItbWFza2VkLWRpZmYu
cG5nVVQFAAM7Op1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAOJ9JSkKhODaQBQAAJhIAAC8A
GAAAAAAAAQAAAKSBAaABAGNvbXBvc2l0aW5nL21hc2tzL3NvbGlkLWNvbG9yLW1hc2tlZC1kaWZm
cy5odG1sVVQFAAM7Op1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAOJ9JShXLe6TlAAAArgEA
ADIAGAAAAAAAAQAAAKSB+qUBAGNvbXBvc2l0aW5nL21hc2tzL3NvbGlkLWNvbG9yLW1hc2tlZC1l
eHBlY3RlZC5odG1sVVQFAAM7Op1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAOJ9JShvKlvAG
OQAAC8cAADEAGAAAAAAAAAAAAKSBS6cBAGNvbXBvc2l0aW5nL21hc2tzL3NvbGlkLWNvbG9yLW1h
c2tlZC1leHBlY3RlZC5wbmdVVAUAAzs6nVh1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAA9n0lK
AAAAAAAAAAAAAAAAEgAYAAAAAAAAABAA7UG84AEAY29tcG9zaXRpbmcvdmlkZW8vVVQFAANGOp1Y
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAPZ9JSiUFL530AAAAHAIAACMAGAAAAAAAAQAAAKSB
COEBAGNvbXBvc2l0aW5nL3ZpZGVvL3Bvc3Rlci1zdGRlcnIudHh0VVQFAANFOp1YdXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgAPZ9JSu0+N2f1AAAAHAIAADAAGAAAAAAAAQAAAKSBWeIBAGNvbXBv
c2l0aW5nL3ZpZGVvL3ZpZGVvLWJvcmRlci1yYWRpdXMtc3RkZXJyLnR4dFVUBQADRjqdWHV4CwAB
BPUBAAAEFAAAAFBLAQIeAwoAAAAAAEGfSUoAAAAAAAAAAAAAAAARABgAAAAAAAAAEADtQbjjAQBj
b250ZW50ZmlsdGVyaW5nL1VUBQADSjqdWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAEGfSUoW
JN6F9AAAABwCAAAwABgAAAAAAAEAAACkgQPkAQBjb250ZW50ZmlsdGVyaW5nL2FsbG93LW1lZGlh
LWRvY3VtZW50LXN0ZGVyci50eHRVVAUAA0o6nVh1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAABJ
n0lKAAAAAAAAAAAAAAAABwAYAAAAAAAAABAA7UFh5QEAY3J5cHRvL1VUBQADWjqdWHV4CwABBPUB
AAAEFAAAAFBLAQIeAwoAAAAAAEOfSUoAAAAAAAAAAAAAAAAOABgAAAAAAAAAEADtQaLlAQBjcnlw
dG8vc3VidGxlL1VUBQADTTqdWHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAgAAAEKfSUol4NMILAAA
ACwAAAA+ABgAAAAAAAEAAACkgerlAQBjcnlwdG8vc3VidGxlL3JzYS1nZW5lcmF0ZS1rZXktbWFs
Zm9ybWVkLXBhcmFtZXRlcnMtc3RkZXJyLnR4dFVUBQADTDqdWHV4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIAEOfSUowO7ixSwAAAGgAAAA8ABgAAAAAAAEAAACkgY7mAQBjcnlwdG8vc3VidGxlL3Jz
YS1pbXBvcnQta2V5LW1hbGZvcm1lZC1wYXJhbWV0ZXJzLXN0ZGVyci50eHRVVAUAA006nVh1eAsA
AQT1AQAABBQAAABQSwECHgMKAAAAAABJn0lKAAAAAAAAAAAAAAAADwAYAAAAAAAAABAA7UFP5wEA
Y3J5cHRvL3dvcmtlcnMvVVQFAANaOp1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAASZ9JSgAA
AAAAAAAAAAAAABYAGAAAAAAAAAAQAO1BmOcBAGNyeXB0by93b3JrZXJzL3N1YnRsZS9VVAUAA1o6
nVh1eAsAAQT1AQAABBQAAABQSwECHgMKAAIAAABJn0lKJeDTCCwAAAAsAAAAMQAYAAAAAAABAAAA
pIHo5wEAY3J5cHRvL3dvcmtlcnMvc3VidGxlL3JzYS1nZW5lcmF0ZS1rZXktc3RkZXJyLnR4dFVU
BQADWjqdWHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAFegSUoAAAAAAAAAAAAAAAAIABgAAAAA
AAAAEADtQX/oAQBlZGl0aW5nL1VUBQADZjudWHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAF2g
SUoAAAAAAAAAAAAAAAASABgAAAAAAAAAEADtQcHoAQBlZGl0aW5nL3NlbGVjdGlvbi9VVAUAA3E7
nVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABXoElK1hWshPUAAAAcAgAANwAYAAAAAAABAAAA
pIEN6QEAZWRpdGluZy9zZWxlY3Rpb24vY2hhcmFjdGVyLWdyYW51bGFyaXR5LXJlY3Qtc3RkZXJy
LnR4dFVUBQADZjudWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAFigSUpFP99A8wAAABwCAAAy
ABgAAAAAAAEAAACkgXPqAQBlZGl0aW5nL3NlbGVjdGlvbi9jbGVhci1zZWxlY3Rpb24tY3Jhc2gt
c3RkZXJyLnR4dFVUBQADZzudWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAF2gSUoOE0CrZAAA
AGwAAAAtABgAAAAAAAEAAACkgdLrAQBlZGl0aW5nL3NlbGVjdGlvbi9zZWxlY3QtY3Jhc2gtMDAy
LXN0ZGVyci50eHRVVAUAA3E7nVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADZqklKOS1OP0EJ
AABlLQAADQAYAAAAAAABAAAApIGd7AEAZXJyb3JfbG9nLnR4dFVUBQADKk6dWHV4CwABBPUBAAAE
FAAAAFBLAQIeAwoAAAAAAPqqSUoAAAAAAAAAAAAAAAAFABgAAAAAAAAAEADtQSX2AQBmYXN0L1VU
BQADZ06dWHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAH2gSUoAAAAAAAAAAAAAAAAMABgAAAAA
AAAAEADtQWT2AQBmYXN0L2NhbnZhcy9VVAUAA647nVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIA
CAB7oElKY3zAao0AAAAyAQAAJgAYAAAAAAABAAAApIGq9gEAZmFzdC9jYW52YXMvY2FudmFzLWxp
bmVEYXNoLXN0ZGVyci50eHRVVAUAA6k7nVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAB9oElK
IDGOffMAAAAcAgAAJwAYAAAAAAABAAAApIGX9wEAZmFzdC9jYW52YXMvcXVhZHJhdGljQ3VydmVU
by1zdGRlcnIudHh0VVQFAAOuO51YdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAlaBJSgAAAAAA
AAAAAAAAAAkAGAAAAAAAAAAQAO1B6/gBAGZhc3QvY3NzL1VUBQAD2TudWHV4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIAJWgSUrbCNNCOwAAAD8AAAApABgAAAAAAAEAAACkgS75AQBmYXN0L2Nzcy9j
b21wYXJlLWNvbnRlbnQtc3R5bGUtc3RkZXJyLnR4dFVUBQAD2TudWHV4CwABBPUBAAAEFAAAAFBL
AQIeAwoAAAAAAAmhSUoAAAAAAAAAAAAAAAALABgAAAAAAAAAEADtQcz5AQBmYXN0L2Zvcm1zL1VU
BQADsjydWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAPqgSUp5exEjqwAAAOkAAAAzABgAAAAA
AAEAAACkgRH6AQBmYXN0L2Zvcm1zL2Zvcm0tYXNzb2NpYXRlZC1lbGVtZW50LWNyYXNoLXN0ZGVy
ci50eHRVVAUAA5c8nVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAD9oElK1TBHrpQAAADEAAAA
MwAYAAAAAAABAAAApIEp+wEAZmFzdC9mb3Jtcy9pbnRlcmFjdGl2ZS12YWxpZGF0aW9uLWNhbmNl
bC1zdGRlcnIudHh0VVQFAAOePJ1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgABKFJSqNYxyRk
AAAAbAAAACYAGAAAAAAAAQAAAKSBKvwBAGZhc3QvZm9ybXMvcGxhaW50ZXh0LW1vZGUtMi1zdGRl
cnIudHh0VVQFAAOnPJ1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgACaFJSk46JI+7AAAAEAMA
ACkAGAAAAAAAAQAAAKSB7vwBAGZhc3QvZm9ybXMvdmFsaWRhdGlvbi1tZXNzYWdlcy1zdGRlcnIu
dHh0VVQFAAOyPJ1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAFqFJSgAAAAAAAAAAAAAAAAwA
GAAAAAAAAAAQAO1BDP4BAGZhc3QvZnJhbWVzL1VUBQADyzydWHV4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIABahSUrbCNNCOwAAAD8AAAAvABgAAAAAAAEAAACkgVL+AQBmYXN0L2ZyYW1lcy9mcmFt
ZS1kaXNwbGF5LW5vbmUtZm9jdXMtc3RkZXJyLnR4dFVUBQADyzydWHV4CwABBPUBAAAEFAAAAFBL
AQIeAwoAAAAAADChSUoAAAAAAAAAAAAAAAAMABgAAAAAAAAAEADtQfb+AQBmYXN0L2ltYWdlcy9V
VAUAA/s8nVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAuoUlKvGeAv2QAAABsAAAALgAYAAAA
AAABAAAApIE8/wEAZmFzdC9pbWFnZXMvaW1hZ2UtY29weS1tZW1vcnktdXNhZ2Utc3RkZXJyLnR4
dFVUBQAD9zydWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIADChSUohj704MgAAADMAAAAsABgA
AAAAAAEAAACkgQgAAgBmYXN0L2ltYWdlcy9wZGYtYXMtaW1hZ2UtY3JvcC1ib3gtc3RkZXJyLnR4
dFVUBQAD+zydWHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAEKhSUoAAAAAAAAAAAAAAAAMABgA
AAAAAAAAEADtQaAAAgBmYXN0L2xvYWRlci9VVAUAAxw9nVh1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACAA9oUlK2wjTQjsAAAA/AAAAUgAYAAAAAAABAAAApIHmAAIAZmFzdC9sb2FkZXIvZGlzcGxh
eS1pbWFnZS11bnNldC1jYW4tYmxvY2staW1hZ2UtYW5kLWNhbi1yZWxvYWQtaW4tcGxhY2Utc3Rk
ZXJyLnR4dFVUBQADFj2dWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAEChSUrbCNNCOwAAAD8A
AABTABgAAAAAAAEAAACkga0BAgBmYXN0L2xvYWRlci9pbWFnZXMtZW5hYmxlZC11bnNldC1jYW4t
YmxvY2staW1hZ2UtYW5kLWNhbi1yZWxvYWQtaW4tcGxhY2Utc3RkZXJyLnR4dFVUBQADFz2dWHV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAEKhSUrbCNNCOwAAAD8AAAAtABgAAAAAAAEAAACkgXUC
AgBmYXN0L2xvYWRlci9yZWxvYWQtcG9saWN5LWRlbGVnYXRlLXN0ZGVyci50eHRVVAUAAxw9nVh1
eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAABvoUlKAAAAAAAAAAAAAAAADAAYAAAAAAAAABAA7UEX
AwIAZmFzdC9wYXJzZXIvVVQFAANxPZ1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAb6FJSmO5
4HBkAAAAbAAAADIAGAAAAAAAAQAAAKSBXQMCAGZhc3QvcGFyc2VyL3N0cmlwLXNjcmlwdC1hdHRy
cy1vbi1pbnB1dC1zdGRlcnIudHh0VVQFAANxPZ1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA
jaFJSgAAAAAAAAAAAAAAAA8AGAAAAAAAAAAQAO1BLQQCAGZhc3Qvc2Nyb2xsaW5nL1VUBQADqT2d
WHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAI2hSUoAAAAAAAAAAAAAAAATABgAAAAAAAAAEADt
QXYEAgBmYXN0L3Njcm9sbGluZy9pb3MvVVQFAAOpPZ1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAC
AAgAjaFJSs3allTIAAAAIQEAADgAGAAAAAAAAQAAAKSBwwQCAGZhc3Qvc2Nyb2xsaW5nL2lvcy9z
Y3JvbGwtZXZlbnRzLWJhY2stZm9yd2FyZC1hY3R1YWwudHh0VVQFAAOpPZ1YdXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgAjaFJStoRaaDoAAAAwQEAADYAGAAAAAAAAQAAAKSB/QUCAGZhc3Qvc2Ny
b2xsaW5nL2lvcy9zY3JvbGwtZXZlbnRzLWJhY2stZm9yd2FyZC1kaWZmLnR4dFVUBQADqT2dWHV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAI2hSUqQOHswugAAABIBAAA6ABgAAAAAAAEAAACkgVUH
AgBmYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWV2ZW50cy1iYWNrLWZvcndhcmQtZXhwZWN0ZWQu
dHh0VVQFAAOpPZ1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAjaFJSmShKgIUCAAA1hsAAD4A
GAAAAAAAAQAAAKSBgwgCAGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtZXZlbnRzLWJhY2stZm9y
d2FyZC1wcmV0dHktZGlmZi5odG1sVVQFAAOpPZ1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA
o6FJSgAAAAAAAAAAAAAAABAAGAAAAAAAAAAQAO1BDxECAGZhc3Qvc2hhZG93LWRvbS9VVAUAA9E9
nVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACjoUlKa7bEL2QAAABsAAAAOQAYAAAAAAABAAAA
pIFZEQIAZmFzdC9zaGFkb3ctZG9tL3NlbGVjdGlvbi1hdC1zaGFkb3ctcm9vdC1jcmFzaC1zdGRl
cnIudHh0VVQFAAPRPZ1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA66FJSgAAAAAAAAAAAAAA
AAoAGAAAAAAAAAAQAO1BMBICAGZhc3QvdGV4dC9VVAUAA1o+nVh1eAsAAQT1AQAABBQAAABQSwEC
HgMKAAAAAADpoUlKAAAAAAAAAAAAAAAAGAAYAAAAAAAAABAA7UF0EgIAZmFzdC90ZXh0L2ludGVy
bmF0aW9uYWwvVVQFAANWPp1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA66FJSgAAAAAAAAAA
AAAAACgAGAAAAAAAAAAQAO1BxhICAGZhc3QvdGV4dC9pbnRlcm5hdGlvbmFsL3N5c3RlbS1sYW5n
dWFnZS9VVAUAA1k+nVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADpoUlKkXKvyfQAAAAcAgAA
UgAYAAAAAAABAAAApIEoEwIAZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvc3lzdGVtLWxhbmd1YWdl
L2FyYWJpYy1nbHlwaC1jYWNoZS1maWxsLWNvbWJpbmUtc3RkZXJyLnR4dFVUBQADVj6dWHV4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIAOqhSUrWGWe79AAAABwCAABHABgAAAAAAAEAAACkgagUAgBm
YXN0L3RleHQvaW50ZXJuYXRpb25hbC9zeXN0ZW0tbGFuZ3VhZ2UvZGVjbGFyYXRpdmUtbGFuZ3Vh
Z2Utc3RkZXJyLnR4dFVUBQADVz6dWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAOqhSUqDxCCz
9AAAABwCAAA9ABgAAAAAAAEAAACkgR0WAgBmYXN0L3RleHQvaW50ZXJuYXRpb25hbC9zeXN0ZW0t
bGFuZ3VhZ2UvaGFuLXF1b3Rlcy1zdGRlcnIudHh0VVQFAANYPp1YdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DFAACAAgA66FJSqXicnP0AAAAHAIAAFAAGAAAAAAAAQAAAKSBiBcCAGZhc3QvdGV4dC9pbnRl
cm5hdGlvbmFsL3N5c3RlbS1sYW5ndWFnZS9oaW5kaS1zeXN0ZW0tZm9udC1wdW5jdHVhdGlvbi1z
dGRlcnIudHh0VVQFAANZPp1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA66FJSsl5rvX0AAAA
HAIAAEoAGAAAAAAAAQAAAKSBBhkCAGZhc3QvdGV4dC9pbnRlcm5hdGlvbmFsL3N5c3RlbS1sYW5n
dWFnZS9zeXN0ZW0tZm9udC1wdW5jdHVhdGlvbi1zdGRlcnIudHh0VVQFAANZPp1YdXgLAAEE9QEA
AAQUAAAAUEsBAh4DCgAAAAAA66FJSgAAAAAAAAAAAAAAABUAGAAAAAAAAAAQAO1BfhoCAGZhc3Qv
dGV4dC92YXJpYXRpb25zL1VUBQADWj6dWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAOuhSUq1
OLi18wAAABwCAAAvABgAAAAAAAEAAACkgc0aAgBmYXN0L3RleHQvdmFyaWF0aW9ucy9jYXNlLWF4
aXMtbmFtZXMtc3RkZXJyLnR4dFVUBQADWj6dWHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAPqq
SUoAAAAAAAAAAAAAAAAVABgAAAAAAAAAEADtQSkcAgBmYXN0L3RleHQtYXV0b3NpemluZy9VVAUA
A2dOnVh1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAD6qklKAAAAAAAAAAAAAAAAGQAYAAAAAAAA
ABAA7UF4HAIAZmFzdC90ZXh0LWF1dG9zaXppbmcvaW9zL1VUBQADZ06dWHV4CwABBPUBAAAEFAAA
AFBLAQIeAwoAAAAAAPqqSUoAAAAAAAAAAAAAAAAeABgAAAAAAAAAEADtQcscAgBmYXN0L3RleHQt
YXV0b3NpemluZy9pb3MvaXBhZC9VVAUAA2dOnVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAD6
qklKFkTHrvQAAAAcAgAARgAYAAAAAAABAAAApIEjHQIAZmFzdC90ZXh0LWF1dG9zaXppbmcvaW9z
L2lwYWQvcHJvZ3JhbW1hdGljLXRleHQtc2l6ZS1hZGp1c3Qtc3RkZXJyLnR4dFVUBQADZ06dWHV4
CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAO6hSUoAAAAAAAAAAAAAAAAPABgAAAAAAAAAEADtQZce
AgBmYXN0L3Rva2VuaXplci9VVAUAA2A+nVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADuoUlK
IzsVffQAAAAcAgAAJAAYAAAAAAABAAAApIHgHgIAZmFzdC90b2tlbml6ZXIvdGV4dC1wbGFpbi1z
dGRlcnIudHh0VVQFAANgPp1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA+qpJSgAAAAAAAAAA
AAAAAA4AGAAAAAAAAAAQAO1BMiACAGZhc3Qvdmlld3BvcnQvVVQFAANnTp1YdXgLAAEE9QEAAAQU
AAAAUEsBAh4DCgAAAAAA+qpJSgAAAAAAAAAAAAAAABIAGAAAAAAAAAAQAO1BeiACAGZhc3Qvdmll
d3BvcnQvaW9zL1VUBQADZ06dWHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAPqqSUoAAAAAAAAA
AAAAAAAXABgAAAAAAAAAEADtQcYgAgBmYXN0L3ZpZXdwb3J0L2lvcy9pcGFkL1VUBQADZ06dWHV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAPqqSUrxAvknawAAAKYAAAA3ABgAAAAAAAEAAACkgRch
AgBmYXN0L3ZpZXdwb3J0L2lvcy9pcGFkL3dpZHRoLWlzLWRldmljZS13aWR0aC1hY3R1YWwudHh0
VVQFAANnTp1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA+qpJSnuqqkHpAAAAEgIAADUAGAAA
AAAAAQAAAKSB8yECAGZhc3Qvdmlld3BvcnQvaW9zL2lwYWQvd2lkdGgtaXMtZGV2aWNlLXdpZHRo
LWRpZmYudHh0VVQFAANnTp1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA+qpJSp0v4YJtAAAA
pwAAADkAGAAAAAAAAQAAAKSBSyMCAGZhc3Qvdmlld3BvcnQvaW9zL2lwYWQvd2lkdGgtaXMtZGV2
aWNlLXdpZHRoLWV4cGVjdGVkLnR4dFVUBQADZ06dWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
APqqSUpvuiqc5gcAAKYaAAA9ABgAAAAAAAEAAACkgSskAgBmYXN0L3ZpZXdwb3J0L2lvcy9pcGFk
L3dpZHRoLWlzLWRldmljZS13aWR0aC1wcmV0dHktZGlmZi5odG1sVVQFAANnTp1YdXgLAAEE9QEA
AAQUAAAAUEsBAh4DCgAAAAAA9qFJSgAAAAAAAAAAAAAAAAkAGAAAAAAAAAAQAO1BiCwCAGZhc3Qv
eHNsL1VUBQADbz6dWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAPWhSUpO+yD4iAAAAOcAAAAl
ABgAAAAAAAEAAACkgcssAgBmYXN0L3hzbC90cmFuc2Zvcm0teGhyLWRvYy1zdGRlcnIudHh0VVQF
AANuPp1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA9aFJSv2iLmSPAAAA7gAAACcAGAAAAAAA
AQAAAKSBsi0CAGZhc3QveHNsL3hzbHQtYmFkLWltcG9ydC11cmktc3RkZXJyLnR4dFVUBQADbj6d
WHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAPWhSUrPj2YOUAAAAKAAAAAkABgAAAAAAAEAAACk
gaIuAgBmYXN0L3hzbC94c2x0LWNvbnRlbnRUeXBlLXN0ZGVyci50eHRVVAUAA24+nVh1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACAD2oUlKgUp3rUsAAACsAAAANAAYAAAAAAABAAAApIFQLwIAZmFz
dC94c2wveHNsdC10cmFuc2Zvcm0tdG8tZnJhZ21lbnQtY3Jhc2gtc3RkZXJyLnR4dFVUBQADbz6d
WHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAASrSUrB65IkJAIAAH4EAAARABgAAAAAAAEAAACk
gQkwAgBmdWxsX3Jlc3VsdHMuanNvblVUBQADd06dWHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAA
AAaiSUoAAAAAAAAAAAAAAAAFABgAAAAAAAAAEADtQXgyAgBodHRwL1VUBQADiz6dWHV4CwABBPUB
AAAEFAAAAFBLAQIeAwoAAAAAAIeiSUoAAAAAAAAAAAAAAAALABgAAAAAAAAAEADtQbcyAgBodHRw
L3Rlc3RzL1VUBQADfT+dWHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAAaiSUoAAAAAAAAAAAAA
AAATABgAAAAAAAAAEADtQfwyAgBodHRwL3Rlc3RzL2Nvb2tpZXMvVVQFAAOLPp1YdXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgABqJJSiABCXTEAQAAQCsAADkAGAAAAAAAAQAAAKSBSTMCAGh0dHAv
dGVzdHMvY29va2llcy90aGlyZC1wYXJ0eS1jb29raWUtcmVsYXhpbmctc3RkZXJyLnR4dFVUBQAD
iz6dWHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAABWiSUoAAAAAAAAAAAAAAAASABgAAAAAAAAA
EADtQYA1AgBodHRwL3Rlc3RzL2ltYWdlcy9VVAUAA6o+nVh1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACAAVoklKNtIsLHcAAABEAQAALgAYAAAAAAABAAAApIHMNQIAaHR0cC90ZXN0cy9pbWFnZXMv
aGlkcGktc3Jjc2V0LWNvcHktc3RkZXJyLnR4dFVUBQADqj6dWHV4CwABBPUBAAAEFAAAAFBLAQIe
AwoAAAAAADyiSUoAAAAAAAAAAAAAAAAQABgAAAAAAAAAEADtQas2AgBodHRwL3Rlc3RzL21pc2Mv
VVQFAAPzPp1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAPKJJShU1NZJ6AAAAvAAAACoAGAAA
AAAAAQAAAKSB9TYCAGh0dHAvdGVzdHMvbWlzYy94c2x0LWJhZC1pbXBvcnQtc3RkZXJyLnR4dFVU
BQAD8z6dWHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAEOiSUoAAAAAAAAAAAAAAAAWABgAAAAA
AAAAEADtQdM3AgBodHRwL3Rlc3RzL25hdmlnYXRpb24vVVQFAAP9Pp1YdXgLAAEE9QEAAAQUAAAA
UEsBAh4DFAACAAgAQ6JJStsI00I7AAAAPwAAADcAGAAAAAAAAQAAAKSBIzgCAGh0dHAvdGVzdHMv
bmF2aWdhdGlvbi9mYWxsYmFjay1hbmNob3ItcmVsb2FkLXN0ZGVyci50eHRVVAUAA/0+nVh1eAsA
AQT1AQAABBQAAABQSwECHgMKAAAAAABqoklKAAAAAAAAAAAAAAAAFAAYAAAAAAAAABAA7UHPOAIA
aHR0cC90ZXN0cy9zZWN1cml0eS9VVAUAA0g/nVh1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAABp
oklKAAAAAAAAAAAAAAAAKgAYAAAAAAAAABAA7UEdOQIAaHR0cC90ZXN0cy9zZWN1cml0eS9jb250
ZW50U2VjdXJpdHlQb2xpY3kvVVQFAANGP51YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAW6JJ
ShRu5MZyAAAAdAAAAFcAGAAAAAAAAQAAAKSBgTkCAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVu
dFNlY3VyaXR5UG9saWN5L2Nvbm5lY3Qtc3JjLXN0YXItd2Vic29ja2V0LWFsbG93ZWQtc3RkZXJy
LnR4dFVUBQADLT+dWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAFuiSUoJ1QQ0cgAAAHQAAABX
ABgAAAAAAAEAAACkgYQ6AgBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGlj
eS9kZWZhdWx0LXNyYy1zdGFyLXdlYnNvY2tldC1hbGxvd2VkLXN0ZGVyci50eHRVVAUAAy4/nVh1
eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAABpoklKAAAAAAAAAAAAAAAARAAYAAAAAAAAABAA7UGH
OwIAaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvdXBncmFkZS1pbnNl
Y3VyZS1yZXF1ZXN0cy9VVAUAA0U/nVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABpoklKWTTn
vpAAAACdAAAAfgAYAAAAAAABAAAApIEFPAIAaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2Vj
dXJpdHlQb2xpY3kvdXBncmFkZS1pbnNlY3VyZS1yZXF1ZXN0cy91cGdyYWRlLXJlZGlyZWN0LWh0
dHBzLXRvLWh0dHAtc2NyaXB0LWluLWlmcmFtZS1zdGRlcnIudHh0VVQFAANFP51YdXgLAAEE9QEA
AAQUAAAAUEsBAh4DCgAAAAAAaqJJSgAAAAAAAAAAAAAAAD0AGAAAAAAAAAAQAO1BTT0CAGh0dHAv
dGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3VzZXJBZ2VudFNoYWRvd0RPTS9V
VAUAA0c/nVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABpoklK0dCIYPQAAAAcAgAAawAYAAAA
AAABAAAApIHEPQIAaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvdXNl
ckFnZW50U2hhZG93RE9NL2RlZmF1bHQtc3JjLW9iamVjdC1kYXRhLXVybC1hbGxvd2VkLXN0ZGVy
ci50eHRVVAUAA0Y/nVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABqoklKUnRyqfMAAAAcAgAA
awAYAAAAAAABAAAApIFdPwIAaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xp
Y3kvdXNlckFnZW50U2hhZG93RE9NL2RlZmF1bHQtc3JjLW9iamVjdC1kYXRhLXVybC1ibG9ja2Vk
LXN0ZGVyci50eHRVVAUAA0c/nVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABqoklK6QGMlPMA
AAAcAgAAbAAYAAAAAAABAAAApIH1QAIAaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJp
dHlQb2xpY3kvdXNlckFnZW50U2hhZG93RE9NL2RlZmF1bHQtc3JjLW9iamVjdC1kYXRhLXVybC1i
bG9ja2VkMy1zdGRlcnIudHh0VVQFAANHP51YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAY6JJ
SmOqrGyCAAAAqAAAAEAAGAAAAAAAAQAAAKSBjkICAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVu
dFNlY3VyaXR5UG9saWN5L3hzbC1hbGxvd2VkLXN0ZGVyci50eHRVVAUAAzk/nVh1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACABjoklKY6qsbIIAAACoAAAAUgAYAAAAAAABAAAApIGKQwIAaHR0cC90
ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kveHNsLXVuYWZmZWN0ZWQtYnktc3R5
bGUtc3JjLTItc3RkZXJyLnR4dFVUBQADOT+dWHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAGui
SUoAAAAAAAAAAAAAAAAcABgAAAAAAAAAEADtQZhEAgBodHRwL3Rlc3RzL3NlY3VyaXR5L2Nvb2tp
ZXMvVVQFAANJP51YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAaqJJSmj9RmP1AAAAHAIAADoA
GAAAAAAAAQAAAKSB7kQCAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29va2llcy9hc3NpZ24tZG9jdW1l
bnQtdXJsLXN0ZGVyci50eHRVVAUAA0g/nVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABroklK
A9/yofQAAAAcAgAARAAYAAAAAAABAAAApIFXRgIAaHR0cC90ZXN0cy9zZWN1cml0eS9jb29raWVz
L2ZpcnN0LXBhcnR5LWNvb2tpZS1hbGxvdy14c2x0LXN0ZGVyci50eHRVVAUAA0k/nVh1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACABaoklKYEtmEJEAAAD7AQAARQAYAAAAAAABAAAApIHJRwIAaHR0
cC90ZXN0cy9zZWN1cml0eS94c3MtREVOSUVELXhzbC1kb2N1bWVudC1zZWN1cml0eU9yaWdpbi1z
dGRlcnIudHh0VVQFAAMrP51YdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAiKJJSgAAAAAAAAAA
AAAAABoAGAAAAAAAAAAQAO1B2UgCAGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvVVQFAAOAP51Y
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAh6JJSommMgE1AQAAaAUAAE4AGAAAAAAAAQAAAKSB
LUkCAGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvYWNjZXNzLWNvbnRyb2wtcHJlZmxpZ2h0LWNy
ZWRlbnRpYWwtYXN5bmMtc3RkZXJyLnR4dFVUBQADfT+dWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIAIeiSUrnxJCsTQEAANAKAABNABgAAAAAAAEAAACkgepKAgBodHRwL3Rlc3RzL3htbGh0dHBy
ZXF1ZXN0L2FjY2Vzcy1jb250cm9sLXByZWZsaWdodC1jcmVkZW50aWFsLXN5bmMtc3RkZXJyLnR4
dFVUBQADfT+dWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAIeiSUrqa7XSNAEAAGgFAABLABgA
AAAAAAEAAACkgb5MAgBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2FjY2Vzcy1jb250cm9sLXBy
ZWZsaWdodC1oZWFkZXJzLWFzeW5jLXN0ZGVyci50eHRVVAUAA30/nVh1eAsAAQT1AQAABBQAAABQ
SwECHgMUAAIACACIoklKStwDqCEBAAC0AgAAQAAYAAAAAAABAAAApIF3TgIAaHR0cC90ZXN0cy94
bWxodHRwcmVxdWVzdC9jcm9zcy1vcmlnaW4tY29va2llLXN0b3JhZ2Utc3RkZXJyLnR4dFVUBQAD
gD+dWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAIiiSUq61WH/IAEAALQCAABGABgAAAAAAAEA
AACkgRJQAgBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2Nyb3NzLW9yaWdpbi1uby1jcmVkZW50
aWFsLXByb21wdC1zdGRlcnIudHh0VVQFAAOAP51YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
/Z5JSlsEWA6iBQAATRAAAAoAGAAAAAAAAQAAAKSBslECAGh0dHBkLmNvbmZVVAUAA845nVh1eAsA
AQT1AQAABBQAAABQSwECHgMKAAAAAADto0lKAAAAAAAAAAAAAAAACQAYAAAAAAAAABAA7UGYVwIA
aW1wb3J0ZWQvVVQFAAMeQp1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAVqVJSgAAAAAAAAAA
AAAAAA0AGAAAAAAAAAAQAO1B21cCAGltcG9ydGVkL3czYy9VVAUAA8NEnVh1eAsAAQT1AQAABBQA
AABQSwECHgMKAAAAAADto0lKAAAAAAAAAAAAAAAAGgAYAAAAAAAAABAA7UEiWAIAaW1wb3J0ZWQv
dzNjL1dlYkNyeXB0b0FQSS9VVAUAAx5CnVh1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAADuo0lK
AAAAAAAAAAAAAAAAJgAYAAAAAAAAABAA7UF2WAIAaW1wb3J0ZWQvdzNjL1dlYkNyeXB0b0FQSS9n
ZW5lcmF0ZUtleS9VVAUAAx9CnVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADto0lKjzQacEQA
AACgCQAARwAYAAAAAAABAAAApIHWWAIAaW1wb3J0ZWQvdzNjL1dlYkNyeXB0b0FQSS9nZW5lcmF0
ZUtleS90ZXN0X2ZhaWx1cmVzX1JTQS1PQUVQLXN0ZGVyci50eHRVVAUAAx5CnVh1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACADuo0lKVALJsjYAAADAAgAAUAAYAAAAAAABAAAApIGbWQIAaW1wb3J0
ZWQvdzNjL1dlYkNyeXB0b0FQSS9nZW5lcmF0ZUtleS90ZXN0X2ZhaWx1cmVzX1JTQVNTQS1QS0NT
MS12MV81LXN0ZGVyci50eHRVVAUAAx9CnVh1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAACpqElK
AAAAAAAAAAAAAAAAIAAYAAAAAAAAABAA7UFbWgIAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9VVAUAAw1KnVh1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAABWpUlKAAAAAAAAAAAAAAAA
JgAYAAAAAAAAABAA7UG1WgIAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9V
VAUAA8NEnVh1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAABYpUlKAAAAAAAAAAAAAAAAKgAYAAAA
AAAAABAA7UEVWwIAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvVVQF
AAPHRJ1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAVqVJSgAAAAAAAAAAAAAAADAAGAAAAAAA
AAAQAO1BeVsCAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2lj
L1VUBQADw0SdWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAFalSUpc7b5FkAAAAJ0AAABHABgA
AAAAAAEAAACkgeNbAgBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9i
YXNpYy9tb2RlLW5vLWNvcnMtc3RkZXJyLnR4dFVUBQADw0SdWHV4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIAFalSUosFsowkAAAAJ0AAABOABgAAAAAAAEAAACkgfRcAgBpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy9tb2RlLW5vLWNvcnMtd29ya2VyLXN0ZGVy
ci50eHRVVAUAA8NEnVh1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAABbpUlKAAAAAAAAAAAAAAAA
LwAYAAAAAAAAABAA7UEMXgIAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9h
cGkvY29ycy9VVAUAA81EnVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABYpUlKqU7FlKsAAACu
AwAARAAYAAAAAAABAAAApIF1XgIAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9hcGkvY29ycy9jb3JzLWJhc2ljLXN0ZGVyci50eHRVVAUAA8dEnVh1eAsAAQT1AQAABBQAAABQ
SwECHgMUAAIACABYpUlKZIPtsqoAAACuAwAASwAYAAAAAAABAAAApIGeXwIAaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvY29ycy9jb3JzLWJhc2ljLXdvcmtlci1zdGRl
cnIudHh0VVQFAAPHRJ1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAWaVJSsHS5vacAAAAOgEA
AEsAGAAAAAAAAQAAAKSBzWACAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
YXBpL2NvcnMvY29ycy1uby1wcmVmbGlnaHQtc3RkZXJyLnR4dFVUBQADyUSdWHV4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIAFmlSUqUEYabmwAAADoBAABSABgAAAAAAAEAAACkge5hAgBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9jb3JzL2NvcnMtbm8tcHJlZmxpZ2h0
LXdvcmtlci1zdGRlcnIudHh0VVQFAAPJRJ1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAWaVJ
SkUQomNFAgAARQwAAEUAGAAAAAAAAQAAAKSBFWMCAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZmV0Y2gvYXBpL2NvcnMvY29ycy1vcmlnaW4tc3RkZXJyLnR4dFVUBQADyUSdWHV4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIAFmlSUpFr5GAowAAAHQCAABMABgAAAAAAAEAAACkgdllAgBp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9jb3JzL2NvcnMtb3JpZ2lu
LXdvcmtlci1zdGRlcnIudHh0VVQFAAPJRJ1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAWqVJ
StGibhSZAQAA3gUAAEgAGAAAAAAAAQAAAKSBAmcCAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZmV0Y2gvYXBpL2NvcnMvY29ycy1wcmVmbGlnaHQtc3RkZXJyLnR4dFVUBQADy0SdWHV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAFulSUpllR7eygIAAL8TAABRABgAAAAAAAEAAACkgR1p
AgBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9jb3JzL2NvcnMtcmVk
aXJlY3QtcHJlZmxpZ2h0LXN0ZGVyci50eHRVVAUAA81EnVh1eAsAAQT1AQAABBQAAABQSwECHgMK
AAAAAACpqElKAAAAAAAAAAAAAAAAJQAYAAAAAAAAABAA7UFybAIAaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL1VUBQADDUqdWHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAKmo
SUoAAAAAAAAAAAAAAAAvABgAAAAAAAAAEADtQdFsAgBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvc2VtYW50aWNzL1VUBQADDUqdWHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAA
AKmoSUoAAAAAAAAAAAAAAAA1ABgAAAAAAAAAEADtQTptAgBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2Zvcm1zL1VUBQADDUqdWHV4CwABBPUBAAAEFAAAAFBL
AQIeAwoAAAAAAKmoSUoAAAAAAAAAAAAAAABBABgAAAAAAAAAEADtQaltAgBpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2Zvcm1zL2NvbnN0cmFpbnRzL1VUBQAD
DUqdWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAKmoSUr5F+2GNAIAAMg+AABqABgAAAAAAAEA
AACkgSRuAgBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2Zv
cm1zL2NvbnN0cmFpbnRzL2Zvcm0tdmFsaWRhdGlvbi1yZXBvcnRWYWxpZGl0eS1zdGRlcnIudHh0
VVQFAAMNSp1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAfalJSgAAAAAAAAAAAAAAABYAGAAA
AAAAAAAQAO1B/HACAGludGVyc2VjdGlvbi1vYnNlcnZlci9VVAUAA51LnVh1eAsAAQT1AQAABBQA
AABQSwECHgMUAAIACAB9qUlKiWNb6PQAAAAcAgAARgAYAAAAAAABAAAApIFMcQIAaW50ZXJzZWN0
aW9uLW9ic2VydmVyL2ludGVyc2VjdGlvbi1vYnNlcnZlci1lbnRyeS1pbnRlcmZhY2Utc3RkZXJy
LnR4dFVUBQADnUudWHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAH2pSUoAAAAAAAAAAAAAAAAH
ABgAAAAAAAAAEADtQcByAgBqcXVlcnkvVVQFAAOeS51YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAC
AAgAfalJSnL48V70AAAAHAIAABwAGAAAAAAAAQAAAKSBAXMCAGpxdWVyeS9hdHRyaWJ1dGVzLXN0
ZGVyci50eHRVVAUAA55LnVh1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAACnqUlKAAAAAAAAAAAA
AAAAAwAYAAAAAAAAABAA7UFLdAIAanMvVVQFAAPpS51YdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAA
AAAAp6lJSgAAAAAAAAAAAAAAAAcAGAAAAAAAAAAQAO1BiHQCAGpzL2RvbS9VVAUAA+lLnVh1eAsA
AQT1AQAABBQAAABQSwECHgMUAAIACACnqUlKN6xTIPMAAAAcAgAAIAAYAAAAAAABAAAApIHJdAIA
anMvZG9tL3JlZ3Jlc3MtMTU3MjQ2LXN0ZGVyci50eHRVVAUAA+lLnVh1eAsAAQT1AQAABBQAAABQ
SwECHgMUAAIACACnqUlKzdkGIfQAAAAcAgAAKAAYAAAAAAABAAAApIEWdgIAanMvZG9tL3JlbW92
aW5nLUNmLWNoYXJhY3RlcnMtc3RkZXJyLnR4dFVUBQAD6UudWHV4CwABBPUBAAAEFAAAAFBLAQIe
AwoAAAAAAPqqSUoAAAAAAAAAAAAAAAAGABgAAAAAAAAAEADtQWx3AgBtZWRpYS9VVAUAA2hOnVh1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADFqUlKJxgnJvQAAAAcAgAAIQAYAAAAAAABAAAApIGs
dwIAbWVkaWEvYWRvcHQtbm9kZS1jcmFzaC1zdGRlcnIudHh0VVQFAAMiTJ1YdXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgAxqlJSn6jIJD1AAAAHAIAACsAGAAAAAAAAQAAAKSB+3gCAG1lZGlhL2F1
ZGlvLWNvbmN1cnJlbnQtc3VwcG9ydGVkLXN0ZGVyci50eHRVVAUAAyRMnVh1eAsAAQT1AQAABBQA
AABQSwECHgMUAAIACADHqUlKaqa0wfQAAAAcAgAALwAYAAAAAAABAAAApIFVegIAbWVkaWEvYXVk
aW8tY29udHJvbHMtZG8tbm90LWZhZGUtb3V0LXN0ZGVyci50eHRVVAUAAyVMnVh1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACADHqUlKdleChPQAAAAcAgAAOgAYAAAAAAABAAAApIGyewIAbWVkaWEv
YXVkaW8tY29udHJvbHMtdGltZWxpbmUtaW4tbWVkaWEtZG9jdW1lbnQtc3RkZXJyLnR4dFVUBQAD
JkydWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAMepSUoPhLY/8wAAABwCAAAfABgAAAAAAAEA
AACkgRp9AgBtZWRpYS9hdWRpby1kYXRhLXVybC1zdGRlcnIudHh0VVQFAAMmTJ1YdXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgAyKlJStKcftPyAAAAHAIAAB4AGAAAAAAAAQAAAKSBZn4CAG1lZGlh
L2F1ZGlvLXJlcGFpbnQtc3RkZXJyLnR4dFVUBQADKEydWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIAMipSUoNK/+R8wAAABwCAAA4ABgAAAAAAAEAAACkgbB/AgBtZWRpYS9hdXRvLXBsYXktaW4t
c2FuZGJveC13aXRoLWFsbG93LXNjcmlwdHMtc3RkZXJyLnR4dFVUBQADKEydWHV4CwABBPUBAAAE
FAAAAFBLAQIeAwoAAAAAAPqqSUoAAAAAAAAAAAAAAAAPABgAAAAAAAAAEADtQRWBAgBtZWRpYS9j
b250cm9scy9VVAUAA2hOnVh1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAD6qklKAAAAAAAAAAAA
AAAAFAAYAAAAAAAAABAA7UFegQIAbWVkaWEvY29udHJvbHMvaXBhZC9VVAUAA2hOnVh1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACAD6qklKMuJWb/kAAADcAQAAWQAYAAAAAAABAAAApIGsgQIAbWVk
aWEvY29udHJvbHMvaXBhZC9jbG9zZS1wYWdlLXdpdGgtcGljdHVyZS1pbi1waWN0dXJlLXZpZGVv
LWFzc2VydGlvbi1mYWlsdXJlLWFjdHVhbC50eHRVVAUAA2hOnVh1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACAD6qklKWywXjeIAAAD6AQAAVwAYAAAAAAABAAAApIE4gwIAbWVkaWEvY29udHJvbHMv
aXBhZC9jbG9zZS1wYWdlLXdpdGgtcGljdHVyZS1pbi1waWN0dXJlLXZpZGVvLWFzc2VydGlvbi1m
YWlsdXJlLWRpZmYudHh0VVQFAANoTp1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA+qpJSneP
ZaP5AAAAswEAAFsAGAAAAAAAAQAAAKSBq4QCAG1lZGlhL2NvbnRyb2xzL2lwYWQvY2xvc2UtcGFn
ZS13aXRoLXBpY3R1cmUtaW4tcGljdHVyZS12aWRlby1hc3NlcnRpb24tZmFpbHVyZS1leHBlY3Rl
ZC50eHRVVAUAA2hOnVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAD6qklKs3eeItMHAADTGgAA
XwAYAAAAAAABAAAApIE5hgIAbWVkaWEvY29udHJvbHMvaXBhZC9jbG9zZS1wYWdlLXdpdGgtcGlj
dHVyZS1pbi1waWN0dXJlLXZpZGVvLWFzc2VydGlvbi1mYWlsdXJlLXByZXR0eS1kaWZmLmh0bWxV
VAUAA2hOnVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADJqUlKsuxVl/MAAAAcAgAAMAAYAAAA
AAABAAAApIGljgIAbWVkaWEvY29udHJvbHMtcmlnaHQtY2xpY2stb24tdGltZWJhci1zdGRlcnIu
dHh0VVQFAAMpTJ1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAyalJStQINW7zAAAAHAIAACIA
GAAAAAAAAQAAAKSBApACAG1lZGlhL2V2ZW50LXF1ZXVlLWNyYXNoLXN0ZGVyci50eHRVVAUAAypM
nVh1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAADvqUlKAAAAAAAAAAAAAAAACgAYAAAAAAAAABAA
7UFRkQIAbWVkaWEvaW9zL1VUBQADckydWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAO+pSUr+
26FV8wAAABwCAAAzABgAAAAAAAEAAACkgZWRAgBtZWRpYS9pb3MvYXV0b3BsYXktb25seS1pbi1t
YWluLWRvY3VtZW50LXN0ZGVyci50eHRVVAUAA3JMnVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIA
CADLqUlKVLeFj/QAAAAcAgAAJQAYAAAAAAABAAAApIH1kgIAbWVkaWEvbWVkaWEtY29udHJvbHMt
Y2xvbmUtc3RkZXJyLnR4dFVUBQADLkydWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAMypSUos
5R8O9AAAABwCAAA5ABgAAAAAAAEAAACkgUiUAgBtZWRpYS9tZWRpYS1jb250cm9scy1zaGFkb3ct
Y29uc3RydWN0aW9uLWNyYXNoLXN0ZGVyci50eHRVVAUAAy9MnVh1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACADMqUlKA/OoiQoBAAA4BAAANgAYAAAAAAABAAAApIGvlQIAbWVkaWEvbWVkaWEtZG9j
dW1lbnQtYXVkaW8tY29udHJvbHMtdmlzaWJsZS1zdGRlcnIudHh0VVQFAAMvTJ1YdXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgAzKlJStCkm5IKAQAAOAQAACoAGAAAAAAAAQAAAKSBKZcCAG1lZGlh
L21lZGlhLWRvY3VtZW50LWF1ZGlvLXNpemUtc3RkZXJyLnR4dFVUBQADMEydWHV4CwABBPUBAAAE
FAAAAFBLAQIeAwoAAAAAAPqqSUoAAAAAAAAAAAAAAAAcABgAAAAAAAAAEADtQZeYAgBtZWRpYS9t
b2Rlcm4tbWVkaWEtY29udHJvbHMvVVQFAANoTp1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA
+qpJSgAAAAAAAAAAAAAAACgAGAAAAAAAAAAQAO1B7ZgCAG1lZGlhL21vZGVybi1tZWRpYS1jb250
cm9scy9waXAtc3VwcG9ydC9VVAUAA2hOnVh1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAD6qklK
AAAAAAAAAAAAAAAALQAYAAAAAAAAABAA7UFPmQIAbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xz
L3BpcC1zdXBwb3J0L2lwYWQvVVQFAANoTp1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA+qpJ
SqKM2Eq5AAAALAEAAEsAGAAAAAAAAQAAAKSBtpkCAG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9s
cy9waXAtc3VwcG9ydC9pcGFkL3BpcC1zdXBwb3J0LWVuYWJsZWQtYWN0dWFsLnR4dFVUBQADaE6d
WHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAPqqSUpf5CALHwEAAI4CAABJABgAAAAAAAEAAACk
gfSaAgBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvcGlwLXN1cHBvcnQvaXBhZC9waXAtc3Vw
cG9ydC1lbmFibGVkLWRpZmYudHh0VVQFAANoTp1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
+qpJSqsF3VqmAAAAGQEAAE0AGAAAAAAAAQAAAKSBlpwCAG1lZGlhL21vZGVybi1tZWRpYS1jb250
cm9scy9waXAtc3VwcG9ydC9pcGFkL3BpcC1zdXBwb3J0LWVuYWJsZWQtZXhwZWN0ZWQudHh0VVQF
AANoTp1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA+qpJSj+o3y1RCAAAoBwAAFEAGAAAAAAA
AQAAAKSBw50CAG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9waXAtc3VwcG9ydC9pcGFkL3Bp
cC1zdXBwb3J0LWVuYWJsZWQtcHJldHR5LWRpZmYuaHRtbFVUBQADaE6dWHV4CwABBPUBAAAEFAAA
AFBLAQIeAwoAAAAAAA+qSUoAAAAAAAAAAAAAAAAMABgAAAAAAAAAEADtQZ+mAgBtZWRpYS90cmFj
ay9VVAUAA61MnVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAADqklKApxrK/MAAAAcAgAANQAY
AAAAAAABAAAApIHlpgIAbWVkaWEvdHJhY2svdHJhY2stY3VlLXJlbmRlcmluZy1ob3Jpem9udGFs
LXN0ZGVyci50eHRVVAUAA5ZMnVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAEqklK02s+0vQA
AAAcAgAALgAYAAAAAAABAAAApIFHqAIAbWVkaWEvdHJhY2svdHJhY2stY3VlLXJlbmRlcmluZy1y
dGwtc3RkZXJyLnR4dFVUBQADl0ydWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAASqSUr45GNp
8gAAABwCAAAzABgAAAAAAAEAAACkgaOpAgBtZWRpYS90cmFjay90cmFjay1jdWUtcmVuZGVyaW5n
LXZlcnRpY2FsLXN0ZGVyci50eHRVVAUAA5dMnVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAE
qklKhy90yvUAAAAcAgAANwAYAAAAAAABAAAApIECqwIAbWVkaWEvdHJhY2svdHJhY2stY3VlLXJl
bmRlcmluZy13aXRoLXBhZGRpbmctc3RkZXJyLnR4dFVUBQADmEydWHV4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIAAeqSUpWiXib9AAAABwCAAArABgAAAAAAAEAAACkgWisAgBtZWRpYS90cmFjay90
cmFjay1jdWVzLWN1ZWNoYW5nZS1zdGRlcnIudHh0VVQFAAOeTJ1YdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DFAACAAgAC6pJSskX59n0AAAAHAIAACgAGAAAAAAAAQAAAKSBwa0CAG1lZGlhL3RyYWNrL3Ry
YWNrLWN1ZXMtbWlzc2VkLXN0ZGVyci50eHRVVAUAA6VMnVh1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACAAOqklKMfOJEfQAAAAcAgAASQAYAAAAAAABAAAApIEXrwIAbWVkaWEvdHJhY2svdHJhY2st
aW4tYmFuZC1kdXBsaWNhdGUtdHJhY2tzLXdoZW4tc291cmNlLWNoYW5nZXMtc3RkZXJyLnR4dFVU
BQADrEydWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAA+qSUrXF+F39QAAABwCAAAqABgAAAAA
AAEAAACkgY6wAgBtZWRpYS90cmFjay90cmFjay1pbi1iYW5kLXN0eWxlLXN0ZGVyci50eHRVVAUA
A61MnVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADSqUlKxMqsl/QAAAAcAgAAPAAYAAAAAAAB
AAAApIHnsQIAbWVkaWEvdmlkZW8tY29udHJvbHMtY2FwdGlvbnMtdHJhY2ttZW51LWxvY2FsaXpl
ZC1zdGRlcnIudHh0VVQFAAM8TJ1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA06lJSsPrUZ32
AAAAHAIAADoAGAAAAAAAAQAAAKSBUbMCAG1lZGlhL3ZpZGVvLWNvbnRyb2xzLXRvLW5vdC1zY3Jv
bGwtcGFnZS1vbi1sb2FkLXN0ZGVyci50eHRVVAUAAz1MnVh1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACADUqUlK1gPZZPQAAAAcAgAAJQAYAAAAAAABAAAApIG7tAIAbWVkaWEvdmlkZW8tZGlzcGxh
eS10b2dnbGUtc3RkZXJyLnR4dFVUBQADQEydWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIANWp
SUqFPQoLCgEAADgEAAAlABgAAAAAAAEAAACkgQ62AgBtZWRpYS92aWRlby1kb2N1bWVudC10eXBl
cy1zdGRlcnIudHh0VVQFAANBTJ1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA1qlJSkRFkEn0
AAAAHAIAACMAGAAAAAAAAQAAAKSBd7cCAG1lZGlhL3ZpZGVvLWVtcHR5LXNvdXJjZS1zdGRlcnIu
dHh0VVQFAANDTJ1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA1qlJSltfptzyAAAAHAIAADQA
GAAAAAAAAQAAAKSByLgCAG1lZGlhL3ZpZGVvLWVuZGVkLWV2ZW50LW5lZ2F0aXZlLXBsYXliYWNr
LXN0ZGVyci50eHRVVAUAA0RMnVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADaqUlKbFsL/fQA
AAAcAgAAHwAYAAAAAAABAAAApIEougIAbWVkaWEvdmlkZW8tbm8tYXVkaW8tc3RkZXJyLnR4dFVU
BQADTEydWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIANupSUrDgg1M8wAAABwCAAAiABgAAAAA
AAEAAACkgXW7AgBtZWRpYS92aWRlby1uby1hdXRvcGxheS1zdGRlcnIudHh0VVQFAANNTJ1YdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA6alJSrqrt+P0AAAAHAIAACQAGAAAAAAAAQAAAKSBxLwC
AG1lZGlhL3ZpZGVvLXZvbHVtZS1zbGlkZXItc3RkZXJyLnR4dFVUBQADZUydWHV4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIAOmpSUqbcikF8wAAABwCAAAjABgAAAAAAAEAAACkgRa+AgBtZWRpYS92
aWRlby13aWR0aC1oZWlnaHQtc3RkZXJyLnR4dFVUBQADZkydWHV4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIAOmpSUqL/I6o8wAAABwCAAAkABgAAAAAAAEAAACkgWa/AgBtZWRpYS92aWRlby16b29t
LWNvbnRyb2xzLXN0ZGVyci50eHRVVAUAA2ZMnVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADq
qUlKyYDtfPEAAAAcAgAAGwAYAAAAAAABAAAApIG3wAIAbWVkaWEvdmlkZW8tem9vbS1zdGRlcnIu
dHh0VVQFAANnTJ1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAFapJSgAAAAAAAAAAAAAAAAkA
GAAAAAAAAAAQAO1B/cECAHBsYXRmb3JtL1VUBQADukydWHV4CwABBPUBAAAEFAAAAFBLAQIeAwoA
AAAAABWqSUoAAAAAAAAAAAAAAAAXABgAAAAAAAAAEADtQUDCAgBwbGF0Zm9ybS9pb3Mtc2ltdWxh
dG9yL1VUBQADukydWHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAABWqSUoAAAAAAAAAAAAAAAAd
ABgAAAAAAAAAEADtQZHCAgBwbGF0Zm9ybS9pb3Mtc2ltdWxhdG9yL21lZGlhL1VUBQADukydWHV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIABWqSUqdj32B9QAAABwCAABuABgAAAAAAAEAAACkgejC
AgBwbGF0Zm9ybS9pb3Mtc2ltdWxhdG9yL21lZGlhL3ZpZGVvLXBsYXktZ2x5cGgtY29tcG9zaXRl
ZC1vdXRzaWRlLW92ZXJmbG93LXNjcm9sbGluZy10b3VjaC1jb250YWluZXItc3RkZXJyLnR4dFVU
BQADukydWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAJCiSUq3CcBwfQIAAMYfAAAaABgAAAAA
AAEAAACkgYXEAgBweXdlYnNvY2tldC53cy5sb2ctZXJyLnR4dFVUBQADjz+dWHV4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIAIGiSUrY4D7uCgEAAI8CAAAaABgAAAAAAAEAAACkgVbHAgBweXdlYnNv
Y2tldC53cy5sb2ctb3V0LnR4dFVUBQADcT+dWHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAACf
SUoAAAAAAAAAAAAAAAAbABgAAAAAAAAAAACkgbTIAgBweXdlYnNvY2tldC53c3MubG9nLWVyci50
eHRVVAUAA9A5nVh1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAAAn0lKAAAAAAAAAAAAAAAAGwAY
AAAAAAAAAAAApIEJyQIAcHl3ZWJzb2NrZXQud3NzLmxvZy1vdXQudHh0VVQFAAPQOZ1YdXgLAAEE
9QEAAAQUAAAAUEsBAh4DCgAAAAAAF6pJSgAAAAAAAAAAAAAAAAoAGAAAAAAAAAAQAO1BXskCAHF1
aWNrbG9vay9VVAUAA75MnVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAWqklKhihHug0BAAA4
BAAAIQAYAAAAAAABAAAApIGiyQIAcXVpY2tsb29rL2V4Y2VsLWxlZ2FjeS1zdGRlcnIudHh0VVQF
AAO7TJ1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAFqpJSt5WETWIAAAAAAYAABwAGAAAAAAA
AQAAAKSBCssCAHF1aWNrbG9vay9rZXlub3RlLXN0ZGVyci50eHRVVAUAA7xMnVh1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACAAXqklK1pNKhIYAAAAABAAAHAAYAAAAAAABAAAApIHoywIAcXVpY2ts
b29rL251bWJlcnMtc3RkZXJyLnR4dFVUBQADvUydWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
ABeqSUqUeWzihgAAAAAEAAAaABgAAAAAAAEAAACkgcTMAgBxdWlja2xvb2svcGFnZXMtc3RkZXJy
LnR4dFVUBQADvkydWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAASrSUpFJh050ScAAMuqAAAM
ABgAAAAAAAEAAACkgZ7NAgByZXN1bHRzLmh0bWxVVAUAA3dOnVh1eAsAAQT1AQAABBQAAABQSwEC
HgMKAAAAAAACq0lKAAAAAAAAAAAAAAAACAAYAAAAAAAAABAA7UG19QIAcmV0cmllcy9VVAUAA3NO
nVh1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAADzqklKAAAAAAAAAAAAAAAAFAAYAAAAAAAAABAA
7UH39QIAcmV0cmllcy9jb21wb3NpdGluZy9VVAUAA1pOnVh1eAsAAQT1AQAABBQAAABQSwECHgMK
AAAAAADzqklKAAAAAAAAAAAAAAAAGgAYAAAAAAAAABAA7UFF9gIAcmV0cmllcy9jb21wb3NpdGlu
Zy9tYXNrcy9VVAUAA1pOnVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADzqklKCHrbdVACAACL
jQAANwAYAAAAAAAAAAAApIGZ9gIAcmV0cmllcy9jb21wb3NpdGluZy9tYXNrcy9zb2xpZC1jb2xv
ci1tYXNrZWQtYWN0dWFsLnBuZ1VUBQADWk6dWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAPOq
SUqGMWOkphYAAJE0AAA1ABgAAAAAAAAAAACkgVr5AgByZXRyaWVzL2NvbXBvc2l0aW5nL21hc2tz
L3NvbGlkLWNvbG9yLW1hc2tlZC1kaWZmLnBuZ1VUBQADWk6dWHV4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIAPOqSUpCoTg2kAUAACYSAAA3ABgAAAAAAAEAAACkgW8QAwByZXRyaWVzL2NvbXBvc2l0
aW5nL21hc2tzL3NvbGlkLWNvbG9yLW1hc2tlZC1kaWZmcy5odG1sVVQFAANaTp1YdXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgA86pJShXLe6TlAAAArgEAADoAGAAAAAAAAQAAAKSBcBYDAHJldHJp
ZXMvY29tcG9zaXRpbmcvbWFza3Mvc29saWQtY29sb3ItbWFza2VkLWV4cGVjdGVkLmh0bWxVVAUA
A1pOnVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADzqklKG8qW8AY5AAALxwAAOQAYAAAAAAAA
AAAApIHJFwMAcmV0cmllcy9jb21wb3NpdGluZy9tYXNrcy9zb2xpZC1jb2xvci1tYXNrZWQtZXhw
ZWN0ZWQucG5nVVQFAANaTp1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA86pJSlUL7ET0AAAA
HAIAADcAGAAAAAAAAQAAAKSBQlEDAHJldHJpZXMvY29tcG9zaXRpbmcvbWFza3Mvc29saWQtY29s
b3ItbWFza2VkLXN0ZGVyci50eHRVVAUAA1pOnVh1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAAC
q0lKAAAAAAAAAAAAAAAADQAYAAAAAAAAABAA7UGnUgMAcmV0cmllcy9mYXN0L1VUBQADc06dWHV4
CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAPOqSUoAAAAAAAAAAAAAAAAXABgAAAAAAAAAEADtQe5S
AwByZXRyaWVzL2Zhc3Qvc2Nyb2xsaW5nL1VUBQADWk6dWHV4CwABBPUBAAAEFAAAAFBLAQIeAwoA
AAAAAPOqSUoAAAAAAAAAAAAAAAAbABgAAAAAAAAAEADtQT9TAwByZXRyaWVzL2Zhc3Qvc2Nyb2xs
aW5nL2lvcy9VVAUAA1pOnVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADzqklKzdqWVMgAAAAh
AQAAQAAYAAAAAAABAAAApIGUUwMAcmV0cmllcy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWV2
ZW50cy1iYWNrLWZvcndhcmQtYWN0dWFsLnR4dFVUBQADWk6dWHV4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIAPOqSUoh1YIR7QAAANEBAAA+ABgAAAAAAAEAAACkgdZUAwByZXRyaWVzL2Zhc3Qvc2Ny
b2xsaW5nL2lvcy9zY3JvbGwtZXZlbnRzLWJhY2stZm9yd2FyZC1kaWZmLnR4dFVUBQADWk6dWHV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAPOqSUqQOHswugAAABIBAABCABgAAAAAAAEAAACkgTtW
AwByZXRyaWVzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtZXZlbnRzLWJhY2stZm9yd2FyZC1l
eHBlY3RlZC50eHRVVAUAA1pOnVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADzqklKxFNA3xcI
AADeGwAARgAYAAAAAAABAAAApIFxVwMAcmV0cmllcy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xs
LWV2ZW50cy1iYWNrLWZvcndhcmQtcHJldHR5LWRpZmYuaHRtbFVUBQADWk6dWHV4CwABBPUBAAAE
FAAAAFBLAQIeAwoAAAAAAAKrSUoAAAAAAAAAAAAAAAAWABgAAAAAAAAAEADtQQhgAwByZXRyaWVz
L2Zhc3Qvdmlld3BvcnQvVVQFAANzTp1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAAqtJSgAA
AAAAAAAAAAAAABoAGAAAAAAAAAAQAO1BWGADAHJldHJpZXMvZmFzdC92aWV3cG9ydC9pb3MvVVQF
AANzTp1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAAqtJSgAAAAAAAAAAAAAAAB8AGAAAAAAA
AAAQAO1BrGADAHJldHJpZXMvZmFzdC92aWV3cG9ydC9pb3MvaXBhZC9VVAUAA3NOnVh1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACAACq0lK8QL5J2sAAACmAAAAPwAYAAAAAAABAAAApIEFYQMAcmV0
cmllcy9mYXN0L3ZpZXdwb3J0L2lvcy9pcGFkL3dpZHRoLWlzLWRldmljZS13aWR0aC1hY3R1YWwu
dHh0VVQFAANzTp1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAAqtJSs7Oob7uAAAAIgIAAD0A
GAAAAAAAAQAAAKSB6WEDAHJldHJpZXMvZmFzdC92aWV3cG9ydC9pb3MvaXBhZC93aWR0aC1pcy1k
ZXZpY2Utd2lkdGgtZGlmZi50eHRVVAUAA3NOnVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAC
q0lKnS/hgm0AAACnAAAAQQAYAAAAAAABAAAApIFOYwMAcmV0cmllcy9mYXN0L3ZpZXdwb3J0L2lv
cy9pcGFkL3dpZHRoLWlzLWRldmljZS13aWR0aC1leHBlY3RlZC50eHRVVAUAA3NOnVh1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACAACq0lKdBcalOsHAACuGgAARQAYAAAAAAABAAAApIE2ZAMAcmV0
cmllcy9mYXN0L3ZpZXdwb3J0L2lvcy9pcGFkL3dpZHRoLWlzLWRldmljZS13aWR0aC1wcmV0dHkt
ZGlmZi5odG1sVVQFAANzTp1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAAqtJSgAAAAAAAAAA
AAAAAA4AGAAAAAAAAAAQAO1BoGwDAHJldHJpZXMvbWVkaWEvVVQFAANzTp1YdXgLAAEE9QEAAAQU
AAAAUEsBAh4DCgAAAAAAAqtJSgAAAAAAAAAAAAAAABcAGAAAAAAAAAAQAO1B6GwDAHJldHJpZXMv
bWVkaWEvY29udHJvbHMvVVQFAANzTp1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAAqtJSgAA
AAAAAAAAAAAAABwAGAAAAAAAAAAQAO1BOW0DAHJldHJpZXMvbWVkaWEvY29udHJvbHMvaXBhZC9V
VAUAA3NOnVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAACq0lKMuJWb/kAAADcAQAAYQAYAAAA
AAABAAAApIGPbQMAcmV0cmllcy9tZWRpYS9jb250cm9scy9pcGFkL2Nsb3NlLXBhZ2Utd2l0aC1w
aWN0dXJlLWluLXBpY3R1cmUtdmlkZW8tYXNzZXJ0aW9uLWZhaWx1cmUtYWN0dWFsLnR4dFVUBQAD
c06dWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAAKrSUqAz55k5gAAAAoCAABfABgAAAAAAAEA
AACkgSNvAwByZXRyaWVzL21lZGlhL2NvbnRyb2xzL2lwYWQvY2xvc2UtcGFnZS13aXRoLXBpY3R1
cmUtaW4tcGljdHVyZS12aWRlby1hc3NlcnRpb24tZmFpbHVyZS1kaWZmLnR4dFVUBQADc06dWHV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAAKrSUp3j2Wj+QAAALMBAABjABgAAAAAAAEAAACkgaJw
AwByZXRyaWVzL21lZGlhL2NvbnRyb2xzL2lwYWQvY2xvc2UtcGFnZS13aXRoLXBpY3R1cmUtaW4t
cGljdHVyZS12aWRlby1hc3NlcnRpb24tZmFpbHVyZS1leHBlY3RlZC50eHRVVAUAA3NOnVh1eAsA
AQT1AQAABBQAAABQSwECHgMUAAIACAACq0lKAjxnl9kHAADbGgAAZwAYAAAAAAABAAAApIE4cgMA
cmV0cmllcy9tZWRpYS9jb250cm9scy9pcGFkL2Nsb3NlLXBhZ2Utd2l0aC1waWN0dXJlLWluLXBp
Y3R1cmUtdmlkZW8tYXNzZXJ0aW9uLWZhaWx1cmUtcHJldHR5LWRpZmYuaHRtbFVUBQADc06dWHV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAAKrSUpc7VlP8wAAABwCAABhABgAAAAAAAEAAACkgbJ6
AwByZXRyaWVzL21lZGlhL2NvbnRyb2xzL2lwYWQvY2xvc2UtcGFnZS13aXRoLXBpY3R1cmUtaW4t
cGljdHVyZS12aWRlby1hc3NlcnRpb24tZmFpbHVyZS1zdGRlcnIudHh0VVQFAANzTp1YdXgLAAEE
9QEAAAQUAAAAUEsBAh4DCgAAAAAAAqtJSgAAAAAAAAAAAAAAACQAGAAAAAAAAAAQAO1BQHwDAHJl
dHJpZXMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL1VUBQADc06dWHV4CwABBPUBAAAEFAAA
AFBLAQIeAwoAAAAAAAKrSUoAAAAAAAAAAAAAAAAwABgAAAAAAAAAEADtQZ58AwByZXRyaWVzL21l
ZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9waXAtc3VwcG9ydC9VVAUAA3NOnVh1eAsAAQT1AQAA
BBQAAABQSwECHgMKAAAAAAACq0lKAAAAAAAAAAAAAAAANQAYAAAAAAAAABAA7UEIfQMAcmV0cmll
cy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvcGlwLXN1cHBvcnQvaXBhZC9VVAUAA3NOnVh1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAACq0lKoozYSrkAAAAsAQAAUwAYAAAAAAABAAAApIF3
fQMAcmV0cmllcy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvcGlwLXN1cHBvcnQvaXBhZC9w
aXAtc3VwcG9ydC1lbmFibGVkLWFjdHVhbC50eHRVVAUAA3NOnVh1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACAACq0lKZBGPoyMBAACeAgAAUQAYAAAAAAABAAAApIG9fgMAcmV0cmllcy9tZWRpYS9t
b2Rlcm4tbWVkaWEtY29udHJvbHMvcGlwLXN1cHBvcnQvaXBhZC9waXAtc3VwcG9ydC1lbmFibGVk
LWRpZmYudHh0VVQFAANzTp1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAAqtJSqsF3VqmAAAA
GQEAAFUAGAAAAAAAAQAAAKSBa4ADAHJldHJpZXMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xz
L3BpcC1zdXBwb3J0L2lwYWQvcGlwLXN1cHBvcnQtZW5hYmxlZC1leHBlY3RlZC50eHRVVAUAA3NO
nVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAACq0lKABvJfVYIAACoHAAAWQAYAAAAAAABAAAA
pIGggQMAcmV0cmllcy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvcGlwLXN1cHBvcnQvaXBh
ZC9waXAtc3VwcG9ydC1lbmFibGVkLXByZXR0eS1kaWZmLmh0bWxVVAUAA3NOnVh1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACAAEq0lKea+UeY+pBgC/VigACgAYAAAAAAABAAAApIGJigMAc3RhdHMu
anNvblVUBQADd06dWHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAHaqSUoAAAAAAAAAAAAAAAAE
ABgAAAAAAAAAEADtQVw0CgBzdmcvVVQFAANwTZ1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA
dqpJSgAAAAAAAAAAAAAAAA0AGAAAAAAAAAAQAO1BmjQKAHN2Zy9hcy1pbWFnZS9VVAUAA3BNnVh1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAB2qklK2wjTQjsAAAA/AAAAPwAYAAAAAAABAAAApIHh
NAoAc3ZnL2FzLWltYWdlL3N2Zy1pbWFnZS13aXRoLWRhdGEtdXJpLWltYWdlcy1kaXNhYmxlZC1z
dGRlcnIudHh0VVQFAANwTZ1YdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAz6pJSgAAAAAAAAAA
AAAAAAsAGAAAAAAAAAAQAO1BlTUKAHdlYmFyY2hpdmUvVVQFAAMWTp1YdXgLAAEE9QEAAAQUAAAA
UEsBAh4DFAACAAgAz6pJStsI00I7AAAAPwAAADoAGAAAAAAAAQAAAKSB2jUKAHdlYmFyY2hpdmUv
dGVzdC1saW5rLXJlbC1zdWJyZXNvdXJjZS1iZWZvcmVsb2FkLXN0ZGVyci50eHRVVAUAAxZOnVh1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACBqUlKvLMdWIDgAQAZjj4AGQAYAAAAAAABAAAApIGJ
NgoAd3B0d2tfcHJvY2Vzc19sb2cub3V0LnR4dFVUBQADoUudWHV4CwABBPUBAAAEFAAAAFBLBQYA
AAAAGAEYAeZ8AABcFwwAAAA=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>301437</attachid>
            <date>2017-02-13 18:54:48 -0800</date>
            <delta_ts>2017-02-14 18:37:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-162458-20170213185215.patch</filename>
            <type>text/plain</type>
            <size>87460</size>
            <attacher name="Srinivasan Vijayaraghavan">webkit</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEyMTUyCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMjEzZWYxNzgzNzkyOWQ1YzAwZjhiMGY0NWI4ZTcyNDhm
MWVlOTdiMi4uNjM0ZTA2NjIyMmQwMjcyMzRiNjMzMjVhYTMxODJkM2FkZGZlY2VjNSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEz
MiBAQAorMjAxNy0wMi0wOSAgU3Jpbml2YXNhbiBWaWpheWFyYWdoYXZhbiAgPHN2aWpheWFyYWdo
YXZhbkBhcHBsZS5jb20+CisKKyAgICAgICAgRVdTIHNob3VsZCBydW4gSmF2YVNjcmlwdENvcmUg
dGVzdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2
MjQ1OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
UXVldWVTdGF0dXNTZXJ2ZXIvY29uZmlnL3F1ZXVlcy5weTogQWRkIGpzYy1ld3MgcXVldWUKKyAg
ICAgICAgKiBRdWV1ZVN0YXR1c1NlcnZlci9tb2RlbC9xdWV1ZXN0YXR1cy5weToKKyAgICAgICAg
KFF1ZXVlU3RhdHVzLmRpZF9za2lwKTogUmV0dXJucyB3aGV0aGVyIHBhdGNoIHdhcyBza2lwcGVk
LCBiYXNlZCBvbiBzdGF0dXMuCisgICAgICAgICogUXVldWVTdGF0dXNTZXJ2ZXIvaGFuZGxlcnMv
c3RhdHVzYnViYmxlLnB5OgorICAgICAgICAoU3RhdHVzQnViYmxlLl9zaG91bGRfc2hvd19idWJi
bGVfZm9yKTogQWRkIGxvZ2ljIHRvIGhpZGUganNjLWV3cyBidWJibGUgaWYgdGhlIHBhdGNoIGRv
ZXMgbm90IHRvdWNoIGpzYy4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVj
a291dC9zY20vc2NtX21vY2sucHk6CisgICAgICAgIChNb2NrU0NNLl9faW5pdF9fKTogQWRkIF9t
b2NrQ2hhbmdlZEZpbGVzIHZhcmlhYmxlLgorICAgICAgICAoTW9ja1NDTS5jaGFuZ2VkX2ZpbGVz
KTogQ2hhbmdlIHRvIHVzZSBfbW9ja0NoYW5nZWRGaWxlcyB2YXJpYWJsZXMuCisgICAgICAgICog
U2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL2V3cy5qc29uOiBBZGQgY29uZmlnIGluZm8g
Zm9yIEpTQyBFV1MuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL3Bv
cnRzLnB5OiBBZGQgc3VwcG9ydCBmb3IgSlNDIEVXUyBpbiBNYWMgUG9ydC4KKyAgICAgICAgKERl
cHJlY2F0ZWRQb3J0LmJ1aWxkX2pzY19jb21tYW5kKTogQWRkZWQgLSBjb21tYW5kIHRvIGJ1aWxk
IEpTQyBvbmx5IChxdWlja2VyIHRoYW4gYnVpbGRpbmcgYWxsIG9mIFdlYktpdCkuCisgICAgICAg
IChEZXByZWNhdGVkUG9ydC5ydW5famF2YXNjcmlwdGNvcmVfdGVzdHNfY29tbWFuZCk6IEFsbG93
IEpTQyBFV1MgdG8gb25seSBydW4gSlNDIHRlc3RzLgorICAgICAgICAoTWFjUG9ydC5ydW5fd2Vi
a2l0X3Rlc3RzX2NvbW1hbmQpOiBDaGVjayBmb3IgSlNDLgorICAgICAgICAqIFNjcmlwdHMvd2Vi
a2l0cHkvY29tbW9uL2NvbmZpZy9wb3J0c19tb2NrLnB5OgorICAgICAgICAoTW9ja1BvcnQucnVu
X2phdmFzY3JpcHRjb3JlX3Rlc3RzX2NvbW1hbmQpOiBBZGQgYnVpbGRfc3R5bGUgYXJndW1lbnQu
CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL3BvcnRzX3VuaXR0ZXN0
LnB5OgorICAgICAgICAoRGVwcmVjYXRlZFBvcnRUZXN0LnRlc3RfbWFjX3BvcnQpOiBBZGQgdW5p
dCB0ZXN0cyBmb3IgYnVpbGQtanNjIHNoZWxsIGNvbW1hbmQuCisgICAgICAgICogU2NyaXB0cy93
ZWJraXRweS9jb21tb24vbmV0L2pzY3Rlc3RyZXN1bHRzLnB5OiBBZGRlZC4KKyAgICAgICAgKEpT
Q1Rlc3RSZXN1bHRzKTogQWRkZWQuCisgICAgICAgIChKU0NUZXN0UmVzdWx0cy5pbnRlcnNlY3Rp
b24pOiBSZXR1cm4gYSBKU0NUZXN0UmVzdWx0cyBvYmplY3Qgd2l0aCBmYWlsdXJlcyBjb21tb24g
dG8gYm90aCBpbnB1dCBvYmplY3RzLgorICAgICAgICAoSlNDVGVzdFJlc3VsdHMucmVzdWx0c19m
cm9tX3N0cmluZyk6IFVzZSBqc29uIGxpYnJhcnkgdG8gcGFyc2UgcmVzdWx0cy4KKyAgICAgICAg
KEpTQ1Rlc3RSZXN1bHRzLl9faW5pdF9fKTogSW5pdGlhbGl6ZSBtZW1iZXJzLgorICAgICAgICAo
SlNDVGVzdFJlc3VsdHMuZXF1YWxzKTogVGhpcyBlbmFibGVzIHVuaXQgdGVzdGluZy4KKyAgICAg
ICAgKEpTQ1Rlc3RSZXN1bHRzLmlzX3N1YnNldCk6IENoZWNrcyBpZiBvbmUgc2V0IG9mIGZhaWx1
cmVzIGlzIGEgc3Vic2V0IG9mIGFub3RoZXIuCisgICAgICAgIChKU0NUZXN0UmVzdWx0cy5hbGxf
cGFzc2VkKTogR2V0dGVyLgorICAgICAgICAoSlNDVGVzdFJlc3VsdHMuZmFpbGluZ190ZXN0X3Jl
c3VsdHMpOiBHZXR0ZXIuIFNvbWUgb2YgdGhlc2UgZXhpc3QgZm9yIGludGVyb3BhYmlsaXR5IHJl
YXNvbnMuCisgICAgICAgIChKU0NUZXN0UmVzdWx0cy50ZXN0X3Jlc3VsdHMpOiBHZXR0ZXIuCisg
ICAgICAgIChKU0NUZXN0UmVzdWx0cy5mYWlsaW5nX3Rlc3RzKTogR2V0dGVyLgorICAgICAgICAo
SlNDVGVzdFJlc3VsdHMuZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQpOiBHZXR0ZXIuCisg
ICAgICAgICogU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2pzY3Rlc3RyZXN1bHRzX3VuaXR0
ZXN0LnB5OiBBZGRlZC4KKyAgICAgICAgKEpTQ1Rlc3RSZXN1bHRzVGVzdCk6IENsYXNzIHRvIHRl
c3QgSlNDVGVzdFJlc3VsdHMuCisgICAgICAgIChKU0NUZXN0UmVzdWx0c1Rlc3QudGVzdF9yZXN1
bHRzX2Zyb21fc3RyaW5nKTogVGVzdHMgcGFyc2luZy4KKyAgICAgICAgKEpTQ1Rlc3RSZXN1bHRz
VGVzdC50ZXN0X2ludGVyc2VjdGlvbl9hcGlfdGVzdHMpOiBVbml0IHRlc3QgZm9yIGludGVyc2Vj
dGlvbigpIGNsYXNzIG1ldGhvZC4KKyAgICAgICAgKEpTQ1Rlc3RSZXN1bHRzVGVzdC50ZXN0X2lu
dGVyc2VjdGlvbl9zdHJlc3NfdGVzdHMpOiBVbml0IHRlc3QgZm9yIGludGVyc2VjdGlvbigpIGNs
YXNzIG1ldGhvZC4KKyAgICAgICAgKEpTQ1Rlc3RSZXN1bHRzVGVzdC50ZXN0X2ludGVyc2VjdGlv
bl9nZW5lcmFsX2Nhc2UpOiBVbml0IHRlc3QgZm9yIGludGVyc2VjdGlvbigpIGNsYXNzIG1ldGhv
ZC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2Vhcmx5d2FybmluZ3N5c3Rl
bXRhc2sucHk6CisgICAgICAgIChFYXJseVdhcm5pbmdTeXN0ZW1UYXNrLnJ1bik6IEFkZCBjaGVj
a19wYXRjaF9yZWxldmFuY2Ugc3RlcC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wv
Ym90L2pzY2V3c191bml0dGVzdC5weTogQWRkZWQuCisgICAgICAgIChNb2NrUGF0Y2hBbmFseXNp
c1Rhc2spOiBNb2NrZWQtb3V0IHZlcnNpb24gb2YgUGF0Y2hBbmFseXNpc1Rhc2sgdGhhdCBkb2Vz
bid0IHJ1biBjb21tYW5kcy4KKyAgICAgICAgKE1vY2tQYXRjaEFuYWx5c2lzVGFzay5fX2luaXRf
Xyk6IFNldHMgYXR0cmlidXRlcy4KKyAgICAgICAgKE1vY2tQYXRjaEFuYWx5c2lzVGFzay5fdGVz
dCk6IE92ZXJyaWRlIHRvIG5vdCBydW4gY29tbWFuZC4KKyAgICAgICAgKE1vY2tQYXRjaEFuYWx5
c2lzVGFzay5fYnVpbGRfYW5kX3Rlc3Rfd2l0aG91dF9wYXRjaCk6IE92ZXJyaWRlIHRvIG5vdCBy
dW4gY29tbWFuZC4KKyAgICAgICAgKE1vY2tQYXRjaEFuYWx5c2lzVGFzay52YWxpZGF0ZSk6IEFz
c3VtZSBtb2NrZWQgcGF0Y2ggaXMgdmFsaWQgZm9yIHB1cnBvc2VzIG9mIHRlc3RpbmcgcmV0cnkg
bG9naWMuCisgICAgICAgIChNb2NrUGF0Y2hBbmFseXNpc1Rhc2sudGVzdF9ydW5fY291bnQpOiBT
cGVjaWZpYyB0byB0aGUgbW9ja2VkIHZlcnNpb24sIHRvIHRlc3QgcmV0cnkgbG9naWMuCisgICAg
ICAgIChNb2NrSlNDRWFybHlXYXJuaW5nU3lzdGVtKTogTW9ja2VkLW91dCB2ZXJzaW9uIG9mIEFi
c3RhcmN0RWFybHlXYXJuaW5nU3lzdGVtIHNvIHdlIGNhbiBwcm92aWRlIHRlc3QgcmVzdWx0cy4K
KyAgICAgICAgKE1vY2tKU0NFYXJseVdhcm5pbmdTeXN0ZW0uX19pbml0X18pOiBTZXRzIGF0dHJp
YnV0ZXMsIGFsc28gc2V0cyBncm91cCB0byBqc2MuCisgICAgICAgIChNb2NrSlNDRWFybHlXYXJu
aW5nU3lzdGVtLnRlc3RfcmVzdWx0cyk6IFJldHVybnMgdGVzdCByZXN1bHRzIHByb3ZpZGVkIGJ5
IHVzLCBpbnN0ZWFkIG9mIHVzaW5nIGEgSlNPTiByZWFkZXIuCisgICAgICAgIChKU0NFYXJseVdh
cm5pbmdTeXN0ZW1UZXN0KTogQ2xhc3MgdG8gdGVzdCByZXRyeSBsb2dpYyBpbiBiZWxvdyBzaXR1
YXRpb25zLgorICAgICAgICAoSlNDRWFybHlXYXJuaW5nU3lzdGVtVGVzdC5fY3JlYXRlX3Rhc2sp
OiBIZWxwZXIgZnVuY3Rpb24gdG8gYWJzdHJhY3Qgb3V0IGNvbW1vbiBjb2RlLgorICAgICAgICAo
SlNDRWFybHlXYXJuaW5nU3lzdGVtVGVzdC5fcmVzdWx0c19pbmRpY2F0ZV9hbGxfcGFzc2VkKTog
RmFsc2UgaWYgaW5wdXQgaXMgTm9uZSBvciBoYXMgZmFpbHVyZXMsIGVsc2UgVHJ1ZS4KKyAgICAg
ICAgKEpTQ0Vhcmx5V2FybmluZ1N5c3RlbVRlc3QudGVzdF9zdWNjZXNzX2Nhc2UpOiBDbGVhbiBw
YXRjaCBvbiBjbGVhbiB0cmVlLgorICAgICAgICAoSlNDRWFybHlXYXJuaW5nU3lzdGVtVGVzdC50
ZXN0X3Rlc3RfZmFpbHVyZSk6IEZhaWxlZCBwYXRjaCBvbiBjbGVhbiB0cmVlLgorICAgICAgICAo
SlNDRWFybHlXYXJuaW5nU3lzdGVtVGVzdC50ZXN0X2ZpeCk6IFBhdGNoIHRoYXQgZml4ZXMgYWxs
IHRyZWUgcmVkbmVzcy4KKyAgICAgICAgKEpTQ0Vhcmx5V2FybmluZ1N5c3RlbVRlc3QudGVzdF9p
bmVmZmVjdGl2ZV9wYXRjaCk6IFBhdGNoIHRoYXQgaGFzIHNhbWUgZmFpbHVyZXMgYXMgdHJlZS4K
KyAgICAgICAgKEpTQ0Vhcmx5V2FybmluZ1N5c3RlbVRlc3QudGVzdF9wYXJ0aWFsbHlfZWZmZWN0
aXZlX3BhdGNoKTogUGF0Y2ggZml4ZXMgc29tZSBmYWlsdXJlcyBidXQgYWRkcyBubyBuZXcgZmFp
bHVyZXMuCisgICAgICAgIChKU0NFYXJseVdhcm5pbmdTeXN0ZW1UZXN0LnRlc3RfZGlmZmVyZW50
X3Rlc3RfZmFpbHVyZXNfaW5fcGF0Y2hfYW5kX3RyZWUpOiBQYXRjaCBoYXMgc29tZSBmYWlsdXJl
cyBub3QgaW4gdHJlZS4KKyAgICAgICAgKEpTQ0Vhcmx5V2FybmluZ1N5c3RlbVRlc3QudGVzdF9m
aXJzdF9yZXN1bHRzX2NvdWxkX25vdF9iZV9yZWFkKTogUGF0Y2ggcmVzdWx0cyBub3QgcmVhZGFi
bGUuCisgICAgICAgIChKU0NFYXJseVdhcm5pbmdTeXN0ZW1UZXN0LnRlc3Rfc2Vjb25kX3Jlc3Vs
dHNfY291bGRfbm90X2JlX3JlYWQpOiBQYXRjaCByZXN1bHRzIG5vdCByZWFkYWJsZSBvbiBzZWNv
bmQgcnVuLgorICAgICAgICAoSlNDRWFybHlXYXJuaW5nU3lzdGVtVGVzdC50ZXN0X2NsZWFuX3Jl
c3VsdHNfY291bGRfbm90X2JlX3JlYWQpOiBSZXN1bHRzIGZyb20gY2xlYW4gdHJlZSBub3QgcmVh
ZGFibGUuCisgICAgICAgIChKU0NFYXJseVdhcm5pbmdTeXN0ZW1UZXN0LnRlc3RfZmxha3lfcmVz
dWx0c19vbl9jbGVhbl90cmVlX3Bhc3MpOiBQYXRjaCBoYXMgb25lIGZsYWtlIGFuZCBubyBmYWls
dXJlcy4KKyAgICAgICAgKEpTQ0Vhcmx5V2FybmluZ1N5c3RlbVRlc3QudGVzdF9mbGFreV9yZXN1
bHRzX29uX2NsZWFuX3RyZWVfcGFzc192Mik6IFBhdGNoIGhhcyBvbmUgZmxha2UgYW5kIG5vIGZh
aWx1cmVzLgorICAgICAgICAoSlNDRWFybHlXYXJuaW5nU3lzdGVtVGVzdC50ZXN0X2ZsYWt5X3Jl
c3VsdHNfb25fY2xlYW5fdHJlZV9mYWlsdXJlKTogUGF0Y2ggaGFzIGZsYWtlcyBhbmQgZmFpbGVk
IHRlc3RzLgorICAgICAgICAoSlNDRWFybHlXYXJuaW5nU3lzdGVtVGVzdC50ZXN0X2ZsYWt5X3Jl
c3VsdHNfb25fcmVkX3RyZWVfcGFzcyk6IFBhdGNoIGhhcyBzYW1lIGZhaWx1cmVzIGFzIHRyZWUs
IHBsdXMgYSBmbGFrZS4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2pzY3Rl
c3RyZXN1bHRzcmVhZGVyLnB5OiBBZGRlZC4KKyAgICAgICAgKEpTQ1Rlc3RSZXN1bHRzUmVhZGVy
KTogUmVhZHMgcmVzdWx0cyBmaWxlLgorICAgICAgICAoSlNDVGVzdFJlc3VsdHNSZWFkZXIuX19p
bml0X18pOiBTZXRzIGF0dHJpYnV0ZXMuCisgICAgICAgIChKU0NUZXN0UmVzdWx0c1JlYWRlci5f
cmVhZF9maWxlX2NvbnRlbnRzKTogUmVhZHMgZmlsZS4KKyAgICAgICAgKEpTQ1Rlc3RSZXN1bHRz
UmVhZGVyLl9jcmVhdGVfanNjX3Rlc3RfcmVzdWx0cyk6IENyZWF0ZXMgYSBKU0NUZXN0UmVzdWx0
cyBvYmplY3QuCisgICAgICAgIChKU0NUZXN0UmVzdWx0c1JlYWRlci5yZXN1bHRzKTogSW52b2tl
cyBfY3JlYXRlX2pzY190ZXN0X3Jlc3VsdHMgdG8gcmV0dXJuIGEgSlNDVGVzdFJlc3VsdHMgb2Jq
ZWN0LgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvcGF0Y2hhbmFseXNpc3Rh
c2sucHk6CisgICAgICAgIChQYXRjaElzTm90QXBwbGljYWJsZSk6IEV4Y2VwdGlvbiBmb3Igd2hl
biBwYXRjaCBkb2Vzbid0IGhhdmUgcmVsZXZhbnQgY2hhbmdlcy4KKyAgICAgICAgKFBhdGNoQW5h
bHlzaXNUYXNrLl9jaGVja19wYXRjaF9yZWxldmFuY2UpOiBBZGRlZC4KKyAgICAgICAgKFBhdGNo
QW5hbHlzaXNUYXNrLl9idWlsZCk6IENoZWNrIGZvciBKU0MuCisgICAgICAgIChQYXRjaEFuYWx5
c2lzVGFzay5fYnVpbGRfd2l0aG91dF9wYXRjaCk6IENoZWNrIGZvciBKU0MuCisgICAgICAgIChQ
YXRjaEFuYWx5c2lzVGFzay5fdGVzdCk6IENoZWNrIGZvciBKU0MuCisgICAgICAgIChQYXRjaEFu
YWx5c2lzVGFzay5fYnVpbGRfYW5kX3Rlc3Rfd2l0aG91dF9wYXRjaCk6IENoZWNrIGZvciBKU0Mu
CisgICAgICAgIChQYXRjaEFuYWx5c2lzVGFzay5fcmV0cnlfanNjX3Rlc3RzKTogUmV0cnkgbG9n
aWMgZm9yIEpTQyBFV1MuCisgICAgICAgIChQYXRjaEFuYWx5c2lzVGFzay5fcmV0cnlfbGF5b3V0
X3Rlc3RzKTogUmV0cnkgbG9naWMgZm9yIGxheW91dCB0ZXN0cyBFV1MuCisgICAgICAgIChQYXRj
aEFuYWx5c2lzVGFzay5fdGVzdF9wYXRjaCk6IEFkZCByZXRyeSBsb2dpYyBmb3IgSlNDLgorICAg
ICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9kb3dubG9hZC5weToKKyAgICAg
ICAgKENoZWNrUGF0Y2hSZWxldmFuY2UpOiBBZGQgY2hlY2stcGF0Y2gtcmVsZXZhbmNlIGNvbW1h
bmQuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Vhcmx5d2Fybmlu
Z3N5c3RlbS5weToKKyAgICAgICAgKEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtLl9jcmVhdGVf
dGFzayk6IEFic3RyYWN0IG91dCB0byBlbmFibGUgbW9ja2luZy4KKyAgICAgICAgKEFic3RyYWN0
RWFybHlXYXJuaW5nU3lzdGVtLmJlZ2luX3dvcmtfcXVldWUpOiBVc2UgSlNDVGVzdFJlc3VsdHNS
ZWFkZXIgbm90IExheW91dFRlc3RSZXN1bHRzUmVhZGVyIGluIEpTQyBFV1MuCisgICAgICAgIChB
YnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbS5yZXZpZXdfcGF0Y2gpOiBIYW5kbGUgUGF0Y2hJc0Fw
cGxpY2FibGUKKyAgICAgICAgKEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtLnRlc3RfcmVzdWx0
cyk6IF9sYXlvdXRfdGVzdF9yZXN1bHRzX3JlYWRlciAtPiBfdGVzdF9yZXN1bHRzX3JlYWRlci4K
KyAgICAgICAgKEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtLmFyY2hpdmVfbGFzdF90ZXN0X3Jl
c3VsdHMpOiBfbGF5b3V0X3Rlc3RfcmVzdWx0c19yZWFkZXIgLT4gX3Rlc3RfcmVzdWx0c19yZWFk
ZXIuCisgICAgICAgIChBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbS5ncm91cCk6IFRoaXMgYXR0
cmlidXRlIGRldGVybWluZXMgdGhlIHR5cGUgb2YgRVdTIChlZy4gSlNDKS4KKyAgICAgICAgKEFi
c3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtLmxvYWRfZXdzX2NsYXNzZXMpOiBBZGQgX2dyb3VwLCBh
bmQgbWFrZSBjbGFzc2VzIG9mIHR5cGUgY2xzIHRvIGVuYWJsZSBtb2NraW5nLgorICAgICAgICAq
IFNjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9lYXJseXdhcm5pbmdzeXN0ZW1fdW5pdHRl
c3QucHk6CisgICAgICAgIChUZXN0RVdTKTogU2FtcGxlIGxheW91dCB0ZXN0IEVXUyBjbGFzcyB1
c2VkIGZvciB1bml0IHRlc3RpbmcuCisgICAgICAgIChUZXN0SlNDRVdTKTogU2FtcGxlIEpTQyBF
V1MgY2xhc3MgdXNlZCBmb3IgdW5pdCB0ZXN0aW5nLgorICAgICAgICAoQWJzdHJhY3RFYXJseVdh
cm5pbmdTeXN0ZW1UZXN0LnRlc3RfZmFpbGluZ190ZXN0c19tZXNzYWdlLlRlc3RFV1MpOiBBZGQg
X2dyb3VwLgorICAgICAgICAoQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW1UZXN0LnRlc3RfZmFp
bGluZ19qc2NfdGVzdHNfbWVzc2FnZS5UZXN0RVdTKTogQWRkZWQgdGVzdCBmb3IganNjIGZhaWx1
cmVzIG1lc3NhZ2UuCisgICAgICAgIChBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbVRlc3QpOiBB
ZGQgX2dyb3VwIHZhcmlhYmxlLgorICAgICAgICAoRWFybHlXYXJuaW5nU3lzdGVtVGVzdC5fZGVm
YXVsdF9leHBlY3RlZF9sb2dzKTogQWRkIGNoZWNrLXBhdGNoLXJlbGV2YW5jZSBzdGVwLCBpbmNv
bmNsdXNpdmUgbG9ncywgYW5kIGdyb3VwLgorICAgICAgICAoRWFybHlXYXJuaW5nU3lzdGVtVGVz
dC5fdGVzdF9ld3MpOiBBZGQgbG9nc19hcmVfY29uY2x1c2l2ZSBvcHRpb24gdG8gcGFzcyB0aHJv
dWdoIHRvIGRlZmF1bHRfZXhwZWN0ZWRfbG9ncygpLgorICAgICAgICAoRWFybHlXYXJuaW5nU3lz
dGVtVGVzdC50ZXN0X2luY29uY2x1c2l2ZV90ZXN0X3Jlc3VsdHMpOiBUZXN0IG5vdCByZW1vdmlu
ZyBwYXRjaCBmcm9tIHF1ZXVlIGlmIG5vdCBjb25jbHVzaXZlLgorICAgICAgICAoTW9ja0Fic3Ry
YWN0RWFybHlXYXJuaW5nU3lzdGVtKTogQWRkZWQuCisgICAgICAgIChNb2NrQWJzdHJhY3RFYXJs
eVdhcm5pbmdTeXN0ZW0udGVzdF9yZXN1bHRzKTogU2ltdWxhdGVzIGluY29uY2x1c2l2ZSByZXN1
bHRzLgorICAgICAgICAoTW9ja0Fic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtLl9jcmVhdGVfdGFz
ayk6IFVzZSBNb2NrRWFybHlXYXJuaW5nU3lzdGVtVGFzayAobm90IEVhcmx5V2FybmluZ1N5c3Rl
bVRhc2spLgorICAgICAgICAoTW9ja0Vhcmx5V2FybmluZ1N5c3RlbVRhc2spOiBBZGRlZC4KKyAg
ICAgICAgKE1vY2tFYXJseVdhcm5pbmdTeXN0ZW1UYXNrLl90ZXN0X3BhdGNoKTogU2ltdWxhdGVz
IHJ1bm5pbmcgdGVzdHMgYnV0IG5vdCBnZXR0aW5nIGEgY29uY2x1c2l2ZSByZXN1bHQuCisgICAg
ICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL19faW5pdF9fLnB5OiBBZGQgQ2hlY2tQ
YXRjaFJlbGV2YW5jZSBpbXBvcnQuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL3N0
ZXBzL2J1aWxkLnB5OgorICAgICAgICAoQnVpbGQub3B0aW9ucyk6IENoZWNrIGZvciBKU0MuCisg
ICAgICAgIChCdWlsZC5idWlsZCk6IENoZWNrIGZvciBKU0MuCisgICAgICAgIChCdWlsZC5ydW4p
OiBDaGVjayBmb3IgSlNDLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9j
aGVja3BhdGNocmVsZXZhbmNlLnB5OiBBZGRlZC4KKyAgICAgICAgKENoZWNrUGF0Y2hSZWxldmFu
Y2UpOiBBZGRlZC4KKyAgICAgICAgKENoZWNrUGF0Y2hSZWxldmFuY2UuX2RvZXNfY29udGFpbl9j
aGFuZ2VfaW5fcGF0aHMpOiBBYnN0cmFjdCBmdW5jdGlvbiB0byBwZXJmb3JtIHJlZ2V4IG1hdGNo
aW5nLgorICAgICAgICAoQ2hlY2tQYXRjaFJlbGV2YW5jZS5ydW4pOiBDaGVjayBpZiBjaGFuZ2Vk
IGZpbGVzIGluIHBhdGNoIGJlbG9uZyBpbiBjZXJ0YWluIGZvbGRlcnMuCisgICAgICAgICogU2Ny
aXB0cy93ZWJraXRweS90b29sL3N0ZXBzL29wdGlvbnMucHk6CisgICAgICAgIChPcHRpb25zKTog
QWRkIC0tZ3JvdXAgY29tbWFuZCBsaW5lIG9wdGlvbi4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dHB5L3Rvb2wvc3RlcHMvcnVudGVzdHMucHk6CisgICAgICAgIChSdW5UZXN0cy5vcHRpb25zKTog
QWRkIGdyb3VwLgorICAgICAgICAoUnVuVGVzdHMucnVuKTogQ2hlY2sgZm9yIEpTQy4KKyAgICAg
ICAgKFJ1blRlc3RzLl9ydW5fd2Via2l0X3Rlc3RzKTogQ2hlY2sgZm9yIEpTQy4KKyAgICAgICAg
KFJ1blRlc3RzKTogQWRkIF9ncm91cCBhdHRyaWJ1dGUuCisgICAgICAgIChSdW5UZXN0cy5fcnVu
X2phdmFzY3JpcHRjb3JlX3Rlc3RzKTogTmV3LgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkv
dG9vbC9zdGVwcy9zdGVwc191bml0dGVzdC5weTogVW5pdCB0ZXN0cy4KKwogMjAxNy0wMi0xMCAg
Sm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgogCiAgICAgICAgIFtSZXNvdXJj
ZSBUaW1pbmddIEVuYWJsZSBSZXNvdXJjZSBUaW1pbmcgYnkgZGVmYXVsdCBpbiBUZXN0cwpkaWZm
IC0tZ2l0IGEvVG9vbHMvUXVldWVTdGF0dXNTZXJ2ZXIvY29uZmlnL21lc3NhZ2VzLnB5IGIvVG9v
bHMvUXVldWVTdGF0dXNTZXJ2ZXIvY29uZmlnL21lc3NhZ2VzLnB5CmluZGV4IDZmOTU1MjkzMmNl
NDI4ZGQzNmZlNTA5MGU5NTc3N2JjNDhkNjUxZTUuLmEwOTM0ZTIyMjlkNTY5NzY1ZGU1YWU0MTUx
ZTQxOGRhM2NlMGRiYjAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1F1ZXVlU3RhdHVzU2VydmVyL2NvbmZp
Zy9tZXNzYWdlcy5weQorKysgYi9Ub29scy9RdWV1ZVN0YXR1c1NlcnZlci9jb25maWcvbWVzc2Fn
ZXMucHkKQEAgLTEsNCArMSw1IEBACiAjIENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtMjcs
NiArMjgsNyBAQAogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCiAjIFRoZXNlIG11c3QgYmUgaW4gc3luYyB3aXRo
IHdlYmtpdC1wYXRjaCdzIEFic3RyYWN0UXVldWUuCitza2lwX3N0YXR1cyA9ICJTa2lwIgogcGFz
c19zdGF0dXMgPSAiUGFzcyIKIGZhaWxfc3RhdHVzID0gIkZhaWwiCiBlcnJvcl9zdGF0dXMgPSAi
RXJyb3IiCmRpZmYgLS1naXQgYS9Ub29scy9RdWV1ZVN0YXR1c1NlcnZlci9jb25maWcvcXVldWVz
LnB5IGIvVG9vbHMvUXVldWVTdGF0dXNTZXJ2ZXIvY29uZmlnL3F1ZXVlcy5weQppbmRleCAzNDFk
ZDA4M2FkZmJiODkwNzE5OGJlZWQ1ZWFiMjE5MzAyNjk4M2Y1Li4wYTIyZmYzMmM4ZjAzYzg3MTQ5
Njk4Nzc0ZjY0MzhlZDVmYWJhZGM3IDEwMDY0NAotLS0gYS9Ub29scy9RdWV1ZVN0YXR1c1NlcnZl
ci9jb25maWcvcXVldWVzLnB5CisrKyBiL1Rvb2xzL1F1ZXVlU3RhdHVzU2VydmVyL2NvbmZpZy9x
dWV1ZXMucHkKQEAgLTEsNCArMSw0IEBACi0jIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAxNCwgMjAxNyBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjIENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKQEAgLTM2LDYgKzM2LDcgQEAg
YWxsX3F1ZXVlX25hbWVzID0gWwogICAgICJndGstd2syLWV3cyIsCiAgICAgImlvcy1ld3MiLAog
ICAgICJpb3Mtc2ltLWV3cyIsCisgICAgImpzYy1ld3MiLAogICAgICJtYWMtZXdzIiwKICAgICAi
bWFjLXdrMi1ld3MiLAogICAgICJtYWMtZGVidWctZXdzIiwKZGlmZiAtLWdpdCBhL1Rvb2xzL1F1
ZXVlU3RhdHVzU2VydmVyL2hhbmRsZXJzL3N0YXR1c2J1YmJsZS5weSBiL1Rvb2xzL1F1ZXVlU3Rh
dHVzU2VydmVyL2hhbmRsZXJzL3N0YXR1c2J1YmJsZS5weQppbmRleCBjODA1MTRmZjg3ODllZjY5
NGI5OTU3MTRlMmViNWQ5NmY4YmNhNzgyLi41MzJiYjFlOWFlNjA4ZGU3ODdiZGE1ZmE1ZGQ1MzNi
NzkxYzRlNDcwIDEwMDY0NAotLS0gYS9Ub29scy9RdWV1ZVN0YXR1c1NlcnZlci9oYW5kbGVycy9z
dGF0dXNidWJibGUucHkKKysrIGIvVG9vbHMvUXVldWVTdGF0dXNTZXJ2ZXIvaGFuZGxlcnMvc3Rh
dHVzYnViYmxlLnB5CkBAIC0xLDQgKzEsNSBAQAogIyBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUK
QEAgLTE4MiwxMSArMTgzLDE2IEBAIGNsYXNzIFN0YXR1c0J1YmJsZSh3ZWJhcHAuUmVxdWVzdEhh
bmRsZXIpOgogICAgICAgICByZXR1cm4gYnViYmxlCiAKICAgICBkZWYgX3Nob3VsZF9zaG93X2J1
YmJsZV9mb3Ioc2VsZiwgYXR0YWNobWVudCwgcXVldWUpOgotICAgICAgICAgIyBBbnkgcGVuZGlu
ZyBxdWV1ZSBpcyBzaG93bi4KKyAgICAgICAgIyBBbnkgcGVuZGluZyBxdWV1ZSBpcyBzaG93bi4K
ICAgICAgICAgaWYgYXR0YWNobWVudC5wb3NpdGlvbl9pbl9xdWV1ZShxdWV1ZSk6CiAgICAgICAg
ICAgICByZXR1cm4gVHJ1ZQotICAgICAgICAjIEVXUyBxdWV1ZXMgYXJlIGFsc28gc2hvd24gd2hl
biBjb21wbGV0ZS4KLSAgICAgICAgcmV0dXJuIGJvb2wocXVldWUuaXNfZXdzKCkgYW5kIGF0dGFj
aG1lbnQuc3RhdHVzX2Zvcl9xdWV1ZShxdWV1ZSkpCisKKyAgICAgICAgIyBFV1MgcXVldWVzIHRo
YXQgd2VyZW4ndCBza2lwcGVkIGFyZSBhbHNvIHNob3duIHdoZW4gY29tcGxldGUuCisgICAgICAg
IGlmIG5vdCBxdWV1ZS5pc19ld3MoKToKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQorCisgICAg
ICAgIHN0YXR1cyA9IGF0dGFjaG1lbnQuc3RhdHVzX2Zvcl9xdWV1ZShxdWV1ZSkKKyAgICAgICAg
cmV0dXJuIGJvb2woc3RhdHVzIGFuZCBub3Qgc3RhdHVzLmRpZF9za2lwKCkpCiAKICAgICBkZWYg
X2J1aWxkX2J1YmJsZXNfZm9yX2F0dGFjaG1lbnQoc2VsZiwgYXR0YWNobWVudCk6CiAgICAgICAg
IHNob3dfc3VibWl0X3RvX2V3cyA9IFRydWUKZGlmZiAtLWdpdCBhL1Rvb2xzL1F1ZXVlU3RhdHVz
U2VydmVyL21vZGVsL3F1ZXVlc3RhdHVzLnB5IGIvVG9vbHMvUXVldWVTdGF0dXNTZXJ2ZXIvbW9k
ZWwvcXVldWVzdGF0dXMucHkKaW5kZXggZDliYjZmNjU2Mzc1NDBjNzBiOTc4MWFlZDI1Yjg4MjNk
OWIzODM5Ni4uNzcyNTM1MGNhY2VlYjE5Y2ZmZWI5ODBkMWE2NzliYjYyZGI4MmIxOCAxMDA2NDQK
LS0tIGEvVG9vbHMvUXVldWVTdGF0dXNTZXJ2ZXIvbW9kZWwvcXVldWVzdGF0dXMucHkKKysrIGIv
VG9vbHMvUXVldWVTdGF0dXNTZXJ2ZXIvbW9kZWwvcXVldWVzdGF0dXMucHkKQEAgLTEsNCArMSw1
IEBACiAjIENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorIyBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
IwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtNDAsMyArNDEsNiBAQCBjbGFzcyBR
dWV1ZVN0YXR1cyhkYi5Nb2RlbCwgUXVldWVQcm9wZXJ0eU1peGluKToKICAgICBtZXNzYWdlID0g
ZGIuU3RyaW5nUHJvcGVydHkobXVsdGlsaW5lPVRydWUpCiAgICAgZGF0ZSA9IGRiLkRhdGVUaW1l
UHJvcGVydHkoYXV0b19ub3dfYWRkPVRydWUpCiAgICAgcmVzdWx0c19maWxlID0gZGIuQmxvYlBy
b3BlcnR5KCkKKworICAgIGRlZiBkaWRfc2tpcChzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYu
bWVzc2FnZS5zdGFydHN3aXRoKG1lc3NhZ2VzLnNraXBfc3RhdHVzKQpkaWZmIC0tZ2l0IGEvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hlY2tvdXQvc2NtL3NjbV9tb2NrLnB5IGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hlY2tvdXQvc2NtL3NjbV9tb2NrLnB5CmluZGV4
IGM1ZDEwZmNiMTg5YjBhOGI1MTlmYTU1NjI1MDIyYTcwYzQ4NmQ0NGIuLjk3NzRlYzhhZTg3M2Ex
YjBiODM3NjA3MTgwNjY3OTIxNTgwOWVlZWMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvY29tbW9uL2NoZWNrb3V0L3NjbS9zY21fbW9jay5weQorKysgYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2NvbW1vbi9jaGVja291dC9zY20vc2NtX21vY2sucHkKQEAgLTEsNCArMSw1IEBA
CiAjIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
IyBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwog
IyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtMzcsNiArMzgsNyBAQCBjbGFzcyBNb2Nr
U0NNKG9iamVjdCk6CiAgICAgICAgIHNlbGYuYWRkZWRfcGF0aHMgPSBzZXQoKQogICAgICAgICBz
ZWxmLl9maWxlc3lzdGVtID0gZmlsZXN5c3RlbSBvciBNb2NrRmlsZVN5c3RlbSgpCiAgICAgICAg
IHNlbGYuX2V4ZWN1dGl2ZSA9IGV4ZWN1dGl2ZSBvciBNb2NrRXhlY3V0aXZlKCkKKyAgICAgICAg
c2VsZi5fbW9ja0NoYW5nZWRGaWxlcyA9IFsiTW9ja0ZpbGUxIl0KIAogICAgIGRlZiBhZGQoc2Vs
ZiwgZGVzdGluYXRpb25fcGF0aCk6CiAgICAgICAgIHNlbGYuYWRkX2xpc3QoW2Rlc3RpbmF0aW9u
X3BhdGhdKQpAQCAtNzEsNyArNzMsNyBAQCBjbGFzcyBNb2NrU0NNKG9iamVjdCk6CiAgICAgICAg
IHJldHVybiBzZWxmLl9maWxlc3lzdGVtLmpvaW4oc2VsZi5jaGVja291dF9yb290LCAqY29tcHMp
CiAKICAgICBkZWYgY2hhbmdlZF9maWxlcyhzZWxmLCBnaXRfY29tbWl0PU5vbmUpOgotICAgICAg
ICByZXR1cm4gWyJNb2NrRmlsZTEiXQorICAgICAgICByZXR1cm4gc2VsZi5fbW9ja0NoYW5nZWRG
aWxlcwogCiAgICAgZGVmIGNoYW5nZWRfZmlsZXNfZm9yX3JldmlzaW9uKHNlbGYsIHJldmlzaW9u
KToKICAgICAgICAgcmV0dXJuIFsiTW9ja0ZpbGUxIl0KZGlmZiAtLWdpdCBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9ld3MuanNvbiBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvY29tbW9uL2NvbmZpZy9ld3MuanNvbgppbmRleCAzNWQ0OTg1YWIwZjkzZDEyN2IzNzIxZTQ2
MDFjZDZkODlkZmNjZjNjLi5lNTM0MGZlNWMzYzIxYWU4MWFkMWVmN2UwM2Y3ZmI4MWYzODM5Y2Zm
IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvZXdzLmpz
b24KKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL2V3cy5qc29uCkBA
IC01MCw1ICs1MCwxMSBAQAogICAgICAgICAicG9ydCI6ICJtYWMiLAogICAgICAgICAibmFtZSI6
ICJtYWMtMzJiaXQtZXdzIiwKICAgICAgICAgImFyY2hpdGVjdHVyZSI6ICJpMzg2IgorICAgIH0s
CisgICAgIkpTQyBFV1MiOiB7CisgICAgICAgICJwb3J0IjogIm1hYyIsCisgICAgICAgICJuYW1l
IjogImpzYy1ld3MiLAorICAgICAgICAiZ3JvdXAiOiAianNjIiwKKyAgICAgICAgInJ1blRlc3Rz
IjogdHJ1ZQogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29t
bW9uL2NvbmZpZy9wb3J0cy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZp
Zy9wb3J0cy5weQppbmRleCBhMGQ1MGRjYjZlYTBiNWZkZTBiM2MxN2VmMTU5Y2VhZmVlMWEyZTk4
Li4xMDU2YmE2YzJlZGQ4OTNmNWE1OTdiZGE4YzYyY2RmYTU0ODI0ZjRkIDEwMDY0NAotLS0gYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvcG9ydHMucHkKKysrIGIvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL3BvcnRzLnB5CkBAIC0xLDYgKzEsNiBAQAog
IyBDb3B5cmlnaHQgKEMpIDIwMDksIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAj
IENvcHlyaWdodCAoQykgMjAxMyBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlh
cnkoLWllcykuCi0jIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAxNSwgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC0xMDMsOCArMTAz
LDIxIEBAIGNsYXNzIERlcHJlY2F0ZWRQb3J0KG9iamVjdCk6CiAgICAgICAgICAgICBjb21tYW5k
LmFwcGVuZCgiLS1yZWxlYXNlIikKICAgICAgICAgcmV0dXJuIGNvbW1hbmQKIAotICAgIGRlZiBy
dW5famF2YXNjcmlwdGNvcmVfdGVzdHNfY29tbWFuZChzZWxmKToKLSAgICAgICAgcmV0dXJuIHNl
bGYuc2NyaXB0X3NoZWxsX2NvbW1hbmQoInJ1bi1qYXZhc2NyaXB0Y29yZS10ZXN0cyIpCisgICAg
ZGVmIGJ1aWxkX2pzY19jb21tYW5kKHNlbGYsIGJ1aWxkX3N0eWxlPU5vbmUpOgorICAgICAgICBj
b21tYW5kID0gc2VsZi5zY3JpcHRfc2hlbGxfY29tbWFuZCgiYnVpbGQtanNjIikKKyAgICAgICAg
aWYgYnVpbGRfc3R5bGUgPT0gImRlYnVnIjoKKyAgICAgICAgICAgIGNvbW1hbmQuYXBwZW5kKCIt
LWRlYnVnIikKKyAgICAgICAgaWYgYnVpbGRfc3R5bGUgPT0gInJlbGVhc2UiOgorICAgICAgICAg
ICAgY29tbWFuZC5hcHBlbmQoIi0tcmVsZWFzZSIpCisgICAgICAgIHJldHVybiBjb21tYW5kCisK
KyAgICBkZWYgcnVuX2phdmFzY3JpcHRjb3JlX3Rlc3RzX2NvbW1hbmQoc2VsZiwgYnVpbGRfc3R5
bGU9Tm9uZSk6CisgICAgICAgIGNvbW1hbmQgPSBzZWxmLnNjcmlwdF9zaGVsbF9jb21tYW5kKCJy
dW4tamF2YXNjcmlwdGNvcmUtdGVzdHMiKQorICAgICAgICBjb21tYW5kLmFwcGVuZCgiLS1uby1m
YWlsLWZhc3QiKQorICAgICAgICBjb21tYW5kLmFwcGVuZCgiLS1qc29uLW91dHB1dD1qc2NfdGVz
dF9yZXN1bHRzLmpzb24iKQorICAgICAgICBpZiAoYnVpbGRfc3R5bGUgPT0gImRlYnVnIik6Cisg
ICAgICAgICAgICBjb21tYW5kLmFwcGVuZCgiLS1kZWJ1ZyIpCisgICAgICAgIHJldHVybiBjb21t
YW5kCiAKICAgICBkZWYgcnVuX3dlYmtpdF90ZXN0c19jb21tYW5kKHNlbGYsIGJ1aWxkX3N0eWxl
PU5vbmUpOgogICAgICAgICBjb21tYW5kID0gc2VsZi5zY3JpcHRfc2hlbGxfY29tbWFuZCgicnVu
LXdlYmtpdC10ZXN0cyIpCkBAIC0xNTAsNyArMTYzLDEwIEBAIGNsYXNzIElPU1NpbXVsYXRvcldL
MlBvcnQoRGVwcmVjYXRlZFBvcnQpOgogY2xhc3MgTWFjUG9ydChEZXByZWNhdGVkUG9ydCk6CiAg
ICAgcG9ydF9mbGFnX25hbWUgPSAibWFjIgogCi0gICAgZGVmIHJ1bl93ZWJraXRfdGVzdHNfY29t
bWFuZChzZWxmLCBidWlsZF9zdHlsZT1Ob25lKToKKyAgICBkZWYgcnVuX3dlYmtpdF90ZXN0c19j
b21tYW5kKHNlbGYsIGJ1aWxkX3N0eWxlPU5vbmUsIHRlc3Rfc3VpdGU9Tm9uZSk6CisgICAgICAg
IGlmIHRlc3Rfc3VpdGUgPT0gImpzYyI6CisgICAgICAgICAgICByZXR1cm4gc3VwZXIoTWFjUG9y
dCwgc2VsZikucnVuX2phdmFzY3JpcHRjb3JlX3Rlc3RzX2NvbW1hbmQoYnVpbGRfc3R5bGUpCisK
ICAgICAgICAgY29tbWFuZCA9IHN1cGVyKE1hY1BvcnQsIHNlbGYpLnJ1bl93ZWJraXRfdGVzdHNf
Y29tbWFuZChidWlsZF9zdHlsZSkKICAgICAgICAgY29tbWFuZC5hcHBlbmQoIi0tZHVtcC1yZW5k
ZXItdHJlZSIpCiAgICAgICAgIHJldHVybiBjb21tYW5kCmRpZmYgLS1naXQgYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvcG9ydHNfbW9jay5weSBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvY29tbW9uL2NvbmZpZy9wb3J0c19tb2NrLnB5CmluZGV4IDYxNzQzZGViYjRlYmVl
Mzc1NmJhN2MyMGYwMTQ4MjM1NDBkMmRjYTYuLmNhMWIxOGEzMTA2ODQyM2JkY2UwN2NkZWI3ZDdk
N2QxOTlmNDAwYWIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2Nv
bmZpZy9wb3J0c19tb2NrLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2Nv
bmZpZy9wb3J0c19tb2NrLnB5CkBAIC0xLDQgKzEsNSBAQAogIyBDb3B5cmlnaHQgKEMpIDIwMTEg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDE3IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cyBhcmUKQEAgLTQ5LDcgKzUwLDcgQEAgY2xhc3MgTW9ja1BvcnQob2JqZWN0KToKICAgICBkZWYg
cnVuX3BlcmxfdW5pdHRlc3RzX2NvbW1hbmQoc2VsZik6CiAgICAgICAgIHJldHVybiBbJ21vY2st
dGVzdC13ZWJraXRwZXJsJ10KIAotICAgIGRlZiBydW5famF2YXNjcmlwdGNvcmVfdGVzdHNfY29t
bWFuZChzZWxmKToKKyAgICBkZWYgcnVuX2phdmFzY3JpcHRjb3JlX3Rlc3RzX2NvbW1hbmQoc2Vs
ZiwgYnVpbGRfc3R5bGU9Tm9uZSk6CiAgICAgICAgIHJldHVybiBbJ21vY2stcnVuLWphdmFjcmlw
dGNvcmUtdGVzdHMnXQogCiAgICAgZGVmIHJ1bl93ZWJraXRfdGVzdHNfY29tbWFuZChzZWxmLCBi
dWlsZF9zdHlsZT1Ob25lKToKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29t
bW9uL2NvbmZpZy9wb3J0c191bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29t
bW9uL2NvbmZpZy9wb3J0c191bml0dGVzdC5weQppbmRleCAwOGQ1NDUyMzZkYTM3MDNlOTI4ZjFj
ZWVkMWRkOTEwMmQ5Yjg2MjJlLi4xNmNkN2Y5MjgyNTFiYmM5OTZjYjY0NmU0MzU5ZDczZmRiNTM1
YjI2IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvcG9y
dHNfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmln
L3BvcnRzX3VuaXR0ZXN0LnB5CkBAIC0xLDQgKzEsNSBAQAogIyBDb3B5cmlnaHQgKGMpIDIwMDks
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAxNyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogIyBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlCkBAIC0zOSw2ICs0MCwxMCBAQCBjbGFzcyBEZXByZWNhdGVkUG9ydFRlc3QodW5pdHRl
c3QuVGVzdENhc2UpOgogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE1hY1BvcnQoKS5idWlsZF93
ZWJraXRfY29tbWFuZChidWlsZF9zdHlsZT0iZGVidWciKSwgRGVwcmVjYXRlZFBvcnQoKS5zY3Jp
cHRfc2hlbGxfY29tbWFuZCgiYnVpbGQtd2Via2l0IikgKyBbIi0tZGVidWciXSkKICAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChNYWNQb3J0KCkuYnVpbGRfd2Via2l0X2NvbW1hbmQoYnVpbGRfc3R5
bGU9InJlbGVhc2UiKSwgRGVwcmVjYXRlZFBvcnQoKS5zY3JpcHRfc2hlbGxfY29tbWFuZCgiYnVp
bGQtd2Via2l0IikgKyBbIi0tcmVsZWFzZSJdKQogCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
TWFjUG9ydCgpLmJ1aWxkX2pzY19jb21tYW5kKCksIERlcHJlY2F0ZWRQb3J0KCkuc2NyaXB0X3No
ZWxsX2NvbW1hbmQoImJ1aWxkLWpzYyIpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE1hY1Bv
cnQoKS5idWlsZF9qc2NfY29tbWFuZChidWlsZF9zdHlsZT0icmVsZWFzZSIpLCBEZXByZWNhdGVk
UG9ydCgpLnNjcmlwdF9zaGVsbF9jb21tYW5kKCJidWlsZC1qc2MiKSArIFsiLS1yZWxlYXNlIl0p
CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTWFjUG9ydCgpLmJ1aWxkX2pzY19jb21tYW5kKGJ1
aWxkX3N0eWxlPSJkZWJ1ZyIpLCBEZXByZWNhdGVkUG9ydCgpLnNjcmlwdF9zaGVsbF9jb21tYW5k
KCJidWlsZC1qc2MiKSArIFsiLS1kZWJ1ZyJdKQorCiAgICAgZGVmIHRlc3RfZ3RrX3drMl9wb3J0
KHNlbGYpOgogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKEd0a1dLMlBvcnQoKS5mbGFnKCksICIt
LXBvcnQ9Z3RrLXdrMiIpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoR3RrV0syUG9ydCgpLnJ1
bl93ZWJraXRfdGVzdHNfY29tbWFuZCgpLCBEZXByZWNhdGVkUG9ydCgpLnNjcmlwdF9zaGVsbF9j
b21tYW5kKCJydW4td2Via2l0LXRlc3RzIikgKyBbIi0tZ3RrIl0pCmRpZmYgLS1naXQgYS9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvanNjdGVzdHJlc3VsdHMucHkgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvanNjdGVzdHJlc3VsdHMucHkKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MDU0ZDY2YTgzNGVmNTI5NzkzNWVjY2JiNTNkZGM2YzE2NGVkNTgyZAotLS0gL2Rldi9udWxsCisr
KyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9qc2N0ZXN0cmVzdWx0cy5weQpA
QCAtMCwwICsxLDgxIEBACisjIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMg
MS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
IyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyMgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
IElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorIyBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMCisjIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisjIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisjIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksCisjIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisK
K2ltcG9ydCBqc29uCitpbXBvcnQgbG9nZ2luZworCitfbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIo
X19uYW1lX18pCisKKworY2xhc3MgSlNDVGVzdFJlc3VsdHMob2JqZWN0KToKKyAgICBkZWYgX19p
bml0X18oc2VsZiwgYWxsX2FwaV90ZXN0c19wYXNzZWQsIHN0cmVzc190ZXN0X2ZhaWx1cmVzKToK
KyAgICAgICAgc2VsZi5hbGxfYXBpX3Rlc3RzX3Bhc3NlZCA9IGFsbF9hcGlfdGVzdHNfcGFzc2Vk
CisgICAgICAgIHNlbGYuc3RyZXNzX3Rlc3RfZmFpbHVyZXMgPSBzdHJlc3NfdGVzdF9mYWlsdXJl
cworCisgICAgICAgIHNlbGYucmVzdWx0cyA9IHN0cmVzc190ZXN0X2ZhaWx1cmVzWzpdCisgICAg
ICAgIGlmIG5vdCBzZWxmLmFsbF9hcGlfdGVzdHNfcGFzc2VkOgorICAgICAgICAgICAgc2VsZi5y
ZXN1bHRzLmFwcGVuZCgiYXBpVGVzdHMiKQorCisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIGlu
dGVyc2VjdGlvbihjbHMsIGZpcnN0LCBzZWNvbmQpOgorICAgICAgICBpbnRlcnNlY3Rpb25fYXBp
X3Rlc3RzX3Bhc3NlZCA9IGZpcnN0LmFsbF9hcGlfdGVzdHNfcGFzc2VkIG9yIHNlY29uZC5hbGxf
YXBpX3Rlc3RzX3Bhc3NlZAorICAgICAgICBpbnRlcnNlY3Rpb25fc3RyZXNzX3Rlc3RfZmFpbHVy
ZXMgPSBsaXN0KHNldChmaXJzdC5zdHJlc3NfdGVzdF9mYWlsdXJlcykgJiBzZXQoc2Vjb25kLnN0
cmVzc190ZXN0X2ZhaWx1cmVzKSkKKyAgICAgICAgcmV0dXJuIGNscyhpbnRlcnNlY3Rpb25fYXBp
X3Rlc3RzX3Bhc3NlZCwgaW50ZXJzZWN0aW9uX3N0cmVzc190ZXN0X2ZhaWx1cmVzKQorCisgICAg
QGNsYXNzbWV0aG9kCisgICAgZGVmIHJlc3VsdHNfZnJvbV9zdHJpbmcoY2xzLCBzdHJpbmcpOgor
ICAgICAgICBpZiBub3Qgc3RyaW5nOgorICAgICAgICAgICAgcmV0dXJuIE5vbmUKKworICAgICAg
ICB0cnk6CisgICAgICAgICAgICBwYXJzZWRfcmVzdWx0cyA9IGpzb24ubG9hZHMoc3RyaW5nKQor
ICAgICAgICBleGNlcHQgVmFsdWVFcnJvcjoKKyAgICAgICAgICAgIF9sb2cuZXJyb3IoIkludmFs
aWQgSlNPTiByZXN1bHRzIikKKyAgICAgICAgICAgIHJldHVybiBOb25lCisKKyAgICAgICAgaWYg
J2FsbEFwaVRlc3RzUGFzc2VkJyBub3QgaW4gcGFyc2VkX3Jlc3VsdHMgb3IgJ3N0cmVzc1Rlc3RG
YWlsdXJlcycgbm90IGluIHBhcnNlZF9yZXN1bHRzOgorICAgICAgICAgICAgcmV0dXJuIE5vbmUK
KworICAgICAgICByZXR1cm4gY2xzKHBhcnNlZF9yZXN1bHRzWydhbGxBcGlUZXN0c1Bhc3NlZCdd
LCBwYXJzZWRfcmVzdWx0c1snc3RyZXNzVGVzdEZhaWx1cmVzJ10pCisKKyAgICBkZWYgZXF1YWxz
KHNlbGYsIG90aGVyKToKKyAgICAgICAgcmV0dXJuIChzZWxmLmFsbF9hcGlfdGVzdHNfcGFzc2Vk
ID09IG90aGVyLmFsbF9hcGlfdGVzdHNfcGFzc2VkIGFuZAorICAgICAgICAgICAgICAgc2V0KHNl
bGYuc3RyZXNzX3Rlc3RfZmFpbHVyZXMpID09IHNldChvdGhlci5zdHJlc3NfdGVzdF9mYWlsdXJl
cykpCisKKyAgICBkZWYgaXNfc3Vic2V0KHNlbGYsIG90aGVyKToKKyAgICAgICAgcmV0dXJuIHNl
dChzZWxmLnJlc3VsdHMpIDw9IHNldChvdGhlci5yZXN1bHRzKQorCisgICAgZGVmIGFsbF9wYXNz
ZWQoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLmFsbF9hcGlfdGVzdHNfcGFzc2VkIGFuZCBu
b3Qgc2VsZi5zdHJlc3NfdGVzdF9mYWlsdXJlcworCisgICAgZGVmIGZhaWxpbmdfdGVzdF9yZXN1
bHRzKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5yZXN1bHRzCisKKyAgICBkZWYgdGVzdF9y
ZXN1bHRzKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5yZXN1bHRzCisKKyAgICBkZWYgZmFp
bGluZ190ZXN0cyhzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYucmVzdWx0cworCisgICAgIyBO
byBkZWZpbmVkIGZhaWx1cmUgbGltaXQgZm9yIEpTQy4KKyAgICBkZWYgZGlkX2V4Y2VlZF90ZXN0
X2ZhaWx1cmVfbGltaXQoc2VsZik6CisgICAgICAgIHJldHVybiBGYWxzZQpkaWZmIC0tZ2l0IGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2pzY3Rlc3RyZXN1bHRzX3VuaXR0ZXN0
LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2pzY3Rlc3RyZXN1bHRzX3Vu
aXR0ZXN0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU2Zjk5ZTM0MTU2NGUxZTg5MWUzYjJmN2NjZWFiOGI3Yzcx
YTczNGIKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9u
ZXQvanNjdGVzdHJlc3VsdHNfdW5pdHRlc3QucHkKQEAgLTAsMCArMSw3NSBAQAorIyBDb3B5cmln
aHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAy
LiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycgQU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUK
KyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UgorIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitpbXBvcnQgdW5pdHRlc3QKKworZnJvbSB3
ZWJraXRweS5jb21tb24ubmV0LmpzY3Rlc3RyZXN1bHRzIGltcG9ydCBKU0NUZXN0UmVzdWx0cwor
CisKK2NsYXNzIEpTQ1Rlc3RSZXN1bHRzVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CisgICAgZGVm
IHRlc3RfcmVzdWx0c19mcm9tX3N0cmluZyhzZWxmKToKKyAgICAgICAgbm9uZV9pdGVtID0gTm9u
ZQorICAgICAgICBlbXB0eV9qc29uID0gIiIKKyAgICAgICAgaW52YWxpZF9qc29uID0gJ3siYWxs
QXBpVGVzdHNQYXNzZWQiOicKKyAgICAgICAgaW5jb21wbGV0ZV9qc29uX3YxID0gJ3siYWxsQXBp
VGVzdHNQYXNzZWQiOiB0cnVlfScKKyAgICAgICAgaW5jb21wbGV0ZV9qc29uX3YyID0gJ3sic3Ry
ZXNzVGVzdEZhaWx1cmVzIjpbXX0nCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgSlND
VGVzdFJlc3VsdHMucmVzdWx0c19mcm9tX3N0cmluZyhub25lX2l0ZW0pKQorICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKE5vbmUsIEpTQ1Rlc3RSZXN1bHRzLnJlc3VsdHNfZnJvbV9zdHJpbmcoZW1w
dHlfanNvbikpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgSlNDVGVzdFJlc3VsdHMu
cmVzdWx0c19mcm9tX3N0cmluZyhpbnZhbGlkX2pzb24pKQorICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKE5vbmUsIEpTQ1Rlc3RSZXN1bHRzLnJlc3VsdHNfZnJvbV9zdHJpbmcoaW5jb21wbGV0ZV9q
c29uX3YxKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCBKU0NUZXN0UmVzdWx0cy5y
ZXN1bHRzX2Zyb21fc3RyaW5nKGluY29tcGxldGVfanNvbl92MikpCisKKyAgICAgICAgbm9fZmFp
bHVyZXNfc3RyaW5nID0gJ3siYWxsQXBpVGVzdHNQYXNzZWQiOiB0cnVlLCAic3RyZXNzVGVzdEZh
aWx1cmVzIjpbXX0nCisgICAgICAgIG5vX2ZhaWx1cmVzX3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0
cyhUcnVlLCBbXSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG5vX2ZhaWx1cmVzX3Jlc3VsdHMu
ZXF1YWxzKEpTQ1Rlc3RSZXN1bHRzLnJlc3VsdHNfZnJvbV9zdHJpbmcobm9fZmFpbHVyZXNfc3Ry
aW5nKSkpCisKKyAgICAgICAgYXBpX3Rlc3RfZmFpbHVyZXNfc3RyaW5nID0gJ3siYWxsQXBpVGVz
dHNQYXNzZWQiOiBmYWxzZSwgInN0cmVzc1Rlc3RGYWlsdXJlcyI6W119JworICAgICAgICBhcGlf
dGVzdF9mYWlsdXJlc19yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoRmFsc2UsIFtdKQorICAgICAg
ICBzZWxmLmFzc2VydFRydWUoYXBpX3Rlc3RfZmFpbHVyZXNfcmVzdWx0cy5lcXVhbHMoSlNDVGVz
dFJlc3VsdHMucmVzdWx0c19mcm9tX3N0cmluZyhhcGlfdGVzdF9mYWlsdXJlc19zdHJpbmcpKSkK
KworICAgICAgICBtYW55X2ZhaWx1cmVzX3N0cmluZyA9ICd7ImFsbEFwaVRlc3RzUGFzc2VkIjog
ZmFsc2UsICJzdHJlc3NUZXN0RmFpbHVyZXMiOlsiZXM2LnlhbWwvZXM2L3R5cGVkX2FycmF5c19J
bnQxNkFycmF5LmpzLmRlZmF1bHQiLCAiZXM2LnlhbWwvZXM2L3R5cGVkX2FycmF5c19JbnQ4QXJy
YXkuanMuZGVmYXVsdCJdfScKKyAgICAgICAgbWFueV9mYWlsdXJlc19yZXN1bHRzID0gSlNDVGVz
dFJlc3VsdHMoRmFsc2UsIFsiZXM2LnlhbWwvZXM2L3R5cGVkX2FycmF5c19JbnQxNkFycmF5Lmpz
LmRlZmF1bHQiLCAiZXM2LnlhbWwvZXM2L3R5cGVkX2FycmF5c19JbnQ4QXJyYXkuanMuZGVmYXVs
dCJdKQorICAgICAgICBzZWxmLmFzc2VydFRydWUobWFueV9mYWlsdXJlc19yZXN1bHRzLmVxdWFs
cyhKU0NUZXN0UmVzdWx0cy5yZXN1bHRzX2Zyb21fc3RyaW5nKG1hbnlfZmFpbHVyZXNfc3RyaW5n
KSkpCisKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShub19mYWlsdXJlc19yZXN1bHRzID09IGFw
aV90ZXN0X2ZhaWx1cmVzX3Jlc3VsdHMpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoYXBpX3Rl
c3RfZmFpbHVyZXNfcmVzdWx0cyA9PSBtYW55X2ZhaWx1cmVzX3Jlc3VsdHMpCisKKyAgICBkZWYg
dGVzdF9pbnRlcnNlY3Rpb25fYXBpX3Rlc3RzKHNlbGYpOgorICAgICAgICByZXN1bHRzMSA9IEpT
Q1Rlc3RSZXN1bHRzKEZhbHNlLCBbXSkKKyAgICAgICAgcmVzdWx0czIgPSBKU0NUZXN0UmVzdWx0
cyhUcnVlLCBbXSkKKworICAgICAgICBleHBlY3RlZF9pbnRlcnNlY3Rpb24gPSBKU0NUZXN0UmVz
dWx0cyhUcnVlLCBbXSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGV4cGVjdGVkX2ludGVyc2Vj
dGlvbi5lcXVhbHMoSlNDVGVzdFJlc3VsdHMuaW50ZXJzZWN0aW9uKHJlc3VsdHMxLCByZXN1bHRz
MikpKQorCisgICAgZGVmIHRlc3RfaW50ZXJzZWN0aW9uX3N0cmVzc190ZXN0cyhzZWxmKToKKyAg
ICAgICAgcmVzdWx0czEgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbJ2ZhaWx1cmUxJywgJ2ZhaWx1
cmUyJ10pCisgICAgICAgIHJlc3VsdHMyID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgWydmYWlsdXJl
MScsICdmYWlsdXJlMyddKQorCisgICAgICAgIGV4cGVjdGVkX2ludGVyc2VjdGlvbiA9IEpTQ1Rl
c3RSZXN1bHRzKFRydWUsIFsnZmFpbHVyZTEnXSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGV4
cGVjdGVkX2ludGVyc2VjdGlvbi5lcXVhbHMoSlNDVGVzdFJlc3VsdHMuaW50ZXJzZWN0aW9uKHJl
c3VsdHMxLCByZXN1bHRzMikpKQorCisgICAgZGVmIHRlc3RfaW50ZXJzZWN0aW9uX2dlbmVyYWxf
Y2FzZShzZWxmKToKKyAgICAgICAgcmVzdWx0czEgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbJ2Zh
aWx1cmUxJywgJ2ZhaWx1cmUyJ10pCisgICAgICAgIHJlc3VsdHMyID0gSlNDVGVzdFJlc3VsdHMo
RmFsc2UsIFsnZmFpbHVyZTEnXSkKKworICAgICAgICBleHBlY3RlZF9pbnRlcnNlY3Rpb24gPSBK
U0NUZXN0UmVzdWx0cyhUcnVlLCBbJ2ZhaWx1cmUxJ10pCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1
ZShleHBlY3RlZF9pbnRlcnNlY3Rpb24uZXF1YWxzKEpTQ1Rlc3RSZXN1bHRzLmludGVyc2VjdGlv
bihyZXN1bHRzMSwgcmVzdWx0czIpKSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvdG9vbC9ib3QvZWFybHl3YXJuaW5nc3lzdGVtdGFzay5weSBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvdG9vbC9ib3QvZWFybHl3YXJuaW5nc3lzdGVtdGFzay5weQppbmRleCBmYzMwOGI0M2Qx
ZDE3MmFiNzNiMGUzYWY4MGQxYjEzOWRkM2MxMDMyLi5lY2ZhY2QwMTFiZTg4M2I0YmIxZTVjN2Q3
ZGZmZGJkY2I0NTlkZTM1IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wv
Ym90L2Vhcmx5d2FybmluZ3N5c3RlbXRhc2sucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS90b29sL2JvdC9lYXJseXdhcm5pbmdzeXN0ZW10YXNrLnB5CkBAIC0xLDQgKzEsNSBAQAogIyBD
b3B5cmlnaHQgKGMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29w
eXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTI2LDcgKzI3LDcgQEAKICMgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCiAKLWZyb20gd2Via2l0cHkudG9vbC5ib3QucGF0Y2hhbmFseXNpc3Rh
c2sgaW1wb3J0IFBhdGNoQW5hbHlzaXNUYXNrLCBQYXRjaEFuYWx5c2lzVGFza0RlbGVnYXRlLCBV
bmFibGVUb0FwcGx5UGF0Y2gsIFBhdGNoSXNOb3RWYWxpZAorZnJvbSB3ZWJraXRweS50b29sLmJv
dC5wYXRjaGFuYWx5c2lzdGFzayBpbXBvcnQgUGF0Y2hBbmFseXNpc1Rhc2ssIFBhdGNoQW5hbHlz
aXNUYXNrRGVsZWdhdGUsIFVuYWJsZVRvQXBwbHlQYXRjaCwgUGF0Y2hJc05vdFZhbGlkLCBQYXRj
aElzTm90QXBwbGljYWJsZQogCiAKIGNsYXNzIEVhcmx5V2FybmluZ1N5c3RlbVRhc2tEZWxlZ2F0
ZShQYXRjaEFuYWx5c2lzVGFza0RlbGVnYXRlKToKQEAgLTU4LDYgKzU5LDggQEAgY2xhc3MgRWFy
bHlXYXJuaW5nU3lzdGVtVGFzayhQYXRjaEFuYWx5c2lzVGFzayk6CiAgICAgICAgICAgICByZXR1
cm4gRmFsc2UKICAgICAgICAgaWYgbm90IHNlbGYuX2FwcGx5KCk6CiAgICAgICAgICAgICByYWlz
ZSBVbmFibGVUb0FwcGx5UGF0Y2goc2VsZi5fcGF0Y2gpCisgICAgICAgIGlmIG5vdCBzZWxmLl9j
aGVja19wYXRjaF9yZWxldmFuY2UoKToKKyAgICAgICAgICAgIHJhaXNlIFBhdGNoSXNOb3RBcHBs
aWNhYmxlKHNlbGYuX3BhdGNoKQogICAgICAgICBpZiBub3Qgc2VsZi5fYnVpbGQoKToKICAgICAg
ICAgICAgIGlmIG5vdCBzZWxmLl9idWlsZF93aXRob3V0X3BhdGNoKCk6CiAgICAgICAgICAgICAg
ICAgcmV0dXJuIEZhbHNlCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wv
Ym90L2pzY2V3c191bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3Qv
anNjZXdzX3VuaXR0ZXN0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU5M2Q0OWIzZWU3NTViNjlhMTgxNjkyNmZj
ZGQxN2U1NDFjZTI4YzYKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L3Rvb2wvYm90L2pzY2V3c191bml0dGVzdC5weQpAQCAtMCwwICsxLDIxOCBAQAorIyBDb3B5cmln
aHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAy
LiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycgQU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUK
KyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UgorIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitpbXBvcnQgbG9nZ2luZworaW1wb3J0IHVu
aXR0ZXN0CisKK2Zyb20gd2Via2l0cHkuY29tbW9uLm5ldC5qc2N0ZXN0cmVzdWx0cyBpbXBvcnQg
SlNDVGVzdFJlc3VsdHMKK2Zyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5leGVjdXRpdmUgaW1w
b3J0IFNjcmlwdEVycm9yCitmcm9tIHdlYmtpdHB5LnRvb2wuYm90LnBhdGNoYW5hbHlzaXN0YXNr
IGltcG9ydCAqCitmcm9tIHdlYmtpdHB5LnRvb2wuY29tbWFuZHMuZWFybHl3YXJuaW5nc3lzdGVt
IGltcG9ydCBBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbQorZnJvbSB3ZWJraXRweS50b29sLm1v
Y2t0b29sIGltcG9ydCBNb2NrVG9vbAorCitfbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1l
X18pCisKKworY2xhc3MgTW9ja1BhdGNoQW5hbHlzaXNUYXNrKFBhdGNoQW5hbHlzaXNUYXNrKToK
KyAgICBkZWYgX19pbml0X18oc2VsZiwgZGVsZWdhdGUsIHBhdGNoLCBwYXRjaGVzX3Bhc3NlZF9h
bGxfdGVzdHMpOgorICAgICAgICBzZWxmLl9kZWxlZ2F0ZSA9IGRlbGVnYXRlCisgICAgICAgIHNl
bGYuX3BhdGNoID0gcGF0Y2gKKyAgICAgICAgc2VsZi5fc2NyaXB0X2Vycm9yID0gTm9uZQorICAg
ICAgICBzZWxmLl9yZXN1bHRzX2FyY2hpdmVfZnJvbV9wYXRjaF90ZXN0X3J1biA9IE5vbmUKKyAg
ICAgICAgc2VsZi5fcmVzdWx0c19mcm9tX3BhdGNoX3Rlc3RfcnVuID0gTm9uZQorICAgICAgICBz
ZWxmLmVycm9yID0gTm9uZQorICAgICAgICBzZWxmLl9wYXRjaGVzX3Bhc3NlZF9hbGxfdGVzdHMg
PSBwYXRjaGVzX3Bhc3NlZF9hbGxfdGVzdHMKKyAgICAgICAgc2VsZi5fdGVzdF9ydW5fY291bnQg
PSAwCisgICAgICAgIHNlbGYuZmFpbHVyZV9zdGF0dXNfaWQgPSAwCisKKyAgICBkZWYgX3Rlc3Qo
c2VsZik6CisgICAgICAgIHNlbGYuX3Rlc3RfcnVuX2NvdW50ICs9IDEKKworICAgICAgICBpZiBz
ZWxmLl9wYXRjaGVzX3Bhc3NlZF9hbGxfdGVzdHMucG9wKCkgPT0gVHJ1ZToKKyAgICAgICAgICAg
IHJldHVybiBUcnVlCisgICAgICAgIHNlbGYuX3NjcmlwdF9lcnJvciA9IFNjcmlwdEVycm9yKCJS
ZWdyZXNzaW9uIHRlc3QiKQorICAgICAgICByZXR1cm4gRmFsc2UKKworICAgIGRlZiBfYnVpbGRf
YW5kX3Rlc3Rfd2l0aG91dF9wYXRjaChzZWxmKToKKyAgICAgICAgc2VsZi5fdGVzdF9ydW5fY291
bnQgKz0gMQorICAgICAgICByZXR1cm4gVHJ1ZQorCisgICAgZGVmIHZhbGlkYXRlKHNlbGYpOgor
ICAgICAgICByZXR1cm4gVHJ1ZQorCisgICAgZGVmIHRlc3RfcnVuX2NvdW50KHNlbGYpOgorICAg
ICAgICByZXR1cm4gc2VsZi5fdGVzdF9ydW5fY291bnQKKworCisjIFRoaXMgaXMgdGhlIGRlbGVn
YXRlIHRvIGJlIHVzZWQgd2l0aCBNb2NrUGF0Y2hBbmFseXNpc1Rhc2ssIGFib3ZlLgorY2xhc3Mg
TW9ja0pTQ0Vhcmx5V2FybmluZ1N5c3RlbShBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbSk6Cisg
ICAgZGVmIF9faW5pdF9fKHNlbGYsIGZpcnN0X3Rlc3RfcmVzdWx0cywgc2Vjb25kX3Rlc3RfcmVz
dWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKToKKyAgICAgICAgQWJzdHJhY3RFYXJseVdhcm5pbmdT
eXN0ZW0uX19pbml0X18oc2VsZikKKyAgICAgICAgc2VsZi5fZ3JvdXAgPSAianNjIgorICAgICAg
ICBzZWxmLl9yZXN1bHRzX2luX29yZGVyID0gW2NsZWFuX3Rlc3RfcmVzdWx0cywgc2Vjb25kX3Rl
c3RfcmVzdWx0cywgZmlyc3RfdGVzdF9yZXN1bHRzXQorCisgICAgZGVmIHRlc3RfcmVzdWx0cyhz
ZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX3Jlc3VsdHNfaW5fb3JkZXIucG9wKCkKKworCitj
bGFzcyBKU0NFYXJseVdhcm5pbmdTeXN0ZW1UZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICBk
ZWYgX3Jlc3VsdHNfaW5kaWNhdGVfYWxsX3Bhc3NlZChzZWxmLCByZXN1bHRzKToKKyAgICAgICAg
aWYgcmVzdWx0cyA9PSBOb25lOgorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgIHJl
dHVybiByZXN1bHRzLmFsbF9wYXNzZWQoKQorCisgICAgZGVmIF9jcmVhdGVfdGFzayhzZWxmLCBm
aXJzdF90ZXN0X3Jlc3VsdHMsIHNlY29uZF90ZXN0X3Jlc3VsdHMsIGNsZWFuX3Rlc3RfcmVzdWx0
cyk6CisgICAgICAgIHF1ZXVlID0gTW9ja0pTQ0Vhcmx5V2FybmluZ1N5c3RlbShmaXJzdF90ZXN0
X3Jlc3VsdHMsIHNlY29uZF90ZXN0X3Jlc3VsdHMsIGNsZWFuX3Rlc3RfcmVzdWx0cykKKyAgICAg
ICAgdG9vbCA9IE1vY2tUb29sKGxvZ19leGVjdXRpdmU9VHJ1ZSkKKyAgICAgICAgcGF0Y2ggPSB0
b29sLmJ1Z3MuZmV0Y2hfYXR0YWNobWVudCgxMDAwMCkKKyAgICAgICAgcGF0Y2hlc19wYXNzZWRf
YWxsX3Rlc3RzID0gbWFwKHNlbGYuX3Jlc3VsdHNfaW5kaWNhdGVfYWxsX3Bhc3NlZCwgW3NlY29u
ZF90ZXN0X3Jlc3VsdHMsIGZpcnN0X3Rlc3RfcmVzdWx0c10pCisgICAgICAgIHJldHVybiBNb2Nr
UGF0Y2hBbmFseXNpc1Rhc2socXVldWUsIHBhdGNoLCBwYXRjaGVzX3Bhc3NlZF9hbGxfdGVzdHMp
CisKKyAgICBkZWYgdGVzdF9zdWNjZXNzX2Nhc2Uoc2VsZik6CisgICAgICAgIGZpcnN0X3Rlc3Rf
cmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFtdKQorICAgICAgICBzZWNvbmRfdGVzdF9y
ZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgW10pCisgICAgICAgIGNsZWFuX3Rlc3RfcmVz
dWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFtdKQorICAgICAgICB0YXNrID0gc2VsZi5fY3Jl
YXRlX3Rhc2soZmlyc3RfdGVzdF9yZXN1bHRzLCBzZWNvbmRfdGVzdF9yZXN1bHRzLCBjbGVhbl90
ZXN0X3Jlc3VsdHMpCisKKyAgICAgICAgcmV0dXJuX3ZhbHVlID0gdGFzay5fdGVzdF9wYXRjaCgp
CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGFzay50ZXN0X3J1bl9jb3VudCgpLCAxKQorICAg
ICAgICBzZWxmLmFzc2VydFRydWUocmV0dXJuX3ZhbHVlKQorCisgICAgZGVmIHRlc3RfdGVzdF9m
YWlsdXJlKHNlbGYpOgorICAgICAgICBmaXJzdF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0
cyhUcnVlLCBbJ0ZhaWwuanMnXSkKKyAgICAgICAgc2Vjb25kX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rl
c3RSZXN1bHRzKFRydWUsIFsnRmFpbC5qcyddKQorICAgICAgICBjbGVhbl90ZXN0X3Jlc3VsdHMg
PSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbXSkKKyAgICAgICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90
YXNrKGZpcnN0X3Rlc3RfcmVzdWx0cywgc2Vjb25kX3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9y
ZXN1bHRzKQorCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoU2NyaXB0RXJyb3IpOgor
ICAgICAgICAgICAgcmV0dXJuX3ZhbHVlID0gdGFzay5fdGVzdF9wYXRjaCgpCisgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwodGFzay50ZXN0X3J1bl9jb3VudCgpLCAzKQorCisgICAgZGVmIHRlc3Rf
Zml4KHNlbGYpOgorICAgICAgICBmaXJzdF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhU
cnVlLCBbXSkKKyAgICAgICAgc2Vjb25kX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRy
dWUsIFtdKQorICAgICAgICBjbGVhbl90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVl
LCBbJ0ZhaWwuanMnXSkKKyAgICAgICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90YXNrKGZpcnN0X3Rl
c3RfcmVzdWx0cywgc2Vjb25kX3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKQorCisg
ICAgICAgIHJldHVybl92YWx1ZSA9IHRhc2suX3Rlc3RfcGF0Y2goKQorICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKHRhc2sudGVzdF9ydW5fY291bnQoKSwgMSkKKyAgICAgICAgc2VsZi5hc3NlcnRU
cnVlKHJldHVybl92YWx1ZSkKKworICAgIGRlZiB0ZXN0X2luZWZmZWN0aXZlX3BhdGNoKHNlbGYp
OgorICAgICAgICBmaXJzdF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhGYWxzZSwgWydm
YWlsdXJlMS5qcycsICdmYWlsdXJlMi5qcyddKQorICAgICAgICBzZWNvbmRfdGVzdF9yZXN1bHRz
ID0gSlNDVGVzdFJlc3VsdHMoRmFsc2UsIFsnZmFpbHVyZTEuanMnLCAnZmFpbHVyZTIuanMnXSkK
KyAgICAgICAgY2xlYW5fdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoRmFsc2UsIFsnZmFp
bHVyZTEuanMnLCAnZmFpbHVyZTIuanMnXSkKKyAgICAgICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90
YXNrKGZpcnN0X3Rlc3RfcmVzdWx0cywgc2Vjb25kX3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9y
ZXN1bHRzKQorCisgICAgICAgIHJldHVybl92YWx1ZSA9IHRhc2suX3Rlc3RfcGF0Y2goKQorICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKHRhc2sudGVzdF9ydW5fY291bnQoKSwgMykKKyAgICAgICAg
c2VsZi5hc3NlcnRUcnVlKHJldHVybl92YWx1ZSkKKworICAgIGRlZiB0ZXN0X3BhcnRpYWxseV9l
ZmZlY3RpdmVfcGF0Y2goc2VsZik6CisgICAgICAgIGZpcnN0X3Rlc3RfcmVzdWx0cyA9IEpTQ1Rl
c3RSZXN1bHRzKFRydWUsIFsnZmFpbHVyZTIuanMnXSkKKyAgICAgICAgc2Vjb25kX3Rlc3RfcmVz
dWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFsnZmFpbHVyZTIuanMnXSkKKyAgICAgICAgY2xl
YW5fdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoRmFsc2UsIFsnZmFpbHVyZTEuanMnLCAn
ZmFpbHVyZTIuanMnXSkKKyAgICAgICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90YXNrKGZpcnN0X3Rl
c3RfcmVzdWx0cywgc2Vjb25kX3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKQorCisg
ICAgICAgIHJldHVybl92YWx1ZSA9IHRhc2suX3Rlc3RfcGF0Y2goKQorICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKHRhc2sudGVzdF9ydW5fY291bnQoKSwgMykKKyAgICAgICAgc2VsZi5hc3NlcnRU
cnVlKHJldHVybl92YWx1ZSkKKworICAgIGRlZiB0ZXN0X2RpZmZlcmVudF90ZXN0X2ZhaWx1cmVz
X2luX3BhdGNoX2FuZF90cmVlKHNlbGYpOgorICAgICAgICBmaXJzdF90ZXN0X3Jlc3VsdHMgPSBK
U0NUZXN0UmVzdWx0cyhGYWxzZSwgW10pCisgICAgICAgIHNlY29uZF90ZXN0X3Jlc3VsdHMgPSBK
U0NUZXN0UmVzdWx0cyhGYWxzZSwgW10pCisgICAgICAgIGNsZWFuX3Rlc3RfcmVzdWx0cyA9IEpT
Q1Rlc3RSZXN1bHRzKFRydWUsIFsnZmFpbHVyZTEuanMnLCAnZmFpbHVyZTIuanMnXSkKKyAgICAg
ICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90YXNrKGZpcnN0X3Rlc3RfcmVzdWx0cywgc2Vjb25kX3Rl
c3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKQorCisgICAgICAgIHdpdGggc2VsZi5hc3Nl
cnRSYWlzZXMoU2NyaXB0RXJyb3IpOgorICAgICAgICAgICAgcmV0dXJuX3ZhbHVlID0gdGFzay5f
dGVzdF9wYXRjaCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGFzay50ZXN0X3J1bl9jb3Vu
dCgpLCAzKQorCisgICAgZGVmIHRlc3RfZmlyc3RfcmVzdWx0c19jb3VsZF9ub3RfYmVfcmVhZChz
ZWxmKToKKyAgICAgICAgZmlyc3RfdGVzdF9yZXN1bHRzID0gTm9uZQorICAgICAgICBzZWNvbmRf
dGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgW10pCisgICAgICAgIGNsZWFuX3Rl
c3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFtdKQorICAgICAgICB0YXNrID0gc2Vs
Zi5fY3JlYXRlX3Rhc2soZmlyc3RfdGVzdF9yZXN1bHRzLCBzZWNvbmRfdGVzdF9yZXN1bHRzLCBj
bGVhbl90ZXN0X3Jlc3VsdHMpCisKKyAgICAgICAgcmV0dXJuX3ZhbHVlID0gdGFzay5fdGVzdF9w
YXRjaCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGFzay50ZXN0X3J1bl9jb3VudCgpLCAx
KQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKHJldHVybl92YWx1ZSkKKworICAgIGRlZiB0ZXN0
X3NlY29uZF9yZXN1bHRzX2NvdWxkX25vdF9iZV9yZWFkKHNlbGYpOgorICAgICAgICBmaXJzdF90
ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhGYWxzZSwgWydmYWlsdXJlMS5qcycsICdmYWls
dXJlMi5qcyddKQorICAgICAgICBzZWNvbmRfdGVzdF9yZXN1bHRzID0gTm9uZQorICAgICAgICBj
bGVhbl90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbXSkKKyAgICAgICAgdGFz
ayA9IHNlbGYuX2NyZWF0ZV90YXNrKGZpcnN0X3Rlc3RfcmVzdWx0cywgc2Vjb25kX3Rlc3RfcmVz
dWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKQorCisgICAgICAgIHJldHVybl92YWx1ZSA9IHRhc2su
X3Rlc3RfcGF0Y2goKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRhc2sudGVzdF9ydW5fY291
bnQoKSwgMikKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShyZXR1cm5fdmFsdWUpCisKKyAgICBk
ZWYgdGVzdF9jbGVhbl9yZXN1bHRzX2NvdWxkX25vdF9iZV9yZWFkKHNlbGYpOgorICAgICAgICBm
aXJzdF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbJ2ZhaWx1cmUyLmpzJ10p
CisgICAgICAgIHNlY29uZF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbJ2Zh
aWx1cmUyLmpzJ10pCisgICAgICAgIGNsZWFuX3Rlc3RfcmVzdWx0cyA9IE5vbmUKKyAgICAgICAg
dGFzayA9IHNlbGYuX2NyZWF0ZV90YXNrKGZpcnN0X3Rlc3RfcmVzdWx0cywgc2Vjb25kX3Rlc3Rf
cmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKQorCisgICAgICAgIHJldHVybl92YWx1ZSA9IHRh
c2suX3Rlc3RfcGF0Y2goKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRhc2sudGVzdF9ydW5f
Y291bnQoKSwgMykKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShyZXR1cm5fdmFsdWUpCisKKyAg
ICBkZWYgdGVzdF9mbGFreV9yZXN1bHRzX29uX2NsZWFuX3RyZWVfcGFzcyhzZWxmKToKKyAgICAg
ICAgZmlyc3RfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgWydmYWlsdXJlMi5q
cyddKQorICAgICAgICBzZWNvbmRfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwg
W10pCisgICAgICAgIGNsZWFuX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFtd
KQorICAgICAgICB0YXNrID0gc2VsZi5fY3JlYXRlX3Rhc2soZmlyc3RfdGVzdF9yZXN1bHRzLCBz
ZWNvbmRfdGVzdF9yZXN1bHRzLCBjbGVhbl90ZXN0X3Jlc3VsdHMpCisKKyAgICAgICAgcmV0dXJu
X3ZhbHVlID0gdGFzay5fdGVzdF9wYXRjaCgpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZXR1
cm5fdmFsdWUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGFzay50ZXN0X3J1bl9jb3VudCgp
LCAyKQorCisgICAgZGVmIHRlc3RfZmxha3lfcmVzdWx0c19vbl9jbGVhbl90cmVlX3Bhc3NfdjIo
c2VsZik6CisgICAgICAgIGZpcnN0X3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUs
IFtdKQorICAgICAgICBzZWNvbmRfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwg
WydmYWlsdXJlMi5qcyddKQorICAgICAgICBjbGVhbl90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVz
dWx0cyhUcnVlLCBbXSkKKyAgICAgICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90YXNrKGZpcnN0X3Rl
c3RfcmVzdWx0cywgc2Vjb25kX3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKQorCisg
ICAgICAgIHJldHVybl92YWx1ZSA9IHRhc2suX3Rlc3RfcGF0Y2goKQorICAgICAgICBzZWxmLmFz
c2VydFRydWUocmV0dXJuX3ZhbHVlKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRhc2sudGVz
dF9ydW5fY291bnQoKSwgMSkKKworICAgIGRlZiB0ZXN0X2ZsYWt5X3Jlc3VsdHNfb25fY2xlYW5f
dHJlZV9mYWlsdXJlKHNlbGYpOgorICAgICAgICBmaXJzdF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0
UmVzdWx0cyhGYWxzZSwgWydmYWlsdXJlMS5qcycsICdmYWlsdXJlMi5qcyddKQorICAgICAgICBz
ZWNvbmRfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgWydmYWlsdXJlMi5qcydd
KQorICAgICAgICBjbGVhbl90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbXSkK
KyAgICAgICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90YXNrKGZpcnN0X3Rlc3RfcmVzdWx0cywgc2Vj
b25kX3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKQorCisgICAgICAgIHdpdGggc2Vs
Zi5hc3NlcnRSYWlzZXMoU2NyaXB0RXJyb3IpOgorICAgICAgICAgICAgdGFzay5fdGVzdF9wYXRj
aCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGFzay50ZXN0X3J1bl9jb3VudCgpLCAzKQor
CisgICAgZGVmIHRlc3RfZmxha3lfcmVzdWx0c19vbl9yZWRfdHJlZV9wYXNzKHNlbGYpOgorICAg
ICAgICBmaXJzdF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbJ2ZhaWx1cmUx
LmpzJ10pCisgICAgICAgIHNlY29uZF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVl
LCBbJ2ZhaWx1cmUxLmpzJywgJ2ZhaWx1cmUyLmpzJ10pCisgICAgICAgIGNsZWFuX3Rlc3RfcmVz
dWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFsnZmFpbHVyZTEuanMnXSkKKyAgICAgICAgdGFz
ayA9IHNlbGYuX2NyZWF0ZV90YXNrKGZpcnN0X3Rlc3RfcmVzdWx0cywgc2Vjb25kX3Rlc3RfcmVz
dWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKQorCisgICAgICAgIHJldHVybl92YWx1ZSA9IHRhc2su
X3Rlc3RfcGF0Y2goKQorICAgICAgICBzZWxmLmFzc2VydFRydWUocmV0dXJuX3ZhbHVlKQorICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKHRhc2sudGVzdF9ydW5fY291bnQoKSwgMykKZGlmZiAtLWdp
dCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvanNjdGVzdHJlc3VsdHNyZWFkZXIu
cHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2pzY3Rlc3RyZXN1bHRzcmVhZGVy
LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmE1NmJkMDVkZmE3NzQ1OWQ0NmMzN2JlODVkNDQ5MTg5NDhhMDY2NjYK
LS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2pzY3Rl
c3RyZXN1bHRzcmVhZGVyLnB5CkBAIC0wLDAgKzEsNDcgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDE3
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
IEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyMgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyMgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKworaW1wb3J0IGxvZ2dpbmcKKworZnJvbSB3ZWJraXRweS5jb21t
b24ubmV0LmpzY3Rlc3RyZXN1bHRzIGltcG9ydCBKU0NUZXN0UmVzdWx0cworCitfbG9nID0gbG9n
Z2luZy5nZXRMb2dnZXIoX19uYW1lX18pCisKKworY2xhc3MgSlNDVGVzdFJlc3VsdHNSZWFkZXIo
b2JqZWN0KToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgaG9zdCwgcmVzdWx0c19kaXJlY3Rvcnkp
OgorICAgICAgICBzZWxmLl9ob3N0ID0gaG9zdAorICAgICAgICBzZWxmLl9yZXN1bHRzX2RpcmVj
dG9yeSA9IHJlc3VsdHNfZGlyZWN0b3J5CisKKyAgICBkZWYgX3JlYWRfZmlsZV9jb250ZW50cyhz
ZWxmLCBwYXRoKToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuX2hvc3Qu
ZmlsZXN5c3RlbS5yZWFkX3RleHRfZmlsZShwYXRoKQorICAgICAgICBleGNlcHQgKElPRXJyb3Is
IEtleUVycm9yKTogICMgRmlsZSBkb2VzIG5vdCBleGlzdCBvciBjYW4ndCBiZSByZWFkLgorICAg
ICAgICAgICAgcmV0dXJuIE5vbmUKKworICAgIGRlZiBfY3JlYXRlX2pzY190ZXN0X3Jlc3VsdHMo
c2VsZik6CisgICAgICAgIHJlc3VsdHNfcGF0aCA9IHNlbGYuX2hvc3QuZmlsZXN5c3RlbS5qb2lu
KHNlbGYuX3Jlc3VsdHNfZGlyZWN0b3J5LCAianNjX3Rlc3RfcmVzdWx0cy5qc29uIikKKyAgICAg
ICAgY29udGVudHMgPSBzZWxmLl9yZWFkX2ZpbGVfY29udGVudHMocmVzdWx0c19wYXRoKQorICAg
ICAgICByZXR1cm4gSlNDVGVzdFJlc3VsdHMucmVzdWx0c19mcm9tX3N0cmluZyhjb250ZW50cykK
KworICAgIGRlZiByZXN1bHRzKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5fY3JlYXRlX2pz
Y190ZXN0X3Jlc3VsdHMoKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29s
L2JvdC9wYXRjaGFuYWx5c2lzdGFzay5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9i
b3QvcGF0Y2hhbmFseXNpc3Rhc2sucHkKaW5kZXggNzUyMzE2NDE2YzVmOWQwYTNlNTllZjZkMDVl
MzE3ODVmOTE3NDYyOS4uZGQyZjFjNTliNzY3M2UzYjk0N2I2ODlmNTZkN2IwYzEwYWRhZDBhNyAx
MDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9wYXRjaGFuYWx5c2lz
dGFzay5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L3BhdGNoYW5hbHlz
aXN0YXNrLnB5CkBAIC0xLDQgKzEsNSBAQAogIyBDb3B5cmlnaHQgKGMpIDIwMTAgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAg
LTI4LDYgKzI5LDcgQEAKIAogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmV4ZWN1dGl2ZSBp
bXBvcnQgU2NyaXB0RXJyb3IKIGZyb20gd2Via2l0cHkuY29tbW9uLm5ldC5sYXlvdXR0ZXN0cmVz
dWx0cyBpbXBvcnQgTGF5b3V0VGVzdFJlc3VsdHMKK2Zyb20gd2Via2l0cHkuY29tbW9uLm5ldC5q
c2N0ZXN0cmVzdWx0cyBpbXBvcnQgSlNDVGVzdFJlc3VsdHMKIAogCiBjbGFzcyBVbmFibGVUb0Fw
cGx5UGF0Y2goRXhjZXB0aW9uKToKQEAgLTQzLDYgKzQ1LDExIEBAIGNsYXNzIFBhdGNoSXNOb3RW
YWxpZChFeGNlcHRpb24pOgogICAgICAgICBzZWxmLmZhaWx1cmVfbWVzc2FnZSA9IGZhaWx1cmVf
bWVzc2FnZQogCiAKK2NsYXNzIFBhdGNoSXNOb3RBcHBsaWNhYmxlKEV4Y2VwdGlvbik6CisgICAg
ZGVmIF9faW5pdF9fKHNlbGYsIHBhdGNoKToKKyAgICAgICAgRXhjZXB0aW9uLl9faW5pdF9fKHNl
bGYpCisgICAgICAgIHNlbGYucGF0Y2ggPSBwYXRjaAorCiBjbGFzcyBQYXRjaEFuYWx5c2lzVGFz
a0RlbGVnYXRlKG9iamVjdCk6CiAgICAgZGVmIHBhcmVudF9jb21tYW5kKHNlbGYpOgogICAgICAg
ICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKCJzdWJjbGFzc2VzIG11c3QgaW1wbGVtZW50IikK
QEAgLTEyMiwyOCArMTI5LDQ0IEBAIGNsYXNzIFBhdGNoQW5hbHlzaXNUYXNrKG9iamVjdCk6CiAg
ICAgICAgICJBcHBsaWVkIHBhdGNoIiwKICAgICAgICAgIlBhdGNoIGRvZXMgbm90IGFwcGx5IikK
IAorICAgIGRlZiBfY2hlY2tfcGF0Y2hfcmVsZXZhbmNlKHNlbGYpOgorICAgICAgICBhcmdzID0g
WworICAgICAgICAgICAgImNoZWNrLXBhdGNoLXJlbGV2YW5jZSIsCisgICAgICAgIF0KKworICAg
ICAgICBpZiBoYXNhdHRyKHNlbGYuX2RlbGVnYXRlLCAnZ3JvdXAnKToKKyAgICAgICAgICAgIGFy
Z3MuYXBwZW5kKCItLWdyb3VwPSVzIiAlIHNlbGYuX2RlbGVnYXRlLmdyb3VwKCkpCisKKyAgICAg
ICAgcmV0dXJuIHNlbGYuX3J1bl9jb21tYW5kKGFyZ3MsICJDaGVja2VkIHJlbGV2YW5jZSBvZiBw
YXRjaCIsICJQYXRjaCB3YXMgbm90IHJlbGV2YW50IikKKwogICAgIGRlZiBfYnVpbGQoc2VsZik6
Ci0gICAgICAgIHJldHVybiBzZWxmLl9ydW5fY29tbWFuZChbCisgICAgICAgIGFyZ3MgPSBbCiAg
ICAgICAgICAgICAiYnVpbGQiLAogICAgICAgICAgICAgIi0tbm8tY2xlYW4iLAogICAgICAgICAg
ICAgIi0tbm8tdXBkYXRlIiwKICAgICAgICAgICAgICItLWJ1aWxkLXN0eWxlPSVzIiAlIHNlbGYu
X2RlbGVnYXRlLmJ1aWxkX3N0eWxlKCksCi0gICAgICAgIF0sCi0gICAgICAgICJCdWlsdCBwYXRj
aCIsCi0gICAgICAgICJQYXRjaCBkb2VzIG5vdCBidWlsZCIpCisgICAgICAgIF0KKworICAgICAg
ICBpZiBoYXNhdHRyKHNlbGYuX2RlbGVnYXRlLCAnZ3JvdXAnKToKKyAgICAgICAgICAgIGFyZ3Mu
YXBwZW5kKCItLWdyb3VwPSVzIiAlIHNlbGYuX2RlbGVnYXRlLmdyb3VwKCkpCisKKyAgICAgICAg
cmV0dXJuIHNlbGYuX3J1bl9jb21tYW5kKGFyZ3MsICJCdWlsdCBwYXRjaCIsICJQYXRjaCBkb2Vz
IG5vdCBidWlsZCIpCiAKICAgICBkZWYgX2J1aWxkX3dpdGhvdXRfcGF0Y2goc2VsZik6Ci0gICAg
ICAgIHJldHVybiBzZWxmLl9ydW5fY29tbWFuZChbCisgICAgICAgIGFyZ3MgPSBbCiAgICAgICAg
ICAgICAiYnVpbGQiLAogICAgICAgICAgICAgIi0tZm9yY2UtY2xlYW4iLAogICAgICAgICAgICAg
Ii0tbm8tdXBkYXRlIiwKICAgICAgICAgICAgICItLWJ1aWxkLXN0eWxlPSVzIiAlIHNlbGYuX2Rl
bGVnYXRlLmJ1aWxkX3N0eWxlKCksCi0gICAgICAgIF0sCi0gICAgICAgICJBYmxlIHRvIGJ1aWxk
IHdpdGhvdXQgcGF0Y2giLAotICAgICAgICAiVW5hYmxlIHRvIGJ1aWxkIHdpdGhvdXQgcGF0Y2gi
KQorICAgICAgICBdCisKKyAgICAgICAgaWYgaGFzYXR0cihzZWxmLl9kZWxlZ2F0ZSwgJ2dyb3Vw
Jyk6CisgICAgICAgICAgICBhcmdzLmFwcGVuZCgiLS1ncm91cD0lcyIgJSBzZWxmLl9kZWxlZ2F0
ZS5ncm91cCgpKQorCisgICAgICAgIHJldHVybiBzZWxmLl9ydW5fY29tbWFuZChhcmdzLCAiQWJs
ZSB0byBidWlsZCB3aXRob3V0IHBhdGNoIiwgIlVuYWJsZSB0byBidWlsZCB3aXRob3V0IHBhdGNo
IikKIAogICAgIGRlZiBfdGVzdChzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYuX3J1bl9jb21t
YW5kKFsKKyAgICAgICAgYXJncyA9IFsKICAgICAgICAgICAgICJidWlsZC1hbmQtdGVzdCIsCiAg
ICAgICAgICAgICAiLS1uby1jbGVhbiIsCiAgICAgICAgICAgICAiLS1uby11cGRhdGUiLApAQCAt
MTUxLDEyICsxNzQsMTUgQEAgY2xhc3MgUGF0Y2hBbmFseXNpc1Rhc2sob2JqZWN0KToKICAgICAg
ICAgICAgICItLXRlc3QiLAogICAgICAgICAgICAgIi0tbm9uLWludGVyYWN0aXZlIiwKICAgICAg
ICAgICAgICItLWJ1aWxkLXN0eWxlPSVzIiAlIHNlbGYuX2RlbGVnYXRlLmJ1aWxkX3N0eWxlKCks
Ci0gICAgICAgIF0sCi0gICAgICAgICJQYXNzZWQgdGVzdHMiLAotICAgICAgICAiUGF0Y2ggZG9l
cyBub3QgcGFzcyB0ZXN0cyIpCisgICAgICAgIF0KKworICAgICAgICBpZiBoYXNhdHRyKHNlbGYu
X2RlbGVnYXRlLCAnZ3JvdXAnKToKKyAgICAgICAgICAgIGFyZ3MuYXBwZW5kKCItLWdyb3VwPSVz
IiAlIHNlbGYuX2RlbGVnYXRlLmdyb3VwKCkpCisKKyAgICAgICAgcmV0dXJuIHNlbGYuX3J1bl9j
b21tYW5kKGFyZ3MsICJQYXNzZWQgdGVzdHMiLCAiUGF0Y2ggZG9lcyBub3QgcGFzcyB0ZXN0cyIp
CiAKICAgICBkZWYgX2J1aWxkX2FuZF90ZXN0X3dpdGhvdXRfcGF0Y2goc2VsZik6Ci0gICAgICAg
IHJldHVybiBzZWxmLl9ydW5fY29tbWFuZChbCisgICAgICAgIGFyZ3MgPSBbCiAgICAgICAgICAg
ICAiYnVpbGQtYW5kLXRlc3QiLAogICAgICAgICAgICAgIi0tZm9yY2UtY2xlYW4iLAogICAgICAg
ICAgICAgIi0tbm8tdXBkYXRlIiwKQEAgLTE2NCw5ICsxOTAsMTIgQEAgY2xhc3MgUGF0Y2hBbmFs
eXNpc1Rhc2sob2JqZWN0KToKICAgICAgICAgICAgICItLXRlc3QiLAogICAgICAgICAgICAgIi0t
bm9uLWludGVyYWN0aXZlIiwKICAgICAgICAgICAgICItLWJ1aWxkLXN0eWxlPSVzIiAlIHNlbGYu
X2RlbGVnYXRlLmJ1aWxkX3N0eWxlKCksCi0gICAgICAgIF0sCi0gICAgICAgICJBYmxlIHRvIHBh
c3MgdGVzdHMgd2l0aG91dCBwYXRjaCIsCi0gICAgICAgICJVbmFibGUgdG8gcGFzcyB0ZXN0cyB3
aXRob3V0IHBhdGNoICh0cmVlIGlzIHJlZD8pIikKKyAgICAgICAgXQorCisgICAgICAgIGlmIGhh
c2F0dHIoc2VsZi5fZGVsZWdhdGUsICdncm91cCcpOgorICAgICAgICAgICAgYXJncy5hcHBlbmQo
Ii0tZ3JvdXA9JXMiICUgc2VsZi5fZGVsZWdhdGUuZ3JvdXAoKSkKKworICAgICAgICByZXR1cm4g
c2VsZi5fcnVuX2NvbW1hbmQoYXJncywgIkFibGUgdG8gcGFzcyB0ZXN0cyB3aXRob3V0IHBhdGNo
IiwgIlVuYWJsZSB0byBwYXNzIHRlc3RzIHdpdGhvdXQgcGF0Y2ggKHRyZWUgaXMgcmVkPykiKQog
CiAgICAgZGVmIF9sYW5kKHNlbGYpOgogICAgICAgICAjIFVuY2xlYXIgaWYgdGhpcyBzaG91bGQg
cGFzcyAtLXF1aWV0IG9yIG5vdC4gIElmIC0tcGFyZW50LWNvbW1hbmQgYWx3YXlzIGRvZXMgdGhl
IHJlcG9ydGluZywgdGhlbiBpdCBzaG91bGQuCkBAIC0yMDYsMTAgKzIzNSwzNSBAQCBjbGFzcyBQ
YXRjaEFuYWx5c2lzVGFzayhvYmplY3QpOgogICAgICAgICAjIGFsc28gcHJlc2VudCB3aXRob3V0
IHRoZSBwYXRjaCwgc28gd2UgZG9uJ3QgbmVlZCB0byBkZWZlci4KICAgICAgICAgcmV0dXJuIEZh
bHNlCiAKLSAgICBkZWYgX3Rlc3RfcGF0Y2goc2VsZik6CisgICAgIyBGSVhNRTogQWJzdHJhY3Qg
b3V0IGNvbW1vbiBwYXJ0cyBvZiB0aGUgcmV0cnkgbG9naWMuCisgICAgZGVmIF9yZXRyeV9qc2Nf
dGVzdHMoc2VsZik6CisgICAgICAgIGZpcnN0X3Jlc3VsdHMgPSBzZWxmLl9kZWxlZ2F0ZS50ZXN0
X3Jlc3VsdHMoKQorICAgICAgICBmaXJzdF9zY3JpcHRfZXJyb3IgPSBzZWxmLl9zY3JpcHRfZXJy
b3IKKyAgICAgICAgZmlyc3RfZmFpbHVyZV9zdGF0dXNfaWQgPSBzZWxmLmZhaWx1cmVfc3RhdHVz
X2lkCisgICAgICAgIGlmIGZpcnN0X3Jlc3VsdHMgaXMgTm9uZToKKyAgICAgICAgICAgIHJldHVy
biBGYWxzZQorCiAgICAgICAgIGlmIHNlbGYuX3Rlc3QoKToKICAgICAgICAgICAgIHJldHVybiBU
cnVlCisgICAgICAgIHNlY29uZF9yZXN1bHRzID0gc2VsZi5fZGVsZWdhdGUudGVzdF9yZXN1bHRz
KCkKKyAgICAgICAgc2Vjb25kX3NjcmlwdF9lcnJvciA9IHNlbGYuX3NjcmlwdF9lcnJvcgorICAg
ICAgICBpZiBzZWNvbmRfcmVzdWx0cyBpcyBOb25lOgorICAgICAgICAgICAgcmV0dXJuIEZhbHNl
CisKKyAgICAgICAgY29uc2lzdGVudF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMuaW50ZXJzZWN0
aW9uKGZpcnN0X3Jlc3VsdHMsIHNlY29uZF9yZXN1bHRzKQorCisgICAgICAgIHNlbGYuX2J1aWxk
X2FuZF90ZXN0X3dpdGhvdXRfcGF0Y2goKQorICAgICAgICBjbGVhbl90cmVlX3Jlc3VsdHMgPSBz
ZWxmLl9kZWxlZ2F0ZS50ZXN0X3Jlc3VsdHMoKQorICAgICAgICBpZiBjbGVhbl90cmVlX3Jlc3Vs
dHMgaXMgTm9uZToKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgICAgIGlmIGNvbnNp
c3RlbnRfcmVzdWx0cy5pc19zdWJzZXQoY2xlYW5fdHJlZV9yZXN1bHRzKToKKyAgICAgICAgICAg
IHJldHVybiBUcnVlCisKKyAgICAgICAgc2VsZi5mYWlsdXJlX3N0YXR1c19pZCA9IGZpcnN0X2Zh
aWx1cmVfc3RhdHVzX2lkCisgICAgICAgIHJldHVybiBzZWxmLnJlcG9ydF9mYWlsdXJlKE5vbmUs
IGNvbnNpc3RlbnRfcmVzdWx0cywgZmlyc3Rfc2NyaXB0X2Vycm9yKQogCisgICAgZGVmIF9yZXRy
eV9sYXlvdXRfdGVzdHMoc2VsZik6CiAgICAgICAgICMgTm90ZTogYXJjaGl2ZV9sYXN0X3Rlc3Rf
cmVzdWx0cyBkZWxldGVzIHRoZSByZXN1bHRzIGRpcmVjdG9yeSwgbWFraW5nIHRoZXNlIGNhbGxz
IG9yZGVyLXNlbnNpdHZlLgogICAgICAgICAjIFdlIGNvdWxkIHJlbW92ZSB0aGlzIGRlcGVuZGVu
Y3kgYnkgYnVpbGRpbmcgdGhlIHRlc3RfcmVzdWx0cyBmcm9tIHRoZSBhcmNoaXZlLgogICAgICAg
ICBmaXJzdF9yZXN1bHRzID0gc2VsZi5fZGVsZWdhdGUudGVzdF9yZXN1bHRzKCkKQEAgLTI0MCwx
MSArMjk0LDEzIEBAIGNsYXNzIFBhdGNoQW5hbHlzaXNUYXNrKG9iamVjdCk6CiAgICAgICAgICAg
ICByZXR1cm4gc2VsZi5yZXBvcnRfZmFpbHVyZShmaXJzdF9yZXN1bHRzX2FyY2hpdmUsIGZpcnN0
X3Jlc3VsdHMsIGZpcnN0X3NjcmlwdF9lcnJvcikKIAogICAgICAgICBpZiBzZWNvbmRfcmVzdWx0
cy5kaWRfZXhjZWVkX3Rlc3RfZmFpbHVyZV9saW1pdCgpOgotICAgICAgICAgICAgc2VsZi5fc2hv
dWxkX2RlZmVyX3BhdGNoX29yX3Rocm93KGZpcnN0X3Jlc3VsdHMuZmFpbGluZ190ZXN0X3Jlc3Vs
dHMoKSwgZmlyc3RfcmVzdWx0c19hcmNoaXZlLCBmaXJzdF9zY3JpcHRfZXJyb3IsIGZpcnN0X2Zh
aWx1cmVfc3RhdHVzX2lkKQorICAgICAgICAgICAgc2VsZi5fc2hvdWxkX2RlZmVyX3BhdGNoX29y
X3Rocm93KGZpcnN0X3Jlc3VsdHMuZmFpbGluZ190ZXN0X3Jlc3VsdHMoKSwgZmlyc3RfcmVzdWx0
c19hcmNoaXZlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGZpcnN0X3NjcmlwdF9lcnJvciwgZmlyc3RfZmFpbHVyZV9zdGF0dXNfaWQpCiAgICAgICAgICAg
ICByZXR1cm4gRmFsc2UKIAogICAgICAgICBpZiBmaXJzdF9yZXN1bHRzLmRpZF9leGNlZWRfdGVz
dF9mYWlsdXJlX2xpbWl0KCk6Ci0gICAgICAgICAgICBzZWxmLl9zaG91bGRfZGVmZXJfcGF0Y2hf
b3JfdGhyb3coc2Vjb25kX3Jlc3VsdHMuZmFpbGluZ190ZXN0X3Jlc3VsdHMoKSwgc2Vjb25kX3Jl
c3VsdHNfYXJjaGl2ZSwgc2Vjb25kX3NjcmlwdF9lcnJvciwgc2Vjb25kX2ZhaWx1cmVfc3RhdHVz
X2lkKQorICAgICAgICAgICAgc2VsZi5fc2hvdWxkX2RlZmVyX3BhdGNoX29yX3Rocm93KHNlY29u
ZF9yZXN1bHRzLmZhaWxpbmdfdGVzdF9yZXN1bHRzKCksIHNlY29uZF9yZXN1bHRzX2FyY2hpdmUs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vjb25kX3Nj
cmlwdF9lcnJvciwgc2Vjb25kX2ZhaWx1cmVfc3RhdHVzX2lkKQogICAgICAgICAgICAgcmV0dXJu
IEZhbHNlCiAKICAgICAgICAgaWYgc2VsZi5fcmVzdWx0c19mYWlsZWRfZGlmZmVyZW50X3Rlc3Rz
KGZpcnN0X3Jlc3VsdHMsIHNlY29uZF9yZXN1bHRzKToKQEAgLTI1OSwxNCArMzE1LDE2IEBAIGNs
YXNzIFBhdGNoQW5hbHlzaXNUYXNrKG9iamVjdCk6CiAKICAgICAgICAgICAgIHRlc3RzX3RoYXRf
Y29uc2lzdGVudGx5X2ZhaWxlZCA9IGZpcnN0X2ZhaWxpbmdfcmVzdWx0c19zZXQuaW50ZXJzZWN0
aW9uKHNlY29uZF9mYWlsaW5nX3Jlc3VsdHNfc2V0KQogICAgICAgICAgICAgaWYgdGVzdHNfdGhh
dF9jb25zaXN0ZW50bHlfZmFpbGVkOgotICAgICAgICAgICAgICAgIGlmIHNlbGYuX3Nob3VsZF9k
ZWZlcl9wYXRjaF9vcl90aHJvdyh0ZXN0c190aGF0X2NvbnNpc3RlbnRseV9mYWlsZWQsIGZpcnN0
X3Jlc3VsdHNfYXJjaGl2ZSwgZmlyc3Rfc2NyaXB0X2Vycm9yLCBmaXJzdF9mYWlsdXJlX3N0YXR1
c19pZCk6CisgICAgICAgICAgICAgICAgaWYgc2VsZi5fc2hvdWxkX2RlZmVyX3BhdGNoX29yX3Ro
cm93KHRlc3RzX3RoYXRfY29uc2lzdGVudGx5X2ZhaWxlZCwgZmlyc3RfcmVzdWx0c19hcmNoaXZl
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBm
aXJzdF9zY3JpcHRfZXJyb3IsIGZpcnN0X2ZhaWx1cmVfc3RhdHVzX2lkKToKICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIEZhbHNlICAjIERlZmVyIHBhdGNoCiAKICAgICAgICAgICAgICMgQXQg
dGhpcyBwb2ludCB3ZSBrbm93IHRoYXQgYXQgbGVhc3Qgb25lIHRlc3QgZmxha2VkLCBidXQgbm8g
Y29uc2lzdGVudCBmYWlsdXJlcwogICAgICAgICAgICAgIyB3ZXJlIGludHJvZHVjZWQuIFRoaXMg
aXMgYSBiaXQgb2YgYSBncmV5LXpvbmUuCiAgICAgICAgICAgICByZXR1cm4gRmFsc2UgICMgRGVm
ZXIgcGF0Y2gKIAotICAgICAgICBpZiBzZWxmLl9zaG91bGRfZGVmZXJfcGF0Y2hfb3JfdGhyb3co
Zmlyc3RfcmVzdWx0cy5mYWlsaW5nX3Rlc3RfcmVzdWx0cygpLCBmaXJzdF9yZXN1bHRzX2FyY2hp
dmUsIGZpcnN0X3NjcmlwdF9lcnJvciwgZmlyc3RfZmFpbHVyZV9zdGF0dXNfaWQpOgorICAgICAg
ICBpZiBzZWxmLl9zaG91bGRfZGVmZXJfcGF0Y2hfb3JfdGhyb3coZmlyc3RfcmVzdWx0cy5mYWls
aW5nX3Rlc3RfcmVzdWx0cygpLCBmaXJzdF9yZXN1bHRzX2FyY2hpdmUsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJzdF9zY3JpcHRfZXJyb3IsIGZpcnN0
X2ZhaWx1cmVfc3RhdHVzX2lkKToKICAgICAgICAgICAgIHJldHVybiBGYWxzZSAgIyBEZWZlciBw
YXRjaAogCiAgICAgICAgICMgQXQgdGhpcyBwb2ludCwgd2Uga25vdyB0aGF0IHRoZSBmaXJzdCBh
bmQgc2Vjb25kIHJ1bnMgaGFkIHRoZSBleGFjdCBzYW1lIGZhaWx1cmVzLApAQCAtMjc0LDYgKzMz
MiwxNSBAQCBjbGFzcyBQYXRjaEFuYWx5c2lzVGFzayhvYmplY3QpOgogICAgICAgICAjIHRoYXQg
dGhlIHBhdGNoIGlzIGdvb2QuCiAgICAgICAgIHJldHVybiBUcnVlCiAKKyAgICBkZWYgX3Rlc3Rf
cGF0Y2goc2VsZik6CisgICAgICAgIGlmIHNlbGYuX3Rlc3QoKToKKyAgICAgICAgICAgIHJldHVy
biBUcnVlCisKKyAgICAgICAgaWYgaGFzYXR0cihzZWxmLl9kZWxlZ2F0ZSwgJ2dyb3VwJykgYW5k
IHNlbGYuX2RlbGVnYXRlLmdyb3VwKCkgPT0gImpzYyI6CisgICAgICAgICAgICByZXR1cm4gc2Vs
Zi5fcmV0cnlfanNjX3Rlc3RzKCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJldHVybiBz
ZWxmLl9yZXRyeV9sYXlvdXRfdGVzdHMoKQorCiAgICAgZGVmIHJlc3VsdHNfYXJjaGl2ZV9mcm9t
X3BhdGNoX3Rlc3RfcnVuKHNlbGYsIHBhdGNoKToKICAgICAgICAgYXNzZXJ0KHNlbGYuX3BhdGNo
LmlkKCkgPT0gcGF0Y2guaWQoKSkgICMgUGF0Y2hBbmFseXNpc1Rhc2sgaXMgbm90IGN1cnJlbnRs
eSByZS11c2VhYmxlLgogICAgICAgICByZXR1cm4gc2VsZi5fcmVzdWx0c19hcmNoaXZlX2Zyb21f
cGF0Y2hfdGVzdF9ydW4KZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9j
b21tYW5kcy9kb3dubG9hZC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5k
cy9kb3dubG9hZC5weQppbmRleCBlNTE2OWFhYzg1ZjMxODZlODRiZTlkNTAyNDU5MmJkN2ZlNmQ1
ZGQ1Li4xNGI1NWJjM2Y3YzljMTBiNWRmNjBmYzFhZjg3ZDdjYTM5ZTNiYzk0IDEwMDY0NAotLS0g
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZG93bmxvYWQucHkKKysrIGIv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Rvd25sb2FkLnB5CkBAIC0xLDUg
KzEsNSBAQAogIyBDb3B5cmlnaHQgKGMpIDIwMDksIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSMgQ29weXJpZ2h0IChjKSAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChjKSAyMDA5LCAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTg3LDYgKzg3
LDE0IEBAIGNsYXNzIEJ1aWxkQW5kVGVzdChBYnN0cmFjdFNlcXVlbmNlZENvbW1hbmQpOgogICAg
IF0KIAogCitjbGFzcyBDaGVja1BhdGNoUmVsZXZhbmNlKEFic3RyYWN0U2VxdWVuY2VkQ29tbWFu
ZCk6CisgICAgbmFtZSA9ICJjaGVjay1wYXRjaC1yZWxldmFuY2UiCisgICAgaGVscF90ZXh0ID0g
IkNoZWNrIGlmIHRoaXMgcGF0Y2ggbmVlZHMgdG8gYmUgdGVzdGVkIgorICAgIHN0ZXBzID0gWwor
ICAgICAgICBzdGVwcy5DaGVja1BhdGNoUmVsZXZhbmNlLAorICAgIF0KKworCiBjbGFzcyBMYW5k
KEFic3RyYWN0U2VxdWVuY2VkQ29tbWFuZCk6CiAgICAgbmFtZSA9ICJsYW5kIgogICAgIGhlbHBf
dGV4dCA9ICJMYW5kIHRoZSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5IGRpZmYgYW5kIHVwZGF0
ZXMgdGhlIGFzc29jaWF0ZWQgYnVnIGlmIGFueSIKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvdG9vbC9jb21tYW5kcy9kb3dubG9hZF91bml0dGVzdC5weSBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9kb3dubG9hZF91bml0dGVzdC5weQppbmRleCA0Mjlk
YTEyNDZmOGJkNzZhYjAyZWU2MzNjNDJkNmZiMzhkMzg1NGM1Li41OWM5NDg4YzA5NDA5OWI3MzQ3
ZTk2ZWYyMDJjMzYwZDkxOTQ2MzAzIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L3Rvb2wvY29tbWFuZHMvZG93bmxvYWRfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS90b29sL2NvbW1hbmRzL2Rvd25sb2FkX3VuaXR0ZXN0LnB5CkBAIC04OSw2ICs4OSw3
IEBAIGNsYXNzIERvd25sb2FkQ29tbWFuZHNUZXN0KENvbW1hbmRzVGVzdCk6CiAgICAgICAgIG9w
dGlvbnMudXBkYXRlID0gVHJ1ZQogICAgICAgICBvcHRpb25zLmFyY2hpdGVjdHVyZSA9ICdNT0NL
IEFSQ0gnCiAgICAgICAgIG9wdGlvbnMuaXRlcmF0ZV9vbl9uZXdfdGVzdHMgPSAwCisgICAgICAg
IG9wdGlvbnMuZ3JvdXAgPSBOb25lCiAgICAgICAgIHJldHVybiBvcHRpb25zCiAKICAgICBkZWYg
dGVzdF9idWlsZChzZWxmKToKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9v
bC9jb21tYW5kcy9lYXJseXdhcm5pbmdzeXN0ZW0ucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L3Rvb2wvY29tbWFuZHMvZWFybHl3YXJuaW5nc3lzdGVtLnB5CmluZGV4IDliYzA0MTg2MGNlNjc0
NTQ0NTRlNGIyNTE0MzhhOWRiZTUyNjQ1MTMuLjY2NmQ1ZmRlMjQwMGI0ZTI2YjZiZWY5ODUxY2Vj
ZDE2ZjU0ZmFkNTIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21t
YW5kcy9lYXJseXdhcm5pbmdzeXN0ZW0ucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90
b29sL2NvbW1hbmRzL2Vhcmx5d2FybmluZ3N5c3RlbS5weQpAQCAtMSw0ICsxLDUgQEAKICMgQ29w
eXJpZ2h0IChjKSAyMDA5IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHly
aWdodCAoYykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC0yOCw2ICsyOSw3IEBACiAKIGltcG9ydCBqc29uCiBp
bXBvcnQgbG9nZ2luZworaW1wb3J0IG9zCiBmcm9tIG9wdHBhcnNlIGltcG9ydCBtYWtlX29wdGlv
bgogCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5jb25maWcuY29tbWl0dGVycyBpbXBvcnQgQ29tbWl0
dGVyTGlzdApAQCAtMzYsNyArMzgsOCBAQCBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZmls
ZXN5c3RlbSBpbXBvcnQgRmlsZVN5c3RlbQogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmV4
ZWN1dGl2ZSBpbXBvcnQgU2NyaXB0RXJyb3IKIGZyb20gd2Via2l0cHkudG9vbC5ib3QuZWFybHl3
YXJuaW5nc3lzdGVtdGFzayBpbXBvcnQgRWFybHlXYXJuaW5nU3lzdGVtVGFzaywgRWFybHlXYXJu
aW5nU3lzdGVtVGFza0RlbGVnYXRlCiBmcm9tIHdlYmtpdHB5LnRvb2wuYm90LmxheW91dHRlc3Ry
ZXN1bHRzcmVhZGVyIGltcG9ydCBMYXlvdXRUZXN0UmVzdWx0c1JlYWRlcgotZnJvbSB3ZWJraXRw
eS50b29sLmJvdC5wYXRjaGFuYWx5c2lzdGFzayBpbXBvcnQgVW5hYmxlVG9BcHBseVBhdGNoLCBQ
YXRjaElzTm90VmFsaWQKK2Zyb20gd2Via2l0cHkudG9vbC5ib3QuanNjdGVzdHJlc3VsdHNyZWFk
ZXIgaW1wb3J0IEpTQ1Rlc3RSZXN1bHRzUmVhZGVyCitmcm9tIHdlYmtpdHB5LnRvb2wuYm90LnBh
dGNoYW5hbHlzaXN0YXNrIGltcG9ydCBVbmFibGVUb0FwcGx5UGF0Y2gsIFBhdGNoSXNOb3RWYWxp
ZCwgUGF0Y2hJc05vdEFwcGxpY2FibGUKIGZyb20gd2Via2l0cHkudG9vbC5ib3QucXVldWVlbmdp
bmUgaW1wb3J0IFF1ZXVlRW5naW5lCiBmcm9tIHdlYmtpdHB5LnRvb2wuY29tbWFuZHMucXVldWVz
IGltcG9ydCBBYnN0cmFjdFJldmlld1F1ZXVlCiAKQEAgLTUzLDcgKzU2LDEyIEBAIGNsYXNzIEFi
c3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtKEFic3RyYWN0UmV2aWV3UXVldWUsIEVhcmx5V2Fybmlu
Z1N5c3RlbVRhc2tEZWxlCiAKICAgICBkZWYgYmVnaW5fd29ya19xdWV1ZShzZWxmKToKICAgICAg
ICAgQWJzdHJhY3RSZXZpZXdRdWV1ZS5iZWdpbl93b3JrX3F1ZXVlKHNlbGYpCi0gICAgICAgIHNl
bGYuX2xheW91dF90ZXN0X3Jlc3VsdHNfcmVhZGVyID0gTGF5b3V0VGVzdFJlc3VsdHNSZWFkZXIo
c2VsZi5fdG9vbCwgc2VsZi5fcG9ydC5yZXN1bHRzX2RpcmVjdG9yeSgpLCBzZWxmLl9sb2dfZGly
ZWN0b3J5KCkpCisKKyAgICAgICAgaWYgc2VsZi5ncm91cCgpID09ICJqc2MiOgorICAgICAgICAg
ICAganNjX3Jlc3VsdHNfZGlyZWN0b3J5ID0gb3MucGF0aC5kaXJuYW1lKG9zLnBhdGguZGlybmFt
ZShvcy5wYXRoLmRpcm5hbWUoc2VsZi5fcG9ydC5yZXN1bHRzX2RpcmVjdG9yeSgpKSkpCisgICAg
ICAgICAgICBzZWxmLl90ZXN0X3Jlc3VsdHNfcmVhZGVyID0gSlNDVGVzdFJlc3VsdHNSZWFkZXIo
c2VsZi5fdG9vbCwganNjX3Jlc3VsdHNfZGlyZWN0b3J5KQorICAgICAgICBlbHNlOgorICAgICAg
ICAgICAgc2VsZi5fdGVzdF9yZXN1bHRzX3JlYWRlciA9IExheW91dFRlc3RSZXN1bHRzUmVhZGVy
KHNlbGYuX3Rvb2wsIHNlbGYuX3BvcnQucmVzdWx0c19kaXJlY3RvcnkoKSwgc2VsZi5fbG9nX2Rp
cmVjdG9yeSgpKQogCiAgICAgZGVmIF9mYWlsaW5nX3Rlc3RzX21lc3NhZ2Uoc2VsZiwgdGFzaywg
cGF0Y2gpOgogICAgICAgICByZXN1bHRzID0gdGFzay5yZXN1bHRzX2Zyb21fcGF0Y2hfdGVzdF9y
dW4ocGF0Y2gpCkBAIC03OSw4ICs4NywxMiBAQCBjbGFzcyBBYnN0cmFjdEVhcmx5V2FybmluZ1N5
c3RlbShBYnN0cmFjdFJldmlld1F1ZXVlLCBFYXJseVdhcm5pbmdTeXN0ZW1UYXNrRGVsZQogICAg
ICAgICAgICAgdG9vbC5idWdzLmFkZF9jY190b19idWcocGF0Y2guYnVnX2lkKCksIHNlbGYud2F0
Y2hlcnMpCiAgICAgICAgIHRvb2wuYnVncy5zZXRfZmxhZ19vbl9hdHRhY2htZW50KHBhdGNoLmlk
KCksICJjb21taXQtcXVldWUiLCAiLSIsIG1lc3NhZ2UpCiAKKyAgICAjIFRoaXMgZXhpc3RzIGZv
ciBtb2NraW5nCisgICAgZGVmIF9jcmVhdGVfdGFzayhzZWxmLCBwYXRjaCk6CisgICAgICAgIHJl
dHVybiBFYXJseVdhcm5pbmdTeXN0ZW1UYXNrKHNlbGYsIHBhdGNoLCBzZWxmLl9vcHRpb25zLnJ1
bl90ZXN0cykKKwogICAgIGRlZiByZXZpZXdfcGF0Y2goc2VsZiwgcGF0Y2gpOgotICAgICAgICB0
YXNrID0gRWFybHlXYXJuaW5nU3lzdGVtVGFzayhzZWxmLCBwYXRjaCwgc2VsZi5fb3B0aW9ucy5y
dW5fdGVzdHMpCisgICAgICAgIHRhc2sgPSBzZWxmLl9jcmVhdGVfdGFzayhwYXRjaCkKICAgICAg
ICAgdHJ5OgogICAgICAgICAgICAgc3VjY2VlZGVkID0gdGFzay5ydW4oKQogICAgICAgICAgICAg
aWYgbm90IHN1Y2NlZWRlZDoKQEAgLTkzLDYgKzEwNSw5IEBAIGNsYXNzIEFic3RyYWN0RWFybHlX
YXJuaW5nU3lzdGVtKEFic3RyYWN0UmV2aWV3UXVldWUsIEVhcmx5V2FybmluZ1N5c3RlbVRhc2tE
ZWxlCiAgICAgICAgIGV4Y2VwdCBVbmFibGVUb0FwcGx5UGF0Y2gsIGU6CiAgICAgICAgICAgICBz
ZWxmLl9kaWRfZXJyb3IocGF0Y2gsICIlcyB1bmFibGUgdG8gYXBwbHkgcGF0Y2guIiAlIHNlbGYu
bmFtZSkKICAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICBleGNlcHQgUGF0Y2hJc05v
dEFwcGxpY2FibGUsIGU6CisgICAgICAgICAgICBzZWxmLl9kaWRfc2tpcChwYXRjaCwgIlBhdGNo
IG5vdCBhcHBsaWNhYmxlIHRvICVzLiIgJSBzZWxmLm5hbWUpCisgICAgICAgICAgICByZXR1cm4g
RmFsc2UKICAgICAgICAgZXhjZXB0IFNjcmlwdEVycm9yLCBlOgogICAgICAgICAgICAgc2VsZi5f
cG9zdF9yZWplY3RfbWVzc2FnZV9vbl9idWcoc2VsZi5fdG9vbCwgcGF0Y2gsIHRhc2suZmFpbHVy
ZV9zdGF0dXNfaWQsIHNlbGYuX2ZhaWxpbmdfdGVzdHNfbWVzc2FnZSh0YXNrLCBwYXRjaCkpCiAg
ICAgICAgICAgICByZXN1bHRzX2FyY2hpdmUgPSB0YXNrLnJlc3VsdHNfYXJjaGl2ZV9mcm9tX3Bh
dGNoX3Rlc3RfcnVuKHBhdGNoKQpAQCAtMTE3LDE0ICsxMzIsMTcgQEAgY2xhc3MgQWJzdHJhY3RF
YXJseVdhcm5pbmdTeXN0ZW0oQWJzdHJhY3RSZXZpZXdRdWV1ZSwgRWFybHlXYXJuaW5nU3lzdGVt
VGFza0RlbGUKICAgICAgICAgcmV0dXJuIHNlbGYuX3VwZGF0ZV9zdGF0dXMobWVzc2FnZSwgcGF0
Y2g9cGF0Y2gsIHJlc3VsdHNfZmlsZT1mYWlsdXJlX2xvZykKIAogICAgIGRlZiB0ZXN0X3Jlc3Vs
dHMoc2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmLl9sYXlvdXRfdGVzdF9yZXN1bHRzX3JlYWRl
ci5yZXN1bHRzKCkKKyAgICAgICAgcmV0dXJuIHNlbGYuX3Rlc3RfcmVzdWx0c19yZWFkZXIucmVz
dWx0cygpCiAKICAgICBkZWYgYXJjaGl2ZV9sYXN0X3Rlc3RfcmVzdWx0cyhzZWxmLCBwYXRjaCk6
Ci0gICAgICAgIHJldHVybiBzZWxmLl9sYXlvdXRfdGVzdF9yZXN1bHRzX3JlYWRlci5hcmNoaXZl
KHBhdGNoKQorICAgICAgICByZXR1cm4gc2VsZi5fdGVzdF9yZXN1bHRzX3JlYWRlci5hcmNoaXZl
KHBhdGNoKQogCiAgICAgZGVmIGJ1aWxkX3N0eWxlKHNlbGYpOgogICAgICAgICByZXR1cm4gc2Vs
Zi5fYnVpbGRfc3R5bGUKIAorICAgIGRlZiBncm91cChzZWxmKToKKyAgICAgICAgcmV0dXJuIHNl
bGYuX2dyb3VwCisKICAgICBkZWYgcmVmZXRjaF9wYXRjaChzZWxmLCBwYXRjaCk6CiAgICAgICAg
IHJldHVybiBzZWxmLl90b29sLmJ1Z3MuZmV0Y2hfYXR0YWNobWVudChwYXRjaC5pZCgpKQogCkBA
IC0xNDksMTIgKzE2NywxMyBAQCBjbGFzcyBBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbShBYnN0
cmFjdFJldmlld1F1ZXVlLCBFYXJseVdhcm5pbmdTeXN0ZW1UYXNrRGVsZQogCiAgICAgICAgIGNs
YXNzZXMgPSBbXQogICAgICAgICBmb3IgbmFtZSwgY29uZmlnIGluIGV3c2VzLml0ZXJpdGVtcygp
OgotICAgICAgICAgICAgY2xhc3Nlcy5hcHBlbmQodHlwZShuYW1lLmVuY29kZSgndXRmLTgnKS50
cmFuc2xhdGUoTm9uZSwgJyAtJyksIChBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbSwpLCB7Cisg
ICAgICAgICAgICBjbGFzc2VzLmFwcGVuZCh0eXBlKG5hbWUuZW5jb2RlKCd1dGYtOCcpLnRyYW5z
bGF0ZShOb25lLCAnIC0nKSwgKGNscywpLCB7CiAgICAgICAgICAgICAgICAgJ25hbWUnOiBjb25m
aWcuZ2V0KCduYW1lJywgY29uZmlnWydwb3J0J10gKyAnLWV3cycpLAogICAgICAgICAgICAgICAg
ICdwb3J0X25hbWUnOiBjb25maWdbJ3BvcnQnXSwKICAgICAgICAgICAgICAgICAnYXJjaGl0ZWN0
dXJlJzogY29uZmlnLmdldCgnYXJjaGl0ZWN0dXJlJywgTm9uZSksCiAgICAgICAgICAgICAgICAg
J19idWlsZF9zdHlsZSc6IGNvbmZpZy5nZXQoJ3N0eWxlJywgInJlbGVhc2UiKSwKICAgICAgICAg
ICAgICAgICAnd2F0Y2hlcnMnOiBjb25maWcuZ2V0KCd3YXRjaGVycycsIFtdKSwKICAgICAgICAg
ICAgICAgICAncnVuX3Rlc3RzJzogY29uZmlnLmdldCgncnVuVGVzdHMnLCBjbHMucnVuX3Rlc3Rz
KSwKKyAgICAgICAgICAgICAgICAnX2dyb3VwJzogY29uZmlnLmdldCgnZ3JvdXAnLCBOb25lKSwK
ICAgICAgICAgICAgIH0pKQogICAgICAgICByZXR1cm4gY2xhc3NlcwpkaWZmIC0tZ2l0IGEvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Vhcmx5d2FybmluZ3N5c3RlbV91bml0
dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9lYXJseXdhcm5p
bmdzeXN0ZW1fdW5pdHRlc3QucHkKaW5kZXggMDg4ODc4MTNjZTJlOTNhOGVjOWRhMzc2MzZlY2Jk
ZTllZmYzYzllNy4uNDhlMWU0NDk3NjAwNmY1MDMzY2U1ODQ2NzIyZjY5Y2ZhZDVkN2ExNSAxMDA2
NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Vhcmx5d2Fybmlu
Z3N5c3RlbV91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29t
bWFuZHMvZWFybHl3YXJuaW5nc3lzdGVtX3VuaXR0ZXN0LnB5CkBAIC0xLDQgKzEsNSBAQAogIyBD
b3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29w
eXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTI5LDYgKzMwLDcgQEAKIGZyb20gd2Via2l0cHku
dGhpcmRwYXJ0eS5tb2NrIGltcG9ydCBNb2NrCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5ob3N0IGlt
cG9ydCBIb3N0CiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5ob3N0X21vY2sgaW1wb3J0IE1vY2tIb3N0
Citmcm9tIHdlYmtpdHB5LmNvbW1vbi5uZXQuanNjdGVzdHJlc3VsdHMgaW1wb3J0IEpTQ1Rlc3RS
ZXN1bHRzCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5uZXQubGF5b3V0dGVzdHJlc3VsdHMgaW1wb3J0
IExheW91dFRlc3RSZXN1bHRzCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0ub3V0cHV0Y2Fw
dHVyZSBpbXBvcnQgT3V0cHV0Q2FwdHVyZQogZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMubW9k
ZWxzIGltcG9ydCB0ZXN0X3Jlc3VsdHMKQEAgLTQxLDYyICs0MywxMDIgQEAgZnJvbSB3ZWJraXRw
eS50b29sLmNvbW1hbmRzLnF1ZXVlc3Rlc3QgaW1wb3J0IFF1ZXVlc1Rlc3QKIGZyb20gd2Via2l0
cHkudG9vbC5tb2NrdG9vbCBpbXBvcnQgTW9ja1Rvb2wsIE1vY2tPcHRpb25zCiAKIAotY2xhc3Mg
QWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW1UZXN0KFF1ZXVlc1Rlc3QpOgotICAgIGRlZiB0ZXN0
X2ZhaWxpbmdfdGVzdHNfbWVzc2FnZShzZWxmKToKLSAgICAgICAgIyBOZWVkZWQgdG8gZGVmaW5l
IHBvcnRfbmFtZSwgdXNlZCBpbiBBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbS5fX2luaXRfXwot
ICAgICAgICBjbGFzcyBUZXN0RVdTKEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtKToKLSAgICAg
ICAgICAgIHBvcnRfbmFtZSA9ICJ3aW4iICAjIE5lZWRzIHRvIGJlIGEgcG9ydCB3aGljaCBwb3J0
L2ZhY3RvcnkgdW5kZXJzdGFuZHMuCi0gICAgICAgICAgICBfYnVpbGRfc3R5bGUgPSBOb25lCisj
IE5lZWRlZCB0byBkZWZpbmUgcG9ydF9uYW1lLCB1c2VkIGluIEFic3RyYWN0RWFybHlXYXJuaW5n
U3lzdGVtLl9faW5pdF9fCitjbGFzcyBUZXN0RVdTKEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVt
KToKKyAgICBwb3J0X25hbWUgPSAid2luIiAgIyBOZWVkcyB0byBiZSBhIHBvcnQgd2hpY2ggcG9y
dC9mYWN0b3J5IHVuZGVyc3RhbmRzLgorICAgIF9idWlsZF9zdHlsZSA9IE5vbmUKKyAgICBfZ3Jv
dXAgPSBOb25lCiAKLSAgICAgICAgZXdzID0gVGVzdEVXUygpCisKK2NsYXNzIFRlc3RKU0NFV1Mo
QWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0pOgorICAgIHBvcnRfbmFtZSA9ICJtYWMiICAjIE5l
ZWRzIHRvIGJlIGEgcG9ydCB3aGljaCBwb3J0L2ZhY3RvcnkgdW5kZXJzdGFuZHMuCisgICAgX2J1
aWxkX3N0eWxlID0gTm9uZQorICAgIF9ncm91cCA9ICJqc2MiCisKKworY2xhc3MgQWJzdHJhY3RF
YXJseVdhcm5pbmdTeXN0ZW1UZXN0KFF1ZXVlc1Rlc3QpOgorICAgIGRlZiBfdGVzdF9tZXNzYWdl
KHNlbGYsIGV3cywgcmVzdWx0cywgbWVzc2FnZSk6CiAgICAgICAgIGV3cy5iaW5kX3RvX3Rvb2wo
TW9ja1Rvb2woKSkKICAgICAgICAgZXdzLmhvc3QgPSBNb2NrSG9zdCgpCiAgICAgICAgIGV3cy5f
b3B0aW9ucyA9IE1vY2tPcHRpb25zKHBvcnQ9Tm9uZSwgY29uZmlybT1GYWxzZSkKICAgICAgICAg
T3V0cHV0Q2FwdHVyZSgpLmFzc2VydF9vdXRwdXRzKHNlbGYsIGV3cy5iZWdpbl93b3JrX3F1ZXVl
LCBleHBlY3RlZF9sb2dzPXNlbGYuX2RlZmF1bHRfYmVnaW5fd29ya19xdWV1ZV9sb2dzKGV3cy5u
YW1lKSkKICAgICAgICAgdGFzayA9IE1vY2soKQotICAgICAgICB0YXNrLnJlc3VsdHNfZnJvbV9w
YXRjaF90ZXN0X3J1biA9IGxhbWJkYSBhOiBMYXlvdXRUZXN0UmVzdWx0cyhbdGVzdF9yZXN1bHRz
LlRlc3RSZXN1bHQoImZvby5odG1sIiwgZmFpbHVyZXM9W3Rlc3RfZmFpbHVyZXMuRmFpbHVyZVRl
eHRNaXNtYXRjaCgpXSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfcmVzdWx0cy5UZXN0UmVzdWx0
KCJiYXIuaHRtbCIsIGZhaWx1cmVzPVt0ZXN0X2ZhaWx1cmVzLkZhaWx1cmVUZXh0TWlzbWF0Y2go
KV0pXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQ9RmFs
c2UpCisgICAgICAgIHRhc2sucmVzdWx0c19mcm9tX3BhdGNoX3Rlc3RfcnVuID0gcmVzdWx0cwog
ICAgICAgICBwYXRjaCA9IGV3cy5fdG9vbC5idWdzLmZldGNoX2F0dGFjaG1lbnQoMTAwMDApCi0g
ICAgICAgIHNlbGYuYXNzZXJ0TXVsdGlMaW5lRXF1YWwoZXdzLl9mYWlsaW5nX3Rlc3RzX21lc3Nh
Z2UodGFzaywgcGF0Y2gpLCAiTmV3IGZhaWxpbmcgdGVzdHM6XG5mb28uaHRtbFxuYmFyLmh0bWwi
KQorICAgICAgICBzZWxmLmFzc2VydE11bHRpTGluZUVxdWFsKGV3cy5fZmFpbGluZ190ZXN0c19t
ZXNzYWdlKHRhc2ssIHBhdGNoKSwgbWVzc2FnZSkKKworICAgIGRlZiB0ZXN0X2ZhaWxpbmdfdGVz
dHNfbWVzc2FnZShzZWxmKToKKyAgICAgICAgZXdzID0gVGVzdEVXUygpCisgICAgICAgIHJlc3Vs
dHMgPSBsYW1iZGEgYTogTGF5b3V0VGVzdFJlc3VsdHMoW3Rlc3RfcmVzdWx0cy5UZXN0UmVzdWx0
KCJmb28uaHRtbCIsIGZhaWx1cmVzPVt0ZXN0X2ZhaWx1cmVzLkZhaWx1cmVUZXh0TWlzbWF0Y2go
KV0pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVz
dF9yZXN1bHRzLlRlc3RSZXN1bHQoImJhci5odG1sIiwgZmFpbHVyZXM9W3Rlc3RfZmFpbHVyZXMu
RmFpbHVyZVRleHRNaXNtYXRjaCgpXSldLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQ9RmFsc2UpCisg
ICAgICAgIG1lc3NhZ2UgPSAiTmV3IGZhaWxpbmcgdGVzdHM6XG5mb28uaHRtbFxuYmFyLmh0bWwi
CisgICAgICAgIHNlbGYuX3Rlc3RfbWVzc2FnZShld3MsIHJlc3VsdHMsIG1lc3NhZ2UpCisKKyAg
ICBkZWYgdGVzdF9mYWlsaW5nX2pzY190ZXN0c19tZXNzYWdlKHNlbGYpOgorICAgICAgICBld3Mg
PSBUZXN0SlNDRVdTKCkKKyAgICAgICAgcmVzdWx0cyA9IGxhbWJkYSBhOiBKU0NUZXN0UmVzdWx0
cyhGYWxzZSwgWyJlczYueWFtbC9lczYvdHlwZWRfYXJyYXlzX0ludDhBcnJheS5qcy5kZWZhdWx0
IiwgImVzNi55YW1sL2VzNi90eXBlZF9hcnJheXNfVWludDhBcnJheS5qcy5kZWZhdWx0Il0pCisg
ICAgICAgIG1lc3NhZ2UgPSAiTmV3IGZhaWxpbmcgdGVzdHM6XG5lczYueWFtbC9lczYvdHlwZWRf
YXJyYXlzX0ludDhBcnJheS5qcy5kZWZhdWx0XG5lczYueWFtbC9lczYvdHlwZWRfYXJyYXlzX1Vp
bnQ4QXJyYXkuanMuZGVmYXVsdFxuYXBpVGVzdHMiCisgICAgICAgIHNlbGYuX3Rlc3RfbWVzc2Fn
ZShld3MsIHJlc3VsdHMsIG1lc3NhZ2UpCisKKworY2xhc3MgTW9ja0Vhcmx5V2FybmluZ1N5c3Rl
bVRhc2tGb3JJbmNvbmNsdXNpdmVSZXN1bHRzKEVhcmx5V2FybmluZ1N5c3RlbVRhc2spOgorICAg
IGRlZiBfdGVzdF9wYXRjaChzZWxmKToKKyAgICAgICAgc2VsZi5fdGVzdCgpCisgICAgICAgIHJl
dHVybiBGYWxzZQorCisKK2NsYXNzIE1vY2tBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbUZvcklu
Y29uY2x1c2l2ZVJlc3VsdHMoQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0pOgorICAgIGRlZiB0
ZXN0X3Jlc3VsdHMoc2VsZik6CisgICAgICAgIHJldHVybiBOb25lCisKKyAgICBkZWYgX2NyZWF0
ZV90YXNrKHNlbGYsIHBhdGNoKToKKyAgICAgICAgdGFzayA9IE1vY2tFYXJseVdhcm5pbmdTeXN0
ZW1UYXNrRm9ySW5jb25jbHVzaXZlUmVzdWx0cyhzZWxmLCBwYXRjaCwgc2VsZi5fb3B0aW9ucy5y
dW5fdGVzdHMpCisgICAgICAgIHJldHVybiB0YXNrCiAKIAogY2xhc3MgRWFybHlXYXJuaW5nU3lz
dGVtVGVzdChRdWV1ZXNUZXN0KToKLSAgICBkZWYgX2RlZmF1bHRfZXhwZWN0ZWRfbG9ncyhzZWxm
LCBld3MpOgorICAgIGRlZiBfZGVmYXVsdF9leHBlY3RlZF9sb2dzKHNlbGYsIGV3cywgY29uY2x1
c2l2ZSk6CiAgICAgICAgIHN0cmluZ19yZXBsYWNlbWVudHMgPSB7CiAgICAgICAgICAgICAibmFt
ZSI6IGV3cy5uYW1lLAogICAgICAgICAgICAgInBvcnQiOiBld3MucG9ydF9uYW1lLAogICAgICAg
ICAgICAgImFyY2hpdGVjdHVyZSI6ICIgLS1hcmNoaXRlY3R1cmU9JXMiICUgZXdzLmFyY2hpdGVj
dHVyZSBpZiBld3MuYXJjaGl0ZWN0dXJlIGVsc2UgIiIsCiAgICAgICAgICAgICAiYnVpbGRfc3R5
bGUiOiBld3MuYnVpbGRfc3R5bGUoKSwKKyAgICAgICAgICAgICJncm91cCI6IGV3cy5ncm91cCgp
LAogICAgICAgICB9CiAgICAgICAgIGlmIGV3cy5ydW5fdGVzdHM6Ci0gICAgICAgICAgICBydW5f
dGVzdHNfbGluZSA9ICJSdW5uaW5nOiB3ZWJraXQtcGF0Y2ggLS1zdGF0dXMtaG9zdD1leGFtcGxl
LmNvbSBidWlsZC1hbmQtdGVzdCAtLW5vLWNsZWFuIC0tbm8tdXBkYXRlIC0tdGVzdCAtLW5vbi1p
bnRlcmFjdGl2ZSAtLWJ1aWxkLXN0eWxlPSUoYnVpbGRfc3R5bGUpcyAtLXBvcnQ9JShwb3J0KXMl
KGFyY2hpdGVjdHVyZSlzXG4iICUgc3RyaW5nX3JlcGxhY2VtZW50cworICAgICAgICAgICAgcnVu
X3Rlc3RzX2xpbmUgPSAiUnVubmluZzogd2Via2l0LXBhdGNoIC0tc3RhdHVzLWhvc3Q9ZXhhbXBs
ZS5jb20gYnVpbGQtYW5kLXRlc3QgLS1uby1jbGVhbiAtLW5vLXVwZGF0ZSAtLXRlc3QgLS1ub24t
aW50ZXJhY3RpdmUgLS1idWlsZC1zdHlsZT0lKGJ1aWxkX3N0eWxlKXMgLS1ncm91cD0lKGdyb3Vw
KXMgLS1wb3J0PSUocG9ydClzJShhcmNoaXRlY3R1cmUpc1xuIiAlIHN0cmluZ19yZXBsYWNlbWVu
dHMKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIHJ1bl90ZXN0c19saW5lID0gIiIKICAgICAg
ICAgc3RyaW5nX3JlcGxhY2VtZW50c1sncnVuX3Rlc3RzX2xpbmUnXSA9IHJ1bl90ZXN0c19saW5l
CiAKKyAgICAgICAgaWYgY29uY2x1c2l2ZToKKyAgICAgICAgICAgIHJlc3VsdF9saW5lcyA9ICJN
T0NLOiB1cGRhdGVfc3RhdHVzOiAlKG5hbWUpcyBQYXNzXG5NT0NLOiByZWxlYXNlX3dvcmtfaXRl
bTogJShuYW1lKXMgMTAwMDBcbiIgJSBzdHJpbmdfcmVwbGFjZW1lbnRzCisgICAgICAgIGVsc2U6
CisgICAgICAgICAgICByZXN1bHRfbGluZXMgPSAiTU9DSzogcmVsZWFzZV9sb2NrOiAlKG5hbWUp
cyAxMDAwMFxuIiAlIHN0cmluZ19yZXBsYWNlbWVudHMKKyAgICAgICAgc3RyaW5nX3JlcGxhY2Vt
ZW50c1sncmVzdWx0X2xpbmVzJ10gPSByZXN1bHRfbGluZXMKKwogICAgICAgICBleHBlY3RlZF9s
b2dzID0gewogICAgICAgICAgICAgImJlZ2luX3dvcmtfcXVldWUiOiBzZWxmLl9kZWZhdWx0X2Jl
Z2luX3dvcmtfcXVldWVfbG9ncyhld3MubmFtZSksCiAgICAgICAgICAgICAicHJvY2Vzc193b3Jr
X2l0ZW0iOiAiIiJNT0NLOiB1cGRhdGVfc3RhdHVzOiAlKG5hbWUpcyBTdGFydGVkIHByb2Nlc3Np
bmcgcGF0Y2gKIFJ1bm5pbmc6IHdlYmtpdC1wYXRjaCAtLXN0YXR1cy1ob3N0PWV4YW1wbGUuY29t
IGNsZWFuIC0tcG9ydD0lKHBvcnQpcyUoYXJjaGl0ZWN0dXJlKXMKIFJ1bm5pbmc6IHdlYmtpdC1w
YXRjaCAtLXN0YXR1cy1ob3N0PWV4YW1wbGUuY29tIHVwZGF0ZSAtLXBvcnQ9JShwb3J0KXMlKGFy
Y2hpdGVjdHVyZSlzCiBSdW5uaW5nOiB3ZWJraXQtcGF0Y2ggLS1zdGF0dXMtaG9zdD1leGFtcGxl
LmNvbSBhcHBseS1hdHRhY2htZW50IC0tbm8tdXBkYXRlIC0tbm9uLWludGVyYWN0aXZlIDEwMDAw
IC0tcG9ydD0lKHBvcnQpcyUoYXJjaGl0ZWN0dXJlKXMKLVJ1bm5pbmc6IHdlYmtpdC1wYXRjaCAt
LXN0YXR1cy1ob3N0PWV4YW1wbGUuY29tIGJ1aWxkIC0tbm8tY2xlYW4gLS1uby11cGRhdGUgLS1i
dWlsZC1zdHlsZT0lKGJ1aWxkX3N0eWxlKXMgLS1wb3J0PSUocG9ydClzJShhcmNoaXRlY3R1cmUp
cwotJShydW5fdGVzdHNfbGluZSlzTU9DSzogdXBkYXRlX3N0YXR1czogJShuYW1lKXMgUGFzcwot
TU9DSzogcmVsZWFzZV93b3JrX2l0ZW06ICUobmFtZSlzIDEwMDAwCi0iIiIgJSBzdHJpbmdfcmVw
bGFjZW1lbnRzLAorUnVubmluZzogd2Via2l0LXBhdGNoIC0tc3RhdHVzLWhvc3Q9ZXhhbXBsZS5j
b20gY2hlY2stcGF0Y2gtcmVsZXZhbmNlIC0tZ3JvdXA9JShncm91cClzIC0tcG9ydD0lKHBvcnQp
cyUoYXJjaGl0ZWN0dXJlKXMKK1J1bm5pbmc6IHdlYmtpdC1wYXRjaCAtLXN0YXR1cy1ob3N0PWV4
YW1wbGUuY29tIGJ1aWxkIC0tbm8tY2xlYW4gLS1uby11cGRhdGUgLS1idWlsZC1zdHlsZT0lKGJ1
aWxkX3N0eWxlKXMgLS1ncm91cD0lKGdyb3VwKXMgLS1wb3J0PSUocG9ydClzJShhcmNoaXRlY3R1
cmUpcworJShydW5fdGVzdHNfbGluZSlzJShyZXN1bHRfbGluZXMpcyIiIiAlIHN0cmluZ19yZXBs
YWNlbWVudHMsCiAgICAgICAgICAgICAiaGFuZGxlX3VuZXhwZWN0ZWRfZXJyb3IiOiAiTW9jayBl
cnJvciBtZXNzYWdlXG4iLAogICAgICAgICAgICAgImhhbmRsZV9zY3JpcHRfZXJyb3IiOiAiU2Ny
aXB0RXJyb3IgZXJyb3IgbWVzc2FnZVxuXG5NT0NLIG91dHB1dFxuIiwKICAgICAgICAgfQogICAg
ICAgICByZXR1cm4gZXhwZWN0ZWRfbG9ncwogCi0gICAgZGVmIF90ZXN0X2V3cyhzZWxmLCBld3Mp
OgorICAgIGRlZiBfdGVzdF9ld3Moc2VsZiwgZXdzLCByZXN1bHRzX2FyZV9jb25jbHVzaXZlPVRy
dWUpOgogICAgICAgICBld3MuYmluZF90b190b29sKE1vY2tUb29sKCkpCiAgICAgICAgIGV3cy5o
b3N0ID0gTW9ja0hvc3QoKQogICAgICAgICBvcHRpb25zID0gTW9jaygpCiAgICAgICAgIG9wdGlv
bnMucG9ydCA9IE5vbmUKICAgICAgICAgb3B0aW9ucy5ydW5fdGVzdHMgPSBld3MucnVuX3Rlc3Rz
Ci0gICAgICAgIHNlbGYuYXNzZXJ0X3F1ZXVlX291dHB1dHMoZXdzLCBleHBlY3RlZF9sb2dzPXNl
bGYuX2RlZmF1bHRfZXhwZWN0ZWRfbG9ncyhld3MpLCBvcHRpb25zPW9wdGlvbnMpCisgICAgICAg
IHNlbGYuYXNzZXJ0X3F1ZXVlX291dHB1dHMoZXdzLCBleHBlY3RlZF9sb2dzPXNlbGYuX2RlZmF1
bHRfZXhwZWN0ZWRfbG9ncyhld3MsIHJlc3VsdHNfYXJlX2NvbmNsdXNpdmUpLCBvcHRpb25zPW9w
dGlvbnMpCiAKICAgICBkZWYgdGVzdF9ld3NlcyhzZWxmKToKICAgICAgICAgY2xhc3NlcyA9IEFi
c3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtLmxvYWRfZXdzX2NsYXNzZXMoKQpAQCAtMTA0LDMgKzE0
NiwxMiBAQCBNT0NLOiByZWxlYXNlX3dvcmtfaXRlbTogJShuYW1lKXMgMTAwMDAKICAgICAgICAg
c2VsZi5tYXhEaWZmID0gTm9uZQogICAgICAgICBmb3IgZXdzX2NsYXNzIGluIGNsYXNzZXM6CiAg
ICAgICAgICAgICBzZWxmLl90ZXN0X2V3cyhld3NfY2xhc3MoKSkKKworICAgICMgVGhpcyBtdXN0
IHVzZSB0aGUgTW9jayBFV1MgY2xhc3NlcyBkZWZpbmVkIGFib3ZlCisgICAgZGVmIHRlc3RfaW5j
b25jbHVzaXZlX3Rlc3RfcmVzdWx0cyhzZWxmKToKKyAgICAgICAgY2xhc3NlcyA9IE1vY2tBYnN0
cmFjdEVhcmx5V2FybmluZ1N5c3RlbUZvckluY29uY2x1c2l2ZVJlc3VsdHMubG9hZF9ld3NfY2xh
c3NlcygpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShjbGFzc2VzKQorICAgICAgICBzZWxmLm1h
eERpZmYgPSBOb25lCisgICAgICAgIHRlc3RfY2xhc3NlcyA9IGZpbHRlcihsYW1iZGEgeDogeC5y
dW5fdGVzdHMsIGNsYXNzZXMpCisgICAgICAgIGZvciBld3NfY2xhc3MgaW4gdGVzdF9jbGFzc2Vz
OgorICAgICAgICAgICAgc2VsZi5fdGVzdF9ld3MoZXdzX2NsYXNzKCksIEZhbHNlKQpkaWZmIC0t
Z2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3F1ZXVlcy5weSBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9xdWV1ZXMucHkKaW5kZXggMWM3MWFh
Y2Q3NTMwZGM3MjhmNTU0OTA5ZTJkMmJiYzc3ZDhkMTFjYi4uYzVmZGM0ZDc3YjE1MDk4MzA3MDFk
ZDhlM2U5Yjc0OWRhMmU1M2RjZSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90
b29sL2NvbW1hbmRzL3F1ZXVlcy5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wv
Y29tbWFuZHMvcXVldWVzLnB5CkBAIC0xLDUgKzEsNSBAQAogIyBDb3B5cmlnaHQgKGMpIDIwMDkg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMgQ29weXJpZ2h0IChjKSAyMDA5IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChjKSAyMDA5LCAyMDE3
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucyBhcmUKQEAgLTYyLDYgKzYyLDcgQEAgY2xhc3MgQWJzdHJhY3RRdWV1ZShDb21tYW5kLCBR
dWV1ZUVuZ2luZURlbGVnYXRlKToKICAgICB3YXRjaGVycyA9IFsKICAgICBdCiAKKyAgICBfc2tp
cF9zdGF0dXMgPSAiU2tpcCIKICAgICBfcGFzc19zdGF0dXMgPSAiUGFzcyIKICAgICBfZmFpbF9z
dGF0dXMgPSAiRmFpbCIKICAgICBfZXJyb3Jfc3RhdHVzID0gIkVycm9yIgpAQCAtMjQ0LDYgKzI0
NSwxMSBAQCBjbGFzcyBBYnN0cmFjdFBhdGNoUXVldWUoQWJzdHJhY3RRdWV1ZSk6CiAgICAgICAg
IHNlbGYuX3VwZGF0ZV9zdGF0dXMobWVzc2FnZSwgcGF0Y2gpCiAgICAgICAgIHNlbGYuX3JlbGVh
c2Vfd29ya19pdGVtKHBhdGNoKQogCisgICAgZGVmIF9kaWRfc2tpcChzZWxmLCBwYXRjaCwgcmVh
c29uKToKKyAgICAgICAgbWVzc2FnZSA9ICIlczogJXMiICUgKHNlbGYuX3NraXBfc3RhdHVzLCBy
ZWFzb24pCisgICAgICAgIHNlbGYuX3VwZGF0ZV9zdGF0dXMobWVzc2FnZSwgcGF0Y2gpCisgICAg
ICAgIHNlbGYuX3JlbGVhc2Vfd29ya19pdGVtKHBhdGNoKQorCiAgICAgZGVmIF91bmxvY2tfcGF0
Y2goc2VsZiwgcGF0Y2gpOgogICAgICAgICBzZWxmLl90b29sLnN0YXR1c19zZXJ2ZXIucmVsZWFz
ZV9sb2NrKHNlbGYubmFtZSwgcGF0Y2gpCiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvdG9vbC9zdGVwcy9fX2luaXRfXy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9v
bC9zdGVwcy9fX2luaXRfXy5weQppbmRleCAzNTZhY2FiMDNhZDgyNzRjZTliZGE2ODU4ODY0ZmYx
OWI2NGY0YTBhLi42YzljMDlhYzUyYTM4NmI5ZjBjZjM2M2I5YzAzYmJhYTRjMDAzODYxIDEwMDY0
NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvX19pbml0X18ucHkKKysr
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL19faW5pdF9fLnB5CkBAIC0xLDQg
KzEsNSBAQAogIyBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTMzLDYgKzM0LDcgQEAgZnJv
bSB3ZWJraXRweS50b29sLnN0ZXBzLmFwcGx5cGF0Y2h3aXRobG9jYWxjb21taXQgaW1wb3J0IEFw
cGx5UGF0Y2hXaXRoTG9jYWxDb20KIGZyb20gd2Via2l0cHkudG9vbC5zdGVwcy5hcHBseXdhdGNo
bGlzdCBpbXBvcnQgQXBwbHlXYXRjaExpc3QKIGZyb20gd2Via2l0cHkudG9vbC5zdGVwcy5hdHRh
Y2h0b2J1ZyBpbXBvcnQgQXR0YWNoVG9CdWcKIGZyb20gd2Via2l0cHkudG9vbC5zdGVwcy5idWls
ZCBpbXBvcnQgQnVpbGQKK2Zyb20gd2Via2l0cHkudG9vbC5zdGVwcy5jaGVja3BhdGNocmVsZXZh
bmNlIGltcG9ydCBDaGVja1BhdGNoUmVsZXZhbmNlCiBmcm9tIHdlYmtpdHB5LnRvb2wuc3RlcHMu
Y2hlY2tzdHlsZSBpbXBvcnQgQ2hlY2tTdHlsZQogZnJvbSB3ZWJraXRweS50b29sLnN0ZXBzLmNs
ZWFud29ya2luZ2RpcmVjdG9yeSBpbXBvcnQgQ2xlYW5Xb3JraW5nRGlyZWN0b3J5CiBmcm9tIHdl
YmtpdHB5LnRvb2wuc3RlcHMuY2xvc2VidWcgaW1wb3J0IENsb3NlQnVnCmRpZmYgLS1naXQgYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvYnVpbGQucHkgYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L3Rvb2wvc3RlcHMvYnVpbGQucHkKaW5kZXggZjc0ZmZjZTcwOTQxYzYxZTU5Njc5
MmU0YzYwZGNkN2Y4YjY1ZTllYy4uNmQ2NDhlMzRmZTNhOTI5YThjYTZiNzFiMDJhNzBkOWE4NDMy
NWQxYSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL2J1aWxk
LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9idWlsZC5weQpAQCAt
MSw0ICsxLDUgQEAKICMgQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC00MSwyOCArNDIsMzUg
QEAgY2xhc3MgQnVpbGQoQWJzdHJhY3RTdGVwKToKICAgICAgICAgICAgIE9wdGlvbnMuYnVpbGQs
CiAgICAgICAgICAgICBPcHRpb25zLnF1aWV0LAogICAgICAgICAgICAgT3B0aW9ucy5idWlsZF9z
dHlsZSwKKyAgICAgICAgICAgIE9wdGlvbnMuZ3JvdXAsCiAgICAgICAgIF0KIAotICAgIGRlZiBi
dWlsZChzZWxmLCBidWlsZF9zdHlsZSk6CisgICAgZGVmIGJ1aWxkKHNlbGYsIGJ1aWxkX3N0eWxl
LCBncm91cCk6CiAgICAgICAgIGVudmlyb25tZW50ID0gc2VsZi5fdG9vbC5jb3B5X2N1cnJlbnRf
ZW52aXJvbm1lbnQoKQogICAgICAgICBlbnZpcm9ubWVudC5kaXNhYmxlX2djY19zbWFydHF1b3Rl
cygpCiAgICAgICAgIGVudmlyb25tZW50LmRpc2FibGVfamhidWlsZF9WVDEwMF9vdXRwdXQoKQog
ICAgICAgICBlbnYgPSBlbnZpcm9ubWVudC50b19kaWN0aW9uYXJ5KCkKIAotICAgICAgICBidWls
ZF93ZWJraXRfY29tbWFuZCA9IHNlbGYuX3Rvb2wuZGVwcmVjYXRlZF9wb3J0KCkuYnVpbGRfd2Vi
a2l0X2NvbW1hbmQoYnVpbGRfc3R5bGU9YnVpbGRfc3R5bGUpCisgICAgICAgIGlmIGdyb3VwID09
ICJqc2MiOgorICAgICAgICAgICAgYnVpbGRfY29tbWFuZCA9IHNlbGYuX3Rvb2wuZGVwcmVjYXRl
ZF9wb3J0KCkuYnVpbGRfanNjX2NvbW1hbmQoYnVpbGRfc3R5bGU9YnVpbGRfc3R5bGUpCisgICAg
ICAgIGVsc2U6CisgICAgICAgICAgICBidWlsZF9jb21tYW5kID0gc2VsZi5fdG9vbC5kZXByZWNh
dGVkX3BvcnQoKS5idWlsZF93ZWJraXRfY29tbWFuZChidWlsZF9zdHlsZT1idWlsZF9zdHlsZSkK
IAogICAgICAgICBpZiBzZWxmLl9vcHRpb25zLmFyY2hpdGVjdHVyZToKLSAgICAgICAgICAgIGJ1
aWxkX3dlYmtpdF9jb21tYW5kICs9IFsnQVJDSFM9JXMnICUgc2VsZi5fb3B0aW9ucy5hcmNoaXRl
Y3R1cmVdCisgICAgICAgICAgICBidWlsZF9jb21tYW5kICs9IFsnQVJDSFM9JXMnICUgc2VsZi5f
b3B0aW9ucy5hcmNoaXRlY3R1cmVdCiAKLSAgICAgICAgc2VsZi5fdG9vbC5leGVjdXRpdmUucnVu
X2FuZF90aHJvd19pZl9mYWlsKGJ1aWxkX3dlYmtpdF9jb21tYW5kLCBzZWxmLl9vcHRpb25zLnF1
aWV0LAorICAgICAgICBzZWxmLl90b29sLmV4ZWN1dGl2ZS5ydW5fYW5kX3Rocm93X2lmX2ZhaWwo
YnVpbGRfY29tbWFuZCwgc2VsZi5fb3B0aW9ucy5xdWlldCwKICAgICAgICAgICAgIGN3ZD1zZWxm
Ll90b29sLnNjbSgpLmNoZWNrb3V0X3Jvb3QsIGVudj1lbnYpCiAKICAgICBkZWYgcnVuKHNlbGYs
IHN0YXRlKToKICAgICAgICAgaWYgbm90IHNlbGYuX29wdGlvbnMuYnVpbGQ6CiAgICAgICAgICAg
ICByZXR1cm4KICAgICAgICAgX2xvZy5pbmZvKCJCdWlsZGluZyBXZWJLaXQiKQorCisgICAgICAg
IGdyb3VwID0gc2VsZi5fb3B0aW9ucy5ncm91cAorCiAgICAgICAgIGlmIHNlbGYuX29wdGlvbnMu
YnVpbGRfc3R5bGUgPT0gImJvdGgiOgotICAgICAgICAgICAgc2VsZi5idWlsZCgiZGVidWciKQot
ICAgICAgICAgICAgc2VsZi5idWlsZCgicmVsZWFzZSIpCisgICAgICAgICAgICBzZWxmLmJ1aWxk
KCJkZWJ1ZyIsIGdyb3VwKQorICAgICAgICAgICAgc2VsZi5idWlsZCgicmVsZWFzZSIsIGdyb3Vw
KQogICAgICAgICBlbHNlOgotICAgICAgICAgICAgc2VsZi5idWlsZChzZWxmLl9vcHRpb25zLmJ1
aWxkX3N0eWxlKQorICAgICAgICAgICAgc2VsZi5idWlsZChzZWxmLl9vcHRpb25zLmJ1aWxkX3N0
eWxlLCBncm91cCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVw
cy9jaGVja3BhdGNocmVsZXZhbmNlLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0
ZXBzL2NoZWNrcGF0Y2hyZWxldmFuY2UucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDU2MTc3NzUxOTQ5YTIyYjc0
OWYxYTRjYzQzNzBkN2NlYTBkY2Y2ZgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvdG9vbC9zdGVwcy9jaGVja3BhdGNocmVsZXZhbmNlLnB5CkBAIC0wLDAgKzEsNzUg
QEAKKyMgQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMg
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IKKyMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwKKyMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworaW1wb3J0IGxvZ2dp
bmcKK2ltcG9ydCByZQorCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZlIGlt
cG9ydCBTY3JpcHRFcnJvcgorZnJvbSB3ZWJraXRweS50b29sLnN0ZXBzLmFic3RyYWN0c3RlcCBp
bXBvcnQgQWJzdHJhY3RTdGVwCitmcm9tIHdlYmtpdHB5LnRvb2wuc3RlcHMub3B0aW9ucyBpbXBv
cnQgT3B0aW9ucworCitfbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18pCisKKworY2xh
c3MgQ2hlY2tQYXRjaFJlbGV2YW5jZShBYnN0cmFjdFN0ZXApOgorICAgIEBjbGFzc21ldGhvZAor
ICAgIGRlZiBvcHRpb25zKGNscyk6CisgICAgICAgIHJldHVybiBBYnN0cmFjdFN0ZXAub3B0aW9u
cygpICsgWworICAgICAgICAgICAgT3B0aW9ucy5ncm91cCwKKyAgICAgICAgXQorCisgICAganNj
X3BhdGhzID0gWworICAgICAgICAiSlNUZXN0cy8iLAorICAgICAgICAiU291cmNlL0phdmFTY3Jp
cHRDb3JlLyIsCisgICAgICAgICJTb3VyY2UvV1RGLyIKKyAgICAgICAgIlNvdXJjZS9ibWFsbG9j
LyIsCisgICAgXQorCisgICAgZ3JvdXBfdG9fcGF0aHNfbWFwcGluZyA9IHsKKyAgICAgICAgJ2pz
Yyc6IGpzY19wYXRocywKKyAgICB9CisKKyAgICBkZWYgX2NoYW5nZXNfYXJlX3JlbGV2YW50KHNl
bGYsIGNoYW5nZWRfZmlsZXMpOgorICAgICAgICAjIEluIHRoZSBkZWZhdWx0IGNhc2UsIGFsbCBw
YXRjaGVzIGFyZSByZWxldmFudAorICAgICAgICBpZiBzZWxmLl9vcHRpb25zLmdyb3VwIGlzIE5v
bmU6CisgICAgICAgICAgICByZXR1cm4gVHJ1ZQorCisgICAgICAgIHBhdHRlcm5zID0gc2VsZi5n
cm91cF90b19wYXRoc19tYXBwaW5nW3NlbGYuX29wdGlvbnMuZ3JvdXBdCisKKyAgICAgICAgZm9y
IGNoYW5nZWRfZmlsZSBpbiBjaGFuZ2VkX2ZpbGVzOgorICAgICAgICAgICAgZm9yIHBhdHRlcm4g
aW4gcGF0dGVybnM6CisgICAgICAgICAgICAgICAgaWYgcmUuc2VhcmNoKHBhdHRlcm4sIGNoYW5n
ZWRfZmlsZSwgcmUuSUdOT1JFQ0FTRSk6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBUcnVl
CisKKyAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICBkZWYgcnVuKHNlbGYsIHN0YXRlKToKKyAg
ICAgICAgX2xvZy5pbmZvKCJDaGVja2luZyByZWxldmFuY2Ugb2YgcGF0Y2giKQorCisgICAgICAg
IGNoYW5nZV9saXN0ID0gc2VsZi5fdG9vbC5zY20oKS5jaGFuZ2VkX2ZpbGVzKCkKKworICAgICAg
ICBpZiBzZWxmLl9jaGFuZ2VzX2FyZV9yZWxldmFudChjaGFuZ2VfbGlzdCk6CisgICAgICAgICAg
ICBfbG9nLmluZm8oIlRoaXMgcGF0Y2ggaGFzIHJlbGV2YW50IGNoYW5nZXMuIikKKyAgICAgICAg
ICAgIHJldHVybiBUcnVlCisKKyAgICAgICAgX2xvZy5pbmZvKCJUaGlzIHBhdGNoIGRvZXMgbm90
IGhhdmUgcmVsZXZhbnQgY2hhbmdlcy4iKQorICAgICAgICByYWlzZSBTY3JpcHRFcnJvcihtZXNz
YWdlPSJUaGlzIHBhdGNoIGRvZXMgbm90IGhhdmUgcmVsZXZhbnQgY2hhbmdlcy4iKQpkaWZmIC0t
Z2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL29wdGlvbnMucHkgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvb3B0aW9ucy5weQppbmRleCAzZWY0N2QwMDhh
NTllMDUwZDRjYTBjNDg3N2RkZDFhNjA3MzFhNDA5Li5mNWUwZGVmMzI3MTdlMzA2ZTYzMTY5ODQx
MTEwYjI4OThiNzJhMWYxIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wv
c3RlcHMvb3B0aW9ucy5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMv
b3B0aW9ucy5weQpAQCAtMSw0ICsxLDUgQEAKICMgQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogIyBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBA
IC00Niw2ICs0Nyw3IEBAIGNsYXNzIE9wdGlvbnMob2JqZWN0KToKICAgICBlbWFpbCA9IG1ha2Vf
b3B0aW9uKCItLWVtYWlsIiwgYWN0aW9uPSJzdG9yZSIsIHR5cGU9InN0cmluZyIsIGRlc3Q9ImVt
YWlsIiwgaGVscD0iRW1haWwgYWRkcmVzcyB0byB1c2UgaW4gQ2hhbmdlTG9ncy4iKQogICAgIGZv
cmNlX2NsZWFuID0gbWFrZV9vcHRpb24oIi0tZm9yY2UtY2xlYW4iLCBhY3Rpb249InN0b3JlX3Ry
dWUiLCBkZXN0PSJmb3JjZV9jbGVhbiIsIGRlZmF1bHQ9RmFsc2UsIGhlbHA9IkNsZWFuIHdvcmtp
bmcgZGlyZWN0b3J5IGJlZm9yZSBhcHBseWluZyBwYXRjaGVzIChyZW1vdmVzIGxvY2FsIGNoYW5n
ZXMgYW5kIGNvbW1pdHMpIikKICAgICBnaXRfY29tbWl0ID0gbWFrZV9vcHRpb24oIi1nIiwgIi0t
Z2l0LWNvbW1pdCIsIGFjdGlvbj0ic3RvcmUiLCBkZXN0PSJnaXRfY29tbWl0IiwgaGVscD0iT3Bl
cmF0ZSBvbiBhIGxvY2FsIGNvbW1pdC4gSWYgYSByYW5nZSwgdGhlIGNvbW1pdHMgYXJlIHNxdWFz
aGVkIGludG8gb25lLiA8cmVmPi4uLi4gaW5jbHVkZXMgdGhlIHdvcmtpbmcgY29weSBjaGFuZ2Vz
LiBVUFNUUkVBTSBjYW4gYmUgdXNlZCBmb3IgdGhlIHVwc3RyZWFtL3RyYWNraW5nIGJyYW5jaC4i
KQorICAgIGdyb3VwID0gbWFrZV9vcHRpb24oIi0tZ3JvdXAiLCBhY3Rpb249InN0b3JlIiwgZGVz
dD0iZ3JvdXAiLCBkZWZhdWx0PU5vbmUsIGhlbHA9IiIpCiAgICAgbG9jYWxfY29tbWl0ID0gbWFr
ZV9vcHRpb24oIi0tbG9jYWwtY29tbWl0IiwgYWN0aW9uPSJzdG9yZV90cnVlIiwgZGVzdD0ibG9j
YWxfY29tbWl0IiwgZGVmYXVsdD1GYWxzZSwgaGVscD0iTWFrZSBhIGxvY2FsIGNvbW1pdCBmb3Ig
ZWFjaCBhcHBsaWVkIHBhdGNoIikKICAgICBub25faW50ZXJhY3RpdmUgPSBtYWtlX29wdGlvbigi
LS1ub24taW50ZXJhY3RpdmUiLCBhY3Rpb249InN0b3JlX3RydWUiLCBkZXN0PSJub25faW50ZXJh
Y3RpdmUiLCBkZWZhdWx0PUZhbHNlLCBoZWxwPSJOZXZlciBwcm9tcHQgdGhlIHVzZXIsIGZhaWwg
YXMgZmFzdCBhcyBwb3NzaWJsZS4iKQogICAgIG9ic29sZXRlX3BhdGNoZXMgPSBtYWtlX29wdGlv
bigiLS1uby1vYnNvbGV0ZSIsIGFjdGlvbj0ic3RvcmVfZmFsc2UiLCBkZXN0PSJvYnNvbGV0ZV9w
YXRjaGVzIiwgZGVmYXVsdD1UcnVlLCBoZWxwPSJEbyBub3Qgb2Jzb2xldGUgb2xkIHBhdGNoZXMg
YmVmb3JlIHBvc3RpbmcgdGhpcyBvbmUuIikKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvdG9vbC9zdGVwcy9ydW50ZXN0cy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9v
bC9zdGVwcy9ydW50ZXN0cy5weQppbmRleCA3NWQ3MmJjOWFkMmY0ZTM2ZDQ1ZmRhYzkwZjE4MTk0
ODFjZjAyODhiLi5lZjk3OWU1NzI3ODZmNzFlYzMzMTA0OWVjZmI3MWY2Y2RmZWNhZTk1IDEwMDY0
NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvcnVudGVzdHMucHkKKysr
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3J1bnRlc3RzLnB5CkBAIC0xLDQg
KzEsNSBAQAogIyBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTUzLDkgKzU0LDE0IEBAIGNs
YXNzIFJ1blRlc3RzKEFic3RyYWN0U3RlcCk6CiAgICAgICAgICAgICBPcHRpb25zLml0ZXJhdGVf
b25fbmV3X3Rlc3RzLAogICAgICAgICAgICAgT3B0aW9ucy5ub25faW50ZXJhY3RpdmUsCiAgICAg
ICAgICAgICBPcHRpb25zLnF1aWV0LAorICAgICAgICAgICAgT3B0aW9ucy5ncm91cCwKICAgICAg
ICAgXQogCiAgICAgZGVmIHJ1bihzZWxmLCBzdGF0ZSk6CisgICAgICAgIGlmIHNlbGYuX29wdGlv
bnMuZ3JvdXAgPT0gImpzYyI6CisgICAgICAgICAgICBzZWxmLl9ydW5famF2YXNjcmlwdGNvcmVf
dGVzdHMoKQorICAgICAgICAgICAgcmV0dXJuCisKICAgICAgICAgaWYgc2VsZi5fb3B0aW9ucy5p
dGVyYXRlX29uX25ld190ZXN0czoKICAgICAgICAgICAgIF9sb2cuaW5mbygiUnVubmluZyBydW4t
d2Via2l0LXRlc3RzIG9uIG5ldyB0ZXN0cyIpCiAgICAgICAgICAgICBzZWxmLl9ydW5fd2Via2l0
X3Rlc3RzKHNlbGYuX29wdGlvbnMuaXRlcmF0ZV9vbl9uZXdfdGVzdHMpCkBAIC0xNDMsMyArMTQ5
LDcgQEAgY2xhc3MgUnVuVGVzdHMoQWJzdHJhY3RTdGVwKToKICAgICAgICAgICAgIGFyZ3MuYXBw
ZW5kKCItLWl0ZXJhdGlvbnM9JWQiICUgaXRlcmF0ZV9vbl9uZXdfdGVzdHMpCiAKICAgICAgICAg
c2VsZi5fdG9vbC5leGVjdXRpdmUucnVuX2FuZF90aHJvd19pZl9mYWlsKGFyZ3MsIGN3ZD1zZWxm
Ll90b29sLnNjbSgpLmNoZWNrb3V0X3Jvb3QpCisKKyAgICBkZWYgX3J1bl9qYXZhc2NyaXB0Y29y
ZV90ZXN0cyhzZWxmKToKKyAgICAgICAgYXJncyA9IHNlbGYuX3Rvb2wuZGVwcmVjYXRlZF9wb3J0
KCkucnVuX2phdmFzY3JpcHRjb3JlX3Rlc3RzX2NvbW1hbmQoc2VsZi5fb3B0aW9ucy5idWlsZF9z
dHlsZSkKKyAgICAgICAgc2VsZi5fdG9vbC5leGVjdXRpdmUucnVuX2FuZF90aHJvd19pZl9mYWls
KGFyZ3MsIGN3ZD1zZWxmLl90b29sLnNjbSgpLmNoZWNrb3V0X3Jvb3QpCmRpZmYgLS1naXQgYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvcnVudGVzdHNfdW5pdHRlc3QucHkgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvcnVudGVzdHNfdW5pdHRlc3QucHkKaW5k
ZXggMzAwMDY4MTkyMDBhZDkyZDg2MDk2NDJlOGY4MDI3ZDI0NmQ4Nzg0OS4uZDRkOTk2NDZjMmZm
MDVlY2RkY2M4ZDQxZTI3OTNmNTBmY2JkZjQ2NCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS90b29sL3N0ZXBzL3J1bnRlc3RzX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvdG9vbC9zdGVwcy9ydW50ZXN0c191bml0dGVzdC5weQpAQCAtNDAsNyArNDAs
NyBAQCBjbGFzcyBSdW5UZXN0c1Rlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICB0b29s
ID0gTW9ja1Rvb2wobG9nX2V4ZWN1dGl2ZT1UcnVlKQogICAgICAgICB0b29sLl9kZXByZWNhdGVk
X3BvcnQucnVuX3B5dGhvbl91bml0dGVzdHNfY29tbWFuZCA9IGxhbWJkYTogTm9uZQogICAgICAg
ICB0b29sLl9kZXByZWNhdGVkX3BvcnQucnVuX3BlcmxfdW5pdHRlc3RzX2NvbW1hbmQgPSBsYW1i
ZGE6IE5vbmUKLSAgICAgICAgc3RlcCA9IFJ1blRlc3RzKHRvb2wsIE1vY2tPcHRpb25zKHRlc3Q9
VHJ1ZSwgbm9uX2ludGVyYWN0aXZlPVRydWUsIHF1aWV0PUZhbHNlLCBidWlsZF9zdHlsZT0icmVs
ZWFzZSIsIGl0ZXJhdGVfb25fbmV3X3Rlc3RzPTApKQorICAgICAgICBzdGVwID0gUnVuVGVzdHMo
dG9vbCwgTW9ja09wdGlvbnModGVzdD1UcnVlLCBub25faW50ZXJhY3RpdmU9VHJ1ZSwgcXVpZXQ9
RmFsc2UsIGJ1aWxkX3N0eWxlPSJyZWxlYXNlIiwgaXRlcmF0ZV9vbl9uZXdfdGVzdHM9MCwgZ3Jv
dXA9Tm9uZSkpCiAKICAgICAgICAgaWYgc3lzLnBsYXRmb3JtICE9ICJjeWd3aW4iOgogICAgICAg
ICAgICAgZXhwZWN0ZWRfbG9ncyA9ICIiIlJ1bm5pbmcgYmluZGluZ3MgZ2VuZXJhdGlvbiB0ZXN0
cwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3N0ZXBzX3Vu
aXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3N0ZXBzX3VuaXR0
ZXN0LnB5CmluZGV4IDdkOTRhMTNiMzQ2M2Q5OGE0NGY5NDlmODE0Y2M3MTIxYzA2OGFiNWQuLmY4
YTczNjNkZmUzZGE0NDliMzNhYjcyZjhkMDBhNTQwYjQ2ZDRhMzIgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9zdGVwc191bml0dGVzdC5weQorKysgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvc3RlcHNfdW5pdHRlc3QucHkKQEAgLTEsNCAr
MSw1IEBACiAjIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtMjgsNiArMjksNyBAQAogCiBp
bXBvcnQgdW5pdHRlc3QKIAorZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmV4ZWN1dGl2ZSBp
bXBvcnQgU2NyaXB0RXJyb3IKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5vdXRwdXRjYXB0
dXJlIGltcG9ydCBPdXRwdXRDYXB0dXJlCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5jb25maWcucG9y
dHMgaW1wb3J0IERlcHJlY2F0ZWRQb3J0CiBmcm9tIHdlYmtpdHB5LnRvb2wubW9ja3Rvb2wgaW1w
b3J0IE1vY2tPcHRpb25zLCBNb2NrVG9vbApAQCAtMzgsNiArNDAsNyBAQCBmcm9tIHdlYmtpdHB5
LnRvb2wgaW1wb3J0IHN0ZXBzCiBjbGFzcyBTdGVwc1Rlc3QodW5pdHRlc3QuVGVzdENhc2UpOgog
ICAgIGRlZiBfc3RlcF9vcHRpb25zKHNlbGYpOgogICAgICAgICBvcHRpb25zID0gTW9ja09wdGlv
bnMoKQorICAgICAgICBvcHRpb25zLmdyb3VwID0gTm9uZQogICAgICAgICBvcHRpb25zLm5vbl9p
bnRlcmFjdGl2ZSA9IFRydWUKICAgICAgICAgb3B0aW9ucy5wb3J0ID0gJ01PQ0sgcG9ydCcKICAg
ICAgICAgb3B0aW9ucy5xdWlldCA9IFRydWUKQEAgLTExMSw3ICsxMTQsNyBAQCBNT0NLIHJ1bl9h
bmRfdGhyb3dfaWZfZmFpbDogWydUb29scy9TY3JpcHRzL3Rlc3Qtd2Via2l0cHknXSwgY3dkPS9t
b2NrLWNoZWNrb3V0CiBSdW5uaW5nIFBlcmwgdW5pdCB0ZXN0cwogTU9DSyBydW5fYW5kX3Rocm93
X2lmX2ZhaWw6IFsnVG9vbHMvU2NyaXB0cy90ZXN0LXdlYmtpdHBlcmwnXSwgY3dkPS9tb2NrLWNo
ZWNrb3V0CiBSdW5uaW5nIEphdmFTY3JpcHRDb3JlIHRlc3RzCi1NT0NLIHJ1bl9hbmRfdGhyb3df
aWZfZmFpbDogWydUb29scy9TY3JpcHRzL3J1bi1qYXZhc2NyaXB0Y29yZS10ZXN0cyddLCBjd2Q9
L21vY2stY2hlY2tvdXQKK01PQ0sgcnVuX2FuZF90aHJvd19pZl9mYWlsOiBbJ1Rvb2xzL1Njcmlw
dHMvcnVuLWphdmFzY3JpcHRjb3JlLXRlc3RzJywgJy0tbm8tZmFpbC1mYXN0JywgJy0tanNvbi1v
dXRwdXQ9anNjX3Rlc3RfcmVzdWx0cy5qc29uJ10sIGN3ZD0vbW9jay1jaGVja291dAogUnVubmlu
ZyBiaW5kaW5ncyBnZW5lcmF0aW9uIHRlc3RzCiBNT0NLIHJ1bl9hbmRfdGhyb3dfaWZfZmFpbDog
WydUb29scy9TY3JpcHRzL3J1bi1iaW5kaW5ncy10ZXN0cyddLCBjd2Q9L21vY2stY2hlY2tvdXQK
IFJ1bm5pbmcgcnVuLXdlYmtpdC10ZXN0cwpAQCAtMTMzLDEwICsxMzYsMTExIEBAIE1PQ0sgcnVu
X2FuZF90aHJvd19pZl9mYWlsOiBbJ1Rvb2xzL1NjcmlwdHMvdGVzdC13ZWJraXRweSddLCBjd2Q9
L21vY2stY2hlY2tvdXQKIFJ1bm5pbmcgUGVybCB1bml0IHRlc3RzCiBNT0NLIHJ1bl9hbmRfdGhy
b3dfaWZfZmFpbDogWydUb29scy9TY3JpcHRzL3Rlc3Qtd2Via2l0cGVybCddLCBjd2Q9L21vY2st
Y2hlY2tvdXQKIFJ1bm5pbmcgSmF2YVNjcmlwdENvcmUgdGVzdHMKLU1PQ0sgcnVuX2FuZF90aHJv
d19pZl9mYWlsOiBbJ1Rvb2xzL1NjcmlwdHMvcnVuLWphdmFzY3JpcHRjb3JlLXRlc3RzJ10sIGN3
ZD0vbW9jay1jaGVja291dAorTU9DSyBydW5fYW5kX3Rocm93X2lmX2ZhaWw6IFsnVG9vbHMvU2Ny
aXB0cy9ydW4tamF2YXNjcmlwdGNvcmUtdGVzdHMnLCAnLS1uby1mYWlsLWZhc3QnLCAnLS1qc29u
LW91dHB1dD1qc2NfdGVzdF9yZXN1bHRzLmpzb24nXSwgY3dkPS9tb2NrLWNoZWNrb3V0CiBSdW5u
aW5nIGJpbmRpbmdzIGdlbmVyYXRpb24gdGVzdHMKIE1PQ0sgcnVuX2FuZF90aHJvd19pZl9mYWls
OiBbJ1Rvb2xzL1NjcmlwdHMvcnVuLWJpbmRpbmdzLXRlc3RzJ10sIGN3ZD0vbW9jay1jaGVja291
dAogUnVubmluZyBydW4td2Via2l0LXRlc3RzCiBNT0NLIHJ1bl9hbmRfdGhyb3dfaWZfZmFpbDog
WydUb29scy9TY3JpcHRzL3J1bi13ZWJraXQtdGVzdHMnLCAnLS1kZWJ1ZycsICctLXF1aWV0J10s
IGN3ZD0vbW9jay1jaGVja291dAogIiIiCiAgICAgICAgIE91dHB1dENhcHR1cmUoKS5hc3NlcnRf
b3V0cHV0cyhzZWxmLCBzdGVwLnJ1biwgW3t9XSwgZXhwZWN0ZWRfbG9ncz1leHBlY3RlZF9sb2dz
KQorCisgICAgZGVmIHRlc3RfcnVudGVzdHNfanNjKHNlbGYpOgorICAgICAgICBtb2NrX29wdGlv
bnMgPSBzZWxmLl9zdGVwX29wdGlvbnMoKQorICAgICAgICBtb2NrX29wdGlvbnMubm9uX2ludGVy
YWN0aXZlID0gRmFsc2UKKyAgICAgICAgbW9ja19vcHRpb25zLmJ1aWxkX3N0eWxlID0gInJlbGVh
c2UiCisgICAgICAgIG1vY2tfb3B0aW9ucy5ncm91cCA9ICJqc2MiCisgICAgICAgIHN0ZXAgPSBz
dGVwcy5SdW5UZXN0cyhNb2NrVG9vbChsb2dfZXhlY3V0aXZlPVRydWUpLCBtb2NrX29wdGlvbnMp
CisgICAgICAgIHRvb2wgPSBNb2NrVG9vbChsb2dfZXhlY3V0aXZlPVRydWUpCisgICAgICAgICMg
RklYTUU6IFdlIHNob3VsZG4ndCB1c2UgYSByZWFsIHBvcnQtb2JqZWN0IGhlcmUsIGJ1dCB0aGVy
ZSBpcyB0b28gbXVjaCB0byBtb2NrIGF0IHRoZSBtb21lbnQuCisgICAgICAgIHRvb2wuX2RlcHJl
Y2F0ZWRfcG9ydCA9IERlcHJlY2F0ZWRQb3J0KCkKKyAgICAgICAgc3RlcCA9IHN0ZXBzLlJ1blRl
c3RzKHRvb2wsIG1vY2tfb3B0aW9ucykKKyAgICAgICAgZXhwZWN0ZWRfbG9ncyA9ICIiIk1PQ0sg
cnVuX2FuZF90aHJvd19pZl9mYWlsOiBbJ1Rvb2xzL1NjcmlwdHMvcnVuLWphdmFzY3JpcHRjb3Jl
LXRlc3RzJywgJy0tbm8tZmFpbC1mYXN0JywgJy0tanNvbi1vdXRwdXQ9anNjX3Rlc3RfcmVzdWx0
cy5qc29uJ10sIGN3ZD0vbW9jay1jaGVja291dAorIiIiCisgICAgICAgIE91dHB1dENhcHR1cmUo
KS5hc3NlcnRfb3V0cHV0cyhzZWxmLCBzdGVwLnJ1biwgW3t9XSwgZXhwZWN0ZWRfbG9ncz1leHBl
Y3RlZF9sb2dzKQorCisgICAgZGVmIHRlc3RfcnVudGVzdHNfanNjX2RlYnVnKHNlbGYpOgorICAg
ICAgICBtb2NrX29wdGlvbnMgPSBzZWxmLl9zdGVwX29wdGlvbnMoKQorICAgICAgICBtb2NrX29w
dGlvbnMubm9uX2ludGVyYWN0aXZlID0gRmFsc2UKKyAgICAgICAgbW9ja19vcHRpb25zLmJ1aWxk
X3N0eWxlID0gImRlYnVnIgorICAgICAgICBtb2NrX29wdGlvbnMuZ3JvdXAgPSAianNjIgorICAg
ICAgICB0b29sID0gTW9ja1Rvb2wobG9nX2V4ZWN1dGl2ZT1UcnVlKQorICAgICAgICAjIEZJWE1F
OiBXZSBzaG91bGRuJ3QgdXNlIGEgcmVhbCBwb3J0LW9iamVjdCBoZXJlLCBidXQgdGhlcmUgaXMg
dG9vIG11Y2ggdG8gbW9jayBhdCB0aGUgbW9tZW50LgorICAgICAgICB0b29sLl9kZXByZWNhdGVk
X3BvcnQgPSBEZXByZWNhdGVkUG9ydCgpCisgICAgICAgIHN0ZXAgPSBzdGVwcy5SdW5UZXN0cyh0
b29sLCBtb2NrX29wdGlvbnMpCisgICAgICAgIGV4cGVjdGVkX2xvZ3MgPSAiIiJNT0NLIHJ1bl9h
bmRfdGhyb3dfaWZfZmFpbDogWydUb29scy9TY3JpcHRzL3J1bi1qYXZhc2NyaXB0Y29yZS10ZXN0
cycsICctLW5vLWZhaWwtZmFzdCcsICctLWpzb24tb3V0cHV0PWpzY190ZXN0X3Jlc3VsdHMuanNv
bicsICctLWRlYnVnJ10sIGN3ZD0vbW9jay1jaGVja291dAorIiIiCisgICAgICAgIE91dHB1dENh
cHR1cmUoKS5hc3NlcnRfb3V0cHV0cyhzZWxmLCBzdGVwLnJ1biwgW3t9XSwgZXhwZWN0ZWRfbG9n
cz1leHBlY3RlZF9sb2dzKQorCisgICAgZGVmIHRlc3RfYnVpbGRfanNjX2RlYnVnKHNlbGYpOgor
ICAgICAgICBtb2NrX29wdGlvbnMgPSBzZWxmLl9zdGVwX29wdGlvbnMoKQorICAgICAgICBtb2Nr
X29wdGlvbnMubm9uX2ludGVyYWN0aXZlID0gRmFsc2UKKyAgICAgICAgbW9ja19vcHRpb25zLmJ1
aWxkX3N0eWxlID0gImRlYnVnIgorICAgICAgICBtb2NrX29wdGlvbnMuYnVpbGQgPSBUcnVlCisg
ICAgICAgIG1vY2tfb3B0aW9ucy5hcmNoaXRlY3R1cmUgPSBUcnVlCisgICAgICAgIG1vY2tfb3B0
aW9ucy5ncm91cCA9ICJqc2MiCisgICAgICAgIHRvb2wgPSBNb2NrVG9vbChsb2dfZXhlY3V0aXZl
PVRydWUpCisgICAgICAgICMgRklYTUU6IFdlIHNob3VsZG4ndCB1c2UgYSByZWFsIHBvcnQtb2Jq
ZWN0IGhlcmUsIGJ1dCB0aGVyZSBpcyB0b28gbXVjaCB0byBtb2NrIGF0IHRoZSBtb21lbnQuCisg
ICAgICAgIHRvb2wuX2RlcHJlY2F0ZWRfcG9ydCA9IERlcHJlY2F0ZWRQb3J0KCkKKyAgICAgICAg
c3RlcCA9IHN0ZXBzLkJ1aWxkKHRvb2wsIG1vY2tfb3B0aW9ucykKKyAgICAgICAgZXhwZWN0ZWRf
bG9ncyA9ICIiIkJ1aWxkaW5nIFdlYktpdAorTU9DSyBydW5fYW5kX3Rocm93X2lmX2ZhaWw6IFsn
VG9vbHMvU2NyaXB0cy9idWlsZC1qc2MnLCAnLS1kZWJ1ZycsICdBUkNIUz1UcnVlJ10sIGN3ZD0v
bW9jay1jaGVja291dCwgZW52PXsnTENfQUxMJzogJ0MnLCAnVEVSTSc6ICdub25lJywgJ01PQ0tf
RU5WSVJPTl9DT1BZJzogJzEnfQorIiIiCisgICAgICAgIE91dHB1dENhcHR1cmUoKS5hc3NlcnRf
b3V0cHV0cyhzZWxmLCBzdGVwLnJ1biwgW3t9XSwgZXhwZWN0ZWRfbG9ncz1leHBlY3RlZF9sb2dz
KQorCisgICAgZGVmIHRlc3RfYnVpbGRfanNjKHNlbGYpOgorICAgICAgICBtb2NrX29wdGlvbnMg
PSBzZWxmLl9zdGVwX29wdGlvbnMoKQorICAgICAgICBtb2NrX29wdGlvbnMubm9uX2ludGVyYWN0
aXZlID0gRmFsc2UKKyAgICAgICAgbW9ja19vcHRpb25zLmJ1aWxkX3N0eWxlID0gInJlbGVhc2Ui
CisgICAgICAgIG1vY2tfb3B0aW9ucy5idWlsZCA9IFRydWUKKyAgICAgICAgbW9ja19vcHRpb25z
LmFyY2hpdGVjdHVyZSA9IFRydWUKKyAgICAgICAgbW9ja19vcHRpb25zLmdyb3VwID0gImpzYyIK
KyAgICAgICAgdG9vbCA9IE1vY2tUb29sKGxvZ19leGVjdXRpdmU9VHJ1ZSkKKyAgICAgICAgIyBG
SVhNRTogV2Ugc2hvdWxkbid0IHVzZSBhIHJlYWwgcG9ydC1vYmplY3QgaGVyZSwgYnV0IHRoZXJl
IGlzIHRvbyBtdWNoIHRvIG1vY2sgYXQgdGhlIG1vbWVudC4KKyAgICAgICAgdG9vbC5fZGVwcmVj
YXRlZF9wb3J0ID0gRGVwcmVjYXRlZFBvcnQoKQorICAgICAgICBzdGVwID0gc3RlcHMuQnVpbGQo
dG9vbCwgbW9ja19vcHRpb25zKQorICAgICAgICBleHBlY3RlZF9sb2dzID0gIiIiQnVpbGRpbmcg
V2ViS2l0CitNT0NLIHJ1bl9hbmRfdGhyb3dfaWZfZmFpbDogWydUb29scy9TY3JpcHRzL2J1aWxk
LWpzYycsICctLXJlbGVhc2UnLCAnQVJDSFM9VHJ1ZSddLCBjd2Q9L21vY2stY2hlY2tvdXQsIGVu
dj17J0xDX0FMTCc6ICdDJywgJ1RFUk0nOiAnbm9uZScsICdNT0NLX0VOVklST05fQ09QWSc6ICcx
J30KKyIiIgorICAgICAgICBPdXRwdXRDYXB0dXJlKCkuYXNzZXJ0X291dHB1dHMoc2VsZiwgc3Rl
cC5ydW4sIFt7fV0sIGV4cGVjdGVkX2xvZ3M9ZXhwZWN0ZWRfbG9ncykKKworICAgIGRlZiB0ZXN0
X3BhdGNoX3JlbGV2YW50KHNlbGYpOgorICAgICAgICBzZWxmLm1heERpZmYgPSBOb25lCisgICAg
ICAgIG1vY2tfb3B0aW9ucyA9IHNlbGYuX3N0ZXBfb3B0aW9ucygpCisgICAgICAgIHRvb2wgPSBN
b2NrVG9vbChsb2dfZXhlY3V0aXZlPVRydWUpCisgICAgICAgIHRvb2wuc2NtKCkuX21vY2tDaGFu
Z2VkRmlsZXMgPSBbIkpTVGVzdHMvTW9ja0ZpbGUxIiwgIkNoYW5nZUxvZyJdCisgICAgICAgICMg
RklYTUU6IFdlIHNob3VsZG4ndCB1c2UgYSByZWFsIHBvcnQtb2JqZWN0IGhlcmUsIGJ1dCB0aGVy
ZSBpcyB0b28gbXVjaCB0byBtb2NrIGF0IHRoZSBtb21lbnQuCisgICAgICAgIHRvb2wuX2RlcHJl
Y2F0ZWRfcG9ydCA9IERlcHJlY2F0ZWRQb3J0KCkKKyAgICAgICAgc3RlcCA9IHN0ZXBzLkNoZWNr
UGF0Y2hSZWxldmFuY2UodG9vbCwgbW9ja19vcHRpb25zKQorICAgICAgICBleHBlY3RlZF9sb2dz
ID0gIiIiQ2hlY2tpbmcgcmVsZXZhbmNlIG9mIHBhdGNoCitUaGlzIHBhdGNoIGhhcyByZWxldmFu
dCBjaGFuZ2VzLgorIiIiCisgICAgICAgIE91dHB1dENhcHR1cmUoKS5hc3NlcnRfb3V0cHV0cyhz
ZWxmLCBzdGVwLnJ1biwgW3t9XSwgZXhwZWN0ZWRfbG9ncz1leHBlY3RlZF9sb2dzKQorCisgICAg
ZGVmIHRlc3RfcGF0Y2hfcmVsZXZhbnRfanNjKHNlbGYpOgorICAgICAgICBzZWxmLm1heERpZmYg
PSBOb25lCisgICAgICAgIG1vY2tfb3B0aW9ucyA9IHNlbGYuX3N0ZXBfb3B0aW9ucygpCisgICAg
ICAgIG1vY2tfb3B0aW9ucy5ncm91cCA9ICJqc2MiCisgICAgICAgIHRvb2wgPSBNb2NrVG9vbChs
b2dfZXhlY3V0aXZlPVRydWUpCisgICAgICAgIHRvb2wuc2NtKCkuX21vY2tDaGFuZ2VkRmlsZXMg
PSBbIkpTVGVzdHMvTW9ja0ZpbGUxIiwgIkNoYW5nZUxvZyJdCisgICAgICAgICMgRklYTUU6IFdl
IHNob3VsZG4ndCB1c2UgYSByZWFsIHBvcnQtb2JqZWN0IGhlcmUsIGJ1dCB0aGVyZSBpcyB0b28g
bXVjaCB0byBtb2NrIGF0IHRoZSBtb21lbnQuCisgICAgICAgIHRvb2wuX2RlcHJlY2F0ZWRfcG9y
dCA9IERlcHJlY2F0ZWRQb3J0KCkKKyAgICAgICAgc3RlcCA9IHN0ZXBzLkNoZWNrUGF0Y2hSZWxl
dmFuY2UodG9vbCwgbW9ja19vcHRpb25zKQorICAgICAgICBleHBlY3RlZF9sb2dzID0gIiIiQ2hl
Y2tpbmcgcmVsZXZhbmNlIG9mIHBhdGNoCitUaGlzIHBhdGNoIGhhcyByZWxldmFudCBjaGFuZ2Vz
LgorIiIiCisgICAgICAgIE91dHB1dENhcHR1cmUoKS5hc3NlcnRfb3V0cHV0cyhzZWxmLCBzdGVw
LnJ1biwgW3t9XSwgZXhwZWN0ZWRfbG9ncz1leHBlY3RlZF9sb2dzKQorCisgICAgZGVmIHRlc3Rf
cGF0Y2hfbm90X3JlbGV2YW50X2pzYyhzZWxmKToKKyAgICAgICAgc2VsZi5tYXhEaWZmID0gTm9u
ZQorICAgICAgICBtb2NrX29wdGlvbnMgPSBzZWxmLl9zdGVwX29wdGlvbnMoKQorICAgICAgICBt
b2NrX29wdGlvbnMuZ3JvdXAgPSAianNjIgorICAgICAgICB0b29sID0gTW9ja1Rvb2wobG9nX2V4
ZWN1dGl2ZT1UcnVlKQorICAgICAgICB0b29sLnNjbSgpLl9tb2NrQ2hhbmdlZEZpbGVzID0gWyJU
b29scy9DaGFuZ2VMb2ciLCAiVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3N0ZXBz
X3VuaXR0ZXN0LnB5Il0KKyAgICAgICAgIyBGSVhNRTogV2Ugc2hvdWxkbid0IHVzZSBhIHJlYWwg
cG9ydC1vYmplY3QgaGVyZSwgYnV0IHRoZXJlIGlzIHRvbyBtdWNoIHRvIG1vY2sgYXQgdGhlIG1v
bWVudC4KKyAgICAgICAgdG9vbC5fZGVwcmVjYXRlZF9wb3J0ID0gRGVwcmVjYXRlZFBvcnQoKQor
ICAgICAgICBzdGVwID0gc3RlcHMuQ2hlY2tQYXRjaFJlbGV2YW5jZSh0b29sLCBtb2NrX29wdGlv
bnMpCisgICAgICAgIGV4cGVjdGVkX2xvZ3MgPSAiIiJDaGVja2luZyByZWxldmFuY2Ugb2YgcGF0
Y2gKK1RoaXMgcGF0Y2ggZG9lcyBub3QgaGF2ZSByZWxldmFudCBjaGFuZ2VzLgorIiIiCisgICAg
ICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoU2NyaXB0RXJyb3IpOgorICAgICAgICAgICAgT3V0
cHV0Q2FwdHVyZSgpLmFzc2VydF9vdXRwdXRzKHNlbGYsIHN0ZXAucnVuLCBbe31dLCBleHBlY3Rl
ZF9sb2dzPWV4cGVjdGVkX2xvZ3MpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>301572</attachid>
            <date>2017-02-14 18:37:35 -0800</date>
            <delta_ts>2017-02-15 15:50:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-162458-20170214183501.patch</filename>
            <type>text/plain</type>
            <size>91235</size>
            <attacher name="Srinivasan Vijayaraghavan">webkit</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEyMTUyCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMjEzZWYxNzgzNzkyOWQ1YzAwZjhiMGY0NWI4ZTcyNDhm
MWVlOTdiMi4uZjM1NjBlN2RlMDNhZmNmZDNlMTg4ZDUwNzVmNDY2NWY4YzNiZDA2NiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEz
OCBAQAorMjAxNy0wMi0xNCAgU3Jpbml2YXNhbiBWaWpheWFyYWdoYXZhbiAgPHN2aWpheWFyYWdo
YXZhbkBhcHBsZS5jb20+CisKKyAgICAgICAgRVdTIHNob3VsZCBydW4gSmF2YVNjcmlwdENvcmUg
dGVzdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2
MjQ1OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
UXVldWVTdGF0dXNTZXJ2ZXIvY29uZmlnL3F1ZXVlcy5weTogQWRkIGpzYy1ld3MgcXVldWUuCisg
ICAgICAgICogUXVldWVTdGF0dXNTZXJ2ZXIvbW9kZWwvcXVldWVzdGF0dXMucHk6CisgICAgICAg
IChRdWV1ZVN0YXR1cy5kaWRfc2tpcCk6IFJldHVybnMgd2hldGhlciBwYXRjaCB3YXMgc2tpcHBl
ZCwgYmFzZWQgb24gc3RhdHVzLgorICAgICAgICAqIFF1ZXVlU3RhdHVzU2VydmVyL2hhbmRsZXJz
L3N0YXR1c2J1YmJsZS5weToKKyAgICAgICAgKFN0YXR1c0J1YmJsZS5fc2hvdWxkX3Nob3dfYnVi
YmxlX2Zvcik6IEFkZCBsb2dpYyB0byBoaWRlIGpzYy1ld3MgYnViYmxlIGlmIHRoZSBwYXRjaCBk
b2VzIG5vdCB0b3VjaCBqc2MuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hl
Y2tvdXQvc2NtL3NjbV9tb2NrLnB5OgorICAgICAgICAoTW9ja1NDTS5fX2luaXRfXyk6IEFkZCBf
bW9ja0NoYW5nZWRGaWxlcyB2YXJpYWJsZS4KKyAgICAgICAgKE1vY2tTQ00uY2hhbmdlZF9maWxl
cyk6IENoYW5nZSB0byB1c2UgX21vY2tDaGFuZ2VkRmlsZXMgdmFyaWFibGVzLgorICAgICAgICAq
IFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9ld3MuanNvbjogQWRkIGNvbmZpZyBpbmZv
IGZvciBKU0MgRVdTLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9w
b3J0cy5weTogQWRkIHN1cHBvcnQgZm9yIEpTQyBFV1MgaW4gTWFjIFBvcnQuCisgICAgICAgIChE
ZXByZWNhdGVkUG9ydC5fYXBwZW5kX2J1aWxkX3N0eWxlX2ZsYWcpOiBIZWxwZXIgZnVuY3Rpb24g
dG8gYXBwZW5kIGJ1aWxkX3N0eWxlIHRvIGEgY29tbWFuZC4KKyAgICAgICAgKERlcHJlY2F0ZWRQ
b3J0LmJ1aWxkX2pzY19jb21tYW5kKTogQWRkZWQgLSBjb21tYW5kIHRvIGJ1aWxkIEpTQyBvbmx5
IChxdWlja2VyIHRoYW4gYnVpbGRpbmcgYWxsIG9mIFdlYktpdCkuCisgICAgICAgIChEZXByZWNh
dGVkUG9ydC5ydW5famF2YXNjcmlwdGNvcmVfdGVzdHNfY29tbWFuZCk6IEFsbG93IEpTQyBFV1Mg
dG8gb25seSBydW4gSlNDIHRlc3RzLgorICAgICAgICAoTWFjUG9ydC5ydW5fd2Via2l0X3Rlc3Rz
X2NvbW1hbmQpOiBDaGVjayBmb3IgSlNDLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29t
bW9uL2NvbmZpZy9wb3J0c19tb2NrLnB5OgorICAgICAgICAoTW9ja1BvcnQucnVuX2phdmFzY3Jp
cHRjb3JlX3Rlc3RzX2NvbW1hbmQpOiBBZGQgYnVpbGRfc3R5bGUgYXJndW1lbnQuCisgICAgICAg
ICogU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL3BvcnRzX3VuaXR0ZXN0LnB5OgorICAg
ICAgICAoRGVwcmVjYXRlZFBvcnRUZXN0LnRlc3RfbWFjX3BvcnQpOiBBZGQgdW5pdCB0ZXN0cyBm
b3IgYnVpbGQtanNjIHNoZWxsIGNvbW1hbmQuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9j
b21tb24vbmV0L2Fic3RyYWN0dGVzdHJlc3VsdHMucHk6IEFkZGVkLgorICAgICAgICAoQWJzdHJh
Y3RUZXN0UmVzdWx0cyk6IEFic3RyYWN0IHN1cGVyY2xhc3Mgb2YgSlNDVGVzdFJlc3VsdHMgYW5k
IEpTQ1Rlc3RSZXN1bHRzLgorICAgICAgICAoQWJzdHJhY3RUZXN0UmVzdWx0cy50ZXN0X3Jlc3Vs
dHMpOiBTdHViLgorICAgICAgICAoQWJzdHJhY3RUZXN0UmVzdWx0cy5mYWlsaW5nX3Rlc3RzKTog
U3R1Yi4KKyAgICAgICAgKEFic3RyYWN0VGVzdFJlc3VsdHMuZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1
cmVfbGltaXQpOiBTdHViLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9q
c2N0ZXN0cmVzdWx0cy5weTogQWRkZWQuCisgICAgICAgIChKU0NUZXN0UmVzdWx0cyk6IEFkZGVk
LgorICAgICAgICAoSlNDVGVzdFJlc3VsdHMuaW50ZXJzZWN0aW9uKTogUmV0dXJuIGEgSlNDVGVz
dFJlc3VsdHMgb2JqZWN0IHdpdGggZmFpbHVyZXMgY29tbW9uIHRvIGJvdGggaW5wdXQgb2JqZWN0
cy4KKyAgICAgICAgKEpTQ1Rlc3RSZXN1bHRzLnJlc3VsdHNfZnJvbV9zdHJpbmcpOiBVc2UganNv
biBsaWJyYXJ5IHRvIHBhcnNlIHJlc3VsdHMuCisgICAgICAgIChKU0NUZXN0UmVzdWx0cy5fX2lu
aXRfXyk6IEluaXRpYWxpemUgbWVtYmVycy4KKyAgICAgICAgKEpTQ1Rlc3RSZXN1bHRzLmVxdWFs
cyk6IFRoaXMgZW5hYmxlcyB1bml0IHRlc3RpbmcuCisgICAgICAgIChKU0NUZXN0UmVzdWx0cy5p
c19zdWJzZXQpOiBDaGVja3MgaWYgb25lIHNldCBvZiBmYWlsdXJlcyBpcyBhIHN1YnNldCBvZiBh
bm90aGVyLgorICAgICAgICAoSlNDVGVzdFJlc3VsdHMuYWxsX3Bhc3NlZCk6IEdldHRlci4KKyAg
ICAgICAgKEpTQ1Rlc3RSZXN1bHRzLmZhaWxpbmdfdGVzdF9yZXN1bHRzKTogR2V0dGVyLiBTb21l
IG9mIHRoZXNlIGV4aXN0IGZvciBpbnRlcm9wYWJpbGl0eSByZWFzb25zLgorICAgICAgICAoSlND
VGVzdFJlc3VsdHMudGVzdF9yZXN1bHRzKTogR2V0dGVyLgorICAgICAgICAoSlNDVGVzdFJlc3Vs
dHMuZmFpbGluZ190ZXN0cyk6IEdldHRlci4KKyAgICAgICAgKEpTQ1Rlc3RSZXN1bHRzLmRpZF9l
eGNlZWRfdGVzdF9mYWlsdXJlX2xpbWl0KTogR2V0dGVyLgorICAgICAgICAqIFNjcmlwdHMvd2Vi
a2l0cHkvY29tbW9uL25ldC9qc2N0ZXN0cmVzdWx0c191bml0dGVzdC5weTogQWRkZWQuCisgICAg
ICAgIChKU0NUZXN0UmVzdWx0c1Rlc3QpOiBDbGFzcyB0byB0ZXN0IEpTQ1Rlc3RSZXN1bHRzLgor
ICAgICAgICAoSlNDVGVzdFJlc3VsdHNUZXN0LnRlc3RfcmVzdWx0c19mcm9tX3N0cmluZyk6IFRl
c3RzIHBhcnNpbmcuCisgICAgICAgIChKU0NUZXN0UmVzdWx0c1Rlc3QudGVzdF9pbnRlcnNlY3Rp
b25fYXBpX3Rlc3RzKTogVW5pdCB0ZXN0IGZvciBpbnRlcnNlY3Rpb24oKSBjbGFzcyBtZXRob2Qu
CisgICAgICAgIChKU0NUZXN0UmVzdWx0c1Rlc3QudGVzdF9pbnRlcnNlY3Rpb25fc3RyZXNzX3Rl
c3RzKTogVW5pdCB0ZXN0IGZvciBpbnRlcnNlY3Rpb24oKSBjbGFzcyBtZXRob2QuCisgICAgICAg
IChKU0NUZXN0UmVzdWx0c1Rlc3QudGVzdF9pbnRlcnNlY3Rpb25fZ2VuZXJhbF9jYXNlKTogVW5p
dCB0ZXN0IGZvciBpbnRlcnNlY3Rpb24oKSBjbGFzcyBtZXRob2QuCisgICAgICAgICogU2NyaXB0
cy93ZWJraXRweS90b29sL2JvdC9lYXJseXdhcm5pbmdzeXN0ZW10YXNrLnB5OgorICAgICAgICAo
RWFybHlXYXJuaW5nU3lzdGVtVGFzay5ydW4pOiBBZGQgY2hlY2tfcGF0Y2hfcmVsZXZhbmNlIHN0
ZXAuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9qc2Nld3NfdW5pdHRlc3Qu
cHk6IEFkZGVkLgorICAgICAgICAoTW9ja1BhdGNoQW5hbHlzaXNUYXNrKTogTW9ja2VkLW91dCB2
ZXJzaW9uIG9mIFBhdGNoQW5hbHlzaXNUYXNrIHRoYXQgZG9lc24ndCBydW4gY29tbWFuZHMuCisg
ICAgICAgIChNb2NrUGF0Y2hBbmFseXNpc1Rhc2suX19pbml0X18pOiBTZXRzIGF0dHJpYnV0ZXMu
CisgICAgICAgIChNb2NrUGF0Y2hBbmFseXNpc1Rhc2suX3Rlc3QpOiBPdmVycmlkZSB0byBub3Qg
cnVuIGNvbW1hbmQuCisgICAgICAgIChNb2NrUGF0Y2hBbmFseXNpc1Rhc2suX2J1aWxkX2FuZF90
ZXN0X3dpdGhvdXRfcGF0Y2gpOiBPdmVycmlkZSB0byBub3QgcnVuIGNvbW1hbmQuCisgICAgICAg
IChNb2NrUGF0Y2hBbmFseXNpc1Rhc2sudmFsaWRhdGUpOiBBc3N1bWUgbW9ja2VkIHBhdGNoIGlz
IHZhbGlkIGZvciBwdXJwb3NlcyBvZiB0ZXN0aW5nIHJldHJ5IGxvZ2ljLgorICAgICAgICAoTW9j
a1BhdGNoQW5hbHlzaXNUYXNrLnRlc3RfcnVuX2NvdW50KTogU3BlY2lmaWMgdG8gdGhlIG1vY2tl
ZCB2ZXJzaW9uLCB0byB0ZXN0IHJldHJ5IGxvZ2ljLgorICAgICAgICAoTW9ja0pTQ0Vhcmx5V2Fy
bmluZ1N5c3RlbSk6IE1vY2tlZC1vdXQgdmVyc2lvbiBvZiBBYnN0YXJjdEVhcmx5V2FybmluZ1N5
c3RlbSBzbyB3ZSBjYW4gcHJvdmlkZSB0ZXN0IHJlc3VsdHMuCisgICAgICAgIChNb2NrSlNDRWFy
bHlXYXJuaW5nU3lzdGVtLl9faW5pdF9fKTogU2V0cyBhdHRyaWJ1dGVzLCBhbHNvIHNldHMgZ3Jv
dXAgdG8ganNjLgorICAgICAgICAoTW9ja0pTQ0Vhcmx5V2FybmluZ1N5c3RlbS50ZXN0X3Jlc3Vs
dHMpOiBSZXR1cm5zIHRlc3QgcmVzdWx0cyBwcm92aWRlZCBieSB1cywgaW5zdGVhZCBvZiB1c2lu
ZyBhIEpTT04gcmVhZGVyLgorICAgICAgICAoSlNDRWFybHlXYXJuaW5nU3lzdGVtVGVzdCk6IENs
YXNzIHRvIHRlc3QgcmV0cnkgbG9naWMgaW4gYmVsb3cgc2l0dWF0aW9ucy4KKyAgICAgICAgKEpT
Q0Vhcmx5V2FybmluZ1N5c3RlbVRlc3QuX2NyZWF0ZV90YXNrKTogSGVscGVyIGZ1bmN0aW9uIHRv
IGFic3RyYWN0IG91dCBjb21tb24gY29kZS4KKyAgICAgICAgKEpTQ0Vhcmx5V2FybmluZ1N5c3Rl
bVRlc3QuX3Jlc3VsdHNfaW5kaWNhdGVfYWxsX3Bhc3NlZCk6IEZhbHNlIGlmIGlucHV0IGlzIE5v
bmUgb3IgaGFzIGZhaWx1cmVzLCBlbHNlIFRydWUuCisgICAgICAgIChKU0NFYXJseVdhcm5pbmdT
eXN0ZW1UZXN0LnRlc3Rfc3VjY2Vzc19jYXNlKTogQ2xlYW4gcGF0Y2ggb24gY2xlYW4gdHJlZS4K
KyAgICAgICAgKEpTQ0Vhcmx5V2FybmluZ1N5c3RlbVRlc3QudGVzdF90ZXN0X2ZhaWx1cmUpOiBG
YWlsZWQgcGF0Y2ggb24gY2xlYW4gdHJlZS4KKyAgICAgICAgKEpTQ0Vhcmx5V2FybmluZ1N5c3Rl
bVRlc3QudGVzdF9maXgpOiBQYXRjaCB0aGF0IGZpeGVzIGFsbCB0cmVlIHJlZG5lc3MuCisgICAg
ICAgIChKU0NFYXJseVdhcm5pbmdTeXN0ZW1UZXN0LnRlc3RfaW5lZmZlY3RpdmVfcGF0Y2gpOiBQ
YXRjaCB0aGF0IGhhcyBzYW1lIGZhaWx1cmVzIGFzIHRyZWUuCisgICAgICAgIChKU0NFYXJseVdh
cm5pbmdTeXN0ZW1UZXN0LnRlc3RfcGFydGlhbGx5X2VmZmVjdGl2ZV9wYXRjaCk6IFBhdGNoIGZp
eGVzIHNvbWUgZmFpbHVyZXMgYnV0IGFkZHMgbm8gbmV3IGZhaWx1cmVzLgorICAgICAgICAoSlND
RWFybHlXYXJuaW5nU3lzdGVtVGVzdC50ZXN0X2RpZmZlcmVudF90ZXN0X2ZhaWx1cmVzX2luX3Bh
dGNoX2FuZF90cmVlKTogUGF0Y2ggaGFzIHNvbWUgZmFpbHVyZXMgbm90IGluIHRyZWUuCisgICAg
ICAgIChKU0NFYXJseVdhcm5pbmdTeXN0ZW1UZXN0LnRlc3RfZmlyc3RfcmVzdWx0c19jb3VsZF9u
b3RfYmVfcmVhZCk6IFBhdGNoIHJlc3VsdHMgbm90IHJlYWRhYmxlLgorICAgICAgICAoSlNDRWFy
bHlXYXJuaW5nU3lzdGVtVGVzdC50ZXN0X3NlY29uZF9yZXN1bHRzX2NvdWxkX25vdF9iZV9yZWFk
KTogUGF0Y2ggcmVzdWx0cyBub3QgcmVhZGFibGUgb24gc2Vjb25kIHJ1bi4KKyAgICAgICAgKEpT
Q0Vhcmx5V2FybmluZ1N5c3RlbVRlc3QudGVzdF9jbGVhbl9yZXN1bHRzX2NvdWxkX25vdF9iZV9y
ZWFkKTogUmVzdWx0cyBmcm9tIGNsZWFuIHRyZWUgbm90IHJlYWRhYmxlLgorICAgICAgICAoSlND
RWFybHlXYXJuaW5nU3lzdGVtVGVzdC50ZXN0X2ZsYWt5X3Jlc3VsdHNfb25fY2xlYW5fdHJlZV9w
YXNzKTogUGF0Y2ggaGFzIG9uZSBmbGFrZSBhbmQgbm8gZmFpbHVyZXMuCisgICAgICAgIChKU0NF
YXJseVdhcm5pbmdTeXN0ZW1UZXN0LnRlc3RfZmxha3lfcmVzdWx0c19vbl9jbGVhbl90cmVlX3Bh
c3NfdjIpOiBQYXRjaCBoYXMgb25lIGZsYWtlIGFuZCBubyBmYWlsdXJlcy4KKyAgICAgICAgKEpT
Q0Vhcmx5V2FybmluZ1N5c3RlbVRlc3QudGVzdF9mbGFreV9yZXN1bHRzX29uX2NsZWFuX3RyZWVf
ZmFpbHVyZSk6IFBhdGNoIGhhcyBmbGFrZXMgYW5kIGZhaWxlZCB0ZXN0cy4KKyAgICAgICAgKEpT
Q0Vhcmx5V2FybmluZ1N5c3RlbVRlc3QudGVzdF9mbGFreV9yZXN1bHRzX29uX3JlZF90cmVlX3Bh
c3MpOiBQYXRjaCBoYXMgc2FtZSBmYWlsdXJlcyBhcyB0cmVlLCBwbHVzIGEgZmxha2UuCisgICAg
ICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9qc2N0ZXN0cmVzdWx0c3JlYWRlci5weTog
QWRkZWQuCisgICAgICAgIChKU0NUZXN0UmVzdWx0c1JlYWRlcik6IFJlYWRzIHJlc3VsdHMgZmls
ZS4KKyAgICAgICAgKEpTQ1Rlc3RSZXN1bHRzUmVhZGVyLl9faW5pdF9fKTogU2V0cyBhdHRyaWJ1
dGVzLgorICAgICAgICAoSlNDVGVzdFJlc3VsdHNSZWFkZXIuX3JlYWRfZmlsZV9jb250ZW50cyk6
IFJlYWRzIGZpbGUuCisgICAgICAgIChKU0NUZXN0UmVzdWx0c1JlYWRlci5fY3JlYXRlX2pzY190
ZXN0X3Jlc3VsdHMpOiBDcmVhdGVzIGEgSlNDVGVzdFJlc3VsdHMgb2JqZWN0LgorICAgICAgICAo
SlNDVGVzdFJlc3VsdHNSZWFkZXIucmVzdWx0cyk6IEludm9rZXMgX2NyZWF0ZV9qc2NfdGVzdF9y
ZXN1bHRzIHRvIHJldHVybiBhIEpTQ1Rlc3RSZXN1bHRzIG9iamVjdC4KKyAgICAgICAgKiBTY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvYm90L3BhdGNoYW5hbHlzaXN0YXNrLnB5OgorICAgICAgICAoUGF0
Y2hJc05vdEFwcGxpY2FibGUpOiBFeGNlcHRpb24gZm9yIHdoZW4gcGF0Y2ggZG9lc24ndCBoYXZl
IHJlbGV2YW50IGNoYW5nZXMuCisgICAgICAgIChQYXRjaEFuYWx5c2lzVGFzay5fY2hlY2tfcGF0
Y2hfcmVsZXZhbmNlKTogQWRkZWQuCisgICAgICAgIChQYXRjaEFuYWx5c2lzVGFzay5fYnVpbGQp
OiBDaGVjayBmb3IgSlNDLgorICAgICAgICAoUGF0Y2hBbmFseXNpc1Rhc2suX2J1aWxkX3dpdGhv
dXRfcGF0Y2gpOiBDaGVjayBmb3IgSlNDLgorICAgICAgICAoUGF0Y2hBbmFseXNpc1Rhc2suX3Rl
c3QpOiBDaGVjayBmb3IgSlNDLgorICAgICAgICAoUGF0Y2hBbmFseXNpc1Rhc2suX2J1aWxkX2Fu
ZF90ZXN0X3dpdGhvdXRfcGF0Y2gpOiBDaGVjayBmb3IgSlNDLgorICAgICAgICAoUGF0Y2hBbmFs
eXNpc1Rhc2suX3JldHJ5X2pzY190ZXN0cyk6IFJldHJ5IGxvZ2ljIGZvciBKU0MgRVdTLgorICAg
ICAgICAoUGF0Y2hBbmFseXNpc1Rhc2suX3JldHJ5X2xheW91dF90ZXN0cyk6IFJldHJ5IGxvZ2lj
IGZvciBsYXlvdXQgdGVzdHMgRVdTLgorICAgICAgICAoUGF0Y2hBbmFseXNpc1Rhc2suX3Rlc3Rf
cGF0Y2gpOiBBZGQgcmV0cnkgbG9naWMgZm9yIEpTQy4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dHB5L3Rvb2wvY29tbWFuZHMvZG93bmxvYWQucHk6CisgICAgICAgIChDaGVja1BhdGNoUmVsZXZh
bmNlKTogQWRkIGNoZWNrLXBhdGNoLXJlbGV2YW5jZSBjb21tYW5kLgorICAgICAgICAqIFNjcmlw
dHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9lYXJseXdhcm5pbmdzeXN0ZW0ucHk6CisgICAgICAg
IChBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbS5fY3JlYXRlX3Rhc2spOiBBYnN0cmFjdCBvdXQg
dG8gZW5hYmxlIG1vY2tpbmcuCisgICAgICAgIChBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbS5i
ZWdpbl93b3JrX3F1ZXVlKTogVXNlIEpTQ1Rlc3RSZXN1bHRzUmVhZGVyIG5vdCBMYXlvdXRUZXN0
UmVzdWx0c1JlYWRlciBpbiBKU0MgRVdTLgorICAgICAgICAoQWJzdHJhY3RFYXJseVdhcm5pbmdT
eXN0ZW0ucmV2aWV3X3BhdGNoKTogSGFuZGxlIFBhdGNoSXNBcHBsaWNhYmxlLgorICAgICAgICAo
QWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0udGVzdF9yZXN1bHRzKTogX2xheW91dF90ZXN0X3Jl
c3VsdHNfcmVhZGVyIC0+IF90ZXN0X3Jlc3VsdHNfcmVhZGVyLgorICAgICAgICAoQWJzdHJhY3RF
YXJseVdhcm5pbmdTeXN0ZW0uYXJjaGl2ZV9sYXN0X3Rlc3RfcmVzdWx0cyk6IF9sYXlvdXRfdGVz
dF9yZXN1bHRzX3JlYWRlciAtPiBfdGVzdF9yZXN1bHRzX3JlYWRlci4KKyAgICAgICAgKEFic3Ry
YWN0RWFybHlXYXJuaW5nU3lzdGVtLmdyb3VwKTogVGhpcyBhdHRyaWJ1dGUgZGV0ZXJtaW5lcyB0
aGUgdHlwZSBvZiBFV1MgKGVnLiBKU0MpLgorICAgICAgICAoQWJzdHJhY3RFYXJseVdhcm5pbmdT
eXN0ZW0ubG9hZF9ld3NfY2xhc3Nlcyk6IEFkZCBfZ3JvdXAsIGFuZCBtYWtlIGNsYXNzZXMgb2Yg
dHlwZSBjbHMgdG8gZW5hYmxlIG1vY2tpbmcuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90
b29sL2NvbW1hbmRzL2Vhcmx5d2FybmluZ3N5c3RlbV91bml0dGVzdC5weToKKyAgICAgICAgKFRl
c3RFV1MpOiBTYW1wbGUgbGF5b3V0IHRlc3QgRVdTIGNsYXNzIHVzZWQgZm9yIHVuaXQgdGVzdGlu
Zy4KKyAgICAgICAgKFRlc3RKU0NFV1MpOiBTYW1wbGUgSlNDIEVXUyBjbGFzcyB1c2VkIGZvciB1
bml0IHRlc3RpbmcuCisgICAgICAgIChBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbVRlc3QudGVz
dF9mYWlsaW5nX3Rlc3RzX21lc3NhZ2UuVGVzdEVXUyk6IEFkZCBfZ3JvdXAuCisgICAgICAgIChB
YnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbVRlc3QudGVzdF9mYWlsaW5nX2pzY190ZXN0c19tZXNz
YWdlLlRlc3RFV1MpOiBBZGRlZCB0ZXN0IGZvciBqc2MgZmFpbHVyZXMgbWVzc2FnZS4KKyAgICAg
ICAgKEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtVGVzdCk6IEFkZCBfZ3JvdXAgdmFyaWFibGUu
CisgICAgICAgIChFYXJseVdhcm5pbmdTeXN0ZW1UZXN0Ll9kZWZhdWx0X2V4cGVjdGVkX2xvZ3Mp
OiBBZGQgY2hlY2stcGF0Y2gtcmVsZXZhbmNlIHN0ZXAsIGluY29uY2x1c2l2ZSBsb2dzLCBhbmQg
Z3JvdXAuCisgICAgICAgIChFYXJseVdhcm5pbmdTeXN0ZW1UZXN0Ll90ZXN0X2V3cyk6IEFkZCBs
b2dzX2FyZV9jb25jbHVzaXZlIG9wdGlvbiB0byBwYXNzIHRocm91Z2ggdG8gZGVmYXVsdF9leHBl
Y3RlZF9sb2dzKCkuCisgICAgICAgIChFYXJseVdhcm5pbmdTeXN0ZW1UZXN0LnRlc3RfaW5jb25j
bHVzaXZlX3Rlc3RfcmVzdWx0cyk6IFRlc3Qgbm90IHJlbW92aW5nIHBhdGNoIGZyb20gcXVldWUg
aWYgbm90IGNvbmNsdXNpdmUuCisgICAgICAgIChNb2NrQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0
ZW0pOiBBZGRlZC4KKyAgICAgICAgKE1vY2tBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbS50ZXN0
X3Jlc3VsdHMpOiBTaW11bGF0ZXMgaW5jb25jbHVzaXZlIHJlc3VsdHMuCisgICAgICAgIChNb2Nr
QWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0uX2NyZWF0ZV90YXNrKTogVXNlIE1vY2tFYXJseVdh
cm5pbmdTeXN0ZW1UYXNrIChub3QgRWFybHlXYXJuaW5nU3lzdGVtVGFzaykuCisgICAgICAgIChN
b2NrRWFybHlXYXJuaW5nU3lzdGVtVGFzayk6IEFkZGVkLgorICAgICAgICAoTW9ja0Vhcmx5V2Fy
bmluZ1N5c3RlbVRhc2suX3Rlc3RfcGF0Y2gpOiBTaW11bGF0ZXMgcnVubmluZyB0ZXN0cyBidXQg
bm90IGdldHRpbmcgYSBjb25jbHVzaXZlIHJlc3VsdC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dHB5L3Rvb2wvc3RlcHMvX19pbml0X18ucHk6IEFkZCBDaGVja1BhdGNoUmVsZXZhbmNlIGltcG9y
dC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvYnVpbGQucHk6CisgICAg
ICAgIChCdWlsZC5vcHRpb25zKTogQ2hlY2sgZm9yIEpTQy4KKyAgICAgICAgKEJ1aWxkLmJ1aWxk
KTogQ2hlY2sgZm9yIEpTQy4KKyAgICAgICAgKEJ1aWxkLnJ1bik6IENoZWNrIGZvciBKU0MuCisg
ICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL2NoZWNrcGF0Y2hyZWxldmFuY2Uu
cHk6IEFkZGVkLgorICAgICAgICAoQ2hlY2tQYXRjaFJlbGV2YW5jZSk6IEFkZGVkLgorICAgICAg
ICAoQ2hlY2tQYXRjaFJlbGV2YW5jZS5fZG9lc19jb250YWluX2NoYW5nZV9pbl9wYXRocyk6IEFi
c3RyYWN0IGZ1bmN0aW9uIHRvIHBlcmZvcm0gcmVnZXggbWF0Y2hpbmcuCisgICAgICAgIChDaGVj
a1BhdGNoUmVsZXZhbmNlLnJ1bik6IENoZWNrIGlmIGNoYW5nZWQgZmlsZXMgaW4gcGF0Y2ggYmVs
b25nIGluIGNlcnRhaW4gZm9sZGVycy4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wv
c3RlcHMvb3B0aW9ucy5weToKKyAgICAgICAgKE9wdGlvbnMpOiBBZGQgLS1ncm91cCBjb21tYW5k
IGxpbmUgb3B0aW9uLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9ydW50
ZXN0cy5weToKKyAgICAgICAgKFJ1blRlc3RzLm9wdGlvbnMpOiBBZGQgZ3JvdXAuCisgICAgICAg
IChSdW5UZXN0cy5ydW4pOiBDaGVjayBmb3IgSlNDLgorICAgICAgICAoUnVuVGVzdHMuX3J1bl93
ZWJraXRfdGVzdHMpOiBDaGVjayBmb3IgSlNDLgorICAgICAgICAoUnVuVGVzdHMpOiBBZGQgX2dy
b3VwIGF0dHJpYnV0ZS4KKyAgICAgICAgKFJ1blRlc3RzLl9ydW5famF2YXNjcmlwdGNvcmVfdGVz
dHMpOiBOZXcuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3N0ZXBzX3Vu
aXR0ZXN0LnB5OiBVbml0IHRlc3RzLgorCiAyMDE3LTAyLTEwICBKb3NlcGggUGVjb3Jhcm8gIDxw
ZWNvcmFyb0BhcHBsZS5jb20+CiAKICAgICAgICAgW1Jlc291cmNlIFRpbWluZ10gRW5hYmxlIFJl
c291cmNlIFRpbWluZyBieSBkZWZhdWx0IGluIFRlc3RzCmRpZmYgLS1naXQgYS9Ub29scy9RdWV1
ZVN0YXR1c1NlcnZlci9jb25maWcvbWVzc2FnZXMucHkgYi9Ub29scy9RdWV1ZVN0YXR1c1NlcnZl
ci9jb25maWcvbWVzc2FnZXMucHkKaW5kZXggNmY5NTUyOTMyY2U0MjhkZDM2ZmU1MDkwZTk1Nzc3
YmM0OGQ2NTFlNS4uYTA5MzRlMjIyOWQ1Njk3NjVkZTVhZTQxNTFlNDE4ZGEzY2UwZGJiMCAxMDA2
NDQKLS0tIGEvVG9vbHMvUXVldWVTdGF0dXNTZXJ2ZXIvY29uZmlnL21lc3NhZ2VzLnB5CisrKyBi
L1Rvb2xzL1F1ZXVlU3RhdHVzU2VydmVyL2NvbmZpZy9tZXNzYWdlcy5weQpAQCAtMSw0ICsxLDUg
QEAKICMgQ29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisjIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAj
CiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC0yNyw2ICsyOCw3IEBACiAjIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCiAKICMgVGhlc2UgbXVzdCBiZSBpbiBzeW5jIHdpdGggd2Via2l0LXBhdGNoJ3MgQWJz
dHJhY3RRdWV1ZS4KK3NraXBfc3RhdHVzID0gIlNraXAiCiBwYXNzX3N0YXR1cyA9ICJQYXNzIgog
ZmFpbF9zdGF0dXMgPSAiRmFpbCIKIGVycm9yX3N0YXR1cyA9ICJFcnJvciIKZGlmZiAtLWdpdCBh
L1Rvb2xzL1F1ZXVlU3RhdHVzU2VydmVyL2NvbmZpZy9xdWV1ZXMucHkgYi9Ub29scy9RdWV1ZVN0
YXR1c1NlcnZlci9jb25maWcvcXVldWVzLnB5CmluZGV4IDM0MWRkMDgzYWRmYmI4OTA3MTk4YmVl
ZDVlYWIyMTkzMDI2OTgzZjUuLjBhMjJmZjMyYzhmMDNjODcxNDk2OTg3NzRmNjQzOGVkNWZhYmFk
YzcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1F1ZXVlU3RhdHVzU2VydmVyL2NvbmZpZy9xdWV1ZXMucHkK
KysrIGIvVG9vbHMvUXVldWVTdGF0dXNTZXJ2ZXIvY29uZmlnL3F1ZXVlcy5weQpAQCAtMSw0ICsx
LDQgQEAKLSMgQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyMgQ29weXJpZ2h0IChDKSAyMDE0LCAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICMgQ29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dApAQCAtMzYsNiArMzYsNyBAQCBhbGxfcXVldWVfbmFtZXMgPSBb
CiAgICAgImd0ay13azItZXdzIiwKICAgICAiaW9zLWV3cyIsCiAgICAgImlvcy1zaW0tZXdzIiwK
KyAgICAianNjLWV3cyIsCiAgICAgIm1hYy1ld3MiLAogICAgICJtYWMtd2syLWV3cyIsCiAgICAg
Im1hYy1kZWJ1Zy1ld3MiLApkaWZmIC0tZ2l0IGEvVG9vbHMvUXVldWVTdGF0dXNTZXJ2ZXIvaGFu
ZGxlcnMvc3RhdHVzYnViYmxlLnB5IGIvVG9vbHMvUXVldWVTdGF0dXNTZXJ2ZXIvaGFuZGxlcnMv
c3RhdHVzYnViYmxlLnB5CmluZGV4IGM4MDUxNGZmODc4OWVmNjk0Yjk5NTcxNGUyZWI1ZDk2Zjhi
Y2E3ODIuLjM4YmFjMDM5OWUzMDQzNzMwNjcxNTI3ZTQwZDM0ZjE1M2RiYWM0ZjAgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1F1ZXVlU3RhdHVzU2VydmVyL2hhbmRsZXJzL3N0YXR1c2J1YmJsZS5weQorKysg
Yi9Ub29scy9RdWV1ZVN0YXR1c1NlcnZlci9oYW5kbGVycy9zdGF0dXNidWJibGUucHkKQEAgLTEs
NCArMSw1IEBACiAjIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtMTgyLDExICsxODMsMTUg
QEAgY2xhc3MgU3RhdHVzQnViYmxlKHdlYmFwcC5SZXF1ZXN0SGFuZGxlcik6CiAgICAgICAgIHJl
dHVybiBidWJibGUKIAogICAgIGRlZiBfc2hvdWxkX3Nob3dfYnViYmxlX2ZvcihzZWxmLCBhdHRh
Y2htZW50LCBxdWV1ZSk6Ci0gICAgICAgICAjIEFueSBwZW5kaW5nIHF1ZXVlIGlzIHNob3duLgor
ICAgICAgICAjIEFueSBwZW5kaW5nIHF1ZXVlIGlzIHNob3duLgogICAgICAgICBpZiBhdHRhY2ht
ZW50LnBvc2l0aW9uX2luX3F1ZXVlKHF1ZXVlKToKICAgICAgICAgICAgIHJldHVybiBUcnVlCi0g
ICAgICAgICMgRVdTIHF1ZXVlcyBhcmUgYWxzbyBzaG93biB3aGVuIGNvbXBsZXRlLgotICAgICAg
ICByZXR1cm4gYm9vbChxdWV1ZS5pc19ld3MoKSBhbmQgYXR0YWNobWVudC5zdGF0dXNfZm9yX3F1
ZXVlKHF1ZXVlKSkKKworICAgICAgICBpZiBub3QgcXVldWUuaXNfZXdzKCk6CisgICAgICAgICAg
ICByZXR1cm4gRmFsc2UKKworICAgICAgICBzdGF0dXMgPSBhdHRhY2htZW50LnN0YXR1c19mb3Jf
cXVldWUocXVldWUpCisgICAgICAgIHJldHVybiBib29sKHN0YXR1cyBhbmQgbm90IHN0YXR1cy5k
aWRfc2tpcCgpKQogCiAgICAgZGVmIF9idWlsZF9idWJibGVzX2Zvcl9hdHRhY2htZW50KHNlbGYs
IGF0dGFjaG1lbnQpOgogICAgICAgICBzaG93X3N1Ym1pdF90b19ld3MgPSBUcnVlCmRpZmYgLS1n
aXQgYS9Ub29scy9RdWV1ZVN0YXR1c1NlcnZlci9tb2RlbC9xdWV1ZXN0YXR1cy5weSBiL1Rvb2xz
L1F1ZXVlU3RhdHVzU2VydmVyL21vZGVsL3F1ZXVlc3RhdHVzLnB5CmluZGV4IGQ5YmI2ZjY1NjM3
NTQwYzcwYjk3ODFhZWQyNWI4ODIzZDliMzgzOTYuLjk3MWU2ZGM1ODE0YWQ0Yjg4NDhjMzc0YzVk
MGNiY2JiYmU1Yjg2ZjQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1F1ZXVlU3RhdHVzU2VydmVyL21vZGVs
L3F1ZXVlc3RhdHVzLnB5CisrKyBiL1Rvb2xzL1F1ZXVlU3RhdHVzU2VydmVyL21vZGVsL3F1ZXVl
c3RhdHVzLnB5CkBAIC0xLDQgKzEsNSBAQAogIyBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAg
LTQwLDMgKzQxLDYgQEAgY2xhc3MgUXVldWVTdGF0dXMoZGIuTW9kZWwsIFF1ZXVlUHJvcGVydHlN
aXhpbik6CiAgICAgbWVzc2FnZSA9IGRiLlN0cmluZ1Byb3BlcnR5KG11bHRpbGluZT1UcnVlKQog
ICAgIGRhdGUgPSBkYi5EYXRlVGltZVByb3BlcnR5KGF1dG9fbm93X2FkZD1UcnVlKQogICAgIHJl
c3VsdHNfZmlsZSA9IGRiLkJsb2JQcm9wZXJ0eSgpCisKKyAgICBkZWYgZGlkX3NraXAoc2VsZik6
CisgICAgICAgIHJldHVybiBzZWxmLm1lc3NhZ2UgPT0gbWVzc2FnZXMuc2tpcF9zdGF0dXMKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNrb3V0L3NjbS9zY21f
bW9jay5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNrb3V0L3NjbS9zY21f
bW9jay5weQppbmRleCBjNWQxMGZjYjE4OWIwYThiNTE5ZmE1NTYyNTAyMmE3MGM0ODZkNDRiLi45
Nzc0ZWM4YWU4NzNhMWIwYjgzNzYwNzE4MDY2NzkyMTU4MDllZWVjIDEwMDY0NAotLS0gYS9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja291dC9zY20vc2NtX21vY2sucHkKKysrIGIv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hlY2tvdXQvc2NtL3NjbV9tb2NrLnB5CkBA
IC0xLDQgKzEsNSBAQAogIyBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTM3LDYgKzM4LDcg
QEAgY2xhc3MgTW9ja1NDTShvYmplY3QpOgogICAgICAgICBzZWxmLmFkZGVkX3BhdGhzID0gc2V0
KCkKICAgICAgICAgc2VsZi5fZmlsZXN5c3RlbSA9IGZpbGVzeXN0ZW0gb3IgTW9ja0ZpbGVTeXN0
ZW0oKQogICAgICAgICBzZWxmLl9leGVjdXRpdmUgPSBleGVjdXRpdmUgb3IgTW9ja0V4ZWN1dGl2
ZSgpCisgICAgICAgIHNlbGYuX21vY2tDaGFuZ2VkRmlsZXMgPSBbIk1vY2tGaWxlMSJdCiAKICAg
ICBkZWYgYWRkKHNlbGYsIGRlc3RpbmF0aW9uX3BhdGgpOgogICAgICAgICBzZWxmLmFkZF9saXN0
KFtkZXN0aW5hdGlvbl9wYXRoXSkKQEAgLTcxLDcgKzczLDcgQEAgY2xhc3MgTW9ja1NDTShvYmpl
Y3QpOgogICAgICAgICByZXR1cm4gc2VsZi5fZmlsZXN5c3RlbS5qb2luKHNlbGYuY2hlY2tvdXRf
cm9vdCwgKmNvbXBzKQogCiAgICAgZGVmIGNoYW5nZWRfZmlsZXMoc2VsZiwgZ2l0X2NvbW1pdD1O
b25lKToKLSAgICAgICAgcmV0dXJuIFsiTW9ja0ZpbGUxIl0KKyAgICAgICAgcmV0dXJuIHNlbGYu
X21vY2tDaGFuZ2VkRmlsZXMKIAogICAgIGRlZiBjaGFuZ2VkX2ZpbGVzX2Zvcl9yZXZpc2lvbihz
ZWxmLCByZXZpc2lvbik6CiAgICAgICAgIHJldHVybiBbIk1vY2tGaWxlMSJdCmRpZmYgLS1naXQg
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvZXdzLmpzb24gYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvZXdzLmpzb24KaW5kZXggMzVkNDk4NWFiMGY5
M2QxMjdiMzcyMWU0NjAxY2Q2ZDg5ZGZjY2YzYy4uZTUzNDBmZTVjM2MyMWFlODFhZDFlZjdlMDNm
N2ZiODFmMzgzOWNmZiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24v
Y29uZmlnL2V3cy5qc29uCisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZp
Zy9ld3MuanNvbgpAQCAtNTAsNSArNTAsMTEgQEAKICAgICAgICAgInBvcnQiOiAibWFjIiwKICAg
ICAgICAgIm5hbWUiOiAibWFjLTMyYml0LWV3cyIsCiAgICAgICAgICJhcmNoaXRlY3R1cmUiOiAi
aTM4NiIKKyAgICB9LAorICAgICJKU0MgRVdTIjogeworICAgICAgICAicG9ydCI6ICJtYWMiLAor
ICAgICAgICAibmFtZSI6ICJqc2MtZXdzIiwKKyAgICAgICAgImdyb3VwIjogImpzYyIsCisgICAg
ICAgICJydW5UZXN0cyI6IHRydWUKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2NvbW1vbi9jb25maWcvcG9ydHMucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2NvbW1vbi9jb25maWcvcG9ydHMucHkKaW5kZXggYTBkNTBkY2I2ZWEwYjVmZGUwYjNjMTdlZjE1
OWNlYWZlZTFhMmU5OC4uMTgzMzkzM2VhOGYzZDFjNzIzZjQ3MDRiYWZiY2U1OGI3Y2YxMzNiOCAx
MDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL3BvcnRzLnB5
CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9wb3J0cy5weQpAQCAt
MSw2ICsxLDYgQEAKICMgQ29weXJpZ2h0IChDKSAyMDA5LCBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogIyBDb3B5cmlnaHQgKEMpIDIwMTMgTm9raWEgQ29ycG9yYXRpb24gYW5kL29y
IGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgotIyBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMTUsIDIwMTcgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpA
QCAtOTUsMjQgKzk1LDMwIEBAIGNsYXNzIERlcHJlY2F0ZWRQb3J0KG9iamVjdCk6CiAgICAgZGVm
IHByZXBhcmVfY2hhbmdlbG9nX2NvbW1hbmQoc2VsZik6CiAgICAgICAgIHJldHVybiBzZWxmLnNj
cmlwdF9zaGVsbF9jb21tYW5kKCJwcmVwYXJlLUNoYW5nZUxvZyIpCiAKLSAgICBkZWYgYnVpbGRf
d2Via2l0X2NvbW1hbmQoc2VsZiwgYnVpbGRfc3R5bGU9Tm9uZSk6Ci0gICAgICAgIGNvbW1hbmQg
PSBzZWxmLnNjcmlwdF9zaGVsbF9jb21tYW5kKCJidWlsZC13ZWJraXQiKQorICAgIGRlZiBfYXBw
ZW5kX2J1aWxkX3N0eWxlX2ZsYWcoc2VsZiwgY29tbWFuZCwgYnVpbGRfc3R5bGUpOgogICAgICAg
ICBpZiBidWlsZF9zdHlsZSA9PSAiZGVidWciOgogICAgICAgICAgICAgY29tbWFuZC5hcHBlbmQo
Ii0tZGVidWciKQotICAgICAgICBpZiBidWlsZF9zdHlsZSA9PSAicmVsZWFzZSI6CisgICAgICAg
IGVsaWYgYnVpbGRfc3R5bGUgPT0gInJlbGVhc2UiOgogICAgICAgICAgICAgY29tbWFuZC5hcHBl
bmQoIi0tcmVsZWFzZSIpCiAgICAgICAgIHJldHVybiBjb21tYW5kCiAKLSAgICBkZWYgcnVuX2ph
dmFzY3JpcHRjb3JlX3Rlc3RzX2NvbW1hbmQoc2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmLnNj
cmlwdF9zaGVsbF9jb21tYW5kKCJydW4tamF2YXNjcmlwdGNvcmUtdGVzdHMiKQorICAgIGRlZiBi
dWlsZF93ZWJraXRfY29tbWFuZChzZWxmLCBidWlsZF9zdHlsZT1Ob25lKToKKyAgICAgICAgY29t
bWFuZCA9IHNlbGYuc2NyaXB0X3NoZWxsX2NvbW1hbmQoImJ1aWxkLXdlYmtpdCIpCisgICAgICAg
IHJldHVybiBzZWxmLl9hcHBlbmRfYnVpbGRfc3R5bGVfZmxhZyhjb21tYW5kLCBidWlsZF9zdHls
ZSkKKworICAgIGRlZiBidWlsZF9qc2NfY29tbWFuZChzZWxmLCBidWlsZF9zdHlsZT1Ob25lKToK
KyAgICAgICAgY29tbWFuZCA9IHNlbGYuc2NyaXB0X3NoZWxsX2NvbW1hbmQoImJ1aWxkLWpzYyIp
CisgICAgICAgIHJldHVybiBzZWxmLl9hcHBlbmRfYnVpbGRfc3R5bGVfZmxhZyhjb21tYW5kLCBi
dWlsZF9zdHlsZSkKKworICAgIGRlZiBydW5famF2YXNjcmlwdGNvcmVfdGVzdHNfY29tbWFuZChz
ZWxmLCBidWlsZF9zdHlsZT1Ob25lKToKKyAgICAgICAgY29tbWFuZCA9IHNlbGYuc2NyaXB0X3No
ZWxsX2NvbW1hbmQoInJ1bi1qYXZhc2NyaXB0Y29yZS10ZXN0cyIpCisgICAgICAgIGNvbW1hbmQu
YXBwZW5kKCItLW5vLWZhaWwtZmFzdCIpCisgICAgICAgIGNvbW1hbmQuYXBwZW5kKCItLWpzb24t
b3V0cHV0PWpzY190ZXN0X3Jlc3VsdHMuanNvbiIpCisgICAgICAgIHJldHVybiBzZWxmLl9hcHBl
bmRfYnVpbGRfc3R5bGVfZmxhZyhjb21tYW5kLCBidWlsZF9zdHlsZSkKIAogICAgIGRlZiBydW5f
d2Via2l0X3Rlc3RzX2NvbW1hbmQoc2VsZiwgYnVpbGRfc3R5bGU9Tm9uZSk6CiAgICAgICAgIGNv
bW1hbmQgPSBzZWxmLnNjcmlwdF9zaGVsbF9jb21tYW5kKCJydW4td2Via2l0LXRlc3RzIikKLSAg
ICAgICAgaWYgYnVpbGRfc3R5bGUgPT0gImRlYnVnIjoKLSAgICAgICAgICAgIGNvbW1hbmQuYXBw
ZW5kKCItLWRlYnVnIikKLSAgICAgICAgaWYgYnVpbGRfc3R5bGUgPT0gInJlbGVhc2UiOgotICAg
ICAgICAgICAgY29tbWFuZC5hcHBlbmQoIi0tcmVsZWFzZSIpCi0gICAgICAgIHJldHVybiBjb21t
YW5kCisgICAgICAgIHJldHVybiBzZWxmLl9hcHBlbmRfYnVpbGRfc3R5bGVfZmxhZyhjb21tYW5k
LCBidWlsZF9zdHlsZSkKIAogICAgIGRlZiBydW5fcHl0aG9uX3VuaXR0ZXN0c19jb21tYW5kKHNl
bGYpOgogICAgICAgICByZXR1cm4gc2VsZi5zY3JpcHRfc2hlbGxfY29tbWFuZCgidGVzdC13ZWJr
aXRweSIpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcv
cG9ydHNfbW9jay5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9wb3J0
c19tb2NrLnB5CmluZGV4IDYxNzQzZGViYjRlYmVlMzc1NmJhN2MyMGYwMTQ4MjM1NDBkMmRjYTYu
LmNhMWIxOGEzMTA2ODQyM2JkY2UwN2NkZWI3ZDdkN2QxOTlmNDAwYWIgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9wb3J0c19tb2NrLnB5CisrKyBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9wb3J0c19tb2NrLnB5CkBAIC0xLDQg
KzEsNSBAQAogIyBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTQ5LDcgKzUwLDcgQEAgY2xh
c3MgTW9ja1BvcnQob2JqZWN0KToKICAgICBkZWYgcnVuX3BlcmxfdW5pdHRlc3RzX2NvbW1hbmQo
c2VsZik6CiAgICAgICAgIHJldHVybiBbJ21vY2stdGVzdC13ZWJraXRwZXJsJ10KIAotICAgIGRl
ZiBydW5famF2YXNjcmlwdGNvcmVfdGVzdHNfY29tbWFuZChzZWxmKToKKyAgICBkZWYgcnVuX2ph
dmFzY3JpcHRjb3JlX3Rlc3RzX2NvbW1hbmQoc2VsZiwgYnVpbGRfc3R5bGU9Tm9uZSk6CiAgICAg
ICAgIHJldHVybiBbJ21vY2stcnVuLWphdmFjcmlwdGNvcmUtdGVzdHMnXQogCiAgICAgZGVmIHJ1
bl93ZWJraXRfdGVzdHNfY29tbWFuZChzZWxmLCBidWlsZF9zdHlsZT1Ob25lKToKZGlmZiAtLWdp
dCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9wb3J0c191bml0dGVzdC5w
eSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9wb3J0c191bml0dGVzdC5w
eQppbmRleCAwOGQ1NDUyMzZkYTM3MDNlOTI4ZjFjZWVkMWRkOTEwMmQ5Yjg2MjJlLi4xNmNkN2Y5
MjgyNTFiYmM5OTZjYjY0NmU0MzU5ZDczZmRiNTM1YjI2IDEwMDY0NAotLS0gYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvcG9ydHNfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL3BvcnRzX3VuaXR0ZXN0LnB5CkBAIC0xLDQg
KzEsNSBAQAogIyBDb3B5cmlnaHQgKGMpIDIwMDksIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC0zOSw2ICs0MCwxMCBAQCBj
bGFzcyBEZXByZWNhdGVkUG9ydFRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKE1hY1BvcnQoKS5idWlsZF93ZWJraXRfY29tbWFuZChidWlsZF9zdHlsZT0i
ZGVidWciKSwgRGVwcmVjYXRlZFBvcnQoKS5zY3JpcHRfc2hlbGxfY29tbWFuZCgiYnVpbGQtd2Vi
a2l0IikgKyBbIi0tZGVidWciXSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChNYWNQb3J0KCku
YnVpbGRfd2Via2l0X2NvbW1hbmQoYnVpbGRfc3R5bGU9InJlbGVhc2UiKSwgRGVwcmVjYXRlZFBv
cnQoKS5zY3JpcHRfc2hlbGxfY29tbWFuZCgiYnVpbGQtd2Via2l0IikgKyBbIi0tcmVsZWFzZSJd
KQogCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTWFjUG9ydCgpLmJ1aWxkX2pzY19jb21tYW5k
KCksIERlcHJlY2F0ZWRQb3J0KCkuc2NyaXB0X3NoZWxsX2NvbW1hbmQoImJ1aWxkLWpzYyIpKQor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE1hY1BvcnQoKS5idWlsZF9qc2NfY29tbWFuZChidWls
ZF9zdHlsZT0icmVsZWFzZSIpLCBEZXByZWNhdGVkUG9ydCgpLnNjcmlwdF9zaGVsbF9jb21tYW5k
KCJidWlsZC1qc2MiKSArIFsiLS1yZWxlYXNlIl0pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
TWFjUG9ydCgpLmJ1aWxkX2pzY19jb21tYW5kKGJ1aWxkX3N0eWxlPSJkZWJ1ZyIpLCBEZXByZWNh
dGVkUG9ydCgpLnNjcmlwdF9zaGVsbF9jb21tYW5kKCJidWlsZC1qc2MiKSArIFsiLS1kZWJ1ZyJd
KQorCiAgICAgZGVmIHRlc3RfZ3RrX3drMl9wb3J0KHNlbGYpOgogICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKEd0a1dLMlBvcnQoKS5mbGFnKCksICItLXBvcnQ9Z3RrLXdrMiIpCiAgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoR3RrV0syUG9ydCgpLnJ1bl93ZWJraXRfdGVzdHNfY29tbWFuZCgpLCBE
ZXByZWNhdGVkUG9ydCgpLnNjcmlwdF9zaGVsbF9jb21tYW5kKCJydW4td2Via2l0LXRlc3RzIikg
KyBbIi0tZ3RrIl0pCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9u
ZXQvYWJzdHJhY3R0ZXN0cmVzdWx0cy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9u
L25ldC9hYnN0cmFjdHRlc3RyZXN1bHRzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZmY2ZkMDgyNWMzMDg2MDI0
YzFjODI0ODA3NzNjNWZmOTVlOGE0YWUKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2NvbW1vbi9uZXQvYWJzdHJhY3R0ZXN0cmVzdWx0cy5weQpAQCAtMCwwICsxLDM2
IEBACisjIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisj
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorIyBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisjIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SCisjIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisjIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksCisjIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK2ltcG9ydCBsb2dn
aW5nCisKK19sb2cgPSBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVfXykKKworCitjbGFzcyBBYnN0
cmFjdFRlc3RSZXN1bHRzKG9iamVjdCk6CisgICAgZGVmIHRlc3RfcmVzdWx0cyhzZWxmKToKKyAg
ICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcigic3ViY2xhc3NlcyBtdXN0IGltcGxlbWVu
dCIpCisKKyAgICBkZWYgZmFpbGluZ190ZXN0cyhzZWxmKToKKyAgICAgICAgcmFpc2UgTm90SW1w
bGVtZW50ZWRFcnJvcigic3ViY2xhc3NlcyBtdXN0IGltcGxlbWVudCIpCisKKyAgICBkZWYgZGlk
X2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQoc2VsZik6CisgICAgICAgIHJhaXNlIE5vdEltcGxl
bWVudGVkRXJyb3IoInN1YmNsYXNzZXMgbXVzdCBpbXBsZW1lbnQiKQpkaWZmIC0tZ2l0IGEvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2pzY3Rlc3RyZXN1bHRzLnB5IGIvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2pzY3Rlc3RyZXN1bHRzLnB5Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjRlZmYzZmFlNTJiNjc4M2Y3N2QzMzg3YjE1OWZkYWZiMGUyZWNiNTAKLS0tIC9kZXYvbnVsbAor
KysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvanNjdGVzdHJlc3VsdHMucHkK
QEAgLTAsMCArMSw4MCBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6Cisj
IDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisjIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorIyBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLAorIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
CitpbXBvcnQganNvbgoraW1wb3J0IGxvZ2dpbmcKKworZnJvbSB3ZWJraXRweS5jb21tb24ubmV0
LmFic3RyYWN0dGVzdHJlc3VsdHMgaW1wb3J0IEFic3RyYWN0VGVzdFJlc3VsdHMKKworX2xvZyA9
IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKQorCisKK2NsYXNzIEpTQ1Rlc3RSZXN1bHRzKEFi
c3RyYWN0VGVzdFJlc3VsdHMpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBhbGxfYXBpX3Rlc3Rz
X3Bhc3NlZCwgc3RyZXNzX3Rlc3RfZmFpbHVyZXMpOgorICAgICAgICBzZWxmLmFsbF9hcGlfdGVz
dHNfcGFzc2VkID0gYWxsX2FwaV90ZXN0c19wYXNzZWQKKyAgICAgICAgc2VsZi5zdHJlc3NfdGVz
dF9mYWlsdXJlcyA9IHN0cmVzc190ZXN0X2ZhaWx1cmVzCisKKyAgICAgICAgc2VsZi5yZXN1bHRz
ID0gc3RyZXNzX3Rlc3RfZmFpbHVyZXNbOl0KKyAgICAgICAgaWYgbm90IHNlbGYuYWxsX2FwaV90
ZXN0c19wYXNzZWQ6CisgICAgICAgICAgICBzZWxmLnJlc3VsdHMuYXBwZW5kKCdhcGlUZXN0cycp
CisKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgaW50ZXJzZWN0aW9uKGNscywgZmlyc3QsIHNl
Y29uZCk6CisgICAgICAgIGludGVyc2VjdGlvbl9hcGlfdGVzdHNfcGFzc2VkID0gZmlyc3QuYWxs
X2FwaV90ZXN0c19wYXNzZWQgb3Igc2Vjb25kLmFsbF9hcGlfdGVzdHNfcGFzc2VkCisgICAgICAg
IGludGVyc2VjdGlvbl9zdHJlc3NfdGVzdF9mYWlsdXJlcyA9IGxpc3Qoc2V0KGZpcnN0LnN0cmVz
c190ZXN0X2ZhaWx1cmVzKSAmIHNldChzZWNvbmQuc3RyZXNzX3Rlc3RfZmFpbHVyZXMpKQorICAg
ICAgICByZXR1cm4gY2xzKGludGVyc2VjdGlvbl9hcGlfdGVzdHNfcGFzc2VkLCBpbnRlcnNlY3Rp
b25fc3RyZXNzX3Rlc3RfZmFpbHVyZXMpCisKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgcmVz
dWx0c19mcm9tX3N0cmluZyhjbHMsIHN0cmluZyk6CisgICAgICAgIGlmIG5vdCBzdHJpbmc6Cisg
ICAgICAgICAgICByZXR1cm4gTm9uZQorCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHBhcnNl
ZF9yZXN1bHRzID0ganNvbi5sb2FkcyhzdHJpbmcpCisgICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9y
OgorICAgICAgICAgICAgX2xvZy5lcnJvcignSW52YWxpZCBKU09OIHJlc3VsdHMnKQorICAgICAg
ICAgICAgcmV0dXJuIE5vbmUKKworICAgICAgICBpZiAnYWxsQXBpVGVzdHNQYXNzZWQnIG5vdCBp
biBwYXJzZWRfcmVzdWx0cyBvciAnc3RyZXNzVGVzdEZhaWx1cmVzJyBub3QgaW4gcGFyc2VkX3Jl
c3VsdHM6CisgICAgICAgICAgICByZXR1cm4gTm9uZQorCisgICAgICAgIHJldHVybiBjbHMocGFy
c2VkX3Jlc3VsdHNbJ2FsbEFwaVRlc3RzUGFzc2VkJ10sIHBhcnNlZF9yZXN1bHRzWydzdHJlc3NU
ZXN0RmFpbHVyZXMnXSkKKworICAgIGRlZiBlcXVhbHMoc2VsZiwgb3RoZXIpOgorICAgICAgICBy
ZXR1cm4gKHNlbGYuYWxsX2FwaV90ZXN0c19wYXNzZWQgPT0gb3RoZXIuYWxsX2FwaV90ZXN0c19w
YXNzZWQgYW5kCisgICAgICAgICAgICAgICBzZXQoc2VsZi5zdHJlc3NfdGVzdF9mYWlsdXJlcykg
PT0gc2V0KG90aGVyLnN0cmVzc190ZXN0X2ZhaWx1cmVzKSkKKworICAgIGRlZiBpc19zdWJzZXQo
c2VsZiwgb3RoZXIpOgorICAgICAgICByZXR1cm4gc2V0KHNlbGYucmVzdWx0cykgPD0gc2V0KG90
aGVyLnJlc3VsdHMpCisKKyAgICBkZWYgYWxsX3Bhc3NlZChzZWxmKToKKyAgICAgICAgcmV0dXJu
IHNlbGYuYWxsX2FwaV90ZXN0c19wYXNzZWQgYW5kIG5vdCBzZWxmLnN0cmVzc190ZXN0X2ZhaWx1
cmVzCisKKyAgICBkZWYgdGVzdF9yZXN1bHRzKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5y
ZXN1bHRzCisKKyAgICBkZWYgZmFpbGluZ190ZXN0cyhzZWxmKToKKyAgICAgICAgcmV0dXJuIHNl
bGYucmVzdWx0cworCisgICAgIyBObyBkZWZpbmVkIGZhaWx1cmUgbGltaXQgZm9yIEpTQy4KKyAg
ICBkZWYgZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQoc2VsZik6CisgICAgICAgIHJldHVy
biBGYWxzZQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2pz
Y3Rlc3RyZXN1bHRzX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24v
bmV0L2pzY3Rlc3RyZXN1bHRzX3VuaXR0ZXN0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRjZjExNDlhZmNkNjNi
NWZiYTY2ODMxNDliY2E4MzdhYzZlYWI5MTYKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvanNjdGVzdHJlc3VsdHNfdW5pdHRlc3QucHkKQEAgLTAs
MCArMSw3NSBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisjIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TAorIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUgorIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorIyBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLAorIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitpbXBv
cnQgdW5pdHRlc3QKKworZnJvbSB3ZWJraXRweS5jb21tb24ubmV0LmpzY3Rlc3RyZXN1bHRzIGlt
cG9ydCBKU0NUZXN0UmVzdWx0cworCisKK2NsYXNzIEpTQ1Rlc3RSZXN1bHRzVGVzdCh1bml0dGVz
dC5UZXN0Q2FzZSk6CisgICAgZGVmIHRlc3RfcmVzdWx0c19mcm9tX3N0cmluZyhzZWxmKToKKyAg
ICAgICAgbm9uZV9pdGVtID0gTm9uZQorICAgICAgICBlbXB0eV9qc29uID0gJycKKyAgICAgICAg
aW52YWxpZF9qc29uID0gJ3siYWxsQXBpVGVzdHNQYXNzZWQiOicKKyAgICAgICAgaW5jb21wbGV0
ZV9qc29uX3YxID0gJ3siYWxsQXBpVGVzdHNQYXNzZWQiOiB0cnVlfScKKyAgICAgICAgaW5jb21w
bGV0ZV9qc29uX3YyID0gJ3sic3RyZXNzVGVzdEZhaWx1cmVzIjpbXX0nCisgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoTm9uZSwgSlNDVGVzdFJlc3VsdHMucmVzdWx0c19mcm9tX3N0cmluZyhub25l
X2l0ZW0pKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIEpTQ1Rlc3RSZXN1bHRzLnJl
c3VsdHNfZnJvbV9zdHJpbmcoZW1wdHlfanNvbikpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
Tm9uZSwgSlNDVGVzdFJlc3VsdHMucmVzdWx0c19mcm9tX3N0cmluZyhpbnZhbGlkX2pzb24pKQor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIEpTQ1Rlc3RSZXN1bHRzLnJlc3VsdHNfZnJv
bV9zdHJpbmcoaW5jb21wbGV0ZV9qc29uX3YxKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChO
b25lLCBKU0NUZXN0UmVzdWx0cy5yZXN1bHRzX2Zyb21fc3RyaW5nKGluY29tcGxldGVfanNvbl92
MikpCisKKyAgICAgICAgbm9fZmFpbHVyZXNfc3RyaW5nID0gJ3siYWxsQXBpVGVzdHNQYXNzZWQi
OiB0cnVlLCAic3RyZXNzVGVzdEZhaWx1cmVzIjpbXX0nCisgICAgICAgIG5vX2ZhaWx1cmVzX3Jl
c3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbXSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVl
KG5vX2ZhaWx1cmVzX3Jlc3VsdHMuZXF1YWxzKEpTQ1Rlc3RSZXN1bHRzLnJlc3VsdHNfZnJvbV9z
dHJpbmcobm9fZmFpbHVyZXNfc3RyaW5nKSkpCisKKyAgICAgICAgYXBpX3Rlc3RfZmFpbHVyZXNf
c3RyaW5nID0gJ3siYWxsQXBpVGVzdHNQYXNzZWQiOiBmYWxzZSwgInN0cmVzc1Rlc3RGYWlsdXJl
cyI6W119JworICAgICAgICBhcGlfdGVzdF9mYWlsdXJlc19yZXN1bHRzID0gSlNDVGVzdFJlc3Vs
dHMoRmFsc2UsIFtdKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoYXBpX3Rlc3RfZmFpbHVyZXNf
cmVzdWx0cy5lcXVhbHMoSlNDVGVzdFJlc3VsdHMucmVzdWx0c19mcm9tX3N0cmluZyhhcGlfdGVz
dF9mYWlsdXJlc19zdHJpbmcpKSkKKworICAgICAgICBtYW55X2ZhaWx1cmVzX3N0cmluZyA9ICd7
ImFsbEFwaVRlc3RzUGFzc2VkIjogZmFsc2UsICJzdHJlc3NUZXN0RmFpbHVyZXMiOlsiZXM2Lnlh
bWwvZXM2L3R5cGVkX2FycmF5c19JbnQxNkFycmF5LmpzLmRlZmF1bHQiLCAiZXM2LnlhbWwvZXM2
L3R5cGVkX2FycmF5c19JbnQ4QXJyYXkuanMuZGVmYXVsdCJdfScKKyAgICAgICAgbWFueV9mYWls
dXJlc19yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoRmFsc2UsIFsiZXM2LnlhbWwvZXM2L3R5cGVk
X2FycmF5c19JbnQxNkFycmF5LmpzLmRlZmF1bHQiLCAiZXM2LnlhbWwvZXM2L3R5cGVkX2FycmF5
c19JbnQ4QXJyYXkuanMuZGVmYXVsdCJdKQorICAgICAgICBzZWxmLmFzc2VydFRydWUobWFueV9m
YWlsdXJlc19yZXN1bHRzLmVxdWFscyhKU0NUZXN0UmVzdWx0cy5yZXN1bHRzX2Zyb21fc3RyaW5n
KG1hbnlfZmFpbHVyZXNfc3RyaW5nKSkpCisKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShub19m
YWlsdXJlc19yZXN1bHRzID09IGFwaV90ZXN0X2ZhaWx1cmVzX3Jlc3VsdHMpCisgICAgICAgIHNl
bGYuYXNzZXJ0RmFsc2UoYXBpX3Rlc3RfZmFpbHVyZXNfcmVzdWx0cyA9PSBtYW55X2ZhaWx1cmVz
X3Jlc3VsdHMpCisKKyAgICBkZWYgdGVzdF9pbnRlcnNlY3Rpb25fYXBpX3Rlc3RzKHNlbGYpOgor
ICAgICAgICByZXN1bHRzMSA9IEpTQ1Rlc3RSZXN1bHRzKEZhbHNlLCBbXSkKKyAgICAgICAgcmVz
dWx0czIgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbXSkKKworICAgICAgICBleHBlY3RlZF9pbnRl
cnNlY3Rpb24gPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbXSkKKyAgICAgICAgc2VsZi5hc3NlcnRU
cnVlKGV4cGVjdGVkX2ludGVyc2VjdGlvbi5lcXVhbHMoSlNDVGVzdFJlc3VsdHMuaW50ZXJzZWN0
aW9uKHJlc3VsdHMxLCByZXN1bHRzMikpKQorCisgICAgZGVmIHRlc3RfaW50ZXJzZWN0aW9uX3N0
cmVzc190ZXN0cyhzZWxmKToKKyAgICAgICAgcmVzdWx0czEgPSBKU0NUZXN0UmVzdWx0cyhUcnVl
LCBbJ2ZhaWx1cmUxJywgJ2ZhaWx1cmUyJ10pCisgICAgICAgIHJlc3VsdHMyID0gSlNDVGVzdFJl
c3VsdHMoVHJ1ZSwgWydmYWlsdXJlMScsICdmYWlsdXJlMyddKQorCisgICAgICAgIGV4cGVjdGVk
X2ludGVyc2VjdGlvbiA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFsnZmFpbHVyZTEnXSkKKyAgICAg
ICAgc2VsZi5hc3NlcnRUcnVlKGV4cGVjdGVkX2ludGVyc2VjdGlvbi5lcXVhbHMoSlNDVGVzdFJl
c3VsdHMuaW50ZXJzZWN0aW9uKHJlc3VsdHMxLCByZXN1bHRzMikpKQorCisgICAgZGVmIHRlc3Rf
aW50ZXJzZWN0aW9uX2dlbmVyYWxfY2FzZShzZWxmKToKKyAgICAgICAgcmVzdWx0czEgPSBKU0NU
ZXN0UmVzdWx0cyhUcnVlLCBbJ2ZhaWx1cmUxJywgJ2ZhaWx1cmUyJ10pCisgICAgICAgIHJlc3Vs
dHMyID0gSlNDVGVzdFJlc3VsdHMoRmFsc2UsIFsnZmFpbHVyZTEnXSkKKworICAgICAgICBleHBl
Y3RlZF9pbnRlcnNlY3Rpb24gPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbJ2ZhaWx1cmUxJ10pCisg
ICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShleHBlY3RlZF9pbnRlcnNlY3Rpb24uZXF1YWxzKEpTQ1Rl
c3RSZXN1bHRzLmludGVyc2VjdGlvbihyZXN1bHRzMSwgcmVzdWx0czIpKSkKZGlmZiAtLWdpdCBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9sYXlvdXR0ZXN0cmVzdWx0cy5weSBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9sYXlvdXR0ZXN0cmVzdWx0cy5weQpp
bmRleCA3ZmI2N2MxNmI3ZTFmZGIwYTY0NjA3YjU1MzE0ZTI3MDBmYTEyZTlhLi43MDYxNmVkYjI0
MDVjZWVjNTEzZmY4NDg1Yjc1NWJjYTkyODczYzBlIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2NvbW1vbi9uZXQvbGF5b3V0dGVzdHJlc3VsdHMucHkKKysrIGIvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9jb21tb24vbmV0L2xheW91dHRlc3RyZXN1bHRzLnB5CkBAIC0yOCw2ICsy
OCw3IEBACiAKIGltcG9ydCBsb2dnaW5nCiAKK2Zyb20gd2Via2l0cHkuY29tbW9uLm5ldC5hYnN0
cmFjdHRlc3RyZXN1bHRzIGltcG9ydCBBYnN0cmFjdFRlc3RSZXN1bHRzCiBmcm9tIHdlYmtpdHB5
LmNvbW1vbi5uZXQucmVzdWx0c2pzb25wYXJzZXIgaW1wb3J0IFBhcnNlZEpTT05SZXN1bHRzCiBm
cm9tIHdlYmtpdHB5LnRoaXJkcGFydHkuQmVhdXRpZnVsU291cCBpbXBvcnQgQmVhdXRpZnVsU291
cCwgU291cFN0cmFpbmVyCiBmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5tb2RlbHMgaW1wb3J0
IHRlc3RfcmVzdWx0cwpAQCAtNDUsNyArNDYsNyBAQCBkZWYgcGF0aF9mb3JfbGF5b3V0X3Rlc3Qo
dGVzdF9uYW1lKToKICMgRklYTUU6IFRoaXMgc2hvdWxkIGJlIHVuaWZpZWQgd2l0aCBSZXN1bHRz
U3VtbWFyeSBvciBvdGhlciBOUldUIGxheW91dCB0ZXN0cyBjb2RlCiAjIGluIHRoZSBsYXlvdXRf
dGVzdHMgcGFja2FnZS4KICMgVGhpcyBkb2Vzbid0IGJlbG9uZyBpbiBjb21tb24ubmV0LCBidXQg
d2UgZG9uJ3QgaGF2ZSBhIGJldHRlciBwbGFjZSBmb3IgaXQgeWV0LgotY2xhc3MgTGF5b3V0VGVz
dFJlc3VsdHMob2JqZWN0KToKK2NsYXNzIExheW91dFRlc3RSZXN1bHRzKEFic3RyYWN0VGVzdFJl
c3VsdHMpOgogICAgIEBjbGFzc21ldGhvZAogICAgIGRlZiByZXN1bHRzX2Zyb21fc3RyaW5nKGNs
cywgc3RyaW5nKToKICAgICAgICAgaWYgbm90IHN0cmluZzoKZGlmZiAtLWdpdCBhL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvZWFybHl3YXJuaW5nc3lzdGVtdGFzay5weSBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvZWFybHl3YXJuaW5nc3lzdGVtdGFzay5weQppbmRl
eCBmYzMwOGI0M2QxZDE3MmFiNzNiMGUzYWY4MGQxYjEzOWRkM2MxMDMyLi5lY2ZhY2QwMTFiZTg4
M2I0YmIxZTVjN2Q3ZGZmZGJkY2I0NTlkZTM1IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L3Rvb2wvYm90L2Vhcmx5d2FybmluZ3N5c3RlbXRhc2sucHkKKysrIGIvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS90b29sL2JvdC9lYXJseXdhcm5pbmdzeXN0ZW10YXNrLnB5CkBAIC0xLDQg
KzEsNSBAQAogIyBDb3B5cmlnaHQgKGMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTI2LDcgKzI3LDcgQEAKICMg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKLWZyb20gd2Via2l0cHkudG9vbC5ib3QucGF0
Y2hhbmFseXNpc3Rhc2sgaW1wb3J0IFBhdGNoQW5hbHlzaXNUYXNrLCBQYXRjaEFuYWx5c2lzVGFz
a0RlbGVnYXRlLCBVbmFibGVUb0FwcGx5UGF0Y2gsIFBhdGNoSXNOb3RWYWxpZAorZnJvbSB3ZWJr
aXRweS50b29sLmJvdC5wYXRjaGFuYWx5c2lzdGFzayBpbXBvcnQgUGF0Y2hBbmFseXNpc1Rhc2ss
IFBhdGNoQW5hbHlzaXNUYXNrRGVsZWdhdGUsIFVuYWJsZVRvQXBwbHlQYXRjaCwgUGF0Y2hJc05v
dFZhbGlkLCBQYXRjaElzTm90QXBwbGljYWJsZQogCiAKIGNsYXNzIEVhcmx5V2FybmluZ1N5c3Rl
bVRhc2tEZWxlZ2F0ZShQYXRjaEFuYWx5c2lzVGFza0RlbGVnYXRlKToKQEAgLTU4LDYgKzU5LDgg
QEAgY2xhc3MgRWFybHlXYXJuaW5nU3lzdGVtVGFzayhQYXRjaEFuYWx5c2lzVGFzayk6CiAgICAg
ICAgICAgICByZXR1cm4gRmFsc2UKICAgICAgICAgaWYgbm90IHNlbGYuX2FwcGx5KCk6CiAgICAg
ICAgICAgICByYWlzZSBVbmFibGVUb0FwcGx5UGF0Y2goc2VsZi5fcGF0Y2gpCisgICAgICAgIGlm
IG5vdCBzZWxmLl9jaGVja19wYXRjaF9yZWxldmFuY2UoKToKKyAgICAgICAgICAgIHJhaXNlIFBh
dGNoSXNOb3RBcHBsaWNhYmxlKHNlbGYuX3BhdGNoKQogICAgICAgICBpZiBub3Qgc2VsZi5fYnVp
bGQoKToKICAgICAgICAgICAgIGlmIG5vdCBzZWxmLl9idWlsZF93aXRob3V0X3BhdGNoKCk6CiAg
ICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L3Rvb2wvYm90L2pzY2V3c191bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvdG9vbC9ib3QvanNjZXdzX3VuaXR0ZXN0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE2YWVmM2RhZTgwMTFm
YWI1NzVmMmM1NDMxMTAwMTRlOTdhNmIyMGEKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvYm90L2pzY2V3c191bml0dGVzdC5weQpAQCAtMCwwICsxLDIxOCBA
QAorIyBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
IworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUgorIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LAorIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitpbXBvcnQgbG9nZ2lu
ZworaW1wb3J0IHVuaXR0ZXN0CisKK2Zyb20gd2Via2l0cHkuY29tbW9uLm5ldC5qc2N0ZXN0cmVz
dWx0cyBpbXBvcnQgSlNDVGVzdFJlc3VsdHMKK2Zyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5l
eGVjdXRpdmUgaW1wb3J0IFNjcmlwdEVycm9yCitmcm9tIHdlYmtpdHB5LnRvb2wuYm90LnBhdGNo
YW5hbHlzaXN0YXNrIGltcG9ydCAqCitmcm9tIHdlYmtpdHB5LnRvb2wuY29tbWFuZHMuZWFybHl3
YXJuaW5nc3lzdGVtIGltcG9ydCBBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbQorZnJvbSB3ZWJr
aXRweS50b29sLm1vY2t0b29sIGltcG9ydCBNb2NrVG9vbAorCitfbG9nID0gbG9nZ2luZy5nZXRM
b2dnZXIoX19uYW1lX18pCisKKworY2xhc3MgTW9ja1BhdGNoQW5hbHlzaXNUYXNrKFBhdGNoQW5h
bHlzaXNUYXNrKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgZGVsZWdhdGUsIHBhdGNoLCBwYXRj
aGVzX3Bhc3NlZF9hbGxfdGVzdHMpOgorICAgICAgICBzZWxmLl9kZWxlZ2F0ZSA9IGRlbGVnYXRl
CisgICAgICAgIHNlbGYuX3BhdGNoID0gcGF0Y2gKKyAgICAgICAgc2VsZi5fc2NyaXB0X2Vycm9y
ID0gTm9uZQorICAgICAgICBzZWxmLl9yZXN1bHRzX2FyY2hpdmVfZnJvbV9wYXRjaF90ZXN0X3J1
biA9IE5vbmUKKyAgICAgICAgc2VsZi5fcmVzdWx0c19mcm9tX3BhdGNoX3Rlc3RfcnVuID0gTm9u
ZQorICAgICAgICBzZWxmLmVycm9yID0gTm9uZQorICAgICAgICBzZWxmLl9wYXRjaGVzX3Bhc3Nl
ZF9hbGxfdGVzdHMgPSBwYXRjaGVzX3Bhc3NlZF9hbGxfdGVzdHMKKyAgICAgICAgc2VsZi5fdGVz
dF9ydW5fY291bnQgPSAwCisgICAgICAgIHNlbGYuZmFpbHVyZV9zdGF0dXNfaWQgPSAwCisKKyAg
ICBkZWYgX3Rlc3Qoc2VsZik6CisgICAgICAgIHNlbGYuX3Rlc3RfcnVuX2NvdW50ICs9IDEKKwor
ICAgICAgICBpZiBzZWxmLl9wYXRjaGVzX3Bhc3NlZF9hbGxfdGVzdHMucG9wKCkgPT0gVHJ1ZToK
KyAgICAgICAgICAgIHJldHVybiBUcnVlCisgICAgICAgIHNlbGYuX3NjcmlwdF9lcnJvciA9IFNj
cmlwdEVycm9yKCdSZWdyZXNzaW9uIHRlc3QnKQorICAgICAgICByZXR1cm4gRmFsc2UKKworICAg
IGRlZiBfYnVpbGRfYW5kX3Rlc3Rfd2l0aG91dF9wYXRjaChzZWxmKToKKyAgICAgICAgc2VsZi5f
dGVzdF9ydW5fY291bnQgKz0gMQorICAgICAgICByZXR1cm4gVHJ1ZQorCisgICAgZGVmIHZhbGlk
YXRlKHNlbGYpOgorICAgICAgICByZXR1cm4gVHJ1ZQorCisgICAgZGVmIHRlc3RfcnVuX2NvdW50
KHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5fdGVzdF9ydW5fY291bnQKKworCisjIFRoaXMg
aXMgdGhlIGRlbGVnYXRlIHRvIGJlIHVzZWQgd2l0aCBNb2NrUGF0Y2hBbmFseXNpc1Rhc2ssIGFi
b3ZlLgorY2xhc3MgTW9ja0pTQ0Vhcmx5V2FybmluZ1N5c3RlbShBYnN0cmFjdEVhcmx5V2Fybmlu
Z1N5c3RlbSk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGZpcnN0X3Rlc3RfcmVzdWx0cywgc2Vj
b25kX3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKToKKyAgICAgICAgQWJzdHJhY3RF
YXJseVdhcm5pbmdTeXN0ZW0uX19pbml0X18oc2VsZikKKyAgICAgICAgc2VsZi5fZ3JvdXAgPSAn
anNjJworICAgICAgICBzZWxmLl9yZXN1bHRzX2luX29yZGVyID0gW2NsZWFuX3Rlc3RfcmVzdWx0
cywgc2Vjb25kX3Rlc3RfcmVzdWx0cywgZmlyc3RfdGVzdF9yZXN1bHRzXQorCisgICAgZGVmIHRl
c3RfcmVzdWx0cyhzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX3Jlc3VsdHNfaW5fb3JkZXIu
cG9wKCkKKworCitjbGFzcyBKU0NFYXJseVdhcm5pbmdTeXN0ZW1UZXN0KHVuaXR0ZXN0LlRlc3RD
YXNlKToKKyAgICBkZWYgX3Jlc3VsdHNfaW5kaWNhdGVfYWxsX3Bhc3NlZChzZWxmLCByZXN1bHRz
KToKKyAgICAgICAgaWYgcmVzdWx0cyA9PSBOb25lOgorICAgICAgICAgICAgcmV0dXJuIEZhbHNl
CisgICAgICAgIHJldHVybiByZXN1bHRzLmFsbF9wYXNzZWQoKQorCisgICAgZGVmIF9jcmVhdGVf
dGFzayhzZWxmLCBmaXJzdF90ZXN0X3Jlc3VsdHMsIHNlY29uZF90ZXN0X3Jlc3VsdHMsIGNsZWFu
X3Rlc3RfcmVzdWx0cyk6CisgICAgICAgIHF1ZXVlID0gTW9ja0pTQ0Vhcmx5V2FybmluZ1N5c3Rl
bShmaXJzdF90ZXN0X3Jlc3VsdHMsIHNlY29uZF90ZXN0X3Jlc3VsdHMsIGNsZWFuX3Rlc3RfcmVz
dWx0cykKKyAgICAgICAgdG9vbCA9IE1vY2tUb29sKGxvZ19leGVjdXRpdmU9VHJ1ZSkKKyAgICAg
ICAgcGF0Y2ggPSB0b29sLmJ1Z3MuZmV0Y2hfYXR0YWNobWVudCgxMDAwMCkKKyAgICAgICAgcGF0
Y2hlc19wYXNzZWRfYWxsX3Rlc3RzID0gbWFwKHNlbGYuX3Jlc3VsdHNfaW5kaWNhdGVfYWxsX3Bh
c3NlZCwgW3NlY29uZF90ZXN0X3Jlc3VsdHMsIGZpcnN0X3Rlc3RfcmVzdWx0c10pCisgICAgICAg
IHJldHVybiBNb2NrUGF0Y2hBbmFseXNpc1Rhc2socXVldWUsIHBhdGNoLCBwYXRjaGVzX3Bhc3Nl
ZF9hbGxfdGVzdHMpCisKKyAgICBkZWYgdGVzdF9zdWNjZXNzX2Nhc2Uoc2VsZik6CisgICAgICAg
IGZpcnN0X3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFtdKQorICAgICAgICBz
ZWNvbmRfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgW10pCisgICAgICAgIGNs
ZWFuX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFtdKQorICAgICAgICB0YXNr
ID0gc2VsZi5fY3JlYXRlX3Rhc2soZmlyc3RfdGVzdF9yZXN1bHRzLCBzZWNvbmRfdGVzdF9yZXN1
bHRzLCBjbGVhbl90ZXN0X3Jlc3VsdHMpCisKKyAgICAgICAgcmV0dXJuX3ZhbHVlID0gdGFzay5f
dGVzdF9wYXRjaCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGFzay50ZXN0X3J1bl9jb3Vu
dCgpLCAxKQorICAgICAgICBzZWxmLmFzc2VydFRydWUocmV0dXJuX3ZhbHVlKQorCisgICAgZGVm
IHRlc3RfdGVzdF9mYWlsdXJlKHNlbGYpOgorICAgICAgICBmaXJzdF90ZXN0X3Jlc3VsdHMgPSBK
U0NUZXN0UmVzdWx0cyhUcnVlLCBbJ0ZhaWwuanMnXSkKKyAgICAgICAgc2Vjb25kX3Rlc3RfcmVz
dWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFsnRmFpbC5qcyddKQorICAgICAgICBjbGVhbl90
ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbXSkKKyAgICAgICAgdGFzayA9IHNl
bGYuX2NyZWF0ZV90YXNrKGZpcnN0X3Rlc3RfcmVzdWx0cywgc2Vjb25kX3Rlc3RfcmVzdWx0cywg
Y2xlYW5fdGVzdF9yZXN1bHRzKQorCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoU2Ny
aXB0RXJyb3IpOgorICAgICAgICAgICAgcmV0dXJuX3ZhbHVlID0gdGFzay5fdGVzdF9wYXRjaCgp
CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGFzay50ZXN0X3J1bl9jb3VudCgpLCAzKQorCisg
ICAgZGVmIHRlc3RfZml4KHNlbGYpOgorICAgICAgICBmaXJzdF90ZXN0X3Jlc3VsdHMgPSBKU0NU
ZXN0UmVzdWx0cyhUcnVlLCBbXSkKKyAgICAgICAgc2Vjb25kX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rl
c3RSZXN1bHRzKFRydWUsIFtdKQorICAgICAgICBjbGVhbl90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0
UmVzdWx0cyhUcnVlLCBbJ0ZhaWwuanMnXSkKKyAgICAgICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90
YXNrKGZpcnN0X3Rlc3RfcmVzdWx0cywgc2Vjb25kX3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9y
ZXN1bHRzKQorCisgICAgICAgIHJldHVybl92YWx1ZSA9IHRhc2suX3Rlc3RfcGF0Y2goKQorICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKHRhc2sudGVzdF9ydW5fY291bnQoKSwgMSkKKyAgICAgICAg
c2VsZi5hc3NlcnRUcnVlKHJldHVybl92YWx1ZSkKKworICAgIGRlZiB0ZXN0X2luZWZmZWN0aXZl
X3BhdGNoKHNlbGYpOgorICAgICAgICBmaXJzdF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0
cyhGYWxzZSwgWydmYWlsdXJlMS5qcycsICdmYWlsdXJlMi5qcyddKQorICAgICAgICBzZWNvbmRf
dGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoRmFsc2UsIFsnZmFpbHVyZTEuanMnLCAnZmFp
bHVyZTIuanMnXSkKKyAgICAgICAgY2xlYW5fdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMo
RmFsc2UsIFsnZmFpbHVyZTEuanMnLCAnZmFpbHVyZTIuanMnXSkKKyAgICAgICAgdGFzayA9IHNl
bGYuX2NyZWF0ZV90YXNrKGZpcnN0X3Rlc3RfcmVzdWx0cywgc2Vjb25kX3Rlc3RfcmVzdWx0cywg
Y2xlYW5fdGVzdF9yZXN1bHRzKQorCisgICAgICAgIHJldHVybl92YWx1ZSA9IHRhc2suX3Rlc3Rf
cGF0Y2goKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRhc2sudGVzdF9ydW5fY291bnQoKSwg
MykKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHJldHVybl92YWx1ZSkKKworICAgIGRlZiB0ZXN0
X3BhcnRpYWxseV9lZmZlY3RpdmVfcGF0Y2goc2VsZik6CisgICAgICAgIGZpcnN0X3Rlc3RfcmVz
dWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFsnZmFpbHVyZTIuanMnXSkKKyAgICAgICAgc2Vj
b25kX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFsnZmFpbHVyZTIuanMnXSkK
KyAgICAgICAgY2xlYW5fdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoRmFsc2UsIFsnZmFp
bHVyZTEuanMnLCAnZmFpbHVyZTIuanMnXSkKKyAgICAgICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90
YXNrKGZpcnN0X3Rlc3RfcmVzdWx0cywgc2Vjb25kX3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9y
ZXN1bHRzKQorCisgICAgICAgIHJldHVybl92YWx1ZSA9IHRhc2suX3Rlc3RfcGF0Y2goKQorICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKHRhc2sudGVzdF9ydW5fY291bnQoKSwgMykKKyAgICAgICAg
c2VsZi5hc3NlcnRUcnVlKHJldHVybl92YWx1ZSkKKworICAgIGRlZiB0ZXN0X2RpZmZlcmVudF90
ZXN0X2ZhaWx1cmVzX2luX3BhdGNoX2FuZF90cmVlKHNlbGYpOgorICAgICAgICBmaXJzdF90ZXN0
X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhGYWxzZSwgW10pCisgICAgICAgIHNlY29uZF90ZXN0
X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhGYWxzZSwgW10pCisgICAgICAgIGNsZWFuX3Rlc3Rf
cmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFsnZmFpbHVyZTEuanMnLCAnZmFpbHVyZTIu
anMnXSkKKyAgICAgICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90YXNrKGZpcnN0X3Rlc3RfcmVzdWx0
cywgc2Vjb25kX3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKQorCisgICAgICAgIHdp
dGggc2VsZi5hc3NlcnRSYWlzZXMoU2NyaXB0RXJyb3IpOgorICAgICAgICAgICAgcmV0dXJuX3Zh
bHVlID0gdGFzay5fdGVzdF9wYXRjaCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGFzay50
ZXN0X3J1bl9jb3VudCgpLCAzKQorCisgICAgZGVmIHRlc3RfZmlyc3RfcmVzdWx0c19jb3VsZF9u
b3RfYmVfcmVhZChzZWxmKToKKyAgICAgICAgZmlyc3RfdGVzdF9yZXN1bHRzID0gTm9uZQorICAg
ICAgICBzZWNvbmRfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgW10pCisgICAg
ICAgIGNsZWFuX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFtdKQorICAgICAg
ICB0YXNrID0gc2VsZi5fY3JlYXRlX3Rhc2soZmlyc3RfdGVzdF9yZXN1bHRzLCBzZWNvbmRfdGVz
dF9yZXN1bHRzLCBjbGVhbl90ZXN0X3Jlc3VsdHMpCisKKyAgICAgICAgcmV0dXJuX3ZhbHVlID0g
dGFzay5fdGVzdF9wYXRjaCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGFzay50ZXN0X3J1
bl9jb3VudCgpLCAxKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKHJldHVybl92YWx1ZSkKKwor
ICAgIGRlZiB0ZXN0X3NlY29uZF9yZXN1bHRzX2NvdWxkX25vdF9iZV9yZWFkKHNlbGYpOgorICAg
ICAgICBmaXJzdF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhGYWxzZSwgWydmYWlsdXJl
MS5qcycsICdmYWlsdXJlMi5qcyddKQorICAgICAgICBzZWNvbmRfdGVzdF9yZXN1bHRzID0gTm9u
ZQorICAgICAgICBjbGVhbl90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbXSkK
KyAgICAgICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90YXNrKGZpcnN0X3Rlc3RfcmVzdWx0cywgc2Vj
b25kX3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKQorCisgICAgICAgIHJldHVybl92
YWx1ZSA9IHRhc2suX3Rlc3RfcGF0Y2goKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRhc2su
dGVzdF9ydW5fY291bnQoKSwgMikKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShyZXR1cm5fdmFs
dWUpCisKKyAgICBkZWYgdGVzdF9jbGVhbl9yZXN1bHRzX2NvdWxkX25vdF9iZV9yZWFkKHNlbGYp
OgorICAgICAgICBmaXJzdF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbJ2Zh
aWx1cmUyLmpzJ10pCisgICAgICAgIHNlY29uZF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0
cyhUcnVlLCBbJ2ZhaWx1cmUyLmpzJ10pCisgICAgICAgIGNsZWFuX3Rlc3RfcmVzdWx0cyA9IE5v
bmUKKyAgICAgICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90YXNrKGZpcnN0X3Rlc3RfcmVzdWx0cywg
c2Vjb25kX3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKQorCisgICAgICAgIHJldHVy
bl92YWx1ZSA9IHRhc2suX3Rlc3RfcGF0Y2goKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRh
c2sudGVzdF9ydW5fY291bnQoKSwgMykKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShyZXR1cm5f
dmFsdWUpCisKKyAgICBkZWYgdGVzdF9mbGFreV9yZXN1bHRzX29uX2NsZWFuX3RyZWVfcGFzcyhz
ZWxmKToKKyAgICAgICAgZmlyc3RfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwg
WydmYWlsdXJlMi5qcyddKQorICAgICAgICBzZWNvbmRfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJl
c3VsdHMoVHJ1ZSwgW10pCisgICAgICAgIGNsZWFuX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1
bHRzKFRydWUsIFtdKQorICAgICAgICB0YXNrID0gc2VsZi5fY3JlYXRlX3Rhc2soZmlyc3RfdGVz
dF9yZXN1bHRzLCBzZWNvbmRfdGVzdF9yZXN1bHRzLCBjbGVhbl90ZXN0X3Jlc3VsdHMpCisKKyAg
ICAgICAgcmV0dXJuX3ZhbHVlID0gdGFzay5fdGVzdF9wYXRjaCgpCisgICAgICAgIHNlbGYuYXNz
ZXJ0VHJ1ZShyZXR1cm5fdmFsdWUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGFzay50ZXN0
X3J1bl9jb3VudCgpLCAyKQorCisgICAgZGVmIHRlc3RfZmxha3lfcmVzdWx0c19vbl9jbGVhbl90
cmVlX3Bhc3NfdjIoc2VsZik6CisgICAgICAgIGZpcnN0X3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RS
ZXN1bHRzKFRydWUsIFtdKQorICAgICAgICBzZWNvbmRfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJl
c3VsdHMoVHJ1ZSwgWydmYWlsdXJlMi5qcyddKQorICAgICAgICBjbGVhbl90ZXN0X3Jlc3VsdHMg
PSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbXSkKKyAgICAgICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90
YXNrKGZpcnN0X3Rlc3RfcmVzdWx0cywgc2Vjb25kX3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9y
ZXN1bHRzKQorCisgICAgICAgIHJldHVybl92YWx1ZSA9IHRhc2suX3Rlc3RfcGF0Y2goKQorICAg
ICAgICBzZWxmLmFzc2VydFRydWUocmV0dXJuX3ZhbHVlKQorICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKHRhc2sudGVzdF9ydW5fY291bnQoKSwgMSkKKworICAgIGRlZiB0ZXN0X2ZsYWt5X3Jlc3Vs
dHNfb25fY2xlYW5fdHJlZV9mYWlsdXJlKHNlbGYpOgorICAgICAgICBmaXJzdF90ZXN0X3Jlc3Vs
dHMgPSBKU0NUZXN0UmVzdWx0cyhGYWxzZSwgWydmYWlsdXJlMS5qcycsICdmYWlsdXJlMi5qcydd
KQorICAgICAgICBzZWNvbmRfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgWydm
YWlsdXJlMi5qcyddKQorICAgICAgICBjbGVhbl90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0
cyhUcnVlLCBbXSkKKyAgICAgICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90YXNrKGZpcnN0X3Rlc3Rf
cmVzdWx0cywgc2Vjb25kX3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKQorCisgICAg
ICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoU2NyaXB0RXJyb3IpOgorICAgICAgICAgICAgdGFz
ay5fdGVzdF9wYXRjaCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGFzay50ZXN0X3J1bl9j
b3VudCgpLCAzKQorCisgICAgZGVmIHRlc3RfZmxha3lfcmVzdWx0c19vbl9yZWRfdHJlZV9wYXNz
KHNlbGYpOgorICAgICAgICBmaXJzdF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVl
LCBbJ2ZhaWx1cmUxLmpzJ10pCisgICAgICAgIHNlY29uZF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0
UmVzdWx0cyhUcnVlLCBbJ2ZhaWx1cmUxLmpzJywgJ2ZhaWx1cmUyLmpzJ10pCisgICAgICAgIGNs
ZWFuX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFsnZmFpbHVyZTEuanMnXSkK
KyAgICAgICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90YXNrKGZpcnN0X3Rlc3RfcmVzdWx0cywgc2Vj
b25kX3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKQorCisgICAgICAgIHJldHVybl92
YWx1ZSA9IHRhc2suX3Rlc3RfcGF0Y2goKQorICAgICAgICBzZWxmLmFzc2VydFRydWUocmV0dXJu
X3ZhbHVlKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRhc2sudGVzdF9ydW5fY291bnQoKSwg
MykKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvanNjdGVzdHJl
c3VsdHNyZWFkZXIucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2pzY3Rlc3Ry
ZXN1bHRzcmVhZGVyLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM0MWMxNmU3MGZiNDM5YTk1ZjlhZDNhZDgxZGVh
ZTc4ZTVlYzVlZTMKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rv
b2wvYm90L2pzY3Rlc3RyZXN1bHRzcmVhZGVyLnB5CkBAIC0wLDAgKzEsNDcgQEAKKyMgQ29weXJp
Z2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMg
Mi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
CisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IKKyMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyMgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworaW1wb3J0IGxvZ2dpbmcKKworZnJvbSB3
ZWJraXRweS5jb21tb24ubmV0LmpzY3Rlc3RyZXN1bHRzIGltcG9ydCBKU0NUZXN0UmVzdWx0cwor
CitfbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18pCisKKworY2xhc3MgSlNDVGVzdFJl
c3VsdHNSZWFkZXIob2JqZWN0KToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgaG9zdCwgcmVzdWx0
c19kaXJlY3RvcnkpOgorICAgICAgICBzZWxmLl9ob3N0ID0gaG9zdAorICAgICAgICBzZWxmLl9y
ZXN1bHRzX2RpcmVjdG9yeSA9IHJlc3VsdHNfZGlyZWN0b3J5CisKKyAgICBkZWYgX3JlYWRfZmls
ZV9jb250ZW50cyhzZWxmLCBwYXRoKToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcmV0dXJu
IHNlbGYuX2hvc3QuZmlsZXN5c3RlbS5yZWFkX3RleHRfZmlsZShwYXRoKQorICAgICAgICBleGNl
cHQgKElPRXJyb3IsIEtleUVycm9yKTogICMgRmlsZSBkb2VzIG5vdCBleGlzdCBvciBjYW4ndCBi
ZSByZWFkLgorICAgICAgICAgICAgcmV0dXJuIE5vbmUKKworICAgIGRlZiBfY3JlYXRlX2pzY190
ZXN0X3Jlc3VsdHMoc2VsZik6CisgICAgICAgIHJlc3VsdHNfcGF0aCA9IHNlbGYuX2hvc3QuZmls
ZXN5c3RlbS5qb2luKHNlbGYuX3Jlc3VsdHNfZGlyZWN0b3J5LCAnanNjX3Rlc3RfcmVzdWx0cy5q
c29uJykKKyAgICAgICAgY29udGVudHMgPSBzZWxmLl9yZWFkX2ZpbGVfY29udGVudHMocmVzdWx0
c19wYXRoKQorICAgICAgICByZXR1cm4gSlNDVGVzdFJlc3VsdHMucmVzdWx0c19mcm9tX3N0cmlu
Zyhjb250ZW50cykKKworICAgIGRlZiByZXN1bHRzKHNlbGYpOgorICAgICAgICByZXR1cm4gc2Vs
Zi5fY3JlYXRlX2pzY190ZXN0X3Jlc3VsdHMoKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS90b29sL2JvdC9wYXRjaGFuYWx5c2lzdGFzay5weSBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvdG9vbC9ib3QvcGF0Y2hhbmFseXNpc3Rhc2sucHkKaW5kZXggNzUyMzE2NDE2YzVmOWQw
YTNlNTllZjZkMDVlMzE3ODVmOTE3NDYyOS4uZGQyZjFjNTliNzY3M2UzYjk0N2I2ODlmNTZkN2Iw
YzEwYWRhZDBhNyAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9w
YXRjaGFuYWx5c2lzdGFzay5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90
L3BhdGNoYW5hbHlzaXN0YXNrLnB5CkBAIC0xLDQgKzEsNSBAQAogIyBDb3B5cmlnaHQgKGMpIDIw
MTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDE3
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucyBhcmUKQEAgLTI4LDYgKzI5LDcgQEAKIAogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVt
LmV4ZWN1dGl2ZSBpbXBvcnQgU2NyaXB0RXJyb3IKIGZyb20gd2Via2l0cHkuY29tbW9uLm5ldC5s
YXlvdXR0ZXN0cmVzdWx0cyBpbXBvcnQgTGF5b3V0VGVzdFJlc3VsdHMKK2Zyb20gd2Via2l0cHku
Y29tbW9uLm5ldC5qc2N0ZXN0cmVzdWx0cyBpbXBvcnQgSlNDVGVzdFJlc3VsdHMKIAogCiBjbGFz
cyBVbmFibGVUb0FwcGx5UGF0Y2goRXhjZXB0aW9uKToKQEAgLTQzLDYgKzQ1LDExIEBAIGNsYXNz
IFBhdGNoSXNOb3RWYWxpZChFeGNlcHRpb24pOgogICAgICAgICBzZWxmLmZhaWx1cmVfbWVzc2Fn
ZSA9IGZhaWx1cmVfbWVzc2FnZQogCiAKK2NsYXNzIFBhdGNoSXNOb3RBcHBsaWNhYmxlKEV4Y2Vw
dGlvbik6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBhdGNoKToKKyAgICAgICAgRXhjZXB0aW9u
Ll9faW5pdF9fKHNlbGYpCisgICAgICAgIHNlbGYucGF0Y2ggPSBwYXRjaAorCiBjbGFzcyBQYXRj
aEFuYWx5c2lzVGFza0RlbGVnYXRlKG9iamVjdCk6CiAgICAgZGVmIHBhcmVudF9jb21tYW5kKHNl
bGYpOgogICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKCJzdWJjbGFzc2VzIG11c3Qg
aW1wbGVtZW50IikKQEAgLTEyMiwyOCArMTI5LDQ0IEBAIGNsYXNzIFBhdGNoQW5hbHlzaXNUYXNr
KG9iamVjdCk6CiAgICAgICAgICJBcHBsaWVkIHBhdGNoIiwKICAgICAgICAgIlBhdGNoIGRvZXMg
bm90IGFwcGx5IikKIAorICAgIGRlZiBfY2hlY2tfcGF0Y2hfcmVsZXZhbmNlKHNlbGYpOgorICAg
ICAgICBhcmdzID0gWworICAgICAgICAgICAgImNoZWNrLXBhdGNoLXJlbGV2YW5jZSIsCisgICAg
ICAgIF0KKworICAgICAgICBpZiBoYXNhdHRyKHNlbGYuX2RlbGVnYXRlLCAnZ3JvdXAnKToKKyAg
ICAgICAgICAgIGFyZ3MuYXBwZW5kKCItLWdyb3VwPSVzIiAlIHNlbGYuX2RlbGVnYXRlLmdyb3Vw
KCkpCisKKyAgICAgICAgcmV0dXJuIHNlbGYuX3J1bl9jb21tYW5kKGFyZ3MsICJDaGVja2VkIHJl
bGV2YW5jZSBvZiBwYXRjaCIsICJQYXRjaCB3YXMgbm90IHJlbGV2YW50IikKKwogICAgIGRlZiBf
YnVpbGQoc2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmLl9ydW5fY29tbWFuZChbCisgICAgICAg
IGFyZ3MgPSBbCiAgICAgICAgICAgICAiYnVpbGQiLAogICAgICAgICAgICAgIi0tbm8tY2xlYW4i
LAogICAgICAgICAgICAgIi0tbm8tdXBkYXRlIiwKICAgICAgICAgICAgICItLWJ1aWxkLXN0eWxl
PSVzIiAlIHNlbGYuX2RlbGVnYXRlLmJ1aWxkX3N0eWxlKCksCi0gICAgICAgIF0sCi0gICAgICAg
ICJCdWlsdCBwYXRjaCIsCi0gICAgICAgICJQYXRjaCBkb2VzIG5vdCBidWlsZCIpCisgICAgICAg
IF0KKworICAgICAgICBpZiBoYXNhdHRyKHNlbGYuX2RlbGVnYXRlLCAnZ3JvdXAnKToKKyAgICAg
ICAgICAgIGFyZ3MuYXBwZW5kKCItLWdyb3VwPSVzIiAlIHNlbGYuX2RlbGVnYXRlLmdyb3VwKCkp
CisKKyAgICAgICAgcmV0dXJuIHNlbGYuX3J1bl9jb21tYW5kKGFyZ3MsICJCdWlsdCBwYXRjaCIs
ICJQYXRjaCBkb2VzIG5vdCBidWlsZCIpCiAKICAgICBkZWYgX2J1aWxkX3dpdGhvdXRfcGF0Y2go
c2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmLl9ydW5fY29tbWFuZChbCisgICAgICAgIGFyZ3Mg
PSBbCiAgICAgICAgICAgICAiYnVpbGQiLAogICAgICAgICAgICAgIi0tZm9yY2UtY2xlYW4iLAog
ICAgICAgICAgICAgIi0tbm8tdXBkYXRlIiwKICAgICAgICAgICAgICItLWJ1aWxkLXN0eWxlPSVz
IiAlIHNlbGYuX2RlbGVnYXRlLmJ1aWxkX3N0eWxlKCksCi0gICAgICAgIF0sCi0gICAgICAgICJB
YmxlIHRvIGJ1aWxkIHdpdGhvdXQgcGF0Y2giLAotICAgICAgICAiVW5hYmxlIHRvIGJ1aWxkIHdp
dGhvdXQgcGF0Y2giKQorICAgICAgICBdCisKKyAgICAgICAgaWYgaGFzYXR0cihzZWxmLl9kZWxl
Z2F0ZSwgJ2dyb3VwJyk6CisgICAgICAgICAgICBhcmdzLmFwcGVuZCgiLS1ncm91cD0lcyIgJSBz
ZWxmLl9kZWxlZ2F0ZS5ncm91cCgpKQorCisgICAgICAgIHJldHVybiBzZWxmLl9ydW5fY29tbWFu
ZChhcmdzLCAiQWJsZSB0byBidWlsZCB3aXRob3V0IHBhdGNoIiwgIlVuYWJsZSB0byBidWlsZCB3
aXRob3V0IHBhdGNoIikKIAogICAgIGRlZiBfdGVzdChzZWxmKToKLSAgICAgICAgcmV0dXJuIHNl
bGYuX3J1bl9jb21tYW5kKFsKKyAgICAgICAgYXJncyA9IFsKICAgICAgICAgICAgICJidWlsZC1h
bmQtdGVzdCIsCiAgICAgICAgICAgICAiLS1uby1jbGVhbiIsCiAgICAgICAgICAgICAiLS1uby11
cGRhdGUiLApAQCAtMTUxLDEyICsxNzQsMTUgQEAgY2xhc3MgUGF0Y2hBbmFseXNpc1Rhc2sob2Jq
ZWN0KToKICAgICAgICAgICAgICItLXRlc3QiLAogICAgICAgICAgICAgIi0tbm9uLWludGVyYWN0
aXZlIiwKICAgICAgICAgICAgICItLWJ1aWxkLXN0eWxlPSVzIiAlIHNlbGYuX2RlbGVnYXRlLmJ1
aWxkX3N0eWxlKCksCi0gICAgICAgIF0sCi0gICAgICAgICJQYXNzZWQgdGVzdHMiLAotICAgICAg
ICAiUGF0Y2ggZG9lcyBub3QgcGFzcyB0ZXN0cyIpCisgICAgICAgIF0KKworICAgICAgICBpZiBo
YXNhdHRyKHNlbGYuX2RlbGVnYXRlLCAnZ3JvdXAnKToKKyAgICAgICAgICAgIGFyZ3MuYXBwZW5k
KCItLWdyb3VwPSVzIiAlIHNlbGYuX2RlbGVnYXRlLmdyb3VwKCkpCisKKyAgICAgICAgcmV0dXJu
IHNlbGYuX3J1bl9jb21tYW5kKGFyZ3MsICJQYXNzZWQgdGVzdHMiLCAiUGF0Y2ggZG9lcyBub3Qg
cGFzcyB0ZXN0cyIpCiAKICAgICBkZWYgX2J1aWxkX2FuZF90ZXN0X3dpdGhvdXRfcGF0Y2goc2Vs
Zik6Ci0gICAgICAgIHJldHVybiBzZWxmLl9ydW5fY29tbWFuZChbCisgICAgICAgIGFyZ3MgPSBb
CiAgICAgICAgICAgICAiYnVpbGQtYW5kLXRlc3QiLAogICAgICAgICAgICAgIi0tZm9yY2UtY2xl
YW4iLAogICAgICAgICAgICAgIi0tbm8tdXBkYXRlIiwKQEAgLTE2NCw5ICsxOTAsMTIgQEAgY2xh
c3MgUGF0Y2hBbmFseXNpc1Rhc2sob2JqZWN0KToKICAgICAgICAgICAgICItLXRlc3QiLAogICAg
ICAgICAgICAgIi0tbm9uLWludGVyYWN0aXZlIiwKICAgICAgICAgICAgICItLWJ1aWxkLXN0eWxl
PSVzIiAlIHNlbGYuX2RlbGVnYXRlLmJ1aWxkX3N0eWxlKCksCi0gICAgICAgIF0sCi0gICAgICAg
ICJBYmxlIHRvIHBhc3MgdGVzdHMgd2l0aG91dCBwYXRjaCIsCi0gICAgICAgICJVbmFibGUgdG8g
cGFzcyB0ZXN0cyB3aXRob3V0IHBhdGNoICh0cmVlIGlzIHJlZD8pIikKKyAgICAgICAgXQorCisg
ICAgICAgIGlmIGhhc2F0dHIoc2VsZi5fZGVsZWdhdGUsICdncm91cCcpOgorICAgICAgICAgICAg
YXJncy5hcHBlbmQoIi0tZ3JvdXA9JXMiICUgc2VsZi5fZGVsZWdhdGUuZ3JvdXAoKSkKKworICAg
ICAgICByZXR1cm4gc2VsZi5fcnVuX2NvbW1hbmQoYXJncywgIkFibGUgdG8gcGFzcyB0ZXN0cyB3
aXRob3V0IHBhdGNoIiwgIlVuYWJsZSB0byBwYXNzIHRlc3RzIHdpdGhvdXQgcGF0Y2ggKHRyZWUg
aXMgcmVkPykiKQogCiAgICAgZGVmIF9sYW5kKHNlbGYpOgogICAgICAgICAjIFVuY2xlYXIgaWYg
dGhpcyBzaG91bGQgcGFzcyAtLXF1aWV0IG9yIG5vdC4gIElmIC0tcGFyZW50LWNvbW1hbmQgYWx3
YXlzIGRvZXMgdGhlIHJlcG9ydGluZywgdGhlbiBpdCBzaG91bGQuCkBAIC0yMDYsMTAgKzIzNSwz
NSBAQCBjbGFzcyBQYXRjaEFuYWx5c2lzVGFzayhvYmplY3QpOgogICAgICAgICAjIGFsc28gcHJl
c2VudCB3aXRob3V0IHRoZSBwYXRjaCwgc28gd2UgZG9uJ3QgbmVlZCB0byBkZWZlci4KICAgICAg
ICAgcmV0dXJuIEZhbHNlCiAKLSAgICBkZWYgX3Rlc3RfcGF0Y2goc2VsZik6CisgICAgIyBGSVhN
RTogQWJzdHJhY3Qgb3V0IGNvbW1vbiBwYXJ0cyBvZiB0aGUgcmV0cnkgbG9naWMuCisgICAgZGVm
IF9yZXRyeV9qc2NfdGVzdHMoc2VsZik6CisgICAgICAgIGZpcnN0X3Jlc3VsdHMgPSBzZWxmLl9k
ZWxlZ2F0ZS50ZXN0X3Jlc3VsdHMoKQorICAgICAgICBmaXJzdF9zY3JpcHRfZXJyb3IgPSBzZWxm
Ll9zY3JpcHRfZXJyb3IKKyAgICAgICAgZmlyc3RfZmFpbHVyZV9zdGF0dXNfaWQgPSBzZWxmLmZh
aWx1cmVfc3RhdHVzX2lkCisgICAgICAgIGlmIGZpcnN0X3Jlc3VsdHMgaXMgTm9uZToKKyAgICAg
ICAgICAgIHJldHVybiBGYWxzZQorCiAgICAgICAgIGlmIHNlbGYuX3Rlc3QoKToKICAgICAgICAg
ICAgIHJldHVybiBUcnVlCisgICAgICAgIHNlY29uZF9yZXN1bHRzID0gc2VsZi5fZGVsZWdhdGUu
dGVzdF9yZXN1bHRzKCkKKyAgICAgICAgc2Vjb25kX3NjcmlwdF9lcnJvciA9IHNlbGYuX3Njcmlw
dF9lcnJvcgorICAgICAgICBpZiBzZWNvbmRfcmVzdWx0cyBpcyBOb25lOgorICAgICAgICAgICAg
cmV0dXJuIEZhbHNlCisKKyAgICAgICAgY29uc2lzdGVudF9yZXN1bHRzID0gSlNDVGVzdFJlc3Vs
dHMuaW50ZXJzZWN0aW9uKGZpcnN0X3Jlc3VsdHMsIHNlY29uZF9yZXN1bHRzKQorCisgICAgICAg
IHNlbGYuX2J1aWxkX2FuZF90ZXN0X3dpdGhvdXRfcGF0Y2goKQorICAgICAgICBjbGVhbl90cmVl
X3Jlc3VsdHMgPSBzZWxmLl9kZWxlZ2F0ZS50ZXN0X3Jlc3VsdHMoKQorICAgICAgICBpZiBjbGVh
bl90cmVlX3Jlc3VsdHMgaXMgTm9uZToKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQorCisgICAg
ICAgIGlmIGNvbnNpc3RlbnRfcmVzdWx0cy5pc19zdWJzZXQoY2xlYW5fdHJlZV9yZXN1bHRzKToK
KyAgICAgICAgICAgIHJldHVybiBUcnVlCisKKyAgICAgICAgc2VsZi5mYWlsdXJlX3N0YXR1c19p
ZCA9IGZpcnN0X2ZhaWx1cmVfc3RhdHVzX2lkCisgICAgICAgIHJldHVybiBzZWxmLnJlcG9ydF9m
YWlsdXJlKE5vbmUsIGNvbnNpc3RlbnRfcmVzdWx0cywgZmlyc3Rfc2NyaXB0X2Vycm9yKQogCisg
ICAgZGVmIF9yZXRyeV9sYXlvdXRfdGVzdHMoc2VsZik6CiAgICAgICAgICMgTm90ZTogYXJjaGl2
ZV9sYXN0X3Rlc3RfcmVzdWx0cyBkZWxldGVzIHRoZSByZXN1bHRzIGRpcmVjdG9yeSwgbWFraW5n
IHRoZXNlIGNhbGxzIG9yZGVyLXNlbnNpdHZlLgogICAgICAgICAjIFdlIGNvdWxkIHJlbW92ZSB0
aGlzIGRlcGVuZGVuY3kgYnkgYnVpbGRpbmcgdGhlIHRlc3RfcmVzdWx0cyBmcm9tIHRoZSBhcmNo
aXZlLgogICAgICAgICBmaXJzdF9yZXN1bHRzID0gc2VsZi5fZGVsZWdhdGUudGVzdF9yZXN1bHRz
KCkKQEAgLTI0MCwxMSArMjk0LDEzIEBAIGNsYXNzIFBhdGNoQW5hbHlzaXNUYXNrKG9iamVjdCk6
CiAgICAgICAgICAgICByZXR1cm4gc2VsZi5yZXBvcnRfZmFpbHVyZShmaXJzdF9yZXN1bHRzX2Fy
Y2hpdmUsIGZpcnN0X3Jlc3VsdHMsIGZpcnN0X3NjcmlwdF9lcnJvcikKIAogICAgICAgICBpZiBz
ZWNvbmRfcmVzdWx0cy5kaWRfZXhjZWVkX3Rlc3RfZmFpbHVyZV9saW1pdCgpOgotICAgICAgICAg
ICAgc2VsZi5fc2hvdWxkX2RlZmVyX3BhdGNoX29yX3Rocm93KGZpcnN0X3Jlc3VsdHMuZmFpbGlu
Z190ZXN0X3Jlc3VsdHMoKSwgZmlyc3RfcmVzdWx0c19hcmNoaXZlLCBmaXJzdF9zY3JpcHRfZXJy
b3IsIGZpcnN0X2ZhaWx1cmVfc3RhdHVzX2lkKQorICAgICAgICAgICAgc2VsZi5fc2hvdWxkX2Rl
ZmVyX3BhdGNoX29yX3Rocm93KGZpcnN0X3Jlc3VsdHMuZmFpbGluZ190ZXN0X3Jlc3VsdHMoKSwg
Zmlyc3RfcmVzdWx0c19hcmNoaXZlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGZpcnN0X3NjcmlwdF9lcnJvciwgZmlyc3RfZmFpbHVyZV9zdGF0dXNfaWQp
CiAgICAgICAgICAgICByZXR1cm4gRmFsc2UKIAogICAgICAgICBpZiBmaXJzdF9yZXN1bHRzLmRp
ZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xpbWl0KCk6Ci0gICAgICAgICAgICBzZWxmLl9zaG91bGRf
ZGVmZXJfcGF0Y2hfb3JfdGhyb3coc2Vjb25kX3Jlc3VsdHMuZmFpbGluZ190ZXN0X3Jlc3VsdHMo
KSwgc2Vjb25kX3Jlc3VsdHNfYXJjaGl2ZSwgc2Vjb25kX3NjcmlwdF9lcnJvciwgc2Vjb25kX2Zh
aWx1cmVfc3RhdHVzX2lkKQorICAgICAgICAgICAgc2VsZi5fc2hvdWxkX2RlZmVyX3BhdGNoX29y
X3Rocm93KHNlY29uZF9yZXN1bHRzLmZhaWxpbmdfdGVzdF9yZXN1bHRzKCksIHNlY29uZF9yZXN1
bHRzX2FyY2hpdmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgc2Vjb25kX3NjcmlwdF9lcnJvciwgc2Vjb25kX2ZhaWx1cmVfc3RhdHVzX2lkKQogICAgICAg
ICAgICAgcmV0dXJuIEZhbHNlCiAKICAgICAgICAgaWYgc2VsZi5fcmVzdWx0c19mYWlsZWRfZGlm
ZmVyZW50X3Rlc3RzKGZpcnN0X3Jlc3VsdHMsIHNlY29uZF9yZXN1bHRzKToKQEAgLTI1OSwxNCAr
MzE1LDE2IEBAIGNsYXNzIFBhdGNoQW5hbHlzaXNUYXNrKG9iamVjdCk6CiAKICAgICAgICAgICAg
IHRlc3RzX3RoYXRfY29uc2lzdGVudGx5X2ZhaWxlZCA9IGZpcnN0X2ZhaWxpbmdfcmVzdWx0c19z
ZXQuaW50ZXJzZWN0aW9uKHNlY29uZF9mYWlsaW5nX3Jlc3VsdHNfc2V0KQogICAgICAgICAgICAg
aWYgdGVzdHNfdGhhdF9jb25zaXN0ZW50bHlfZmFpbGVkOgotICAgICAgICAgICAgICAgIGlmIHNl
bGYuX3Nob3VsZF9kZWZlcl9wYXRjaF9vcl90aHJvdyh0ZXN0c190aGF0X2NvbnNpc3RlbnRseV9m
YWlsZWQsIGZpcnN0X3Jlc3VsdHNfYXJjaGl2ZSwgZmlyc3Rfc2NyaXB0X2Vycm9yLCBmaXJzdF9m
YWlsdXJlX3N0YXR1c19pZCk6CisgICAgICAgICAgICAgICAgaWYgc2VsZi5fc2hvdWxkX2RlZmVy
X3BhdGNoX29yX3Rocm93KHRlc3RzX3RoYXRfY29uc2lzdGVudGx5X2ZhaWxlZCwgZmlyc3RfcmVz
dWx0c19hcmNoaXZlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBmaXJzdF9zY3JpcHRfZXJyb3IsIGZpcnN0X2ZhaWx1cmVfc3RhdHVzX2lkKToK
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlICAjIERlZmVyIHBhdGNoCiAKICAgICAg
ICAgICAgICMgQXQgdGhpcyBwb2ludCB3ZSBrbm93IHRoYXQgYXQgbGVhc3Qgb25lIHRlc3QgZmxh
a2VkLCBidXQgbm8gY29uc2lzdGVudCBmYWlsdXJlcwogICAgICAgICAgICAgIyB3ZXJlIGludHJv
ZHVjZWQuIFRoaXMgaXMgYSBiaXQgb2YgYSBncmV5LXpvbmUuCiAgICAgICAgICAgICByZXR1cm4g
RmFsc2UgICMgRGVmZXIgcGF0Y2gKIAotICAgICAgICBpZiBzZWxmLl9zaG91bGRfZGVmZXJfcGF0
Y2hfb3JfdGhyb3coZmlyc3RfcmVzdWx0cy5mYWlsaW5nX3Rlc3RfcmVzdWx0cygpLCBmaXJzdF9y
ZXN1bHRzX2FyY2hpdmUsIGZpcnN0X3NjcmlwdF9lcnJvciwgZmlyc3RfZmFpbHVyZV9zdGF0dXNf
aWQpOgorICAgICAgICBpZiBzZWxmLl9zaG91bGRfZGVmZXJfcGF0Y2hfb3JfdGhyb3coZmlyc3Rf
cmVzdWx0cy5mYWlsaW5nX3Rlc3RfcmVzdWx0cygpLCBmaXJzdF9yZXN1bHRzX2FyY2hpdmUsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJzdF9zY3JpcHRf
ZXJyb3IsIGZpcnN0X2ZhaWx1cmVfc3RhdHVzX2lkKToKICAgICAgICAgICAgIHJldHVybiBGYWxz
ZSAgIyBEZWZlciBwYXRjaAogCiAgICAgICAgICMgQXQgdGhpcyBwb2ludCwgd2Uga25vdyB0aGF0
IHRoZSBmaXJzdCBhbmQgc2Vjb25kIHJ1bnMgaGFkIHRoZSBleGFjdCBzYW1lIGZhaWx1cmVzLApA
QCAtMjc0LDYgKzMzMiwxNSBAQCBjbGFzcyBQYXRjaEFuYWx5c2lzVGFzayhvYmplY3QpOgogICAg
ICAgICAjIHRoYXQgdGhlIHBhdGNoIGlzIGdvb2QuCiAgICAgICAgIHJldHVybiBUcnVlCiAKKyAg
ICBkZWYgX3Rlc3RfcGF0Y2goc2VsZik6CisgICAgICAgIGlmIHNlbGYuX3Rlc3QoKToKKyAgICAg
ICAgICAgIHJldHVybiBUcnVlCisKKyAgICAgICAgaWYgaGFzYXR0cihzZWxmLl9kZWxlZ2F0ZSwg
J2dyb3VwJykgYW5kIHNlbGYuX2RlbGVnYXRlLmdyb3VwKCkgPT0gImpzYyI6CisgICAgICAgICAg
ICByZXR1cm4gc2VsZi5fcmV0cnlfanNjX3Rlc3RzKCkKKyAgICAgICAgZWxzZToKKyAgICAgICAg
ICAgIHJldHVybiBzZWxmLl9yZXRyeV9sYXlvdXRfdGVzdHMoKQorCiAgICAgZGVmIHJlc3VsdHNf
YXJjaGl2ZV9mcm9tX3BhdGNoX3Rlc3RfcnVuKHNlbGYsIHBhdGNoKToKICAgICAgICAgYXNzZXJ0
KHNlbGYuX3BhdGNoLmlkKCkgPT0gcGF0Y2guaWQoKSkgICMgUGF0Y2hBbmFseXNpc1Rhc2sgaXMg
bm90IGN1cnJlbnRseSByZS11c2VhYmxlLgogICAgICAgICByZXR1cm4gc2VsZi5fcmVzdWx0c19h
cmNoaXZlX2Zyb21fcGF0Y2hfdGVzdF9ydW4KZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvdG9vbC9jb21tYW5kcy9kb3dubG9hZC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
dG9vbC9jb21tYW5kcy9kb3dubG9hZC5weQppbmRleCBlNTE2OWFhYzg1ZjMxODZlODRiZTlkNTAy
NDU5MmJkN2ZlNmQ1ZGQ1Li4xNGI1NWJjM2Y3YzljMTBiNWRmNjBmYzFhZjg3ZDdjYTM5ZTNiYzk0
IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZG93bmxv
YWQucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Rvd25sb2Fk
LnB5CkBAIC0xLDUgKzEsNSBAQAogIyBDb3B5cmlnaHQgKGMpIDIwMDksIDIwMTEgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMgQ29weXJpZ2h0IChjKSAyMDA5IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChjKSAyMDA5LCAyMDE3IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUK
QEAgLTg3LDYgKzg3LDE0IEBAIGNsYXNzIEJ1aWxkQW5kVGVzdChBYnN0cmFjdFNlcXVlbmNlZENv
bW1hbmQpOgogICAgIF0KIAogCitjbGFzcyBDaGVja1BhdGNoUmVsZXZhbmNlKEFic3RyYWN0U2Vx
dWVuY2VkQ29tbWFuZCk6CisgICAgbmFtZSA9ICJjaGVjay1wYXRjaC1yZWxldmFuY2UiCisgICAg
aGVscF90ZXh0ID0gIkNoZWNrIGlmIHRoaXMgcGF0Y2ggbmVlZHMgdG8gYmUgdGVzdGVkIgorICAg
IHN0ZXBzID0gWworICAgICAgICBzdGVwcy5DaGVja1BhdGNoUmVsZXZhbmNlLAorICAgIF0KKwor
CiBjbGFzcyBMYW5kKEFic3RyYWN0U2VxdWVuY2VkQ29tbWFuZCk6CiAgICAgbmFtZSA9ICJsYW5k
IgogICAgIGhlbHBfdGV4dCA9ICJMYW5kIHRoZSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5IGRp
ZmYgYW5kIHVwZGF0ZXMgdGhlIGFzc29jaWF0ZWQgYnVnIGlmIGFueSIKZGlmZiAtLWdpdCBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9kb3dubG9hZF91bml0dGVzdC5weSBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9kb3dubG9hZF91bml0dGVzdC5w
eQppbmRleCA0MjlkYTEyNDZmOGJkNzZhYjAyZWU2MzNjNDJkNmZiMzhkMzg1NGM1Li41OWM5NDg4
YzA5NDA5OWI3MzQ3ZTk2ZWYyMDJjMzYwZDkxOTQ2MzAzIDEwMDY0NAotLS0gYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZG93bmxvYWRfdW5pdHRlc3QucHkKKysrIGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Rvd25sb2FkX3VuaXR0ZXN0LnB5CkBA
IC04OSw2ICs4OSw3IEBAIGNsYXNzIERvd25sb2FkQ29tbWFuZHNUZXN0KENvbW1hbmRzVGVzdCk6
CiAgICAgICAgIG9wdGlvbnMudXBkYXRlID0gVHJ1ZQogICAgICAgICBvcHRpb25zLmFyY2hpdGVj
dHVyZSA9ICdNT0NLIEFSQ0gnCiAgICAgICAgIG9wdGlvbnMuaXRlcmF0ZV9vbl9uZXdfdGVzdHMg
PSAwCisgICAgICAgIG9wdGlvbnMuZ3JvdXAgPSBOb25lCiAgICAgICAgIHJldHVybiBvcHRpb25z
CiAKICAgICBkZWYgdGVzdF9idWlsZChzZWxmKToKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvdG9vbC9jb21tYW5kcy9lYXJseXdhcm5pbmdzeXN0ZW0ucHkgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZWFybHl3YXJuaW5nc3lzdGVtLnB5CmluZGV4IDli
YzA0MTg2MGNlNjc0NTQ0NTRlNGIyNTE0MzhhOWRiZTUyNjQ1MTMuLmVlOGU3NDE2MjQwN2FmYzEx
NjhmMjI1MjhmZjI5Y2ZlODJhMzk0NTEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvdG9vbC9jb21tYW5kcy9lYXJseXdhcm5pbmdzeXN0ZW0ucHkKKysrIGIvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Vhcmx5d2FybmluZ3N5c3RlbS5weQpAQCAtMSw0ICsx
LDUgQEAKICMgQ29weXJpZ2h0IChjKSAyMDA5IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisjIENvcHlyaWdodCAoYykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC0yOCw2ICsyOSw3IEBACiAKIGlt
cG9ydCBqc29uCiBpbXBvcnQgbG9nZ2luZworaW1wb3J0IG9zCiBmcm9tIG9wdHBhcnNlIGltcG9y
dCBtYWtlX29wdGlvbgogCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5jb25maWcuY29tbWl0dGVycyBp
bXBvcnQgQ29tbWl0dGVyTGlzdApAQCAtMzYsNyArMzgsOCBAQCBmcm9tIHdlYmtpdHB5LmNvbW1v
bi5zeXN0ZW0uZmlsZXN5c3RlbSBpbXBvcnQgRmlsZVN5c3RlbQogZnJvbSB3ZWJraXRweS5jb21t
b24uc3lzdGVtLmV4ZWN1dGl2ZSBpbXBvcnQgU2NyaXB0RXJyb3IKIGZyb20gd2Via2l0cHkudG9v
bC5ib3QuZWFybHl3YXJuaW5nc3lzdGVtdGFzayBpbXBvcnQgRWFybHlXYXJuaW5nU3lzdGVtVGFz
aywgRWFybHlXYXJuaW5nU3lzdGVtVGFza0RlbGVnYXRlCiBmcm9tIHdlYmtpdHB5LnRvb2wuYm90
LmxheW91dHRlc3RyZXN1bHRzcmVhZGVyIGltcG9ydCBMYXlvdXRUZXN0UmVzdWx0c1JlYWRlcgot
ZnJvbSB3ZWJraXRweS50b29sLmJvdC5wYXRjaGFuYWx5c2lzdGFzayBpbXBvcnQgVW5hYmxlVG9B
cHBseVBhdGNoLCBQYXRjaElzTm90VmFsaWQKK2Zyb20gd2Via2l0cHkudG9vbC5ib3QuanNjdGVz
dHJlc3VsdHNyZWFkZXIgaW1wb3J0IEpTQ1Rlc3RSZXN1bHRzUmVhZGVyCitmcm9tIHdlYmtpdHB5
LnRvb2wuYm90LnBhdGNoYW5hbHlzaXN0YXNrIGltcG9ydCBVbmFibGVUb0FwcGx5UGF0Y2gsIFBh
dGNoSXNOb3RWYWxpZCwgUGF0Y2hJc05vdEFwcGxpY2FibGUKIGZyb20gd2Via2l0cHkudG9vbC5i
b3QucXVldWVlbmdpbmUgaW1wb3J0IFF1ZXVlRW5naW5lCiBmcm9tIHdlYmtpdHB5LnRvb2wuY29t
bWFuZHMucXVldWVzIGltcG9ydCBBYnN0cmFjdFJldmlld1F1ZXVlCiAKQEAgLTUzLDcgKzU2LDEy
IEBAIGNsYXNzIEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtKEFic3RyYWN0UmV2aWV3UXVldWUs
IEVhcmx5V2FybmluZ1N5c3RlbVRhc2tEZWxlCiAKICAgICBkZWYgYmVnaW5fd29ya19xdWV1ZShz
ZWxmKToKICAgICAgICAgQWJzdHJhY3RSZXZpZXdRdWV1ZS5iZWdpbl93b3JrX3F1ZXVlKHNlbGYp
Ci0gICAgICAgIHNlbGYuX2xheW91dF90ZXN0X3Jlc3VsdHNfcmVhZGVyID0gTGF5b3V0VGVzdFJl
c3VsdHNSZWFkZXIoc2VsZi5fdG9vbCwgc2VsZi5fcG9ydC5yZXN1bHRzX2RpcmVjdG9yeSgpLCBz
ZWxmLl9sb2dfZGlyZWN0b3J5KCkpCisKKyAgICAgICAgaWYgc2VsZi5ncm91cCgpID09ICJqc2Mi
OgorICAgICAgICAgICAganNjX3Jlc3VsdHNfZGlyZWN0b3J5ID0gb3MucGF0aC5kaXJuYW1lKG9z
LnBhdGguZGlybmFtZShvcy5wYXRoLmRpcm5hbWUoc2VsZi5fcG9ydC5yZXN1bHRzX2RpcmVjdG9y
eSgpKSkpCisgICAgICAgICAgICBzZWxmLl90ZXN0X3Jlc3VsdHNfcmVhZGVyID0gSlNDVGVzdFJl
c3VsdHNSZWFkZXIoc2VsZi5fdG9vbCwganNjX3Jlc3VsdHNfZGlyZWN0b3J5KQorICAgICAgICBl
bHNlOgorICAgICAgICAgICAgc2VsZi5fdGVzdF9yZXN1bHRzX3JlYWRlciA9IExheW91dFRlc3RS
ZXN1bHRzUmVhZGVyKHNlbGYuX3Rvb2wsIHNlbGYuX3BvcnQucmVzdWx0c19kaXJlY3RvcnkoKSwg
c2VsZi5fbG9nX2RpcmVjdG9yeSgpKQogCiAgICAgZGVmIF9mYWlsaW5nX3Rlc3RzX21lc3NhZ2Uo
c2VsZiwgdGFzaywgcGF0Y2gpOgogICAgICAgICByZXN1bHRzID0gdGFzay5yZXN1bHRzX2Zyb21f
cGF0Y2hfdGVzdF9ydW4ocGF0Y2gpCkBAIC03OSw4ICs4NywxMiBAQCBjbGFzcyBBYnN0cmFjdEVh
cmx5V2FybmluZ1N5c3RlbShBYnN0cmFjdFJldmlld1F1ZXVlLCBFYXJseVdhcm5pbmdTeXN0ZW1U
YXNrRGVsZQogICAgICAgICAgICAgdG9vbC5idWdzLmFkZF9jY190b19idWcocGF0Y2guYnVnX2lk
KCksIHNlbGYud2F0Y2hlcnMpCiAgICAgICAgIHRvb2wuYnVncy5zZXRfZmxhZ19vbl9hdHRhY2ht
ZW50KHBhdGNoLmlkKCksICJjb21taXQtcXVldWUiLCAiLSIsIG1lc3NhZ2UpCiAKKyAgICAjIFRo
aXMgZXhpc3RzIGZvciBtb2NraW5nCisgICAgZGVmIF9jcmVhdGVfdGFzayhzZWxmLCBwYXRjaCk6
CisgICAgICAgIHJldHVybiBFYXJseVdhcm5pbmdTeXN0ZW1UYXNrKHNlbGYsIHBhdGNoLCBzZWxm
Ll9vcHRpb25zLnJ1bl90ZXN0cykKKwogICAgIGRlZiByZXZpZXdfcGF0Y2goc2VsZiwgcGF0Y2gp
OgotICAgICAgICB0YXNrID0gRWFybHlXYXJuaW5nU3lzdGVtVGFzayhzZWxmLCBwYXRjaCwgc2Vs
Zi5fb3B0aW9ucy5ydW5fdGVzdHMpCisgICAgICAgIHRhc2sgPSBzZWxmLl9jcmVhdGVfdGFzayhw
YXRjaCkKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgc3VjY2VlZGVkID0gdGFzay5ydW4oKQog
ICAgICAgICAgICAgaWYgbm90IHN1Y2NlZWRlZDoKQEAgLTkzLDYgKzEwNSw5IEBAIGNsYXNzIEFi
c3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtKEFic3RyYWN0UmV2aWV3UXVldWUsIEVhcmx5V2Fybmlu
Z1N5c3RlbVRhc2tEZWxlCiAgICAgICAgIGV4Y2VwdCBVbmFibGVUb0FwcGx5UGF0Y2gsIGU6CiAg
ICAgICAgICAgICBzZWxmLl9kaWRfZXJyb3IocGF0Y2gsICIlcyB1bmFibGUgdG8gYXBwbHkgcGF0
Y2guIiAlIHNlbGYubmFtZSkKICAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICBleGNl
cHQgUGF0Y2hJc05vdEFwcGxpY2FibGUsIGU6CisgICAgICAgICAgICBzZWxmLl9kaWRfc2tpcChw
YXRjaCkKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQogICAgICAgICBleGNlcHQgU2NyaXB0RXJy
b3IsIGU6CiAgICAgICAgICAgICBzZWxmLl9wb3N0X3JlamVjdF9tZXNzYWdlX29uX2J1ZyhzZWxm
Ll90b29sLCBwYXRjaCwgdGFzay5mYWlsdXJlX3N0YXR1c19pZCwgc2VsZi5fZmFpbGluZ190ZXN0
c19tZXNzYWdlKHRhc2ssIHBhdGNoKSkKICAgICAgICAgICAgIHJlc3VsdHNfYXJjaGl2ZSA9IHRh
c2sucmVzdWx0c19hcmNoaXZlX2Zyb21fcGF0Y2hfdGVzdF9ydW4ocGF0Y2gpCkBAIC0xMTcsMTQg
KzEzMiwxNyBAQCBjbGFzcyBBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbShBYnN0cmFjdFJldmll
d1F1ZXVlLCBFYXJseVdhcm5pbmdTeXN0ZW1UYXNrRGVsZQogICAgICAgICByZXR1cm4gc2VsZi5f
dXBkYXRlX3N0YXR1cyhtZXNzYWdlLCBwYXRjaD1wYXRjaCwgcmVzdWx0c19maWxlPWZhaWx1cmVf
bG9nKQogCiAgICAgZGVmIHRlc3RfcmVzdWx0cyhzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYu
X2xheW91dF90ZXN0X3Jlc3VsdHNfcmVhZGVyLnJlc3VsdHMoKQorICAgICAgICByZXR1cm4gc2Vs
Zi5fdGVzdF9yZXN1bHRzX3JlYWRlci5yZXN1bHRzKCkKIAogICAgIGRlZiBhcmNoaXZlX2xhc3Rf
dGVzdF9yZXN1bHRzKHNlbGYsIHBhdGNoKToKLSAgICAgICAgcmV0dXJuIHNlbGYuX2xheW91dF90
ZXN0X3Jlc3VsdHNfcmVhZGVyLmFyY2hpdmUocGF0Y2gpCisgICAgICAgIHJldHVybiBzZWxmLl90
ZXN0X3Jlc3VsdHNfcmVhZGVyLmFyY2hpdmUocGF0Y2gpCiAKICAgICBkZWYgYnVpbGRfc3R5bGUo
c2VsZik6CiAgICAgICAgIHJldHVybiBzZWxmLl9idWlsZF9zdHlsZQogCisgICAgZGVmIGdyb3Vw
KHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5fZ3JvdXAKKwogICAgIGRlZiByZWZldGNoX3Bh
dGNoKHNlbGYsIHBhdGNoKToKICAgICAgICAgcmV0dXJuIHNlbGYuX3Rvb2wuYnVncy5mZXRjaF9h
dHRhY2htZW50KHBhdGNoLmlkKCkpCiAKQEAgLTE0OSwxMiArMTY3LDEzIEBAIGNsYXNzIEFic3Ry
YWN0RWFybHlXYXJuaW5nU3lzdGVtKEFic3RyYWN0UmV2aWV3UXVldWUsIEVhcmx5V2FybmluZ1N5
c3RlbVRhc2tEZWxlCiAKICAgICAgICAgY2xhc3NlcyA9IFtdCiAgICAgICAgIGZvciBuYW1lLCBj
b25maWcgaW4gZXdzZXMuaXRlcml0ZW1zKCk6Ci0gICAgICAgICAgICBjbGFzc2VzLmFwcGVuZCh0
eXBlKG5hbWUuZW5jb2RlKCd1dGYtOCcpLnRyYW5zbGF0ZShOb25lLCAnIC0nKSwgKEFic3RyYWN0
RWFybHlXYXJuaW5nU3lzdGVtLCksIHsKKyAgICAgICAgICAgIGNsYXNzZXMuYXBwZW5kKHR5cGUo
bmFtZS5lbmNvZGUoJ3V0Zi04JykudHJhbnNsYXRlKE5vbmUsICcgLScpLCAoY2xzLCksIHsKICAg
ICAgICAgICAgICAgICAnbmFtZSc6IGNvbmZpZy5nZXQoJ25hbWUnLCBjb25maWdbJ3BvcnQnXSAr
ICctZXdzJyksCiAgICAgICAgICAgICAgICAgJ3BvcnRfbmFtZSc6IGNvbmZpZ1sncG9ydCddLAog
ICAgICAgICAgICAgICAgICdhcmNoaXRlY3R1cmUnOiBjb25maWcuZ2V0KCdhcmNoaXRlY3R1cmUn
LCBOb25lKSwKICAgICAgICAgICAgICAgICAnX2J1aWxkX3N0eWxlJzogY29uZmlnLmdldCgnc3R5
bGUnLCAicmVsZWFzZSIpLAogICAgICAgICAgICAgICAgICd3YXRjaGVycyc6IGNvbmZpZy5nZXQo
J3dhdGNoZXJzJywgW10pLAogICAgICAgICAgICAgICAgICdydW5fdGVzdHMnOiBjb25maWcuZ2V0
KCdydW5UZXN0cycsIGNscy5ydW5fdGVzdHMpLAorICAgICAgICAgICAgICAgICdfZ3JvdXAnOiBj
b25maWcuZ2V0KCdncm91cCcsIE5vbmUpLAogICAgICAgICAgICAgfSkpCiAgICAgICAgIHJldHVy
biBjbGFzc2VzCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFu
ZHMvZWFybHl3YXJuaW5nc3lzdGVtX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS90b29sL2NvbW1hbmRzL2Vhcmx5d2FybmluZ3N5c3RlbV91bml0dGVzdC5weQppbmRleCAwODg4
NzgxM2NlMmU5M2E4ZWM5ZGEzNzYzNmVjYmRlOWVmZjNjOWU3Li44ZWMzYTJiOTlhMjU5OTVlOWJk
YjNlNTUwYmI4MWUwYjYwMTIxNjg3IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L3Rvb2wvY29tbWFuZHMvZWFybHl3YXJuaW5nc3lzdGVtX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9lYXJseXdhcm5pbmdzeXN0ZW1fdW5pdHRl
c3QucHkKQEAgLTEsNCArMSw1IEBACiAjIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtMjks
NiArMzAsNyBAQAogZnJvbSB3ZWJraXRweS50aGlyZHBhcnR5Lm1vY2sgaW1wb3J0IE1vY2sKIGZy
b20gd2Via2l0cHkuY29tbW9uLmhvc3QgaW1wb3J0IEhvc3QKIGZyb20gd2Via2l0cHkuY29tbW9u
Lmhvc3RfbW9jayBpbXBvcnQgTW9ja0hvc3QKK2Zyb20gd2Via2l0cHkuY29tbW9uLm5ldC5qc2N0
ZXN0cmVzdWx0cyBpbXBvcnQgSlNDVGVzdFJlc3VsdHMKIGZyb20gd2Via2l0cHkuY29tbW9uLm5l
dC5sYXlvdXR0ZXN0cmVzdWx0cyBpbXBvcnQgTGF5b3V0VGVzdFJlc3VsdHMKIGZyb20gd2Via2l0
cHkuY29tbW9uLnN5c3RlbS5vdXRwdXRjYXB0dXJlIGltcG9ydCBPdXRwdXRDYXB0dXJlCiBmcm9t
IHdlYmtpdHB5LmxheW91dF90ZXN0cy5tb2RlbHMgaW1wb3J0IHRlc3RfcmVzdWx0cwpAQCAtNDEs
NjIgKzQzLDEwMCBAQCBmcm9tIHdlYmtpdHB5LnRvb2wuY29tbWFuZHMucXVldWVzdGVzdCBpbXBv
cnQgUXVldWVzVGVzdAogZnJvbSB3ZWJraXRweS50b29sLm1vY2t0b29sIGltcG9ydCBNb2NrVG9v
bCwgTW9ja09wdGlvbnMKIAogCi1jbGFzcyBBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbVRlc3Qo
UXVldWVzVGVzdCk6Ci0gICAgZGVmIHRlc3RfZmFpbGluZ190ZXN0c19tZXNzYWdlKHNlbGYpOgot
ICAgICAgICAjIE5lZWRlZCB0byBkZWZpbmUgcG9ydF9uYW1lLCB1c2VkIGluIEFic3RyYWN0RWFy
bHlXYXJuaW5nU3lzdGVtLl9faW5pdF9fCi0gICAgICAgIGNsYXNzIFRlc3RFV1MoQWJzdHJhY3RF
YXJseVdhcm5pbmdTeXN0ZW0pOgotICAgICAgICAgICAgcG9ydF9uYW1lID0gIndpbiIgICMgTmVl
ZHMgdG8gYmUgYSBwb3J0IHdoaWNoIHBvcnQvZmFjdG9yeSB1bmRlcnN0YW5kcy4KLSAgICAgICAg
ICAgIF9idWlsZF9zdHlsZSA9IE5vbmUKKyMgTmVlZGVkIHRvIGRlZmluZSBwb3J0X25hbWUsIHVz
ZWQgaW4gQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0uX19pbml0X18KK2NsYXNzIFRlc3RFV1Mo
QWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0pOgorICAgIHBvcnRfbmFtZSA9ICJ3aW4iICAjIE5l
ZWRzIHRvIGJlIGEgcG9ydCB3aGljaCBwb3J0L2ZhY3RvcnkgdW5kZXJzdGFuZHMuCisgICAgX2J1
aWxkX3N0eWxlID0gTm9uZQorICAgIF9ncm91cCA9IE5vbmUKIAotICAgICAgICBld3MgPSBUZXN0
RVdTKCkKKworY2xhc3MgVGVzdEpTQ0VXUyhBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbSk6Cisg
ICAgcG9ydF9uYW1lID0gIm1hYyIgICMgTmVlZHMgdG8gYmUgYSBwb3J0IHdoaWNoIHBvcnQvZmFj
dG9yeSB1bmRlcnN0YW5kcy4KKyAgICBfYnVpbGRfc3R5bGUgPSBOb25lCisgICAgX2dyb3VwID0g
ImpzYyIKKworCitjbGFzcyBBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbVRlc3QoUXVldWVzVGVz
dCk6CisgICAgZGVmIF90ZXN0X21lc3NhZ2Uoc2VsZiwgZXdzLCByZXN1bHRzLCBtZXNzYWdlKToK
ICAgICAgICAgZXdzLmJpbmRfdG9fdG9vbChNb2NrVG9vbCgpKQogICAgICAgICBld3MuaG9zdCA9
IE1vY2tIb3N0KCkKICAgICAgICAgZXdzLl9vcHRpb25zID0gTW9ja09wdGlvbnMocG9ydD1Ob25l
LCBjb25maXJtPUZhbHNlKQogICAgICAgICBPdXRwdXRDYXB0dXJlKCkuYXNzZXJ0X291dHB1dHMo
c2VsZiwgZXdzLmJlZ2luX3dvcmtfcXVldWUsIGV4cGVjdGVkX2xvZ3M9c2VsZi5fZGVmYXVsdF9i
ZWdpbl93b3JrX3F1ZXVlX2xvZ3MoZXdzLm5hbWUpKQogICAgICAgICB0YXNrID0gTW9jaygpCi0g
ICAgICAgIHRhc2sucmVzdWx0c19mcm9tX3BhdGNoX3Rlc3RfcnVuID0gbGFtYmRhIGE6IExheW91
dFRlc3RSZXN1bHRzKFt0ZXN0X3Jlc3VsdHMuVGVzdFJlc3VsdCgiZm9vLmh0bWwiLCBmYWlsdXJl
cz1bdGVzdF9mYWlsdXJlcy5GYWlsdXJlVGV4dE1pc21hdGNoKCldKSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdGVzdF9yZXN1bHRzLlRlc3RSZXN1bHQoImJhci5odG1sIiwgZmFpbHVyZXM9W3Rlc3RfZmFp
bHVyZXMuRmFpbHVyZVRleHRNaXNtYXRjaCgpXSldLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWRfZXhj
ZWVkX3Rlc3RfZmFpbHVyZV9saW1pdD1GYWxzZSkKKyAgICAgICAgdGFzay5yZXN1bHRzX2Zyb21f
cGF0Y2hfdGVzdF9ydW4gPSByZXN1bHRzCiAgICAgICAgIHBhdGNoID0gZXdzLl90b29sLmJ1Z3Mu
ZmV0Y2hfYXR0YWNobWVudCgxMDAwMCkKLSAgICAgICAgc2VsZi5hc3NlcnRNdWx0aUxpbmVFcXVh
bChld3MuX2ZhaWxpbmdfdGVzdHNfbWVzc2FnZSh0YXNrLCBwYXRjaCksICJOZXcgZmFpbGluZyB0
ZXN0czpcbmZvby5odG1sXG5iYXIuaHRtbCIpCisgICAgICAgIHNlbGYuYXNzZXJ0TXVsdGlMaW5l
RXF1YWwoZXdzLl9mYWlsaW5nX3Rlc3RzX21lc3NhZ2UodGFzaywgcGF0Y2gpLCBtZXNzYWdlKQor
CisgICAgZGVmIHRlc3RfZmFpbGluZ190ZXN0c19tZXNzYWdlKHNlbGYpOgorICAgICAgICBld3Mg
PSBUZXN0RVdTKCkKKyAgICAgICAgcmVzdWx0cyA9IGxhbWJkYSBhOiBMYXlvdXRUZXN0UmVzdWx0
cyhbdGVzdF9yZXN1bHRzLlRlc3RSZXN1bHQoImZvby5odG1sIiwgZmFpbHVyZXM9W3Rlc3RfZmFp
bHVyZXMuRmFpbHVyZVRleHRNaXNtYXRjaCgpXSksCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X3Jlc3VsdHMuVGVzdFJlc3VsdCgiYmFyLmh0bWwi
LCBmYWlsdXJlcz1bdGVzdF9mYWlsdXJlcy5GYWlsdXJlVGV4dE1pc21hdGNoKCldKV0sCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWRfZXhjZWVkX3Rl
c3RfZmFpbHVyZV9saW1pdD1GYWxzZSkKKyAgICAgICAgbWVzc2FnZSA9ICJOZXcgZmFpbGluZyB0
ZXN0czpcbmZvby5odG1sXG5iYXIuaHRtbCIKKyAgICAgICAgc2VsZi5fdGVzdF9tZXNzYWdlKGV3
cywgcmVzdWx0cywgbWVzc2FnZSkKKworICAgIGRlZiB0ZXN0X2ZhaWxpbmdfanNjX3Rlc3RzX21l
c3NhZ2Uoc2VsZik6CisgICAgICAgIGV3cyA9IFRlc3RKU0NFV1MoKQorICAgICAgICByZXN1bHRz
ID0gbGFtYmRhIGE6IEpTQ1Rlc3RSZXN1bHRzKEZhbHNlLCBbImVzNi55YW1sL2VzNi90eXBlZF9h
cnJheXNfSW50OEFycmF5LmpzLmRlZmF1bHQiLCAiZXM2LnlhbWwvZXM2L3R5cGVkX2FycmF5c19V
aW50OEFycmF5LmpzLmRlZmF1bHQiXSkKKyAgICAgICAgbWVzc2FnZSA9ICJOZXcgZmFpbGluZyB0
ZXN0czpcbmVzNi55YW1sL2VzNi90eXBlZF9hcnJheXNfSW50OEFycmF5LmpzLmRlZmF1bHRcbmVz
Ni55YW1sL2VzNi90eXBlZF9hcnJheXNfVWludDhBcnJheS5qcy5kZWZhdWx0XG5hcGlUZXN0cyIK
KyAgICAgICAgc2VsZi5fdGVzdF9tZXNzYWdlKGV3cywgcmVzdWx0cywgbWVzc2FnZSkKKworCitj
bGFzcyBNb2NrRWFybHlXYXJuaW5nU3lzdGVtVGFza0ZvckluY29uY2x1c2l2ZVJlc3VsdHMoRWFy
bHlXYXJuaW5nU3lzdGVtVGFzayk6CisgICAgZGVmIF90ZXN0X3BhdGNoKHNlbGYpOgorICAgICAg
ICBzZWxmLl90ZXN0KCkKKyAgICAgICAgcmVzdWx0cyA9IHNlbGYuX2RlbGVnYXRlLnRlc3RfcmVz
dWx0cygpCisgICAgICAgIHJldHVybiBib29sKHJlc3VsdHMpCisKKworY2xhc3MgTW9ja0Fic3Ry
YWN0RWFybHlXYXJuaW5nU3lzdGVtRm9ySW5jb25jbHVzaXZlUmVzdWx0cyhBYnN0cmFjdEVhcmx5
V2FybmluZ1N5c3RlbSk6CisgICAgZGVmIF9jcmVhdGVfdGFzayhzZWxmLCBwYXRjaCk6CisgICAg
ICAgIHRhc2sgPSBNb2NrRWFybHlXYXJuaW5nU3lzdGVtVGFza0ZvckluY29uY2x1c2l2ZVJlc3Vs
dHMoc2VsZiwgcGF0Y2gsIHNlbGYuX29wdGlvbnMucnVuX3Rlc3RzKQorICAgICAgICByZXR1cm4g
dGFzawogCiAKIGNsYXNzIEVhcmx5V2FybmluZ1N5c3RlbVRlc3QoUXVldWVzVGVzdCk6Ci0gICAg
ZGVmIF9kZWZhdWx0X2V4cGVjdGVkX2xvZ3Moc2VsZiwgZXdzKToKKyAgICBkZWYgX2RlZmF1bHRf
ZXhwZWN0ZWRfbG9ncyhzZWxmLCBld3MsIGNvbmNsdXNpdmUpOgogICAgICAgICBzdHJpbmdfcmVw
bGFjZW1lbnRzID0gewogICAgICAgICAgICAgIm5hbWUiOiBld3MubmFtZSwKICAgICAgICAgICAg
ICJwb3J0IjogZXdzLnBvcnRfbmFtZSwKICAgICAgICAgICAgICJhcmNoaXRlY3R1cmUiOiAiIC0t
YXJjaGl0ZWN0dXJlPSVzIiAlIGV3cy5hcmNoaXRlY3R1cmUgaWYgZXdzLmFyY2hpdGVjdHVyZSBl
bHNlICIiLAogICAgICAgICAgICAgImJ1aWxkX3N0eWxlIjogZXdzLmJ1aWxkX3N0eWxlKCksCisg
ICAgICAgICAgICAiZ3JvdXAiOiBld3MuZ3JvdXAoKSwKICAgICAgICAgfQogICAgICAgICBpZiBl
d3MucnVuX3Rlc3RzOgotICAgICAgICAgICAgcnVuX3Rlc3RzX2xpbmUgPSAiUnVubmluZzogd2Vi
a2l0LXBhdGNoIC0tc3RhdHVzLWhvc3Q9ZXhhbXBsZS5jb20gYnVpbGQtYW5kLXRlc3QgLS1uby1j
bGVhbiAtLW5vLXVwZGF0ZSAtLXRlc3QgLS1ub24taW50ZXJhY3RpdmUgLS1idWlsZC1zdHlsZT0l
KGJ1aWxkX3N0eWxlKXMgLS1wb3J0PSUocG9ydClzJShhcmNoaXRlY3R1cmUpc1xuIiAlIHN0cmlu
Z19yZXBsYWNlbWVudHMKKyAgICAgICAgICAgIHJ1bl90ZXN0c19saW5lID0gIlJ1bm5pbmc6IHdl
YmtpdC1wYXRjaCAtLXN0YXR1cy1ob3N0PWV4YW1wbGUuY29tIGJ1aWxkLWFuZC10ZXN0IC0tbm8t
Y2xlYW4gLS1uby11cGRhdGUgLS10ZXN0IC0tbm9uLWludGVyYWN0aXZlIC0tYnVpbGQtc3R5bGU9
JShidWlsZF9zdHlsZSlzIC0tZ3JvdXA9JShncm91cClzIC0tcG9ydD0lKHBvcnQpcyUoYXJjaGl0
ZWN0dXJlKXNcbiIgJSBzdHJpbmdfcmVwbGFjZW1lbnRzCiAgICAgICAgIGVsc2U6CiAgICAgICAg
ICAgICBydW5fdGVzdHNfbGluZSA9ICIiCiAgICAgICAgIHN0cmluZ19yZXBsYWNlbWVudHNbJ3J1
bl90ZXN0c19saW5lJ10gPSBydW5fdGVzdHNfbGluZQogCisgICAgICAgIGlmIGNvbmNsdXNpdmU6
CisgICAgICAgICAgICByZXN1bHRfbGluZXMgPSAiTU9DSzogdXBkYXRlX3N0YXR1czogJShuYW1l
KXMgUGFzc1xuTU9DSzogcmVsZWFzZV93b3JrX2l0ZW06ICUobmFtZSlzIDEwMDAwXG4iICUgc3Ry
aW5nX3JlcGxhY2VtZW50cworICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmVzdWx0X2xpbmVz
ID0gIk1PQ0s6IHJlbGVhc2VfbG9jazogJShuYW1lKXMgMTAwMDBcbiIgJSBzdHJpbmdfcmVwbGFj
ZW1lbnRzCisgICAgICAgIHN0cmluZ19yZXBsYWNlbWVudHNbJ3Jlc3VsdF9saW5lcyddID0gcmVz
dWx0X2xpbmVzCisKICAgICAgICAgZXhwZWN0ZWRfbG9ncyA9IHsKICAgICAgICAgICAgICJiZWdp
bl93b3JrX3F1ZXVlIjogc2VsZi5fZGVmYXVsdF9iZWdpbl93b3JrX3F1ZXVlX2xvZ3MoZXdzLm5h
bWUpLAogICAgICAgICAgICAgInByb2Nlc3Nfd29ya19pdGVtIjogIiIiTU9DSzogdXBkYXRlX3N0
YXR1czogJShuYW1lKXMgU3RhcnRlZCBwcm9jZXNzaW5nIHBhdGNoCiBSdW5uaW5nOiB3ZWJraXQt
cGF0Y2ggLS1zdGF0dXMtaG9zdD1leGFtcGxlLmNvbSBjbGVhbiAtLXBvcnQ9JShwb3J0KXMlKGFy
Y2hpdGVjdHVyZSlzCiBSdW5uaW5nOiB3ZWJraXQtcGF0Y2ggLS1zdGF0dXMtaG9zdD1leGFtcGxl
LmNvbSB1cGRhdGUgLS1wb3J0PSUocG9ydClzJShhcmNoaXRlY3R1cmUpcwogUnVubmluZzogd2Vi
a2l0LXBhdGNoIC0tc3RhdHVzLWhvc3Q9ZXhhbXBsZS5jb20gYXBwbHktYXR0YWNobWVudCAtLW5v
LXVwZGF0ZSAtLW5vbi1pbnRlcmFjdGl2ZSAxMDAwMCAtLXBvcnQ9JShwb3J0KXMlKGFyY2hpdGVj
dHVyZSlzCi1SdW5uaW5nOiB3ZWJraXQtcGF0Y2ggLS1zdGF0dXMtaG9zdD1leGFtcGxlLmNvbSBi
dWlsZCAtLW5vLWNsZWFuIC0tbm8tdXBkYXRlIC0tYnVpbGQtc3R5bGU9JShidWlsZF9zdHlsZSlz
IC0tcG9ydD0lKHBvcnQpcyUoYXJjaGl0ZWN0dXJlKXMKLSUocnVuX3Rlc3RzX2xpbmUpc01PQ0s6
IHVwZGF0ZV9zdGF0dXM6ICUobmFtZSlzIFBhc3MKLU1PQ0s6IHJlbGVhc2Vfd29ya19pdGVtOiAl
KG5hbWUpcyAxMDAwMAotIiIiICUgc3RyaW5nX3JlcGxhY2VtZW50cywKK1J1bm5pbmc6IHdlYmtp
dC1wYXRjaCAtLXN0YXR1cy1ob3N0PWV4YW1wbGUuY29tIGNoZWNrLXBhdGNoLXJlbGV2YW5jZSAt
LWdyb3VwPSUoZ3JvdXApcyAtLXBvcnQ9JShwb3J0KXMlKGFyY2hpdGVjdHVyZSlzCitSdW5uaW5n
OiB3ZWJraXQtcGF0Y2ggLS1zdGF0dXMtaG9zdD1leGFtcGxlLmNvbSBidWlsZCAtLW5vLWNsZWFu
IC0tbm8tdXBkYXRlIC0tYnVpbGQtc3R5bGU9JShidWlsZF9zdHlsZSlzIC0tZ3JvdXA9JShncm91
cClzIC0tcG9ydD0lKHBvcnQpcyUoYXJjaGl0ZWN0dXJlKXMKKyUocnVuX3Rlc3RzX2xpbmUpcyUo
cmVzdWx0X2xpbmVzKXMiIiIgJSBzdHJpbmdfcmVwbGFjZW1lbnRzLAogICAgICAgICAgICAgImhh
bmRsZV91bmV4cGVjdGVkX2Vycm9yIjogIk1vY2sgZXJyb3IgbWVzc2FnZVxuIiwKICAgICAgICAg
ICAgICJoYW5kbGVfc2NyaXB0X2Vycm9yIjogIlNjcmlwdEVycm9yIGVycm9yIG1lc3NhZ2Vcblxu
TU9DSyBvdXRwdXRcbiIsCiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIGV4cGVjdGVkX2xvZ3MK
IAotICAgIGRlZiBfdGVzdF9ld3Moc2VsZiwgZXdzKToKKyAgICBkZWYgX3Rlc3RfZXdzKHNlbGYs
IGV3cywgcmVzdWx0c19hcmVfY29uY2x1c2l2ZT1UcnVlKToKICAgICAgICAgZXdzLmJpbmRfdG9f
dG9vbChNb2NrVG9vbCgpKQogICAgICAgICBld3MuaG9zdCA9IE1vY2tIb3N0KCkKICAgICAgICAg
b3B0aW9ucyA9IE1vY2soKQogICAgICAgICBvcHRpb25zLnBvcnQgPSBOb25lCiAgICAgICAgIG9w
dGlvbnMucnVuX3Rlc3RzID0gZXdzLnJ1bl90ZXN0cwotICAgICAgICBzZWxmLmFzc2VydF9xdWV1
ZV9vdXRwdXRzKGV3cywgZXhwZWN0ZWRfbG9ncz1zZWxmLl9kZWZhdWx0X2V4cGVjdGVkX2xvZ3Mo
ZXdzKSwgb3B0aW9ucz1vcHRpb25zKQorICAgICAgICBzZWxmLmFzc2VydF9xdWV1ZV9vdXRwdXRz
KGV3cywgZXhwZWN0ZWRfbG9ncz1zZWxmLl9kZWZhdWx0X2V4cGVjdGVkX2xvZ3MoZXdzLCByZXN1
bHRzX2FyZV9jb25jbHVzaXZlKSwgb3B0aW9ucz1vcHRpb25zKQogCiAgICAgZGVmIHRlc3RfZXdz
ZXMoc2VsZik6CiAgICAgICAgIGNsYXNzZXMgPSBBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbS5s
b2FkX2V3c19jbGFzc2VzKCkKQEAgLTEwNCwzICsxNDQsMTIgQEAgTU9DSzogcmVsZWFzZV93b3Jr
X2l0ZW06ICUobmFtZSlzIDEwMDAwCiAgICAgICAgIHNlbGYubWF4RGlmZiA9IE5vbmUKICAgICAg
ICAgZm9yIGV3c19jbGFzcyBpbiBjbGFzc2VzOgogICAgICAgICAgICAgc2VsZi5fdGVzdF9ld3Mo
ZXdzX2NsYXNzKCkpCisKKyAgICAjIFRoaXMgbXVzdCB1c2UgdGhlIE1vY2sgRVdTIGNsYXNzZXMg
ZGVmaW5lZCBhYm92ZQorICAgIGRlZiB0ZXN0X2luY29uY2x1c2l2ZV9qc2NfdGVzdF9yZXN1bHRz
KHNlbGYpOgorICAgICAgICBjbGFzc2VzID0gTW9ja0Fic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVt
Rm9ySW5jb25jbHVzaXZlUmVzdWx0cy5sb2FkX2V3c19jbGFzc2VzKCkKKyAgICAgICAgc2VsZi5h
c3NlcnRUcnVlKGNsYXNzZXMpCisgICAgICAgIHNlbGYubWF4RGlmZiA9IE5vbmUKKyAgICAgICAg
dGVzdF9jbGFzc2VzID0gZmlsdGVyKGxhbWJkYSB4OiB4LnJ1bl90ZXN0cyBhbmQgeC5ncm91cCA9
PSAianNjIiwgY2xhc3NlcykKKyAgICAgICAgZm9yIGV3c19jbGFzcyBpbiB0ZXN0X2NsYXNzZXM6
CisgICAgICAgICAgICBzZWxmLl90ZXN0X2V3cyhld3NfY2xhc3MoKSwgRmFsc2UpCmRpZmYgLS1n
aXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcXVldWVzLnB5IGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3F1ZXVlcy5weQppbmRleCAxYzcxYWFj
ZDc1MzBkYzcyOGY1NTQ5MDllMmQyYmJjNzdkOGQxMWNiLi5mZTIxMjdjZmUyNzRlZGYwNzVlY2Qy
Y2QyMzliNDcwZWQ4MzBmOTdhIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rv
b2wvY29tbWFuZHMvcXVldWVzLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9j
b21tYW5kcy9xdWV1ZXMucHkKQEAgLTEsNSArMSw1IEBACiAjIENvcHlyaWdodCAoYykgMjAwOSBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotIyBDb3B5cmlnaHQgKGMpIDIwMDkgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKGMpIDIwMDksIDIwMTcg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zIGFyZQpAQCAtNjIsNiArNjIsNyBAQCBjbGFzcyBBYnN0cmFjdFF1ZXVlKENvbW1hbmQsIFF1
ZXVlRW5naW5lRGVsZWdhdGUpOgogICAgIHdhdGNoZXJzID0gWwogICAgIF0KIAorICAgIF9za2lw
X3N0YXR1cyA9ICJTa2lwIgogICAgIF9wYXNzX3N0YXR1cyA9ICJQYXNzIgogICAgIF9mYWlsX3N0
YXR1cyA9ICJGYWlsIgogICAgIF9lcnJvcl9zdGF0dXMgPSAiRXJyb3IiCkBAIC0yNDQsNiArMjQ1
LDEwIEBAIGNsYXNzIEFic3RyYWN0UGF0Y2hRdWV1ZShBYnN0cmFjdFF1ZXVlKToKICAgICAgICAg
c2VsZi5fdXBkYXRlX3N0YXR1cyhtZXNzYWdlLCBwYXRjaCkKICAgICAgICAgc2VsZi5fcmVsZWFz
ZV93b3JrX2l0ZW0ocGF0Y2gpCiAKKyAgICBkZWYgX2RpZF9za2lwKHNlbGYsIHBhdGNoKToKKyAg
ICAgICAgc2VsZi5fdXBkYXRlX3N0YXR1cyhzZWxmLl9za2lwX3N0YXR1cywgcGF0Y2gpCisgICAg
ICAgIHNlbGYuX3JlbGVhc2Vfd29ya19pdGVtKHBhdGNoKQorCiAgICAgZGVmIF91bmxvY2tfcGF0
Y2goc2VsZiwgcGF0Y2gpOgogICAgICAgICBzZWxmLl90b29sLnN0YXR1c19zZXJ2ZXIucmVsZWFz
ZV9sb2NrKHNlbGYubmFtZSwgcGF0Y2gpCiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvdG9vbC9zdGVwcy9fX2luaXRfXy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9v
bC9zdGVwcy9fX2luaXRfXy5weQppbmRleCAzNTZhY2FiMDNhZDgyNzRjZTliZGE2ODU4ODY0ZmYx
OWI2NGY0YTBhLi42YzljMDlhYzUyYTM4NmI5ZjBjZjM2M2I5YzAzYmJhYTRjMDAzODYxIDEwMDY0
NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvX19pbml0X18ucHkKKysr
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL19faW5pdF9fLnB5CkBAIC0xLDQg
KzEsNSBAQAogIyBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTMzLDYgKzM0LDcgQEAgZnJv
bSB3ZWJraXRweS50b29sLnN0ZXBzLmFwcGx5cGF0Y2h3aXRobG9jYWxjb21taXQgaW1wb3J0IEFw
cGx5UGF0Y2hXaXRoTG9jYWxDb20KIGZyb20gd2Via2l0cHkudG9vbC5zdGVwcy5hcHBseXdhdGNo
bGlzdCBpbXBvcnQgQXBwbHlXYXRjaExpc3QKIGZyb20gd2Via2l0cHkudG9vbC5zdGVwcy5hdHRh
Y2h0b2J1ZyBpbXBvcnQgQXR0YWNoVG9CdWcKIGZyb20gd2Via2l0cHkudG9vbC5zdGVwcy5idWls
ZCBpbXBvcnQgQnVpbGQKK2Zyb20gd2Via2l0cHkudG9vbC5zdGVwcy5jaGVja3BhdGNocmVsZXZh
bmNlIGltcG9ydCBDaGVja1BhdGNoUmVsZXZhbmNlCiBmcm9tIHdlYmtpdHB5LnRvb2wuc3RlcHMu
Y2hlY2tzdHlsZSBpbXBvcnQgQ2hlY2tTdHlsZQogZnJvbSB3ZWJraXRweS50b29sLnN0ZXBzLmNs
ZWFud29ya2luZ2RpcmVjdG9yeSBpbXBvcnQgQ2xlYW5Xb3JraW5nRGlyZWN0b3J5CiBmcm9tIHdl
YmtpdHB5LnRvb2wuc3RlcHMuY2xvc2VidWcgaW1wb3J0IENsb3NlQnVnCmRpZmYgLS1naXQgYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvYnVpbGQucHkgYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L3Rvb2wvc3RlcHMvYnVpbGQucHkKaW5kZXggZjc0ZmZjZTcwOTQxYzYxZTU5Njc5
MmU0YzYwZGNkN2Y4YjY1ZTllYy4uNmQ2NDhlMzRmZTNhOTI5YThjYTZiNzFiMDJhNzBkOWE4NDMy
NWQxYSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL2J1aWxk
LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9idWlsZC5weQpAQCAt
MSw0ICsxLDUgQEAKICMgQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC00MSwyOCArNDIsMzUg
QEAgY2xhc3MgQnVpbGQoQWJzdHJhY3RTdGVwKToKICAgICAgICAgICAgIE9wdGlvbnMuYnVpbGQs
CiAgICAgICAgICAgICBPcHRpb25zLnF1aWV0LAogICAgICAgICAgICAgT3B0aW9ucy5idWlsZF9z
dHlsZSwKKyAgICAgICAgICAgIE9wdGlvbnMuZ3JvdXAsCiAgICAgICAgIF0KIAotICAgIGRlZiBi
dWlsZChzZWxmLCBidWlsZF9zdHlsZSk6CisgICAgZGVmIGJ1aWxkKHNlbGYsIGJ1aWxkX3N0eWxl
LCBncm91cCk6CiAgICAgICAgIGVudmlyb25tZW50ID0gc2VsZi5fdG9vbC5jb3B5X2N1cnJlbnRf
ZW52aXJvbm1lbnQoKQogICAgICAgICBlbnZpcm9ubWVudC5kaXNhYmxlX2djY19zbWFydHF1b3Rl
cygpCiAgICAgICAgIGVudmlyb25tZW50LmRpc2FibGVfamhidWlsZF9WVDEwMF9vdXRwdXQoKQog
ICAgICAgICBlbnYgPSBlbnZpcm9ubWVudC50b19kaWN0aW9uYXJ5KCkKIAotICAgICAgICBidWls
ZF93ZWJraXRfY29tbWFuZCA9IHNlbGYuX3Rvb2wuZGVwcmVjYXRlZF9wb3J0KCkuYnVpbGRfd2Vi
a2l0X2NvbW1hbmQoYnVpbGRfc3R5bGU9YnVpbGRfc3R5bGUpCisgICAgICAgIGlmIGdyb3VwID09
ICJqc2MiOgorICAgICAgICAgICAgYnVpbGRfY29tbWFuZCA9IHNlbGYuX3Rvb2wuZGVwcmVjYXRl
ZF9wb3J0KCkuYnVpbGRfanNjX2NvbW1hbmQoYnVpbGRfc3R5bGU9YnVpbGRfc3R5bGUpCisgICAg
ICAgIGVsc2U6CisgICAgICAgICAgICBidWlsZF9jb21tYW5kID0gc2VsZi5fdG9vbC5kZXByZWNh
dGVkX3BvcnQoKS5idWlsZF93ZWJraXRfY29tbWFuZChidWlsZF9zdHlsZT1idWlsZF9zdHlsZSkK
IAogICAgICAgICBpZiBzZWxmLl9vcHRpb25zLmFyY2hpdGVjdHVyZToKLSAgICAgICAgICAgIGJ1
aWxkX3dlYmtpdF9jb21tYW5kICs9IFsnQVJDSFM9JXMnICUgc2VsZi5fb3B0aW9ucy5hcmNoaXRl
Y3R1cmVdCisgICAgICAgICAgICBidWlsZF9jb21tYW5kICs9IFsnQVJDSFM9JXMnICUgc2VsZi5f
b3B0aW9ucy5hcmNoaXRlY3R1cmVdCiAKLSAgICAgICAgc2VsZi5fdG9vbC5leGVjdXRpdmUucnVu
X2FuZF90aHJvd19pZl9mYWlsKGJ1aWxkX3dlYmtpdF9jb21tYW5kLCBzZWxmLl9vcHRpb25zLnF1
aWV0LAorICAgICAgICBzZWxmLl90b29sLmV4ZWN1dGl2ZS5ydW5fYW5kX3Rocm93X2lmX2ZhaWwo
YnVpbGRfY29tbWFuZCwgc2VsZi5fb3B0aW9ucy5xdWlldCwKICAgICAgICAgICAgIGN3ZD1zZWxm
Ll90b29sLnNjbSgpLmNoZWNrb3V0X3Jvb3QsIGVudj1lbnYpCiAKICAgICBkZWYgcnVuKHNlbGYs
IHN0YXRlKToKICAgICAgICAgaWYgbm90IHNlbGYuX29wdGlvbnMuYnVpbGQ6CiAgICAgICAgICAg
ICByZXR1cm4KICAgICAgICAgX2xvZy5pbmZvKCJCdWlsZGluZyBXZWJLaXQiKQorCisgICAgICAg
IGdyb3VwID0gc2VsZi5fb3B0aW9ucy5ncm91cAorCiAgICAgICAgIGlmIHNlbGYuX29wdGlvbnMu
YnVpbGRfc3R5bGUgPT0gImJvdGgiOgotICAgICAgICAgICAgc2VsZi5idWlsZCgiZGVidWciKQot
ICAgICAgICAgICAgc2VsZi5idWlsZCgicmVsZWFzZSIpCisgICAgICAgICAgICBzZWxmLmJ1aWxk
KCJkZWJ1ZyIsIGdyb3VwKQorICAgICAgICAgICAgc2VsZi5idWlsZCgicmVsZWFzZSIsIGdyb3Vw
KQogICAgICAgICBlbHNlOgotICAgICAgICAgICAgc2VsZi5idWlsZChzZWxmLl9vcHRpb25zLmJ1
aWxkX3N0eWxlKQorICAgICAgICAgICAgc2VsZi5idWlsZChzZWxmLl9vcHRpb25zLmJ1aWxkX3N0
eWxlLCBncm91cCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVw
cy9jaGVja3BhdGNocmVsZXZhbmNlLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0
ZXBzL2NoZWNrcGF0Y2hyZWxldmFuY2UucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDU2MTc3NzUxOTQ5YTIyYjc0
OWYxYTRjYzQzNzBkN2NlYTBkY2Y2ZgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvdG9vbC9zdGVwcy9jaGVja3BhdGNocmVsZXZhbmNlLnB5CkBAIC0wLDAgKzEsNzUg
QEAKKyMgQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMg
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IKKyMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwKKyMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworaW1wb3J0IGxvZ2dp
bmcKK2ltcG9ydCByZQorCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZlIGlt
cG9ydCBTY3JpcHRFcnJvcgorZnJvbSB3ZWJraXRweS50b29sLnN0ZXBzLmFic3RyYWN0c3RlcCBp
bXBvcnQgQWJzdHJhY3RTdGVwCitmcm9tIHdlYmtpdHB5LnRvb2wuc3RlcHMub3B0aW9ucyBpbXBv
cnQgT3B0aW9ucworCitfbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18pCisKKworY2xh
c3MgQ2hlY2tQYXRjaFJlbGV2YW5jZShBYnN0cmFjdFN0ZXApOgorICAgIEBjbGFzc21ldGhvZAor
ICAgIGRlZiBvcHRpb25zKGNscyk6CisgICAgICAgIHJldHVybiBBYnN0cmFjdFN0ZXAub3B0aW9u
cygpICsgWworICAgICAgICAgICAgT3B0aW9ucy5ncm91cCwKKyAgICAgICAgXQorCisgICAganNj
X3BhdGhzID0gWworICAgICAgICAiSlNUZXN0cy8iLAorICAgICAgICAiU291cmNlL0phdmFTY3Jp
cHRDb3JlLyIsCisgICAgICAgICJTb3VyY2UvV1RGLyIKKyAgICAgICAgIlNvdXJjZS9ibWFsbG9j
LyIsCisgICAgXQorCisgICAgZ3JvdXBfdG9fcGF0aHNfbWFwcGluZyA9IHsKKyAgICAgICAgJ2pz
Yyc6IGpzY19wYXRocywKKyAgICB9CisKKyAgICBkZWYgX2NoYW5nZXNfYXJlX3JlbGV2YW50KHNl
bGYsIGNoYW5nZWRfZmlsZXMpOgorICAgICAgICAjIEluIHRoZSBkZWZhdWx0IGNhc2UsIGFsbCBw
YXRjaGVzIGFyZSByZWxldmFudAorICAgICAgICBpZiBzZWxmLl9vcHRpb25zLmdyb3VwIGlzIE5v
bmU6CisgICAgICAgICAgICByZXR1cm4gVHJ1ZQorCisgICAgICAgIHBhdHRlcm5zID0gc2VsZi5n
cm91cF90b19wYXRoc19tYXBwaW5nW3NlbGYuX29wdGlvbnMuZ3JvdXBdCisKKyAgICAgICAgZm9y
IGNoYW5nZWRfZmlsZSBpbiBjaGFuZ2VkX2ZpbGVzOgorICAgICAgICAgICAgZm9yIHBhdHRlcm4g
aW4gcGF0dGVybnM6CisgICAgICAgICAgICAgICAgaWYgcmUuc2VhcmNoKHBhdHRlcm4sIGNoYW5n
ZWRfZmlsZSwgcmUuSUdOT1JFQ0FTRSk6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBUcnVl
CisKKyAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICBkZWYgcnVuKHNlbGYsIHN0YXRlKToKKyAg
ICAgICAgX2xvZy5pbmZvKCJDaGVja2luZyByZWxldmFuY2Ugb2YgcGF0Y2giKQorCisgICAgICAg
IGNoYW5nZV9saXN0ID0gc2VsZi5fdG9vbC5zY20oKS5jaGFuZ2VkX2ZpbGVzKCkKKworICAgICAg
ICBpZiBzZWxmLl9jaGFuZ2VzX2FyZV9yZWxldmFudChjaGFuZ2VfbGlzdCk6CisgICAgICAgICAg
ICBfbG9nLmluZm8oIlRoaXMgcGF0Y2ggaGFzIHJlbGV2YW50IGNoYW5nZXMuIikKKyAgICAgICAg
ICAgIHJldHVybiBUcnVlCisKKyAgICAgICAgX2xvZy5pbmZvKCJUaGlzIHBhdGNoIGRvZXMgbm90
IGhhdmUgcmVsZXZhbnQgY2hhbmdlcy4iKQorICAgICAgICByYWlzZSBTY3JpcHRFcnJvcihtZXNz
YWdlPSJUaGlzIHBhdGNoIGRvZXMgbm90IGhhdmUgcmVsZXZhbnQgY2hhbmdlcy4iKQpkaWZmIC0t
Z2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL29wdGlvbnMucHkgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvb3B0aW9ucy5weQppbmRleCAzZWY0N2QwMDhh
NTllMDUwZDRjYTBjNDg3N2RkZDFhNjA3MzFhNDA5Li5mNWUwZGVmMzI3MTdlMzA2ZTYzMTY5ODQx
MTEwYjI4OThiNzJhMWYxIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wv
c3RlcHMvb3B0aW9ucy5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMv
b3B0aW9ucy5weQpAQCAtMSw0ICsxLDUgQEAKICMgQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogIyBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBA
IC00Niw2ICs0Nyw3IEBAIGNsYXNzIE9wdGlvbnMob2JqZWN0KToKICAgICBlbWFpbCA9IG1ha2Vf
b3B0aW9uKCItLWVtYWlsIiwgYWN0aW9uPSJzdG9yZSIsIHR5cGU9InN0cmluZyIsIGRlc3Q9ImVt
YWlsIiwgaGVscD0iRW1haWwgYWRkcmVzcyB0byB1c2UgaW4gQ2hhbmdlTG9ncy4iKQogICAgIGZv
cmNlX2NsZWFuID0gbWFrZV9vcHRpb24oIi0tZm9yY2UtY2xlYW4iLCBhY3Rpb249InN0b3JlX3Ry
dWUiLCBkZXN0PSJmb3JjZV9jbGVhbiIsIGRlZmF1bHQ9RmFsc2UsIGhlbHA9IkNsZWFuIHdvcmtp
bmcgZGlyZWN0b3J5IGJlZm9yZSBhcHBseWluZyBwYXRjaGVzIChyZW1vdmVzIGxvY2FsIGNoYW5n
ZXMgYW5kIGNvbW1pdHMpIikKICAgICBnaXRfY29tbWl0ID0gbWFrZV9vcHRpb24oIi1nIiwgIi0t
Z2l0LWNvbW1pdCIsIGFjdGlvbj0ic3RvcmUiLCBkZXN0PSJnaXRfY29tbWl0IiwgaGVscD0iT3Bl
cmF0ZSBvbiBhIGxvY2FsIGNvbW1pdC4gSWYgYSByYW5nZSwgdGhlIGNvbW1pdHMgYXJlIHNxdWFz
aGVkIGludG8gb25lLiA8cmVmPi4uLi4gaW5jbHVkZXMgdGhlIHdvcmtpbmcgY29weSBjaGFuZ2Vz
LiBVUFNUUkVBTSBjYW4gYmUgdXNlZCBmb3IgdGhlIHVwc3RyZWFtL3RyYWNraW5nIGJyYW5jaC4i
KQorICAgIGdyb3VwID0gbWFrZV9vcHRpb24oIi0tZ3JvdXAiLCBhY3Rpb249InN0b3JlIiwgZGVz
dD0iZ3JvdXAiLCBkZWZhdWx0PU5vbmUsIGhlbHA9IiIpCiAgICAgbG9jYWxfY29tbWl0ID0gbWFr
ZV9vcHRpb24oIi0tbG9jYWwtY29tbWl0IiwgYWN0aW9uPSJzdG9yZV90cnVlIiwgZGVzdD0ibG9j
YWxfY29tbWl0IiwgZGVmYXVsdD1GYWxzZSwgaGVscD0iTWFrZSBhIGxvY2FsIGNvbW1pdCBmb3Ig
ZWFjaCBhcHBsaWVkIHBhdGNoIikKICAgICBub25faW50ZXJhY3RpdmUgPSBtYWtlX29wdGlvbigi
LS1ub24taW50ZXJhY3RpdmUiLCBhY3Rpb249InN0b3JlX3RydWUiLCBkZXN0PSJub25faW50ZXJh
Y3RpdmUiLCBkZWZhdWx0PUZhbHNlLCBoZWxwPSJOZXZlciBwcm9tcHQgdGhlIHVzZXIsIGZhaWwg
YXMgZmFzdCBhcyBwb3NzaWJsZS4iKQogICAgIG9ic29sZXRlX3BhdGNoZXMgPSBtYWtlX29wdGlv
bigiLS1uby1vYnNvbGV0ZSIsIGFjdGlvbj0ic3RvcmVfZmFsc2UiLCBkZXN0PSJvYnNvbGV0ZV9w
YXRjaGVzIiwgZGVmYXVsdD1UcnVlLCBoZWxwPSJEbyBub3Qgb2Jzb2xldGUgb2xkIHBhdGNoZXMg
YmVmb3JlIHBvc3RpbmcgdGhpcyBvbmUuIikKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvdG9vbC9zdGVwcy9ydW50ZXN0cy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9v
bC9zdGVwcy9ydW50ZXN0cy5weQppbmRleCA3NWQ3MmJjOWFkMmY0ZTM2ZDQ1ZmRhYzkwZjE4MTk0
ODFjZjAyODhiLi5lZjk3OWU1NzI3ODZmNzFlYzMzMTA0OWVjZmI3MWY2Y2RmZWNhZTk1IDEwMDY0
NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvcnVudGVzdHMucHkKKysr
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3J1bnRlc3RzLnB5CkBAIC0xLDQg
KzEsNSBAQAogIyBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTUzLDkgKzU0LDE0IEBAIGNs
YXNzIFJ1blRlc3RzKEFic3RyYWN0U3RlcCk6CiAgICAgICAgICAgICBPcHRpb25zLml0ZXJhdGVf
b25fbmV3X3Rlc3RzLAogICAgICAgICAgICAgT3B0aW9ucy5ub25faW50ZXJhY3RpdmUsCiAgICAg
ICAgICAgICBPcHRpb25zLnF1aWV0LAorICAgICAgICAgICAgT3B0aW9ucy5ncm91cCwKICAgICAg
ICAgXQogCiAgICAgZGVmIHJ1bihzZWxmLCBzdGF0ZSk6CisgICAgICAgIGlmIHNlbGYuX29wdGlv
bnMuZ3JvdXAgPT0gImpzYyI6CisgICAgICAgICAgICBzZWxmLl9ydW5famF2YXNjcmlwdGNvcmVf
dGVzdHMoKQorICAgICAgICAgICAgcmV0dXJuCisKICAgICAgICAgaWYgc2VsZi5fb3B0aW9ucy5p
dGVyYXRlX29uX25ld190ZXN0czoKICAgICAgICAgICAgIF9sb2cuaW5mbygiUnVubmluZyBydW4t
d2Via2l0LXRlc3RzIG9uIG5ldyB0ZXN0cyIpCiAgICAgICAgICAgICBzZWxmLl9ydW5fd2Via2l0
X3Rlc3RzKHNlbGYuX29wdGlvbnMuaXRlcmF0ZV9vbl9uZXdfdGVzdHMpCkBAIC0xNDMsMyArMTQ5
LDcgQEAgY2xhc3MgUnVuVGVzdHMoQWJzdHJhY3RTdGVwKToKICAgICAgICAgICAgIGFyZ3MuYXBw
ZW5kKCItLWl0ZXJhdGlvbnM9JWQiICUgaXRlcmF0ZV9vbl9uZXdfdGVzdHMpCiAKICAgICAgICAg
c2VsZi5fdG9vbC5leGVjdXRpdmUucnVuX2FuZF90aHJvd19pZl9mYWlsKGFyZ3MsIGN3ZD1zZWxm
Ll90b29sLnNjbSgpLmNoZWNrb3V0X3Jvb3QpCisKKyAgICBkZWYgX3J1bl9qYXZhc2NyaXB0Y29y
ZV90ZXN0cyhzZWxmKToKKyAgICAgICAgYXJncyA9IHNlbGYuX3Rvb2wuZGVwcmVjYXRlZF9wb3J0
KCkucnVuX2phdmFzY3JpcHRjb3JlX3Rlc3RzX2NvbW1hbmQoc2VsZi5fb3B0aW9ucy5idWlsZF9z
dHlsZSkKKyAgICAgICAgc2VsZi5fdG9vbC5leGVjdXRpdmUucnVuX2FuZF90aHJvd19pZl9mYWls
KGFyZ3MsIGN3ZD1zZWxmLl90b29sLnNjbSgpLmNoZWNrb3V0X3Jvb3QpCmRpZmYgLS1naXQgYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvcnVudGVzdHNfdW5pdHRlc3QucHkgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvcnVudGVzdHNfdW5pdHRlc3QucHkKaW5k
ZXggMzAwMDY4MTkyMDBhZDkyZDg2MDk2NDJlOGY4MDI3ZDI0NmQ4Nzg0OS4uZDRkOTk2NDZjMmZm
MDVlY2RkY2M4ZDQxZTI3OTNmNTBmY2JkZjQ2NCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS90b29sL3N0ZXBzL3J1bnRlc3RzX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvdG9vbC9zdGVwcy9ydW50ZXN0c191bml0dGVzdC5weQpAQCAtNDAsNyArNDAs
NyBAQCBjbGFzcyBSdW5UZXN0c1Rlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICB0b29s
ID0gTW9ja1Rvb2wobG9nX2V4ZWN1dGl2ZT1UcnVlKQogICAgICAgICB0b29sLl9kZXByZWNhdGVk
X3BvcnQucnVuX3B5dGhvbl91bml0dGVzdHNfY29tbWFuZCA9IGxhbWJkYTogTm9uZQogICAgICAg
ICB0b29sLl9kZXByZWNhdGVkX3BvcnQucnVuX3BlcmxfdW5pdHRlc3RzX2NvbW1hbmQgPSBsYW1i
ZGE6IE5vbmUKLSAgICAgICAgc3RlcCA9IFJ1blRlc3RzKHRvb2wsIE1vY2tPcHRpb25zKHRlc3Q9
VHJ1ZSwgbm9uX2ludGVyYWN0aXZlPVRydWUsIHF1aWV0PUZhbHNlLCBidWlsZF9zdHlsZT0icmVs
ZWFzZSIsIGl0ZXJhdGVfb25fbmV3X3Rlc3RzPTApKQorICAgICAgICBzdGVwID0gUnVuVGVzdHMo
dG9vbCwgTW9ja09wdGlvbnModGVzdD1UcnVlLCBub25faW50ZXJhY3RpdmU9VHJ1ZSwgcXVpZXQ9
RmFsc2UsIGJ1aWxkX3N0eWxlPSJyZWxlYXNlIiwgaXRlcmF0ZV9vbl9uZXdfdGVzdHM9MCwgZ3Jv
dXA9Tm9uZSkpCiAKICAgICAgICAgaWYgc3lzLnBsYXRmb3JtICE9ICJjeWd3aW4iOgogICAgICAg
ICAgICAgZXhwZWN0ZWRfbG9ncyA9ICIiIlJ1bm5pbmcgYmluZGluZ3MgZ2VuZXJhdGlvbiB0ZXN0
cwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3N0ZXBzX3Vu
aXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3N0ZXBzX3VuaXR0
ZXN0LnB5CmluZGV4IDdkOTRhMTNiMzQ2M2Q5OGE0NGY5NDlmODE0Y2M3MTIxYzA2OGFiNWQuLjBm
MWZjZmM5YmE4OGNkOTY4MzNlZTE0ZTc5OGJlMzQxZDY0MGZmMzIgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9zdGVwc191bml0dGVzdC5weQorKysgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvc3RlcHNfdW5pdHRlc3QucHkKQEAgLTEsNCAr
MSw1IEBACiAjIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtMjgsNiArMjksNyBAQAogCiBp
bXBvcnQgdW5pdHRlc3QKIAorZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmV4ZWN1dGl2ZSBp
bXBvcnQgU2NyaXB0RXJyb3IKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5vdXRwdXRjYXB0
dXJlIGltcG9ydCBPdXRwdXRDYXB0dXJlCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5jb25maWcucG9y
dHMgaW1wb3J0IERlcHJlY2F0ZWRQb3J0CiBmcm9tIHdlYmtpdHB5LnRvb2wubW9ja3Rvb2wgaW1w
b3J0IE1vY2tPcHRpb25zLCBNb2NrVG9vbApAQCAtMzgsNiArNDAsNyBAQCBmcm9tIHdlYmtpdHB5
LnRvb2wgaW1wb3J0IHN0ZXBzCiBjbGFzcyBTdGVwc1Rlc3QodW5pdHRlc3QuVGVzdENhc2UpOgog
ICAgIGRlZiBfc3RlcF9vcHRpb25zKHNlbGYpOgogICAgICAgICBvcHRpb25zID0gTW9ja09wdGlv
bnMoKQorICAgICAgICBvcHRpb25zLmdyb3VwID0gTm9uZQogICAgICAgICBvcHRpb25zLm5vbl9p
bnRlcmFjdGl2ZSA9IFRydWUKICAgICAgICAgb3B0aW9ucy5wb3J0ID0gJ01PQ0sgcG9ydCcKICAg
ICAgICAgb3B0aW9ucy5xdWlldCA9IFRydWUKQEAgLTExMSw3ICsxMTQsNyBAQCBNT0NLIHJ1bl9h
bmRfdGhyb3dfaWZfZmFpbDogWydUb29scy9TY3JpcHRzL3Rlc3Qtd2Via2l0cHknXSwgY3dkPS9t
b2NrLWNoZWNrb3V0CiBSdW5uaW5nIFBlcmwgdW5pdCB0ZXN0cwogTU9DSyBydW5fYW5kX3Rocm93
X2lmX2ZhaWw6IFsnVG9vbHMvU2NyaXB0cy90ZXN0LXdlYmtpdHBlcmwnXSwgY3dkPS9tb2NrLWNo
ZWNrb3V0CiBSdW5uaW5nIEphdmFTY3JpcHRDb3JlIHRlc3RzCi1NT0NLIHJ1bl9hbmRfdGhyb3df
aWZfZmFpbDogWydUb29scy9TY3JpcHRzL3J1bi1qYXZhc2NyaXB0Y29yZS10ZXN0cyddLCBjd2Q9
L21vY2stY2hlY2tvdXQKK01PQ0sgcnVuX2FuZF90aHJvd19pZl9mYWlsOiBbJ1Rvb2xzL1Njcmlw
dHMvcnVuLWphdmFzY3JpcHRjb3JlLXRlc3RzJywgJy0tbm8tZmFpbC1mYXN0JywgJy0tanNvbi1v
dXRwdXQ9anNjX3Rlc3RfcmVzdWx0cy5qc29uJ10sIGN3ZD0vbW9jay1jaGVja291dAogUnVubmlu
ZyBiaW5kaW5ncyBnZW5lcmF0aW9uIHRlc3RzCiBNT0NLIHJ1bl9hbmRfdGhyb3dfaWZfZmFpbDog
WydUb29scy9TY3JpcHRzL3J1bi1iaW5kaW5ncy10ZXN0cyddLCBjd2Q9L21vY2stY2hlY2tvdXQK
IFJ1bm5pbmcgcnVuLXdlYmtpdC10ZXN0cwpAQCAtMTMzLDEwICsxMzYsMTExIEBAIE1PQ0sgcnVu
X2FuZF90aHJvd19pZl9mYWlsOiBbJ1Rvb2xzL1NjcmlwdHMvdGVzdC13ZWJraXRweSddLCBjd2Q9
L21vY2stY2hlY2tvdXQKIFJ1bm5pbmcgUGVybCB1bml0IHRlc3RzCiBNT0NLIHJ1bl9hbmRfdGhy
b3dfaWZfZmFpbDogWydUb29scy9TY3JpcHRzL3Rlc3Qtd2Via2l0cGVybCddLCBjd2Q9L21vY2st
Y2hlY2tvdXQKIFJ1bm5pbmcgSmF2YVNjcmlwdENvcmUgdGVzdHMKLU1PQ0sgcnVuX2FuZF90aHJv
d19pZl9mYWlsOiBbJ1Rvb2xzL1NjcmlwdHMvcnVuLWphdmFzY3JpcHRjb3JlLXRlc3RzJ10sIGN3
ZD0vbW9jay1jaGVja291dAorTU9DSyBydW5fYW5kX3Rocm93X2lmX2ZhaWw6IFsnVG9vbHMvU2Ny
aXB0cy9ydW4tamF2YXNjcmlwdGNvcmUtdGVzdHMnLCAnLS1uby1mYWlsLWZhc3QnLCAnLS1qc29u
LW91dHB1dD1qc2NfdGVzdF9yZXN1bHRzLmpzb24nXSwgY3dkPS9tb2NrLWNoZWNrb3V0CiBSdW5u
aW5nIGJpbmRpbmdzIGdlbmVyYXRpb24gdGVzdHMKIE1PQ0sgcnVuX2FuZF90aHJvd19pZl9mYWls
OiBbJ1Rvb2xzL1NjcmlwdHMvcnVuLWJpbmRpbmdzLXRlc3RzJ10sIGN3ZD0vbW9jay1jaGVja291
dAogUnVubmluZyBydW4td2Via2l0LXRlc3RzCiBNT0NLIHJ1bl9hbmRfdGhyb3dfaWZfZmFpbDog
WydUb29scy9TY3JpcHRzL3J1bi13ZWJraXQtdGVzdHMnLCAnLS1kZWJ1ZycsICctLXF1aWV0J10s
IGN3ZD0vbW9jay1jaGVja291dAogIiIiCiAgICAgICAgIE91dHB1dENhcHR1cmUoKS5hc3NlcnRf
b3V0cHV0cyhzZWxmLCBzdGVwLnJ1biwgW3t9XSwgZXhwZWN0ZWRfbG9ncz1leHBlY3RlZF9sb2dz
KQorCisgICAgZGVmIHRlc3RfcnVudGVzdHNfanNjKHNlbGYpOgorICAgICAgICBtb2NrX29wdGlv
bnMgPSBzZWxmLl9zdGVwX29wdGlvbnMoKQorICAgICAgICBtb2NrX29wdGlvbnMubm9uX2ludGVy
YWN0aXZlID0gRmFsc2UKKyAgICAgICAgbW9ja19vcHRpb25zLmJ1aWxkX3N0eWxlID0gInJlbGVh
c2UiCisgICAgICAgIG1vY2tfb3B0aW9ucy5ncm91cCA9ICJqc2MiCisgICAgICAgIHN0ZXAgPSBz
dGVwcy5SdW5UZXN0cyhNb2NrVG9vbChsb2dfZXhlY3V0aXZlPVRydWUpLCBtb2NrX29wdGlvbnMp
CisgICAgICAgIHRvb2wgPSBNb2NrVG9vbChsb2dfZXhlY3V0aXZlPVRydWUpCisgICAgICAgICMg
RklYTUU6IFdlIHNob3VsZG4ndCB1c2UgYSByZWFsIHBvcnQtb2JqZWN0IGhlcmUsIGJ1dCB0aGVy
ZSBpcyB0b28gbXVjaCB0byBtb2NrIGF0IHRoZSBtb21lbnQuCisgICAgICAgIHRvb2wuX2RlcHJl
Y2F0ZWRfcG9ydCA9IERlcHJlY2F0ZWRQb3J0KCkKKyAgICAgICAgc3RlcCA9IHN0ZXBzLlJ1blRl
c3RzKHRvb2wsIG1vY2tfb3B0aW9ucykKKyAgICAgICAgZXhwZWN0ZWRfbG9ncyA9ICIiIk1PQ0sg
cnVuX2FuZF90aHJvd19pZl9mYWlsOiBbJ1Rvb2xzL1NjcmlwdHMvcnVuLWphdmFzY3JpcHRjb3Jl
LXRlc3RzJywgJy0tbm8tZmFpbC1mYXN0JywgJy0tanNvbi1vdXRwdXQ9anNjX3Rlc3RfcmVzdWx0
cy5qc29uJywgJy0tcmVsZWFzZSddLCBjd2Q9L21vY2stY2hlY2tvdXQKKyIiIgorICAgICAgICBP
dXRwdXRDYXB0dXJlKCkuYXNzZXJ0X291dHB1dHMoc2VsZiwgc3RlcC5ydW4sIFt7fV0sIGV4cGVj
dGVkX2xvZ3M9ZXhwZWN0ZWRfbG9ncykKKworICAgIGRlZiB0ZXN0X3J1bnRlc3RzX2pzY19kZWJ1
ZyhzZWxmKToKKyAgICAgICAgbW9ja19vcHRpb25zID0gc2VsZi5fc3RlcF9vcHRpb25zKCkKKyAg
ICAgICAgbW9ja19vcHRpb25zLm5vbl9pbnRlcmFjdGl2ZSA9IEZhbHNlCisgICAgICAgIG1vY2tf
b3B0aW9ucy5idWlsZF9zdHlsZSA9ICJkZWJ1ZyIKKyAgICAgICAgbW9ja19vcHRpb25zLmdyb3Vw
ID0gImpzYyIKKyAgICAgICAgdG9vbCA9IE1vY2tUb29sKGxvZ19leGVjdXRpdmU9VHJ1ZSkKKyAg
ICAgICAgIyBGSVhNRTogV2Ugc2hvdWxkbid0IHVzZSBhIHJlYWwgcG9ydC1vYmplY3QgaGVyZSwg
YnV0IHRoZXJlIGlzIHRvbyBtdWNoIHRvIG1vY2sgYXQgdGhlIG1vbWVudC4KKyAgICAgICAgdG9v
bC5fZGVwcmVjYXRlZF9wb3J0ID0gRGVwcmVjYXRlZFBvcnQoKQorICAgICAgICBzdGVwID0gc3Rl
cHMuUnVuVGVzdHModG9vbCwgbW9ja19vcHRpb25zKQorICAgICAgICBleHBlY3RlZF9sb2dzID0g
IiIiTU9DSyBydW5fYW5kX3Rocm93X2lmX2ZhaWw6IFsnVG9vbHMvU2NyaXB0cy9ydW4tamF2YXNj
cmlwdGNvcmUtdGVzdHMnLCAnLS1uby1mYWlsLWZhc3QnLCAnLS1qc29uLW91dHB1dD1qc2NfdGVz
dF9yZXN1bHRzLmpzb24nLCAnLS1kZWJ1ZyddLCBjd2Q9L21vY2stY2hlY2tvdXQKKyIiIgorICAg
ICAgICBPdXRwdXRDYXB0dXJlKCkuYXNzZXJ0X291dHB1dHMoc2VsZiwgc3RlcC5ydW4sIFt7fV0s
IGV4cGVjdGVkX2xvZ3M9ZXhwZWN0ZWRfbG9ncykKKworICAgIGRlZiB0ZXN0X2J1aWxkX2pzY19k
ZWJ1ZyhzZWxmKToKKyAgICAgICAgbW9ja19vcHRpb25zID0gc2VsZi5fc3RlcF9vcHRpb25zKCkK
KyAgICAgICAgbW9ja19vcHRpb25zLm5vbl9pbnRlcmFjdGl2ZSA9IEZhbHNlCisgICAgICAgIG1v
Y2tfb3B0aW9ucy5idWlsZF9zdHlsZSA9ICJkZWJ1ZyIKKyAgICAgICAgbW9ja19vcHRpb25zLmJ1
aWxkID0gVHJ1ZQorICAgICAgICBtb2NrX29wdGlvbnMuYXJjaGl0ZWN0dXJlID0gVHJ1ZQorICAg
ICAgICBtb2NrX29wdGlvbnMuZ3JvdXAgPSAianNjIgorICAgICAgICB0b29sID0gTW9ja1Rvb2wo
bG9nX2V4ZWN1dGl2ZT1UcnVlKQorICAgICAgICAjIEZJWE1FOiBXZSBzaG91bGRuJ3QgdXNlIGEg
cmVhbCBwb3J0LW9iamVjdCBoZXJlLCBidXQgdGhlcmUgaXMgdG9vIG11Y2ggdG8gbW9jayBhdCB0
aGUgbW9tZW50LgorICAgICAgICB0b29sLl9kZXByZWNhdGVkX3BvcnQgPSBEZXByZWNhdGVkUG9y
dCgpCisgICAgICAgIHN0ZXAgPSBzdGVwcy5CdWlsZCh0b29sLCBtb2NrX29wdGlvbnMpCisgICAg
ICAgIGV4cGVjdGVkX2xvZ3MgPSAiIiJCdWlsZGluZyBXZWJLaXQKK01PQ0sgcnVuX2FuZF90aHJv
d19pZl9mYWlsOiBbJ1Rvb2xzL1NjcmlwdHMvYnVpbGQtanNjJywgJy0tZGVidWcnLCAnQVJDSFM9
VHJ1ZSddLCBjd2Q9L21vY2stY2hlY2tvdXQsIGVudj17J0xDX0FMTCc6ICdDJywgJ1RFUk0nOiAn
bm9uZScsICdNT0NLX0VOVklST05fQ09QWSc6ICcxJ30KKyIiIgorICAgICAgICBPdXRwdXRDYXB0
dXJlKCkuYXNzZXJ0X291dHB1dHMoc2VsZiwgc3RlcC5ydW4sIFt7fV0sIGV4cGVjdGVkX2xvZ3M9
ZXhwZWN0ZWRfbG9ncykKKworICAgIGRlZiB0ZXN0X2J1aWxkX2pzYyhzZWxmKToKKyAgICAgICAg
bW9ja19vcHRpb25zID0gc2VsZi5fc3RlcF9vcHRpb25zKCkKKyAgICAgICAgbW9ja19vcHRpb25z
Lm5vbl9pbnRlcmFjdGl2ZSA9IEZhbHNlCisgICAgICAgIG1vY2tfb3B0aW9ucy5idWlsZF9zdHls
ZSA9ICJyZWxlYXNlIgorICAgICAgICBtb2NrX29wdGlvbnMuYnVpbGQgPSBUcnVlCisgICAgICAg
IG1vY2tfb3B0aW9ucy5hcmNoaXRlY3R1cmUgPSBUcnVlCisgICAgICAgIG1vY2tfb3B0aW9ucy5n
cm91cCA9ICJqc2MiCisgICAgICAgIHRvb2wgPSBNb2NrVG9vbChsb2dfZXhlY3V0aXZlPVRydWUp
CisgICAgICAgICMgRklYTUU6IFdlIHNob3VsZG4ndCB1c2UgYSByZWFsIHBvcnQtb2JqZWN0IGhl
cmUsIGJ1dCB0aGVyZSBpcyB0b28gbXVjaCB0byBtb2NrIGF0IHRoZSBtb21lbnQuCisgICAgICAg
IHRvb2wuX2RlcHJlY2F0ZWRfcG9ydCA9IERlcHJlY2F0ZWRQb3J0KCkKKyAgICAgICAgc3RlcCA9
IHN0ZXBzLkJ1aWxkKHRvb2wsIG1vY2tfb3B0aW9ucykKKyAgICAgICAgZXhwZWN0ZWRfbG9ncyA9
ICIiIkJ1aWxkaW5nIFdlYktpdAorTU9DSyBydW5fYW5kX3Rocm93X2lmX2ZhaWw6IFsnVG9vbHMv
U2NyaXB0cy9idWlsZC1qc2MnLCAnLS1yZWxlYXNlJywgJ0FSQ0hTPVRydWUnXSwgY3dkPS9tb2Nr
LWNoZWNrb3V0LCBlbnY9eydMQ19BTEwnOiAnQycsICdURVJNJzogJ25vbmUnLCAnTU9DS19FTlZJ
Uk9OX0NPUFknOiAnMSd9CisiIiIKKyAgICAgICAgT3V0cHV0Q2FwdHVyZSgpLmFzc2VydF9vdXRw
dXRzKHNlbGYsIHN0ZXAucnVuLCBbe31dLCBleHBlY3RlZF9sb2dzPWV4cGVjdGVkX2xvZ3MpCisK
KyAgICBkZWYgdGVzdF9wYXRjaF9yZWxldmFudChzZWxmKToKKyAgICAgICAgc2VsZi5tYXhEaWZm
ID0gTm9uZQorICAgICAgICBtb2NrX29wdGlvbnMgPSBzZWxmLl9zdGVwX29wdGlvbnMoKQorICAg
ICAgICB0b29sID0gTW9ja1Rvb2wobG9nX2V4ZWN1dGl2ZT1UcnVlKQorICAgICAgICB0b29sLnNj
bSgpLl9tb2NrQ2hhbmdlZEZpbGVzID0gWyJKU1Rlc3RzL01vY2tGaWxlMSIsICJDaGFuZ2VMb2ci
XQorICAgICAgICAjIEZJWE1FOiBXZSBzaG91bGRuJ3QgdXNlIGEgcmVhbCBwb3J0LW9iamVjdCBo
ZXJlLCBidXQgdGhlcmUgaXMgdG9vIG11Y2ggdG8gbW9jayBhdCB0aGUgbW9tZW50LgorICAgICAg
ICB0b29sLl9kZXByZWNhdGVkX3BvcnQgPSBEZXByZWNhdGVkUG9ydCgpCisgICAgICAgIHN0ZXAg
PSBzdGVwcy5DaGVja1BhdGNoUmVsZXZhbmNlKHRvb2wsIG1vY2tfb3B0aW9ucykKKyAgICAgICAg
ZXhwZWN0ZWRfbG9ncyA9ICIiIkNoZWNraW5nIHJlbGV2YW5jZSBvZiBwYXRjaAorVGhpcyBwYXRj
aCBoYXMgcmVsZXZhbnQgY2hhbmdlcy4KKyIiIgorICAgICAgICBPdXRwdXRDYXB0dXJlKCkuYXNz
ZXJ0X291dHB1dHMoc2VsZiwgc3RlcC5ydW4sIFt7fV0sIGV4cGVjdGVkX2xvZ3M9ZXhwZWN0ZWRf
bG9ncykKKworICAgIGRlZiB0ZXN0X3BhdGNoX3JlbGV2YW50X2pzYyhzZWxmKToKKyAgICAgICAg
c2VsZi5tYXhEaWZmID0gTm9uZQorICAgICAgICBtb2NrX29wdGlvbnMgPSBzZWxmLl9zdGVwX29w
dGlvbnMoKQorICAgICAgICBtb2NrX29wdGlvbnMuZ3JvdXAgPSAianNjIgorICAgICAgICB0b29s
ID0gTW9ja1Rvb2wobG9nX2V4ZWN1dGl2ZT1UcnVlKQorICAgICAgICB0b29sLnNjbSgpLl9tb2Nr
Q2hhbmdlZEZpbGVzID0gWyJKU1Rlc3RzL01vY2tGaWxlMSIsICJDaGFuZ2VMb2ciXQorICAgICAg
ICAjIEZJWE1FOiBXZSBzaG91bGRuJ3QgdXNlIGEgcmVhbCBwb3J0LW9iamVjdCBoZXJlLCBidXQg
dGhlcmUgaXMgdG9vIG11Y2ggdG8gbW9jayBhdCB0aGUgbW9tZW50LgorICAgICAgICB0b29sLl9k
ZXByZWNhdGVkX3BvcnQgPSBEZXByZWNhdGVkUG9ydCgpCisgICAgICAgIHN0ZXAgPSBzdGVwcy5D
aGVja1BhdGNoUmVsZXZhbmNlKHRvb2wsIG1vY2tfb3B0aW9ucykKKyAgICAgICAgZXhwZWN0ZWRf
bG9ncyA9ICIiIkNoZWNraW5nIHJlbGV2YW5jZSBvZiBwYXRjaAorVGhpcyBwYXRjaCBoYXMgcmVs
ZXZhbnQgY2hhbmdlcy4KKyIiIgorICAgICAgICBPdXRwdXRDYXB0dXJlKCkuYXNzZXJ0X291dHB1
dHMoc2VsZiwgc3RlcC5ydW4sIFt7fV0sIGV4cGVjdGVkX2xvZ3M9ZXhwZWN0ZWRfbG9ncykKKwor
ICAgIGRlZiB0ZXN0X3BhdGNoX25vdF9yZWxldmFudF9qc2Moc2VsZik6CisgICAgICAgIHNlbGYu
bWF4RGlmZiA9IE5vbmUKKyAgICAgICAgbW9ja19vcHRpb25zID0gc2VsZi5fc3RlcF9vcHRpb25z
KCkKKyAgICAgICAgbW9ja19vcHRpb25zLmdyb3VwID0gImpzYyIKKyAgICAgICAgdG9vbCA9IE1v
Y2tUb29sKGxvZ19leGVjdXRpdmU9VHJ1ZSkKKyAgICAgICAgdG9vbC5zY20oKS5fbW9ja0NoYW5n
ZWRGaWxlcyA9IFsiVG9vbHMvQ2hhbmdlTG9nIiwgIlRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9v
bC9zdGVwcy9zdGVwc191bml0dGVzdC5weSJdCisgICAgICAgICMgRklYTUU6IFdlIHNob3VsZG4n
dCB1c2UgYSByZWFsIHBvcnQtb2JqZWN0IGhlcmUsIGJ1dCB0aGVyZSBpcyB0b28gbXVjaCB0byBt
b2NrIGF0IHRoZSBtb21lbnQuCisgICAgICAgIHRvb2wuX2RlcHJlY2F0ZWRfcG9ydCA9IERlcHJl
Y2F0ZWRQb3J0KCkKKyAgICAgICAgc3RlcCA9IHN0ZXBzLkNoZWNrUGF0Y2hSZWxldmFuY2UodG9v
bCwgbW9ja19vcHRpb25zKQorICAgICAgICBleHBlY3RlZF9sb2dzID0gIiIiQ2hlY2tpbmcgcmVs
ZXZhbmNlIG9mIHBhdGNoCitUaGlzIHBhdGNoIGRvZXMgbm90IGhhdmUgcmVsZXZhbnQgY2hhbmdl
cy4KKyIiIgorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFNjcmlwdEVycm9yKToKKyAg
ICAgICAgICAgIE91dHB1dENhcHR1cmUoKS5hc3NlcnRfb3V0cHV0cyhzZWxmLCBzdGVwLnJ1biwg
W3t9XSwgZXhwZWN0ZWRfbG9ncz1leHBlY3RlZF9sb2dzKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>301667</attachid>
            <date>2017-02-15 15:50:43 -0800</date>
            <delta_ts>2017-02-16 15:51:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-162458-20170215154807.patch</filename>
            <type>text/plain</type>
            <size>91946</size>
            <attacher name="Srinivasan Vijayaraghavan">webkit</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEyMTUyCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMjEzZWYxNzgzNzkyOWQ1YzAwZjhiMGY0NWI4ZTcyNDhm
MWVlOTdiMi4uMjk3MjAyNDczNTE3NTUzYWU2NGYyMWZmMTQwNGY1Y2Q4NjQ1OGNmYiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0
MCBAQAorMjAxNy0wMi0xNSAgU3Jpbml2YXNhbiBWaWpheWFyYWdoYXZhbiAgPHN2aWpheWFyYWdo
YXZhbkBhcHBsZS5jb20+CisKKyAgICAgICAgRVdTIHNob3VsZCBydW4gSmF2YVNjcmlwdENvcmUg
dGVzdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2
MjQ1OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
UXVldWVTdGF0dXNTZXJ2ZXIvY29uZmlnL3F1ZXVlcy5weTogQWRkIGpzYy1ld3MgcXVldWUuCisg
ICAgICAgICogUXVldWVTdGF0dXNTZXJ2ZXIvbW9kZWwvcXVldWVzdGF0dXMucHk6CisgICAgICAg
IChRdWV1ZVN0YXR1cy5kaWRfc2tpcCk6IFJldHVybnMgd2hldGhlciBwYXRjaCB3YXMgc2tpcHBl
ZCwgYmFzZWQgb24gc3RhdHVzLgorICAgICAgICAqIFF1ZXVlU3RhdHVzU2VydmVyL2hhbmRsZXJz
L3N0YXR1c2J1YmJsZS5weToKKyAgICAgICAgKFN0YXR1c0J1YmJsZS5fc2hvdWxkX3Nob3dfYnVi
YmxlX2Zvcik6IEFkZCBsb2dpYyB0byBoaWRlIGpzYy1ld3MgYnViYmxlIGlmIHRoZSBwYXRjaCBk
b2VzIG5vdCB0b3VjaCBqc2MuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hl
Y2tvdXQvc2NtL3NjbV9tb2NrLnB5OgorICAgICAgICAoTW9ja1NDTS5fX2luaXRfXyk6IEFkZCBf
bW9ja0NoYW5nZWRGaWxlcyB2YXJpYWJsZS4KKyAgICAgICAgKE1vY2tTQ00uY2hhbmdlZF9maWxl
cyk6IENoYW5nZSB0byB1c2UgX21vY2tDaGFuZ2VkRmlsZXMgdmFyaWFibGVzLgorICAgICAgICAq
IFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9ld3MuanNvbjogQWRkIGNvbmZpZyBpbmZv
IGZvciBKU0MgRVdTLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9w
b3J0cy5weTogQWRkIHN1cHBvcnQgZm9yIEpTQyBFV1MgaW4gTWFjIFBvcnQuCisgICAgICAgIChE
ZXByZWNhdGVkUG9ydC5fYXBwZW5kX2J1aWxkX3N0eWxlX2ZsYWcpOiBIZWxwZXIgZnVuY3Rpb24g
dG8gYXBwZW5kIGJ1aWxkX3N0eWxlIHRvIGEgY29tbWFuZC4KKyAgICAgICAgKERlcHJlY2F0ZWRQ
b3J0LmJ1aWxkX2pzY19jb21tYW5kKTogQWRkZWQgLSBjb21tYW5kIHRvIGJ1aWxkIEpTQyBvbmx5
IChxdWlja2VyIHRoYW4gYnVpbGRpbmcgYWxsIG9mIFdlYktpdCkuCisgICAgICAgIChEZXByZWNh
dGVkUG9ydC5ydW5famF2YXNjcmlwdGNvcmVfdGVzdHNfY29tbWFuZCk6IEFsbG93IEpTQyBFV1Mg
dG8gb25seSBydW4gSlNDIHRlc3RzLgorICAgICAgICAoTWFjUG9ydC5ydW5fd2Via2l0X3Rlc3Rz
X2NvbW1hbmQpOiBDaGVjayBmb3IgSlNDLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29t
bW9uL2NvbmZpZy9wb3J0c19tb2NrLnB5OgorICAgICAgICAoTW9ja1BvcnQucnVuX2phdmFzY3Jp
cHRjb3JlX3Rlc3RzX2NvbW1hbmQpOiBBZGQgYnVpbGRfc3R5bGUgYXJndW1lbnQuCisgICAgICAg
ICogU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL3BvcnRzX3VuaXR0ZXN0LnB5OgorICAg
ICAgICAoRGVwcmVjYXRlZFBvcnRUZXN0LnRlc3RfbWFjX3BvcnQpOiBBZGQgdW5pdCB0ZXN0cyBm
b3IgYnVpbGQtanNjIHNoZWxsIGNvbW1hbmQuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9j
b21tb24vbmV0L2Fic3RyYWN0dGVzdHJlc3VsdHMucHk6IEFkZGVkLgorICAgICAgICAoQWJzdHJh
Y3RUZXN0UmVzdWx0cyk6IEFic3RyYWN0IHN1cGVyY2xhc3Mgb2YgSlNDVGVzdFJlc3VsdHMgYW5k
IEpTQ1Rlc3RSZXN1bHRzLgorICAgICAgICAoQWJzdHJhY3RUZXN0UmVzdWx0cy50ZXN0X3Jlc3Vs
dHMpOiBTdHViLgorICAgICAgICAoQWJzdHJhY3RUZXN0UmVzdWx0cy5mYWlsaW5nX3Rlc3RzKTog
U3R1Yi4KKyAgICAgICAgKEFic3RyYWN0VGVzdFJlc3VsdHMuZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1
cmVfbGltaXQpOiBTdHViLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9q
c2N0ZXN0cmVzdWx0cy5weTogQWRkZWQuCisgICAgICAgIChKU0NUZXN0UmVzdWx0cyk6IEFkZGVk
LgorICAgICAgICAoSlNDVGVzdFJlc3VsdHMuaW50ZXJzZWN0aW9uKTogUmV0dXJuIGEgSlNDVGVz
dFJlc3VsdHMgb2JqZWN0IHdpdGggZmFpbHVyZXMgY29tbW9uIHRvIGJvdGggaW5wdXQgb2JqZWN0
cy4KKyAgICAgICAgKEpTQ1Rlc3RSZXN1bHRzLnJlc3VsdHNfZnJvbV9zdHJpbmcpOiBVc2UganNv
biBsaWJyYXJ5IHRvIHBhcnNlIHJlc3VsdHMuCisgICAgICAgIChKU0NUZXN0UmVzdWx0cy5fX2lu
aXRfXyk6IEluaXRpYWxpemUgbWVtYmVycy4KKyAgICAgICAgKEpTQ1Rlc3RSZXN1bHRzLmVxdWFs
cyk6IFRoaXMgZW5hYmxlcyB1bml0IHRlc3RpbmcuCisgICAgICAgIChKU0NUZXN0UmVzdWx0cy5p
c19zdWJzZXQpOiBDaGVja3MgaWYgb25lIHNldCBvZiBmYWlsdXJlcyBpcyBhIHN1YnNldCBvZiBh
bm90aGVyLgorICAgICAgICAoSlNDVGVzdFJlc3VsdHMuYWxsX3Bhc3NlZCk6IEdldHRlci4KKyAg
ICAgICAgKEpTQ1Rlc3RSZXN1bHRzLmZhaWxpbmdfdGVzdF9yZXN1bHRzKTogR2V0dGVyLiBTb21l
IG9mIHRoZXNlIGV4aXN0IGZvciBpbnRlcm9wYWJpbGl0eSByZWFzb25zLgorICAgICAgICAoSlND
VGVzdFJlc3VsdHMudGVzdF9yZXN1bHRzKTogR2V0dGVyLgorICAgICAgICAoSlNDVGVzdFJlc3Vs
dHMuZmFpbGluZ190ZXN0cyk6IEdldHRlci4KKyAgICAgICAgKEpTQ1Rlc3RSZXN1bHRzLmRpZF9l
eGNlZWRfdGVzdF9mYWlsdXJlX2xpbWl0KTogR2V0dGVyLgorICAgICAgICAqIFNjcmlwdHMvd2Vi
a2l0cHkvY29tbW9uL25ldC9qc2N0ZXN0cmVzdWx0c191bml0dGVzdC5weTogQWRkZWQuCisgICAg
ICAgIChKU0NUZXN0UmVzdWx0c1Rlc3QpOiBDbGFzcyB0byB0ZXN0IEpTQ1Rlc3RSZXN1bHRzLgor
ICAgICAgICAoSlNDVGVzdFJlc3VsdHNUZXN0LnRlc3RfcmVzdWx0c19mcm9tX3N0cmluZyk6IFRl
c3RzIHBhcnNpbmcuCisgICAgICAgIChKU0NUZXN0UmVzdWx0c1Rlc3QudGVzdF9pbnRlcnNlY3Rp
b25fYXBpX3Rlc3RzKTogVW5pdCB0ZXN0IGZvciBpbnRlcnNlY3Rpb24oKSBjbGFzcyBtZXRob2Qu
CisgICAgICAgIChKU0NUZXN0UmVzdWx0c1Rlc3QudGVzdF9pbnRlcnNlY3Rpb25fc3RyZXNzX3Rl
c3RzKTogVW5pdCB0ZXN0IGZvciBpbnRlcnNlY3Rpb24oKSBjbGFzcyBtZXRob2QuCisgICAgICAg
IChKU0NUZXN0UmVzdWx0c1Rlc3QudGVzdF9pbnRlcnNlY3Rpb25fZ2VuZXJhbF9jYXNlKTogVW5p
dCB0ZXN0IGZvciBpbnRlcnNlY3Rpb24oKSBjbGFzcyBtZXRob2QuCisgICAgICAgICogU2NyaXB0
cy93ZWJraXRweS9wb3J0L2Jhc2UucHk6CisgICAgICAgIChQb3J0LmpzY19yZXN1bHRzX2RpcmVj
dG9yeSk6IFJldHVybnMgdGhlIGRpcmVjdG9yeSBmb3IgdGhlIEpTQyB0ZXN0IHJlc3VsdHMgSlNP
TiBmaWxlLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvZWFybHl3YXJuaW5n
c3lzdGVtdGFzay5weToKKyAgICAgICAgKEVhcmx5V2FybmluZ1N5c3RlbVRhc2sucnVuKTogQWRk
IGNoZWNrX3BhdGNoX3JlbGV2YW5jZSBzdGVwLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkv
dG9vbC9ib3QvanNjZXdzX3VuaXR0ZXN0LnB5OiBBZGRlZC4KKyAgICAgICAgKE1vY2tQYXRjaEFu
YWx5c2lzVGFzayk6IE1vY2tlZC1vdXQgdmVyc2lvbiBvZiBQYXRjaEFuYWx5c2lzVGFzayB0aGF0
IGRvZXNuJ3QgcnVuIGNvbW1hbmRzLgorICAgICAgICAoTW9ja1BhdGNoQW5hbHlzaXNUYXNrLl9f
aW5pdF9fKTogU2V0cyBhdHRyaWJ1dGVzLgorICAgICAgICAoTW9ja1BhdGNoQW5hbHlzaXNUYXNr
Ll90ZXN0KTogT3ZlcnJpZGUgdG8gbm90IHJ1biBjb21tYW5kLgorICAgICAgICAoTW9ja1BhdGNo
QW5hbHlzaXNUYXNrLl9idWlsZF9hbmRfdGVzdF93aXRob3V0X3BhdGNoKTogT3ZlcnJpZGUgdG8g
bm90IHJ1biBjb21tYW5kLgorICAgICAgICAoTW9ja1BhdGNoQW5hbHlzaXNUYXNrLnZhbGlkYXRl
KTogQXNzdW1lIG1vY2tlZCBwYXRjaCBpcyB2YWxpZCBmb3IgcHVycG9zZXMgb2YgdGVzdGluZyBy
ZXRyeSBsb2dpYy4KKyAgICAgICAgKE1vY2tQYXRjaEFuYWx5c2lzVGFzay50ZXN0X3J1bl9jb3Vu
dCk6IFNwZWNpZmljIHRvIHRoZSBtb2NrZWQgdmVyc2lvbiwgdG8gdGVzdCByZXRyeSBsb2dpYy4K
KyAgICAgICAgKE1vY2tKU0NFYXJseVdhcm5pbmdTeXN0ZW0pOiBNb2NrZWQtb3V0IHZlcnNpb24g
b2YgQWJzdGFyY3RFYXJseVdhcm5pbmdTeXN0ZW0gc28gd2UgY2FuIHByb3ZpZGUgdGVzdCByZXN1
bHRzLgorICAgICAgICAoTW9ja0pTQ0Vhcmx5V2FybmluZ1N5c3RlbS5fX2luaXRfXyk6IFNldHMg
YXR0cmlidXRlcywgYWxzbyBzZXRzIGdyb3VwIHRvIGpzYy4KKyAgICAgICAgKE1vY2tKU0NFYXJs
eVdhcm5pbmdTeXN0ZW0udGVzdF9yZXN1bHRzKTogUmV0dXJucyB0ZXN0IHJlc3VsdHMgcHJvdmlk
ZWQgYnkgdXMsIGluc3RlYWQgb2YgdXNpbmcgYSBKU09OIHJlYWRlci4KKyAgICAgICAgKEpTQ0Vh
cmx5V2FybmluZ1N5c3RlbVRlc3QpOiBDbGFzcyB0byB0ZXN0IHJldHJ5IGxvZ2ljIGluIGJlbG93
IHNpdHVhdGlvbnMuCisgICAgICAgIChKU0NFYXJseVdhcm5pbmdTeXN0ZW1UZXN0Ll9jcmVhdGVf
dGFzayk6IEhlbHBlciBmdW5jdGlvbiB0byBhYnN0cmFjdCBvdXQgY29tbW9uIGNvZGUuCisgICAg
ICAgIChKU0NFYXJseVdhcm5pbmdTeXN0ZW1UZXN0Ll9yZXN1bHRzX2luZGljYXRlX2FsbF9wYXNz
ZWQpOiBGYWxzZSBpZiBpbnB1dCBpcyBOb25lIG9yIGhhcyBmYWlsdXJlcywgZWxzZSBUcnVlLgor
ICAgICAgICAoSlNDRWFybHlXYXJuaW5nU3lzdGVtVGVzdC50ZXN0X3N1Y2Nlc3NfY2FzZSk6IENs
ZWFuIHBhdGNoIG9uIGNsZWFuIHRyZWUuCisgICAgICAgIChKU0NFYXJseVdhcm5pbmdTeXN0ZW1U
ZXN0LnRlc3RfdGVzdF9mYWlsdXJlKTogRmFpbGVkIHBhdGNoIG9uIGNsZWFuIHRyZWUuCisgICAg
ICAgIChKU0NFYXJseVdhcm5pbmdTeXN0ZW1UZXN0LnRlc3RfZml4KTogUGF0Y2ggdGhhdCBmaXhl
cyBhbGwgdHJlZSByZWRuZXNzLgorICAgICAgICAoSlNDRWFybHlXYXJuaW5nU3lzdGVtVGVzdC50
ZXN0X2luZWZmZWN0aXZlX3BhdGNoKTogUGF0Y2ggdGhhdCBoYXMgc2FtZSBmYWlsdXJlcyBhcyB0
cmVlLgorICAgICAgICAoSlNDRWFybHlXYXJuaW5nU3lzdGVtVGVzdC50ZXN0X3BhcnRpYWxseV9l
ZmZlY3RpdmVfcGF0Y2gpOiBQYXRjaCBmaXhlcyBzb21lIGZhaWx1cmVzIGJ1dCBhZGRzIG5vIG5l
dyBmYWlsdXJlcy4KKyAgICAgICAgKEpTQ0Vhcmx5V2FybmluZ1N5c3RlbVRlc3QudGVzdF9kaWZm
ZXJlbnRfdGVzdF9mYWlsdXJlc19pbl9wYXRjaF9hbmRfdHJlZSk6IFBhdGNoIGhhcyBzb21lIGZh
aWx1cmVzIG5vdCBpbiB0cmVlLgorICAgICAgICAoSlNDRWFybHlXYXJuaW5nU3lzdGVtVGVzdC50
ZXN0X2ZpcnN0X3Jlc3VsdHNfY291bGRfbm90X2JlX3JlYWQpOiBQYXRjaCByZXN1bHRzIG5vdCBy
ZWFkYWJsZS4KKyAgICAgICAgKEpTQ0Vhcmx5V2FybmluZ1N5c3RlbVRlc3QudGVzdF9zZWNvbmRf
cmVzdWx0c19jb3VsZF9ub3RfYmVfcmVhZCk6IFBhdGNoIHJlc3VsdHMgbm90IHJlYWRhYmxlIG9u
IHNlY29uZCBydW4uCisgICAgICAgIChKU0NFYXJseVdhcm5pbmdTeXN0ZW1UZXN0LnRlc3RfY2xl
YW5fcmVzdWx0c19jb3VsZF9ub3RfYmVfcmVhZCk6IFJlc3VsdHMgZnJvbSBjbGVhbiB0cmVlIG5v
dCByZWFkYWJsZS4KKyAgICAgICAgKEpTQ0Vhcmx5V2FybmluZ1N5c3RlbVRlc3QudGVzdF9mbGFr
eV9yZXN1bHRzX29uX2NsZWFuX3RyZWVfcGFzcyk6IFBhdGNoIGhhcyBvbmUgZmxha2UgYW5kIG5v
IGZhaWx1cmVzLgorICAgICAgICAoSlNDRWFybHlXYXJuaW5nU3lzdGVtVGVzdC50ZXN0X2ZsYWt5
X3Jlc3VsdHNfb25fY2xlYW5fdHJlZV9wYXNzX3YyKTogUGF0Y2ggaGFzIG9uZSBmbGFrZSBhbmQg
bm8gZmFpbHVyZXMuCisgICAgICAgIChKU0NFYXJseVdhcm5pbmdTeXN0ZW1UZXN0LnRlc3RfZmxh
a3lfcmVzdWx0c19vbl9jbGVhbl90cmVlX2ZhaWx1cmUpOiBQYXRjaCBoYXMgZmxha2VzIGFuZCBm
YWlsZWQgdGVzdHMuCisgICAgICAgIChKU0NFYXJseVdhcm5pbmdTeXN0ZW1UZXN0LnRlc3RfZmxh
a3lfcmVzdWx0c19vbl9yZWRfdHJlZV9wYXNzKTogUGF0Y2ggaGFzIHNhbWUgZmFpbHVyZXMgYXMg
dHJlZSwgcGx1cyBhIGZsYWtlLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3Qv
anNjdGVzdHJlc3VsdHNyZWFkZXIucHk6IEFkZGVkLgorICAgICAgICAoSlNDVGVzdFJlc3VsdHNS
ZWFkZXIpOiBSZWFkcyByZXN1bHRzIGZpbGUuCisgICAgICAgIChKU0NUZXN0UmVzdWx0c1JlYWRl
ci5fX2luaXRfXyk6IFNldHMgYXR0cmlidXRlcy4KKyAgICAgICAgKEpTQ1Rlc3RSZXN1bHRzUmVh
ZGVyLl9yZWFkX2ZpbGVfY29udGVudHMpOiBSZWFkcyBmaWxlLgorICAgICAgICAoSlNDVGVzdFJl
c3VsdHNSZWFkZXIuX2NyZWF0ZV9qc2NfdGVzdF9yZXN1bHRzKTogQ3JlYXRlcyBhIEpTQ1Rlc3RS
ZXN1bHRzIG9iamVjdC4KKyAgICAgICAgKEpTQ1Rlc3RSZXN1bHRzUmVhZGVyLnJlc3VsdHMpOiBJ
bnZva2VzIF9jcmVhdGVfanNjX3Rlc3RfcmVzdWx0cyB0byByZXR1cm4gYSBKU0NUZXN0UmVzdWx0
cyBvYmplY3QuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9wYXRjaGFuYWx5
c2lzdGFzay5weToKKyAgICAgICAgKFBhdGNoSXNOb3RBcHBsaWNhYmxlKTogRXhjZXB0aW9uIGZv
ciB3aGVuIHBhdGNoIGRvZXNuJ3QgaGF2ZSByZWxldmFudCBjaGFuZ2VzLgorICAgICAgICAoUGF0
Y2hBbmFseXNpc1Rhc2suX2NoZWNrX3BhdGNoX3JlbGV2YW5jZSk6IEFkZGVkLgorICAgICAgICAo
UGF0Y2hBbmFseXNpc1Rhc2suX2J1aWxkKTogQ2hlY2sgZm9yIEpTQy4KKyAgICAgICAgKFBhdGNo
QW5hbHlzaXNUYXNrLl9idWlsZF93aXRob3V0X3BhdGNoKTogQ2hlY2sgZm9yIEpTQy4KKyAgICAg
ICAgKFBhdGNoQW5hbHlzaXNUYXNrLl90ZXN0KTogQ2hlY2sgZm9yIEpTQy4KKyAgICAgICAgKFBh
dGNoQW5hbHlzaXNUYXNrLl9idWlsZF9hbmRfdGVzdF93aXRob3V0X3BhdGNoKTogQ2hlY2sgZm9y
IEpTQy4KKyAgICAgICAgKFBhdGNoQW5hbHlzaXNUYXNrLl9yZXRyeV9qc2NfdGVzdHMpOiBSZXRy
eSBsb2dpYyBmb3IgSlNDIEVXUy4KKyAgICAgICAgKFBhdGNoQW5hbHlzaXNUYXNrLl9yZXRyeV9s
YXlvdXRfdGVzdHMpOiBSZXRyeSBsb2dpYyBmb3IgbGF5b3V0IHRlc3RzIEVXUy4KKyAgICAgICAg
KFBhdGNoQW5hbHlzaXNUYXNrLl90ZXN0X3BhdGNoKTogQWRkIHJldHJ5IGxvZ2ljIGZvciBKU0Mu
CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Rvd25sb2FkLnB5Ogor
ICAgICAgICAoQ2hlY2tQYXRjaFJlbGV2YW5jZSk6IEFkZCBjaGVjay1wYXRjaC1yZWxldmFuY2Ug
Y29tbWFuZC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZWFybHl3
YXJuaW5nc3lzdGVtLnB5OgorICAgICAgICAoQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0uX2Ny
ZWF0ZV90YXNrKTogQWJzdHJhY3Qgb3V0IHRvIGVuYWJsZSBtb2NraW5nLgorICAgICAgICAoQWJz
dHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0uYmVnaW5fd29ya19xdWV1ZSk6IFVzZSBKU0NUZXN0UmVz
dWx0c1JlYWRlciBub3QgTGF5b3V0VGVzdFJlc3VsdHNSZWFkZXIgaW4gSlNDIEVXUy4KKyAgICAg
ICAgKEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtLnJldmlld19wYXRjaCk6IEhhbmRsZSBQYXRj
aElzQXBwbGljYWJsZS4KKyAgICAgICAgKEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtLnRlc3Rf
cmVzdWx0cyk6IF9sYXlvdXRfdGVzdF9yZXN1bHRzX3JlYWRlciAtPiBfdGVzdF9yZXN1bHRzX3Jl
YWRlci4KKyAgICAgICAgKEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtLmFyY2hpdmVfbGFzdF90
ZXN0X3Jlc3VsdHMpOiBfbGF5b3V0X3Rlc3RfcmVzdWx0c19yZWFkZXIgLT4gX3Rlc3RfcmVzdWx0
c19yZWFkZXIuCisgICAgICAgIChBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbS5ncm91cCk6IFRo
aXMgYXR0cmlidXRlIGRldGVybWluZXMgdGhlIHR5cGUgb2YgRVdTIChlZy4gSlNDKS4KKyAgICAg
ICAgKEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtLmxvYWRfZXdzX2NsYXNzZXMpOiBBZGQgX2dy
b3VwLCBhbmQgbWFrZSBjbGFzc2VzIG9mIHR5cGUgY2xzIHRvIGVuYWJsZSBtb2NraW5nLgorICAg
ICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9lYXJseXdhcm5pbmdzeXN0ZW1f
dW5pdHRlc3QucHk6CisgICAgICAgIChUZXN0RVdTKTogU2FtcGxlIGxheW91dCB0ZXN0IEVXUyBj
bGFzcyB1c2VkIGZvciB1bml0IHRlc3RpbmcuCisgICAgICAgIChUZXN0SlNDRVdTKTogU2FtcGxl
IEpTQyBFV1MgY2xhc3MgdXNlZCBmb3IgdW5pdCB0ZXN0aW5nLgorICAgICAgICAoQWJzdHJhY3RF
YXJseVdhcm5pbmdTeXN0ZW1UZXN0LnRlc3RfZmFpbGluZ190ZXN0c19tZXNzYWdlLlRlc3RFV1Mp
OiBBZGQgX2dyb3VwLgorICAgICAgICAoQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW1UZXN0LnRl
c3RfZmFpbGluZ19qc2NfdGVzdHNfbWVzc2FnZS5UZXN0RVdTKTogQWRkZWQgdGVzdCBmb3IganNj
IGZhaWx1cmVzIG1lc3NhZ2UuCisgICAgICAgIChBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbVRl
c3QpOiBBZGQgX2dyb3VwIHZhcmlhYmxlLgorICAgICAgICAoRWFybHlXYXJuaW5nU3lzdGVtVGVz
dC5fZGVmYXVsdF9leHBlY3RlZF9sb2dzKTogQWRkIGNoZWNrLXBhdGNoLXJlbGV2YW5jZSBzdGVw
LCBpbmNvbmNsdXNpdmUgbG9ncywgYW5kIGdyb3VwLgorICAgICAgICAoRWFybHlXYXJuaW5nU3lz
dGVtVGVzdC5fdGVzdF9ld3MpOiBBZGQgbG9nc19hcmVfY29uY2x1c2l2ZSBvcHRpb24gdG8gcGFz
cyB0aHJvdWdoIHRvIGRlZmF1bHRfZXhwZWN0ZWRfbG9ncygpLgorICAgICAgICAoRWFybHlXYXJu
aW5nU3lzdGVtVGVzdC50ZXN0X2luY29uY2x1c2l2ZV90ZXN0X3Jlc3VsdHMpOiBUZXN0IG5vdCBy
ZW1vdmluZyBwYXRjaCBmcm9tIHF1ZXVlIGlmIG5vdCBjb25jbHVzaXZlLgorICAgICAgICAoTW9j
a0Fic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtKTogQWRkZWQuCisgICAgICAgIChNb2NrQWJzdHJh
Y3RFYXJseVdhcm5pbmdTeXN0ZW0udGVzdF9yZXN1bHRzKTogU2ltdWxhdGVzIGluY29uY2x1c2l2
ZSByZXN1bHRzLgorICAgICAgICAoTW9ja0Fic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtLl9jcmVh
dGVfdGFzayk6IFVzZSBNb2NrRWFybHlXYXJuaW5nU3lzdGVtVGFzayAobm90IEVhcmx5V2Fybmlu
Z1N5c3RlbVRhc2spLgorICAgICAgICAoTW9ja0Vhcmx5V2FybmluZ1N5c3RlbVRhc2spOiBBZGRl
ZC4KKyAgICAgICAgKE1vY2tFYXJseVdhcm5pbmdTeXN0ZW1UYXNrLl90ZXN0X3BhdGNoKTogU2lt
dWxhdGVzIHJ1bm5pbmcgdGVzdHMgYnV0IG5vdCBnZXR0aW5nIGEgY29uY2x1c2l2ZSByZXN1bHQu
CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL19faW5pdF9fLnB5OiBBZGQg
Q2hlY2tQYXRjaFJlbGV2YW5jZSBpbXBvcnQuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90
b29sL3N0ZXBzL2J1aWxkLnB5OgorICAgICAgICAoQnVpbGQub3B0aW9ucyk6IENoZWNrIGZvciBK
U0MuCisgICAgICAgIChCdWlsZC5idWlsZCk6IENoZWNrIGZvciBKU0MuCisgICAgICAgIChCdWls
ZC5ydW4pOiBDaGVjayBmb3IgSlNDLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9z
dGVwcy9jaGVja3BhdGNocmVsZXZhbmNlLnB5OiBBZGRlZC4KKyAgICAgICAgKENoZWNrUGF0Y2hS
ZWxldmFuY2UpOiBBZGRlZC4KKyAgICAgICAgKENoZWNrUGF0Y2hSZWxldmFuY2UuX2RvZXNfY29u
dGFpbl9jaGFuZ2VfaW5fcGF0aHMpOiBBYnN0cmFjdCBmdW5jdGlvbiB0byBwZXJmb3JtIHJlZ2V4
IG1hdGNoaW5nLgorICAgICAgICAoQ2hlY2tQYXRjaFJlbGV2YW5jZS5ydW4pOiBDaGVjayBpZiBj
aGFuZ2VkIGZpbGVzIGluIHBhdGNoIGJlbG9uZyBpbiBjZXJ0YWluIGZvbGRlcnMuCisgICAgICAg
ICogU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL29wdGlvbnMucHk6CisgICAgICAgIChPcHRp
b25zKTogQWRkIC0tZ3JvdXAgY29tbWFuZCBsaW5lIG9wdGlvbi4KKyAgICAgICAgKiBTY3JpcHRz
L3dlYmtpdHB5L3Rvb2wvc3RlcHMvcnVudGVzdHMucHk6CisgICAgICAgIChSdW5UZXN0cy5vcHRp
b25zKTogQWRkIGdyb3VwLgorICAgICAgICAoUnVuVGVzdHMucnVuKTogQ2hlY2sgZm9yIEpTQy4K
KyAgICAgICAgKFJ1blRlc3RzLl9ydW5fd2Via2l0X3Rlc3RzKTogQ2hlY2sgZm9yIEpTQy4KKyAg
ICAgICAgKFJ1blRlc3RzKTogQWRkIF9ncm91cCBhdHRyaWJ1dGUuCisgICAgICAgIChSdW5UZXN0
cy5fcnVuX2phdmFzY3JpcHRjb3JlX3Rlc3RzKTogTmV3LgorICAgICAgICAqIFNjcmlwdHMvd2Vi
a2l0cHkvdG9vbC9zdGVwcy9zdGVwc191bml0dGVzdC5weTogVW5pdCB0ZXN0cy4KKwogMjAxNy0w
Mi0xMCAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgogCiAgICAgICAgIFtS
ZXNvdXJjZSBUaW1pbmddIEVuYWJsZSBSZXNvdXJjZSBUaW1pbmcgYnkgZGVmYXVsdCBpbiBUZXN0
cwpkaWZmIC0tZ2l0IGEvVG9vbHMvUXVldWVTdGF0dXNTZXJ2ZXIvY29uZmlnL21lc3NhZ2VzLnB5
IGIvVG9vbHMvUXVldWVTdGF0dXNTZXJ2ZXIvY29uZmlnL21lc3NhZ2VzLnB5CmluZGV4IDZmOTU1
MjkzMmNlNDI4ZGQzNmZlNTA5MGU5NTc3N2JjNDhkNjUxZTUuLmEwOTM0ZTIyMjlkNTY5NzY1ZGU1
YWU0MTUxZTQxOGRhM2NlMGRiYjAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1F1ZXVlU3RhdHVzU2VydmVy
L2NvbmZpZy9tZXNzYWdlcy5weQorKysgYi9Ub29scy9RdWV1ZVN0YXR1c1NlcnZlci9jb25maWcv
bWVzc2FnZXMucHkKQEAgLTEsNCArMSw1IEBACiAjIENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpA
QCAtMjcsNiArMjgsNyBAQAogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCiAjIFRoZXNlIG11c3QgYmUgaW4gc3lu
YyB3aXRoIHdlYmtpdC1wYXRjaCdzIEFic3RyYWN0UXVldWUuCitza2lwX3N0YXR1cyA9ICJTa2lw
IgogcGFzc19zdGF0dXMgPSAiUGFzcyIKIGZhaWxfc3RhdHVzID0gIkZhaWwiCiBlcnJvcl9zdGF0
dXMgPSAiRXJyb3IiCmRpZmYgLS1naXQgYS9Ub29scy9RdWV1ZVN0YXR1c1NlcnZlci9jb25maWcv
cXVldWVzLnB5IGIvVG9vbHMvUXVldWVTdGF0dXNTZXJ2ZXIvY29uZmlnL3F1ZXVlcy5weQppbmRl
eCAzNDFkZDA4M2FkZmJiODkwNzE5OGJlZWQ1ZWFiMjE5MzAyNjk4M2Y1Li4wYTIyZmYzMmM4ZjAz
Yzg3MTQ5Njk4Nzc0ZjY0MzhlZDVmYWJhZGM3IDEwMDY0NAotLS0gYS9Ub29scy9RdWV1ZVN0YXR1
c1NlcnZlci9jb25maWcvcXVldWVzLnB5CisrKyBiL1Rvb2xzL1F1ZXVlU3RhdHVzU2VydmVyL2Nv
bmZpZy9xdWV1ZXMucHkKQEAgLTEsNCArMSw0IEBACi0jIENvcHlyaWdodCAoQykgMjAxNCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAxNCwgMjAxNyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjIENvcHlyaWdodCAoQykgMjAxMyBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKQEAgLTM2LDYgKzM2
LDcgQEAgYWxsX3F1ZXVlX25hbWVzID0gWwogICAgICJndGstd2syLWV3cyIsCiAgICAgImlvcy1l
d3MiLAogICAgICJpb3Mtc2ltLWV3cyIsCisgICAgImpzYy1ld3MiLAogICAgICJtYWMtZXdzIiwK
ICAgICAibWFjLXdrMi1ld3MiLAogICAgICJtYWMtZGVidWctZXdzIiwKZGlmZiAtLWdpdCBhL1Rv
b2xzL1F1ZXVlU3RhdHVzU2VydmVyL2hhbmRsZXJzL3N0YXR1c2J1YmJsZS5weSBiL1Rvb2xzL1F1
ZXVlU3RhdHVzU2VydmVyL2hhbmRsZXJzL3N0YXR1c2J1YmJsZS5weQppbmRleCBjODA1MTRmZjg3
ODllZjY5NGI5OTU3MTRlMmViNWQ5NmY4YmNhNzgyLi4zOGJhYzAzOTllMzA0MzczMDY3MTUyN2U0
MGQzNGYxNTNkYmFjNGYwIDEwMDY0NAotLS0gYS9Ub29scy9RdWV1ZVN0YXR1c1NlcnZlci9oYW5k
bGVycy9zdGF0dXNidWJibGUucHkKKysrIGIvVG9vbHMvUXVldWVTdGF0dXNTZXJ2ZXIvaGFuZGxl
cnMvc3RhdHVzYnViYmxlLnB5CkBAIC0xLDQgKzEsNSBAQAogIyBDb3B5cmlnaHQgKEMpIDIwMDkg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDE3IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cyBhcmUKQEAgLTE4MiwxMSArMTgzLDE1IEBAIGNsYXNzIFN0YXR1c0J1YmJsZSh3ZWJhcHAuUmVx
dWVzdEhhbmRsZXIpOgogICAgICAgICByZXR1cm4gYnViYmxlCiAKICAgICBkZWYgX3Nob3VsZF9z
aG93X2J1YmJsZV9mb3Ioc2VsZiwgYXR0YWNobWVudCwgcXVldWUpOgotICAgICAgICAgIyBBbnkg
cGVuZGluZyBxdWV1ZSBpcyBzaG93bi4KKyAgICAgICAgIyBBbnkgcGVuZGluZyBxdWV1ZSBpcyBz
aG93bi4KICAgICAgICAgaWYgYXR0YWNobWVudC5wb3NpdGlvbl9pbl9xdWV1ZShxdWV1ZSk6CiAg
ICAgICAgICAgICByZXR1cm4gVHJ1ZQotICAgICAgICAjIEVXUyBxdWV1ZXMgYXJlIGFsc28gc2hv
d24gd2hlbiBjb21wbGV0ZS4KLSAgICAgICAgcmV0dXJuIGJvb2wocXVldWUuaXNfZXdzKCkgYW5k
IGF0dGFjaG1lbnQuc3RhdHVzX2Zvcl9xdWV1ZShxdWV1ZSkpCisKKyAgICAgICAgaWYgbm90IHF1
ZXVlLmlzX2V3cygpOgorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICAgICAgc3RhdHVz
ID0gYXR0YWNobWVudC5zdGF0dXNfZm9yX3F1ZXVlKHF1ZXVlKQorICAgICAgICByZXR1cm4gYm9v
bChzdGF0dXMgYW5kIG5vdCBzdGF0dXMuZGlkX3NraXAoKSkKIAogICAgIGRlZiBfYnVpbGRfYnVi
Ymxlc19mb3JfYXR0YWNobWVudChzZWxmLCBhdHRhY2htZW50KToKICAgICAgICAgc2hvd19zdWJt
aXRfdG9fZXdzID0gVHJ1ZQpkaWZmIC0tZ2l0IGEvVG9vbHMvUXVldWVTdGF0dXNTZXJ2ZXIvbW9k
ZWwvcXVldWVzdGF0dXMucHkgYi9Ub29scy9RdWV1ZVN0YXR1c1NlcnZlci9tb2RlbC9xdWV1ZXN0
YXR1cy5weQppbmRleCBkOWJiNmY2NTYzNzU0MGM3MGI5NzgxYWVkMjViODgyM2Q5YjM4Mzk2Li45
NzFlNmRjNTgxNGFkNGI4ODQ4YzM3NGM1ZDBjYmNiYmJlNWI4NmY0IDEwMDY0NAotLS0gYS9Ub29s
cy9RdWV1ZVN0YXR1c1NlcnZlci9tb2RlbC9xdWV1ZXN0YXR1cy5weQorKysgYi9Ub29scy9RdWV1
ZVN0YXR1c1NlcnZlci9tb2RlbC9xdWV1ZXN0YXR1cy5weQpAQCAtMSw0ICsxLDUgQEAKICMgQ29w
eXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHly
aWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC00MCwzICs0MSw2IEBAIGNsYXNzIFF1ZXVlU3RhdHVz
KGRiLk1vZGVsLCBRdWV1ZVByb3BlcnR5TWl4aW4pOgogICAgIG1lc3NhZ2UgPSBkYi5TdHJpbmdQ
cm9wZXJ0eShtdWx0aWxpbmU9VHJ1ZSkKICAgICBkYXRlID0gZGIuRGF0ZVRpbWVQcm9wZXJ0eShh
dXRvX25vd19hZGQ9VHJ1ZSkKICAgICByZXN1bHRzX2ZpbGUgPSBkYi5CbG9iUHJvcGVydHkoKQor
CisgICAgZGVmIGRpZF9za2lwKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5tZXNzYWdlID09
IG1lc3NhZ2VzLnNraXBfc3RhdHVzCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2NvbW1vbi9jaGVja291dC9zY20vc2NtX21vY2sucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2NvbW1vbi9jaGVja291dC9zY20vc2NtX21vY2sucHkKaW5kZXggYzVkMTBmY2IxODliMGE4YjUx
OWZhNTU2MjUwMjJhNzBjNDg2ZDQ0Yi4uOTc3NGVjOGFlODczYTFiMGI4Mzc2MDcxODA2Njc5MjE1
ODA5ZWVlYyAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hlY2tv
dXQvc2NtL3NjbV9tb2NrLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2No
ZWNrb3V0L3NjbS9zY21fbW9jay5weQpAQCAtMSw0ICsxLDUgQEAKICMgQ29weXJpZ2h0IChDKSAy
MDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAx
NyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogIyBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMgYXJlCkBAIC0zNyw2ICszOCw3IEBAIGNsYXNzIE1vY2tTQ00ob2JqZWN0KToKICAgICAg
ICAgc2VsZi5hZGRlZF9wYXRocyA9IHNldCgpCiAgICAgICAgIHNlbGYuX2ZpbGVzeXN0ZW0gPSBm
aWxlc3lzdGVtIG9yIE1vY2tGaWxlU3lzdGVtKCkKICAgICAgICAgc2VsZi5fZXhlY3V0aXZlID0g
ZXhlY3V0aXZlIG9yIE1vY2tFeGVjdXRpdmUoKQorICAgICAgICBzZWxmLl9tb2NrQ2hhbmdlZEZp
bGVzID0gWyJNb2NrRmlsZTEiXQogCiAgICAgZGVmIGFkZChzZWxmLCBkZXN0aW5hdGlvbl9wYXRo
KToKICAgICAgICAgc2VsZi5hZGRfbGlzdChbZGVzdGluYXRpb25fcGF0aF0pCkBAIC03MSw3ICs3
Myw3IEBAIGNsYXNzIE1vY2tTQ00ob2JqZWN0KToKICAgICAgICAgcmV0dXJuIHNlbGYuX2ZpbGVz
eXN0ZW0uam9pbihzZWxmLmNoZWNrb3V0X3Jvb3QsICpjb21wcykKIAogICAgIGRlZiBjaGFuZ2Vk
X2ZpbGVzKHNlbGYsIGdpdF9jb21taXQ9Tm9uZSk6Ci0gICAgICAgIHJldHVybiBbIk1vY2tGaWxl
MSJdCisgICAgICAgIHJldHVybiBzZWxmLl9tb2NrQ2hhbmdlZEZpbGVzCiAKICAgICBkZWYgY2hh
bmdlZF9maWxlc19mb3JfcmV2aXNpb24oc2VsZiwgcmV2aXNpb24pOgogICAgICAgICByZXR1cm4g
WyJNb2NrRmlsZTEiXQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24v
Y29uZmlnL2V3cy5qc29uIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL2V3
cy5qc29uCmluZGV4IDM1ZDQ5ODVhYjBmOTNkMTI3YjM3MjFlNDYwMWNkNmQ4OWRmY2NmM2MuLmU1
MzQwZmU1YzNjMjFhZTgxYWQxZWY3ZTAzZjdmYjgxZjM4MzljZmYgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9ld3MuanNvbgorKysgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvZXdzLmpzb24KQEAgLTUwLDUgKzUwLDExIEBACiAg
ICAgICAgICJwb3J0IjogIm1hYyIsCiAgICAgICAgICJuYW1lIjogIm1hYy0zMmJpdC1ld3MiLAog
ICAgICAgICAiYXJjaGl0ZWN0dXJlIjogImkzODYiCisgICAgfSwKKyAgICAiSlNDIEVXUyI6IHsK
KyAgICAgICAgInBvcnQiOiAibWFjIiwKKyAgICAgICAgIm5hbWUiOiAianNjLWV3cyIsCisgICAg
ICAgICJncm91cCI6ICJqc2MiLAorICAgICAgICAicnVuVGVzdHMiOiB0cnVlCiAgICAgfQogfQpk
aWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL3BvcnRzLnB5
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL3BvcnRzLnB5CmluZGV4IGEw
ZDUwZGNiNmVhMGI1ZmRlMGIzYzE3ZWYxNTljZWFmZWUxYTJlOTguLjE4MzM5MzNlYThmM2QxYzcy
M2Y0NzA0YmFmYmNlNThiN2NmMTMzYjggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvY29tbW9uL2NvbmZpZy9wb3J0cy5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2Nv
bW1vbi9jb25maWcvcG9ydHMucHkKQEAgLTEsNiArMSw2IEBACiAjIENvcHlyaWdodCAoQykgMjAw
OSwgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMgQ29weXJpZ2h0IChDKSAyMDEz
IE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KLSMgQ29weXJp
Z2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0
IChDKSAyMDE1LCAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTk1LDI0ICs5NSwzMCBAQCBjbGFzcyBEZXByZWNh
dGVkUG9ydChvYmplY3QpOgogICAgIGRlZiBwcmVwYXJlX2NoYW5nZWxvZ19jb21tYW5kKHNlbGYp
OgogICAgICAgICByZXR1cm4gc2VsZi5zY3JpcHRfc2hlbGxfY29tbWFuZCgicHJlcGFyZS1DaGFu
Z2VMb2ciKQogCi0gICAgZGVmIGJ1aWxkX3dlYmtpdF9jb21tYW5kKHNlbGYsIGJ1aWxkX3N0eWxl
PU5vbmUpOgotICAgICAgICBjb21tYW5kID0gc2VsZi5zY3JpcHRfc2hlbGxfY29tbWFuZCgiYnVp
bGQtd2Via2l0IikKKyAgICBkZWYgX2FwcGVuZF9idWlsZF9zdHlsZV9mbGFnKHNlbGYsIGNvbW1h
bmQsIGJ1aWxkX3N0eWxlKToKICAgICAgICAgaWYgYnVpbGRfc3R5bGUgPT0gImRlYnVnIjoKICAg
ICAgICAgICAgIGNvbW1hbmQuYXBwZW5kKCItLWRlYnVnIikKLSAgICAgICAgaWYgYnVpbGRfc3R5
bGUgPT0gInJlbGVhc2UiOgorICAgICAgICBlbGlmIGJ1aWxkX3N0eWxlID09ICJyZWxlYXNlIjoK
ICAgICAgICAgICAgIGNvbW1hbmQuYXBwZW5kKCItLXJlbGVhc2UiKQogICAgICAgICByZXR1cm4g
Y29tbWFuZAogCi0gICAgZGVmIHJ1bl9qYXZhc2NyaXB0Y29yZV90ZXN0c19jb21tYW5kKHNlbGYp
OgotICAgICAgICByZXR1cm4gc2VsZi5zY3JpcHRfc2hlbGxfY29tbWFuZCgicnVuLWphdmFzY3Jp
cHRjb3JlLXRlc3RzIikKKyAgICBkZWYgYnVpbGRfd2Via2l0X2NvbW1hbmQoc2VsZiwgYnVpbGRf
c3R5bGU9Tm9uZSk6CisgICAgICAgIGNvbW1hbmQgPSBzZWxmLnNjcmlwdF9zaGVsbF9jb21tYW5k
KCJidWlsZC13ZWJraXQiKQorICAgICAgICByZXR1cm4gc2VsZi5fYXBwZW5kX2J1aWxkX3N0eWxl
X2ZsYWcoY29tbWFuZCwgYnVpbGRfc3R5bGUpCisKKyAgICBkZWYgYnVpbGRfanNjX2NvbW1hbmQo
c2VsZiwgYnVpbGRfc3R5bGU9Tm9uZSk6CisgICAgICAgIGNvbW1hbmQgPSBzZWxmLnNjcmlwdF9z
aGVsbF9jb21tYW5kKCJidWlsZC1qc2MiKQorICAgICAgICByZXR1cm4gc2VsZi5fYXBwZW5kX2J1
aWxkX3N0eWxlX2ZsYWcoY29tbWFuZCwgYnVpbGRfc3R5bGUpCisKKyAgICBkZWYgcnVuX2phdmFz
Y3JpcHRjb3JlX3Rlc3RzX2NvbW1hbmQoc2VsZiwgYnVpbGRfc3R5bGU9Tm9uZSk6CisgICAgICAg
IGNvbW1hbmQgPSBzZWxmLnNjcmlwdF9zaGVsbF9jb21tYW5kKCJydW4tamF2YXNjcmlwdGNvcmUt
dGVzdHMiKQorICAgICAgICBjb21tYW5kLmFwcGVuZCgiLS1uby1mYWlsLWZhc3QiKQorICAgICAg
ICBjb21tYW5kLmFwcGVuZCgiLS1qc29uLW91dHB1dD1qc2NfdGVzdF9yZXN1bHRzLmpzb24iKQor
ICAgICAgICByZXR1cm4gc2VsZi5fYXBwZW5kX2J1aWxkX3N0eWxlX2ZsYWcoY29tbWFuZCwgYnVp
bGRfc3R5bGUpCiAKICAgICBkZWYgcnVuX3dlYmtpdF90ZXN0c19jb21tYW5kKHNlbGYsIGJ1aWxk
X3N0eWxlPU5vbmUpOgogICAgICAgICBjb21tYW5kID0gc2VsZi5zY3JpcHRfc2hlbGxfY29tbWFu
ZCgicnVuLXdlYmtpdC10ZXN0cyIpCi0gICAgICAgIGlmIGJ1aWxkX3N0eWxlID09ICJkZWJ1ZyI6
Ci0gICAgICAgICAgICBjb21tYW5kLmFwcGVuZCgiLS1kZWJ1ZyIpCi0gICAgICAgIGlmIGJ1aWxk
X3N0eWxlID09ICJyZWxlYXNlIjoKLSAgICAgICAgICAgIGNvbW1hbmQuYXBwZW5kKCItLXJlbGVh
c2UiKQotICAgICAgICByZXR1cm4gY29tbWFuZAorICAgICAgICByZXR1cm4gc2VsZi5fYXBwZW5k
X2J1aWxkX3N0eWxlX2ZsYWcoY29tbWFuZCwgYnVpbGRfc3R5bGUpCiAKICAgICBkZWYgcnVuX3B5
dGhvbl91bml0dGVzdHNfY29tbWFuZChzZWxmKToKICAgICAgICAgcmV0dXJuIHNlbGYuc2NyaXB0
X3NoZWxsX2NvbW1hbmQoInRlc3Qtd2Via2l0cHkiKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9jb21tb24vY29uZmlnL3BvcnRzX21vY2sucHkgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2NvbW1vbi9jb25maWcvcG9ydHNfbW9jay5weQppbmRleCA2MTc0M2RlYmI0ZWJlZTM3
NTZiYTdjMjBmMDE0ODIzNTQwZDJkY2E2Li5jYTFiMThhMzEwNjg0MjNiZGNlMDdjZGViN2Q3ZDdk
MTk5ZjQwMGFiIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25m
aWcvcG9ydHNfbW9jay5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25m
aWcvcG9ydHNfbW9jay5weQpAQCAtMSw0ICsxLDUgQEAKICMgQ29weXJpZ2h0IChDKSAyMDExIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAxNyBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogIyBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMg
YXJlCkBAIC00OSw3ICs1MCw3IEBAIGNsYXNzIE1vY2tQb3J0KG9iamVjdCk6CiAgICAgZGVmIHJ1
bl9wZXJsX3VuaXR0ZXN0c19jb21tYW5kKHNlbGYpOgogICAgICAgICByZXR1cm4gWydtb2NrLXRl
c3Qtd2Via2l0cGVybCddCiAKLSAgICBkZWYgcnVuX2phdmFzY3JpcHRjb3JlX3Rlc3RzX2NvbW1h
bmQoc2VsZik6CisgICAgZGVmIHJ1bl9qYXZhc2NyaXB0Y29yZV90ZXN0c19jb21tYW5kKHNlbGYs
IGJ1aWxkX3N0eWxlPU5vbmUpOgogICAgICAgICByZXR1cm4gWydtb2NrLXJ1bi1qYXZhY3JpcHRj
b3JlLXRlc3RzJ10KIAogICAgIGRlZiBydW5fd2Via2l0X3Rlc3RzX2NvbW1hbmQoc2VsZiwgYnVp
bGRfc3R5bGU9Tm9uZSk6CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1v
bi9jb25maWcvcG9ydHNfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1v
bi9jb25maWcvcG9ydHNfdW5pdHRlc3QucHkKaW5kZXggMDhkNTQ1MjM2ZGEzNzAzZTkyOGYxY2Vl
ZDFkZDkxMDJkOWI4NjIyZS4uMTZjZDdmOTI4MjUxYmJjOTk2Y2I2NDZlNDM1OWQ3M2ZkYjUzNWIy
NiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL3BvcnRz
X3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9w
b3J0c191bml0dGVzdC5weQpAQCAtMSw0ICsxLDUgQEAKICMgQ29weXJpZ2h0IChjKSAyMDA5LCBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMTcgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
IGFyZQpAQCAtMzksNiArNDAsMTAgQEAgY2xhc3MgRGVwcmVjYXRlZFBvcnRUZXN0KHVuaXR0ZXN0
LlRlc3RDYXNlKToKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChNYWNQb3J0KCkuYnVpbGRfd2Vi
a2l0X2NvbW1hbmQoYnVpbGRfc3R5bGU9ImRlYnVnIiksIERlcHJlY2F0ZWRQb3J0KCkuc2NyaXB0
X3NoZWxsX2NvbW1hbmQoImJ1aWxkLXdlYmtpdCIpICsgWyItLWRlYnVnIl0pCiAgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoTWFjUG9ydCgpLmJ1aWxkX3dlYmtpdF9jb21tYW5kKGJ1aWxkX3N0eWxl
PSJyZWxlYXNlIiksIERlcHJlY2F0ZWRQb3J0KCkuc2NyaXB0X3NoZWxsX2NvbW1hbmQoImJ1aWxk
LXdlYmtpdCIpICsgWyItLXJlbGVhc2UiXSkKIAorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE1h
Y1BvcnQoKS5idWlsZF9qc2NfY29tbWFuZCgpLCBEZXByZWNhdGVkUG9ydCgpLnNjcmlwdF9zaGVs
bF9jb21tYW5kKCJidWlsZC1qc2MiKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChNYWNQb3J0
KCkuYnVpbGRfanNjX2NvbW1hbmQoYnVpbGRfc3R5bGU9InJlbGVhc2UiKSwgRGVwcmVjYXRlZFBv
cnQoKS5zY3JpcHRfc2hlbGxfY29tbWFuZCgiYnVpbGQtanNjIikgKyBbIi0tcmVsZWFzZSJdKQor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE1hY1BvcnQoKS5idWlsZF9qc2NfY29tbWFuZChidWls
ZF9zdHlsZT0iZGVidWciKSwgRGVwcmVjYXRlZFBvcnQoKS5zY3JpcHRfc2hlbGxfY29tbWFuZCgi
YnVpbGQtanNjIikgKyBbIi0tZGVidWciXSkKKwogICAgIGRlZiB0ZXN0X2d0a193azJfcG9ydChz
ZWxmKToKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChHdGtXSzJQb3J0KCkuZmxhZygpLCAiLS1w
b3J0PWd0ay13azIiKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKEd0a1dLMlBvcnQoKS5ydW5f
d2Via2l0X3Rlc3RzX2NvbW1hbmQoKSwgRGVwcmVjYXRlZFBvcnQoKS5zY3JpcHRfc2hlbGxfY29t
bWFuZCgicnVuLXdlYmtpdC10ZXN0cyIpICsgWyItLWd0ayJdKQpkaWZmIC0tZ2l0IGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2Fic3RyYWN0dGVzdHJlc3VsdHMucHkgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvYWJzdHJhY3R0ZXN0cmVzdWx0cy5weQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi42ZmNmZDA4MjVjMzA4NjAyNGMxYzgyNDgwNzczYzVmZjk1ZThhNGFlCi0tLSAvZGV2
L251bGwKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2Fic3RyYWN0dGVz
dHJlc3VsdHMucHkKQEAgLTAsMCArMSwzNiBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisj
IGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisj
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorIyBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorCitpbXBvcnQgbG9nZ2luZworCitfbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIo
X19uYW1lX18pCisKKworY2xhc3MgQWJzdHJhY3RUZXN0UmVzdWx0cyhvYmplY3QpOgorICAgIGRl
ZiB0ZXN0X3Jlc3VsdHMoc2VsZik6CisgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3Io
InN1YmNsYXNzZXMgbXVzdCBpbXBsZW1lbnQiKQorCisgICAgZGVmIGZhaWxpbmdfdGVzdHMoc2Vs
Zik6CisgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoInN1YmNsYXNzZXMgbXVzdCBp
bXBsZW1lbnQiKQorCisgICAgZGVmIGRpZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xpbWl0KHNlbGYp
OgorICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKCJzdWJjbGFzc2VzIG11c3QgaW1w
bGVtZW50IikKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9q
c2N0ZXN0cmVzdWx0cy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9qc2N0
ZXN0cmVzdWx0cy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZWZmM2ZhZTUyYjY3ODNmNzdkMzM4N2IxNTlmZGFm
YjBlMmVjYjUwCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21t
b24vbmV0L2pzY3Rlc3RyZXN1bHRzLnB5CkBAIC0wLDAgKzEsODAgQEAKKyMgQ29weXJpZ2h0IChD
KSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisj
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyMg
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyMgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworaW1wb3J0IGpzb24KK2ltcG9ydCBsb2dnaW5nCisK
K2Zyb20gd2Via2l0cHkuY29tbW9uLm5ldC5hYnN0cmFjdHRlc3RyZXN1bHRzIGltcG9ydCBBYnN0
cmFjdFRlc3RSZXN1bHRzCisKK19sb2cgPSBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVfXykKKwor
CitjbGFzcyBKU0NUZXN0UmVzdWx0cyhBYnN0cmFjdFRlc3RSZXN1bHRzKToKKyAgICBkZWYgX19p
bml0X18oc2VsZiwgYWxsX2FwaV90ZXN0c19wYXNzZWQsIHN0cmVzc190ZXN0X2ZhaWx1cmVzKToK
KyAgICAgICAgc2VsZi5hbGxfYXBpX3Rlc3RzX3Bhc3NlZCA9IGFsbF9hcGlfdGVzdHNfcGFzc2Vk
CisgICAgICAgIHNlbGYuc3RyZXNzX3Rlc3RfZmFpbHVyZXMgPSBzdHJlc3NfdGVzdF9mYWlsdXJl
cworCisgICAgICAgIHNlbGYucmVzdWx0cyA9IHN0cmVzc190ZXN0X2ZhaWx1cmVzWzpdCisgICAg
ICAgIGlmIG5vdCBzZWxmLmFsbF9hcGlfdGVzdHNfcGFzc2VkOgorICAgICAgICAgICAgc2VsZi5y
ZXN1bHRzLmFwcGVuZCgnYXBpVGVzdHMnKQorCisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIGlu
dGVyc2VjdGlvbihjbHMsIGZpcnN0LCBzZWNvbmQpOgorICAgICAgICBpbnRlcnNlY3Rpb25fYXBp
X3Rlc3RzX3Bhc3NlZCA9IGZpcnN0LmFsbF9hcGlfdGVzdHNfcGFzc2VkIG9yIHNlY29uZC5hbGxf
YXBpX3Rlc3RzX3Bhc3NlZAorICAgICAgICBpbnRlcnNlY3Rpb25fc3RyZXNzX3Rlc3RfZmFpbHVy
ZXMgPSBsaXN0KHNldChmaXJzdC5zdHJlc3NfdGVzdF9mYWlsdXJlcykgJiBzZXQoc2Vjb25kLnN0
cmVzc190ZXN0X2ZhaWx1cmVzKSkKKyAgICAgICAgcmV0dXJuIGNscyhpbnRlcnNlY3Rpb25fYXBp
X3Rlc3RzX3Bhc3NlZCwgaW50ZXJzZWN0aW9uX3N0cmVzc190ZXN0X2ZhaWx1cmVzKQorCisgICAg
QGNsYXNzbWV0aG9kCisgICAgZGVmIHJlc3VsdHNfZnJvbV9zdHJpbmcoY2xzLCBzdHJpbmcpOgor
ICAgICAgICBpZiBub3Qgc3RyaW5nOgorICAgICAgICAgICAgcmV0dXJuIE5vbmUKKworICAgICAg
ICB0cnk6CisgICAgICAgICAgICBwYXJzZWRfcmVzdWx0cyA9IGpzb24ubG9hZHMoc3RyaW5nKQor
ICAgICAgICBleGNlcHQgVmFsdWVFcnJvcjoKKyAgICAgICAgICAgIF9sb2cuZXJyb3IoJ0ludmFs
aWQgSlNPTiByZXN1bHRzJykKKyAgICAgICAgICAgIHJldHVybiBOb25lCisKKyAgICAgICAgaWYg
J2FsbEFwaVRlc3RzUGFzc2VkJyBub3QgaW4gcGFyc2VkX3Jlc3VsdHMgb3IgJ3N0cmVzc1Rlc3RG
YWlsdXJlcycgbm90IGluIHBhcnNlZF9yZXN1bHRzOgorICAgICAgICAgICAgcmV0dXJuIE5vbmUK
KworICAgICAgICByZXR1cm4gY2xzKHBhcnNlZF9yZXN1bHRzWydhbGxBcGlUZXN0c1Bhc3NlZCdd
LCBwYXJzZWRfcmVzdWx0c1snc3RyZXNzVGVzdEZhaWx1cmVzJ10pCisKKyAgICBkZWYgZXF1YWxz
KHNlbGYsIG90aGVyKToKKyAgICAgICAgcmV0dXJuIChzZWxmLmFsbF9hcGlfdGVzdHNfcGFzc2Vk
ID09IG90aGVyLmFsbF9hcGlfdGVzdHNfcGFzc2VkIGFuZAorICAgICAgICAgICAgICAgc2V0KHNl
bGYuc3RyZXNzX3Rlc3RfZmFpbHVyZXMpID09IHNldChvdGhlci5zdHJlc3NfdGVzdF9mYWlsdXJl
cykpCisKKyAgICBkZWYgaXNfc3Vic2V0KHNlbGYsIG90aGVyKToKKyAgICAgICAgcmV0dXJuIHNl
dChzZWxmLnJlc3VsdHMpIDw9IHNldChvdGhlci5yZXN1bHRzKQorCisgICAgZGVmIGFsbF9wYXNz
ZWQoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLmFsbF9hcGlfdGVzdHNfcGFzc2VkIGFuZCBu
b3Qgc2VsZi5zdHJlc3NfdGVzdF9mYWlsdXJlcworCisgICAgZGVmIHRlc3RfcmVzdWx0cyhzZWxm
KToKKyAgICAgICAgcmV0dXJuIHNlbGYucmVzdWx0cworCisgICAgZGVmIGZhaWxpbmdfdGVzdHMo
c2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLnJlc3VsdHMKKworICAgICMgTm8gZGVmaW5lZCBm
YWlsdXJlIGxpbWl0IGZvciBKU0MuCisgICAgZGVmIGRpZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xp
bWl0KHNlbGYpOgorICAgICAgICByZXR1cm4gRmFsc2UKZGlmZiAtLWdpdCBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvY29tbW9uL25ldC9qc2N0ZXN0cmVzdWx0c191bml0dGVzdC5weSBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9qc2N0ZXN0cmVzdWx0c191bml0dGVzdC5weQpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi40Y2YxMTQ5YWZjZDYzYjVmYmE2NjgzMTQ5YmNhODM3YWM2ZWFiOTE2Ci0tLSAv
ZGV2L251bGwKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2pzY3Rlc3Ry
ZXN1bHRzX3VuaXR0ZXN0LnB5CkBAIC0wLDAgKzEsNzUgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDE3
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
IEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyMgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyMgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKworaW1wb3J0IHVuaXR0ZXN0CisKK2Zyb20gd2Via2l0cHkuY29t
bW9uLm5ldC5qc2N0ZXN0cmVzdWx0cyBpbXBvcnQgSlNDVGVzdFJlc3VsdHMKKworCitjbGFzcyBK
U0NUZXN0UmVzdWx0c1Rlc3QodW5pdHRlc3QuVGVzdENhc2UpOgorICAgIGRlZiB0ZXN0X3Jlc3Vs
dHNfZnJvbV9zdHJpbmcoc2VsZik6CisgICAgICAgIG5vbmVfaXRlbSA9IE5vbmUKKyAgICAgICAg
ZW1wdHlfanNvbiA9ICcnCisgICAgICAgIGludmFsaWRfanNvbiA9ICd7ImFsbEFwaVRlc3RzUGFz
c2VkIjonCisgICAgICAgIGluY29tcGxldGVfanNvbl92MSA9ICd7ImFsbEFwaVRlc3RzUGFzc2Vk
IjogdHJ1ZX0nCisgICAgICAgIGluY29tcGxldGVfanNvbl92MiA9ICd7InN0cmVzc1Rlc3RGYWls
dXJlcyI6W119JworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIEpTQ1Rlc3RSZXN1bHRz
LnJlc3VsdHNfZnJvbV9zdHJpbmcobm9uZV9pdGVtKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChOb25lLCBKU0NUZXN0UmVzdWx0cy5yZXN1bHRzX2Zyb21fc3RyaW5nKGVtcHR5X2pzb24pKQor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIEpTQ1Rlc3RSZXN1bHRzLnJlc3VsdHNfZnJv
bV9zdHJpbmcoaW52YWxpZF9qc29uKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCBK
U0NUZXN0UmVzdWx0cy5yZXN1bHRzX2Zyb21fc3RyaW5nKGluY29tcGxldGVfanNvbl92MSkpCisg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgSlNDVGVzdFJlc3VsdHMucmVzdWx0c19mcm9t
X3N0cmluZyhpbmNvbXBsZXRlX2pzb25fdjIpKQorCisgICAgICAgIG5vX2ZhaWx1cmVzX3N0cmlu
ZyA9ICd7ImFsbEFwaVRlc3RzUGFzc2VkIjogdHJ1ZSwgInN0cmVzc1Rlc3RGYWlsdXJlcyI6W119
JworICAgICAgICBub19mYWlsdXJlc19yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgW10p
CisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShub19mYWlsdXJlc19yZXN1bHRzLmVxdWFscyhKU0NU
ZXN0UmVzdWx0cy5yZXN1bHRzX2Zyb21fc3RyaW5nKG5vX2ZhaWx1cmVzX3N0cmluZykpKQorCisg
ICAgICAgIGFwaV90ZXN0X2ZhaWx1cmVzX3N0cmluZyA9ICd7ImFsbEFwaVRlc3RzUGFzc2VkIjog
ZmFsc2UsICJzdHJlc3NUZXN0RmFpbHVyZXMiOltdfScKKyAgICAgICAgYXBpX3Rlc3RfZmFpbHVy
ZXNfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKEZhbHNlLCBbXSkKKyAgICAgICAgc2VsZi5hc3Nl
cnRUcnVlKGFwaV90ZXN0X2ZhaWx1cmVzX3Jlc3VsdHMuZXF1YWxzKEpTQ1Rlc3RSZXN1bHRzLnJl
c3VsdHNfZnJvbV9zdHJpbmcoYXBpX3Rlc3RfZmFpbHVyZXNfc3RyaW5nKSkpCisKKyAgICAgICAg
bWFueV9mYWlsdXJlc19zdHJpbmcgPSAneyJhbGxBcGlUZXN0c1Bhc3NlZCI6IGZhbHNlLCAic3Ry
ZXNzVGVzdEZhaWx1cmVzIjpbImVzNi55YW1sL2VzNi90eXBlZF9hcnJheXNfSW50MTZBcnJheS5q
cy5kZWZhdWx0IiwgImVzNi55YW1sL2VzNi90eXBlZF9hcnJheXNfSW50OEFycmF5LmpzLmRlZmF1
bHQiXX0nCisgICAgICAgIG1hbnlfZmFpbHVyZXNfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKEZh
bHNlLCBbImVzNi55YW1sL2VzNi90eXBlZF9hcnJheXNfSW50MTZBcnJheS5qcy5kZWZhdWx0Iiwg
ImVzNi55YW1sL2VzNi90eXBlZF9hcnJheXNfSW50OEFycmF5LmpzLmRlZmF1bHQiXSkKKyAgICAg
ICAgc2VsZi5hc3NlcnRUcnVlKG1hbnlfZmFpbHVyZXNfcmVzdWx0cy5lcXVhbHMoSlNDVGVzdFJl
c3VsdHMucmVzdWx0c19mcm9tX3N0cmluZyhtYW55X2ZhaWx1cmVzX3N0cmluZykpKQorCisgICAg
ICAgIHNlbGYuYXNzZXJ0RmFsc2Uobm9fZmFpbHVyZXNfcmVzdWx0cyA9PSBhcGlfdGVzdF9mYWls
dXJlc19yZXN1bHRzKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGFwaV90ZXN0X2ZhaWx1cmVz
X3Jlc3VsdHMgPT0gbWFueV9mYWlsdXJlc19yZXN1bHRzKQorCisgICAgZGVmIHRlc3RfaW50ZXJz
ZWN0aW9uX2FwaV90ZXN0cyhzZWxmKToKKyAgICAgICAgcmVzdWx0czEgPSBKU0NUZXN0UmVzdWx0
cyhGYWxzZSwgW10pCisgICAgICAgIHJlc3VsdHMyID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgW10p
CisKKyAgICAgICAgZXhwZWN0ZWRfaW50ZXJzZWN0aW9uID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwg
W10pCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShleHBlY3RlZF9pbnRlcnNlY3Rpb24uZXF1YWxz
KEpTQ1Rlc3RSZXN1bHRzLmludGVyc2VjdGlvbihyZXN1bHRzMSwgcmVzdWx0czIpKSkKKworICAg
IGRlZiB0ZXN0X2ludGVyc2VjdGlvbl9zdHJlc3NfdGVzdHMoc2VsZik6CisgICAgICAgIHJlc3Vs
dHMxID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgWydmYWlsdXJlMScsICdmYWlsdXJlMiddKQorICAg
ICAgICByZXN1bHRzMiA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFsnZmFpbHVyZTEnLCAnZmFpbHVy
ZTMnXSkKKworICAgICAgICBleHBlY3RlZF9pbnRlcnNlY3Rpb24gPSBKU0NUZXN0UmVzdWx0cyhU
cnVlLCBbJ2ZhaWx1cmUxJ10pCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShleHBlY3RlZF9pbnRl
cnNlY3Rpb24uZXF1YWxzKEpTQ1Rlc3RSZXN1bHRzLmludGVyc2VjdGlvbihyZXN1bHRzMSwgcmVz
dWx0czIpKSkKKworICAgIGRlZiB0ZXN0X2ludGVyc2VjdGlvbl9nZW5lcmFsX2Nhc2Uoc2VsZik6
CisgICAgICAgIHJlc3VsdHMxID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgWydmYWlsdXJlMScsICdm
YWlsdXJlMiddKQorICAgICAgICByZXN1bHRzMiA9IEpTQ1Rlc3RSZXN1bHRzKEZhbHNlLCBbJ2Zh
aWx1cmUxJ10pCisKKyAgICAgICAgZXhwZWN0ZWRfaW50ZXJzZWN0aW9uID0gSlNDVGVzdFJlc3Vs
dHMoVHJ1ZSwgWydmYWlsdXJlMSddKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoZXhwZWN0ZWRf
aW50ZXJzZWN0aW9uLmVxdWFscyhKU0NUZXN0UmVzdWx0cy5pbnRlcnNlY3Rpb24ocmVzdWx0czEs
IHJlc3VsdHMyKSkpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9u
ZXQvbGF5b3V0dGVzdHJlc3VsdHMucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9u
ZXQvbGF5b3V0dGVzdHJlc3VsdHMucHkKaW5kZXggN2ZiNjdjMTZiN2UxZmRiMGE2NDYwN2I1NTMx
NGUyNzAwZmExMmU5YS4uNzA2MTZlZGIyNDA1Y2VlYzUxM2ZmODQ4NWI3NTViY2E5Mjg3M2MwZSAx
MDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2xheW91dHRlc3Ry
ZXN1bHRzLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9sYXlvdXR0
ZXN0cmVzdWx0cy5weQpAQCAtMjgsNiArMjgsNyBAQAogCiBpbXBvcnQgbG9nZ2luZwogCitmcm9t
IHdlYmtpdHB5LmNvbW1vbi5uZXQuYWJzdHJhY3R0ZXN0cmVzdWx0cyBpbXBvcnQgQWJzdHJhY3RU
ZXN0UmVzdWx0cwogZnJvbSB3ZWJraXRweS5jb21tb24ubmV0LnJlc3VsdHNqc29ucGFyc2VyIGlt
cG9ydCBQYXJzZWRKU09OUmVzdWx0cwogZnJvbSB3ZWJraXRweS50aGlyZHBhcnR5LkJlYXV0aWZ1
bFNvdXAgaW1wb3J0IEJlYXV0aWZ1bFNvdXAsIFNvdXBTdHJhaW5lcgogZnJvbSB3ZWJraXRweS5s
YXlvdXRfdGVzdHMubW9kZWxzIGltcG9ydCB0ZXN0X3Jlc3VsdHMKQEAgLTQ1LDcgKzQ2LDcgQEAg
ZGVmIHBhdGhfZm9yX2xheW91dF90ZXN0KHRlc3RfbmFtZSk6CiAjIEZJWE1FOiBUaGlzIHNob3Vs
ZCBiZSB1bmlmaWVkIHdpdGggUmVzdWx0c1N1bW1hcnkgb3Igb3RoZXIgTlJXVCBsYXlvdXQgdGVz
dHMgY29kZQogIyBpbiB0aGUgbGF5b3V0X3Rlc3RzIHBhY2thZ2UuCiAjIFRoaXMgZG9lc24ndCBi
ZWxvbmcgaW4gY29tbW9uLm5ldCwgYnV0IHdlIGRvbid0IGhhdmUgYSBiZXR0ZXIgcGxhY2UgZm9y
IGl0IHlldC4KLWNsYXNzIExheW91dFRlc3RSZXN1bHRzKG9iamVjdCk6CitjbGFzcyBMYXlvdXRU
ZXN0UmVzdWx0cyhBYnN0cmFjdFRlc3RSZXN1bHRzKToKICAgICBAY2xhc3NtZXRob2QKICAgICBk
ZWYgcmVzdWx0c19mcm9tX3N0cmluZyhjbHMsIHN0cmluZyk6CiAgICAgICAgIGlmIG5vdCBzdHJp
bmc6CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvYmFzZS5weSBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9iYXNlLnB5CmluZGV4IDAxZTgyYzJkNjhhMGE1NWJh
NzcyZGRkMzdmNmM2ZDIyODllOWI1ODcuLjZhNjE0MmE3YzE3OWYzM2E3M2QzNzIxOTAzZTFhZDAx
M2I5NmQ0YWIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9iYXNlLnB5
CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9iYXNlLnB5CkBAIC04MDgsNiArODA4
LDkgQEAgY2xhc3MgUG9ydChvYmplY3QpOgogICAgICAgICBpbnZlcnNlIG9mIHJlbGF0aXZlX3Rl
c3RfZmlsZW5hbWUoKS4iIiIKICAgICAgICAgcmV0dXJuIHNlbGYuX2ZpbGVzeXN0ZW0uam9pbihz
ZWxmLmxheW91dF90ZXN0c19kaXIoKSwgdGVzdF9uYW1lKQogCisgICAgZGVmIGpzY19yZXN1bHRz
X2RpcmVjdG9yeShzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX2J1aWxkX3BhdGgoKQorCiAg
ICAgZGVmIHJlc3VsdHNfZGlyZWN0b3J5KHNlbGYpOgogICAgICAgICAiIiJBYnNvbHV0ZSBwYXRo
IHRvIHRoZSBwbGFjZSB0byBzdG9yZSB0aGUgdGVzdCByZXN1bHRzICh1c2VzIC0tcmVzdWx0cy1k
aXJlY3RvcnkpLiIiIgogICAgICAgICBpZiBub3Qgc2VsZi5fcmVzdWx0c19kaXJlY3Rvcnk6CmRp
ZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2Vhcmx5d2FybmluZ3N5
c3RlbXRhc2sucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2Vhcmx5d2Fybmlu
Z3N5c3RlbXRhc2sucHkKaW5kZXggZmMzMDhiNDNkMWQxNzJhYjczYjBlM2FmODBkMWIxMzlkZDNj
MTAzMi4uZWNmYWNkMDExYmU4ODNiNGJiMWU1YzdkN2RmZmRiZGNiNDU5ZGUzNSAxMDA2NDQKLS0t
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9lYXJseXdhcm5pbmdzeXN0ZW10YXNr
LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvZWFybHl3YXJuaW5nc3lz
dGVtdGFzay5weQpAQCAtMSw0ICsxLDUgQEAKICMgQ29weXJpZ2h0IChjKSAyMDExIEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogIyBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBA
IC0yNiw3ICsyNyw3IEBACiAjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCi1mcm9tIHdl
YmtpdHB5LnRvb2wuYm90LnBhdGNoYW5hbHlzaXN0YXNrIGltcG9ydCBQYXRjaEFuYWx5c2lzVGFz
aywgUGF0Y2hBbmFseXNpc1Rhc2tEZWxlZ2F0ZSwgVW5hYmxlVG9BcHBseVBhdGNoLCBQYXRjaElz
Tm90VmFsaWQKK2Zyb20gd2Via2l0cHkudG9vbC5ib3QucGF0Y2hhbmFseXNpc3Rhc2sgaW1wb3J0
IFBhdGNoQW5hbHlzaXNUYXNrLCBQYXRjaEFuYWx5c2lzVGFza0RlbGVnYXRlLCBVbmFibGVUb0Fw
cGx5UGF0Y2gsIFBhdGNoSXNOb3RWYWxpZCwgUGF0Y2hJc05vdEFwcGxpY2FibGUKIAogCiBjbGFz
cyBFYXJseVdhcm5pbmdTeXN0ZW1UYXNrRGVsZWdhdGUoUGF0Y2hBbmFseXNpc1Rhc2tEZWxlZ2F0
ZSk6CkBAIC01OCw2ICs1OSw4IEBAIGNsYXNzIEVhcmx5V2FybmluZ1N5c3RlbVRhc2soUGF0Y2hB
bmFseXNpc1Rhc2spOgogICAgICAgICAgICAgcmV0dXJuIEZhbHNlCiAgICAgICAgIGlmIG5vdCBz
ZWxmLl9hcHBseSgpOgogICAgICAgICAgICAgcmFpc2UgVW5hYmxlVG9BcHBseVBhdGNoKHNlbGYu
X3BhdGNoKQorICAgICAgICBpZiBub3Qgc2VsZi5fY2hlY2tfcGF0Y2hfcmVsZXZhbmNlKCk6Cisg
ICAgICAgICAgICByYWlzZSBQYXRjaElzTm90QXBwbGljYWJsZShzZWxmLl9wYXRjaCkKICAgICAg
ICAgaWYgbm90IHNlbGYuX2J1aWxkKCk6CiAgICAgICAgICAgICBpZiBub3Qgc2VsZi5fYnVpbGRf
d2l0aG91dF9wYXRjaCgpOgogICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQpkaWZmIC0tZ2l0
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9qc2Nld3NfdW5pdHRlc3QucHkgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2pzY2V3c191bml0dGVzdC5weQpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5hNmFlZjNkYWU4MDExZmFiNTc1ZjJjNTQzMTEwMDE0ZTk3YTZiMjBhCi0tLSAvZGV2L251
bGwKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9qc2Nld3NfdW5pdHRlc3Qu
cHkKQEAgLTAsMCArMSwyMTggQEAKKyMgQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0
OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorIyBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisjIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwKKyMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyMgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyMg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwKKyMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKworaW1wb3J0IGxvZ2dpbmcKK2ltcG9ydCB1bml0dGVzdAorCitmcm9tIHdlYmtpdHB5LmNv
bW1vbi5uZXQuanNjdGVzdHJlc3VsdHMgaW1wb3J0IEpTQ1Rlc3RSZXN1bHRzCitmcm9tIHdlYmtp
dHB5LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZlIGltcG9ydCBTY3JpcHRFcnJvcgorZnJvbSB3ZWJr
aXRweS50b29sLmJvdC5wYXRjaGFuYWx5c2lzdGFzayBpbXBvcnQgKgorZnJvbSB3ZWJraXRweS50
b29sLmNvbW1hbmRzLmVhcmx5d2FybmluZ3N5c3RlbSBpbXBvcnQgQWJzdHJhY3RFYXJseVdhcm5p
bmdTeXN0ZW0KK2Zyb20gd2Via2l0cHkudG9vbC5tb2NrdG9vbCBpbXBvcnQgTW9ja1Rvb2wKKwor
X2xvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKQorCisKK2NsYXNzIE1vY2tQYXRjaEFu
YWx5c2lzVGFzayhQYXRjaEFuYWx5c2lzVGFzayk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGRl
bGVnYXRlLCBwYXRjaCwgcGF0Y2hlc19wYXNzZWRfYWxsX3Rlc3RzKToKKyAgICAgICAgc2VsZi5f
ZGVsZWdhdGUgPSBkZWxlZ2F0ZQorICAgICAgICBzZWxmLl9wYXRjaCA9IHBhdGNoCisgICAgICAg
IHNlbGYuX3NjcmlwdF9lcnJvciA9IE5vbmUKKyAgICAgICAgc2VsZi5fcmVzdWx0c19hcmNoaXZl
X2Zyb21fcGF0Y2hfdGVzdF9ydW4gPSBOb25lCisgICAgICAgIHNlbGYuX3Jlc3VsdHNfZnJvbV9w
YXRjaF90ZXN0X3J1biA9IE5vbmUKKyAgICAgICAgc2VsZi5lcnJvciA9IE5vbmUKKyAgICAgICAg
c2VsZi5fcGF0Y2hlc19wYXNzZWRfYWxsX3Rlc3RzID0gcGF0Y2hlc19wYXNzZWRfYWxsX3Rlc3Rz
CisgICAgICAgIHNlbGYuX3Rlc3RfcnVuX2NvdW50ID0gMAorICAgICAgICBzZWxmLmZhaWx1cmVf
c3RhdHVzX2lkID0gMAorCisgICAgZGVmIF90ZXN0KHNlbGYpOgorICAgICAgICBzZWxmLl90ZXN0
X3J1bl9jb3VudCArPSAxCisKKyAgICAgICAgaWYgc2VsZi5fcGF0Y2hlc19wYXNzZWRfYWxsX3Rl
c3RzLnBvcCgpID09IFRydWU6CisgICAgICAgICAgICByZXR1cm4gVHJ1ZQorICAgICAgICBzZWxm
Ll9zY3JpcHRfZXJyb3IgPSBTY3JpcHRFcnJvcignUmVncmVzc2lvbiB0ZXN0JykKKyAgICAgICAg
cmV0dXJuIEZhbHNlCisKKyAgICBkZWYgX2J1aWxkX2FuZF90ZXN0X3dpdGhvdXRfcGF0Y2goc2Vs
Zik6CisgICAgICAgIHNlbGYuX3Rlc3RfcnVuX2NvdW50ICs9IDEKKyAgICAgICAgcmV0dXJuIFRy
dWUKKworICAgIGRlZiB2YWxpZGF0ZShzZWxmKToKKyAgICAgICAgcmV0dXJuIFRydWUKKworICAg
IGRlZiB0ZXN0X3J1bl9jb3VudChzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX3Rlc3RfcnVu
X2NvdW50CisKKworIyBUaGlzIGlzIHRoZSBkZWxlZ2F0ZSB0byBiZSB1c2VkIHdpdGggTW9ja1Bh
dGNoQW5hbHlzaXNUYXNrLCBhYm92ZS4KK2NsYXNzIE1vY2tKU0NFYXJseVdhcm5pbmdTeXN0ZW0o
QWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0pOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBmaXJz
dF90ZXN0X3Jlc3VsdHMsIHNlY29uZF90ZXN0X3Jlc3VsdHMsIGNsZWFuX3Rlc3RfcmVzdWx0cyk6
CisgICAgICAgIEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtLl9faW5pdF9fKHNlbGYpCisgICAg
ICAgIHNlbGYuX2dyb3VwID0gJ2pzYycKKyAgICAgICAgc2VsZi5fcmVzdWx0c19pbl9vcmRlciA9
IFtjbGVhbl90ZXN0X3Jlc3VsdHMsIHNlY29uZF90ZXN0X3Jlc3VsdHMsIGZpcnN0X3Rlc3RfcmVz
dWx0c10KKworICAgIGRlZiB0ZXN0X3Jlc3VsdHMoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxm
Ll9yZXN1bHRzX2luX29yZGVyLnBvcCgpCisKKworY2xhc3MgSlNDRWFybHlXYXJuaW5nU3lzdGVt
VGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CisgICAgZGVmIF9yZXN1bHRzX2luZGljYXRlX2FsbF9w
YXNzZWQoc2VsZiwgcmVzdWx0cyk6CisgICAgICAgIGlmIHJlc3VsdHMgPT0gTm9uZToKKyAgICAg
ICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICByZXR1cm4gcmVzdWx0cy5hbGxfcGFzc2VkKCkK
KworICAgIGRlZiBfY3JlYXRlX3Rhc2soc2VsZiwgZmlyc3RfdGVzdF9yZXN1bHRzLCBzZWNvbmRf
dGVzdF9yZXN1bHRzLCBjbGVhbl90ZXN0X3Jlc3VsdHMpOgorICAgICAgICBxdWV1ZSA9IE1vY2tK
U0NFYXJseVdhcm5pbmdTeXN0ZW0oZmlyc3RfdGVzdF9yZXN1bHRzLCBzZWNvbmRfdGVzdF9yZXN1
bHRzLCBjbGVhbl90ZXN0X3Jlc3VsdHMpCisgICAgICAgIHRvb2wgPSBNb2NrVG9vbChsb2dfZXhl
Y3V0aXZlPVRydWUpCisgICAgICAgIHBhdGNoID0gdG9vbC5idWdzLmZldGNoX2F0dGFjaG1lbnQo
MTAwMDApCisgICAgICAgIHBhdGNoZXNfcGFzc2VkX2FsbF90ZXN0cyA9IG1hcChzZWxmLl9yZXN1
bHRzX2luZGljYXRlX2FsbF9wYXNzZWQsIFtzZWNvbmRfdGVzdF9yZXN1bHRzLCBmaXJzdF90ZXN0
X3Jlc3VsdHNdKQorICAgICAgICByZXR1cm4gTW9ja1BhdGNoQW5hbHlzaXNUYXNrKHF1ZXVlLCBw
YXRjaCwgcGF0Y2hlc19wYXNzZWRfYWxsX3Rlc3RzKQorCisgICAgZGVmIHRlc3Rfc3VjY2Vzc19j
YXNlKHNlbGYpOgorICAgICAgICBmaXJzdF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhU
cnVlLCBbXSkKKyAgICAgICAgc2Vjb25kX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRy
dWUsIFtdKQorICAgICAgICBjbGVhbl90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVl
LCBbXSkKKyAgICAgICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90YXNrKGZpcnN0X3Rlc3RfcmVzdWx0
cywgc2Vjb25kX3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKQorCisgICAgICAgIHJl
dHVybl92YWx1ZSA9IHRhc2suX3Rlc3RfcGF0Y2goKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KHRhc2sudGVzdF9ydW5fY291bnQoKSwgMSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHJldHVy
bl92YWx1ZSkKKworICAgIGRlZiB0ZXN0X3Rlc3RfZmFpbHVyZShzZWxmKToKKyAgICAgICAgZmly
c3RfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgWydGYWlsLmpzJ10pCisgICAg
ICAgIHNlY29uZF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbJ0ZhaWwuanMn
XSkKKyAgICAgICAgY2xlYW5fdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgW10p
CisgICAgICAgIHRhc2sgPSBzZWxmLl9jcmVhdGVfdGFzayhmaXJzdF90ZXN0X3Jlc3VsdHMsIHNl
Y29uZF90ZXN0X3Jlc3VsdHMsIGNsZWFuX3Rlc3RfcmVzdWx0cykKKworICAgICAgICB3aXRoIHNl
bGYuYXNzZXJ0UmFpc2VzKFNjcmlwdEVycm9yKToKKyAgICAgICAgICAgIHJldHVybl92YWx1ZSA9
IHRhc2suX3Rlc3RfcGF0Y2goKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRhc2sudGVzdF9y
dW5fY291bnQoKSwgMykKKworICAgIGRlZiB0ZXN0X2ZpeChzZWxmKToKKyAgICAgICAgZmlyc3Rf
dGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgW10pCisgICAgICAgIHNlY29uZF90
ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbXSkKKyAgICAgICAgY2xlYW5fdGVz
dF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgWydGYWlsLmpzJ10pCisgICAgICAgIHRh
c2sgPSBzZWxmLl9jcmVhdGVfdGFzayhmaXJzdF90ZXN0X3Jlc3VsdHMsIHNlY29uZF90ZXN0X3Jl
c3VsdHMsIGNsZWFuX3Rlc3RfcmVzdWx0cykKKworICAgICAgICByZXR1cm5fdmFsdWUgPSB0YXNr
Ll90ZXN0X3BhdGNoKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0YXNrLnRlc3RfcnVuX2Nv
dW50KCksIDEpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZXR1cm5fdmFsdWUpCisKKyAgICBk
ZWYgdGVzdF9pbmVmZmVjdGl2ZV9wYXRjaChzZWxmKToKKyAgICAgICAgZmlyc3RfdGVzdF9yZXN1
bHRzID0gSlNDVGVzdFJlc3VsdHMoRmFsc2UsIFsnZmFpbHVyZTEuanMnLCAnZmFpbHVyZTIuanMn
XSkKKyAgICAgICAgc2Vjb25kX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKEZhbHNlLCBb
J2ZhaWx1cmUxLmpzJywgJ2ZhaWx1cmUyLmpzJ10pCisgICAgICAgIGNsZWFuX3Rlc3RfcmVzdWx0
cyA9IEpTQ1Rlc3RSZXN1bHRzKEZhbHNlLCBbJ2ZhaWx1cmUxLmpzJywgJ2ZhaWx1cmUyLmpzJ10p
CisgICAgICAgIHRhc2sgPSBzZWxmLl9jcmVhdGVfdGFzayhmaXJzdF90ZXN0X3Jlc3VsdHMsIHNl
Y29uZF90ZXN0X3Jlc3VsdHMsIGNsZWFuX3Rlc3RfcmVzdWx0cykKKworICAgICAgICByZXR1cm5f
dmFsdWUgPSB0YXNrLl90ZXN0X3BhdGNoKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0YXNr
LnRlc3RfcnVuX2NvdW50KCksIDMpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZXR1cm5fdmFs
dWUpCisKKyAgICBkZWYgdGVzdF9wYXJ0aWFsbHlfZWZmZWN0aXZlX3BhdGNoKHNlbGYpOgorICAg
ICAgICBmaXJzdF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbJ2ZhaWx1cmUy
LmpzJ10pCisgICAgICAgIHNlY29uZF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVl
LCBbJ2ZhaWx1cmUyLmpzJ10pCisgICAgICAgIGNsZWFuX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RS
ZXN1bHRzKEZhbHNlLCBbJ2ZhaWx1cmUxLmpzJywgJ2ZhaWx1cmUyLmpzJ10pCisgICAgICAgIHRh
c2sgPSBzZWxmLl9jcmVhdGVfdGFzayhmaXJzdF90ZXN0X3Jlc3VsdHMsIHNlY29uZF90ZXN0X3Jl
c3VsdHMsIGNsZWFuX3Rlc3RfcmVzdWx0cykKKworICAgICAgICByZXR1cm5fdmFsdWUgPSB0YXNr
Ll90ZXN0X3BhdGNoKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0YXNrLnRlc3RfcnVuX2Nv
dW50KCksIDMpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZXR1cm5fdmFsdWUpCisKKyAgICBk
ZWYgdGVzdF9kaWZmZXJlbnRfdGVzdF9mYWlsdXJlc19pbl9wYXRjaF9hbmRfdHJlZShzZWxmKToK
KyAgICAgICAgZmlyc3RfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoRmFsc2UsIFtdKQor
ICAgICAgICBzZWNvbmRfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoRmFsc2UsIFtdKQor
ICAgICAgICBjbGVhbl90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbJ2ZhaWx1
cmUxLmpzJywgJ2ZhaWx1cmUyLmpzJ10pCisgICAgICAgIHRhc2sgPSBzZWxmLl9jcmVhdGVfdGFz
ayhmaXJzdF90ZXN0X3Jlc3VsdHMsIHNlY29uZF90ZXN0X3Jlc3VsdHMsIGNsZWFuX3Rlc3RfcmVz
dWx0cykKKworICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFNjcmlwdEVycm9yKToKKyAg
ICAgICAgICAgIHJldHVybl92YWx1ZSA9IHRhc2suX3Rlc3RfcGF0Y2goKQorICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKHRhc2sudGVzdF9ydW5fY291bnQoKSwgMykKKworICAgIGRlZiB0ZXN0X2Zp
cnN0X3Jlc3VsdHNfY291bGRfbm90X2JlX3JlYWQoc2VsZik6CisgICAgICAgIGZpcnN0X3Rlc3Rf
cmVzdWx0cyA9IE5vbmUKKyAgICAgICAgc2Vjb25kX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1
bHRzKFRydWUsIFtdKQorICAgICAgICBjbGVhbl90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0
cyhUcnVlLCBbXSkKKyAgICAgICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90YXNrKGZpcnN0X3Rlc3Rf
cmVzdWx0cywgc2Vjb25kX3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKQorCisgICAg
ICAgIHJldHVybl92YWx1ZSA9IHRhc2suX3Rlc3RfcGF0Y2goKQorICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKHRhc2sudGVzdF9ydW5fY291bnQoKSwgMSkKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxz
ZShyZXR1cm5fdmFsdWUpCisKKyAgICBkZWYgdGVzdF9zZWNvbmRfcmVzdWx0c19jb3VsZF9ub3Rf
YmVfcmVhZChzZWxmKToKKyAgICAgICAgZmlyc3RfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3Vs
dHMoRmFsc2UsIFsnZmFpbHVyZTEuanMnLCAnZmFpbHVyZTIuanMnXSkKKyAgICAgICAgc2Vjb25k
X3Rlc3RfcmVzdWx0cyA9IE5vbmUKKyAgICAgICAgY2xlYW5fdGVzdF9yZXN1bHRzID0gSlNDVGVz
dFJlc3VsdHMoVHJ1ZSwgW10pCisgICAgICAgIHRhc2sgPSBzZWxmLl9jcmVhdGVfdGFzayhmaXJz
dF90ZXN0X3Jlc3VsdHMsIHNlY29uZF90ZXN0X3Jlc3VsdHMsIGNsZWFuX3Rlc3RfcmVzdWx0cykK
KworICAgICAgICByZXR1cm5fdmFsdWUgPSB0YXNrLl90ZXN0X3BhdGNoKCkKKyAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbCh0YXNrLnRlc3RfcnVuX2NvdW50KCksIDIpCisgICAgICAgIHNlbGYuYXNz
ZXJ0RmFsc2UocmV0dXJuX3ZhbHVlKQorCisgICAgZGVmIHRlc3RfY2xlYW5fcmVzdWx0c19jb3Vs
ZF9ub3RfYmVfcmVhZChzZWxmKToKKyAgICAgICAgZmlyc3RfdGVzdF9yZXN1bHRzID0gSlNDVGVz
dFJlc3VsdHMoVHJ1ZSwgWydmYWlsdXJlMi5qcyddKQorICAgICAgICBzZWNvbmRfdGVzdF9yZXN1
bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgWydmYWlsdXJlMi5qcyddKQorICAgICAgICBjbGVh
bl90ZXN0X3Jlc3VsdHMgPSBOb25lCisgICAgICAgIHRhc2sgPSBzZWxmLl9jcmVhdGVfdGFzayhm
aXJzdF90ZXN0X3Jlc3VsdHMsIHNlY29uZF90ZXN0X3Jlc3VsdHMsIGNsZWFuX3Rlc3RfcmVzdWx0
cykKKworICAgICAgICByZXR1cm5fdmFsdWUgPSB0YXNrLl90ZXN0X3BhdGNoKCkKKyAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbCh0YXNrLnRlc3RfcnVuX2NvdW50KCksIDMpCisgICAgICAgIHNlbGYu
YXNzZXJ0RmFsc2UocmV0dXJuX3ZhbHVlKQorCisgICAgZGVmIHRlc3RfZmxha3lfcmVzdWx0c19v
bl9jbGVhbl90cmVlX3Bhc3Moc2VsZik6CisgICAgICAgIGZpcnN0X3Rlc3RfcmVzdWx0cyA9IEpT
Q1Rlc3RSZXN1bHRzKFRydWUsIFsnZmFpbHVyZTIuanMnXSkKKyAgICAgICAgc2Vjb25kX3Rlc3Rf
cmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFtdKQorICAgICAgICBjbGVhbl90ZXN0X3Jl
c3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbXSkKKyAgICAgICAgdGFzayA9IHNlbGYuX2Ny
ZWF0ZV90YXNrKGZpcnN0X3Rlc3RfcmVzdWx0cywgc2Vjb25kX3Rlc3RfcmVzdWx0cywgY2xlYW5f
dGVzdF9yZXN1bHRzKQorCisgICAgICAgIHJldHVybl92YWx1ZSA9IHRhc2suX3Rlc3RfcGF0Y2go
KQorICAgICAgICBzZWxmLmFzc2VydFRydWUocmV0dXJuX3ZhbHVlKQorICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKHRhc2sudGVzdF9ydW5fY291bnQoKSwgMikKKworICAgIGRlZiB0ZXN0X2ZsYWt5
X3Jlc3VsdHNfb25fY2xlYW5fdHJlZV9wYXNzX3YyKHNlbGYpOgorICAgICAgICBmaXJzdF90ZXN0
X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbXSkKKyAgICAgICAgc2Vjb25kX3Rlc3Rf
cmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFsnZmFpbHVyZTIuanMnXSkKKyAgICAgICAg
Y2xlYW5fdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgW10pCisgICAgICAgIHRh
c2sgPSBzZWxmLl9jcmVhdGVfdGFzayhmaXJzdF90ZXN0X3Jlc3VsdHMsIHNlY29uZF90ZXN0X3Jl
c3VsdHMsIGNsZWFuX3Rlc3RfcmVzdWx0cykKKworICAgICAgICByZXR1cm5fdmFsdWUgPSB0YXNr
Ll90ZXN0X3BhdGNoKCkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHJldHVybl92YWx1ZSkKKyAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0YXNrLnRlc3RfcnVuX2NvdW50KCksIDEpCisKKyAgICBk
ZWYgdGVzdF9mbGFreV9yZXN1bHRzX29uX2NsZWFuX3RyZWVfZmFpbHVyZShzZWxmKToKKyAgICAg
ICAgZmlyc3RfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoRmFsc2UsIFsnZmFpbHVyZTEu
anMnLCAnZmFpbHVyZTIuanMnXSkKKyAgICAgICAgc2Vjb25kX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rl
c3RSZXN1bHRzKFRydWUsIFsnZmFpbHVyZTIuanMnXSkKKyAgICAgICAgY2xlYW5fdGVzdF9yZXN1
bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgW10pCisgICAgICAgIHRhc2sgPSBzZWxmLl9jcmVh
dGVfdGFzayhmaXJzdF90ZXN0X3Jlc3VsdHMsIHNlY29uZF90ZXN0X3Jlc3VsdHMsIGNsZWFuX3Rl
c3RfcmVzdWx0cykKKworICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFNjcmlwdEVycm9y
KToKKyAgICAgICAgICAgIHRhc2suX3Rlc3RfcGF0Y2goKQorICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKHRhc2sudGVzdF9ydW5fY291bnQoKSwgMykKKworICAgIGRlZiB0ZXN0X2ZsYWt5X3Jlc3Vs
dHNfb25fcmVkX3RyZWVfcGFzcyhzZWxmKToKKyAgICAgICAgZmlyc3RfdGVzdF9yZXN1bHRzID0g
SlNDVGVzdFJlc3VsdHMoVHJ1ZSwgWydmYWlsdXJlMS5qcyddKQorICAgICAgICBzZWNvbmRfdGVz
dF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgWydmYWlsdXJlMS5qcycsICdmYWlsdXJl
Mi5qcyddKQorICAgICAgICBjbGVhbl90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVl
LCBbJ2ZhaWx1cmUxLmpzJ10pCisgICAgICAgIHRhc2sgPSBzZWxmLl9jcmVhdGVfdGFzayhmaXJz
dF90ZXN0X3Jlc3VsdHMsIHNlY29uZF90ZXN0X3Jlc3VsdHMsIGNsZWFuX3Rlc3RfcmVzdWx0cykK
KworICAgICAgICByZXR1cm5fdmFsdWUgPSB0YXNrLl90ZXN0X3BhdGNoKCkKKyAgICAgICAgc2Vs
Zi5hc3NlcnRUcnVlKHJldHVybl92YWx1ZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0YXNr
LnRlc3RfcnVuX2NvdW50KCksIDMpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L3Rvb2wvYm90L2pzY3Rlc3RyZXN1bHRzcmVhZGVyLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS90b29sL2JvdC9qc2N0ZXN0cmVzdWx0c3JlYWRlci5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNDFjMTZlNzBm
YjQzOWE5NWY5YWQzYWQ4MWRlYWU3OGU1ZWM1ZWUzCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9qc2N0ZXN0cmVzdWx0c3JlYWRlci5weQpAQCAtMCww
ICsxLDQ3IEBACisjIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyMgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJ
RUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorIyBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
CisjIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SCisjIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisjIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksCisjIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK2ltcG9y
dCBsb2dnaW5nCisKK2Zyb20gd2Via2l0cHkuY29tbW9uLm5ldC5qc2N0ZXN0cmVzdWx0cyBpbXBv
cnQgSlNDVGVzdFJlc3VsdHMKKworX2xvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKQor
CisKK2NsYXNzIEpTQ1Rlc3RSZXN1bHRzUmVhZGVyKG9iamVjdCk6CisgICAgZGVmIF9faW5pdF9f
KHNlbGYsIGhvc3QsIHJlc3VsdHNfZGlyZWN0b3J5KToKKyAgICAgICAgc2VsZi5faG9zdCA9IGhv
c3QKKyAgICAgICAgc2VsZi5fcmVzdWx0c19kaXJlY3RvcnkgPSByZXN1bHRzX2RpcmVjdG9yeQor
CisgICAgZGVmIF9yZWFkX2ZpbGVfY29udGVudHMoc2VsZiwgcGF0aCk6CisgICAgICAgIHRyeToK
KyAgICAgICAgICAgIHJldHVybiBzZWxmLl9ob3N0LmZpbGVzeXN0ZW0ucmVhZF90ZXh0X2ZpbGUo
cGF0aCkKKyAgICAgICAgZXhjZXB0IChJT0Vycm9yLCBLZXlFcnJvcik6ICAjIEZpbGUgZG9lcyBu
b3QgZXhpc3Qgb3IgY2FuJ3QgYmUgcmVhZC4KKyAgICAgICAgICAgIHJldHVybiBOb25lCisKKyAg
ICBkZWYgX2NyZWF0ZV9qc2NfdGVzdF9yZXN1bHRzKHNlbGYpOgorICAgICAgICByZXN1bHRzX3Bh
dGggPSBzZWxmLl9ob3N0LmZpbGVzeXN0ZW0uam9pbihzZWxmLl9yZXN1bHRzX2RpcmVjdG9yeSwg
J2pzY190ZXN0X3Jlc3VsdHMuanNvbicpCisgICAgICAgIGNvbnRlbnRzID0gc2VsZi5fcmVhZF9m
aWxlX2NvbnRlbnRzKHJlc3VsdHNfcGF0aCkKKyAgICAgICAgcmV0dXJuIEpTQ1Rlc3RSZXN1bHRz
LnJlc3VsdHNfZnJvbV9zdHJpbmcoY29udGVudHMpCisKKyAgICBkZWYgcmVzdWx0cyhzZWxmKToK
KyAgICAgICAgcmV0dXJuIHNlbGYuX2NyZWF0ZV9qc2NfdGVzdF9yZXN1bHRzKCkKZGlmZiAtLWdp
dCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvcGF0Y2hhbmFseXNpc3Rhc2sucHkg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L3BhdGNoYW5hbHlzaXN0YXNrLnB5Cmlu
ZGV4IDc1MjMxNjQxNmM1ZjlkMGEzZTU5ZWY2ZDA1ZTMxNzg1ZjkxNzQ2MjkuLmRkMmYxYzU5Yjc2
NzNlM2I5NDdiNjg5ZjU2ZDdiMGMxMGFkYWQwYTcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvdG9vbC9ib3QvcGF0Y2hhbmFseXNpc3Rhc2sucHkKKysrIGIvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS90b29sL2JvdC9wYXRjaGFuYWx5c2lzdGFzay5weQpAQCAtMSw0ICsxLDUgQEAK
ICMgQ29weXJpZ2h0IChjKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisj
IENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAj
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC0yOCw2ICsyOSw3IEBACiAKIGZyb20gd2Vi
a2l0cHkuY29tbW9uLnN5c3RlbS5leGVjdXRpdmUgaW1wb3J0IFNjcmlwdEVycm9yCiBmcm9tIHdl
YmtpdHB5LmNvbW1vbi5uZXQubGF5b3V0dGVzdHJlc3VsdHMgaW1wb3J0IExheW91dFRlc3RSZXN1
bHRzCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5uZXQuanNjdGVzdHJlc3VsdHMgaW1wb3J0IEpTQ1Rl
c3RSZXN1bHRzCiAKIAogY2xhc3MgVW5hYmxlVG9BcHBseVBhdGNoKEV4Y2VwdGlvbik6CkBAIC00
Myw2ICs0NSwxMSBAQCBjbGFzcyBQYXRjaElzTm90VmFsaWQoRXhjZXB0aW9uKToKICAgICAgICAg
c2VsZi5mYWlsdXJlX21lc3NhZ2UgPSBmYWlsdXJlX21lc3NhZ2UKIAogCitjbGFzcyBQYXRjaElz
Tm90QXBwbGljYWJsZShFeGNlcHRpb24pOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwYXRjaCk6
CisgICAgICAgIEV4Y2VwdGlvbi5fX2luaXRfXyhzZWxmKQorICAgICAgICBzZWxmLnBhdGNoID0g
cGF0Y2gKKwogY2xhc3MgUGF0Y2hBbmFseXNpc1Rhc2tEZWxlZ2F0ZShvYmplY3QpOgogICAgIGRl
ZiBwYXJlbnRfY29tbWFuZChzZWxmKToKICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJv
cigic3ViY2xhc3NlcyBtdXN0IGltcGxlbWVudCIpCkBAIC0xMjIsMjggKzEyOSw0NCBAQCBjbGFz
cyBQYXRjaEFuYWx5c2lzVGFzayhvYmplY3QpOgogICAgICAgICAiQXBwbGllZCBwYXRjaCIsCiAg
ICAgICAgICJQYXRjaCBkb2VzIG5vdCBhcHBseSIpCiAKKyAgICBkZWYgX2NoZWNrX3BhdGNoX3Jl
bGV2YW5jZShzZWxmKToKKyAgICAgICAgYXJncyA9IFsKKyAgICAgICAgICAgICJjaGVjay1wYXRj
aC1yZWxldmFuY2UiLAorICAgICAgICBdCisKKyAgICAgICAgaWYgaGFzYXR0cihzZWxmLl9kZWxl
Z2F0ZSwgJ2dyb3VwJyk6CisgICAgICAgICAgICBhcmdzLmFwcGVuZCgiLS1ncm91cD0lcyIgJSBz
ZWxmLl9kZWxlZ2F0ZS5ncm91cCgpKQorCisgICAgICAgIHJldHVybiBzZWxmLl9ydW5fY29tbWFu
ZChhcmdzLCAiQ2hlY2tlZCByZWxldmFuY2Ugb2YgcGF0Y2giLCAiUGF0Y2ggd2FzIG5vdCByZWxl
dmFudCIpCisKICAgICBkZWYgX2J1aWxkKHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi5fcnVu
X2NvbW1hbmQoWworICAgICAgICBhcmdzID0gWwogICAgICAgICAgICAgImJ1aWxkIiwKICAgICAg
ICAgICAgICItLW5vLWNsZWFuIiwKICAgICAgICAgICAgICItLW5vLXVwZGF0ZSIsCiAgICAgICAg
ICAgICAiLS1idWlsZC1zdHlsZT0lcyIgJSBzZWxmLl9kZWxlZ2F0ZS5idWlsZF9zdHlsZSgpLAot
ICAgICAgICBdLAotICAgICAgICAiQnVpbHQgcGF0Y2giLAotICAgICAgICAiUGF0Y2ggZG9lcyBu
b3QgYnVpbGQiKQorICAgICAgICBdCisKKyAgICAgICAgaWYgaGFzYXR0cihzZWxmLl9kZWxlZ2F0
ZSwgJ2dyb3VwJyk6CisgICAgICAgICAgICBhcmdzLmFwcGVuZCgiLS1ncm91cD0lcyIgJSBzZWxm
Ll9kZWxlZ2F0ZS5ncm91cCgpKQorCisgICAgICAgIHJldHVybiBzZWxmLl9ydW5fY29tbWFuZChh
cmdzLCAiQnVpbHQgcGF0Y2giLCAiUGF0Y2ggZG9lcyBub3QgYnVpbGQiKQogCiAgICAgZGVmIF9i
dWlsZF93aXRob3V0X3BhdGNoKHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi5fcnVuX2NvbW1h
bmQoWworICAgICAgICBhcmdzID0gWwogICAgICAgICAgICAgImJ1aWxkIiwKICAgICAgICAgICAg
ICItLWZvcmNlLWNsZWFuIiwKICAgICAgICAgICAgICItLW5vLXVwZGF0ZSIsCiAgICAgICAgICAg
ICAiLS1idWlsZC1zdHlsZT0lcyIgJSBzZWxmLl9kZWxlZ2F0ZS5idWlsZF9zdHlsZSgpLAotICAg
ICAgICBdLAotICAgICAgICAiQWJsZSB0byBidWlsZCB3aXRob3V0IHBhdGNoIiwKLSAgICAgICAg
IlVuYWJsZSB0byBidWlsZCB3aXRob3V0IHBhdGNoIikKKyAgICAgICAgXQorCisgICAgICAgIGlm
IGhhc2F0dHIoc2VsZi5fZGVsZWdhdGUsICdncm91cCcpOgorICAgICAgICAgICAgYXJncy5hcHBl
bmQoIi0tZ3JvdXA9JXMiICUgc2VsZi5fZGVsZWdhdGUuZ3JvdXAoKSkKKworICAgICAgICByZXR1
cm4gc2VsZi5fcnVuX2NvbW1hbmQoYXJncywgIkFibGUgdG8gYnVpbGQgd2l0aG91dCBwYXRjaCIs
ICJVbmFibGUgdG8gYnVpbGQgd2l0aG91dCBwYXRjaCIpCiAKICAgICBkZWYgX3Rlc3Qoc2VsZik6
Ci0gICAgICAgIHJldHVybiBzZWxmLl9ydW5fY29tbWFuZChbCisgICAgICAgIGFyZ3MgPSBbCiAg
ICAgICAgICAgICAiYnVpbGQtYW5kLXRlc3QiLAogICAgICAgICAgICAgIi0tbm8tY2xlYW4iLAog
ICAgICAgICAgICAgIi0tbm8tdXBkYXRlIiwKQEAgLTE1MSwxMiArMTc0LDE1IEBAIGNsYXNzIFBh
dGNoQW5hbHlzaXNUYXNrKG9iamVjdCk6CiAgICAgICAgICAgICAiLS10ZXN0IiwKICAgICAgICAg
ICAgICItLW5vbi1pbnRlcmFjdGl2ZSIsCiAgICAgICAgICAgICAiLS1idWlsZC1zdHlsZT0lcyIg
JSBzZWxmLl9kZWxlZ2F0ZS5idWlsZF9zdHlsZSgpLAotICAgICAgICBdLAotICAgICAgICAiUGFz
c2VkIHRlc3RzIiwKLSAgICAgICAgIlBhdGNoIGRvZXMgbm90IHBhc3MgdGVzdHMiKQorICAgICAg
ICBdCisKKyAgICAgICAgaWYgaGFzYXR0cihzZWxmLl9kZWxlZ2F0ZSwgJ2dyb3VwJyk6CisgICAg
ICAgICAgICBhcmdzLmFwcGVuZCgiLS1ncm91cD0lcyIgJSBzZWxmLl9kZWxlZ2F0ZS5ncm91cCgp
KQorCisgICAgICAgIHJldHVybiBzZWxmLl9ydW5fY29tbWFuZChhcmdzLCAiUGFzc2VkIHRlc3Rz
IiwgIlBhdGNoIGRvZXMgbm90IHBhc3MgdGVzdHMiKQogCiAgICAgZGVmIF9idWlsZF9hbmRfdGVz
dF93aXRob3V0X3BhdGNoKHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi5fcnVuX2NvbW1hbmQo
WworICAgICAgICBhcmdzID0gWwogICAgICAgICAgICAgImJ1aWxkLWFuZC10ZXN0IiwKICAgICAg
ICAgICAgICItLWZvcmNlLWNsZWFuIiwKICAgICAgICAgICAgICItLW5vLXVwZGF0ZSIsCkBAIC0x
NjQsOSArMTkwLDEyIEBAIGNsYXNzIFBhdGNoQW5hbHlzaXNUYXNrKG9iamVjdCk6CiAgICAgICAg
ICAgICAiLS10ZXN0IiwKICAgICAgICAgICAgICItLW5vbi1pbnRlcmFjdGl2ZSIsCiAgICAgICAg
ICAgICAiLS1idWlsZC1zdHlsZT0lcyIgJSBzZWxmLl9kZWxlZ2F0ZS5idWlsZF9zdHlsZSgpLAot
ICAgICAgICBdLAotICAgICAgICAiQWJsZSB0byBwYXNzIHRlc3RzIHdpdGhvdXQgcGF0Y2giLAot
ICAgICAgICAiVW5hYmxlIHRvIHBhc3MgdGVzdHMgd2l0aG91dCBwYXRjaCAodHJlZSBpcyByZWQ/
KSIpCisgICAgICAgIF0KKworICAgICAgICBpZiBoYXNhdHRyKHNlbGYuX2RlbGVnYXRlLCAnZ3Jv
dXAnKToKKyAgICAgICAgICAgIGFyZ3MuYXBwZW5kKCItLWdyb3VwPSVzIiAlIHNlbGYuX2RlbGVn
YXRlLmdyb3VwKCkpCisKKyAgICAgICAgcmV0dXJuIHNlbGYuX3J1bl9jb21tYW5kKGFyZ3MsICJB
YmxlIHRvIHBhc3MgdGVzdHMgd2l0aG91dCBwYXRjaCIsICJVbmFibGUgdG8gcGFzcyB0ZXN0cyB3
aXRob3V0IHBhdGNoICh0cmVlIGlzIHJlZD8pIikKIAogICAgIGRlZiBfbGFuZChzZWxmKToKICAg
ICAgICAgIyBVbmNsZWFyIGlmIHRoaXMgc2hvdWxkIHBhc3MgLS1xdWlldCBvciBub3QuICBJZiAt
LXBhcmVudC1jb21tYW5kIGFsd2F5cyBkb2VzIHRoZSByZXBvcnRpbmcsIHRoZW4gaXQgc2hvdWxk
LgpAQCAtMjA2LDEwICsyMzUsMzUgQEAgY2xhc3MgUGF0Y2hBbmFseXNpc1Rhc2sob2JqZWN0KToK
ICAgICAgICAgIyBhbHNvIHByZXNlbnQgd2l0aG91dCB0aGUgcGF0Y2gsIHNvIHdlIGRvbid0IG5l
ZWQgdG8gZGVmZXIuCiAgICAgICAgIHJldHVybiBGYWxzZQogCi0gICAgZGVmIF90ZXN0X3BhdGNo
KHNlbGYpOgorICAgICMgRklYTUU6IEFic3RyYWN0IG91dCBjb21tb24gcGFydHMgb2YgdGhlIHJl
dHJ5IGxvZ2ljLgorICAgIGRlZiBfcmV0cnlfanNjX3Rlc3RzKHNlbGYpOgorICAgICAgICBmaXJz
dF9yZXN1bHRzID0gc2VsZi5fZGVsZWdhdGUudGVzdF9yZXN1bHRzKCkKKyAgICAgICAgZmlyc3Rf
c2NyaXB0X2Vycm9yID0gc2VsZi5fc2NyaXB0X2Vycm9yCisgICAgICAgIGZpcnN0X2ZhaWx1cmVf
c3RhdHVzX2lkID0gc2VsZi5mYWlsdXJlX3N0YXR1c19pZAorICAgICAgICBpZiBmaXJzdF9yZXN1
bHRzIGlzIE5vbmU6CisgICAgICAgICAgICByZXR1cm4gRmFsc2UKKwogICAgICAgICBpZiBzZWxm
Ll90ZXN0KCk6CiAgICAgICAgICAgICByZXR1cm4gVHJ1ZQorICAgICAgICBzZWNvbmRfcmVzdWx0
cyA9IHNlbGYuX2RlbGVnYXRlLnRlc3RfcmVzdWx0cygpCisgICAgICAgIHNlY29uZF9zY3JpcHRf
ZXJyb3IgPSBzZWxmLl9zY3JpcHRfZXJyb3IKKyAgICAgICAgaWYgc2Vjb25kX3Jlc3VsdHMgaXMg
Tm9uZToKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgICAgIGNvbnNpc3RlbnRfcmVz
dWx0cyA9IEpTQ1Rlc3RSZXN1bHRzLmludGVyc2VjdGlvbihmaXJzdF9yZXN1bHRzLCBzZWNvbmRf
cmVzdWx0cykKKworICAgICAgICBzZWxmLl9idWlsZF9hbmRfdGVzdF93aXRob3V0X3BhdGNoKCkK
KyAgICAgICAgY2xlYW5fdHJlZV9yZXN1bHRzID0gc2VsZi5fZGVsZWdhdGUudGVzdF9yZXN1bHRz
KCkKKyAgICAgICAgaWYgY2xlYW5fdHJlZV9yZXN1bHRzIGlzIE5vbmU6CisgICAgICAgICAgICBy
ZXR1cm4gRmFsc2UKKworICAgICAgICBpZiBjb25zaXN0ZW50X3Jlc3VsdHMuaXNfc3Vic2V0KGNs
ZWFuX3RyZWVfcmVzdWx0cyk6CisgICAgICAgICAgICByZXR1cm4gVHJ1ZQorCisgICAgICAgIHNl
bGYuZmFpbHVyZV9zdGF0dXNfaWQgPSBmaXJzdF9mYWlsdXJlX3N0YXR1c19pZAorICAgICAgICBy
ZXR1cm4gc2VsZi5yZXBvcnRfZmFpbHVyZShOb25lLCBjb25zaXN0ZW50X3Jlc3VsdHMsIGZpcnN0
X3NjcmlwdF9lcnJvcikKIAorICAgIGRlZiBfcmV0cnlfbGF5b3V0X3Rlc3RzKHNlbGYpOgogICAg
ICAgICAjIE5vdGU6IGFyY2hpdmVfbGFzdF90ZXN0X3Jlc3VsdHMgZGVsZXRlcyB0aGUgcmVzdWx0
cyBkaXJlY3RvcnksIG1ha2luZyB0aGVzZSBjYWxscyBvcmRlci1zZW5zaXR2ZS4KICAgICAgICAg
IyBXZSBjb3VsZCByZW1vdmUgdGhpcyBkZXBlbmRlbmN5IGJ5IGJ1aWxkaW5nIHRoZSB0ZXN0X3Jl
c3VsdHMgZnJvbSB0aGUgYXJjaGl2ZS4KICAgICAgICAgZmlyc3RfcmVzdWx0cyA9IHNlbGYuX2Rl
bGVnYXRlLnRlc3RfcmVzdWx0cygpCkBAIC0yNDAsMTEgKzI5NCwxMyBAQCBjbGFzcyBQYXRjaEFu
YWx5c2lzVGFzayhvYmplY3QpOgogICAgICAgICAgICAgcmV0dXJuIHNlbGYucmVwb3J0X2ZhaWx1
cmUoZmlyc3RfcmVzdWx0c19hcmNoaXZlLCBmaXJzdF9yZXN1bHRzLCBmaXJzdF9zY3JpcHRfZXJy
b3IpCiAKICAgICAgICAgaWYgc2Vjb25kX3Jlc3VsdHMuZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVf
bGltaXQoKToKLSAgICAgICAgICAgIHNlbGYuX3Nob3VsZF9kZWZlcl9wYXRjaF9vcl90aHJvdyhm
aXJzdF9yZXN1bHRzLmZhaWxpbmdfdGVzdF9yZXN1bHRzKCksIGZpcnN0X3Jlc3VsdHNfYXJjaGl2
ZSwgZmlyc3Rfc2NyaXB0X2Vycm9yLCBmaXJzdF9mYWlsdXJlX3N0YXR1c19pZCkKKyAgICAgICAg
ICAgIHNlbGYuX3Nob3VsZF9kZWZlcl9wYXRjaF9vcl90aHJvdyhmaXJzdF9yZXN1bHRzLmZhaWxp
bmdfdGVzdF9yZXN1bHRzKCksIGZpcnN0X3Jlc3VsdHNfYXJjaGl2ZSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJzdF9zY3JpcHRfZXJyb3IsIGZpcnN0
X2ZhaWx1cmVfc3RhdHVzX2lkKQogICAgICAgICAgICAgcmV0dXJuIEZhbHNlCiAKICAgICAgICAg
aWYgZmlyc3RfcmVzdWx0cy5kaWRfZXhjZWVkX3Rlc3RfZmFpbHVyZV9saW1pdCgpOgotICAgICAg
ICAgICAgc2VsZi5fc2hvdWxkX2RlZmVyX3BhdGNoX29yX3Rocm93KHNlY29uZF9yZXN1bHRzLmZh
aWxpbmdfdGVzdF9yZXN1bHRzKCksIHNlY29uZF9yZXN1bHRzX2FyY2hpdmUsIHNlY29uZF9zY3Jp
cHRfZXJyb3IsIHNlY29uZF9mYWlsdXJlX3N0YXR1c19pZCkKKyAgICAgICAgICAgIHNlbGYuX3No
b3VsZF9kZWZlcl9wYXRjaF9vcl90aHJvdyhzZWNvbmRfcmVzdWx0cy5mYWlsaW5nX3Rlc3RfcmVz
dWx0cygpLCBzZWNvbmRfcmVzdWx0c19hcmNoaXZlLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHNlY29uZF9zY3JpcHRfZXJyb3IsIHNlY29uZF9mYWlsdXJl
X3N0YXR1c19pZCkKICAgICAgICAgICAgIHJldHVybiBGYWxzZQogCiAgICAgICAgIGlmIHNlbGYu
X3Jlc3VsdHNfZmFpbGVkX2RpZmZlcmVudF90ZXN0cyhmaXJzdF9yZXN1bHRzLCBzZWNvbmRfcmVz
dWx0cyk6CkBAIC0yNTksMTQgKzMxNSwxNiBAQCBjbGFzcyBQYXRjaEFuYWx5c2lzVGFzayhvYmpl
Y3QpOgogCiAgICAgICAgICAgICB0ZXN0c190aGF0X2NvbnNpc3RlbnRseV9mYWlsZWQgPSBmaXJz
dF9mYWlsaW5nX3Jlc3VsdHNfc2V0LmludGVyc2VjdGlvbihzZWNvbmRfZmFpbGluZ19yZXN1bHRz
X3NldCkKICAgICAgICAgICAgIGlmIHRlc3RzX3RoYXRfY29uc2lzdGVudGx5X2ZhaWxlZDoKLSAg
ICAgICAgICAgICAgICBpZiBzZWxmLl9zaG91bGRfZGVmZXJfcGF0Y2hfb3JfdGhyb3codGVzdHNf
dGhhdF9jb25zaXN0ZW50bHlfZmFpbGVkLCBmaXJzdF9yZXN1bHRzX2FyY2hpdmUsIGZpcnN0X3Nj
cmlwdF9lcnJvciwgZmlyc3RfZmFpbHVyZV9zdGF0dXNfaWQpOgorICAgICAgICAgICAgICAgIGlm
IHNlbGYuX3Nob3VsZF9kZWZlcl9wYXRjaF9vcl90aHJvdyh0ZXN0c190aGF0X2NvbnNpc3RlbnRs
eV9mYWlsZWQsIGZpcnN0X3Jlc3VsdHNfYXJjaGl2ZSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlyc3Rfc2NyaXB0X2Vycm9yLCBmaXJzdF9m
YWlsdXJlX3N0YXR1c19pZCk6CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZSAgIyBE
ZWZlciBwYXRjaAogCiAgICAgICAgICAgICAjIEF0IHRoaXMgcG9pbnQgd2Uga25vdyB0aGF0IGF0
IGxlYXN0IG9uZSB0ZXN0IGZsYWtlZCwgYnV0IG5vIGNvbnNpc3RlbnQgZmFpbHVyZXMKICAgICAg
ICAgICAgICMgd2VyZSBpbnRyb2R1Y2VkLiBUaGlzIGlzIGEgYml0IG9mIGEgZ3JleS16b25lLgog
ICAgICAgICAgICAgcmV0dXJuIEZhbHNlICAjIERlZmVyIHBhdGNoCiAKLSAgICAgICAgaWYgc2Vs
Zi5fc2hvdWxkX2RlZmVyX3BhdGNoX29yX3Rocm93KGZpcnN0X3Jlc3VsdHMuZmFpbGluZ190ZXN0
X3Jlc3VsdHMoKSwgZmlyc3RfcmVzdWx0c19hcmNoaXZlLCBmaXJzdF9zY3JpcHRfZXJyb3IsIGZp
cnN0X2ZhaWx1cmVfc3RhdHVzX2lkKToKKyAgICAgICAgaWYgc2VsZi5fc2hvdWxkX2RlZmVyX3Bh
dGNoX29yX3Rocm93KGZpcnN0X3Jlc3VsdHMuZmFpbGluZ190ZXN0X3Jlc3VsdHMoKSwgZmlyc3Rf
cmVzdWx0c19hcmNoaXZlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZmlyc3Rfc2NyaXB0X2Vycm9yLCBmaXJzdF9mYWlsdXJlX3N0YXR1c19pZCk6CiAgICAg
ICAgICAgICByZXR1cm4gRmFsc2UgICMgRGVmZXIgcGF0Y2gKIAogICAgICAgICAjIEF0IHRoaXMg
cG9pbnQsIHdlIGtub3cgdGhhdCB0aGUgZmlyc3QgYW5kIHNlY29uZCBydW5zIGhhZCB0aGUgZXhh
Y3Qgc2FtZSBmYWlsdXJlcywKQEAgLTI3NCw2ICszMzIsMTUgQEAgY2xhc3MgUGF0Y2hBbmFseXNp
c1Rhc2sob2JqZWN0KToKICAgICAgICAgIyB0aGF0IHRoZSBwYXRjaCBpcyBnb29kLgogICAgICAg
ICByZXR1cm4gVHJ1ZQogCisgICAgZGVmIF90ZXN0X3BhdGNoKHNlbGYpOgorICAgICAgICBpZiBz
ZWxmLl90ZXN0KCk6CisgICAgICAgICAgICByZXR1cm4gVHJ1ZQorCisgICAgICAgIGlmIGhhc2F0
dHIoc2VsZi5fZGVsZWdhdGUsICdncm91cCcpIGFuZCBzZWxmLl9kZWxlZ2F0ZS5ncm91cCgpID09
ICJqc2MiOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuX3JldHJ5X2pzY190ZXN0cygpCisgICAg
ICAgIGVsc2U6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5fcmV0cnlfbGF5b3V0X3Rlc3RzKCkK
KwogICAgIGRlZiByZXN1bHRzX2FyY2hpdmVfZnJvbV9wYXRjaF90ZXN0X3J1bihzZWxmLCBwYXRj
aCk6CiAgICAgICAgIGFzc2VydChzZWxmLl9wYXRjaC5pZCgpID09IHBhdGNoLmlkKCkpICAjIFBh
dGNoQW5hbHlzaXNUYXNrIGlzIG5vdCBjdXJyZW50bHkgcmUtdXNlYWJsZS4KICAgICAgICAgcmV0
dXJuIHNlbGYuX3Jlc3VsdHNfYXJjaGl2ZV9mcm9tX3BhdGNoX3Rlc3RfcnVuCmRpZmYgLS1naXQg
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZG93bmxvYWQucHkgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZG93bmxvYWQucHkKaW5kZXggZTUxNjlh
YWM4NWYzMTg2ZTg0YmU5ZDUwMjQ1OTJiZDdmZTZkNWRkNS4uMTRiNTViYzNmN2M5YzEwYjVkZjYw
ZmMxYWY4N2Q3Y2EzOWUzYmM5NCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90
b29sL2NvbW1hbmRzL2Rvd25sb2FkLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9v
bC9jb21tYW5kcy9kb3dubG9hZC5weQpAQCAtMSw1ICsxLDUgQEAKICMgQ29weXJpZ2h0IChjKSAy
MDA5LCAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jIENvcHlyaWdodCAo
YykgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoYykg
MjAwOSwgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC04Nyw2ICs4NywxNCBAQCBjbGFzcyBCdWlsZEFuZFRlc3Qo
QWJzdHJhY3RTZXF1ZW5jZWRDb21tYW5kKToKICAgICBdCiAKIAorY2xhc3MgQ2hlY2tQYXRjaFJl
bGV2YW5jZShBYnN0cmFjdFNlcXVlbmNlZENvbW1hbmQpOgorICAgIG5hbWUgPSAiY2hlY2stcGF0
Y2gtcmVsZXZhbmNlIgorICAgIGhlbHBfdGV4dCA9ICJDaGVjayBpZiB0aGlzIHBhdGNoIG5lZWRz
IHRvIGJlIHRlc3RlZCIKKyAgICBzdGVwcyA9IFsKKyAgICAgICAgc3RlcHMuQ2hlY2tQYXRjaFJl
bGV2YW5jZSwKKyAgICBdCisKKwogY2xhc3MgTGFuZChBYnN0cmFjdFNlcXVlbmNlZENvbW1hbmQp
OgogICAgIG5hbWUgPSAibGFuZCIKICAgICBoZWxwX3RleHQgPSAiTGFuZCB0aGUgY3VycmVudCB3
b3JraW5nIGRpcmVjdG9yeSBkaWZmIGFuZCB1cGRhdGVzIHRoZSBhc3NvY2lhdGVkIGJ1ZyBpZiBh
bnkiCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZG93
bmxvYWRfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMv
ZG93bmxvYWRfdW5pdHRlc3QucHkKaW5kZXggNDI5ZGExMjQ2ZjhiZDc2YWIwMmVlNjMzYzQyZDZm
YjM4ZDM4NTRjNS4uNTljOTQ4OGMwOTQwOTliNzM0N2U5NmVmMjAyYzM2MGQ5MTk0NjMwMyAxMDA2
NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Rvd25sb2FkX3Vu
aXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9kb3du
bG9hZF91bml0dGVzdC5weQpAQCAtODksNiArODksNyBAQCBjbGFzcyBEb3dubG9hZENvbW1hbmRz
VGVzdChDb21tYW5kc1Rlc3QpOgogICAgICAgICBvcHRpb25zLnVwZGF0ZSA9IFRydWUKICAgICAg
ICAgb3B0aW9ucy5hcmNoaXRlY3R1cmUgPSAnTU9DSyBBUkNIJwogICAgICAgICBvcHRpb25zLml0
ZXJhdGVfb25fbmV3X3Rlc3RzID0gMAorICAgICAgICBvcHRpb25zLmdyb3VwID0gTm9uZQogICAg
ICAgICByZXR1cm4gb3B0aW9ucwogCiAgICAgZGVmIHRlc3RfYnVpbGQoc2VsZik6CmRpZmYgLS1n
aXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZWFybHl3YXJuaW5nc3lz
dGVtLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Vhcmx5d2Fybmlu
Z3N5c3RlbS5weQppbmRleCA5YmMwNDE4NjBjZTY3NDU0NDU0ZTRiMjUxNDM4YTlkYmU1MjY0NTEz
Li42OGYxZDgwMzIwY2IyNTdlMjZiYWY4NDAxZmI3YWE1MTIwNDE5ZGMxIDEwMDY0NAotLS0gYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZWFybHl3YXJuaW5nc3lzdGVtLnB5
CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9lYXJseXdhcm5pbmdz
eXN0ZW0ucHkKQEAgLTEsNCArMSw1IEBACiAjIENvcHlyaWdodCAoYykgMjAwOSBHb29nbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKGMpIDIwMTcgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAt
MjgsNiArMjksNyBAQAogCiBpbXBvcnQganNvbgogaW1wb3J0IGxvZ2dpbmcKK2ltcG9ydCBvcwog
ZnJvbSBvcHRwYXJzZSBpbXBvcnQgbWFrZV9vcHRpb24KIAogZnJvbSB3ZWJraXRweS5jb21tb24u
Y29uZmlnLmNvbW1pdHRlcnMgaW1wb3J0IENvbW1pdHRlckxpc3QKQEAgLTM2LDcgKzM4LDggQEAg
ZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmZpbGVzeXN0ZW0gaW1wb3J0IEZpbGVTeXN0ZW0K
IGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5leGVjdXRpdmUgaW1wb3J0IFNjcmlwdEVycm9y
CiBmcm9tIHdlYmtpdHB5LnRvb2wuYm90LmVhcmx5d2FybmluZ3N5c3RlbXRhc2sgaW1wb3J0IEVh
cmx5V2FybmluZ1N5c3RlbVRhc2ssIEVhcmx5V2FybmluZ1N5c3RlbVRhc2tEZWxlZ2F0ZQogZnJv
bSB3ZWJraXRweS50b29sLmJvdC5sYXlvdXR0ZXN0cmVzdWx0c3JlYWRlciBpbXBvcnQgTGF5b3V0
VGVzdFJlc3VsdHNSZWFkZXIKLWZyb20gd2Via2l0cHkudG9vbC5ib3QucGF0Y2hhbmFseXNpc3Rh
c2sgaW1wb3J0IFVuYWJsZVRvQXBwbHlQYXRjaCwgUGF0Y2hJc05vdFZhbGlkCitmcm9tIHdlYmtp
dHB5LnRvb2wuYm90LmpzY3Rlc3RyZXN1bHRzcmVhZGVyIGltcG9ydCBKU0NUZXN0UmVzdWx0c1Jl
YWRlcgorZnJvbSB3ZWJraXRweS50b29sLmJvdC5wYXRjaGFuYWx5c2lzdGFzayBpbXBvcnQgVW5h
YmxlVG9BcHBseVBhdGNoLCBQYXRjaElzTm90VmFsaWQsIFBhdGNoSXNOb3RBcHBsaWNhYmxlCiBm
cm9tIHdlYmtpdHB5LnRvb2wuYm90LnF1ZXVlZW5naW5lIGltcG9ydCBRdWV1ZUVuZ2luZQogZnJv
bSB3ZWJraXRweS50b29sLmNvbW1hbmRzLnF1ZXVlcyBpbXBvcnQgQWJzdHJhY3RSZXZpZXdRdWV1
ZQogCkBAIC01Myw3ICs1NiwxMSBAQCBjbGFzcyBBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbShB
YnN0cmFjdFJldmlld1F1ZXVlLCBFYXJseVdhcm5pbmdTeXN0ZW1UYXNrRGVsZQogCiAgICAgZGVm
IGJlZ2luX3dvcmtfcXVldWUoc2VsZik6CiAgICAgICAgIEFic3RyYWN0UmV2aWV3UXVldWUuYmVn
aW5fd29ya19xdWV1ZShzZWxmKQotICAgICAgICBzZWxmLl9sYXlvdXRfdGVzdF9yZXN1bHRzX3Jl
YWRlciA9IExheW91dFRlc3RSZXN1bHRzUmVhZGVyKHNlbGYuX3Rvb2wsIHNlbGYuX3BvcnQucmVz
dWx0c19kaXJlY3RvcnkoKSwgc2VsZi5fbG9nX2RpcmVjdG9yeSgpKQorCisgICAgICAgIGlmIHNl
bGYuZ3JvdXAoKSA9PSAianNjIjoKKyAgICAgICAgICAgIHNlbGYuX3Rlc3RfcmVzdWx0c19yZWFk
ZXIgPSBKU0NUZXN0UmVzdWx0c1JlYWRlcihzZWxmLl90b29sLCBzZWxmLl9wb3J0LmpzY19yZXN1
bHRzX2RpcmVjdG9yeSgpKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZi5fdGVzdF9y
ZXN1bHRzX3JlYWRlciA9IExheW91dFRlc3RSZXN1bHRzUmVhZGVyKHNlbGYuX3Rvb2wsIHNlbGYu
X3BvcnQucmVzdWx0c19kaXJlY3RvcnkoKSwgc2VsZi5fbG9nX2RpcmVjdG9yeSgpKQogCiAgICAg
ZGVmIF9mYWlsaW5nX3Rlc3RzX21lc3NhZ2Uoc2VsZiwgdGFzaywgcGF0Y2gpOgogICAgICAgICBy
ZXN1bHRzID0gdGFzay5yZXN1bHRzX2Zyb21fcGF0Y2hfdGVzdF9ydW4ocGF0Y2gpCkBAIC03OSw4
ICs4NiwxMiBAQCBjbGFzcyBBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbShBYnN0cmFjdFJldmll
d1F1ZXVlLCBFYXJseVdhcm5pbmdTeXN0ZW1UYXNrRGVsZQogICAgICAgICAgICAgdG9vbC5idWdz
LmFkZF9jY190b19idWcocGF0Y2guYnVnX2lkKCksIHNlbGYud2F0Y2hlcnMpCiAgICAgICAgIHRv
b2wuYnVncy5zZXRfZmxhZ19vbl9hdHRhY2htZW50KHBhdGNoLmlkKCksICJjb21taXQtcXVldWUi
LCAiLSIsIG1lc3NhZ2UpCiAKKyAgICAjIFRoaXMgZXhpc3RzIGZvciBtb2NraW5nCisgICAgZGVm
IF9jcmVhdGVfdGFzayhzZWxmLCBwYXRjaCk6CisgICAgICAgIHJldHVybiBFYXJseVdhcm5pbmdT
eXN0ZW1UYXNrKHNlbGYsIHBhdGNoLCBzZWxmLl9vcHRpb25zLnJ1bl90ZXN0cykKKwogICAgIGRl
ZiByZXZpZXdfcGF0Y2goc2VsZiwgcGF0Y2gpOgotICAgICAgICB0YXNrID0gRWFybHlXYXJuaW5n
U3lzdGVtVGFzayhzZWxmLCBwYXRjaCwgc2VsZi5fb3B0aW9ucy5ydW5fdGVzdHMpCisgICAgICAg
IHRhc2sgPSBzZWxmLl9jcmVhdGVfdGFzayhwYXRjaCkKICAgICAgICAgdHJ5OgogICAgICAgICAg
ICAgc3VjY2VlZGVkID0gdGFzay5ydW4oKQogICAgICAgICAgICAgaWYgbm90IHN1Y2NlZWRlZDoK
QEAgLTkzLDYgKzEwNCw5IEBAIGNsYXNzIEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtKEFic3Ry
YWN0UmV2aWV3UXVldWUsIEVhcmx5V2FybmluZ1N5c3RlbVRhc2tEZWxlCiAgICAgICAgIGV4Y2Vw
dCBVbmFibGVUb0FwcGx5UGF0Y2gsIGU6CiAgICAgICAgICAgICBzZWxmLl9kaWRfZXJyb3IocGF0
Y2gsICIlcyB1bmFibGUgdG8gYXBwbHkgcGF0Y2guIiAlIHNlbGYubmFtZSkKICAgICAgICAgICAg
IHJldHVybiBGYWxzZQorICAgICAgICBleGNlcHQgUGF0Y2hJc05vdEFwcGxpY2FibGUsIGU6Cisg
ICAgICAgICAgICBzZWxmLl9kaWRfc2tpcChwYXRjaCkKKyAgICAgICAgICAgIHJldHVybiBGYWxz
ZQogICAgICAgICBleGNlcHQgU2NyaXB0RXJyb3IsIGU6CiAgICAgICAgICAgICBzZWxmLl9wb3N0
X3JlamVjdF9tZXNzYWdlX29uX2J1ZyhzZWxmLl90b29sLCBwYXRjaCwgdGFzay5mYWlsdXJlX3N0
YXR1c19pZCwgc2VsZi5fZmFpbGluZ190ZXN0c19tZXNzYWdlKHRhc2ssIHBhdGNoKSkKICAgICAg
ICAgICAgIHJlc3VsdHNfYXJjaGl2ZSA9IHRhc2sucmVzdWx0c19hcmNoaXZlX2Zyb21fcGF0Y2hf
dGVzdF9ydW4ocGF0Y2gpCkBAIC0xMTcsMTQgKzEzMSwxNyBAQCBjbGFzcyBBYnN0cmFjdEVhcmx5
V2FybmluZ1N5c3RlbShBYnN0cmFjdFJldmlld1F1ZXVlLCBFYXJseVdhcm5pbmdTeXN0ZW1UYXNr
RGVsZQogICAgICAgICByZXR1cm4gc2VsZi5fdXBkYXRlX3N0YXR1cyhtZXNzYWdlLCBwYXRjaD1w
YXRjaCwgcmVzdWx0c19maWxlPWZhaWx1cmVfbG9nKQogCiAgICAgZGVmIHRlc3RfcmVzdWx0cyhz
ZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYuX2xheW91dF90ZXN0X3Jlc3VsdHNfcmVhZGVyLnJl
c3VsdHMoKQorICAgICAgICByZXR1cm4gc2VsZi5fdGVzdF9yZXN1bHRzX3JlYWRlci5yZXN1bHRz
KCkKIAogICAgIGRlZiBhcmNoaXZlX2xhc3RfdGVzdF9yZXN1bHRzKHNlbGYsIHBhdGNoKToKLSAg
ICAgICAgcmV0dXJuIHNlbGYuX2xheW91dF90ZXN0X3Jlc3VsdHNfcmVhZGVyLmFyY2hpdmUocGF0
Y2gpCisgICAgICAgIHJldHVybiBzZWxmLl90ZXN0X3Jlc3VsdHNfcmVhZGVyLmFyY2hpdmUocGF0
Y2gpCiAKICAgICBkZWYgYnVpbGRfc3R5bGUoc2VsZik6CiAgICAgICAgIHJldHVybiBzZWxmLl9i
dWlsZF9zdHlsZQogCisgICAgZGVmIGdyb3VwKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5f
Z3JvdXAKKwogICAgIGRlZiByZWZldGNoX3BhdGNoKHNlbGYsIHBhdGNoKToKICAgICAgICAgcmV0
dXJuIHNlbGYuX3Rvb2wuYnVncy5mZXRjaF9hdHRhY2htZW50KHBhdGNoLmlkKCkpCiAKQEAgLTE0
OSwxMiArMTY2LDEzIEBAIGNsYXNzIEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtKEFic3RyYWN0
UmV2aWV3UXVldWUsIEVhcmx5V2FybmluZ1N5c3RlbVRhc2tEZWxlCiAKICAgICAgICAgY2xhc3Nl
cyA9IFtdCiAgICAgICAgIGZvciBuYW1lLCBjb25maWcgaW4gZXdzZXMuaXRlcml0ZW1zKCk6Ci0g
ICAgICAgICAgICBjbGFzc2VzLmFwcGVuZCh0eXBlKG5hbWUuZW5jb2RlKCd1dGYtOCcpLnRyYW5z
bGF0ZShOb25lLCAnIC0nKSwgKEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtLCksIHsKKyAgICAg
ICAgICAgIGNsYXNzZXMuYXBwZW5kKHR5cGUobmFtZS5lbmNvZGUoJ3V0Zi04JykudHJhbnNsYXRl
KE5vbmUsICcgLScpLCAoY2xzLCksIHsKICAgICAgICAgICAgICAgICAnbmFtZSc6IGNvbmZpZy5n
ZXQoJ25hbWUnLCBjb25maWdbJ3BvcnQnXSArICctZXdzJyksCiAgICAgICAgICAgICAgICAgJ3Bv
cnRfbmFtZSc6IGNvbmZpZ1sncG9ydCddLAogICAgICAgICAgICAgICAgICdhcmNoaXRlY3R1cmUn
OiBjb25maWcuZ2V0KCdhcmNoaXRlY3R1cmUnLCBOb25lKSwKICAgICAgICAgICAgICAgICAnX2J1
aWxkX3N0eWxlJzogY29uZmlnLmdldCgnc3R5bGUnLCAicmVsZWFzZSIpLAogICAgICAgICAgICAg
ICAgICd3YXRjaGVycyc6IGNvbmZpZy5nZXQoJ3dhdGNoZXJzJywgW10pLAogICAgICAgICAgICAg
ICAgICdydW5fdGVzdHMnOiBjb25maWcuZ2V0KCdydW5UZXN0cycsIGNscy5ydW5fdGVzdHMpLAor
ICAgICAgICAgICAgICAgICdfZ3JvdXAnOiBjb25maWcuZ2V0KCdncm91cCcsIE5vbmUpLAogICAg
ICAgICAgICAgfSkpCiAgICAgICAgIHJldHVybiBjbGFzc2VzCmRpZmYgLS1naXQgYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZWFybHl3YXJuaW5nc3lzdGVtX3VuaXR0ZXN0
LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Vhcmx5d2FybmluZ3N5
c3RlbV91bml0dGVzdC5weQppbmRleCAwODg4NzgxM2NlMmU5M2E4ZWM5ZGEzNzYzNmVjYmRlOWVm
ZjNjOWU3Li44ZWMzYTJiOTlhMjU5OTVlOWJkYjNlNTUwYmI4MWUwYjYwMTIxNjg3IDEwMDY0NAot
LS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZWFybHl3YXJuaW5nc3lz
dGVtX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5k
cy9lYXJseXdhcm5pbmdzeXN0ZW1fdW5pdHRlc3QucHkKQEAgLTEsNCArMSw1IEBACiAjIENvcHly
aWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmln
aHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zIGFyZQpAQCAtMjksNiArMzAsNyBAQAogZnJvbSB3ZWJraXRweS50aGly
ZHBhcnR5Lm1vY2sgaW1wb3J0IE1vY2sKIGZyb20gd2Via2l0cHkuY29tbW9uLmhvc3QgaW1wb3J0
IEhvc3QKIGZyb20gd2Via2l0cHkuY29tbW9uLmhvc3RfbW9jayBpbXBvcnQgTW9ja0hvc3QKK2Zy
b20gd2Via2l0cHkuY29tbW9uLm5ldC5qc2N0ZXN0cmVzdWx0cyBpbXBvcnQgSlNDVGVzdFJlc3Vs
dHMKIGZyb20gd2Via2l0cHkuY29tbW9uLm5ldC5sYXlvdXR0ZXN0cmVzdWx0cyBpbXBvcnQgTGF5
b3V0VGVzdFJlc3VsdHMKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5vdXRwdXRjYXB0dXJl
IGltcG9ydCBPdXRwdXRDYXB0dXJlCiBmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5tb2RlbHMg
aW1wb3J0IHRlc3RfcmVzdWx0cwpAQCAtNDEsNjIgKzQzLDEwMCBAQCBmcm9tIHdlYmtpdHB5LnRv
b2wuY29tbWFuZHMucXVldWVzdGVzdCBpbXBvcnQgUXVldWVzVGVzdAogZnJvbSB3ZWJraXRweS50
b29sLm1vY2t0b29sIGltcG9ydCBNb2NrVG9vbCwgTW9ja09wdGlvbnMKIAogCi1jbGFzcyBBYnN0
cmFjdEVhcmx5V2FybmluZ1N5c3RlbVRlc3QoUXVldWVzVGVzdCk6Ci0gICAgZGVmIHRlc3RfZmFp
bGluZ190ZXN0c19tZXNzYWdlKHNlbGYpOgotICAgICAgICAjIE5lZWRlZCB0byBkZWZpbmUgcG9y
dF9uYW1lLCB1c2VkIGluIEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtLl9faW5pdF9fCi0gICAg
ICAgIGNsYXNzIFRlc3RFV1MoQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0pOgotICAgICAgICAg
ICAgcG9ydF9uYW1lID0gIndpbiIgICMgTmVlZHMgdG8gYmUgYSBwb3J0IHdoaWNoIHBvcnQvZmFj
dG9yeSB1bmRlcnN0YW5kcy4KLSAgICAgICAgICAgIF9idWlsZF9zdHlsZSA9IE5vbmUKKyMgTmVl
ZGVkIHRvIGRlZmluZSBwb3J0X25hbWUsIHVzZWQgaW4gQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0
ZW0uX19pbml0X18KK2NsYXNzIFRlc3RFV1MoQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0pOgor
ICAgIHBvcnRfbmFtZSA9ICJ3aW4iICAjIE5lZWRzIHRvIGJlIGEgcG9ydCB3aGljaCBwb3J0L2Zh
Y3RvcnkgdW5kZXJzdGFuZHMuCisgICAgX2J1aWxkX3N0eWxlID0gTm9uZQorICAgIF9ncm91cCA9
IE5vbmUKIAotICAgICAgICBld3MgPSBUZXN0RVdTKCkKKworY2xhc3MgVGVzdEpTQ0VXUyhBYnN0
cmFjdEVhcmx5V2FybmluZ1N5c3RlbSk6CisgICAgcG9ydF9uYW1lID0gIm1hYyIgICMgTmVlZHMg
dG8gYmUgYSBwb3J0IHdoaWNoIHBvcnQvZmFjdG9yeSB1bmRlcnN0YW5kcy4KKyAgICBfYnVpbGRf
c3R5bGUgPSBOb25lCisgICAgX2dyb3VwID0gImpzYyIKKworCitjbGFzcyBBYnN0cmFjdEVhcmx5
V2FybmluZ1N5c3RlbVRlc3QoUXVldWVzVGVzdCk6CisgICAgZGVmIF90ZXN0X21lc3NhZ2Uoc2Vs
ZiwgZXdzLCByZXN1bHRzLCBtZXNzYWdlKToKICAgICAgICAgZXdzLmJpbmRfdG9fdG9vbChNb2Nr
VG9vbCgpKQogICAgICAgICBld3MuaG9zdCA9IE1vY2tIb3N0KCkKICAgICAgICAgZXdzLl9vcHRp
b25zID0gTW9ja09wdGlvbnMocG9ydD1Ob25lLCBjb25maXJtPUZhbHNlKQogICAgICAgICBPdXRw
dXRDYXB0dXJlKCkuYXNzZXJ0X291dHB1dHMoc2VsZiwgZXdzLmJlZ2luX3dvcmtfcXVldWUsIGV4
cGVjdGVkX2xvZ3M9c2VsZi5fZGVmYXVsdF9iZWdpbl93b3JrX3F1ZXVlX2xvZ3MoZXdzLm5hbWUp
KQogICAgICAgICB0YXNrID0gTW9jaygpCi0gICAgICAgIHRhc2sucmVzdWx0c19mcm9tX3BhdGNo
X3Rlc3RfcnVuID0gbGFtYmRhIGE6IExheW91dFRlc3RSZXN1bHRzKFt0ZXN0X3Jlc3VsdHMuVGVz
dFJlc3VsdCgiZm9vLmh0bWwiLCBmYWlsdXJlcz1bdGVzdF9mYWlsdXJlcy5GYWlsdXJlVGV4dE1p
c21hdGNoKCldKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9yZXN1bHRzLlRlc3RSZXN1bHQoImJh
ci5odG1sIiwgZmFpbHVyZXM9W3Rlc3RfZmFpbHVyZXMuRmFpbHVyZVRleHRNaXNtYXRjaCgpXSld
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBkaWRfZXhjZWVkX3Rlc3RfZmFpbHVyZV9saW1pdD1GYWxzZSkK
KyAgICAgICAgdGFzay5yZXN1bHRzX2Zyb21fcGF0Y2hfdGVzdF9ydW4gPSByZXN1bHRzCiAgICAg
ICAgIHBhdGNoID0gZXdzLl90b29sLmJ1Z3MuZmV0Y2hfYXR0YWNobWVudCgxMDAwMCkKLSAgICAg
ICAgc2VsZi5hc3NlcnRNdWx0aUxpbmVFcXVhbChld3MuX2ZhaWxpbmdfdGVzdHNfbWVzc2FnZSh0
YXNrLCBwYXRjaCksICJOZXcgZmFpbGluZyB0ZXN0czpcbmZvby5odG1sXG5iYXIuaHRtbCIpCisg
ICAgICAgIHNlbGYuYXNzZXJ0TXVsdGlMaW5lRXF1YWwoZXdzLl9mYWlsaW5nX3Rlc3RzX21lc3Nh
Z2UodGFzaywgcGF0Y2gpLCBtZXNzYWdlKQorCisgICAgZGVmIHRlc3RfZmFpbGluZ190ZXN0c19t
ZXNzYWdlKHNlbGYpOgorICAgICAgICBld3MgPSBUZXN0RVdTKCkKKyAgICAgICAgcmVzdWx0cyA9
IGxhbWJkYSBhOiBMYXlvdXRUZXN0UmVzdWx0cyhbdGVzdF9yZXN1bHRzLlRlc3RSZXN1bHQoImZv
by5odG1sIiwgZmFpbHVyZXM9W3Rlc3RfZmFpbHVyZXMuRmFpbHVyZVRleHRNaXNtYXRjaCgpXSks
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X3Jl
c3VsdHMuVGVzdFJlc3VsdCgiYmFyLmh0bWwiLCBmYWlsdXJlcz1bdGVzdF9mYWlsdXJlcy5GYWls
dXJlVGV4dE1pc21hdGNoKCldKV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBkaWRfZXhjZWVkX3Rlc3RfZmFpbHVyZV9saW1pdD1GYWxzZSkKKyAgICAg
ICAgbWVzc2FnZSA9ICJOZXcgZmFpbGluZyB0ZXN0czpcbmZvby5odG1sXG5iYXIuaHRtbCIKKyAg
ICAgICAgc2VsZi5fdGVzdF9tZXNzYWdlKGV3cywgcmVzdWx0cywgbWVzc2FnZSkKKworICAgIGRl
ZiB0ZXN0X2ZhaWxpbmdfanNjX3Rlc3RzX21lc3NhZ2Uoc2VsZik6CisgICAgICAgIGV3cyA9IFRl
c3RKU0NFV1MoKQorICAgICAgICByZXN1bHRzID0gbGFtYmRhIGE6IEpTQ1Rlc3RSZXN1bHRzKEZh
bHNlLCBbImVzNi55YW1sL2VzNi90eXBlZF9hcnJheXNfSW50OEFycmF5LmpzLmRlZmF1bHQiLCAi
ZXM2LnlhbWwvZXM2L3R5cGVkX2FycmF5c19VaW50OEFycmF5LmpzLmRlZmF1bHQiXSkKKyAgICAg
ICAgbWVzc2FnZSA9ICJOZXcgZmFpbGluZyB0ZXN0czpcbmVzNi55YW1sL2VzNi90eXBlZF9hcnJh
eXNfSW50OEFycmF5LmpzLmRlZmF1bHRcbmVzNi55YW1sL2VzNi90eXBlZF9hcnJheXNfVWludDhB
cnJheS5qcy5kZWZhdWx0XG5hcGlUZXN0cyIKKyAgICAgICAgc2VsZi5fdGVzdF9tZXNzYWdlKGV3
cywgcmVzdWx0cywgbWVzc2FnZSkKKworCitjbGFzcyBNb2NrRWFybHlXYXJuaW5nU3lzdGVtVGFz
a0ZvckluY29uY2x1c2l2ZVJlc3VsdHMoRWFybHlXYXJuaW5nU3lzdGVtVGFzayk6CisgICAgZGVm
IF90ZXN0X3BhdGNoKHNlbGYpOgorICAgICAgICBzZWxmLl90ZXN0KCkKKyAgICAgICAgcmVzdWx0
cyA9IHNlbGYuX2RlbGVnYXRlLnRlc3RfcmVzdWx0cygpCisgICAgICAgIHJldHVybiBib29sKHJl
c3VsdHMpCisKKworY2xhc3MgTW9ja0Fic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtRm9ySW5jb25j
bHVzaXZlUmVzdWx0cyhBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbSk6CisgICAgZGVmIF9jcmVh
dGVfdGFzayhzZWxmLCBwYXRjaCk6CisgICAgICAgIHRhc2sgPSBNb2NrRWFybHlXYXJuaW5nU3lz
dGVtVGFza0ZvckluY29uY2x1c2l2ZVJlc3VsdHMoc2VsZiwgcGF0Y2gsIHNlbGYuX29wdGlvbnMu
cnVuX3Rlc3RzKQorICAgICAgICByZXR1cm4gdGFzawogCiAKIGNsYXNzIEVhcmx5V2FybmluZ1N5
c3RlbVRlc3QoUXVldWVzVGVzdCk6Ci0gICAgZGVmIF9kZWZhdWx0X2V4cGVjdGVkX2xvZ3Moc2Vs
ZiwgZXdzKToKKyAgICBkZWYgX2RlZmF1bHRfZXhwZWN0ZWRfbG9ncyhzZWxmLCBld3MsIGNvbmNs
dXNpdmUpOgogICAgICAgICBzdHJpbmdfcmVwbGFjZW1lbnRzID0gewogICAgICAgICAgICAgIm5h
bWUiOiBld3MubmFtZSwKICAgICAgICAgICAgICJwb3J0IjogZXdzLnBvcnRfbmFtZSwKICAgICAg
ICAgICAgICJhcmNoaXRlY3R1cmUiOiAiIC0tYXJjaGl0ZWN0dXJlPSVzIiAlIGV3cy5hcmNoaXRl
Y3R1cmUgaWYgZXdzLmFyY2hpdGVjdHVyZSBlbHNlICIiLAogICAgICAgICAgICAgImJ1aWxkX3N0
eWxlIjogZXdzLmJ1aWxkX3N0eWxlKCksCisgICAgICAgICAgICAiZ3JvdXAiOiBld3MuZ3JvdXAo
KSwKICAgICAgICAgfQogICAgICAgICBpZiBld3MucnVuX3Rlc3RzOgotICAgICAgICAgICAgcnVu
X3Rlc3RzX2xpbmUgPSAiUnVubmluZzogd2Via2l0LXBhdGNoIC0tc3RhdHVzLWhvc3Q9ZXhhbXBs
ZS5jb20gYnVpbGQtYW5kLXRlc3QgLS1uby1jbGVhbiAtLW5vLXVwZGF0ZSAtLXRlc3QgLS1ub24t
aW50ZXJhY3RpdmUgLS1idWlsZC1zdHlsZT0lKGJ1aWxkX3N0eWxlKXMgLS1wb3J0PSUocG9ydClz
JShhcmNoaXRlY3R1cmUpc1xuIiAlIHN0cmluZ19yZXBsYWNlbWVudHMKKyAgICAgICAgICAgIHJ1
bl90ZXN0c19saW5lID0gIlJ1bm5pbmc6IHdlYmtpdC1wYXRjaCAtLXN0YXR1cy1ob3N0PWV4YW1w
bGUuY29tIGJ1aWxkLWFuZC10ZXN0IC0tbm8tY2xlYW4gLS1uby11cGRhdGUgLS10ZXN0IC0tbm9u
LWludGVyYWN0aXZlIC0tYnVpbGQtc3R5bGU9JShidWlsZF9zdHlsZSlzIC0tZ3JvdXA9JShncm91
cClzIC0tcG9ydD0lKHBvcnQpcyUoYXJjaGl0ZWN0dXJlKXNcbiIgJSBzdHJpbmdfcmVwbGFjZW1l
bnRzCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICBydW5fdGVzdHNfbGluZSA9ICIiCiAgICAg
ICAgIHN0cmluZ19yZXBsYWNlbWVudHNbJ3J1bl90ZXN0c19saW5lJ10gPSBydW5fdGVzdHNfbGlu
ZQogCisgICAgICAgIGlmIGNvbmNsdXNpdmU6CisgICAgICAgICAgICByZXN1bHRfbGluZXMgPSAi
TU9DSzogdXBkYXRlX3N0YXR1czogJShuYW1lKXMgUGFzc1xuTU9DSzogcmVsZWFzZV93b3JrX2l0
ZW06ICUobmFtZSlzIDEwMDAwXG4iICUgc3RyaW5nX3JlcGxhY2VtZW50cworICAgICAgICBlbHNl
OgorICAgICAgICAgICAgcmVzdWx0X2xpbmVzID0gIk1PQ0s6IHJlbGVhc2VfbG9jazogJShuYW1l
KXMgMTAwMDBcbiIgJSBzdHJpbmdfcmVwbGFjZW1lbnRzCisgICAgICAgIHN0cmluZ19yZXBsYWNl
bWVudHNbJ3Jlc3VsdF9saW5lcyddID0gcmVzdWx0X2xpbmVzCisKICAgICAgICAgZXhwZWN0ZWRf
bG9ncyA9IHsKICAgICAgICAgICAgICJiZWdpbl93b3JrX3F1ZXVlIjogc2VsZi5fZGVmYXVsdF9i
ZWdpbl93b3JrX3F1ZXVlX2xvZ3MoZXdzLm5hbWUpLAogICAgICAgICAgICAgInByb2Nlc3Nfd29y
a19pdGVtIjogIiIiTU9DSzogdXBkYXRlX3N0YXR1czogJShuYW1lKXMgU3RhcnRlZCBwcm9jZXNz
aW5nIHBhdGNoCiBSdW5uaW5nOiB3ZWJraXQtcGF0Y2ggLS1zdGF0dXMtaG9zdD1leGFtcGxlLmNv
bSBjbGVhbiAtLXBvcnQ9JShwb3J0KXMlKGFyY2hpdGVjdHVyZSlzCiBSdW5uaW5nOiB3ZWJraXQt
cGF0Y2ggLS1zdGF0dXMtaG9zdD1leGFtcGxlLmNvbSB1cGRhdGUgLS1wb3J0PSUocG9ydClzJShh
cmNoaXRlY3R1cmUpcwogUnVubmluZzogd2Via2l0LXBhdGNoIC0tc3RhdHVzLWhvc3Q9ZXhhbXBs
ZS5jb20gYXBwbHktYXR0YWNobWVudCAtLW5vLXVwZGF0ZSAtLW5vbi1pbnRlcmFjdGl2ZSAxMDAw
MCAtLXBvcnQ9JShwb3J0KXMlKGFyY2hpdGVjdHVyZSlzCi1SdW5uaW5nOiB3ZWJraXQtcGF0Y2gg
LS1zdGF0dXMtaG9zdD1leGFtcGxlLmNvbSBidWlsZCAtLW5vLWNsZWFuIC0tbm8tdXBkYXRlIC0t
YnVpbGQtc3R5bGU9JShidWlsZF9zdHlsZSlzIC0tcG9ydD0lKHBvcnQpcyUoYXJjaGl0ZWN0dXJl
KXMKLSUocnVuX3Rlc3RzX2xpbmUpc01PQ0s6IHVwZGF0ZV9zdGF0dXM6ICUobmFtZSlzIFBhc3MK
LU1PQ0s6IHJlbGVhc2Vfd29ya19pdGVtOiAlKG5hbWUpcyAxMDAwMAotIiIiICUgc3RyaW5nX3Jl
cGxhY2VtZW50cywKK1J1bm5pbmc6IHdlYmtpdC1wYXRjaCAtLXN0YXR1cy1ob3N0PWV4YW1wbGUu
Y29tIGNoZWNrLXBhdGNoLXJlbGV2YW5jZSAtLWdyb3VwPSUoZ3JvdXApcyAtLXBvcnQ9JShwb3J0
KXMlKGFyY2hpdGVjdHVyZSlzCitSdW5uaW5nOiB3ZWJraXQtcGF0Y2ggLS1zdGF0dXMtaG9zdD1l
eGFtcGxlLmNvbSBidWlsZCAtLW5vLWNsZWFuIC0tbm8tdXBkYXRlIC0tYnVpbGQtc3R5bGU9JShi
dWlsZF9zdHlsZSlzIC0tZ3JvdXA9JShncm91cClzIC0tcG9ydD0lKHBvcnQpcyUoYXJjaGl0ZWN0
dXJlKXMKKyUocnVuX3Rlc3RzX2xpbmUpcyUocmVzdWx0X2xpbmVzKXMiIiIgJSBzdHJpbmdfcmVw
bGFjZW1lbnRzLAogICAgICAgICAgICAgImhhbmRsZV91bmV4cGVjdGVkX2Vycm9yIjogIk1vY2sg
ZXJyb3IgbWVzc2FnZVxuIiwKICAgICAgICAgICAgICJoYW5kbGVfc2NyaXB0X2Vycm9yIjogIlNj
cmlwdEVycm9yIGVycm9yIG1lc3NhZ2VcblxuTU9DSyBvdXRwdXRcbiIsCiAgICAgICAgIH0KICAg
ICAgICAgcmV0dXJuIGV4cGVjdGVkX2xvZ3MKIAotICAgIGRlZiBfdGVzdF9ld3Moc2VsZiwgZXdz
KToKKyAgICBkZWYgX3Rlc3RfZXdzKHNlbGYsIGV3cywgcmVzdWx0c19hcmVfY29uY2x1c2l2ZT1U
cnVlKToKICAgICAgICAgZXdzLmJpbmRfdG9fdG9vbChNb2NrVG9vbCgpKQogICAgICAgICBld3Mu
aG9zdCA9IE1vY2tIb3N0KCkKICAgICAgICAgb3B0aW9ucyA9IE1vY2soKQogICAgICAgICBvcHRp
b25zLnBvcnQgPSBOb25lCiAgICAgICAgIG9wdGlvbnMucnVuX3Rlc3RzID0gZXdzLnJ1bl90ZXN0
cwotICAgICAgICBzZWxmLmFzc2VydF9xdWV1ZV9vdXRwdXRzKGV3cywgZXhwZWN0ZWRfbG9ncz1z
ZWxmLl9kZWZhdWx0X2V4cGVjdGVkX2xvZ3MoZXdzKSwgb3B0aW9ucz1vcHRpb25zKQorICAgICAg
ICBzZWxmLmFzc2VydF9xdWV1ZV9vdXRwdXRzKGV3cywgZXhwZWN0ZWRfbG9ncz1zZWxmLl9kZWZh
dWx0X2V4cGVjdGVkX2xvZ3MoZXdzLCByZXN1bHRzX2FyZV9jb25jbHVzaXZlKSwgb3B0aW9ucz1v
cHRpb25zKQogCiAgICAgZGVmIHRlc3RfZXdzZXMoc2VsZik6CiAgICAgICAgIGNsYXNzZXMgPSBB
YnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbS5sb2FkX2V3c19jbGFzc2VzKCkKQEAgLTEwNCwzICsx
NDQsMTIgQEAgTU9DSzogcmVsZWFzZV93b3JrX2l0ZW06ICUobmFtZSlzIDEwMDAwCiAgICAgICAg
IHNlbGYubWF4RGlmZiA9IE5vbmUKICAgICAgICAgZm9yIGV3c19jbGFzcyBpbiBjbGFzc2VzOgog
ICAgICAgICAgICAgc2VsZi5fdGVzdF9ld3MoZXdzX2NsYXNzKCkpCisKKyAgICAjIFRoaXMgbXVz
dCB1c2UgdGhlIE1vY2sgRVdTIGNsYXNzZXMgZGVmaW5lZCBhYm92ZQorICAgIGRlZiB0ZXN0X2lu
Y29uY2x1c2l2ZV9qc2NfdGVzdF9yZXN1bHRzKHNlbGYpOgorICAgICAgICBjbGFzc2VzID0gTW9j
a0Fic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtRm9ySW5jb25jbHVzaXZlUmVzdWx0cy5sb2FkX2V3
c19jbGFzc2VzKCkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGNsYXNzZXMpCisgICAgICAgIHNl
bGYubWF4RGlmZiA9IE5vbmUKKyAgICAgICAgdGVzdF9jbGFzc2VzID0gZmlsdGVyKGxhbWJkYSB4
OiB4LnJ1bl90ZXN0cyBhbmQgeC5ncm91cCA9PSAianNjIiwgY2xhc3NlcykKKyAgICAgICAgZm9y
IGV3c19jbGFzcyBpbiB0ZXN0X2NsYXNzZXM6CisgICAgICAgICAgICBzZWxmLl90ZXN0X2V3cyhl
d3NfY2xhc3MoKSwgRmFsc2UpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rv
b2wvY29tbWFuZHMvcXVldWVzLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1h
bmRzL3F1ZXVlcy5weQppbmRleCAxYzcxYWFjZDc1MzBkYzcyOGY1NTQ5MDllMmQyYmJjNzdkOGQx
MWNiLi5mZTIxMjdjZmUyNzRlZGYwNzVlY2QyY2QyMzliNDcwZWQ4MzBmOTdhIDEwMDY0NAotLS0g
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcXVldWVzLnB5CisrKyBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9xdWV1ZXMucHkKQEAgLTEsNSArMSw1
IEBACiAjIENvcHlyaWdodCAoYykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotIyBDb3B5cmlnaHQgKGMpIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
IyBDb3B5cmlnaHQgKGMpIDIwMDksIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtNjIsNiArNjIsNyBAQCBjbGFz
cyBBYnN0cmFjdFF1ZXVlKENvbW1hbmQsIFF1ZXVlRW5naW5lRGVsZWdhdGUpOgogICAgIHdhdGNo
ZXJzID0gWwogICAgIF0KIAorICAgIF9za2lwX3N0YXR1cyA9ICJTa2lwIgogICAgIF9wYXNzX3N0
YXR1cyA9ICJQYXNzIgogICAgIF9mYWlsX3N0YXR1cyA9ICJGYWlsIgogICAgIF9lcnJvcl9zdGF0
dXMgPSAiRXJyb3IiCkBAIC0yNDQsNiArMjQ1LDEwIEBAIGNsYXNzIEFic3RyYWN0UGF0Y2hRdWV1
ZShBYnN0cmFjdFF1ZXVlKToKICAgICAgICAgc2VsZi5fdXBkYXRlX3N0YXR1cyhtZXNzYWdlLCBw
YXRjaCkKICAgICAgICAgc2VsZi5fcmVsZWFzZV93b3JrX2l0ZW0ocGF0Y2gpCiAKKyAgICBkZWYg
X2RpZF9za2lwKHNlbGYsIHBhdGNoKToKKyAgICAgICAgc2VsZi5fdXBkYXRlX3N0YXR1cyhzZWxm
Ll9za2lwX3N0YXR1cywgcGF0Y2gpCisgICAgICAgIHNlbGYuX3JlbGVhc2Vfd29ya19pdGVtKHBh
dGNoKQorCiAgICAgZGVmIF91bmxvY2tfcGF0Y2goc2VsZiwgcGF0Y2gpOgogICAgICAgICBzZWxm
Ll90b29sLnN0YXR1c19zZXJ2ZXIucmVsZWFzZV9sb2NrKHNlbGYubmFtZSwgcGF0Y2gpCiAKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9fX2luaXRfXy5weSBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9fX2luaXRfXy5weQppbmRleCAzNTZh
Y2FiMDNhZDgyNzRjZTliZGE2ODU4ODY0ZmYxOWI2NGY0YTBhLi42YzljMDlhYzUyYTM4NmI5ZjBj
ZjM2M2I5YzAzYmJhYTRjMDAzODYxIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L3Rvb2wvc3RlcHMvX19pbml0X18ucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29s
L3N0ZXBzL19faW5pdF9fLnB5CkBAIC0xLDQgKzEsNSBAQAogIyBDb3B5cmlnaHQgKEMpIDIwMTAg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDE3IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cyBhcmUKQEAgLTMzLDYgKzM0LDcgQEAgZnJvbSB3ZWJraXRweS50b29sLnN0ZXBzLmFwcGx5cGF0
Y2h3aXRobG9jYWxjb21taXQgaW1wb3J0IEFwcGx5UGF0Y2hXaXRoTG9jYWxDb20KIGZyb20gd2Vi
a2l0cHkudG9vbC5zdGVwcy5hcHBseXdhdGNobGlzdCBpbXBvcnQgQXBwbHlXYXRjaExpc3QKIGZy
b20gd2Via2l0cHkudG9vbC5zdGVwcy5hdHRhY2h0b2J1ZyBpbXBvcnQgQXR0YWNoVG9CdWcKIGZy
b20gd2Via2l0cHkudG9vbC5zdGVwcy5idWlsZCBpbXBvcnQgQnVpbGQKK2Zyb20gd2Via2l0cHku
dG9vbC5zdGVwcy5jaGVja3BhdGNocmVsZXZhbmNlIGltcG9ydCBDaGVja1BhdGNoUmVsZXZhbmNl
CiBmcm9tIHdlYmtpdHB5LnRvb2wuc3RlcHMuY2hlY2tzdHlsZSBpbXBvcnQgQ2hlY2tTdHlsZQog
ZnJvbSB3ZWJraXRweS50b29sLnN0ZXBzLmNsZWFud29ya2luZ2RpcmVjdG9yeSBpbXBvcnQgQ2xl
YW5Xb3JraW5nRGlyZWN0b3J5CiBmcm9tIHdlYmtpdHB5LnRvb2wuc3RlcHMuY2xvc2VidWcgaW1w
b3J0IENsb3NlQnVnCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3Rl
cHMvYnVpbGQucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvYnVpbGQucHkK
aW5kZXggZjc0ZmZjZTcwOTQxYzYxZTU5Njc5MmU0YzYwZGNkN2Y4YjY1ZTllYy4uNmQ2NDhlMzRm
ZTNhOTI5YThjYTZiNzFiMDJhNzBkOWE4NDMyNWQxYSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS90b29sL3N0ZXBzL2J1aWxkLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvdG9vbC9zdGVwcy9idWlsZC5weQpAQCAtMSw0ICsxLDUgQEAKICMgQ29weXJpZ2h0IChDKSAy
MDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAx
NyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogIyBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMgYXJlCkBAIC00MSwyOCArNDIsMzUgQEAgY2xhc3MgQnVpbGQoQWJzdHJhY3RTdGVwKToK
ICAgICAgICAgICAgIE9wdGlvbnMuYnVpbGQsCiAgICAgICAgICAgICBPcHRpb25zLnF1aWV0LAog
ICAgICAgICAgICAgT3B0aW9ucy5idWlsZF9zdHlsZSwKKyAgICAgICAgICAgIE9wdGlvbnMuZ3Jv
dXAsCiAgICAgICAgIF0KIAotICAgIGRlZiBidWlsZChzZWxmLCBidWlsZF9zdHlsZSk6CisgICAg
ZGVmIGJ1aWxkKHNlbGYsIGJ1aWxkX3N0eWxlLCBncm91cCk6CiAgICAgICAgIGVudmlyb25tZW50
ID0gc2VsZi5fdG9vbC5jb3B5X2N1cnJlbnRfZW52aXJvbm1lbnQoKQogICAgICAgICBlbnZpcm9u
bWVudC5kaXNhYmxlX2djY19zbWFydHF1b3RlcygpCiAgICAgICAgIGVudmlyb25tZW50LmRpc2Fi
bGVfamhidWlsZF9WVDEwMF9vdXRwdXQoKQogICAgICAgICBlbnYgPSBlbnZpcm9ubWVudC50b19k
aWN0aW9uYXJ5KCkKIAotICAgICAgICBidWlsZF93ZWJraXRfY29tbWFuZCA9IHNlbGYuX3Rvb2wu
ZGVwcmVjYXRlZF9wb3J0KCkuYnVpbGRfd2Via2l0X2NvbW1hbmQoYnVpbGRfc3R5bGU9YnVpbGRf
c3R5bGUpCisgICAgICAgIGlmIGdyb3VwID09ICJqc2MiOgorICAgICAgICAgICAgYnVpbGRfY29t
bWFuZCA9IHNlbGYuX3Rvb2wuZGVwcmVjYXRlZF9wb3J0KCkuYnVpbGRfanNjX2NvbW1hbmQoYnVp
bGRfc3R5bGU9YnVpbGRfc3R5bGUpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBidWlsZF9j
b21tYW5kID0gc2VsZi5fdG9vbC5kZXByZWNhdGVkX3BvcnQoKS5idWlsZF93ZWJraXRfY29tbWFu
ZChidWlsZF9zdHlsZT1idWlsZF9zdHlsZSkKIAogICAgICAgICBpZiBzZWxmLl9vcHRpb25zLmFy
Y2hpdGVjdHVyZToKLSAgICAgICAgICAgIGJ1aWxkX3dlYmtpdF9jb21tYW5kICs9IFsnQVJDSFM9
JXMnICUgc2VsZi5fb3B0aW9ucy5hcmNoaXRlY3R1cmVdCisgICAgICAgICAgICBidWlsZF9jb21t
YW5kICs9IFsnQVJDSFM9JXMnICUgc2VsZi5fb3B0aW9ucy5hcmNoaXRlY3R1cmVdCiAKLSAgICAg
ICAgc2VsZi5fdG9vbC5leGVjdXRpdmUucnVuX2FuZF90aHJvd19pZl9mYWlsKGJ1aWxkX3dlYmtp
dF9jb21tYW5kLCBzZWxmLl9vcHRpb25zLnF1aWV0LAorICAgICAgICBzZWxmLl90b29sLmV4ZWN1
dGl2ZS5ydW5fYW5kX3Rocm93X2lmX2ZhaWwoYnVpbGRfY29tbWFuZCwgc2VsZi5fb3B0aW9ucy5x
dWlldCwKICAgICAgICAgICAgIGN3ZD1zZWxmLl90b29sLnNjbSgpLmNoZWNrb3V0X3Jvb3QsIGVu
dj1lbnYpCiAKICAgICBkZWYgcnVuKHNlbGYsIHN0YXRlKToKICAgICAgICAgaWYgbm90IHNlbGYu
X29wdGlvbnMuYnVpbGQ6CiAgICAgICAgICAgICByZXR1cm4KICAgICAgICAgX2xvZy5pbmZvKCJC
dWlsZGluZyBXZWJLaXQiKQorCisgICAgICAgIGdyb3VwID0gc2VsZi5fb3B0aW9ucy5ncm91cAor
CiAgICAgICAgIGlmIHNlbGYuX29wdGlvbnMuYnVpbGRfc3R5bGUgPT0gImJvdGgiOgotICAgICAg
ICAgICAgc2VsZi5idWlsZCgiZGVidWciKQotICAgICAgICAgICAgc2VsZi5idWlsZCgicmVsZWFz
ZSIpCisgICAgICAgICAgICBzZWxmLmJ1aWxkKCJkZWJ1ZyIsIGdyb3VwKQorICAgICAgICAgICAg
c2VsZi5idWlsZCgicmVsZWFzZSIsIGdyb3VwKQogICAgICAgICBlbHNlOgotICAgICAgICAgICAg
c2VsZi5idWlsZChzZWxmLl9vcHRpb25zLmJ1aWxkX3N0eWxlKQorICAgICAgICAgICAgc2VsZi5i
dWlsZChzZWxmLl9vcHRpb25zLmJ1aWxkX3N0eWxlLCBncm91cCkKZGlmZiAtLWdpdCBhL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9jaGVja3BhdGNocmVsZXZhbmNlLnB5IGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL2NoZWNrcGF0Y2hyZWxldmFuY2UucHkKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZDU2MTc3NzUxOTQ5YTIyYjc0OWYxYTRjYzQzNzBkN2NlYTBkY2Y2ZgotLS0gL2Rl
di9udWxsCisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9jaGVja3BhdGNo
cmVsZXZhbmNlLnB5CkBAIC0wLDAgKzEsNzUgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
IyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAor
IyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyMgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMg
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKworaW1wb3J0IGxvZ2dpbmcKK2ltcG9ydCByZQorCitmcm9tIHdlYmtpdHB5
LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZlIGltcG9ydCBTY3JpcHRFcnJvcgorZnJvbSB3ZWJraXRw
eS50b29sLnN0ZXBzLmFic3RyYWN0c3RlcCBpbXBvcnQgQWJzdHJhY3RTdGVwCitmcm9tIHdlYmtp
dHB5LnRvb2wuc3RlcHMub3B0aW9ucyBpbXBvcnQgT3B0aW9ucworCitfbG9nID0gbG9nZ2luZy5n
ZXRMb2dnZXIoX19uYW1lX18pCisKKworY2xhc3MgQ2hlY2tQYXRjaFJlbGV2YW5jZShBYnN0cmFj
dFN0ZXApOgorICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBvcHRpb25zKGNscyk6CisgICAgICAg
IHJldHVybiBBYnN0cmFjdFN0ZXAub3B0aW9ucygpICsgWworICAgICAgICAgICAgT3B0aW9ucy5n
cm91cCwKKyAgICAgICAgXQorCisgICAganNjX3BhdGhzID0gWworICAgICAgICAiSlNUZXN0cy8i
LAorICAgICAgICAiU291cmNlL0phdmFTY3JpcHRDb3JlLyIsCisgICAgICAgICJTb3VyY2UvV1RG
LyIKKyAgICAgICAgIlNvdXJjZS9ibWFsbG9jLyIsCisgICAgXQorCisgICAgZ3JvdXBfdG9fcGF0
aHNfbWFwcGluZyA9IHsKKyAgICAgICAgJ2pzYyc6IGpzY19wYXRocywKKyAgICB9CisKKyAgICBk
ZWYgX2NoYW5nZXNfYXJlX3JlbGV2YW50KHNlbGYsIGNoYW5nZWRfZmlsZXMpOgorICAgICAgICAj
IEluIHRoZSBkZWZhdWx0IGNhc2UsIGFsbCBwYXRjaGVzIGFyZSByZWxldmFudAorICAgICAgICBp
ZiBzZWxmLl9vcHRpb25zLmdyb3VwIGlzIE5vbmU6CisgICAgICAgICAgICByZXR1cm4gVHJ1ZQor
CisgICAgICAgIHBhdHRlcm5zID0gc2VsZi5ncm91cF90b19wYXRoc19tYXBwaW5nW3NlbGYuX29w
dGlvbnMuZ3JvdXBdCisKKyAgICAgICAgZm9yIGNoYW5nZWRfZmlsZSBpbiBjaGFuZ2VkX2ZpbGVz
OgorICAgICAgICAgICAgZm9yIHBhdHRlcm4gaW4gcGF0dGVybnM6CisgICAgICAgICAgICAgICAg
aWYgcmUuc2VhcmNoKHBhdHRlcm4sIGNoYW5nZWRfZmlsZSwgcmUuSUdOT1JFQ0FTRSk6CisgICAg
ICAgICAgICAgICAgICAgIHJldHVybiBUcnVlCisKKyAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAg
ICBkZWYgcnVuKHNlbGYsIHN0YXRlKToKKyAgICAgICAgX2xvZy5pbmZvKCJDaGVja2luZyByZWxl
dmFuY2Ugb2YgcGF0Y2giKQorCisgICAgICAgIGNoYW5nZV9saXN0ID0gc2VsZi5fdG9vbC5zY20o
KS5jaGFuZ2VkX2ZpbGVzKCkKKworICAgICAgICBpZiBzZWxmLl9jaGFuZ2VzX2FyZV9yZWxldmFu
dChjaGFuZ2VfbGlzdCk6CisgICAgICAgICAgICBfbG9nLmluZm8oIlRoaXMgcGF0Y2ggaGFzIHJl
bGV2YW50IGNoYW5nZXMuIikKKyAgICAgICAgICAgIHJldHVybiBUcnVlCisKKyAgICAgICAgX2xv
Zy5pbmZvKCJUaGlzIHBhdGNoIGRvZXMgbm90IGhhdmUgcmVsZXZhbnQgY2hhbmdlcy4iKQorICAg
ICAgICByYWlzZSBTY3JpcHRFcnJvcihtZXNzYWdlPSJUaGlzIHBhdGNoIGRvZXMgbm90IGhhdmUg
cmVsZXZhbnQgY2hhbmdlcy4iKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90
b29sL3N0ZXBzL29wdGlvbnMucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMv
b3B0aW9ucy5weQppbmRleCAzZWY0N2QwMDhhNTllMDUwZDRjYTBjNDg3N2RkZDFhNjA3MzFhNDA5
Li5mNWUwZGVmMzI3MTdlMzA2ZTYzMTY5ODQxMTEwYjI4OThiNzJhMWYxIDEwMDY0NAotLS0gYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvb3B0aW9ucy5weQorKysgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvb3B0aW9ucy5weQpAQCAtMSw0ICsxLDUgQEAKICMg
Q29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENv
cHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC00Niw2ICs0Nyw3IEBAIGNsYXNzIE9wdGlvbnMo
b2JqZWN0KToKICAgICBlbWFpbCA9IG1ha2Vfb3B0aW9uKCItLWVtYWlsIiwgYWN0aW9uPSJzdG9y
ZSIsIHR5cGU9InN0cmluZyIsIGRlc3Q9ImVtYWlsIiwgaGVscD0iRW1haWwgYWRkcmVzcyB0byB1
c2UgaW4gQ2hhbmdlTG9ncy4iKQogICAgIGZvcmNlX2NsZWFuID0gbWFrZV9vcHRpb24oIi0tZm9y
Y2UtY2xlYW4iLCBhY3Rpb249InN0b3JlX3RydWUiLCBkZXN0PSJmb3JjZV9jbGVhbiIsIGRlZmF1
bHQ9RmFsc2UsIGhlbHA9IkNsZWFuIHdvcmtpbmcgZGlyZWN0b3J5IGJlZm9yZSBhcHBseWluZyBw
YXRjaGVzIChyZW1vdmVzIGxvY2FsIGNoYW5nZXMgYW5kIGNvbW1pdHMpIikKICAgICBnaXRfY29t
bWl0ID0gbWFrZV9vcHRpb24oIi1nIiwgIi0tZ2l0LWNvbW1pdCIsIGFjdGlvbj0ic3RvcmUiLCBk
ZXN0PSJnaXRfY29tbWl0IiwgaGVscD0iT3BlcmF0ZSBvbiBhIGxvY2FsIGNvbW1pdC4gSWYgYSBy
YW5nZSwgdGhlIGNvbW1pdHMgYXJlIHNxdWFzaGVkIGludG8gb25lLiA8cmVmPi4uLi4gaW5jbHVk
ZXMgdGhlIHdvcmtpbmcgY29weSBjaGFuZ2VzLiBVUFNUUkVBTSBjYW4gYmUgdXNlZCBmb3IgdGhl
IHVwc3RyZWFtL3RyYWNraW5nIGJyYW5jaC4iKQorICAgIGdyb3VwID0gbWFrZV9vcHRpb24oIi0t
Z3JvdXAiLCBhY3Rpb249InN0b3JlIiwgZGVzdD0iZ3JvdXAiLCBkZWZhdWx0PU5vbmUsIGhlbHA9
IiIpCiAgICAgbG9jYWxfY29tbWl0ID0gbWFrZV9vcHRpb24oIi0tbG9jYWwtY29tbWl0IiwgYWN0
aW9uPSJzdG9yZV90cnVlIiwgZGVzdD0ibG9jYWxfY29tbWl0IiwgZGVmYXVsdD1GYWxzZSwgaGVs
cD0iTWFrZSBhIGxvY2FsIGNvbW1pdCBmb3IgZWFjaCBhcHBsaWVkIHBhdGNoIikKICAgICBub25f
aW50ZXJhY3RpdmUgPSBtYWtlX29wdGlvbigiLS1ub24taW50ZXJhY3RpdmUiLCBhY3Rpb249InN0
b3JlX3RydWUiLCBkZXN0PSJub25faW50ZXJhY3RpdmUiLCBkZWZhdWx0PUZhbHNlLCBoZWxwPSJO
ZXZlciBwcm9tcHQgdGhlIHVzZXIsIGZhaWwgYXMgZmFzdCBhcyBwb3NzaWJsZS4iKQogICAgIG9i
c29sZXRlX3BhdGNoZXMgPSBtYWtlX29wdGlvbigiLS1uby1vYnNvbGV0ZSIsIGFjdGlvbj0ic3Rv
cmVfZmFsc2UiLCBkZXN0PSJvYnNvbGV0ZV9wYXRjaGVzIiwgZGVmYXVsdD1UcnVlLCBoZWxwPSJE
byBub3Qgb2Jzb2xldGUgb2xkIHBhdGNoZXMgYmVmb3JlIHBvc3RpbmcgdGhpcyBvbmUuIikKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9ydW50ZXN0cy5weSBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9ydW50ZXN0cy5weQppbmRleCA3NWQ3
MmJjOWFkMmY0ZTM2ZDQ1ZmRhYzkwZjE4MTk0ODFjZjAyODhiLi5lZjk3OWU1NzI3ODZmNzFlYzMz
MTA0OWVjZmI3MWY2Y2RmZWNhZTk1IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L3Rvb2wvc3RlcHMvcnVudGVzdHMucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29s
L3N0ZXBzL3J1bnRlc3RzLnB5CkBAIC0xLDQgKzEsNSBAQAogIyBDb3B5cmlnaHQgKEMpIDIwMTAg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDE3IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cyBhcmUKQEAgLTUzLDkgKzU0LDE0IEBAIGNsYXNzIFJ1blRlc3RzKEFic3RyYWN0U3RlcCk6CiAg
ICAgICAgICAgICBPcHRpb25zLml0ZXJhdGVfb25fbmV3X3Rlc3RzLAogICAgICAgICAgICAgT3B0
aW9ucy5ub25faW50ZXJhY3RpdmUsCiAgICAgICAgICAgICBPcHRpb25zLnF1aWV0LAorICAgICAg
ICAgICAgT3B0aW9ucy5ncm91cCwKICAgICAgICAgXQogCiAgICAgZGVmIHJ1bihzZWxmLCBzdGF0
ZSk6CisgICAgICAgIGlmIHNlbGYuX29wdGlvbnMuZ3JvdXAgPT0gImpzYyI6CisgICAgICAgICAg
ICBzZWxmLl9ydW5famF2YXNjcmlwdGNvcmVfdGVzdHMoKQorICAgICAgICAgICAgcmV0dXJuCisK
ICAgICAgICAgaWYgc2VsZi5fb3B0aW9ucy5pdGVyYXRlX29uX25ld190ZXN0czoKICAgICAgICAg
ICAgIF9sb2cuaW5mbygiUnVubmluZyBydW4td2Via2l0LXRlc3RzIG9uIG5ldyB0ZXN0cyIpCiAg
ICAgICAgICAgICBzZWxmLl9ydW5fd2Via2l0X3Rlc3RzKHNlbGYuX29wdGlvbnMuaXRlcmF0ZV9v
bl9uZXdfdGVzdHMpCkBAIC0xNDMsMyArMTQ5LDcgQEAgY2xhc3MgUnVuVGVzdHMoQWJzdHJhY3RT
dGVwKToKICAgICAgICAgICAgIGFyZ3MuYXBwZW5kKCItLWl0ZXJhdGlvbnM9JWQiICUgaXRlcmF0
ZV9vbl9uZXdfdGVzdHMpCiAKICAgICAgICAgc2VsZi5fdG9vbC5leGVjdXRpdmUucnVuX2FuZF90
aHJvd19pZl9mYWlsKGFyZ3MsIGN3ZD1zZWxmLl90b29sLnNjbSgpLmNoZWNrb3V0X3Jvb3QpCisK
KyAgICBkZWYgX3J1bl9qYXZhc2NyaXB0Y29yZV90ZXN0cyhzZWxmKToKKyAgICAgICAgYXJncyA9
IHNlbGYuX3Rvb2wuZGVwcmVjYXRlZF9wb3J0KCkucnVuX2phdmFzY3JpcHRjb3JlX3Rlc3RzX2Nv
bW1hbmQoc2VsZi5fb3B0aW9ucy5idWlsZF9zdHlsZSkKKyAgICAgICAgc2VsZi5fdG9vbC5leGVj
dXRpdmUucnVuX2FuZF90aHJvd19pZl9mYWlsKGFyZ3MsIGN3ZD1zZWxmLl90b29sLnNjbSgpLmNo
ZWNrb3V0X3Jvb3QpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3Rl
cHMvcnVudGVzdHNfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3Rl
cHMvcnVudGVzdHNfdW5pdHRlc3QucHkKaW5kZXggMzAwMDY4MTkyMDBhZDkyZDg2MDk2NDJlOGY4
MDI3ZDI0NmQ4Nzg0OS4uZDRkOTk2NDZjMmZmMDVlY2RkY2M4ZDQxZTI3OTNmNTBmY2JkZjQ2NCAx
MDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3J1bnRlc3RzX3Vu
aXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9ydW50ZXN0
c191bml0dGVzdC5weQpAQCAtNDAsNyArNDAsNyBAQCBjbGFzcyBSdW5UZXN0c1Rlc3QodW5pdHRl
c3QuVGVzdENhc2UpOgogICAgICAgICB0b29sID0gTW9ja1Rvb2wobG9nX2V4ZWN1dGl2ZT1UcnVl
KQogICAgICAgICB0b29sLl9kZXByZWNhdGVkX3BvcnQucnVuX3B5dGhvbl91bml0dGVzdHNfY29t
bWFuZCA9IGxhbWJkYTogTm9uZQogICAgICAgICB0b29sLl9kZXByZWNhdGVkX3BvcnQucnVuX3Bl
cmxfdW5pdHRlc3RzX2NvbW1hbmQgPSBsYW1iZGE6IE5vbmUKLSAgICAgICAgc3RlcCA9IFJ1blRl
c3RzKHRvb2wsIE1vY2tPcHRpb25zKHRlc3Q9VHJ1ZSwgbm9uX2ludGVyYWN0aXZlPVRydWUsIHF1
aWV0PUZhbHNlLCBidWlsZF9zdHlsZT0icmVsZWFzZSIsIGl0ZXJhdGVfb25fbmV3X3Rlc3RzPTAp
KQorICAgICAgICBzdGVwID0gUnVuVGVzdHModG9vbCwgTW9ja09wdGlvbnModGVzdD1UcnVlLCBu
b25faW50ZXJhY3RpdmU9VHJ1ZSwgcXVpZXQ9RmFsc2UsIGJ1aWxkX3N0eWxlPSJyZWxlYXNlIiwg
aXRlcmF0ZV9vbl9uZXdfdGVzdHM9MCwgZ3JvdXA9Tm9uZSkpCiAKICAgICAgICAgaWYgc3lzLnBs
YXRmb3JtICE9ICJjeWd3aW4iOgogICAgICAgICAgICAgZXhwZWN0ZWRfbG9ncyA9ICIiIlJ1bm5p
bmcgYmluZGluZ3MgZ2VuZXJhdGlvbiB0ZXN0cwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS90b29sL3N0ZXBzL3N0ZXBzX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS90b29sL3N0ZXBzL3N0ZXBzX3VuaXR0ZXN0LnB5CmluZGV4IDdkOTRhMTNiMzQ2M2Q5OGE0
NGY5NDlmODE0Y2M3MTIxYzA2OGFiNWQuLjBmMWZjZmM5YmE4OGNkOTY4MzNlZTE0ZTc5OGJlMzQx
ZDY0MGZmMzIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9z
dGVwc191bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMv
c3RlcHNfdW5pdHRlc3QucHkKQEAgLTEsNCArMSw1IEBACiAjIENvcHlyaWdodCAoQykgMjAxMCBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMTcgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
IGFyZQpAQCAtMjgsNiArMjksNyBAQAogCiBpbXBvcnQgdW5pdHRlc3QKIAorZnJvbSB3ZWJraXRw
eS5jb21tb24uc3lzdGVtLmV4ZWN1dGl2ZSBpbXBvcnQgU2NyaXB0RXJyb3IKIGZyb20gd2Via2l0
cHkuY29tbW9uLnN5c3RlbS5vdXRwdXRjYXB0dXJlIGltcG9ydCBPdXRwdXRDYXB0dXJlCiBmcm9t
IHdlYmtpdHB5LmNvbW1vbi5jb25maWcucG9ydHMgaW1wb3J0IERlcHJlY2F0ZWRQb3J0CiBmcm9t
IHdlYmtpdHB5LnRvb2wubW9ja3Rvb2wgaW1wb3J0IE1vY2tPcHRpb25zLCBNb2NrVG9vbApAQCAt
MzgsNiArNDAsNyBAQCBmcm9tIHdlYmtpdHB5LnRvb2wgaW1wb3J0IHN0ZXBzCiBjbGFzcyBTdGVw
c1Rlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIGRlZiBfc3RlcF9vcHRpb25zKHNlbGYpOgog
ICAgICAgICBvcHRpb25zID0gTW9ja09wdGlvbnMoKQorICAgICAgICBvcHRpb25zLmdyb3VwID0g
Tm9uZQogICAgICAgICBvcHRpb25zLm5vbl9pbnRlcmFjdGl2ZSA9IFRydWUKICAgICAgICAgb3B0
aW9ucy5wb3J0ID0gJ01PQ0sgcG9ydCcKICAgICAgICAgb3B0aW9ucy5xdWlldCA9IFRydWUKQEAg
LTExMSw3ICsxMTQsNyBAQCBNT0NLIHJ1bl9hbmRfdGhyb3dfaWZfZmFpbDogWydUb29scy9TY3Jp
cHRzL3Rlc3Qtd2Via2l0cHknXSwgY3dkPS9tb2NrLWNoZWNrb3V0CiBSdW5uaW5nIFBlcmwgdW5p
dCB0ZXN0cwogTU9DSyBydW5fYW5kX3Rocm93X2lmX2ZhaWw6IFsnVG9vbHMvU2NyaXB0cy90ZXN0
LXdlYmtpdHBlcmwnXSwgY3dkPS9tb2NrLWNoZWNrb3V0CiBSdW5uaW5nIEphdmFTY3JpcHRDb3Jl
IHRlc3RzCi1NT0NLIHJ1bl9hbmRfdGhyb3dfaWZfZmFpbDogWydUb29scy9TY3JpcHRzL3J1bi1q
YXZhc2NyaXB0Y29yZS10ZXN0cyddLCBjd2Q9L21vY2stY2hlY2tvdXQKK01PQ0sgcnVuX2FuZF90
aHJvd19pZl9mYWlsOiBbJ1Rvb2xzL1NjcmlwdHMvcnVuLWphdmFzY3JpcHRjb3JlLXRlc3RzJywg
Jy0tbm8tZmFpbC1mYXN0JywgJy0tanNvbi1vdXRwdXQ9anNjX3Rlc3RfcmVzdWx0cy5qc29uJ10s
IGN3ZD0vbW9jay1jaGVja291dAogUnVubmluZyBiaW5kaW5ncyBnZW5lcmF0aW9uIHRlc3RzCiBN
T0NLIHJ1bl9hbmRfdGhyb3dfaWZfZmFpbDogWydUb29scy9TY3JpcHRzL3J1bi1iaW5kaW5ncy10
ZXN0cyddLCBjd2Q9L21vY2stY2hlY2tvdXQKIFJ1bm5pbmcgcnVuLXdlYmtpdC10ZXN0cwpAQCAt
MTMzLDEwICsxMzYsMTExIEBAIE1PQ0sgcnVuX2FuZF90aHJvd19pZl9mYWlsOiBbJ1Rvb2xzL1Nj
cmlwdHMvdGVzdC13ZWJraXRweSddLCBjd2Q9L21vY2stY2hlY2tvdXQKIFJ1bm5pbmcgUGVybCB1
bml0IHRlc3RzCiBNT0NLIHJ1bl9hbmRfdGhyb3dfaWZfZmFpbDogWydUb29scy9TY3JpcHRzL3Rl
c3Qtd2Via2l0cGVybCddLCBjd2Q9L21vY2stY2hlY2tvdXQKIFJ1bm5pbmcgSmF2YVNjcmlwdENv
cmUgdGVzdHMKLU1PQ0sgcnVuX2FuZF90aHJvd19pZl9mYWlsOiBbJ1Rvb2xzL1NjcmlwdHMvcnVu
LWphdmFzY3JpcHRjb3JlLXRlc3RzJ10sIGN3ZD0vbW9jay1jaGVja291dAorTU9DSyBydW5fYW5k
X3Rocm93X2lmX2ZhaWw6IFsnVG9vbHMvU2NyaXB0cy9ydW4tamF2YXNjcmlwdGNvcmUtdGVzdHMn
LCAnLS1uby1mYWlsLWZhc3QnLCAnLS1qc29uLW91dHB1dD1qc2NfdGVzdF9yZXN1bHRzLmpzb24n
XSwgY3dkPS9tb2NrLWNoZWNrb3V0CiBSdW5uaW5nIGJpbmRpbmdzIGdlbmVyYXRpb24gdGVzdHMK
IE1PQ0sgcnVuX2FuZF90aHJvd19pZl9mYWlsOiBbJ1Rvb2xzL1NjcmlwdHMvcnVuLWJpbmRpbmdz
LXRlc3RzJ10sIGN3ZD0vbW9jay1jaGVja291dAogUnVubmluZyBydW4td2Via2l0LXRlc3RzCiBN
T0NLIHJ1bl9hbmRfdGhyb3dfaWZfZmFpbDogWydUb29scy9TY3JpcHRzL3J1bi13ZWJraXQtdGVz
dHMnLCAnLS1kZWJ1ZycsICctLXF1aWV0J10sIGN3ZD0vbW9jay1jaGVja291dAogIiIiCiAgICAg
ICAgIE91dHB1dENhcHR1cmUoKS5hc3NlcnRfb3V0cHV0cyhzZWxmLCBzdGVwLnJ1biwgW3t9XSwg
ZXhwZWN0ZWRfbG9ncz1leHBlY3RlZF9sb2dzKQorCisgICAgZGVmIHRlc3RfcnVudGVzdHNfanNj
KHNlbGYpOgorICAgICAgICBtb2NrX29wdGlvbnMgPSBzZWxmLl9zdGVwX29wdGlvbnMoKQorICAg
ICAgICBtb2NrX29wdGlvbnMubm9uX2ludGVyYWN0aXZlID0gRmFsc2UKKyAgICAgICAgbW9ja19v
cHRpb25zLmJ1aWxkX3N0eWxlID0gInJlbGVhc2UiCisgICAgICAgIG1vY2tfb3B0aW9ucy5ncm91
cCA9ICJqc2MiCisgICAgICAgIHN0ZXAgPSBzdGVwcy5SdW5UZXN0cyhNb2NrVG9vbChsb2dfZXhl
Y3V0aXZlPVRydWUpLCBtb2NrX29wdGlvbnMpCisgICAgICAgIHRvb2wgPSBNb2NrVG9vbChsb2df
ZXhlY3V0aXZlPVRydWUpCisgICAgICAgICMgRklYTUU6IFdlIHNob3VsZG4ndCB1c2UgYSByZWFs
IHBvcnQtb2JqZWN0IGhlcmUsIGJ1dCB0aGVyZSBpcyB0b28gbXVjaCB0byBtb2NrIGF0IHRoZSBt
b21lbnQuCisgICAgICAgIHRvb2wuX2RlcHJlY2F0ZWRfcG9ydCA9IERlcHJlY2F0ZWRQb3J0KCkK
KyAgICAgICAgc3RlcCA9IHN0ZXBzLlJ1blRlc3RzKHRvb2wsIG1vY2tfb3B0aW9ucykKKyAgICAg
ICAgZXhwZWN0ZWRfbG9ncyA9ICIiIk1PQ0sgcnVuX2FuZF90aHJvd19pZl9mYWlsOiBbJ1Rvb2xz
L1NjcmlwdHMvcnVuLWphdmFzY3JpcHRjb3JlLXRlc3RzJywgJy0tbm8tZmFpbC1mYXN0JywgJy0t
anNvbi1vdXRwdXQ9anNjX3Rlc3RfcmVzdWx0cy5qc29uJywgJy0tcmVsZWFzZSddLCBjd2Q9L21v
Y2stY2hlY2tvdXQKKyIiIgorICAgICAgICBPdXRwdXRDYXB0dXJlKCkuYXNzZXJ0X291dHB1dHMo
c2VsZiwgc3RlcC5ydW4sIFt7fV0sIGV4cGVjdGVkX2xvZ3M9ZXhwZWN0ZWRfbG9ncykKKworICAg
IGRlZiB0ZXN0X3J1bnRlc3RzX2pzY19kZWJ1ZyhzZWxmKToKKyAgICAgICAgbW9ja19vcHRpb25z
ID0gc2VsZi5fc3RlcF9vcHRpb25zKCkKKyAgICAgICAgbW9ja19vcHRpb25zLm5vbl9pbnRlcmFj
dGl2ZSA9IEZhbHNlCisgICAgICAgIG1vY2tfb3B0aW9ucy5idWlsZF9zdHlsZSA9ICJkZWJ1ZyIK
KyAgICAgICAgbW9ja19vcHRpb25zLmdyb3VwID0gImpzYyIKKyAgICAgICAgdG9vbCA9IE1vY2tU
b29sKGxvZ19leGVjdXRpdmU9VHJ1ZSkKKyAgICAgICAgIyBGSVhNRTogV2Ugc2hvdWxkbid0IHVz
ZSBhIHJlYWwgcG9ydC1vYmplY3QgaGVyZSwgYnV0IHRoZXJlIGlzIHRvbyBtdWNoIHRvIG1vY2sg
YXQgdGhlIG1vbWVudC4KKyAgICAgICAgdG9vbC5fZGVwcmVjYXRlZF9wb3J0ID0gRGVwcmVjYXRl
ZFBvcnQoKQorICAgICAgICBzdGVwID0gc3RlcHMuUnVuVGVzdHModG9vbCwgbW9ja19vcHRpb25z
KQorICAgICAgICBleHBlY3RlZF9sb2dzID0gIiIiTU9DSyBydW5fYW5kX3Rocm93X2lmX2ZhaWw6
IFsnVG9vbHMvU2NyaXB0cy9ydW4tamF2YXNjcmlwdGNvcmUtdGVzdHMnLCAnLS1uby1mYWlsLWZh
c3QnLCAnLS1qc29uLW91dHB1dD1qc2NfdGVzdF9yZXN1bHRzLmpzb24nLCAnLS1kZWJ1ZyddLCBj
d2Q9L21vY2stY2hlY2tvdXQKKyIiIgorICAgICAgICBPdXRwdXRDYXB0dXJlKCkuYXNzZXJ0X291
dHB1dHMoc2VsZiwgc3RlcC5ydW4sIFt7fV0sIGV4cGVjdGVkX2xvZ3M9ZXhwZWN0ZWRfbG9ncykK
KworICAgIGRlZiB0ZXN0X2J1aWxkX2pzY19kZWJ1ZyhzZWxmKToKKyAgICAgICAgbW9ja19vcHRp
b25zID0gc2VsZi5fc3RlcF9vcHRpb25zKCkKKyAgICAgICAgbW9ja19vcHRpb25zLm5vbl9pbnRl
cmFjdGl2ZSA9IEZhbHNlCisgICAgICAgIG1vY2tfb3B0aW9ucy5idWlsZF9zdHlsZSA9ICJkZWJ1
ZyIKKyAgICAgICAgbW9ja19vcHRpb25zLmJ1aWxkID0gVHJ1ZQorICAgICAgICBtb2NrX29wdGlv
bnMuYXJjaGl0ZWN0dXJlID0gVHJ1ZQorICAgICAgICBtb2NrX29wdGlvbnMuZ3JvdXAgPSAianNj
IgorICAgICAgICB0b29sID0gTW9ja1Rvb2wobG9nX2V4ZWN1dGl2ZT1UcnVlKQorICAgICAgICAj
IEZJWE1FOiBXZSBzaG91bGRuJ3QgdXNlIGEgcmVhbCBwb3J0LW9iamVjdCBoZXJlLCBidXQgdGhl
cmUgaXMgdG9vIG11Y2ggdG8gbW9jayBhdCB0aGUgbW9tZW50LgorICAgICAgICB0b29sLl9kZXBy
ZWNhdGVkX3BvcnQgPSBEZXByZWNhdGVkUG9ydCgpCisgICAgICAgIHN0ZXAgPSBzdGVwcy5CdWls
ZCh0b29sLCBtb2NrX29wdGlvbnMpCisgICAgICAgIGV4cGVjdGVkX2xvZ3MgPSAiIiJCdWlsZGlu
ZyBXZWJLaXQKK01PQ0sgcnVuX2FuZF90aHJvd19pZl9mYWlsOiBbJ1Rvb2xzL1NjcmlwdHMvYnVp
bGQtanNjJywgJy0tZGVidWcnLCAnQVJDSFM9VHJ1ZSddLCBjd2Q9L21vY2stY2hlY2tvdXQsIGVu
dj17J0xDX0FMTCc6ICdDJywgJ1RFUk0nOiAnbm9uZScsICdNT0NLX0VOVklST05fQ09QWSc6ICcx
J30KKyIiIgorICAgICAgICBPdXRwdXRDYXB0dXJlKCkuYXNzZXJ0X291dHB1dHMoc2VsZiwgc3Rl
cC5ydW4sIFt7fV0sIGV4cGVjdGVkX2xvZ3M9ZXhwZWN0ZWRfbG9ncykKKworICAgIGRlZiB0ZXN0
X2J1aWxkX2pzYyhzZWxmKToKKyAgICAgICAgbW9ja19vcHRpb25zID0gc2VsZi5fc3RlcF9vcHRp
b25zKCkKKyAgICAgICAgbW9ja19vcHRpb25zLm5vbl9pbnRlcmFjdGl2ZSA9IEZhbHNlCisgICAg
ICAgIG1vY2tfb3B0aW9ucy5idWlsZF9zdHlsZSA9ICJyZWxlYXNlIgorICAgICAgICBtb2NrX29w
dGlvbnMuYnVpbGQgPSBUcnVlCisgICAgICAgIG1vY2tfb3B0aW9ucy5hcmNoaXRlY3R1cmUgPSBU
cnVlCisgICAgICAgIG1vY2tfb3B0aW9ucy5ncm91cCA9ICJqc2MiCisgICAgICAgIHRvb2wgPSBN
b2NrVG9vbChsb2dfZXhlY3V0aXZlPVRydWUpCisgICAgICAgICMgRklYTUU6IFdlIHNob3VsZG4n
dCB1c2UgYSByZWFsIHBvcnQtb2JqZWN0IGhlcmUsIGJ1dCB0aGVyZSBpcyB0b28gbXVjaCB0byBt
b2NrIGF0IHRoZSBtb21lbnQuCisgICAgICAgIHRvb2wuX2RlcHJlY2F0ZWRfcG9ydCA9IERlcHJl
Y2F0ZWRQb3J0KCkKKyAgICAgICAgc3RlcCA9IHN0ZXBzLkJ1aWxkKHRvb2wsIG1vY2tfb3B0aW9u
cykKKyAgICAgICAgZXhwZWN0ZWRfbG9ncyA9ICIiIkJ1aWxkaW5nIFdlYktpdAorTU9DSyBydW5f
YW5kX3Rocm93X2lmX2ZhaWw6IFsnVG9vbHMvU2NyaXB0cy9idWlsZC1qc2MnLCAnLS1yZWxlYXNl
JywgJ0FSQ0hTPVRydWUnXSwgY3dkPS9tb2NrLWNoZWNrb3V0LCBlbnY9eydMQ19BTEwnOiAnQycs
ICdURVJNJzogJ25vbmUnLCAnTU9DS19FTlZJUk9OX0NPUFknOiAnMSd9CisiIiIKKyAgICAgICAg
T3V0cHV0Q2FwdHVyZSgpLmFzc2VydF9vdXRwdXRzKHNlbGYsIHN0ZXAucnVuLCBbe31dLCBleHBl
Y3RlZF9sb2dzPWV4cGVjdGVkX2xvZ3MpCisKKyAgICBkZWYgdGVzdF9wYXRjaF9yZWxldmFudChz
ZWxmKToKKyAgICAgICAgc2VsZi5tYXhEaWZmID0gTm9uZQorICAgICAgICBtb2NrX29wdGlvbnMg
PSBzZWxmLl9zdGVwX29wdGlvbnMoKQorICAgICAgICB0b29sID0gTW9ja1Rvb2wobG9nX2V4ZWN1
dGl2ZT1UcnVlKQorICAgICAgICB0b29sLnNjbSgpLl9tb2NrQ2hhbmdlZEZpbGVzID0gWyJKU1Rl
c3RzL01vY2tGaWxlMSIsICJDaGFuZ2VMb2ciXQorICAgICAgICAjIEZJWE1FOiBXZSBzaG91bGRu
J3QgdXNlIGEgcmVhbCBwb3J0LW9iamVjdCBoZXJlLCBidXQgdGhlcmUgaXMgdG9vIG11Y2ggdG8g
bW9jayBhdCB0aGUgbW9tZW50LgorICAgICAgICB0b29sLl9kZXByZWNhdGVkX3BvcnQgPSBEZXBy
ZWNhdGVkUG9ydCgpCisgICAgICAgIHN0ZXAgPSBzdGVwcy5DaGVja1BhdGNoUmVsZXZhbmNlKHRv
b2wsIG1vY2tfb3B0aW9ucykKKyAgICAgICAgZXhwZWN0ZWRfbG9ncyA9ICIiIkNoZWNraW5nIHJl
bGV2YW5jZSBvZiBwYXRjaAorVGhpcyBwYXRjaCBoYXMgcmVsZXZhbnQgY2hhbmdlcy4KKyIiIgor
ICAgICAgICBPdXRwdXRDYXB0dXJlKCkuYXNzZXJ0X291dHB1dHMoc2VsZiwgc3RlcC5ydW4sIFt7
fV0sIGV4cGVjdGVkX2xvZ3M9ZXhwZWN0ZWRfbG9ncykKKworICAgIGRlZiB0ZXN0X3BhdGNoX3Jl
bGV2YW50X2pzYyhzZWxmKToKKyAgICAgICAgc2VsZi5tYXhEaWZmID0gTm9uZQorICAgICAgICBt
b2NrX29wdGlvbnMgPSBzZWxmLl9zdGVwX29wdGlvbnMoKQorICAgICAgICBtb2NrX29wdGlvbnMu
Z3JvdXAgPSAianNjIgorICAgICAgICB0b29sID0gTW9ja1Rvb2wobG9nX2V4ZWN1dGl2ZT1UcnVl
KQorICAgICAgICB0b29sLnNjbSgpLl9tb2NrQ2hhbmdlZEZpbGVzID0gWyJKU1Rlc3RzL01vY2tG
aWxlMSIsICJDaGFuZ2VMb2ciXQorICAgICAgICAjIEZJWE1FOiBXZSBzaG91bGRuJ3QgdXNlIGEg
cmVhbCBwb3J0LW9iamVjdCBoZXJlLCBidXQgdGhlcmUgaXMgdG9vIG11Y2ggdG8gbW9jayBhdCB0
aGUgbW9tZW50LgorICAgICAgICB0b29sLl9kZXByZWNhdGVkX3BvcnQgPSBEZXByZWNhdGVkUG9y
dCgpCisgICAgICAgIHN0ZXAgPSBzdGVwcy5DaGVja1BhdGNoUmVsZXZhbmNlKHRvb2wsIG1vY2tf
b3B0aW9ucykKKyAgICAgICAgZXhwZWN0ZWRfbG9ncyA9ICIiIkNoZWNraW5nIHJlbGV2YW5jZSBv
ZiBwYXRjaAorVGhpcyBwYXRjaCBoYXMgcmVsZXZhbnQgY2hhbmdlcy4KKyIiIgorICAgICAgICBP
dXRwdXRDYXB0dXJlKCkuYXNzZXJ0X291dHB1dHMoc2VsZiwgc3RlcC5ydW4sIFt7fV0sIGV4cGVj
dGVkX2xvZ3M9ZXhwZWN0ZWRfbG9ncykKKworICAgIGRlZiB0ZXN0X3BhdGNoX25vdF9yZWxldmFu
dF9qc2Moc2VsZik6CisgICAgICAgIHNlbGYubWF4RGlmZiA9IE5vbmUKKyAgICAgICAgbW9ja19v
cHRpb25zID0gc2VsZi5fc3RlcF9vcHRpb25zKCkKKyAgICAgICAgbW9ja19vcHRpb25zLmdyb3Vw
ID0gImpzYyIKKyAgICAgICAgdG9vbCA9IE1vY2tUb29sKGxvZ19leGVjdXRpdmU9VHJ1ZSkKKyAg
ICAgICAgdG9vbC5zY20oKS5fbW9ja0NoYW5nZWRGaWxlcyA9IFsiVG9vbHMvQ2hhbmdlTG9nIiwg
IlRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9zdGVwc191bml0dGVzdC5weSJdCisg
ICAgICAgICMgRklYTUU6IFdlIHNob3VsZG4ndCB1c2UgYSByZWFsIHBvcnQtb2JqZWN0IGhlcmUs
IGJ1dCB0aGVyZSBpcyB0b28gbXVjaCB0byBtb2NrIGF0IHRoZSBtb21lbnQuCisgICAgICAgIHRv
b2wuX2RlcHJlY2F0ZWRfcG9ydCA9IERlcHJlY2F0ZWRQb3J0KCkKKyAgICAgICAgc3RlcCA9IHN0
ZXBzLkNoZWNrUGF0Y2hSZWxldmFuY2UodG9vbCwgbW9ja19vcHRpb25zKQorICAgICAgICBleHBl
Y3RlZF9sb2dzID0gIiIiQ2hlY2tpbmcgcmVsZXZhbmNlIG9mIHBhdGNoCitUaGlzIHBhdGNoIGRv
ZXMgbm90IGhhdmUgcmVsZXZhbnQgY2hhbmdlcy4KKyIiIgorICAgICAgICB3aXRoIHNlbGYuYXNz
ZXJ0UmFpc2VzKFNjcmlwdEVycm9yKToKKyAgICAgICAgICAgIE91dHB1dENhcHR1cmUoKS5hc3Nl
cnRfb3V0cHV0cyhzZWxmLCBzdGVwLnJ1biwgW3t9XSwgZXhwZWN0ZWRfbG9ncz1leHBlY3RlZF9s
b2dzKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>301848</attachid>
            <date>2017-02-16 15:51:38 -0800</date>
            <delta_ts>2017-02-16 15:58:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-162458-20170216154901.patch</filename>
            <type>text/plain</type>
            <size>92000</size>
            <attacher name="Srinivasan Vijayaraghavan">webkit</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEyMTUyCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMjEzZWYxNzgzNzkyOWQ1YzAwZjhiMGY0NWI4ZTcyNDhm
MWVlOTdiMi4uMWYxMWUwZWFhMWIyNmU0MDA3OTNkZjQ4NGJiYjQ0N2M1OGFkOWU1MSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEz
NiBAQAorMjAxNy0wMi0xNSAgU3Jpbml2YXNhbiBWaWpheWFyYWdoYXZhbiAgPHN2aWpheWFyYWdo
YXZhbkBhcHBsZS5jb20+CisKKyAgICAgICAgRVdTIHNob3VsZCBydW4gSmF2YVNjcmlwdENvcmUg
dGVzdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2
MjQ1OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
UXVldWVTdGF0dXNTZXJ2ZXIvY29uZmlnL3F1ZXVlcy5weTogQWRkIGpzYy1ld3MgcXVldWUuCisg
ICAgICAgICogUXVldWVTdGF0dXNTZXJ2ZXIvbW9kZWwvcXVldWVzdGF0dXMucHk6CisgICAgICAg
IChRdWV1ZVN0YXR1cy5kaWRfc2tpcCk6IFJldHVybnMgd2hldGhlciBwYXRjaCB3YXMgc2tpcHBl
ZCwgYmFzZWQgb24gc3RhdHVzLgorICAgICAgICAqIFF1ZXVlU3RhdHVzU2VydmVyL2hhbmRsZXJz
L3N0YXR1c2J1YmJsZS5weToKKyAgICAgICAgKFN0YXR1c0J1YmJsZS5fc2hvdWxkX3Nob3dfYnVi
YmxlX2Zvcik6IEFkZCBsb2dpYyB0byBoaWRlIGpzYy1ld3MgYnViYmxlIGlmIHRoZSBwYXRjaCBk
b2VzIG5vdCB0b3VjaCBqc2MuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hl
Y2tvdXQvc2NtL3NjbV9tb2NrLnB5OgorICAgICAgICAoTW9ja1NDTS5fX2luaXRfXyk6IEFkZCBf
bW9ja0NoYW5nZWRGaWxlcyB2YXJpYWJsZS4KKyAgICAgICAgKE1vY2tTQ00uY2hhbmdlZF9maWxl
cyk6IENoYW5nZSB0byB1c2UgX21vY2tDaGFuZ2VkRmlsZXMgdmFyaWFibGVzLgorICAgICAgICAq
IFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9ld3MuanNvbjogQWRkIGNvbmZpZyBpbmZv
IGZvciBKU0MgRVdTLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9w
b3J0cy5weTogQWRkIHN1cHBvcnQgZm9yIEpTQyBFV1MgaW4gTWFjIFBvcnQuCisgICAgICAgIChE
ZXByZWNhdGVkUG9ydC5fYXBwZW5kX2J1aWxkX3N0eWxlX2ZsYWcpOiBIZWxwZXIgZnVuY3Rpb24g
dG8gYXBwZW5kIGJ1aWxkX3N0eWxlIHRvIGEgY29tbWFuZC4KKyAgICAgICAgKERlcHJlY2F0ZWRQ
b3J0LmJ1aWxkX2pzY19jb21tYW5kKTogQWRkZWQgLSBjb21tYW5kIHRvIGJ1aWxkIEpTQyBvbmx5
IChxdWlja2VyIHRoYW4gYnVpbGRpbmcgYWxsIG9mIFdlYktpdCkuCisgICAgICAgIChEZXByZWNh
dGVkUG9ydC5ydW5famF2YXNjcmlwdGNvcmVfdGVzdHNfY29tbWFuZCk6IEFsbG93IEpTQyBFV1Mg
dG8gb25seSBydW4gSlNDIHRlc3RzLgorICAgICAgICAoTWFjUG9ydC5ydW5fd2Via2l0X3Rlc3Rz
X2NvbW1hbmQpOiBDaGVjayBmb3IgSlNDLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29t
bW9uL2NvbmZpZy9wb3J0c19tb2NrLnB5OgorICAgICAgICAoTW9ja1BvcnQucnVuX2phdmFzY3Jp
cHRjb3JlX3Rlc3RzX2NvbW1hbmQpOiBBZGQgYnVpbGRfc3R5bGUgYXJndW1lbnQuCisgICAgICAg
ICogU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL3BvcnRzX3VuaXR0ZXN0LnB5OgorICAg
ICAgICAoRGVwcmVjYXRlZFBvcnRUZXN0LnRlc3RfbWFjX3BvcnQpOiBBZGQgdW5pdCB0ZXN0cyBm
b3IgYnVpbGQtanNjIHNoZWxsIGNvbW1hbmQuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9j
b21tb24vbmV0L2Fic3RyYWN0dGVzdHJlc3VsdHMucHk6IEFkZGVkLgorICAgICAgICAoQWJzdHJh
Y3RUZXN0UmVzdWx0cyk6IEFic3RyYWN0IHN1cGVyY2xhc3Mgb2YgSlNDVGVzdFJlc3VsdHMgYW5k
IEpTQ1Rlc3RSZXN1bHRzLgorICAgICAgICAoQWJzdHJhY3RUZXN0UmVzdWx0cy50ZXN0X3Jlc3Vs
dHMpOiBTdHViLgorICAgICAgICAoQWJzdHJhY3RUZXN0UmVzdWx0cy5mYWlsaW5nX3Rlc3RzKTog
U3R1Yi4KKyAgICAgICAgKEFic3RyYWN0VGVzdFJlc3VsdHMuZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1
cmVfbGltaXQpOiBTdHViLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9q
c2N0ZXN0cmVzdWx0cy5weTogQWRkZWQuCisgICAgICAgIChKU0NUZXN0UmVzdWx0cyk6IEFkZGVk
LgorICAgICAgICAoSlNDVGVzdFJlc3VsdHMuaW50ZXJzZWN0aW9uKTogUmV0dXJuIGEgSlNDVGVz
dFJlc3VsdHMgb2JqZWN0IHdpdGggZmFpbHVyZXMgY29tbW9uIHRvIGJvdGggaW5wdXQgb2JqZWN0
cy4KKyAgICAgICAgKEpTQ1Rlc3RSZXN1bHRzLnJlc3VsdHNfZnJvbV9zdHJpbmcpOiBVc2UganNv
biBsaWJyYXJ5IHRvIHBhcnNlIHJlc3VsdHMuCisgICAgICAgIChKU0NUZXN0UmVzdWx0cy5fX2lu
aXRfXyk6IEluaXRpYWxpemUgbWVtYmVycy4KKyAgICAgICAgKEpTQ1Rlc3RSZXN1bHRzLmVxdWFs
cyk6IFRoaXMgZW5hYmxlcyB1bml0IHRlc3RpbmcuCisgICAgICAgIChKU0NUZXN0UmVzdWx0cy5p
c19zdWJzZXQpOiBDaGVja3MgaWYgb25lIHNldCBvZiBmYWlsdXJlcyBpcyBhIHN1YnNldCBvZiBh
bm90aGVyLgorICAgICAgICAoSlNDVGVzdFJlc3VsdHMuYWxsX3Bhc3NlZCk6IEdldHRlci4KKyAg
ICAgICAgKEpTQ1Rlc3RSZXN1bHRzLmZhaWxpbmdfdGVzdHMpOiBHZXR0ZXIuCisgICAgICAgIChK
U0NUZXN0UmVzdWx0cy5kaWRfZXhjZWVkX3Rlc3RfZmFpbHVyZV9saW1pdCk6IEdldHRlci4KKyAg
ICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvanNjdGVzdHJlc3VsdHNfdW5pdHRl
c3QucHk6IEFkZGVkLgorICAgICAgICAoSlNDVGVzdFJlc3VsdHNUZXN0KTogQ2xhc3MgdG8gdGVz
dCBKU0NUZXN0UmVzdWx0cy4KKyAgICAgICAgKEpTQ1Rlc3RSZXN1bHRzVGVzdC50ZXN0X3Jlc3Vs
dHNfZnJvbV9zdHJpbmcpOiBUZXN0cyBwYXJzaW5nLgorICAgICAgICAoSlNDVGVzdFJlc3VsdHNU
ZXN0LnRlc3RfaW50ZXJzZWN0aW9uX2FwaV90ZXN0cyk6IFVuaXQgdGVzdCBmb3IgaW50ZXJzZWN0
aW9uKCkgY2xhc3MgbWV0aG9kLgorICAgICAgICAoSlNDVGVzdFJlc3VsdHNUZXN0LnRlc3RfaW50
ZXJzZWN0aW9uX3N0cmVzc190ZXN0cyk6IFVuaXQgdGVzdCBmb3IgaW50ZXJzZWN0aW9uKCkgY2xh
c3MgbWV0aG9kLgorICAgICAgICAoSlNDVGVzdFJlc3VsdHNUZXN0LnRlc3RfaW50ZXJzZWN0aW9u
X2dlbmVyYWxfY2FzZSk6IFVuaXQgdGVzdCBmb3IgaW50ZXJzZWN0aW9uKCkgY2xhc3MgbWV0aG9k
LgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvcG9ydC9iYXNlLnB5OgorICAgICAgICAoUG9y
dC5qc2NfcmVzdWx0c19kaXJlY3RvcnkpOiBSZXR1cm5zIHRoZSBkaXJlY3RvcnkgZm9yIHRoZSBK
U0MgdGVzdCByZXN1bHRzIEpTT04gZmlsZS4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rv
b2wvYm90L2Vhcmx5d2FybmluZ3N5c3RlbXRhc2sucHk6CisgICAgICAgIChFYXJseVdhcm5pbmdT
eXN0ZW1UYXNrLnJ1bik6IEFkZCBjaGVja19wYXRjaF9yZWxldmFuY2Ugc3RlcC4KKyAgICAgICAg
KiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2pzY2V3c191bml0dGVzdC5weTogQWRkZWQuCisg
ICAgICAgIChNb2NrUGF0Y2hBbmFseXNpc1Rhc2spOiBNb2NrZWQtb3V0IHZlcnNpb24gb2YgUGF0
Y2hBbmFseXNpc1Rhc2sgdGhhdCBkb2Vzbid0IHJ1biBjb21tYW5kcy4KKyAgICAgICAgKE1vY2tQ
YXRjaEFuYWx5c2lzVGFzay5fX2luaXRfXyk6IFNldHMgYXR0cmlidXRlcy4KKyAgICAgICAgKE1v
Y2tQYXRjaEFuYWx5c2lzVGFzay5fdGVzdCk6IE92ZXJyaWRlIHRvIG5vdCBydW4gY29tbWFuZC4K
KyAgICAgICAgKE1vY2tQYXRjaEFuYWx5c2lzVGFzay5fYnVpbGRfYW5kX3Rlc3Rfd2l0aG91dF9w
YXRjaCk6IE92ZXJyaWRlIHRvIG5vdCBydW4gY29tbWFuZC4KKyAgICAgICAgKE1vY2tQYXRjaEFu
YWx5c2lzVGFzay52YWxpZGF0ZSk6IEFzc3VtZSBtb2NrZWQgcGF0Y2ggaXMgdmFsaWQgZm9yIHB1
cnBvc2VzIG9mIHRlc3RpbmcgcmV0cnkgbG9naWMuCisgICAgICAgIChNb2NrUGF0Y2hBbmFseXNp
c1Rhc2sudGVzdF9ydW5fY291bnQpOiBTcGVjaWZpYyB0byB0aGUgbW9ja2VkIHZlcnNpb24sIHRv
IHRlc3QgcmV0cnkgbG9naWMuCisgICAgICAgIChNb2NrSlNDRWFybHlXYXJuaW5nU3lzdGVtKTog
TW9ja2VkLW91dCB2ZXJzaW9uIG9mIEFic3RhcmN0RWFybHlXYXJuaW5nU3lzdGVtIHNvIHdlIGNh
biBwcm92aWRlIHRlc3QgcmVzdWx0cy4KKyAgICAgICAgKE1vY2tKU0NFYXJseVdhcm5pbmdTeXN0
ZW0uX19pbml0X18pOiBTZXRzIGF0dHJpYnV0ZXMsIGFsc28gc2V0cyBncm91cCB0byBqc2MuCisg
ICAgICAgIChNb2NrSlNDRWFybHlXYXJuaW5nU3lzdGVtLnRlc3RfcmVzdWx0cyk6IFJldHVybnMg
dGVzdCByZXN1bHRzIHByb3ZpZGVkIGJ5IHVzLCBpbnN0ZWFkIG9mIHVzaW5nIGEgSlNPTiByZWFk
ZXIuCisgICAgICAgIChKU0NFYXJseVdhcm5pbmdTeXN0ZW1UZXN0KTogQ2xhc3MgdG8gdGVzdCBy
ZXRyeSBsb2dpYyBpbiBiZWxvdyBzaXR1YXRpb25zLgorICAgICAgICAoSlNDRWFybHlXYXJuaW5n
U3lzdGVtVGVzdC5fY3JlYXRlX3Rhc2spOiBIZWxwZXIgZnVuY3Rpb24gdG8gYWJzdHJhY3Qgb3V0
IGNvbW1vbiBjb2RlLgorICAgICAgICAoSlNDRWFybHlXYXJuaW5nU3lzdGVtVGVzdC5fcmVzdWx0
c19pbmRpY2F0ZV9hbGxfcGFzc2VkKTogRmFsc2UgaWYgaW5wdXQgaXMgTm9uZSBvciBoYXMgZmFp
bHVyZXMsIGVsc2UgVHJ1ZS4KKyAgICAgICAgKEpTQ0Vhcmx5V2FybmluZ1N5c3RlbVRlc3QudGVz
dF9zdWNjZXNzX2Nhc2UpOiBDbGVhbiBwYXRjaCBvbiBjbGVhbiB0cmVlLgorICAgICAgICAoSlND
RWFybHlXYXJuaW5nU3lzdGVtVGVzdC50ZXN0X3Rlc3RfZmFpbHVyZSk6IEZhaWxlZCBwYXRjaCBv
biBjbGVhbiB0cmVlLgorICAgICAgICAoSlNDRWFybHlXYXJuaW5nU3lzdGVtVGVzdC50ZXN0X2Zp
eCk6IFBhdGNoIHRoYXQgZml4ZXMgYWxsIHRyZWUgcmVkbmVzcy4KKyAgICAgICAgKEpTQ0Vhcmx5
V2FybmluZ1N5c3RlbVRlc3QudGVzdF9pbmVmZmVjdGl2ZV9wYXRjaCk6IFBhdGNoIHRoYXQgaGFz
IHNhbWUgZmFpbHVyZXMgYXMgdHJlZS4KKyAgICAgICAgKEpTQ0Vhcmx5V2FybmluZ1N5c3RlbVRl
c3QudGVzdF9wYXJ0aWFsbHlfZWZmZWN0aXZlX3BhdGNoKTogUGF0Y2ggZml4ZXMgc29tZSBmYWls
dXJlcyBidXQgYWRkcyBubyBuZXcgZmFpbHVyZXMuCisgICAgICAgIChKU0NFYXJseVdhcm5pbmdT
eXN0ZW1UZXN0LnRlc3RfZGlmZmVyZW50X3Rlc3RfZmFpbHVyZXNfaW5fcGF0Y2hfYW5kX3RyZWUp
OiBQYXRjaCBoYXMgc29tZSBmYWlsdXJlcyBub3QgaW4gdHJlZS4KKyAgICAgICAgKEpTQ0Vhcmx5
V2FybmluZ1N5c3RlbVRlc3QudGVzdF9maXJzdF9yZXN1bHRzX2NvdWxkX25vdF9iZV9yZWFkKTog
UGF0Y2ggcmVzdWx0cyBub3QgcmVhZGFibGUuCisgICAgICAgIChKU0NFYXJseVdhcm5pbmdTeXN0
ZW1UZXN0LnRlc3Rfc2Vjb25kX3Jlc3VsdHNfY291bGRfbm90X2JlX3JlYWQpOiBQYXRjaCByZXN1
bHRzIG5vdCByZWFkYWJsZSBvbiBzZWNvbmQgcnVuLgorICAgICAgICAoSlNDRWFybHlXYXJuaW5n
U3lzdGVtVGVzdC50ZXN0X2NsZWFuX3Jlc3VsdHNfY291bGRfbm90X2JlX3JlYWQpOiBSZXN1bHRz
IGZyb20gY2xlYW4gdHJlZSBub3QgcmVhZGFibGUuCisgICAgICAgIChKU0NFYXJseVdhcm5pbmdT
eXN0ZW1UZXN0LnRlc3RfZmxha3lfcmVzdWx0c19vbl9jbGVhbl90cmVlX3Bhc3MpOiBQYXRjaCBo
YXMgb25lIGZsYWtlIGFuZCBubyBmYWlsdXJlcy4KKyAgICAgICAgKEpTQ0Vhcmx5V2FybmluZ1N5
c3RlbVRlc3QudGVzdF9mbGFreV9yZXN1bHRzX29uX2NsZWFuX3RyZWVfcGFzc192Mik6IFBhdGNo
IGhhcyBvbmUgZmxha2UgYW5kIG5vIGZhaWx1cmVzLgorICAgICAgICAoSlNDRWFybHlXYXJuaW5n
U3lzdGVtVGVzdC50ZXN0X2ZsYWt5X3Jlc3VsdHNfb25fY2xlYW5fdHJlZV9mYWlsdXJlKTogUGF0
Y2ggaGFzIGZsYWtlcyBhbmQgZmFpbGVkIHRlc3RzLgorICAgICAgICAoSlNDRWFybHlXYXJuaW5n
U3lzdGVtVGVzdC50ZXN0X2ZsYWt5X3Jlc3VsdHNfb25fcmVkX3RyZWVfcGFzcyk6IFBhdGNoIGhh
cyBzYW1lIGZhaWx1cmVzIGFzIHRyZWUsIHBsdXMgYSBmbGFrZS4KKyAgICAgICAgKiBTY3JpcHRz
L3dlYmtpdHB5L3Rvb2wvYm90L2pzY3Rlc3RyZXN1bHRzcmVhZGVyLnB5OiBBZGRlZC4KKyAgICAg
ICAgKEpTQ1Rlc3RSZXN1bHRzUmVhZGVyKTogUmVhZHMgcmVzdWx0cyBmaWxlLgorICAgICAgICAo
SlNDVGVzdFJlc3VsdHNSZWFkZXIuX19pbml0X18pOiBTZXRzIGF0dHJpYnV0ZXMuCisgICAgICAg
IChKU0NUZXN0UmVzdWx0c1JlYWRlci5fcmVhZF9maWxlX2NvbnRlbnRzKTogUmVhZHMgZmlsZS4K
KyAgICAgICAgKEpTQ1Rlc3RSZXN1bHRzUmVhZGVyLnJlc3VsdHMpOiBJbnZva2VzIF9jcmVhdGVf
anNjX3Rlc3RfcmVzdWx0cyB0byByZXR1cm4gYSBKU0NUZXN0UmVzdWx0cyBvYmplY3QuCisgICAg
ICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9wYXRjaGFuYWx5c2lzdGFzay5weToKKyAg
ICAgICAgKFBhdGNoSXNOb3RBcHBsaWNhYmxlKTogRXhjZXB0aW9uIGZvciB3aGVuIHBhdGNoIGRv
ZXNuJ3QgaGF2ZSByZWxldmFudCBjaGFuZ2VzLgorICAgICAgICAoUGF0Y2hBbmFseXNpc1Rhc2su
X2NoZWNrX3BhdGNoX3JlbGV2YW5jZSk6IEFkZGVkLgorICAgICAgICAoUGF0Y2hBbmFseXNpc1Rh
c2suX2J1aWxkKTogQ2hlY2sgZm9yIEpTQy4KKyAgICAgICAgKFBhdGNoQW5hbHlzaXNUYXNrLl9i
dWlsZF93aXRob3V0X3BhdGNoKTogQ2hlY2sgZm9yIEpTQy4KKyAgICAgICAgKFBhdGNoQW5hbHlz
aXNUYXNrLl90ZXN0KTogQ2hlY2sgZm9yIEpTQy4KKyAgICAgICAgKFBhdGNoQW5hbHlzaXNUYXNr
Ll9idWlsZF9hbmRfdGVzdF93aXRob3V0X3BhdGNoKTogQ2hlY2sgZm9yIEpTQy4KKyAgICAgICAg
KFBhdGNoQW5hbHlzaXNUYXNrLl9yZXRyeV9qc2NfdGVzdHMpOiBSZXRyeSBsb2dpYyBmb3IgSlND
IEVXUy4KKyAgICAgICAgKFBhdGNoQW5hbHlzaXNUYXNrLl9yZXRyeV9sYXlvdXRfdGVzdHMpOiBS
ZXRyeSBsb2dpYyBmb3IgbGF5b3V0IHRlc3RzIEVXUy4KKyAgICAgICAgKFBhdGNoQW5hbHlzaXNU
YXNrLl90ZXN0X3BhdGNoKTogQWRkIHJldHJ5IGxvZ2ljIGZvciBKU0MuCisgICAgICAgICogU2Ny
aXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Rvd25sb2FkLnB5OgorICAgICAgICAoQ2hlY2tQ
YXRjaFJlbGV2YW5jZSk6IEFkZCBjaGVjay1wYXRjaC1yZWxldmFuY2UgY29tbWFuZC4KKyAgICAg
ICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZWFybHl3YXJuaW5nc3lzdGVtLnB5
OgorICAgICAgICAoQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0uX2NyZWF0ZV90YXNrKTogQWJz
dHJhY3Qgb3V0IHRvIGVuYWJsZSBtb2NraW5nLgorICAgICAgICAoQWJzdHJhY3RFYXJseVdhcm5p
bmdTeXN0ZW0uYmVnaW5fd29ya19xdWV1ZSk6IFVzZSBKU0NUZXN0UmVzdWx0c1JlYWRlciBub3Qg
TGF5b3V0VGVzdFJlc3VsdHNSZWFkZXIgaW4gSlNDIEVXUy4KKyAgICAgICAgKEFic3RyYWN0RWFy
bHlXYXJuaW5nU3lzdGVtLnJldmlld19wYXRjaCk6IEhhbmRsZSBQYXRjaElzQXBwbGljYWJsZS4K
KyAgICAgICAgKEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtLnRlc3RfcmVzdWx0cyk6IF9sYXlv
dXRfdGVzdF9yZXN1bHRzX3JlYWRlciAtPiBfdGVzdF9yZXN1bHRzX3JlYWRlci4KKyAgICAgICAg
KEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtLmFyY2hpdmVfbGFzdF90ZXN0X3Jlc3VsdHMpOiBf
bGF5b3V0X3Rlc3RfcmVzdWx0c19yZWFkZXIgLT4gX3Rlc3RfcmVzdWx0c19yZWFkZXIuCisgICAg
ICAgIChBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbS5ncm91cCk6IFRoaXMgYXR0cmlidXRlIGRl
dGVybWluZXMgdGhlIHR5cGUgb2YgRVdTIChlZy4gSlNDKS4KKyAgICAgICAgKEFic3RyYWN0RWFy
bHlXYXJuaW5nU3lzdGVtLmxvYWRfZXdzX2NsYXNzZXMpOiBBZGQgX2dyb3VwLCBhbmQgbWFrZSBj
bGFzc2VzIG9mIHR5cGUgY2xzIHRvIGVuYWJsZSBtb2NraW5nLgorICAgICAgICAqIFNjcmlwdHMv
d2Via2l0cHkvdG9vbC9jb21tYW5kcy9lYXJseXdhcm5pbmdzeXN0ZW1fdW5pdHRlc3QucHk6Cisg
ICAgICAgIChUZXN0RVdTKTogU2FtcGxlIGxheW91dCB0ZXN0IEVXUyBjbGFzcyB1c2VkIGZvciB1
bml0IHRlc3RpbmcuCisgICAgICAgIChUZXN0SlNDRVdTKTogU2FtcGxlIEpTQyBFV1MgY2xhc3Mg
dXNlZCBmb3IgdW5pdCB0ZXN0aW5nLgorICAgICAgICAoQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0
ZW1UZXN0LnRlc3RfZmFpbGluZ190ZXN0c19tZXNzYWdlLlRlc3RFV1MpOiBBZGQgX2dyb3VwLgor
ICAgICAgICAoQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW1UZXN0LnRlc3RfZmFpbGluZ19qc2Nf
dGVzdHNfbWVzc2FnZS5UZXN0RVdTKTogQWRkZWQgdGVzdCBmb3IganNjIGZhaWx1cmVzIG1lc3Nh
Z2UuCisgICAgICAgIChBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbVRlc3QpOiBBZGQgX2dyb3Vw
IHZhcmlhYmxlLgorICAgICAgICAoRWFybHlXYXJuaW5nU3lzdGVtVGVzdC5fZGVmYXVsdF9leHBl
Y3RlZF9sb2dzKTogQWRkIGNoZWNrLXBhdGNoLXJlbGV2YW5jZSBzdGVwLCBpbmNvbmNsdXNpdmUg
bG9ncywgYW5kIGdyb3VwLgorICAgICAgICAoRWFybHlXYXJuaW5nU3lzdGVtVGVzdC5fdGVzdF9l
d3MpOiBBZGQgbG9nc19hcmVfY29uY2x1c2l2ZSBvcHRpb24gdG8gcGFzcyB0aHJvdWdoIHRvIGRl
ZmF1bHRfZXhwZWN0ZWRfbG9ncygpLgorICAgICAgICAoRWFybHlXYXJuaW5nU3lzdGVtVGVzdC50
ZXN0X2luY29uY2x1c2l2ZV90ZXN0X3Jlc3VsdHMpOiBUZXN0IG5vdCByZW1vdmluZyBwYXRjaCBm
cm9tIHF1ZXVlIGlmIG5vdCBjb25jbHVzaXZlLgorICAgICAgICAoTW9ja0Fic3RyYWN0RWFybHlX
YXJuaW5nU3lzdGVtRm9ySW5jb25jbHVzaXZlSlNDUmVzdWx0cyk6IEFkZGVkLgorICAgICAgICAo
TW9ja0Fic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtRm9ySW5jb25jbHVzaXZlSlNDUmVzdWx0cy5f
dGVzdF9wYXRjaCk6IFNpbXVsYXRlcyBydW5uaW5nIHRlc3RzIGJ1dCBub3QgZ2V0dGluZyBhIGNv
bmNsdXNpdmUgcmVzdWx0LgorICAgICAgICAoTW9ja0Vhcmx5V2FybmluZ1N5c3RlbVRhc2tGb3JJ
bmNvbmNsdXNpdmVKU0NSZXN1bHRzKTogQWRkZWQuCisgICAgICAgIChNb2NrRWFybHlXYXJuaW5n
U3lzdGVtVGFza0ZvckluY29uY2x1c2l2ZUpTQ1Jlc3VsdHMuX2NyZWF0ZV90YXNrKTogVXNlIE1v
Y2tFYXJseVdhcm5pbmdTeXN0ZW1UYXNrIChub3QgRWFybHlXYXJuaW5nU3lzdGVtVGFzaykuCisg
ICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL19faW5pdF9fLnB5OiBBZGQgQ2hl
Y2tQYXRjaFJlbGV2YW5jZSBpbXBvcnQuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29s
L3N0ZXBzL2J1aWxkLnB5OgorICAgICAgICAoQnVpbGQub3B0aW9ucyk6IENoZWNrIGZvciBKU0Mu
CisgICAgICAgIChCdWlsZC5idWlsZCk6IENoZWNrIGZvciBKU0MuCisgICAgICAgIChCdWlsZC5y
dW4pOiBDaGVjayBmb3IgSlNDLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVw
cy9jaGVja3BhdGNocmVsZXZhbmNlLnB5OiBBZGRlZC4KKyAgICAgICAgKENoZWNrUGF0Y2hSZWxl
dmFuY2UpOiBBZGRlZC4KKyAgICAgICAgKENoZWNrUGF0Y2hSZWxldmFuY2UuX2RvZXNfY29udGFp
bl9jaGFuZ2VfaW5fcGF0aHMpOiBBYnN0cmFjdCBmdW5jdGlvbiB0byBwZXJmb3JtIHJlZ2V4IG1h
dGNoaW5nLgorICAgICAgICAoQ2hlY2tQYXRjaFJlbGV2YW5jZS5ydW4pOiBDaGVjayBpZiBjaGFu
Z2VkIGZpbGVzIGluIHBhdGNoIGJlbG9uZyBpbiBjZXJ0YWluIGZvbGRlcnMuCisgICAgICAgICog
U2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL29wdGlvbnMucHk6CisgICAgICAgIChPcHRpb25z
KTogQWRkIC0tZ3JvdXAgY29tbWFuZCBsaW5lIG9wdGlvbi4KKyAgICAgICAgKiBTY3JpcHRzL3dl
YmtpdHB5L3Rvb2wvc3RlcHMvcnVudGVzdHMucHk6CisgICAgICAgIChSdW5UZXN0cy5vcHRpb25z
KTogQWRkIGdyb3VwLgorICAgICAgICAoUnVuVGVzdHMucnVuKTogQ2hlY2sgZm9yIEpTQy4KKyAg
ICAgICAgKFJ1blRlc3RzLl9ydW5fd2Via2l0X3Rlc3RzKTogQ2hlY2sgZm9yIEpTQy4KKyAgICAg
ICAgKFJ1blRlc3RzKTogQWRkIF9ncm91cCBhdHRyaWJ1dGUuCisgICAgICAgIChSdW5UZXN0cy5f
cnVuX2phdmFzY3JpcHRjb3JlX3Rlc3RzKTogTmV3LgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0
cHkvdG9vbC9zdGVwcy9zdGVwc191bml0dGVzdC5weTogVW5pdCB0ZXN0cy4KKwogMjAxNy0wMi0x
MCAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgogCiAgICAgICAgIFtSZXNv
dXJjZSBUaW1pbmddIEVuYWJsZSBSZXNvdXJjZSBUaW1pbmcgYnkgZGVmYXVsdCBpbiBUZXN0cwpk
aWZmIC0tZ2l0IGEvVG9vbHMvUXVldWVTdGF0dXNTZXJ2ZXIvY29uZmlnL21lc3NhZ2VzLnB5IGIv
VG9vbHMvUXVldWVTdGF0dXNTZXJ2ZXIvY29uZmlnL21lc3NhZ2VzLnB5CmluZGV4IDZmOTU1Mjkz
MmNlNDI4ZGQzNmZlNTA5MGU5NTc3N2JjNDhkNjUxZTUuLmEwOTM0ZTIyMjlkNTY5NzY1ZGU1YWU0
MTUxZTQxOGRhM2NlMGRiYjAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1F1ZXVlU3RhdHVzU2VydmVyL2Nv
bmZpZy9tZXNzYWdlcy5weQorKysgYi9Ub29scy9RdWV1ZVN0YXR1c1NlcnZlci9jb25maWcvbWVz
c2FnZXMucHkKQEAgLTEsNCArMSw1IEBACiAjIENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAt
MjcsNiArMjgsNyBAQAogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCiAjIFRoZXNlIG11c3QgYmUgaW4gc3luYyB3
aXRoIHdlYmtpdC1wYXRjaCdzIEFic3RyYWN0UXVldWUuCitza2lwX3N0YXR1cyA9ICJTa2lwIgog
cGFzc19zdGF0dXMgPSAiUGFzcyIKIGZhaWxfc3RhdHVzID0gIkZhaWwiCiBlcnJvcl9zdGF0dXMg
PSAiRXJyb3IiCmRpZmYgLS1naXQgYS9Ub29scy9RdWV1ZVN0YXR1c1NlcnZlci9jb25maWcvcXVl
dWVzLnB5IGIvVG9vbHMvUXVldWVTdGF0dXNTZXJ2ZXIvY29uZmlnL3F1ZXVlcy5weQppbmRleCAz
NDFkZDA4M2FkZmJiODkwNzE5OGJlZWQ1ZWFiMjE5MzAyNjk4M2Y1Li4wYTIyZmYzMmM4ZjAzYzg3
MTQ5Njk4Nzc0ZjY0MzhlZDVmYWJhZGM3IDEwMDY0NAotLS0gYS9Ub29scy9RdWV1ZVN0YXR1c1Nl
cnZlci9jb25maWcvcXVldWVzLnB5CisrKyBiL1Rvb2xzL1F1ZXVlU3RhdHVzU2VydmVyL2NvbmZp
Zy9xdWV1ZXMucHkKQEAgLTEsNCArMSw0IEBACi0jIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAxNCwgMjAxNyBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjIENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKQEAgLTM2LDYgKzM2LDcg
QEAgYWxsX3F1ZXVlX25hbWVzID0gWwogICAgICJndGstd2syLWV3cyIsCiAgICAgImlvcy1ld3Mi
LAogICAgICJpb3Mtc2ltLWV3cyIsCisgICAgImpzYy1ld3MiLAogICAgICJtYWMtZXdzIiwKICAg
ICAibWFjLXdrMi1ld3MiLAogICAgICJtYWMtZGVidWctZXdzIiwKZGlmZiAtLWdpdCBhL1Rvb2xz
L1F1ZXVlU3RhdHVzU2VydmVyL2hhbmRsZXJzL3N0YXR1c2J1YmJsZS5weSBiL1Rvb2xzL1F1ZXVl
U3RhdHVzU2VydmVyL2hhbmRsZXJzL3N0YXR1c2J1YmJsZS5weQppbmRleCBjODA1MTRmZjg3ODll
ZjY5NGI5OTU3MTRlMmViNWQ5NmY4YmNhNzgyLi4zOGJhYzAzOTllMzA0MzczMDY3MTUyN2U0MGQz
NGYxNTNkYmFjNGYwIDEwMDY0NAotLS0gYS9Ub29scy9RdWV1ZVN0YXR1c1NlcnZlci9oYW5kbGVy
cy9zdGF0dXNidWJibGUucHkKKysrIGIvVG9vbHMvUXVldWVTdGF0dXNTZXJ2ZXIvaGFuZGxlcnMv
c3RhdHVzYnViYmxlLnB5CkBAIC0xLDQgKzEsNSBAQAogIyBDb3B5cmlnaHQgKEMpIDIwMDkgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBh
cmUKQEAgLTE4MiwxMSArMTgzLDE1IEBAIGNsYXNzIFN0YXR1c0J1YmJsZSh3ZWJhcHAuUmVxdWVz
dEhhbmRsZXIpOgogICAgICAgICByZXR1cm4gYnViYmxlCiAKICAgICBkZWYgX3Nob3VsZF9zaG93
X2J1YmJsZV9mb3Ioc2VsZiwgYXR0YWNobWVudCwgcXVldWUpOgotICAgICAgICAgIyBBbnkgcGVu
ZGluZyBxdWV1ZSBpcyBzaG93bi4KKyAgICAgICAgIyBBbnkgcGVuZGluZyBxdWV1ZSBpcyBzaG93
bi4KICAgICAgICAgaWYgYXR0YWNobWVudC5wb3NpdGlvbl9pbl9xdWV1ZShxdWV1ZSk6CiAgICAg
ICAgICAgICByZXR1cm4gVHJ1ZQotICAgICAgICAjIEVXUyBxdWV1ZXMgYXJlIGFsc28gc2hvd24g
d2hlbiBjb21wbGV0ZS4KLSAgICAgICAgcmV0dXJuIGJvb2wocXVldWUuaXNfZXdzKCkgYW5kIGF0
dGFjaG1lbnQuc3RhdHVzX2Zvcl9xdWV1ZShxdWV1ZSkpCisKKyAgICAgICAgaWYgbm90IHF1ZXVl
LmlzX2V3cygpOgorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICAgICAgc3RhdHVzID0g
YXR0YWNobWVudC5zdGF0dXNfZm9yX3F1ZXVlKHF1ZXVlKQorICAgICAgICByZXR1cm4gYm9vbChz
dGF0dXMgYW5kIG5vdCBzdGF0dXMuZGlkX3NraXAoKSkKIAogICAgIGRlZiBfYnVpbGRfYnViYmxl
c19mb3JfYXR0YWNobWVudChzZWxmLCBhdHRhY2htZW50KToKICAgICAgICAgc2hvd19zdWJtaXRf
dG9fZXdzID0gVHJ1ZQpkaWZmIC0tZ2l0IGEvVG9vbHMvUXVldWVTdGF0dXNTZXJ2ZXIvbW9kZWwv
cXVldWVzLnB5IGIvVG9vbHMvUXVldWVTdGF0dXNTZXJ2ZXIvbW9kZWwvcXVldWVzLnB5CmluZGV4
IDU3MmRjZTBiMDAxODllZWI3NTA2YjVmNGUzYjM1YTA1YzQxOTI0OTUuLjY3NGRhMjllOTU2ZmUy
NzgzNzA5MWIwNDdlZTI5NjgyZGZlZmZhNDYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1F1ZXVlU3RhdHVz
U2VydmVyL21vZGVsL3F1ZXVlcy5weQorKysgYi9Ub29scy9RdWV1ZVN0YXR1c1NlcnZlci9tb2Rl
bC9xdWV1ZXMucHkKQEAgLTc4LDYgKzc4LDcgQEAgY2xhc3MgUXVldWUob2JqZWN0KToKICAgICAg
ICAgZGlzcGxheV9uYW1lID0gZGlzcGxheV9uYW1lLnJlcGxhY2UoIldrMiIsICJXSzIiKQogICAg
ICAgICBkaXNwbGF5X25hbWUgPSBkaXNwbGF5X25hbWUucmVwbGFjZSgiRXdzIiwgIkVXUyIpCiAg
ICAgICAgIGRpc3BsYXlfbmFtZSA9IGRpc3BsYXlfbmFtZS5yZXBsYWNlKCJJb3MiLCAiaU9TIikK
KyAgICAgICAgZGlzcGxheV9uYW1lID0gZGlzcGxheV9uYW1lLnJlcGxhY2UoIkpzYyIsICJKU0Mi
KQogICAgICAgICByZXR1cm4gZGlzcGxheV9uYW1lCiAKICAgICBfZGFzaF9yZWdleHAgPSByZS5j
b21waWxlKCItIikKZGlmZiAtLWdpdCBhL1Rvb2xzL1F1ZXVlU3RhdHVzU2VydmVyL21vZGVsL3F1
ZXVlc3RhdHVzLnB5IGIvVG9vbHMvUXVldWVTdGF0dXNTZXJ2ZXIvbW9kZWwvcXVldWVzdGF0dXMu
cHkKaW5kZXggZDliYjZmNjU2Mzc1NDBjNzBiOTc4MWFlZDI1Yjg4MjNkOWIzODM5Ni4uOTcxZTZk
YzU4MTRhZDRiODg0OGMzNzRjNWQwY2JjYmJiZTViODZmNCAxMDA2NDQKLS0tIGEvVG9vbHMvUXVl
dWVTdGF0dXNTZXJ2ZXIvbW9kZWwvcXVldWVzdGF0dXMucHkKKysrIGIvVG9vbHMvUXVldWVTdGF0
dXNTZXJ2ZXIvbW9kZWwvcXVldWVzdGF0dXMucHkKQEAgLTEsNCArMSw1IEBACiAjIENvcHlyaWdo
dCAoQykgMjAxMyBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQg
KEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zIGFyZQpAQCAtNDAsMyArNDEsNiBAQCBjbGFzcyBRdWV1ZVN0YXR1cyhkYi5N
b2RlbCwgUXVldWVQcm9wZXJ0eU1peGluKToKICAgICBtZXNzYWdlID0gZGIuU3RyaW5nUHJvcGVy
dHkobXVsdGlsaW5lPVRydWUpCiAgICAgZGF0ZSA9IGRiLkRhdGVUaW1lUHJvcGVydHkoYXV0b19u
b3dfYWRkPVRydWUpCiAgICAgcmVzdWx0c19maWxlID0gZGIuQmxvYlByb3BlcnR5KCkKKworICAg
IGRlZiBkaWRfc2tpcChzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYubWVzc2FnZSA9PSBtZXNz
YWdlcy5za2lwX3N0YXR1cwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21t
b24vY2hlY2tvdXQvc2NtL3NjbV9tb2NrLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21t
b24vY2hlY2tvdXQvc2NtL3NjbV9tb2NrLnB5CmluZGV4IGM1ZDEwZmNiMTg5YjBhOGI1MTlmYTU1
NjI1MDIyYTcwYzQ4NmQ0NGIuLjk3NzRlYzhhZTg3M2ExYjBiODM3NjA3MTgwNjY3OTIxNTgwOWVl
ZWMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNrb3V0L3Nj
bS9zY21fbW9jay5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja291
dC9zY20vc2NtX21vY2sucHkKQEAgLTEsNCArMSw1IEBACiAjIENvcHlyaWdodCAoQykgMjAxMSBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMTcgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
IGFyZQpAQCAtMzcsNiArMzgsNyBAQCBjbGFzcyBNb2NrU0NNKG9iamVjdCk6CiAgICAgICAgIHNl
bGYuYWRkZWRfcGF0aHMgPSBzZXQoKQogICAgICAgICBzZWxmLl9maWxlc3lzdGVtID0gZmlsZXN5
c3RlbSBvciBNb2NrRmlsZVN5c3RlbSgpCiAgICAgICAgIHNlbGYuX2V4ZWN1dGl2ZSA9IGV4ZWN1
dGl2ZSBvciBNb2NrRXhlY3V0aXZlKCkKKyAgICAgICAgc2VsZi5fbW9ja0NoYW5nZWRGaWxlcyA9
IFsiTW9ja0ZpbGUxIl0KIAogICAgIGRlZiBhZGQoc2VsZiwgZGVzdGluYXRpb25fcGF0aCk6CiAg
ICAgICAgIHNlbGYuYWRkX2xpc3QoW2Rlc3RpbmF0aW9uX3BhdGhdKQpAQCAtNzEsNyArNzMsNyBA
QCBjbGFzcyBNb2NrU0NNKG9iamVjdCk6CiAgICAgICAgIHJldHVybiBzZWxmLl9maWxlc3lzdGVt
LmpvaW4oc2VsZi5jaGVja291dF9yb290LCAqY29tcHMpCiAKICAgICBkZWYgY2hhbmdlZF9maWxl
cyhzZWxmLCBnaXRfY29tbWl0PU5vbmUpOgotICAgICAgICByZXR1cm4gWyJNb2NrRmlsZTEiXQor
ICAgICAgICByZXR1cm4gc2VsZi5fbW9ja0NoYW5nZWRGaWxlcwogCiAgICAgZGVmIGNoYW5nZWRf
ZmlsZXNfZm9yX3JldmlzaW9uKHNlbGYsIHJldmlzaW9uKToKICAgICAgICAgcmV0dXJuIFsiTW9j
a0ZpbGUxIl0KZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZp
Zy9ld3MuanNvbiBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9ld3MuanNv
bgppbmRleCAzNWQ0OTg1YWIwZjkzZDEyN2IzNzIxZTQ2MDFjZDZkODlkZmNjZjNjLi5lNTM0MGZl
NWMzYzIxYWU4MWFkMWVmN2UwM2Y3ZmI4MWYzODM5Y2ZmIDEwMDY0NAotLS0gYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvZXdzLmpzb24KKysrIGIvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9jb21tb24vY29uZmlnL2V3cy5qc29uCkBAIC01MCw1ICs1MCwxMSBAQAogICAgICAg
ICAicG9ydCI6ICJtYWMiLAogICAgICAgICAibmFtZSI6ICJtYWMtMzJiaXQtZXdzIiwKICAgICAg
ICAgImFyY2hpdGVjdHVyZSI6ICJpMzg2IgorICAgIH0sCisgICAgIkpTQyBFV1MiOiB7CisgICAg
ICAgICJwb3J0IjogIm1hYyIsCisgICAgICAgICJuYW1lIjogImpzYy1ld3MiLAorICAgICAgICAi
Z3JvdXAiOiAianNjIiwKKyAgICAgICAgInJ1blRlc3RzIjogdHJ1ZQogICAgIH0KIH0KZGlmZiAt
LWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9wb3J0cy5weSBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9wb3J0cy5weQppbmRleCBhMGQ1MGRj
YjZlYTBiNWZkZTBiM2MxN2VmMTU5Y2VhZmVlMWEyZTk4Li4xODMzOTMzZWE4ZjNkMWM3MjNmNDcw
NGJhZmJjZTU4YjdjZjEzM2I4IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2Nv
bW1vbi9jb25maWcvcG9ydHMucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24v
Y29uZmlnL3BvcnRzLnB5CkBAIC0xLDYgKzEsNiBAQAogIyBDb3B5cmlnaHQgKEMpIDIwMDksIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjIENvcHlyaWdodCAoQykgMjAxMyBOb2tp
YSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCi0jIENvcHlyaWdodCAo
QykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykg
MjAxNSwgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC05NSwyNCArOTUsMzAgQEAgY2xhc3MgRGVwcmVjYXRlZFBv
cnQob2JqZWN0KToKICAgICBkZWYgcHJlcGFyZV9jaGFuZ2Vsb2dfY29tbWFuZChzZWxmKToKICAg
ICAgICAgcmV0dXJuIHNlbGYuc2NyaXB0X3NoZWxsX2NvbW1hbmQoInByZXBhcmUtQ2hhbmdlTG9n
IikKIAotICAgIGRlZiBidWlsZF93ZWJraXRfY29tbWFuZChzZWxmLCBidWlsZF9zdHlsZT1Ob25l
KToKLSAgICAgICAgY29tbWFuZCA9IHNlbGYuc2NyaXB0X3NoZWxsX2NvbW1hbmQoImJ1aWxkLXdl
YmtpdCIpCisgICAgZGVmIF9hcHBlbmRfYnVpbGRfc3R5bGVfZmxhZyhzZWxmLCBjb21tYW5kLCBi
dWlsZF9zdHlsZSk6CiAgICAgICAgIGlmIGJ1aWxkX3N0eWxlID09ICJkZWJ1ZyI6CiAgICAgICAg
ICAgICBjb21tYW5kLmFwcGVuZCgiLS1kZWJ1ZyIpCi0gICAgICAgIGlmIGJ1aWxkX3N0eWxlID09
ICJyZWxlYXNlIjoKKyAgICAgICAgZWxpZiBidWlsZF9zdHlsZSA9PSAicmVsZWFzZSI6CiAgICAg
ICAgICAgICBjb21tYW5kLmFwcGVuZCgiLS1yZWxlYXNlIikKICAgICAgICAgcmV0dXJuIGNvbW1h
bmQKIAotICAgIGRlZiBydW5famF2YXNjcmlwdGNvcmVfdGVzdHNfY29tbWFuZChzZWxmKToKLSAg
ICAgICAgcmV0dXJuIHNlbGYuc2NyaXB0X3NoZWxsX2NvbW1hbmQoInJ1bi1qYXZhc2NyaXB0Y29y
ZS10ZXN0cyIpCisgICAgZGVmIGJ1aWxkX3dlYmtpdF9jb21tYW5kKHNlbGYsIGJ1aWxkX3N0eWxl
PU5vbmUpOgorICAgICAgICBjb21tYW5kID0gc2VsZi5zY3JpcHRfc2hlbGxfY29tbWFuZCgiYnVp
bGQtd2Via2l0IikKKyAgICAgICAgcmV0dXJuIHNlbGYuX2FwcGVuZF9idWlsZF9zdHlsZV9mbGFn
KGNvbW1hbmQsIGJ1aWxkX3N0eWxlKQorCisgICAgZGVmIGJ1aWxkX2pzY19jb21tYW5kKHNlbGYs
IGJ1aWxkX3N0eWxlPU5vbmUpOgorICAgICAgICBjb21tYW5kID0gc2VsZi5zY3JpcHRfc2hlbGxf
Y29tbWFuZCgiYnVpbGQtanNjIikKKyAgICAgICAgcmV0dXJuIHNlbGYuX2FwcGVuZF9idWlsZF9z
dHlsZV9mbGFnKGNvbW1hbmQsIGJ1aWxkX3N0eWxlKQorCisgICAgZGVmIHJ1bl9qYXZhc2NyaXB0
Y29yZV90ZXN0c19jb21tYW5kKHNlbGYsIGJ1aWxkX3N0eWxlPU5vbmUpOgorICAgICAgICBjb21t
YW5kID0gc2VsZi5zY3JpcHRfc2hlbGxfY29tbWFuZCgicnVuLWphdmFzY3JpcHRjb3JlLXRlc3Rz
IikKKyAgICAgICAgY29tbWFuZC5hcHBlbmQoIi0tbm8tZmFpbC1mYXN0IikKKyAgICAgICAgY29t
bWFuZC5hcHBlbmQoIi0tanNvbi1vdXRwdXQ9anNjX3Rlc3RfcmVzdWx0cy5qc29uIikKKyAgICAg
ICAgcmV0dXJuIHNlbGYuX2FwcGVuZF9idWlsZF9zdHlsZV9mbGFnKGNvbW1hbmQsIGJ1aWxkX3N0
eWxlKQogCiAgICAgZGVmIHJ1bl93ZWJraXRfdGVzdHNfY29tbWFuZChzZWxmLCBidWlsZF9zdHls
ZT1Ob25lKToKICAgICAgICAgY29tbWFuZCA9IHNlbGYuc2NyaXB0X3NoZWxsX2NvbW1hbmQoInJ1
bi13ZWJraXQtdGVzdHMiKQotICAgICAgICBpZiBidWlsZF9zdHlsZSA9PSAiZGVidWciOgotICAg
ICAgICAgICAgY29tbWFuZC5hcHBlbmQoIi0tZGVidWciKQotICAgICAgICBpZiBidWlsZF9zdHls
ZSA9PSAicmVsZWFzZSI6Ci0gICAgICAgICAgICBjb21tYW5kLmFwcGVuZCgiLS1yZWxlYXNlIikK
LSAgICAgICAgcmV0dXJuIGNvbW1hbmQKKyAgICAgICAgcmV0dXJuIHNlbGYuX2FwcGVuZF9idWls
ZF9zdHlsZV9mbGFnKGNvbW1hbmQsIGJ1aWxkX3N0eWxlKQogCiAgICAgZGVmIHJ1bl9weXRob25f
dW5pdHRlc3RzX2NvbW1hbmQoc2VsZik6CiAgICAgICAgIHJldHVybiBzZWxmLnNjcmlwdF9zaGVs
bF9jb21tYW5kKCJ0ZXN0LXdlYmtpdHB5IikKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvY29tbW9uL2NvbmZpZy9wb3J0c19tb2NrLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9jb21tb24vY29uZmlnL3BvcnRzX21vY2sucHkKaW5kZXggNjE3NDNkZWJiNGViZWUzNzU2YmE3
YzIwZjAxNDgyMzU0MGQyZGNhNi4uY2ExYjE4YTMxMDY4NDIzYmRjZTA3Y2RlYjdkN2Q3ZDE5OWY0
MDBhYiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL3Bv
cnRzX21vY2sucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL3Bv
cnRzX21vY2sucHkKQEAgLTEsNCArMSw1IEBACiAjIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpA
QCAtNDksNyArNTAsNyBAQCBjbGFzcyBNb2NrUG9ydChvYmplY3QpOgogICAgIGRlZiBydW5fcGVy
bF91bml0dGVzdHNfY29tbWFuZChzZWxmKToKICAgICAgICAgcmV0dXJuIFsnbW9jay10ZXN0LXdl
YmtpdHBlcmwnXQogCi0gICAgZGVmIHJ1bl9qYXZhc2NyaXB0Y29yZV90ZXN0c19jb21tYW5kKHNl
bGYpOgorICAgIGRlZiBydW5famF2YXNjcmlwdGNvcmVfdGVzdHNfY29tbWFuZChzZWxmLCBidWls
ZF9zdHlsZT1Ob25lKToKICAgICAgICAgcmV0dXJuIFsnbW9jay1ydW4tamF2YWNyaXB0Y29yZS10
ZXN0cyddCiAKICAgICBkZWYgcnVuX3dlYmtpdF90ZXN0c19jb21tYW5kKHNlbGYsIGJ1aWxkX3N0
eWxlPU5vbmUpOgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29u
ZmlnL3BvcnRzX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29u
ZmlnL3BvcnRzX3VuaXR0ZXN0LnB5CmluZGV4IDA4ZDU0NTIzNmRhMzcwM2U5MjhmMWNlZWQxZGQ5
MTAyZDliODYyMmUuLjE2Y2Q3ZjkyODI1MWJiYzk5NmNiNjQ2ZTQzNTlkNzNmZGI1MzViMjYgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9wb3J0c191bml0
dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvcG9ydHNf
dW5pdHRlc3QucHkKQEAgLTEsNCArMSw1IEBACiAjIENvcHlyaWdodCAoYykgMjAwOSwgR29vZ2xl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUK
QEAgLTM5LDYgKzQwLDEwIEBAIGNsYXNzIERlcHJlY2F0ZWRQb3J0VGVzdCh1bml0dGVzdC5UZXN0
Q2FzZSk6CiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTWFjUG9ydCgpLmJ1aWxkX3dlYmtpdF9j
b21tYW5kKGJ1aWxkX3N0eWxlPSJkZWJ1ZyIpLCBEZXByZWNhdGVkUG9ydCgpLnNjcmlwdF9zaGVs
bF9jb21tYW5kKCJidWlsZC13ZWJraXQiKSArIFsiLS1kZWJ1ZyJdKQogICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKE1hY1BvcnQoKS5idWlsZF93ZWJraXRfY29tbWFuZChidWlsZF9zdHlsZT0icmVs
ZWFzZSIpLCBEZXByZWNhdGVkUG9ydCgpLnNjcmlwdF9zaGVsbF9jb21tYW5kKCJidWlsZC13ZWJr
aXQiKSArIFsiLS1yZWxlYXNlIl0pCiAKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChNYWNQb3J0
KCkuYnVpbGRfanNjX2NvbW1hbmQoKSwgRGVwcmVjYXRlZFBvcnQoKS5zY3JpcHRfc2hlbGxfY29t
bWFuZCgiYnVpbGQtanNjIikpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTWFjUG9ydCgpLmJ1
aWxkX2pzY19jb21tYW5kKGJ1aWxkX3N0eWxlPSJyZWxlYXNlIiksIERlcHJlY2F0ZWRQb3J0KCku
c2NyaXB0X3NoZWxsX2NvbW1hbmQoImJ1aWxkLWpzYyIpICsgWyItLXJlbGVhc2UiXSkKKyAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChNYWNQb3J0KCkuYnVpbGRfanNjX2NvbW1hbmQoYnVpbGRfc3R5
bGU9ImRlYnVnIiksIERlcHJlY2F0ZWRQb3J0KCkuc2NyaXB0X3NoZWxsX2NvbW1hbmQoImJ1aWxk
LWpzYyIpICsgWyItLWRlYnVnIl0pCisKICAgICBkZWYgdGVzdF9ndGtfd2syX3BvcnQoc2VsZik6
CiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoR3RrV0syUG9ydCgpLmZsYWcoKSwgIi0tcG9ydD1n
dGstd2syIikKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChHdGtXSzJQb3J0KCkucnVuX3dlYmtp
dF90ZXN0c19jb21tYW5kKCksIERlcHJlY2F0ZWRQb3J0KCkuc2NyaXB0X3NoZWxsX2NvbW1hbmQo
InJ1bi13ZWJraXQtdGVzdHMiKSArIFsiLS1ndGsiXSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvY29tbW9uL25ldC9hYnN0cmFjdHRlc3RyZXN1bHRzLnB5IGIvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9jb21tb24vbmV0L2Fic3RyYWN0dGVzdHJlc3VsdHMucHkKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMzBhNzg0NWJjM2YzZDkzMmQxNGE5MWMyOTNlNzNmZmM5NDIyYmU5MwotLS0gL2Rldi9udWxs
CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9hYnN0cmFjdHRlc3RyZXN1
bHRzLnB5CkBAIC0wLDAgKzEsMzMgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUg
bWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorIyBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisj
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwKKyMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyMgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIK
KyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKworaW1wb3J0IGxvZ2dpbmcKKworX2xvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFt
ZV9fKQorCisKK2NsYXNzIEFic3RyYWN0VGVzdFJlc3VsdHMob2JqZWN0KToKKyAgICBkZWYgZmFp
bGluZ190ZXN0cyhzZWxmKToKKyAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcigic3Vi
Y2xhc3NlcyBtdXN0IGltcGxlbWVudCIpCisKKyAgICBkZWYgZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1
cmVfbGltaXQoc2VsZik6CisgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoInN1YmNs
YXNzZXMgbXVzdCBpbXBsZW1lbnQiKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9jb21tb24vbmV0L2pzY3Rlc3RyZXN1bHRzLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9j
b21tb24vbmV0L2pzY3Rlc3RyZXN1bHRzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUyN2MyZTA5YzZkZDAwMGQ1
YzM1NTUwNzNlZTVjYTM0MTA4YTZlZmUKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2NvbW1vbi9uZXQvanNjdGVzdHJlc3VsdHMucHkKQEAgLTAsMCArMSw3NyBAQAor
IyBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIwor
IyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUgorIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAor
IyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitpbXBvcnQganNvbgoraW1w
b3J0IGxvZ2dpbmcKKworZnJvbSB3ZWJraXRweS5jb21tb24ubmV0LmFic3RyYWN0dGVzdHJlc3Vs
dHMgaW1wb3J0IEFic3RyYWN0VGVzdFJlc3VsdHMKKworX2xvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2Vy
KF9fbmFtZV9fKQorCisKK2NsYXNzIEpTQ1Rlc3RSZXN1bHRzKEFic3RyYWN0VGVzdFJlc3VsdHMp
OgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBhbGxfYXBpX3Rlc3RzX3Bhc3NlZCwgc3RyZXNzX3Rl
c3RfZmFpbHVyZXMpOgorICAgICAgICBzZWxmLl9hbGxfYXBpX3Rlc3RzX3Bhc3NlZCA9IGFsbF9h
cGlfdGVzdHNfcGFzc2VkCisgICAgICAgIHNlbGYuX3N0cmVzc190ZXN0X2ZhaWx1cmVzID0gc3Ry
ZXNzX3Rlc3RfZmFpbHVyZXMKKworICAgICAgICBzZWxmLl9mYWlsaW5nX3Rlc3RfbmFtZXMgPSBz
dHJlc3NfdGVzdF9mYWlsdXJlc1s6XQorICAgICAgICBpZiBub3Qgc2VsZi5fYWxsX2FwaV90ZXN0
c19wYXNzZWQ6CisgICAgICAgICAgICBzZWxmLl9mYWlsaW5nX3Rlc3RfbmFtZXMuYXBwZW5kKCdh
cGlUZXN0cycpCisKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgaW50ZXJzZWN0aW9uKGNscywg
Zmlyc3QsIHNlY29uZCk6CisgICAgICAgIGludGVyc2VjdGlvbl9hcGlfdGVzdHNfcGFzc2VkID0g
Zmlyc3QuX2FsbF9hcGlfdGVzdHNfcGFzc2VkIG9yIHNlY29uZC5fYWxsX2FwaV90ZXN0c19wYXNz
ZWQKKyAgICAgICAgaW50ZXJzZWN0aW9uX3N0cmVzc190ZXN0X2ZhaWx1cmVzID0gbGlzdChzZXQo
Zmlyc3QuX3N0cmVzc190ZXN0X2ZhaWx1cmVzKSAmIHNldChzZWNvbmQuX3N0cmVzc190ZXN0X2Zh
aWx1cmVzKSkKKyAgICAgICAgcmV0dXJuIGNscyhpbnRlcnNlY3Rpb25fYXBpX3Rlc3RzX3Bhc3Nl
ZCwgaW50ZXJzZWN0aW9uX3N0cmVzc190ZXN0X2ZhaWx1cmVzKQorCisgICAgQGNsYXNzbWV0aG9k
CisgICAgZGVmIHJlc3VsdHNfZnJvbV9zdHJpbmcoY2xzLCBzdHJpbmcpOgorICAgICAgICBpZiBu
b3Qgc3RyaW5nOgorICAgICAgICAgICAgcmV0dXJuIE5vbmUKKworICAgICAgICB0cnk6CisgICAg
ICAgICAgICBwYXJzZWRfcmVzdWx0cyA9IGpzb24ubG9hZHMoc3RyaW5nKQorICAgICAgICBleGNl
cHQgVmFsdWVFcnJvcjoKKyAgICAgICAgICAgIF9sb2cuZXJyb3IoJ0ludmFsaWQgSlNPTiByZXN1
bHRzJykKKyAgICAgICAgICAgIHJldHVybiBOb25lCisKKyAgICAgICAgaWYgJ2FsbEFwaVRlc3Rz
UGFzc2VkJyBub3QgaW4gcGFyc2VkX3Jlc3VsdHMgb3IgJ3N0cmVzc1Rlc3RGYWlsdXJlcycgbm90
IGluIHBhcnNlZF9yZXN1bHRzOgorICAgICAgICAgICAgcmV0dXJuIE5vbmUKKworICAgICAgICBy
ZXR1cm4gY2xzKHBhcnNlZF9yZXN1bHRzWydhbGxBcGlUZXN0c1Bhc3NlZCddLCBwYXJzZWRfcmVz
dWx0c1snc3RyZXNzVGVzdEZhaWx1cmVzJ10pCisKKyAgICBkZWYgZXF1YWxzKHNlbGYsIG90aGVy
KToKKyAgICAgICAgcmV0dXJuIChzZWxmLl9hbGxfYXBpX3Rlc3RzX3Bhc3NlZCA9PSBvdGhlci5f
YWxsX2FwaV90ZXN0c19wYXNzZWQgYW5kCisgICAgICAgICAgICAgICBzZXQoc2VsZi5fc3RyZXNz
X3Rlc3RfZmFpbHVyZXMpID09IHNldChvdGhlci5fc3RyZXNzX3Rlc3RfZmFpbHVyZXMpKQorCisg
ICAgZGVmIGlzX3N1YnNldChzZWxmLCBvdGhlcik6CisgICAgICAgIHJldHVybiBzZXQoc2VsZi5f
ZmFpbGluZ190ZXN0X25hbWVzKSA8PSBzZXQob3RoZXIuX2ZhaWxpbmdfdGVzdF9uYW1lcykKKwor
ICAgIGRlZiBhbGxfcGFzc2VkKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5fYWxsX2FwaV90
ZXN0c19wYXNzZWQgYW5kIG5vdCBzZWxmLl9zdHJlc3NfdGVzdF9mYWlsdXJlcworCisgICAgZGVm
IGZhaWxpbmdfdGVzdHMoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl9mYWlsaW5nX3Rlc3Rf
bmFtZXMKKworICAgICMgTm8gZGVmaW5lZCBmYWlsdXJlIGxpbWl0IGZvciBKU0MuCisgICAgZGVm
IGRpZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xpbWl0KHNlbGYpOgorICAgICAgICByZXR1cm4gRmFs
c2UKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9qc2N0ZXN0
cmVzdWx0c191bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9q
c2N0ZXN0cmVzdWx0c191bml0dGVzdC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40Y2YxMTQ5YWZjZDYzYjVmYmE2
NjgzMTQ5YmNhODM3YWM2ZWFiOTE2Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9jb21tb24vbmV0L2pzY3Rlc3RyZXN1bHRzX3VuaXR0ZXN0LnB5CkBAIC0wLDAgKzEs
NzUgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAor
IyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IKKyMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwKKyMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworaW1wb3J0IHVu
aXR0ZXN0CisKK2Zyb20gd2Via2l0cHkuY29tbW9uLm5ldC5qc2N0ZXN0cmVzdWx0cyBpbXBvcnQg
SlNDVGVzdFJlc3VsdHMKKworCitjbGFzcyBKU0NUZXN0UmVzdWx0c1Rlc3QodW5pdHRlc3QuVGVz
dENhc2UpOgorICAgIGRlZiB0ZXN0X3Jlc3VsdHNfZnJvbV9zdHJpbmcoc2VsZik6CisgICAgICAg
IG5vbmVfaXRlbSA9IE5vbmUKKyAgICAgICAgZW1wdHlfanNvbiA9ICcnCisgICAgICAgIGludmFs
aWRfanNvbiA9ICd7ImFsbEFwaVRlc3RzUGFzc2VkIjonCisgICAgICAgIGluY29tcGxldGVfanNv
bl92MSA9ICd7ImFsbEFwaVRlc3RzUGFzc2VkIjogdHJ1ZX0nCisgICAgICAgIGluY29tcGxldGVf
anNvbl92MiA9ICd7InN0cmVzc1Rlc3RGYWlsdXJlcyI6W119JworICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKE5vbmUsIEpTQ1Rlc3RSZXN1bHRzLnJlc3VsdHNfZnJvbV9zdHJpbmcobm9uZV9pdGVt
KSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCBKU0NUZXN0UmVzdWx0cy5yZXN1bHRz
X2Zyb21fc3RyaW5nKGVtcHR5X2pzb24pKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUs
IEpTQ1Rlc3RSZXN1bHRzLnJlc3VsdHNfZnJvbV9zdHJpbmcoaW52YWxpZF9qc29uKSkKKyAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCBKU0NUZXN0UmVzdWx0cy5yZXN1bHRzX2Zyb21fc3Ry
aW5nKGluY29tcGxldGVfanNvbl92MSkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwg
SlNDVGVzdFJlc3VsdHMucmVzdWx0c19mcm9tX3N0cmluZyhpbmNvbXBsZXRlX2pzb25fdjIpKQor
CisgICAgICAgIG5vX2ZhaWx1cmVzX3N0cmluZyA9ICd7ImFsbEFwaVRlc3RzUGFzc2VkIjogdHJ1
ZSwgInN0cmVzc1Rlc3RGYWlsdXJlcyI6W119JworICAgICAgICBub19mYWlsdXJlc19yZXN1bHRz
ID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgW10pCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShub19m
YWlsdXJlc19yZXN1bHRzLmVxdWFscyhKU0NUZXN0UmVzdWx0cy5yZXN1bHRzX2Zyb21fc3RyaW5n
KG5vX2ZhaWx1cmVzX3N0cmluZykpKQorCisgICAgICAgIGFwaV90ZXN0X2ZhaWx1cmVzX3N0cmlu
ZyA9ICd7ImFsbEFwaVRlc3RzUGFzc2VkIjogZmFsc2UsICJzdHJlc3NUZXN0RmFpbHVyZXMiOltd
fScKKyAgICAgICAgYXBpX3Rlc3RfZmFpbHVyZXNfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKEZh
bHNlLCBbXSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGFwaV90ZXN0X2ZhaWx1cmVzX3Jlc3Vs
dHMuZXF1YWxzKEpTQ1Rlc3RSZXN1bHRzLnJlc3VsdHNfZnJvbV9zdHJpbmcoYXBpX3Rlc3RfZmFp
bHVyZXNfc3RyaW5nKSkpCisKKyAgICAgICAgbWFueV9mYWlsdXJlc19zdHJpbmcgPSAneyJhbGxB
cGlUZXN0c1Bhc3NlZCI6IGZhbHNlLCAic3RyZXNzVGVzdEZhaWx1cmVzIjpbImVzNi55YW1sL2Vz
Ni90eXBlZF9hcnJheXNfSW50MTZBcnJheS5qcy5kZWZhdWx0IiwgImVzNi55YW1sL2VzNi90eXBl
ZF9hcnJheXNfSW50OEFycmF5LmpzLmRlZmF1bHQiXX0nCisgICAgICAgIG1hbnlfZmFpbHVyZXNf
cmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKEZhbHNlLCBbImVzNi55YW1sL2VzNi90eXBlZF9hcnJh
eXNfSW50MTZBcnJheS5qcy5kZWZhdWx0IiwgImVzNi55YW1sL2VzNi90eXBlZF9hcnJheXNfSW50
OEFycmF5LmpzLmRlZmF1bHQiXSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG1hbnlfZmFpbHVy
ZXNfcmVzdWx0cy5lcXVhbHMoSlNDVGVzdFJlc3VsdHMucmVzdWx0c19mcm9tX3N0cmluZyhtYW55
X2ZhaWx1cmVzX3N0cmluZykpKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2Uobm9fZmFpbHVy
ZXNfcmVzdWx0cyA9PSBhcGlfdGVzdF9mYWlsdXJlc19yZXN1bHRzKQorICAgICAgICBzZWxmLmFz
c2VydEZhbHNlKGFwaV90ZXN0X2ZhaWx1cmVzX3Jlc3VsdHMgPT0gbWFueV9mYWlsdXJlc19yZXN1
bHRzKQorCisgICAgZGVmIHRlc3RfaW50ZXJzZWN0aW9uX2FwaV90ZXN0cyhzZWxmKToKKyAgICAg
ICAgcmVzdWx0czEgPSBKU0NUZXN0UmVzdWx0cyhGYWxzZSwgW10pCisgICAgICAgIHJlc3VsdHMy
ID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgW10pCisKKyAgICAgICAgZXhwZWN0ZWRfaW50ZXJzZWN0
aW9uID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgW10pCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShl
eHBlY3RlZF9pbnRlcnNlY3Rpb24uZXF1YWxzKEpTQ1Rlc3RSZXN1bHRzLmludGVyc2VjdGlvbihy
ZXN1bHRzMSwgcmVzdWx0czIpKSkKKworICAgIGRlZiB0ZXN0X2ludGVyc2VjdGlvbl9zdHJlc3Nf
dGVzdHMoc2VsZik6CisgICAgICAgIHJlc3VsdHMxID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgWydm
YWlsdXJlMScsICdmYWlsdXJlMiddKQorICAgICAgICByZXN1bHRzMiA9IEpTQ1Rlc3RSZXN1bHRz
KFRydWUsIFsnZmFpbHVyZTEnLCAnZmFpbHVyZTMnXSkKKworICAgICAgICBleHBlY3RlZF9pbnRl
cnNlY3Rpb24gPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbJ2ZhaWx1cmUxJ10pCisgICAgICAgIHNl
bGYuYXNzZXJ0VHJ1ZShleHBlY3RlZF9pbnRlcnNlY3Rpb24uZXF1YWxzKEpTQ1Rlc3RSZXN1bHRz
LmludGVyc2VjdGlvbihyZXN1bHRzMSwgcmVzdWx0czIpKSkKKworICAgIGRlZiB0ZXN0X2ludGVy
c2VjdGlvbl9nZW5lcmFsX2Nhc2Uoc2VsZik6CisgICAgICAgIHJlc3VsdHMxID0gSlNDVGVzdFJl
c3VsdHMoVHJ1ZSwgWydmYWlsdXJlMScsICdmYWlsdXJlMiddKQorICAgICAgICByZXN1bHRzMiA9
IEpTQ1Rlc3RSZXN1bHRzKEZhbHNlLCBbJ2ZhaWx1cmUxJ10pCisKKyAgICAgICAgZXhwZWN0ZWRf
aW50ZXJzZWN0aW9uID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgWydmYWlsdXJlMSddKQorICAgICAg
ICBzZWxmLmFzc2VydFRydWUoZXhwZWN0ZWRfaW50ZXJzZWN0aW9uLmVxdWFscyhKU0NUZXN0UmVz
dWx0cy5pbnRlcnNlY3Rpb24ocmVzdWx0czEsIHJlc3VsdHMyKSkpCmRpZmYgLS1naXQgYS9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvbGF5b3V0dGVzdHJlc3VsdHMucHkgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvbGF5b3V0dGVzdHJlc3VsdHMucHkKaW5kZXgg
N2ZiNjdjMTZiN2UxZmRiMGE2NDYwN2I1NTMxNGUyNzAwZmExMmU5YS4uNzA2MTZlZGIyNDA1Y2Vl
YzUxM2ZmODQ4NWI3NTViY2E5Mjg3M2MwZSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9jb21tb24vbmV0L2xheW91dHRlc3RyZXN1bHRzLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvY29tbW9uL25ldC9sYXlvdXR0ZXN0cmVzdWx0cy5weQpAQCAtMjgsNiArMjgsNyBA
QAogCiBpbXBvcnQgbG9nZ2luZwogCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5uZXQuYWJzdHJhY3R0
ZXN0cmVzdWx0cyBpbXBvcnQgQWJzdHJhY3RUZXN0UmVzdWx0cwogZnJvbSB3ZWJraXRweS5jb21t
b24ubmV0LnJlc3VsdHNqc29ucGFyc2VyIGltcG9ydCBQYXJzZWRKU09OUmVzdWx0cwogZnJvbSB3
ZWJraXRweS50aGlyZHBhcnR5LkJlYXV0aWZ1bFNvdXAgaW1wb3J0IEJlYXV0aWZ1bFNvdXAsIFNv
dXBTdHJhaW5lcgogZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMubW9kZWxzIGltcG9ydCB0ZXN0
X3Jlc3VsdHMKQEAgLTQ1LDcgKzQ2LDcgQEAgZGVmIHBhdGhfZm9yX2xheW91dF90ZXN0KHRlc3Rf
bmFtZSk6CiAjIEZJWE1FOiBUaGlzIHNob3VsZCBiZSB1bmlmaWVkIHdpdGggUmVzdWx0c1N1bW1h
cnkgb3Igb3RoZXIgTlJXVCBsYXlvdXQgdGVzdHMgY29kZQogIyBpbiB0aGUgbGF5b3V0X3Rlc3Rz
IHBhY2thZ2UuCiAjIFRoaXMgZG9lc24ndCBiZWxvbmcgaW4gY29tbW9uLm5ldCwgYnV0IHdlIGRv
bid0IGhhdmUgYSBiZXR0ZXIgcGxhY2UgZm9yIGl0IHlldC4KLWNsYXNzIExheW91dFRlc3RSZXN1
bHRzKG9iamVjdCk6CitjbGFzcyBMYXlvdXRUZXN0UmVzdWx0cyhBYnN0cmFjdFRlc3RSZXN1bHRz
KToKICAgICBAY2xhc3NtZXRob2QKICAgICBkZWYgcmVzdWx0c19mcm9tX3N0cmluZyhjbHMsIHN0
cmluZyk6CiAgICAgICAgIGlmIG5vdCBzdHJpbmc6CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L3BvcnQvYmFzZS5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9iYXNl
LnB5CmluZGV4IDAxZTgyYzJkNjhhMGE1NWJhNzcyZGRkMzdmNmM2ZDIyODllOWI1ODcuLjZhNjE0
MmE3YzE3OWYzM2E3M2QzNzIxOTAzZTFhZDAxM2I5NmQ0YWIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvcG9ydC9iYXNlLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
cG9ydC9iYXNlLnB5CkBAIC04MDgsNiArODA4LDkgQEAgY2xhc3MgUG9ydChvYmplY3QpOgogICAg
ICAgICBpbnZlcnNlIG9mIHJlbGF0aXZlX3Rlc3RfZmlsZW5hbWUoKS4iIiIKICAgICAgICAgcmV0
dXJuIHNlbGYuX2ZpbGVzeXN0ZW0uam9pbihzZWxmLmxheW91dF90ZXN0c19kaXIoKSwgdGVzdF9u
YW1lKQogCisgICAgZGVmIGpzY19yZXN1bHRzX2RpcmVjdG9yeShzZWxmKToKKyAgICAgICAgcmV0
dXJuIHNlbGYuX2J1aWxkX3BhdGgoKQorCiAgICAgZGVmIHJlc3VsdHNfZGlyZWN0b3J5KHNlbGYp
OgogICAgICAgICAiIiJBYnNvbHV0ZSBwYXRoIHRvIHRoZSBwbGFjZSB0byBzdG9yZSB0aGUgdGVz
dCByZXN1bHRzICh1c2VzIC0tcmVzdWx0cy1kaXJlY3RvcnkpLiIiIgogICAgICAgICBpZiBub3Qg
c2VsZi5fcmVzdWx0c19kaXJlY3Rvcnk6CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L3Rvb2wvYm90L2Vhcmx5d2FybmluZ3N5c3RlbXRhc2sucHkgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L3Rvb2wvYm90L2Vhcmx5d2FybmluZ3N5c3RlbXRhc2sucHkKaW5kZXggZmMzMDhiNDNk
MWQxNzJhYjczYjBlM2FmODBkMWIxMzlkZDNjMTAzMi4uZWNmYWNkMDExYmU4ODNiNGJiMWU1Yzdk
N2RmZmRiZGNiNDU5ZGUzNSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29s
L2JvdC9lYXJseXdhcm5pbmdzeXN0ZW10YXNrLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvdG9vbC9ib3QvZWFybHl3YXJuaW5nc3lzdGVtdGFzay5weQpAQCAtMSw0ICsxLDUgQEAKICMg
Q29weXJpZ2h0IChjKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENv
cHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC0yNiw3ICsyNyw3IEBACiAjIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgogCi1mcm9tIHdlYmtpdHB5LnRvb2wuYm90LnBhdGNoYW5hbHlzaXN0
YXNrIGltcG9ydCBQYXRjaEFuYWx5c2lzVGFzaywgUGF0Y2hBbmFseXNpc1Rhc2tEZWxlZ2F0ZSwg
VW5hYmxlVG9BcHBseVBhdGNoLCBQYXRjaElzTm90VmFsaWQKK2Zyb20gd2Via2l0cHkudG9vbC5i
b3QucGF0Y2hhbmFseXNpc3Rhc2sgaW1wb3J0IFBhdGNoQW5hbHlzaXNUYXNrLCBQYXRjaEFuYWx5
c2lzVGFza0RlbGVnYXRlLCBVbmFibGVUb0FwcGx5UGF0Y2gsIFBhdGNoSXNOb3RWYWxpZCwgUGF0
Y2hJc05vdEFwcGxpY2FibGUKIAogCiBjbGFzcyBFYXJseVdhcm5pbmdTeXN0ZW1UYXNrRGVsZWdh
dGUoUGF0Y2hBbmFseXNpc1Rhc2tEZWxlZ2F0ZSk6CkBAIC01OCw2ICs1OSw4IEBAIGNsYXNzIEVh
cmx5V2FybmluZ1N5c3RlbVRhc2soUGF0Y2hBbmFseXNpc1Rhc2spOgogICAgICAgICAgICAgcmV0
dXJuIEZhbHNlCiAgICAgICAgIGlmIG5vdCBzZWxmLl9hcHBseSgpOgogICAgICAgICAgICAgcmFp
c2UgVW5hYmxlVG9BcHBseVBhdGNoKHNlbGYuX3BhdGNoKQorICAgICAgICBpZiBub3Qgc2VsZi5f
Y2hlY2tfcGF0Y2hfcmVsZXZhbmNlKCk6CisgICAgICAgICAgICByYWlzZSBQYXRjaElzTm90QXBw
bGljYWJsZShzZWxmLl9wYXRjaCkKICAgICAgICAgaWYgbm90IHNlbGYuX2J1aWxkKCk6CiAgICAg
ICAgICAgICBpZiBub3Qgc2VsZi5fYnVpbGRfd2l0aG91dF9wYXRjaCgpOgogICAgICAgICAgICAg
ICAgIHJldHVybiBGYWxzZQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29s
L2JvdC9qc2Nld3NfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90
L2pzY2V3c191bml0dGVzdC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNmFlZjNkYWU4MDExZmFiNTc1ZjJjNTQz
MTEwMDE0ZTk3YTZiMjBhCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS90b29sL2JvdC9qc2Nld3NfdW5pdHRlc3QucHkKQEAgLTAsMCArMSwyMTggQEAKKyMgQ29weXJp
Z2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMg
Mi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
CisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IKKyMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyMgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworaW1wb3J0IGxvZ2dpbmcKK2ltcG9ydCB1
bml0dGVzdAorCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5uZXQuanNjdGVzdHJlc3VsdHMgaW1wb3J0
IEpTQ1Rlc3RSZXN1bHRzCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZlIGlt
cG9ydCBTY3JpcHRFcnJvcgorZnJvbSB3ZWJraXRweS50b29sLmJvdC5wYXRjaGFuYWx5c2lzdGFz
ayBpbXBvcnQgKgorZnJvbSB3ZWJraXRweS50b29sLmNvbW1hbmRzLmVhcmx5d2FybmluZ3N5c3Rl
bSBpbXBvcnQgQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0KK2Zyb20gd2Via2l0cHkudG9vbC5t
b2NrdG9vbCBpbXBvcnQgTW9ja1Rvb2wKKworX2xvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFt
ZV9fKQorCisKK2NsYXNzIE1vY2tQYXRjaEFuYWx5c2lzVGFzayhQYXRjaEFuYWx5c2lzVGFzayk6
CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGRlbGVnYXRlLCBwYXRjaCwgcGF0Y2hlc19wYXNzZWRf
YWxsX3Rlc3RzKToKKyAgICAgICAgc2VsZi5fZGVsZWdhdGUgPSBkZWxlZ2F0ZQorICAgICAgICBz
ZWxmLl9wYXRjaCA9IHBhdGNoCisgICAgICAgIHNlbGYuX3NjcmlwdF9lcnJvciA9IE5vbmUKKyAg
ICAgICAgc2VsZi5fcmVzdWx0c19hcmNoaXZlX2Zyb21fcGF0Y2hfdGVzdF9ydW4gPSBOb25lCisg
ICAgICAgIHNlbGYuX3Jlc3VsdHNfZnJvbV9wYXRjaF90ZXN0X3J1biA9IE5vbmUKKyAgICAgICAg
c2VsZi5lcnJvciA9IE5vbmUKKyAgICAgICAgc2VsZi5fcGF0Y2hlc19wYXNzZWRfYWxsX3Rlc3Rz
ID0gcGF0Y2hlc19wYXNzZWRfYWxsX3Rlc3RzCisgICAgICAgIHNlbGYuX3Rlc3RfcnVuX2NvdW50
ID0gMAorICAgICAgICBzZWxmLmZhaWx1cmVfc3RhdHVzX2lkID0gMAorCisgICAgZGVmIF90ZXN0
KHNlbGYpOgorICAgICAgICBzZWxmLl90ZXN0X3J1bl9jb3VudCArPSAxCisKKyAgICAgICAgaWYg
c2VsZi5fcGF0Y2hlc19wYXNzZWRfYWxsX3Rlc3RzLnBvcCgpID09IFRydWU6CisgICAgICAgICAg
ICByZXR1cm4gVHJ1ZQorICAgICAgICBzZWxmLl9zY3JpcHRfZXJyb3IgPSBTY3JpcHRFcnJvcign
UmVncmVzc2lvbiB0ZXN0JykKKyAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICBkZWYgX2J1aWxk
X2FuZF90ZXN0X3dpdGhvdXRfcGF0Y2goc2VsZik6CisgICAgICAgIHNlbGYuX3Rlc3RfcnVuX2Nv
dW50ICs9IDEKKyAgICAgICAgcmV0dXJuIFRydWUKKworICAgIGRlZiB2YWxpZGF0ZShzZWxmKToK
KyAgICAgICAgcmV0dXJuIFRydWUKKworICAgIGRlZiB0ZXN0X3J1bl9jb3VudChzZWxmKToKKyAg
ICAgICAgcmV0dXJuIHNlbGYuX3Rlc3RfcnVuX2NvdW50CisKKworIyBUaGlzIGlzIHRoZSBkZWxl
Z2F0ZSB0byBiZSB1c2VkIHdpdGggTW9ja1BhdGNoQW5hbHlzaXNUYXNrLCBhYm92ZS4KK2NsYXNz
IE1vY2tKU0NFYXJseVdhcm5pbmdTeXN0ZW0oQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0pOgor
ICAgIGRlZiBfX2luaXRfXyhzZWxmLCBmaXJzdF90ZXN0X3Jlc3VsdHMsIHNlY29uZF90ZXN0X3Jl
c3VsdHMsIGNsZWFuX3Rlc3RfcmVzdWx0cyk6CisgICAgICAgIEFic3RyYWN0RWFybHlXYXJuaW5n
U3lzdGVtLl9faW5pdF9fKHNlbGYpCisgICAgICAgIHNlbGYuX2dyb3VwID0gJ2pzYycKKyAgICAg
ICAgc2VsZi5fcmVzdWx0c19pbl9vcmRlciA9IFtjbGVhbl90ZXN0X3Jlc3VsdHMsIHNlY29uZF90
ZXN0X3Jlc3VsdHMsIGZpcnN0X3Rlc3RfcmVzdWx0c10KKworICAgIGRlZiB0ZXN0X3Jlc3VsdHMo
c2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl9yZXN1bHRzX2luX29yZGVyLnBvcCgpCisKKwor
Y2xhc3MgSlNDRWFybHlXYXJuaW5nU3lzdGVtVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CisgICAg
ZGVmIF9yZXN1bHRzX2luZGljYXRlX2FsbF9wYXNzZWQoc2VsZiwgcmVzdWx0cyk6CisgICAgICAg
IGlmIHJlc3VsdHMgPT0gTm9uZToKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICBy
ZXR1cm4gcmVzdWx0cy5hbGxfcGFzc2VkKCkKKworICAgIGRlZiBfY3JlYXRlX3Rhc2soc2VsZiwg
Zmlyc3RfdGVzdF9yZXN1bHRzLCBzZWNvbmRfdGVzdF9yZXN1bHRzLCBjbGVhbl90ZXN0X3Jlc3Vs
dHMpOgorICAgICAgICBxdWV1ZSA9IE1vY2tKU0NFYXJseVdhcm5pbmdTeXN0ZW0oZmlyc3RfdGVz
dF9yZXN1bHRzLCBzZWNvbmRfdGVzdF9yZXN1bHRzLCBjbGVhbl90ZXN0X3Jlc3VsdHMpCisgICAg
ICAgIHRvb2wgPSBNb2NrVG9vbChsb2dfZXhlY3V0aXZlPVRydWUpCisgICAgICAgIHBhdGNoID0g
dG9vbC5idWdzLmZldGNoX2F0dGFjaG1lbnQoMTAwMDApCisgICAgICAgIHBhdGNoZXNfcGFzc2Vk
X2FsbF90ZXN0cyA9IG1hcChzZWxmLl9yZXN1bHRzX2luZGljYXRlX2FsbF9wYXNzZWQsIFtzZWNv
bmRfdGVzdF9yZXN1bHRzLCBmaXJzdF90ZXN0X3Jlc3VsdHNdKQorICAgICAgICByZXR1cm4gTW9j
a1BhdGNoQW5hbHlzaXNUYXNrKHF1ZXVlLCBwYXRjaCwgcGF0Y2hlc19wYXNzZWRfYWxsX3Rlc3Rz
KQorCisgICAgZGVmIHRlc3Rfc3VjY2Vzc19jYXNlKHNlbGYpOgorICAgICAgICBmaXJzdF90ZXN0
X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbXSkKKyAgICAgICAgc2Vjb25kX3Rlc3Rf
cmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFtdKQorICAgICAgICBjbGVhbl90ZXN0X3Jl
c3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbXSkKKyAgICAgICAgdGFzayA9IHNlbGYuX2Ny
ZWF0ZV90YXNrKGZpcnN0X3Rlc3RfcmVzdWx0cywgc2Vjb25kX3Rlc3RfcmVzdWx0cywgY2xlYW5f
dGVzdF9yZXN1bHRzKQorCisgICAgICAgIHJldHVybl92YWx1ZSA9IHRhc2suX3Rlc3RfcGF0Y2go
KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRhc2sudGVzdF9ydW5fY291bnQoKSwgMSkKKyAg
ICAgICAgc2VsZi5hc3NlcnRUcnVlKHJldHVybl92YWx1ZSkKKworICAgIGRlZiB0ZXN0X3Rlc3Rf
ZmFpbHVyZShzZWxmKToKKyAgICAgICAgZmlyc3RfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3Vs
dHMoVHJ1ZSwgWydGYWlsLmpzJ10pCisgICAgICAgIHNlY29uZF90ZXN0X3Jlc3VsdHMgPSBKU0NU
ZXN0UmVzdWx0cyhUcnVlLCBbJ0ZhaWwuanMnXSkKKyAgICAgICAgY2xlYW5fdGVzdF9yZXN1bHRz
ID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgW10pCisgICAgICAgIHRhc2sgPSBzZWxmLl9jcmVhdGVf
dGFzayhmaXJzdF90ZXN0X3Jlc3VsdHMsIHNlY29uZF90ZXN0X3Jlc3VsdHMsIGNsZWFuX3Rlc3Rf
cmVzdWx0cykKKworICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFNjcmlwdEVycm9yKToK
KyAgICAgICAgICAgIHJldHVybl92YWx1ZSA9IHRhc2suX3Rlc3RfcGF0Y2goKQorICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKHRhc2sudGVzdF9ydW5fY291bnQoKSwgMykKKworICAgIGRlZiB0ZXN0
X2ZpeChzZWxmKToKKyAgICAgICAgZmlyc3RfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMo
VHJ1ZSwgW10pCisgICAgICAgIHNlY29uZF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhU
cnVlLCBbXSkKKyAgICAgICAgY2xlYW5fdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1
ZSwgWydGYWlsLmpzJ10pCisgICAgICAgIHRhc2sgPSBzZWxmLl9jcmVhdGVfdGFzayhmaXJzdF90
ZXN0X3Jlc3VsdHMsIHNlY29uZF90ZXN0X3Jlc3VsdHMsIGNsZWFuX3Rlc3RfcmVzdWx0cykKKwor
ICAgICAgICByZXR1cm5fdmFsdWUgPSB0YXNrLl90ZXN0X3BhdGNoKCkKKyAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCh0YXNrLnRlc3RfcnVuX2NvdW50KCksIDEpCisgICAgICAgIHNlbGYuYXNzZXJ0
VHJ1ZShyZXR1cm5fdmFsdWUpCisKKyAgICBkZWYgdGVzdF9pbmVmZmVjdGl2ZV9wYXRjaChzZWxm
KToKKyAgICAgICAgZmlyc3RfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoRmFsc2UsIFsn
ZmFpbHVyZTEuanMnLCAnZmFpbHVyZTIuanMnXSkKKyAgICAgICAgc2Vjb25kX3Rlc3RfcmVzdWx0
cyA9IEpTQ1Rlc3RSZXN1bHRzKEZhbHNlLCBbJ2ZhaWx1cmUxLmpzJywgJ2ZhaWx1cmUyLmpzJ10p
CisgICAgICAgIGNsZWFuX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKEZhbHNlLCBbJ2Zh
aWx1cmUxLmpzJywgJ2ZhaWx1cmUyLmpzJ10pCisgICAgICAgIHRhc2sgPSBzZWxmLl9jcmVhdGVf
dGFzayhmaXJzdF90ZXN0X3Jlc3VsdHMsIHNlY29uZF90ZXN0X3Jlc3VsdHMsIGNsZWFuX3Rlc3Rf
cmVzdWx0cykKKworICAgICAgICByZXR1cm5fdmFsdWUgPSB0YXNrLl90ZXN0X3BhdGNoKCkKKyAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0YXNrLnRlc3RfcnVuX2NvdW50KCksIDMpCisgICAgICAg
IHNlbGYuYXNzZXJ0VHJ1ZShyZXR1cm5fdmFsdWUpCisKKyAgICBkZWYgdGVzdF9wYXJ0aWFsbHlf
ZWZmZWN0aXZlX3BhdGNoKHNlbGYpOgorICAgICAgICBmaXJzdF90ZXN0X3Jlc3VsdHMgPSBKU0NU
ZXN0UmVzdWx0cyhUcnVlLCBbJ2ZhaWx1cmUyLmpzJ10pCisgICAgICAgIHNlY29uZF90ZXN0X3Jl
c3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbJ2ZhaWx1cmUyLmpzJ10pCisgICAgICAgIGNs
ZWFuX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKEZhbHNlLCBbJ2ZhaWx1cmUxLmpzJywg
J2ZhaWx1cmUyLmpzJ10pCisgICAgICAgIHRhc2sgPSBzZWxmLl9jcmVhdGVfdGFzayhmaXJzdF90
ZXN0X3Jlc3VsdHMsIHNlY29uZF90ZXN0X3Jlc3VsdHMsIGNsZWFuX3Rlc3RfcmVzdWx0cykKKwor
ICAgICAgICByZXR1cm5fdmFsdWUgPSB0YXNrLl90ZXN0X3BhdGNoKCkKKyAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCh0YXNrLnRlc3RfcnVuX2NvdW50KCksIDMpCisgICAgICAgIHNlbGYuYXNzZXJ0
VHJ1ZShyZXR1cm5fdmFsdWUpCisKKyAgICBkZWYgdGVzdF9kaWZmZXJlbnRfdGVzdF9mYWlsdXJl
c19pbl9wYXRjaF9hbmRfdHJlZShzZWxmKToKKyAgICAgICAgZmlyc3RfdGVzdF9yZXN1bHRzID0g
SlNDVGVzdFJlc3VsdHMoRmFsc2UsIFtdKQorICAgICAgICBzZWNvbmRfdGVzdF9yZXN1bHRzID0g
SlNDVGVzdFJlc3VsdHMoRmFsc2UsIFtdKQorICAgICAgICBjbGVhbl90ZXN0X3Jlc3VsdHMgPSBK
U0NUZXN0UmVzdWx0cyhUcnVlLCBbJ2ZhaWx1cmUxLmpzJywgJ2ZhaWx1cmUyLmpzJ10pCisgICAg
ICAgIHRhc2sgPSBzZWxmLl9jcmVhdGVfdGFzayhmaXJzdF90ZXN0X3Jlc3VsdHMsIHNlY29uZF90
ZXN0X3Jlc3VsdHMsIGNsZWFuX3Rlc3RfcmVzdWx0cykKKworICAgICAgICB3aXRoIHNlbGYuYXNz
ZXJ0UmFpc2VzKFNjcmlwdEVycm9yKToKKyAgICAgICAgICAgIHJldHVybl92YWx1ZSA9IHRhc2su
X3Rlc3RfcGF0Y2goKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRhc2sudGVzdF9ydW5fY291
bnQoKSwgMykKKworICAgIGRlZiB0ZXN0X2ZpcnN0X3Jlc3VsdHNfY291bGRfbm90X2JlX3JlYWQo
c2VsZik6CisgICAgICAgIGZpcnN0X3Rlc3RfcmVzdWx0cyA9IE5vbmUKKyAgICAgICAgc2Vjb25k
X3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFtdKQorICAgICAgICBjbGVhbl90
ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbXSkKKyAgICAgICAgdGFzayA9IHNl
bGYuX2NyZWF0ZV90YXNrKGZpcnN0X3Rlc3RfcmVzdWx0cywgc2Vjb25kX3Rlc3RfcmVzdWx0cywg
Y2xlYW5fdGVzdF9yZXN1bHRzKQorCisgICAgICAgIHJldHVybl92YWx1ZSA9IHRhc2suX3Rlc3Rf
cGF0Y2goKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRhc2sudGVzdF9ydW5fY291bnQoKSwg
MSkKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShyZXR1cm5fdmFsdWUpCisKKyAgICBkZWYgdGVz
dF9zZWNvbmRfcmVzdWx0c19jb3VsZF9ub3RfYmVfcmVhZChzZWxmKToKKyAgICAgICAgZmlyc3Rf
dGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoRmFsc2UsIFsnZmFpbHVyZTEuanMnLCAnZmFp
bHVyZTIuanMnXSkKKyAgICAgICAgc2Vjb25kX3Rlc3RfcmVzdWx0cyA9IE5vbmUKKyAgICAgICAg
Y2xlYW5fdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgW10pCisgICAgICAgIHRh
c2sgPSBzZWxmLl9jcmVhdGVfdGFzayhmaXJzdF90ZXN0X3Jlc3VsdHMsIHNlY29uZF90ZXN0X3Jl
c3VsdHMsIGNsZWFuX3Rlc3RfcmVzdWx0cykKKworICAgICAgICByZXR1cm5fdmFsdWUgPSB0YXNr
Ll90ZXN0X3BhdGNoKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0YXNrLnRlc3RfcnVuX2Nv
dW50KCksIDIpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UocmV0dXJuX3ZhbHVlKQorCisgICAg
ZGVmIHRlc3RfY2xlYW5fcmVzdWx0c19jb3VsZF9ub3RfYmVfcmVhZChzZWxmKToKKyAgICAgICAg
Zmlyc3RfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgWydmYWlsdXJlMi5qcydd
KQorICAgICAgICBzZWNvbmRfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgWydm
YWlsdXJlMi5qcyddKQorICAgICAgICBjbGVhbl90ZXN0X3Jlc3VsdHMgPSBOb25lCisgICAgICAg
IHRhc2sgPSBzZWxmLl9jcmVhdGVfdGFzayhmaXJzdF90ZXN0X3Jlc3VsdHMsIHNlY29uZF90ZXN0
X3Jlc3VsdHMsIGNsZWFuX3Rlc3RfcmVzdWx0cykKKworICAgICAgICByZXR1cm5fdmFsdWUgPSB0
YXNrLl90ZXN0X3BhdGNoKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0YXNrLnRlc3RfcnVu
X2NvdW50KCksIDMpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UocmV0dXJuX3ZhbHVlKQorCisg
ICAgZGVmIHRlc3RfZmxha3lfcmVzdWx0c19vbl9jbGVhbl90cmVlX3Bhc3Moc2VsZik6CisgICAg
ICAgIGZpcnN0X3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFsnZmFpbHVyZTIu
anMnXSkKKyAgICAgICAgc2Vjb25kX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUs
IFtdKQorICAgICAgICBjbGVhbl90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBb
XSkKKyAgICAgICAgdGFzayA9IHNlbGYuX2NyZWF0ZV90YXNrKGZpcnN0X3Rlc3RfcmVzdWx0cywg
c2Vjb25kX3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKQorCisgICAgICAgIHJldHVy
bl92YWx1ZSA9IHRhc2suX3Rlc3RfcGF0Y2goKQorICAgICAgICBzZWxmLmFzc2VydFRydWUocmV0
dXJuX3ZhbHVlKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRhc2sudGVzdF9ydW5fY291bnQo
KSwgMikKKworICAgIGRlZiB0ZXN0X2ZsYWt5X3Jlc3VsdHNfb25fY2xlYW5fdHJlZV9wYXNzX3Yy
KHNlbGYpOgorICAgICAgICBmaXJzdF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVl
LCBbXSkKKyAgICAgICAgc2Vjb25kX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUs
IFsnZmFpbHVyZTIuanMnXSkKKyAgICAgICAgY2xlYW5fdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJl
c3VsdHMoVHJ1ZSwgW10pCisgICAgICAgIHRhc2sgPSBzZWxmLl9jcmVhdGVfdGFzayhmaXJzdF90
ZXN0X3Jlc3VsdHMsIHNlY29uZF90ZXN0X3Jlc3VsdHMsIGNsZWFuX3Rlc3RfcmVzdWx0cykKKwor
ICAgICAgICByZXR1cm5fdmFsdWUgPSB0YXNrLl90ZXN0X3BhdGNoKCkKKyAgICAgICAgc2VsZi5h
c3NlcnRUcnVlKHJldHVybl92YWx1ZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0YXNrLnRl
c3RfcnVuX2NvdW50KCksIDEpCisKKyAgICBkZWYgdGVzdF9mbGFreV9yZXN1bHRzX29uX2NsZWFu
X3RyZWVfZmFpbHVyZShzZWxmKToKKyAgICAgICAgZmlyc3RfdGVzdF9yZXN1bHRzID0gSlNDVGVz
dFJlc3VsdHMoRmFsc2UsIFsnZmFpbHVyZTEuanMnLCAnZmFpbHVyZTIuanMnXSkKKyAgICAgICAg
c2Vjb25kX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFsnZmFpbHVyZTIuanMn
XSkKKyAgICAgICAgY2xlYW5fdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgW10p
CisgICAgICAgIHRhc2sgPSBzZWxmLl9jcmVhdGVfdGFzayhmaXJzdF90ZXN0X3Jlc3VsdHMsIHNl
Y29uZF90ZXN0X3Jlc3VsdHMsIGNsZWFuX3Rlc3RfcmVzdWx0cykKKworICAgICAgICB3aXRoIHNl
bGYuYXNzZXJ0UmFpc2VzKFNjcmlwdEVycm9yKToKKyAgICAgICAgICAgIHRhc2suX3Rlc3RfcGF0
Y2goKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRhc2sudGVzdF9ydW5fY291bnQoKSwgMykK
KworICAgIGRlZiB0ZXN0X2ZsYWt5X3Jlc3VsdHNfb25fcmVkX3RyZWVfcGFzcyhzZWxmKToKKyAg
ICAgICAgZmlyc3RfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgWydmYWlsdXJl
MS5qcyddKQorICAgICAgICBzZWNvbmRfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1
ZSwgWydmYWlsdXJlMS5qcycsICdmYWlsdXJlMi5qcyddKQorICAgICAgICBjbGVhbl90ZXN0X3Jl
c3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbJ2ZhaWx1cmUxLmpzJ10pCisgICAgICAgIHRh
c2sgPSBzZWxmLl9jcmVhdGVfdGFzayhmaXJzdF90ZXN0X3Jlc3VsdHMsIHNlY29uZF90ZXN0X3Jl
c3VsdHMsIGNsZWFuX3Rlc3RfcmVzdWx0cykKKworICAgICAgICByZXR1cm5fdmFsdWUgPSB0YXNr
Ll90ZXN0X3BhdGNoKCkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHJldHVybl92YWx1ZSkKKyAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0YXNrLnRlc3RfcnVuX2NvdW50KCksIDMpCmRpZmYgLS1n
aXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2pzY3Rlc3RyZXN1bHRzcmVhZGVy
LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9qc2N0ZXN0cmVzdWx0c3JlYWRl
ci5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5iMzI2NWFiYzFiM2E2NmM0ZGU0MjQ5NmU4Yzk0MDUzYjY0OGIwYWIz
Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9qc2N0
ZXN0cmVzdWx0c3JlYWRlci5weQpAQCAtMCwwICsxLDQ0IEBACisjIENvcHlyaWdodCAoQykgMjAx
NyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JyBBTkQKKyMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUgorIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisjIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisjIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSCisjIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisjIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisKK2ltcG9ydCBsb2dnaW5nCisKK2Zyb20gd2Via2l0cHkuY29t
bW9uLm5ldC5qc2N0ZXN0cmVzdWx0cyBpbXBvcnQgSlNDVGVzdFJlc3VsdHMKKworX2xvZyA9IGxv
Z2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKQorCisKK2NsYXNzIEpTQ1Rlc3RSZXN1bHRzUmVhZGVy
KG9iamVjdCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGhvc3QsIHJlc3VsdHNfZGlyZWN0b3J5
KToKKyAgICAgICAgc2VsZi5faG9zdCA9IGhvc3QKKyAgICAgICAgc2VsZi5fcmVzdWx0c19kaXJl
Y3RvcnkgPSByZXN1bHRzX2RpcmVjdG9yeQorCisgICAgZGVmIF9yZWFkX2ZpbGVfY29udGVudHMo
c2VsZiwgcGF0aCk6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLl9ob3N0
LmZpbGVzeXN0ZW0ucmVhZF90ZXh0X2ZpbGUocGF0aCkKKyAgICAgICAgZXhjZXB0IChJT0Vycm9y
LCBLZXlFcnJvcik6CisgICAgICAgICAgICByZXR1cm4gTm9uZQorCisgICAgZGVmIHJlc3VsdHMo
c2VsZik6CisgICAgICAgIHJlc3VsdHNfcGF0aCA9IHNlbGYuX2hvc3QuZmlsZXN5c3RlbS5qb2lu
KHNlbGYuX3Jlc3VsdHNfZGlyZWN0b3J5LCAnanNjX3Rlc3RfcmVzdWx0cy5qc29uJykKKyAgICAg
ICAgY29udGVudHMgPSBzZWxmLl9yZWFkX2ZpbGVfY29udGVudHMocmVzdWx0c19wYXRoKQorICAg
ICAgICByZXR1cm4gSlNDVGVzdFJlc3VsdHMucmVzdWx0c19mcm9tX3N0cmluZyhjb250ZW50cykK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvcGF0Y2hhbmFseXNp
c3Rhc2sucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L3BhdGNoYW5hbHlzaXN0
YXNrLnB5CmluZGV4IDc1MjMxNjQxNmM1ZjlkMGEzZTU5ZWY2ZDA1ZTMxNzg1ZjkxNzQ2MjkuLmFj
YTgyZmRlMjY4YzkyMjQ0NjhiM2Q0NjM4ZDFlZmE1NDZlYWEzZjAgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvcGF0Y2hhbmFseXNpc3Rhc2sucHkKKysrIGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9wYXRjaGFuYWx5c2lzdGFzay5weQpAQCAtMSw0
ICsxLDUgQEAKICMgQ29weXJpZ2h0IChjKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC0yOCw2ICsyOSw3IEBACiAK
IGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5leGVjdXRpdmUgaW1wb3J0IFNjcmlwdEVycm9y
CiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5uZXQubGF5b3V0dGVzdHJlc3VsdHMgaW1wb3J0IExheW91
dFRlc3RSZXN1bHRzCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5uZXQuanNjdGVzdHJlc3VsdHMgaW1w
b3J0IEpTQ1Rlc3RSZXN1bHRzCiAKIAogY2xhc3MgVW5hYmxlVG9BcHBseVBhdGNoKEV4Y2VwdGlv
bik6CkBAIC00Myw2ICs0NSwxMSBAQCBjbGFzcyBQYXRjaElzTm90VmFsaWQoRXhjZXB0aW9uKToK
ICAgICAgICAgc2VsZi5mYWlsdXJlX21lc3NhZ2UgPSBmYWlsdXJlX21lc3NhZ2UKIAogCitjbGFz
cyBQYXRjaElzTm90QXBwbGljYWJsZShFeGNlcHRpb24pOgorICAgIGRlZiBfX2luaXRfXyhzZWxm
LCBwYXRjaCk6CisgICAgICAgIEV4Y2VwdGlvbi5fX2luaXRfXyhzZWxmKQorICAgICAgICBzZWxm
LnBhdGNoID0gcGF0Y2gKKwogY2xhc3MgUGF0Y2hBbmFseXNpc1Rhc2tEZWxlZ2F0ZShvYmplY3Qp
OgogICAgIGRlZiBwYXJlbnRfY29tbWFuZChzZWxmKToKICAgICAgICAgcmFpc2UgTm90SW1wbGVt
ZW50ZWRFcnJvcigic3ViY2xhc3NlcyBtdXN0IGltcGxlbWVudCIpCkBAIC0xMjIsMjggKzEyOSw0
NCBAQCBjbGFzcyBQYXRjaEFuYWx5c2lzVGFzayhvYmplY3QpOgogICAgICAgICAiQXBwbGllZCBw
YXRjaCIsCiAgICAgICAgICJQYXRjaCBkb2VzIG5vdCBhcHBseSIpCiAKKyAgICBkZWYgX2NoZWNr
X3BhdGNoX3JlbGV2YW5jZShzZWxmKToKKyAgICAgICAgYXJncyA9IFsKKyAgICAgICAgICAgICJj
aGVjay1wYXRjaC1yZWxldmFuY2UiLAorICAgICAgICBdCisKKyAgICAgICAgaWYgaGFzYXR0cihz
ZWxmLl9kZWxlZ2F0ZSwgJ2dyb3VwJyk6CisgICAgICAgICAgICBhcmdzLmFwcGVuZCgiLS1ncm91
cD0lcyIgJSBzZWxmLl9kZWxlZ2F0ZS5ncm91cCgpKQorCisgICAgICAgIHJldHVybiBzZWxmLl9y
dW5fY29tbWFuZChhcmdzLCAiQ2hlY2tlZCByZWxldmFuY2Ugb2YgcGF0Y2giLCAiUGF0Y2ggd2Fz
IG5vdCByZWxldmFudCIpCisKICAgICBkZWYgX2J1aWxkKHNlbGYpOgotICAgICAgICByZXR1cm4g
c2VsZi5fcnVuX2NvbW1hbmQoWworICAgICAgICBhcmdzID0gWwogICAgICAgICAgICAgImJ1aWxk
IiwKICAgICAgICAgICAgICItLW5vLWNsZWFuIiwKICAgICAgICAgICAgICItLW5vLXVwZGF0ZSIs
CiAgICAgICAgICAgICAiLS1idWlsZC1zdHlsZT0lcyIgJSBzZWxmLl9kZWxlZ2F0ZS5idWlsZF9z
dHlsZSgpLAotICAgICAgICBdLAotICAgICAgICAiQnVpbHQgcGF0Y2giLAotICAgICAgICAiUGF0
Y2ggZG9lcyBub3QgYnVpbGQiKQorICAgICAgICBdCisKKyAgICAgICAgaWYgaGFzYXR0cihzZWxm
Ll9kZWxlZ2F0ZSwgJ2dyb3VwJyk6CisgICAgICAgICAgICBhcmdzLmFwcGVuZCgiLS1ncm91cD0l
cyIgJSBzZWxmLl9kZWxlZ2F0ZS5ncm91cCgpKQorCisgICAgICAgIHJldHVybiBzZWxmLl9ydW5f
Y29tbWFuZChhcmdzLCAiQnVpbHQgcGF0Y2giLCAiUGF0Y2ggZG9lcyBub3QgYnVpbGQiKQogCiAg
ICAgZGVmIF9idWlsZF93aXRob3V0X3BhdGNoKHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi5f
cnVuX2NvbW1hbmQoWworICAgICAgICBhcmdzID0gWwogICAgICAgICAgICAgImJ1aWxkIiwKICAg
ICAgICAgICAgICItLWZvcmNlLWNsZWFuIiwKICAgICAgICAgICAgICItLW5vLXVwZGF0ZSIsCiAg
ICAgICAgICAgICAiLS1idWlsZC1zdHlsZT0lcyIgJSBzZWxmLl9kZWxlZ2F0ZS5idWlsZF9zdHls
ZSgpLAotICAgICAgICBdLAotICAgICAgICAiQWJsZSB0byBidWlsZCB3aXRob3V0IHBhdGNoIiwK
LSAgICAgICAgIlVuYWJsZSB0byBidWlsZCB3aXRob3V0IHBhdGNoIikKKyAgICAgICAgXQorCisg
ICAgICAgIGlmIGhhc2F0dHIoc2VsZi5fZGVsZWdhdGUsICdncm91cCcpOgorICAgICAgICAgICAg
YXJncy5hcHBlbmQoIi0tZ3JvdXA9JXMiICUgc2VsZi5fZGVsZWdhdGUuZ3JvdXAoKSkKKworICAg
ICAgICByZXR1cm4gc2VsZi5fcnVuX2NvbW1hbmQoYXJncywgIkFibGUgdG8gYnVpbGQgd2l0aG91
dCBwYXRjaCIsICJVbmFibGUgdG8gYnVpbGQgd2l0aG91dCBwYXRjaCIpCiAKICAgICBkZWYgX3Rl
c3Qoc2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmLl9ydW5fY29tbWFuZChbCisgICAgICAgIGFy
Z3MgPSBbCiAgICAgICAgICAgICAiYnVpbGQtYW5kLXRlc3QiLAogICAgICAgICAgICAgIi0tbm8t
Y2xlYW4iLAogICAgICAgICAgICAgIi0tbm8tdXBkYXRlIiwKQEAgLTE1MSwxMiArMTc0LDE1IEBA
IGNsYXNzIFBhdGNoQW5hbHlzaXNUYXNrKG9iamVjdCk6CiAgICAgICAgICAgICAiLS10ZXN0IiwK
ICAgICAgICAgICAgICItLW5vbi1pbnRlcmFjdGl2ZSIsCiAgICAgICAgICAgICAiLS1idWlsZC1z
dHlsZT0lcyIgJSBzZWxmLl9kZWxlZ2F0ZS5idWlsZF9zdHlsZSgpLAotICAgICAgICBdLAotICAg
ICAgICAiUGFzc2VkIHRlc3RzIiwKLSAgICAgICAgIlBhdGNoIGRvZXMgbm90IHBhc3MgdGVzdHMi
KQorICAgICAgICBdCisKKyAgICAgICAgaWYgaGFzYXR0cihzZWxmLl9kZWxlZ2F0ZSwgJ2dyb3Vw
Jyk6CisgICAgICAgICAgICBhcmdzLmFwcGVuZCgiLS1ncm91cD0lcyIgJSBzZWxmLl9kZWxlZ2F0
ZS5ncm91cCgpKQorCisgICAgICAgIHJldHVybiBzZWxmLl9ydW5fY29tbWFuZChhcmdzLCAiUGFz
c2VkIHRlc3RzIiwgIlBhdGNoIGRvZXMgbm90IHBhc3MgdGVzdHMiKQogCiAgICAgZGVmIF9idWls
ZF9hbmRfdGVzdF93aXRob3V0X3BhdGNoKHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi5fcnVu
X2NvbW1hbmQoWworICAgICAgICBhcmdzID0gWwogICAgICAgICAgICAgImJ1aWxkLWFuZC10ZXN0
IiwKICAgICAgICAgICAgICItLWZvcmNlLWNsZWFuIiwKICAgICAgICAgICAgICItLW5vLXVwZGF0
ZSIsCkBAIC0xNjQsOSArMTkwLDEyIEBAIGNsYXNzIFBhdGNoQW5hbHlzaXNUYXNrKG9iamVjdCk6
CiAgICAgICAgICAgICAiLS10ZXN0IiwKICAgICAgICAgICAgICItLW5vbi1pbnRlcmFjdGl2ZSIs
CiAgICAgICAgICAgICAiLS1idWlsZC1zdHlsZT0lcyIgJSBzZWxmLl9kZWxlZ2F0ZS5idWlsZF9z
dHlsZSgpLAotICAgICAgICBdLAotICAgICAgICAiQWJsZSB0byBwYXNzIHRlc3RzIHdpdGhvdXQg
cGF0Y2giLAotICAgICAgICAiVW5hYmxlIHRvIHBhc3MgdGVzdHMgd2l0aG91dCBwYXRjaCAodHJl
ZSBpcyByZWQ/KSIpCisgICAgICAgIF0KKworICAgICAgICBpZiBoYXNhdHRyKHNlbGYuX2RlbGVn
YXRlLCAnZ3JvdXAnKToKKyAgICAgICAgICAgIGFyZ3MuYXBwZW5kKCItLWdyb3VwPSVzIiAlIHNl
bGYuX2RlbGVnYXRlLmdyb3VwKCkpCisKKyAgICAgICAgcmV0dXJuIHNlbGYuX3J1bl9jb21tYW5k
KGFyZ3MsICJBYmxlIHRvIHBhc3MgdGVzdHMgd2l0aG91dCBwYXRjaCIsICJVbmFibGUgdG8gcGFz
cyB0ZXN0cyB3aXRob3V0IHBhdGNoICh0cmVlIGlzIHJlZD8pIikKIAogICAgIGRlZiBfbGFuZChz
ZWxmKToKICAgICAgICAgIyBVbmNsZWFyIGlmIHRoaXMgc2hvdWxkIHBhc3MgLS1xdWlldCBvciBu
b3QuICBJZiAtLXBhcmVudC1jb21tYW5kIGFsd2F5cyBkb2VzIHRoZSByZXBvcnRpbmcsIHRoZW4g
aXQgc2hvdWxkLgpAQCAtMjA2LDEwICsyMzUsMzUgQEAgY2xhc3MgUGF0Y2hBbmFseXNpc1Rhc2so
b2JqZWN0KToKICAgICAgICAgIyBhbHNvIHByZXNlbnQgd2l0aG91dCB0aGUgcGF0Y2gsIHNvIHdl
IGRvbid0IG5lZWQgdG8gZGVmZXIuCiAgICAgICAgIHJldHVybiBGYWxzZQogCi0gICAgZGVmIF90
ZXN0X3BhdGNoKHNlbGYpOgorICAgICMgRklYTUU6IEFic3RyYWN0IG91dCBjb21tb24gcGFydHMg
b2YgdGhlIHJldHJ5IGxvZ2ljLgorICAgIGRlZiBfcmV0cnlfanNjX3Rlc3RzKHNlbGYpOgorICAg
ICAgICBmaXJzdF9yZXN1bHRzID0gc2VsZi5fZGVsZWdhdGUudGVzdF9yZXN1bHRzKCkKKyAgICAg
ICAgZmlyc3Rfc2NyaXB0X2Vycm9yID0gc2VsZi5fc2NyaXB0X2Vycm9yCisgICAgICAgIGZpcnN0
X2ZhaWx1cmVfc3RhdHVzX2lkID0gc2VsZi5mYWlsdXJlX3N0YXR1c19pZAorICAgICAgICBpZiBm
aXJzdF9yZXN1bHRzIGlzIE5vbmU6CisgICAgICAgICAgICByZXR1cm4gRmFsc2UKKwogICAgICAg
ICBpZiBzZWxmLl90ZXN0KCk6CiAgICAgICAgICAgICByZXR1cm4gVHJ1ZQorICAgICAgICBzZWNv
bmRfcmVzdWx0cyA9IHNlbGYuX2RlbGVnYXRlLnRlc3RfcmVzdWx0cygpCisgICAgICAgIHNlY29u
ZF9zY3JpcHRfZXJyb3IgPSBzZWxmLl9zY3JpcHRfZXJyb3IKKyAgICAgICAgaWYgc2Vjb25kX3Jl
c3VsdHMgaXMgTm9uZToKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgICAgIGNvbnNp
c3RlbnRseV9mYWlsaW5nX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzLmludGVyc2VjdGlv
bihmaXJzdF9yZXN1bHRzLCBzZWNvbmRfcmVzdWx0cykKKworICAgICAgICBzZWxmLl9idWlsZF9h
bmRfdGVzdF93aXRob3V0X3BhdGNoKCkKKyAgICAgICAgY2xlYW5fdHJlZV9yZXN1bHRzID0gc2Vs
Zi5fZGVsZWdhdGUudGVzdF9yZXN1bHRzKCkKKyAgICAgICAgaWYgY2xlYW5fdHJlZV9yZXN1bHRz
IGlzIE5vbmU6CisgICAgICAgICAgICByZXR1cm4gRmFsc2UKKworICAgICAgICBpZiBjb25zaXN0
ZW50bHlfZmFpbGluZ190ZXN0X3Jlc3VsdHMuaXNfc3Vic2V0KGNsZWFuX3RyZWVfcmVzdWx0cyk6
CisgICAgICAgICAgICByZXR1cm4gVHJ1ZQorCisgICAgICAgIHNlbGYuZmFpbHVyZV9zdGF0dXNf
aWQgPSBmaXJzdF9mYWlsdXJlX3N0YXR1c19pZAorICAgICAgICByZXR1cm4gc2VsZi5yZXBvcnRf
ZmFpbHVyZShOb25lLCBjb25zaXN0ZW50bHlfZmFpbGluZ190ZXN0X3Jlc3VsdHMsIGZpcnN0X3Nj
cmlwdF9lcnJvcikKIAorICAgIGRlZiBfcmV0cnlfbGF5b3V0X3Rlc3RzKHNlbGYpOgogICAgICAg
ICAjIE5vdGU6IGFyY2hpdmVfbGFzdF90ZXN0X3Jlc3VsdHMgZGVsZXRlcyB0aGUgcmVzdWx0cyBk
aXJlY3RvcnksIG1ha2luZyB0aGVzZSBjYWxscyBvcmRlci1zZW5zaXR2ZS4KICAgICAgICAgIyBX
ZSBjb3VsZCByZW1vdmUgdGhpcyBkZXBlbmRlbmN5IGJ5IGJ1aWxkaW5nIHRoZSB0ZXN0X3Jlc3Vs
dHMgZnJvbSB0aGUgYXJjaGl2ZS4KICAgICAgICAgZmlyc3RfcmVzdWx0cyA9IHNlbGYuX2RlbGVn
YXRlLnRlc3RfcmVzdWx0cygpCkBAIC0yNDAsMTEgKzI5NCwxMyBAQCBjbGFzcyBQYXRjaEFuYWx5
c2lzVGFzayhvYmplY3QpOgogICAgICAgICAgICAgcmV0dXJuIHNlbGYucmVwb3J0X2ZhaWx1cmUo
Zmlyc3RfcmVzdWx0c19hcmNoaXZlLCBmaXJzdF9yZXN1bHRzLCBmaXJzdF9zY3JpcHRfZXJyb3Ip
CiAKICAgICAgICAgaWYgc2Vjb25kX3Jlc3VsdHMuZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGlt
aXQoKToKLSAgICAgICAgICAgIHNlbGYuX3Nob3VsZF9kZWZlcl9wYXRjaF9vcl90aHJvdyhmaXJz
dF9yZXN1bHRzLmZhaWxpbmdfdGVzdF9yZXN1bHRzKCksIGZpcnN0X3Jlc3VsdHNfYXJjaGl2ZSwg
Zmlyc3Rfc2NyaXB0X2Vycm9yLCBmaXJzdF9mYWlsdXJlX3N0YXR1c19pZCkKKyAgICAgICAgICAg
IHNlbGYuX3Nob3VsZF9kZWZlcl9wYXRjaF9vcl90aHJvdyhmaXJzdF9yZXN1bHRzLmZhaWxpbmdf
dGVzdF9yZXN1bHRzKCksIGZpcnN0X3Jlc3VsdHNfYXJjaGl2ZSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJzdF9zY3JpcHRfZXJyb3IsIGZpcnN0X2Zh
aWx1cmVfc3RhdHVzX2lkKQogICAgICAgICAgICAgcmV0dXJuIEZhbHNlCiAKICAgICAgICAgaWYg
Zmlyc3RfcmVzdWx0cy5kaWRfZXhjZWVkX3Rlc3RfZmFpbHVyZV9saW1pdCgpOgotICAgICAgICAg
ICAgc2VsZi5fc2hvdWxkX2RlZmVyX3BhdGNoX29yX3Rocm93KHNlY29uZF9yZXN1bHRzLmZhaWxp
bmdfdGVzdF9yZXN1bHRzKCksIHNlY29uZF9yZXN1bHRzX2FyY2hpdmUsIHNlY29uZF9zY3JpcHRf
ZXJyb3IsIHNlY29uZF9mYWlsdXJlX3N0YXR1c19pZCkKKyAgICAgICAgICAgIHNlbGYuX3Nob3Vs
ZF9kZWZlcl9wYXRjaF9vcl90aHJvdyhzZWNvbmRfcmVzdWx0cy5mYWlsaW5nX3Rlc3RfcmVzdWx0
cygpLCBzZWNvbmRfcmVzdWx0c19hcmNoaXZlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHNlY29uZF9zY3JpcHRfZXJyb3IsIHNlY29uZF9mYWlsdXJlX3N0
YXR1c19pZCkKICAgICAgICAgICAgIHJldHVybiBGYWxzZQogCiAgICAgICAgIGlmIHNlbGYuX3Jl
c3VsdHNfZmFpbGVkX2RpZmZlcmVudF90ZXN0cyhmaXJzdF9yZXN1bHRzLCBzZWNvbmRfcmVzdWx0
cyk6CkBAIC0yNTksMTQgKzMxNSwxNiBAQCBjbGFzcyBQYXRjaEFuYWx5c2lzVGFzayhvYmplY3Qp
OgogCiAgICAgICAgICAgICB0ZXN0c190aGF0X2NvbnNpc3RlbnRseV9mYWlsZWQgPSBmaXJzdF9m
YWlsaW5nX3Jlc3VsdHNfc2V0LmludGVyc2VjdGlvbihzZWNvbmRfZmFpbGluZ19yZXN1bHRzX3Nl
dCkKICAgICAgICAgICAgIGlmIHRlc3RzX3RoYXRfY29uc2lzdGVudGx5X2ZhaWxlZDoKLSAgICAg
ICAgICAgICAgICBpZiBzZWxmLl9zaG91bGRfZGVmZXJfcGF0Y2hfb3JfdGhyb3codGVzdHNfdGhh
dF9jb25zaXN0ZW50bHlfZmFpbGVkLCBmaXJzdF9yZXN1bHRzX2FyY2hpdmUsIGZpcnN0X3Njcmlw
dF9lcnJvciwgZmlyc3RfZmFpbHVyZV9zdGF0dXNfaWQpOgorICAgICAgICAgICAgICAgIGlmIHNl
bGYuX3Nob3VsZF9kZWZlcl9wYXRjaF9vcl90aHJvdyh0ZXN0c190aGF0X2NvbnNpc3RlbnRseV9m
YWlsZWQsIGZpcnN0X3Jlc3VsdHNfYXJjaGl2ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlyc3Rfc2NyaXB0X2Vycm9yLCBmaXJzdF9mYWls
dXJlX3N0YXR1c19pZCk6CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZSAgIyBEZWZl
ciBwYXRjaAogCiAgICAgICAgICAgICAjIEF0IHRoaXMgcG9pbnQgd2Uga25vdyB0aGF0IGF0IGxl
YXN0IG9uZSB0ZXN0IGZsYWtlZCwgYnV0IG5vIGNvbnNpc3RlbnQgZmFpbHVyZXMKICAgICAgICAg
ICAgICMgd2VyZSBpbnRyb2R1Y2VkLiBUaGlzIGlzIGEgYml0IG9mIGEgZ3JleS16b25lLgogICAg
ICAgICAgICAgcmV0dXJuIEZhbHNlICAjIERlZmVyIHBhdGNoCiAKLSAgICAgICAgaWYgc2VsZi5f
c2hvdWxkX2RlZmVyX3BhdGNoX29yX3Rocm93KGZpcnN0X3Jlc3VsdHMuZmFpbGluZ190ZXN0X3Jl
c3VsdHMoKSwgZmlyc3RfcmVzdWx0c19hcmNoaXZlLCBmaXJzdF9zY3JpcHRfZXJyb3IsIGZpcnN0
X2ZhaWx1cmVfc3RhdHVzX2lkKToKKyAgICAgICAgaWYgc2VsZi5fc2hvdWxkX2RlZmVyX3BhdGNo
X29yX3Rocm93KGZpcnN0X3Jlc3VsdHMuZmFpbGluZ190ZXN0X3Jlc3VsdHMoKSwgZmlyc3RfcmVz
dWx0c19hcmNoaXZlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZmlyc3Rfc2NyaXB0X2Vycm9yLCBmaXJzdF9mYWlsdXJlX3N0YXR1c19pZCk6CiAgICAgICAg
ICAgICByZXR1cm4gRmFsc2UgICMgRGVmZXIgcGF0Y2gKIAogICAgICAgICAjIEF0IHRoaXMgcG9p
bnQsIHdlIGtub3cgdGhhdCB0aGUgZmlyc3QgYW5kIHNlY29uZCBydW5zIGhhZCB0aGUgZXhhY3Qg
c2FtZSBmYWlsdXJlcywKQEAgLTI3NCw2ICszMzIsMTUgQEAgY2xhc3MgUGF0Y2hBbmFseXNpc1Rh
c2sob2JqZWN0KToKICAgICAgICAgIyB0aGF0IHRoZSBwYXRjaCBpcyBnb29kLgogICAgICAgICBy
ZXR1cm4gVHJ1ZQogCisgICAgZGVmIF90ZXN0X3BhdGNoKHNlbGYpOgorICAgICAgICBpZiBzZWxm
Ll90ZXN0KCk6CisgICAgICAgICAgICByZXR1cm4gVHJ1ZQorCisgICAgICAgIGlmIGhhc2F0dHIo
c2VsZi5fZGVsZWdhdGUsICdncm91cCcpIGFuZCBzZWxmLl9kZWxlZ2F0ZS5ncm91cCgpID09ICJq
c2MiOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuX3JldHJ5X2pzY190ZXN0cygpCisgICAgICAg
IGVsc2U6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5fcmV0cnlfbGF5b3V0X3Rlc3RzKCkKKwog
ICAgIGRlZiByZXN1bHRzX2FyY2hpdmVfZnJvbV9wYXRjaF90ZXN0X3J1bihzZWxmLCBwYXRjaCk6
CiAgICAgICAgIGFzc2VydChzZWxmLl9wYXRjaC5pZCgpID09IHBhdGNoLmlkKCkpICAjIFBhdGNo
QW5hbHlzaXNUYXNrIGlzIG5vdCBjdXJyZW50bHkgcmUtdXNlYWJsZS4KICAgICAgICAgcmV0dXJu
IHNlbGYuX3Jlc3VsdHNfYXJjaGl2ZV9mcm9tX3BhdGNoX3Rlc3RfcnVuCmRpZmYgLS1naXQgYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZG93bmxvYWQucHkgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZG93bmxvYWQucHkKaW5kZXggZTUxNjlhYWM4
NWYzMTg2ZTg0YmU5ZDUwMjQ1OTJiZDdmZTZkNWRkNS4uMTRiNTViYzNmN2M5YzEwYjVkZjYwZmMx
YWY4N2Q3Y2EzOWUzYmM5NCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29s
L2NvbW1hbmRzL2Rvd25sb2FkLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9j
b21tYW5kcy9kb3dubG9hZC5weQpAQCAtMSw1ICsxLDUgQEAKICMgQ29weXJpZ2h0IChjKSAyMDA5
LCAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jIENvcHlyaWdodCAoYykg
MjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoYykgMjAw
OSwgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
IyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMgYXJlCkBAIC04Nyw2ICs4NywxNCBAQCBjbGFzcyBCdWlsZEFuZFRlc3QoQWJz
dHJhY3RTZXF1ZW5jZWRDb21tYW5kKToKICAgICBdCiAKIAorY2xhc3MgQ2hlY2tQYXRjaFJlbGV2
YW5jZShBYnN0cmFjdFNlcXVlbmNlZENvbW1hbmQpOgorICAgIG5hbWUgPSAiY2hlY2stcGF0Y2gt
cmVsZXZhbmNlIgorICAgIGhlbHBfdGV4dCA9ICJDaGVjayBpZiB0aGlzIHBhdGNoIG5lZWRzIHRv
IGJlIHRlc3RlZCIKKyAgICBzdGVwcyA9IFsKKyAgICAgICAgc3RlcHMuQ2hlY2tQYXRjaFJlbGV2
YW5jZSwKKyAgICBdCisKKwogY2xhc3MgTGFuZChBYnN0cmFjdFNlcXVlbmNlZENvbW1hbmQpOgog
ICAgIG5hbWUgPSAibGFuZCIKICAgICBoZWxwX3RleHQgPSAiTGFuZCB0aGUgY3VycmVudCB3b3Jr
aW5nIGRpcmVjdG9yeSBkaWZmIGFuZCB1cGRhdGVzIHRoZSBhc3NvY2lhdGVkIGJ1ZyBpZiBhbnki
CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZG93bmxv
YWRfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZG93
bmxvYWRfdW5pdHRlc3QucHkKaW5kZXggNDI5ZGExMjQ2ZjhiZDc2YWIwMmVlNjMzYzQyZDZmYjM4
ZDM4NTRjNS4uNTljOTQ4OGMwOTQwOTliNzM0N2U5NmVmMjAyYzM2MGQ5MTk0NjMwMyAxMDA2NDQK
LS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Rvd25sb2FkX3VuaXR0
ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9kb3dubG9h
ZF91bml0dGVzdC5weQpAQCAtODksNiArODksNyBAQCBjbGFzcyBEb3dubG9hZENvbW1hbmRzVGVz
dChDb21tYW5kc1Rlc3QpOgogICAgICAgICBvcHRpb25zLnVwZGF0ZSA9IFRydWUKICAgICAgICAg
b3B0aW9ucy5hcmNoaXRlY3R1cmUgPSAnTU9DSyBBUkNIJwogICAgICAgICBvcHRpb25zLml0ZXJh
dGVfb25fbmV3X3Rlc3RzID0gMAorICAgICAgICBvcHRpb25zLmdyb3VwID0gTm9uZQogICAgICAg
ICByZXR1cm4gb3B0aW9ucwogCiAgICAgZGVmIHRlc3RfYnVpbGQoc2VsZik6CmRpZmYgLS1naXQg
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZWFybHl3YXJuaW5nc3lzdGVt
LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Vhcmx5d2FybmluZ3N5
c3RlbS5weQppbmRleCA5YmMwNDE4NjBjZTY3NDU0NDU0ZTRiMjUxNDM4YTlkYmU1MjY0NTEzLi42
OGYxZDgwMzIwY2IyNTdlMjZiYWY4NDAxZmI3YWE1MTIwNDE5ZGMxIDEwMDY0NAotLS0gYS9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZWFybHl3YXJuaW5nc3lzdGVtLnB5Cisr
KyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9lYXJseXdhcm5pbmdzeXN0
ZW0ucHkKQEAgLTEsNCArMSw1IEBACiAjIENvcHlyaWdodCAoYykgMjAwOSBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKGMpIDIwMTcgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtMjgs
NiArMjksNyBAQAogCiBpbXBvcnQganNvbgogaW1wb3J0IGxvZ2dpbmcKK2ltcG9ydCBvcwogZnJv
bSBvcHRwYXJzZSBpbXBvcnQgbWFrZV9vcHRpb24KIAogZnJvbSB3ZWJraXRweS5jb21tb24uY29u
ZmlnLmNvbW1pdHRlcnMgaW1wb3J0IENvbW1pdHRlckxpc3QKQEAgLTM2LDcgKzM4LDggQEAgZnJv
bSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmZpbGVzeXN0ZW0gaW1wb3J0IEZpbGVTeXN0ZW0KIGZy
b20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5leGVjdXRpdmUgaW1wb3J0IFNjcmlwdEVycm9yCiBm
cm9tIHdlYmtpdHB5LnRvb2wuYm90LmVhcmx5d2FybmluZ3N5c3RlbXRhc2sgaW1wb3J0IEVhcmx5
V2FybmluZ1N5c3RlbVRhc2ssIEVhcmx5V2FybmluZ1N5c3RlbVRhc2tEZWxlZ2F0ZQogZnJvbSB3
ZWJraXRweS50b29sLmJvdC5sYXlvdXR0ZXN0cmVzdWx0c3JlYWRlciBpbXBvcnQgTGF5b3V0VGVz
dFJlc3VsdHNSZWFkZXIKLWZyb20gd2Via2l0cHkudG9vbC5ib3QucGF0Y2hhbmFseXNpc3Rhc2sg
aW1wb3J0IFVuYWJsZVRvQXBwbHlQYXRjaCwgUGF0Y2hJc05vdFZhbGlkCitmcm9tIHdlYmtpdHB5
LnRvb2wuYm90LmpzY3Rlc3RyZXN1bHRzcmVhZGVyIGltcG9ydCBKU0NUZXN0UmVzdWx0c1JlYWRl
cgorZnJvbSB3ZWJraXRweS50b29sLmJvdC5wYXRjaGFuYWx5c2lzdGFzayBpbXBvcnQgVW5hYmxl
VG9BcHBseVBhdGNoLCBQYXRjaElzTm90VmFsaWQsIFBhdGNoSXNOb3RBcHBsaWNhYmxlCiBmcm9t
IHdlYmtpdHB5LnRvb2wuYm90LnF1ZXVlZW5naW5lIGltcG9ydCBRdWV1ZUVuZ2luZQogZnJvbSB3
ZWJraXRweS50b29sLmNvbW1hbmRzLnF1ZXVlcyBpbXBvcnQgQWJzdHJhY3RSZXZpZXdRdWV1ZQog
CkBAIC01Myw3ICs1NiwxMSBAQCBjbGFzcyBBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbShBYnN0
cmFjdFJldmlld1F1ZXVlLCBFYXJseVdhcm5pbmdTeXN0ZW1UYXNrRGVsZQogCiAgICAgZGVmIGJl
Z2luX3dvcmtfcXVldWUoc2VsZik6CiAgICAgICAgIEFic3RyYWN0UmV2aWV3UXVldWUuYmVnaW5f
d29ya19xdWV1ZShzZWxmKQotICAgICAgICBzZWxmLl9sYXlvdXRfdGVzdF9yZXN1bHRzX3JlYWRl
ciA9IExheW91dFRlc3RSZXN1bHRzUmVhZGVyKHNlbGYuX3Rvb2wsIHNlbGYuX3BvcnQucmVzdWx0
c19kaXJlY3RvcnkoKSwgc2VsZi5fbG9nX2RpcmVjdG9yeSgpKQorCisgICAgICAgIGlmIHNlbGYu
Z3JvdXAoKSA9PSAianNjIjoKKyAgICAgICAgICAgIHNlbGYuX3Rlc3RfcmVzdWx0c19yZWFkZXIg
PSBKU0NUZXN0UmVzdWx0c1JlYWRlcihzZWxmLl90b29sLCBzZWxmLl9wb3J0LmpzY19yZXN1bHRz
X2RpcmVjdG9yeSgpKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZi5fdGVzdF9yZXN1
bHRzX3JlYWRlciA9IExheW91dFRlc3RSZXN1bHRzUmVhZGVyKHNlbGYuX3Rvb2wsIHNlbGYuX3Bv
cnQucmVzdWx0c19kaXJlY3RvcnkoKSwgc2VsZi5fbG9nX2RpcmVjdG9yeSgpKQogCiAgICAgZGVm
IF9mYWlsaW5nX3Rlc3RzX21lc3NhZ2Uoc2VsZiwgdGFzaywgcGF0Y2gpOgogICAgICAgICByZXN1
bHRzID0gdGFzay5yZXN1bHRzX2Zyb21fcGF0Y2hfdGVzdF9ydW4ocGF0Y2gpCkBAIC03OSw4ICs4
NiwxMiBAQCBjbGFzcyBBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbShBYnN0cmFjdFJldmlld1F1
ZXVlLCBFYXJseVdhcm5pbmdTeXN0ZW1UYXNrRGVsZQogICAgICAgICAgICAgdG9vbC5idWdzLmFk
ZF9jY190b19idWcocGF0Y2guYnVnX2lkKCksIHNlbGYud2F0Y2hlcnMpCiAgICAgICAgIHRvb2wu
YnVncy5zZXRfZmxhZ19vbl9hdHRhY2htZW50KHBhdGNoLmlkKCksICJjb21taXQtcXVldWUiLCAi
LSIsIG1lc3NhZ2UpCiAKKyAgICAjIFRoaXMgZXhpc3RzIGZvciBtb2NraW5nCisgICAgZGVmIF9j
cmVhdGVfdGFzayhzZWxmLCBwYXRjaCk6CisgICAgICAgIHJldHVybiBFYXJseVdhcm5pbmdTeXN0
ZW1UYXNrKHNlbGYsIHBhdGNoLCBzZWxmLl9vcHRpb25zLnJ1bl90ZXN0cykKKwogICAgIGRlZiBy
ZXZpZXdfcGF0Y2goc2VsZiwgcGF0Y2gpOgotICAgICAgICB0YXNrID0gRWFybHlXYXJuaW5nU3lz
dGVtVGFzayhzZWxmLCBwYXRjaCwgc2VsZi5fb3B0aW9ucy5ydW5fdGVzdHMpCisgICAgICAgIHRh
c2sgPSBzZWxmLl9jcmVhdGVfdGFzayhwYXRjaCkKICAgICAgICAgdHJ5OgogICAgICAgICAgICAg
c3VjY2VlZGVkID0gdGFzay5ydW4oKQogICAgICAgICAgICAgaWYgbm90IHN1Y2NlZWRlZDoKQEAg
LTkzLDYgKzEwNCw5IEBAIGNsYXNzIEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtKEFic3RyYWN0
UmV2aWV3UXVldWUsIEVhcmx5V2FybmluZ1N5c3RlbVRhc2tEZWxlCiAgICAgICAgIGV4Y2VwdCBV
bmFibGVUb0FwcGx5UGF0Y2gsIGU6CiAgICAgICAgICAgICBzZWxmLl9kaWRfZXJyb3IocGF0Y2gs
ICIlcyB1bmFibGUgdG8gYXBwbHkgcGF0Y2guIiAlIHNlbGYubmFtZSkKICAgICAgICAgICAgIHJl
dHVybiBGYWxzZQorICAgICAgICBleGNlcHQgUGF0Y2hJc05vdEFwcGxpY2FibGUsIGU6CisgICAg
ICAgICAgICBzZWxmLl9kaWRfc2tpcChwYXRjaCkKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQog
ICAgICAgICBleGNlcHQgU2NyaXB0RXJyb3IsIGU6CiAgICAgICAgICAgICBzZWxmLl9wb3N0X3Jl
amVjdF9tZXNzYWdlX29uX2J1ZyhzZWxmLl90b29sLCBwYXRjaCwgdGFzay5mYWlsdXJlX3N0YXR1
c19pZCwgc2VsZi5fZmFpbGluZ190ZXN0c19tZXNzYWdlKHRhc2ssIHBhdGNoKSkKICAgICAgICAg
ICAgIHJlc3VsdHNfYXJjaGl2ZSA9IHRhc2sucmVzdWx0c19hcmNoaXZlX2Zyb21fcGF0Y2hfdGVz
dF9ydW4ocGF0Y2gpCkBAIC0xMTcsMTQgKzEzMSwxNyBAQCBjbGFzcyBBYnN0cmFjdEVhcmx5V2Fy
bmluZ1N5c3RlbShBYnN0cmFjdFJldmlld1F1ZXVlLCBFYXJseVdhcm5pbmdTeXN0ZW1UYXNrRGVs
ZQogICAgICAgICByZXR1cm4gc2VsZi5fdXBkYXRlX3N0YXR1cyhtZXNzYWdlLCBwYXRjaD1wYXRj
aCwgcmVzdWx0c19maWxlPWZhaWx1cmVfbG9nKQogCiAgICAgZGVmIHRlc3RfcmVzdWx0cyhzZWxm
KToKLSAgICAgICAgcmV0dXJuIHNlbGYuX2xheW91dF90ZXN0X3Jlc3VsdHNfcmVhZGVyLnJlc3Vs
dHMoKQorICAgICAgICByZXR1cm4gc2VsZi5fdGVzdF9yZXN1bHRzX3JlYWRlci5yZXN1bHRzKCkK
IAogICAgIGRlZiBhcmNoaXZlX2xhc3RfdGVzdF9yZXN1bHRzKHNlbGYsIHBhdGNoKToKLSAgICAg
ICAgcmV0dXJuIHNlbGYuX2xheW91dF90ZXN0X3Jlc3VsdHNfcmVhZGVyLmFyY2hpdmUocGF0Y2gp
CisgICAgICAgIHJldHVybiBzZWxmLl90ZXN0X3Jlc3VsdHNfcmVhZGVyLmFyY2hpdmUocGF0Y2gp
CiAKICAgICBkZWYgYnVpbGRfc3R5bGUoc2VsZik6CiAgICAgICAgIHJldHVybiBzZWxmLl9idWls
ZF9zdHlsZQogCisgICAgZGVmIGdyb3VwKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5fZ3Jv
dXAKKwogICAgIGRlZiByZWZldGNoX3BhdGNoKHNlbGYsIHBhdGNoKToKICAgICAgICAgcmV0dXJu
IHNlbGYuX3Rvb2wuYnVncy5mZXRjaF9hdHRhY2htZW50KHBhdGNoLmlkKCkpCiAKQEAgLTE0OSwx
MiArMTY2LDEzIEBAIGNsYXNzIEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtKEFic3RyYWN0UmV2
aWV3UXVldWUsIEVhcmx5V2FybmluZ1N5c3RlbVRhc2tEZWxlCiAKICAgICAgICAgY2xhc3NlcyA9
IFtdCiAgICAgICAgIGZvciBuYW1lLCBjb25maWcgaW4gZXdzZXMuaXRlcml0ZW1zKCk6Ci0gICAg
ICAgICAgICBjbGFzc2VzLmFwcGVuZCh0eXBlKG5hbWUuZW5jb2RlKCd1dGYtOCcpLnRyYW5zbGF0
ZShOb25lLCAnIC0nKSwgKEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtLCksIHsKKyAgICAgICAg
ICAgIGNsYXNzZXMuYXBwZW5kKHR5cGUobmFtZS5lbmNvZGUoJ3V0Zi04JykudHJhbnNsYXRlKE5v
bmUsICcgLScpLCAoY2xzLCksIHsKICAgICAgICAgICAgICAgICAnbmFtZSc6IGNvbmZpZy5nZXQo
J25hbWUnLCBjb25maWdbJ3BvcnQnXSArICctZXdzJyksCiAgICAgICAgICAgICAgICAgJ3BvcnRf
bmFtZSc6IGNvbmZpZ1sncG9ydCddLAogICAgICAgICAgICAgICAgICdhcmNoaXRlY3R1cmUnOiBj
b25maWcuZ2V0KCdhcmNoaXRlY3R1cmUnLCBOb25lKSwKICAgICAgICAgICAgICAgICAnX2J1aWxk
X3N0eWxlJzogY29uZmlnLmdldCgnc3R5bGUnLCAicmVsZWFzZSIpLAogICAgICAgICAgICAgICAg
ICd3YXRjaGVycyc6IGNvbmZpZy5nZXQoJ3dhdGNoZXJzJywgW10pLAogICAgICAgICAgICAgICAg
ICdydW5fdGVzdHMnOiBjb25maWcuZ2V0KCdydW5UZXN0cycsIGNscy5ydW5fdGVzdHMpLAorICAg
ICAgICAgICAgICAgICdfZ3JvdXAnOiBjb25maWcuZ2V0KCdncm91cCcsIE5vbmUpLAogICAgICAg
ICAgICAgfSkpCiAgICAgICAgIHJldHVybiBjbGFzc2VzCmRpZmYgLS1naXQgYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZWFybHl3YXJuaW5nc3lzdGVtX3VuaXR0ZXN0LnB5
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Vhcmx5d2FybmluZ3N5c3Rl
bV91bml0dGVzdC5weQppbmRleCAwODg4NzgxM2NlMmU5M2E4ZWM5ZGEzNzYzNmVjYmRlOWVmZjNj
OWU3Li5mOGJlZGRjNDlhZThlYWZjYWMwZmVkNjk4ZDNmZGFlZTBjOGFlYzViIDEwMDY0NAotLS0g
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZWFybHl3YXJuaW5nc3lzdGVt
X3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9l
YXJseXdhcm5pbmdzeXN0ZW1fdW5pdHRlc3QucHkKQEAgLTEsNCArMSw1IEBACiAjIENvcHlyaWdo
dCAoQykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQg
KEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zIGFyZQpAQCAtMjksNiArMzAsNyBAQAogZnJvbSB3ZWJraXRweS50aGlyZHBh
cnR5Lm1vY2sgaW1wb3J0IE1vY2sKIGZyb20gd2Via2l0cHkuY29tbW9uLmhvc3QgaW1wb3J0IEhv
c3QKIGZyb20gd2Via2l0cHkuY29tbW9uLmhvc3RfbW9jayBpbXBvcnQgTW9ja0hvc3QKK2Zyb20g
d2Via2l0cHkuY29tbW9uLm5ldC5qc2N0ZXN0cmVzdWx0cyBpbXBvcnQgSlNDVGVzdFJlc3VsdHMK
IGZyb20gd2Via2l0cHkuY29tbW9uLm5ldC5sYXlvdXR0ZXN0cmVzdWx0cyBpbXBvcnQgTGF5b3V0
VGVzdFJlc3VsdHMKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5vdXRwdXRjYXB0dXJlIGlt
cG9ydCBPdXRwdXRDYXB0dXJlCiBmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5tb2RlbHMgaW1w
b3J0IHRlc3RfcmVzdWx0cwpAQCAtNDEsNjIgKzQzLDEwMCBAQCBmcm9tIHdlYmtpdHB5LnRvb2wu
Y29tbWFuZHMucXVldWVzdGVzdCBpbXBvcnQgUXVldWVzVGVzdAogZnJvbSB3ZWJraXRweS50b29s
Lm1vY2t0b29sIGltcG9ydCBNb2NrVG9vbCwgTW9ja09wdGlvbnMKIAogCi1jbGFzcyBBYnN0cmFj
dEVhcmx5V2FybmluZ1N5c3RlbVRlc3QoUXVldWVzVGVzdCk6Ci0gICAgZGVmIHRlc3RfZmFpbGlu
Z190ZXN0c19tZXNzYWdlKHNlbGYpOgotICAgICAgICAjIE5lZWRlZCB0byBkZWZpbmUgcG9ydF9u
YW1lLCB1c2VkIGluIEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtLl9faW5pdF9fCi0gICAgICAg
IGNsYXNzIFRlc3RFV1MoQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0pOgotICAgICAgICAgICAg
cG9ydF9uYW1lID0gIndpbiIgICMgTmVlZHMgdG8gYmUgYSBwb3J0IHdoaWNoIHBvcnQvZmFjdG9y
eSB1bmRlcnN0YW5kcy4KLSAgICAgICAgICAgIF9idWlsZF9zdHlsZSA9IE5vbmUKKyMgTmVlZGVk
IHRvIGRlZmluZSBwb3J0X25hbWUsIHVzZWQgaW4gQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0u
X19pbml0X18KK2NsYXNzIFRlc3RFV1MoQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0pOgorICAg
IHBvcnRfbmFtZSA9ICJ3aW4iICAjIE5lZWRzIHRvIGJlIGEgcG9ydCB3aGljaCBwb3J0L2ZhY3Rv
cnkgdW5kZXJzdGFuZHMuCisgICAgX2J1aWxkX3N0eWxlID0gTm9uZQorICAgIF9ncm91cCA9IE5v
bmUKIAotICAgICAgICBld3MgPSBUZXN0RVdTKCkKKworY2xhc3MgVGVzdEpTQ0VXUyhBYnN0cmFj
dEVhcmx5V2FybmluZ1N5c3RlbSk6CisgICAgcG9ydF9uYW1lID0gIm1hYyIgICMgTmVlZHMgdG8g
YmUgYSBwb3J0IHdoaWNoIHBvcnQvZmFjdG9yeSB1bmRlcnN0YW5kcy4KKyAgICBfYnVpbGRfc3R5
bGUgPSBOb25lCisgICAgX2dyb3VwID0gImpzYyIKKworCitjbGFzcyBBYnN0cmFjdEVhcmx5V2Fy
bmluZ1N5c3RlbVRlc3QoUXVldWVzVGVzdCk6CisgICAgZGVmIF90ZXN0X21lc3NhZ2Uoc2VsZiwg
ZXdzLCByZXN1bHRzLCBtZXNzYWdlKToKICAgICAgICAgZXdzLmJpbmRfdG9fdG9vbChNb2NrVG9v
bCgpKQogICAgICAgICBld3MuaG9zdCA9IE1vY2tIb3N0KCkKICAgICAgICAgZXdzLl9vcHRpb25z
ID0gTW9ja09wdGlvbnMocG9ydD1Ob25lLCBjb25maXJtPUZhbHNlKQogICAgICAgICBPdXRwdXRD
YXB0dXJlKCkuYXNzZXJ0X291dHB1dHMoc2VsZiwgZXdzLmJlZ2luX3dvcmtfcXVldWUsIGV4cGVj
dGVkX2xvZ3M9c2VsZi5fZGVmYXVsdF9iZWdpbl93b3JrX3F1ZXVlX2xvZ3MoZXdzLm5hbWUpKQog
ICAgICAgICB0YXNrID0gTW9jaygpCi0gICAgICAgIHRhc2sucmVzdWx0c19mcm9tX3BhdGNoX3Rl
c3RfcnVuID0gbGFtYmRhIGE6IExheW91dFRlc3RSZXN1bHRzKFt0ZXN0X3Jlc3VsdHMuVGVzdFJl
c3VsdCgiZm9vLmh0bWwiLCBmYWlsdXJlcz1bdGVzdF9mYWlsdXJlcy5GYWlsdXJlVGV4dE1pc21h
dGNoKCldKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9yZXN1bHRzLlRlc3RSZXN1bHQoImJhci5o
dG1sIiwgZmFpbHVyZXM9W3Rlc3RfZmFpbHVyZXMuRmFpbHVyZVRleHRNaXNtYXRjaCgpXSldLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBkaWRfZXhjZWVkX3Rlc3RfZmFpbHVyZV9saW1pdD1GYWxzZSkKKyAg
ICAgICAgdGFzay5yZXN1bHRzX2Zyb21fcGF0Y2hfdGVzdF9ydW4gPSByZXN1bHRzCiAgICAgICAg
IHBhdGNoID0gZXdzLl90b29sLmJ1Z3MuZmV0Y2hfYXR0YWNobWVudCgxMDAwMCkKLSAgICAgICAg
c2VsZi5hc3NlcnRNdWx0aUxpbmVFcXVhbChld3MuX2ZhaWxpbmdfdGVzdHNfbWVzc2FnZSh0YXNr
LCBwYXRjaCksICJOZXcgZmFpbGluZyB0ZXN0czpcbmZvby5odG1sXG5iYXIuaHRtbCIpCisgICAg
ICAgIHNlbGYuYXNzZXJ0TXVsdGlMaW5lRXF1YWwoZXdzLl9mYWlsaW5nX3Rlc3RzX21lc3NhZ2Uo
dGFzaywgcGF0Y2gpLCBtZXNzYWdlKQorCisgICAgZGVmIHRlc3RfZmFpbGluZ190ZXN0c19tZXNz
YWdlKHNlbGYpOgorICAgICAgICBld3MgPSBUZXN0RVdTKCkKKyAgICAgICAgcmVzdWx0cyA9IGxh
bWJkYSBhOiBMYXlvdXRUZXN0UmVzdWx0cyhbdGVzdF9yZXN1bHRzLlRlc3RSZXN1bHQoImZvby5o
dG1sIiwgZmFpbHVyZXM9W3Rlc3RfZmFpbHVyZXMuRmFpbHVyZVRleHRNaXNtYXRjaCgpXSksCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X3Jlc3Vs
dHMuVGVzdFJlc3VsdCgiYmFyLmh0bWwiLCBmYWlsdXJlcz1bdGVzdF9mYWlsdXJlcy5GYWlsdXJl
VGV4dE1pc21hdGNoKCldKV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBkaWRfZXhjZWVkX3Rlc3RfZmFpbHVyZV9saW1pdD1GYWxzZSkKKyAgICAgICAg
bWVzc2FnZSA9ICJOZXcgZmFpbGluZyB0ZXN0czpcbmZvby5odG1sXG5iYXIuaHRtbCIKKyAgICAg
ICAgc2VsZi5fdGVzdF9tZXNzYWdlKGV3cywgcmVzdWx0cywgbWVzc2FnZSkKKworICAgIGRlZiB0
ZXN0X2ZhaWxpbmdfanNjX3Rlc3RzX21lc3NhZ2Uoc2VsZik6CisgICAgICAgIGV3cyA9IFRlc3RK
U0NFV1MoKQorICAgICAgICByZXN1bHRzID0gbGFtYmRhIGE6IEpTQ1Rlc3RSZXN1bHRzKEZhbHNl
LCBbImVzNi55YW1sL2VzNi90eXBlZF9hcnJheXNfSW50OEFycmF5LmpzLmRlZmF1bHQiLCAiZXM2
LnlhbWwvZXM2L3R5cGVkX2FycmF5c19VaW50OEFycmF5LmpzLmRlZmF1bHQiXSkKKyAgICAgICAg
bWVzc2FnZSA9ICJOZXcgZmFpbGluZyB0ZXN0czpcbmVzNi55YW1sL2VzNi90eXBlZF9hcnJheXNf
SW50OEFycmF5LmpzLmRlZmF1bHRcbmVzNi55YW1sL2VzNi90eXBlZF9hcnJheXNfVWludDhBcnJh
eS5qcy5kZWZhdWx0XG5hcGlUZXN0cyIKKyAgICAgICAgc2VsZi5fdGVzdF9tZXNzYWdlKGV3cywg
cmVzdWx0cywgbWVzc2FnZSkKKworCitjbGFzcyBNb2NrRWFybHlXYXJuaW5nU3lzdGVtVGFza0Zv
ckluY29uY2x1c2l2ZUpTQ1Jlc3VsdHMoRWFybHlXYXJuaW5nU3lzdGVtVGFzayk6CisgICAgZGVm
IF90ZXN0X3BhdGNoKHNlbGYpOgorICAgICAgICBzZWxmLl90ZXN0KCkKKyAgICAgICAgcmVzdWx0
cyA9IHNlbGYuX2RlbGVnYXRlLnRlc3RfcmVzdWx0cygpCisgICAgICAgIHJldHVybiBib29sKHJl
c3VsdHMpCisKKworY2xhc3MgTW9ja0Fic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtRm9ySW5jb25j
bHVzaXZlSlNDUmVzdWx0cyhBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbSk6CisgICAgZGVmIF9j
cmVhdGVfdGFzayhzZWxmLCBwYXRjaCk6CisgICAgICAgIHRhc2sgPSBNb2NrRWFybHlXYXJuaW5n
U3lzdGVtVGFza0ZvckluY29uY2x1c2l2ZUpTQ1Jlc3VsdHMoc2VsZiwgcGF0Y2gsIHNlbGYuX29w
dGlvbnMucnVuX3Rlc3RzKQorICAgICAgICByZXR1cm4gdGFzawogCiAKIGNsYXNzIEVhcmx5V2Fy
bmluZ1N5c3RlbVRlc3QoUXVldWVzVGVzdCk6Ci0gICAgZGVmIF9kZWZhdWx0X2V4cGVjdGVkX2xv
Z3Moc2VsZiwgZXdzKToKKyAgICBkZWYgX2RlZmF1bHRfZXhwZWN0ZWRfbG9ncyhzZWxmLCBld3Ms
IGNvbmNsdXNpdmUpOgogICAgICAgICBzdHJpbmdfcmVwbGFjZW1lbnRzID0gewogICAgICAgICAg
ICAgIm5hbWUiOiBld3MubmFtZSwKICAgICAgICAgICAgICJwb3J0IjogZXdzLnBvcnRfbmFtZSwK
ICAgICAgICAgICAgICJhcmNoaXRlY3R1cmUiOiAiIC0tYXJjaGl0ZWN0dXJlPSVzIiAlIGV3cy5h
cmNoaXRlY3R1cmUgaWYgZXdzLmFyY2hpdGVjdHVyZSBlbHNlICIiLAogICAgICAgICAgICAgImJ1
aWxkX3N0eWxlIjogZXdzLmJ1aWxkX3N0eWxlKCksCisgICAgICAgICAgICAiZ3JvdXAiOiBld3Mu
Z3JvdXAoKSwKICAgICAgICAgfQogICAgICAgICBpZiBld3MucnVuX3Rlc3RzOgotICAgICAgICAg
ICAgcnVuX3Rlc3RzX2xpbmUgPSAiUnVubmluZzogd2Via2l0LXBhdGNoIC0tc3RhdHVzLWhvc3Q9
ZXhhbXBsZS5jb20gYnVpbGQtYW5kLXRlc3QgLS1uby1jbGVhbiAtLW5vLXVwZGF0ZSAtLXRlc3Qg
LS1ub24taW50ZXJhY3RpdmUgLS1idWlsZC1zdHlsZT0lKGJ1aWxkX3N0eWxlKXMgLS1wb3J0PSUo
cG9ydClzJShhcmNoaXRlY3R1cmUpc1xuIiAlIHN0cmluZ19yZXBsYWNlbWVudHMKKyAgICAgICAg
ICAgIHJ1bl90ZXN0c19saW5lID0gIlJ1bm5pbmc6IHdlYmtpdC1wYXRjaCAtLXN0YXR1cy1ob3N0
PWV4YW1wbGUuY29tIGJ1aWxkLWFuZC10ZXN0IC0tbm8tY2xlYW4gLS1uby11cGRhdGUgLS10ZXN0
IC0tbm9uLWludGVyYWN0aXZlIC0tYnVpbGQtc3R5bGU9JShidWlsZF9zdHlsZSlzIC0tZ3JvdXA9
JShncm91cClzIC0tcG9ydD0lKHBvcnQpcyUoYXJjaGl0ZWN0dXJlKXNcbiIgJSBzdHJpbmdfcmVw
bGFjZW1lbnRzCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICBydW5fdGVzdHNfbGluZSA9ICIi
CiAgICAgICAgIHN0cmluZ19yZXBsYWNlbWVudHNbJ3J1bl90ZXN0c19saW5lJ10gPSBydW5fdGVz
dHNfbGluZQogCisgICAgICAgIGlmIGNvbmNsdXNpdmU6CisgICAgICAgICAgICByZXN1bHRfbGlu
ZXMgPSAiTU9DSzogdXBkYXRlX3N0YXR1czogJShuYW1lKXMgUGFzc1xuTU9DSzogcmVsZWFzZV93
b3JrX2l0ZW06ICUobmFtZSlzIDEwMDAwXG4iICUgc3RyaW5nX3JlcGxhY2VtZW50cworICAgICAg
ICBlbHNlOgorICAgICAgICAgICAgcmVzdWx0X2xpbmVzID0gIk1PQ0s6IHJlbGVhc2VfbG9jazog
JShuYW1lKXMgMTAwMDBcbiIgJSBzdHJpbmdfcmVwbGFjZW1lbnRzCisgICAgICAgIHN0cmluZ19y
ZXBsYWNlbWVudHNbJ3Jlc3VsdF9saW5lcyddID0gcmVzdWx0X2xpbmVzCisKICAgICAgICAgZXhw
ZWN0ZWRfbG9ncyA9IHsKICAgICAgICAgICAgICJiZWdpbl93b3JrX3F1ZXVlIjogc2VsZi5fZGVm
YXVsdF9iZWdpbl93b3JrX3F1ZXVlX2xvZ3MoZXdzLm5hbWUpLAogICAgICAgICAgICAgInByb2Nl
c3Nfd29ya19pdGVtIjogIiIiTU9DSzogdXBkYXRlX3N0YXR1czogJShuYW1lKXMgU3RhcnRlZCBw
cm9jZXNzaW5nIHBhdGNoCiBSdW5uaW5nOiB3ZWJraXQtcGF0Y2ggLS1zdGF0dXMtaG9zdD1leGFt
cGxlLmNvbSBjbGVhbiAtLXBvcnQ9JShwb3J0KXMlKGFyY2hpdGVjdHVyZSlzCiBSdW5uaW5nOiB3
ZWJraXQtcGF0Y2ggLS1zdGF0dXMtaG9zdD1leGFtcGxlLmNvbSB1cGRhdGUgLS1wb3J0PSUocG9y
dClzJShhcmNoaXRlY3R1cmUpcwogUnVubmluZzogd2Via2l0LXBhdGNoIC0tc3RhdHVzLWhvc3Q9
ZXhhbXBsZS5jb20gYXBwbHktYXR0YWNobWVudCAtLW5vLXVwZGF0ZSAtLW5vbi1pbnRlcmFjdGl2
ZSAxMDAwMCAtLXBvcnQ9JShwb3J0KXMlKGFyY2hpdGVjdHVyZSlzCi1SdW5uaW5nOiB3ZWJraXQt
cGF0Y2ggLS1zdGF0dXMtaG9zdD1leGFtcGxlLmNvbSBidWlsZCAtLW5vLWNsZWFuIC0tbm8tdXBk
YXRlIC0tYnVpbGQtc3R5bGU9JShidWlsZF9zdHlsZSlzIC0tcG9ydD0lKHBvcnQpcyUoYXJjaGl0
ZWN0dXJlKXMKLSUocnVuX3Rlc3RzX2xpbmUpc01PQ0s6IHVwZGF0ZV9zdGF0dXM6ICUobmFtZSlz
IFBhc3MKLU1PQ0s6IHJlbGVhc2Vfd29ya19pdGVtOiAlKG5hbWUpcyAxMDAwMAotIiIiICUgc3Ry
aW5nX3JlcGxhY2VtZW50cywKK1J1bm5pbmc6IHdlYmtpdC1wYXRjaCAtLXN0YXR1cy1ob3N0PWV4
YW1wbGUuY29tIGNoZWNrLXBhdGNoLXJlbGV2YW5jZSAtLWdyb3VwPSUoZ3JvdXApcyAtLXBvcnQ9
JShwb3J0KXMlKGFyY2hpdGVjdHVyZSlzCitSdW5uaW5nOiB3ZWJraXQtcGF0Y2ggLS1zdGF0dXMt
aG9zdD1leGFtcGxlLmNvbSBidWlsZCAtLW5vLWNsZWFuIC0tbm8tdXBkYXRlIC0tYnVpbGQtc3R5
bGU9JShidWlsZF9zdHlsZSlzIC0tZ3JvdXA9JShncm91cClzIC0tcG9ydD0lKHBvcnQpcyUoYXJj
aGl0ZWN0dXJlKXMKKyUocnVuX3Rlc3RzX2xpbmUpcyUocmVzdWx0X2xpbmVzKXMiIiIgJSBzdHJp
bmdfcmVwbGFjZW1lbnRzLAogICAgICAgICAgICAgImhhbmRsZV91bmV4cGVjdGVkX2Vycm9yIjog
Ik1vY2sgZXJyb3IgbWVzc2FnZVxuIiwKICAgICAgICAgICAgICJoYW5kbGVfc2NyaXB0X2Vycm9y
IjogIlNjcmlwdEVycm9yIGVycm9yIG1lc3NhZ2VcblxuTU9DSyBvdXRwdXRcbiIsCiAgICAgICAg
IH0KICAgICAgICAgcmV0dXJuIGV4cGVjdGVkX2xvZ3MKIAotICAgIGRlZiBfdGVzdF9ld3Moc2Vs
ZiwgZXdzKToKKyAgICBkZWYgX3Rlc3RfZXdzKHNlbGYsIGV3cywgcmVzdWx0c19hcmVfY29uY2x1
c2l2ZT1UcnVlKToKICAgICAgICAgZXdzLmJpbmRfdG9fdG9vbChNb2NrVG9vbCgpKQogICAgICAg
ICBld3MuaG9zdCA9IE1vY2tIb3N0KCkKICAgICAgICAgb3B0aW9ucyA9IE1vY2soKQogICAgICAg
ICBvcHRpb25zLnBvcnQgPSBOb25lCiAgICAgICAgIG9wdGlvbnMucnVuX3Rlc3RzID0gZXdzLnJ1
bl90ZXN0cwotICAgICAgICBzZWxmLmFzc2VydF9xdWV1ZV9vdXRwdXRzKGV3cywgZXhwZWN0ZWRf
bG9ncz1zZWxmLl9kZWZhdWx0X2V4cGVjdGVkX2xvZ3MoZXdzKSwgb3B0aW9ucz1vcHRpb25zKQor
ICAgICAgICBzZWxmLmFzc2VydF9xdWV1ZV9vdXRwdXRzKGV3cywgZXhwZWN0ZWRfbG9ncz1zZWxm
Ll9kZWZhdWx0X2V4cGVjdGVkX2xvZ3MoZXdzLCByZXN1bHRzX2FyZV9jb25jbHVzaXZlKSwgb3B0
aW9ucz1vcHRpb25zKQogCiAgICAgZGVmIHRlc3RfZXdzZXMoc2VsZik6CiAgICAgICAgIGNsYXNz
ZXMgPSBBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbS5sb2FkX2V3c19jbGFzc2VzKCkKQEAgLTEw
NCwzICsxNDQsMTEgQEAgTU9DSzogcmVsZWFzZV93b3JrX2l0ZW06ICUobmFtZSlzIDEwMDAwCiAg
ICAgICAgIHNlbGYubWF4RGlmZiA9IE5vbmUKICAgICAgICAgZm9yIGV3c19jbGFzcyBpbiBjbGFz
c2VzOgogICAgICAgICAgICAgc2VsZi5fdGVzdF9ld3MoZXdzX2NsYXNzKCkpCisKKyAgICBkZWYg
dGVzdF9pbmNvbmNsdXNpdmVfanNjX3Rlc3RfcmVzdWx0cyhzZWxmKToKKyAgICAgICAgY2xhc3Nl
cyA9IE1vY2tBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbUZvckluY29uY2x1c2l2ZUpTQ1Jlc3Vs
dHMubG9hZF9ld3NfY2xhc3NlcygpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShjbGFzc2VzKQor
ICAgICAgICBzZWxmLm1heERpZmYgPSBOb25lCisgICAgICAgIHRlc3RfY2xhc3NlcyA9IGZpbHRl
cihsYW1iZGEgeDogeC5ydW5fdGVzdHMgYW5kIHguZ3JvdXAgPT0gImpzYyIsIGNsYXNzZXMpCisg
ICAgICAgIGZvciBld3NfY2xhc3MgaW4gdGVzdF9jbGFzc2VzOgorICAgICAgICAgICAgc2VsZi5f
dGVzdF9ld3MoZXdzX2NsYXNzKCksIEZhbHNlKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS90b29sL2NvbW1hbmRzL3F1ZXVlcy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
dG9vbC9jb21tYW5kcy9xdWV1ZXMucHkKaW5kZXggMWM3MWFhY2Q3NTMwZGM3MjhmNTU0OTA5ZTJk
MmJiYzc3ZDhkMTFjYi4uZmUyMTI3Y2ZlMjc0ZWRmMDc1ZWNkMmNkMjM5YjQ3MGVkODMwZjk3YSAx
MDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3F1ZXVlcy5w
eQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcXVldWVzLnB5CkBA
IC0xLDUgKzEsNSBAQAogIyBDb3B5cmlnaHQgKGMpIDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSMgQ29weXJpZ2h0IChjKSAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChjKSAyMDA5LCAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTYyLDYgKzYy
LDcgQEAgY2xhc3MgQWJzdHJhY3RRdWV1ZShDb21tYW5kLCBRdWV1ZUVuZ2luZURlbGVnYXRlKToK
ICAgICB3YXRjaGVycyA9IFsKICAgICBdCiAKKyAgICBfc2tpcF9zdGF0dXMgPSAiU2tpcCIKICAg
ICBfcGFzc19zdGF0dXMgPSAiUGFzcyIKICAgICBfZmFpbF9zdGF0dXMgPSAiRmFpbCIKICAgICBf
ZXJyb3Jfc3RhdHVzID0gIkVycm9yIgpAQCAtMjQ0LDYgKzI0NSwxMCBAQCBjbGFzcyBBYnN0cmFj
dFBhdGNoUXVldWUoQWJzdHJhY3RRdWV1ZSk6CiAgICAgICAgIHNlbGYuX3VwZGF0ZV9zdGF0dXMo
bWVzc2FnZSwgcGF0Y2gpCiAgICAgICAgIHNlbGYuX3JlbGVhc2Vfd29ya19pdGVtKHBhdGNoKQog
CisgICAgZGVmIF9kaWRfc2tpcChzZWxmLCBwYXRjaCk6CisgICAgICAgIHNlbGYuX3VwZGF0ZV9z
dGF0dXMoc2VsZi5fc2tpcF9zdGF0dXMsIHBhdGNoKQorICAgICAgICBzZWxmLl9yZWxlYXNlX3dv
cmtfaXRlbShwYXRjaCkKKwogICAgIGRlZiBfdW5sb2NrX3BhdGNoKHNlbGYsIHBhdGNoKToKICAg
ICAgICAgc2VsZi5fdG9vbC5zdGF0dXNfc2VydmVyLnJlbGVhc2VfbG9jayhzZWxmLm5hbWUsIHBh
dGNoKQogCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvX19p
bml0X18ucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvX19pbml0X18ucHkK
aW5kZXggMzU2YWNhYjAzYWQ4Mjc0Y2U5YmRhNjg1ODg2NGZmMTliNjRmNGEwYS4uNmM5YzA5YWM1
MmEzODZiOWYwY2YzNjNiOWMwM2JiYWE0YzAwMzg2MSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS90b29sL3N0ZXBzL19faW5pdF9fLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvdG9vbC9zdGVwcy9fX2luaXRfXy5weQpAQCAtMSw0ICsxLDUgQEAKICMgQ29weXJpZ2h0
IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAo
QykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
IyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMgYXJlCkBAIC0zMyw2ICszNCw3IEBAIGZyb20gd2Via2l0cHkudG9vbC5zdGVw
cy5hcHBseXBhdGNod2l0aGxvY2FsY29tbWl0IGltcG9ydCBBcHBseVBhdGNoV2l0aExvY2FsQ29t
CiBmcm9tIHdlYmtpdHB5LnRvb2wuc3RlcHMuYXBwbHl3YXRjaGxpc3QgaW1wb3J0IEFwcGx5V2F0
Y2hMaXN0CiBmcm9tIHdlYmtpdHB5LnRvb2wuc3RlcHMuYXR0YWNodG9idWcgaW1wb3J0IEF0dGFj
aFRvQnVnCiBmcm9tIHdlYmtpdHB5LnRvb2wuc3RlcHMuYnVpbGQgaW1wb3J0IEJ1aWxkCitmcm9t
IHdlYmtpdHB5LnRvb2wuc3RlcHMuY2hlY2twYXRjaHJlbGV2YW5jZSBpbXBvcnQgQ2hlY2tQYXRj
aFJlbGV2YW5jZQogZnJvbSB3ZWJraXRweS50b29sLnN0ZXBzLmNoZWNrc3R5bGUgaW1wb3J0IENo
ZWNrU3R5bGUKIGZyb20gd2Via2l0cHkudG9vbC5zdGVwcy5jbGVhbndvcmtpbmdkaXJlY3Rvcnkg
aW1wb3J0IENsZWFuV29ya2luZ0RpcmVjdG9yeQogZnJvbSB3ZWJraXRweS50b29sLnN0ZXBzLmNs
b3NlYnVnIGltcG9ydCBDbG9zZUJ1ZwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS90b29sL3N0ZXBzL2J1aWxkLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBz
L2J1aWxkLnB5CmluZGV4IGY3NGZmY2U3MDk0MWM2MWU1OTY3OTJlNGM2MGRjZDdmOGI2NWU5ZWMu
LjZkNjQ4ZTM0ZmUzYTkyOWE4Y2E2YjcxYjAyYTcwZDlhODQzMjVkMWEgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9idWlsZC5weQorKysgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvYnVpbGQucHkKQEAgLTEsNCArMSw1IEBACiAjIENvcHly
aWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmln
aHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zIGFyZQpAQCAtNDEsMjggKzQyLDM1IEBAIGNsYXNzIEJ1aWxkKEFic3Ry
YWN0U3RlcCk6CiAgICAgICAgICAgICBPcHRpb25zLmJ1aWxkLAogICAgICAgICAgICAgT3B0aW9u
cy5xdWlldCwKICAgICAgICAgICAgIE9wdGlvbnMuYnVpbGRfc3R5bGUsCisgICAgICAgICAgICBP
cHRpb25zLmdyb3VwLAogICAgICAgICBdCiAKLSAgICBkZWYgYnVpbGQoc2VsZiwgYnVpbGRfc3R5
bGUpOgorICAgIGRlZiBidWlsZChzZWxmLCBidWlsZF9zdHlsZSwgZ3JvdXApOgogICAgICAgICBl
bnZpcm9ubWVudCA9IHNlbGYuX3Rvb2wuY29weV9jdXJyZW50X2Vudmlyb25tZW50KCkKICAgICAg
ICAgZW52aXJvbm1lbnQuZGlzYWJsZV9nY2Nfc21hcnRxdW90ZXMoKQogICAgICAgICBlbnZpcm9u
bWVudC5kaXNhYmxlX2poYnVpbGRfVlQxMDBfb3V0cHV0KCkKICAgICAgICAgZW52ID0gZW52aXJv
bm1lbnQudG9fZGljdGlvbmFyeSgpCiAKLSAgICAgICAgYnVpbGRfd2Via2l0X2NvbW1hbmQgPSBz
ZWxmLl90b29sLmRlcHJlY2F0ZWRfcG9ydCgpLmJ1aWxkX3dlYmtpdF9jb21tYW5kKGJ1aWxkX3N0
eWxlPWJ1aWxkX3N0eWxlKQorICAgICAgICBpZiBncm91cCA9PSAianNjIjoKKyAgICAgICAgICAg
IGJ1aWxkX2NvbW1hbmQgPSBzZWxmLl90b29sLmRlcHJlY2F0ZWRfcG9ydCgpLmJ1aWxkX2pzY19j
b21tYW5kKGJ1aWxkX3N0eWxlPWJ1aWxkX3N0eWxlKQorICAgICAgICBlbHNlOgorICAgICAgICAg
ICAgYnVpbGRfY29tbWFuZCA9IHNlbGYuX3Rvb2wuZGVwcmVjYXRlZF9wb3J0KCkuYnVpbGRfd2Vi
a2l0X2NvbW1hbmQoYnVpbGRfc3R5bGU9YnVpbGRfc3R5bGUpCiAKICAgICAgICAgaWYgc2VsZi5f
b3B0aW9ucy5hcmNoaXRlY3R1cmU6Ci0gICAgICAgICAgICBidWlsZF93ZWJraXRfY29tbWFuZCAr
PSBbJ0FSQ0hTPSVzJyAlIHNlbGYuX29wdGlvbnMuYXJjaGl0ZWN0dXJlXQorICAgICAgICAgICAg
YnVpbGRfY29tbWFuZCArPSBbJ0FSQ0hTPSVzJyAlIHNlbGYuX29wdGlvbnMuYXJjaGl0ZWN0dXJl
XQogCi0gICAgICAgIHNlbGYuX3Rvb2wuZXhlY3V0aXZlLnJ1bl9hbmRfdGhyb3dfaWZfZmFpbChi
dWlsZF93ZWJraXRfY29tbWFuZCwgc2VsZi5fb3B0aW9ucy5xdWlldCwKKyAgICAgICAgc2VsZi5f
dG9vbC5leGVjdXRpdmUucnVuX2FuZF90aHJvd19pZl9mYWlsKGJ1aWxkX2NvbW1hbmQsIHNlbGYu
X29wdGlvbnMucXVpZXQsCiAgICAgICAgICAgICBjd2Q9c2VsZi5fdG9vbC5zY20oKS5jaGVja291
dF9yb290LCBlbnY9ZW52KQogCiAgICAgZGVmIHJ1bihzZWxmLCBzdGF0ZSk6CiAgICAgICAgIGlm
IG5vdCBzZWxmLl9vcHRpb25zLmJ1aWxkOgogICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgIF9s
b2cuaW5mbygiQnVpbGRpbmcgV2ViS2l0IikKKworICAgICAgICBncm91cCA9IHNlbGYuX29wdGlv
bnMuZ3JvdXAKKwogICAgICAgICBpZiBzZWxmLl9vcHRpb25zLmJ1aWxkX3N0eWxlID09ICJib3Ro
IjoKLSAgICAgICAgICAgIHNlbGYuYnVpbGQoImRlYnVnIikKLSAgICAgICAgICAgIHNlbGYuYnVp
bGQoInJlbGVhc2UiKQorICAgICAgICAgICAgc2VsZi5idWlsZCgiZGVidWciLCBncm91cCkKKyAg
ICAgICAgICAgIHNlbGYuYnVpbGQoInJlbGVhc2UiLCBncm91cCkKICAgICAgICAgZWxzZToKLSAg
ICAgICAgICAgIHNlbGYuYnVpbGQoc2VsZi5fb3B0aW9ucy5idWlsZF9zdHlsZSkKKyAgICAgICAg
ICAgIHNlbGYuYnVpbGQoc2VsZi5fb3B0aW9ucy5idWlsZF9zdHlsZSwgZ3JvdXApCmRpZmYgLS1n
aXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvY2hlY2twYXRjaHJlbGV2YW5j
ZS5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9jaGVja3BhdGNocmVsZXZh
bmNlLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjEwM2UxNjNkMThmMTU4MWZlZWMwOTY1ODQyZDQ5OTA5ZmIwNjFm
MWYKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMv
Y2hlY2twYXRjaHJlbGV2YW5jZS5weQpAQCAtMCwwICsxLDc0IEBACisjIENvcHlyaWdodCAoQykg
MjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJyBBTkQKKyMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUgorIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisjIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisjIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSCisjIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisjIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK2ltcG9ydCBsb2dnaW5nCitpbXBvcnQgcmUKKworZnJv
bSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmV4ZWN1dGl2ZSBpbXBvcnQgU2NyaXB0RXJyb3IKK2Zy
b20gd2Via2l0cHkudG9vbC5zdGVwcy5hYnN0cmFjdHN0ZXAgaW1wb3J0IEFic3RyYWN0U3RlcAor
ZnJvbSB3ZWJraXRweS50b29sLnN0ZXBzLm9wdGlvbnMgaW1wb3J0IE9wdGlvbnMKKworX2xvZyA9
IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKQorCisKK2NsYXNzIENoZWNrUGF0Y2hSZWxldmFu
Y2UoQWJzdHJhY3RTdGVwKToKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgb3B0aW9ucyhjbHMp
OgorICAgICAgICByZXR1cm4gQWJzdHJhY3RTdGVwLm9wdGlvbnMoKSArIFsKKyAgICAgICAgICAg
IE9wdGlvbnMuZ3JvdXAsCisgICAgICAgIF0KKworICAgIGpzY19wYXRocyA9IFsKKyAgICAgICAg
IkpTVGVzdHMvIiwKKyAgICAgICAgIlNvdXJjZS9KYXZhU2NyaXB0Q29yZS8iLAorICAgICAgICAi
U291cmNlL1dURi8iCisgICAgICAgICJTb3VyY2UvYm1hbGxvYy8iLAorICAgIF0KKworICAgIGdy
b3VwX3RvX3BhdGhzX21hcHBpbmcgPSB7CisgICAgICAgICdqc2MnOiBqc2NfcGF0aHMsCisgICAg
fQorCisgICAgZGVmIF9jaGFuZ2VzX2FyZV9yZWxldmFudChzZWxmLCBjaGFuZ2VkX2ZpbGVzKToK
KyAgICAgICAgIyBJbiB0aGUgZGVmYXVsdCBjYXNlLCBhbGwgcGF0Y2hlcyBhcmUgcmVsZXZhbnQK
KyAgICAgICAgaWYgc2VsZi5fb3B0aW9ucy5ncm91cCBpcyBOb25lOgorICAgICAgICAgICAgcmV0
dXJuIFRydWUKKworICAgICAgICBwYXR0ZXJucyA9IHNlbGYuZ3JvdXBfdG9fcGF0aHNfbWFwcGlu
Z1tzZWxmLl9vcHRpb25zLmdyb3VwXQorCisgICAgICAgIGZvciBjaGFuZ2VkX2ZpbGUgaW4gY2hh
bmdlZF9maWxlczoKKyAgICAgICAgICAgIGZvciBwYXR0ZXJuIGluIHBhdHRlcm5zOgorICAgICAg
ICAgICAgICAgIGlmIHJlLnNlYXJjaChwYXR0ZXJuLCBjaGFuZ2VkX2ZpbGUsIHJlLklHTk9SRUNB
U0UpOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gVHJ1ZQorCisgICAgICAgIHJldHVybiBG
YWxzZQorCisgICAgZGVmIHJ1bihzZWxmLCBzdGF0ZSk6CisgICAgICAgIF9sb2cuaW5mbygiQ2hl
Y2tpbmcgcmVsZXZhbmNlIG9mIHBhdGNoIikKKworICAgICAgICBjaGFuZ2VfbGlzdCA9IHNlbGYu
X3Rvb2wuc2NtKCkuY2hhbmdlZF9maWxlcygpCisKKyAgICAgICAgaWYgc2VsZi5fY2hhbmdlc19h
cmVfcmVsZXZhbnQoY2hhbmdlX2xpc3QpOgorICAgICAgICAgICAgcmV0dXJuIFRydWUKKworICAg
ICAgICBfbG9nLmluZm8oIlRoaXMgcGF0Y2ggZG9lcyBub3QgaGF2ZSByZWxldmFudCBjaGFuZ2Vz
LiIpCisgICAgICAgIHJhaXNlIFNjcmlwdEVycm9yKG1lc3NhZ2U9IlRoaXMgcGF0Y2ggZG9lcyBu
b3QgaGF2ZSByZWxldmFudCBjaGFuZ2VzLiIpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L3Rvb2wvc3RlcHMvb3B0aW9ucy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9v
bC9zdGVwcy9vcHRpb25zLnB5CmluZGV4IDNlZjQ3ZDAwOGE1OWUwNTBkNGNhMGM0ODc3ZGRkMWE2
MDczMWE0MDkuLmY1ZTBkZWYzMjcxN2UzMDZlNjMxNjk4NDExMTBiMjg5OGI3MmExZjEgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9vcHRpb25zLnB5CisrKyBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9vcHRpb25zLnB5CkBAIC0xLDQgKzEs
NSBAQAogIyBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyMgQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTQ2LDYgKzQ3LDcgQEAgY2xhc3Mg
T3B0aW9ucyhvYmplY3QpOgogICAgIGVtYWlsID0gbWFrZV9vcHRpb24oIi0tZW1haWwiLCBhY3Rp
b249InN0b3JlIiwgdHlwZT0ic3RyaW5nIiwgZGVzdD0iZW1haWwiLCBoZWxwPSJFbWFpbCBhZGRy
ZXNzIHRvIHVzZSBpbiBDaGFuZ2VMb2dzLiIpCiAgICAgZm9yY2VfY2xlYW4gPSBtYWtlX29wdGlv
bigiLS1mb3JjZS1jbGVhbiIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGRlc3Q9ImZvcmNlX2NsZWFu
IiwgZGVmYXVsdD1GYWxzZSwgaGVscD0iQ2xlYW4gd29ya2luZyBkaXJlY3RvcnkgYmVmb3JlIGFw
cGx5aW5nIHBhdGNoZXMgKHJlbW92ZXMgbG9jYWwgY2hhbmdlcyBhbmQgY29tbWl0cykiKQogICAg
IGdpdF9jb21taXQgPSBtYWtlX29wdGlvbigiLWciLCAiLS1naXQtY29tbWl0IiwgYWN0aW9uPSJz
dG9yZSIsIGRlc3Q9ImdpdF9jb21taXQiLCBoZWxwPSJPcGVyYXRlIG9uIGEgbG9jYWwgY29tbWl0
LiBJZiBhIHJhbmdlLCB0aGUgY29tbWl0cyBhcmUgc3F1YXNoZWQgaW50byBvbmUuIDxyZWY+Li4u
LiBpbmNsdWRlcyB0aGUgd29ya2luZyBjb3B5IGNoYW5nZXMuIFVQU1RSRUFNIGNhbiBiZSB1c2Vk
IGZvciB0aGUgdXBzdHJlYW0vdHJhY2tpbmcgYnJhbmNoLiIpCisgICAgZ3JvdXAgPSBtYWtlX29w
dGlvbigiLS1ncm91cCIsIGFjdGlvbj0ic3RvcmUiLCBkZXN0PSJncm91cCIsIGRlZmF1bHQ9Tm9u
ZSwgaGVscD0iIikKICAgICBsb2NhbF9jb21taXQgPSBtYWtlX29wdGlvbigiLS1sb2NhbC1jb21t
aXQiLCBhY3Rpb249InN0b3JlX3RydWUiLCBkZXN0PSJsb2NhbF9jb21taXQiLCBkZWZhdWx0PUZh
bHNlLCBoZWxwPSJNYWtlIGEgbG9jYWwgY29tbWl0IGZvciBlYWNoIGFwcGxpZWQgcGF0Y2giKQog
ICAgIG5vbl9pbnRlcmFjdGl2ZSA9IG1ha2Vfb3B0aW9uKCItLW5vbi1pbnRlcmFjdGl2ZSIsIGFj
dGlvbj0ic3RvcmVfdHJ1ZSIsIGRlc3Q9Im5vbl9pbnRlcmFjdGl2ZSIsIGRlZmF1bHQ9RmFsc2Us
IGhlbHA9Ik5ldmVyIHByb21wdCB0aGUgdXNlciwgZmFpbCBhcyBmYXN0IGFzIHBvc3NpYmxlLiIp
CiAgICAgb2Jzb2xldGVfcGF0Y2hlcyA9IG1ha2Vfb3B0aW9uKCItLW5vLW9ic29sZXRlIiwgYWN0
aW9uPSJzdG9yZV9mYWxzZSIsIGRlc3Q9Im9ic29sZXRlX3BhdGNoZXMiLCBkZWZhdWx0PVRydWUs
IGhlbHA9IkRvIG5vdCBvYnNvbGV0ZSBvbGQgcGF0Y2hlcyBiZWZvcmUgcG9zdGluZyB0aGlzIG9u
ZS4iKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3J1bnRl
c3RzLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3J1bnRlc3RzLnB5Cmlu
ZGV4IDc1ZDcyYmM5YWQyZjRlMzZkNDVmZGFjOTBmMTgxOTQ4MWNmMDI4OGIuLmVmOTc5ZTU3Mjc4
NmY3MWVjMzMxMDQ5ZWNmYjcxZjZjZGZlY2FlOTUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvdG9vbC9zdGVwcy9ydW50ZXN0cy5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L3Rvb2wvc3RlcHMvcnVudGVzdHMucHkKQEAgLTEsNCArMSw1IEBACiAjIENvcHlyaWdodCAo
QykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMp
IDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMg
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zIGFyZQpAQCAtNTMsOSArNTQsMTQgQEAgY2xhc3MgUnVuVGVzdHMoQWJzdHJhY3RT
dGVwKToKICAgICAgICAgICAgIE9wdGlvbnMuaXRlcmF0ZV9vbl9uZXdfdGVzdHMsCiAgICAgICAg
ICAgICBPcHRpb25zLm5vbl9pbnRlcmFjdGl2ZSwKICAgICAgICAgICAgIE9wdGlvbnMucXVpZXQs
CisgICAgICAgICAgICBPcHRpb25zLmdyb3VwLAogICAgICAgICBdCiAKICAgICBkZWYgcnVuKHNl
bGYsIHN0YXRlKToKKyAgICAgICAgaWYgc2VsZi5fb3B0aW9ucy5ncm91cCA9PSAianNjIjoKKyAg
ICAgICAgICAgIHNlbGYuX3J1bl9qYXZhc2NyaXB0Y29yZV90ZXN0cygpCisgICAgICAgICAgICBy
ZXR1cm4KKwogICAgICAgICBpZiBzZWxmLl9vcHRpb25zLml0ZXJhdGVfb25fbmV3X3Rlc3RzOgog
ICAgICAgICAgICAgX2xvZy5pbmZvKCJSdW5uaW5nIHJ1bi13ZWJraXQtdGVzdHMgb24gbmV3IHRl
c3RzIikKICAgICAgICAgICAgIHNlbGYuX3J1bl93ZWJraXRfdGVzdHMoc2VsZi5fb3B0aW9ucy5p
dGVyYXRlX29uX25ld190ZXN0cykKQEAgLTE0MywzICsxNDksNyBAQCBjbGFzcyBSdW5UZXN0cyhB
YnN0cmFjdFN0ZXApOgogICAgICAgICAgICAgYXJncy5hcHBlbmQoIi0taXRlcmF0aW9ucz0lZCIg
JSBpdGVyYXRlX29uX25ld190ZXN0cykKIAogICAgICAgICBzZWxmLl90b29sLmV4ZWN1dGl2ZS5y
dW5fYW5kX3Rocm93X2lmX2ZhaWwoYXJncywgY3dkPXNlbGYuX3Rvb2wuc2NtKCkuY2hlY2tvdXRf
cm9vdCkKKworICAgIGRlZiBfcnVuX2phdmFzY3JpcHRjb3JlX3Rlc3RzKHNlbGYpOgorICAgICAg
ICBhcmdzID0gc2VsZi5fdG9vbC5kZXByZWNhdGVkX3BvcnQoKS5ydW5famF2YXNjcmlwdGNvcmVf
dGVzdHNfY29tbWFuZChzZWxmLl9vcHRpb25zLmJ1aWxkX3N0eWxlKQorICAgICAgICBzZWxmLl90
b29sLmV4ZWN1dGl2ZS5ydW5fYW5kX3Rocm93X2lmX2ZhaWwoYXJncywgY3dkPXNlbGYuX3Rvb2wu
c2NtKCkuY2hlY2tvdXRfcm9vdCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
dG9vbC9zdGVwcy9ydW50ZXN0c191bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
dG9vbC9zdGVwcy9ydW50ZXN0c191bml0dGVzdC5weQppbmRleCAzMDAwNjgxOTIwMGFkOTJkODYw
OTY0MmU4ZjgwMjdkMjQ2ZDg3ODQ5Li5kNGQ5OTY0NmMyZmYwNWVjZGRjYzhkNDFlMjc5M2Y1MGZj
YmRmNDY0IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvcnVu
dGVzdHNfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBz
L3J1bnRlc3RzX3VuaXR0ZXN0LnB5CkBAIC00MCw3ICs0MCw3IEBAIGNsYXNzIFJ1blRlc3RzVGVz
dCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIHRvb2wgPSBNb2NrVG9vbChsb2dfZXhlY3V0
aXZlPVRydWUpCiAgICAgICAgIHRvb2wuX2RlcHJlY2F0ZWRfcG9ydC5ydW5fcHl0aG9uX3VuaXR0
ZXN0c19jb21tYW5kID0gbGFtYmRhOiBOb25lCiAgICAgICAgIHRvb2wuX2RlcHJlY2F0ZWRfcG9y
dC5ydW5fcGVybF91bml0dGVzdHNfY29tbWFuZCA9IGxhbWJkYTogTm9uZQotICAgICAgICBzdGVw
ID0gUnVuVGVzdHModG9vbCwgTW9ja09wdGlvbnModGVzdD1UcnVlLCBub25faW50ZXJhY3RpdmU9
VHJ1ZSwgcXVpZXQ9RmFsc2UsIGJ1aWxkX3N0eWxlPSJyZWxlYXNlIiwgaXRlcmF0ZV9vbl9uZXdf
dGVzdHM9MCkpCisgICAgICAgIHN0ZXAgPSBSdW5UZXN0cyh0b29sLCBNb2NrT3B0aW9ucyh0ZXN0
PVRydWUsIG5vbl9pbnRlcmFjdGl2ZT1UcnVlLCBxdWlldD1GYWxzZSwgYnVpbGRfc3R5bGU9InJl
bGVhc2UiLCBpdGVyYXRlX29uX25ld190ZXN0cz0wLCBncm91cD1Ob25lKSkKIAogICAgICAgICBp
ZiBzeXMucGxhdGZvcm0gIT0gImN5Z3dpbiI6CiAgICAgICAgICAgICBleHBlY3RlZF9sb2dzID0g
IiIiUnVubmluZyBiaW5kaW5ncyBnZW5lcmF0aW9uIHRlc3RzCmRpZmYgLS1naXQgYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvc3RlcHNfdW5pdHRlc3QucHkgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvc3RlcHNfdW5pdHRlc3QucHkKaW5kZXggN2Q5NGExM2Iz
NDYzZDk4YTQ0Zjk0OWY4MTRjYzcxMjFjMDY4YWI1ZC4uMDI4OGNiZjYxNzBiMDdkOTBlNDUxZWU1
OGNmZGNiZWYyNjVmYWY3MiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29s
L3N0ZXBzL3N0ZXBzX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9v
bC9zdGVwcy9zdGVwc191bml0dGVzdC5weQpAQCAtMSw0ICsxLDUgQEAKICMgQ29weXJpZ2h0IChD
KSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykg
MjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogIyBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMgYXJlCkBAIC0yOCw2ICsyOSw3IEBACiAKIGltcG9ydCB1bml0dGVzdAogCitmcm9t
IHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZlIGltcG9ydCBTY3JpcHRFcnJvcgogZnJv
bSB3ZWJraXRweS5jb21tb24uc3lzdGVtLm91dHB1dGNhcHR1cmUgaW1wb3J0IE91dHB1dENhcHR1
cmUKIGZyb20gd2Via2l0cHkuY29tbW9uLmNvbmZpZy5wb3J0cyBpbXBvcnQgRGVwcmVjYXRlZFBv
cnQKIGZyb20gd2Via2l0cHkudG9vbC5tb2NrdG9vbCBpbXBvcnQgTW9ja09wdGlvbnMsIE1vY2tU
b29sCkBAIC0zOCw2ICs0MCw3IEBAIGZyb20gd2Via2l0cHkudG9vbCBpbXBvcnQgc3RlcHMKIGNs
YXNzIFN0ZXBzVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgZGVmIF9zdGVwX29wdGlvbnMo
c2VsZik6CiAgICAgICAgIG9wdGlvbnMgPSBNb2NrT3B0aW9ucygpCisgICAgICAgIG9wdGlvbnMu
Z3JvdXAgPSBOb25lCiAgICAgICAgIG9wdGlvbnMubm9uX2ludGVyYWN0aXZlID0gVHJ1ZQogICAg
ICAgICBvcHRpb25zLnBvcnQgPSAnTU9DSyBwb3J0JwogICAgICAgICBvcHRpb25zLnF1aWV0ID0g
VHJ1ZQpAQCAtMTExLDcgKzExNCw3IEBAIE1PQ0sgcnVuX2FuZF90aHJvd19pZl9mYWlsOiBbJ1Rv
b2xzL1NjcmlwdHMvdGVzdC13ZWJraXRweSddLCBjd2Q9L21vY2stY2hlY2tvdXQKIFJ1bm5pbmcg
UGVybCB1bml0IHRlc3RzCiBNT0NLIHJ1bl9hbmRfdGhyb3dfaWZfZmFpbDogWydUb29scy9TY3Jp
cHRzL3Rlc3Qtd2Via2l0cGVybCddLCBjd2Q9L21vY2stY2hlY2tvdXQKIFJ1bm5pbmcgSmF2YVNj
cmlwdENvcmUgdGVzdHMKLU1PQ0sgcnVuX2FuZF90aHJvd19pZl9mYWlsOiBbJ1Rvb2xzL1Njcmlw
dHMvcnVuLWphdmFzY3JpcHRjb3JlLXRlc3RzJ10sIGN3ZD0vbW9jay1jaGVja291dAorTU9DSyBy
dW5fYW5kX3Rocm93X2lmX2ZhaWw6IFsnVG9vbHMvU2NyaXB0cy9ydW4tamF2YXNjcmlwdGNvcmUt
dGVzdHMnLCAnLS1uby1mYWlsLWZhc3QnLCAnLS1qc29uLW91dHB1dD1qc2NfdGVzdF9yZXN1bHRz
Lmpzb24nXSwgY3dkPS9tb2NrLWNoZWNrb3V0CiBSdW5uaW5nIGJpbmRpbmdzIGdlbmVyYXRpb24g
dGVzdHMKIE1PQ0sgcnVuX2FuZF90aHJvd19pZl9mYWlsOiBbJ1Rvb2xzL1NjcmlwdHMvcnVuLWJp
bmRpbmdzLXRlc3RzJ10sIGN3ZD0vbW9jay1jaGVja291dAogUnVubmluZyBydW4td2Via2l0LXRl
c3RzCkBAIC0xMzMsMTAgKzEzNiwxMDkgQEAgTU9DSyBydW5fYW5kX3Rocm93X2lmX2ZhaWw6IFsn
VG9vbHMvU2NyaXB0cy90ZXN0LXdlYmtpdHB5J10sIGN3ZD0vbW9jay1jaGVja291dAogUnVubmlu
ZyBQZXJsIHVuaXQgdGVzdHMKIE1PQ0sgcnVuX2FuZF90aHJvd19pZl9mYWlsOiBbJ1Rvb2xzL1Nj
cmlwdHMvdGVzdC13ZWJraXRwZXJsJ10sIGN3ZD0vbW9jay1jaGVja291dAogUnVubmluZyBKYXZh
U2NyaXB0Q29yZSB0ZXN0cwotTU9DSyBydW5fYW5kX3Rocm93X2lmX2ZhaWw6IFsnVG9vbHMvU2Ny
aXB0cy9ydW4tamF2YXNjcmlwdGNvcmUtdGVzdHMnXSwgY3dkPS9tb2NrLWNoZWNrb3V0CitNT0NL
IHJ1bl9hbmRfdGhyb3dfaWZfZmFpbDogWydUb29scy9TY3JpcHRzL3J1bi1qYXZhc2NyaXB0Y29y
ZS10ZXN0cycsICctLW5vLWZhaWwtZmFzdCcsICctLWpzb24tb3V0cHV0PWpzY190ZXN0X3Jlc3Vs
dHMuanNvbiddLCBjd2Q9L21vY2stY2hlY2tvdXQKIFJ1bm5pbmcgYmluZGluZ3MgZ2VuZXJhdGlv
biB0ZXN0cwogTU9DSyBydW5fYW5kX3Rocm93X2lmX2ZhaWw6IFsnVG9vbHMvU2NyaXB0cy9ydW4t
YmluZGluZ3MtdGVzdHMnXSwgY3dkPS9tb2NrLWNoZWNrb3V0CiBSdW5uaW5nIHJ1bi13ZWJraXQt
dGVzdHMKIE1PQ0sgcnVuX2FuZF90aHJvd19pZl9mYWlsOiBbJ1Rvb2xzL1NjcmlwdHMvcnVuLXdl
YmtpdC10ZXN0cycsICctLWRlYnVnJywgJy0tcXVpZXQnXSwgY3dkPS9tb2NrLWNoZWNrb3V0CiAi
IiIKICAgICAgICAgT3V0cHV0Q2FwdHVyZSgpLmFzc2VydF9vdXRwdXRzKHNlbGYsIHN0ZXAucnVu
LCBbe31dLCBleHBlY3RlZF9sb2dzPWV4cGVjdGVkX2xvZ3MpCisKKyAgICBkZWYgdGVzdF9ydW50
ZXN0c19qc2Moc2VsZik6CisgICAgICAgIG1vY2tfb3B0aW9ucyA9IHNlbGYuX3N0ZXBfb3B0aW9u
cygpCisgICAgICAgIG1vY2tfb3B0aW9ucy5ub25faW50ZXJhY3RpdmUgPSBGYWxzZQorICAgICAg
ICBtb2NrX29wdGlvbnMuYnVpbGRfc3R5bGUgPSAicmVsZWFzZSIKKyAgICAgICAgbW9ja19vcHRp
b25zLmdyb3VwID0gImpzYyIKKyAgICAgICAgc3RlcCA9IHN0ZXBzLlJ1blRlc3RzKE1vY2tUb29s
KGxvZ19leGVjdXRpdmU9VHJ1ZSksIG1vY2tfb3B0aW9ucykKKyAgICAgICAgdG9vbCA9IE1vY2tU
b29sKGxvZ19leGVjdXRpdmU9VHJ1ZSkKKyAgICAgICAgIyBGSVhNRTogV2Ugc2hvdWxkbid0IHVz
ZSBhIHJlYWwgcG9ydC1vYmplY3QgaGVyZSwgYnV0IHRoZXJlIGlzIHRvbyBtdWNoIHRvIG1vY2sg
YXQgdGhlIG1vbWVudC4KKyAgICAgICAgdG9vbC5fZGVwcmVjYXRlZF9wb3J0ID0gRGVwcmVjYXRl
ZFBvcnQoKQorICAgICAgICBzdGVwID0gc3RlcHMuUnVuVGVzdHModG9vbCwgbW9ja19vcHRpb25z
KQorICAgICAgICBleHBlY3RlZF9sb2dzID0gIiIiTU9DSyBydW5fYW5kX3Rocm93X2lmX2ZhaWw6
IFsnVG9vbHMvU2NyaXB0cy9ydW4tamF2YXNjcmlwdGNvcmUtdGVzdHMnLCAnLS1uby1mYWlsLWZh
c3QnLCAnLS1qc29uLW91dHB1dD1qc2NfdGVzdF9yZXN1bHRzLmpzb24nLCAnLS1yZWxlYXNlJ10s
IGN3ZD0vbW9jay1jaGVja291dAorIiIiCisgICAgICAgIE91dHB1dENhcHR1cmUoKS5hc3NlcnRf
b3V0cHV0cyhzZWxmLCBzdGVwLnJ1biwgW3t9XSwgZXhwZWN0ZWRfbG9ncz1leHBlY3RlZF9sb2dz
KQorCisgICAgZGVmIHRlc3RfcnVudGVzdHNfanNjX2RlYnVnKHNlbGYpOgorICAgICAgICBtb2Nr
X29wdGlvbnMgPSBzZWxmLl9zdGVwX29wdGlvbnMoKQorICAgICAgICBtb2NrX29wdGlvbnMubm9u
X2ludGVyYWN0aXZlID0gRmFsc2UKKyAgICAgICAgbW9ja19vcHRpb25zLmJ1aWxkX3N0eWxlID0g
ImRlYnVnIgorICAgICAgICBtb2NrX29wdGlvbnMuZ3JvdXAgPSAianNjIgorICAgICAgICB0b29s
ID0gTW9ja1Rvb2wobG9nX2V4ZWN1dGl2ZT1UcnVlKQorICAgICAgICAjIEZJWE1FOiBXZSBzaG91
bGRuJ3QgdXNlIGEgcmVhbCBwb3J0LW9iamVjdCBoZXJlLCBidXQgdGhlcmUgaXMgdG9vIG11Y2gg
dG8gbW9jayBhdCB0aGUgbW9tZW50LgorICAgICAgICB0b29sLl9kZXByZWNhdGVkX3BvcnQgPSBE
ZXByZWNhdGVkUG9ydCgpCisgICAgICAgIHN0ZXAgPSBzdGVwcy5SdW5UZXN0cyh0b29sLCBtb2Nr
X29wdGlvbnMpCisgICAgICAgIGV4cGVjdGVkX2xvZ3MgPSAiIiJNT0NLIHJ1bl9hbmRfdGhyb3df
aWZfZmFpbDogWydUb29scy9TY3JpcHRzL3J1bi1qYXZhc2NyaXB0Y29yZS10ZXN0cycsICctLW5v
LWZhaWwtZmFzdCcsICctLWpzb24tb3V0cHV0PWpzY190ZXN0X3Jlc3VsdHMuanNvbicsICctLWRl
YnVnJ10sIGN3ZD0vbW9jay1jaGVja291dAorIiIiCisgICAgICAgIE91dHB1dENhcHR1cmUoKS5h
c3NlcnRfb3V0cHV0cyhzZWxmLCBzdGVwLnJ1biwgW3t9XSwgZXhwZWN0ZWRfbG9ncz1leHBlY3Rl
ZF9sb2dzKQorCisgICAgZGVmIHRlc3RfYnVpbGRfanNjX2RlYnVnKHNlbGYpOgorICAgICAgICBt
b2NrX29wdGlvbnMgPSBzZWxmLl9zdGVwX29wdGlvbnMoKQorICAgICAgICBtb2NrX29wdGlvbnMu
bm9uX2ludGVyYWN0aXZlID0gRmFsc2UKKyAgICAgICAgbW9ja19vcHRpb25zLmJ1aWxkX3N0eWxl
ID0gImRlYnVnIgorICAgICAgICBtb2NrX29wdGlvbnMuYnVpbGQgPSBUcnVlCisgICAgICAgIG1v
Y2tfb3B0aW9ucy5hcmNoaXRlY3R1cmUgPSBUcnVlCisgICAgICAgIG1vY2tfb3B0aW9ucy5ncm91
cCA9ICJqc2MiCisgICAgICAgIHRvb2wgPSBNb2NrVG9vbChsb2dfZXhlY3V0aXZlPVRydWUpCisg
ICAgICAgICMgRklYTUU6IFdlIHNob3VsZG4ndCB1c2UgYSByZWFsIHBvcnQtb2JqZWN0IGhlcmUs
IGJ1dCB0aGVyZSBpcyB0b28gbXVjaCB0byBtb2NrIGF0IHRoZSBtb21lbnQuCisgICAgICAgIHRv
b2wuX2RlcHJlY2F0ZWRfcG9ydCA9IERlcHJlY2F0ZWRQb3J0KCkKKyAgICAgICAgc3RlcCA9IHN0
ZXBzLkJ1aWxkKHRvb2wsIG1vY2tfb3B0aW9ucykKKyAgICAgICAgZXhwZWN0ZWRfbG9ncyA9ICIi
IkJ1aWxkaW5nIFdlYktpdAorTU9DSyBydW5fYW5kX3Rocm93X2lmX2ZhaWw6IFsnVG9vbHMvU2Ny
aXB0cy9idWlsZC1qc2MnLCAnLS1kZWJ1ZycsICdBUkNIUz1UcnVlJ10sIGN3ZD0vbW9jay1jaGVj
a291dCwgZW52PXsnTENfQUxMJzogJ0MnLCAnVEVSTSc6ICdub25lJywgJ01PQ0tfRU5WSVJPTl9D
T1BZJzogJzEnfQorIiIiCisgICAgICAgIE91dHB1dENhcHR1cmUoKS5hc3NlcnRfb3V0cHV0cyhz
ZWxmLCBzdGVwLnJ1biwgW3t9XSwgZXhwZWN0ZWRfbG9ncz1leHBlY3RlZF9sb2dzKQorCisgICAg
ZGVmIHRlc3RfYnVpbGRfanNjKHNlbGYpOgorICAgICAgICBtb2NrX29wdGlvbnMgPSBzZWxmLl9z
dGVwX29wdGlvbnMoKQorICAgICAgICBtb2NrX29wdGlvbnMubm9uX2ludGVyYWN0aXZlID0gRmFs
c2UKKyAgICAgICAgbW9ja19vcHRpb25zLmJ1aWxkX3N0eWxlID0gInJlbGVhc2UiCisgICAgICAg
IG1vY2tfb3B0aW9ucy5idWlsZCA9IFRydWUKKyAgICAgICAgbW9ja19vcHRpb25zLmFyY2hpdGVj
dHVyZSA9IFRydWUKKyAgICAgICAgbW9ja19vcHRpb25zLmdyb3VwID0gImpzYyIKKyAgICAgICAg
dG9vbCA9IE1vY2tUb29sKGxvZ19leGVjdXRpdmU9VHJ1ZSkKKyAgICAgICAgIyBGSVhNRTogV2Ug
c2hvdWxkbid0IHVzZSBhIHJlYWwgcG9ydC1vYmplY3QgaGVyZSwgYnV0IHRoZXJlIGlzIHRvbyBt
dWNoIHRvIG1vY2sgYXQgdGhlIG1vbWVudC4KKyAgICAgICAgdG9vbC5fZGVwcmVjYXRlZF9wb3J0
ID0gRGVwcmVjYXRlZFBvcnQoKQorICAgICAgICBzdGVwID0gc3RlcHMuQnVpbGQodG9vbCwgbW9j
a19vcHRpb25zKQorICAgICAgICBleHBlY3RlZF9sb2dzID0gIiIiQnVpbGRpbmcgV2ViS2l0CitN
T0NLIHJ1bl9hbmRfdGhyb3dfaWZfZmFpbDogWydUb29scy9TY3JpcHRzL2J1aWxkLWpzYycsICct
LXJlbGVhc2UnLCAnQVJDSFM9VHJ1ZSddLCBjd2Q9L21vY2stY2hlY2tvdXQsIGVudj17J0xDX0FM
TCc6ICdDJywgJ1RFUk0nOiAnbm9uZScsICdNT0NLX0VOVklST05fQ09QWSc6ICcxJ30KKyIiIgor
ICAgICAgICBPdXRwdXRDYXB0dXJlKCkuYXNzZXJ0X291dHB1dHMoc2VsZiwgc3RlcC5ydW4sIFt7
fV0sIGV4cGVjdGVkX2xvZ3M9ZXhwZWN0ZWRfbG9ncykKKworICAgIGRlZiB0ZXN0X3BhdGNoX3Jl
bGV2YW50KHNlbGYpOgorICAgICAgICBzZWxmLm1heERpZmYgPSBOb25lCisgICAgICAgIG1vY2tf
b3B0aW9ucyA9IHNlbGYuX3N0ZXBfb3B0aW9ucygpCisgICAgICAgIHRvb2wgPSBNb2NrVG9vbChs
b2dfZXhlY3V0aXZlPVRydWUpCisgICAgICAgIHRvb2wuc2NtKCkuX21vY2tDaGFuZ2VkRmlsZXMg
PSBbIkpTVGVzdHMvTW9ja0ZpbGUxIiwgIkNoYW5nZUxvZyJdCisgICAgICAgICMgRklYTUU6IFdl
IHNob3VsZG4ndCB1c2UgYSByZWFsIHBvcnQtb2JqZWN0IGhlcmUsIGJ1dCB0aGVyZSBpcyB0b28g
bXVjaCB0byBtb2NrIGF0IHRoZSBtb21lbnQuCisgICAgICAgIHRvb2wuX2RlcHJlY2F0ZWRfcG9y
dCA9IERlcHJlY2F0ZWRQb3J0KCkKKyAgICAgICAgc3RlcCA9IHN0ZXBzLkNoZWNrUGF0Y2hSZWxl
dmFuY2UodG9vbCwgbW9ja19vcHRpb25zKQorICAgICAgICBleHBlY3RlZF9sb2dzID0gIiIiQ2hl
Y2tpbmcgcmVsZXZhbmNlIG9mIHBhdGNoCisiIiIKKyAgICAgICAgT3V0cHV0Q2FwdHVyZSgpLmFz
c2VydF9vdXRwdXRzKHNlbGYsIHN0ZXAucnVuLCBbe31dLCBleHBlY3RlZF9sb2dzPWV4cGVjdGVk
X2xvZ3MpCisKKyAgICBkZWYgdGVzdF9wYXRjaF9yZWxldmFudF9qc2Moc2VsZik6CisgICAgICAg
IHNlbGYubWF4RGlmZiA9IE5vbmUKKyAgICAgICAgbW9ja19vcHRpb25zID0gc2VsZi5fc3RlcF9v
cHRpb25zKCkKKyAgICAgICAgbW9ja19vcHRpb25zLmdyb3VwID0gImpzYyIKKyAgICAgICAgdG9v
bCA9IE1vY2tUb29sKGxvZ19leGVjdXRpdmU9VHJ1ZSkKKyAgICAgICAgdG9vbC5zY20oKS5fbW9j
a0NoYW5nZWRGaWxlcyA9IFsiSlNUZXN0cy9Nb2NrRmlsZTEiLCAiQ2hhbmdlTG9nIl0KKyAgICAg
ICAgIyBGSVhNRTogV2Ugc2hvdWxkbid0IHVzZSBhIHJlYWwgcG9ydC1vYmplY3QgaGVyZSwgYnV0
IHRoZXJlIGlzIHRvbyBtdWNoIHRvIG1vY2sgYXQgdGhlIG1vbWVudC4KKyAgICAgICAgdG9vbC5f
ZGVwcmVjYXRlZF9wb3J0ID0gRGVwcmVjYXRlZFBvcnQoKQorICAgICAgICBzdGVwID0gc3RlcHMu
Q2hlY2tQYXRjaFJlbGV2YW5jZSh0b29sLCBtb2NrX29wdGlvbnMpCisgICAgICAgIGV4cGVjdGVk
X2xvZ3MgPSAiIiJDaGVja2luZyByZWxldmFuY2Ugb2YgcGF0Y2gKKyIiIgorICAgICAgICBPdXRw
dXRDYXB0dXJlKCkuYXNzZXJ0X291dHB1dHMoc2VsZiwgc3RlcC5ydW4sIFt7fV0sIGV4cGVjdGVk
X2xvZ3M9ZXhwZWN0ZWRfbG9ncykKKworICAgIGRlZiB0ZXN0X3BhdGNoX25vdF9yZWxldmFudF9q
c2Moc2VsZik6CisgICAgICAgIHNlbGYubWF4RGlmZiA9IE5vbmUKKyAgICAgICAgbW9ja19vcHRp
b25zID0gc2VsZi5fc3RlcF9vcHRpb25zKCkKKyAgICAgICAgbW9ja19vcHRpb25zLmdyb3VwID0g
ImpzYyIKKyAgICAgICAgdG9vbCA9IE1vY2tUb29sKGxvZ19leGVjdXRpdmU9VHJ1ZSkKKyAgICAg
ICAgdG9vbC5zY20oKS5fbW9ja0NoYW5nZWRGaWxlcyA9IFsiVG9vbHMvQ2hhbmdlTG9nIiwgIlRv
b2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9zdGVwc191bml0dGVzdC5weSJdCisgICAg
ICAgICMgRklYTUU6IFdlIHNob3VsZG4ndCB1c2UgYSByZWFsIHBvcnQtb2JqZWN0IGhlcmUsIGJ1
dCB0aGVyZSBpcyB0b28gbXVjaCB0byBtb2NrIGF0IHRoZSBtb21lbnQuCisgICAgICAgIHRvb2wu
X2RlcHJlY2F0ZWRfcG9ydCA9IERlcHJlY2F0ZWRQb3J0KCkKKyAgICAgICAgc3RlcCA9IHN0ZXBz
LkNoZWNrUGF0Y2hSZWxldmFuY2UodG9vbCwgbW9ja19vcHRpb25zKQorICAgICAgICBleHBlY3Rl
ZF9sb2dzID0gIiIiQ2hlY2tpbmcgcmVsZXZhbmNlIG9mIHBhdGNoCitUaGlzIHBhdGNoIGRvZXMg
bm90IGhhdmUgcmVsZXZhbnQgY2hhbmdlcy4KKyIiIgorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0
UmFpc2VzKFNjcmlwdEVycm9yKToKKyAgICAgICAgICAgIE91dHB1dENhcHR1cmUoKS5hc3NlcnRf
b3V0cHV0cyhzZWxmLCBzdGVwLnJ1biwgW3t9XSwgZXhwZWN0ZWRfbG9ncz1leHBlY3RlZF9sb2dz
KQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>301849</attachid>
            <date>2017-02-16 15:59:07 -0800</date>
            <delta_ts>2017-02-17 12:59:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-162458-20170216155630.patch</filename>
            <type>text/plain</type>
            <size>91992</size>
            <attacher name="Srinivasan Vijayaraghavan">webkit</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEyMTUyCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMjEzZWYxNzgzNzkyOWQ1YzAwZjhiMGY0NWI4ZTcyNDhm
MWVlOTdiMi4uYTljYzVhY2JkODY1MmQxOTg4ZmIzNzQ4M2VkNzcyMjM1MmNiZDM3MCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEz
NiBAQAorMjAxNy0wMi0xNSAgU3Jpbml2YXNhbiBWaWpheWFyYWdoYXZhbiAgPHN2aWpheWFyYWdo
YXZhbkBhcHBsZS5jb20+CisKKyAgICAgICAgRVdTIHNob3VsZCBydW4gSmF2YVNjcmlwdENvcmUg
dGVzdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2
MjQ1OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
UXVldWVTdGF0dXNTZXJ2ZXIvY29uZmlnL3F1ZXVlcy5weTogQWRkIGpzYy1ld3MgcXVldWUuCisg
ICAgICAgICogUXVldWVTdGF0dXNTZXJ2ZXIvbW9kZWwvcXVldWVzdGF0dXMucHk6CisgICAgICAg
IChRdWV1ZVN0YXR1cy5kaWRfc2tpcCk6IFJldHVybnMgd2hldGhlciBwYXRjaCB3YXMgc2tpcHBl
ZCwgYmFzZWQgb24gc3RhdHVzLgorICAgICAgICAqIFF1ZXVlU3RhdHVzU2VydmVyL2hhbmRsZXJz
L3N0YXR1c2J1YmJsZS5weToKKyAgICAgICAgKFN0YXR1c0J1YmJsZS5fc2hvdWxkX3Nob3dfYnVi
YmxlX2Zvcik6IEFkZCBsb2dpYyB0byBoaWRlIGpzYy1ld3MgYnViYmxlIGlmIHRoZSBwYXRjaCBk
b2VzIG5vdCB0b3VjaCBqc2MuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hl
Y2tvdXQvc2NtL3NjbV9tb2NrLnB5OgorICAgICAgICAoTW9ja1NDTS5fX2luaXRfXyk6IEFkZCBf
bW9ja0NoYW5nZWRGaWxlcyB2YXJpYWJsZS4KKyAgICAgICAgKE1vY2tTQ00uY2hhbmdlZF9maWxl
cyk6IENoYW5nZSB0byB1c2UgX21vY2tDaGFuZ2VkRmlsZXMgdmFyaWFibGVzLgorICAgICAgICAq
IFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9ld3MuanNvbjogQWRkIGNvbmZpZyBpbmZv
IGZvciBKU0MgRVdTLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9w
b3J0cy5weTogQWRkIHN1cHBvcnQgZm9yIEpTQyBFV1MgaW4gTWFjIFBvcnQuCisgICAgICAgIChE
ZXByZWNhdGVkUG9ydC5fYXBwZW5kX2J1aWxkX3N0eWxlX2ZsYWcpOiBIZWxwZXIgZnVuY3Rpb24g
dG8gYXBwZW5kIGJ1aWxkX3N0eWxlIHRvIGEgY29tbWFuZC4KKyAgICAgICAgKERlcHJlY2F0ZWRQ
b3J0LmJ1aWxkX2pzY19jb21tYW5kKTogQWRkZWQgLSBjb21tYW5kIHRvIGJ1aWxkIEpTQyBvbmx5
IChxdWlja2VyIHRoYW4gYnVpbGRpbmcgYWxsIG9mIFdlYktpdCkuCisgICAgICAgIChEZXByZWNh
dGVkUG9ydC5ydW5famF2YXNjcmlwdGNvcmVfdGVzdHNfY29tbWFuZCk6IEFsbG93IEpTQyBFV1Mg
dG8gb25seSBydW4gSlNDIHRlc3RzLgorICAgICAgICAoTWFjUG9ydC5ydW5fd2Via2l0X3Rlc3Rz
X2NvbW1hbmQpOiBDaGVjayBmb3IgSlNDLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29t
bW9uL2NvbmZpZy9wb3J0c19tb2NrLnB5OgorICAgICAgICAoTW9ja1BvcnQucnVuX2phdmFzY3Jp
cHRjb3JlX3Rlc3RzX2NvbW1hbmQpOiBBZGQgYnVpbGRfc3R5bGUgYXJndW1lbnQuCisgICAgICAg
ICogU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL3BvcnRzX3VuaXR0ZXN0LnB5OgorICAg
ICAgICAoRGVwcmVjYXRlZFBvcnRUZXN0LnRlc3RfbWFjX3BvcnQpOiBBZGQgdW5pdCB0ZXN0cyBm
b3IgYnVpbGQtanNjIHNoZWxsIGNvbW1hbmQuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9j
b21tb24vbmV0L2Fic3RyYWN0dGVzdHJlc3VsdHMucHk6IEFkZGVkLgorICAgICAgICAoQWJzdHJh
Y3RUZXN0UmVzdWx0cyk6IEFic3RyYWN0IHN1cGVyY2xhc3Mgb2YgSlNDVGVzdFJlc3VsdHMgYW5k
IEpTQ1Rlc3RSZXN1bHRzLgorICAgICAgICAoQWJzdHJhY3RUZXN0UmVzdWx0cy50ZXN0X3Jlc3Vs
dHMpOiBTdHViLgorICAgICAgICAoQWJzdHJhY3RUZXN0UmVzdWx0cy5mYWlsaW5nX3Rlc3RzKTog
U3R1Yi4KKyAgICAgICAgKEFic3RyYWN0VGVzdFJlc3VsdHMuZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1
cmVfbGltaXQpOiBTdHViLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9q
c2N0ZXN0cmVzdWx0cy5weTogQWRkZWQuCisgICAgICAgIChKU0NUZXN0UmVzdWx0cyk6IEFkZGVk
LgorICAgICAgICAoSlNDVGVzdFJlc3VsdHMuaW50ZXJzZWN0aW9uKTogUmV0dXJuIGEgSlNDVGVz
dFJlc3VsdHMgb2JqZWN0IHdpdGggZmFpbHVyZXMgY29tbW9uIHRvIGJvdGggaW5wdXQgb2JqZWN0
cy4KKyAgICAgICAgKEpTQ1Rlc3RSZXN1bHRzLnJlc3VsdHNfZnJvbV9zdHJpbmcpOiBVc2UganNv
biBsaWJyYXJ5IHRvIHBhcnNlIHJlc3VsdHMuCisgICAgICAgIChKU0NUZXN0UmVzdWx0cy5fX2lu
aXRfXyk6IEluaXRpYWxpemUgbWVtYmVycy4KKyAgICAgICAgKEpTQ1Rlc3RSZXN1bHRzLmVxdWFs
cyk6IFRoaXMgZW5hYmxlcyB1bml0IHRlc3RpbmcuCisgICAgICAgIChKU0NUZXN0UmVzdWx0cy5p
c19zdWJzZXQpOiBDaGVja3MgaWYgb25lIHNldCBvZiBmYWlsdXJlcyBpcyBhIHN1YnNldCBvZiBh
bm90aGVyLgorICAgICAgICAoSlNDVGVzdFJlc3VsdHMuYWxsX3Bhc3NlZCk6IEdldHRlci4KKyAg
ICAgICAgKEpTQ1Rlc3RSZXN1bHRzLmZhaWxpbmdfdGVzdHMpOiBHZXR0ZXIuCisgICAgICAgIChK
U0NUZXN0UmVzdWx0cy5kaWRfZXhjZWVkX3Rlc3RfZmFpbHVyZV9saW1pdCk6IEdldHRlci4KKyAg
ICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvanNjdGVzdHJlc3VsdHNfdW5pdHRl
c3QucHk6IEFkZGVkLgorICAgICAgICAoSlNDVGVzdFJlc3VsdHNUZXN0KTogQ2xhc3MgdG8gdGVz
dCBKU0NUZXN0UmVzdWx0cy4KKyAgICAgICAgKEpTQ1Rlc3RSZXN1bHRzVGVzdC50ZXN0X3Jlc3Vs
dHNfZnJvbV9zdHJpbmcpOiBUZXN0cyBwYXJzaW5nLgorICAgICAgICAoSlNDVGVzdFJlc3VsdHNU
ZXN0LnRlc3RfaW50ZXJzZWN0aW9uX2FwaV90ZXN0cyk6IFVuaXQgdGVzdCBmb3IgaW50ZXJzZWN0
aW9uKCkgY2xhc3MgbWV0aG9kLgorICAgICAgICAoSlNDVGVzdFJlc3VsdHNUZXN0LnRlc3RfaW50
ZXJzZWN0aW9uX3N0cmVzc190ZXN0cyk6IFVuaXQgdGVzdCBmb3IgaW50ZXJzZWN0aW9uKCkgY2xh
c3MgbWV0aG9kLgorICAgICAgICAoSlNDVGVzdFJlc3VsdHNUZXN0LnRlc3RfaW50ZXJzZWN0aW9u
X2dlbmVyYWxfY2FzZSk6IFVuaXQgdGVzdCBmb3IgaW50ZXJzZWN0aW9uKCkgY2xhc3MgbWV0aG9k
LgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvcG9ydC9iYXNlLnB5OgorICAgICAgICAoUG9y
dC5qc2NfcmVzdWx0c19kaXJlY3RvcnkpOiBSZXR1cm5zIHRoZSBkaXJlY3RvcnkgZm9yIHRoZSBK
U0MgdGVzdCByZXN1bHRzIEpTT04gZmlsZS4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rv
b2wvYm90L2Vhcmx5d2FybmluZ3N5c3RlbXRhc2sucHk6CisgICAgICAgIChFYXJseVdhcm5pbmdT
eXN0ZW1UYXNrLnJ1bik6IEFkZCBjaGVja19wYXRjaF9yZWxldmFuY2Ugc3RlcC4KKyAgICAgICAg
KiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2pzY2V3c191bml0dGVzdC5weTogQWRkZWQuCisg
ICAgICAgIChNb2NrUGF0Y2hBbmFseXNpc1Rhc2spOiBNb2NrZWQtb3V0IHZlcnNpb24gb2YgUGF0
Y2hBbmFseXNpc1Rhc2sgdGhhdCBkb2Vzbid0IHJ1biBjb21tYW5kcy4KKyAgICAgICAgKE1vY2tQ
YXRjaEFuYWx5c2lzVGFzay5fX2luaXRfXyk6IFNldHMgYXR0cmlidXRlcy4KKyAgICAgICAgKE1v
Y2tQYXRjaEFuYWx5c2lzVGFzay5fdGVzdCk6IE92ZXJyaWRlIHRvIG5vdCBydW4gY29tbWFuZC4K
KyAgICAgICAgKE1vY2tQYXRjaEFuYWx5c2lzVGFzay5fYnVpbGRfYW5kX3Rlc3Rfd2l0aG91dF9w
YXRjaCk6IE92ZXJyaWRlIHRvIG5vdCBydW4gY29tbWFuZC4KKyAgICAgICAgKE1vY2tQYXRjaEFu
YWx5c2lzVGFzay52YWxpZGF0ZSk6IEFzc3VtZSBtb2NrZWQgcGF0Y2ggaXMgdmFsaWQgZm9yIHB1
cnBvc2VzIG9mIHRlc3RpbmcgcmV0cnkgbG9naWMuCisgICAgICAgIChNb2NrUGF0Y2hBbmFseXNp
c1Rhc2sudGVzdF9ydW5fY291bnQpOiBTcGVjaWZpYyB0byB0aGUgbW9ja2VkIHZlcnNpb24sIHRv
IHRlc3QgcmV0cnkgbG9naWMuCisgICAgICAgIChNb2NrSlNDRWFybHlXYXJuaW5nU3lzdGVtKTog
TW9ja2VkLW91dCB2ZXJzaW9uIG9mIEFic3RhcmN0RWFybHlXYXJuaW5nU3lzdGVtIHNvIHdlIGNh
biBwcm92aWRlIHRlc3QgcmVzdWx0cy4KKyAgICAgICAgKE1vY2tKU0NFYXJseVdhcm5pbmdTeXN0
ZW0uX19pbml0X18pOiBTZXRzIGF0dHJpYnV0ZXMsIGFsc28gc2V0cyBncm91cCB0byBqc2MuCisg
ICAgICAgIChNb2NrSlNDRWFybHlXYXJuaW5nU3lzdGVtLnRlc3RfcmVzdWx0cyk6IFJldHVybnMg
dGVzdCByZXN1bHRzIHByb3ZpZGVkIGJ5IHVzLCBpbnN0ZWFkIG9mIHVzaW5nIGEgSlNPTiByZWFk
ZXIuCisgICAgICAgIChKU0NFYXJseVdhcm5pbmdTeXN0ZW1UZXN0KTogQ2xhc3MgdG8gdGVzdCBy
ZXRyeSBsb2dpYyBpbiBiZWxvdyBzaXR1YXRpb25zLgorICAgICAgICAoSlNDRWFybHlXYXJuaW5n
U3lzdGVtVGVzdC5fY3JlYXRlX3Rhc2spOiBIZWxwZXIgZnVuY3Rpb24gdG8gYWJzdHJhY3Qgb3V0
IGNvbW1vbiBjb2RlLgorICAgICAgICAoSlNDRWFybHlXYXJuaW5nU3lzdGVtVGVzdC5fcmVzdWx0
c19pbmRpY2F0ZV9hbGxfcGFzc2VkKTogRmFsc2UgaWYgaW5wdXQgaXMgTm9uZSBvciBoYXMgZmFp
bHVyZXMsIGVsc2UgVHJ1ZS4KKyAgICAgICAgKEpTQ0Vhcmx5V2FybmluZ1N5c3RlbVRlc3QudGVz
dF9zdWNjZXNzX2Nhc2UpOiBDbGVhbiBwYXRjaCBvbiBjbGVhbiB0cmVlLgorICAgICAgICAoSlND
RWFybHlXYXJuaW5nU3lzdGVtVGVzdC50ZXN0X3Rlc3RfZmFpbHVyZSk6IEZhaWxlZCBwYXRjaCBv
biBjbGVhbiB0cmVlLgorICAgICAgICAoSlNDRWFybHlXYXJuaW5nU3lzdGVtVGVzdC50ZXN0X2Zp
eCk6IFBhdGNoIHRoYXQgZml4ZXMgYWxsIHRyZWUgcmVkbmVzcy4KKyAgICAgICAgKEpTQ0Vhcmx5
V2FybmluZ1N5c3RlbVRlc3QudGVzdF9pbmVmZmVjdGl2ZV9wYXRjaCk6IFBhdGNoIHRoYXQgaGFz
IHNhbWUgZmFpbHVyZXMgYXMgdHJlZS4KKyAgICAgICAgKEpTQ0Vhcmx5V2FybmluZ1N5c3RlbVRl
c3QudGVzdF9wYXJ0aWFsbHlfZWZmZWN0aXZlX3BhdGNoKTogUGF0Y2ggZml4ZXMgc29tZSBmYWls
dXJlcyBidXQgYWRkcyBubyBuZXcgZmFpbHVyZXMuCisgICAgICAgIChKU0NFYXJseVdhcm5pbmdT
eXN0ZW1UZXN0LnRlc3RfZGlmZmVyZW50X3Rlc3RfZmFpbHVyZXNfaW5fcGF0Y2hfYW5kX3RyZWUp
OiBQYXRjaCBoYXMgc29tZSBmYWlsdXJlcyBub3QgaW4gdHJlZS4KKyAgICAgICAgKEpTQ0Vhcmx5
V2FybmluZ1N5c3RlbVRlc3QudGVzdF9maXJzdF9yZXN1bHRzX2NvdWxkX25vdF9iZV9yZWFkKTog
UGF0Y2ggcmVzdWx0cyBub3QgcmVhZGFibGUuCisgICAgICAgIChKU0NFYXJseVdhcm5pbmdTeXN0
ZW1UZXN0LnRlc3Rfc2Vjb25kX3Jlc3VsdHNfY291bGRfbm90X2JlX3JlYWQpOiBQYXRjaCByZXN1
bHRzIG5vdCByZWFkYWJsZSBvbiBzZWNvbmQgcnVuLgorICAgICAgICAoSlNDRWFybHlXYXJuaW5n
U3lzdGVtVGVzdC50ZXN0X2NsZWFuX3Jlc3VsdHNfY291bGRfbm90X2JlX3JlYWQpOiBSZXN1bHRz
IGZyb20gY2xlYW4gdHJlZSBub3QgcmVhZGFibGUuCisgICAgICAgIChKU0NFYXJseVdhcm5pbmdT
eXN0ZW1UZXN0LnRlc3RfZmxha3lfcmVzdWx0c19vbl9jbGVhbl90cmVlX3Bhc3MpOiBQYXRjaCBo
YXMgb25lIGZsYWtlIGFuZCBubyBmYWlsdXJlcy4KKyAgICAgICAgKEpTQ0Vhcmx5V2FybmluZ1N5
c3RlbVRlc3QudGVzdF9mbGFreV9yZXN1bHRzX29uX2NsZWFuX3RyZWVfcGFzc192Mik6IFBhdGNo
IGhhcyBvbmUgZmxha2UgYW5kIG5vIGZhaWx1cmVzLgorICAgICAgICAoSlNDRWFybHlXYXJuaW5n
U3lzdGVtVGVzdC50ZXN0X2ZsYWt5X3Jlc3VsdHNfb25fY2xlYW5fdHJlZV9mYWlsdXJlKTogUGF0
Y2ggaGFzIGZsYWtlcyBhbmQgZmFpbGVkIHRlc3RzLgorICAgICAgICAoSlNDRWFybHlXYXJuaW5n
U3lzdGVtVGVzdC50ZXN0X2ZsYWt5X3Jlc3VsdHNfb25fcmVkX3RyZWVfcGFzcyk6IFBhdGNoIGhh
cyBzYW1lIGZhaWx1cmVzIGFzIHRyZWUsIHBsdXMgYSBmbGFrZS4KKyAgICAgICAgKiBTY3JpcHRz
L3dlYmtpdHB5L3Rvb2wvYm90L2pzY3Rlc3RyZXN1bHRzcmVhZGVyLnB5OiBBZGRlZC4KKyAgICAg
ICAgKEpTQ1Rlc3RSZXN1bHRzUmVhZGVyKTogUmVhZHMgcmVzdWx0cyBmaWxlLgorICAgICAgICAo
SlNDVGVzdFJlc3VsdHNSZWFkZXIuX19pbml0X18pOiBTZXRzIGF0dHJpYnV0ZXMuCisgICAgICAg
IChKU0NUZXN0UmVzdWx0c1JlYWRlci5fcmVhZF9maWxlX2NvbnRlbnRzKTogUmVhZHMgZmlsZS4K
KyAgICAgICAgKEpTQ1Rlc3RSZXN1bHRzUmVhZGVyLnJlc3VsdHMpOiBSZWFkcyB0aGUgcmVzdWx0
cyBmaWxlIGFuZCByZXR1cm5zIGEgSlNDVGVzdFJlc3VsdHMgb2JqZWN0LgorICAgICAgICAqIFNj
cmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvcGF0Y2hhbmFseXNpc3Rhc2sucHk6CisgICAgICAgIChQ
YXRjaElzTm90QXBwbGljYWJsZSk6IEV4Y2VwdGlvbiBmb3Igd2hlbiBwYXRjaCBkb2Vzbid0IGhh
dmUgcmVsZXZhbnQgY2hhbmdlcy4KKyAgICAgICAgKFBhdGNoQW5hbHlzaXNUYXNrLl9jaGVja19w
YXRjaF9yZWxldmFuY2UpOiBBZGRlZC4KKyAgICAgICAgKFBhdGNoQW5hbHlzaXNUYXNrLl9idWls
ZCk6IENoZWNrIGZvciBKU0MuCisgICAgICAgIChQYXRjaEFuYWx5c2lzVGFzay5fYnVpbGRfd2l0
aG91dF9wYXRjaCk6IENoZWNrIGZvciBKU0MuCisgICAgICAgIChQYXRjaEFuYWx5c2lzVGFzay5f
dGVzdCk6IENoZWNrIGZvciBKU0MuCisgICAgICAgIChQYXRjaEFuYWx5c2lzVGFzay5fYnVpbGRf
YW5kX3Rlc3Rfd2l0aG91dF9wYXRjaCk6IENoZWNrIGZvciBKU0MuCisgICAgICAgIChQYXRjaEFu
YWx5c2lzVGFzay5fcmV0cnlfanNjX3Rlc3RzKTogUmV0cnkgbG9naWMgZm9yIEpTQyBFV1MuCisg
ICAgICAgIChQYXRjaEFuYWx5c2lzVGFzay5fcmV0cnlfbGF5b3V0X3Rlc3RzKTogUmV0cnkgbG9n
aWMgZm9yIGxheW91dCB0ZXN0cyBFV1MuCisgICAgICAgIChQYXRjaEFuYWx5c2lzVGFzay5fdGVz
dF9wYXRjaCk6IEFkZCByZXRyeSBsb2dpYyBmb3IgSlNDLgorICAgICAgICAqIFNjcmlwdHMvd2Vi
a2l0cHkvdG9vbC9jb21tYW5kcy9kb3dubG9hZC5weToKKyAgICAgICAgKENoZWNrUGF0Y2hSZWxl
dmFuY2UpOiBBZGQgY2hlY2stcGF0Y2gtcmVsZXZhbmNlIGNvbW1hbmQuCisgICAgICAgICogU2Ny
aXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Vhcmx5d2FybmluZ3N5c3RlbS5weToKKyAgICAg
ICAgKEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtLl9jcmVhdGVfdGFzayk6IEFic3RyYWN0IG91
dCB0byBlbmFibGUgbW9ja2luZy4KKyAgICAgICAgKEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVt
LmJlZ2luX3dvcmtfcXVldWUpOiBVc2UgSlNDVGVzdFJlc3VsdHNSZWFkZXIgbm90IExheW91dFRl
c3RSZXN1bHRzUmVhZGVyIGluIEpTQyBFV1MuCisgICAgICAgIChBYnN0cmFjdEVhcmx5V2Fybmlu
Z1N5c3RlbS5yZXZpZXdfcGF0Y2gpOiBIYW5kbGUgUGF0Y2hJc0FwcGxpY2FibGUuCisgICAgICAg
IChBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbS50ZXN0X3Jlc3VsdHMpOiBfbGF5b3V0X3Rlc3Rf
cmVzdWx0c19yZWFkZXIgLT4gX3Rlc3RfcmVzdWx0c19yZWFkZXIuCisgICAgICAgIChBYnN0cmFj
dEVhcmx5V2FybmluZ1N5c3RlbS5hcmNoaXZlX2xhc3RfdGVzdF9yZXN1bHRzKTogX2xheW91dF90
ZXN0X3Jlc3VsdHNfcmVhZGVyIC0+IF90ZXN0X3Jlc3VsdHNfcmVhZGVyLgorICAgICAgICAoQWJz
dHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0uZ3JvdXApOiBUaGlzIGF0dHJpYnV0ZSBkZXRlcm1pbmVz
IHRoZSB0eXBlIG9mIEVXUyAoZWcuIEpTQykuCisgICAgICAgIChBYnN0cmFjdEVhcmx5V2Fybmlu
Z1N5c3RlbS5sb2FkX2V3c19jbGFzc2VzKTogQWRkIF9ncm91cCwgYW5kIG1ha2UgY2xhc3NlcyBv
ZiB0eXBlIGNscyB0byBlbmFibGUgbW9ja2luZy4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5
L3Rvb2wvY29tbWFuZHMvZWFybHl3YXJuaW5nc3lzdGVtX3VuaXR0ZXN0LnB5OgorICAgICAgICAo
VGVzdEVXUyk6IFNhbXBsZSBsYXlvdXQgdGVzdCBFV1MgY2xhc3MgdXNlZCBmb3IgdW5pdCB0ZXN0
aW5nLgorICAgICAgICAoVGVzdEpTQ0VXUyk6IFNhbXBsZSBKU0MgRVdTIGNsYXNzIHVzZWQgZm9y
IHVuaXQgdGVzdGluZy4KKyAgICAgICAgKEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtVGVzdC50
ZXN0X2ZhaWxpbmdfdGVzdHNfbWVzc2FnZS5UZXN0RVdTKTogQWRkIF9ncm91cC4KKyAgICAgICAg
KEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtVGVzdC50ZXN0X2ZhaWxpbmdfanNjX3Rlc3RzX21l
c3NhZ2UuVGVzdEVXUyk6IEFkZGVkIHRlc3QgZm9yIGpzYyBmYWlsdXJlcyBtZXNzYWdlLgorICAg
ICAgICAoQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW1UZXN0KTogQWRkIF9ncm91cCB2YXJpYWJs
ZS4KKyAgICAgICAgKEVhcmx5V2FybmluZ1N5c3RlbVRlc3QuX2RlZmF1bHRfZXhwZWN0ZWRfbG9n
cyk6IEFkZCBjaGVjay1wYXRjaC1yZWxldmFuY2Ugc3RlcCwgaW5jb25jbHVzaXZlIGxvZ3MsIGFu
ZCBncm91cC4KKyAgICAgICAgKEVhcmx5V2FybmluZ1N5c3RlbVRlc3QuX3Rlc3RfZXdzKTogQWRk
IGxvZ3NfYXJlX2NvbmNsdXNpdmUgb3B0aW9uIHRvIHBhc3MgdGhyb3VnaCB0byBkZWZhdWx0X2V4
cGVjdGVkX2xvZ3MoKS4KKyAgICAgICAgKEVhcmx5V2FybmluZ1N5c3RlbVRlc3QudGVzdF9pbmNv
bmNsdXNpdmVfdGVzdF9yZXN1bHRzKTogVGVzdCBub3QgcmVtb3ZpbmcgcGF0Y2ggZnJvbSBxdWV1
ZSBpZiBub3QgY29uY2x1c2l2ZS4KKyAgICAgICAgKE1vY2tBYnN0cmFjdEVhcmx5V2FybmluZ1N5
c3RlbUZvckluY29uY2x1c2l2ZUpTQ1Jlc3VsdHMpOiBBZGRlZC4KKyAgICAgICAgKE1vY2tBYnN0
cmFjdEVhcmx5V2FybmluZ1N5c3RlbUZvckluY29uY2x1c2l2ZUpTQ1Jlc3VsdHMuX3Rlc3RfcGF0
Y2gpOiBTaW11bGF0ZXMgcnVubmluZyB0ZXN0cyBidXQgbm90IGdldHRpbmcgYSBjb25jbHVzaXZl
IHJlc3VsdC4KKyAgICAgICAgKE1vY2tFYXJseVdhcm5pbmdTeXN0ZW1UYXNrRm9ySW5jb25jbHVz
aXZlSlNDUmVzdWx0cyk6IEFkZGVkLgorICAgICAgICAoTW9ja0Vhcmx5V2FybmluZ1N5c3RlbVRh
c2tGb3JJbmNvbmNsdXNpdmVKU0NSZXN1bHRzLl9jcmVhdGVfdGFzayk6IFVzZSBNb2NrRWFybHlX
YXJuaW5nU3lzdGVtVGFzayAobm90IEVhcmx5V2FybmluZ1N5c3RlbVRhc2spLgorICAgICAgICAq
IFNjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9fX2luaXRfXy5weTogQWRkIENoZWNrUGF0Y2hS
ZWxldmFuY2UgaW1wb3J0LgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9i
dWlsZC5weToKKyAgICAgICAgKEJ1aWxkLm9wdGlvbnMpOiBDaGVjayBmb3IgSlNDLgorICAgICAg
ICAoQnVpbGQuYnVpbGQpOiBDaGVjayBmb3IgSlNDLgorICAgICAgICAoQnVpbGQucnVuKTogQ2hl
Y2sgZm9yIEpTQy4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvY2hlY2tw
YXRjaHJlbGV2YW5jZS5weTogQWRkZWQuCisgICAgICAgIChDaGVja1BhdGNoUmVsZXZhbmNlKTog
QWRkZWQuCisgICAgICAgIChDaGVja1BhdGNoUmVsZXZhbmNlLl9kb2VzX2NvbnRhaW5fY2hhbmdl
X2luX3BhdGhzKTogQWJzdHJhY3QgZnVuY3Rpb24gdG8gcGVyZm9ybSByZWdleCBtYXRjaGluZy4K
KyAgICAgICAgKENoZWNrUGF0Y2hSZWxldmFuY2UucnVuKTogQ2hlY2sgaWYgY2hhbmdlZCBmaWxl
cyBpbiBwYXRjaCBiZWxvbmcgaW4gY2VydGFpbiBmb2xkZXJzLgorICAgICAgICAqIFNjcmlwdHMv
d2Via2l0cHkvdG9vbC9zdGVwcy9vcHRpb25zLnB5OgorICAgICAgICAoT3B0aW9ucyk6IEFkZCAt
LWdyb3VwIGNvbW1hbmQgbGluZSBvcHRpb24uCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90
b29sL3N0ZXBzL3J1bnRlc3RzLnB5OgorICAgICAgICAoUnVuVGVzdHMub3B0aW9ucyk6IEFkZCBn
cm91cC4KKyAgICAgICAgKFJ1blRlc3RzLnJ1bik6IENoZWNrIGZvciBKU0MuCisgICAgICAgIChS
dW5UZXN0cy5fcnVuX3dlYmtpdF90ZXN0cyk6IENoZWNrIGZvciBKU0MuCisgICAgICAgIChSdW5U
ZXN0cyk6IEFkZCBfZ3JvdXAgYXR0cmlidXRlLgorICAgICAgICAoUnVuVGVzdHMuX3J1bl9qYXZh
c2NyaXB0Y29yZV90ZXN0cyk6IE5ldy4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wv
c3RlcHMvc3RlcHNfdW5pdHRlc3QucHk6IFVuaXQgdGVzdHMuCisKIDIwMTctMDItMTAgIEpvc2Vw
aCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAogICAgICAgICBbUmVzb3VyY2UgVGlt
aW5nXSBFbmFibGUgUmVzb3VyY2UgVGltaW5nIGJ5IGRlZmF1bHQgaW4gVGVzdHMKZGlmZiAtLWdp
dCBhL1Rvb2xzL1F1ZXVlU3RhdHVzU2VydmVyL2NvbmZpZy9tZXNzYWdlcy5weSBiL1Rvb2xzL1F1
ZXVlU3RhdHVzU2VydmVyL2NvbmZpZy9tZXNzYWdlcy5weQppbmRleCA2Zjk1NTI5MzJjZTQyOGRk
MzZmZTUwOTBlOTU3NzdiYzQ4ZDY1MWU1Li5hMDkzNGUyMjI5ZDU2OTc2NWRlNWFlNDE1MWU0MThk
YTNjZTBkYmIwIDEwMDY0NAotLS0gYS9Ub29scy9RdWV1ZVN0YXR1c1NlcnZlci9jb25maWcvbWVz
c2FnZXMucHkKKysrIGIvVG9vbHMvUXVldWVTdGF0dXNTZXJ2ZXIvY29uZmlnL21lc3NhZ2VzLnB5
CkBAIC0xLDQgKzEsNSBAQAogIyBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTI3LDYgKzI4
LDcgQEAKICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KIAogIyBUaGVzZSBtdXN0IGJlIGluIHN5bmMgd2l0aCB3ZWJr
aXQtcGF0Y2gncyBBYnN0cmFjdFF1ZXVlLgorc2tpcF9zdGF0dXMgPSAiU2tpcCIKIHBhc3Nfc3Rh
dHVzID0gIlBhc3MiCiBmYWlsX3N0YXR1cyA9ICJGYWlsIgogZXJyb3Jfc3RhdHVzID0gIkVycm9y
IgpkaWZmIC0tZ2l0IGEvVG9vbHMvUXVldWVTdGF0dXNTZXJ2ZXIvY29uZmlnL3F1ZXVlcy5weSBi
L1Rvb2xzL1F1ZXVlU3RhdHVzU2VydmVyL2NvbmZpZy9xdWV1ZXMucHkKaW5kZXggMzQxZGQwODNh
ZGZiYjg5MDcxOThiZWVkNWVhYjIxOTMwMjY5ODNmNS4uMGEyMmZmMzJjOGYwM2M4NzE0OTY5ODc3
NGY2NDM4ZWQ1ZmFiYWRjNyAxMDA2NDQKLS0tIGEvVG9vbHMvUXVldWVTdGF0dXNTZXJ2ZXIvY29u
ZmlnL3F1ZXVlcy5weQorKysgYi9Ub29scy9RdWV1ZVN0YXR1c1NlcnZlci9jb25maWcvcXVldWVz
LnB5CkBAIC0xLDQgKzEsNCBAQAotIyBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMTQsIDIwMTcgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogIyBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CkBAIC0zNiw2ICszNiw3IEBAIGFsbF9x
dWV1ZV9uYW1lcyA9IFsKICAgICAiZ3RrLXdrMi1ld3MiLAogICAgICJpb3MtZXdzIiwKICAgICAi
aW9zLXNpbS1ld3MiLAorICAgICJqc2MtZXdzIiwKICAgICAibWFjLWV3cyIsCiAgICAgIm1hYy13
azItZXdzIiwKICAgICAibWFjLWRlYnVnLWV3cyIsCmRpZmYgLS1naXQgYS9Ub29scy9RdWV1ZVN0
YXR1c1NlcnZlci9oYW5kbGVycy9zdGF0dXNidWJibGUucHkgYi9Ub29scy9RdWV1ZVN0YXR1c1Nl
cnZlci9oYW5kbGVycy9zdGF0dXNidWJibGUucHkKaW5kZXggYzgwNTE0ZmY4Nzg5ZWY2OTRiOTk1
NzE0ZTJlYjVkOTZmOGJjYTc4Mi4uMzhiYWMwMzk5ZTMwNDM3MzA2NzE1MjdlNDBkMzRmMTUzZGJh
YzRmMCAxMDA2NDQKLS0tIGEvVG9vbHMvUXVldWVTdGF0dXNTZXJ2ZXIvaGFuZGxlcnMvc3RhdHVz
YnViYmxlLnB5CisrKyBiL1Rvb2xzL1F1ZXVlU3RhdHVzU2VydmVyL2hhbmRsZXJzL3N0YXR1c2J1
YmJsZS5weQpAQCAtMSw0ICsxLDUgQEAKICMgQ29weXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogIyBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC0x
ODIsMTEgKzE4MywxNSBAQCBjbGFzcyBTdGF0dXNCdWJibGUod2ViYXBwLlJlcXVlc3RIYW5kbGVy
KToKICAgICAgICAgcmV0dXJuIGJ1YmJsZQogCiAgICAgZGVmIF9zaG91bGRfc2hvd19idWJibGVf
Zm9yKHNlbGYsIGF0dGFjaG1lbnQsIHF1ZXVlKToKLSAgICAgICAgICMgQW55IHBlbmRpbmcgcXVl
dWUgaXMgc2hvd24uCisgICAgICAgICMgQW55IHBlbmRpbmcgcXVldWUgaXMgc2hvd24uCiAgICAg
ICAgIGlmIGF0dGFjaG1lbnQucG9zaXRpb25faW5fcXVldWUocXVldWUpOgogICAgICAgICAgICAg
cmV0dXJuIFRydWUKLSAgICAgICAgIyBFV1MgcXVldWVzIGFyZSBhbHNvIHNob3duIHdoZW4gY29t
cGxldGUuCi0gICAgICAgIHJldHVybiBib29sKHF1ZXVlLmlzX2V3cygpIGFuZCBhdHRhY2htZW50
LnN0YXR1c19mb3JfcXVldWUocXVldWUpKQorCisgICAgICAgIGlmIG5vdCBxdWV1ZS5pc19ld3Mo
KToKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgICAgIHN0YXR1cyA9IGF0dGFjaG1l
bnQuc3RhdHVzX2Zvcl9xdWV1ZShxdWV1ZSkKKyAgICAgICAgcmV0dXJuIGJvb2woc3RhdHVzIGFu
ZCBub3Qgc3RhdHVzLmRpZF9za2lwKCkpCiAKICAgICBkZWYgX2J1aWxkX2J1YmJsZXNfZm9yX2F0
dGFjaG1lbnQoc2VsZiwgYXR0YWNobWVudCk6CiAgICAgICAgIHNob3dfc3VibWl0X3RvX2V3cyA9
IFRydWUKZGlmZiAtLWdpdCBhL1Rvb2xzL1F1ZXVlU3RhdHVzU2VydmVyL21vZGVsL3F1ZXVlcy5w
eSBiL1Rvb2xzL1F1ZXVlU3RhdHVzU2VydmVyL21vZGVsL3F1ZXVlcy5weQppbmRleCA1NzJkY2Uw
YjAwMTg5ZWViNzUwNmI1ZjRlM2IzNWEwNWM0MTkyNDk1Li42NzRkYTI5ZTk1NmZlMjc4MzcwOTFi
MDQ3ZWUyOTY4MmRmZWZmYTQ2IDEwMDY0NAotLS0gYS9Ub29scy9RdWV1ZVN0YXR1c1NlcnZlci9t
b2RlbC9xdWV1ZXMucHkKKysrIGIvVG9vbHMvUXVldWVTdGF0dXNTZXJ2ZXIvbW9kZWwvcXVldWVz
LnB5CkBAIC03OCw2ICs3OCw3IEBAIGNsYXNzIFF1ZXVlKG9iamVjdCk6CiAgICAgICAgIGRpc3Bs
YXlfbmFtZSA9IGRpc3BsYXlfbmFtZS5yZXBsYWNlKCJXazIiLCAiV0syIikKICAgICAgICAgZGlz
cGxheV9uYW1lID0gZGlzcGxheV9uYW1lLnJlcGxhY2UoIkV3cyIsICJFV1MiKQogICAgICAgICBk
aXNwbGF5X25hbWUgPSBkaXNwbGF5X25hbWUucmVwbGFjZSgiSW9zIiwgImlPUyIpCisgICAgICAg
IGRpc3BsYXlfbmFtZSA9IGRpc3BsYXlfbmFtZS5yZXBsYWNlKCJKc2MiLCAiSlNDIikKICAgICAg
ICAgcmV0dXJuIGRpc3BsYXlfbmFtZQogCiAgICAgX2Rhc2hfcmVnZXhwID0gcmUuY29tcGlsZSgi
LSIpCmRpZmYgLS1naXQgYS9Ub29scy9RdWV1ZVN0YXR1c1NlcnZlci9tb2RlbC9xdWV1ZXN0YXR1
cy5weSBiL1Rvb2xzL1F1ZXVlU3RhdHVzU2VydmVyL21vZGVsL3F1ZXVlc3RhdHVzLnB5CmluZGV4
IGQ5YmI2ZjY1NjM3NTQwYzcwYjk3ODFhZWQyNWI4ODIzZDliMzgzOTYuLjk3MWU2ZGM1ODE0YWQ0
Yjg4NDhjMzc0YzVkMGNiY2JiYmU1Yjg2ZjQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1F1ZXVlU3RhdHVz
U2VydmVyL21vZGVsL3F1ZXVlc3RhdHVzLnB5CisrKyBiL1Rvb2xzL1F1ZXVlU3RhdHVzU2VydmVy
L21vZGVsL3F1ZXVlc3RhdHVzLnB5CkBAIC0xLDQgKzEsNSBAQAogIyBDb3B5cmlnaHQgKEMpIDIw
MTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDE3
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucyBhcmUKQEAgLTQwLDMgKzQxLDYgQEAgY2xhc3MgUXVldWVTdGF0dXMoZGIuTW9kZWwsIFF1
ZXVlUHJvcGVydHlNaXhpbik6CiAgICAgbWVzc2FnZSA9IGRiLlN0cmluZ1Byb3BlcnR5KG11bHRp
bGluZT1UcnVlKQogICAgIGRhdGUgPSBkYi5EYXRlVGltZVByb3BlcnR5KGF1dG9fbm93X2FkZD1U
cnVlKQogICAgIHJlc3VsdHNfZmlsZSA9IGRiLkJsb2JQcm9wZXJ0eSgpCisKKyAgICBkZWYgZGlk
X3NraXAoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLm1lc3NhZ2UgPT0gbWVzc2FnZXMuc2tp
cF9zdGF0dXMKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNr
b3V0L3NjbS9zY21fbW9jay5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNr
b3V0L3NjbS9zY21fbW9jay5weQppbmRleCBjNWQxMGZjYjE4OWIwYThiNTE5ZmE1NTYyNTAyMmE3
MGM0ODZkNDRiLi45Nzc0ZWM4YWU4NzNhMWIwYjgzNzYwNzE4MDY2NzkyMTU4MDllZWVjIDEwMDY0
NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja291dC9zY20vc2NtX21v
Y2sucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hlY2tvdXQvc2NtL3Nj
bV9tb2NrLnB5CkBAIC0xLDQgKzEsNSBAQAogIyBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAg
LTM3LDYgKzM4LDcgQEAgY2xhc3MgTW9ja1NDTShvYmplY3QpOgogICAgICAgICBzZWxmLmFkZGVk
X3BhdGhzID0gc2V0KCkKICAgICAgICAgc2VsZi5fZmlsZXN5c3RlbSA9IGZpbGVzeXN0ZW0gb3Ig
TW9ja0ZpbGVTeXN0ZW0oKQogICAgICAgICBzZWxmLl9leGVjdXRpdmUgPSBleGVjdXRpdmUgb3Ig
TW9ja0V4ZWN1dGl2ZSgpCisgICAgICAgIHNlbGYuX21vY2tDaGFuZ2VkRmlsZXMgPSBbIk1vY2tG
aWxlMSJdCiAKICAgICBkZWYgYWRkKHNlbGYsIGRlc3RpbmF0aW9uX3BhdGgpOgogICAgICAgICBz
ZWxmLmFkZF9saXN0KFtkZXN0aW5hdGlvbl9wYXRoXSkKQEAgLTcxLDcgKzczLDcgQEAgY2xhc3Mg
TW9ja1NDTShvYmplY3QpOgogICAgICAgICByZXR1cm4gc2VsZi5fZmlsZXN5c3RlbS5qb2luKHNl
bGYuY2hlY2tvdXRfcm9vdCwgKmNvbXBzKQogCiAgICAgZGVmIGNoYW5nZWRfZmlsZXMoc2VsZiwg
Z2l0X2NvbW1pdD1Ob25lKToKLSAgICAgICAgcmV0dXJuIFsiTW9ja0ZpbGUxIl0KKyAgICAgICAg
cmV0dXJuIHNlbGYuX21vY2tDaGFuZ2VkRmlsZXMKIAogICAgIGRlZiBjaGFuZ2VkX2ZpbGVzX2Zv
cl9yZXZpc2lvbihzZWxmLCByZXZpc2lvbik6CiAgICAgICAgIHJldHVybiBbIk1vY2tGaWxlMSJd
CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvZXdzLmpz
b24gYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvZXdzLmpzb24KaW5kZXgg
MzVkNDk4NWFiMGY5M2QxMjdiMzcyMWU0NjAxY2Q2ZDg5ZGZjY2YzYy4uZTUzNDBmZTVjM2MyMWFl
ODFhZDFlZjdlMDNmN2ZiODFmMzgzOWNmZiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9jb21tb24vY29uZmlnL2V3cy5qc29uCisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
Y29tbW9uL2NvbmZpZy9ld3MuanNvbgpAQCAtNTAsNSArNTAsMTEgQEAKICAgICAgICAgInBvcnQi
OiAibWFjIiwKICAgICAgICAgIm5hbWUiOiAibWFjLTMyYml0LWV3cyIsCiAgICAgICAgICJhcmNo
aXRlY3R1cmUiOiAiaTM4NiIKKyAgICB9LAorICAgICJKU0MgRVdTIjogeworICAgICAgICAicG9y
dCI6ICJtYWMiLAorICAgICAgICAibmFtZSI6ICJqc2MtZXdzIiwKKyAgICAgICAgImdyb3VwIjog
ImpzYyIsCisgICAgICAgICJydW5UZXN0cyI6IHRydWUKICAgICB9CiB9CmRpZmYgLS1naXQgYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvcG9ydHMucHkgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvcG9ydHMucHkKaW5kZXggYTBkNTBkY2I2ZWEwYjVm
ZGUwYjNjMTdlZjE1OWNlYWZlZTFhMmU5OC4uMTgzMzkzM2VhOGYzZDFjNzIzZjQ3MDRiYWZiY2U1
OGI3Y2YxMzNiOCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29u
ZmlnL3BvcnRzLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9w
b3J0cy5weQpAQCAtMSw2ICsxLDYgQEAKICMgQ29weXJpZ2h0IChDKSAyMDA5LCBHb29nbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIyBDb3B5cmlnaHQgKEMpIDIwMTMgTm9raWEgQ29ycG9y
YXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgotIyBDb3B5cmlnaHQgKEMpIDIwMTUg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMTUsIDIw
MTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zIGFyZQpAQCAtOTUsMjQgKzk1LDMwIEBAIGNsYXNzIERlcHJlY2F0ZWRQb3J0KG9iamVj
dCk6CiAgICAgZGVmIHByZXBhcmVfY2hhbmdlbG9nX2NvbW1hbmQoc2VsZik6CiAgICAgICAgIHJl
dHVybiBzZWxmLnNjcmlwdF9zaGVsbF9jb21tYW5kKCJwcmVwYXJlLUNoYW5nZUxvZyIpCiAKLSAg
ICBkZWYgYnVpbGRfd2Via2l0X2NvbW1hbmQoc2VsZiwgYnVpbGRfc3R5bGU9Tm9uZSk6Ci0gICAg
ICAgIGNvbW1hbmQgPSBzZWxmLnNjcmlwdF9zaGVsbF9jb21tYW5kKCJidWlsZC13ZWJraXQiKQor
ICAgIGRlZiBfYXBwZW5kX2J1aWxkX3N0eWxlX2ZsYWcoc2VsZiwgY29tbWFuZCwgYnVpbGRfc3R5
bGUpOgogICAgICAgICBpZiBidWlsZF9zdHlsZSA9PSAiZGVidWciOgogICAgICAgICAgICAgY29t
bWFuZC5hcHBlbmQoIi0tZGVidWciKQotICAgICAgICBpZiBidWlsZF9zdHlsZSA9PSAicmVsZWFz
ZSI6CisgICAgICAgIGVsaWYgYnVpbGRfc3R5bGUgPT0gInJlbGVhc2UiOgogICAgICAgICAgICAg
Y29tbWFuZC5hcHBlbmQoIi0tcmVsZWFzZSIpCiAgICAgICAgIHJldHVybiBjb21tYW5kCiAKLSAg
ICBkZWYgcnVuX2phdmFzY3JpcHRjb3JlX3Rlc3RzX2NvbW1hbmQoc2VsZik6Ci0gICAgICAgIHJl
dHVybiBzZWxmLnNjcmlwdF9zaGVsbF9jb21tYW5kKCJydW4tamF2YXNjcmlwdGNvcmUtdGVzdHMi
KQorICAgIGRlZiBidWlsZF93ZWJraXRfY29tbWFuZChzZWxmLCBidWlsZF9zdHlsZT1Ob25lKToK
KyAgICAgICAgY29tbWFuZCA9IHNlbGYuc2NyaXB0X3NoZWxsX2NvbW1hbmQoImJ1aWxkLXdlYmtp
dCIpCisgICAgICAgIHJldHVybiBzZWxmLl9hcHBlbmRfYnVpbGRfc3R5bGVfZmxhZyhjb21tYW5k
LCBidWlsZF9zdHlsZSkKKworICAgIGRlZiBidWlsZF9qc2NfY29tbWFuZChzZWxmLCBidWlsZF9z
dHlsZT1Ob25lKToKKyAgICAgICAgY29tbWFuZCA9IHNlbGYuc2NyaXB0X3NoZWxsX2NvbW1hbmQo
ImJ1aWxkLWpzYyIpCisgICAgICAgIHJldHVybiBzZWxmLl9hcHBlbmRfYnVpbGRfc3R5bGVfZmxh
Zyhjb21tYW5kLCBidWlsZF9zdHlsZSkKKworICAgIGRlZiBydW5famF2YXNjcmlwdGNvcmVfdGVz
dHNfY29tbWFuZChzZWxmLCBidWlsZF9zdHlsZT1Ob25lKToKKyAgICAgICAgY29tbWFuZCA9IHNl
bGYuc2NyaXB0X3NoZWxsX2NvbW1hbmQoInJ1bi1qYXZhc2NyaXB0Y29yZS10ZXN0cyIpCisgICAg
ICAgIGNvbW1hbmQuYXBwZW5kKCItLW5vLWZhaWwtZmFzdCIpCisgICAgICAgIGNvbW1hbmQuYXBw
ZW5kKCItLWpzb24tb3V0cHV0PWpzY190ZXN0X3Jlc3VsdHMuanNvbiIpCisgICAgICAgIHJldHVy
biBzZWxmLl9hcHBlbmRfYnVpbGRfc3R5bGVfZmxhZyhjb21tYW5kLCBidWlsZF9zdHlsZSkKIAog
ICAgIGRlZiBydW5fd2Via2l0X3Rlc3RzX2NvbW1hbmQoc2VsZiwgYnVpbGRfc3R5bGU9Tm9uZSk6
CiAgICAgICAgIGNvbW1hbmQgPSBzZWxmLnNjcmlwdF9zaGVsbF9jb21tYW5kKCJydW4td2Via2l0
LXRlc3RzIikKLSAgICAgICAgaWYgYnVpbGRfc3R5bGUgPT0gImRlYnVnIjoKLSAgICAgICAgICAg
IGNvbW1hbmQuYXBwZW5kKCItLWRlYnVnIikKLSAgICAgICAgaWYgYnVpbGRfc3R5bGUgPT0gInJl
bGVhc2UiOgotICAgICAgICAgICAgY29tbWFuZC5hcHBlbmQoIi0tcmVsZWFzZSIpCi0gICAgICAg
IHJldHVybiBjb21tYW5kCisgICAgICAgIHJldHVybiBzZWxmLl9hcHBlbmRfYnVpbGRfc3R5bGVf
ZmxhZyhjb21tYW5kLCBidWlsZF9zdHlsZSkKIAogICAgIGRlZiBydW5fcHl0aG9uX3VuaXR0ZXN0
c19jb21tYW5kKHNlbGYpOgogICAgICAgICByZXR1cm4gc2VsZi5zY3JpcHRfc2hlbGxfY29tbWFu
ZCgidGVzdC13ZWJraXRweSIpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2Nv
bW1vbi9jb25maWcvcG9ydHNfbW9jay5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9u
L2NvbmZpZy9wb3J0c19tb2NrLnB5CmluZGV4IDYxNzQzZGViYjRlYmVlMzc1NmJhN2MyMGYwMTQ4
MjM1NDBkMmRjYTYuLmNhMWIxOGEzMTA2ODQyM2JkY2UwN2NkZWI3ZDdkN2QxOTlmNDAwYWIgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9wb3J0c19tb2Nr
LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9wb3J0c19tb2Nr
LnB5CkBAIC0xLDQgKzEsNSBAQAogIyBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTQ5LDcg
KzUwLDcgQEAgY2xhc3MgTW9ja1BvcnQob2JqZWN0KToKICAgICBkZWYgcnVuX3BlcmxfdW5pdHRl
c3RzX2NvbW1hbmQoc2VsZik6CiAgICAgICAgIHJldHVybiBbJ21vY2stdGVzdC13ZWJraXRwZXJs
J10KIAotICAgIGRlZiBydW5famF2YXNjcmlwdGNvcmVfdGVzdHNfY29tbWFuZChzZWxmKToKKyAg
ICBkZWYgcnVuX2phdmFzY3JpcHRjb3JlX3Rlc3RzX2NvbW1hbmQoc2VsZiwgYnVpbGRfc3R5bGU9
Tm9uZSk6CiAgICAgICAgIHJldHVybiBbJ21vY2stcnVuLWphdmFjcmlwdGNvcmUtdGVzdHMnXQog
CiAgICAgZGVmIHJ1bl93ZWJraXRfdGVzdHNfY29tbWFuZChzZWxmLCBidWlsZF9zdHlsZT1Ob25l
KToKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9wb3J0
c191bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9wb3J0
c191bml0dGVzdC5weQppbmRleCAwOGQ1NDUyMzZkYTM3MDNlOTI4ZjFjZWVkMWRkOTEwMmQ5Yjg2
MjJlLi4xNmNkN2Y5MjgyNTFiYmM5OTZjYjY0NmU0MzU5ZDczZmRiNTM1YjI2IDEwMDY0NAotLS0g
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvcG9ydHNfdW5pdHRlc3QucHkK
KysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL3BvcnRzX3VuaXR0ZXN0
LnB5CkBAIC0xLDQgKzEsNSBAQAogIyBDb3B5cmlnaHQgKGMpIDIwMDksIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogIyBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC0zOSw2
ICs0MCwxMCBAQCBjbGFzcyBEZXByZWNhdGVkUG9ydFRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgog
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE1hY1BvcnQoKS5idWlsZF93ZWJraXRfY29tbWFuZChi
dWlsZF9zdHlsZT0iZGVidWciKSwgRGVwcmVjYXRlZFBvcnQoKS5zY3JpcHRfc2hlbGxfY29tbWFu
ZCgiYnVpbGQtd2Via2l0IikgKyBbIi0tZGVidWciXSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChNYWNQb3J0KCkuYnVpbGRfd2Via2l0X2NvbW1hbmQoYnVpbGRfc3R5bGU9InJlbGVhc2UiKSwg
RGVwcmVjYXRlZFBvcnQoKS5zY3JpcHRfc2hlbGxfY29tbWFuZCgiYnVpbGQtd2Via2l0IikgKyBb
Ii0tcmVsZWFzZSJdKQogCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTWFjUG9ydCgpLmJ1aWxk
X2pzY19jb21tYW5kKCksIERlcHJlY2F0ZWRQb3J0KCkuc2NyaXB0X3NoZWxsX2NvbW1hbmQoImJ1
aWxkLWpzYyIpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE1hY1BvcnQoKS5idWlsZF9qc2Nf
Y29tbWFuZChidWlsZF9zdHlsZT0icmVsZWFzZSIpLCBEZXByZWNhdGVkUG9ydCgpLnNjcmlwdF9z
aGVsbF9jb21tYW5kKCJidWlsZC1qc2MiKSArIFsiLS1yZWxlYXNlIl0pCisgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoTWFjUG9ydCgpLmJ1aWxkX2pzY19jb21tYW5kKGJ1aWxkX3N0eWxlPSJkZWJ1
ZyIpLCBEZXByZWNhdGVkUG9ydCgpLnNjcmlwdF9zaGVsbF9jb21tYW5kKCJidWlsZC1qc2MiKSAr
IFsiLS1kZWJ1ZyJdKQorCiAgICAgZGVmIHRlc3RfZ3RrX3drMl9wb3J0KHNlbGYpOgogICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKEd0a1dLMlBvcnQoKS5mbGFnKCksICItLXBvcnQ9Z3RrLXdrMiIp
CiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoR3RrV0syUG9ydCgpLnJ1bl93ZWJraXRfdGVzdHNf
Y29tbWFuZCgpLCBEZXByZWNhdGVkUG9ydCgpLnNjcmlwdF9zaGVsbF9jb21tYW5kKCJydW4td2Vi
a2l0LXRlc3RzIikgKyBbIi0tZ3RrIl0pCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2NvbW1vbi9uZXQvYWJzdHJhY3R0ZXN0cmVzdWx0cy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvY29tbW9uL25ldC9hYnN0cmFjdHRlc3RyZXN1bHRzLnB5Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMwYTc4
NDViYzNmM2Q5MzJkMTRhOTFjMjkzZTczZmZjOTQyMmJlOTMKLS0tIC9kZXYvbnVsbAorKysgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvYWJzdHJhY3R0ZXN0cmVzdWx0cy5weQpA
QCAtMCwwICsxLDMzIEBACisjIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMg
MS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
IyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyMgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
IElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorIyBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMCisjIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisjIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisjIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksCisjIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisK
K2ltcG9ydCBsb2dnaW5nCisKK19sb2cgPSBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVfXykKKwor
CitjbGFzcyBBYnN0cmFjdFRlc3RSZXN1bHRzKG9iamVjdCk6CisgICAgZGVmIGZhaWxpbmdfdGVz
dHMoc2VsZik6CisgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoInN1YmNsYXNzZXMg
bXVzdCBpbXBsZW1lbnQiKQorCisgICAgZGVmIGRpZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xpbWl0
KHNlbGYpOgorICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKCJzdWJjbGFzc2VzIG11
c3QgaW1wbGVtZW50IikKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9u
L25ldC9qc2N0ZXN0cmVzdWx0cy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25l
dC9qc2N0ZXN0cmVzdWx0cy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MjdjMmUwOWM2ZGQwMDBkNWMzNTU1MDcz
ZWU1Y2EzNDEwOGE2ZWZlCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9jb21tb24vbmV0L2pzY3Rlc3RyZXN1bHRzLnB5CkBAIC0wLDAgKzEsNzcgQEAKKyMgQ29weXJp
Z2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMg
Mi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
CisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IKKyMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyMgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworaW1wb3J0IGpzb24KK2ltcG9ydCBsb2dn
aW5nCisKK2Zyb20gd2Via2l0cHkuY29tbW9uLm5ldC5hYnN0cmFjdHRlc3RyZXN1bHRzIGltcG9y
dCBBYnN0cmFjdFRlc3RSZXN1bHRzCisKK19sb2cgPSBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVf
XykKKworCitjbGFzcyBKU0NUZXN0UmVzdWx0cyhBYnN0cmFjdFRlc3RSZXN1bHRzKToKKyAgICBk
ZWYgX19pbml0X18oc2VsZiwgYWxsX2FwaV90ZXN0c19wYXNzZWQsIHN0cmVzc190ZXN0X2ZhaWx1
cmVzKToKKyAgICAgICAgc2VsZi5fYWxsX2FwaV90ZXN0c19wYXNzZWQgPSBhbGxfYXBpX3Rlc3Rz
X3Bhc3NlZAorICAgICAgICBzZWxmLl9zdHJlc3NfdGVzdF9mYWlsdXJlcyA9IHN0cmVzc190ZXN0
X2ZhaWx1cmVzCisKKyAgICAgICAgc2VsZi5fZmFpbGluZ190ZXN0X25hbWVzID0gc3RyZXNzX3Rl
c3RfZmFpbHVyZXNbOl0KKyAgICAgICAgaWYgbm90IHNlbGYuX2FsbF9hcGlfdGVzdHNfcGFzc2Vk
OgorICAgICAgICAgICAgc2VsZi5fZmFpbGluZ190ZXN0X25hbWVzLmFwcGVuZCgnYXBpVGVzdHMn
KQorCisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIGludGVyc2VjdGlvbihjbHMsIGZpcnN0LCBz
ZWNvbmQpOgorICAgICAgICBpbnRlcnNlY3Rpb25fYXBpX3Rlc3RzX3Bhc3NlZCA9IGZpcnN0Ll9h
bGxfYXBpX3Rlc3RzX3Bhc3NlZCBvciBzZWNvbmQuX2FsbF9hcGlfdGVzdHNfcGFzc2VkCisgICAg
ICAgIGludGVyc2VjdGlvbl9zdHJlc3NfdGVzdF9mYWlsdXJlcyA9IGxpc3Qoc2V0KGZpcnN0Ll9z
dHJlc3NfdGVzdF9mYWlsdXJlcykgJiBzZXQoc2Vjb25kLl9zdHJlc3NfdGVzdF9mYWlsdXJlcykp
CisgICAgICAgIHJldHVybiBjbHMoaW50ZXJzZWN0aW9uX2FwaV90ZXN0c19wYXNzZWQsIGludGVy
c2VjdGlvbl9zdHJlc3NfdGVzdF9mYWlsdXJlcykKKworICAgIEBjbGFzc21ldGhvZAorICAgIGRl
ZiByZXN1bHRzX2Zyb21fc3RyaW5nKGNscywgc3RyaW5nKToKKyAgICAgICAgaWYgbm90IHN0cmlu
ZzoKKyAgICAgICAgICAgIHJldHVybiBOb25lCisKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAg
cGFyc2VkX3Jlc3VsdHMgPSBqc29uLmxvYWRzKHN0cmluZykKKyAgICAgICAgZXhjZXB0IFZhbHVl
RXJyb3I6CisgICAgICAgICAgICBfbG9nLmVycm9yKCdJbnZhbGlkIEpTT04gcmVzdWx0cycpCisg
ICAgICAgICAgICByZXR1cm4gTm9uZQorCisgICAgICAgIGlmICdhbGxBcGlUZXN0c1Bhc3NlZCcg
bm90IGluIHBhcnNlZF9yZXN1bHRzIG9yICdzdHJlc3NUZXN0RmFpbHVyZXMnIG5vdCBpbiBwYXJz
ZWRfcmVzdWx0czoKKyAgICAgICAgICAgIHJldHVybiBOb25lCisKKyAgICAgICAgcmV0dXJuIGNs
cyhwYXJzZWRfcmVzdWx0c1snYWxsQXBpVGVzdHNQYXNzZWQnXSwgcGFyc2VkX3Jlc3VsdHNbJ3N0
cmVzc1Rlc3RGYWlsdXJlcyddKQorCisgICAgZGVmIGVxdWFscyhzZWxmLCBvdGhlcik6CisgICAg
ICAgIHJldHVybiAoc2VsZi5fYWxsX2FwaV90ZXN0c19wYXNzZWQgPT0gb3RoZXIuX2FsbF9hcGlf
dGVzdHNfcGFzc2VkIGFuZAorICAgICAgICAgICAgICAgc2V0KHNlbGYuX3N0cmVzc190ZXN0X2Zh
aWx1cmVzKSA9PSBzZXQob3RoZXIuX3N0cmVzc190ZXN0X2ZhaWx1cmVzKSkKKworICAgIGRlZiBp
c19zdWJzZXQoc2VsZiwgb3RoZXIpOgorICAgICAgICByZXR1cm4gc2V0KHNlbGYuX2ZhaWxpbmdf
dGVzdF9uYW1lcykgPD0gc2V0KG90aGVyLl9mYWlsaW5nX3Rlc3RfbmFtZXMpCisKKyAgICBkZWYg
YWxsX3Bhc3NlZChzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX2FsbF9hcGlfdGVzdHNfcGFz
c2VkIGFuZCBub3Qgc2VsZi5fc3RyZXNzX3Rlc3RfZmFpbHVyZXMKKworICAgIGRlZiBmYWlsaW5n
X3Rlc3RzKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5fZmFpbGluZ190ZXN0X25hbWVzCisK
KyAgICAjIE5vIGRlZmluZWQgZmFpbHVyZSBsaW1pdCBmb3IgSlNDLgorICAgIGRlZiBkaWRfZXhj
ZWVkX3Rlc3RfZmFpbHVyZV9saW1pdChzZWxmKToKKyAgICAgICAgcmV0dXJuIEZhbHNlCmRpZmYg
LS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvanNjdGVzdHJlc3VsdHNf
dW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvanNjdGVzdHJl
c3VsdHNfdW5pdHRlc3QucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGNmMTE0OWFmY2Q2M2I1ZmJhNjY4MzE0OWJj
YTgzN2FjNmVhYjkxNgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
Y29tbW9uL25ldC9qc2N0ZXN0cmVzdWx0c191bml0dGVzdC5weQpAQCAtMCwwICsxLDc1IEBACisj
IENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisj
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisjIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SCisjIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisjIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisj
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK2ltcG9ydCB1bml0dGVzdAor
Citmcm9tIHdlYmtpdHB5LmNvbW1vbi5uZXQuanNjdGVzdHJlc3VsdHMgaW1wb3J0IEpTQ1Rlc3RS
ZXN1bHRzCisKKworY2xhc3MgSlNDVGVzdFJlc3VsdHNUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToK
KyAgICBkZWYgdGVzdF9yZXN1bHRzX2Zyb21fc3RyaW5nKHNlbGYpOgorICAgICAgICBub25lX2l0
ZW0gPSBOb25lCisgICAgICAgIGVtcHR5X2pzb24gPSAnJworICAgICAgICBpbnZhbGlkX2pzb24g
PSAneyJhbGxBcGlUZXN0c1Bhc3NlZCI6JworICAgICAgICBpbmNvbXBsZXRlX2pzb25fdjEgPSAn
eyJhbGxBcGlUZXN0c1Bhc3NlZCI6IHRydWV9JworICAgICAgICBpbmNvbXBsZXRlX2pzb25fdjIg
PSAneyJzdHJlc3NUZXN0RmFpbHVyZXMiOltdfScKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChO
b25lLCBKU0NUZXN0UmVzdWx0cy5yZXN1bHRzX2Zyb21fc3RyaW5nKG5vbmVfaXRlbSkpCisgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgSlNDVGVzdFJlc3VsdHMucmVzdWx0c19mcm9tX3N0
cmluZyhlbXB0eV9qc29uKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCBKU0NUZXN0
UmVzdWx0cy5yZXN1bHRzX2Zyb21fc3RyaW5nKGludmFsaWRfanNvbikpCisgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoTm9uZSwgSlNDVGVzdFJlc3VsdHMucmVzdWx0c19mcm9tX3N0cmluZyhpbmNv
bXBsZXRlX2pzb25fdjEpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIEpTQ1Rlc3RS
ZXN1bHRzLnJlc3VsdHNfZnJvbV9zdHJpbmcoaW5jb21wbGV0ZV9qc29uX3YyKSkKKworICAgICAg
ICBub19mYWlsdXJlc19zdHJpbmcgPSAneyJhbGxBcGlUZXN0c1Bhc3NlZCI6IHRydWUsICJzdHJl
c3NUZXN0RmFpbHVyZXMiOltdfScKKyAgICAgICAgbm9fZmFpbHVyZXNfcmVzdWx0cyA9IEpTQ1Rl
c3RSZXN1bHRzKFRydWUsIFtdKQorICAgICAgICBzZWxmLmFzc2VydFRydWUobm9fZmFpbHVyZXNf
cmVzdWx0cy5lcXVhbHMoSlNDVGVzdFJlc3VsdHMucmVzdWx0c19mcm9tX3N0cmluZyhub19mYWls
dXJlc19zdHJpbmcpKSkKKworICAgICAgICBhcGlfdGVzdF9mYWlsdXJlc19zdHJpbmcgPSAneyJh
bGxBcGlUZXN0c1Bhc3NlZCI6IGZhbHNlLCAic3RyZXNzVGVzdEZhaWx1cmVzIjpbXX0nCisgICAg
ICAgIGFwaV90ZXN0X2ZhaWx1cmVzX3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhGYWxzZSwgW10p
CisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShhcGlfdGVzdF9mYWlsdXJlc19yZXN1bHRzLmVxdWFs
cyhKU0NUZXN0UmVzdWx0cy5yZXN1bHRzX2Zyb21fc3RyaW5nKGFwaV90ZXN0X2ZhaWx1cmVzX3N0
cmluZykpKQorCisgICAgICAgIG1hbnlfZmFpbHVyZXNfc3RyaW5nID0gJ3siYWxsQXBpVGVzdHNQ
YXNzZWQiOiBmYWxzZSwgInN0cmVzc1Rlc3RGYWlsdXJlcyI6WyJlczYueWFtbC9lczYvdHlwZWRf
YXJyYXlzX0ludDE2QXJyYXkuanMuZGVmYXVsdCIsICJlczYueWFtbC9lczYvdHlwZWRfYXJyYXlz
X0ludDhBcnJheS5qcy5kZWZhdWx0Il19JworICAgICAgICBtYW55X2ZhaWx1cmVzX3Jlc3VsdHMg
PSBKU0NUZXN0UmVzdWx0cyhGYWxzZSwgWyJlczYueWFtbC9lczYvdHlwZWRfYXJyYXlzX0ludDE2
QXJyYXkuanMuZGVmYXVsdCIsICJlczYueWFtbC9lczYvdHlwZWRfYXJyYXlzX0ludDhBcnJheS5q
cy5kZWZhdWx0Il0pCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtYW55X2ZhaWx1cmVzX3Jlc3Vs
dHMuZXF1YWxzKEpTQ1Rlc3RSZXN1bHRzLnJlc3VsdHNfZnJvbV9zdHJpbmcobWFueV9mYWlsdXJl
c19zdHJpbmcpKSkKKworICAgICAgICBzZWxmLmFzc2VydEZhbHNlKG5vX2ZhaWx1cmVzX3Jlc3Vs
dHMgPT0gYXBpX3Rlc3RfZmFpbHVyZXNfcmVzdWx0cykKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxz
ZShhcGlfdGVzdF9mYWlsdXJlc19yZXN1bHRzID09IG1hbnlfZmFpbHVyZXNfcmVzdWx0cykKKwor
ICAgIGRlZiB0ZXN0X2ludGVyc2VjdGlvbl9hcGlfdGVzdHMoc2VsZik6CisgICAgICAgIHJlc3Vs
dHMxID0gSlNDVGVzdFJlc3VsdHMoRmFsc2UsIFtdKQorICAgICAgICByZXN1bHRzMiA9IEpTQ1Rl
c3RSZXN1bHRzKFRydWUsIFtdKQorCisgICAgICAgIGV4cGVjdGVkX2ludGVyc2VjdGlvbiA9IEpT
Q1Rlc3RSZXN1bHRzKFRydWUsIFtdKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoZXhwZWN0ZWRf
aW50ZXJzZWN0aW9uLmVxdWFscyhKU0NUZXN0UmVzdWx0cy5pbnRlcnNlY3Rpb24ocmVzdWx0czEs
IHJlc3VsdHMyKSkpCisKKyAgICBkZWYgdGVzdF9pbnRlcnNlY3Rpb25fc3RyZXNzX3Rlc3RzKHNl
bGYpOgorICAgICAgICByZXN1bHRzMSA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFsnZmFpbHVyZTEn
LCAnZmFpbHVyZTInXSkKKyAgICAgICAgcmVzdWx0czIgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBb
J2ZhaWx1cmUxJywgJ2ZhaWx1cmUzJ10pCisKKyAgICAgICAgZXhwZWN0ZWRfaW50ZXJzZWN0aW9u
ID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgWydmYWlsdXJlMSddKQorICAgICAgICBzZWxmLmFzc2Vy
dFRydWUoZXhwZWN0ZWRfaW50ZXJzZWN0aW9uLmVxdWFscyhKU0NUZXN0UmVzdWx0cy5pbnRlcnNl
Y3Rpb24ocmVzdWx0czEsIHJlc3VsdHMyKSkpCisKKyAgICBkZWYgdGVzdF9pbnRlcnNlY3Rpb25f
Z2VuZXJhbF9jYXNlKHNlbGYpOgorICAgICAgICByZXN1bHRzMSA9IEpTQ1Rlc3RSZXN1bHRzKFRy
dWUsIFsnZmFpbHVyZTEnLCAnZmFpbHVyZTInXSkKKyAgICAgICAgcmVzdWx0czIgPSBKU0NUZXN0
UmVzdWx0cyhGYWxzZSwgWydmYWlsdXJlMSddKQorCisgICAgICAgIGV4cGVjdGVkX2ludGVyc2Vj
dGlvbiA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFsnZmFpbHVyZTEnXSkKKyAgICAgICAgc2VsZi5h
c3NlcnRUcnVlKGV4cGVjdGVkX2ludGVyc2VjdGlvbi5lcXVhbHMoSlNDVGVzdFJlc3VsdHMuaW50
ZXJzZWN0aW9uKHJlc3VsdHMxLCByZXN1bHRzMikpKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9jb21tb24vbmV0L2xheW91dHRlc3RyZXN1bHRzLnB5IGIvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9jb21tb24vbmV0L2xheW91dHRlc3RyZXN1bHRzLnB5CmluZGV4IDdmYjY3YzE2
YjdlMWZkYjBhNjQ2MDdiNTUzMTRlMjcwMGZhMTJlOWEuLjcwNjE2ZWRiMjQwNWNlZWM1MTNmZjg0
ODViNzU1YmNhOTI4NzNjMGUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29t
bW9uL25ldC9sYXlvdXR0ZXN0cmVzdWx0cy5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2NvbW1vbi9uZXQvbGF5b3V0dGVzdHJlc3VsdHMucHkKQEAgLTI4LDYgKzI4LDcgQEAKIAogaW1w
b3J0IGxvZ2dpbmcKIAorZnJvbSB3ZWJraXRweS5jb21tb24ubmV0LmFic3RyYWN0dGVzdHJlc3Vs
dHMgaW1wb3J0IEFic3RyYWN0VGVzdFJlc3VsdHMKIGZyb20gd2Via2l0cHkuY29tbW9uLm5ldC5y
ZXN1bHRzanNvbnBhcnNlciBpbXBvcnQgUGFyc2VkSlNPTlJlc3VsdHMKIGZyb20gd2Via2l0cHku
dGhpcmRwYXJ0eS5CZWF1dGlmdWxTb3VwIGltcG9ydCBCZWF1dGlmdWxTb3VwLCBTb3VwU3RyYWlu
ZXIKIGZyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLm1vZGVscyBpbXBvcnQgdGVzdF9yZXN1bHRz
CkBAIC00NSw3ICs0Niw3IEBAIGRlZiBwYXRoX2Zvcl9sYXlvdXRfdGVzdCh0ZXN0X25hbWUpOgog
IyBGSVhNRTogVGhpcyBzaG91bGQgYmUgdW5pZmllZCB3aXRoIFJlc3VsdHNTdW1tYXJ5IG9yIG90
aGVyIE5SV1QgbGF5b3V0IHRlc3RzIGNvZGUKICMgaW4gdGhlIGxheW91dF90ZXN0cyBwYWNrYWdl
LgogIyBUaGlzIGRvZXNuJ3QgYmVsb25nIGluIGNvbW1vbi5uZXQsIGJ1dCB3ZSBkb24ndCBoYXZl
IGEgYmV0dGVyIHBsYWNlIGZvciBpdCB5ZXQuCi1jbGFzcyBMYXlvdXRUZXN0UmVzdWx0cyhvYmpl
Y3QpOgorY2xhc3MgTGF5b3V0VGVzdFJlc3VsdHMoQWJzdHJhY3RUZXN0UmVzdWx0cyk6CiAgICAg
QGNsYXNzbWV0aG9kCiAgICAgZGVmIHJlc3VsdHNfZnJvbV9zdHJpbmcoY2xzLCBzdHJpbmcpOgog
ICAgICAgICBpZiBub3Qgc3RyaW5nOgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9wb3J0L2Jhc2UucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvYmFzZS5weQppbmRl
eCAwMWU4MmMyZDY4YTBhNTViYTc3MmRkZDM3ZjZjNmQyMjg5ZTliNTg3Li42YTYxNDJhN2MxNzlm
MzNhNzNkMzcyMTkwM2UxYWQwMTNiOTZkNGFiIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L3BvcnQvYmFzZS5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvYmFz
ZS5weQpAQCAtODA4LDYgKzgwOCw5IEBAIGNsYXNzIFBvcnQob2JqZWN0KToKICAgICAgICAgaW52
ZXJzZSBvZiByZWxhdGl2ZV90ZXN0X2ZpbGVuYW1lKCkuIiIiCiAgICAgICAgIHJldHVybiBzZWxm
Ll9maWxlc3lzdGVtLmpvaW4oc2VsZi5sYXlvdXRfdGVzdHNfZGlyKCksIHRlc3RfbmFtZSkKIAor
ICAgIGRlZiBqc2NfcmVzdWx0c19kaXJlY3Rvcnkoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxm
Ll9idWlsZF9wYXRoKCkKKwogICAgIGRlZiByZXN1bHRzX2RpcmVjdG9yeShzZWxmKToKICAgICAg
ICAgIiIiQWJzb2x1dGUgcGF0aCB0byB0aGUgcGxhY2UgdG8gc3RvcmUgdGhlIHRlc3QgcmVzdWx0
cyAodXNlcyAtLXJlc3VsdHMtZGlyZWN0b3J5KS4iIiIKICAgICAgICAgaWYgbm90IHNlbGYuX3Jl
c3VsdHNfZGlyZWN0b3J5OgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29s
L2JvdC9lYXJseXdhcm5pbmdzeXN0ZW10YXNrLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90
b29sL2JvdC9lYXJseXdhcm5pbmdzeXN0ZW10YXNrLnB5CmluZGV4IGZjMzA4YjQzZDFkMTcyYWI3
M2IwZTNhZjgwZDFiMTM5ZGQzYzEwMzIuLmVjZmFjZDAxMWJlODgzYjRiYjFlNWM3ZDdkZmZkYmRj
YjQ1OWRlMzUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvZWFy
bHl3YXJuaW5nc3lzdGVtdGFzay5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wv
Ym90L2Vhcmx5d2FybmluZ3N5c3RlbXRhc2sucHkKQEAgLTEsNCArMSw1IEBACiAjIENvcHlyaWdo
dCAoYykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQg
KEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zIGFyZQpAQCAtMjYsNyArMjcsNyBAQAogIyAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKICMgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KIAotZnJvbSB3ZWJraXRweS50b29sLmJvdC5wYXRjaGFuYWx5c2lzdGFzayBpbXBv
cnQgUGF0Y2hBbmFseXNpc1Rhc2ssIFBhdGNoQW5hbHlzaXNUYXNrRGVsZWdhdGUsIFVuYWJsZVRv
QXBwbHlQYXRjaCwgUGF0Y2hJc05vdFZhbGlkCitmcm9tIHdlYmtpdHB5LnRvb2wuYm90LnBhdGNo
YW5hbHlzaXN0YXNrIGltcG9ydCBQYXRjaEFuYWx5c2lzVGFzaywgUGF0Y2hBbmFseXNpc1Rhc2tE
ZWxlZ2F0ZSwgVW5hYmxlVG9BcHBseVBhdGNoLCBQYXRjaElzTm90VmFsaWQsIFBhdGNoSXNOb3RB
cHBsaWNhYmxlCiAKIAogY2xhc3MgRWFybHlXYXJuaW5nU3lzdGVtVGFza0RlbGVnYXRlKFBhdGNo
QW5hbHlzaXNUYXNrRGVsZWdhdGUpOgpAQCAtNTgsNiArNTksOCBAQCBjbGFzcyBFYXJseVdhcm5p
bmdTeXN0ZW1UYXNrKFBhdGNoQW5hbHlzaXNUYXNrKToKICAgICAgICAgICAgIHJldHVybiBGYWxz
ZQogICAgICAgICBpZiBub3Qgc2VsZi5fYXBwbHkoKToKICAgICAgICAgICAgIHJhaXNlIFVuYWJs
ZVRvQXBwbHlQYXRjaChzZWxmLl9wYXRjaCkKKyAgICAgICAgaWYgbm90IHNlbGYuX2NoZWNrX3Bh
dGNoX3JlbGV2YW5jZSgpOgorICAgICAgICAgICAgcmFpc2UgUGF0Y2hJc05vdEFwcGxpY2FibGUo
c2VsZi5fcGF0Y2gpCiAgICAgICAgIGlmIG5vdCBzZWxmLl9idWlsZCgpOgogICAgICAgICAgICAg
aWYgbm90IHNlbGYuX2J1aWxkX3dpdGhvdXRfcGF0Y2goKToKICAgICAgICAgICAgICAgICByZXR1
cm4gRmFsc2UKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvanNj
ZXdzX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9qc2Nld3Nf
dW5pdHRlc3QucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTZhZWYzZGFlODAxMWZhYjU3NWYyYzU0MzExMDAxNGU5
N2E2YjIwYQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9i
b3QvanNjZXdzX3VuaXR0ZXN0LnB5CkBAIC0wLDAgKzEsMjE4IEBACisjIENvcHlyaWdodCAoQykg
MjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJyBBTkQKKyMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUgorIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisjIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisjIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSCisjIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisjIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK2ltcG9ydCBsb2dnaW5nCitpbXBvcnQgdW5pdHRlc3QK
KworZnJvbSB3ZWJraXRweS5jb21tb24ubmV0LmpzY3Rlc3RyZXN1bHRzIGltcG9ydCBKU0NUZXN0
UmVzdWx0cworZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmV4ZWN1dGl2ZSBpbXBvcnQgU2Ny
aXB0RXJyb3IKK2Zyb20gd2Via2l0cHkudG9vbC5ib3QucGF0Y2hhbmFseXNpc3Rhc2sgaW1wb3J0
ICoKK2Zyb20gd2Via2l0cHkudG9vbC5jb21tYW5kcy5lYXJseXdhcm5pbmdzeXN0ZW0gaW1wb3J0
IEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtCitmcm9tIHdlYmtpdHB5LnRvb2wubW9ja3Rvb2wg
aW1wb3J0IE1vY2tUb29sCisKK19sb2cgPSBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVfXykKKwor
CitjbGFzcyBNb2NrUGF0Y2hBbmFseXNpc1Rhc2soUGF0Y2hBbmFseXNpc1Rhc2spOgorICAgIGRl
ZiBfX2luaXRfXyhzZWxmLCBkZWxlZ2F0ZSwgcGF0Y2gsIHBhdGNoZXNfcGFzc2VkX2FsbF90ZXN0
cyk6CisgICAgICAgIHNlbGYuX2RlbGVnYXRlID0gZGVsZWdhdGUKKyAgICAgICAgc2VsZi5fcGF0
Y2ggPSBwYXRjaAorICAgICAgICBzZWxmLl9zY3JpcHRfZXJyb3IgPSBOb25lCisgICAgICAgIHNl
bGYuX3Jlc3VsdHNfYXJjaGl2ZV9mcm9tX3BhdGNoX3Rlc3RfcnVuID0gTm9uZQorICAgICAgICBz
ZWxmLl9yZXN1bHRzX2Zyb21fcGF0Y2hfdGVzdF9ydW4gPSBOb25lCisgICAgICAgIHNlbGYuZXJy
b3IgPSBOb25lCisgICAgICAgIHNlbGYuX3BhdGNoZXNfcGFzc2VkX2FsbF90ZXN0cyA9IHBhdGNo
ZXNfcGFzc2VkX2FsbF90ZXN0cworICAgICAgICBzZWxmLl90ZXN0X3J1bl9jb3VudCA9IDAKKyAg
ICAgICAgc2VsZi5mYWlsdXJlX3N0YXR1c19pZCA9IDAKKworICAgIGRlZiBfdGVzdChzZWxmKToK
KyAgICAgICAgc2VsZi5fdGVzdF9ydW5fY291bnQgKz0gMQorCisgICAgICAgIGlmIHNlbGYuX3Bh
dGNoZXNfcGFzc2VkX2FsbF90ZXN0cy5wb3AoKSA9PSBUcnVlOgorICAgICAgICAgICAgcmV0dXJu
IFRydWUKKyAgICAgICAgc2VsZi5fc2NyaXB0X2Vycm9yID0gU2NyaXB0RXJyb3IoJ1JlZ3Jlc3Np
b24gdGVzdCcpCisgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgZGVmIF9idWlsZF9hbmRfdGVz
dF93aXRob3V0X3BhdGNoKHNlbGYpOgorICAgICAgICBzZWxmLl90ZXN0X3J1bl9jb3VudCArPSAx
CisgICAgICAgIHJldHVybiBUcnVlCisKKyAgICBkZWYgdmFsaWRhdGUoc2VsZik6CisgICAgICAg
IHJldHVybiBUcnVlCisKKyAgICBkZWYgdGVzdF9ydW5fY291bnQoc2VsZik6CisgICAgICAgIHJl
dHVybiBzZWxmLl90ZXN0X3J1bl9jb3VudAorCisKKyMgVGhpcyBpcyB0aGUgZGVsZWdhdGUgdG8g
YmUgdXNlZCB3aXRoIE1vY2tQYXRjaEFuYWx5c2lzVGFzaywgYWJvdmUuCitjbGFzcyBNb2NrSlND
RWFybHlXYXJuaW5nU3lzdGVtKEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtKToKKyAgICBkZWYg
X19pbml0X18oc2VsZiwgZmlyc3RfdGVzdF9yZXN1bHRzLCBzZWNvbmRfdGVzdF9yZXN1bHRzLCBj
bGVhbl90ZXN0X3Jlc3VsdHMpOgorICAgICAgICBBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbS5f
X2luaXRfXyhzZWxmKQorICAgICAgICBzZWxmLl9ncm91cCA9ICdqc2MnCisgICAgICAgIHNlbGYu
X3Jlc3VsdHNfaW5fb3JkZXIgPSBbY2xlYW5fdGVzdF9yZXN1bHRzLCBzZWNvbmRfdGVzdF9yZXN1
bHRzLCBmaXJzdF90ZXN0X3Jlc3VsdHNdCisKKyAgICBkZWYgdGVzdF9yZXN1bHRzKHNlbGYpOgor
ICAgICAgICByZXR1cm4gc2VsZi5fcmVzdWx0c19pbl9vcmRlci5wb3AoKQorCisKK2NsYXNzIEpT
Q0Vhcmx5V2FybmluZ1N5c3RlbVRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgorICAgIGRlZiBfcmVz
dWx0c19pbmRpY2F0ZV9hbGxfcGFzc2VkKHNlbGYsIHJlc3VsdHMpOgorICAgICAgICBpZiByZXN1
bHRzID09IE5vbmU6CisgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgcmV0dXJuIHJl
c3VsdHMuYWxsX3Bhc3NlZCgpCisKKyAgICBkZWYgX2NyZWF0ZV90YXNrKHNlbGYsIGZpcnN0X3Rl
c3RfcmVzdWx0cywgc2Vjb25kX3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKToKKyAg
ICAgICAgcXVldWUgPSBNb2NrSlNDRWFybHlXYXJuaW5nU3lzdGVtKGZpcnN0X3Rlc3RfcmVzdWx0
cywgc2Vjb25kX3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKQorICAgICAgICB0b29s
ID0gTW9ja1Rvb2wobG9nX2V4ZWN1dGl2ZT1UcnVlKQorICAgICAgICBwYXRjaCA9IHRvb2wuYnVn
cy5mZXRjaF9hdHRhY2htZW50KDEwMDAwKQorICAgICAgICBwYXRjaGVzX3Bhc3NlZF9hbGxfdGVz
dHMgPSBtYXAoc2VsZi5fcmVzdWx0c19pbmRpY2F0ZV9hbGxfcGFzc2VkLCBbc2Vjb25kX3Rlc3Rf
cmVzdWx0cywgZmlyc3RfdGVzdF9yZXN1bHRzXSkKKyAgICAgICAgcmV0dXJuIE1vY2tQYXRjaEFu
YWx5c2lzVGFzayhxdWV1ZSwgcGF0Y2gsIHBhdGNoZXNfcGFzc2VkX2FsbF90ZXN0cykKKworICAg
IGRlZiB0ZXN0X3N1Y2Nlc3NfY2FzZShzZWxmKToKKyAgICAgICAgZmlyc3RfdGVzdF9yZXN1bHRz
ID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgW10pCisgICAgICAgIHNlY29uZF90ZXN0X3Jlc3VsdHMg
PSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbXSkKKyAgICAgICAgY2xlYW5fdGVzdF9yZXN1bHRzID0g
SlNDVGVzdFJlc3VsdHMoVHJ1ZSwgW10pCisgICAgICAgIHRhc2sgPSBzZWxmLl9jcmVhdGVfdGFz
ayhmaXJzdF90ZXN0X3Jlc3VsdHMsIHNlY29uZF90ZXN0X3Jlc3VsdHMsIGNsZWFuX3Rlc3RfcmVz
dWx0cykKKworICAgICAgICByZXR1cm5fdmFsdWUgPSB0YXNrLl90ZXN0X3BhdGNoKCkKKyAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbCh0YXNrLnRlc3RfcnVuX2NvdW50KCksIDEpCisgICAgICAgIHNl
bGYuYXNzZXJ0VHJ1ZShyZXR1cm5fdmFsdWUpCisKKyAgICBkZWYgdGVzdF90ZXN0X2ZhaWx1cmUo
c2VsZik6CisgICAgICAgIGZpcnN0X3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUs
IFsnRmFpbC5qcyddKQorICAgICAgICBzZWNvbmRfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3Vs
dHMoVHJ1ZSwgWydGYWlsLmpzJ10pCisgICAgICAgIGNsZWFuX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rl
c3RSZXN1bHRzKFRydWUsIFtdKQorICAgICAgICB0YXNrID0gc2VsZi5fY3JlYXRlX3Rhc2soZmly
c3RfdGVzdF9yZXN1bHRzLCBzZWNvbmRfdGVzdF9yZXN1bHRzLCBjbGVhbl90ZXN0X3Jlc3VsdHMp
CisKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhTY3JpcHRFcnJvcik6CisgICAgICAg
ICAgICByZXR1cm5fdmFsdWUgPSB0YXNrLl90ZXN0X3BhdGNoKCkKKyAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbCh0YXNrLnRlc3RfcnVuX2NvdW50KCksIDMpCisKKyAgICBkZWYgdGVzdF9maXgoc2Vs
Zik6CisgICAgICAgIGZpcnN0X3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFtd
KQorICAgICAgICBzZWNvbmRfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgW10p
CisgICAgICAgIGNsZWFuX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFsnRmFp
bC5qcyddKQorICAgICAgICB0YXNrID0gc2VsZi5fY3JlYXRlX3Rhc2soZmlyc3RfdGVzdF9yZXN1
bHRzLCBzZWNvbmRfdGVzdF9yZXN1bHRzLCBjbGVhbl90ZXN0X3Jlc3VsdHMpCisKKyAgICAgICAg
cmV0dXJuX3ZhbHVlID0gdGFzay5fdGVzdF9wYXRjaCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwodGFzay50ZXN0X3J1bl9jb3VudCgpLCAxKQorICAgICAgICBzZWxmLmFzc2VydFRydWUocmV0
dXJuX3ZhbHVlKQorCisgICAgZGVmIHRlc3RfaW5lZmZlY3RpdmVfcGF0Y2goc2VsZik6CisgICAg
ICAgIGZpcnN0X3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKEZhbHNlLCBbJ2ZhaWx1cmUx
LmpzJywgJ2ZhaWx1cmUyLmpzJ10pCisgICAgICAgIHNlY29uZF90ZXN0X3Jlc3VsdHMgPSBKU0NU
ZXN0UmVzdWx0cyhGYWxzZSwgWydmYWlsdXJlMS5qcycsICdmYWlsdXJlMi5qcyddKQorICAgICAg
ICBjbGVhbl90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhGYWxzZSwgWydmYWlsdXJlMS5q
cycsICdmYWlsdXJlMi5qcyddKQorICAgICAgICB0YXNrID0gc2VsZi5fY3JlYXRlX3Rhc2soZmly
c3RfdGVzdF9yZXN1bHRzLCBzZWNvbmRfdGVzdF9yZXN1bHRzLCBjbGVhbl90ZXN0X3Jlc3VsdHMp
CisKKyAgICAgICAgcmV0dXJuX3ZhbHVlID0gdGFzay5fdGVzdF9wYXRjaCgpCisgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwodGFzay50ZXN0X3J1bl9jb3VudCgpLCAzKQorICAgICAgICBzZWxmLmFz
c2VydFRydWUocmV0dXJuX3ZhbHVlKQorCisgICAgZGVmIHRlc3RfcGFydGlhbGx5X2VmZmVjdGl2
ZV9wYXRjaChzZWxmKToKKyAgICAgICAgZmlyc3RfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3Vs
dHMoVHJ1ZSwgWydmYWlsdXJlMi5qcyddKQorICAgICAgICBzZWNvbmRfdGVzdF9yZXN1bHRzID0g
SlNDVGVzdFJlc3VsdHMoVHJ1ZSwgWydmYWlsdXJlMi5qcyddKQorICAgICAgICBjbGVhbl90ZXN0
X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhGYWxzZSwgWydmYWlsdXJlMS5qcycsICdmYWlsdXJl
Mi5qcyddKQorICAgICAgICB0YXNrID0gc2VsZi5fY3JlYXRlX3Rhc2soZmlyc3RfdGVzdF9yZXN1
bHRzLCBzZWNvbmRfdGVzdF9yZXN1bHRzLCBjbGVhbl90ZXN0X3Jlc3VsdHMpCisKKyAgICAgICAg
cmV0dXJuX3ZhbHVlID0gdGFzay5fdGVzdF9wYXRjaCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwodGFzay50ZXN0X3J1bl9jb3VudCgpLCAzKQorICAgICAgICBzZWxmLmFzc2VydFRydWUocmV0
dXJuX3ZhbHVlKQorCisgICAgZGVmIHRlc3RfZGlmZmVyZW50X3Rlc3RfZmFpbHVyZXNfaW5fcGF0
Y2hfYW5kX3RyZWUoc2VsZik6CisgICAgICAgIGZpcnN0X3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RS
ZXN1bHRzKEZhbHNlLCBbXSkKKyAgICAgICAgc2Vjb25kX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RS
ZXN1bHRzKEZhbHNlLCBbXSkKKyAgICAgICAgY2xlYW5fdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJl
c3VsdHMoVHJ1ZSwgWydmYWlsdXJlMS5qcycsICdmYWlsdXJlMi5qcyddKQorICAgICAgICB0YXNr
ID0gc2VsZi5fY3JlYXRlX3Rhc2soZmlyc3RfdGVzdF9yZXN1bHRzLCBzZWNvbmRfdGVzdF9yZXN1
bHRzLCBjbGVhbl90ZXN0X3Jlc3VsdHMpCisKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNl
cyhTY3JpcHRFcnJvcik6CisgICAgICAgICAgICByZXR1cm5fdmFsdWUgPSB0YXNrLl90ZXN0X3Bh
dGNoKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0YXNrLnRlc3RfcnVuX2NvdW50KCksIDMp
CisKKyAgICBkZWYgdGVzdF9maXJzdF9yZXN1bHRzX2NvdWxkX25vdF9iZV9yZWFkKHNlbGYpOgor
ICAgICAgICBmaXJzdF90ZXN0X3Jlc3VsdHMgPSBOb25lCisgICAgICAgIHNlY29uZF90ZXN0X3Jl
c3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbXSkKKyAgICAgICAgY2xlYW5fdGVzdF9yZXN1
bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgW10pCisgICAgICAgIHRhc2sgPSBzZWxmLl9jcmVh
dGVfdGFzayhmaXJzdF90ZXN0X3Jlc3VsdHMsIHNlY29uZF90ZXN0X3Jlc3VsdHMsIGNsZWFuX3Rl
c3RfcmVzdWx0cykKKworICAgICAgICByZXR1cm5fdmFsdWUgPSB0YXNrLl90ZXN0X3BhdGNoKCkK
KyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0YXNrLnRlc3RfcnVuX2NvdW50KCksIDEpCisgICAg
ICAgIHNlbGYuYXNzZXJ0RmFsc2UocmV0dXJuX3ZhbHVlKQorCisgICAgZGVmIHRlc3Rfc2Vjb25k
X3Jlc3VsdHNfY291bGRfbm90X2JlX3JlYWQoc2VsZik6CisgICAgICAgIGZpcnN0X3Rlc3RfcmVz
dWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKEZhbHNlLCBbJ2ZhaWx1cmUxLmpzJywgJ2ZhaWx1cmUyLmpz
J10pCisgICAgICAgIHNlY29uZF90ZXN0X3Jlc3VsdHMgPSBOb25lCisgICAgICAgIGNsZWFuX3Rl
c3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFtdKQorICAgICAgICB0YXNrID0gc2Vs
Zi5fY3JlYXRlX3Rhc2soZmlyc3RfdGVzdF9yZXN1bHRzLCBzZWNvbmRfdGVzdF9yZXN1bHRzLCBj
bGVhbl90ZXN0X3Jlc3VsdHMpCisKKyAgICAgICAgcmV0dXJuX3ZhbHVlID0gdGFzay5fdGVzdF9w
YXRjaCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGFzay50ZXN0X3J1bl9jb3VudCgpLCAy
KQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKHJldHVybl92YWx1ZSkKKworICAgIGRlZiB0ZXN0
X2NsZWFuX3Jlc3VsdHNfY291bGRfbm90X2JlX3JlYWQoc2VsZik6CisgICAgICAgIGZpcnN0X3Rl
c3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFsnZmFpbHVyZTIuanMnXSkKKyAgICAg
ICAgc2Vjb25kX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFsnZmFpbHVyZTIu
anMnXSkKKyAgICAgICAgY2xlYW5fdGVzdF9yZXN1bHRzID0gTm9uZQorICAgICAgICB0YXNrID0g
c2VsZi5fY3JlYXRlX3Rhc2soZmlyc3RfdGVzdF9yZXN1bHRzLCBzZWNvbmRfdGVzdF9yZXN1bHRz
LCBjbGVhbl90ZXN0X3Jlc3VsdHMpCisKKyAgICAgICAgcmV0dXJuX3ZhbHVlID0gdGFzay5fdGVz
dF9wYXRjaCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGFzay50ZXN0X3J1bl9jb3VudCgp
LCAzKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKHJldHVybl92YWx1ZSkKKworICAgIGRlZiB0
ZXN0X2ZsYWt5X3Jlc3VsdHNfb25fY2xlYW5fdHJlZV9wYXNzKHNlbGYpOgorICAgICAgICBmaXJz
dF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbJ2ZhaWx1cmUyLmpzJ10pCisg
ICAgICAgIHNlY29uZF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbXSkKKyAg
ICAgICAgY2xlYW5fdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgW10pCisgICAg
ICAgIHRhc2sgPSBzZWxmLl9jcmVhdGVfdGFzayhmaXJzdF90ZXN0X3Jlc3VsdHMsIHNlY29uZF90
ZXN0X3Jlc3VsdHMsIGNsZWFuX3Rlc3RfcmVzdWx0cykKKworICAgICAgICByZXR1cm5fdmFsdWUg
PSB0YXNrLl90ZXN0X3BhdGNoKCkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHJldHVybl92YWx1
ZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0YXNrLnRlc3RfcnVuX2NvdW50KCksIDIpCisK
KyAgICBkZWYgdGVzdF9mbGFreV9yZXN1bHRzX29uX2NsZWFuX3RyZWVfcGFzc192MihzZWxmKToK
KyAgICAgICAgZmlyc3RfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgW10pCisg
ICAgICAgIHNlY29uZF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbJ2ZhaWx1
cmUyLmpzJ10pCisgICAgICAgIGNsZWFuX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRy
dWUsIFtdKQorICAgICAgICB0YXNrID0gc2VsZi5fY3JlYXRlX3Rhc2soZmlyc3RfdGVzdF9yZXN1
bHRzLCBzZWNvbmRfdGVzdF9yZXN1bHRzLCBjbGVhbl90ZXN0X3Jlc3VsdHMpCisKKyAgICAgICAg
cmV0dXJuX3ZhbHVlID0gdGFzay5fdGVzdF9wYXRjaCgpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1
ZShyZXR1cm5fdmFsdWUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGFzay50ZXN0X3J1bl9j
b3VudCgpLCAxKQorCisgICAgZGVmIHRlc3RfZmxha3lfcmVzdWx0c19vbl9jbGVhbl90cmVlX2Zh
aWx1cmUoc2VsZik6CisgICAgICAgIGZpcnN0X3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRz
KEZhbHNlLCBbJ2ZhaWx1cmUxLmpzJywgJ2ZhaWx1cmUyLmpzJ10pCisgICAgICAgIHNlY29uZF90
ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbJ2ZhaWx1cmUyLmpzJ10pCisgICAg
ICAgIGNsZWFuX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFtdKQorICAgICAg
ICB0YXNrID0gc2VsZi5fY3JlYXRlX3Rhc2soZmlyc3RfdGVzdF9yZXN1bHRzLCBzZWNvbmRfdGVz
dF9yZXN1bHRzLCBjbGVhbl90ZXN0X3Jlc3VsdHMpCisKKyAgICAgICAgd2l0aCBzZWxmLmFzc2Vy
dFJhaXNlcyhTY3JpcHRFcnJvcik6CisgICAgICAgICAgICB0YXNrLl90ZXN0X3BhdGNoKCkKKyAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0YXNrLnRlc3RfcnVuX2NvdW50KCksIDMpCisKKyAgICBk
ZWYgdGVzdF9mbGFreV9yZXN1bHRzX29uX3JlZF90cmVlX3Bhc3Moc2VsZik6CisgICAgICAgIGZp
cnN0X3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFsnZmFpbHVyZTEuanMnXSkK
KyAgICAgICAgc2Vjb25kX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFsnZmFp
bHVyZTEuanMnLCAnZmFpbHVyZTIuanMnXSkKKyAgICAgICAgY2xlYW5fdGVzdF9yZXN1bHRzID0g
SlNDVGVzdFJlc3VsdHMoVHJ1ZSwgWydmYWlsdXJlMS5qcyddKQorICAgICAgICB0YXNrID0gc2Vs
Zi5fY3JlYXRlX3Rhc2soZmlyc3RfdGVzdF9yZXN1bHRzLCBzZWNvbmRfdGVzdF9yZXN1bHRzLCBj
bGVhbl90ZXN0X3Jlc3VsdHMpCisKKyAgICAgICAgcmV0dXJuX3ZhbHVlID0gdGFzay5fdGVzdF9w
YXRjaCgpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZXR1cm5fdmFsdWUpCisgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwodGFzay50ZXN0X3J1bl9jb3VudCgpLCAzKQpkaWZmIC0tZ2l0IGEvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9qc2N0ZXN0cmVzdWx0c3JlYWRlci5weSBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvanNjdGVzdHJlc3VsdHNyZWFkZXIucHkKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYjMyNjVhYmMxYjNhNjZjNGRlNDI0OTZlOGM5NDA1M2I2NDhiMGFiMwotLS0gL2Rl
di9udWxsCisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvanNjdGVzdHJlc3Vs
dHNyZWFkZXIucHkKQEAgLTAsMCArMSw0NCBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisj
IGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisj
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorIyBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorCitpbXBvcnQgbG9nZ2luZworCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5uZXQu
anNjdGVzdHJlc3VsdHMgaW1wb3J0IEpTQ1Rlc3RSZXN1bHRzCisKK19sb2cgPSBsb2dnaW5nLmdl
dExvZ2dlcihfX25hbWVfXykKKworCitjbGFzcyBKU0NUZXN0UmVzdWx0c1JlYWRlcihvYmplY3Qp
OgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBob3N0LCByZXN1bHRzX2RpcmVjdG9yeSk6CisgICAg
ICAgIHNlbGYuX2hvc3QgPSBob3N0CisgICAgICAgIHNlbGYuX3Jlc3VsdHNfZGlyZWN0b3J5ID0g
cmVzdWx0c19kaXJlY3RvcnkKKworICAgIGRlZiBfcmVhZF9maWxlX2NvbnRlbnRzKHNlbGYsIHBh
dGgpOgorICAgICAgICB0cnk6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5faG9zdC5maWxlc3lz
dGVtLnJlYWRfdGV4dF9maWxlKHBhdGgpCisgICAgICAgIGV4Y2VwdCAoSU9FcnJvciwgS2V5RXJy
b3IpOgorICAgICAgICAgICAgcmV0dXJuIE5vbmUKKworICAgIGRlZiByZXN1bHRzKHNlbGYpOgor
ICAgICAgICByZXN1bHRzX3BhdGggPSBzZWxmLl9ob3N0LmZpbGVzeXN0ZW0uam9pbihzZWxmLl9y
ZXN1bHRzX2RpcmVjdG9yeSwgJ2pzY190ZXN0X3Jlc3VsdHMuanNvbicpCisgICAgICAgIGNvbnRl
bnRzID0gc2VsZi5fcmVhZF9maWxlX2NvbnRlbnRzKHJlc3VsdHNfcGF0aCkKKyAgICAgICAgcmV0
dXJuIEpTQ1Rlc3RSZXN1bHRzLnJlc3VsdHNfZnJvbV9zdHJpbmcoY29udGVudHMpCmRpZmYgLS1n
aXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L3BhdGNoYW5hbHlzaXN0YXNrLnB5
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9wYXRjaGFuYWx5c2lzdGFzay5weQpp
bmRleCA3NTIzMTY0MTZjNWY5ZDBhM2U1OWVmNmQwNWUzMTc4NWY5MTc0NjI5Li5hY2E4MmZkZTI2
OGM5MjI0NDY4YjNkNDYzOGQxZWZhNTQ2ZWFhM2YwIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L3Rvb2wvYm90L3BhdGNoYW5hbHlzaXN0YXNrLnB5CisrKyBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvdG9vbC9ib3QvcGF0Y2hhbmFseXNpc3Rhc2sucHkKQEAgLTEsNCArMSw1IEBA
CiAjIENvcHlyaWdodCAoYykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
IyBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwog
IyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtMjgsNiArMjksNyBAQAogCiBmcm9tIHdl
YmtpdHB5LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZlIGltcG9ydCBTY3JpcHRFcnJvcgogZnJvbSB3
ZWJraXRweS5jb21tb24ubmV0LmxheW91dHRlc3RyZXN1bHRzIGltcG9ydCBMYXlvdXRUZXN0UmVz
dWx0cworZnJvbSB3ZWJraXRweS5jb21tb24ubmV0LmpzY3Rlc3RyZXN1bHRzIGltcG9ydCBKU0NU
ZXN0UmVzdWx0cwogCiAKIGNsYXNzIFVuYWJsZVRvQXBwbHlQYXRjaChFeGNlcHRpb24pOgpAQCAt
NDMsNiArNDUsMTEgQEAgY2xhc3MgUGF0Y2hJc05vdFZhbGlkKEV4Y2VwdGlvbik6CiAgICAgICAg
IHNlbGYuZmFpbHVyZV9tZXNzYWdlID0gZmFpbHVyZV9tZXNzYWdlCiAKIAorY2xhc3MgUGF0Y2hJ
c05vdEFwcGxpY2FibGUoRXhjZXB0aW9uKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgcGF0Y2gp
OgorICAgICAgICBFeGNlcHRpb24uX19pbml0X18oc2VsZikKKyAgICAgICAgc2VsZi5wYXRjaCA9
IHBhdGNoCisKIGNsYXNzIFBhdGNoQW5hbHlzaXNUYXNrRGVsZWdhdGUob2JqZWN0KToKICAgICBk
ZWYgcGFyZW50X2NvbW1hbmQoc2VsZik6CiAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJy
b3IoInN1YmNsYXNzZXMgbXVzdCBpbXBsZW1lbnQiKQpAQCAtMTIyLDI4ICsxMjksNDQgQEAgY2xh
c3MgUGF0Y2hBbmFseXNpc1Rhc2sob2JqZWN0KToKICAgICAgICAgIkFwcGxpZWQgcGF0Y2giLAog
ICAgICAgICAiUGF0Y2ggZG9lcyBub3QgYXBwbHkiKQogCisgICAgZGVmIF9jaGVja19wYXRjaF9y
ZWxldmFuY2Uoc2VsZik6CisgICAgICAgIGFyZ3MgPSBbCisgICAgICAgICAgICAiY2hlY2stcGF0
Y2gtcmVsZXZhbmNlIiwKKyAgICAgICAgXQorCisgICAgICAgIGlmIGhhc2F0dHIoc2VsZi5fZGVs
ZWdhdGUsICdncm91cCcpOgorICAgICAgICAgICAgYXJncy5hcHBlbmQoIi0tZ3JvdXA9JXMiICUg
c2VsZi5fZGVsZWdhdGUuZ3JvdXAoKSkKKworICAgICAgICByZXR1cm4gc2VsZi5fcnVuX2NvbW1h
bmQoYXJncywgIkNoZWNrZWQgcmVsZXZhbmNlIG9mIHBhdGNoIiwgIlBhdGNoIHdhcyBub3QgcmVs
ZXZhbnQiKQorCiAgICAgZGVmIF9idWlsZChzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYuX3J1
bl9jb21tYW5kKFsKKyAgICAgICAgYXJncyA9IFsKICAgICAgICAgICAgICJidWlsZCIsCiAgICAg
ICAgICAgICAiLS1uby1jbGVhbiIsCiAgICAgICAgICAgICAiLS1uby11cGRhdGUiLAogICAgICAg
ICAgICAgIi0tYnVpbGQtc3R5bGU9JXMiICUgc2VsZi5fZGVsZWdhdGUuYnVpbGRfc3R5bGUoKSwK
LSAgICAgICAgXSwKLSAgICAgICAgIkJ1aWx0IHBhdGNoIiwKLSAgICAgICAgIlBhdGNoIGRvZXMg
bm90IGJ1aWxkIikKKyAgICAgICAgXQorCisgICAgICAgIGlmIGhhc2F0dHIoc2VsZi5fZGVsZWdh
dGUsICdncm91cCcpOgorICAgICAgICAgICAgYXJncy5hcHBlbmQoIi0tZ3JvdXA9JXMiICUgc2Vs
Zi5fZGVsZWdhdGUuZ3JvdXAoKSkKKworICAgICAgICByZXR1cm4gc2VsZi5fcnVuX2NvbW1hbmQo
YXJncywgIkJ1aWx0IHBhdGNoIiwgIlBhdGNoIGRvZXMgbm90IGJ1aWxkIikKIAogICAgIGRlZiBf
YnVpbGRfd2l0aG91dF9wYXRjaChzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYuX3J1bl9jb21t
YW5kKFsKKyAgICAgICAgYXJncyA9IFsKICAgICAgICAgICAgICJidWlsZCIsCiAgICAgICAgICAg
ICAiLS1mb3JjZS1jbGVhbiIsCiAgICAgICAgICAgICAiLS1uby11cGRhdGUiLAogICAgICAgICAg
ICAgIi0tYnVpbGQtc3R5bGU9JXMiICUgc2VsZi5fZGVsZWdhdGUuYnVpbGRfc3R5bGUoKSwKLSAg
ICAgICAgXSwKLSAgICAgICAgIkFibGUgdG8gYnVpbGQgd2l0aG91dCBwYXRjaCIsCi0gICAgICAg
ICJVbmFibGUgdG8gYnVpbGQgd2l0aG91dCBwYXRjaCIpCisgICAgICAgIF0KKworICAgICAgICBp
ZiBoYXNhdHRyKHNlbGYuX2RlbGVnYXRlLCAnZ3JvdXAnKToKKyAgICAgICAgICAgIGFyZ3MuYXBw
ZW5kKCItLWdyb3VwPSVzIiAlIHNlbGYuX2RlbGVnYXRlLmdyb3VwKCkpCisKKyAgICAgICAgcmV0
dXJuIHNlbGYuX3J1bl9jb21tYW5kKGFyZ3MsICJBYmxlIHRvIGJ1aWxkIHdpdGhvdXQgcGF0Y2gi
LCAiVW5hYmxlIHRvIGJ1aWxkIHdpdGhvdXQgcGF0Y2giKQogCiAgICAgZGVmIF90ZXN0KHNlbGYp
OgotICAgICAgICByZXR1cm4gc2VsZi5fcnVuX2NvbW1hbmQoWworICAgICAgICBhcmdzID0gWwog
ICAgICAgICAgICAgImJ1aWxkLWFuZC10ZXN0IiwKICAgICAgICAgICAgICItLW5vLWNsZWFuIiwK
ICAgICAgICAgICAgICItLW5vLXVwZGF0ZSIsCkBAIC0xNTEsMTIgKzE3NCwxNSBAQCBjbGFzcyBQ
YXRjaEFuYWx5c2lzVGFzayhvYmplY3QpOgogICAgICAgICAgICAgIi0tdGVzdCIsCiAgICAgICAg
ICAgICAiLS1ub24taW50ZXJhY3RpdmUiLAogICAgICAgICAgICAgIi0tYnVpbGQtc3R5bGU9JXMi
ICUgc2VsZi5fZGVsZWdhdGUuYnVpbGRfc3R5bGUoKSwKLSAgICAgICAgXSwKLSAgICAgICAgIlBh
c3NlZCB0ZXN0cyIsCi0gICAgICAgICJQYXRjaCBkb2VzIG5vdCBwYXNzIHRlc3RzIikKKyAgICAg
ICAgXQorCisgICAgICAgIGlmIGhhc2F0dHIoc2VsZi5fZGVsZWdhdGUsICdncm91cCcpOgorICAg
ICAgICAgICAgYXJncy5hcHBlbmQoIi0tZ3JvdXA9JXMiICUgc2VsZi5fZGVsZWdhdGUuZ3JvdXAo
KSkKKworICAgICAgICByZXR1cm4gc2VsZi5fcnVuX2NvbW1hbmQoYXJncywgIlBhc3NlZCB0ZXN0
cyIsICJQYXRjaCBkb2VzIG5vdCBwYXNzIHRlc3RzIikKIAogICAgIGRlZiBfYnVpbGRfYW5kX3Rl
c3Rfd2l0aG91dF9wYXRjaChzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYuX3J1bl9jb21tYW5k
KFsKKyAgICAgICAgYXJncyA9IFsKICAgICAgICAgICAgICJidWlsZC1hbmQtdGVzdCIsCiAgICAg
ICAgICAgICAiLS1mb3JjZS1jbGVhbiIsCiAgICAgICAgICAgICAiLS1uby11cGRhdGUiLApAQCAt
MTY0LDkgKzE5MCwxMiBAQCBjbGFzcyBQYXRjaEFuYWx5c2lzVGFzayhvYmplY3QpOgogICAgICAg
ICAgICAgIi0tdGVzdCIsCiAgICAgICAgICAgICAiLS1ub24taW50ZXJhY3RpdmUiLAogICAgICAg
ICAgICAgIi0tYnVpbGQtc3R5bGU9JXMiICUgc2VsZi5fZGVsZWdhdGUuYnVpbGRfc3R5bGUoKSwK
LSAgICAgICAgXSwKLSAgICAgICAgIkFibGUgdG8gcGFzcyB0ZXN0cyB3aXRob3V0IHBhdGNoIiwK
LSAgICAgICAgIlVuYWJsZSB0byBwYXNzIHRlc3RzIHdpdGhvdXQgcGF0Y2ggKHRyZWUgaXMgcmVk
PykiKQorICAgICAgICBdCisKKyAgICAgICAgaWYgaGFzYXR0cihzZWxmLl9kZWxlZ2F0ZSwgJ2dy
b3VwJyk6CisgICAgICAgICAgICBhcmdzLmFwcGVuZCgiLS1ncm91cD0lcyIgJSBzZWxmLl9kZWxl
Z2F0ZS5ncm91cCgpKQorCisgICAgICAgIHJldHVybiBzZWxmLl9ydW5fY29tbWFuZChhcmdzLCAi
QWJsZSB0byBwYXNzIHRlc3RzIHdpdGhvdXQgcGF0Y2giLCAiVW5hYmxlIHRvIHBhc3MgdGVzdHMg
d2l0aG91dCBwYXRjaCAodHJlZSBpcyByZWQ/KSIpCiAKICAgICBkZWYgX2xhbmQoc2VsZik6CiAg
ICAgICAgICMgVW5jbGVhciBpZiB0aGlzIHNob3VsZCBwYXNzIC0tcXVpZXQgb3Igbm90LiAgSWYg
LS1wYXJlbnQtY29tbWFuZCBhbHdheXMgZG9lcyB0aGUgcmVwb3J0aW5nLCB0aGVuIGl0IHNob3Vs
ZC4KQEAgLTIwNiwxMCArMjM1LDM1IEBAIGNsYXNzIFBhdGNoQW5hbHlzaXNUYXNrKG9iamVjdCk6
CiAgICAgICAgICMgYWxzbyBwcmVzZW50IHdpdGhvdXQgdGhlIHBhdGNoLCBzbyB3ZSBkb24ndCBu
ZWVkIHRvIGRlZmVyLgogICAgICAgICByZXR1cm4gRmFsc2UKIAotICAgIGRlZiBfdGVzdF9wYXRj
aChzZWxmKToKKyAgICAjIEZJWE1FOiBBYnN0cmFjdCBvdXQgY29tbW9uIHBhcnRzIG9mIHRoZSBy
ZXRyeSBsb2dpYy4KKyAgICBkZWYgX3JldHJ5X2pzY190ZXN0cyhzZWxmKToKKyAgICAgICAgZmly
c3RfcmVzdWx0cyA9IHNlbGYuX2RlbGVnYXRlLnRlc3RfcmVzdWx0cygpCisgICAgICAgIGZpcnN0
X3NjcmlwdF9lcnJvciA9IHNlbGYuX3NjcmlwdF9lcnJvcgorICAgICAgICBmaXJzdF9mYWlsdXJl
X3N0YXR1c19pZCA9IHNlbGYuZmFpbHVyZV9zdGF0dXNfaWQKKyAgICAgICAgaWYgZmlyc3RfcmVz
dWx0cyBpcyBOb25lOgorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisKICAgICAgICAgaWYgc2Vs
Zi5fdGVzdCgpOgogICAgICAgICAgICAgcmV0dXJuIFRydWUKKyAgICAgICAgc2Vjb25kX3Jlc3Vs
dHMgPSBzZWxmLl9kZWxlZ2F0ZS50ZXN0X3Jlc3VsdHMoKQorICAgICAgICBzZWNvbmRfc2NyaXB0
X2Vycm9yID0gc2VsZi5fc2NyaXB0X2Vycm9yCisgICAgICAgIGlmIHNlY29uZF9yZXN1bHRzIGlz
IE5vbmU6CisgICAgICAgICAgICByZXR1cm4gRmFsc2UKKworICAgICAgICBjb25zaXN0ZW50bHlf
ZmFpbGluZ190ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cy5pbnRlcnNlY3Rpb24oZmlyc3Rf
cmVzdWx0cywgc2Vjb25kX3Jlc3VsdHMpCisKKyAgICAgICAgc2VsZi5fYnVpbGRfYW5kX3Rlc3Rf
d2l0aG91dF9wYXRjaCgpCisgICAgICAgIGNsZWFuX3RyZWVfcmVzdWx0cyA9IHNlbGYuX2RlbGVn
YXRlLnRlc3RfcmVzdWx0cygpCisgICAgICAgIGlmIGNsZWFuX3RyZWVfcmVzdWx0cyBpcyBOb25l
OgorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICAgICAgaWYgY29uc2lzdGVudGx5X2Zh
aWxpbmdfdGVzdF9yZXN1bHRzLmlzX3N1YnNldChjbGVhbl90cmVlX3Jlc3VsdHMpOgorICAgICAg
ICAgICAgcmV0dXJuIFRydWUKKworICAgICAgICBzZWxmLmZhaWx1cmVfc3RhdHVzX2lkID0gZmly
c3RfZmFpbHVyZV9zdGF0dXNfaWQKKyAgICAgICAgcmV0dXJuIHNlbGYucmVwb3J0X2ZhaWx1cmUo
Tm9uZSwgY29uc2lzdGVudGx5X2ZhaWxpbmdfdGVzdF9yZXN1bHRzLCBmaXJzdF9zY3JpcHRfZXJy
b3IpCiAKKyAgICBkZWYgX3JldHJ5X2xheW91dF90ZXN0cyhzZWxmKToKICAgICAgICAgIyBOb3Rl
OiBhcmNoaXZlX2xhc3RfdGVzdF9yZXN1bHRzIGRlbGV0ZXMgdGhlIHJlc3VsdHMgZGlyZWN0b3J5
LCBtYWtpbmcgdGhlc2UgY2FsbHMgb3JkZXItc2Vuc2l0dmUuCiAgICAgICAgICMgV2UgY291bGQg
cmVtb3ZlIHRoaXMgZGVwZW5kZW5jeSBieSBidWlsZGluZyB0aGUgdGVzdF9yZXN1bHRzIGZyb20g
dGhlIGFyY2hpdmUuCiAgICAgICAgIGZpcnN0X3Jlc3VsdHMgPSBzZWxmLl9kZWxlZ2F0ZS50ZXN0
X3Jlc3VsdHMoKQpAQCAtMjQwLDExICsyOTQsMTMgQEAgY2xhc3MgUGF0Y2hBbmFseXNpc1Rhc2so
b2JqZWN0KToKICAgICAgICAgICAgIHJldHVybiBzZWxmLnJlcG9ydF9mYWlsdXJlKGZpcnN0X3Jl
c3VsdHNfYXJjaGl2ZSwgZmlyc3RfcmVzdWx0cywgZmlyc3Rfc2NyaXB0X2Vycm9yKQogCiAgICAg
ICAgIGlmIHNlY29uZF9yZXN1bHRzLmRpZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xpbWl0KCk6Ci0g
ICAgICAgICAgICBzZWxmLl9zaG91bGRfZGVmZXJfcGF0Y2hfb3JfdGhyb3coZmlyc3RfcmVzdWx0
cy5mYWlsaW5nX3Rlc3RfcmVzdWx0cygpLCBmaXJzdF9yZXN1bHRzX2FyY2hpdmUsIGZpcnN0X3Nj
cmlwdF9lcnJvciwgZmlyc3RfZmFpbHVyZV9zdGF0dXNfaWQpCisgICAgICAgICAgICBzZWxmLl9z
aG91bGRfZGVmZXJfcGF0Y2hfb3JfdGhyb3coZmlyc3RfcmVzdWx0cy5mYWlsaW5nX3Rlc3RfcmVz
dWx0cygpLCBmaXJzdF9yZXN1bHRzX2FyY2hpdmUsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZmlyc3Rfc2NyaXB0X2Vycm9yLCBmaXJzdF9mYWlsdXJlX3N0
YXR1c19pZCkKICAgICAgICAgICAgIHJldHVybiBGYWxzZQogCiAgICAgICAgIGlmIGZpcnN0X3Jl
c3VsdHMuZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQoKToKLSAgICAgICAgICAgIHNlbGYu
X3Nob3VsZF9kZWZlcl9wYXRjaF9vcl90aHJvdyhzZWNvbmRfcmVzdWx0cy5mYWlsaW5nX3Rlc3Rf
cmVzdWx0cygpLCBzZWNvbmRfcmVzdWx0c19hcmNoaXZlLCBzZWNvbmRfc2NyaXB0X2Vycm9yLCBz
ZWNvbmRfZmFpbHVyZV9zdGF0dXNfaWQpCisgICAgICAgICAgICBzZWxmLl9zaG91bGRfZGVmZXJf
cGF0Y2hfb3JfdGhyb3coc2Vjb25kX3Jlc3VsdHMuZmFpbGluZ190ZXN0X3Jlc3VsdHMoKSwgc2Vj
b25kX3Jlc3VsdHNfYXJjaGl2ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzZWNvbmRfc2NyaXB0X2Vycm9yLCBzZWNvbmRfZmFpbHVyZV9zdGF0dXNfaWQp
CiAgICAgICAgICAgICByZXR1cm4gRmFsc2UKIAogICAgICAgICBpZiBzZWxmLl9yZXN1bHRzX2Zh
aWxlZF9kaWZmZXJlbnRfdGVzdHMoZmlyc3RfcmVzdWx0cywgc2Vjb25kX3Jlc3VsdHMpOgpAQCAt
MjU5LDE0ICszMTUsMTYgQEAgY2xhc3MgUGF0Y2hBbmFseXNpc1Rhc2sob2JqZWN0KToKIAogICAg
ICAgICAgICAgdGVzdHNfdGhhdF9jb25zaXN0ZW50bHlfZmFpbGVkID0gZmlyc3RfZmFpbGluZ19y
ZXN1bHRzX3NldC5pbnRlcnNlY3Rpb24oc2Vjb25kX2ZhaWxpbmdfcmVzdWx0c19zZXQpCiAgICAg
ICAgICAgICBpZiB0ZXN0c190aGF0X2NvbnNpc3RlbnRseV9mYWlsZWQ6Ci0gICAgICAgICAgICAg
ICAgaWYgc2VsZi5fc2hvdWxkX2RlZmVyX3BhdGNoX29yX3Rocm93KHRlc3RzX3RoYXRfY29uc2lz
dGVudGx5X2ZhaWxlZCwgZmlyc3RfcmVzdWx0c19hcmNoaXZlLCBmaXJzdF9zY3JpcHRfZXJyb3Is
IGZpcnN0X2ZhaWx1cmVfc3RhdHVzX2lkKToKKyAgICAgICAgICAgICAgICBpZiBzZWxmLl9zaG91
bGRfZGVmZXJfcGF0Y2hfb3JfdGhyb3codGVzdHNfdGhhdF9jb25zaXN0ZW50bHlfZmFpbGVkLCBm
aXJzdF9yZXN1bHRzX2FyY2hpdmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGZpcnN0X3NjcmlwdF9lcnJvciwgZmlyc3RfZmFpbHVyZV9zdGF0
dXNfaWQpOgogICAgICAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UgICMgRGVmZXIgcGF0Y2gK
IAogICAgICAgICAgICAgIyBBdCB0aGlzIHBvaW50IHdlIGtub3cgdGhhdCBhdCBsZWFzdCBvbmUg
dGVzdCBmbGFrZWQsIGJ1dCBubyBjb25zaXN0ZW50IGZhaWx1cmVzCiAgICAgICAgICAgICAjIHdl
cmUgaW50cm9kdWNlZC4gVGhpcyBpcyBhIGJpdCBvZiBhIGdyZXktem9uZS4KICAgICAgICAgICAg
IHJldHVybiBGYWxzZSAgIyBEZWZlciBwYXRjaAogCi0gICAgICAgIGlmIHNlbGYuX3Nob3VsZF9k
ZWZlcl9wYXRjaF9vcl90aHJvdyhmaXJzdF9yZXN1bHRzLmZhaWxpbmdfdGVzdF9yZXN1bHRzKCks
IGZpcnN0X3Jlc3VsdHNfYXJjaGl2ZSwgZmlyc3Rfc2NyaXB0X2Vycm9yLCBmaXJzdF9mYWlsdXJl
X3N0YXR1c19pZCk6CisgICAgICAgIGlmIHNlbGYuX3Nob3VsZF9kZWZlcl9wYXRjaF9vcl90aHJv
dyhmaXJzdF9yZXN1bHRzLmZhaWxpbmdfdGVzdF9yZXN1bHRzKCksIGZpcnN0X3Jlc3VsdHNfYXJj
aGl2ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpcnN0
X3NjcmlwdF9lcnJvciwgZmlyc3RfZmFpbHVyZV9zdGF0dXNfaWQpOgogICAgICAgICAgICAgcmV0
dXJuIEZhbHNlICAjIERlZmVyIHBhdGNoCiAKICAgICAgICAgIyBBdCB0aGlzIHBvaW50LCB3ZSBr
bm93IHRoYXQgdGhlIGZpcnN0IGFuZCBzZWNvbmQgcnVucyBoYWQgdGhlIGV4YWN0IHNhbWUgZmFp
bHVyZXMsCkBAIC0yNzQsNiArMzMyLDE1IEBAIGNsYXNzIFBhdGNoQW5hbHlzaXNUYXNrKG9iamVj
dCk6CiAgICAgICAgICMgdGhhdCB0aGUgcGF0Y2ggaXMgZ29vZC4KICAgICAgICAgcmV0dXJuIFRy
dWUKIAorICAgIGRlZiBfdGVzdF9wYXRjaChzZWxmKToKKyAgICAgICAgaWYgc2VsZi5fdGVzdCgp
OgorICAgICAgICAgICAgcmV0dXJuIFRydWUKKworICAgICAgICBpZiBoYXNhdHRyKHNlbGYuX2Rl
bGVnYXRlLCAnZ3JvdXAnKSBhbmQgc2VsZi5fZGVsZWdhdGUuZ3JvdXAoKSA9PSAianNjIjoKKyAg
ICAgICAgICAgIHJldHVybiBzZWxmLl9yZXRyeV9qc2NfdGVzdHMoKQorICAgICAgICBlbHNlOgor
ICAgICAgICAgICAgcmV0dXJuIHNlbGYuX3JldHJ5X2xheW91dF90ZXN0cygpCisKICAgICBkZWYg
cmVzdWx0c19hcmNoaXZlX2Zyb21fcGF0Y2hfdGVzdF9ydW4oc2VsZiwgcGF0Y2gpOgogICAgICAg
ICBhc3NlcnQoc2VsZi5fcGF0Y2guaWQoKSA9PSBwYXRjaC5pZCgpKSAgIyBQYXRjaEFuYWx5c2lz
VGFzayBpcyBub3QgY3VycmVudGx5IHJlLXVzZWFibGUuCiAgICAgICAgIHJldHVybiBzZWxmLl9y
ZXN1bHRzX2FyY2hpdmVfZnJvbV9wYXRjaF90ZXN0X3J1bgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Rvd25sb2FkLnB5IGIvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS90b29sL2NvbW1hbmRzL2Rvd25sb2FkLnB5CmluZGV4IGU1MTY5YWFjODVmMzE4NmU4
NGJlOWQ1MDI0NTkyYmQ3ZmU2ZDVkZDUuLjE0YjU1YmMzZjdjOWMxMGI1ZGY2MGZjMWFmODdkN2Nh
MzllM2JjOTQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5k
cy9kb3dubG9hZC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMv
ZG93bmxvYWQucHkKQEAgLTEsNSArMSw1IEBACiAjIENvcHlyaWdodCAoYykgMjAwOSwgMjAxMSBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotIyBDb3B5cmlnaHQgKGMpIDIwMDkgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKGMpIDIwMDksIDIwMTcg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zIGFyZQpAQCAtODcsNiArODcsMTQgQEAgY2xhc3MgQnVpbGRBbmRUZXN0KEFic3RyYWN0U2Vx
dWVuY2VkQ29tbWFuZCk6CiAgICAgXQogCiAKK2NsYXNzIENoZWNrUGF0Y2hSZWxldmFuY2UoQWJz
dHJhY3RTZXF1ZW5jZWRDb21tYW5kKToKKyAgICBuYW1lID0gImNoZWNrLXBhdGNoLXJlbGV2YW5j
ZSIKKyAgICBoZWxwX3RleHQgPSAiQ2hlY2sgaWYgdGhpcyBwYXRjaCBuZWVkcyB0byBiZSB0ZXN0
ZWQiCisgICAgc3RlcHMgPSBbCisgICAgICAgIHN0ZXBzLkNoZWNrUGF0Y2hSZWxldmFuY2UsCisg
ICAgXQorCisKIGNsYXNzIExhbmQoQWJzdHJhY3RTZXF1ZW5jZWRDb21tYW5kKToKICAgICBuYW1l
ID0gImxhbmQiCiAgICAgaGVscF90ZXh0ID0gIkxhbmQgdGhlIGN1cnJlbnQgd29ya2luZyBkaXJl
Y3RvcnkgZGlmZiBhbmQgdXBkYXRlcyB0aGUgYXNzb2NpYXRlZCBidWcgaWYgYW55IgpkaWZmIC0t
Z2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Rvd25sb2FkX3VuaXR0
ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Rvd25sb2FkX3Vu
aXR0ZXN0LnB5CmluZGV4IDQyOWRhMTI0NmY4YmQ3NmFiMDJlZTYzM2M0MmQ2ZmIzOGQzODU0YzUu
LjU5Yzk0ODhjMDk0MDk5YjczNDdlOTZlZjIwMmMzNjBkOTE5NDYzMDMgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9kb3dubG9hZF91bml0dGVzdC5weQor
KysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZG93bmxvYWRfdW5pdHRl
c3QucHkKQEAgLTg5LDYgKzg5LDcgQEAgY2xhc3MgRG93bmxvYWRDb21tYW5kc1Rlc3QoQ29tbWFu
ZHNUZXN0KToKICAgICAgICAgb3B0aW9ucy51cGRhdGUgPSBUcnVlCiAgICAgICAgIG9wdGlvbnMu
YXJjaGl0ZWN0dXJlID0gJ01PQ0sgQVJDSCcKICAgICAgICAgb3B0aW9ucy5pdGVyYXRlX29uX25l
d190ZXN0cyA9IDAKKyAgICAgICAgb3B0aW9ucy5ncm91cCA9IE5vbmUKICAgICAgICAgcmV0dXJu
IG9wdGlvbnMKIAogICAgIGRlZiB0ZXN0X2J1aWxkKHNlbGYpOgpkaWZmIC0tZ2l0IGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Vhcmx5d2FybmluZ3N5c3RlbS5weSBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9lYXJseXdhcm5pbmdzeXN0ZW0ucHkK
aW5kZXggOWJjMDQxODYwY2U2NzQ1NDQ1NGU0YjI1MTQzOGE5ZGJlNTI2NDUxMy4uNjhmMWQ4MDMy
MGNiMjU3ZTI2YmFmODQwMWZiN2FhNTEyMDQxOWRjMSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Vhcmx5d2FybmluZ3N5c3RlbS5weQorKysgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZWFybHl3YXJuaW5nc3lzdGVtLnB5CkBA
IC0xLDQgKzEsNSBAQAogIyBDb3B5cmlnaHQgKGMpIDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChjKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTI4LDYgKzI5LDcg
QEAKIAogaW1wb3J0IGpzb24KIGltcG9ydCBsb2dnaW5nCitpbXBvcnQgb3MKIGZyb20gb3B0cGFy
c2UgaW1wb3J0IG1ha2Vfb3B0aW9uCiAKIGZyb20gd2Via2l0cHkuY29tbW9uLmNvbmZpZy5jb21t
aXR0ZXJzIGltcG9ydCBDb21taXR0ZXJMaXN0CkBAIC0zNiw3ICszOCw4IEBAIGZyb20gd2Via2l0
cHkuY29tbW9uLnN5c3RlbS5maWxlc3lzdGVtIGltcG9ydCBGaWxlU3lzdGVtCiBmcm9tIHdlYmtp
dHB5LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZlIGltcG9ydCBTY3JpcHRFcnJvcgogZnJvbSB3ZWJr
aXRweS50b29sLmJvdC5lYXJseXdhcm5pbmdzeXN0ZW10YXNrIGltcG9ydCBFYXJseVdhcm5pbmdT
eXN0ZW1UYXNrLCBFYXJseVdhcm5pbmdTeXN0ZW1UYXNrRGVsZWdhdGUKIGZyb20gd2Via2l0cHku
dG9vbC5ib3QubGF5b3V0dGVzdHJlc3VsdHNyZWFkZXIgaW1wb3J0IExheW91dFRlc3RSZXN1bHRz
UmVhZGVyCi1mcm9tIHdlYmtpdHB5LnRvb2wuYm90LnBhdGNoYW5hbHlzaXN0YXNrIGltcG9ydCBV
bmFibGVUb0FwcGx5UGF0Y2gsIFBhdGNoSXNOb3RWYWxpZAorZnJvbSB3ZWJraXRweS50b29sLmJv
dC5qc2N0ZXN0cmVzdWx0c3JlYWRlciBpbXBvcnQgSlNDVGVzdFJlc3VsdHNSZWFkZXIKK2Zyb20g
d2Via2l0cHkudG9vbC5ib3QucGF0Y2hhbmFseXNpc3Rhc2sgaW1wb3J0IFVuYWJsZVRvQXBwbHlQ
YXRjaCwgUGF0Y2hJc05vdFZhbGlkLCBQYXRjaElzTm90QXBwbGljYWJsZQogZnJvbSB3ZWJraXRw
eS50b29sLmJvdC5xdWV1ZWVuZ2luZSBpbXBvcnQgUXVldWVFbmdpbmUKIGZyb20gd2Via2l0cHku
dG9vbC5jb21tYW5kcy5xdWV1ZXMgaW1wb3J0IEFic3RyYWN0UmV2aWV3UXVldWUKIApAQCAtNTMs
NyArNTYsMTEgQEAgY2xhc3MgQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0oQWJzdHJhY3RSZXZp
ZXdRdWV1ZSwgRWFybHlXYXJuaW5nU3lzdGVtVGFza0RlbGUKIAogICAgIGRlZiBiZWdpbl93b3Jr
X3F1ZXVlKHNlbGYpOgogICAgICAgICBBYnN0cmFjdFJldmlld1F1ZXVlLmJlZ2luX3dvcmtfcXVl
dWUoc2VsZikKLSAgICAgICAgc2VsZi5fbGF5b3V0X3Rlc3RfcmVzdWx0c19yZWFkZXIgPSBMYXlv
dXRUZXN0UmVzdWx0c1JlYWRlcihzZWxmLl90b29sLCBzZWxmLl9wb3J0LnJlc3VsdHNfZGlyZWN0
b3J5KCksIHNlbGYuX2xvZ19kaXJlY3RvcnkoKSkKKworICAgICAgICBpZiBzZWxmLmdyb3VwKCkg
PT0gImpzYyI6CisgICAgICAgICAgICBzZWxmLl90ZXN0X3Jlc3VsdHNfcmVhZGVyID0gSlNDVGVz
dFJlc3VsdHNSZWFkZXIoc2VsZi5fdG9vbCwgc2VsZi5fcG9ydC5qc2NfcmVzdWx0c19kaXJlY3Rv
cnkoKSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYuX3Rlc3RfcmVzdWx0c19yZWFk
ZXIgPSBMYXlvdXRUZXN0UmVzdWx0c1JlYWRlcihzZWxmLl90b29sLCBzZWxmLl9wb3J0LnJlc3Vs
dHNfZGlyZWN0b3J5KCksIHNlbGYuX2xvZ19kaXJlY3RvcnkoKSkKIAogICAgIGRlZiBfZmFpbGlu
Z190ZXN0c19tZXNzYWdlKHNlbGYsIHRhc2ssIHBhdGNoKToKICAgICAgICAgcmVzdWx0cyA9IHRh
c2sucmVzdWx0c19mcm9tX3BhdGNoX3Rlc3RfcnVuKHBhdGNoKQpAQCAtNzksOCArODYsMTIgQEAg
Y2xhc3MgQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0oQWJzdHJhY3RSZXZpZXdRdWV1ZSwgRWFy
bHlXYXJuaW5nU3lzdGVtVGFza0RlbGUKICAgICAgICAgICAgIHRvb2wuYnVncy5hZGRfY2NfdG9f
YnVnKHBhdGNoLmJ1Z19pZCgpLCBzZWxmLndhdGNoZXJzKQogICAgICAgICB0b29sLmJ1Z3Muc2V0
X2ZsYWdfb25fYXR0YWNobWVudChwYXRjaC5pZCgpLCAiY29tbWl0LXF1ZXVlIiwgIi0iLCBtZXNz
YWdlKQogCisgICAgIyBUaGlzIGV4aXN0cyBmb3IgbW9ja2luZworICAgIGRlZiBfY3JlYXRlX3Rh
c2soc2VsZiwgcGF0Y2gpOgorICAgICAgICByZXR1cm4gRWFybHlXYXJuaW5nU3lzdGVtVGFzayhz
ZWxmLCBwYXRjaCwgc2VsZi5fb3B0aW9ucy5ydW5fdGVzdHMpCisKICAgICBkZWYgcmV2aWV3X3Bh
dGNoKHNlbGYsIHBhdGNoKToKLSAgICAgICAgdGFzayA9IEVhcmx5V2FybmluZ1N5c3RlbVRhc2so
c2VsZiwgcGF0Y2gsIHNlbGYuX29wdGlvbnMucnVuX3Rlc3RzKQorICAgICAgICB0YXNrID0gc2Vs
Zi5fY3JlYXRlX3Rhc2socGF0Y2gpCiAgICAgICAgIHRyeToKICAgICAgICAgICAgIHN1Y2NlZWRl
ZCA9IHRhc2sucnVuKCkKICAgICAgICAgICAgIGlmIG5vdCBzdWNjZWVkZWQ6CkBAIC05Myw2ICsx
MDQsOSBAQCBjbGFzcyBBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbShBYnN0cmFjdFJldmlld1F1
ZXVlLCBFYXJseVdhcm5pbmdTeXN0ZW1UYXNrRGVsZQogICAgICAgICBleGNlcHQgVW5hYmxlVG9B
cHBseVBhdGNoLCBlOgogICAgICAgICAgICAgc2VsZi5fZGlkX2Vycm9yKHBhdGNoLCAiJXMgdW5h
YmxlIHRvIGFwcGx5IHBhdGNoLiIgJSBzZWxmLm5hbWUpCiAgICAgICAgICAgICByZXR1cm4gRmFs
c2UKKyAgICAgICAgZXhjZXB0IFBhdGNoSXNOb3RBcHBsaWNhYmxlLCBlOgorICAgICAgICAgICAg
c2VsZi5fZGlkX3NraXAocGF0Y2gpCisgICAgICAgICAgICByZXR1cm4gRmFsc2UKICAgICAgICAg
ZXhjZXB0IFNjcmlwdEVycm9yLCBlOgogICAgICAgICAgICAgc2VsZi5fcG9zdF9yZWplY3RfbWVz
c2FnZV9vbl9idWcoc2VsZi5fdG9vbCwgcGF0Y2gsIHRhc2suZmFpbHVyZV9zdGF0dXNfaWQsIHNl
bGYuX2ZhaWxpbmdfdGVzdHNfbWVzc2FnZSh0YXNrLCBwYXRjaCkpCiAgICAgICAgICAgICByZXN1
bHRzX2FyY2hpdmUgPSB0YXNrLnJlc3VsdHNfYXJjaGl2ZV9mcm9tX3BhdGNoX3Rlc3RfcnVuKHBh
dGNoKQpAQCAtMTE3LDE0ICsxMzEsMTcgQEAgY2xhc3MgQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0
ZW0oQWJzdHJhY3RSZXZpZXdRdWV1ZSwgRWFybHlXYXJuaW5nU3lzdGVtVGFza0RlbGUKICAgICAg
ICAgcmV0dXJuIHNlbGYuX3VwZGF0ZV9zdGF0dXMobWVzc2FnZSwgcGF0Y2g9cGF0Y2gsIHJlc3Vs
dHNfZmlsZT1mYWlsdXJlX2xvZykKIAogICAgIGRlZiB0ZXN0X3Jlc3VsdHMoc2VsZik6Ci0gICAg
ICAgIHJldHVybiBzZWxmLl9sYXlvdXRfdGVzdF9yZXN1bHRzX3JlYWRlci5yZXN1bHRzKCkKKyAg
ICAgICAgcmV0dXJuIHNlbGYuX3Rlc3RfcmVzdWx0c19yZWFkZXIucmVzdWx0cygpCiAKICAgICBk
ZWYgYXJjaGl2ZV9sYXN0X3Rlc3RfcmVzdWx0cyhzZWxmLCBwYXRjaCk6Ci0gICAgICAgIHJldHVy
biBzZWxmLl9sYXlvdXRfdGVzdF9yZXN1bHRzX3JlYWRlci5hcmNoaXZlKHBhdGNoKQorICAgICAg
ICByZXR1cm4gc2VsZi5fdGVzdF9yZXN1bHRzX3JlYWRlci5hcmNoaXZlKHBhdGNoKQogCiAgICAg
ZGVmIGJ1aWxkX3N0eWxlKHNlbGYpOgogICAgICAgICByZXR1cm4gc2VsZi5fYnVpbGRfc3R5bGUK
IAorICAgIGRlZiBncm91cChzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX2dyb3VwCisKICAg
ICBkZWYgcmVmZXRjaF9wYXRjaChzZWxmLCBwYXRjaCk6CiAgICAgICAgIHJldHVybiBzZWxmLl90
b29sLmJ1Z3MuZmV0Y2hfYXR0YWNobWVudChwYXRjaC5pZCgpKQogCkBAIC0xNDksMTIgKzE2Niwx
MyBAQCBjbGFzcyBBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbShBYnN0cmFjdFJldmlld1F1ZXVl
LCBFYXJseVdhcm5pbmdTeXN0ZW1UYXNrRGVsZQogCiAgICAgICAgIGNsYXNzZXMgPSBbXQogICAg
ICAgICBmb3IgbmFtZSwgY29uZmlnIGluIGV3c2VzLml0ZXJpdGVtcygpOgotICAgICAgICAgICAg
Y2xhc3Nlcy5hcHBlbmQodHlwZShuYW1lLmVuY29kZSgndXRmLTgnKS50cmFuc2xhdGUoTm9uZSwg
JyAtJyksIChBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbSwpLCB7CisgICAgICAgICAgICBjbGFz
c2VzLmFwcGVuZCh0eXBlKG5hbWUuZW5jb2RlKCd1dGYtOCcpLnRyYW5zbGF0ZShOb25lLCAnIC0n
KSwgKGNscywpLCB7CiAgICAgICAgICAgICAgICAgJ25hbWUnOiBjb25maWcuZ2V0KCduYW1lJywg
Y29uZmlnWydwb3J0J10gKyAnLWV3cycpLAogICAgICAgICAgICAgICAgICdwb3J0X25hbWUnOiBj
b25maWdbJ3BvcnQnXSwKICAgICAgICAgICAgICAgICAnYXJjaGl0ZWN0dXJlJzogY29uZmlnLmdl
dCgnYXJjaGl0ZWN0dXJlJywgTm9uZSksCiAgICAgICAgICAgICAgICAgJ19idWlsZF9zdHlsZSc6
IGNvbmZpZy5nZXQoJ3N0eWxlJywgInJlbGVhc2UiKSwKICAgICAgICAgICAgICAgICAnd2F0Y2hl
cnMnOiBjb25maWcuZ2V0KCd3YXRjaGVycycsIFtdKSwKICAgICAgICAgICAgICAgICAncnVuX3Rl
c3RzJzogY29uZmlnLmdldCgncnVuVGVzdHMnLCBjbHMucnVuX3Rlc3RzKSwKKyAgICAgICAgICAg
ICAgICAnX2dyb3VwJzogY29uZmlnLmdldCgnZ3JvdXAnLCBOb25lKSwKICAgICAgICAgICAgIH0p
KQogICAgICAgICByZXR1cm4gY2xhc3NlcwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS90b29sL2NvbW1hbmRzL2Vhcmx5d2FybmluZ3N5c3RlbV91bml0dGVzdC5weSBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9lYXJseXdhcm5pbmdzeXN0ZW1fdW5pdHRl
c3QucHkKaW5kZXggMDg4ODc4MTNjZTJlOTNhOGVjOWRhMzc2MzZlY2JkZTllZmYzYzllNy4uZjhi
ZWRkYzQ5YWU4ZWFmY2FjMGZlZDY5OGQzZmRhZWUwYzhhZWM1YiAxMDA2NDQKLS0tIGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Vhcmx5d2FybmluZ3N5c3RlbV91bml0dGVz
dC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZWFybHl3YXJu
aW5nc3lzdGVtX3VuaXR0ZXN0LnB5CkBAIC0xLDQgKzEsNSBAQAogIyBDb3B5cmlnaHQgKEMpIDIw
MDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDE3
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucyBhcmUKQEAgLTI5LDYgKzMwLDcgQEAKIGZyb20gd2Via2l0cHkudGhpcmRwYXJ0eS5tb2Nr
IGltcG9ydCBNb2NrCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5ob3N0IGltcG9ydCBIb3N0CiBmcm9t
IHdlYmtpdHB5LmNvbW1vbi5ob3N0X21vY2sgaW1wb3J0IE1vY2tIb3N0Citmcm9tIHdlYmtpdHB5
LmNvbW1vbi5uZXQuanNjdGVzdHJlc3VsdHMgaW1wb3J0IEpTQ1Rlc3RSZXN1bHRzCiBmcm9tIHdl
YmtpdHB5LmNvbW1vbi5uZXQubGF5b3V0dGVzdHJlc3VsdHMgaW1wb3J0IExheW91dFRlc3RSZXN1
bHRzCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0ub3V0cHV0Y2FwdHVyZSBpbXBvcnQgT3V0
cHV0Q2FwdHVyZQogZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMubW9kZWxzIGltcG9ydCB0ZXN0
X3Jlc3VsdHMKQEAgLTQxLDYyICs0MywxMDAgQEAgZnJvbSB3ZWJraXRweS50b29sLmNvbW1hbmRz
LnF1ZXVlc3Rlc3QgaW1wb3J0IFF1ZXVlc1Rlc3QKIGZyb20gd2Via2l0cHkudG9vbC5tb2NrdG9v
bCBpbXBvcnQgTW9ja1Rvb2wsIE1vY2tPcHRpb25zCiAKIAotY2xhc3MgQWJzdHJhY3RFYXJseVdh
cm5pbmdTeXN0ZW1UZXN0KFF1ZXVlc1Rlc3QpOgotICAgIGRlZiB0ZXN0X2ZhaWxpbmdfdGVzdHNf
bWVzc2FnZShzZWxmKToKLSAgICAgICAgIyBOZWVkZWQgdG8gZGVmaW5lIHBvcnRfbmFtZSwgdXNl
ZCBpbiBBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbS5fX2luaXRfXwotICAgICAgICBjbGFzcyBU
ZXN0RVdTKEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtKToKLSAgICAgICAgICAgIHBvcnRfbmFt
ZSA9ICJ3aW4iICAjIE5lZWRzIHRvIGJlIGEgcG9ydCB3aGljaCBwb3J0L2ZhY3RvcnkgdW5kZXJz
dGFuZHMuCi0gICAgICAgICAgICBfYnVpbGRfc3R5bGUgPSBOb25lCisjIE5lZWRlZCB0byBkZWZp
bmUgcG9ydF9uYW1lLCB1c2VkIGluIEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtLl9faW5pdF9f
CitjbGFzcyBUZXN0RVdTKEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtKToKKyAgICBwb3J0X25h
bWUgPSAid2luIiAgIyBOZWVkcyB0byBiZSBhIHBvcnQgd2hpY2ggcG9ydC9mYWN0b3J5IHVuZGVy
c3RhbmRzLgorICAgIF9idWlsZF9zdHlsZSA9IE5vbmUKKyAgICBfZ3JvdXAgPSBOb25lCiAKLSAg
ICAgICAgZXdzID0gVGVzdEVXUygpCisKK2NsYXNzIFRlc3RKU0NFV1MoQWJzdHJhY3RFYXJseVdh
cm5pbmdTeXN0ZW0pOgorICAgIHBvcnRfbmFtZSA9ICJtYWMiICAjIE5lZWRzIHRvIGJlIGEgcG9y
dCB3aGljaCBwb3J0L2ZhY3RvcnkgdW5kZXJzdGFuZHMuCisgICAgX2J1aWxkX3N0eWxlID0gTm9u
ZQorICAgIF9ncm91cCA9ICJqc2MiCisKKworY2xhc3MgQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0
ZW1UZXN0KFF1ZXVlc1Rlc3QpOgorICAgIGRlZiBfdGVzdF9tZXNzYWdlKHNlbGYsIGV3cywgcmVz
dWx0cywgbWVzc2FnZSk6CiAgICAgICAgIGV3cy5iaW5kX3RvX3Rvb2woTW9ja1Rvb2woKSkKICAg
ICAgICAgZXdzLmhvc3QgPSBNb2NrSG9zdCgpCiAgICAgICAgIGV3cy5fb3B0aW9ucyA9IE1vY2tP
cHRpb25zKHBvcnQ9Tm9uZSwgY29uZmlybT1GYWxzZSkKICAgICAgICAgT3V0cHV0Q2FwdHVyZSgp
LmFzc2VydF9vdXRwdXRzKHNlbGYsIGV3cy5iZWdpbl93b3JrX3F1ZXVlLCBleHBlY3RlZF9sb2dz
PXNlbGYuX2RlZmF1bHRfYmVnaW5fd29ya19xdWV1ZV9sb2dzKGV3cy5uYW1lKSkKICAgICAgICAg
dGFzayA9IE1vY2soKQotICAgICAgICB0YXNrLnJlc3VsdHNfZnJvbV9wYXRjaF90ZXN0X3J1biA9
IGxhbWJkYSBhOiBMYXlvdXRUZXN0UmVzdWx0cyhbdGVzdF9yZXN1bHRzLlRlc3RSZXN1bHQoImZv
by5odG1sIiwgZmFpbHVyZXM9W3Rlc3RfZmFpbHVyZXMuRmFpbHVyZVRleHRNaXNtYXRjaCgpXSks
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHRlc3RfcmVzdWx0cy5UZXN0UmVzdWx0KCJiYXIuaHRtbCIsIGZh
aWx1cmVzPVt0ZXN0X2ZhaWx1cmVzLkZhaWx1cmVUZXh0TWlzbWF0Y2goKV0pXSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQ9RmFsc2UpCisgICAgICAgIHRh
c2sucmVzdWx0c19mcm9tX3BhdGNoX3Rlc3RfcnVuID0gcmVzdWx0cwogICAgICAgICBwYXRjaCA9
IGV3cy5fdG9vbC5idWdzLmZldGNoX2F0dGFjaG1lbnQoMTAwMDApCi0gICAgICAgIHNlbGYuYXNz
ZXJ0TXVsdGlMaW5lRXF1YWwoZXdzLl9mYWlsaW5nX3Rlc3RzX21lc3NhZ2UodGFzaywgcGF0Y2gp
LCAiTmV3IGZhaWxpbmcgdGVzdHM6XG5mb28uaHRtbFxuYmFyLmh0bWwiKQorICAgICAgICBzZWxm
LmFzc2VydE11bHRpTGluZUVxdWFsKGV3cy5fZmFpbGluZ190ZXN0c19tZXNzYWdlKHRhc2ssIHBh
dGNoKSwgbWVzc2FnZSkKKworICAgIGRlZiB0ZXN0X2ZhaWxpbmdfdGVzdHNfbWVzc2FnZShzZWxm
KToKKyAgICAgICAgZXdzID0gVGVzdEVXUygpCisgICAgICAgIHJlc3VsdHMgPSBsYW1iZGEgYTog
TGF5b3V0VGVzdFJlc3VsdHMoW3Rlc3RfcmVzdWx0cy5UZXN0UmVzdWx0KCJmb28uaHRtbCIsIGZh
aWx1cmVzPVt0ZXN0X2ZhaWx1cmVzLkZhaWx1cmVUZXh0TWlzbWF0Y2goKV0pLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9yZXN1bHRzLlRlc3RS
ZXN1bHQoImJhci5odG1sIiwgZmFpbHVyZXM9W3Rlc3RfZmFpbHVyZXMuRmFpbHVyZVRleHRNaXNt
YXRjaCgpXSldLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQ9RmFsc2UpCisgICAgICAgIG1lc3NhZ2Ug
PSAiTmV3IGZhaWxpbmcgdGVzdHM6XG5mb28uaHRtbFxuYmFyLmh0bWwiCisgICAgICAgIHNlbGYu
X3Rlc3RfbWVzc2FnZShld3MsIHJlc3VsdHMsIG1lc3NhZ2UpCisKKyAgICBkZWYgdGVzdF9mYWls
aW5nX2pzY190ZXN0c19tZXNzYWdlKHNlbGYpOgorICAgICAgICBld3MgPSBUZXN0SlNDRVdTKCkK
KyAgICAgICAgcmVzdWx0cyA9IGxhbWJkYSBhOiBKU0NUZXN0UmVzdWx0cyhGYWxzZSwgWyJlczYu
eWFtbC9lczYvdHlwZWRfYXJyYXlzX0ludDhBcnJheS5qcy5kZWZhdWx0IiwgImVzNi55YW1sL2Vz
Ni90eXBlZF9hcnJheXNfVWludDhBcnJheS5qcy5kZWZhdWx0Il0pCisgICAgICAgIG1lc3NhZ2Ug
PSAiTmV3IGZhaWxpbmcgdGVzdHM6XG5lczYueWFtbC9lczYvdHlwZWRfYXJyYXlzX0ludDhBcnJh
eS5qcy5kZWZhdWx0XG5lczYueWFtbC9lczYvdHlwZWRfYXJyYXlzX1VpbnQ4QXJyYXkuanMuZGVm
YXVsdFxuYXBpVGVzdHMiCisgICAgICAgIHNlbGYuX3Rlc3RfbWVzc2FnZShld3MsIHJlc3VsdHMs
IG1lc3NhZ2UpCisKKworY2xhc3MgTW9ja0Vhcmx5V2FybmluZ1N5c3RlbVRhc2tGb3JJbmNvbmNs
dXNpdmVKU0NSZXN1bHRzKEVhcmx5V2FybmluZ1N5c3RlbVRhc2spOgorICAgIGRlZiBfdGVzdF9w
YXRjaChzZWxmKToKKyAgICAgICAgc2VsZi5fdGVzdCgpCisgICAgICAgIHJlc3VsdHMgPSBzZWxm
Ll9kZWxlZ2F0ZS50ZXN0X3Jlc3VsdHMoKQorICAgICAgICByZXR1cm4gYm9vbChyZXN1bHRzKQor
CisKK2NsYXNzIE1vY2tBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbUZvckluY29uY2x1c2l2ZUpT
Q1Jlc3VsdHMoQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0pOgorICAgIGRlZiBfY3JlYXRlX3Rh
c2soc2VsZiwgcGF0Y2gpOgorICAgICAgICB0YXNrID0gTW9ja0Vhcmx5V2FybmluZ1N5c3RlbVRh
c2tGb3JJbmNvbmNsdXNpdmVKU0NSZXN1bHRzKHNlbGYsIHBhdGNoLCBzZWxmLl9vcHRpb25zLnJ1
bl90ZXN0cykKKyAgICAgICAgcmV0dXJuIHRhc2sKIAogCiBjbGFzcyBFYXJseVdhcm5pbmdTeXN0
ZW1UZXN0KFF1ZXVlc1Rlc3QpOgotICAgIGRlZiBfZGVmYXVsdF9leHBlY3RlZF9sb2dzKHNlbGYs
IGV3cyk6CisgICAgZGVmIF9kZWZhdWx0X2V4cGVjdGVkX2xvZ3Moc2VsZiwgZXdzLCBjb25jbHVz
aXZlKToKICAgICAgICAgc3RyaW5nX3JlcGxhY2VtZW50cyA9IHsKICAgICAgICAgICAgICJuYW1l
IjogZXdzLm5hbWUsCiAgICAgICAgICAgICAicG9ydCI6IGV3cy5wb3J0X25hbWUsCiAgICAgICAg
ICAgICAiYXJjaGl0ZWN0dXJlIjogIiAtLWFyY2hpdGVjdHVyZT0lcyIgJSBld3MuYXJjaGl0ZWN0
dXJlIGlmIGV3cy5hcmNoaXRlY3R1cmUgZWxzZSAiIiwKICAgICAgICAgICAgICJidWlsZF9zdHls
ZSI6IGV3cy5idWlsZF9zdHlsZSgpLAorICAgICAgICAgICAgImdyb3VwIjogZXdzLmdyb3VwKCks
CiAgICAgICAgIH0KICAgICAgICAgaWYgZXdzLnJ1bl90ZXN0czoKLSAgICAgICAgICAgIHJ1bl90
ZXN0c19saW5lID0gIlJ1bm5pbmc6IHdlYmtpdC1wYXRjaCAtLXN0YXR1cy1ob3N0PWV4YW1wbGUu
Y29tIGJ1aWxkLWFuZC10ZXN0IC0tbm8tY2xlYW4gLS1uby11cGRhdGUgLS10ZXN0IC0tbm9uLWlu
dGVyYWN0aXZlIC0tYnVpbGQtc3R5bGU9JShidWlsZF9zdHlsZSlzIC0tcG9ydD0lKHBvcnQpcyUo
YXJjaGl0ZWN0dXJlKXNcbiIgJSBzdHJpbmdfcmVwbGFjZW1lbnRzCisgICAgICAgICAgICBydW5f
dGVzdHNfbGluZSA9ICJSdW5uaW5nOiB3ZWJraXQtcGF0Y2ggLS1zdGF0dXMtaG9zdD1leGFtcGxl
LmNvbSBidWlsZC1hbmQtdGVzdCAtLW5vLWNsZWFuIC0tbm8tdXBkYXRlIC0tdGVzdCAtLW5vbi1p
bnRlcmFjdGl2ZSAtLWJ1aWxkLXN0eWxlPSUoYnVpbGRfc3R5bGUpcyAtLWdyb3VwPSUoZ3JvdXAp
cyAtLXBvcnQ9JShwb3J0KXMlKGFyY2hpdGVjdHVyZSlzXG4iICUgc3RyaW5nX3JlcGxhY2VtZW50
cwogICAgICAgICBlbHNlOgogICAgICAgICAgICAgcnVuX3Rlc3RzX2xpbmUgPSAiIgogICAgICAg
ICBzdHJpbmdfcmVwbGFjZW1lbnRzWydydW5fdGVzdHNfbGluZSddID0gcnVuX3Rlc3RzX2xpbmUK
IAorICAgICAgICBpZiBjb25jbHVzaXZlOgorICAgICAgICAgICAgcmVzdWx0X2xpbmVzID0gIk1P
Q0s6IHVwZGF0ZV9zdGF0dXM6ICUobmFtZSlzIFBhc3Ncbk1PQ0s6IHJlbGVhc2Vfd29ya19pdGVt
OiAlKG5hbWUpcyAxMDAwMFxuIiAlIHN0cmluZ19yZXBsYWNlbWVudHMKKyAgICAgICAgZWxzZToK
KyAgICAgICAgICAgIHJlc3VsdF9saW5lcyA9ICJNT0NLOiByZWxlYXNlX2xvY2s6ICUobmFtZSlz
IDEwMDAwXG4iICUgc3RyaW5nX3JlcGxhY2VtZW50cworICAgICAgICBzdHJpbmdfcmVwbGFjZW1l
bnRzWydyZXN1bHRfbGluZXMnXSA9IHJlc3VsdF9saW5lcworCiAgICAgICAgIGV4cGVjdGVkX2xv
Z3MgPSB7CiAgICAgICAgICAgICAiYmVnaW5fd29ya19xdWV1ZSI6IHNlbGYuX2RlZmF1bHRfYmVn
aW5fd29ya19xdWV1ZV9sb2dzKGV3cy5uYW1lKSwKICAgICAgICAgICAgICJwcm9jZXNzX3dvcmtf
aXRlbSI6ICIiIk1PQ0s6IHVwZGF0ZV9zdGF0dXM6ICUobmFtZSlzIFN0YXJ0ZWQgcHJvY2Vzc2lu
ZyBwYXRjaAogUnVubmluZzogd2Via2l0LXBhdGNoIC0tc3RhdHVzLWhvc3Q9ZXhhbXBsZS5jb20g
Y2xlYW4gLS1wb3J0PSUocG9ydClzJShhcmNoaXRlY3R1cmUpcwogUnVubmluZzogd2Via2l0LXBh
dGNoIC0tc3RhdHVzLWhvc3Q9ZXhhbXBsZS5jb20gdXBkYXRlIC0tcG9ydD0lKHBvcnQpcyUoYXJj
aGl0ZWN0dXJlKXMKIFJ1bm5pbmc6IHdlYmtpdC1wYXRjaCAtLXN0YXR1cy1ob3N0PWV4YW1wbGUu
Y29tIGFwcGx5LWF0dGFjaG1lbnQgLS1uby11cGRhdGUgLS1ub24taW50ZXJhY3RpdmUgMTAwMDAg
LS1wb3J0PSUocG9ydClzJShhcmNoaXRlY3R1cmUpcwotUnVubmluZzogd2Via2l0LXBhdGNoIC0t
c3RhdHVzLWhvc3Q9ZXhhbXBsZS5jb20gYnVpbGQgLS1uby1jbGVhbiAtLW5vLXVwZGF0ZSAtLWJ1
aWxkLXN0eWxlPSUoYnVpbGRfc3R5bGUpcyAtLXBvcnQ9JShwb3J0KXMlKGFyY2hpdGVjdHVyZSlz
Ci0lKHJ1bl90ZXN0c19saW5lKXNNT0NLOiB1cGRhdGVfc3RhdHVzOiAlKG5hbWUpcyBQYXNzCi1N
T0NLOiByZWxlYXNlX3dvcmtfaXRlbTogJShuYW1lKXMgMTAwMDAKLSIiIiAlIHN0cmluZ19yZXBs
YWNlbWVudHMsCitSdW5uaW5nOiB3ZWJraXQtcGF0Y2ggLS1zdGF0dXMtaG9zdD1leGFtcGxlLmNv
bSBjaGVjay1wYXRjaC1yZWxldmFuY2UgLS1ncm91cD0lKGdyb3VwKXMgLS1wb3J0PSUocG9ydClz
JShhcmNoaXRlY3R1cmUpcworUnVubmluZzogd2Via2l0LXBhdGNoIC0tc3RhdHVzLWhvc3Q9ZXhh
bXBsZS5jb20gYnVpbGQgLS1uby1jbGVhbiAtLW5vLXVwZGF0ZSAtLWJ1aWxkLXN0eWxlPSUoYnVp
bGRfc3R5bGUpcyAtLWdyb3VwPSUoZ3JvdXApcyAtLXBvcnQ9JShwb3J0KXMlKGFyY2hpdGVjdHVy
ZSlzCislKHJ1bl90ZXN0c19saW5lKXMlKHJlc3VsdF9saW5lcylzIiIiICUgc3RyaW5nX3JlcGxh
Y2VtZW50cywKICAgICAgICAgICAgICJoYW5kbGVfdW5leHBlY3RlZF9lcnJvciI6ICJNb2NrIGVy
cm9yIG1lc3NhZ2VcbiIsCiAgICAgICAgICAgICAiaGFuZGxlX3NjcmlwdF9lcnJvciI6ICJTY3Jp
cHRFcnJvciBlcnJvciBtZXNzYWdlXG5cbk1PQ0sgb3V0cHV0XG4iLAogICAgICAgICB9CiAgICAg
ICAgIHJldHVybiBleHBlY3RlZF9sb2dzCiAKLSAgICBkZWYgX3Rlc3RfZXdzKHNlbGYsIGV3cyk6
CisgICAgZGVmIF90ZXN0X2V3cyhzZWxmLCBld3MsIHJlc3VsdHNfYXJlX2NvbmNsdXNpdmU9VHJ1
ZSk6CiAgICAgICAgIGV3cy5iaW5kX3RvX3Rvb2woTW9ja1Rvb2woKSkKICAgICAgICAgZXdzLmhv
c3QgPSBNb2NrSG9zdCgpCiAgICAgICAgIG9wdGlvbnMgPSBNb2NrKCkKICAgICAgICAgb3B0aW9u
cy5wb3J0ID0gTm9uZQogICAgICAgICBvcHRpb25zLnJ1bl90ZXN0cyA9IGV3cy5ydW5fdGVzdHMK
LSAgICAgICAgc2VsZi5hc3NlcnRfcXVldWVfb3V0cHV0cyhld3MsIGV4cGVjdGVkX2xvZ3M9c2Vs
Zi5fZGVmYXVsdF9leHBlY3RlZF9sb2dzKGV3cyksIG9wdGlvbnM9b3B0aW9ucykKKyAgICAgICAg
c2VsZi5hc3NlcnRfcXVldWVfb3V0cHV0cyhld3MsIGV4cGVjdGVkX2xvZ3M9c2VsZi5fZGVmYXVs
dF9leHBlY3RlZF9sb2dzKGV3cywgcmVzdWx0c19hcmVfY29uY2x1c2l2ZSksIG9wdGlvbnM9b3B0
aW9ucykKIAogICAgIGRlZiB0ZXN0X2V3c2VzKHNlbGYpOgogICAgICAgICBjbGFzc2VzID0gQWJz
dHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0ubG9hZF9ld3NfY2xhc3NlcygpCkBAIC0xMDQsMyArMTQ0
LDExIEBAIE1PQ0s6IHJlbGVhc2Vfd29ya19pdGVtOiAlKG5hbWUpcyAxMDAwMAogICAgICAgICBz
ZWxmLm1heERpZmYgPSBOb25lCiAgICAgICAgIGZvciBld3NfY2xhc3MgaW4gY2xhc3NlczoKICAg
ICAgICAgICAgIHNlbGYuX3Rlc3RfZXdzKGV3c19jbGFzcygpKQorCisgICAgZGVmIHRlc3RfaW5j
b25jbHVzaXZlX2pzY190ZXN0X3Jlc3VsdHMoc2VsZik6CisgICAgICAgIGNsYXNzZXMgPSBNb2Nr
QWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW1Gb3JJbmNvbmNsdXNpdmVKU0NSZXN1bHRzLmxvYWRf
ZXdzX2NsYXNzZXMoKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoY2xhc3NlcykKKyAgICAgICAg
c2VsZi5tYXhEaWZmID0gTm9uZQorICAgICAgICB0ZXN0X2NsYXNzZXMgPSBmaWx0ZXIobGFtYmRh
IHg6IHgucnVuX3Rlc3RzIGFuZCB4Lmdyb3VwID09ICJqc2MiLCBjbGFzc2VzKQorICAgICAgICBm
b3IgZXdzX2NsYXNzIGluIHRlc3RfY2xhc3NlczoKKyAgICAgICAgICAgIHNlbGYuX3Rlc3RfZXdz
KGV3c19jbGFzcygpLCBGYWxzZSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
dG9vbC9jb21tYW5kcy9xdWV1ZXMucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29t
bWFuZHMvcXVldWVzLnB5CmluZGV4IDFjNzFhYWNkNzUzMGRjNzI4ZjU1NDkwOWUyZDJiYmM3N2Q4
ZDExY2IuLmZlMjEyN2NmZTI3NGVkZjA3NWVjZDJjZDIzOWI0NzBlZDgzMGY5N2EgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9xdWV1ZXMucHkKKysrIGIv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3F1ZXVlcy5weQpAQCAtMSw1ICsx
LDUgQEAKICMgQ29weXJpZ2h0IChjKSAyMDA5IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0jIENvcHlyaWdodCAoYykgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisjIENvcHlyaWdodCAoYykgMjAwOSwgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC02Miw2ICs2Miw3IEBAIGNs
YXNzIEFic3RyYWN0UXVldWUoQ29tbWFuZCwgUXVldWVFbmdpbmVEZWxlZ2F0ZSk6CiAgICAgd2F0
Y2hlcnMgPSBbCiAgICAgXQogCisgICAgX3NraXBfc3RhdHVzID0gIlNraXAiCiAgICAgX3Bhc3Nf
c3RhdHVzID0gIlBhc3MiCiAgICAgX2ZhaWxfc3RhdHVzID0gIkZhaWwiCiAgICAgX2Vycm9yX3N0
YXR1cyA9ICJFcnJvciIKQEAgLTI0NCw2ICsyNDUsMTAgQEAgY2xhc3MgQWJzdHJhY3RQYXRjaFF1
ZXVlKEFic3RyYWN0UXVldWUpOgogICAgICAgICBzZWxmLl91cGRhdGVfc3RhdHVzKG1lc3NhZ2Us
IHBhdGNoKQogICAgICAgICBzZWxmLl9yZWxlYXNlX3dvcmtfaXRlbShwYXRjaCkKIAorICAgIGRl
ZiBfZGlkX3NraXAoc2VsZiwgcGF0Y2gpOgorICAgICAgICBzZWxmLl91cGRhdGVfc3RhdHVzKHNl
bGYuX3NraXBfc3RhdHVzLCBwYXRjaCkKKyAgICAgICAgc2VsZi5fcmVsZWFzZV93b3JrX2l0ZW0o
cGF0Y2gpCisKICAgICBkZWYgX3VubG9ja19wYXRjaChzZWxmLCBwYXRjaCk6CiAgICAgICAgIHNl
bGYuX3Rvb2wuc3RhdHVzX3NlcnZlci5yZWxlYXNlX2xvY2soc2VsZi5uYW1lLCBwYXRjaCkKIApk
aWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL19faW5pdF9fLnB5
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL19faW5pdF9fLnB5CmluZGV4IDM1
NmFjYWIwM2FkODI3NGNlOWJkYTY4NTg4NjRmZjE5YjY0ZjRhMGEuLjZjOWMwOWFjNTJhMzg2Yjlm
MGNmMzYzYjljMDNiYmFhNGMwMDM4NjEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvdG9vbC9zdGVwcy9fX2luaXRfXy5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rv
b2wvc3RlcHMvX19pbml0X18ucHkKQEAgLTEsNCArMSw1IEBACiAjIENvcHlyaWdodCAoQykgMjAx
MCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMTcg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zIGFyZQpAQCAtMzMsNiArMzQsNyBAQCBmcm9tIHdlYmtpdHB5LnRvb2wuc3RlcHMuYXBwbHlw
YXRjaHdpdGhsb2NhbGNvbW1pdCBpbXBvcnQgQXBwbHlQYXRjaFdpdGhMb2NhbENvbQogZnJvbSB3
ZWJraXRweS50b29sLnN0ZXBzLmFwcGx5d2F0Y2hsaXN0IGltcG9ydCBBcHBseVdhdGNoTGlzdAog
ZnJvbSB3ZWJraXRweS50b29sLnN0ZXBzLmF0dGFjaHRvYnVnIGltcG9ydCBBdHRhY2hUb0J1Zwog
ZnJvbSB3ZWJraXRweS50b29sLnN0ZXBzLmJ1aWxkIGltcG9ydCBCdWlsZAorZnJvbSB3ZWJraXRw
eS50b29sLnN0ZXBzLmNoZWNrcGF0Y2hyZWxldmFuY2UgaW1wb3J0IENoZWNrUGF0Y2hSZWxldmFu
Y2UKIGZyb20gd2Via2l0cHkudG9vbC5zdGVwcy5jaGVja3N0eWxlIGltcG9ydCBDaGVja1N0eWxl
CiBmcm9tIHdlYmtpdHB5LnRvb2wuc3RlcHMuY2xlYW53b3JraW5nZGlyZWN0b3J5IGltcG9ydCBD
bGVhbldvcmtpbmdEaXJlY3RvcnkKIGZyb20gd2Via2l0cHkudG9vbC5zdGVwcy5jbG9zZWJ1ZyBp
bXBvcnQgQ2xvc2VCdWcKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9z
dGVwcy9idWlsZC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9idWlsZC5w
eQppbmRleCBmNzRmZmNlNzA5NDFjNjFlNTk2NzkyZTRjNjBkY2Q3ZjhiNjVlOWVjLi42ZDY0OGUz
NGZlM2E5MjlhOGNhNmI3MWIwMmE3MGQ5YTg0MzI1ZDFhIDEwMDY0NAotLS0gYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvYnVpbGQucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS90b29sL3N0ZXBzL2J1aWxkLnB5CkBAIC0xLDQgKzEsNSBAQAogIyBDb3B5cmlnaHQgKEMp
IDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAy
MDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucyBhcmUKQEAgLTQxLDI4ICs0MiwzNSBAQCBjbGFzcyBCdWlsZChBYnN0cmFjdFN0ZXAp
OgogICAgICAgICAgICAgT3B0aW9ucy5idWlsZCwKICAgICAgICAgICAgIE9wdGlvbnMucXVpZXQs
CiAgICAgICAgICAgICBPcHRpb25zLmJ1aWxkX3N0eWxlLAorICAgICAgICAgICAgT3B0aW9ucy5n
cm91cCwKICAgICAgICAgXQogCi0gICAgZGVmIGJ1aWxkKHNlbGYsIGJ1aWxkX3N0eWxlKToKKyAg
ICBkZWYgYnVpbGQoc2VsZiwgYnVpbGRfc3R5bGUsIGdyb3VwKToKICAgICAgICAgZW52aXJvbm1l
bnQgPSBzZWxmLl90b29sLmNvcHlfY3VycmVudF9lbnZpcm9ubWVudCgpCiAgICAgICAgIGVudmly
b25tZW50LmRpc2FibGVfZ2NjX3NtYXJ0cXVvdGVzKCkKICAgICAgICAgZW52aXJvbm1lbnQuZGlz
YWJsZV9qaGJ1aWxkX1ZUMTAwX291dHB1dCgpCiAgICAgICAgIGVudiA9IGVudmlyb25tZW50LnRv
X2RpY3Rpb25hcnkoKQogCi0gICAgICAgIGJ1aWxkX3dlYmtpdF9jb21tYW5kID0gc2VsZi5fdG9v
bC5kZXByZWNhdGVkX3BvcnQoKS5idWlsZF93ZWJraXRfY29tbWFuZChidWlsZF9zdHlsZT1idWls
ZF9zdHlsZSkKKyAgICAgICAgaWYgZ3JvdXAgPT0gImpzYyI6CisgICAgICAgICAgICBidWlsZF9j
b21tYW5kID0gc2VsZi5fdG9vbC5kZXByZWNhdGVkX3BvcnQoKS5idWlsZF9qc2NfY29tbWFuZChi
dWlsZF9zdHlsZT1idWlsZF9zdHlsZSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGJ1aWxk
X2NvbW1hbmQgPSBzZWxmLl90b29sLmRlcHJlY2F0ZWRfcG9ydCgpLmJ1aWxkX3dlYmtpdF9jb21t
YW5kKGJ1aWxkX3N0eWxlPWJ1aWxkX3N0eWxlKQogCiAgICAgICAgIGlmIHNlbGYuX29wdGlvbnMu
YXJjaGl0ZWN0dXJlOgotICAgICAgICAgICAgYnVpbGRfd2Via2l0X2NvbW1hbmQgKz0gWydBUkNI
Uz0lcycgJSBzZWxmLl9vcHRpb25zLmFyY2hpdGVjdHVyZV0KKyAgICAgICAgICAgIGJ1aWxkX2Nv
bW1hbmQgKz0gWydBUkNIUz0lcycgJSBzZWxmLl9vcHRpb25zLmFyY2hpdGVjdHVyZV0KIAotICAg
ICAgICBzZWxmLl90b29sLmV4ZWN1dGl2ZS5ydW5fYW5kX3Rocm93X2lmX2ZhaWwoYnVpbGRfd2Vi
a2l0X2NvbW1hbmQsIHNlbGYuX29wdGlvbnMucXVpZXQsCisgICAgICAgIHNlbGYuX3Rvb2wuZXhl
Y3V0aXZlLnJ1bl9hbmRfdGhyb3dfaWZfZmFpbChidWlsZF9jb21tYW5kLCBzZWxmLl9vcHRpb25z
LnF1aWV0LAogICAgICAgICAgICAgY3dkPXNlbGYuX3Rvb2wuc2NtKCkuY2hlY2tvdXRfcm9vdCwg
ZW52PWVudikKIAogICAgIGRlZiBydW4oc2VsZiwgc3RhdGUpOgogICAgICAgICBpZiBub3Qgc2Vs
Zi5fb3B0aW9ucy5idWlsZDoKICAgICAgICAgICAgIHJldHVybgogICAgICAgICBfbG9nLmluZm8o
IkJ1aWxkaW5nIFdlYktpdCIpCisKKyAgICAgICAgZ3JvdXAgPSBzZWxmLl9vcHRpb25zLmdyb3Vw
CisKICAgICAgICAgaWYgc2VsZi5fb3B0aW9ucy5idWlsZF9zdHlsZSA9PSAiYm90aCI6Ci0gICAg
ICAgICAgICBzZWxmLmJ1aWxkKCJkZWJ1ZyIpCi0gICAgICAgICAgICBzZWxmLmJ1aWxkKCJyZWxl
YXNlIikKKyAgICAgICAgICAgIHNlbGYuYnVpbGQoImRlYnVnIiwgZ3JvdXApCisgICAgICAgICAg
ICBzZWxmLmJ1aWxkKCJyZWxlYXNlIiwgZ3JvdXApCiAgICAgICAgIGVsc2U6Ci0gICAgICAgICAg
ICBzZWxmLmJ1aWxkKHNlbGYuX29wdGlvbnMuYnVpbGRfc3R5bGUpCisgICAgICAgICAgICBzZWxm
LmJ1aWxkKHNlbGYuX29wdGlvbnMuYnVpbGRfc3R5bGUsIGdyb3VwKQpkaWZmIC0tZ2l0IGEvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL2NoZWNrcGF0Y2hyZWxldmFuY2UucHkgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvY2hlY2twYXRjaHJlbGV2YW5jZS5weQpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4xMDNlMTYzZDE4ZjE1ODFmZWVjMDk2NTg0MmQ0OTkwOWZiMDYxZjFmCi0tLSAv
ZGV2L251bGwKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL2NoZWNrcGF0
Y2hyZWxldmFuY2UucHkKQEAgLTAsMCArMSw3NCBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTcgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMg
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5E
CisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorIyBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
IyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorCitpbXBvcnQgbG9nZ2luZworaW1wb3J0IHJlCisKK2Zyb20gd2Via2l0
cHkuY29tbW9uLnN5c3RlbS5leGVjdXRpdmUgaW1wb3J0IFNjcmlwdEVycm9yCitmcm9tIHdlYmtp
dHB5LnRvb2wuc3RlcHMuYWJzdHJhY3RzdGVwIGltcG9ydCBBYnN0cmFjdFN0ZXAKK2Zyb20gd2Vi
a2l0cHkudG9vbC5zdGVwcy5vcHRpb25zIGltcG9ydCBPcHRpb25zCisKK19sb2cgPSBsb2dnaW5n
LmdldExvZ2dlcihfX25hbWVfXykKKworCitjbGFzcyBDaGVja1BhdGNoUmVsZXZhbmNlKEFic3Ry
YWN0U3RlcCk6CisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIG9wdGlvbnMoY2xzKToKKyAgICAg
ICAgcmV0dXJuIEFic3RyYWN0U3RlcC5vcHRpb25zKCkgKyBbCisgICAgICAgICAgICBPcHRpb25z
Lmdyb3VwLAorICAgICAgICBdCisKKyAgICBqc2NfcGF0aHMgPSBbCisgICAgICAgICJKU1Rlc3Rz
LyIsCisgICAgICAgICJTb3VyY2UvSmF2YVNjcmlwdENvcmUvIiwKKyAgICAgICAgIlNvdXJjZS9X
VEYvIgorICAgICAgICAiU291cmNlL2JtYWxsb2MvIiwKKyAgICBdCisKKyAgICBncm91cF90b19w
YXRoc19tYXBwaW5nID0geworICAgICAgICAnanNjJzoganNjX3BhdGhzLAorICAgIH0KKworICAg
IGRlZiBfY2hhbmdlc19hcmVfcmVsZXZhbnQoc2VsZiwgY2hhbmdlZF9maWxlcyk6CisgICAgICAg
ICMgSW4gdGhlIGRlZmF1bHQgY2FzZSwgYWxsIHBhdGNoZXMgYXJlIHJlbGV2YW50CisgICAgICAg
IGlmIHNlbGYuX29wdGlvbnMuZ3JvdXAgaXMgTm9uZToKKyAgICAgICAgICAgIHJldHVybiBUcnVl
CisKKyAgICAgICAgcGF0dGVybnMgPSBzZWxmLmdyb3VwX3RvX3BhdGhzX21hcHBpbmdbc2VsZi5f
b3B0aW9ucy5ncm91cF0KKworICAgICAgICBmb3IgY2hhbmdlZF9maWxlIGluIGNoYW5nZWRfZmls
ZXM6CisgICAgICAgICAgICBmb3IgcGF0dGVybiBpbiBwYXR0ZXJuczoKKyAgICAgICAgICAgICAg
ICBpZiByZS5zZWFyY2gocGF0dGVybiwgY2hhbmdlZF9maWxlLCByZS5JR05PUkVDQVNFKToKKyAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIFRydWUKKworICAgICAgICByZXR1cm4gRmFsc2UKKwor
ICAgIGRlZiBydW4oc2VsZiwgc3RhdGUpOgorICAgICAgICBfbG9nLmluZm8oIkNoZWNraW5nIHJl
bGV2YW5jZSBvZiBwYXRjaCIpCisKKyAgICAgICAgY2hhbmdlX2xpc3QgPSBzZWxmLl90b29sLnNj
bSgpLmNoYW5nZWRfZmlsZXMoKQorCisgICAgICAgIGlmIHNlbGYuX2NoYW5nZXNfYXJlX3JlbGV2
YW50KGNoYW5nZV9saXN0KToKKyAgICAgICAgICAgIHJldHVybiBUcnVlCisKKyAgICAgICAgX2xv
Zy5pbmZvKCJUaGlzIHBhdGNoIGRvZXMgbm90IGhhdmUgcmVsZXZhbnQgY2hhbmdlcy4iKQorICAg
ICAgICByYWlzZSBTY3JpcHRFcnJvcihtZXNzYWdlPSJUaGlzIHBhdGNoIGRvZXMgbm90IGhhdmUg
cmVsZXZhbnQgY2hhbmdlcy4iKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90
b29sL3N0ZXBzL29wdGlvbnMucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMv
b3B0aW9ucy5weQppbmRleCAzZWY0N2QwMDhhNTllMDUwZDRjYTBjNDg3N2RkZDFhNjA3MzFhNDA5
Li5mNWUwZGVmMzI3MTdlMzA2ZTYzMTY5ODQxMTEwYjI4OThiNzJhMWYxIDEwMDY0NAotLS0gYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvb3B0aW9ucy5weQorKysgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvb3B0aW9ucy5weQpAQCAtMSw0ICsxLDUgQEAKICMg
Q29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENv
cHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC00Niw2ICs0Nyw3IEBAIGNsYXNzIE9wdGlvbnMo
b2JqZWN0KToKICAgICBlbWFpbCA9IG1ha2Vfb3B0aW9uKCItLWVtYWlsIiwgYWN0aW9uPSJzdG9y
ZSIsIHR5cGU9InN0cmluZyIsIGRlc3Q9ImVtYWlsIiwgaGVscD0iRW1haWwgYWRkcmVzcyB0byB1
c2UgaW4gQ2hhbmdlTG9ncy4iKQogICAgIGZvcmNlX2NsZWFuID0gbWFrZV9vcHRpb24oIi0tZm9y
Y2UtY2xlYW4iLCBhY3Rpb249InN0b3JlX3RydWUiLCBkZXN0PSJmb3JjZV9jbGVhbiIsIGRlZmF1
bHQ9RmFsc2UsIGhlbHA9IkNsZWFuIHdvcmtpbmcgZGlyZWN0b3J5IGJlZm9yZSBhcHBseWluZyBw
YXRjaGVzIChyZW1vdmVzIGxvY2FsIGNoYW5nZXMgYW5kIGNvbW1pdHMpIikKICAgICBnaXRfY29t
bWl0ID0gbWFrZV9vcHRpb24oIi1nIiwgIi0tZ2l0LWNvbW1pdCIsIGFjdGlvbj0ic3RvcmUiLCBk
ZXN0PSJnaXRfY29tbWl0IiwgaGVscD0iT3BlcmF0ZSBvbiBhIGxvY2FsIGNvbW1pdC4gSWYgYSBy
YW5nZSwgdGhlIGNvbW1pdHMgYXJlIHNxdWFzaGVkIGludG8gb25lLiA8cmVmPi4uLi4gaW5jbHVk
ZXMgdGhlIHdvcmtpbmcgY29weSBjaGFuZ2VzLiBVUFNUUkVBTSBjYW4gYmUgdXNlZCBmb3IgdGhl
IHVwc3RyZWFtL3RyYWNraW5nIGJyYW5jaC4iKQorICAgIGdyb3VwID0gbWFrZV9vcHRpb24oIi0t
Z3JvdXAiLCBhY3Rpb249InN0b3JlIiwgZGVzdD0iZ3JvdXAiLCBkZWZhdWx0PU5vbmUsIGhlbHA9
IiIpCiAgICAgbG9jYWxfY29tbWl0ID0gbWFrZV9vcHRpb24oIi0tbG9jYWwtY29tbWl0IiwgYWN0
aW9uPSJzdG9yZV90cnVlIiwgZGVzdD0ibG9jYWxfY29tbWl0IiwgZGVmYXVsdD1GYWxzZSwgaGVs
cD0iTWFrZSBhIGxvY2FsIGNvbW1pdCBmb3IgZWFjaCBhcHBsaWVkIHBhdGNoIikKICAgICBub25f
aW50ZXJhY3RpdmUgPSBtYWtlX29wdGlvbigiLS1ub24taW50ZXJhY3RpdmUiLCBhY3Rpb249InN0
b3JlX3RydWUiLCBkZXN0PSJub25faW50ZXJhY3RpdmUiLCBkZWZhdWx0PUZhbHNlLCBoZWxwPSJO
ZXZlciBwcm9tcHQgdGhlIHVzZXIsIGZhaWwgYXMgZmFzdCBhcyBwb3NzaWJsZS4iKQogICAgIG9i
c29sZXRlX3BhdGNoZXMgPSBtYWtlX29wdGlvbigiLS1uby1vYnNvbGV0ZSIsIGFjdGlvbj0ic3Rv
cmVfZmFsc2UiLCBkZXN0PSJvYnNvbGV0ZV9wYXRjaGVzIiwgZGVmYXVsdD1UcnVlLCBoZWxwPSJE
byBub3Qgb2Jzb2xldGUgb2xkIHBhdGNoZXMgYmVmb3JlIHBvc3RpbmcgdGhpcyBvbmUuIikKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9ydW50ZXN0cy5weSBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9ydW50ZXN0cy5weQppbmRleCA3NWQ3
MmJjOWFkMmY0ZTM2ZDQ1ZmRhYzkwZjE4MTk0ODFjZjAyODhiLi5lZjk3OWU1NzI3ODZmNzFlYzMz
MTA0OWVjZmI3MWY2Y2RmZWNhZTk1IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L3Rvb2wvc3RlcHMvcnVudGVzdHMucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29s
L3N0ZXBzL3J1bnRlc3RzLnB5CkBAIC0xLDQgKzEsNSBAQAogIyBDb3B5cmlnaHQgKEMpIDIwMTAg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDE3IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cyBhcmUKQEAgLTUzLDkgKzU0LDE0IEBAIGNsYXNzIFJ1blRlc3RzKEFic3RyYWN0U3RlcCk6CiAg
ICAgICAgICAgICBPcHRpb25zLml0ZXJhdGVfb25fbmV3X3Rlc3RzLAogICAgICAgICAgICAgT3B0
aW9ucy5ub25faW50ZXJhY3RpdmUsCiAgICAgICAgICAgICBPcHRpb25zLnF1aWV0LAorICAgICAg
ICAgICAgT3B0aW9ucy5ncm91cCwKICAgICAgICAgXQogCiAgICAgZGVmIHJ1bihzZWxmLCBzdGF0
ZSk6CisgICAgICAgIGlmIHNlbGYuX29wdGlvbnMuZ3JvdXAgPT0gImpzYyI6CisgICAgICAgICAg
ICBzZWxmLl9ydW5famF2YXNjcmlwdGNvcmVfdGVzdHMoKQorICAgICAgICAgICAgcmV0dXJuCisK
ICAgICAgICAgaWYgc2VsZi5fb3B0aW9ucy5pdGVyYXRlX29uX25ld190ZXN0czoKICAgICAgICAg
ICAgIF9sb2cuaW5mbygiUnVubmluZyBydW4td2Via2l0LXRlc3RzIG9uIG5ldyB0ZXN0cyIpCiAg
ICAgICAgICAgICBzZWxmLl9ydW5fd2Via2l0X3Rlc3RzKHNlbGYuX29wdGlvbnMuaXRlcmF0ZV9v
bl9uZXdfdGVzdHMpCkBAIC0xNDMsMyArMTQ5LDcgQEAgY2xhc3MgUnVuVGVzdHMoQWJzdHJhY3RT
dGVwKToKICAgICAgICAgICAgIGFyZ3MuYXBwZW5kKCItLWl0ZXJhdGlvbnM9JWQiICUgaXRlcmF0
ZV9vbl9uZXdfdGVzdHMpCiAKICAgICAgICAgc2VsZi5fdG9vbC5leGVjdXRpdmUucnVuX2FuZF90
aHJvd19pZl9mYWlsKGFyZ3MsIGN3ZD1zZWxmLl90b29sLnNjbSgpLmNoZWNrb3V0X3Jvb3QpCisK
KyAgICBkZWYgX3J1bl9qYXZhc2NyaXB0Y29yZV90ZXN0cyhzZWxmKToKKyAgICAgICAgYXJncyA9
IHNlbGYuX3Rvb2wuZGVwcmVjYXRlZF9wb3J0KCkucnVuX2phdmFzY3JpcHRjb3JlX3Rlc3RzX2Nv
bW1hbmQoc2VsZi5fb3B0aW9ucy5idWlsZF9zdHlsZSkKKyAgICAgICAgc2VsZi5fdG9vbC5leGVj
dXRpdmUucnVuX2FuZF90aHJvd19pZl9mYWlsKGFyZ3MsIGN3ZD1zZWxmLl90b29sLnNjbSgpLmNo
ZWNrb3V0X3Jvb3QpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3Rl
cHMvcnVudGVzdHNfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3Rl
cHMvcnVudGVzdHNfdW5pdHRlc3QucHkKaW5kZXggMzAwMDY4MTkyMDBhZDkyZDg2MDk2NDJlOGY4
MDI3ZDI0NmQ4Nzg0OS4uZDRkOTk2NDZjMmZmMDVlY2RkY2M4ZDQxZTI3OTNmNTBmY2JkZjQ2NCAx
MDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3J1bnRlc3RzX3Vu
aXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9ydW50ZXN0
c191bml0dGVzdC5weQpAQCAtNDAsNyArNDAsNyBAQCBjbGFzcyBSdW5UZXN0c1Rlc3QodW5pdHRl
c3QuVGVzdENhc2UpOgogICAgICAgICB0b29sID0gTW9ja1Rvb2wobG9nX2V4ZWN1dGl2ZT1UcnVl
KQogICAgICAgICB0b29sLl9kZXByZWNhdGVkX3BvcnQucnVuX3B5dGhvbl91bml0dGVzdHNfY29t
bWFuZCA9IGxhbWJkYTogTm9uZQogICAgICAgICB0b29sLl9kZXByZWNhdGVkX3BvcnQucnVuX3Bl
cmxfdW5pdHRlc3RzX2NvbW1hbmQgPSBsYW1iZGE6IE5vbmUKLSAgICAgICAgc3RlcCA9IFJ1blRl
c3RzKHRvb2wsIE1vY2tPcHRpb25zKHRlc3Q9VHJ1ZSwgbm9uX2ludGVyYWN0aXZlPVRydWUsIHF1
aWV0PUZhbHNlLCBidWlsZF9zdHlsZT0icmVsZWFzZSIsIGl0ZXJhdGVfb25fbmV3X3Rlc3RzPTAp
KQorICAgICAgICBzdGVwID0gUnVuVGVzdHModG9vbCwgTW9ja09wdGlvbnModGVzdD1UcnVlLCBu
b25faW50ZXJhY3RpdmU9VHJ1ZSwgcXVpZXQ9RmFsc2UsIGJ1aWxkX3N0eWxlPSJyZWxlYXNlIiwg
aXRlcmF0ZV9vbl9uZXdfdGVzdHM9MCwgZ3JvdXA9Tm9uZSkpCiAKICAgICAgICAgaWYgc3lzLnBs
YXRmb3JtICE9ICJjeWd3aW4iOgogICAgICAgICAgICAgZXhwZWN0ZWRfbG9ncyA9ICIiIlJ1bm5p
bmcgYmluZGluZ3MgZ2VuZXJhdGlvbiB0ZXN0cwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS90b29sL3N0ZXBzL3N0ZXBzX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS90b29sL3N0ZXBzL3N0ZXBzX3VuaXR0ZXN0LnB5CmluZGV4IDdkOTRhMTNiMzQ2M2Q5OGE0
NGY5NDlmODE0Y2M3MTIxYzA2OGFiNWQuLjAyODhjYmY2MTcwYjA3ZDkwZTQ1MWVlNThjZmRjYmVm
MjY1ZmFmNzIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9z
dGVwc191bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMv
c3RlcHNfdW5pdHRlc3QucHkKQEAgLTEsNCArMSw1IEBACiAjIENvcHlyaWdodCAoQykgMjAxMCBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMTcgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
IGFyZQpAQCAtMjgsNiArMjksNyBAQAogCiBpbXBvcnQgdW5pdHRlc3QKIAorZnJvbSB3ZWJraXRw
eS5jb21tb24uc3lzdGVtLmV4ZWN1dGl2ZSBpbXBvcnQgU2NyaXB0RXJyb3IKIGZyb20gd2Via2l0
cHkuY29tbW9uLnN5c3RlbS5vdXRwdXRjYXB0dXJlIGltcG9ydCBPdXRwdXRDYXB0dXJlCiBmcm9t
IHdlYmtpdHB5LmNvbW1vbi5jb25maWcucG9ydHMgaW1wb3J0IERlcHJlY2F0ZWRQb3J0CiBmcm9t
IHdlYmtpdHB5LnRvb2wubW9ja3Rvb2wgaW1wb3J0IE1vY2tPcHRpb25zLCBNb2NrVG9vbApAQCAt
MzgsNiArNDAsNyBAQCBmcm9tIHdlYmtpdHB5LnRvb2wgaW1wb3J0IHN0ZXBzCiBjbGFzcyBTdGVw
c1Rlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIGRlZiBfc3RlcF9vcHRpb25zKHNlbGYpOgog
ICAgICAgICBvcHRpb25zID0gTW9ja09wdGlvbnMoKQorICAgICAgICBvcHRpb25zLmdyb3VwID0g
Tm9uZQogICAgICAgICBvcHRpb25zLm5vbl9pbnRlcmFjdGl2ZSA9IFRydWUKICAgICAgICAgb3B0
aW9ucy5wb3J0ID0gJ01PQ0sgcG9ydCcKICAgICAgICAgb3B0aW9ucy5xdWlldCA9IFRydWUKQEAg
LTExMSw3ICsxMTQsNyBAQCBNT0NLIHJ1bl9hbmRfdGhyb3dfaWZfZmFpbDogWydUb29scy9TY3Jp
cHRzL3Rlc3Qtd2Via2l0cHknXSwgY3dkPS9tb2NrLWNoZWNrb3V0CiBSdW5uaW5nIFBlcmwgdW5p
dCB0ZXN0cwogTU9DSyBydW5fYW5kX3Rocm93X2lmX2ZhaWw6IFsnVG9vbHMvU2NyaXB0cy90ZXN0
LXdlYmtpdHBlcmwnXSwgY3dkPS9tb2NrLWNoZWNrb3V0CiBSdW5uaW5nIEphdmFTY3JpcHRDb3Jl
IHRlc3RzCi1NT0NLIHJ1bl9hbmRfdGhyb3dfaWZfZmFpbDogWydUb29scy9TY3JpcHRzL3J1bi1q
YXZhc2NyaXB0Y29yZS10ZXN0cyddLCBjd2Q9L21vY2stY2hlY2tvdXQKK01PQ0sgcnVuX2FuZF90
aHJvd19pZl9mYWlsOiBbJ1Rvb2xzL1NjcmlwdHMvcnVuLWphdmFzY3JpcHRjb3JlLXRlc3RzJywg
Jy0tbm8tZmFpbC1mYXN0JywgJy0tanNvbi1vdXRwdXQ9anNjX3Rlc3RfcmVzdWx0cy5qc29uJ10s
IGN3ZD0vbW9jay1jaGVja291dAogUnVubmluZyBiaW5kaW5ncyBnZW5lcmF0aW9uIHRlc3RzCiBN
T0NLIHJ1bl9hbmRfdGhyb3dfaWZfZmFpbDogWydUb29scy9TY3JpcHRzL3J1bi1iaW5kaW5ncy10
ZXN0cyddLCBjd2Q9L21vY2stY2hlY2tvdXQKIFJ1bm5pbmcgcnVuLXdlYmtpdC10ZXN0cwpAQCAt
MTMzLDEwICsxMzYsMTA5IEBAIE1PQ0sgcnVuX2FuZF90aHJvd19pZl9mYWlsOiBbJ1Rvb2xzL1Nj
cmlwdHMvdGVzdC13ZWJraXRweSddLCBjd2Q9L21vY2stY2hlY2tvdXQKIFJ1bm5pbmcgUGVybCB1
bml0IHRlc3RzCiBNT0NLIHJ1bl9hbmRfdGhyb3dfaWZfZmFpbDogWydUb29scy9TY3JpcHRzL3Rl
c3Qtd2Via2l0cGVybCddLCBjd2Q9L21vY2stY2hlY2tvdXQKIFJ1bm5pbmcgSmF2YVNjcmlwdENv
cmUgdGVzdHMKLU1PQ0sgcnVuX2FuZF90aHJvd19pZl9mYWlsOiBbJ1Rvb2xzL1NjcmlwdHMvcnVu
LWphdmFzY3JpcHRjb3JlLXRlc3RzJ10sIGN3ZD0vbW9jay1jaGVja291dAorTU9DSyBydW5fYW5k
X3Rocm93X2lmX2ZhaWw6IFsnVG9vbHMvU2NyaXB0cy9ydW4tamF2YXNjcmlwdGNvcmUtdGVzdHMn
LCAnLS1uby1mYWlsLWZhc3QnLCAnLS1qc29uLW91dHB1dD1qc2NfdGVzdF9yZXN1bHRzLmpzb24n
XSwgY3dkPS9tb2NrLWNoZWNrb3V0CiBSdW5uaW5nIGJpbmRpbmdzIGdlbmVyYXRpb24gdGVzdHMK
IE1PQ0sgcnVuX2FuZF90aHJvd19pZl9mYWlsOiBbJ1Rvb2xzL1NjcmlwdHMvcnVuLWJpbmRpbmdz
LXRlc3RzJ10sIGN3ZD0vbW9jay1jaGVja291dAogUnVubmluZyBydW4td2Via2l0LXRlc3RzCiBN
T0NLIHJ1bl9hbmRfdGhyb3dfaWZfZmFpbDogWydUb29scy9TY3JpcHRzL3J1bi13ZWJraXQtdGVz
dHMnLCAnLS1kZWJ1ZycsICctLXF1aWV0J10sIGN3ZD0vbW9jay1jaGVja291dAogIiIiCiAgICAg
ICAgIE91dHB1dENhcHR1cmUoKS5hc3NlcnRfb3V0cHV0cyhzZWxmLCBzdGVwLnJ1biwgW3t9XSwg
ZXhwZWN0ZWRfbG9ncz1leHBlY3RlZF9sb2dzKQorCisgICAgZGVmIHRlc3RfcnVudGVzdHNfanNj
KHNlbGYpOgorICAgICAgICBtb2NrX29wdGlvbnMgPSBzZWxmLl9zdGVwX29wdGlvbnMoKQorICAg
ICAgICBtb2NrX29wdGlvbnMubm9uX2ludGVyYWN0aXZlID0gRmFsc2UKKyAgICAgICAgbW9ja19v
cHRpb25zLmJ1aWxkX3N0eWxlID0gInJlbGVhc2UiCisgICAgICAgIG1vY2tfb3B0aW9ucy5ncm91
cCA9ICJqc2MiCisgICAgICAgIHN0ZXAgPSBzdGVwcy5SdW5UZXN0cyhNb2NrVG9vbChsb2dfZXhl
Y3V0aXZlPVRydWUpLCBtb2NrX29wdGlvbnMpCisgICAgICAgIHRvb2wgPSBNb2NrVG9vbChsb2df
ZXhlY3V0aXZlPVRydWUpCisgICAgICAgICMgRklYTUU6IFdlIHNob3VsZG4ndCB1c2UgYSByZWFs
IHBvcnQtb2JqZWN0IGhlcmUsIGJ1dCB0aGVyZSBpcyB0b28gbXVjaCB0byBtb2NrIGF0IHRoZSBt
b21lbnQuCisgICAgICAgIHRvb2wuX2RlcHJlY2F0ZWRfcG9ydCA9IERlcHJlY2F0ZWRQb3J0KCkK
KyAgICAgICAgc3RlcCA9IHN0ZXBzLlJ1blRlc3RzKHRvb2wsIG1vY2tfb3B0aW9ucykKKyAgICAg
ICAgZXhwZWN0ZWRfbG9ncyA9ICIiIk1PQ0sgcnVuX2FuZF90aHJvd19pZl9mYWlsOiBbJ1Rvb2xz
L1NjcmlwdHMvcnVuLWphdmFzY3JpcHRjb3JlLXRlc3RzJywgJy0tbm8tZmFpbC1mYXN0JywgJy0t
anNvbi1vdXRwdXQ9anNjX3Rlc3RfcmVzdWx0cy5qc29uJywgJy0tcmVsZWFzZSddLCBjd2Q9L21v
Y2stY2hlY2tvdXQKKyIiIgorICAgICAgICBPdXRwdXRDYXB0dXJlKCkuYXNzZXJ0X291dHB1dHMo
c2VsZiwgc3RlcC5ydW4sIFt7fV0sIGV4cGVjdGVkX2xvZ3M9ZXhwZWN0ZWRfbG9ncykKKworICAg
IGRlZiB0ZXN0X3J1bnRlc3RzX2pzY19kZWJ1ZyhzZWxmKToKKyAgICAgICAgbW9ja19vcHRpb25z
ID0gc2VsZi5fc3RlcF9vcHRpb25zKCkKKyAgICAgICAgbW9ja19vcHRpb25zLm5vbl9pbnRlcmFj
dGl2ZSA9IEZhbHNlCisgICAgICAgIG1vY2tfb3B0aW9ucy5idWlsZF9zdHlsZSA9ICJkZWJ1ZyIK
KyAgICAgICAgbW9ja19vcHRpb25zLmdyb3VwID0gImpzYyIKKyAgICAgICAgdG9vbCA9IE1vY2tU
b29sKGxvZ19leGVjdXRpdmU9VHJ1ZSkKKyAgICAgICAgIyBGSVhNRTogV2Ugc2hvdWxkbid0IHVz
ZSBhIHJlYWwgcG9ydC1vYmplY3QgaGVyZSwgYnV0IHRoZXJlIGlzIHRvbyBtdWNoIHRvIG1vY2sg
YXQgdGhlIG1vbWVudC4KKyAgICAgICAgdG9vbC5fZGVwcmVjYXRlZF9wb3J0ID0gRGVwcmVjYXRl
ZFBvcnQoKQorICAgICAgICBzdGVwID0gc3RlcHMuUnVuVGVzdHModG9vbCwgbW9ja19vcHRpb25z
KQorICAgICAgICBleHBlY3RlZF9sb2dzID0gIiIiTU9DSyBydW5fYW5kX3Rocm93X2lmX2ZhaWw6
IFsnVG9vbHMvU2NyaXB0cy9ydW4tamF2YXNjcmlwdGNvcmUtdGVzdHMnLCAnLS1uby1mYWlsLWZh
c3QnLCAnLS1qc29uLW91dHB1dD1qc2NfdGVzdF9yZXN1bHRzLmpzb24nLCAnLS1kZWJ1ZyddLCBj
d2Q9L21vY2stY2hlY2tvdXQKKyIiIgorICAgICAgICBPdXRwdXRDYXB0dXJlKCkuYXNzZXJ0X291
dHB1dHMoc2VsZiwgc3RlcC5ydW4sIFt7fV0sIGV4cGVjdGVkX2xvZ3M9ZXhwZWN0ZWRfbG9ncykK
KworICAgIGRlZiB0ZXN0X2J1aWxkX2pzY19kZWJ1ZyhzZWxmKToKKyAgICAgICAgbW9ja19vcHRp
b25zID0gc2VsZi5fc3RlcF9vcHRpb25zKCkKKyAgICAgICAgbW9ja19vcHRpb25zLm5vbl9pbnRl
cmFjdGl2ZSA9IEZhbHNlCisgICAgICAgIG1vY2tfb3B0aW9ucy5idWlsZF9zdHlsZSA9ICJkZWJ1
ZyIKKyAgICAgICAgbW9ja19vcHRpb25zLmJ1aWxkID0gVHJ1ZQorICAgICAgICBtb2NrX29wdGlv
bnMuYXJjaGl0ZWN0dXJlID0gVHJ1ZQorICAgICAgICBtb2NrX29wdGlvbnMuZ3JvdXAgPSAianNj
IgorICAgICAgICB0b29sID0gTW9ja1Rvb2wobG9nX2V4ZWN1dGl2ZT1UcnVlKQorICAgICAgICAj
IEZJWE1FOiBXZSBzaG91bGRuJ3QgdXNlIGEgcmVhbCBwb3J0LW9iamVjdCBoZXJlLCBidXQgdGhl
cmUgaXMgdG9vIG11Y2ggdG8gbW9jayBhdCB0aGUgbW9tZW50LgorICAgICAgICB0b29sLl9kZXBy
ZWNhdGVkX3BvcnQgPSBEZXByZWNhdGVkUG9ydCgpCisgICAgICAgIHN0ZXAgPSBzdGVwcy5CdWls
ZCh0b29sLCBtb2NrX29wdGlvbnMpCisgICAgICAgIGV4cGVjdGVkX2xvZ3MgPSAiIiJCdWlsZGlu
ZyBXZWJLaXQKK01PQ0sgcnVuX2FuZF90aHJvd19pZl9mYWlsOiBbJ1Rvb2xzL1NjcmlwdHMvYnVp
bGQtanNjJywgJy0tZGVidWcnLCAnQVJDSFM9VHJ1ZSddLCBjd2Q9L21vY2stY2hlY2tvdXQsIGVu
dj17J0xDX0FMTCc6ICdDJywgJ1RFUk0nOiAnbm9uZScsICdNT0NLX0VOVklST05fQ09QWSc6ICcx
J30KKyIiIgorICAgICAgICBPdXRwdXRDYXB0dXJlKCkuYXNzZXJ0X291dHB1dHMoc2VsZiwgc3Rl
cC5ydW4sIFt7fV0sIGV4cGVjdGVkX2xvZ3M9ZXhwZWN0ZWRfbG9ncykKKworICAgIGRlZiB0ZXN0
X2J1aWxkX2pzYyhzZWxmKToKKyAgICAgICAgbW9ja19vcHRpb25zID0gc2VsZi5fc3RlcF9vcHRp
b25zKCkKKyAgICAgICAgbW9ja19vcHRpb25zLm5vbl9pbnRlcmFjdGl2ZSA9IEZhbHNlCisgICAg
ICAgIG1vY2tfb3B0aW9ucy5idWlsZF9zdHlsZSA9ICJyZWxlYXNlIgorICAgICAgICBtb2NrX29w
dGlvbnMuYnVpbGQgPSBUcnVlCisgICAgICAgIG1vY2tfb3B0aW9ucy5hcmNoaXRlY3R1cmUgPSBU
cnVlCisgICAgICAgIG1vY2tfb3B0aW9ucy5ncm91cCA9ICJqc2MiCisgICAgICAgIHRvb2wgPSBN
b2NrVG9vbChsb2dfZXhlY3V0aXZlPVRydWUpCisgICAgICAgICMgRklYTUU6IFdlIHNob3VsZG4n
dCB1c2UgYSByZWFsIHBvcnQtb2JqZWN0IGhlcmUsIGJ1dCB0aGVyZSBpcyB0b28gbXVjaCB0byBt
b2NrIGF0IHRoZSBtb21lbnQuCisgICAgICAgIHRvb2wuX2RlcHJlY2F0ZWRfcG9ydCA9IERlcHJl
Y2F0ZWRQb3J0KCkKKyAgICAgICAgc3RlcCA9IHN0ZXBzLkJ1aWxkKHRvb2wsIG1vY2tfb3B0aW9u
cykKKyAgICAgICAgZXhwZWN0ZWRfbG9ncyA9ICIiIkJ1aWxkaW5nIFdlYktpdAorTU9DSyBydW5f
YW5kX3Rocm93X2lmX2ZhaWw6IFsnVG9vbHMvU2NyaXB0cy9idWlsZC1qc2MnLCAnLS1yZWxlYXNl
JywgJ0FSQ0hTPVRydWUnXSwgY3dkPS9tb2NrLWNoZWNrb3V0LCBlbnY9eydMQ19BTEwnOiAnQycs
ICdURVJNJzogJ25vbmUnLCAnTU9DS19FTlZJUk9OX0NPUFknOiAnMSd9CisiIiIKKyAgICAgICAg
T3V0cHV0Q2FwdHVyZSgpLmFzc2VydF9vdXRwdXRzKHNlbGYsIHN0ZXAucnVuLCBbe31dLCBleHBl
Y3RlZF9sb2dzPWV4cGVjdGVkX2xvZ3MpCisKKyAgICBkZWYgdGVzdF9wYXRjaF9yZWxldmFudChz
ZWxmKToKKyAgICAgICAgc2VsZi5tYXhEaWZmID0gTm9uZQorICAgICAgICBtb2NrX29wdGlvbnMg
PSBzZWxmLl9zdGVwX29wdGlvbnMoKQorICAgICAgICB0b29sID0gTW9ja1Rvb2wobG9nX2V4ZWN1
dGl2ZT1UcnVlKQorICAgICAgICB0b29sLnNjbSgpLl9tb2NrQ2hhbmdlZEZpbGVzID0gWyJKU1Rl
c3RzL01vY2tGaWxlMSIsICJDaGFuZ2VMb2ciXQorICAgICAgICAjIEZJWE1FOiBXZSBzaG91bGRu
J3QgdXNlIGEgcmVhbCBwb3J0LW9iamVjdCBoZXJlLCBidXQgdGhlcmUgaXMgdG9vIG11Y2ggdG8g
bW9jayBhdCB0aGUgbW9tZW50LgorICAgICAgICB0b29sLl9kZXByZWNhdGVkX3BvcnQgPSBEZXBy
ZWNhdGVkUG9ydCgpCisgICAgICAgIHN0ZXAgPSBzdGVwcy5DaGVja1BhdGNoUmVsZXZhbmNlKHRv
b2wsIG1vY2tfb3B0aW9ucykKKyAgICAgICAgZXhwZWN0ZWRfbG9ncyA9ICIiIkNoZWNraW5nIHJl
bGV2YW5jZSBvZiBwYXRjaAorIiIiCisgICAgICAgIE91dHB1dENhcHR1cmUoKS5hc3NlcnRfb3V0
cHV0cyhzZWxmLCBzdGVwLnJ1biwgW3t9XSwgZXhwZWN0ZWRfbG9ncz1leHBlY3RlZF9sb2dzKQor
CisgICAgZGVmIHRlc3RfcGF0Y2hfcmVsZXZhbnRfanNjKHNlbGYpOgorICAgICAgICBzZWxmLm1h
eERpZmYgPSBOb25lCisgICAgICAgIG1vY2tfb3B0aW9ucyA9IHNlbGYuX3N0ZXBfb3B0aW9ucygp
CisgICAgICAgIG1vY2tfb3B0aW9ucy5ncm91cCA9ICJqc2MiCisgICAgICAgIHRvb2wgPSBNb2Nr
VG9vbChsb2dfZXhlY3V0aXZlPVRydWUpCisgICAgICAgIHRvb2wuc2NtKCkuX21vY2tDaGFuZ2Vk
RmlsZXMgPSBbIkpTVGVzdHMvTW9ja0ZpbGUxIiwgIkNoYW5nZUxvZyJdCisgICAgICAgICMgRklY
TUU6IFdlIHNob3VsZG4ndCB1c2UgYSByZWFsIHBvcnQtb2JqZWN0IGhlcmUsIGJ1dCB0aGVyZSBp
cyB0b28gbXVjaCB0byBtb2NrIGF0IHRoZSBtb21lbnQuCisgICAgICAgIHRvb2wuX2RlcHJlY2F0
ZWRfcG9ydCA9IERlcHJlY2F0ZWRQb3J0KCkKKyAgICAgICAgc3RlcCA9IHN0ZXBzLkNoZWNrUGF0
Y2hSZWxldmFuY2UodG9vbCwgbW9ja19vcHRpb25zKQorICAgICAgICBleHBlY3RlZF9sb2dzID0g
IiIiQ2hlY2tpbmcgcmVsZXZhbmNlIG9mIHBhdGNoCisiIiIKKyAgICAgICAgT3V0cHV0Q2FwdHVy
ZSgpLmFzc2VydF9vdXRwdXRzKHNlbGYsIHN0ZXAucnVuLCBbe31dLCBleHBlY3RlZF9sb2dzPWV4
cGVjdGVkX2xvZ3MpCisKKyAgICBkZWYgdGVzdF9wYXRjaF9ub3RfcmVsZXZhbnRfanNjKHNlbGYp
OgorICAgICAgICBzZWxmLm1heERpZmYgPSBOb25lCisgICAgICAgIG1vY2tfb3B0aW9ucyA9IHNl
bGYuX3N0ZXBfb3B0aW9ucygpCisgICAgICAgIG1vY2tfb3B0aW9ucy5ncm91cCA9ICJqc2MiCisg
ICAgICAgIHRvb2wgPSBNb2NrVG9vbChsb2dfZXhlY3V0aXZlPVRydWUpCisgICAgICAgIHRvb2wu
c2NtKCkuX21vY2tDaGFuZ2VkRmlsZXMgPSBbIlRvb2xzL0NoYW5nZUxvZyIsICJUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvc3RlcHNfdW5pdHRlc3QucHkiXQorICAgICAgICAjIEZJ
WE1FOiBXZSBzaG91bGRuJ3QgdXNlIGEgcmVhbCBwb3J0LW9iamVjdCBoZXJlLCBidXQgdGhlcmUg
aXMgdG9vIG11Y2ggdG8gbW9jayBhdCB0aGUgbW9tZW50LgorICAgICAgICB0b29sLl9kZXByZWNh
dGVkX3BvcnQgPSBEZXByZWNhdGVkUG9ydCgpCisgICAgICAgIHN0ZXAgPSBzdGVwcy5DaGVja1Bh
dGNoUmVsZXZhbmNlKHRvb2wsIG1vY2tfb3B0aW9ucykKKyAgICAgICAgZXhwZWN0ZWRfbG9ncyA9
ICIiIkNoZWNraW5nIHJlbGV2YW5jZSBvZiBwYXRjaAorVGhpcyBwYXRjaCBkb2VzIG5vdCBoYXZl
IHJlbGV2YW50IGNoYW5nZXMuCisiIiIKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhT
Y3JpcHRFcnJvcik6CisgICAgICAgICAgICBPdXRwdXRDYXB0dXJlKCkuYXNzZXJ0X291dHB1dHMo
c2VsZiwgc3RlcC5ydW4sIFt7fV0sIGV4cGVjdGVkX2xvZ3M9ZXhwZWN0ZWRfbG9ncykK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>301972</attachid>
            <date>2017-02-17 12:59:22 -0800</date>
            <delta_ts>2017-02-17 14:43:31 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-162458-20170217125644.patch</filename>
            <type>text/plain</type>
            <size>92416</size>
            <attacher name="Srinivasan Vijayaraghavan">webkit</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEyMTUyCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMjEzZWYxNzgzNzkyOWQ1YzAwZjhiMGY0NWI4ZTcyNDhm
MWVlOTdiMi4uNWNmMWNlYTBjOTA2MTM3MDQ4ODYyNjhmYjhmZTRlMzM2Mjk2YzgzMSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEz
NiBAQAorMjAxNy0wMi0xNyAgU3Jpbml2YXNhbiBWaWpheWFyYWdoYXZhbiAgPHN2aWpheWFyYWdo
YXZhbkBhcHBsZS5jb20+CisKKyAgICAgICAgRVdTIHNob3VsZCBydW4gSmF2YVNjcmlwdENvcmUg
dGVzdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2
MjQ1OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
UXVldWVTdGF0dXNTZXJ2ZXIvY29uZmlnL3F1ZXVlcy5weTogQWRkIGpzYy1ld3MgcXVldWUuCisg
ICAgICAgICogUXVldWVTdGF0dXNTZXJ2ZXIvbW9kZWwvcXVldWVzdGF0dXMucHk6CisgICAgICAg
IChRdWV1ZVN0YXR1cy5kaWRfc2tpcCk6IFJldHVybnMgd2hldGhlciBwYXRjaCB3YXMgc2tpcHBl
ZCwgYmFzZWQgb24gc3RhdHVzLgorICAgICAgICAqIFF1ZXVlU3RhdHVzU2VydmVyL2hhbmRsZXJz
L3N0YXR1c2J1YmJsZS5weToKKyAgICAgICAgKFN0YXR1c0J1YmJsZS5fc2hvdWxkX3Nob3dfYnVi
YmxlX2Zvcik6IEFkZCBsb2dpYyB0byBoaWRlIGpzYy1ld3MgYnViYmxlIGlmIHRoZSBwYXRjaCBk
b2VzIG5vdCB0b3VjaCBqc2MuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hl
Y2tvdXQvc2NtL3NjbV9tb2NrLnB5OgorICAgICAgICAoTW9ja1NDTS5fX2luaXRfXyk6IEFkZCBf
bW9ja0NoYW5nZWRGaWxlcyB2YXJpYWJsZS4KKyAgICAgICAgKE1vY2tTQ00uY2hhbmdlZF9maWxl
cyk6IENoYW5nZSB0byB1c2UgX21vY2tDaGFuZ2VkRmlsZXMgdmFyaWFibGVzLgorICAgICAgICAq
IFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9ld3MuanNvbjogQWRkIGNvbmZpZyBpbmZv
IGZvciBKU0MgRVdTLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9w
b3J0cy5weTogQWRkIHN1cHBvcnQgZm9yIEpTQyBFV1MgaW4gTWFjIFBvcnQuCisgICAgICAgIChE
ZXByZWNhdGVkUG9ydC5fYXBwZW5kX2J1aWxkX3N0eWxlX2ZsYWcpOiBIZWxwZXIgZnVuY3Rpb24g
dG8gYXBwZW5kIGJ1aWxkX3N0eWxlIHRvIGEgY29tbWFuZC4KKyAgICAgICAgKERlcHJlY2F0ZWRQ
b3J0LmJ1aWxkX2pzY19jb21tYW5kKTogQWRkZWQgLSBjb21tYW5kIHRvIGJ1aWxkIEpTQyBvbmx5
IChxdWlja2VyIHRoYW4gYnVpbGRpbmcgYWxsIG9mIFdlYktpdCkuCisgICAgICAgIChEZXByZWNh
dGVkUG9ydC5ydW5famF2YXNjcmlwdGNvcmVfdGVzdHNfY29tbWFuZCk6IEFsbG93IEpTQyBFV1Mg
dG8gb25seSBydW4gSlNDIHRlc3RzLgorICAgICAgICAoTWFjUG9ydC5ydW5fd2Via2l0X3Rlc3Rz
X2NvbW1hbmQpOiBDaGVjayBmb3IgSlNDLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29t
bW9uL2NvbmZpZy9wb3J0c19tb2NrLnB5OgorICAgICAgICAoTW9ja1BvcnQucnVuX2phdmFzY3Jp
cHRjb3JlX3Rlc3RzX2NvbW1hbmQpOiBBZGQgYnVpbGRfc3R5bGUgYXJndW1lbnQuCisgICAgICAg
ICogU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL3BvcnRzX3VuaXR0ZXN0LnB5OgorICAg
ICAgICAoRGVwcmVjYXRlZFBvcnRUZXN0LnRlc3RfbWFjX3BvcnQpOiBBZGQgdW5pdCB0ZXN0cyBm
b3IgYnVpbGQtanNjIHNoZWxsIGNvbW1hbmQuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9j
b21tb24vbmV0L2Fic3RyYWN0dGVzdHJlc3VsdHMucHk6IEFkZGVkLgorICAgICAgICAoQWJzdHJh
Y3RUZXN0UmVzdWx0cyk6IEFic3RyYWN0IHN1cGVyY2xhc3Mgb2YgSlNDVGVzdFJlc3VsdHMgYW5k
IEpTQ1Rlc3RSZXN1bHRzLgorICAgICAgICAoQWJzdHJhY3RUZXN0UmVzdWx0cy50ZXN0X3Jlc3Vs
dHMpOiBTdHViLgorICAgICAgICAoQWJzdHJhY3RUZXN0UmVzdWx0cy5mYWlsaW5nX3Rlc3RzKTog
U3R1Yi4KKyAgICAgICAgKEFic3RyYWN0VGVzdFJlc3VsdHMuZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1
cmVfbGltaXQpOiBTdHViLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9q
c2N0ZXN0cmVzdWx0cy5weTogQWRkZWQuCisgICAgICAgIChKU0NUZXN0UmVzdWx0cyk6IEFkZGVk
LgorICAgICAgICAoSlNDVGVzdFJlc3VsdHMuaW50ZXJzZWN0aW9uKTogUmV0dXJuIGEgSlNDVGVz
dFJlc3VsdHMgb2JqZWN0IHdpdGggZmFpbHVyZXMgY29tbW9uIHRvIGJvdGggaW5wdXQgb2JqZWN0
cy4KKyAgICAgICAgKEpTQ1Rlc3RSZXN1bHRzLnJlc3VsdHNfZnJvbV9zdHJpbmcpOiBVc2UganNv
biBsaWJyYXJ5IHRvIHBhcnNlIHJlc3VsdHMuCisgICAgICAgIChKU0NUZXN0UmVzdWx0cy5fX2lu
aXRfXyk6IEluaXRpYWxpemUgbWVtYmVycy4KKyAgICAgICAgKEpTQ1Rlc3RSZXN1bHRzLmVxdWFs
cyk6IFRoaXMgZW5hYmxlcyB1bml0IHRlc3RpbmcuCisgICAgICAgIChKU0NUZXN0UmVzdWx0cy5p
c19zdWJzZXQpOiBDaGVja3MgaWYgb25lIHNldCBvZiBmYWlsdXJlcyBpcyBhIHN1YnNldCBvZiBh
bm90aGVyLgorICAgICAgICAoSlNDVGVzdFJlc3VsdHMuYWxsX3Bhc3NlZCk6IEdldHRlci4KKyAg
ICAgICAgKEpTQ1Rlc3RSZXN1bHRzLmZhaWxpbmdfdGVzdHMpOiBHZXR0ZXIuCisgICAgICAgIChK
U0NUZXN0UmVzdWx0cy5kaWRfZXhjZWVkX3Rlc3RfZmFpbHVyZV9saW1pdCk6IEdldHRlci4KKyAg
ICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvanNjdGVzdHJlc3VsdHNfdW5pdHRl
c3QucHk6IEFkZGVkLgorICAgICAgICAoSlNDVGVzdFJlc3VsdHNUZXN0KTogQ2xhc3MgdG8gdGVz
dCBKU0NUZXN0UmVzdWx0cy4KKyAgICAgICAgKEpTQ1Rlc3RSZXN1bHRzVGVzdC50ZXN0X3Jlc3Vs
dHNfZnJvbV9zdHJpbmcpOiBUZXN0cyBwYXJzaW5nLgorICAgICAgICAoSlNDVGVzdFJlc3VsdHNU
ZXN0LnRlc3RfaW50ZXJzZWN0aW9uX2FwaV90ZXN0cyk6IFVuaXQgdGVzdCBmb3IgaW50ZXJzZWN0
aW9uKCkgY2xhc3MgbWV0aG9kLgorICAgICAgICAoSlNDVGVzdFJlc3VsdHNUZXN0LnRlc3RfaW50
ZXJzZWN0aW9uX3N0cmVzc190ZXN0cyk6IFVuaXQgdGVzdCBmb3IgaW50ZXJzZWN0aW9uKCkgY2xh
c3MgbWV0aG9kLgorICAgICAgICAoSlNDVGVzdFJlc3VsdHNUZXN0LnRlc3RfaW50ZXJzZWN0aW9u
X2dlbmVyYWxfY2FzZSk6IFVuaXQgdGVzdCBmb3IgaW50ZXJzZWN0aW9uKCkgY2xhc3MgbWV0aG9k
LgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvcG9ydC9iYXNlLnB5OgorICAgICAgICAoUG9y
dC5qc2NfcmVzdWx0c19kaXJlY3RvcnkpOiBSZXR1cm5zIHRoZSBkaXJlY3RvcnkgZm9yIHRoZSBK
U0MgdGVzdCByZXN1bHRzIEpTT04gZmlsZS4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rv
b2wvYm90L2Vhcmx5d2FybmluZ3N5c3RlbXRhc2sucHk6CisgICAgICAgIChFYXJseVdhcm5pbmdT
eXN0ZW1UYXNrLnJ1bik6IEFkZCBjaGVja19wYXRjaF9yZWxldmFuY2Ugc3RlcC4KKyAgICAgICAg
KiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2pzY2V3c191bml0dGVzdC5weTogQWRkZWQuCisg
ICAgICAgIChNb2NrUGF0Y2hBbmFseXNpc1Rhc2spOiBNb2NrZWQtb3V0IHZlcnNpb24gb2YgUGF0
Y2hBbmFseXNpc1Rhc2sgdGhhdCBkb2Vzbid0IHJ1biBjb21tYW5kcy4KKyAgICAgICAgKE1vY2tQ
YXRjaEFuYWx5c2lzVGFzay5fX2luaXRfXyk6IFNldHMgYXR0cmlidXRlcy4KKyAgICAgICAgKE1v
Y2tQYXRjaEFuYWx5c2lzVGFzay5fdGVzdCk6IE92ZXJyaWRlIHRvIG5vdCBydW4gY29tbWFuZC4K
KyAgICAgICAgKE1vY2tQYXRjaEFuYWx5c2lzVGFzay5fYnVpbGRfYW5kX3Rlc3Rfd2l0aG91dF9w
YXRjaCk6IE92ZXJyaWRlIHRvIG5vdCBydW4gY29tbWFuZC4KKyAgICAgICAgKE1vY2tQYXRjaEFu
YWx5c2lzVGFzay52YWxpZGF0ZSk6IEFzc3VtZSBtb2NrZWQgcGF0Y2ggaXMgdmFsaWQgZm9yIHB1
cnBvc2VzIG9mIHRlc3RpbmcgcmV0cnkgbG9naWMuCisgICAgICAgIChNb2NrUGF0Y2hBbmFseXNp
c1Rhc2sudGVzdF9ydW5fY291bnQpOiBTcGVjaWZpYyB0byB0aGUgbW9ja2VkIHZlcnNpb24sIHRv
IHRlc3QgcmV0cnkgbG9naWMuCisgICAgICAgIChNb2NrSlNDRWFybHlXYXJuaW5nU3lzdGVtKTog
TW9ja2VkLW91dCB2ZXJzaW9uIG9mIEFic3RhcmN0RWFybHlXYXJuaW5nU3lzdGVtIHNvIHdlIGNh
biBwcm92aWRlIHRlc3QgcmVzdWx0cy4KKyAgICAgICAgKE1vY2tKU0NFYXJseVdhcm5pbmdTeXN0
ZW0uX19pbml0X18pOiBTZXRzIGF0dHJpYnV0ZXMsIGFsc28gc2V0cyBncm91cCB0byBqc2MuCisg
ICAgICAgIChNb2NrSlNDRWFybHlXYXJuaW5nU3lzdGVtLnRlc3RfcmVzdWx0cyk6IFJldHVybnMg
dGVzdCByZXN1bHRzIHByb3ZpZGVkIGJ5IHVzLCBpbnN0ZWFkIG9mIHVzaW5nIGEgSlNPTiByZWFk
ZXIuCisgICAgICAgIChKU0NFYXJseVdhcm5pbmdTeXN0ZW1UZXN0KTogQ2xhc3MgdG8gdGVzdCBy
ZXRyeSBsb2dpYyBpbiBiZWxvdyBzaXR1YXRpb25zLgorICAgICAgICAoSlNDRWFybHlXYXJuaW5n
U3lzdGVtVGVzdC5fY3JlYXRlX3Rhc2spOiBIZWxwZXIgZnVuY3Rpb24gdG8gYWJzdHJhY3Qgb3V0
IGNvbW1vbiBjb2RlLgorICAgICAgICAoSlNDRWFybHlXYXJuaW5nU3lzdGVtVGVzdC5fcmVzdWx0
c19pbmRpY2F0ZV9hbGxfcGFzc2VkKTogRmFsc2UgaWYgaW5wdXQgaXMgTm9uZSBvciBoYXMgZmFp
bHVyZXMsIGVsc2UgVHJ1ZS4KKyAgICAgICAgKEpTQ0Vhcmx5V2FybmluZ1N5c3RlbVRlc3QudGVz
dF9zdWNjZXNzX2Nhc2UpOiBDbGVhbiBwYXRjaCBvbiBjbGVhbiB0cmVlLgorICAgICAgICAoSlND
RWFybHlXYXJuaW5nU3lzdGVtVGVzdC50ZXN0X3Rlc3RfZmFpbHVyZSk6IEZhaWxlZCBwYXRjaCBv
biBjbGVhbiB0cmVlLgorICAgICAgICAoSlNDRWFybHlXYXJuaW5nU3lzdGVtVGVzdC50ZXN0X2Zp
eCk6IFBhdGNoIHRoYXQgZml4ZXMgYWxsIHRyZWUgcmVkbmVzcy4KKyAgICAgICAgKEpTQ0Vhcmx5
V2FybmluZ1N5c3RlbVRlc3QudGVzdF9pbmVmZmVjdGl2ZV9wYXRjaCk6IFBhdGNoIHRoYXQgaGFz
IHNhbWUgZmFpbHVyZXMgYXMgdHJlZS4KKyAgICAgICAgKEpTQ0Vhcmx5V2FybmluZ1N5c3RlbVRl
c3QudGVzdF9wYXJ0aWFsbHlfZWZmZWN0aXZlX3BhdGNoKTogUGF0Y2ggZml4ZXMgc29tZSBmYWls
dXJlcyBidXQgYWRkcyBubyBuZXcgZmFpbHVyZXMuCisgICAgICAgIChKU0NFYXJseVdhcm5pbmdT
eXN0ZW1UZXN0LnRlc3RfZGlmZmVyZW50X3Rlc3RfZmFpbHVyZXNfaW5fcGF0Y2hfYW5kX3RyZWUp
OiBQYXRjaCBoYXMgc29tZSBmYWlsdXJlcyBub3QgaW4gdHJlZS4KKyAgICAgICAgKEpTQ0Vhcmx5
V2FybmluZ1N5c3RlbVRlc3QudGVzdF9maXJzdF9yZXN1bHRzX2NvdWxkX25vdF9iZV9yZWFkKTog
UGF0Y2ggcmVzdWx0cyBub3QgcmVhZGFibGUuCisgICAgICAgIChKU0NFYXJseVdhcm5pbmdTeXN0
ZW1UZXN0LnRlc3Rfc2Vjb25kX3Jlc3VsdHNfY291bGRfbm90X2JlX3JlYWQpOiBQYXRjaCByZXN1
bHRzIG5vdCByZWFkYWJsZSBvbiBzZWNvbmQgcnVuLgorICAgICAgICAoSlNDRWFybHlXYXJuaW5n
U3lzdGVtVGVzdC50ZXN0X2NsZWFuX3Jlc3VsdHNfY291bGRfbm90X2JlX3JlYWQpOiBSZXN1bHRz
IGZyb20gY2xlYW4gdHJlZSBub3QgcmVhZGFibGUuCisgICAgICAgIChKU0NFYXJseVdhcm5pbmdT
eXN0ZW1UZXN0LnRlc3RfZmxha3lfcmVzdWx0c19vbl9jbGVhbl90cmVlX3Bhc3MpOiBQYXRjaCBo
YXMgb25lIGZsYWtlIGFuZCBubyBmYWlsdXJlcy4KKyAgICAgICAgKEpTQ0Vhcmx5V2FybmluZ1N5
c3RlbVRlc3QudGVzdF9mbGFreV9yZXN1bHRzX29uX2NsZWFuX3RyZWVfcGFzc192Mik6IFBhdGNo
IGhhcyBvbmUgZmxha2UgYW5kIG5vIGZhaWx1cmVzLgorICAgICAgICAoSlNDRWFybHlXYXJuaW5n
U3lzdGVtVGVzdC50ZXN0X2ZsYWt5X3Jlc3VsdHNfb25fY2xlYW5fdHJlZV9mYWlsdXJlKTogUGF0
Y2ggaGFzIGZsYWtlcyBhbmQgZmFpbGVkIHRlc3RzLgorICAgICAgICAoSlNDRWFybHlXYXJuaW5n
U3lzdGVtVGVzdC50ZXN0X2ZsYWt5X3Jlc3VsdHNfb25fcmVkX3RyZWVfcGFzcyk6IFBhdGNoIGhh
cyBzYW1lIGZhaWx1cmVzIGFzIHRyZWUsIHBsdXMgYSBmbGFrZS4KKyAgICAgICAgKiBTY3JpcHRz
L3dlYmtpdHB5L3Rvb2wvYm90L2pzY3Rlc3RyZXN1bHRzcmVhZGVyLnB5OiBBZGRlZC4KKyAgICAg
ICAgKEpTQ1Rlc3RSZXN1bHRzUmVhZGVyKTogUmVhZHMgcmVzdWx0cyBmaWxlLgorICAgICAgICAo
SlNDVGVzdFJlc3VsdHNSZWFkZXIuX19pbml0X18pOiBTZXRzIGF0dHJpYnV0ZXMuCisgICAgICAg
IChKU0NUZXN0UmVzdWx0c1JlYWRlci5fcmVhZF9maWxlX2NvbnRlbnRzKTogUmVhZHMgZmlsZS4K
KyAgICAgICAgKEpTQ1Rlc3RSZXN1bHRzUmVhZGVyLnJlc3VsdHMpOiBSZWFkcyB0aGUgcmVzdWx0
cyBmaWxlIGFuZCByZXR1cm5zIGEgSlNDVGVzdFJlc3VsdHMgb2JqZWN0LgorICAgICAgICAqIFNj
cmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvcGF0Y2hhbmFseXNpc3Rhc2sucHk6CisgICAgICAgIChQ
YXRjaElzTm90QXBwbGljYWJsZSk6IEV4Y2VwdGlvbiBmb3Igd2hlbiBwYXRjaCBkb2Vzbid0IGhh
dmUgcmVsZXZhbnQgY2hhbmdlcy4KKyAgICAgICAgKFBhdGNoQW5hbHlzaXNUYXNrLl9jaGVja19w
YXRjaF9yZWxldmFuY2UpOiBBZGRlZC4KKyAgICAgICAgKFBhdGNoQW5hbHlzaXNUYXNrLl9idWls
ZCk6IENoZWNrIGZvciBKU0MuCisgICAgICAgIChQYXRjaEFuYWx5c2lzVGFzay5fYnVpbGRfd2l0
aG91dF9wYXRjaCk6IENoZWNrIGZvciBKU0MuCisgICAgICAgIChQYXRjaEFuYWx5c2lzVGFzay5f
dGVzdCk6IENoZWNrIGZvciBKU0MuCisgICAgICAgIChQYXRjaEFuYWx5c2lzVGFzay5fYnVpbGRf
YW5kX3Rlc3Rfd2l0aG91dF9wYXRjaCk6IENoZWNrIGZvciBKU0MuCisgICAgICAgIChQYXRjaEFu
YWx5c2lzVGFzay5fcmV0cnlfanNjX3Rlc3RzKTogUmV0cnkgbG9naWMgZm9yIEpTQyBFV1MuCisg
ICAgICAgIChQYXRjaEFuYWx5c2lzVGFzay5fcmV0cnlfbGF5b3V0X3Rlc3RzKTogUmV0cnkgbG9n
aWMgZm9yIGxheW91dCB0ZXN0cyBFV1MuCisgICAgICAgIChQYXRjaEFuYWx5c2lzVGFzay5fdGVz
dF9wYXRjaCk6IEFkZCByZXRyeSBsb2dpYyBmb3IgSlNDLgorICAgICAgICAqIFNjcmlwdHMvd2Vi
a2l0cHkvdG9vbC9jb21tYW5kcy9kb3dubG9hZC5weToKKyAgICAgICAgKENoZWNrUGF0Y2hSZWxl
dmFuY2UpOiBBZGQgY2hlY2stcGF0Y2gtcmVsZXZhbmNlIGNvbW1hbmQuCisgICAgICAgICogU2Ny
aXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Vhcmx5d2FybmluZ3N5c3RlbS5weToKKyAgICAg
ICAgKEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtLl9jcmVhdGVfdGFzayk6IEFic3RyYWN0IG91
dCB0byBlbmFibGUgbW9ja2luZy4KKyAgICAgICAgKEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVt
LmJlZ2luX3dvcmtfcXVldWUpOiBVc2UgSlNDVGVzdFJlc3VsdHNSZWFkZXIgbm90IExheW91dFRl
c3RSZXN1bHRzUmVhZGVyIGluIEpTQyBFV1MuCisgICAgICAgIChBYnN0cmFjdEVhcmx5V2Fybmlu
Z1N5c3RlbS5yZXZpZXdfcGF0Y2gpOiBIYW5kbGUgUGF0Y2hJc0FwcGxpY2FibGUuCisgICAgICAg
IChBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbS50ZXN0X3Jlc3VsdHMpOiBfbGF5b3V0X3Rlc3Rf
cmVzdWx0c19yZWFkZXIgLT4gX3Rlc3RfcmVzdWx0c19yZWFkZXIuCisgICAgICAgIChBYnN0cmFj
dEVhcmx5V2FybmluZ1N5c3RlbS5hcmNoaXZlX2xhc3RfdGVzdF9yZXN1bHRzKTogX2xheW91dF90
ZXN0X3Jlc3VsdHNfcmVhZGVyIC0+IF90ZXN0X3Jlc3VsdHNfcmVhZGVyLgorICAgICAgICAoQWJz
dHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0uZ3JvdXApOiBUaGlzIGF0dHJpYnV0ZSBkZXRlcm1pbmVz
IHRoZSB0eXBlIG9mIEVXUyAoZWcuIEpTQykuCisgICAgICAgIChBYnN0cmFjdEVhcmx5V2Fybmlu
Z1N5c3RlbS5sb2FkX2V3c19jbGFzc2VzKTogQWRkIF9ncm91cCwgYW5kIG1ha2UgY2xhc3NlcyBv
ZiB0eXBlIGNscyB0byBlbmFibGUgbW9ja2luZy4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5
L3Rvb2wvY29tbWFuZHMvZWFybHl3YXJuaW5nc3lzdGVtX3VuaXR0ZXN0LnB5OgorICAgICAgICAo
VGVzdEVXUyk6IFNhbXBsZSBsYXlvdXQgdGVzdCBFV1MgY2xhc3MgdXNlZCBmb3IgdW5pdCB0ZXN0
aW5nLgorICAgICAgICAoVGVzdEpTQ0VXUyk6IFNhbXBsZSBKU0MgRVdTIGNsYXNzIHVzZWQgZm9y
IHVuaXQgdGVzdGluZy4KKyAgICAgICAgKEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtVGVzdC50
ZXN0X2ZhaWxpbmdfdGVzdHNfbWVzc2FnZS5UZXN0RVdTKTogQWRkIF9ncm91cC4KKyAgICAgICAg
KEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtVGVzdC50ZXN0X2ZhaWxpbmdfanNjX3Rlc3RzX21l
c3NhZ2UuVGVzdEVXUyk6IEFkZGVkIHRlc3QgZm9yIGpzYyBmYWlsdXJlcyBtZXNzYWdlLgorICAg
ICAgICAoQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW1UZXN0KTogQWRkIF9ncm91cCB2YXJpYWJs
ZS4KKyAgICAgICAgKEVhcmx5V2FybmluZ1N5c3RlbVRlc3QuX2RlZmF1bHRfZXhwZWN0ZWRfbG9n
cyk6IEFkZCBjaGVjay1wYXRjaC1yZWxldmFuY2Ugc3RlcCwgaW5jb25jbHVzaXZlIGxvZ3MsIGFu
ZCBncm91cC4KKyAgICAgICAgKEVhcmx5V2FybmluZ1N5c3RlbVRlc3QuX3Rlc3RfZXdzKTogQWRk
IGxvZ3NfYXJlX2NvbmNsdXNpdmUgb3B0aW9uIHRvIHBhc3MgdGhyb3VnaCB0byBkZWZhdWx0X2V4
cGVjdGVkX2xvZ3MoKS4KKyAgICAgICAgKEVhcmx5V2FybmluZ1N5c3RlbVRlc3QudGVzdF9pbmNv
bmNsdXNpdmVfdGVzdF9yZXN1bHRzKTogVGVzdCBub3QgcmVtb3ZpbmcgcGF0Y2ggZnJvbSBxdWV1
ZSBpZiBub3QgY29uY2x1c2l2ZS4KKyAgICAgICAgKE1vY2tBYnN0cmFjdEVhcmx5V2FybmluZ1N5
c3RlbUZvckluY29uY2x1c2l2ZUpTQ1Jlc3VsdHMpOiBBZGRlZC4KKyAgICAgICAgKE1vY2tBYnN0
cmFjdEVhcmx5V2FybmluZ1N5c3RlbUZvckluY29uY2x1c2l2ZUpTQ1Jlc3VsdHMuX3Rlc3RfcGF0
Y2gpOiBTaW11bGF0ZXMgcnVubmluZyB0ZXN0cyBidXQgbm90IGdldHRpbmcgYSBjb25jbHVzaXZl
IHJlc3VsdC4KKyAgICAgICAgKE1vY2tFYXJseVdhcm5pbmdTeXN0ZW1UYXNrRm9ySW5jb25jbHVz
aXZlSlNDUmVzdWx0cyk6IEFkZGVkLgorICAgICAgICAoTW9ja0Vhcmx5V2FybmluZ1N5c3RlbVRh
c2tGb3JJbmNvbmNsdXNpdmVKU0NSZXN1bHRzLl9jcmVhdGVfdGFzayk6IFVzZSBNb2NrRWFybHlX
YXJuaW5nU3lzdGVtVGFzayAobm90IEVhcmx5V2FybmluZ1N5c3RlbVRhc2spLgorICAgICAgICAq
IFNjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9fX2luaXRfXy5weTogQWRkIENoZWNrUGF0Y2hS
ZWxldmFuY2UgaW1wb3J0LgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9i
dWlsZC5weToKKyAgICAgICAgKEJ1aWxkLm9wdGlvbnMpOiBDaGVjayBmb3IgSlNDLgorICAgICAg
ICAoQnVpbGQuYnVpbGQpOiBDaGVjayBmb3IgSlNDLgorICAgICAgICAoQnVpbGQucnVuKTogQ2hl
Y2sgZm9yIEpTQy4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvY2hlY2tw
YXRjaHJlbGV2YW5jZS5weTogQWRkZWQuCisgICAgICAgIChDaGVja1BhdGNoUmVsZXZhbmNlKTog
QWRkZWQuCisgICAgICAgIChDaGVja1BhdGNoUmVsZXZhbmNlLl9kb2VzX2NvbnRhaW5fY2hhbmdl
X2luX3BhdGhzKTogQWJzdHJhY3QgZnVuY3Rpb24gdG8gcGVyZm9ybSByZWdleCBtYXRjaGluZy4K
KyAgICAgICAgKENoZWNrUGF0Y2hSZWxldmFuY2UucnVuKTogQ2hlY2sgaWYgY2hhbmdlZCBmaWxl
cyBpbiBwYXRjaCBiZWxvbmcgaW4gY2VydGFpbiBmb2xkZXJzLgorICAgICAgICAqIFNjcmlwdHMv
d2Via2l0cHkvdG9vbC9zdGVwcy9vcHRpb25zLnB5OgorICAgICAgICAoT3B0aW9ucyk6IEFkZCAt
LWdyb3VwIGNvbW1hbmQgbGluZSBvcHRpb24uCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90
b29sL3N0ZXBzL3J1bnRlc3RzLnB5OgorICAgICAgICAoUnVuVGVzdHMub3B0aW9ucyk6IEFkZCBn
cm91cC4KKyAgICAgICAgKFJ1blRlc3RzLnJ1bik6IENoZWNrIGZvciBKU0MuCisgICAgICAgIChS
dW5UZXN0cy5fcnVuX3dlYmtpdF90ZXN0cyk6IENoZWNrIGZvciBKU0MuCisgICAgICAgIChSdW5U
ZXN0cyk6IEFkZCBfZ3JvdXAgYXR0cmlidXRlLgorICAgICAgICAoUnVuVGVzdHMuX3J1bl9qYXZh
c2NyaXB0Y29yZV90ZXN0cyk6IE5ldy4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wv
c3RlcHMvc3RlcHNfdW5pdHRlc3QucHk6IFVuaXQgdGVzdHMuCisKIDIwMTctMDItMTAgIEpvc2Vw
aCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAogICAgICAgICBbUmVzb3VyY2UgVGlt
aW5nXSBFbmFibGUgUmVzb3VyY2UgVGltaW5nIGJ5IGRlZmF1bHQgaW4gVGVzdHMKZGlmZiAtLWdp
dCBhL1Rvb2xzL1F1ZXVlU3RhdHVzU2VydmVyL2NvbmZpZy9tZXNzYWdlcy5weSBiL1Rvb2xzL1F1
ZXVlU3RhdHVzU2VydmVyL2NvbmZpZy9tZXNzYWdlcy5weQppbmRleCA2Zjk1NTI5MzJjZTQyOGRk
MzZmZTUwOTBlOTU3NzdiYzQ4ZDY1MWU1Li5hMDkzNGUyMjI5ZDU2OTc2NWRlNWFlNDE1MWU0MThk
YTNjZTBkYmIwIDEwMDY0NAotLS0gYS9Ub29scy9RdWV1ZVN0YXR1c1NlcnZlci9jb25maWcvbWVz
c2FnZXMucHkKKysrIGIvVG9vbHMvUXVldWVTdGF0dXNTZXJ2ZXIvY29uZmlnL21lc3NhZ2VzLnB5
CkBAIC0xLDQgKzEsNSBAQAogIyBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTI3LDYgKzI4
LDcgQEAKICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KIAogIyBUaGVzZSBtdXN0IGJlIGluIHN5bmMgd2l0aCB3ZWJr
aXQtcGF0Y2gncyBBYnN0cmFjdFF1ZXVlLgorc2tpcF9zdGF0dXMgPSAiU2tpcCIKIHBhc3Nfc3Rh
dHVzID0gIlBhc3MiCiBmYWlsX3N0YXR1cyA9ICJGYWlsIgogZXJyb3Jfc3RhdHVzID0gIkVycm9y
IgpkaWZmIC0tZ2l0IGEvVG9vbHMvUXVldWVTdGF0dXNTZXJ2ZXIvY29uZmlnL3F1ZXVlcy5weSBi
L1Rvb2xzL1F1ZXVlU3RhdHVzU2VydmVyL2NvbmZpZy9xdWV1ZXMucHkKaW5kZXggMzQxZGQwODNh
ZGZiYjg5MDcxOThiZWVkNWVhYjIxOTMwMjY5ODNmNS4uMGEyMmZmMzJjOGYwM2M4NzE0OTY5ODc3
NGY2NDM4ZWQ1ZmFiYWRjNyAxMDA2NDQKLS0tIGEvVG9vbHMvUXVldWVTdGF0dXNTZXJ2ZXIvY29u
ZmlnL3F1ZXVlcy5weQorKysgYi9Ub29scy9RdWV1ZVN0YXR1c1NlcnZlci9jb25maWcvcXVldWVz
LnB5CkBAIC0xLDQgKzEsNCBAQAotIyBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMTQsIDIwMTcgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogIyBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CkBAIC0zNiw2ICszNiw3IEBAIGFsbF9x
dWV1ZV9uYW1lcyA9IFsKICAgICAiZ3RrLXdrMi1ld3MiLAogICAgICJpb3MtZXdzIiwKICAgICAi
aW9zLXNpbS1ld3MiLAorICAgICJqc2MtZXdzIiwKICAgICAibWFjLWV3cyIsCiAgICAgIm1hYy13
azItZXdzIiwKICAgICAibWFjLWRlYnVnLWV3cyIsCmRpZmYgLS1naXQgYS9Ub29scy9RdWV1ZVN0
YXR1c1NlcnZlci9oYW5kbGVycy9zdGF0dXNidWJibGUucHkgYi9Ub29scy9RdWV1ZVN0YXR1c1Nl
cnZlci9oYW5kbGVycy9zdGF0dXNidWJibGUucHkKaW5kZXggYzgwNTE0ZmY4Nzg5ZWY2OTRiOTk1
NzE0ZTJlYjVkOTZmOGJjYTc4Mi4uMzhiYWMwMzk5ZTMwNDM3MzA2NzE1MjdlNDBkMzRmMTUzZGJh
YzRmMCAxMDA2NDQKLS0tIGEvVG9vbHMvUXVldWVTdGF0dXNTZXJ2ZXIvaGFuZGxlcnMvc3RhdHVz
YnViYmxlLnB5CisrKyBiL1Rvb2xzL1F1ZXVlU3RhdHVzU2VydmVyL2hhbmRsZXJzL3N0YXR1c2J1
YmJsZS5weQpAQCAtMSw0ICsxLDUgQEAKICMgQ29weXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogIyBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC0x
ODIsMTEgKzE4MywxNSBAQCBjbGFzcyBTdGF0dXNCdWJibGUod2ViYXBwLlJlcXVlc3RIYW5kbGVy
KToKICAgICAgICAgcmV0dXJuIGJ1YmJsZQogCiAgICAgZGVmIF9zaG91bGRfc2hvd19idWJibGVf
Zm9yKHNlbGYsIGF0dGFjaG1lbnQsIHF1ZXVlKToKLSAgICAgICAgICMgQW55IHBlbmRpbmcgcXVl
dWUgaXMgc2hvd24uCisgICAgICAgICMgQW55IHBlbmRpbmcgcXVldWUgaXMgc2hvd24uCiAgICAg
ICAgIGlmIGF0dGFjaG1lbnQucG9zaXRpb25faW5fcXVldWUocXVldWUpOgogICAgICAgICAgICAg
cmV0dXJuIFRydWUKLSAgICAgICAgIyBFV1MgcXVldWVzIGFyZSBhbHNvIHNob3duIHdoZW4gY29t
cGxldGUuCi0gICAgICAgIHJldHVybiBib29sKHF1ZXVlLmlzX2V3cygpIGFuZCBhdHRhY2htZW50
LnN0YXR1c19mb3JfcXVldWUocXVldWUpKQorCisgICAgICAgIGlmIG5vdCBxdWV1ZS5pc19ld3Mo
KToKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgICAgIHN0YXR1cyA9IGF0dGFjaG1l
bnQuc3RhdHVzX2Zvcl9xdWV1ZShxdWV1ZSkKKyAgICAgICAgcmV0dXJuIGJvb2woc3RhdHVzIGFu
ZCBub3Qgc3RhdHVzLmRpZF9za2lwKCkpCiAKICAgICBkZWYgX2J1aWxkX2J1YmJsZXNfZm9yX2F0
dGFjaG1lbnQoc2VsZiwgYXR0YWNobWVudCk6CiAgICAgICAgIHNob3dfc3VibWl0X3RvX2V3cyA9
IFRydWUKZGlmZiAtLWdpdCBhL1Rvb2xzL1F1ZXVlU3RhdHVzU2VydmVyL21vZGVsL3F1ZXVlcy5w
eSBiL1Rvb2xzL1F1ZXVlU3RhdHVzU2VydmVyL21vZGVsL3F1ZXVlcy5weQppbmRleCA1NzJkY2Uw
YjAwMTg5ZWViNzUwNmI1ZjRlM2IzNWEwNWM0MTkyNDk1Li42NzRkYTI5ZTk1NmZlMjc4MzcwOTFi
MDQ3ZWUyOTY4MmRmZWZmYTQ2IDEwMDY0NAotLS0gYS9Ub29scy9RdWV1ZVN0YXR1c1NlcnZlci9t
b2RlbC9xdWV1ZXMucHkKKysrIGIvVG9vbHMvUXVldWVTdGF0dXNTZXJ2ZXIvbW9kZWwvcXVldWVz
LnB5CkBAIC03OCw2ICs3OCw3IEBAIGNsYXNzIFF1ZXVlKG9iamVjdCk6CiAgICAgICAgIGRpc3Bs
YXlfbmFtZSA9IGRpc3BsYXlfbmFtZS5yZXBsYWNlKCJXazIiLCAiV0syIikKICAgICAgICAgZGlz
cGxheV9uYW1lID0gZGlzcGxheV9uYW1lLnJlcGxhY2UoIkV3cyIsICJFV1MiKQogICAgICAgICBk
aXNwbGF5X25hbWUgPSBkaXNwbGF5X25hbWUucmVwbGFjZSgiSW9zIiwgImlPUyIpCisgICAgICAg
IGRpc3BsYXlfbmFtZSA9IGRpc3BsYXlfbmFtZS5yZXBsYWNlKCJKc2MiLCAiSlNDIikKICAgICAg
ICAgcmV0dXJuIGRpc3BsYXlfbmFtZQogCiAgICAgX2Rhc2hfcmVnZXhwID0gcmUuY29tcGlsZSgi
LSIpCmRpZmYgLS1naXQgYS9Ub29scy9RdWV1ZVN0YXR1c1NlcnZlci9tb2RlbC9xdWV1ZXN0YXR1
cy5weSBiL1Rvb2xzL1F1ZXVlU3RhdHVzU2VydmVyL21vZGVsL3F1ZXVlc3RhdHVzLnB5CmluZGV4
IGQ5YmI2ZjY1NjM3NTQwYzcwYjk3ODFhZWQyNWI4ODIzZDliMzgzOTYuLjk3MWU2ZGM1ODE0YWQ0
Yjg4NDhjMzc0YzVkMGNiY2JiYmU1Yjg2ZjQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1F1ZXVlU3RhdHVz
U2VydmVyL21vZGVsL3F1ZXVlc3RhdHVzLnB5CisrKyBiL1Rvb2xzL1F1ZXVlU3RhdHVzU2VydmVy
L21vZGVsL3F1ZXVlc3RhdHVzLnB5CkBAIC0xLDQgKzEsNSBAQAogIyBDb3B5cmlnaHQgKEMpIDIw
MTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDE3
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucyBhcmUKQEAgLTQwLDMgKzQxLDYgQEAgY2xhc3MgUXVldWVTdGF0dXMoZGIuTW9kZWwsIFF1
ZXVlUHJvcGVydHlNaXhpbik6CiAgICAgbWVzc2FnZSA9IGRiLlN0cmluZ1Byb3BlcnR5KG11bHRp
bGluZT1UcnVlKQogICAgIGRhdGUgPSBkYi5EYXRlVGltZVByb3BlcnR5KGF1dG9fbm93X2FkZD1U
cnVlKQogICAgIHJlc3VsdHNfZmlsZSA9IGRiLkJsb2JQcm9wZXJ0eSgpCisKKyAgICBkZWYgZGlk
X3NraXAoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLm1lc3NhZ2UgPT0gbWVzc2FnZXMuc2tp
cF9zdGF0dXMKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNr
b3V0L3NjbS9zY21fbW9jay5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNr
b3V0L3NjbS9zY21fbW9jay5weQppbmRleCBjNWQxMGZjYjE4OWIwYThiNTE5ZmE1NTYyNTAyMmE3
MGM0ODZkNDRiLi45Nzc0ZWM4YWU4NzNhMWIwYjgzNzYwNzE4MDY2NzkyMTU4MDllZWVjIDEwMDY0
NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja291dC9zY20vc2NtX21v
Y2sucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hlY2tvdXQvc2NtL3Nj
bV9tb2NrLnB5CkBAIC0xLDQgKzEsNSBAQAogIyBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAg
LTM3LDYgKzM4LDcgQEAgY2xhc3MgTW9ja1NDTShvYmplY3QpOgogICAgICAgICBzZWxmLmFkZGVk
X3BhdGhzID0gc2V0KCkKICAgICAgICAgc2VsZi5fZmlsZXN5c3RlbSA9IGZpbGVzeXN0ZW0gb3Ig
TW9ja0ZpbGVTeXN0ZW0oKQogICAgICAgICBzZWxmLl9leGVjdXRpdmUgPSBleGVjdXRpdmUgb3Ig
TW9ja0V4ZWN1dGl2ZSgpCisgICAgICAgIHNlbGYuX21vY2tDaGFuZ2VkRmlsZXMgPSBbIk1vY2tG
aWxlMSJdCiAKICAgICBkZWYgYWRkKHNlbGYsIGRlc3RpbmF0aW9uX3BhdGgpOgogICAgICAgICBz
ZWxmLmFkZF9saXN0KFtkZXN0aW5hdGlvbl9wYXRoXSkKQEAgLTcxLDcgKzczLDcgQEAgY2xhc3Mg
TW9ja1NDTShvYmplY3QpOgogICAgICAgICByZXR1cm4gc2VsZi5fZmlsZXN5c3RlbS5qb2luKHNl
bGYuY2hlY2tvdXRfcm9vdCwgKmNvbXBzKQogCiAgICAgZGVmIGNoYW5nZWRfZmlsZXMoc2VsZiwg
Z2l0X2NvbW1pdD1Ob25lKToKLSAgICAgICAgcmV0dXJuIFsiTW9ja0ZpbGUxIl0KKyAgICAgICAg
cmV0dXJuIHNlbGYuX21vY2tDaGFuZ2VkRmlsZXMKIAogICAgIGRlZiBjaGFuZ2VkX2ZpbGVzX2Zv
cl9yZXZpc2lvbihzZWxmLCByZXZpc2lvbik6CiAgICAgICAgIHJldHVybiBbIk1vY2tGaWxlMSJd
CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvZXdzLmpz
b24gYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvZXdzLmpzb24KaW5kZXgg
MzVkNDk4NWFiMGY5M2QxMjdiMzcyMWU0NjAxY2Q2ZDg5ZGZjY2YzYy4uZTUzNDBmZTVjM2MyMWFl
ODFhZDFlZjdlMDNmN2ZiODFmMzgzOWNmZiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9jb21tb24vY29uZmlnL2V3cy5qc29uCisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
Y29tbW9uL2NvbmZpZy9ld3MuanNvbgpAQCAtNTAsNSArNTAsMTEgQEAKICAgICAgICAgInBvcnQi
OiAibWFjIiwKICAgICAgICAgIm5hbWUiOiAibWFjLTMyYml0LWV3cyIsCiAgICAgICAgICJhcmNo
aXRlY3R1cmUiOiAiaTM4NiIKKyAgICB9LAorICAgICJKU0MgRVdTIjogeworICAgICAgICAicG9y
dCI6ICJtYWMiLAorICAgICAgICAibmFtZSI6ICJqc2MtZXdzIiwKKyAgICAgICAgImdyb3VwIjog
ImpzYyIsCisgICAgICAgICJydW5UZXN0cyI6IHRydWUKICAgICB9CiB9CmRpZmYgLS1naXQgYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvcG9ydHMucHkgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvcG9ydHMucHkKaW5kZXggYTBkNTBkY2I2ZWEwYjVm
ZGUwYjNjMTdlZjE1OWNlYWZlZTFhMmU5OC4uZjY3OTRmZmJiNWZmNzBhMzc4ZTRhMmM3YjFhNWE4
YjRjOGJmNDRlYSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29u
ZmlnL3BvcnRzLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9w
b3J0cy5weQpAQCAtMSw2ICsxLDYgQEAKICMgQ29weXJpZ2h0IChDKSAyMDA5LCBHb29nbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIyBDb3B5cmlnaHQgKEMpIDIwMTMgTm9raWEgQ29ycG9y
YXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgotIyBDb3B5cmlnaHQgKEMpIDIwMTUg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMTUsIDIw
MTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zIGFyZQpAQCAtOTUsMjQgKzk1LDI5IEBAIGNsYXNzIERlcHJlY2F0ZWRQb3J0KG9iamVj
dCk6CiAgICAgZGVmIHByZXBhcmVfY2hhbmdlbG9nX2NvbW1hbmQoc2VsZik6CiAgICAgICAgIHJl
dHVybiBzZWxmLnNjcmlwdF9zaGVsbF9jb21tYW5kKCJwcmVwYXJlLUNoYW5nZUxvZyIpCiAKLSAg
ICBkZWYgYnVpbGRfd2Via2l0X2NvbW1hbmQoc2VsZiwgYnVpbGRfc3R5bGU9Tm9uZSk6Ci0gICAg
ICAgIGNvbW1hbmQgPSBzZWxmLnNjcmlwdF9zaGVsbF9jb21tYW5kKCJidWlsZC13ZWJraXQiKQor
ICAgIGRlZiBfYXBwZW5kX2J1aWxkX3N0eWxlX2ZsYWcoc2VsZiwgY29tbWFuZCwgYnVpbGRfc3R5
bGUpOgogICAgICAgICBpZiBidWlsZF9zdHlsZSA9PSAiZGVidWciOgogICAgICAgICAgICAgY29t
bWFuZC5hcHBlbmQoIi0tZGVidWciKQotICAgICAgICBpZiBidWlsZF9zdHlsZSA9PSAicmVsZWFz
ZSI6CisgICAgICAgIGVsaWYgYnVpbGRfc3R5bGUgPT0gInJlbGVhc2UiOgogICAgICAgICAgICAg
Y29tbWFuZC5hcHBlbmQoIi0tcmVsZWFzZSIpCiAgICAgICAgIHJldHVybiBjb21tYW5kCiAKLSAg
ICBkZWYgcnVuX2phdmFzY3JpcHRjb3JlX3Rlc3RzX2NvbW1hbmQoc2VsZik6Ci0gICAgICAgIHJl
dHVybiBzZWxmLnNjcmlwdF9zaGVsbF9jb21tYW5kKCJydW4tamF2YXNjcmlwdGNvcmUtdGVzdHMi
KQorICAgIGRlZiBidWlsZF93ZWJraXRfY29tbWFuZChzZWxmLCBidWlsZF9zdHlsZT1Ob25lKToK
KyAgICAgICAgY29tbWFuZCA9IHNlbGYuc2NyaXB0X3NoZWxsX2NvbW1hbmQoImJ1aWxkLXdlYmtp
dCIpCisgICAgICAgIHJldHVybiBzZWxmLl9hcHBlbmRfYnVpbGRfc3R5bGVfZmxhZyhjb21tYW5k
LCBidWlsZF9zdHlsZSkKKworICAgIGRlZiBidWlsZF9qc2NfY29tbWFuZChzZWxmLCBidWlsZF9z
dHlsZT1Ob25lKToKKyAgICAgICAgY29tbWFuZCA9IHNlbGYuc2NyaXB0X3NoZWxsX2NvbW1hbmQo
ImJ1aWxkLWpzYyIpCisgICAgICAgIHJldHVybiBzZWxmLl9hcHBlbmRfYnVpbGRfc3R5bGVfZmxh
Zyhjb21tYW5kLCBidWlsZF9zdHlsZSkKKworICAgIGRlZiBydW5famF2YXNjcmlwdGNvcmVfdGVz
dHNfY29tbWFuZChzZWxmLCBidWlsZF9zdHlsZT1Ob25lKToKKyAgICAgICAgY29tbWFuZCA9IHNl
bGYuc2NyaXB0X3NoZWxsX2NvbW1hbmQoInJ1bi1qYXZhc2NyaXB0Y29yZS10ZXN0cyIpCisgICAg
ICAgIGNvbW1hbmQuYXBwZW5kKCItLW5vLWZhaWwtZmFzdCIpCisgICAgICAgIHJldHVybiBzZWxm
Ll9hcHBlbmRfYnVpbGRfc3R5bGVfZmxhZyhjb21tYW5kLCBidWlsZF9zdHlsZSkKIAogICAgIGRl
ZiBydW5fd2Via2l0X3Rlc3RzX2NvbW1hbmQoc2VsZiwgYnVpbGRfc3R5bGU9Tm9uZSk6CiAgICAg
ICAgIGNvbW1hbmQgPSBzZWxmLnNjcmlwdF9zaGVsbF9jb21tYW5kKCJydW4td2Via2l0LXRlc3Rz
IikKLSAgICAgICAgaWYgYnVpbGRfc3R5bGUgPT0gImRlYnVnIjoKLSAgICAgICAgICAgIGNvbW1h
bmQuYXBwZW5kKCItLWRlYnVnIikKLSAgICAgICAgaWYgYnVpbGRfc3R5bGUgPT0gInJlbGVhc2Ui
OgotICAgICAgICAgICAgY29tbWFuZC5hcHBlbmQoIi0tcmVsZWFzZSIpCi0gICAgICAgIHJldHVy
biBjb21tYW5kCisgICAgICAgIHJldHVybiBzZWxmLl9hcHBlbmRfYnVpbGRfc3R5bGVfZmxhZyhj
b21tYW5kLCBidWlsZF9zdHlsZSkKIAogICAgIGRlZiBydW5fcHl0aG9uX3VuaXR0ZXN0c19jb21t
YW5kKHNlbGYpOgogICAgICAgICByZXR1cm4gc2VsZi5zY3JpcHRfc2hlbGxfY29tbWFuZCgidGVz
dC13ZWJraXRweSIpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9j
b25maWcvcG9ydHNfbW9jay5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZp
Zy9wb3J0c19tb2NrLnB5CmluZGV4IDYxNzQzZGViYjRlYmVlMzc1NmJhN2MyMGYwMTQ4MjM1NDBk
MmRjYTYuLmNhMWIxOGEzMTA2ODQyM2JkY2UwN2NkZWI3ZDdkN2QxOTlmNDAwYWIgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9wb3J0c19tb2NrLnB5Cisr
KyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9wb3J0c19tb2NrLnB5CkBA
IC0xLDQgKzEsNSBAQAogIyBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTQ5LDcgKzUwLDcg
QEAgY2xhc3MgTW9ja1BvcnQob2JqZWN0KToKICAgICBkZWYgcnVuX3BlcmxfdW5pdHRlc3RzX2Nv
bW1hbmQoc2VsZik6CiAgICAgICAgIHJldHVybiBbJ21vY2stdGVzdC13ZWJraXRwZXJsJ10KIAot
ICAgIGRlZiBydW5famF2YXNjcmlwdGNvcmVfdGVzdHNfY29tbWFuZChzZWxmKToKKyAgICBkZWYg
cnVuX2phdmFzY3JpcHRjb3JlX3Rlc3RzX2NvbW1hbmQoc2VsZiwgYnVpbGRfc3R5bGU9Tm9uZSk6
CiAgICAgICAgIHJldHVybiBbJ21vY2stcnVuLWphdmFjcmlwdGNvcmUtdGVzdHMnXQogCiAgICAg
ZGVmIHJ1bl93ZWJraXRfdGVzdHNfY29tbWFuZChzZWxmLCBidWlsZF9zdHlsZT1Ob25lKToKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9wb3J0c191bml0
dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9wb3J0c191bml0
dGVzdC5weQppbmRleCAwOGQ1NDUyMzZkYTM3MDNlOTI4ZjFjZWVkMWRkOTEwMmQ5Yjg2MjJlLi4x
NmNkN2Y5MjgyNTFiYmM5OTZjYjY0NmU0MzU5ZDczZmRiNTM1YjI2IDEwMDY0NAotLS0gYS9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvcG9ydHNfdW5pdHRlc3QucHkKKysrIGIv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL3BvcnRzX3VuaXR0ZXN0LnB5CkBA
IC0xLDQgKzEsNSBAQAogIyBDb3B5cmlnaHQgKGMpIDIwMDksIEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC0zOSw2ICs0MCwx
MCBAQCBjbGFzcyBEZXByZWNhdGVkUG9ydFRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKE1hY1BvcnQoKS5idWlsZF93ZWJraXRfY29tbWFuZChidWlsZF9z
dHlsZT0iZGVidWciKSwgRGVwcmVjYXRlZFBvcnQoKS5zY3JpcHRfc2hlbGxfY29tbWFuZCgiYnVp
bGQtd2Via2l0IikgKyBbIi0tZGVidWciXSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChNYWNQ
b3J0KCkuYnVpbGRfd2Via2l0X2NvbW1hbmQoYnVpbGRfc3R5bGU9InJlbGVhc2UiKSwgRGVwcmVj
YXRlZFBvcnQoKS5zY3JpcHRfc2hlbGxfY29tbWFuZCgiYnVpbGQtd2Via2l0IikgKyBbIi0tcmVs
ZWFzZSJdKQogCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTWFjUG9ydCgpLmJ1aWxkX2pzY19j
b21tYW5kKCksIERlcHJlY2F0ZWRQb3J0KCkuc2NyaXB0X3NoZWxsX2NvbW1hbmQoImJ1aWxkLWpz
YyIpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE1hY1BvcnQoKS5idWlsZF9qc2NfY29tbWFu
ZChidWlsZF9zdHlsZT0icmVsZWFzZSIpLCBEZXByZWNhdGVkUG9ydCgpLnNjcmlwdF9zaGVsbF9j
b21tYW5kKCJidWlsZC1qc2MiKSArIFsiLS1yZWxlYXNlIl0pCisgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoTWFjUG9ydCgpLmJ1aWxkX2pzY19jb21tYW5kKGJ1aWxkX3N0eWxlPSJkZWJ1ZyIpLCBE
ZXByZWNhdGVkUG9ydCgpLnNjcmlwdF9zaGVsbF9jb21tYW5kKCJidWlsZC1qc2MiKSArIFsiLS1k
ZWJ1ZyJdKQorCiAgICAgZGVmIHRlc3RfZ3RrX3drMl9wb3J0KHNlbGYpOgogICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKEd0a1dLMlBvcnQoKS5mbGFnKCksICItLXBvcnQ9Z3RrLXdrMiIpCiAgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoR3RrV0syUG9ydCgpLnJ1bl93ZWJraXRfdGVzdHNfY29tbWFu
ZCgpLCBEZXByZWNhdGVkUG9ydCgpLnNjcmlwdF9zaGVsbF9jb21tYW5kKCJydW4td2Via2l0LXRl
c3RzIikgKyBbIi0tZ3RrIl0pCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2Nv
bW1vbi9uZXQvYWJzdHJhY3R0ZXN0cmVzdWx0cy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
Y29tbW9uL25ldC9hYnN0cmFjdHRlc3RyZXN1bHRzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMwYTc4NDViYzNm
M2Q5MzJkMTRhOTFjMjkzZTczZmZjOTQyMmJlOTMKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvYWJzdHJhY3R0ZXN0cmVzdWx0cy5weQpAQCAtMCww
ICsxLDMzIEBACisjIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyMgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJ
RUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorIyBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
CisjIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SCisjIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisjIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksCisjIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK2ltcG9y
dCBsb2dnaW5nCisKK19sb2cgPSBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVfXykKKworCitjbGFz
cyBBYnN0cmFjdFRlc3RSZXN1bHRzKG9iamVjdCk6CisgICAgZGVmIGZhaWxpbmdfdGVzdHMoc2Vs
Zik6CisgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoInN1YmNsYXNzZXMgbXVzdCBp
bXBsZW1lbnQiKQorCisgICAgZGVmIGRpZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xpbWl0KHNlbGYp
OgorICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKCJzdWJjbGFzc2VzIG11c3QgaW1w
bGVtZW50IikKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9q
c2N0ZXN0cmVzdWx0cy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9qc2N0
ZXN0cmVzdWx0cy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MjdjMmUwOWM2ZGQwMDBkNWMzNTU1MDczZWU1Y2Ez
NDEwOGE2ZWZlCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21t
b24vbmV0L2pzY3Rlc3RyZXN1bHRzLnB5CkBAIC0wLDAgKzEsNzcgQEAKKyMgQ29weXJpZ2h0IChD
KSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisj
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyMg
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyMgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworaW1wb3J0IGpzb24KK2ltcG9ydCBsb2dnaW5nCisK
K2Zyb20gd2Via2l0cHkuY29tbW9uLm5ldC5hYnN0cmFjdHRlc3RyZXN1bHRzIGltcG9ydCBBYnN0
cmFjdFRlc3RSZXN1bHRzCisKK19sb2cgPSBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVfXykKKwor
CitjbGFzcyBKU0NUZXN0UmVzdWx0cyhBYnN0cmFjdFRlc3RSZXN1bHRzKToKKyAgICBkZWYgX19p
bml0X18oc2VsZiwgYWxsX2FwaV90ZXN0c19wYXNzZWQsIHN0cmVzc190ZXN0X2ZhaWx1cmVzKToK
KyAgICAgICAgc2VsZi5fYWxsX2FwaV90ZXN0c19wYXNzZWQgPSBhbGxfYXBpX3Rlc3RzX3Bhc3Nl
ZAorICAgICAgICBzZWxmLl9zdHJlc3NfdGVzdF9mYWlsdXJlcyA9IHN0cmVzc190ZXN0X2ZhaWx1
cmVzCisKKyAgICAgICAgc2VsZi5fZmFpbGluZ190ZXN0X25hbWVzID0gc3RyZXNzX3Rlc3RfZmFp
bHVyZXNbOl0KKyAgICAgICAgaWYgbm90IHNlbGYuX2FsbF9hcGlfdGVzdHNfcGFzc2VkOgorICAg
ICAgICAgICAgc2VsZi5fZmFpbGluZ190ZXN0X25hbWVzLmFwcGVuZCgnYXBpVGVzdHMnKQorCisg
ICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIGludGVyc2VjdGlvbihjbHMsIGZpcnN0LCBzZWNvbmQp
OgorICAgICAgICBpbnRlcnNlY3Rpb25fYXBpX3Rlc3RzX3Bhc3NlZCA9IGZpcnN0Ll9hbGxfYXBp
X3Rlc3RzX3Bhc3NlZCBvciBzZWNvbmQuX2FsbF9hcGlfdGVzdHNfcGFzc2VkCisgICAgICAgIGlu
dGVyc2VjdGlvbl9zdHJlc3NfdGVzdF9mYWlsdXJlcyA9IGxpc3Qoc2V0KGZpcnN0Ll9zdHJlc3Nf
dGVzdF9mYWlsdXJlcykgJiBzZXQoc2Vjb25kLl9zdHJlc3NfdGVzdF9mYWlsdXJlcykpCisgICAg
ICAgIHJldHVybiBjbHMoaW50ZXJzZWN0aW9uX2FwaV90ZXN0c19wYXNzZWQsIGludGVyc2VjdGlv
bl9zdHJlc3NfdGVzdF9mYWlsdXJlcykKKworICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiByZXN1
bHRzX2Zyb21fc3RyaW5nKGNscywgc3RyaW5nKToKKyAgICAgICAgaWYgbm90IHN0cmluZzoKKyAg
ICAgICAgICAgIHJldHVybiBOb25lCisKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcGFyc2Vk
X3Jlc3VsdHMgPSBqc29uLmxvYWRzKHN0cmluZykKKyAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3I6
CisgICAgICAgICAgICBfbG9nLmVycm9yKCdJbnZhbGlkIEpTT04gcmVzdWx0cycpCisgICAgICAg
ICAgICByZXR1cm4gTm9uZQorCisgICAgICAgIGlmICdhbGxBcGlUZXN0c1Bhc3NlZCcgbm90IGlu
IHBhcnNlZF9yZXN1bHRzIG9yICdzdHJlc3NUZXN0RmFpbHVyZXMnIG5vdCBpbiBwYXJzZWRfcmVz
dWx0czoKKyAgICAgICAgICAgIHJldHVybiBOb25lCisKKyAgICAgICAgcmV0dXJuIGNscyhwYXJz
ZWRfcmVzdWx0c1snYWxsQXBpVGVzdHNQYXNzZWQnXSwgcGFyc2VkX3Jlc3VsdHNbJ3N0cmVzc1Rl
c3RGYWlsdXJlcyddKQorCisgICAgZGVmIGVxdWFscyhzZWxmLCBvdGhlcik6CisgICAgICAgIHJl
dHVybiAoc2VsZi5fYWxsX2FwaV90ZXN0c19wYXNzZWQgPT0gb3RoZXIuX2FsbF9hcGlfdGVzdHNf
cGFzc2VkIGFuZAorICAgICAgICAgICAgICAgc2V0KHNlbGYuX3N0cmVzc190ZXN0X2ZhaWx1cmVz
KSA9PSBzZXQob3RoZXIuX3N0cmVzc190ZXN0X2ZhaWx1cmVzKSkKKworICAgIGRlZiBpc19zdWJz
ZXQoc2VsZiwgb3RoZXIpOgorICAgICAgICByZXR1cm4gc2V0KHNlbGYuX2ZhaWxpbmdfdGVzdF9u
YW1lcykgPD0gc2V0KG90aGVyLl9mYWlsaW5nX3Rlc3RfbmFtZXMpCisKKyAgICBkZWYgYWxsX3Bh
c3NlZChzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX2FsbF9hcGlfdGVzdHNfcGFzc2VkIGFu
ZCBub3Qgc2VsZi5fc3RyZXNzX3Rlc3RfZmFpbHVyZXMKKworICAgIGRlZiBmYWlsaW5nX3Rlc3Rz
KHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5fZmFpbGluZ190ZXN0X25hbWVzCisKKyAgICAj
IE5vIGRlZmluZWQgZmFpbHVyZSBsaW1pdCBmb3IgSlNDLgorICAgIGRlZiBkaWRfZXhjZWVkX3Rl
c3RfZmFpbHVyZV9saW1pdChzZWxmKToKKyAgICAgICAgcmV0dXJuIEZhbHNlCmRpZmYgLS1naXQg
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvanNjdGVzdHJlc3VsdHNfdW5pdHRl
c3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvanNjdGVzdHJlc3VsdHNf
dW5pdHRlc3QucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGNmMTE0OWFmY2Q2M2I1ZmJhNjY4MzE0OWJjYTgzN2Fj
NmVhYjkxNgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9u
L25ldC9qc2N0ZXN0cmVzdWx0c191bml0dGVzdC5weQpAQCAtMCwwICsxLDc1IEBACisjIENvcHly
aWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisj
IDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMg
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJyBBTkQKKyMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUgorIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisjIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SCisjIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisjIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisjIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK2ltcG9ydCB1bml0dGVzdAorCitmcm9t
IHdlYmtpdHB5LmNvbW1vbi5uZXQuanNjdGVzdHJlc3VsdHMgaW1wb3J0IEpTQ1Rlc3RSZXN1bHRz
CisKKworY2xhc3MgSlNDVGVzdFJlc3VsdHNUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICBk
ZWYgdGVzdF9yZXN1bHRzX2Zyb21fc3RyaW5nKHNlbGYpOgorICAgICAgICBub25lX2l0ZW0gPSBO
b25lCisgICAgICAgIGVtcHR5X2pzb24gPSAnJworICAgICAgICBpbnZhbGlkX2pzb24gPSAneyJh
bGxBcGlUZXN0c1Bhc3NlZCI6JworICAgICAgICBpbmNvbXBsZXRlX2pzb25fdjEgPSAneyJhbGxB
cGlUZXN0c1Bhc3NlZCI6IHRydWV9JworICAgICAgICBpbmNvbXBsZXRlX2pzb25fdjIgPSAneyJz
dHJlc3NUZXN0RmFpbHVyZXMiOltdfScKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCBK
U0NUZXN0UmVzdWx0cy5yZXN1bHRzX2Zyb21fc3RyaW5nKG5vbmVfaXRlbSkpCisgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoTm9uZSwgSlNDVGVzdFJlc3VsdHMucmVzdWx0c19mcm9tX3N0cmluZyhl
bXB0eV9qc29uKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCBKU0NUZXN0UmVzdWx0
cy5yZXN1bHRzX2Zyb21fc3RyaW5nKGludmFsaWRfanNvbikpCisgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoTm9uZSwgSlNDVGVzdFJlc3VsdHMucmVzdWx0c19mcm9tX3N0cmluZyhpbmNvbXBsZXRl
X2pzb25fdjEpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIEpTQ1Rlc3RSZXN1bHRz
LnJlc3VsdHNfZnJvbV9zdHJpbmcoaW5jb21wbGV0ZV9qc29uX3YyKSkKKworICAgICAgICBub19m
YWlsdXJlc19zdHJpbmcgPSAneyJhbGxBcGlUZXN0c1Bhc3NlZCI6IHRydWUsICJzdHJlc3NUZXN0
RmFpbHVyZXMiOltdfScKKyAgICAgICAgbm9fZmFpbHVyZXNfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1
bHRzKFRydWUsIFtdKQorICAgICAgICBzZWxmLmFzc2VydFRydWUobm9fZmFpbHVyZXNfcmVzdWx0
cy5lcXVhbHMoSlNDVGVzdFJlc3VsdHMucmVzdWx0c19mcm9tX3N0cmluZyhub19mYWlsdXJlc19z
dHJpbmcpKSkKKworICAgICAgICBhcGlfdGVzdF9mYWlsdXJlc19zdHJpbmcgPSAneyJhbGxBcGlU
ZXN0c1Bhc3NlZCI6IGZhbHNlLCAic3RyZXNzVGVzdEZhaWx1cmVzIjpbXX0nCisgICAgICAgIGFw
aV90ZXN0X2ZhaWx1cmVzX3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhGYWxzZSwgW10pCisgICAg
ICAgIHNlbGYuYXNzZXJ0VHJ1ZShhcGlfdGVzdF9mYWlsdXJlc19yZXN1bHRzLmVxdWFscyhKU0NU
ZXN0UmVzdWx0cy5yZXN1bHRzX2Zyb21fc3RyaW5nKGFwaV90ZXN0X2ZhaWx1cmVzX3N0cmluZykp
KQorCisgICAgICAgIG1hbnlfZmFpbHVyZXNfc3RyaW5nID0gJ3siYWxsQXBpVGVzdHNQYXNzZWQi
OiBmYWxzZSwgInN0cmVzc1Rlc3RGYWlsdXJlcyI6WyJlczYueWFtbC9lczYvdHlwZWRfYXJyYXlz
X0ludDE2QXJyYXkuanMuZGVmYXVsdCIsICJlczYueWFtbC9lczYvdHlwZWRfYXJyYXlzX0ludDhB
cnJheS5qcy5kZWZhdWx0Il19JworICAgICAgICBtYW55X2ZhaWx1cmVzX3Jlc3VsdHMgPSBKU0NU
ZXN0UmVzdWx0cyhGYWxzZSwgWyJlczYueWFtbC9lczYvdHlwZWRfYXJyYXlzX0ludDE2QXJyYXku
anMuZGVmYXVsdCIsICJlczYueWFtbC9lczYvdHlwZWRfYXJyYXlzX0ludDhBcnJheS5qcy5kZWZh
dWx0Il0pCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtYW55X2ZhaWx1cmVzX3Jlc3VsdHMuZXF1
YWxzKEpTQ1Rlc3RSZXN1bHRzLnJlc3VsdHNfZnJvbV9zdHJpbmcobWFueV9mYWlsdXJlc19zdHJp
bmcpKSkKKworICAgICAgICBzZWxmLmFzc2VydEZhbHNlKG5vX2ZhaWx1cmVzX3Jlc3VsdHMgPT0g
YXBpX3Rlc3RfZmFpbHVyZXNfcmVzdWx0cykKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShhcGlf
dGVzdF9mYWlsdXJlc19yZXN1bHRzID09IG1hbnlfZmFpbHVyZXNfcmVzdWx0cykKKworICAgIGRl
ZiB0ZXN0X2ludGVyc2VjdGlvbl9hcGlfdGVzdHMoc2VsZik6CisgICAgICAgIHJlc3VsdHMxID0g
SlNDVGVzdFJlc3VsdHMoRmFsc2UsIFtdKQorICAgICAgICByZXN1bHRzMiA9IEpTQ1Rlc3RSZXN1
bHRzKFRydWUsIFtdKQorCisgICAgICAgIGV4cGVjdGVkX2ludGVyc2VjdGlvbiA9IEpTQ1Rlc3RS
ZXN1bHRzKFRydWUsIFtdKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoZXhwZWN0ZWRfaW50ZXJz
ZWN0aW9uLmVxdWFscyhKU0NUZXN0UmVzdWx0cy5pbnRlcnNlY3Rpb24ocmVzdWx0czEsIHJlc3Vs
dHMyKSkpCisKKyAgICBkZWYgdGVzdF9pbnRlcnNlY3Rpb25fc3RyZXNzX3Rlc3RzKHNlbGYpOgor
ICAgICAgICByZXN1bHRzMSA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFsnZmFpbHVyZTEnLCAnZmFp
bHVyZTInXSkKKyAgICAgICAgcmVzdWx0czIgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbJ2ZhaWx1
cmUxJywgJ2ZhaWx1cmUzJ10pCisKKyAgICAgICAgZXhwZWN0ZWRfaW50ZXJzZWN0aW9uID0gSlND
VGVzdFJlc3VsdHMoVHJ1ZSwgWydmYWlsdXJlMSddKQorICAgICAgICBzZWxmLmFzc2VydFRydWUo
ZXhwZWN0ZWRfaW50ZXJzZWN0aW9uLmVxdWFscyhKU0NUZXN0UmVzdWx0cy5pbnRlcnNlY3Rpb24o
cmVzdWx0czEsIHJlc3VsdHMyKSkpCisKKyAgICBkZWYgdGVzdF9pbnRlcnNlY3Rpb25fZ2VuZXJh
bF9jYXNlKHNlbGYpOgorICAgICAgICByZXN1bHRzMSA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFsn
ZmFpbHVyZTEnLCAnZmFpbHVyZTInXSkKKyAgICAgICAgcmVzdWx0czIgPSBKU0NUZXN0UmVzdWx0
cyhGYWxzZSwgWydmYWlsdXJlMSddKQorCisgICAgICAgIGV4cGVjdGVkX2ludGVyc2VjdGlvbiA9
IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFsnZmFpbHVyZTEnXSkKKyAgICAgICAgc2VsZi5hc3NlcnRU
cnVlKGV4cGVjdGVkX2ludGVyc2VjdGlvbi5lcXVhbHMoSlNDVGVzdFJlc3VsdHMuaW50ZXJzZWN0
aW9uKHJlc3VsdHMxLCByZXN1bHRzMikpKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9jb21tb24vbmV0L2xheW91dHRlc3RyZXN1bHRzLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9jb21tb24vbmV0L2xheW91dHRlc3RyZXN1bHRzLnB5CmluZGV4IDdmYjY3YzE2YjdlMWZk
YjBhNjQ2MDdiNTUzMTRlMjcwMGZhMTJlOWEuLjcwNjE2ZWRiMjQwNWNlZWM1MTNmZjg0ODViNzU1
YmNhOTI4NzNjMGUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25l
dC9sYXlvdXR0ZXN0cmVzdWx0cy5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1v
bi9uZXQvbGF5b3V0dGVzdHJlc3VsdHMucHkKQEAgLTI4LDYgKzI4LDcgQEAKIAogaW1wb3J0IGxv
Z2dpbmcKIAorZnJvbSB3ZWJraXRweS5jb21tb24ubmV0LmFic3RyYWN0dGVzdHJlc3VsdHMgaW1w
b3J0IEFic3RyYWN0VGVzdFJlc3VsdHMKIGZyb20gd2Via2l0cHkuY29tbW9uLm5ldC5yZXN1bHRz
anNvbnBhcnNlciBpbXBvcnQgUGFyc2VkSlNPTlJlc3VsdHMKIGZyb20gd2Via2l0cHkudGhpcmRw
YXJ0eS5CZWF1dGlmdWxTb3VwIGltcG9ydCBCZWF1dGlmdWxTb3VwLCBTb3VwU3RyYWluZXIKIGZy
b20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLm1vZGVscyBpbXBvcnQgdGVzdF9yZXN1bHRzCkBAIC00
NSw3ICs0Niw3IEBAIGRlZiBwYXRoX2Zvcl9sYXlvdXRfdGVzdCh0ZXN0X25hbWUpOgogIyBGSVhN
RTogVGhpcyBzaG91bGQgYmUgdW5pZmllZCB3aXRoIFJlc3VsdHNTdW1tYXJ5IG9yIG90aGVyIE5S
V1QgbGF5b3V0IHRlc3RzIGNvZGUKICMgaW4gdGhlIGxheW91dF90ZXN0cyBwYWNrYWdlLgogIyBU
aGlzIGRvZXNuJ3QgYmVsb25nIGluIGNvbW1vbi5uZXQsIGJ1dCB3ZSBkb24ndCBoYXZlIGEgYmV0
dGVyIHBsYWNlIGZvciBpdCB5ZXQuCi1jbGFzcyBMYXlvdXRUZXN0UmVzdWx0cyhvYmplY3QpOgor
Y2xhc3MgTGF5b3V0VGVzdFJlc3VsdHMoQWJzdHJhY3RUZXN0UmVzdWx0cyk6CiAgICAgQGNsYXNz
bWV0aG9kCiAgICAgZGVmIHJlc3VsdHNfZnJvbV9zdHJpbmcoY2xzLCBzdHJpbmcpOgogICAgICAg
ICBpZiBub3Qgc3RyaW5nOgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0
L2Jhc2UucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvYmFzZS5weQppbmRleCAwMWU4
MmMyZDY4YTBhNTViYTc3MmRkZDM3ZjZjNmQyMjg5ZTliNTg3Li42YTYxNDJhN2MxNzlmMzNhNzNk
MzcyMTkwM2UxYWQwMTNiOTZkNGFiIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L3BvcnQvYmFzZS5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvYmFzZS5weQpA
QCAtODA4LDYgKzgwOCw5IEBAIGNsYXNzIFBvcnQob2JqZWN0KToKICAgICAgICAgaW52ZXJzZSBv
ZiByZWxhdGl2ZV90ZXN0X2ZpbGVuYW1lKCkuIiIiCiAgICAgICAgIHJldHVybiBzZWxmLl9maWxl
c3lzdGVtLmpvaW4oc2VsZi5sYXlvdXRfdGVzdHNfZGlyKCksIHRlc3RfbmFtZSkKIAorICAgIGRl
ZiBqc2NfcmVzdWx0c19kaXJlY3Rvcnkoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl9idWls
ZF9wYXRoKCkKKwogICAgIGRlZiByZXN1bHRzX2RpcmVjdG9yeShzZWxmKToKICAgICAgICAgIiIi
QWJzb2x1dGUgcGF0aCB0byB0aGUgcGxhY2UgdG8gc3RvcmUgdGhlIHRlc3QgcmVzdWx0cyAodXNl
cyAtLXJlc3VsdHMtZGlyZWN0b3J5KS4iIiIKICAgICAgICAgaWYgbm90IHNlbGYuX3Jlc3VsdHNf
ZGlyZWN0b3J5OgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9l
YXJseXdhcm5pbmdzeXN0ZW10YXNrLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2Jv
dC9lYXJseXdhcm5pbmdzeXN0ZW10YXNrLnB5CmluZGV4IGZjMzA4YjQzZDFkMTcyYWI3M2IwZTNh
ZjgwZDFiMTM5ZGQzYzEwMzIuLmVjZmFjZDAxMWJlODgzYjRiYjFlNWM3ZDdkZmZkYmRjYjQ1OWRl
MzUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvZWFybHl3YXJu
aW5nc3lzdGVtdGFzay5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2Vh
cmx5d2FybmluZ3N5c3RlbXRhc2sucHkKQEAgLTEsNCArMSw1IEBACiAjIENvcHlyaWdodCAoYykg
MjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIw
MTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zIGFyZQpAQCAtMjYsNyArMjcsNyBAQAogIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKICMgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KIAotZnJvbSB3ZWJraXRweS50b29sLmJvdC5wYXRjaGFuYWx5c2lzdGFzayBpbXBvcnQgUGF0
Y2hBbmFseXNpc1Rhc2ssIFBhdGNoQW5hbHlzaXNUYXNrRGVsZWdhdGUsIFVuYWJsZVRvQXBwbHlQ
YXRjaCwgUGF0Y2hJc05vdFZhbGlkCitmcm9tIHdlYmtpdHB5LnRvb2wuYm90LnBhdGNoYW5hbHlz
aXN0YXNrIGltcG9ydCBQYXRjaEFuYWx5c2lzVGFzaywgUGF0Y2hBbmFseXNpc1Rhc2tEZWxlZ2F0
ZSwgVW5hYmxlVG9BcHBseVBhdGNoLCBQYXRjaElzTm90VmFsaWQsIFBhdGNoSXNOb3RBcHBsaWNh
YmxlCiAKIAogY2xhc3MgRWFybHlXYXJuaW5nU3lzdGVtVGFza0RlbGVnYXRlKFBhdGNoQW5hbHlz
aXNUYXNrRGVsZWdhdGUpOgpAQCAtNTgsNiArNTksOCBAQCBjbGFzcyBFYXJseVdhcm5pbmdTeXN0
ZW1UYXNrKFBhdGNoQW5hbHlzaXNUYXNrKToKICAgICAgICAgICAgIHJldHVybiBGYWxzZQogICAg
ICAgICBpZiBub3Qgc2VsZi5fYXBwbHkoKToKICAgICAgICAgICAgIHJhaXNlIFVuYWJsZVRvQXBw
bHlQYXRjaChzZWxmLl9wYXRjaCkKKyAgICAgICAgaWYgbm90IHNlbGYuX2NoZWNrX3BhdGNoX3Jl
bGV2YW5jZSgpOgorICAgICAgICAgICAgcmFpc2UgUGF0Y2hJc05vdEFwcGxpY2FibGUoc2VsZi5f
cGF0Y2gpCiAgICAgICAgIGlmIG5vdCBzZWxmLl9idWlsZCgpOgogICAgICAgICAgICAgaWYgbm90
IHNlbGYuX2J1aWxkX3dpdGhvdXRfcGF0Y2goKToKICAgICAgICAgICAgICAgICByZXR1cm4gRmFs
c2UKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvanNjZXdzX3Vu
aXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9qc2Nld3NfdW5pdHRl
c3QucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYTZhZWYzZGFlODAxMWZhYjU3NWYyYzU0MzExMDAxNGU5N2E2YjIw
YQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvanNj
ZXdzX3VuaXR0ZXN0LnB5CkBAIC0wLDAgKzEsMjE4IEBACisjIENvcHlyaWdodCAoQykgMjAxNyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
IyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBB
TkQKKyMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUgorIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisjIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisjIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSCisjIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisjIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisKK2ltcG9ydCBsb2dnaW5nCitpbXBvcnQgdW5pdHRlc3QKKworZnJv
bSB3ZWJraXRweS5jb21tb24ubmV0LmpzY3Rlc3RyZXN1bHRzIGltcG9ydCBKU0NUZXN0UmVzdWx0
cworZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmV4ZWN1dGl2ZSBpbXBvcnQgU2NyaXB0RXJy
b3IKK2Zyb20gd2Via2l0cHkudG9vbC5ib3QucGF0Y2hhbmFseXNpc3Rhc2sgaW1wb3J0ICoKK2Zy
b20gd2Via2l0cHkudG9vbC5jb21tYW5kcy5lYXJseXdhcm5pbmdzeXN0ZW0gaW1wb3J0IEFic3Ry
YWN0RWFybHlXYXJuaW5nU3lzdGVtCitmcm9tIHdlYmtpdHB5LnRvb2wubW9ja3Rvb2wgaW1wb3J0
IE1vY2tUb29sCisKK19sb2cgPSBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVfXykKKworCitjbGFz
cyBNb2NrUGF0Y2hBbmFseXNpc1Rhc2soUGF0Y2hBbmFseXNpc1Rhc2spOgorICAgIGRlZiBfX2lu
aXRfXyhzZWxmLCBkZWxlZ2F0ZSwgcGF0Y2gsIHBhdGNoZXNfcGFzc2VkX2FsbF90ZXN0cyk6Cisg
ICAgICAgIHNlbGYuX2RlbGVnYXRlID0gZGVsZWdhdGUKKyAgICAgICAgc2VsZi5fcGF0Y2ggPSBw
YXRjaAorICAgICAgICBzZWxmLl9zY3JpcHRfZXJyb3IgPSBOb25lCisgICAgICAgIHNlbGYuX3Jl
c3VsdHNfYXJjaGl2ZV9mcm9tX3BhdGNoX3Rlc3RfcnVuID0gTm9uZQorICAgICAgICBzZWxmLl9y
ZXN1bHRzX2Zyb21fcGF0Y2hfdGVzdF9ydW4gPSBOb25lCisgICAgICAgIHNlbGYuZXJyb3IgPSBO
b25lCisgICAgICAgIHNlbGYuX3BhdGNoZXNfcGFzc2VkX2FsbF90ZXN0cyA9IHBhdGNoZXNfcGFz
c2VkX2FsbF90ZXN0cworICAgICAgICBzZWxmLl90ZXN0X3J1bl9jb3VudCA9IDAKKyAgICAgICAg
c2VsZi5mYWlsdXJlX3N0YXR1c19pZCA9IDAKKworICAgIGRlZiBfdGVzdChzZWxmKToKKyAgICAg
ICAgc2VsZi5fdGVzdF9ydW5fY291bnQgKz0gMQorCisgICAgICAgIGlmIHNlbGYuX3BhdGNoZXNf
cGFzc2VkX2FsbF90ZXN0cy5wb3AoKSA9PSBUcnVlOgorICAgICAgICAgICAgcmV0dXJuIFRydWUK
KyAgICAgICAgc2VsZi5fc2NyaXB0X2Vycm9yID0gU2NyaXB0RXJyb3IoJ1JlZ3Jlc3Npb24gdGVz
dCcpCisgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgZGVmIF9idWlsZF9hbmRfdGVzdF93aXRo
b3V0X3BhdGNoKHNlbGYpOgorICAgICAgICBzZWxmLl90ZXN0X3J1bl9jb3VudCArPSAxCisgICAg
ICAgIHJldHVybiBUcnVlCisKKyAgICBkZWYgdmFsaWRhdGUoc2VsZik6CisgICAgICAgIHJldHVy
biBUcnVlCisKKyAgICBkZWYgdGVzdF9ydW5fY291bnQoc2VsZik6CisgICAgICAgIHJldHVybiBz
ZWxmLl90ZXN0X3J1bl9jb3VudAorCisKKyMgVGhpcyBpcyB0aGUgZGVsZWdhdGUgdG8gYmUgdXNl
ZCB3aXRoIE1vY2tQYXRjaEFuYWx5c2lzVGFzaywgYWJvdmUuCitjbGFzcyBNb2NrSlNDRWFybHlX
YXJuaW5nU3lzdGVtKEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtKToKKyAgICBkZWYgX19pbml0
X18oc2VsZiwgZmlyc3RfdGVzdF9yZXN1bHRzLCBzZWNvbmRfdGVzdF9yZXN1bHRzLCBjbGVhbl90
ZXN0X3Jlc3VsdHMpOgorICAgICAgICBBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbS5fX2luaXRf
XyhzZWxmKQorICAgICAgICBzZWxmLl9ncm91cCA9ICdqc2MnCisgICAgICAgIHNlbGYuX3Jlc3Vs
dHNfaW5fb3JkZXIgPSBbY2xlYW5fdGVzdF9yZXN1bHRzLCBzZWNvbmRfdGVzdF9yZXN1bHRzLCBm
aXJzdF90ZXN0X3Jlc3VsdHNdCisKKyAgICBkZWYgdGVzdF9yZXN1bHRzKHNlbGYpOgorICAgICAg
ICByZXR1cm4gc2VsZi5fcmVzdWx0c19pbl9vcmRlci5wb3AoKQorCisKK2NsYXNzIEpTQ0Vhcmx5
V2FybmluZ1N5c3RlbVRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgorICAgIGRlZiBfcmVzdWx0c19p
bmRpY2F0ZV9hbGxfcGFzc2VkKHNlbGYsIHJlc3VsdHMpOgorICAgICAgICBpZiByZXN1bHRzID09
IE5vbmU6CisgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgcmV0dXJuIHJlc3VsdHMu
YWxsX3Bhc3NlZCgpCisKKyAgICBkZWYgX2NyZWF0ZV90YXNrKHNlbGYsIGZpcnN0X3Rlc3RfcmVz
dWx0cywgc2Vjb25kX3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKToKKyAgICAgICAg
cXVldWUgPSBNb2NrSlNDRWFybHlXYXJuaW5nU3lzdGVtKGZpcnN0X3Rlc3RfcmVzdWx0cywgc2Vj
b25kX3Rlc3RfcmVzdWx0cywgY2xlYW5fdGVzdF9yZXN1bHRzKQorICAgICAgICB0b29sID0gTW9j
a1Rvb2wobG9nX2V4ZWN1dGl2ZT1UcnVlKQorICAgICAgICBwYXRjaCA9IHRvb2wuYnVncy5mZXRj
aF9hdHRhY2htZW50KDEwMDAwKQorICAgICAgICBwYXRjaGVzX3Bhc3NlZF9hbGxfdGVzdHMgPSBt
YXAoc2VsZi5fcmVzdWx0c19pbmRpY2F0ZV9hbGxfcGFzc2VkLCBbc2Vjb25kX3Rlc3RfcmVzdWx0
cywgZmlyc3RfdGVzdF9yZXN1bHRzXSkKKyAgICAgICAgcmV0dXJuIE1vY2tQYXRjaEFuYWx5c2lz
VGFzayhxdWV1ZSwgcGF0Y2gsIHBhdGNoZXNfcGFzc2VkX2FsbF90ZXN0cykKKworICAgIGRlZiB0
ZXN0X3N1Y2Nlc3NfY2FzZShzZWxmKToKKyAgICAgICAgZmlyc3RfdGVzdF9yZXN1bHRzID0gSlND
VGVzdFJlc3VsdHMoVHJ1ZSwgW10pCisgICAgICAgIHNlY29uZF90ZXN0X3Jlc3VsdHMgPSBKU0NU
ZXN0UmVzdWx0cyhUcnVlLCBbXSkKKyAgICAgICAgY2xlYW5fdGVzdF9yZXN1bHRzID0gSlNDVGVz
dFJlc3VsdHMoVHJ1ZSwgW10pCisgICAgICAgIHRhc2sgPSBzZWxmLl9jcmVhdGVfdGFzayhmaXJz
dF90ZXN0X3Jlc3VsdHMsIHNlY29uZF90ZXN0X3Jlc3VsdHMsIGNsZWFuX3Rlc3RfcmVzdWx0cykK
KworICAgICAgICByZXR1cm5fdmFsdWUgPSB0YXNrLl90ZXN0X3BhdGNoKCkKKyAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbCh0YXNrLnRlc3RfcnVuX2NvdW50KCksIDEpCisgICAgICAgIHNlbGYuYXNz
ZXJ0VHJ1ZShyZXR1cm5fdmFsdWUpCisKKyAgICBkZWYgdGVzdF90ZXN0X2ZhaWx1cmUoc2VsZik6
CisgICAgICAgIGZpcnN0X3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFsnRmFp
bC5qcyddKQorICAgICAgICBzZWNvbmRfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1
ZSwgWydGYWlsLmpzJ10pCisgICAgICAgIGNsZWFuX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1
bHRzKFRydWUsIFtdKQorICAgICAgICB0YXNrID0gc2VsZi5fY3JlYXRlX3Rhc2soZmlyc3RfdGVz
dF9yZXN1bHRzLCBzZWNvbmRfdGVzdF9yZXN1bHRzLCBjbGVhbl90ZXN0X3Jlc3VsdHMpCisKKyAg
ICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhTY3JpcHRFcnJvcik6CisgICAgICAgICAgICBy
ZXR1cm5fdmFsdWUgPSB0YXNrLl90ZXN0X3BhdGNoKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCh0YXNrLnRlc3RfcnVuX2NvdW50KCksIDMpCisKKyAgICBkZWYgdGVzdF9maXgoc2VsZik6Cisg
ICAgICAgIGZpcnN0X3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFtdKQorICAg
ICAgICBzZWNvbmRfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgW10pCisgICAg
ICAgIGNsZWFuX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFsnRmFpbC5qcydd
KQorICAgICAgICB0YXNrID0gc2VsZi5fY3JlYXRlX3Rhc2soZmlyc3RfdGVzdF9yZXN1bHRzLCBz
ZWNvbmRfdGVzdF9yZXN1bHRzLCBjbGVhbl90ZXN0X3Jlc3VsdHMpCisKKyAgICAgICAgcmV0dXJu
X3ZhbHVlID0gdGFzay5fdGVzdF9wYXRjaCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGFz
ay50ZXN0X3J1bl9jb3VudCgpLCAxKQorICAgICAgICBzZWxmLmFzc2VydFRydWUocmV0dXJuX3Zh
bHVlKQorCisgICAgZGVmIHRlc3RfaW5lZmZlY3RpdmVfcGF0Y2goc2VsZik6CisgICAgICAgIGZp
cnN0X3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKEZhbHNlLCBbJ2ZhaWx1cmUxLmpzJywg
J2ZhaWx1cmUyLmpzJ10pCisgICAgICAgIHNlY29uZF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVz
dWx0cyhGYWxzZSwgWydmYWlsdXJlMS5qcycsICdmYWlsdXJlMi5qcyddKQorICAgICAgICBjbGVh
bl90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhGYWxzZSwgWydmYWlsdXJlMS5qcycsICdm
YWlsdXJlMi5qcyddKQorICAgICAgICB0YXNrID0gc2VsZi5fY3JlYXRlX3Rhc2soZmlyc3RfdGVz
dF9yZXN1bHRzLCBzZWNvbmRfdGVzdF9yZXN1bHRzLCBjbGVhbl90ZXN0X3Jlc3VsdHMpCisKKyAg
ICAgICAgcmV0dXJuX3ZhbHVlID0gdGFzay5fdGVzdF9wYXRjaCgpCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwodGFzay50ZXN0X3J1bl9jb3VudCgpLCAzKQorICAgICAgICBzZWxmLmFzc2VydFRy
dWUocmV0dXJuX3ZhbHVlKQorCisgICAgZGVmIHRlc3RfcGFydGlhbGx5X2VmZmVjdGl2ZV9wYXRj
aChzZWxmKToKKyAgICAgICAgZmlyc3RfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1
ZSwgWydmYWlsdXJlMi5qcyddKQorICAgICAgICBzZWNvbmRfdGVzdF9yZXN1bHRzID0gSlNDVGVz
dFJlc3VsdHMoVHJ1ZSwgWydmYWlsdXJlMi5qcyddKQorICAgICAgICBjbGVhbl90ZXN0X3Jlc3Vs
dHMgPSBKU0NUZXN0UmVzdWx0cyhGYWxzZSwgWydmYWlsdXJlMS5qcycsICdmYWlsdXJlMi5qcydd
KQorICAgICAgICB0YXNrID0gc2VsZi5fY3JlYXRlX3Rhc2soZmlyc3RfdGVzdF9yZXN1bHRzLCBz
ZWNvbmRfdGVzdF9yZXN1bHRzLCBjbGVhbl90ZXN0X3Jlc3VsdHMpCisKKyAgICAgICAgcmV0dXJu
X3ZhbHVlID0gdGFzay5fdGVzdF9wYXRjaCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGFz
ay50ZXN0X3J1bl9jb3VudCgpLCAzKQorICAgICAgICBzZWxmLmFzc2VydFRydWUocmV0dXJuX3Zh
bHVlKQorCisgICAgZGVmIHRlc3RfZGlmZmVyZW50X3Rlc3RfZmFpbHVyZXNfaW5fcGF0Y2hfYW5k
X3RyZWUoc2VsZik6CisgICAgICAgIGZpcnN0X3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRz
KEZhbHNlLCBbXSkKKyAgICAgICAgc2Vjb25kX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRz
KEZhbHNlLCBbXSkKKyAgICAgICAgY2xlYW5fdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMo
VHJ1ZSwgWydmYWlsdXJlMS5qcycsICdmYWlsdXJlMi5qcyddKQorICAgICAgICB0YXNrID0gc2Vs
Zi5fY3JlYXRlX3Rhc2soZmlyc3RfdGVzdF9yZXN1bHRzLCBzZWNvbmRfdGVzdF9yZXN1bHRzLCBj
bGVhbl90ZXN0X3Jlc3VsdHMpCisKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhTY3Jp
cHRFcnJvcik6CisgICAgICAgICAgICByZXR1cm5fdmFsdWUgPSB0YXNrLl90ZXN0X3BhdGNoKCkK
KyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0YXNrLnRlc3RfcnVuX2NvdW50KCksIDMpCisKKyAg
ICBkZWYgdGVzdF9maXJzdF9yZXN1bHRzX2NvdWxkX25vdF9iZV9yZWFkKHNlbGYpOgorICAgICAg
ICBmaXJzdF90ZXN0X3Jlc3VsdHMgPSBOb25lCisgICAgICAgIHNlY29uZF90ZXN0X3Jlc3VsdHMg
PSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbXSkKKyAgICAgICAgY2xlYW5fdGVzdF9yZXN1bHRzID0g
SlNDVGVzdFJlc3VsdHMoVHJ1ZSwgW10pCisgICAgICAgIHRhc2sgPSBzZWxmLl9jcmVhdGVfdGFz
ayhmaXJzdF90ZXN0X3Jlc3VsdHMsIHNlY29uZF90ZXN0X3Jlc3VsdHMsIGNsZWFuX3Rlc3RfcmVz
dWx0cykKKworICAgICAgICByZXR1cm5fdmFsdWUgPSB0YXNrLl90ZXN0X3BhdGNoKCkKKyAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbCh0YXNrLnRlc3RfcnVuX2NvdW50KCksIDEpCisgICAgICAgIHNl
bGYuYXNzZXJ0RmFsc2UocmV0dXJuX3ZhbHVlKQorCisgICAgZGVmIHRlc3Rfc2Vjb25kX3Jlc3Vs
dHNfY291bGRfbm90X2JlX3JlYWQoc2VsZik6CisgICAgICAgIGZpcnN0X3Rlc3RfcmVzdWx0cyA9
IEpTQ1Rlc3RSZXN1bHRzKEZhbHNlLCBbJ2ZhaWx1cmUxLmpzJywgJ2ZhaWx1cmUyLmpzJ10pCisg
ICAgICAgIHNlY29uZF90ZXN0X3Jlc3VsdHMgPSBOb25lCisgICAgICAgIGNsZWFuX3Rlc3RfcmVz
dWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFtdKQorICAgICAgICB0YXNrID0gc2VsZi5fY3Jl
YXRlX3Rhc2soZmlyc3RfdGVzdF9yZXN1bHRzLCBzZWNvbmRfdGVzdF9yZXN1bHRzLCBjbGVhbl90
ZXN0X3Jlc3VsdHMpCisKKyAgICAgICAgcmV0dXJuX3ZhbHVlID0gdGFzay5fdGVzdF9wYXRjaCgp
CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGFzay50ZXN0X3J1bl9jb3VudCgpLCAyKQorICAg
ICAgICBzZWxmLmFzc2VydEZhbHNlKHJldHVybl92YWx1ZSkKKworICAgIGRlZiB0ZXN0X2NsZWFu
X3Jlc3VsdHNfY291bGRfbm90X2JlX3JlYWQoc2VsZik6CisgICAgICAgIGZpcnN0X3Rlc3RfcmVz
dWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFsnZmFpbHVyZTIuanMnXSkKKyAgICAgICAgc2Vj
b25kX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFsnZmFpbHVyZTIuanMnXSkK
KyAgICAgICAgY2xlYW5fdGVzdF9yZXN1bHRzID0gTm9uZQorICAgICAgICB0YXNrID0gc2VsZi5f
Y3JlYXRlX3Rhc2soZmlyc3RfdGVzdF9yZXN1bHRzLCBzZWNvbmRfdGVzdF9yZXN1bHRzLCBjbGVh
bl90ZXN0X3Jlc3VsdHMpCisKKyAgICAgICAgcmV0dXJuX3ZhbHVlID0gdGFzay5fdGVzdF9wYXRj
aCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGFzay50ZXN0X3J1bl9jb3VudCgpLCAzKQor
ICAgICAgICBzZWxmLmFzc2VydEZhbHNlKHJldHVybl92YWx1ZSkKKworICAgIGRlZiB0ZXN0X2Zs
YWt5X3Jlc3VsdHNfb25fY2xlYW5fdHJlZV9wYXNzKHNlbGYpOgorICAgICAgICBmaXJzdF90ZXN0
X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbJ2ZhaWx1cmUyLmpzJ10pCisgICAgICAg
IHNlY29uZF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbXSkKKyAgICAgICAg
Y2xlYW5fdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgW10pCisgICAgICAgIHRh
c2sgPSBzZWxmLl9jcmVhdGVfdGFzayhmaXJzdF90ZXN0X3Jlc3VsdHMsIHNlY29uZF90ZXN0X3Jl
c3VsdHMsIGNsZWFuX3Rlc3RfcmVzdWx0cykKKworICAgICAgICByZXR1cm5fdmFsdWUgPSB0YXNr
Ll90ZXN0X3BhdGNoKCkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHJldHVybl92YWx1ZSkKKyAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0YXNrLnRlc3RfcnVuX2NvdW50KCksIDIpCisKKyAgICBk
ZWYgdGVzdF9mbGFreV9yZXN1bHRzX29uX2NsZWFuX3RyZWVfcGFzc192MihzZWxmKToKKyAgICAg
ICAgZmlyc3RfdGVzdF9yZXN1bHRzID0gSlNDVGVzdFJlc3VsdHMoVHJ1ZSwgW10pCisgICAgICAg
IHNlY29uZF90ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbJ2ZhaWx1cmUyLmpz
J10pCisgICAgICAgIGNsZWFuX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFtd
KQorICAgICAgICB0YXNrID0gc2VsZi5fY3JlYXRlX3Rhc2soZmlyc3RfdGVzdF9yZXN1bHRzLCBz
ZWNvbmRfdGVzdF9yZXN1bHRzLCBjbGVhbl90ZXN0X3Jlc3VsdHMpCisKKyAgICAgICAgcmV0dXJu
X3ZhbHVlID0gdGFzay5fdGVzdF9wYXRjaCgpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZXR1
cm5fdmFsdWUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGFzay50ZXN0X3J1bl9jb3VudCgp
LCAxKQorCisgICAgZGVmIHRlc3RfZmxha3lfcmVzdWx0c19vbl9jbGVhbl90cmVlX2ZhaWx1cmUo
c2VsZik6CisgICAgICAgIGZpcnN0X3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKEZhbHNl
LCBbJ2ZhaWx1cmUxLmpzJywgJ2ZhaWx1cmUyLmpzJ10pCisgICAgICAgIHNlY29uZF90ZXN0X3Jl
c3VsdHMgPSBKU0NUZXN0UmVzdWx0cyhUcnVlLCBbJ2ZhaWx1cmUyLmpzJ10pCisgICAgICAgIGNs
ZWFuX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFtdKQorICAgICAgICB0YXNr
ID0gc2VsZi5fY3JlYXRlX3Rhc2soZmlyc3RfdGVzdF9yZXN1bHRzLCBzZWNvbmRfdGVzdF9yZXN1
bHRzLCBjbGVhbl90ZXN0X3Jlc3VsdHMpCisKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNl
cyhTY3JpcHRFcnJvcik6CisgICAgICAgICAgICB0YXNrLl90ZXN0X3BhdGNoKCkKKyAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbCh0YXNrLnRlc3RfcnVuX2NvdW50KCksIDMpCisKKyAgICBkZWYgdGVz
dF9mbGFreV9yZXN1bHRzX29uX3JlZF90cmVlX3Bhc3Moc2VsZik6CisgICAgICAgIGZpcnN0X3Rl
c3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFsnZmFpbHVyZTEuanMnXSkKKyAgICAg
ICAgc2Vjb25kX3Rlc3RfcmVzdWx0cyA9IEpTQ1Rlc3RSZXN1bHRzKFRydWUsIFsnZmFpbHVyZTEu
anMnLCAnZmFpbHVyZTIuanMnXSkKKyAgICAgICAgY2xlYW5fdGVzdF9yZXN1bHRzID0gSlNDVGVz
dFJlc3VsdHMoVHJ1ZSwgWydmYWlsdXJlMS5qcyddKQorICAgICAgICB0YXNrID0gc2VsZi5fY3Jl
YXRlX3Rhc2soZmlyc3RfdGVzdF9yZXN1bHRzLCBzZWNvbmRfdGVzdF9yZXN1bHRzLCBjbGVhbl90
ZXN0X3Jlc3VsdHMpCisKKyAgICAgICAgcmV0dXJuX3ZhbHVlID0gdGFzay5fdGVzdF9wYXRjaCgp
CisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZXR1cm5fdmFsdWUpCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwodGFzay50ZXN0X3J1bl9jb3VudCgpLCAzKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS90b29sL2JvdC9qc2N0ZXN0cmVzdWx0c3JlYWRlci5weSBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvanNjdGVzdHJlc3VsdHNyZWFkZXIucHkKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYjMyNjVhYmMxYjNhNjZjNGRlNDI0OTZlOGM5NDA1M2I2NDhiMGFiMwotLS0gL2Rldi9udWxs
CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvanNjdGVzdHJlc3VsdHNyZWFk
ZXIucHkKQEAgLTAsMCArMSw0NCBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBt
ZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisjIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyMg
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorIyBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgor
IyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorCitpbXBvcnQgbG9nZ2luZworCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5uZXQuanNjdGVz
dHJlc3VsdHMgaW1wb3J0IEpTQ1Rlc3RSZXN1bHRzCisKK19sb2cgPSBsb2dnaW5nLmdldExvZ2dl
cihfX25hbWVfXykKKworCitjbGFzcyBKU0NUZXN0UmVzdWx0c1JlYWRlcihvYmplY3QpOgorICAg
IGRlZiBfX2luaXRfXyhzZWxmLCBob3N0LCByZXN1bHRzX2RpcmVjdG9yeSk6CisgICAgICAgIHNl
bGYuX2hvc3QgPSBob3N0CisgICAgICAgIHNlbGYuX3Jlc3VsdHNfZGlyZWN0b3J5ID0gcmVzdWx0
c19kaXJlY3RvcnkKKworICAgIGRlZiBfcmVhZF9maWxlX2NvbnRlbnRzKHNlbGYsIHBhdGgpOgor
ICAgICAgICB0cnk6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5faG9zdC5maWxlc3lzdGVtLnJl
YWRfdGV4dF9maWxlKHBhdGgpCisgICAgICAgIGV4Y2VwdCAoSU9FcnJvciwgS2V5RXJyb3IpOgor
ICAgICAgICAgICAgcmV0dXJuIE5vbmUKKworICAgIGRlZiByZXN1bHRzKHNlbGYpOgorICAgICAg
ICByZXN1bHRzX3BhdGggPSBzZWxmLl9ob3N0LmZpbGVzeXN0ZW0uam9pbihzZWxmLl9yZXN1bHRz
X2RpcmVjdG9yeSwgJ2pzY190ZXN0X3Jlc3VsdHMuanNvbicpCisgICAgICAgIGNvbnRlbnRzID0g
c2VsZi5fcmVhZF9maWxlX2NvbnRlbnRzKHJlc3VsdHNfcGF0aCkKKyAgICAgICAgcmV0dXJuIEpT
Q1Rlc3RSZXN1bHRzLnJlc3VsdHNfZnJvbV9zdHJpbmcoY29udGVudHMpCmRpZmYgLS1naXQgYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L3BhdGNoYW5hbHlzaXN0YXNrLnB5IGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9wYXRjaGFuYWx5c2lzdGFzay5weQppbmRleCA3
NTIzMTY0MTZjNWY5ZDBhM2U1OWVmNmQwNWUzMTc4NWY5MTc0NjI5Li5hY2E4MmZkZTI2OGM5MjI0
NDY4YjNkNDYzOGQxZWZhNTQ2ZWFhM2YwIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L3Rvb2wvYm90L3BhdGNoYW5hbHlzaXN0YXNrLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvdG9vbC9ib3QvcGF0Y2hhbmFseXNpc3Rhc2sucHkKQEAgLTEsNCArMSw1IEBACiAjIENv
cHlyaWdodCAoYykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5
cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtMjgsNiArMjksNyBAQAogCiBmcm9tIHdlYmtpdHB5
LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZlIGltcG9ydCBTY3JpcHRFcnJvcgogZnJvbSB3ZWJraXRw
eS5jb21tb24ubmV0LmxheW91dHRlc3RyZXN1bHRzIGltcG9ydCBMYXlvdXRUZXN0UmVzdWx0cwor
ZnJvbSB3ZWJraXRweS5jb21tb24ubmV0LmpzY3Rlc3RyZXN1bHRzIGltcG9ydCBKU0NUZXN0UmVz
dWx0cwogCiAKIGNsYXNzIFVuYWJsZVRvQXBwbHlQYXRjaChFeGNlcHRpb24pOgpAQCAtNDMsNiAr
NDUsMTEgQEAgY2xhc3MgUGF0Y2hJc05vdFZhbGlkKEV4Y2VwdGlvbik6CiAgICAgICAgIHNlbGYu
ZmFpbHVyZV9tZXNzYWdlID0gZmFpbHVyZV9tZXNzYWdlCiAKIAorY2xhc3MgUGF0Y2hJc05vdEFw
cGxpY2FibGUoRXhjZXB0aW9uKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgcGF0Y2gpOgorICAg
ICAgICBFeGNlcHRpb24uX19pbml0X18oc2VsZikKKyAgICAgICAgc2VsZi5wYXRjaCA9IHBhdGNo
CisKIGNsYXNzIFBhdGNoQW5hbHlzaXNUYXNrRGVsZWdhdGUob2JqZWN0KToKICAgICBkZWYgcGFy
ZW50X2NvbW1hbmQoc2VsZik6CiAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoInN1
YmNsYXNzZXMgbXVzdCBpbXBsZW1lbnQiKQpAQCAtMTIyLDI4ICsxMjksNDQgQEAgY2xhc3MgUGF0
Y2hBbmFseXNpc1Rhc2sob2JqZWN0KToKICAgICAgICAgIkFwcGxpZWQgcGF0Y2giLAogICAgICAg
ICAiUGF0Y2ggZG9lcyBub3QgYXBwbHkiKQogCisgICAgZGVmIF9jaGVja19wYXRjaF9yZWxldmFu
Y2Uoc2VsZik6CisgICAgICAgIGFyZ3MgPSBbCisgICAgICAgICAgICAiY2hlY2stcGF0Y2gtcmVs
ZXZhbmNlIiwKKyAgICAgICAgXQorCisgICAgICAgIGlmIGhhc2F0dHIoc2VsZi5fZGVsZWdhdGUs
ICdncm91cCcpOgorICAgICAgICAgICAgYXJncy5hcHBlbmQoIi0tZ3JvdXA9JXMiICUgc2VsZi5f
ZGVsZWdhdGUuZ3JvdXAoKSkKKworICAgICAgICByZXR1cm4gc2VsZi5fcnVuX2NvbW1hbmQoYXJn
cywgIkNoZWNrZWQgcmVsZXZhbmNlIG9mIHBhdGNoIiwgIlBhdGNoIHdhcyBub3QgcmVsZXZhbnQi
KQorCiAgICAgZGVmIF9idWlsZChzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYuX3J1bl9jb21t
YW5kKFsKKyAgICAgICAgYXJncyA9IFsKICAgICAgICAgICAgICJidWlsZCIsCiAgICAgICAgICAg
ICAiLS1uby1jbGVhbiIsCiAgICAgICAgICAgICAiLS1uby11cGRhdGUiLAogICAgICAgICAgICAg
Ii0tYnVpbGQtc3R5bGU9JXMiICUgc2VsZi5fZGVsZWdhdGUuYnVpbGRfc3R5bGUoKSwKLSAgICAg
ICAgXSwKLSAgICAgICAgIkJ1aWx0IHBhdGNoIiwKLSAgICAgICAgIlBhdGNoIGRvZXMgbm90IGJ1
aWxkIikKKyAgICAgICAgXQorCisgICAgICAgIGlmIGhhc2F0dHIoc2VsZi5fZGVsZWdhdGUsICdn
cm91cCcpOgorICAgICAgICAgICAgYXJncy5hcHBlbmQoIi0tZ3JvdXA9JXMiICUgc2VsZi5fZGVs
ZWdhdGUuZ3JvdXAoKSkKKworICAgICAgICByZXR1cm4gc2VsZi5fcnVuX2NvbW1hbmQoYXJncywg
IkJ1aWx0IHBhdGNoIiwgIlBhdGNoIGRvZXMgbm90IGJ1aWxkIikKIAogICAgIGRlZiBfYnVpbGRf
d2l0aG91dF9wYXRjaChzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYuX3J1bl9jb21tYW5kKFsK
KyAgICAgICAgYXJncyA9IFsKICAgICAgICAgICAgICJidWlsZCIsCiAgICAgICAgICAgICAiLS1m
b3JjZS1jbGVhbiIsCiAgICAgICAgICAgICAiLS1uby11cGRhdGUiLAogICAgICAgICAgICAgIi0t
YnVpbGQtc3R5bGU9JXMiICUgc2VsZi5fZGVsZWdhdGUuYnVpbGRfc3R5bGUoKSwKLSAgICAgICAg
XSwKLSAgICAgICAgIkFibGUgdG8gYnVpbGQgd2l0aG91dCBwYXRjaCIsCi0gICAgICAgICJVbmFi
bGUgdG8gYnVpbGQgd2l0aG91dCBwYXRjaCIpCisgICAgICAgIF0KKworICAgICAgICBpZiBoYXNh
dHRyKHNlbGYuX2RlbGVnYXRlLCAnZ3JvdXAnKToKKyAgICAgICAgICAgIGFyZ3MuYXBwZW5kKCIt
LWdyb3VwPSVzIiAlIHNlbGYuX2RlbGVnYXRlLmdyb3VwKCkpCisKKyAgICAgICAgcmV0dXJuIHNl
bGYuX3J1bl9jb21tYW5kKGFyZ3MsICJBYmxlIHRvIGJ1aWxkIHdpdGhvdXQgcGF0Y2giLCAiVW5h
YmxlIHRvIGJ1aWxkIHdpdGhvdXQgcGF0Y2giKQogCiAgICAgZGVmIF90ZXN0KHNlbGYpOgotICAg
ICAgICByZXR1cm4gc2VsZi5fcnVuX2NvbW1hbmQoWworICAgICAgICBhcmdzID0gWwogICAgICAg
ICAgICAgImJ1aWxkLWFuZC10ZXN0IiwKICAgICAgICAgICAgICItLW5vLWNsZWFuIiwKICAgICAg
ICAgICAgICItLW5vLXVwZGF0ZSIsCkBAIC0xNTEsMTIgKzE3NCwxNSBAQCBjbGFzcyBQYXRjaEFu
YWx5c2lzVGFzayhvYmplY3QpOgogICAgICAgICAgICAgIi0tdGVzdCIsCiAgICAgICAgICAgICAi
LS1ub24taW50ZXJhY3RpdmUiLAogICAgICAgICAgICAgIi0tYnVpbGQtc3R5bGU9JXMiICUgc2Vs
Zi5fZGVsZWdhdGUuYnVpbGRfc3R5bGUoKSwKLSAgICAgICAgXSwKLSAgICAgICAgIlBhc3NlZCB0
ZXN0cyIsCi0gICAgICAgICJQYXRjaCBkb2VzIG5vdCBwYXNzIHRlc3RzIikKKyAgICAgICAgXQor
CisgICAgICAgIGlmIGhhc2F0dHIoc2VsZi5fZGVsZWdhdGUsICdncm91cCcpOgorICAgICAgICAg
ICAgYXJncy5hcHBlbmQoIi0tZ3JvdXA9JXMiICUgc2VsZi5fZGVsZWdhdGUuZ3JvdXAoKSkKKwor
ICAgICAgICByZXR1cm4gc2VsZi5fcnVuX2NvbW1hbmQoYXJncywgIlBhc3NlZCB0ZXN0cyIsICJQ
YXRjaCBkb2VzIG5vdCBwYXNzIHRlc3RzIikKIAogICAgIGRlZiBfYnVpbGRfYW5kX3Rlc3Rfd2l0
aG91dF9wYXRjaChzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYuX3J1bl9jb21tYW5kKFsKKyAg
ICAgICAgYXJncyA9IFsKICAgICAgICAgICAgICJidWlsZC1hbmQtdGVzdCIsCiAgICAgICAgICAg
ICAiLS1mb3JjZS1jbGVhbiIsCiAgICAgICAgICAgICAiLS1uby11cGRhdGUiLApAQCAtMTY0LDkg
KzE5MCwxMiBAQCBjbGFzcyBQYXRjaEFuYWx5c2lzVGFzayhvYmplY3QpOgogICAgICAgICAgICAg
Ii0tdGVzdCIsCiAgICAgICAgICAgICAiLS1ub24taW50ZXJhY3RpdmUiLAogICAgICAgICAgICAg
Ii0tYnVpbGQtc3R5bGU9JXMiICUgc2VsZi5fZGVsZWdhdGUuYnVpbGRfc3R5bGUoKSwKLSAgICAg
ICAgXSwKLSAgICAgICAgIkFibGUgdG8gcGFzcyB0ZXN0cyB3aXRob3V0IHBhdGNoIiwKLSAgICAg
ICAgIlVuYWJsZSB0byBwYXNzIHRlc3RzIHdpdGhvdXQgcGF0Y2ggKHRyZWUgaXMgcmVkPykiKQor
ICAgICAgICBdCisKKyAgICAgICAgaWYgaGFzYXR0cihzZWxmLl9kZWxlZ2F0ZSwgJ2dyb3VwJyk6
CisgICAgICAgICAgICBhcmdzLmFwcGVuZCgiLS1ncm91cD0lcyIgJSBzZWxmLl9kZWxlZ2F0ZS5n
cm91cCgpKQorCisgICAgICAgIHJldHVybiBzZWxmLl9ydW5fY29tbWFuZChhcmdzLCAiQWJsZSB0
byBwYXNzIHRlc3RzIHdpdGhvdXQgcGF0Y2giLCAiVW5hYmxlIHRvIHBhc3MgdGVzdHMgd2l0aG91
dCBwYXRjaCAodHJlZSBpcyByZWQ/KSIpCiAKICAgICBkZWYgX2xhbmQoc2VsZik6CiAgICAgICAg
ICMgVW5jbGVhciBpZiB0aGlzIHNob3VsZCBwYXNzIC0tcXVpZXQgb3Igbm90LiAgSWYgLS1wYXJl
bnQtY29tbWFuZCBhbHdheXMgZG9lcyB0aGUgcmVwb3J0aW5nLCB0aGVuIGl0IHNob3VsZC4KQEAg
LTIwNiwxMCArMjM1LDM1IEBAIGNsYXNzIFBhdGNoQW5hbHlzaXNUYXNrKG9iamVjdCk6CiAgICAg
ICAgICMgYWxzbyBwcmVzZW50IHdpdGhvdXQgdGhlIHBhdGNoLCBzbyB3ZSBkb24ndCBuZWVkIHRv
IGRlZmVyLgogICAgICAgICByZXR1cm4gRmFsc2UKIAotICAgIGRlZiBfdGVzdF9wYXRjaChzZWxm
KToKKyAgICAjIEZJWE1FOiBBYnN0cmFjdCBvdXQgY29tbW9uIHBhcnRzIG9mIHRoZSByZXRyeSBs
b2dpYy4KKyAgICBkZWYgX3JldHJ5X2pzY190ZXN0cyhzZWxmKToKKyAgICAgICAgZmlyc3RfcmVz
dWx0cyA9IHNlbGYuX2RlbGVnYXRlLnRlc3RfcmVzdWx0cygpCisgICAgICAgIGZpcnN0X3Njcmlw
dF9lcnJvciA9IHNlbGYuX3NjcmlwdF9lcnJvcgorICAgICAgICBmaXJzdF9mYWlsdXJlX3N0YXR1
c19pZCA9IHNlbGYuZmFpbHVyZV9zdGF0dXNfaWQKKyAgICAgICAgaWYgZmlyc3RfcmVzdWx0cyBp
cyBOb25lOgorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisKICAgICAgICAgaWYgc2VsZi5fdGVz
dCgpOgogICAgICAgICAgICAgcmV0dXJuIFRydWUKKyAgICAgICAgc2Vjb25kX3Jlc3VsdHMgPSBz
ZWxmLl9kZWxlZ2F0ZS50ZXN0X3Jlc3VsdHMoKQorICAgICAgICBzZWNvbmRfc2NyaXB0X2Vycm9y
ID0gc2VsZi5fc2NyaXB0X2Vycm9yCisgICAgICAgIGlmIHNlY29uZF9yZXN1bHRzIGlzIE5vbmU6
CisgICAgICAgICAgICByZXR1cm4gRmFsc2UKKworICAgICAgICBjb25zaXN0ZW50bHlfZmFpbGlu
Z190ZXN0X3Jlc3VsdHMgPSBKU0NUZXN0UmVzdWx0cy5pbnRlcnNlY3Rpb24oZmlyc3RfcmVzdWx0
cywgc2Vjb25kX3Jlc3VsdHMpCisKKyAgICAgICAgc2VsZi5fYnVpbGRfYW5kX3Rlc3Rfd2l0aG91
dF9wYXRjaCgpCisgICAgICAgIGNsZWFuX3RyZWVfcmVzdWx0cyA9IHNlbGYuX2RlbGVnYXRlLnRl
c3RfcmVzdWx0cygpCisgICAgICAgIGlmIGNsZWFuX3RyZWVfcmVzdWx0cyBpcyBOb25lOgorICAg
ICAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICAgICAgaWYgY29uc2lzdGVudGx5X2ZhaWxpbmdf
dGVzdF9yZXN1bHRzLmlzX3N1YnNldChjbGVhbl90cmVlX3Jlc3VsdHMpOgorICAgICAgICAgICAg
cmV0dXJuIFRydWUKKworICAgICAgICBzZWxmLmZhaWx1cmVfc3RhdHVzX2lkID0gZmlyc3RfZmFp
bHVyZV9zdGF0dXNfaWQKKyAgICAgICAgcmV0dXJuIHNlbGYucmVwb3J0X2ZhaWx1cmUoTm9uZSwg
Y29uc2lzdGVudGx5X2ZhaWxpbmdfdGVzdF9yZXN1bHRzLCBmaXJzdF9zY3JpcHRfZXJyb3IpCiAK
KyAgICBkZWYgX3JldHJ5X2xheW91dF90ZXN0cyhzZWxmKToKICAgICAgICAgIyBOb3RlOiBhcmNo
aXZlX2xhc3RfdGVzdF9yZXN1bHRzIGRlbGV0ZXMgdGhlIHJlc3VsdHMgZGlyZWN0b3J5LCBtYWtp
bmcgdGhlc2UgY2FsbHMgb3JkZXItc2Vuc2l0dmUuCiAgICAgICAgICMgV2UgY291bGQgcmVtb3Zl
IHRoaXMgZGVwZW5kZW5jeSBieSBidWlsZGluZyB0aGUgdGVzdF9yZXN1bHRzIGZyb20gdGhlIGFy
Y2hpdmUuCiAgICAgICAgIGZpcnN0X3Jlc3VsdHMgPSBzZWxmLl9kZWxlZ2F0ZS50ZXN0X3Jlc3Vs
dHMoKQpAQCAtMjQwLDExICsyOTQsMTMgQEAgY2xhc3MgUGF0Y2hBbmFseXNpc1Rhc2sob2JqZWN0
KToKICAgICAgICAgICAgIHJldHVybiBzZWxmLnJlcG9ydF9mYWlsdXJlKGZpcnN0X3Jlc3VsdHNf
YXJjaGl2ZSwgZmlyc3RfcmVzdWx0cywgZmlyc3Rfc2NyaXB0X2Vycm9yKQogCiAgICAgICAgIGlm
IHNlY29uZF9yZXN1bHRzLmRpZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xpbWl0KCk6Ci0gICAgICAg
ICAgICBzZWxmLl9zaG91bGRfZGVmZXJfcGF0Y2hfb3JfdGhyb3coZmlyc3RfcmVzdWx0cy5mYWls
aW5nX3Rlc3RfcmVzdWx0cygpLCBmaXJzdF9yZXN1bHRzX2FyY2hpdmUsIGZpcnN0X3NjcmlwdF9l
cnJvciwgZmlyc3RfZmFpbHVyZV9zdGF0dXNfaWQpCisgICAgICAgICAgICBzZWxmLl9zaG91bGRf
ZGVmZXJfcGF0Y2hfb3JfdGhyb3coZmlyc3RfcmVzdWx0cy5mYWlsaW5nX3Rlc3RfcmVzdWx0cygp
LCBmaXJzdF9yZXN1bHRzX2FyY2hpdmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZmlyc3Rfc2NyaXB0X2Vycm9yLCBmaXJzdF9mYWlsdXJlX3N0YXR1c19p
ZCkKICAgICAgICAgICAgIHJldHVybiBGYWxzZQogCiAgICAgICAgIGlmIGZpcnN0X3Jlc3VsdHMu
ZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQoKToKLSAgICAgICAgICAgIHNlbGYuX3Nob3Vs
ZF9kZWZlcl9wYXRjaF9vcl90aHJvdyhzZWNvbmRfcmVzdWx0cy5mYWlsaW5nX3Rlc3RfcmVzdWx0
cygpLCBzZWNvbmRfcmVzdWx0c19hcmNoaXZlLCBzZWNvbmRfc2NyaXB0X2Vycm9yLCBzZWNvbmRf
ZmFpbHVyZV9zdGF0dXNfaWQpCisgICAgICAgICAgICBzZWxmLl9zaG91bGRfZGVmZXJfcGF0Y2hf
b3JfdGhyb3coc2Vjb25kX3Jlc3VsdHMuZmFpbGluZ190ZXN0X3Jlc3VsdHMoKSwgc2Vjb25kX3Jl
c3VsdHNfYXJjaGl2ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBzZWNvbmRfc2NyaXB0X2Vycm9yLCBzZWNvbmRfZmFpbHVyZV9zdGF0dXNfaWQpCiAgICAg
ICAgICAgICByZXR1cm4gRmFsc2UKIAogICAgICAgICBpZiBzZWxmLl9yZXN1bHRzX2ZhaWxlZF9k
aWZmZXJlbnRfdGVzdHMoZmlyc3RfcmVzdWx0cywgc2Vjb25kX3Jlc3VsdHMpOgpAQCAtMjU5LDE0
ICszMTUsMTYgQEAgY2xhc3MgUGF0Y2hBbmFseXNpc1Rhc2sob2JqZWN0KToKIAogICAgICAgICAg
ICAgdGVzdHNfdGhhdF9jb25zaXN0ZW50bHlfZmFpbGVkID0gZmlyc3RfZmFpbGluZ19yZXN1bHRz
X3NldC5pbnRlcnNlY3Rpb24oc2Vjb25kX2ZhaWxpbmdfcmVzdWx0c19zZXQpCiAgICAgICAgICAg
ICBpZiB0ZXN0c190aGF0X2NvbnNpc3RlbnRseV9mYWlsZWQ6Ci0gICAgICAgICAgICAgICAgaWYg
c2VsZi5fc2hvdWxkX2RlZmVyX3BhdGNoX29yX3Rocm93KHRlc3RzX3RoYXRfY29uc2lzdGVudGx5
X2ZhaWxlZCwgZmlyc3RfcmVzdWx0c19hcmNoaXZlLCBmaXJzdF9zY3JpcHRfZXJyb3IsIGZpcnN0
X2ZhaWx1cmVfc3RhdHVzX2lkKToKKyAgICAgICAgICAgICAgICBpZiBzZWxmLl9zaG91bGRfZGVm
ZXJfcGF0Y2hfb3JfdGhyb3codGVzdHNfdGhhdF9jb25zaXN0ZW50bHlfZmFpbGVkLCBmaXJzdF9y
ZXN1bHRzX2FyY2hpdmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGZpcnN0X3NjcmlwdF9lcnJvciwgZmlyc3RfZmFpbHVyZV9zdGF0dXNfaWQp
OgogICAgICAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UgICMgRGVmZXIgcGF0Y2gKIAogICAg
ICAgICAgICAgIyBBdCB0aGlzIHBvaW50IHdlIGtub3cgdGhhdCBhdCBsZWFzdCBvbmUgdGVzdCBm
bGFrZWQsIGJ1dCBubyBjb25zaXN0ZW50IGZhaWx1cmVzCiAgICAgICAgICAgICAjIHdlcmUgaW50
cm9kdWNlZC4gVGhpcyBpcyBhIGJpdCBvZiBhIGdyZXktem9uZS4KICAgICAgICAgICAgIHJldHVy
biBGYWxzZSAgIyBEZWZlciBwYXRjaAogCi0gICAgICAgIGlmIHNlbGYuX3Nob3VsZF9kZWZlcl9w
YXRjaF9vcl90aHJvdyhmaXJzdF9yZXN1bHRzLmZhaWxpbmdfdGVzdF9yZXN1bHRzKCksIGZpcnN0
X3Jlc3VsdHNfYXJjaGl2ZSwgZmlyc3Rfc2NyaXB0X2Vycm9yLCBmaXJzdF9mYWlsdXJlX3N0YXR1
c19pZCk6CisgICAgICAgIGlmIHNlbGYuX3Nob3VsZF9kZWZlcl9wYXRjaF9vcl90aHJvdyhmaXJz
dF9yZXN1bHRzLmZhaWxpbmdfdGVzdF9yZXN1bHRzKCksIGZpcnN0X3Jlc3VsdHNfYXJjaGl2ZSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpcnN0X3Njcmlw
dF9lcnJvciwgZmlyc3RfZmFpbHVyZV9zdGF0dXNfaWQpOgogICAgICAgICAgICAgcmV0dXJuIEZh
bHNlICAjIERlZmVyIHBhdGNoCiAKICAgICAgICAgIyBBdCB0aGlzIHBvaW50LCB3ZSBrbm93IHRo
YXQgdGhlIGZpcnN0IGFuZCBzZWNvbmQgcnVucyBoYWQgdGhlIGV4YWN0IHNhbWUgZmFpbHVyZXMs
CkBAIC0yNzQsNiArMzMyLDE1IEBAIGNsYXNzIFBhdGNoQW5hbHlzaXNUYXNrKG9iamVjdCk6CiAg
ICAgICAgICMgdGhhdCB0aGUgcGF0Y2ggaXMgZ29vZC4KICAgICAgICAgcmV0dXJuIFRydWUKIAor
ICAgIGRlZiBfdGVzdF9wYXRjaChzZWxmKToKKyAgICAgICAgaWYgc2VsZi5fdGVzdCgpOgorICAg
ICAgICAgICAgcmV0dXJuIFRydWUKKworICAgICAgICBpZiBoYXNhdHRyKHNlbGYuX2RlbGVnYXRl
LCAnZ3JvdXAnKSBhbmQgc2VsZi5fZGVsZWdhdGUuZ3JvdXAoKSA9PSAianNjIjoKKyAgICAgICAg
ICAgIHJldHVybiBzZWxmLl9yZXRyeV9qc2NfdGVzdHMoKQorICAgICAgICBlbHNlOgorICAgICAg
ICAgICAgcmV0dXJuIHNlbGYuX3JldHJ5X2xheW91dF90ZXN0cygpCisKICAgICBkZWYgcmVzdWx0
c19hcmNoaXZlX2Zyb21fcGF0Y2hfdGVzdF9ydW4oc2VsZiwgcGF0Y2gpOgogICAgICAgICBhc3Nl
cnQoc2VsZi5fcGF0Y2guaWQoKSA9PSBwYXRjaC5pZCgpKSAgIyBQYXRjaEFuYWx5c2lzVGFzayBp
cyBub3QgY3VycmVudGx5IHJlLXVzZWFibGUuCiAgICAgICAgIHJldHVybiBzZWxmLl9yZXN1bHRz
X2FyY2hpdmVfZnJvbV9wYXRjaF90ZXN0X3J1bgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS90b29sL2NvbW1hbmRzL2Rvd25sb2FkLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS90b29sL2NvbW1hbmRzL2Rvd25sb2FkLnB5CmluZGV4IGU1MTY5YWFjODVmMzE4NmU4NGJlOWQ1
MDI0NTkyYmQ3ZmU2ZDVkZDUuLjE0YjU1YmMzZjdjOWMxMGI1ZGY2MGZjMWFmODdkN2NhMzllM2Jj
OTQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9kb3du
bG9hZC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZG93bmxv
YWQucHkKQEAgLTEsNSArMSw1IEBACiAjIENvcHlyaWdodCAoYykgMjAwOSwgMjAxMSBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotIyBDb3B5cmlnaHQgKGMpIDIwMDkgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKGMpIDIwMDksIDIwMTcgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFy
ZQpAQCAtODcsNiArODcsMTQgQEAgY2xhc3MgQnVpbGRBbmRUZXN0KEFic3RyYWN0U2VxdWVuY2Vk
Q29tbWFuZCk6CiAgICAgXQogCiAKK2NsYXNzIENoZWNrUGF0Y2hSZWxldmFuY2UoQWJzdHJhY3RT
ZXF1ZW5jZWRDb21tYW5kKToKKyAgICBuYW1lID0gImNoZWNrLXBhdGNoLXJlbGV2YW5jZSIKKyAg
ICBoZWxwX3RleHQgPSAiQ2hlY2sgaWYgdGhpcyBwYXRjaCBuZWVkcyB0byBiZSB0ZXN0ZWQiCisg
ICAgc3RlcHMgPSBbCisgICAgICAgIHN0ZXBzLkNoZWNrUGF0Y2hSZWxldmFuY2UsCisgICAgXQor
CisKIGNsYXNzIExhbmQoQWJzdHJhY3RTZXF1ZW5jZWRDb21tYW5kKToKICAgICBuYW1lID0gImxh
bmQiCiAgICAgaGVscF90ZXh0ID0gIkxhbmQgdGhlIGN1cnJlbnQgd29ya2luZyBkaXJlY3Rvcnkg
ZGlmZiBhbmQgdXBkYXRlcyB0aGUgYXNzb2NpYXRlZCBidWcgaWYgYW55IgpkaWZmIC0tZ2l0IGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Rvd25sb2FkX3VuaXR0ZXN0LnB5
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Rvd25sb2FkX3VuaXR0ZXN0
LnB5CmluZGV4IDQyOWRhMTI0NmY4YmQ3NmFiMDJlZTYzM2M0MmQ2ZmIzOGQzODU0YzUuLjU5Yzk0
ODhjMDk0MDk5YjczNDdlOTZlZjIwMmMzNjBkOTE5NDYzMDMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9kb3dubG9hZF91bml0dGVzdC5weQorKysgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZG93bmxvYWRfdW5pdHRlc3QucHkK
QEAgLTg5LDYgKzg5LDcgQEAgY2xhc3MgRG93bmxvYWRDb21tYW5kc1Rlc3QoQ29tbWFuZHNUZXN0
KToKICAgICAgICAgb3B0aW9ucy51cGRhdGUgPSBUcnVlCiAgICAgICAgIG9wdGlvbnMuYXJjaGl0
ZWN0dXJlID0gJ01PQ0sgQVJDSCcKICAgICAgICAgb3B0aW9ucy5pdGVyYXRlX29uX25ld190ZXN0
cyA9IDAKKyAgICAgICAgb3B0aW9ucy5ncm91cCA9IE5vbmUKICAgICAgICAgcmV0dXJuIG9wdGlv
bnMKIAogICAgIGRlZiB0ZXN0X2J1aWxkKHNlbGYpOgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Vhcmx5d2FybmluZ3N5c3RlbS5weSBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9lYXJseXdhcm5pbmdzeXN0ZW0ucHkKaW5kZXgg
OWJjMDQxODYwY2U2NzQ1NDQ1NGU0YjI1MTQzOGE5ZGJlNTI2NDUxMy4uNjhmMWQ4MDMyMGNiMjU3
ZTI2YmFmODQwMWZiN2FhNTEyMDQxOWRjMSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS90b29sL2NvbW1hbmRzL2Vhcmx5d2FybmluZ3N5c3RlbS5weQorKysgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZWFybHl3YXJuaW5nc3lzdGVtLnB5CkBAIC0xLDQg
KzEsNSBAQAogIyBDb3B5cmlnaHQgKGMpIDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyMgQ29weXJpZ2h0IChjKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTI4LDYgKzI5LDcgQEAKIAog
aW1wb3J0IGpzb24KIGltcG9ydCBsb2dnaW5nCitpbXBvcnQgb3MKIGZyb20gb3B0cGFyc2UgaW1w
b3J0IG1ha2Vfb3B0aW9uCiAKIGZyb20gd2Via2l0cHkuY29tbW9uLmNvbmZpZy5jb21taXR0ZXJz
IGltcG9ydCBDb21taXR0ZXJMaXN0CkBAIC0zNiw3ICszOCw4IEBAIGZyb20gd2Via2l0cHkuY29t
bW9uLnN5c3RlbS5maWxlc3lzdGVtIGltcG9ydCBGaWxlU3lzdGVtCiBmcm9tIHdlYmtpdHB5LmNv
bW1vbi5zeXN0ZW0uZXhlY3V0aXZlIGltcG9ydCBTY3JpcHRFcnJvcgogZnJvbSB3ZWJraXRweS50
b29sLmJvdC5lYXJseXdhcm5pbmdzeXN0ZW10YXNrIGltcG9ydCBFYXJseVdhcm5pbmdTeXN0ZW1U
YXNrLCBFYXJseVdhcm5pbmdTeXN0ZW1UYXNrRGVsZWdhdGUKIGZyb20gd2Via2l0cHkudG9vbC5i
b3QubGF5b3V0dGVzdHJlc3VsdHNyZWFkZXIgaW1wb3J0IExheW91dFRlc3RSZXN1bHRzUmVhZGVy
Ci1mcm9tIHdlYmtpdHB5LnRvb2wuYm90LnBhdGNoYW5hbHlzaXN0YXNrIGltcG9ydCBVbmFibGVU
b0FwcGx5UGF0Y2gsIFBhdGNoSXNOb3RWYWxpZAorZnJvbSB3ZWJraXRweS50b29sLmJvdC5qc2N0
ZXN0cmVzdWx0c3JlYWRlciBpbXBvcnQgSlNDVGVzdFJlc3VsdHNSZWFkZXIKK2Zyb20gd2Via2l0
cHkudG9vbC5ib3QucGF0Y2hhbmFseXNpc3Rhc2sgaW1wb3J0IFVuYWJsZVRvQXBwbHlQYXRjaCwg
UGF0Y2hJc05vdFZhbGlkLCBQYXRjaElzTm90QXBwbGljYWJsZQogZnJvbSB3ZWJraXRweS50b29s
LmJvdC5xdWV1ZWVuZ2luZSBpbXBvcnQgUXVldWVFbmdpbmUKIGZyb20gd2Via2l0cHkudG9vbC5j
b21tYW5kcy5xdWV1ZXMgaW1wb3J0IEFic3RyYWN0UmV2aWV3UXVldWUKIApAQCAtNTMsNyArNTYs
MTEgQEAgY2xhc3MgQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0oQWJzdHJhY3RSZXZpZXdRdWV1
ZSwgRWFybHlXYXJuaW5nU3lzdGVtVGFza0RlbGUKIAogICAgIGRlZiBiZWdpbl93b3JrX3F1ZXVl
KHNlbGYpOgogICAgICAgICBBYnN0cmFjdFJldmlld1F1ZXVlLmJlZ2luX3dvcmtfcXVldWUoc2Vs
ZikKLSAgICAgICAgc2VsZi5fbGF5b3V0X3Rlc3RfcmVzdWx0c19yZWFkZXIgPSBMYXlvdXRUZXN0
UmVzdWx0c1JlYWRlcihzZWxmLl90b29sLCBzZWxmLl9wb3J0LnJlc3VsdHNfZGlyZWN0b3J5KCks
IHNlbGYuX2xvZ19kaXJlY3RvcnkoKSkKKworICAgICAgICBpZiBzZWxmLmdyb3VwKCkgPT0gImpz
YyI6CisgICAgICAgICAgICBzZWxmLl90ZXN0X3Jlc3VsdHNfcmVhZGVyID0gSlNDVGVzdFJlc3Vs
dHNSZWFkZXIoc2VsZi5fdG9vbCwgc2VsZi5fcG9ydC5qc2NfcmVzdWx0c19kaXJlY3RvcnkoKSkK
KyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYuX3Rlc3RfcmVzdWx0c19yZWFkZXIgPSBM
YXlvdXRUZXN0UmVzdWx0c1JlYWRlcihzZWxmLl90b29sLCBzZWxmLl9wb3J0LnJlc3VsdHNfZGly
ZWN0b3J5KCksIHNlbGYuX2xvZ19kaXJlY3RvcnkoKSkKIAogICAgIGRlZiBfZmFpbGluZ190ZXN0
c19tZXNzYWdlKHNlbGYsIHRhc2ssIHBhdGNoKToKICAgICAgICAgcmVzdWx0cyA9IHRhc2sucmVz
dWx0c19mcm9tX3BhdGNoX3Rlc3RfcnVuKHBhdGNoKQpAQCAtNzksOCArODYsMTIgQEAgY2xhc3Mg
QWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0oQWJzdHJhY3RSZXZpZXdRdWV1ZSwgRWFybHlXYXJu
aW5nU3lzdGVtVGFza0RlbGUKICAgICAgICAgICAgIHRvb2wuYnVncy5hZGRfY2NfdG9fYnVnKHBh
dGNoLmJ1Z19pZCgpLCBzZWxmLndhdGNoZXJzKQogICAgICAgICB0b29sLmJ1Z3Muc2V0X2ZsYWdf
b25fYXR0YWNobWVudChwYXRjaC5pZCgpLCAiY29tbWl0LXF1ZXVlIiwgIi0iLCBtZXNzYWdlKQog
CisgICAgIyBUaGlzIGV4aXN0cyBmb3IgbW9ja2luZworICAgIGRlZiBfY3JlYXRlX3Rhc2soc2Vs
ZiwgcGF0Y2gpOgorICAgICAgICByZXR1cm4gRWFybHlXYXJuaW5nU3lzdGVtVGFzayhzZWxmLCBw
YXRjaCwgc2VsZi5fb3B0aW9ucy5ydW5fdGVzdHMpCisKICAgICBkZWYgcmV2aWV3X3BhdGNoKHNl
bGYsIHBhdGNoKToKLSAgICAgICAgdGFzayA9IEVhcmx5V2FybmluZ1N5c3RlbVRhc2soc2VsZiwg
cGF0Y2gsIHNlbGYuX29wdGlvbnMucnVuX3Rlc3RzKQorICAgICAgICB0YXNrID0gc2VsZi5fY3Jl
YXRlX3Rhc2socGF0Y2gpCiAgICAgICAgIHRyeToKICAgICAgICAgICAgIHN1Y2NlZWRlZCA9IHRh
c2sucnVuKCkKICAgICAgICAgICAgIGlmIG5vdCBzdWNjZWVkZWQ6CkBAIC05Myw2ICsxMDQsOSBA
QCBjbGFzcyBBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbShBYnN0cmFjdFJldmlld1F1ZXVlLCBF
YXJseVdhcm5pbmdTeXN0ZW1UYXNrRGVsZQogICAgICAgICBleGNlcHQgVW5hYmxlVG9BcHBseVBh
dGNoLCBlOgogICAgICAgICAgICAgc2VsZi5fZGlkX2Vycm9yKHBhdGNoLCAiJXMgdW5hYmxlIHRv
IGFwcGx5IHBhdGNoLiIgJSBzZWxmLm5hbWUpCiAgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAg
ICAgICAgZXhjZXB0IFBhdGNoSXNOb3RBcHBsaWNhYmxlLCBlOgorICAgICAgICAgICAgc2VsZi5f
ZGlkX3NraXAocGF0Y2gpCisgICAgICAgICAgICByZXR1cm4gRmFsc2UKICAgICAgICAgZXhjZXB0
IFNjcmlwdEVycm9yLCBlOgogICAgICAgICAgICAgc2VsZi5fcG9zdF9yZWplY3RfbWVzc2FnZV9v
bl9idWcoc2VsZi5fdG9vbCwgcGF0Y2gsIHRhc2suZmFpbHVyZV9zdGF0dXNfaWQsIHNlbGYuX2Zh
aWxpbmdfdGVzdHNfbWVzc2FnZSh0YXNrLCBwYXRjaCkpCiAgICAgICAgICAgICByZXN1bHRzX2Fy
Y2hpdmUgPSB0YXNrLnJlc3VsdHNfYXJjaGl2ZV9mcm9tX3BhdGNoX3Rlc3RfcnVuKHBhdGNoKQpA
QCAtMTE3LDE0ICsxMzEsMTcgQEAgY2xhc3MgQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0oQWJz
dHJhY3RSZXZpZXdRdWV1ZSwgRWFybHlXYXJuaW5nU3lzdGVtVGFza0RlbGUKICAgICAgICAgcmV0
dXJuIHNlbGYuX3VwZGF0ZV9zdGF0dXMobWVzc2FnZSwgcGF0Y2g9cGF0Y2gsIHJlc3VsdHNfZmls
ZT1mYWlsdXJlX2xvZykKIAogICAgIGRlZiB0ZXN0X3Jlc3VsdHMoc2VsZik6Ci0gICAgICAgIHJl
dHVybiBzZWxmLl9sYXlvdXRfdGVzdF9yZXN1bHRzX3JlYWRlci5yZXN1bHRzKCkKKyAgICAgICAg
cmV0dXJuIHNlbGYuX3Rlc3RfcmVzdWx0c19yZWFkZXIucmVzdWx0cygpCiAKICAgICBkZWYgYXJj
aGl2ZV9sYXN0X3Rlc3RfcmVzdWx0cyhzZWxmLCBwYXRjaCk6Ci0gICAgICAgIHJldHVybiBzZWxm
Ll9sYXlvdXRfdGVzdF9yZXN1bHRzX3JlYWRlci5hcmNoaXZlKHBhdGNoKQorICAgICAgICByZXR1
cm4gc2VsZi5fdGVzdF9yZXN1bHRzX3JlYWRlci5hcmNoaXZlKHBhdGNoKQogCiAgICAgZGVmIGJ1
aWxkX3N0eWxlKHNlbGYpOgogICAgICAgICByZXR1cm4gc2VsZi5fYnVpbGRfc3R5bGUKIAorICAg
IGRlZiBncm91cChzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX2dyb3VwCisKICAgICBkZWYg
cmVmZXRjaF9wYXRjaChzZWxmLCBwYXRjaCk6CiAgICAgICAgIHJldHVybiBzZWxmLl90b29sLmJ1
Z3MuZmV0Y2hfYXR0YWNobWVudChwYXRjaC5pZCgpKQogCkBAIC0xNDksMTIgKzE2NiwxMyBAQCBj
bGFzcyBBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbShBYnN0cmFjdFJldmlld1F1ZXVlLCBFYXJs
eVdhcm5pbmdTeXN0ZW1UYXNrRGVsZQogCiAgICAgICAgIGNsYXNzZXMgPSBbXQogICAgICAgICBm
b3IgbmFtZSwgY29uZmlnIGluIGV3c2VzLml0ZXJpdGVtcygpOgotICAgICAgICAgICAgY2xhc3Nl
cy5hcHBlbmQodHlwZShuYW1lLmVuY29kZSgndXRmLTgnKS50cmFuc2xhdGUoTm9uZSwgJyAtJyks
IChBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbSwpLCB7CisgICAgICAgICAgICBjbGFzc2VzLmFw
cGVuZCh0eXBlKG5hbWUuZW5jb2RlKCd1dGYtOCcpLnRyYW5zbGF0ZShOb25lLCAnIC0nKSwgKGNs
cywpLCB7CiAgICAgICAgICAgICAgICAgJ25hbWUnOiBjb25maWcuZ2V0KCduYW1lJywgY29uZmln
Wydwb3J0J10gKyAnLWV3cycpLAogICAgICAgICAgICAgICAgICdwb3J0X25hbWUnOiBjb25maWdb
J3BvcnQnXSwKICAgICAgICAgICAgICAgICAnYXJjaGl0ZWN0dXJlJzogY29uZmlnLmdldCgnYXJj
aGl0ZWN0dXJlJywgTm9uZSksCiAgICAgICAgICAgICAgICAgJ19idWlsZF9zdHlsZSc6IGNvbmZp
Zy5nZXQoJ3N0eWxlJywgInJlbGVhc2UiKSwKICAgICAgICAgICAgICAgICAnd2F0Y2hlcnMnOiBj
b25maWcuZ2V0KCd3YXRjaGVycycsIFtdKSwKICAgICAgICAgICAgICAgICAncnVuX3Rlc3RzJzog
Y29uZmlnLmdldCgncnVuVGVzdHMnLCBjbHMucnVuX3Rlc3RzKSwKKyAgICAgICAgICAgICAgICAn
X2dyb3VwJzogY29uZmlnLmdldCgnZ3JvdXAnLCBOb25lKSwKICAgICAgICAgICAgIH0pKQogICAg
ICAgICByZXR1cm4gY2xhc3NlcwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90
b29sL2NvbW1hbmRzL2Vhcmx5d2FybmluZ3N5c3RlbV91bml0dGVzdC5weSBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9lYXJseXdhcm5pbmdzeXN0ZW1fdW5pdHRlc3QucHkK
aW5kZXggMDg4ODc4MTNjZTJlOTNhOGVjOWRhMzc2MzZlY2JkZTllZmYzYzllNy4uZjhiZWRkYzQ5
YWU4ZWFmY2FjMGZlZDY5OGQzZmRhZWUwYzhhZWM1YiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Vhcmx5d2FybmluZ3N5c3RlbV91bml0dGVzdC5weQor
KysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZWFybHl3YXJuaW5nc3lz
dGVtX3VuaXR0ZXN0LnB5CkBAIC0xLDQgKzEsNSBAQAogIyBDb3B5cmlnaHQgKEMpIDIwMDkgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBh
cmUKQEAgLTI5LDYgKzMwLDcgQEAKIGZyb20gd2Via2l0cHkudGhpcmRwYXJ0eS5tb2NrIGltcG9y
dCBNb2NrCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5ob3N0IGltcG9ydCBIb3N0CiBmcm9tIHdlYmtp
dHB5LmNvbW1vbi5ob3N0X21vY2sgaW1wb3J0IE1vY2tIb3N0Citmcm9tIHdlYmtpdHB5LmNvbW1v
bi5uZXQuanNjdGVzdHJlc3VsdHMgaW1wb3J0IEpTQ1Rlc3RSZXN1bHRzCiBmcm9tIHdlYmtpdHB5
LmNvbW1vbi5uZXQubGF5b3V0dGVzdHJlc3VsdHMgaW1wb3J0IExheW91dFRlc3RSZXN1bHRzCiBm
cm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0ub3V0cHV0Y2FwdHVyZSBpbXBvcnQgT3V0cHV0Q2Fw
dHVyZQogZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMubW9kZWxzIGltcG9ydCB0ZXN0X3Jlc3Vs
dHMKQEAgLTQxLDYyICs0MywxMDAgQEAgZnJvbSB3ZWJraXRweS50b29sLmNvbW1hbmRzLnF1ZXVl
c3Rlc3QgaW1wb3J0IFF1ZXVlc1Rlc3QKIGZyb20gd2Via2l0cHkudG9vbC5tb2NrdG9vbCBpbXBv
cnQgTW9ja1Rvb2wsIE1vY2tPcHRpb25zCiAKIAotY2xhc3MgQWJzdHJhY3RFYXJseVdhcm5pbmdT
eXN0ZW1UZXN0KFF1ZXVlc1Rlc3QpOgotICAgIGRlZiB0ZXN0X2ZhaWxpbmdfdGVzdHNfbWVzc2Fn
ZShzZWxmKToKLSAgICAgICAgIyBOZWVkZWQgdG8gZGVmaW5lIHBvcnRfbmFtZSwgdXNlZCBpbiBB
YnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbS5fX2luaXRfXwotICAgICAgICBjbGFzcyBUZXN0RVdT
KEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtKToKLSAgICAgICAgICAgIHBvcnRfbmFtZSA9ICJ3
aW4iICAjIE5lZWRzIHRvIGJlIGEgcG9ydCB3aGljaCBwb3J0L2ZhY3RvcnkgdW5kZXJzdGFuZHMu
Ci0gICAgICAgICAgICBfYnVpbGRfc3R5bGUgPSBOb25lCisjIE5lZWRlZCB0byBkZWZpbmUgcG9y
dF9uYW1lLCB1c2VkIGluIEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtLl9faW5pdF9fCitjbGFz
cyBUZXN0RVdTKEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtKToKKyAgICBwb3J0X25hbWUgPSAi
d2luIiAgIyBOZWVkcyB0byBiZSBhIHBvcnQgd2hpY2ggcG9ydC9mYWN0b3J5IHVuZGVyc3RhbmRz
LgorICAgIF9idWlsZF9zdHlsZSA9IE5vbmUKKyAgICBfZ3JvdXAgPSBOb25lCiAKLSAgICAgICAg
ZXdzID0gVGVzdEVXUygpCisKK2NsYXNzIFRlc3RKU0NFV1MoQWJzdHJhY3RFYXJseVdhcm5pbmdT
eXN0ZW0pOgorICAgIHBvcnRfbmFtZSA9ICJtYWMiICAjIE5lZWRzIHRvIGJlIGEgcG9ydCB3aGlj
aCBwb3J0L2ZhY3RvcnkgdW5kZXJzdGFuZHMuCisgICAgX2J1aWxkX3N0eWxlID0gTm9uZQorICAg
IF9ncm91cCA9ICJqc2MiCisKKworY2xhc3MgQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW1UZXN0
KFF1ZXVlc1Rlc3QpOgorICAgIGRlZiBfdGVzdF9tZXNzYWdlKHNlbGYsIGV3cywgcmVzdWx0cywg
bWVzc2FnZSk6CiAgICAgICAgIGV3cy5iaW5kX3RvX3Rvb2woTW9ja1Rvb2woKSkKICAgICAgICAg
ZXdzLmhvc3QgPSBNb2NrSG9zdCgpCiAgICAgICAgIGV3cy5fb3B0aW9ucyA9IE1vY2tPcHRpb25z
KHBvcnQ9Tm9uZSwgY29uZmlybT1GYWxzZSkKICAgICAgICAgT3V0cHV0Q2FwdHVyZSgpLmFzc2Vy
dF9vdXRwdXRzKHNlbGYsIGV3cy5iZWdpbl93b3JrX3F1ZXVlLCBleHBlY3RlZF9sb2dzPXNlbGYu
X2RlZmF1bHRfYmVnaW5fd29ya19xdWV1ZV9sb2dzKGV3cy5uYW1lKSkKICAgICAgICAgdGFzayA9
IE1vY2soKQotICAgICAgICB0YXNrLnJlc3VsdHNfZnJvbV9wYXRjaF90ZXN0X3J1biA9IGxhbWJk
YSBhOiBMYXlvdXRUZXN0UmVzdWx0cyhbdGVzdF9yZXN1bHRzLlRlc3RSZXN1bHQoImZvby5odG1s
IiwgZmFpbHVyZXM9W3Rlc3RfZmFpbHVyZXMuRmFpbHVyZVRleHRNaXNtYXRjaCgpXSksCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHRlc3RfcmVzdWx0cy5UZXN0UmVzdWx0KCJiYXIuaHRtbCIsIGZhaWx1cmVz
PVt0ZXN0X2ZhaWx1cmVzLkZhaWx1cmVUZXh0TWlzbWF0Y2goKV0pXSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQ9RmFsc2UpCisgICAgICAgIHRhc2sucmVz
dWx0c19mcm9tX3BhdGNoX3Rlc3RfcnVuID0gcmVzdWx0cwogICAgICAgICBwYXRjaCA9IGV3cy5f
dG9vbC5idWdzLmZldGNoX2F0dGFjaG1lbnQoMTAwMDApCi0gICAgICAgIHNlbGYuYXNzZXJ0TXVs
dGlMaW5lRXF1YWwoZXdzLl9mYWlsaW5nX3Rlc3RzX21lc3NhZ2UodGFzaywgcGF0Y2gpLCAiTmV3
IGZhaWxpbmcgdGVzdHM6XG5mb28uaHRtbFxuYmFyLmh0bWwiKQorICAgICAgICBzZWxmLmFzc2Vy
dE11bHRpTGluZUVxdWFsKGV3cy5fZmFpbGluZ190ZXN0c19tZXNzYWdlKHRhc2ssIHBhdGNoKSwg
bWVzc2FnZSkKKworICAgIGRlZiB0ZXN0X2ZhaWxpbmdfdGVzdHNfbWVzc2FnZShzZWxmKToKKyAg
ICAgICAgZXdzID0gVGVzdEVXUygpCisgICAgICAgIHJlc3VsdHMgPSBsYW1iZGEgYTogTGF5b3V0
VGVzdFJlc3VsdHMoW3Rlc3RfcmVzdWx0cy5UZXN0UmVzdWx0KCJmb28uaHRtbCIsIGZhaWx1cmVz
PVt0ZXN0X2ZhaWx1cmVzLkZhaWx1cmVUZXh0TWlzbWF0Y2goKV0pLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9yZXN1bHRzLlRlc3RSZXN1bHQo
ImJhci5odG1sIiwgZmFpbHVyZXM9W3Rlc3RfZmFpbHVyZXMuRmFpbHVyZVRleHRNaXNtYXRjaCgp
XSldLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlk
X2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQ9RmFsc2UpCisgICAgICAgIG1lc3NhZ2UgPSAiTmV3
IGZhaWxpbmcgdGVzdHM6XG5mb28uaHRtbFxuYmFyLmh0bWwiCisgICAgICAgIHNlbGYuX3Rlc3Rf
bWVzc2FnZShld3MsIHJlc3VsdHMsIG1lc3NhZ2UpCisKKyAgICBkZWYgdGVzdF9mYWlsaW5nX2pz
Y190ZXN0c19tZXNzYWdlKHNlbGYpOgorICAgICAgICBld3MgPSBUZXN0SlNDRVdTKCkKKyAgICAg
ICAgcmVzdWx0cyA9IGxhbWJkYSBhOiBKU0NUZXN0UmVzdWx0cyhGYWxzZSwgWyJlczYueWFtbC9l
czYvdHlwZWRfYXJyYXlzX0ludDhBcnJheS5qcy5kZWZhdWx0IiwgImVzNi55YW1sL2VzNi90eXBl
ZF9hcnJheXNfVWludDhBcnJheS5qcy5kZWZhdWx0Il0pCisgICAgICAgIG1lc3NhZ2UgPSAiTmV3
IGZhaWxpbmcgdGVzdHM6XG5lczYueWFtbC9lczYvdHlwZWRfYXJyYXlzX0ludDhBcnJheS5qcy5k
ZWZhdWx0XG5lczYueWFtbC9lczYvdHlwZWRfYXJyYXlzX1VpbnQ4QXJyYXkuanMuZGVmYXVsdFxu
YXBpVGVzdHMiCisgICAgICAgIHNlbGYuX3Rlc3RfbWVzc2FnZShld3MsIHJlc3VsdHMsIG1lc3Nh
Z2UpCisKKworY2xhc3MgTW9ja0Vhcmx5V2FybmluZ1N5c3RlbVRhc2tGb3JJbmNvbmNsdXNpdmVK
U0NSZXN1bHRzKEVhcmx5V2FybmluZ1N5c3RlbVRhc2spOgorICAgIGRlZiBfdGVzdF9wYXRjaChz
ZWxmKToKKyAgICAgICAgc2VsZi5fdGVzdCgpCisgICAgICAgIHJlc3VsdHMgPSBzZWxmLl9kZWxl
Z2F0ZS50ZXN0X3Jlc3VsdHMoKQorICAgICAgICByZXR1cm4gYm9vbChyZXN1bHRzKQorCisKK2Ns
YXNzIE1vY2tBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbUZvckluY29uY2x1c2l2ZUpTQ1Jlc3Vs
dHMoQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0pOgorICAgIGRlZiBfY3JlYXRlX3Rhc2soc2Vs
ZiwgcGF0Y2gpOgorICAgICAgICB0YXNrID0gTW9ja0Vhcmx5V2FybmluZ1N5c3RlbVRhc2tGb3JJ
bmNvbmNsdXNpdmVKU0NSZXN1bHRzKHNlbGYsIHBhdGNoLCBzZWxmLl9vcHRpb25zLnJ1bl90ZXN0
cykKKyAgICAgICAgcmV0dXJuIHRhc2sKIAogCiBjbGFzcyBFYXJseVdhcm5pbmdTeXN0ZW1UZXN0
KFF1ZXVlc1Rlc3QpOgotICAgIGRlZiBfZGVmYXVsdF9leHBlY3RlZF9sb2dzKHNlbGYsIGV3cyk6
CisgICAgZGVmIF9kZWZhdWx0X2V4cGVjdGVkX2xvZ3Moc2VsZiwgZXdzLCBjb25jbHVzaXZlKToK
ICAgICAgICAgc3RyaW5nX3JlcGxhY2VtZW50cyA9IHsKICAgICAgICAgICAgICJuYW1lIjogZXdz
Lm5hbWUsCiAgICAgICAgICAgICAicG9ydCI6IGV3cy5wb3J0X25hbWUsCiAgICAgICAgICAgICAi
YXJjaGl0ZWN0dXJlIjogIiAtLWFyY2hpdGVjdHVyZT0lcyIgJSBld3MuYXJjaGl0ZWN0dXJlIGlm
IGV3cy5hcmNoaXRlY3R1cmUgZWxzZSAiIiwKICAgICAgICAgICAgICJidWlsZF9zdHlsZSI6IGV3
cy5idWlsZF9zdHlsZSgpLAorICAgICAgICAgICAgImdyb3VwIjogZXdzLmdyb3VwKCksCiAgICAg
ICAgIH0KICAgICAgICAgaWYgZXdzLnJ1bl90ZXN0czoKLSAgICAgICAgICAgIHJ1bl90ZXN0c19s
aW5lID0gIlJ1bm5pbmc6IHdlYmtpdC1wYXRjaCAtLXN0YXR1cy1ob3N0PWV4YW1wbGUuY29tIGJ1
aWxkLWFuZC10ZXN0IC0tbm8tY2xlYW4gLS1uby11cGRhdGUgLS10ZXN0IC0tbm9uLWludGVyYWN0
aXZlIC0tYnVpbGQtc3R5bGU9JShidWlsZF9zdHlsZSlzIC0tcG9ydD0lKHBvcnQpcyUoYXJjaGl0
ZWN0dXJlKXNcbiIgJSBzdHJpbmdfcmVwbGFjZW1lbnRzCisgICAgICAgICAgICBydW5fdGVzdHNf
bGluZSA9ICJSdW5uaW5nOiB3ZWJraXQtcGF0Y2ggLS1zdGF0dXMtaG9zdD1leGFtcGxlLmNvbSBi
dWlsZC1hbmQtdGVzdCAtLW5vLWNsZWFuIC0tbm8tdXBkYXRlIC0tdGVzdCAtLW5vbi1pbnRlcmFj
dGl2ZSAtLWJ1aWxkLXN0eWxlPSUoYnVpbGRfc3R5bGUpcyAtLWdyb3VwPSUoZ3JvdXApcyAtLXBv
cnQ9JShwb3J0KXMlKGFyY2hpdGVjdHVyZSlzXG4iICUgc3RyaW5nX3JlcGxhY2VtZW50cwogICAg
ICAgICBlbHNlOgogICAgICAgICAgICAgcnVuX3Rlc3RzX2xpbmUgPSAiIgogICAgICAgICBzdHJp
bmdfcmVwbGFjZW1lbnRzWydydW5fdGVzdHNfbGluZSddID0gcnVuX3Rlc3RzX2xpbmUKIAorICAg
ICAgICBpZiBjb25jbHVzaXZlOgorICAgICAgICAgICAgcmVzdWx0X2xpbmVzID0gIk1PQ0s6IHVw
ZGF0ZV9zdGF0dXM6ICUobmFtZSlzIFBhc3Ncbk1PQ0s6IHJlbGVhc2Vfd29ya19pdGVtOiAlKG5h
bWUpcyAxMDAwMFxuIiAlIHN0cmluZ19yZXBsYWNlbWVudHMKKyAgICAgICAgZWxzZToKKyAgICAg
ICAgICAgIHJlc3VsdF9saW5lcyA9ICJNT0NLOiByZWxlYXNlX2xvY2s6ICUobmFtZSlzIDEwMDAw
XG4iICUgc3RyaW5nX3JlcGxhY2VtZW50cworICAgICAgICBzdHJpbmdfcmVwbGFjZW1lbnRzWydy
ZXN1bHRfbGluZXMnXSA9IHJlc3VsdF9saW5lcworCiAgICAgICAgIGV4cGVjdGVkX2xvZ3MgPSB7
CiAgICAgICAgICAgICAiYmVnaW5fd29ya19xdWV1ZSI6IHNlbGYuX2RlZmF1bHRfYmVnaW5fd29y
a19xdWV1ZV9sb2dzKGV3cy5uYW1lKSwKICAgICAgICAgICAgICJwcm9jZXNzX3dvcmtfaXRlbSI6
ICIiIk1PQ0s6IHVwZGF0ZV9zdGF0dXM6ICUobmFtZSlzIFN0YXJ0ZWQgcHJvY2Vzc2luZyBwYXRj
aAogUnVubmluZzogd2Via2l0LXBhdGNoIC0tc3RhdHVzLWhvc3Q9ZXhhbXBsZS5jb20gY2xlYW4g
LS1wb3J0PSUocG9ydClzJShhcmNoaXRlY3R1cmUpcwogUnVubmluZzogd2Via2l0LXBhdGNoIC0t
c3RhdHVzLWhvc3Q9ZXhhbXBsZS5jb20gdXBkYXRlIC0tcG9ydD0lKHBvcnQpcyUoYXJjaGl0ZWN0
dXJlKXMKIFJ1bm5pbmc6IHdlYmtpdC1wYXRjaCAtLXN0YXR1cy1ob3N0PWV4YW1wbGUuY29tIGFw
cGx5LWF0dGFjaG1lbnQgLS1uby11cGRhdGUgLS1ub24taW50ZXJhY3RpdmUgMTAwMDAgLS1wb3J0
PSUocG9ydClzJShhcmNoaXRlY3R1cmUpcwotUnVubmluZzogd2Via2l0LXBhdGNoIC0tc3RhdHVz
LWhvc3Q9ZXhhbXBsZS5jb20gYnVpbGQgLS1uby1jbGVhbiAtLW5vLXVwZGF0ZSAtLWJ1aWxkLXN0
eWxlPSUoYnVpbGRfc3R5bGUpcyAtLXBvcnQ9JShwb3J0KXMlKGFyY2hpdGVjdHVyZSlzCi0lKHJ1
bl90ZXN0c19saW5lKXNNT0NLOiB1cGRhdGVfc3RhdHVzOiAlKG5hbWUpcyBQYXNzCi1NT0NLOiBy
ZWxlYXNlX3dvcmtfaXRlbTogJShuYW1lKXMgMTAwMDAKLSIiIiAlIHN0cmluZ19yZXBsYWNlbWVu
dHMsCitSdW5uaW5nOiB3ZWJraXQtcGF0Y2ggLS1zdGF0dXMtaG9zdD1leGFtcGxlLmNvbSBjaGVj
ay1wYXRjaC1yZWxldmFuY2UgLS1ncm91cD0lKGdyb3VwKXMgLS1wb3J0PSUocG9ydClzJShhcmNo
aXRlY3R1cmUpcworUnVubmluZzogd2Via2l0LXBhdGNoIC0tc3RhdHVzLWhvc3Q9ZXhhbXBsZS5j
b20gYnVpbGQgLS1uby1jbGVhbiAtLW5vLXVwZGF0ZSAtLWJ1aWxkLXN0eWxlPSUoYnVpbGRfc3R5
bGUpcyAtLWdyb3VwPSUoZ3JvdXApcyAtLXBvcnQ9JShwb3J0KXMlKGFyY2hpdGVjdHVyZSlzCisl
KHJ1bl90ZXN0c19saW5lKXMlKHJlc3VsdF9saW5lcylzIiIiICUgc3RyaW5nX3JlcGxhY2VtZW50
cywKICAgICAgICAgICAgICJoYW5kbGVfdW5leHBlY3RlZF9lcnJvciI6ICJNb2NrIGVycm9yIG1l
c3NhZ2VcbiIsCiAgICAgICAgICAgICAiaGFuZGxlX3NjcmlwdF9lcnJvciI6ICJTY3JpcHRFcnJv
ciBlcnJvciBtZXNzYWdlXG5cbk1PQ0sgb3V0cHV0XG4iLAogICAgICAgICB9CiAgICAgICAgIHJl
dHVybiBleHBlY3RlZF9sb2dzCiAKLSAgICBkZWYgX3Rlc3RfZXdzKHNlbGYsIGV3cyk6CisgICAg
ZGVmIF90ZXN0X2V3cyhzZWxmLCBld3MsIHJlc3VsdHNfYXJlX2NvbmNsdXNpdmU9VHJ1ZSk6CiAg
ICAgICAgIGV3cy5iaW5kX3RvX3Rvb2woTW9ja1Rvb2woKSkKICAgICAgICAgZXdzLmhvc3QgPSBN
b2NrSG9zdCgpCiAgICAgICAgIG9wdGlvbnMgPSBNb2NrKCkKICAgICAgICAgb3B0aW9ucy5wb3J0
ID0gTm9uZQogICAgICAgICBvcHRpb25zLnJ1bl90ZXN0cyA9IGV3cy5ydW5fdGVzdHMKLSAgICAg
ICAgc2VsZi5hc3NlcnRfcXVldWVfb3V0cHV0cyhld3MsIGV4cGVjdGVkX2xvZ3M9c2VsZi5fZGVm
YXVsdF9leHBlY3RlZF9sb2dzKGV3cyksIG9wdGlvbnM9b3B0aW9ucykKKyAgICAgICAgc2VsZi5h
c3NlcnRfcXVldWVfb3V0cHV0cyhld3MsIGV4cGVjdGVkX2xvZ3M9c2VsZi5fZGVmYXVsdF9leHBl
Y3RlZF9sb2dzKGV3cywgcmVzdWx0c19hcmVfY29uY2x1c2l2ZSksIG9wdGlvbnM9b3B0aW9ucykK
IAogICAgIGRlZiB0ZXN0X2V3c2VzKHNlbGYpOgogICAgICAgICBjbGFzc2VzID0gQWJzdHJhY3RF
YXJseVdhcm5pbmdTeXN0ZW0ubG9hZF9ld3NfY2xhc3NlcygpCkBAIC0xMDQsMyArMTQ0LDExIEBA
IE1PQ0s6IHJlbGVhc2Vfd29ya19pdGVtOiAlKG5hbWUpcyAxMDAwMAogICAgICAgICBzZWxmLm1h
eERpZmYgPSBOb25lCiAgICAgICAgIGZvciBld3NfY2xhc3MgaW4gY2xhc3NlczoKICAgICAgICAg
ICAgIHNlbGYuX3Rlc3RfZXdzKGV3c19jbGFzcygpKQorCisgICAgZGVmIHRlc3RfaW5jb25jbHVz
aXZlX2pzY190ZXN0X3Jlc3VsdHMoc2VsZik6CisgICAgICAgIGNsYXNzZXMgPSBNb2NrQWJzdHJh
Y3RFYXJseVdhcm5pbmdTeXN0ZW1Gb3JJbmNvbmNsdXNpdmVKU0NSZXN1bHRzLmxvYWRfZXdzX2Ns
YXNzZXMoKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoY2xhc3NlcykKKyAgICAgICAgc2VsZi5t
YXhEaWZmID0gTm9uZQorICAgICAgICB0ZXN0X2NsYXNzZXMgPSBmaWx0ZXIobGFtYmRhIHg6IHgu
cnVuX3Rlc3RzIGFuZCB4Lmdyb3VwID09ICJqc2MiLCBjbGFzc2VzKQorICAgICAgICBmb3IgZXdz
X2NsYXNzIGluIHRlc3RfY2xhc3NlczoKKyAgICAgICAgICAgIHNlbGYuX3Rlc3RfZXdzKGV3c19j
bGFzcygpLCBGYWxzZSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9j
b21tYW5kcy9xdWV1ZXMucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMv
cXVldWVzLnB5CmluZGV4IDFjNzFhYWNkNzUzMGRjNzI4ZjU1NDkwOWUyZDJiYmM3N2Q4ZDExY2Iu
LmZlMjEyN2NmZTI3NGVkZjA3NWVjZDJjZDIzOWI0NzBlZDgzMGY5N2EgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9xdWV1ZXMucHkKKysrIGIvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3F1ZXVlcy5weQpAQCAtMSw1ICsxLDUgQEAK
ICMgQ29weXJpZ2h0IChjKSAyMDA5IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0j
IENvcHlyaWdodCAoYykgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENv
cHlyaWdodCAoYykgMjAwOSwgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAj
CiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC02Miw2ICs2Miw3IEBAIGNsYXNzIEFi
c3RyYWN0UXVldWUoQ29tbWFuZCwgUXVldWVFbmdpbmVEZWxlZ2F0ZSk6CiAgICAgd2F0Y2hlcnMg
PSBbCiAgICAgXQogCisgICAgX3NraXBfc3RhdHVzID0gIlNraXAiCiAgICAgX3Bhc3Nfc3RhdHVz
ID0gIlBhc3MiCiAgICAgX2ZhaWxfc3RhdHVzID0gIkZhaWwiCiAgICAgX2Vycm9yX3N0YXR1cyA9
ICJFcnJvciIKQEAgLTI0NCw2ICsyNDUsMTAgQEAgY2xhc3MgQWJzdHJhY3RQYXRjaFF1ZXVlKEFi
c3RyYWN0UXVldWUpOgogICAgICAgICBzZWxmLl91cGRhdGVfc3RhdHVzKG1lc3NhZ2UsIHBhdGNo
KQogICAgICAgICBzZWxmLl9yZWxlYXNlX3dvcmtfaXRlbShwYXRjaCkKIAorICAgIGRlZiBfZGlk
X3NraXAoc2VsZiwgcGF0Y2gpOgorICAgICAgICBzZWxmLl91cGRhdGVfc3RhdHVzKHNlbGYuX3Nr
aXBfc3RhdHVzLCBwYXRjaCkKKyAgICAgICAgc2VsZi5fcmVsZWFzZV93b3JrX2l0ZW0ocGF0Y2gp
CisKICAgICBkZWYgX3VubG9ja19wYXRjaChzZWxmLCBwYXRjaCk6CiAgICAgICAgIHNlbGYuX3Rv
b2wuc3RhdHVzX3NlcnZlci5yZWxlYXNlX2xvY2soc2VsZi5uYW1lLCBwYXRjaCkKIApkaWZmIC0t
Z2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL19faW5pdF9fLnB5IGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL19faW5pdF9fLnB5CmluZGV4IDM1NmFjYWIw
M2FkODI3NGNlOWJkYTY4NTg4NjRmZjE5YjY0ZjRhMGEuLjZjOWMwOWFjNTJhMzg2YjlmMGNmMzYz
YjljMDNiYmFhNGMwMDM4NjEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9v
bC9zdGVwcy9fX2luaXRfXy5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3Rl
cHMvX19pbml0X18ucHkKQEAgLTEsNCArMSw1IEBACiAjIENvcHlyaWdodCAoQykgMjAxMCBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFy
ZQpAQCAtMzMsNiArMzQsNyBAQCBmcm9tIHdlYmtpdHB5LnRvb2wuc3RlcHMuYXBwbHlwYXRjaHdp
dGhsb2NhbGNvbW1pdCBpbXBvcnQgQXBwbHlQYXRjaFdpdGhMb2NhbENvbQogZnJvbSB3ZWJraXRw
eS50b29sLnN0ZXBzLmFwcGx5d2F0Y2hsaXN0IGltcG9ydCBBcHBseVdhdGNoTGlzdAogZnJvbSB3
ZWJraXRweS50b29sLnN0ZXBzLmF0dGFjaHRvYnVnIGltcG9ydCBBdHRhY2hUb0J1ZwogZnJvbSB3
ZWJraXRweS50b29sLnN0ZXBzLmJ1aWxkIGltcG9ydCBCdWlsZAorZnJvbSB3ZWJraXRweS50b29s
LnN0ZXBzLmNoZWNrcGF0Y2hyZWxldmFuY2UgaW1wb3J0IENoZWNrUGF0Y2hSZWxldmFuY2UKIGZy
b20gd2Via2l0cHkudG9vbC5zdGVwcy5jaGVja3N0eWxlIGltcG9ydCBDaGVja1N0eWxlCiBmcm9t
IHdlYmtpdHB5LnRvb2wuc3RlcHMuY2xlYW53b3JraW5nZGlyZWN0b3J5IGltcG9ydCBDbGVhbldv
cmtpbmdEaXJlY3RvcnkKIGZyb20gd2Via2l0cHkudG9vbC5zdGVwcy5jbG9zZWJ1ZyBpbXBvcnQg
Q2xvc2VCdWcKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9i
dWlsZC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9idWlsZC5weQppbmRl
eCBmNzRmZmNlNzA5NDFjNjFlNTk2NzkyZTRjNjBkY2Q3ZjhiNjVlOWVjLi42ZDY0OGUzNGZlM2E5
MjlhOGNhNmI3MWIwMmE3MGQ5YTg0MzI1ZDFhIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L3Rvb2wvc3RlcHMvYnVpbGQucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90
b29sL3N0ZXBzL2J1aWxkLnB5CkBAIC0xLDQgKzEsNSBAQAogIyBDb3B5cmlnaHQgKEMpIDIwMTAg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDE3IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cyBhcmUKQEAgLTQxLDI4ICs0MiwzNSBAQCBjbGFzcyBCdWlsZChBYnN0cmFjdFN0ZXApOgogICAg
ICAgICAgICAgT3B0aW9ucy5idWlsZCwKICAgICAgICAgICAgIE9wdGlvbnMucXVpZXQsCiAgICAg
ICAgICAgICBPcHRpb25zLmJ1aWxkX3N0eWxlLAorICAgICAgICAgICAgT3B0aW9ucy5ncm91cCwK
ICAgICAgICAgXQogCi0gICAgZGVmIGJ1aWxkKHNlbGYsIGJ1aWxkX3N0eWxlKToKKyAgICBkZWYg
YnVpbGQoc2VsZiwgYnVpbGRfc3R5bGUsIGdyb3VwKToKICAgICAgICAgZW52aXJvbm1lbnQgPSBz
ZWxmLl90b29sLmNvcHlfY3VycmVudF9lbnZpcm9ubWVudCgpCiAgICAgICAgIGVudmlyb25tZW50
LmRpc2FibGVfZ2NjX3NtYXJ0cXVvdGVzKCkKICAgICAgICAgZW52aXJvbm1lbnQuZGlzYWJsZV9q
aGJ1aWxkX1ZUMTAwX291dHB1dCgpCiAgICAgICAgIGVudiA9IGVudmlyb25tZW50LnRvX2RpY3Rp
b25hcnkoKQogCi0gICAgICAgIGJ1aWxkX3dlYmtpdF9jb21tYW5kID0gc2VsZi5fdG9vbC5kZXBy
ZWNhdGVkX3BvcnQoKS5idWlsZF93ZWJraXRfY29tbWFuZChidWlsZF9zdHlsZT1idWlsZF9zdHls
ZSkKKyAgICAgICAgaWYgZ3JvdXAgPT0gImpzYyI6CisgICAgICAgICAgICBidWlsZF9jb21tYW5k
ID0gc2VsZi5fdG9vbC5kZXByZWNhdGVkX3BvcnQoKS5idWlsZF9qc2NfY29tbWFuZChidWlsZF9z
dHlsZT1idWlsZF9zdHlsZSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGJ1aWxkX2NvbW1h
bmQgPSBzZWxmLl90b29sLmRlcHJlY2F0ZWRfcG9ydCgpLmJ1aWxkX3dlYmtpdF9jb21tYW5kKGJ1
aWxkX3N0eWxlPWJ1aWxkX3N0eWxlKQogCiAgICAgICAgIGlmIHNlbGYuX29wdGlvbnMuYXJjaGl0
ZWN0dXJlOgotICAgICAgICAgICAgYnVpbGRfd2Via2l0X2NvbW1hbmQgKz0gWydBUkNIUz0lcycg
JSBzZWxmLl9vcHRpb25zLmFyY2hpdGVjdHVyZV0KKyAgICAgICAgICAgIGJ1aWxkX2NvbW1hbmQg
Kz0gWydBUkNIUz0lcycgJSBzZWxmLl9vcHRpb25zLmFyY2hpdGVjdHVyZV0KIAotICAgICAgICBz
ZWxmLl90b29sLmV4ZWN1dGl2ZS5ydW5fYW5kX3Rocm93X2lmX2ZhaWwoYnVpbGRfd2Via2l0X2Nv
bW1hbmQsIHNlbGYuX29wdGlvbnMucXVpZXQsCisgICAgICAgIHNlbGYuX3Rvb2wuZXhlY3V0aXZl
LnJ1bl9hbmRfdGhyb3dfaWZfZmFpbChidWlsZF9jb21tYW5kLCBzZWxmLl9vcHRpb25zLnF1aWV0
LAogICAgICAgICAgICAgY3dkPXNlbGYuX3Rvb2wuc2NtKCkuY2hlY2tvdXRfcm9vdCwgZW52PWVu
dikKIAogICAgIGRlZiBydW4oc2VsZiwgc3RhdGUpOgogICAgICAgICBpZiBub3Qgc2VsZi5fb3B0
aW9ucy5idWlsZDoKICAgICAgICAgICAgIHJldHVybgogICAgICAgICBfbG9nLmluZm8oIkJ1aWxk
aW5nIFdlYktpdCIpCisKKyAgICAgICAgZ3JvdXAgPSBzZWxmLl9vcHRpb25zLmdyb3VwCisKICAg
ICAgICAgaWYgc2VsZi5fb3B0aW9ucy5idWlsZF9zdHlsZSA9PSAiYm90aCI6Ci0gICAgICAgICAg
ICBzZWxmLmJ1aWxkKCJkZWJ1ZyIpCi0gICAgICAgICAgICBzZWxmLmJ1aWxkKCJyZWxlYXNlIikK
KyAgICAgICAgICAgIHNlbGYuYnVpbGQoImRlYnVnIiwgZ3JvdXApCisgICAgICAgICAgICBzZWxm
LmJ1aWxkKCJyZWxlYXNlIiwgZ3JvdXApCiAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBzZWxm
LmJ1aWxkKHNlbGYuX29wdGlvbnMuYnVpbGRfc3R5bGUpCisgICAgICAgICAgICBzZWxmLmJ1aWxk
KHNlbGYuX29wdGlvbnMuYnVpbGRfc3R5bGUsIGdyb3VwKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS90b29sL3N0ZXBzL2NoZWNrcGF0Y2hyZWxldmFuY2UucHkgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvY2hlY2twYXRjaHJlbGV2YW5jZS5weQpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4xMDNlMTYzZDE4ZjE1ODFmZWVjMDk2NTg0MmQ0OTkwOWZiMDYxZjFmCi0tLSAvZGV2L251
bGwKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL2NoZWNrcGF0Y2hyZWxl
dmFuY2UucHkKQEAgLTAsMCArMSw3NCBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFy
ZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisjIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IK
KyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorIyBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorCitpbXBvcnQgbG9nZ2luZworaW1wb3J0IHJlCisKK2Zyb20gd2Via2l0cHkuY29t
bW9uLnN5c3RlbS5leGVjdXRpdmUgaW1wb3J0IFNjcmlwdEVycm9yCitmcm9tIHdlYmtpdHB5LnRv
b2wuc3RlcHMuYWJzdHJhY3RzdGVwIGltcG9ydCBBYnN0cmFjdFN0ZXAKK2Zyb20gd2Via2l0cHku
dG9vbC5zdGVwcy5vcHRpb25zIGltcG9ydCBPcHRpb25zCisKK19sb2cgPSBsb2dnaW5nLmdldExv
Z2dlcihfX25hbWVfXykKKworCitjbGFzcyBDaGVja1BhdGNoUmVsZXZhbmNlKEFic3RyYWN0U3Rl
cCk6CisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIG9wdGlvbnMoY2xzKToKKyAgICAgICAgcmV0
dXJuIEFic3RyYWN0U3RlcC5vcHRpb25zKCkgKyBbCisgICAgICAgICAgICBPcHRpb25zLmdyb3Vw
LAorICAgICAgICBdCisKKyAgICBqc2NfcGF0aHMgPSBbCisgICAgICAgICJKU1Rlc3RzLyIsCisg
ICAgICAgICJTb3VyY2UvSmF2YVNjcmlwdENvcmUvIiwKKyAgICAgICAgIlNvdXJjZS9XVEYvIgor
ICAgICAgICAiU291cmNlL2JtYWxsb2MvIiwKKyAgICBdCisKKyAgICBncm91cF90b19wYXRoc19t
YXBwaW5nID0geworICAgICAgICAnanNjJzoganNjX3BhdGhzLAorICAgIH0KKworICAgIGRlZiBf
Y2hhbmdlc19hcmVfcmVsZXZhbnQoc2VsZiwgY2hhbmdlZF9maWxlcyk6CisgICAgICAgICMgSW4g
dGhlIGRlZmF1bHQgY2FzZSwgYWxsIHBhdGNoZXMgYXJlIHJlbGV2YW50CisgICAgICAgIGlmIHNl
bGYuX29wdGlvbnMuZ3JvdXAgaXMgTm9uZToKKyAgICAgICAgICAgIHJldHVybiBUcnVlCisKKyAg
ICAgICAgcGF0dGVybnMgPSBzZWxmLmdyb3VwX3RvX3BhdGhzX21hcHBpbmdbc2VsZi5fb3B0aW9u
cy5ncm91cF0KKworICAgICAgICBmb3IgY2hhbmdlZF9maWxlIGluIGNoYW5nZWRfZmlsZXM6Cisg
ICAgICAgICAgICBmb3IgcGF0dGVybiBpbiBwYXR0ZXJuczoKKyAgICAgICAgICAgICAgICBpZiBy
ZS5zZWFyY2gocGF0dGVybiwgY2hhbmdlZF9maWxlLCByZS5JR05PUkVDQVNFKToKKyAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIFRydWUKKworICAgICAgICByZXR1cm4gRmFsc2UKKworICAgIGRl
ZiBydW4oc2VsZiwgc3RhdGUpOgorICAgICAgICBfbG9nLmluZm8oIkNoZWNraW5nIHJlbGV2YW5j
ZSBvZiBwYXRjaCIpCisKKyAgICAgICAgY2hhbmdlX2xpc3QgPSBzZWxmLl90b29sLnNjbSgpLmNo
YW5nZWRfZmlsZXMoKQorCisgICAgICAgIGlmIHNlbGYuX2NoYW5nZXNfYXJlX3JlbGV2YW50KGNo
YW5nZV9saXN0KToKKyAgICAgICAgICAgIHJldHVybiBUcnVlCisKKyAgICAgICAgX2xvZy5pbmZv
KCJUaGlzIHBhdGNoIGRvZXMgbm90IGhhdmUgcmVsZXZhbnQgY2hhbmdlcy4iKQorICAgICAgICBy
YWlzZSBTY3JpcHRFcnJvcihtZXNzYWdlPSJUaGlzIHBhdGNoIGRvZXMgbm90IGhhdmUgcmVsZXZh
bnQgY2hhbmdlcy4iKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0
ZXBzL29wdGlvbnMucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvb3B0aW9u
cy5weQppbmRleCAzZWY0N2QwMDhhNTllMDUwZDRjYTBjNDg3N2RkZDFhNjA3MzFhNDA5Li5mNWUw
ZGVmMzI3MTdlMzA2ZTYzMTY5ODQxMTEwYjI4OThiNzJhMWYxIDEwMDY0NAotLS0gYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvb3B0aW9ucy5weQorKysgYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L3Rvb2wvc3RlcHMvb3B0aW9ucy5weQpAQCAtMSw0ICsxLDUgQEAKICMgQ29weXJp
Z2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdo
dCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC00Niw2ICs0Nyw3IEBAIGNsYXNzIE9wdGlvbnMob2JqZWN0
KToKICAgICBlbWFpbCA9IG1ha2Vfb3B0aW9uKCItLWVtYWlsIiwgYWN0aW9uPSJzdG9yZSIsIHR5
cGU9InN0cmluZyIsIGRlc3Q9ImVtYWlsIiwgaGVscD0iRW1haWwgYWRkcmVzcyB0byB1c2UgaW4g
Q2hhbmdlTG9ncy4iKQogICAgIGZvcmNlX2NsZWFuID0gbWFrZV9vcHRpb24oIi0tZm9yY2UtY2xl
YW4iLCBhY3Rpb249InN0b3JlX3RydWUiLCBkZXN0PSJmb3JjZV9jbGVhbiIsIGRlZmF1bHQ9RmFs
c2UsIGhlbHA9IkNsZWFuIHdvcmtpbmcgZGlyZWN0b3J5IGJlZm9yZSBhcHBseWluZyBwYXRjaGVz
IChyZW1vdmVzIGxvY2FsIGNoYW5nZXMgYW5kIGNvbW1pdHMpIikKICAgICBnaXRfY29tbWl0ID0g
bWFrZV9vcHRpb24oIi1nIiwgIi0tZ2l0LWNvbW1pdCIsIGFjdGlvbj0ic3RvcmUiLCBkZXN0PSJn
aXRfY29tbWl0IiwgaGVscD0iT3BlcmF0ZSBvbiBhIGxvY2FsIGNvbW1pdC4gSWYgYSByYW5nZSwg
dGhlIGNvbW1pdHMgYXJlIHNxdWFzaGVkIGludG8gb25lLiA8cmVmPi4uLi4gaW5jbHVkZXMgdGhl
IHdvcmtpbmcgY29weSBjaGFuZ2VzLiBVUFNUUkVBTSBjYW4gYmUgdXNlZCBmb3IgdGhlIHVwc3Ry
ZWFtL3RyYWNraW5nIGJyYW5jaC4iKQorICAgIGdyb3VwID0gbWFrZV9vcHRpb24oIi0tZ3JvdXAi
LCBhY3Rpb249InN0b3JlIiwgZGVzdD0iZ3JvdXAiLCBkZWZhdWx0PU5vbmUsIGhlbHA9IiIpCiAg
ICAgbG9jYWxfY29tbWl0ID0gbWFrZV9vcHRpb24oIi0tbG9jYWwtY29tbWl0IiwgYWN0aW9uPSJz
dG9yZV90cnVlIiwgZGVzdD0ibG9jYWxfY29tbWl0IiwgZGVmYXVsdD1GYWxzZSwgaGVscD0iTWFr
ZSBhIGxvY2FsIGNvbW1pdCBmb3IgZWFjaCBhcHBsaWVkIHBhdGNoIikKICAgICBub25faW50ZXJh
Y3RpdmUgPSBtYWtlX29wdGlvbigiLS1ub24taW50ZXJhY3RpdmUiLCBhY3Rpb249InN0b3JlX3Ry
dWUiLCBkZXN0PSJub25faW50ZXJhY3RpdmUiLCBkZWZhdWx0PUZhbHNlLCBoZWxwPSJOZXZlciBw
cm9tcHQgdGhlIHVzZXIsIGZhaWwgYXMgZmFzdCBhcyBwb3NzaWJsZS4iKQogICAgIG9ic29sZXRl
X3BhdGNoZXMgPSBtYWtlX29wdGlvbigiLS1uby1vYnNvbGV0ZSIsIGFjdGlvbj0ic3RvcmVfZmFs
c2UiLCBkZXN0PSJvYnNvbGV0ZV9wYXRjaGVzIiwgZGVmYXVsdD1UcnVlLCBoZWxwPSJEbyBub3Qg
b2Jzb2xldGUgb2xkIHBhdGNoZXMgYmVmb3JlIHBvc3RpbmcgdGhpcyBvbmUuIikKZGlmZiAtLWdp
dCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9ydW50ZXN0cy5weSBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9ydW50ZXN0cy5weQppbmRleCA3NWQ3MmJjOWFk
MmY0ZTM2ZDQ1ZmRhYzkwZjE4MTk0ODFjZjAyODhiLi5iM2ZlYTllMDJiNmZhNTUyZTE0OWViOWJh
MGZmMGMwMDI5MjIzM2UzIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wv
c3RlcHMvcnVudGVzdHMucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBz
L3J1bnRlc3RzLnB5CkBAIC0xLDQgKzEsNSBAQAogIyBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUK
QEAgLTUzLDkgKzU0LDE0IEBAIGNsYXNzIFJ1blRlc3RzKEFic3RyYWN0U3RlcCk6CiAgICAgICAg
ICAgICBPcHRpb25zLml0ZXJhdGVfb25fbmV3X3Rlc3RzLAogICAgICAgICAgICAgT3B0aW9ucy5u
b25faW50ZXJhY3RpdmUsCiAgICAgICAgICAgICBPcHRpb25zLnF1aWV0LAorICAgICAgICAgICAg
T3B0aW9ucy5ncm91cCwKICAgICAgICAgXQogCiAgICAgZGVmIHJ1bihzZWxmLCBzdGF0ZSk6Cisg
ICAgICAgIGlmIHNlbGYuX29wdGlvbnMuZ3JvdXAgPT0gImpzYyI6CisgICAgICAgICAgICBzZWxm
Ll9ydW5famF2YXNjcmlwdGNvcmVfdGVzdHMoKQorICAgICAgICAgICAgcmV0dXJuCisKICAgICAg
ICAgaWYgc2VsZi5fb3B0aW9ucy5pdGVyYXRlX29uX25ld190ZXN0czoKICAgICAgICAgICAgIF9s
b2cuaW5mbygiUnVubmluZyBydW4td2Via2l0LXRlc3RzIG9uIG5ldyB0ZXN0cyIpCiAgICAgICAg
ICAgICBzZWxmLl9ydW5fd2Via2l0X3Rlc3RzKHNlbGYuX29wdGlvbnMuaXRlcmF0ZV9vbl9uZXdf
dGVzdHMpCkBAIC0xNDMsMyArMTQ5LDExIEBAIGNsYXNzIFJ1blRlc3RzKEFic3RyYWN0U3RlcCk6
CiAgICAgICAgICAgICBhcmdzLmFwcGVuZCgiLS1pdGVyYXRpb25zPSVkIiAlIGl0ZXJhdGVfb25f
bmV3X3Rlc3RzKQogCiAgICAgICAgIHNlbGYuX3Rvb2wuZXhlY3V0aXZlLnJ1bl9hbmRfdGhyb3df
aWZfZmFpbChhcmdzLCBjd2Q9c2VsZi5fdG9vbC5zY20oKS5jaGVja291dF9yb290KQorCisgICAg
ZGVmIF9ydW5famF2YXNjcmlwdGNvcmVfdGVzdHMoc2VsZik6CisgICAgICAgIGFyZ3MgPSBzZWxm
Ll90b29sLmRlcHJlY2F0ZWRfcG9ydCgpLnJ1bl9qYXZhc2NyaXB0Y29yZV90ZXN0c19jb21tYW5k
KHNlbGYuX29wdGlvbnMuYnVpbGRfc3R5bGUpCisKKyAgICAgICAgcmVzdWx0c19kaXJlY3Rvcnkg
PSBzZWxmLl90b29sLnBvcnRfZmFjdG9yeS5nZXQoKS5qc2NfcmVzdWx0c19kaXJlY3RvcnkoKQor
ICAgICAgICByZXN1bHRzX2ZpbGVfcGF0aCA9IHNlbGYuX3Rvb2wuZmlsZXN5c3RlbS5qb2luKHJl
c3VsdHNfZGlyZWN0b3J5LCAianNjX3Rlc3RfcmVzdWx0cy5qc29uIikKKyAgICAgICAgYXJncy5h
cHBlbmQoIi0tanNvbi1vdXRwdXQ9JXMiICUgcmVzdWx0c19maWxlX3BhdGgpCisgICAgICAgIHNl
bGYuX3Rvb2wuZXhlY3V0aXZlLnJ1bl9hbmRfdGhyb3dfaWZfZmFpbChhcmdzLCBjd2Q9c2VsZi5f
dG9vbC5zY20oKS5jaGVja291dF9yb290KQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS90b29sL3N0ZXBzL3J1bnRlc3RzX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS90b29sL3N0ZXBzL3J1bnRlc3RzX3VuaXR0ZXN0LnB5CmluZGV4IDMwMDA2ODE5MjAwYWQ5
MmQ4NjA5NjQyZThmODAyN2QyNDZkODc4NDkuLmQ0ZDk5NjQ2YzJmZjA1ZWNkZGNjOGQ0MWUyNzkz
ZjUwZmNiZGY0NjQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVw
cy9ydW50ZXN0c191bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wv
c3RlcHMvcnVudGVzdHNfdW5pdHRlc3QucHkKQEAgLTQwLDcgKzQwLDcgQEAgY2xhc3MgUnVuVGVz
dHNUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgdG9vbCA9IE1vY2tUb29sKGxvZ19l
eGVjdXRpdmU9VHJ1ZSkKICAgICAgICAgdG9vbC5fZGVwcmVjYXRlZF9wb3J0LnJ1bl9weXRob25f
dW5pdHRlc3RzX2NvbW1hbmQgPSBsYW1iZGE6IE5vbmUKICAgICAgICAgdG9vbC5fZGVwcmVjYXRl
ZF9wb3J0LnJ1bl9wZXJsX3VuaXR0ZXN0c19jb21tYW5kID0gbGFtYmRhOiBOb25lCi0gICAgICAg
IHN0ZXAgPSBSdW5UZXN0cyh0b29sLCBNb2NrT3B0aW9ucyh0ZXN0PVRydWUsIG5vbl9pbnRlcmFj
dGl2ZT1UcnVlLCBxdWlldD1GYWxzZSwgYnVpbGRfc3R5bGU9InJlbGVhc2UiLCBpdGVyYXRlX29u
X25ld190ZXN0cz0wKSkKKyAgICAgICAgc3RlcCA9IFJ1blRlc3RzKHRvb2wsIE1vY2tPcHRpb25z
KHRlc3Q9VHJ1ZSwgbm9uX2ludGVyYWN0aXZlPVRydWUsIHF1aWV0PUZhbHNlLCBidWlsZF9zdHls
ZT0icmVsZWFzZSIsIGl0ZXJhdGVfb25fbmV3X3Rlc3RzPTAsIGdyb3VwPU5vbmUpKQogCiAgICAg
ICAgIGlmIHN5cy5wbGF0Zm9ybSAhPSAiY3lnd2luIjoKICAgICAgICAgICAgIGV4cGVjdGVkX2xv
Z3MgPSAiIiJSdW5uaW5nIGJpbmRpbmdzIGdlbmVyYXRpb24gdGVzdHMKZGlmZiAtLWdpdCBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9zdGVwc191bml0dGVzdC5weSBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9zdGVwc191bml0dGVzdC5weQppbmRleCA3ZDk0
YTEzYjM0NjNkOThhNDRmOTQ5ZjgxNGNjNzEyMWMwNjhhYjVkLi44ZjY2N2ZhODFjYmQ4NDlhYzA0
OGNjZmYxOWQ4MmZkNDMwMDI2MjFiIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L3Rvb2wvc3RlcHMvc3RlcHNfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS90b29sL3N0ZXBzL3N0ZXBzX3VuaXR0ZXN0LnB5CkBAIC0xLDQgKzEsNSBAQAogIyBDb3B5cmln
aHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0
IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucyBhcmUKQEAgLTI4LDYgKzI5LDcgQEAKIAogaW1wb3J0IHVuaXR0ZXN0CiAK
K2Zyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5leGVjdXRpdmUgaW1wb3J0IFNjcmlwdEVycm9y
CiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0ub3V0cHV0Y2FwdHVyZSBpbXBvcnQgT3V0cHV0
Q2FwdHVyZQogZnJvbSB3ZWJraXRweS5jb21tb24uY29uZmlnLnBvcnRzIGltcG9ydCBEZXByZWNh
dGVkUG9ydAogZnJvbSB3ZWJraXRweS50b29sLm1vY2t0b29sIGltcG9ydCBNb2NrT3B0aW9ucywg
TW9ja1Rvb2wKQEAgLTM4LDYgKzQwLDcgQEAgZnJvbSB3ZWJraXRweS50b29sIGltcG9ydCBzdGVw
cwogY2xhc3MgU3RlcHNUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICBkZWYgX3N0ZXBfb3B0
aW9ucyhzZWxmKToKICAgICAgICAgb3B0aW9ucyA9IE1vY2tPcHRpb25zKCkKKyAgICAgICAgb3B0
aW9ucy5ncm91cCA9IE5vbmUKICAgICAgICAgb3B0aW9ucy5ub25faW50ZXJhY3RpdmUgPSBUcnVl
CiAgICAgICAgIG9wdGlvbnMucG9ydCA9ICdNT0NLIHBvcnQnCiAgICAgICAgIG9wdGlvbnMucXVp
ZXQgPSBUcnVlCkBAIC0xMTEsNyArMTE0LDcgQEAgTU9DSyBydW5fYW5kX3Rocm93X2lmX2ZhaWw6
IFsnVG9vbHMvU2NyaXB0cy90ZXN0LXdlYmtpdHB5J10sIGN3ZD0vbW9jay1jaGVja291dAogUnVu
bmluZyBQZXJsIHVuaXQgdGVzdHMKIE1PQ0sgcnVuX2FuZF90aHJvd19pZl9mYWlsOiBbJ1Rvb2xz
L1NjcmlwdHMvdGVzdC13ZWJraXRwZXJsJ10sIGN3ZD0vbW9jay1jaGVja291dAogUnVubmluZyBK
YXZhU2NyaXB0Q29yZSB0ZXN0cwotTU9DSyBydW5fYW5kX3Rocm93X2lmX2ZhaWw6IFsnVG9vbHMv
U2NyaXB0cy9ydW4tamF2YXNjcmlwdGNvcmUtdGVzdHMnXSwgY3dkPS9tb2NrLWNoZWNrb3V0CitN
T0NLIHJ1bl9hbmRfdGhyb3dfaWZfZmFpbDogWydUb29scy9TY3JpcHRzL3J1bi1qYXZhc2NyaXB0
Y29yZS10ZXN0cycsICctLW5vLWZhaWwtZmFzdCddLCBjd2Q9L21vY2stY2hlY2tvdXQKIFJ1bm5p
bmcgYmluZGluZ3MgZ2VuZXJhdGlvbiB0ZXN0cwogTU9DSyBydW5fYW5kX3Rocm93X2lmX2ZhaWw6
IFsnVG9vbHMvU2NyaXB0cy9ydW4tYmluZGluZ3MtdGVzdHMnXSwgY3dkPS9tb2NrLWNoZWNrb3V0
CiBSdW5uaW5nIHJ1bi13ZWJraXQtdGVzdHMKQEAgLTEzMywxMCArMTM2LDExMSBAQCBNT0NLIHJ1
bl9hbmRfdGhyb3dfaWZfZmFpbDogWydUb29scy9TY3JpcHRzL3Rlc3Qtd2Via2l0cHknXSwgY3dk
PS9tb2NrLWNoZWNrb3V0CiBSdW5uaW5nIFBlcmwgdW5pdCB0ZXN0cwogTU9DSyBydW5fYW5kX3Ro
cm93X2lmX2ZhaWw6IFsnVG9vbHMvU2NyaXB0cy90ZXN0LXdlYmtpdHBlcmwnXSwgY3dkPS9tb2Nr
LWNoZWNrb3V0CiBSdW5uaW5nIEphdmFTY3JpcHRDb3JlIHRlc3RzCi1NT0NLIHJ1bl9hbmRfdGhy
b3dfaWZfZmFpbDogWydUb29scy9TY3JpcHRzL3J1bi1qYXZhc2NyaXB0Y29yZS10ZXN0cyddLCBj
d2Q9L21vY2stY2hlY2tvdXQKK01PQ0sgcnVuX2FuZF90aHJvd19pZl9mYWlsOiBbJ1Rvb2xzL1Nj
cmlwdHMvcnVuLWphdmFzY3JpcHRjb3JlLXRlc3RzJywgJy0tbm8tZmFpbC1mYXN0J10sIGN3ZD0v
bW9jay1jaGVja291dAogUnVubmluZyBiaW5kaW5ncyBnZW5lcmF0aW9uIHRlc3RzCiBNT0NLIHJ1
bl9hbmRfdGhyb3dfaWZfZmFpbDogWydUb29scy9TY3JpcHRzL3J1bi1iaW5kaW5ncy10ZXN0cydd
LCBjd2Q9L21vY2stY2hlY2tvdXQKIFJ1bm5pbmcgcnVuLXdlYmtpdC10ZXN0cwogTU9DSyBydW5f
YW5kX3Rocm93X2lmX2ZhaWw6IFsnVG9vbHMvU2NyaXB0cy9ydW4td2Via2l0LXRlc3RzJywgJy0t
ZGVidWcnLCAnLS1xdWlldCddLCBjd2Q9L21vY2stY2hlY2tvdXQKICIiIgogICAgICAgICBPdXRw
dXRDYXB0dXJlKCkuYXNzZXJ0X291dHB1dHMoc2VsZiwgc3RlcC5ydW4sIFt7fV0sIGV4cGVjdGVk
X2xvZ3M9ZXhwZWN0ZWRfbG9ncykKKworICAgIGRlZiB0ZXN0X3J1bnRlc3RzX2pzYyhzZWxmKToK
KyAgICAgICAgbW9ja19vcHRpb25zID0gc2VsZi5fc3RlcF9vcHRpb25zKCkKKyAgICAgICAgbW9j
a19vcHRpb25zLm5vbl9pbnRlcmFjdGl2ZSA9IEZhbHNlCisgICAgICAgIG1vY2tfb3B0aW9ucy5i
dWlsZF9zdHlsZSA9ICJyZWxlYXNlIgorICAgICAgICBtb2NrX29wdGlvbnMuZ3JvdXAgPSAianNj
IgorICAgICAgICBzdGVwID0gc3RlcHMuUnVuVGVzdHMoTW9ja1Rvb2wobG9nX2V4ZWN1dGl2ZT1U
cnVlKSwgbW9ja19vcHRpb25zKQorICAgICAgICB0b29sID0gTW9ja1Rvb2wobG9nX2V4ZWN1dGl2
ZT1UcnVlKQorICAgICAgICAjIEZJWE1FOiBXZSBzaG91bGRuJ3QgdXNlIGEgcmVhbCBwb3J0LW9i
amVjdCBoZXJlLCBidXQgdGhlcmUgaXMgdG9vIG11Y2ggdG8gbW9jayBhdCB0aGUgbW9tZW50Lgor
ICAgICAgICB0b29sLl9kZXByZWNhdGVkX3BvcnQgPSBEZXByZWNhdGVkUG9ydCgpCisgICAgICAg
IHN0ZXAgPSBzdGVwcy5SdW5UZXN0cyh0b29sLCBtb2NrX29wdGlvbnMpCisgICAgICAgIGV4cGVj
dGVkX2xvZ3MgPSAiIiJNT0NLIHJ1bl9jb21tYW5kOiBbJ3BlcmwnLCAnVG9vbHMvU2NyaXB0cy93
ZWJraXQtYnVpbGQtZGlyZWN0b3J5JywgJy0tY29uZmlndXJhdGlvbicsICctLXJlbGVhc2UnLCAn
LS1tYWMnXSwgY3dkPS9tb2NrLWNoZWNrb3V0CitNT0NLIHJ1bl9hbmRfdGhyb3dfaWZfZmFpbDog
WydUb29scy9TY3JpcHRzL3J1bi1qYXZhc2NyaXB0Y29yZS10ZXN0cycsICctLW5vLWZhaWwtZmFz
dCcsICctLXJlbGVhc2UnLCAnLS1qc29uLW91dHB1dD0vTU9DSyBvdXRwdXQgb2YgY2hpbGQgcHJv
Y2Vzcy9qc2NfdGVzdF9yZXN1bHRzLmpzb24nXSwgY3dkPS9tb2NrLWNoZWNrb3V0CisiIiIKKyAg
ICAgICAgT3V0cHV0Q2FwdHVyZSgpLmFzc2VydF9vdXRwdXRzKHNlbGYsIHN0ZXAucnVuLCBbe31d
LCBleHBlY3RlZF9sb2dzPWV4cGVjdGVkX2xvZ3MpCisKKyAgICBkZWYgdGVzdF9ydW50ZXN0c19q
c2NfZGVidWcoc2VsZik6CisgICAgICAgIG1vY2tfb3B0aW9ucyA9IHNlbGYuX3N0ZXBfb3B0aW9u
cygpCisgICAgICAgIG1vY2tfb3B0aW9ucy5ub25faW50ZXJhY3RpdmUgPSBGYWxzZQorICAgICAg
ICBtb2NrX29wdGlvbnMuYnVpbGRfc3R5bGUgPSAiZGVidWciCisgICAgICAgIG1vY2tfb3B0aW9u
cy5ncm91cCA9ICJqc2MiCisgICAgICAgIHRvb2wgPSBNb2NrVG9vbChsb2dfZXhlY3V0aXZlPVRy
dWUpCisgICAgICAgICMgRklYTUU6IFdlIHNob3VsZG4ndCB1c2UgYSByZWFsIHBvcnQtb2JqZWN0
IGhlcmUsIGJ1dCB0aGVyZSBpcyB0b28gbXVjaCB0byBtb2NrIGF0IHRoZSBtb21lbnQuCisgICAg
ICAgIHRvb2wuX2RlcHJlY2F0ZWRfcG9ydCA9IERlcHJlY2F0ZWRQb3J0KCkKKyAgICAgICAgc3Rl
cCA9IHN0ZXBzLlJ1blRlc3RzKHRvb2wsIG1vY2tfb3B0aW9ucykKKyAgICAgICAgZXhwZWN0ZWRf
bG9ncyA9ICIiIk1PQ0sgcnVuX2NvbW1hbmQ6IFsncGVybCcsICdUb29scy9TY3JpcHRzL3dlYmtp
dC1idWlsZC1kaXJlY3RvcnknLCAnLS1jb25maWd1cmF0aW9uJywgJy0tcmVsZWFzZScsICctLW1h
YyddLCBjd2Q9L21vY2stY2hlY2tvdXQKK01PQ0sgcnVuX2FuZF90aHJvd19pZl9mYWlsOiBbJ1Rv
b2xzL1NjcmlwdHMvcnVuLWphdmFzY3JpcHRjb3JlLXRlc3RzJywgJy0tbm8tZmFpbC1mYXN0Jywg
Jy0tZGVidWcnLCAnLS1qc29uLW91dHB1dD0vTU9DSyBvdXRwdXQgb2YgY2hpbGQgcHJvY2Vzcy9q
c2NfdGVzdF9yZXN1bHRzLmpzb24nXSwgY3dkPS9tb2NrLWNoZWNrb3V0CisiIiIKKyAgICAgICAg
T3V0cHV0Q2FwdHVyZSgpLmFzc2VydF9vdXRwdXRzKHNlbGYsIHN0ZXAucnVuLCBbe31dLCBleHBl
Y3RlZF9sb2dzPWV4cGVjdGVkX2xvZ3MpCisKKyAgICBkZWYgdGVzdF9idWlsZF9qc2NfZGVidWco
c2VsZik6CisgICAgICAgIG1vY2tfb3B0aW9ucyA9IHNlbGYuX3N0ZXBfb3B0aW9ucygpCisgICAg
ICAgIG1vY2tfb3B0aW9ucy5ub25faW50ZXJhY3RpdmUgPSBGYWxzZQorICAgICAgICBtb2NrX29w
dGlvbnMuYnVpbGRfc3R5bGUgPSAiZGVidWciCisgICAgICAgIG1vY2tfb3B0aW9ucy5idWlsZCA9
IFRydWUKKyAgICAgICAgbW9ja19vcHRpb25zLmFyY2hpdGVjdHVyZSA9IFRydWUKKyAgICAgICAg
bW9ja19vcHRpb25zLmdyb3VwID0gImpzYyIKKyAgICAgICAgdG9vbCA9IE1vY2tUb29sKGxvZ19l
eGVjdXRpdmU9VHJ1ZSkKKyAgICAgICAgIyBGSVhNRTogV2Ugc2hvdWxkbid0IHVzZSBhIHJlYWwg
cG9ydC1vYmplY3QgaGVyZSwgYnV0IHRoZXJlIGlzIHRvbyBtdWNoIHRvIG1vY2sgYXQgdGhlIG1v
bWVudC4KKyAgICAgICAgdG9vbC5fZGVwcmVjYXRlZF9wb3J0ID0gRGVwcmVjYXRlZFBvcnQoKQor
ICAgICAgICBzdGVwID0gc3RlcHMuQnVpbGQodG9vbCwgbW9ja19vcHRpb25zKQorICAgICAgICBl
eHBlY3RlZF9sb2dzID0gIiIiQnVpbGRpbmcgV2ViS2l0CitNT0NLIHJ1bl9hbmRfdGhyb3dfaWZf
ZmFpbDogWydUb29scy9TY3JpcHRzL2J1aWxkLWpzYycsICctLWRlYnVnJywgJ0FSQ0hTPVRydWUn
XSwgY3dkPS9tb2NrLWNoZWNrb3V0LCBlbnY9eydMQ19BTEwnOiAnQycsICdURVJNJzogJ25vbmUn
LCAnTU9DS19FTlZJUk9OX0NPUFknOiAnMSd9CisiIiIKKyAgICAgICAgT3V0cHV0Q2FwdHVyZSgp
LmFzc2VydF9vdXRwdXRzKHNlbGYsIHN0ZXAucnVuLCBbe31dLCBleHBlY3RlZF9sb2dzPWV4cGVj
dGVkX2xvZ3MpCisKKyAgICBkZWYgdGVzdF9idWlsZF9qc2Moc2VsZik6CisgICAgICAgIG1vY2tf
b3B0aW9ucyA9IHNlbGYuX3N0ZXBfb3B0aW9ucygpCisgICAgICAgIG1vY2tfb3B0aW9ucy5ub25f
aW50ZXJhY3RpdmUgPSBGYWxzZQorICAgICAgICBtb2NrX29wdGlvbnMuYnVpbGRfc3R5bGUgPSAi
cmVsZWFzZSIKKyAgICAgICAgbW9ja19vcHRpb25zLmJ1aWxkID0gVHJ1ZQorICAgICAgICBtb2Nr
X29wdGlvbnMuYXJjaGl0ZWN0dXJlID0gVHJ1ZQorICAgICAgICBtb2NrX29wdGlvbnMuZ3JvdXAg
PSAianNjIgorICAgICAgICB0b29sID0gTW9ja1Rvb2wobG9nX2V4ZWN1dGl2ZT1UcnVlKQorICAg
ICAgICAjIEZJWE1FOiBXZSBzaG91bGRuJ3QgdXNlIGEgcmVhbCBwb3J0LW9iamVjdCBoZXJlLCBi
dXQgdGhlcmUgaXMgdG9vIG11Y2ggdG8gbW9jayBhdCB0aGUgbW9tZW50LgorICAgICAgICB0b29s
Ll9kZXByZWNhdGVkX3BvcnQgPSBEZXByZWNhdGVkUG9ydCgpCisgICAgICAgIHN0ZXAgPSBzdGVw
cy5CdWlsZCh0b29sLCBtb2NrX29wdGlvbnMpCisgICAgICAgIGV4cGVjdGVkX2xvZ3MgPSAiIiJC
dWlsZGluZyBXZWJLaXQKK01PQ0sgcnVuX2FuZF90aHJvd19pZl9mYWlsOiBbJ1Rvb2xzL1Njcmlw
dHMvYnVpbGQtanNjJywgJy0tcmVsZWFzZScsICdBUkNIUz1UcnVlJ10sIGN3ZD0vbW9jay1jaGVj
a291dCwgZW52PXsnTENfQUxMJzogJ0MnLCAnVEVSTSc6ICdub25lJywgJ01PQ0tfRU5WSVJPTl9D
T1BZJzogJzEnfQorIiIiCisgICAgICAgIE91dHB1dENhcHR1cmUoKS5hc3NlcnRfb3V0cHV0cyhz
ZWxmLCBzdGVwLnJ1biwgW3t9XSwgZXhwZWN0ZWRfbG9ncz1leHBlY3RlZF9sb2dzKQorCisgICAg
ZGVmIHRlc3RfcGF0Y2hfcmVsZXZhbnQoc2VsZik6CisgICAgICAgIHNlbGYubWF4RGlmZiA9IE5v
bmUKKyAgICAgICAgbW9ja19vcHRpb25zID0gc2VsZi5fc3RlcF9vcHRpb25zKCkKKyAgICAgICAg
dG9vbCA9IE1vY2tUb29sKGxvZ19leGVjdXRpdmU9VHJ1ZSkKKyAgICAgICAgdG9vbC5zY20oKS5f
bW9ja0NoYW5nZWRGaWxlcyA9IFsiSlNUZXN0cy9Nb2NrRmlsZTEiLCAiQ2hhbmdlTG9nIl0KKyAg
ICAgICAgIyBGSVhNRTogV2Ugc2hvdWxkbid0IHVzZSBhIHJlYWwgcG9ydC1vYmplY3QgaGVyZSwg
YnV0IHRoZXJlIGlzIHRvbyBtdWNoIHRvIG1vY2sgYXQgdGhlIG1vbWVudC4KKyAgICAgICAgdG9v
bC5fZGVwcmVjYXRlZF9wb3J0ID0gRGVwcmVjYXRlZFBvcnQoKQorICAgICAgICBzdGVwID0gc3Rl
cHMuQ2hlY2tQYXRjaFJlbGV2YW5jZSh0b29sLCBtb2NrX29wdGlvbnMpCisgICAgICAgIGV4cGVj
dGVkX2xvZ3MgPSAiIiJDaGVja2luZyByZWxldmFuY2Ugb2YgcGF0Y2gKKyIiIgorICAgICAgICBP
dXRwdXRDYXB0dXJlKCkuYXNzZXJ0X291dHB1dHMoc2VsZiwgc3RlcC5ydW4sIFt7fV0sIGV4cGVj
dGVkX2xvZ3M9ZXhwZWN0ZWRfbG9ncykKKworICAgIGRlZiB0ZXN0X3BhdGNoX3JlbGV2YW50X2pz
YyhzZWxmKToKKyAgICAgICAgc2VsZi5tYXhEaWZmID0gTm9uZQorICAgICAgICBtb2NrX29wdGlv
bnMgPSBzZWxmLl9zdGVwX29wdGlvbnMoKQorICAgICAgICBtb2NrX29wdGlvbnMuZ3JvdXAgPSAi
anNjIgorICAgICAgICB0b29sID0gTW9ja1Rvb2wobG9nX2V4ZWN1dGl2ZT1UcnVlKQorICAgICAg
ICB0b29sLnNjbSgpLl9tb2NrQ2hhbmdlZEZpbGVzID0gWyJKU1Rlc3RzL01vY2tGaWxlMSIsICJD
aGFuZ2VMb2ciXQorICAgICAgICAjIEZJWE1FOiBXZSBzaG91bGRuJ3QgdXNlIGEgcmVhbCBwb3J0
LW9iamVjdCBoZXJlLCBidXQgdGhlcmUgaXMgdG9vIG11Y2ggdG8gbW9jayBhdCB0aGUgbW9tZW50
LgorICAgICAgICB0b29sLl9kZXByZWNhdGVkX3BvcnQgPSBEZXByZWNhdGVkUG9ydCgpCisgICAg
ICAgIHN0ZXAgPSBzdGVwcy5DaGVja1BhdGNoUmVsZXZhbmNlKHRvb2wsIG1vY2tfb3B0aW9ucykK
KyAgICAgICAgZXhwZWN0ZWRfbG9ncyA9ICIiIkNoZWNraW5nIHJlbGV2YW5jZSBvZiBwYXRjaAor
IiIiCisgICAgICAgIE91dHB1dENhcHR1cmUoKS5hc3NlcnRfb3V0cHV0cyhzZWxmLCBzdGVwLnJ1
biwgW3t9XSwgZXhwZWN0ZWRfbG9ncz1leHBlY3RlZF9sb2dzKQorCisgICAgZGVmIHRlc3RfcGF0
Y2hfbm90X3JlbGV2YW50X2pzYyhzZWxmKToKKyAgICAgICAgc2VsZi5tYXhEaWZmID0gTm9uZQor
ICAgICAgICBtb2NrX29wdGlvbnMgPSBzZWxmLl9zdGVwX29wdGlvbnMoKQorICAgICAgICBtb2Nr
X29wdGlvbnMuZ3JvdXAgPSAianNjIgorICAgICAgICB0b29sID0gTW9ja1Rvb2wobG9nX2V4ZWN1
dGl2ZT1UcnVlKQorICAgICAgICB0b29sLnNjbSgpLl9tb2NrQ2hhbmdlZEZpbGVzID0gWyJUb29s
cy9DaGFuZ2VMb2ciLCAiVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3N0ZXBzX3Vu
aXR0ZXN0LnB5Il0KKyAgICAgICAgIyBGSVhNRTogV2Ugc2hvdWxkbid0IHVzZSBhIHJlYWwgcG9y
dC1vYmplY3QgaGVyZSwgYnV0IHRoZXJlIGlzIHRvbyBtdWNoIHRvIG1vY2sgYXQgdGhlIG1vbWVu
dC4KKyAgICAgICAgdG9vbC5fZGVwcmVjYXRlZF9wb3J0ID0gRGVwcmVjYXRlZFBvcnQoKQorICAg
ICAgICBzdGVwID0gc3RlcHMuQ2hlY2tQYXRjaFJlbGV2YW5jZSh0b29sLCBtb2NrX29wdGlvbnMp
CisgICAgICAgIGV4cGVjdGVkX2xvZ3MgPSAiIiJDaGVja2luZyByZWxldmFuY2Ugb2YgcGF0Y2gK
K1RoaXMgcGF0Y2ggZG9lcyBub3QgaGF2ZSByZWxldmFudCBjaGFuZ2VzLgorIiIiCisgICAgICAg
IHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoU2NyaXB0RXJyb3IpOgorICAgICAgICAgICAgT3V0cHV0
Q2FwdHVyZSgpLmFzc2VydF9vdXRwdXRzKHNlbGYsIHN0ZXAucnVuLCBbe31dLCBleHBlY3RlZF9s
b2dzPWV4cGVjdGVkX2xvZ3MpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>302000</attachid>
            <date>2017-02-17 15:32:15 -0800</date>
            <delta_ts>2017-02-17 15:32:15 -0800</delta_ts>
            <desc>Screenshot - patch not relevant</desc>
            <filename>patch_not_relevant_error.png</filename>
            <type>image/png</type>
            <size>69336</size>
            <attacher name="Aakash Jain">aakash_jain</attacher>
            
              <data encoding="base64">iVBORw0KGgoAAAANSUhEUgAABEIAAAEjCAYAAAA2UqQhAAAKCmlDQ1BJQ0MgUHJvZmlsZQAASImF
lndUVNcWxs+90xtthqH33jsMIL036VVUhgGGLgxVREUkqEBEEREBJSChKhgNNRZEFAtBQAELmkGC
gPIMFkAF5V0giUneW+/tWWed3/pmn+/uOfPH/QAguTITEmJhPgDi4pM5Xg7W0gGBQdK4CQABNOAD
eoCXyUpKsPLwcAVI/bH/vRZHkW6k7musef3n9/+z+MPCk1gAQB4IM1gJnGSEDyLsk5acsMbjCNM4
yFAIz68xe51h9BqHbrDweo+Plw3C6gDgyUwmhw0AkYHo0qksNuJDDEBYOz4sKh7hNX9zViQzDOFb
CKtHxKakI/x+rScubgeik+QRVg79iyf7b/6hf/ozmew/OS42hfX771q7EXJ4vK83sosiSxxEAE0Q
C1JAOpAGCYADdiBKFKKEI3f/388x1s/ZIJ0JYCdyIgqwQSRIRs7b/8XLe90pGaQBJtITjiiuyMdm
7X/csHxHX3eF6He+aondABjnISL7q8aUA6DzBQDUxa+a3FtknCMAXB5kpXBSN7S1qwcYQAS8gAZE
gCSQA8pAA+gCQ2AKLIEdcAbuwAcEgm2Ahcwbh0yVBjLBPpAL8sERcByUgUpwBtSDc+ACaAeXwDVw
E9wFg2AEPAFcMAVegXmwCJYhCMJBFIgKiUBSkAKkBulCDMgcsoNcIS8oEAqB2FA8lAJlQvuhfKgI
KoOqoAboB6gTugbdhoagR9AENAu9hT7BKJgM02AJWBHWghmwFewC+8BbYTacCGfAOfBhuBSuhs/C
bfA1+C48AnPhV/ACCqBIKDpKBqWBYqBsUO6oIFQEioPag8pDlaCqUc2oLlQf6j6Ki5pDfURj0VS0
NFoDbYp2RPuiWehE9B50AboMXY9uQ/ei76Mn0PPoLxgKRhyjhjHBOGECMGxMGiYXU4KpxbRibmBG
MFOYRSwWS8cqYY2wjthAbDR2F7YAewrbgu3GDmEnsQs4HE4Ep4Yzw7njmLhkXC7uJO4s7ipuGDeF
+4An4aXwunh7fBA+Hp+NL8E34q/gh/HT+GUCH0GBYEJwJ4QRdhIKCTWELsI9whRhmchPVCKaEX2I
0cR9xFJiM/EGcZz4jkQiyZKMSZ6kKFIWqZR0nnSLNEH6SBYgq5JtyMHkFPJhch25m/yI/I5CoShS
LClBlGTKYUoD5TrlGeUDD5VHk8eJJ4xnL085TxvPMM9rXgKvAq8V7zbeDN4S3ou893jn+Ah8inw2
fEy+PXzlfJ18Y3wL/FR+HX53/jj+Av5G/tv8MwI4AUUBO4EwgRyBMwLXBSapKKoc1YbKou6n1lBv
UKdoWJoSzYkWTcunnaMN0OYFBQT1Bf0E0wXLBS8LcukouiLdiR5LL6RfoI/SPwlJCFkJhQsdEmoW
GhZaEhYTthQOF84TbhEeEf4kIi1iJxIjclSkXeSpKFpUVdRTNE30tOgN0TkxmpipGEssT+yC2GNx
WFxV3Et8l/gZ8X7xBQlJCQeJBImTEtcl5iTpkpaS0ZLFklckZ6WoUuZSUVLFUlelXkoLSltJx0qX
SvdKz8uIyzjKpMhUyQzILMsqyfrKZsu2yD6VI8ox5CLkiuV65OblpeTd5DPlm+QfKxAUGAqRCicU
+hSWFJUU/RUPKLYrzigJKzkpZSg1KY0rU5QtlBOVq5UfqGBVGCoxKqdUBlVhVQPVSNVy1XtqsJqh
WpTaKbUhdYy6sXq8erX6mAZZw0ojVaNJY0KTrumqma3ZrvlaS14rSOuoVp/WF20D7VjtGu0nOgI6
zjrZOl06b3VVdVm65boP9Ch69np79Tr03uir6Yfrn9Z/aEA1cDM4YNBj8NnQyJBj2Gw4ayRvFGJU
YTTGoDE8GAWMW8YYY2vjvcaXjD+aGJokm1ww+c1UwzTGtNF0ZpPSpvBNNZsmzWTNmGZVZlxzafMQ
8+/MuRYyFkyLaovnlnKWYZa1ltNWKlbRVmetXltrW3OsW62XbExsdtt026JsHWzzbAfsBOx87crs
ntnL2rPtm+znHQwcdjl0O2IcXRyPOo45STixnBqc5p2NnHc797qQXbxdylyeu6q6cly73GA3Z7dj
buObFTbHb253B+5O7sfcn3ooeSR6/OSJ9fTwLPd84aXjlenV50313u7d6L3oY+1T6PPEV9k3xbfH
j9cv2K/Bb8nf1r/InxugFbA74G6gaGBUYEcQLsgvqDZoYYvdluNbpoINgnODR7cqbU3fenub6LbY
bZe3825nbr8YggnxD2kMWWG6M6uZC6FOoRWh8ywb1gnWqzDLsOKw2XCz8KLw6QiziKKIGbYZ+xh7
NtIisiRyLsomqizqTbRjdGX0Uox7TF3Maqx/bEscPi4krjNeID4mvneH5I70HUMJagm5CdxEk8Tj
ifMcF05tEpS0NakjmYa8PPtTlFO+SZlINU8tT/2Q5pd2MZ0/PT69f6fqzkM7pzPsM77fhd7F2tWT
KZO5L3Nit9Xuqj3QntA9PXvl9ubsncpyyKrfR9wXs+/nbO3souz3+/33d+VI5GTlTH7j8E1TLk8u
J3fsgOmByoPog1EHBw7pHTp56EteWN6dfO38kvyVAlbBnW91vi39dvVwxOGBQsPC00ewR+KPjB61
OFpfxF+UUTR5zO1YW7F0cV7x++Pbj98u0S+pPEE8kXKCW+pa2nFS/uSRkytlkWUj5dblLRXiFYcq
lk6FnRo+bXm6uVKiMr/y03dR3z2scqhqq1asLjmDPZN65kWNX03f94zvG2pFa/NrP9fF13Hrvep7
G4waGhrFGwub4KaUptmzwWcHz9me62jWaK5qobfknwfnU86//CHkh9ELLhd6LjIuNv+o8GNFK7U1
rw1q29k23x7Zzu0I7BjqdO7s6TLtav1J86e6SzKXyi8LXi68QrySc2X1asbVhe6E7rlr7GuTPdt7
nlwPuP6g17N34IbLjVs37W9e77Pqu3rL7Nal2ya3O+8w7rTfNbzb1m/Q3/qzwc+tA4YDbfeM7nUM
Gg92DW0aujJsMXztvu39mw+cHtwd2TwyNOo7+nAseIz7MOzhzKPYR28epz5efpI1jhnPe8r3tOSZ
+LPqX1R+aeEaci9P2E70P/d+/mSSNfnq16RfV6ZyXlBelExLTTfM6M5cmrWfHXy55eXUq4RXy3O5
/+L/V8Vr5dc//mb5W/98wPzUG86b1bcF70Te1b3Xf9+z4LHwbDFucXkp74PIh/qPjI99n/w/TS+n
reBWSj+rfO764vJlfDVudTWByWGuRwEUsuCICADe1gFACUSywyCShXg2MtfveQb6S7L5g8Hn9q+8
YruRy9bLEIA6SwB8swBwRTLKaWQpIExG9rWI6GMJYD29P9fvlRShp7vxDDIHiSYfVlffSQCA60Ke
w1ldXT61uvq5Bhn2EQDdif93tn/wRh5cKyySkouURPhp+KGtL7LAP+rfiV6/q0Lv9roAAAGeaVRY
dFhNTDpjb20uYWRvYmUueG1wAAAAAAA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEv
IiB4OnhtcHRrPSJYTVAgQ29yZSA1LjQuMCI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDov
L3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3Jp
cHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9i
ZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjEwOTA8L2V4
aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFlEaW1lbnNpb24+MjkxPC9l
eGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJE
Rj4KPC94OnhtcG1ldGE+Cg+nksEAAEAASURBVHgB7J0LXM/X/8df49uVFLkTIjS3jPyNMWTzw2Zk
w0+0MSaXH3Pb/MxttM2wYUyT2ZaZbOayGPm5l00MTQpJVymVkqT6pm/2f5/P53utb9++ETPe51Hf
7+d7PufyPs9zPp/POe/zPufzzF/kwI4JMAEmwASYABNgAkyACTABJsAEmAATYAJPAYEqT0EZuYhM
gAkwASbABJgAE2ACTIAJMAEmwASYABOQCLAihBsCE2ACTIAJMAEmwASYABNgAkyACTABJvDUEGBF
yFNT1VxQJsAEmAATYAJMgAkwASbABJgAE2ACTIAVIdwGmAATYAJMgAkwASbABJgAE2ACTIAJMIGn
hgArQp6aquaCMgEmwASYABNgAkyACTABJsAEmAATYAKsCOE2wASYABNgAkyACTABJsAEmAATYAJM
gAk8NQRYEfLUVDUXlAkwASbABJgAE2ACTIAJMAEmwASYABNgRQi3ASbABJgAE2ACTIAJMAEmwASY
ABNgAkzgqSHAipCnpqq5oEyACTABJsAEmAATYAJMgAkwASbABJgAK0K4DTABJsAEmAATYAJMgAkw
ASbABJgAE2ACTw0BVoQ8NVXNBWUCTIAJMAEmwASYABNgAkyACTABJsAEWBHCbYAJMAEmwASYABNg
AkyACTABJsAEmAATeGoIsCLkqalqLigTYAJMgAkwASbABJgAE2ACTIAJMAEmwIoQbgNMgAkwASbA
BJgAE2ACTIAJMAEmwASYwFNDgBUhT01Vc0GZABNgAkyACTABJsAEmAATYAJMgAkwAVaEcBtgAkyA
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
rFsGtQTmdhe6I7yKcWD3fLz1yRMY2L2FXq9EC69IgARIgARIgAQqKgGDJsne+NmzZyMmJsY+i9ck
QAIkQAIkQAI3KQH1NUG9CgoKkJeXh6NHjyI4OPiq0DCJPPhUhbe7/VeRQpjyTPDw9dX3FrEqUkfg
5opXxdfX25qlfxZJvnKueNh+2inEnqWzsCuwO55qWR9ubicwrnoTVIs7hhfv8LW0LZS+FMJbZNma
6SWudTso5A0J3OQEkpOTERQUJP8WfeHp6SnLzwz66ybHwu6TAAlUMAKOf/8rmPE0lwRIgARIgARI
oOIS8JaJlOxC6tQBD3FQWB0WJUWau7dMvErurVfuku+YPHBLcDVEtW2KodaCXtOQGF5N7sz7hkDc
H76+rr4CudZtFcNPEiABEiABEiCBG4OAq28BN0bP2AsSIAESIAESIIGbkkCNu/ojy9hdjs81ic/D
G7VrKA+K1QlyUyJhp0mABEiABEiABOwI0BFiB4OXJEACJEACJEACNwYBzd0XtWu7CCG5MbrHXpAA
CZAACZAACVwBAZ4acwXw2JQESIAESIAESIAESIAESIAESIAESKBiEaAjpGKNF60lARIgARIgARIg
ARIgARIgARIgARK4AgJ0hFwBPDYlARIgARIgARIgARIgARIgARIgARKoWAToCKlY40VrSYAESIAE
SIAESIAESIAESIAESIAEroAAHSFXAI9NSYAESIAESIAESIAESIAESIAESIAEKhYBOkIq1njRWhIg
ARIgARIgARIgARIgARIgARIggSsgQEfIFcBjUxIgARIgARIgARIgARIgARIgARIggYpFgI6QijVe
tJYESIAESIAESIAESIAESIAESIAESOAKCNARcgXw2JQESIAESIAESIAESIAESIAESIAESKBiEaAj
pGKNF60lARIgARIgARIgARIgARIgARIgARK4AgJ0hFwBPDYlARIgARIgARIgARIgARIgARIgARKo
WAToCKlY40VrSYAESIAESIAESIAESIAESIAESIAEroAAHSFXAI9NSYAESIAESIAESIAESIAESIAE
SIAEKhYBOkIq1njRWhIgARIgARIgARIgARIgARIgARIggSsgQEfIFcBjUxIgARIgARIgARIgARIg
ARIgARIggYpFgI6QijVetJYESIAESIAErnMCGgrzjDh27BiMWfnQLNYaiozYuTMZhTA42O+WnYTY
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
OwT+Ay7xt3bIVCI3AAAAAElFTkSuQmCC
</data>

          </attachment>
      

    </bug>

</bugzilla>