<?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>142738</bug_id>
          
          <creation_ts>2015-03-16 11:09:33 -0700</creation_ts>
          <short_desc>W3C test importer should generate the modules installed dynamically to run wpt tests</short_desc>
          <delta_ts>2015-04-06 02:07:02 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>142729</dependson>
          <blocked>142742</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>bjonesbe</cc>
    
    <cc>commit-queue</cc>
    
    <cc>glenn</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1077474</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-03-16 11:09:33 -0700</bug_when>
    <thetext>WPT submodules are downloaded and installed at test runtime based on a WPTModules file.
The test importer should generate that file based on wpt git information.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1077491</commentid>
    <comment_count>1</comment_count>
      <attachid>248734</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-03-16 11:28:06 -0700</bug_when>
    <thetext>Created attachment 248734
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1077540</commentid>
    <comment_count>2</comment_count>
      <attachid>248744</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-03-16 13:00:23 -0700</bug_when>
    <thetext>Created attachment 248744
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1077651</commentid>
    <comment_count>3</comment_count>
      <attachid>248744</attachid>
    <who name="Bem Jones-Bey">bjonesbe</who>
    <bug_when>2015-03-16 17:03:13 -0700</bug_when>
    <thetext>Comment on attachment 248744
Patch

I&apos;m low on time at the moment, so just one comment right now: why not call it web-platform-tests-modules.json, since it&apos;s a JSON file?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1077970</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-03-17 14:13:27 -0700</bug_when>
    <thetext>Attachment 248744 did not pass style-queue:


ERROR: Tools/Scripts/webkitpy/w3c/test_importer_unittest.py:96:  [TestImporterTest.import_downloaded_tests.TestDownloaderMock] Undefined variable &apos;TestDownloader&apos;  [pylint/E0602] [5]
ERROR: Tools/Scripts/webkitpy/w3c/test_importer_unittest.py:98:  [TestImporterTest.import_downloaded_tests.TestDownloaderMock.__init__] Undefined variable &apos;TestDownloader&apos;  [pylint/E0602] [5]
Total errors found: 2 in 8 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>1078173</commentid>
    <comment_count>5</comment_count>
      <attachid>248925</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-03-18 06:09:21 -0700</bug_when>
    <thetext>Created attachment 248925
Updating module file name and missing python import</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1078177</commentid>
    <comment_count>6</comment_count>
      <attachid>248928</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-03-18 06:26:43 -0700</bug_when>
    <thetext>Created attachment 248928
Updating module file name and missing python import, rebased version</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1078213</commentid>
    <comment_count>7</comment_count>
      <attachid>248928</attachid>
    <who name="Bem Jones-Bey">bjonesbe</who>
    <bug_when>2015-03-18 09:05:08 -0700</bug_when>
    <thetext>Comment on attachment 248928
Updating module file name and missing python import, rebased version

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

&gt; Tools/Scripts/webkitpy/w3c/test_downloader.py:153
&gt; +        return self.git(repository_directory)._run_git([&apos;submodule&apos;, &apos;status&apos;])

Given how often you&apos;re finding the need to call _run_git in these patches, I wonder if we should reconsider the interface to the git helper module. Perhaps something as simple as wrapping _run_git with a &quot;run&quot; method, so that it&apos;s actually public API. That&apos;s definitely something for a different patch, though.

&gt; Tools/Scripts/webkitpy/w3c/test_downloader.py:167
&gt; +                    if not submodule[&apos;url&apos;].startswith(&apos;https://github.com/&apos;):
&gt; +                        _log.warning(&apos;submodule %s not hosted on github&apos; % submodule[&apos;path&apos;])

It seems like the code assumes github url format below. If we do end up with an invalid URL in the file, will it cause errors later?

It&apos;s not clear to me why this is a problem and the cases where it would be ok to go on with the tests as opposed to just giving up on the import. Maybe if the error message made it clearer what one is expected to do about this?

&gt; Tools/Scripts/webkitpy/w3c/test_importer_unittest.py:137
&gt; +        self.assertFalse(fs.exists(&apos;/mock-checkout/LayoutTests/w3c/resources/csswg-tests.modules&apos;))

Shouldn&apos;t this be csswg-tests-modules.json ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1078239</commentid>
    <comment_count>8</comment_count>
      <attachid>248928</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-03-18 10:23:17 -0700</bug_when>
    <thetext>Comment on attachment 248928
Updating module file name and missing python import, rebased version

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

&gt;&gt; Tools/Scripts/webkitpy/w3c/test_downloader.py:153
&gt;&gt; +        return self.git(repository_directory)._run_git([&apos;submodule&apos;, &apos;status&apos;])
&gt; 
&gt; Given how often you&apos;re finding the need to call _run_git in these patches, I wonder if we should reconsider the interface to the git helper module. Perhaps something as simple as wrapping _run_git with a &quot;run&quot; method, so that it&apos;s actually public API. That&apos;s definitely something for a different patch, though.

Agreed this would be useful.

&gt;&gt; Tools/Scripts/webkitpy/w3c/test_downloader.py:167
&gt;&gt; +                        _log.warning(&apos;submodule %s not hosted on github&apos; % submodule[&apos;path&apos;])
&gt; 
&gt; It seems like the code assumes github url format below. If we do end up with an invalid URL in the file, will it cause errors later?
&gt; 
&gt; It&apos;s not clear to me why this is a problem and the cases where it would be ok to go on with the tests as opposed to just giving up on the import. Maybe if the error message made it clearer what one is expected to do about this?

We end up with an URL that probably leads to a 404 response.
This would make rwt break when trying to launch wpt server.
We could raise an error but it may be just better to edit the modules description file after the import.

Beefing up the message makes sense, maybe something like:
&apos;submodule %s not hosted on github. Please ensure that URL %s points to an archive of the submodule, or manually change the URL after the import is done&apos;

&gt;&gt; Tools/Scripts/webkitpy/w3c/test_importer_unittest.py:137
&gt;&gt; +        self.assertFalse(fs.exists(&apos;/mock-checkout/LayoutTests/w3c/resources/csswg-tests.modules&apos;))
&gt; 
&gt; Shouldn&apos;t this be csswg-tests-modules.json ?

Good catch, I will fit it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1078282</commentid>
    <comment_count>9</comment_count>
      <attachid>248955</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-03-18 13:07:43 -0700</bug_when>
    <thetext>Created attachment 248955
Fixing test and beefing up warning</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1078283</commentid>
    <comment_count>10</comment_count>
      <attachid>248955</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2015-03-18 13:19:05 -0700</bug_when>
    <thetext>Comment on attachment 248955
Fixing test and beefing up warning

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

&gt; LayoutTests/imported/w3c/ChangeLog:9
&gt; +        Renamed WPTModules to web-platform-test-modules.json
&gt; +        Updated TestRepositories to ask the importer to generate web-platform-test-modules.json at import time.  

It&apos;s not clear to me what &quot;modules&quot; mean. It sounds like they&apos;re dependencies or shared resources used by WPT tests?
Or are you referring to a git submodule?

&gt; LayoutTests/imported/w3c/resources/web-platform-tests-modules.json:8
&gt; +        &quot;url_subpath&quot;: &quot;testharness.js-2a1da264f6718db04c3925a9956b635426827aef&quot;

I don&apos;t understand why we need to create this &quot;-&quot; split pseudo path.
Can&apos;t we just store two fields one of which is the file/directory name and another is a git hash?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1078295</commentid>
    <comment_count>11</comment_count>
      <attachid>248955</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-03-18 13:44:14 -0700</bug_when>
    <thetext>Comment on attachment 248955
Fixing test and beefing up warning

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

&gt;&gt; LayoutTests/imported/w3c/ChangeLog:9
&gt;&gt; +        Updated TestRepositories to ask the importer to generate web-platform-test-modules.json at import time.  
&gt; 
&gt; It&apos;s not clear to me what &quot;modules&quot; mean. It sounds like they&apos;re dependencies or shared resources used by WPT tests?
&gt; Or are you referring to a git submodule?

Yes, I am referring to git submodules.
This is the file used to fuel WebPlatformTestServer._install_modules called at WPT server start.

&gt;&gt; LayoutTests/imported/w3c/resources/web-platform-tests-modules.json:8
&gt;&gt; +        &quot;url_subpath&quot;: &quot;testharness.js-2a1da264f6718db04c3925a9956b635426827aef&quot;
&gt; 
&gt; I don&apos;t understand why we need to create this &quot;-&quot; split pseudo path.
&gt; Can&apos;t we just store two fields one of which is the file/directory name and another is a git hash?

url and url_subpath are parameters passed directly to AutoInstaller.install.
The current format is generic/consistent with webkitpy thirdparty.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1078765</commentid>
    <comment_count>12</comment_count>
      <attachid>248955</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2015-03-19 23:40:39 -0700</bug_when>
    <thetext>Comment on attachment 248955
Fixing test and beefing up warning

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

&gt; Tools/Scripts/webkitpy/w3c/test_downloader.py:160
&gt; +            for line in self._filesystem.read_text_file(self._filesystem.join(repository_directory, &apos;.gitmodules&apos;)).splitlines():

Can we extract this into a function?  e.g. parse_gitmodules.

&gt; Tools/Scripts/webkitpy/w3c/test_downloader.py:188
&gt; +        submodule_status = self._submodule_status(repository_directory)
&gt; +        submodule_status = [line[1:].split(&apos; &apos;) for line in self._submodule_status(repository_directory).splitlines()]
&gt; +        for submodule in submodules:
&gt; +            for status in submodule_status:
&gt; +                if submodule[&apos;path&apos;] == status[1]:
&gt; +                    url = submodule[&apos;url&apos;][:-4]
&gt; +                    version = status[0]
&gt; +                    repository_name = url.split(&apos;/&apos;).pop()
&gt; +                    submodule[&apos;url&apos;] = url + &apos;/archive/&apos; + version + &apos;.tar.gz&apos;
&gt; +                    submodule[&apos;url_subpath&apos;] = repository_name + &apos;-&apos; + version
&gt; +            if &apos;/&apos; in submodule[&apos;path&apos;]:
&gt; +                steps = submodule[&apos;path&apos;].split(&apos;/&apos;)
&gt; +                submodule[&apos;name&apos;] = steps.pop()
&gt; +                submodule[&apos;path&apos;] = steps
&gt; +            else:
&gt; +                submodule[&apos;name&apos;] = submodule[&apos;path&apos;]
&gt; +                submodule[&apos;path&apos;] = [&apos;.&apos;]

Ditto about putting this into a separate function.  Also can we use filesystem abstraction or python&apos;s builtin urllib or os libraries to deal with . and / instead of manually spliting and parsing them?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1078766</commentid>
    <comment_count>13</comment_count>
      <attachid>248955</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2015-03-19 23:42:59 -0700</bug_when>
    <thetext>Comment on attachment 248955
Fixing test and beefing up warning

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

&gt; Tools/Scripts/webkitpy/w3c/test_downloader.py:192
&gt; +    def dump_submodules_description(self, test_repository, filepath):
&gt; +        self._filesystem.write_text_file(filepath, json.dumps(self.submodules_description(test_repository), sort_keys=True, indent=4))

I don&apos;t think there&apos;s much value in sperating submodules_description from dump_submodules_description.
Also, I think we give it a more descriptive name such as generate_description_for_git_submodules.

&gt; Tools/Scripts/webkitpy/w3c/test_importer.py:196
&gt; +    def post_process_downloaded_tests(self):

post_process_downloaded_tests() sounds very generic and doesn&apos;t tell us what it does.
I think we should call it something like generate_git_submodule_descriptions_for_all_repositories.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1078849</commentid>
    <comment_count>14</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-03-20 06:58:34 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; Comment on attachment 248955 [details]
&gt; Fixing test and beefing up warning
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=248955&amp;action=review
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/w3c/test_downloader.py:192
&gt; &gt; +    def dump_submodules_description(self, test_repository, filepath):
&gt; &gt; +        self._filesystem.write_text_file(filepath, json.dumps(self.submodules_description(test_repository), sort_keys=True, indent=4))
&gt; 
&gt; I don&apos;t think there&apos;s much value in sperating submodules_description from
&gt; dump_submodules_description.

submodules_description is reused in bug 142743 to generate .gitignore

&gt; Also, I think we give it a more descriptive name such as
&gt; generate_description_for_git_submodules.

ok

&gt; 
&gt; &gt; Tools/Scripts/webkitpy/w3c/test_importer.py:196
&gt; &gt; +    def post_process_downloaded_tests(self):
&gt; 
&gt; post_process_downloaded_tests() sounds very generic and doesn&apos;t tell us what
&gt; it does.
&gt; I think we should call it something like
&gt; generate_git_submodule_descriptions_for_all_repositories.

The idea is to include gitignore generation handling in the same loop (cf bug 142743).
I agree the post_process name is too vague.
I would rename it to process_test_repositories_import_options, as it is guided by the &quot;import_options&quot; field found in TestRepositories.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1078850</commentid>
    <comment_count>15</comment_count>
      <attachid>249112</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-03-20 07:07:00 -0700</bug_when>
    <thetext>Created attachment 249112
Fixing names</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1083016</commentid>
    <comment_count>16</comment_count>
      <attachid>249112</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2015-04-05 19:30:16 -0700</bug_when>
    <thetext>Comment on attachment 249112
Fixing names

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

&gt; Tools/Scripts/webkitpy/w3c/test_importer.py:196
&gt; +    def process_test_repositories_import_options(self):

This name is still too vague.
Just call it generate_git_submodules_description_for_all_repositories.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1083057</commentid>
    <comment_count>17</comment_count>
      <attachid>250196</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-04-06 01:09:39 -0700</bug_when>
    <thetext>Created attachment 250196
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1083058</commentid>
    <comment_count>18</comment_count>
      <attachid>250197</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-04-06 01:11:36 -0700</bug_when>
    <thetext>Created attachment 250197
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1083061</commentid>
    <comment_count>19</comment_count>
      <attachid>250197</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-04-06 02:06:56 -0700</bug_when>
    <thetext>Comment on attachment 250197
Patch for landing

Clearing flags on attachment: 250197

Committed r182386: &lt;http://trac.webkit.org/changeset/182386&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1083062</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-04-06 02:07:02 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>248734</attachid>
            <date>2015-03-16 11:28:06 -0700</date>
            <delta_ts>2015-03-16 13:00:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-142738-20150316192734.patch</filename>
            <type>text/plain</type>
            <size>15738</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgxNTI2CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMzJiZjMzMGM0MTVjYzJjZTBiMzQ4NjU2MDc1NzM2MTk4
OGJkYTUwYi4uOTI1MDRhYTdkMmQ0MzczOWNjOWYxN2I5MmFiNTE3NTA2ZjAxMmYwZiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMy
IEBACisyMDE1LTAzLTE2ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uLmZhYmxldEBjcmYuY2Fub24u
ZnI+CisKKyAgICAgICAgVzNDIHRlc3QgaW1wb3J0ZXIgc2hvdWxkIGdlbmVyYXRlIHRoZSBtb2R1
bGVzIGluc3RhbGxlZCBkeW5hbWljYWxseSB0byBydW4gd3B0IHRlc3RzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI3MzgKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBMYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvcmVzb3VyY2VzL1dQVE1vZHVsZXMgcmVuYW1lZCBhcyBMYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvcmVzb3VyY2VzL3dlYi1wbGF0Zm9ybS10ZXN0cy5tb2R1bGVzCisgICAgICAgIGlzIGdlbmVy
YXRlZCBieSB0aGUgdGVzdCBpbXBvcnRlciBiYXNlZCBvbiBpbmZvcm1hdGlvbiBleHRyYWN0ZWQg
ZnJvbSB0aGUgd3B0IGdpdCByZXBvc2l0b3J5LgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvc2VydmVycy93ZWJfcGxhdGZvcm1fdGVzdF9zZXJ2ZXIucHk6CisgICAg
ICAgIChXZWJQbGF0Zm9ybVRlc3RTZXJ2ZXIuX2luc3RhbGxfbW9kdWxlcyk6IFVwZGF0ZWQgdG8g
Y29wZSB3aXRoIHBhdGggYXMgYXJyYXkuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS93M2Mv
dGVzdF9kb3dubG9hZGVyLnB5OgorICAgICAgICAoVGVzdERvd25sb2FkZXIuX3N1Ym1vZHVsZV9z
dGF0dXMpOiBBZGRlZCBzbyB0aGF0IGl0IGNhbiBiZSBvdmVycmlkZW4gZm9yIHVuaXQgdGVzdHMu
CisgICAgICAgIChUZXN0RG93bmxvYWRlcik6CisgICAgICAgIChUZXN0RG93bmxvYWRlci5zdWJt
b2R1bGVzX2Rlc2NyaXB0aW9uKTogQ29tcHV0ZXMgc3VibW9kdWxlIGRlc2NyaXB0aW9uLgorICAg
ICAgICAoVGVzdERvd25sb2FkZXIuZHVtcF9zdWJtb2R1bGVzX2Rlc2NyaXB0aW9uKTogV3JpdGUg
c3VibW9kdWxlIGRlc2NyaXB0aW9uIGluIGEgZmlsZS4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dHB5L3czYy90ZXN0X2ltcG9ydGVyLnB5OgorICAgICAgICAoVGVzdEltcG9ydGVyLmRvX2ltcG9y
dCk6IEFkZGVkIHRoZSBwb3NzaWJpbGl0eSB0byBwb3N0IHByb2Nlc3MgdGhlIHRlc3RzLgorICAg
ICAgICAoVGVzdEltcG9ydGVyKToKKyAgICAgICAgKFRlc3RJbXBvcnRlci5wb3N0X3Byb2Nlc3Nf
ZG93bmxvYWRlZF90ZXN0cyk6IFBvc3QgcHJvY2VzcyB0aGUgdGVzdHMgdG8gZW5hYmxlIGdlbmVy
YXRpbmcgbW9kdWxlIGRlc2NyaXB0aW9uIGZpbGUuCisgICAgICAgIChUZXN0SW1wb3J0ZXIuc2hv
dWxkX2NvbnZlcnRfdGVzdF9oYXJuZXNzX2xpbmtzKTogVXBkYXRlZCBhY2NvcmRpbmcgbmV3IG9w
dGlvbnMgZm9ybWF0LgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdzNjL3Rlc3RfaW1wb3J0
ZXJfdW5pdHRlc3QucHk6CisgICAgICAgIChUZXN0SW1wb3J0ZXJUZXN0LmltcG9ydF9kb3dubG9h
ZGVkX3Rlc3RzLlRlc3REb3dubG9hZGVyTW9jayk6IEFkZGVkIHRvIG92ZXJyaWRlIHN1Ym1vZHVs
ZSBzdGF0dXMgZ2F0aGVyaW5nLgorICAgICAgICAoVGVzdEltcG9ydGVyVGVzdC5pbXBvcnRfZG93
bmxvYWRlZF90ZXN0cy5UZXN0RG93bmxvYWRlck1vY2suX19pbml0X18pOgorICAgICAgICAoVGVz
dEltcG9ydGVyVGVzdC5pbXBvcnRfZG93bmxvYWRlZF90ZXN0cy5UZXN0RG93bmxvYWRlck1vY2su
X3N1Ym1vZHVsZV9zdGF0dXMpOgorICAgICAgICAoVGVzdEltcG9ydGVyVGVzdC5pbXBvcnRfZG93
bmxvYWRlZF90ZXN0cyk6IE1ha2luZyB1c2Ugb2YgVGVzdERvd25sb2FkZXJNb2NrLgorICAgICAg
ICAoVGVzdEltcG9ydGVyVGVzdC50ZXN0X3N1Ym1vZHVsZXNfZ2VuZXJhdGlvbik6IEFkZGVkIHRv
IGNoZWNrIHRoYXQgbW9kdWxlcyBkZXNjcmlwdGlvbiBmaWxlcyB3b3Jrcy4KKwogMjAxNS0wMy0x
NSAgQmVuamFtaW4gUG91bGFpbiAgPGJlbmphbWluQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQ1NT
OiBmaXggdGhlIGNhc2UtaW5zZW5zaXRpdmUgbWF0Y2hpbmcgb2YgdGhlIGF0dHJpYnV0ZSBzZWxl
Y3RvcnMgQmVnaW4sIEVuZCBhbmQgSHlwaGVuCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9zZXJ2ZXJzL3dlYl9wbGF0Zm9ybV90ZXN0X3NlcnZlci5weSBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3NlcnZlcnMvd2ViX3BsYXRmb3Jt
X3Rlc3Rfc2VydmVyLnB5CmluZGV4IDA0MWE5ZmUzNGEwMTQ1ZmZhMTUyMDRlYTUyNDQwOTcxYWJj
NzJhMzkuLmNhMTg5NTQ4OGRjYzUyZmIwMGU4NjQwYzcxMjVmZjhkZjczZGYyMTEgMTAwNzU1Ci0t
LSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3NlcnZlcnMvd2ViX3BsYXRm
b3JtX3Rlc3Rfc2VydmVyLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL3NlcnZlcnMvd2ViX3BsYXRmb3JtX3Rlc3Rfc2VydmVyLnB5CkBAIC04NSw3ICs4NSw3IEBA
IGNsYXNzIFdlYlBsYXRmb3JtVGVzdFNlcnZlcihodHRwX3NlcnZlcl9iYXNlLkh0dHBTZXJ2ZXJC
YXNlKToKICAgICAgICAgICAgIHJldHVybgogICAgICAgICBtb2R1bGVzID0ganNvbi5sb2Fkcyhz
ZWxmLl9maWxlc3lzdGVtLnJlYWRfdGV4dF9maWxlKG1vZHVsZXNfZmlsZV9wYXRoKSkKICAgICAg
ICAgZm9yIG1vZHVsZSBpbiBtb2R1bGVzOgotICAgICAgICAgICAgQXV0b0luc3RhbGxlcih0YXJn
ZXRfZGlyPXNlbGYuX2ZpbGVzeXN0ZW0uam9pbihzZWxmLl9kb2Nfcm9vdCwgbW9kdWxlWyJwYXRo
Il0pKS5pbnN0YWxsKHVybD1tb2R1bGVbInVybCJdLCB1cmxfc3VicGF0aD1tb2R1bGVbInVybF9z
dWJwYXRoIl0sIHRhcmdldF9uYW1lPW1vZHVsZVsibmFtZSJdKQorICAgICAgICAgICAgQXV0b0lu
c3RhbGxlcih0YXJnZXRfZGlyPXNlbGYuX2ZpbGVzeXN0ZW0uam9pbihzZWxmLl9kb2Nfcm9vdCwg
c2VsZi5fZmlsZXN5c3RlbS5zZXAuam9pbihtb2R1bGVbInBhdGgiXSkpKS5pbnN0YWxsKHVybD1t
b2R1bGVbInVybCJdLCB1cmxfc3VicGF0aD1tb2R1bGVbInVybF9zdWJwYXRoIl0sIHRhcmdldF9u
YW1lPW1vZHVsZVsibmFtZSJdKQogCiAgICAgZGVmIF9jb3B5X3dlYmtpdF90ZXN0X2ZpbGVzKHNl
bGYpOgogICAgICAgICBfbG9nLmRlYnVnKCdDb3B5aW5nIFdlYktpdCByZXNvdXJjZXMgZmlsZXMn
KQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS93M2MvdGVzdF9kb3dubG9hZGVy
LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS93M2MvdGVzdF9kb3dubG9hZGVyLnB5CmluZGV4
IDIxNTE2ZWM0ZWQyYTE0OTFlODE5Mjk5MmQ1NjIyNTcwYWRlODE4MmIuLjA2ZTllY2EwZDFhYTFi
YjkwZmUyNjg2NzA3OTM0NWYwNWI2ZmZmYTIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvdzNjL3Rlc3RfZG93bmxvYWRlci5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L3czYy90ZXN0X2Rvd25sb2FkZXIucHkKQEAgLTE1MSw2ICsxNTEsNDcgQEAgY2xhc3MgVGVzdERv
d25sb2FkZXIob2JqZWN0KToKICAgICAgICAgICAgIGlmIHNlbGYuX2ZpbGVzeXN0ZW0uaXNmaWxl
KGRlc3RpbmF0aW9uX3BhdGgpOgogICAgICAgICAgICAgICAgIHNlbGYuX2ZpbGVzeXN0ZW0ucmVt
b3ZlKGRlc3RpbmF0aW9uX3BhdGgpCiAKKyAgICBkZWYgX3N1Ym1vZHVsZV9zdGF0dXMoc2VsZiwg
cmVwb3NpdG9yeV9kaXJlY3RvcnkpOgorICAgICAgICByZXR1cm4gc2VsZi5naXQocmVwb3NpdG9y
eV9kaXJlY3RvcnkpLl9ydW5fZ2l0KFsnc3VibW9kdWxlJywgJ3N0YXR1cyddKQorCisgICAgZGVm
IHN1Ym1vZHVsZXNfZGVzY3JpcHRpb24oc2VsZiwgdGVzdF9yZXBvc2l0b3J5KToKKyAgICAgICAg
c3VibW9kdWxlcyA9IFtdCisgICAgICAgIHJlcG9zaXRvcnlfZGlyZWN0b3J5ID0gc2VsZi5fZmls
ZXN5c3RlbS5qb2luKHNlbGYucmVwb3NpdG9yeV9kaXJlY3RvcnksIHRlc3RfcmVwb3NpdG9yeVsn
bmFtZSddKQorICAgICAgICBpZiBzZWxmLl9maWxlc3lzdGVtLmlzZmlsZShzZWxmLl9maWxlc3lz
dGVtLmpvaW4ocmVwb3NpdG9yeV9kaXJlY3RvcnksICcuZ2l0bW9kdWxlcycpKToKKyAgICAgICAg
ICAgIHN1Ym1vZHVsZSA9IHt9CisgICAgICAgICAgICBmb3IgbGluZSBpbiBzZWxmLl9maWxlc3lz
dGVtLnJlYWRfdGV4dF9maWxlKHNlbGYuX2ZpbGVzeXN0ZW0uam9pbihyZXBvc2l0b3J5X2RpcmVj
dG9yeSwgJy5naXRtb2R1bGVzJykpLnNwbGl0bGluZXMoKToKKyAgICAgICAgICAgICAgICBsaW5l
ID0gbGluZS5zdHJpcCgpCisgICAgICAgICAgICAgICAgaWYgbGluZS5zdGFydHN3aXRoKCdwYXRo
ID0gJyk6CisgICAgICAgICAgICAgICAgICAgIHN1Ym1vZHVsZVsncGF0aCddID0gbGluZVs3Ol0K
KyAgICAgICAgICAgICAgICBlbGlmIGxpbmUuc3RhcnRzd2l0aCgndXJsID0gJyk6CisgICAgICAg
ICAgICAgICAgICAgIHN1Ym1vZHVsZVsndXJsJ10gPSBsaW5lWzY6XQorICAgICAgICAgICAgICAg
ICAgICBpZiBub3Qgc3VibW9kdWxlWyd1cmwnXS5zdGFydHN3aXRoKCdodHRwczovL2dpdGh1Yi5j
b20vJyk6CisgICAgICAgICAgICAgICAgICAgICAgICBfbG9nLndhcm5pbmcoJ3N1Ym1vZHVsZSAl
cyBub3QgaG9zdGVkIG9uIGdpdGh1YicgJSBzdWJtb2R1bGVbJ3BhdGgnXSkKKyAgICAgICAgICAg
ICAgICAgICAgc3VibW9kdWxlcy5hcHBlbmQoc3VibW9kdWxlKQorICAgICAgICAgICAgICAgICAg
ICBzdWJtb2R1bGUgPSB7fQorCisgICAgICAgIHN1Ym1vZHVsZV9zdGF0dXMgPSBzZWxmLl9zdWJt
b2R1bGVfc3RhdHVzKHJlcG9zaXRvcnlfZGlyZWN0b3J5KQorICAgICAgICBzdWJtb2R1bGVfc3Rh
dHVzID0gW2xpbmVbMTpdLnNwbGl0KCcgJykgZm9yIGxpbmUgaW4gc2VsZi5fc3VibW9kdWxlX3N0
YXR1cyhyZXBvc2l0b3J5X2RpcmVjdG9yeSkuc3BsaXRsaW5lcygpXQorICAgICAgICBmb3Igc3Vi
bW9kdWxlIGluIHN1Ym1vZHVsZXM6CisgICAgICAgICAgICBmb3Igc3RhdHVzIGluIHN1Ym1vZHVs
ZV9zdGF0dXM6CisgICAgICAgICAgICAgICAgaWYgc3VibW9kdWxlWydwYXRoJ10gPT0gc3RhdHVz
WzFdOgorICAgICAgICAgICAgICAgICAgICB1cmwgPSBzdWJtb2R1bGVbJ3VybCddWzotNF0KKyAg
ICAgICAgICAgICAgICAgICAgdmVyc2lvbiA9IHN0YXR1c1swXQorICAgICAgICAgICAgICAgICAg
ICByZXBvc2l0b3J5X25hbWUgPSB1cmwuc3BsaXQoJy8nKS5wb3AoKQorICAgICAgICAgICAgICAg
ICAgICBzdWJtb2R1bGVbJ3VybCddID0gdXJsICsgJy9hcmNoaXZlLycgKyB2ZXJzaW9uICsgJy50
YXIuZ3onCisgICAgICAgICAgICAgICAgICAgIHN1Ym1vZHVsZVsndXJsX3N1YnBhdGgnXSA9IHJl
cG9zaXRvcnlfbmFtZSArICctJyArIHZlcnNpb24KKyAgICAgICAgICAgIGlmICcvJyBpbiBzdWJt
b2R1bGVbJ3BhdGgnXToKKyAgICAgICAgICAgICAgICBzdGVwcyA9IHN1Ym1vZHVsZVsncGF0aCdd
LnNwbGl0KCcvJykKKyAgICAgICAgICAgICAgICBzdWJtb2R1bGVbJ25hbWUnXSA9IHN0ZXBzLnBv
cCgpCisgICAgICAgICAgICAgICAgc3VibW9kdWxlWydwYXRoJ10gPSBzdGVwcworICAgICAgICAg
ICAgZWxzZToKKyAgICAgICAgICAgICAgICBzdWJtb2R1bGVbJ25hbWUnXSA9IHN1Ym1vZHVsZVsn
cGF0aCddCisgICAgICAgICAgICAgICAgc3VibW9kdWxlWydwYXRoJ10gPSBbJy4nXQorICAgICAg
ICByZXR1cm4gc3VibW9kdWxlcworCisgICAgZGVmIGR1bXBfc3VibW9kdWxlc19kZXNjcmlwdGlv
bihzZWxmLCB0ZXN0X3JlcG9zaXRvcnksIGZpbGVwYXRoKToKKyAgICAgICAgc2VsZi5fZmlsZXN5
c3RlbS53cml0ZV90ZXh0X2ZpbGUoZmlsZXBhdGgsIGpzb24uZHVtcHMoc2VsZi5zdWJtb2R1bGVz
X2Rlc2NyaXB0aW9uKHRlc3RfcmVwb3NpdG9yeSksIHNvcnRfa2V5cz1UcnVlLCBpbmRlbnQ9NCkp
CisKICAgICBkZWYgZG93bmxvYWRfdGVzdHMoc2VsZiwgZGVzdGluYXRpb25fZGlyZWN0b3J5LCB0
ZXN0X3BhdGhzPVtdKToKICAgICAgICAgZm9yIHRlc3RfcmVwb3NpdG9yeSBpbiBzZWxmLnRlc3Rf
cmVwb3NpdG9yaWVzOgogICAgICAgICAgICAgc2VsZi5jaGVja291dF90ZXN0X3JlcG9zaXRvcnko
dGVzdF9yZXBvc2l0b3J5WydyZXZpc2lvbiddLCB0ZXN0X3JlcG9zaXRvcnlbJ3VybCddLCBzZWxm
Ll9maWxlc3lzdGVtLmpvaW4oc2VsZi5yZXBvc2l0b3J5X2RpcmVjdG9yeSwgdGVzdF9yZXBvc2l0
b3J5WyduYW1lJ10pKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS93M2MvdGVz
dF9pbXBvcnRlci5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdzNjL3Rlc3RfaW1wb3J0ZXIu
cHkKaW5kZXggMDYxNzJjM2Y5ZGIwYWNjZDUyYzI4MDQxMjA4ZmE1M2RlNTIzM2Q4Yi4uYjQ4N2Nm
OTJhN2RmODBlODU5ODBmMGFkZWVhZWVhMzUxMmZhNzkzYyAxMDA2NDQKLS0tIGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS93M2MvdGVzdF9pbXBvcnRlci5weQorKysgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L3czYy90ZXN0X2ltcG9ydGVyLnB5CkBAIC0xOTAsNiArMTkwLDE1IEBAIGNsYXNzIFRl
c3RJbXBvcnRlcihvYmplY3QpOgogCiAgICAgICAgIHNlbGYuaW1wb3J0X3Rlc3RzKCkKIAorICAg
ICAgICBpZiBzZWxmLl9pbXBvcnRpbmdfZG93bmxvYWRlZF90ZXN0czoKKyAgICAgICAgICAgIHNl
bGYucG9zdF9wcm9jZXNzX2Rvd25sb2FkZWRfdGVzdHMoKQorCisgICAgZGVmIHBvc3RfcHJvY2Vz
c19kb3dubG9hZGVkX3Rlc3RzKHNlbGYpOgorICAgICAgICBmb3IgdGVzdF9yZXBvc2l0b3J5IGlu
IHNlbGYuX3Rlc3RfZG93bmxvYWRlci50ZXN0X3JlcG9zaXRvcmllczoKKyAgICAgICAgICAgIGlm
ICdkdW1wX3N1Ym1vZHVsZXNfZGVzY3JpcHRpb24nIGluIHRlc3RfcmVwb3NpdG9yeVsnaW1wb3J0
X29wdGlvbnMnXToKKyAgICAgICAgICAgICAgICBzZWxmLmZpbGVzeXN0ZW0ubWF5YmVfbWFrZV9k
aXJlY3Rvcnkoc2VsZi5maWxlc3lzdGVtLmpvaW4oc2VsZi5kZXN0aW5hdGlvbl9kaXJlY3Rvcnks
ICdyZXNvdXJjZXMnKSkKKyAgICAgICAgICAgICAgICBzZWxmLl90ZXN0X2Rvd25sb2FkZXIuZHVt
cF9zdWJtb2R1bGVzX2Rlc2NyaXB0aW9uKHRlc3RfcmVwb3NpdG9yeSwgc2VsZi5maWxlc3lzdGVt
LmpvaW4oc2VsZi5kZXN0aW5hdGlvbl9kaXJlY3RvcnksICdyZXNvdXJjZXMnLCB0ZXN0X3JlcG9z
aXRvcnlbJ25hbWUnXSArICcubW9kdWxlcycpKQorCiAgICAgZGVmIHRlc3RfZG93bmxvYWRlcihz
ZWxmKToKICAgICAgICAgaWYgbm90IHNlbGYuX3Rlc3RfZG93bmxvYWRlcjoKICAgICAgICAgICAg
IGRvd25sb2FkX29wdGlvbnMgPSBUZXN0RG93bmxvYWRlci5kZWZhdWx0X29wdGlvbnMoKQpAQCAt
MjgxLDcgKzI5MCw3IEBAIGNsYXNzIFRlc3RJbXBvcnRlcihvYmplY3QpOgogICAgICAgICBpZiBz
ZWxmLl9pbXBvcnRpbmdfZG93bmxvYWRlZF90ZXN0czoKICAgICAgICAgICAgIGZvciB0ZXN0X3Jl
cG9zaXRvcnkgaW4gc2VsZi50ZXN0X2Rvd25sb2FkZXIoKS50ZXN0X3JlcG9zaXRvcmllczoKICAg
ICAgICAgICAgICAgICBpZiB0ZXN0LnN0YXJ0c3dpdGgodGVzdF9yZXBvc2l0b3J5WyduYW1lJ10p
OgotICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGVzdF9yZXBvc2l0b3J5Wydjb252ZXJ0X3Rl
c3RfaGFybmVzc19saW5rcyddCisgICAgICAgICAgICAgICAgICAgIHJldHVybiAnY29udmVydF90
ZXN0X2hhcm5lc3NfbGlua3MnIGluIHRlc3RfcmVwb3NpdG9yeVsnaW1wb3J0X29wdGlvbnMnXQog
ICAgICAgICAgICAgcmV0dXJuIFRydWUKICAgICAgICAgcmV0dXJuIHNlbGYub3B0aW9ucy5jb252
ZXJ0X3Rlc3RfaGFybmVzc19saW5rcwogCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L3czYy90ZXN0X2ltcG9ydGVyX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS93M2MvdGVzdF9pbXBvcnRlcl91bml0dGVzdC5weQppbmRleCA1YTA5MTMzODdhMjdjYjYyM2Rk
NjE2ZTY1NzBkNmY0MjNiMDliNzVjLi40ZDFjYTIxYWVlMTVkMTRlMzI3OGM1NWFjOGE4N2UxNGNl
OGVmZjhlIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3czYy90ZXN0X2ltcG9y
dGVyX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdzNjL3Rlc3RfaW1w
b3J0ZXJfdW5pdHRlc3QucHkKQEAgLTk1LDEyICs5NSwyMSBAQCBjbGFzcyBUZXN0SW1wb3J0ZXJU
ZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKIAogICAgIGRlZiBpbXBvcnRfZG93bmxvYWRlZF90ZXN0
cyhzZWxmLCBhcmdzLCBmaWxlcyk6CiAgICAgICAgICMgZmlsZXMgYXJlIHBhc3NlZCBhcyBwYXJh
bWV0ZXIgYXMgd2UgY2Fubm90IGNsb25lL2ZldGNoL2NoZWNrb3V0IGEgcmVwbyBpbiBtb2NrIHN5
c3RlbS4KKworICAgICAgICBjbGFzcyBUZXN0RG93bmxvYWRlck1vY2soVGVzdERvd25sb2FkZXIp
OgorICAgICAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHJlcG9zaXRvcnlfZGlyZWN0b3J5LCBo
b3N0LCBvcHRpb25zKToKKyAgICAgICAgICAgICAgICBUZXN0RG93bmxvYWRlci5fX2luaXRfXyhz
ZWxmLCByZXBvc2l0b3J5X2RpcmVjdG9yeSwgaG9zdCwgb3B0aW9ucykKKworICAgICAgICAgICAg
ZGVmIF9zdWJtb2R1bGVfc3RhdHVzKHNlbGYsIHJlcG9zaXRvcnlfZGlyZWN0b3J5KToKKyAgICAg
ICAgICAgICAgICByZXR1cm4gJ2FkYjRkMzkxYTY5ODc3ZDRhMWVhYWY1MWQxNzI1Yzk5YTViOGVk
ODQgdG9vbHMvcmVzb3VyY2VzJworCiAgICAgICAgIGhvc3QgPSBNb2NrSG9zdCgpCiAgICAgICAg
IGhvc3QuZXhlY3V0aXZlID0gTW9ja0V4ZWN1dGl2ZTIoKQogICAgICAgICBob3N0LmZpbGVzeXN0
ZW0gPSBNb2NrRmlsZVN5c3RlbShmaWxlcz1maWxlcykKIAogICAgICAgICBvcHRpb25zLCBhcmdz
ID0gcGFyc2VfYXJncyhhcmdzKQogICAgICAgICBpbXBvcnRlciA9IFRlc3RJbXBvcnRlcihob3N0
LCBOb25lLCBvcHRpb25zKQorICAgICAgICBpbXBvcnRlci5fdGVzdF9kb3dubG9hZGVyID0gVGVz
dERvd25sb2FkZXJNb2NrKGltcG9ydGVyLnRlc3RzX2Rvd25sb2FkX3BhdGgsIGltcG9ydGVyLmhv
c3QsIGltcG9ydGVyLm9wdGlvbnMpCiAgICAgICAgIGltcG9ydGVyLmRvX2ltcG9ydCgpCiAgICAg
ICAgIHJldHVybiBob3N0LmZpbGVzeXN0ZW0KIApAQCAtMTE5LDQgKzEyOCwxNyBAQCBjbGFzcyBU
ZXN0SW1wb3J0ZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgc2VsZi5hc3NlcnRU
cnVlKCdzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiJyBpbiBmcy5yZWFkX3RleHRfZmls
ZSgnL21vY2stY2hlY2tvdXQvTGF5b3V0VGVzdHMvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90L3Rl
c3QuaHRtbCcpKQogICAgICAgICBzZWxmLmFzc2VydFRydWUoJ3NyYz0iLi4vJyBpbiBmcy5yZWFk
X3RleHRfZmlsZSgnL21vY2stY2hlY2tvdXQvTGF5b3V0VGVzdHMvdzNjL2Nzc3dnLXRlc3RzL3Qv
dGVzdC5odG1sJykpCiAKKyAgICBkZWYgdGVzdF9zdWJtb2R1bGVzX2dlbmVyYXRpb24oc2VsZik6
CisgICAgICAgIEZBS0VfRklMRVMgPSB7CisgICAgICAgICAgICAnL21vY2stY2hlY2tvdXQvV2Vi
S2l0QnVpbGQvdzNjLXRlc3RzL2Nzc3dnLXRlc3RzLy5naXRtb2R1bGVzJzogJ1tzdWJtb2R1bGUg
InRvb2xzL3Jlc291cmNlcyJdXG4JcGF0aCA9IHRvb2xzL3Jlc291cmNlc1xuCXVybCA9IGh0dHBz
Oi8vZ2l0aHViLmNvbS93M2MvdGVzdGhhcm5lc3MuanMuZ2l0XG4gIGlnbm9yZSA9IGRpcnR5XG4n
LAorICAgICAgICAgICAgJy9tb2NrLWNoZWNrb3V0L1dlYktpdEJ1aWxkL3czYy10ZXN0cy93ZWIt
cGxhdGZvcm0tdGVzdHMvLmdpdG1vZHVsZXMnOiAnW3N1Ym1vZHVsZSAidG9vbHMvcmVzb3VyY2Vz
Il1cbglwYXRoID0gdG9vbHMvcmVzb3VyY2VzXG4JdXJsID0gaHR0cHM6Ly9naXRodWIuY29tL3cz
Yy90ZXN0aGFybmVzcy5qcy5naXRcbiAgaWdub3JlID0gZGlydHlcbicsCisgICAgICAgIH0KKwor
ICAgICAgICBmcyA9IHNlbGYuaW1wb3J0X2Rvd25sb2FkZWRfdGVzdHMoWyctLW5vLWZldGNoJywg
Jy0taW1wb3J0LWFsbCcsICctZCcsICd3M2MnXSwgRkFLRV9GSUxFUykKKworICAgICAgICBzZWxm
LmFzc2VydEZhbHNlKGZzLmV4aXN0cygnL21vY2stY2hlY2tvdXQvTGF5b3V0VGVzdHMvdzNjL3Jl
c291cmNlcy9jc3N3Zy10ZXN0cy5tb2R1bGVzJykpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShm
cy5leGlzdHMoJy9tb2NrLWNoZWNrb3V0L0xheW91dFRlc3RzL3czYy9yZXNvdXJjZXMvd2ViLXBs
YXRmb3JtLXRlc3RzLm1vZHVsZXMnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKCdodHRwczov
L2dpdGh1Yi5jb20vdzNjL3Rlc3RoYXJuZXNzLmpzL2FyY2hpdmUvZGI0ZDM5MWE2OTg3N2Q0YTFl
YWFmNTFkMTcyNWM5OWE1YjhlZDg0LnRhci5neicgaW4gZnMucmVhZF90ZXh0X2ZpbGUoJy9tb2Nr
LWNoZWNrb3V0L0xheW91dFRlc3RzL3czYy9yZXNvdXJjZXMvd2ViLXBsYXRmb3JtLXRlc3RzLm1v
ZHVsZXMnKSkKKworCiAgICAgIyBGSVhNRTogTmVlZHMgbW9yZSB0ZXN0cy4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvQ2hhbmdlTG9nCmluZGV4IGJjNDc2NGMxMjAzZmY3NGIyN2M5YmFjNzA2NWRhNGMyZjRl
NzU2ZGUuLjY5NTVkMmJkZjc4NWU5NmE2OTllOTU1MGMyZmYxNzgxODcyNTA3ZTEgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE1LTAzLTE2ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uLmZhYmxldEBjcmYuY2Fub24uZnI+CisKKyAgICAgICAgVzNDIHRl
c3QgaW1wb3J0ZXIgc2hvdWxkIGdlbmVyYXRlIHRoZSBtb2R1bGVzIGluc3RhbGxlZCBkeW5hbWlj
YWxseSB0byBydW4gd3B0IHRlc3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNDI3MzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIHJlc291cmNlcy9UZXN0UmVwb3NpdG9yaWVzOiBVcGRhdGVkIGltcG9y
dCBvcHRpb25zIHRvIGdlbmVyYXRlIG1vZHVsZXMgZGVzY3JpcHRpb24uCisgICAgICAgICogcmVz
b3VyY2VzL1dQVE1vZHVsZXM6IFJlbW92ZWQuCisgICAgICAgICogcmVzb3VyY2VzL3dlYi1wbGF0
Zm9ybS10ZXN0cy5tb2R1bGVzOiBBZGRlZC4KKwogMjAxNS0wMy0xMyAgWW91ZW5uIEZhYmxldCAg
PHlvdWVubi5mYWJsZXRAY3JmLmNhbm9uLmZyPgogCiAgICAgICAgIFdlYktpdCB0ZXN0IGluZnJh
c3RydWN0dXJlIHNob3VsZCBhdXRvbWF0ZSB0aGUgcHJvY2VzcyBvZiBjbG9uaW5nIFczQyB0ZXN0
IHN1aXRlIGFuZCBpbXBvcnRpbmcgdGVzdHMgZnJvbSBpdApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3Jlc291cmNlcy9UZXN0UmVwb3NpdG9yaWVzIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3Jlc291cmNlcy9UZXN0UmVwb3NpdG9yaWVzCmluZGV4IDk1NjhlMjA5Njdh
YTA2MmI3OGM5NmJlZGQxNmE3YTlmMTM5NjAyNjkuLjAzYjdlNWJhNTlhOTJmMjhhNTI0OGYyYWUx
NjE0YWUxYzEzMjVjMTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9yZXNv
dXJjZXMvVGVzdFJlcG9zaXRvcmllcworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvcmVz
b3VyY2VzL1Rlc3RSZXBvc2l0b3JpZXMKQEAgLTEwLDcgKzEwLDcgQEAKICAgICAgICAgInBhdGhz
X3RvX2ltcG9ydCI6IFsKICAgICAgICAgICAgICJzdXBwb3J0IgogICAgICAgICBdLAotICAgICAg
ICAiY29udmVydF90ZXN0X2hhcm5lc3NfbGlua3MiOiB0cnVlCisgICAgICAgICJpbXBvcnRfb3B0
aW9ucyI6IFsiY29udmVydF90ZXN0X2hhcm5lc3NfbGlua3MiXQogICAgIH0sCiAgICAgewogICAg
ICAgICAibmFtZSI6ICJ3ZWItcGxhdGZvcm0tdGVzdHMiLApAQCAtMzAsNiArMzAsNiBAQAogICAg
ICAgICAgICAgImNvbmZpZy5kZWZhdWx0Lmpzb24iLAogICAgICAgICAgICAgInNlcnZlLnB5Igog
ICAgICAgICBdLAotICAgICAgICAiY29udmVydF90ZXN0X2hhcm5lc3NfbGlua3MiOiBmYWxzZQor
ICAgICAgICAiaW1wb3J0X29wdGlvbnMiOiBbImR1bXBfc3VibW9kdWxlc19kZXNjcmlwdGlvbiJd
CiAgICAgfQogXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3Jlc291cmNl
cy9XUFRNb2R1bGVzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3Jlc291cmNlcy9XUFRNb2R1
bGVzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2Mjg0NWZhN2NkNDEwMjgwZjJmNTcw
OGUwZTMxMGQ3NDQ5NWQ4NjI3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9yZXNvdXJjZXMvV1BUTW9kdWxlcwor
KysgL2Rldi9udWxsCkBAIC0xLDMyICswLDAgQEAKLVsKLXsKLSAgICAibmFtZSI6ICJodG1sNWxp
YiIsCi0gICAgInBhdGgiOiAidG9vbHMiLAotICAgICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29t
L2h0bWw1bGliL2h0bWw1bGliLXB5dGhvbi9hcmNoaXZlLzdjY2U2NWJiYWE3ODQxMWY5OGI4YjM3
ZWVlZmM5ZGIwM2M1ODAwOTcudGFyLmd6IiwKLSAgICAidXJsX3N1YnBhdGgiOiAiaHRtbDVsaWIt
cHl0aG9uLTdjY2U2NWJiYWE3ODQxMWY5OGI4YjM3ZWVlZmM5ZGIwM2M1ODAwOTciCi19LAotewot
ICAgICJuYW1lIjogInB5d2Vic29ja2V0IiwKLSAgICAicGF0aCI6ICJ0b29scyIsCi0gICAgInVy
bCI6ICJodHRwczovL2dpdGh1Yi5jb20vdzNjL3B5d2Vic29ja2V0L2FyY2hpdmUvOGMyODVkOTAx
NTEyMWU4YzFjNDBiZTg1MjQzOWZjMDNiNGExODExMi50YXIuZ3oiLAotICAgICJ1cmxfc3VicGF0
aCI6ICJweXdlYnNvY2tldC04YzI4NWQ5MDE1MTIxZThjMWM0MGJlODUyNDM5ZmMwM2I0YTE4MTEy
IgotfSwKLXsKLSAgICAibmFtZSI6ICJzaXgiLAotICAgICJwYXRoIjogInRvb2xzIiwKLSAgICAi
dXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9qZ3JhaGFtL3NpeC9hcmNoaXZlLzNiNjE3M2M4MzNk
MjE3YWIwMTg2YzM1NTgwNGY1OTI1Y2JjZmNhNDcudGFyLmd6IiwKLSAgICAidXJsX3N1YnBhdGgi
OiAic2l4LTNiNjE3M2M4MzNkMjE3YWIwMTg2YzM1NTgwNGY1OTI1Y2JjZmNhNDciCi19LAotewot
ICAgICJuYW1lIjogIndwdHNlcnZlIiwKLSAgICAicGF0aCI6ICJ0b29scyIsCi0gICAgInVybCI6
ICJodHRwczovL2dpdGh1Yi5jb20vdzNjL3dwdHNlcnZlL2FyY2hpdmUvOTFlNzY0ZmZhMGY1ODcw
OTAzNDFhMjZhZjQ1N2RmZGM2NzYyZWIwZC50YXIuZ3oiLAotICAgICJ1cmxfc3VicGF0aCI6ICJ3
cHRzZXJ2ZS05MWU3NjRmZmEwZjU4NzA5MDM0MWEyNmFmNDU3ZGZkYzY3NjJlYjBkIgotfSwKLXsK
LSAgICAibmFtZSI6ICJyZXNvdXJjZXMiLAotICAgICJwYXRoIjogIi4iLAotICAgICJ1cmwiOiAi
aHR0cHM6Ly9naXRodWIuY29tL3czYy90ZXN0aGFybmVzcy5qcy9hcmNoaXZlLzc0YmExM2QyZmJi
MTljNmU3NDk0OTYwYmQ3NzI0ODczZTg4YzUyM2MudGFyLmd6IiwKLSAgICAidXJsX3N1YnBhdGgi
OiAidGVzdGhhcm5lc3MuanMtNzRiYTEzZDJmYmIxOWM2ZTc0OTQ5NjBiZDc3MjQ4NzNlODhjNTIz
YyIKLX0KLV0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9yZXNvdXJjZXMv
d2ViLXBsYXRmb3JtLXRlc3RzLm1vZHVsZXMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvcmVz
b3VyY2VzL3dlYi1wbGF0Zm9ybS10ZXN0cy5tb2R1bGVzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIxZmEwYjFmZjY2
M2Q1ODM5ZjczNDBiMWY0MDRhMmI5N2EwYTIxOTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvcmVzb3VyY2VzL3dlYi1wbGF0Zm9ybS10ZXN0cy5tb2R1bGVzCkBA
IC0wLDAgKzEsNDIgQEAKK1sKKyAgICB7CisgICAgICAgICJuYW1lIjogInJlc291cmNlcyIsIAor
ICAgICAgICAicGF0aCI6IFsKKyAgICAgICAgICAgICIuIgorICAgICAgICBdLCAKKyAgICAgICAg
InVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdzNjL3Rlc3RoYXJuZXNzLmpzL2FyY2hpdmUvYWRi
NGQzOTFhNjk4NzdkNGExZWFhZjUxZDE3MjVjOTlhNWI4ZWQ4NC50YXIuZ3oiLCAKKyAgICAgICAg
InVybF9zdWJwYXRoIjogInRlc3RoYXJuZXNzLmpzLWFkYjRkMzkxYTY5ODc3ZDRhMWVhYWY1MWQx
NzI1Yzk5YTViOGVkODQiCisgICAgfSwgCisgICAgeworICAgICAgICAibmFtZSI6ICJ3cHRzZXJ2
ZSIsIAorICAgICAgICAicGF0aCI6IFsKKyAgICAgICAgICAgICJ0b29scyIKKyAgICAgICAgXSwg
CisgICAgICAgICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3czYy93cHRzZXJ2ZS9hcmNoaXZl
LzkxZTc2NGZmYTBmNTg3MDkwMzQxYTI2YWY0NTdkZmRjNjc2MmViMGQudGFyLmd6IiwgCisgICAg
ICAgICJ1cmxfc3VicGF0aCI6ICJ3cHRzZXJ2ZS05MWU3NjRmZmEwZjU4NzA5MDM0MWEyNmFmNDU3
ZGZkYzY3NjJlYjBkIgorICAgIH0sIAorICAgIHsKKyAgICAgICAgIm5hbWUiOiAicHl3ZWJzb2Nr
ZXQiLCAKKyAgICAgICAgInBhdGgiOiBbCisgICAgICAgICAgICAidG9vbHMiCisgICAgICAgIF0s
IAorICAgICAgICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS93M2MvcHl3ZWJzb2NrZXQvYXJj
aGl2ZS84YzI4NWQ5MDE1MTIxZThjMWM0MGJlODUyNDM5ZmMwM2I0YTE4MTEyLnRhci5neiIsIAor
ICAgICAgICAidXJsX3N1YnBhdGgiOiAicHl3ZWJzb2NrZXQtOGMyODVkOTAxNTEyMWU4YzFjNDBi
ZTg1MjQzOWZjMDNiNGExODExMiIKKyAgICB9LCAKKyAgICB7CisgICAgICAgICJuYW1lIjogImh0
bWw1bGliIiwgCisgICAgICAgICJwYXRoIjogWworICAgICAgICAgICAgInRvb2xzIgorICAgICAg
ICBdLCAKKyAgICAgICAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaHRtbDVsaWIvaHRtbDVs
aWItcHl0aG9uL2FyY2hpdmUvN2NjZTY1YmJhYTc4NDExZjk4YjhiMzdlZWVmYzlkYjAzYzU4MDA5
Ny50YXIuZ3oiLCAKKyAgICAgICAgInVybF9zdWJwYXRoIjogImh0bWw1bGliLXB5dGhvbi03Y2Nl
NjViYmFhNzg0MTFmOThiOGIzN2VlZWZjOWRiMDNjNTgwMDk3IgorICAgIH0sIAorICAgIHsKKyAg
ICAgICAgIm5hbWUiOiAic2l4IiwgCisgICAgICAgICJwYXRoIjogWworICAgICAgICAgICAgInRv
b2xzIgorICAgICAgICBdLCAKKyAgICAgICAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vamdy
YWhhbS9zaXgvYXJjaGl2ZS8zYjYxNzNjODMzZDIxN2FiMDE4NmMzNTU4MDRmNTkyNWNiY2ZjYTQ3
LnRhci5neiIsIAorICAgICAgICAidXJsX3N1YnBhdGgiOiAic2l4LTNiNjE3M2M4MzNkMjE3YWIw
MTg2YzM1NTgwNGY1OTI1Y2JjZmNhNDciCisgICAgfQorXQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9m
IGZpbGUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>248744</attachid>
            <date>2015-03-16 13:00:23 -0700</date>
            <delta_ts>2015-03-18 06:09:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-142738-20150316205952.patch</filename>
            <type>text/plain</type>
            <size>16238</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgxNTI2CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMzJiZjMzMGM0MTVjYzJjZTBiMzQ4NjU2MDc1NzM2MTk4
OGJkYTUwYi4uOTI1MDRhYTdkMmQ0MzczOWNjOWYxN2I5MmFiNTE3NTA2ZjAxMmYwZiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMy
IEBACisyMDE1LTAzLTE2ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uLmZhYmxldEBjcmYuY2Fub24u
ZnI+CisKKyAgICAgICAgVzNDIHRlc3QgaW1wb3J0ZXIgc2hvdWxkIGdlbmVyYXRlIHRoZSBtb2R1
bGVzIGluc3RhbGxlZCBkeW5hbWljYWxseSB0byBydW4gd3B0IHRlc3RzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI3MzgKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBMYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvcmVzb3VyY2VzL1dQVE1vZHVsZXMgcmVuYW1lZCBhcyBMYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvcmVzb3VyY2VzL3dlYi1wbGF0Zm9ybS10ZXN0cy5tb2R1bGVzCisgICAgICAgIGlzIGdlbmVy
YXRlZCBieSB0aGUgdGVzdCBpbXBvcnRlciBiYXNlZCBvbiBpbmZvcm1hdGlvbiBleHRyYWN0ZWQg
ZnJvbSB0aGUgd3B0IGdpdCByZXBvc2l0b3J5LgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvc2VydmVycy93ZWJfcGxhdGZvcm1fdGVzdF9zZXJ2ZXIucHk6CisgICAg
ICAgIChXZWJQbGF0Zm9ybVRlc3RTZXJ2ZXIuX2luc3RhbGxfbW9kdWxlcyk6IFVwZGF0ZWQgdG8g
Y29wZSB3aXRoIHBhdGggYXMgYXJyYXkuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS93M2Mv
dGVzdF9kb3dubG9hZGVyLnB5OgorICAgICAgICAoVGVzdERvd25sb2FkZXIuX3N1Ym1vZHVsZV9z
dGF0dXMpOiBBZGRlZCBzbyB0aGF0IGl0IGNhbiBiZSBvdmVycmlkZW4gZm9yIHVuaXQgdGVzdHMu
CisgICAgICAgIChUZXN0RG93bmxvYWRlcik6CisgICAgICAgIChUZXN0RG93bmxvYWRlci5zdWJt
b2R1bGVzX2Rlc2NyaXB0aW9uKTogQ29tcHV0ZXMgc3VibW9kdWxlIGRlc2NyaXB0aW9uLgorICAg
ICAgICAoVGVzdERvd25sb2FkZXIuZHVtcF9zdWJtb2R1bGVzX2Rlc2NyaXB0aW9uKTogV3JpdGUg
c3VibW9kdWxlIGRlc2NyaXB0aW9uIGluIGEgZmlsZS4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dHB5L3czYy90ZXN0X2ltcG9ydGVyLnB5OgorICAgICAgICAoVGVzdEltcG9ydGVyLmRvX2ltcG9y
dCk6IEFkZGVkIHRoZSBwb3NzaWJpbGl0eSB0byBwb3N0IHByb2Nlc3MgdGhlIHRlc3RzLgorICAg
ICAgICAoVGVzdEltcG9ydGVyKToKKyAgICAgICAgKFRlc3RJbXBvcnRlci5wb3N0X3Byb2Nlc3Nf
ZG93bmxvYWRlZF90ZXN0cyk6IFBvc3QgcHJvY2VzcyB0aGUgdGVzdHMgdG8gZW5hYmxlIGdlbmVy
YXRpbmcgbW9kdWxlIGRlc2NyaXB0aW9uIGZpbGUuCisgICAgICAgIChUZXN0SW1wb3J0ZXIuc2hv
dWxkX2NvbnZlcnRfdGVzdF9oYXJuZXNzX2xpbmtzKTogVXBkYXRlZCBhY2NvcmRpbmcgbmV3IG9w
dGlvbnMgZm9ybWF0LgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdzNjL3Rlc3RfaW1wb3J0
ZXJfdW5pdHRlc3QucHk6CisgICAgICAgIChUZXN0SW1wb3J0ZXJUZXN0LmltcG9ydF9kb3dubG9h
ZGVkX3Rlc3RzLlRlc3REb3dubG9hZGVyTW9jayk6IEFkZGVkIHRvIG92ZXJyaWRlIHN1Ym1vZHVs
ZSBzdGF0dXMgZ2F0aGVyaW5nLgorICAgICAgICAoVGVzdEltcG9ydGVyVGVzdC5pbXBvcnRfZG93
bmxvYWRlZF90ZXN0cy5UZXN0RG93bmxvYWRlck1vY2suX19pbml0X18pOgorICAgICAgICAoVGVz
dEltcG9ydGVyVGVzdC5pbXBvcnRfZG93bmxvYWRlZF90ZXN0cy5UZXN0RG93bmxvYWRlck1vY2su
X3N1Ym1vZHVsZV9zdGF0dXMpOgorICAgICAgICAoVGVzdEltcG9ydGVyVGVzdC5pbXBvcnRfZG93
bmxvYWRlZF90ZXN0cyk6IE1ha2luZyB1c2Ugb2YgVGVzdERvd25sb2FkZXJNb2NrLgorICAgICAg
ICAoVGVzdEltcG9ydGVyVGVzdC50ZXN0X3N1Ym1vZHVsZXNfZ2VuZXJhdGlvbik6IEFkZGVkIHRv
IGNoZWNrIHRoYXQgbW9kdWxlcyBkZXNjcmlwdGlvbiBmaWxlcyB3b3Jrcy4KKwogMjAxNS0wMy0x
NSAgQmVuamFtaW4gUG91bGFpbiAgPGJlbmphbWluQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQ1NT
OiBmaXggdGhlIGNhc2UtaW5zZW5zaXRpdmUgbWF0Y2hpbmcgb2YgdGhlIGF0dHJpYnV0ZSBzZWxl
Y3RvcnMgQmVnaW4sIEVuZCBhbmQgSHlwaGVuCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9zZXJ2ZXJzL3dlYl9wbGF0Zm9ybV90ZXN0X3NlcnZlci5weSBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3NlcnZlcnMvd2ViX3BsYXRmb3Jt
X3Rlc3Rfc2VydmVyLnB5CmluZGV4IDA0MWE5ZmUzNGEwMTQ1ZmZhMTUyMDRlYTUyNDQwOTcxYWJj
NzJhMzkuLmM2OTA2NzUwOWU4YzYzYzlmNGQ3YWZhNzRmNmQ2YTI1ZmFhYThjZGIgMTAwNzU1Ci0t
LSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3NlcnZlcnMvd2ViX3BsYXRm
b3JtX3Rlc3Rfc2VydmVyLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL3NlcnZlcnMvd2ViX3BsYXRmb3JtX3Rlc3Rfc2VydmVyLnB5CkBAIC03OSwxMyArNzksMTMg
QEAgY2xhc3MgV2ViUGxhdGZvcm1UZXN0U2VydmVyKGh0dHBfc2VydmVyX2Jhc2UuSHR0cFNlcnZl
ckJhc2UpOgogICAgICAgICBzZWxmLl9kb2Nfcm9vdF9wYXRoID0gcG9ydF9vYmoucGF0aF9mcm9t
X3dlYmtpdF9iYXNlKCJMYXlvdXRUZXN0cyIsIHNlbGYuX2RvY19yb290KQogCiAgICAgZGVmIF9p
bnN0YWxsX21vZHVsZXMoc2VsZik6Ci0gICAgICAgIG1vZHVsZXNfZmlsZV9wYXRoID0gc2VsZi5f
ZmlsZXN5c3RlbS5qb2luKHNlbGYuX2xheW91dF9yb290LCAiaW1wb3J0ZWQiLCAidzNjIiwgInJl
c291cmNlcyIsICJXUFRNb2R1bGVzIikKKyAgICAgICAgbW9kdWxlc19maWxlX3BhdGggPSBzZWxm
Ll9maWxlc3lzdGVtLmpvaW4oc2VsZi5fbGF5b3V0X3Jvb3QsICJpbXBvcnRlZCIsICJ3M2MiLCAi
cmVzb3VyY2VzIiwgIndlYi1wbGF0Zm9ybS10ZXN0cy5tb2R1bGVzIikKICAgICAgICAgaWYgbm90
IHNlbGYuX2ZpbGVzeXN0ZW0uaXNmaWxlKG1vZHVsZXNfZmlsZV9wYXRoKToKICAgICAgICAgICAg
IF9sb2cud2FybmluZygiQ2Fubm90IHJlYWQgIiArIG1vZHVsZXNfZmlsZV9wYXRoKQogICAgICAg
ICAgICAgcmV0dXJuCiAgICAgICAgIG1vZHVsZXMgPSBqc29uLmxvYWRzKHNlbGYuX2ZpbGVzeXN0
ZW0ucmVhZF90ZXh0X2ZpbGUobW9kdWxlc19maWxlX3BhdGgpKQogICAgICAgICBmb3IgbW9kdWxl
IGluIG1vZHVsZXM6Ci0gICAgICAgICAgICBBdXRvSW5zdGFsbGVyKHRhcmdldF9kaXI9c2VsZi5f
ZmlsZXN5c3RlbS5qb2luKHNlbGYuX2RvY19yb290LCBtb2R1bGVbInBhdGgiXSkpLmluc3RhbGwo
dXJsPW1vZHVsZVsidXJsIl0sIHVybF9zdWJwYXRoPW1vZHVsZVsidXJsX3N1YnBhdGgiXSwgdGFy
Z2V0X25hbWU9bW9kdWxlWyJuYW1lIl0pCisgICAgICAgICAgICBBdXRvSW5zdGFsbGVyKHRhcmdl
dF9kaXI9c2VsZi5fZmlsZXN5c3RlbS5qb2luKHNlbGYuX2RvY19yb290LCBzZWxmLl9maWxlc3lz
dGVtLnNlcC5qb2luKG1vZHVsZVsicGF0aCJdKSkpLmluc3RhbGwodXJsPW1vZHVsZVsidXJsIl0s
IHVybF9zdWJwYXRoPW1vZHVsZVsidXJsX3N1YnBhdGgiXSwgdGFyZ2V0X25hbWU9bW9kdWxlWyJu
YW1lIl0pCiAKICAgICBkZWYgX2NvcHlfd2Via2l0X3Rlc3RfZmlsZXMoc2VsZik6CiAgICAgICAg
IF9sb2cuZGVidWcoJ0NvcHlpbmcgV2ViS2l0IHJlc291cmNlcyBmaWxlcycpCmRpZmYgLS1naXQg
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3czYy90ZXN0X2Rvd25sb2FkZXIucHkgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L3czYy90ZXN0X2Rvd25sb2FkZXIucHkKaW5kZXggMjE1MTZlYzRlZDJh
MTQ5MWU4MTkyOTkyZDU2MjI1NzBhZGU4MTgyYi4uMDZlOWVjYTBkMWFhMWJiOTBmZTI2ODY3MDc5
MzQ1ZjA1YjZmZmZhMiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS93M2MvdGVz
dF9kb3dubG9hZGVyLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdzNjL3Rlc3RfZG93
bmxvYWRlci5weQpAQCAtMTUxLDYgKzE1MSw0NyBAQCBjbGFzcyBUZXN0RG93bmxvYWRlcihvYmpl
Y3QpOgogICAgICAgICAgICAgaWYgc2VsZi5fZmlsZXN5c3RlbS5pc2ZpbGUoZGVzdGluYXRpb25f
cGF0aCk6CiAgICAgICAgICAgICAgICAgc2VsZi5fZmlsZXN5c3RlbS5yZW1vdmUoZGVzdGluYXRp
b25fcGF0aCkKIAorICAgIGRlZiBfc3VibW9kdWxlX3N0YXR1cyhzZWxmLCByZXBvc2l0b3J5X2Rp
cmVjdG9yeSk6CisgICAgICAgIHJldHVybiBzZWxmLmdpdChyZXBvc2l0b3J5X2RpcmVjdG9yeSku
X3J1bl9naXQoWydzdWJtb2R1bGUnLCAnc3RhdHVzJ10pCisKKyAgICBkZWYgc3VibW9kdWxlc19k
ZXNjcmlwdGlvbihzZWxmLCB0ZXN0X3JlcG9zaXRvcnkpOgorICAgICAgICBzdWJtb2R1bGVzID0g
W10KKyAgICAgICAgcmVwb3NpdG9yeV9kaXJlY3RvcnkgPSBzZWxmLl9maWxlc3lzdGVtLmpvaW4o
c2VsZi5yZXBvc2l0b3J5X2RpcmVjdG9yeSwgdGVzdF9yZXBvc2l0b3J5WyduYW1lJ10pCisgICAg
ICAgIGlmIHNlbGYuX2ZpbGVzeXN0ZW0uaXNmaWxlKHNlbGYuX2ZpbGVzeXN0ZW0uam9pbihyZXBv
c2l0b3J5X2RpcmVjdG9yeSwgJy5naXRtb2R1bGVzJykpOgorICAgICAgICAgICAgc3VibW9kdWxl
ID0ge30KKyAgICAgICAgICAgIGZvciBsaW5lIGluIHNlbGYuX2ZpbGVzeXN0ZW0ucmVhZF90ZXh0
X2ZpbGUoc2VsZi5fZmlsZXN5c3RlbS5qb2luKHJlcG9zaXRvcnlfZGlyZWN0b3J5LCAnLmdpdG1v
ZHVsZXMnKSkuc3BsaXRsaW5lcygpOgorICAgICAgICAgICAgICAgIGxpbmUgPSBsaW5lLnN0cmlw
KCkKKyAgICAgICAgICAgICAgICBpZiBsaW5lLnN0YXJ0c3dpdGgoJ3BhdGggPSAnKToKKyAgICAg
ICAgICAgICAgICAgICAgc3VibW9kdWxlWydwYXRoJ10gPSBsaW5lWzc6XQorICAgICAgICAgICAg
ICAgIGVsaWYgbGluZS5zdGFydHN3aXRoKCd1cmwgPSAnKToKKyAgICAgICAgICAgICAgICAgICAg
c3VibW9kdWxlWyd1cmwnXSA9IGxpbmVbNjpdCisgICAgICAgICAgICAgICAgICAgIGlmIG5vdCBz
dWJtb2R1bGVbJ3VybCddLnN0YXJ0c3dpdGgoJ2h0dHBzOi8vZ2l0aHViLmNvbS8nKToKKyAgICAg
ICAgICAgICAgICAgICAgICAgIF9sb2cud2FybmluZygnc3VibW9kdWxlICVzIG5vdCBob3N0ZWQg
b24gZ2l0aHViJyAlIHN1Ym1vZHVsZVsncGF0aCddKQorICAgICAgICAgICAgICAgICAgICBzdWJt
b2R1bGVzLmFwcGVuZChzdWJtb2R1bGUpCisgICAgICAgICAgICAgICAgICAgIHN1Ym1vZHVsZSA9
IHt9CisKKyAgICAgICAgc3VibW9kdWxlX3N0YXR1cyA9IHNlbGYuX3N1Ym1vZHVsZV9zdGF0dXMo
cmVwb3NpdG9yeV9kaXJlY3RvcnkpCisgICAgICAgIHN1Ym1vZHVsZV9zdGF0dXMgPSBbbGluZVsx
Ol0uc3BsaXQoJyAnKSBmb3IgbGluZSBpbiBzZWxmLl9zdWJtb2R1bGVfc3RhdHVzKHJlcG9zaXRv
cnlfZGlyZWN0b3J5KS5zcGxpdGxpbmVzKCldCisgICAgICAgIGZvciBzdWJtb2R1bGUgaW4gc3Vi
bW9kdWxlczoKKyAgICAgICAgICAgIGZvciBzdGF0dXMgaW4gc3VibW9kdWxlX3N0YXR1czoKKyAg
ICAgICAgICAgICAgICBpZiBzdWJtb2R1bGVbJ3BhdGgnXSA9PSBzdGF0dXNbMV06CisgICAgICAg
ICAgICAgICAgICAgIHVybCA9IHN1Ym1vZHVsZVsndXJsJ11bOi00XQorICAgICAgICAgICAgICAg
ICAgICB2ZXJzaW9uID0gc3RhdHVzWzBdCisgICAgICAgICAgICAgICAgICAgIHJlcG9zaXRvcnlf
bmFtZSA9IHVybC5zcGxpdCgnLycpLnBvcCgpCisgICAgICAgICAgICAgICAgICAgIHN1Ym1vZHVs
ZVsndXJsJ10gPSB1cmwgKyAnL2FyY2hpdmUvJyArIHZlcnNpb24gKyAnLnRhci5neicKKyAgICAg
ICAgICAgICAgICAgICAgc3VibW9kdWxlWyd1cmxfc3VicGF0aCddID0gcmVwb3NpdG9yeV9uYW1l
ICsgJy0nICsgdmVyc2lvbgorICAgICAgICAgICAgaWYgJy8nIGluIHN1Ym1vZHVsZVsncGF0aCdd
OgorICAgICAgICAgICAgICAgIHN0ZXBzID0gc3VibW9kdWxlWydwYXRoJ10uc3BsaXQoJy8nKQor
ICAgICAgICAgICAgICAgIHN1Ym1vZHVsZVsnbmFtZSddID0gc3RlcHMucG9wKCkKKyAgICAgICAg
ICAgICAgICBzdWJtb2R1bGVbJ3BhdGgnXSA9IHN0ZXBzCisgICAgICAgICAgICBlbHNlOgorICAg
ICAgICAgICAgICAgIHN1Ym1vZHVsZVsnbmFtZSddID0gc3VibW9kdWxlWydwYXRoJ10KKyAgICAg
ICAgICAgICAgICBzdWJtb2R1bGVbJ3BhdGgnXSA9IFsnLiddCisgICAgICAgIHJldHVybiBzdWJt
b2R1bGVzCisKKyAgICBkZWYgZHVtcF9zdWJtb2R1bGVzX2Rlc2NyaXB0aW9uKHNlbGYsIHRlc3Rf
cmVwb3NpdG9yeSwgZmlsZXBhdGgpOgorICAgICAgICBzZWxmLl9maWxlc3lzdGVtLndyaXRlX3Rl
eHRfZmlsZShmaWxlcGF0aCwganNvbi5kdW1wcyhzZWxmLnN1Ym1vZHVsZXNfZGVzY3JpcHRpb24o
dGVzdF9yZXBvc2l0b3J5KSwgc29ydF9rZXlzPVRydWUsIGluZGVudD00KSkKKwogICAgIGRlZiBk
b3dubG9hZF90ZXN0cyhzZWxmLCBkZXN0aW5hdGlvbl9kaXJlY3RvcnksIHRlc3RfcGF0aHM9W10p
OgogICAgICAgICBmb3IgdGVzdF9yZXBvc2l0b3J5IGluIHNlbGYudGVzdF9yZXBvc2l0b3JpZXM6
CiAgICAgICAgICAgICBzZWxmLmNoZWNrb3V0X3Rlc3RfcmVwb3NpdG9yeSh0ZXN0X3JlcG9zaXRv
cnlbJ3JldmlzaW9uJ10sIHRlc3RfcmVwb3NpdG9yeVsndXJsJ10sIHNlbGYuX2ZpbGVzeXN0ZW0u
am9pbihzZWxmLnJlcG9zaXRvcnlfZGlyZWN0b3J5LCB0ZXN0X3JlcG9zaXRvcnlbJ25hbWUnXSkp
CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3czYy90ZXN0X2ltcG9ydGVyLnB5
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS93M2MvdGVzdF9pbXBvcnRlci5weQppbmRleCAwNjE3
MmMzZjlkYjBhY2NkNTJjMjgwNDEyMDhmYTUzZGU1MjMzZDhiLi5iNDg3Y2Y5MmE3ZGY4MGU4NTk4
MGYwYWRlZWFlZWEzNTEyZmE3OTNjIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L3czYy90ZXN0X2ltcG9ydGVyLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdzNjL3Rl
c3RfaW1wb3J0ZXIucHkKQEAgLTE5MCw2ICsxOTAsMTUgQEAgY2xhc3MgVGVzdEltcG9ydGVyKG9i
amVjdCk6CiAKICAgICAgICAgc2VsZi5pbXBvcnRfdGVzdHMoKQogCisgICAgICAgIGlmIHNlbGYu
X2ltcG9ydGluZ19kb3dubG9hZGVkX3Rlc3RzOgorICAgICAgICAgICAgc2VsZi5wb3N0X3Byb2Nl
c3NfZG93bmxvYWRlZF90ZXN0cygpCisKKyAgICBkZWYgcG9zdF9wcm9jZXNzX2Rvd25sb2FkZWRf
dGVzdHMoc2VsZik6CisgICAgICAgIGZvciB0ZXN0X3JlcG9zaXRvcnkgaW4gc2VsZi5fdGVzdF9k
b3dubG9hZGVyLnRlc3RfcmVwb3NpdG9yaWVzOgorICAgICAgICAgICAgaWYgJ2R1bXBfc3VibW9k
dWxlc19kZXNjcmlwdGlvbicgaW4gdGVzdF9yZXBvc2l0b3J5WydpbXBvcnRfb3B0aW9ucyddOgor
ICAgICAgICAgICAgICAgIHNlbGYuZmlsZXN5c3RlbS5tYXliZV9tYWtlX2RpcmVjdG9yeShzZWxm
LmZpbGVzeXN0ZW0uam9pbihzZWxmLmRlc3RpbmF0aW9uX2RpcmVjdG9yeSwgJ3Jlc291cmNlcycp
KQorICAgICAgICAgICAgICAgIHNlbGYuX3Rlc3RfZG93bmxvYWRlci5kdW1wX3N1Ym1vZHVsZXNf
ZGVzY3JpcHRpb24odGVzdF9yZXBvc2l0b3J5LCBzZWxmLmZpbGVzeXN0ZW0uam9pbihzZWxmLmRl
c3RpbmF0aW9uX2RpcmVjdG9yeSwgJ3Jlc291cmNlcycsIHRlc3RfcmVwb3NpdG9yeVsnbmFtZSdd
ICsgJy5tb2R1bGVzJykpCisKICAgICBkZWYgdGVzdF9kb3dubG9hZGVyKHNlbGYpOgogICAgICAg
ICBpZiBub3Qgc2VsZi5fdGVzdF9kb3dubG9hZGVyOgogICAgICAgICAgICAgZG93bmxvYWRfb3B0
aW9ucyA9IFRlc3REb3dubG9hZGVyLmRlZmF1bHRfb3B0aW9ucygpCkBAIC0yODEsNyArMjkwLDcg
QEAgY2xhc3MgVGVzdEltcG9ydGVyKG9iamVjdCk6CiAgICAgICAgIGlmIHNlbGYuX2ltcG9ydGlu
Z19kb3dubG9hZGVkX3Rlc3RzOgogICAgICAgICAgICAgZm9yIHRlc3RfcmVwb3NpdG9yeSBpbiBz
ZWxmLnRlc3RfZG93bmxvYWRlcigpLnRlc3RfcmVwb3NpdG9yaWVzOgogICAgICAgICAgICAgICAg
IGlmIHRlc3Quc3RhcnRzd2l0aCh0ZXN0X3JlcG9zaXRvcnlbJ25hbWUnXSk6Ci0gICAgICAgICAg
ICAgICAgICAgIHJldHVybiB0ZXN0X3JlcG9zaXRvcnlbJ2NvbnZlcnRfdGVzdF9oYXJuZXNzX2xp
bmtzJ10KKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdjb252ZXJ0X3Rlc3RfaGFybmVzc19s
aW5rcycgaW4gdGVzdF9yZXBvc2l0b3J5WydpbXBvcnRfb3B0aW9ucyddCiAgICAgICAgICAgICBy
ZXR1cm4gVHJ1ZQogICAgICAgICByZXR1cm4gc2VsZi5vcHRpb25zLmNvbnZlcnRfdGVzdF9oYXJu
ZXNzX2xpbmtzCiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdzNjL3Rlc3Rf
aW1wb3J0ZXJfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3czYy90ZXN0X2lt
cG9ydGVyX3VuaXR0ZXN0LnB5CmluZGV4IDVhMDkxMzM4N2EyN2NiNjIzZGQ2MTZlNjU3MGQ2ZjQy
M2IwOWI3NWMuLjRkMWNhMjFhZWUxNWQxNGUzMjc4YzU1YWM4YTg3ZTE0Y2U4ZWZmOGUgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdzNjL3Rlc3RfaW1wb3J0ZXJfdW5pdHRlc3Qu
cHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS93M2MvdGVzdF9pbXBvcnRlcl91bml0dGVz
dC5weQpAQCAtOTUsMTIgKzk1LDIxIEBAIGNsYXNzIFRlc3RJbXBvcnRlclRlc3QodW5pdHRlc3Qu
VGVzdENhc2UpOgogCiAgICAgZGVmIGltcG9ydF9kb3dubG9hZGVkX3Rlc3RzKHNlbGYsIGFyZ3Ms
IGZpbGVzKToKICAgICAgICAgIyBmaWxlcyBhcmUgcGFzc2VkIGFzIHBhcmFtZXRlciBhcyB3ZSBj
YW5ub3QgY2xvbmUvZmV0Y2gvY2hlY2tvdXQgYSByZXBvIGluIG1vY2sgc3lzdGVtLgorCisgICAg
ICAgIGNsYXNzIFRlc3REb3dubG9hZGVyTW9jayhUZXN0RG93bmxvYWRlcik6CisgICAgICAgICAg
ICBkZWYgX19pbml0X18oc2VsZiwgcmVwb3NpdG9yeV9kaXJlY3RvcnksIGhvc3QsIG9wdGlvbnMp
OgorICAgICAgICAgICAgICAgIFRlc3REb3dubG9hZGVyLl9faW5pdF9fKHNlbGYsIHJlcG9zaXRv
cnlfZGlyZWN0b3J5LCBob3N0LCBvcHRpb25zKQorCisgICAgICAgICAgICBkZWYgX3N1Ym1vZHVs
ZV9zdGF0dXMoc2VsZiwgcmVwb3NpdG9yeV9kaXJlY3RvcnkpOgorICAgICAgICAgICAgICAgIHJl
dHVybiAnYWRiNGQzOTFhNjk4NzdkNGExZWFhZjUxZDE3MjVjOTlhNWI4ZWQ4NCB0b29scy9yZXNv
dXJjZXMnCisKICAgICAgICAgaG9zdCA9IE1vY2tIb3N0KCkKICAgICAgICAgaG9zdC5leGVjdXRp
dmUgPSBNb2NrRXhlY3V0aXZlMigpCiAgICAgICAgIGhvc3QuZmlsZXN5c3RlbSA9IE1vY2tGaWxl
U3lzdGVtKGZpbGVzPWZpbGVzKQogCiAgICAgICAgIG9wdGlvbnMsIGFyZ3MgPSBwYXJzZV9hcmdz
KGFyZ3MpCiAgICAgICAgIGltcG9ydGVyID0gVGVzdEltcG9ydGVyKGhvc3QsIE5vbmUsIG9wdGlv
bnMpCisgICAgICAgIGltcG9ydGVyLl90ZXN0X2Rvd25sb2FkZXIgPSBUZXN0RG93bmxvYWRlck1v
Y2soaW1wb3J0ZXIudGVzdHNfZG93bmxvYWRfcGF0aCwgaW1wb3J0ZXIuaG9zdCwgaW1wb3J0ZXIu
b3B0aW9ucykKICAgICAgICAgaW1wb3J0ZXIuZG9faW1wb3J0KCkKICAgICAgICAgcmV0dXJuIGhv
c3QuZmlsZXN5c3RlbQogCkBAIC0xMTksNCArMTI4LDE3IEBAIGNsYXNzIFRlc3RJbXBvcnRlclRl
c3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBzZWxmLmFzc2VydFRydWUoJ3NyYz0iL3Jl
c291cmNlcy90ZXN0aGFybmVzcy5qcyInIGluIGZzLnJlYWRfdGV4dF9maWxlKCcvbW9jay1jaGVj
a291dC9MYXlvdXRUZXN0cy93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3QvdGVzdC5odG1sJykpCiAg
ICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgnc3JjPSIuLi8nIGluIGZzLnJlYWRfdGV4dF9maWxlKCcv
bW9jay1jaGVja291dC9MYXlvdXRUZXN0cy93M2MvY3Nzd2ctdGVzdHMvdC90ZXN0Lmh0bWwnKSkK
IAorICAgIGRlZiB0ZXN0X3N1Ym1vZHVsZXNfZ2VuZXJhdGlvbihzZWxmKToKKyAgICAgICAgRkFL
RV9GSUxFUyA9IHsKKyAgICAgICAgICAgICcvbW9jay1jaGVja291dC9XZWJLaXRCdWlsZC93M2Mt
dGVzdHMvY3Nzd2ctdGVzdHMvLmdpdG1vZHVsZXMnOiAnW3N1Ym1vZHVsZSAidG9vbHMvcmVzb3Vy
Y2VzIl1cbglwYXRoID0gdG9vbHMvcmVzb3VyY2VzXG4JdXJsID0gaHR0cHM6Ly9naXRodWIuY29t
L3czYy90ZXN0aGFybmVzcy5qcy5naXRcbiAgaWdub3JlID0gZGlydHlcbicsCisgICAgICAgICAg
ICAnL21vY2stY2hlY2tvdXQvV2ViS2l0QnVpbGQvdzNjLXRlc3RzL3dlYi1wbGF0Zm9ybS10ZXN0
cy8uZ2l0bW9kdWxlcyc6ICdbc3VibW9kdWxlICJ0b29scy9yZXNvdXJjZXMiXVxuCXBhdGggPSB0
b29scy9yZXNvdXJjZXNcbgl1cmwgPSBodHRwczovL2dpdGh1Yi5jb20vdzNjL3Rlc3RoYXJuZXNz
LmpzLmdpdFxuICBpZ25vcmUgPSBkaXJ0eVxuJywKKyAgICAgICAgfQorCisgICAgICAgIGZzID0g
c2VsZi5pbXBvcnRfZG93bmxvYWRlZF90ZXN0cyhbJy0tbm8tZmV0Y2gnLCAnLS1pbXBvcnQtYWxs
JywgJy1kJywgJ3czYyddLCBGQUtFX0ZJTEVTKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2Uo
ZnMuZXhpc3RzKCcvbW9jay1jaGVja291dC9MYXlvdXRUZXN0cy93M2MvcmVzb3VyY2VzL2Nzc3dn
LXRlc3RzLm1vZHVsZXMnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGZzLmV4aXN0cygnL21v
Y2stY2hlY2tvdXQvTGF5b3V0VGVzdHMvdzNjL3Jlc291cmNlcy93ZWItcGxhdGZvcm0tdGVzdHMu
bW9kdWxlcycpKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoJ2h0dHBzOi8vZ2l0aHViLmNvbS93
M2MvdGVzdGhhcm5lc3MuanMvYXJjaGl2ZS9kYjRkMzkxYTY5ODc3ZDRhMWVhYWY1MWQxNzI1Yzk5
YTViOGVkODQudGFyLmd6JyBpbiBmcy5yZWFkX3RleHRfZmlsZSgnL21vY2stY2hlY2tvdXQvTGF5
b3V0VGVzdHMvdzNjL3Jlc291cmNlcy93ZWItcGxhdGZvcm0tdGVzdHMubW9kdWxlcycpKQorCisK
ICAgICAjIEZJWE1FOiBOZWVkcyBtb3JlIHRlc3RzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VM
b2cKaW5kZXggYmM0NzY0YzEyMDNmZjc0YjI3YzliYWM3MDY1ZGE0YzJmNGU3NTZkZS4uNjk1NWQy
YmRmNzg1ZTk2YTY5OWU5NTUwYzJmZjE3ODE4NzI1MDdlMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTUtMDMtMTYgIFlvdWVubiBGYWJsZXQgIDx5
b3Vlbm4uZmFibGV0QGNyZi5jYW5vbi5mcj4KKworICAgICAgICBXM0MgdGVzdCBpbXBvcnRlciBz
aG91bGQgZ2VuZXJhdGUgdGhlIG1vZHVsZXMgaW5zdGFsbGVkIGR5bmFtaWNhbGx5IHRvIHJ1biB3
cHQgdGVzdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE0MjczOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogcmVzb3VyY2VzL1Rlc3RSZXBvc2l0b3JpZXM6IFVwZGF0ZWQgaW1wb3J0IG9wdGlvbnMgdG8g
Z2VuZXJhdGUgbW9kdWxlcyBkZXNjcmlwdGlvbi4KKyAgICAgICAgKiByZXNvdXJjZXMvV1BUTW9k
dWxlczogUmVtb3ZlZC4KKyAgICAgICAgKiByZXNvdXJjZXMvd2ViLXBsYXRmb3JtLXRlc3RzLm1v
ZHVsZXM6IEFkZGVkLgorCiAyMDE1LTAzLTEzICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uLmZhYmxl
dEBjcmYuY2Fub24uZnI+CiAKICAgICAgICAgV2ViS2l0IHRlc3QgaW5mcmFzdHJ1Y3R1cmUgc2hv
dWxkIGF1dG9tYXRlIHRoZSBwcm9jZXNzIG9mIGNsb25pbmcgVzNDIHRlc3Qgc3VpdGUgYW5kIGlt
cG9ydGluZyB0ZXN0cyBmcm9tIGl0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvcmVzb3VyY2VzL1Rlc3RSZXBvc2l0b3JpZXMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
cmVzb3VyY2VzL1Rlc3RSZXBvc2l0b3JpZXMKaW5kZXggOTU2OGUyMDk2N2FhMDYyYjc4Yzk2YmVk
ZDE2YTdhOWYxMzk2MDI2OS4uMDNiN2U1YmE1OWE5MmYyOGE1MjQ4ZjJhZTE2MTRhZTFjMTMyNWMx
NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3Jlc291cmNlcy9UZXN0UmVw
b3NpdG9yaWVzCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9yZXNvdXJjZXMvVGVzdFJl
cG9zaXRvcmllcwpAQCAtMTAsNyArMTAsNyBAQAogICAgICAgICAicGF0aHNfdG9faW1wb3J0Ijog
WwogICAgICAgICAgICAgInN1cHBvcnQiCiAgICAgICAgIF0sCi0gICAgICAgICJjb252ZXJ0X3Rl
c3RfaGFybmVzc19saW5rcyI6IHRydWUKKyAgICAgICAgImltcG9ydF9vcHRpb25zIjogWyJjb252
ZXJ0X3Rlc3RfaGFybmVzc19saW5rcyJdCiAgICAgfSwKICAgICB7CiAgICAgICAgICJuYW1lIjog
IndlYi1wbGF0Zm9ybS10ZXN0cyIsCkBAIC0zMCw2ICszMCw2IEBACiAgICAgICAgICAgICAiY29u
ZmlnLmRlZmF1bHQuanNvbiIsCiAgICAgICAgICAgICAic2VydmUucHkiCiAgICAgICAgIF0sCi0g
ICAgICAgICJjb252ZXJ0X3Rlc3RfaGFybmVzc19saW5rcyI6IGZhbHNlCisgICAgICAgICJpbXBv
cnRfb3B0aW9ucyI6IFsiZHVtcF9zdWJtb2R1bGVzX2Rlc2NyaXB0aW9uIl0KICAgICB9CiBdCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvcmVzb3VyY2VzL1dQVE1vZHVsZXMg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvcmVzb3VyY2VzL1dQVE1vZHVsZXMKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDYyODQ1ZmE3Y2Q0MTAyODBmMmY1NzA4ZTBlMzEwZDc0NDk1
ZDg2MjcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3Jlc291cmNlcy9XUFRNb2R1bGVzCisrKyAvZGV2L251bGwK
QEAgLTEsMzIgKzAsMCBAQAotWwotewotICAgICJuYW1lIjogImh0bWw1bGliIiwKLSAgICAicGF0
aCI6ICJ0b29scyIsCi0gICAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaHRtbDVsaWIvaHRt
bDVsaWItcHl0aG9uL2FyY2hpdmUvN2NjZTY1YmJhYTc4NDExZjk4YjhiMzdlZWVmYzlkYjAzYzU4
MDA5Ny50YXIuZ3oiLAotICAgICJ1cmxfc3VicGF0aCI6ICJodG1sNWxpYi1weXRob24tN2NjZTY1
YmJhYTc4NDExZjk4YjhiMzdlZWVmYzlkYjAzYzU4MDA5NyIKLX0sCi17Ci0gICAgIm5hbWUiOiAi
cHl3ZWJzb2NrZXQiLAotICAgICJwYXRoIjogInRvb2xzIiwKLSAgICAidXJsIjogImh0dHBzOi8v
Z2l0aHViLmNvbS93M2MvcHl3ZWJzb2NrZXQvYXJjaGl2ZS84YzI4NWQ5MDE1MTIxZThjMWM0MGJl
ODUyNDM5ZmMwM2I0YTE4MTEyLnRhci5neiIsCi0gICAgInVybF9zdWJwYXRoIjogInB5d2Vic29j
a2V0LThjMjg1ZDkwMTUxMjFlOGMxYzQwYmU4NTI0MzlmYzAzYjRhMTgxMTIiCi19LAotewotICAg
ICJuYW1lIjogInNpeCIsCi0gICAgInBhdGgiOiAidG9vbHMiLAotICAgICJ1cmwiOiAiaHR0cHM6
Ly9naXRodWIuY29tL2pncmFoYW0vc2l4L2FyY2hpdmUvM2I2MTczYzgzM2QyMTdhYjAxODZjMzU1
ODA0ZjU5MjVjYmNmY2E0Ny50YXIuZ3oiLAotICAgICJ1cmxfc3VicGF0aCI6ICJzaXgtM2I2MTcz
YzgzM2QyMTdhYjAxODZjMzU1ODA0ZjU5MjVjYmNmY2E0NyIKLX0sCi17Ci0gICAgIm5hbWUiOiAi
d3B0c2VydmUiLAotICAgICJwYXRoIjogInRvb2xzIiwKLSAgICAidXJsIjogImh0dHBzOi8vZ2l0
aHViLmNvbS93M2Mvd3B0c2VydmUvYXJjaGl2ZS85MWU3NjRmZmEwZjU4NzA5MDM0MWEyNmFmNDU3
ZGZkYzY3NjJlYjBkLnRhci5neiIsCi0gICAgInVybF9zdWJwYXRoIjogIndwdHNlcnZlLTkxZTc2
NGZmYTBmNTg3MDkwMzQxYTI2YWY0NTdkZmRjNjc2MmViMGQiCi19LAotewotICAgICJuYW1lIjog
InJlc291cmNlcyIsCi0gICAgInBhdGgiOiAiLiIsCi0gICAgInVybCI6ICJodHRwczovL2dpdGh1
Yi5jb20vdzNjL3Rlc3RoYXJuZXNzLmpzL2FyY2hpdmUvNzRiYTEzZDJmYmIxOWM2ZTc0OTQ5NjBi
ZDc3MjQ4NzNlODhjNTIzYy50YXIuZ3oiLAotICAgICJ1cmxfc3VicGF0aCI6ICJ0ZXN0aGFybmVz
cy5qcy03NGJhMTNkMmZiYjE5YzZlNzQ5NDk2MGJkNzcyNDg3M2U4OGM1MjNjIgotfQotXQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3Jlc291cmNlcy93ZWItcGxhdGZvcm0t
dGVzdHMubW9kdWxlcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9yZXNvdXJjZXMvd2ViLXBs
YXRmb3JtLXRlc3RzLm1vZHVsZXMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjFmYTBiMWZmNjYzZDU4MzlmNzM0MGIx
ZjQwNGEyYjk3YTBhMjE5MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9yZXNvdXJjZXMvd2ViLXBsYXRmb3JtLXRlc3RzLm1vZHVsZXMKQEAgLTAsMCArMSw0MiBA
QAorWworICAgIHsKKyAgICAgICAgIm5hbWUiOiAicmVzb3VyY2VzIiwgCisgICAgICAgICJwYXRo
IjogWworICAgICAgICAgICAgIi4iCisgICAgICAgIF0sIAorICAgICAgICAidXJsIjogImh0dHBz
Oi8vZ2l0aHViLmNvbS93M2MvdGVzdGhhcm5lc3MuanMvYXJjaGl2ZS9hZGI0ZDM5MWE2OTg3N2Q0
YTFlYWFmNTFkMTcyNWM5OWE1YjhlZDg0LnRhci5neiIsIAorICAgICAgICAidXJsX3N1YnBhdGgi
OiAidGVzdGhhcm5lc3MuanMtYWRiNGQzOTFhNjk4NzdkNGExZWFhZjUxZDE3MjVjOTlhNWI4ZWQ4
NCIKKyAgICB9LCAKKyAgICB7CisgICAgICAgICJuYW1lIjogIndwdHNlcnZlIiwgCisgICAgICAg
ICJwYXRoIjogWworICAgICAgICAgICAgInRvb2xzIgorICAgICAgICBdLCAKKyAgICAgICAgInVy
bCI6ICJodHRwczovL2dpdGh1Yi5jb20vdzNjL3dwdHNlcnZlL2FyY2hpdmUvOTFlNzY0ZmZhMGY1
ODcwOTAzNDFhMjZhZjQ1N2RmZGM2NzYyZWIwZC50YXIuZ3oiLCAKKyAgICAgICAgInVybF9zdWJw
YXRoIjogIndwdHNlcnZlLTkxZTc2NGZmYTBmNTg3MDkwMzQxYTI2YWY0NTdkZmRjNjc2MmViMGQi
CisgICAgfSwgCisgICAgeworICAgICAgICAibmFtZSI6ICJweXdlYnNvY2tldCIsIAorICAgICAg
ICAicGF0aCI6IFsKKyAgICAgICAgICAgICJ0b29scyIKKyAgICAgICAgXSwgCisgICAgICAgICJ1
cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3czYy9weXdlYnNvY2tldC9hcmNoaXZlLzhjMjg1ZDkw
MTUxMjFlOGMxYzQwYmU4NTI0MzlmYzAzYjRhMTgxMTIudGFyLmd6IiwgCisgICAgICAgICJ1cmxf
c3VicGF0aCI6ICJweXdlYnNvY2tldC04YzI4NWQ5MDE1MTIxZThjMWM0MGJlODUyNDM5ZmMwM2I0
YTE4MTEyIgorICAgIH0sIAorICAgIHsKKyAgICAgICAgIm5hbWUiOiAiaHRtbDVsaWIiLCAKKyAg
ICAgICAgInBhdGgiOiBbCisgICAgICAgICAgICAidG9vbHMiCisgICAgICAgIF0sIAorICAgICAg
ICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9odG1sNWxpYi9odG1sNWxpYi1weXRob24vYXJj
aGl2ZS83Y2NlNjViYmFhNzg0MTFmOThiOGIzN2VlZWZjOWRiMDNjNTgwMDk3LnRhci5neiIsIAor
ICAgICAgICAidXJsX3N1YnBhdGgiOiAiaHRtbDVsaWItcHl0aG9uLTdjY2U2NWJiYWE3ODQxMWY5
OGI4YjM3ZWVlZmM5ZGIwM2M1ODAwOTciCisgICAgfSwgCisgICAgeworICAgICAgICAibmFtZSI6
ICJzaXgiLCAKKyAgICAgICAgInBhdGgiOiBbCisgICAgICAgICAgICAidG9vbHMiCisgICAgICAg
IF0sIAorICAgICAgICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9qZ3JhaGFtL3NpeC9hcmNo
aXZlLzNiNjE3M2M4MzNkMjE3YWIwMTg2YzM1NTgwNGY1OTI1Y2JjZmNhNDcudGFyLmd6IiwgCisg
ICAgICAgICJ1cmxfc3VicGF0aCI6ICJzaXgtM2I2MTczYzgzM2QyMTdhYjAxODZjMzU1ODA0ZjU5
MjVjYmNmY2E0NyIKKyAgICB9CitdClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>248925</attachid>
            <date>2015-03-18 06:09:21 -0700</date>
            <delta_ts>2015-03-18 06:26:32 -0700</delta_ts>
            <desc>Updating module file name and missing python import</desc>
            <filename>bug-142738-20150318140847.patch</filename>
            <type>text/plain</type>
            <size>16907</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgxNjkwCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggN2E0YjRlZDI1YmI1MzNkMTExOTQyNzBiZTg3ZDQ4NzJl
NzcxOTIyZC4uNDQyZTBjZjk2MzI2MDFkMjEyYWNjMjU0OGJlMzk5ZWM2ZjhiNmFiNyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMz
IEBACisyMDE1LTAzLTE2ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uLmZhYmxldEBjcmYuY2Fub24u
ZnI+CisKKyAgICAgICAgVzNDIHRlc3QgaW1wb3J0ZXIgc2hvdWxkIGdlbmVyYXRlIHRoZSBtb2R1
bGVzIGluc3RhbGxlZCBkeW5hbWljYWxseSB0byBydW4gd3B0IHRlc3RzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI3MzgKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgdGVzdCBpbXBvcnRlciBjYW4g
bm93IGdlbmVyYXRlIHRoZSBzdWJtb2R1bGVzIGRlc2NyaXB0aW9uIGZpbGUgYmFzZWQgb24gaW5m
b3JtYXRpb24gZXh0cmFjdGVkIGZyb20gdGhlIGNvcnJlc3BvbmRpbmcgZ2l0IHJlcG9zaXRvcnku
CisgICAgICAgIFRoZSBpbXBsZW1lbnRhdGlvbiBpcyBkb25lIHdpdGhpbiBUZXN0RG93bmxvYWRl
ciBhbmQgaXQgaXMgYWN0aXZhdGVkIGZvciB0aGUgV1BUIHJlcG9zaXRvcnkuCisgICAgICAgIExh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9yZXNvdXJjZXMvV1BUTW9kdWxlcyBpcyByZW5hbWVkIGFz
IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9yZXNvdXJjZXMvd2ViLXBsYXRmb3JtLXRlc3RzLW1v
ZHVsZXMuanNvbiBmb3IgdGhhdCByZWFzb24uCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9zZXJ2ZXJzL3dlYl9wbGF0Zm9ybV90ZXN0X3NlcnZlci5weToKKyAgICAg
ICAgKFdlYlBsYXRmb3JtVGVzdFNlcnZlci5faW5zdGFsbF9tb2R1bGVzKTogVXBkYXRlZCB0byBj
b3BlIHdpdGggcGF0aCBhcyBhcnJheS4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3czYy90
ZXN0X2Rvd25sb2FkZXIucHk6CisgICAgICAgIChUZXN0RG93bmxvYWRlci5fc3VibW9kdWxlX3N0
YXR1cyk6IEFkZGVkIHNvIHRoYXQgaXQgY2FuIGJlIG92ZXJyaWRlbiBmb3IgdW5pdCB0ZXN0cy4K
KyAgICAgICAgKFRlc3REb3dubG9hZGVyKToKKyAgICAgICAgKFRlc3REb3dubG9hZGVyLnN1Ym1v
ZHVsZXNfZGVzY3JpcHRpb24pOiBDb21wdXRlcyBzdWJtb2R1bGUgZGVzY3JpcHRpb24uCisgICAg
ICAgIChUZXN0RG93bmxvYWRlci5kdW1wX3N1Ym1vZHVsZXNfZGVzY3JpcHRpb24pOiBXcml0ZSBz
dWJtb2R1bGUgZGVzY3JpcHRpb24gaW4gYSBmaWxlLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0
cHkvdzNjL3Rlc3RfaW1wb3J0ZXIucHk6CisgICAgICAgIChUZXN0SW1wb3J0ZXIuZG9faW1wb3J0
KTogQWRkZWQgdGhlIHBvc3NpYmlsaXR5IHRvIHBvc3QgcHJvY2VzcyB0aGUgdGVzdHMuCisgICAg
ICAgIChUZXN0SW1wb3J0ZXIpOgorICAgICAgICAoVGVzdEltcG9ydGVyLnBvc3RfcHJvY2Vzc19k
b3dubG9hZGVkX3Rlc3RzKTogUG9zdCBwcm9jZXNzIHRoZSB0ZXN0cyB0byBlbmFibGUgZ2VuZXJh
dGluZyBtb2R1bGUgZGVzY3JpcHRpb24gZmlsZS4KKyAgICAgICAgKFRlc3RJbXBvcnRlci5zaG91
bGRfY29udmVydF90ZXN0X2hhcm5lc3NfbGlua3MpOiBVcGRhdGVkIGFjY29yZGluZyBuZXcgb3B0
aW9ucyBmb3JtYXQuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS93M2MvdGVzdF9pbXBvcnRl
cl91bml0dGVzdC5weToKKyAgICAgICAgKFRlc3RJbXBvcnRlclRlc3QuaW1wb3J0X2Rvd25sb2Fk
ZWRfdGVzdHMpOiBNYWtpbmcgdXNlIG9mIFRlc3REb3dubG9hZGVyTW9jay4gCisgICAgICAgIChU
ZXN0SW1wb3J0ZXJUZXN0LmltcG9ydF9kb3dubG9hZGVkX3Rlc3RzLlRlc3REb3dubG9hZGVyTW9j
ayk6IEFkZGVkIHRvIG92ZXJyaWRlIHN1Ym1vZHVsZSBzdGF0dXMgZ2F0aGVyaW5nLgorICAgICAg
ICAoVGVzdEltcG9ydGVyVGVzdC5pbXBvcnRfZG93bmxvYWRlZF90ZXN0cy5UZXN0RG93bmxvYWRl
ck1vY2suX19pbml0X18pOgorICAgICAgICAoVGVzdEltcG9ydGVyVGVzdC5pbXBvcnRfZG93bmxv
YWRlZF90ZXN0cy5UZXN0RG93bmxvYWRlck1vY2suX3N1Ym1vZHVsZV9zdGF0dXMpOgorICAgICAg
ICAoVGVzdEltcG9ydGVyVGVzdC50ZXN0X3N1Ym1vZHVsZXNfZ2VuZXJhdGlvbik6IEFkZGVkIHRv
IGNoZWNrIHRoYXQgbW9kdWxlcyBkZXNjcmlwdGlvbiBmaWxlcyB3b3Jrcy4KKwogMjAxNS0wMy0x
OCAgQ3NhYmEgT3N6dHJvZ29uw6FjICA8b3NzeUB3ZWJraXQub3JnPgogCiAgICAgICAgIFtFRkxd
IEJ1bXAgZ3N0cmVhbWVyIHZlcnNpb24gdG8gMS40LjQKZGlmZiAtLWdpdCBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3NlcnZlcnMvd2ViX3BsYXRmb3JtX3Rlc3Rfc2VydmVy
LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvc2VydmVycy93ZWJfcGxh
dGZvcm1fdGVzdF9zZXJ2ZXIucHkKaW5kZXggMDQxYTlmZTM0YTAxNDVmZmExNTIwNGVhNTI0NDA5
NzFhYmM3MmEzOS4uMjZmOWY5YTVhOWMxZDhmNmUwYTQ1ZTVlZjNkMmZhNzc3ZDAzZWM5NCAxMDA3
NTUKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvc2VydmVycy93ZWJf
cGxhdGZvcm1fdGVzdF9zZXJ2ZXIucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvc2VydmVycy93ZWJfcGxhdGZvcm1fdGVzdF9zZXJ2ZXIucHkKQEAgLTc5LDEzICs3
OSwxMyBAQCBjbGFzcyBXZWJQbGF0Zm9ybVRlc3RTZXJ2ZXIoaHR0cF9zZXJ2ZXJfYmFzZS5IdHRw
U2VydmVyQmFzZSk6CiAgICAgICAgIHNlbGYuX2RvY19yb290X3BhdGggPSBwb3J0X29iai5wYXRo
X2Zyb21fd2Via2l0X2Jhc2UoIkxheW91dFRlc3RzIiwgc2VsZi5fZG9jX3Jvb3QpCiAKICAgICBk
ZWYgX2luc3RhbGxfbW9kdWxlcyhzZWxmKToKLSAgICAgICAgbW9kdWxlc19maWxlX3BhdGggPSBz
ZWxmLl9maWxlc3lzdGVtLmpvaW4oc2VsZi5fbGF5b3V0X3Jvb3QsICJpbXBvcnRlZCIsICJ3M2Mi
LCAicmVzb3VyY2VzIiwgIldQVE1vZHVsZXMiKQorICAgICAgICBtb2R1bGVzX2ZpbGVfcGF0aCA9
IHNlbGYuX2ZpbGVzeXN0ZW0uam9pbihzZWxmLl9sYXlvdXRfcm9vdCwgImltcG9ydGVkIiwgIncz
YyIsICJyZXNvdXJjZXMiLCAid2ViLXBsYXRmb3JtLXRlc3RzLW1vZHVsZXMuanNvbiIpCiAgICAg
ICAgIGlmIG5vdCBzZWxmLl9maWxlc3lzdGVtLmlzZmlsZShtb2R1bGVzX2ZpbGVfcGF0aCk6CiAg
ICAgICAgICAgICBfbG9nLndhcm5pbmcoIkNhbm5vdCByZWFkICIgKyBtb2R1bGVzX2ZpbGVfcGF0
aCkKICAgICAgICAgICAgIHJldHVybgogICAgICAgICBtb2R1bGVzID0ganNvbi5sb2FkcyhzZWxm
Ll9maWxlc3lzdGVtLnJlYWRfdGV4dF9maWxlKG1vZHVsZXNfZmlsZV9wYXRoKSkKICAgICAgICAg
Zm9yIG1vZHVsZSBpbiBtb2R1bGVzOgotICAgICAgICAgICAgQXV0b0luc3RhbGxlcih0YXJnZXRf
ZGlyPXNlbGYuX2ZpbGVzeXN0ZW0uam9pbihzZWxmLl9kb2Nfcm9vdCwgbW9kdWxlWyJwYXRoIl0p
KS5pbnN0YWxsKHVybD1tb2R1bGVbInVybCJdLCB1cmxfc3VicGF0aD1tb2R1bGVbInVybF9zdWJw
YXRoIl0sIHRhcmdldF9uYW1lPW1vZHVsZVsibmFtZSJdKQorICAgICAgICAgICAgQXV0b0luc3Rh
bGxlcih0YXJnZXRfZGlyPXNlbGYuX2ZpbGVzeXN0ZW0uam9pbihzZWxmLl9kb2Nfcm9vdCwgc2Vs
Zi5fZmlsZXN5c3RlbS5zZXAuam9pbihtb2R1bGVbInBhdGgiXSkpKS5pbnN0YWxsKHVybD1tb2R1
bGVbInVybCJdLCB1cmxfc3VicGF0aD1tb2R1bGVbInVybF9zdWJwYXRoIl0sIHRhcmdldF9uYW1l
PW1vZHVsZVsibmFtZSJdKQogCiAgICAgZGVmIF9jb3B5X3dlYmtpdF90ZXN0X2ZpbGVzKHNlbGYp
OgogICAgICAgICBfbG9nLmRlYnVnKCdDb3B5aW5nIFdlYktpdCByZXNvdXJjZXMgZmlsZXMnKQpk
aWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS93M2MvdGVzdF9kb3dubG9hZGVyLnB5
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS93M2MvdGVzdF9kb3dubG9hZGVyLnB5CmluZGV4IDVh
ZGJhMmM5MjFjZDU5MDhjNWUxNGFmY2JiYWFmZjEzNTNkMGI3MzYuLjE2ZTQ0NGQyNDcwZGZkNDNj
ODU4MzA2YTRjYmM0ODAyYWIwNGEwMjcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvdzNjL3Rlc3RfZG93bmxvYWRlci5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3cz
Yy90ZXN0X2Rvd25sb2FkZXIucHkKQEAgLTE0OSw2ICsxNDksNDcgQEAgY2xhc3MgVGVzdERvd25s
b2FkZXIob2JqZWN0KToKICAgICAgICAgICAgIGlmIHNlbGYuX2ZpbGVzeXN0ZW0uaXNmaWxlKGRl
c3RpbmF0aW9uX3BhdGgpOgogICAgICAgICAgICAgICAgIHNlbGYuX2ZpbGVzeXN0ZW0ucmVtb3Zl
KGRlc3RpbmF0aW9uX3BhdGgpCiAKKyAgICBkZWYgX3N1Ym1vZHVsZV9zdGF0dXMoc2VsZiwgcmVw
b3NpdG9yeV9kaXJlY3RvcnkpOgorICAgICAgICByZXR1cm4gc2VsZi5naXQocmVwb3NpdG9yeV9k
aXJlY3RvcnkpLl9ydW5fZ2l0KFsnc3VibW9kdWxlJywgJ3N0YXR1cyddKQorCisgICAgZGVmIHN1
Ym1vZHVsZXNfZGVzY3JpcHRpb24oc2VsZiwgdGVzdF9yZXBvc2l0b3J5KToKKyAgICAgICAgc3Vi
bW9kdWxlcyA9IFtdCisgICAgICAgIHJlcG9zaXRvcnlfZGlyZWN0b3J5ID0gc2VsZi5fZmlsZXN5
c3RlbS5qb2luKHNlbGYucmVwb3NpdG9yeV9kaXJlY3RvcnksIHRlc3RfcmVwb3NpdG9yeVsnbmFt
ZSddKQorICAgICAgICBpZiBzZWxmLl9maWxlc3lzdGVtLmlzZmlsZShzZWxmLl9maWxlc3lzdGVt
LmpvaW4ocmVwb3NpdG9yeV9kaXJlY3RvcnksICcuZ2l0bW9kdWxlcycpKToKKyAgICAgICAgICAg
IHN1Ym1vZHVsZSA9IHt9CisgICAgICAgICAgICBmb3IgbGluZSBpbiBzZWxmLl9maWxlc3lzdGVt
LnJlYWRfdGV4dF9maWxlKHNlbGYuX2ZpbGVzeXN0ZW0uam9pbihyZXBvc2l0b3J5X2RpcmVjdG9y
eSwgJy5naXRtb2R1bGVzJykpLnNwbGl0bGluZXMoKToKKyAgICAgICAgICAgICAgICBsaW5lID0g
bGluZS5zdHJpcCgpCisgICAgICAgICAgICAgICAgaWYgbGluZS5zdGFydHN3aXRoKCdwYXRoID0g
Jyk6CisgICAgICAgICAgICAgICAgICAgIHN1Ym1vZHVsZVsncGF0aCddID0gbGluZVs3Ol0KKyAg
ICAgICAgICAgICAgICBlbGlmIGxpbmUuc3RhcnRzd2l0aCgndXJsID0gJyk6CisgICAgICAgICAg
ICAgICAgICAgIHN1Ym1vZHVsZVsndXJsJ10gPSBsaW5lWzY6XQorICAgICAgICAgICAgICAgICAg
ICBpZiBub3Qgc3VibW9kdWxlWyd1cmwnXS5zdGFydHN3aXRoKCdodHRwczovL2dpdGh1Yi5jb20v
Jyk6CisgICAgICAgICAgICAgICAgICAgICAgICBfbG9nLndhcm5pbmcoJ3N1Ym1vZHVsZSAlcyBu
b3QgaG9zdGVkIG9uIGdpdGh1YicgJSBzdWJtb2R1bGVbJ3BhdGgnXSkKKyAgICAgICAgICAgICAg
ICAgICAgc3VibW9kdWxlcy5hcHBlbmQoc3VibW9kdWxlKQorICAgICAgICAgICAgICAgICAgICBz
dWJtb2R1bGUgPSB7fQorCisgICAgICAgIHN1Ym1vZHVsZV9zdGF0dXMgPSBzZWxmLl9zdWJtb2R1
bGVfc3RhdHVzKHJlcG9zaXRvcnlfZGlyZWN0b3J5KQorICAgICAgICBzdWJtb2R1bGVfc3RhdHVz
ID0gW2xpbmVbMTpdLnNwbGl0KCcgJykgZm9yIGxpbmUgaW4gc2VsZi5fc3VibW9kdWxlX3N0YXR1
cyhyZXBvc2l0b3J5X2RpcmVjdG9yeSkuc3BsaXRsaW5lcygpXQorICAgICAgICBmb3Igc3VibW9k
dWxlIGluIHN1Ym1vZHVsZXM6CisgICAgICAgICAgICBmb3Igc3RhdHVzIGluIHN1Ym1vZHVsZV9z
dGF0dXM6CisgICAgICAgICAgICAgICAgaWYgc3VibW9kdWxlWydwYXRoJ10gPT0gc3RhdHVzWzFd
OgorICAgICAgICAgICAgICAgICAgICB1cmwgPSBzdWJtb2R1bGVbJ3VybCddWzotNF0KKyAgICAg
ICAgICAgICAgICAgICAgdmVyc2lvbiA9IHN0YXR1c1swXQorICAgICAgICAgICAgICAgICAgICBy
ZXBvc2l0b3J5X25hbWUgPSB1cmwuc3BsaXQoJy8nKS5wb3AoKQorICAgICAgICAgICAgICAgICAg
ICBzdWJtb2R1bGVbJ3VybCddID0gdXJsICsgJy9hcmNoaXZlLycgKyB2ZXJzaW9uICsgJy50YXIu
Z3onCisgICAgICAgICAgICAgICAgICAgIHN1Ym1vZHVsZVsndXJsX3N1YnBhdGgnXSA9IHJlcG9z
aXRvcnlfbmFtZSArICctJyArIHZlcnNpb24KKyAgICAgICAgICAgIGlmICcvJyBpbiBzdWJtb2R1
bGVbJ3BhdGgnXToKKyAgICAgICAgICAgICAgICBzdGVwcyA9IHN1Ym1vZHVsZVsncGF0aCddLnNw
bGl0KCcvJykKKyAgICAgICAgICAgICAgICBzdWJtb2R1bGVbJ25hbWUnXSA9IHN0ZXBzLnBvcCgp
CisgICAgICAgICAgICAgICAgc3VibW9kdWxlWydwYXRoJ10gPSBzdGVwcworICAgICAgICAgICAg
ZWxzZToKKyAgICAgICAgICAgICAgICBzdWJtb2R1bGVbJ25hbWUnXSA9IHN1Ym1vZHVsZVsncGF0
aCddCisgICAgICAgICAgICAgICAgc3VibW9kdWxlWydwYXRoJ10gPSBbJy4nXQorICAgICAgICBy
ZXR1cm4gc3VibW9kdWxlcworCisgICAgZGVmIGR1bXBfc3VibW9kdWxlc19kZXNjcmlwdGlvbihz
ZWxmLCB0ZXN0X3JlcG9zaXRvcnksIGZpbGVwYXRoKToKKyAgICAgICAgc2VsZi5fZmlsZXN5c3Rl
bS53cml0ZV90ZXh0X2ZpbGUoZmlsZXBhdGgsIGpzb24uZHVtcHMoc2VsZi5zdWJtb2R1bGVzX2Rl
c2NyaXB0aW9uKHRlc3RfcmVwb3NpdG9yeSksIHNvcnRfa2V5cz1UcnVlLCBpbmRlbnQ9NCkpCisK
ICAgICBkZWYgZG93bmxvYWRfdGVzdHMoc2VsZiwgZGVzdGluYXRpb25fZGlyZWN0b3J5LCB0ZXN0
X3BhdGhzPVtdKToKICAgICAgICAgZm9yIHRlc3RfcmVwb3NpdG9yeSBpbiBzZWxmLnRlc3RfcmVw
b3NpdG9yaWVzOgogICAgICAgICAgICAgc2VsZi5jaGVja291dF90ZXN0X3JlcG9zaXRvcnkodGVz
dF9yZXBvc2l0b3J5WydyZXZpc2lvbiddLCB0ZXN0X3JlcG9zaXRvcnlbJ3VybCddLCBzZWxmLl9m
aWxlc3lzdGVtLmpvaW4oc2VsZi5yZXBvc2l0b3J5X2RpcmVjdG9yeSwgdGVzdF9yZXBvc2l0b3J5
WyduYW1lJ10pKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS93M2MvdGVzdF9p
bXBvcnRlci5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdzNjL3Rlc3RfaW1wb3J0ZXIucHkK
aW5kZXggMDYxNzJjM2Y5ZGIwYWNjZDUyYzI4MDQxMjA4ZmE1M2RlNTIzM2Q4Yi4uM2Q1YWQxZWJi
ZmY5OTM4ODY0YzQ0MjE5MzQ3OWZlOTE3ZWYzOWViMCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS93M2MvdGVzdF9pbXBvcnRlci5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L3czYy90ZXN0X2ltcG9ydGVyLnB5CkBAIC0xOTAsNiArMTkwLDE1IEBAIGNsYXNzIFRlc3RJ
bXBvcnRlcihvYmplY3QpOgogCiAgICAgICAgIHNlbGYuaW1wb3J0X3Rlc3RzKCkKIAorICAgICAg
ICBpZiBzZWxmLl9pbXBvcnRpbmdfZG93bmxvYWRlZF90ZXN0czoKKyAgICAgICAgICAgIHNlbGYu
cG9zdF9wcm9jZXNzX2Rvd25sb2FkZWRfdGVzdHMoKQorCisgICAgZGVmIHBvc3RfcHJvY2Vzc19k
b3dubG9hZGVkX3Rlc3RzKHNlbGYpOgorICAgICAgICBmb3IgdGVzdF9yZXBvc2l0b3J5IGluIHNl
bGYuX3Rlc3RfZG93bmxvYWRlci50ZXN0X3JlcG9zaXRvcmllczoKKyAgICAgICAgICAgIGlmICdk
dW1wX3N1Ym1vZHVsZXNfZGVzY3JpcHRpb24nIGluIHRlc3RfcmVwb3NpdG9yeVsnaW1wb3J0X29w
dGlvbnMnXToKKyAgICAgICAgICAgICAgICBzZWxmLmZpbGVzeXN0ZW0ubWF5YmVfbWFrZV9kaXJl
Y3Rvcnkoc2VsZi5maWxlc3lzdGVtLmpvaW4oc2VsZi5kZXN0aW5hdGlvbl9kaXJlY3RvcnksICdy
ZXNvdXJjZXMnKSkKKyAgICAgICAgICAgICAgICBzZWxmLl90ZXN0X2Rvd25sb2FkZXIuZHVtcF9z
dWJtb2R1bGVzX2Rlc2NyaXB0aW9uKHRlc3RfcmVwb3NpdG9yeSwgc2VsZi5maWxlc3lzdGVtLmpv
aW4oc2VsZi5kZXN0aW5hdGlvbl9kaXJlY3RvcnksICdyZXNvdXJjZXMnLCB0ZXN0X3JlcG9zaXRv
cnlbJ25hbWUnXSArICctbW9kdWxlcy5qc29uJykpCisKICAgICBkZWYgdGVzdF9kb3dubG9hZGVy
KHNlbGYpOgogICAgICAgICBpZiBub3Qgc2VsZi5fdGVzdF9kb3dubG9hZGVyOgogICAgICAgICAg
ICAgZG93bmxvYWRfb3B0aW9ucyA9IFRlc3REb3dubG9hZGVyLmRlZmF1bHRfb3B0aW9ucygpCkBA
IC0yODEsNyArMjkwLDcgQEAgY2xhc3MgVGVzdEltcG9ydGVyKG9iamVjdCk6CiAgICAgICAgIGlm
IHNlbGYuX2ltcG9ydGluZ19kb3dubG9hZGVkX3Rlc3RzOgogICAgICAgICAgICAgZm9yIHRlc3Rf
cmVwb3NpdG9yeSBpbiBzZWxmLnRlc3RfZG93bmxvYWRlcigpLnRlc3RfcmVwb3NpdG9yaWVzOgog
ICAgICAgICAgICAgICAgIGlmIHRlc3Quc3RhcnRzd2l0aCh0ZXN0X3JlcG9zaXRvcnlbJ25hbWUn
XSk6Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiB0ZXN0X3JlcG9zaXRvcnlbJ2NvbnZlcnRf
dGVzdF9oYXJuZXNzX2xpbmtzJ10KKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdjb252ZXJ0
X3Rlc3RfaGFybmVzc19saW5rcycgaW4gdGVzdF9yZXBvc2l0b3J5WydpbXBvcnRfb3B0aW9ucydd
CiAgICAgICAgICAgICByZXR1cm4gVHJ1ZQogICAgICAgICByZXR1cm4gc2VsZi5vcHRpb25zLmNv
bnZlcnRfdGVzdF9oYXJuZXNzX2xpbmtzCiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvdzNjL3Rlc3RfaW1wb3J0ZXJfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L3czYy90ZXN0X2ltcG9ydGVyX3VuaXR0ZXN0LnB5CmluZGV4IDNjYWFiMDUyMDBkOWJhYjI4
ZTU4ZmJiOWQ0MWI3OTc2OGJiNTFlMTYuLmE3MzM2NGY0ZGM1MmE2OGI4MjJlNDVlMWIzYzg4YThj
OThkMTliYjUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdzNjL3Rlc3RfaW1w
b3J0ZXJfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS93M2MvdGVzdF9p
bXBvcnRlcl91bml0dGVzdC5weQpAQCAtMzUsNiArMzUsNyBAQCBmcm9tIHdlYmtpdHB5LmNvbW1v
bi5zeXN0ZW0uZmlsZXN5c3RlbV9tb2NrIGltcG9ydCBNb2NrRmlsZVN5c3RlbQogZnJvbSB3ZWJr
aXRweS5jb21tb24uc3lzdGVtLmV4ZWN1dGl2ZV9tb2NrIGltcG9ydCBNb2NrRXhlY3V0aXZlMiwg
U2NyaXB0RXJyb3IKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5vdXRwdXRjYXB0dXJlIGlt
cG9ydCBPdXRwdXRDYXB0dXJlCiBmcm9tIHdlYmtpdHB5LnczYy50ZXN0X2Rvd25sb2FkZXIgaW1w
b3J0IFRlc3REb3dubG9hZGVyCitmcm9tIHdlYmtpdHB5LnczYy50ZXN0X2ltcG9ydGVyIGltcG9y
dCBwYXJzZV9hcmdzLCBUZXN0SW1wb3J0ZXIKIAogCiBGQUtFX1NPVVJDRV9ESVIgPSAnL3Rlc3Rz
L2Nzc3dnJwpAQCAtOTMsMTIgKzk0LDIxIEBAIGNsYXNzIFRlc3RJbXBvcnRlclRlc3QodW5pdHRl
c3QuVGVzdENhc2UpOgogCiAgICAgZGVmIGltcG9ydF9kb3dubG9hZGVkX3Rlc3RzKHNlbGYsIGFy
Z3MsIGZpbGVzKToKICAgICAgICAgIyBmaWxlcyBhcmUgcGFzc2VkIGFzIHBhcmFtZXRlciBhcyB3
ZSBjYW5ub3QgY2xvbmUvZmV0Y2gvY2hlY2tvdXQgYSByZXBvIGluIG1vY2sgc3lzdGVtLgorCisg
ICAgICAgIGNsYXNzIFRlc3REb3dubG9hZGVyTW9jayhUZXN0RG93bmxvYWRlcik6CisgICAgICAg
ICAgICBkZWYgX19pbml0X18oc2VsZiwgcmVwb3NpdG9yeV9kaXJlY3RvcnksIGhvc3QsIG9wdGlv
bnMpOgorICAgICAgICAgICAgICAgIFRlc3REb3dubG9hZGVyLl9faW5pdF9fKHNlbGYsIHJlcG9z
aXRvcnlfZGlyZWN0b3J5LCBob3N0LCBvcHRpb25zKQorCisgICAgICAgICAgICBkZWYgX3N1Ym1v
ZHVsZV9zdGF0dXMoc2VsZiwgcmVwb3NpdG9yeV9kaXJlY3RvcnkpOgorICAgICAgICAgICAgICAg
IHJldHVybiAnYWRiNGQzOTFhNjk4NzdkNGExZWFhZjUxZDE3MjVjOTlhNWI4ZWQ4NCB0b29scy9y
ZXNvdXJjZXMnCisKICAgICAgICAgaG9zdCA9IE1vY2tIb3N0KCkKICAgICAgICAgaG9zdC5leGVj
dXRpdmUgPSBNb2NrRXhlY3V0aXZlMigpCiAgICAgICAgIGhvc3QuZmlsZXN5c3RlbSA9IE1vY2tG
aWxlU3lzdGVtKGZpbGVzPWZpbGVzKQogCiAgICAgICAgIG9wdGlvbnMsIGFyZ3MgPSBwYXJzZV9h
cmdzKGFyZ3MpCiAgICAgICAgIGltcG9ydGVyID0gVGVzdEltcG9ydGVyKGhvc3QsIE5vbmUsIG9w
dGlvbnMpCisgICAgICAgIGltcG9ydGVyLl90ZXN0X2Rvd25sb2FkZXIgPSBUZXN0RG93bmxvYWRl
ck1vY2soaW1wb3J0ZXIudGVzdHNfZG93bmxvYWRfcGF0aCwgaW1wb3J0ZXIuaG9zdCwgaW1wb3J0
ZXIub3B0aW9ucykKICAgICAgICAgaW1wb3J0ZXIuZG9faW1wb3J0KCkKICAgICAgICAgcmV0dXJu
IGhvc3QuZmlsZXN5c3RlbQogCkBAIC0xMTcsNCArMTI3LDE3IEBAIGNsYXNzIFRlc3RJbXBvcnRl
clRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBzZWxmLmFzc2VydFRydWUoJ3NyYz0i
L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyInIGluIGZzLnJlYWRfdGV4dF9maWxlKCcvbW9jay1j
aGVja291dC9MYXlvdXRUZXN0cy93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3QvdGVzdC5odG1sJykp
CiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgnc3JjPSIuLi8nIGluIGZzLnJlYWRfdGV4dF9maWxl
KCcvbW9jay1jaGVja291dC9MYXlvdXRUZXN0cy93M2MvY3Nzd2ctdGVzdHMvdC90ZXN0Lmh0bWwn
KSkKIAorICAgIGRlZiB0ZXN0X3N1Ym1vZHVsZXNfZ2VuZXJhdGlvbihzZWxmKToKKyAgICAgICAg
RkFLRV9GSUxFUyA9IHsKKyAgICAgICAgICAgICcvbW9jay1jaGVja291dC9XZWJLaXRCdWlsZC93
M2MtdGVzdHMvY3Nzd2ctdGVzdHMvLmdpdG1vZHVsZXMnOiAnW3N1Ym1vZHVsZSAidG9vbHMvcmVz
b3VyY2VzIl1cbglwYXRoID0gdG9vbHMvcmVzb3VyY2VzXG4JdXJsID0gaHR0cHM6Ly9naXRodWIu
Y29tL3czYy90ZXN0aGFybmVzcy5qcy5naXRcbiAgaWdub3JlID0gZGlydHlcbicsCisgICAgICAg
ICAgICAnL21vY2stY2hlY2tvdXQvV2ViS2l0QnVpbGQvdzNjLXRlc3RzL3dlYi1wbGF0Zm9ybS10
ZXN0cy8uZ2l0bW9kdWxlcyc6ICdbc3VibW9kdWxlICJ0b29scy9yZXNvdXJjZXMiXVxuCXBhdGgg
PSB0b29scy9yZXNvdXJjZXNcbgl1cmwgPSBodHRwczovL2dpdGh1Yi5jb20vdzNjL3Rlc3RoYXJu
ZXNzLmpzLmdpdFxuICBpZ25vcmUgPSBkaXJ0eVxuJywKKyAgICAgICAgfQorCisgICAgICAgIGZz
ID0gc2VsZi5pbXBvcnRfZG93bmxvYWRlZF90ZXN0cyhbJy0tbm8tZmV0Y2gnLCAnLS1pbXBvcnQt
YWxsJywgJy1kJywgJ3czYyddLCBGQUtFX0ZJTEVTKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RmFs
c2UoZnMuZXhpc3RzKCcvbW9jay1jaGVja291dC9MYXlvdXRUZXN0cy93M2MvcmVzb3VyY2VzL2Nz
c3dnLXRlc3RzLm1vZHVsZXMnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGZzLmV4aXN0cygn
L21vY2stY2hlY2tvdXQvTGF5b3V0VGVzdHMvdzNjL3Jlc291cmNlcy93ZWItcGxhdGZvcm0tdGVz
dHMtbW9kdWxlcy5qc29uJykpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgnaHR0cHM6Ly9naXRo
dWIuY29tL3czYy90ZXN0aGFybmVzcy5qcy9hcmNoaXZlL2RiNGQzOTFhNjk4NzdkNGExZWFhZjUx
ZDE3MjVjOTlhNWI4ZWQ4NC50YXIuZ3onIGluIGZzLnJlYWRfdGV4dF9maWxlKCcvbW9jay1jaGVj
a291dC9MYXlvdXRUZXN0cy93M2MvcmVzb3VyY2VzL3dlYi1wbGF0Zm9ybS10ZXN0cy1tb2R1bGVz
Lmpzb24nKSkKKworCiAgICAgIyBGSVhNRTogTmVlZHMgbW9yZSB0ZXN0cy4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvQ2hhbmdlTG9nCmluZGV4IGJjNDc2NGMxMjAzZmY3NGIyN2M5YmFjNzA2NWRhNGMyZjRl
NzU2ZGUuLjc5NmQ4YWJhYmU4M2I1NzliYWUyNDc5NDlkYTdmMGQ5NzkxOTY4ZTggMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE1LTAzLTE2ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uLmZhYmxldEBjcmYuY2Fub24uZnI+CisKKyAgICAgICAgVzNDIHRl
c3QgaW1wb3J0ZXIgc2hvdWxkIGdlbmVyYXRlIHRoZSBtb2R1bGVzIGluc3RhbGxlZCBkeW5hbWlj
YWxseSB0byBydW4gd3B0IHRlc3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNDI3MzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBSZW5hbWVkIFdQVE1vZHVsZXMgdG8gd2ViLXBsYXRmb3JtLXRlc3QtbW9k
dWxlcy5qc29uCisgICAgICAgIFVwZGF0ZWQgVGVzdFJlcG9zaXRvcmllcyB0byBhc2sgdGhlIGlt
cG9ydGVyIHRvIGdlbmVyYXRlIHdlYi1wbGF0Zm9ybS10ZXN0LW1vZHVsZXMuanNvbiBhdCBpbXBv
cnQgdGltZS4gIAorCisgICAgICAgICogcmVzb3VyY2VzL1Rlc3RSZXBvc2l0b3JpZXM6CisgICAg
ICAgICogcmVzb3VyY2VzL1dQVE1vZHVsZXM6IFJlbW92ZWQuCisgICAgICAgICogcmVzb3VyY2Vz
L3dlYi1wbGF0Zm9ybS10ZXN0cy1tb2R1bGVzLmpzb246IEFkZGVkLgorCiAyMDE1LTAzLTEzICBZ
b3Vlbm4gRmFibGV0ICA8eW91ZW5uLmZhYmxldEBjcmYuY2Fub24uZnI+CiAKICAgICAgICAgV2Vi
S2l0IHRlc3QgaW5mcmFzdHJ1Y3R1cmUgc2hvdWxkIGF1dG9tYXRlIHRoZSBwcm9jZXNzIG9mIGNs
b25pbmcgVzNDIHRlc3Qgc3VpdGUgYW5kIGltcG9ydGluZyB0ZXN0cyBmcm9tIGl0CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvcmVzb3VyY2VzL1Rlc3RSZXBvc2l0b3JpZXMg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvcmVzb3VyY2VzL1Rlc3RSZXBvc2l0b3JpZXMKaW5k
ZXggOTU2OGUyMDk2N2FhMDYyYjc4Yzk2YmVkZDE2YTdhOWYxMzk2MDI2OS4uMDNiN2U1YmE1OWE5
MmYyOGE1MjQ4ZjJhZTE2MTRhZTFjMTMyNWMxNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3Jlc291cmNlcy9UZXN0UmVwb3NpdG9yaWVzCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9yZXNvdXJjZXMvVGVzdFJlcG9zaXRvcmllcwpAQCAtMTAsNyArMTAsNyBAQAog
ICAgICAgICAicGF0aHNfdG9faW1wb3J0IjogWwogICAgICAgICAgICAgInN1cHBvcnQiCiAgICAg
ICAgIF0sCi0gICAgICAgICJjb252ZXJ0X3Rlc3RfaGFybmVzc19saW5rcyI6IHRydWUKKyAgICAg
ICAgImltcG9ydF9vcHRpb25zIjogWyJjb252ZXJ0X3Rlc3RfaGFybmVzc19saW5rcyJdCiAgICAg
fSwKICAgICB7CiAgICAgICAgICJuYW1lIjogIndlYi1wbGF0Zm9ybS10ZXN0cyIsCkBAIC0zMCw2
ICszMCw2IEBACiAgICAgICAgICAgICAiY29uZmlnLmRlZmF1bHQuanNvbiIsCiAgICAgICAgICAg
ICAic2VydmUucHkiCiAgICAgICAgIF0sCi0gICAgICAgICJjb252ZXJ0X3Rlc3RfaGFybmVzc19s
aW5rcyI6IGZhbHNlCisgICAgICAgICJpbXBvcnRfb3B0aW9ucyI6IFsiZHVtcF9zdWJtb2R1bGVz
X2Rlc2NyaXB0aW9uIl0KICAgICB9CiBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvcmVzb3VyY2VzL1dQVE1vZHVsZXMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvcmVz
b3VyY2VzL1dQVE1vZHVsZXMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDYyODQ1ZmE3
Y2Q0MTAyODBmMmY1NzA4ZTBlMzEwZDc0NDk1ZDg2MjcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3Jlc291cmNl
cy9XUFRNb2R1bGVzCisrKyAvZGV2L251bGwKQEAgLTEsMzIgKzAsMCBAQAotWwotewotICAgICJu
YW1lIjogImh0bWw1bGliIiwKLSAgICAicGF0aCI6ICJ0b29scyIsCi0gICAgInVybCI6ICJodHRw
czovL2dpdGh1Yi5jb20vaHRtbDVsaWIvaHRtbDVsaWItcHl0aG9uL2FyY2hpdmUvN2NjZTY1YmJh
YTc4NDExZjk4YjhiMzdlZWVmYzlkYjAzYzU4MDA5Ny50YXIuZ3oiLAotICAgICJ1cmxfc3VicGF0
aCI6ICJodG1sNWxpYi1weXRob24tN2NjZTY1YmJhYTc4NDExZjk4YjhiMzdlZWVmYzlkYjAzYzU4
MDA5NyIKLX0sCi17Ci0gICAgIm5hbWUiOiAicHl3ZWJzb2NrZXQiLAotICAgICJwYXRoIjogInRv
b2xzIiwKLSAgICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS93M2MvcHl3ZWJzb2NrZXQvYXJj
aGl2ZS84YzI4NWQ5MDE1MTIxZThjMWM0MGJlODUyNDM5ZmMwM2I0YTE4MTEyLnRhci5neiIsCi0g
ICAgInVybF9zdWJwYXRoIjogInB5d2Vic29ja2V0LThjMjg1ZDkwMTUxMjFlOGMxYzQwYmU4NTI0
MzlmYzAzYjRhMTgxMTIiCi19LAotewotICAgICJuYW1lIjogInNpeCIsCi0gICAgInBhdGgiOiAi
dG9vbHMiLAotICAgICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2pncmFoYW0vc2l4L2FyY2hp
dmUvM2I2MTczYzgzM2QyMTdhYjAxODZjMzU1ODA0ZjU5MjVjYmNmY2E0Ny50YXIuZ3oiLAotICAg
ICJ1cmxfc3VicGF0aCI6ICJzaXgtM2I2MTczYzgzM2QyMTdhYjAxODZjMzU1ODA0ZjU5MjVjYmNm
Y2E0NyIKLX0sCi17Ci0gICAgIm5hbWUiOiAid3B0c2VydmUiLAotICAgICJwYXRoIjogInRvb2xz
IiwKLSAgICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd3B0c2VydmUvYXJjaGl2ZS85
MWU3NjRmZmEwZjU4NzA5MDM0MWEyNmFmNDU3ZGZkYzY3NjJlYjBkLnRhci5neiIsCi0gICAgInVy
bF9zdWJwYXRoIjogIndwdHNlcnZlLTkxZTc2NGZmYTBmNTg3MDkwMzQxYTI2YWY0NTdkZmRjNjc2
MmViMGQiCi19LAotewotICAgICJuYW1lIjogInJlc291cmNlcyIsCi0gICAgInBhdGgiOiAiLiIs
Ci0gICAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdzNjL3Rlc3RoYXJuZXNzLmpzL2FyY2hp
dmUvNzRiYTEzZDJmYmIxOWM2ZTc0OTQ5NjBiZDc3MjQ4NzNlODhjNTIzYy50YXIuZ3oiLAotICAg
ICJ1cmxfc3VicGF0aCI6ICJ0ZXN0aGFybmVzcy5qcy03NGJhMTNkMmZiYjE5YzZlNzQ5NDk2MGJk
NzcyNDg3M2U4OGM1MjNjIgotfQotXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3Jlc291cmNlcy93ZWItcGxhdGZvcm0tdGVzdHMtbW9kdWxlcy5qc29uIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3Jlc291cmNlcy93ZWItcGxhdGZvcm0tdGVzdHMtbW9kdWxlcy5qc29u
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjc2ODE2OWM2ZWMzMjQ0NTY4YzczYTg5YjZlYTM0OWRmYmE3ODIxOWYKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvcmVzb3VyY2VzL3dlYi1w
bGF0Zm9ybS10ZXN0cy1tb2R1bGVzLmpzb24KQEAgLTAsMCArMSw0MiBAQAorWworICAgIHsKKyAg
ICAgICAgIm5hbWUiOiAicmVzb3VyY2VzIiwgCisgICAgICAgICJwYXRoIjogWworICAgICAgICAg
ICAgIi4iCisgICAgICAgIF0sIAorICAgICAgICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS93
M2MvdGVzdGhhcm5lc3MuanMvYXJjaGl2ZS8yYTFkYTI2NGY2NzE4ZGIwNGMzOTI1YTk5NTZiNjM1
NDI2ODI3YWVmLnRhci5neiIsIAorICAgICAgICAidXJsX3N1YnBhdGgiOiAidGVzdGhhcm5lc3Mu
anMtMmExZGEyNjRmNjcxOGRiMDRjMzkyNWE5OTU2YjYzNTQyNjgyN2FlZiIKKyAgICB9LCAKKyAg
ICB7CisgICAgICAgICJuYW1lIjogIndwdHNlcnZlIiwgCisgICAgICAgICJwYXRoIjogWworICAg
ICAgICAgICAgInRvb2xzIgorICAgICAgICBdLCAKKyAgICAgICAgInVybCI6ICJodHRwczovL2dp
dGh1Yi5jb20vdzNjL3dwdHNlcnZlL2FyY2hpdmUvOTFlNzY0ZmZhMGY1ODcwOTAzNDFhMjZhZjQ1
N2RmZGM2NzYyZWIwZC50YXIuZ3oiLCAKKyAgICAgICAgInVybF9zdWJwYXRoIjogIndwdHNlcnZl
LTkxZTc2NGZmYTBmNTg3MDkwMzQxYTI2YWY0NTdkZmRjNjc2MmViMGQiCisgICAgfSwgCisgICAg
eworICAgICAgICAibmFtZSI6ICJweXdlYnNvY2tldCIsIAorICAgICAgICAicGF0aCI6IFsKKyAg
ICAgICAgICAgICJ0b29scyIKKyAgICAgICAgXSwgCisgICAgICAgICJ1cmwiOiAiaHR0cHM6Ly9n
aXRodWIuY29tL3czYy9weXdlYnNvY2tldC9hcmNoaXZlLzhjMjg1ZDkwMTUxMjFlOGMxYzQwYmU4
NTI0MzlmYzAzYjRhMTgxMTIudGFyLmd6IiwgCisgICAgICAgICJ1cmxfc3VicGF0aCI6ICJweXdl
YnNvY2tldC04YzI4NWQ5MDE1MTIxZThjMWM0MGJlODUyNDM5ZmMwM2I0YTE4MTEyIgorICAgIH0s
IAorICAgIHsKKyAgICAgICAgIm5hbWUiOiAiaHRtbDVsaWIiLCAKKyAgICAgICAgInBhdGgiOiBb
CisgICAgICAgICAgICAidG9vbHMiCisgICAgICAgIF0sIAorICAgICAgICAidXJsIjogImh0dHBz
Oi8vZ2l0aHViLmNvbS9odG1sNWxpYi9odG1sNWxpYi1weXRob24vYXJjaGl2ZS83Y2NlNjViYmFh
Nzg0MTFmOThiOGIzN2VlZWZjOWRiMDNjNTgwMDk3LnRhci5neiIsIAorICAgICAgICAidXJsX3N1
YnBhdGgiOiAiaHRtbDVsaWItcHl0aG9uLTdjY2U2NWJiYWE3ODQxMWY5OGI4YjM3ZWVlZmM5ZGIw
M2M1ODAwOTciCisgICAgfSwgCisgICAgeworICAgICAgICAibmFtZSI6ICJzaXgiLCAKKyAgICAg
ICAgInBhdGgiOiBbCisgICAgICAgICAgICAidG9vbHMiCisgICAgICAgIF0sIAorICAgICAgICAi
dXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9qZ3JhaGFtL3NpeC9hcmNoaXZlLzNiNjE3M2M4MzNk
MjE3YWIwMTg2YzM1NTgwNGY1OTI1Y2JjZmNhNDcudGFyLmd6IiwgCisgICAgICAgICJ1cmxfc3Vi
cGF0aCI6ICJzaXgtM2I2MTczYzgzM2QyMTdhYjAxODZjMzU1ODA0ZjU5MjVjYmNmY2E0NyIKKyAg
ICB9CitdClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>248928</attachid>
            <date>2015-03-18 06:26:43 -0700</date>
            <delta_ts>2015-03-18 13:07:33 -0700</delta_ts>
            <desc>Updating module file name and missing python import, rebased version</desc>
            <filename>bug-142738-20150318142610.patch</filename>
            <type>text/plain</type>
            <size>16921</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgxNjkwCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggN2E0YjRlZDI1YmI1MzNkMTExOTQyNzBiZTg3ZDQ4NzJl
NzcxOTIyZC4uNDQyZTBjZjk2MzI2MDFkMjEyYWNjMjU0OGJlMzk5ZWM2ZjhiNmFiNyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMz
IEBACisyMDE1LTAzLTE2ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uLmZhYmxldEBjcmYuY2Fub24u
ZnI+CisKKyAgICAgICAgVzNDIHRlc3QgaW1wb3J0ZXIgc2hvdWxkIGdlbmVyYXRlIHRoZSBtb2R1
bGVzIGluc3RhbGxlZCBkeW5hbWljYWxseSB0byBydW4gd3B0IHRlc3RzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI3MzgKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgdGVzdCBpbXBvcnRlciBjYW4g
bm93IGdlbmVyYXRlIHRoZSBzdWJtb2R1bGVzIGRlc2NyaXB0aW9uIGZpbGUgYmFzZWQgb24gaW5m
b3JtYXRpb24gZXh0cmFjdGVkIGZyb20gdGhlIGNvcnJlc3BvbmRpbmcgZ2l0IHJlcG9zaXRvcnku
CisgICAgICAgIFRoZSBpbXBsZW1lbnRhdGlvbiBpcyBkb25lIHdpdGhpbiBUZXN0RG93bmxvYWRl
ciBhbmQgaXQgaXMgYWN0aXZhdGVkIGZvciB0aGUgV1BUIHJlcG9zaXRvcnkuCisgICAgICAgIExh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9yZXNvdXJjZXMvV1BUTW9kdWxlcyBpcyByZW5hbWVkIGFz
IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9yZXNvdXJjZXMvd2ViLXBsYXRmb3JtLXRlc3RzLW1v
ZHVsZXMuanNvbiBmb3IgdGhhdCByZWFzb24uCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9zZXJ2ZXJzL3dlYl9wbGF0Zm9ybV90ZXN0X3NlcnZlci5weToKKyAgICAg
ICAgKFdlYlBsYXRmb3JtVGVzdFNlcnZlci5faW5zdGFsbF9tb2R1bGVzKTogVXBkYXRlZCB0byBj
b3BlIHdpdGggcGF0aCBhcyBhcnJheS4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3czYy90
ZXN0X2Rvd25sb2FkZXIucHk6CisgICAgICAgIChUZXN0RG93bmxvYWRlci5fc3VibW9kdWxlX3N0
YXR1cyk6IEFkZGVkIHNvIHRoYXQgaXQgY2FuIGJlIG92ZXJyaWRlbiBmb3IgdW5pdCB0ZXN0cy4K
KyAgICAgICAgKFRlc3REb3dubG9hZGVyKToKKyAgICAgICAgKFRlc3REb3dubG9hZGVyLnN1Ym1v
ZHVsZXNfZGVzY3JpcHRpb24pOiBDb21wdXRlcyBzdWJtb2R1bGUgZGVzY3JpcHRpb24uCisgICAg
ICAgIChUZXN0RG93bmxvYWRlci5kdW1wX3N1Ym1vZHVsZXNfZGVzY3JpcHRpb24pOiBXcml0ZSBz
dWJtb2R1bGUgZGVzY3JpcHRpb24gaW4gYSBmaWxlLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0
cHkvdzNjL3Rlc3RfaW1wb3J0ZXIucHk6CisgICAgICAgIChUZXN0SW1wb3J0ZXIuZG9faW1wb3J0
KTogQWRkZWQgdGhlIHBvc3NpYmlsaXR5IHRvIHBvc3QgcHJvY2VzcyB0aGUgdGVzdHMuCisgICAg
ICAgIChUZXN0SW1wb3J0ZXIpOgorICAgICAgICAoVGVzdEltcG9ydGVyLnBvc3RfcHJvY2Vzc19k
b3dubG9hZGVkX3Rlc3RzKTogUG9zdCBwcm9jZXNzIHRoZSB0ZXN0cyB0byBlbmFibGUgZ2VuZXJh
dGluZyBtb2R1bGUgZGVzY3JpcHRpb24gZmlsZS4KKyAgICAgICAgKFRlc3RJbXBvcnRlci5zaG91
bGRfY29udmVydF90ZXN0X2hhcm5lc3NfbGlua3MpOiBVcGRhdGVkIGFjY29yZGluZyBuZXcgb3B0
aW9ucyBmb3JtYXQuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS93M2MvdGVzdF9pbXBvcnRl
cl91bml0dGVzdC5weToKKyAgICAgICAgKFRlc3RJbXBvcnRlclRlc3QuaW1wb3J0X2Rvd25sb2Fk
ZWRfdGVzdHMpOiBNYWtpbmcgdXNlIG9mIFRlc3REb3dubG9hZGVyTW9jay4gCisgICAgICAgIChU
ZXN0SW1wb3J0ZXJUZXN0LmltcG9ydF9kb3dubG9hZGVkX3Rlc3RzLlRlc3REb3dubG9hZGVyTW9j
ayk6IEFkZGVkIHRvIG92ZXJyaWRlIHN1Ym1vZHVsZSBzdGF0dXMgZ2F0aGVyaW5nLgorICAgICAg
ICAoVGVzdEltcG9ydGVyVGVzdC5pbXBvcnRfZG93bmxvYWRlZF90ZXN0cy5UZXN0RG93bmxvYWRl
ck1vY2suX19pbml0X18pOgorICAgICAgICAoVGVzdEltcG9ydGVyVGVzdC5pbXBvcnRfZG93bmxv
YWRlZF90ZXN0cy5UZXN0RG93bmxvYWRlck1vY2suX3N1Ym1vZHVsZV9zdGF0dXMpOgorICAgICAg
ICAoVGVzdEltcG9ydGVyVGVzdC50ZXN0X3N1Ym1vZHVsZXNfZ2VuZXJhdGlvbik6IEFkZGVkIHRv
IGNoZWNrIHRoYXQgbW9kdWxlcyBkZXNjcmlwdGlvbiBmaWxlcyB3b3Jrcy4KKwogMjAxNS0wMy0x
OCAgQ3NhYmEgT3N6dHJvZ29uw6FjICA8b3NzeUB3ZWJraXQub3JnPgogCiAgICAgICAgIFtFRkxd
IEJ1bXAgZ3N0cmVhbWVyIHZlcnNpb24gdG8gMS40LjQKZGlmZiAtLWdpdCBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3NlcnZlcnMvd2ViX3BsYXRmb3JtX3Rlc3Rfc2VydmVy
LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvc2VydmVycy93ZWJfcGxh
dGZvcm1fdGVzdF9zZXJ2ZXIucHkKaW5kZXggMDQxYTlmZTM0YTAxNDVmZmExNTIwNGVhNTI0NDA5
NzFhYmM3MmEzOS4uMjZmOWY5YTVhOWMxZDhmNmUwYTQ1ZTVlZjNkMmZhNzc3ZDAzZWM5NCAxMDA3
NTUKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvc2VydmVycy93ZWJf
cGxhdGZvcm1fdGVzdF9zZXJ2ZXIucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvc2VydmVycy93ZWJfcGxhdGZvcm1fdGVzdF9zZXJ2ZXIucHkKQEAgLTc5LDEzICs3
OSwxMyBAQCBjbGFzcyBXZWJQbGF0Zm9ybVRlc3RTZXJ2ZXIoaHR0cF9zZXJ2ZXJfYmFzZS5IdHRw
U2VydmVyQmFzZSk6CiAgICAgICAgIHNlbGYuX2RvY19yb290X3BhdGggPSBwb3J0X29iai5wYXRo
X2Zyb21fd2Via2l0X2Jhc2UoIkxheW91dFRlc3RzIiwgc2VsZi5fZG9jX3Jvb3QpCiAKICAgICBk
ZWYgX2luc3RhbGxfbW9kdWxlcyhzZWxmKToKLSAgICAgICAgbW9kdWxlc19maWxlX3BhdGggPSBz
ZWxmLl9maWxlc3lzdGVtLmpvaW4oc2VsZi5fbGF5b3V0X3Jvb3QsICJpbXBvcnRlZCIsICJ3M2Mi
LCAicmVzb3VyY2VzIiwgIldQVE1vZHVsZXMiKQorICAgICAgICBtb2R1bGVzX2ZpbGVfcGF0aCA9
IHNlbGYuX2ZpbGVzeXN0ZW0uam9pbihzZWxmLl9sYXlvdXRfcm9vdCwgImltcG9ydGVkIiwgIncz
YyIsICJyZXNvdXJjZXMiLCAid2ViLXBsYXRmb3JtLXRlc3RzLW1vZHVsZXMuanNvbiIpCiAgICAg
ICAgIGlmIG5vdCBzZWxmLl9maWxlc3lzdGVtLmlzZmlsZShtb2R1bGVzX2ZpbGVfcGF0aCk6CiAg
ICAgICAgICAgICBfbG9nLndhcm5pbmcoIkNhbm5vdCByZWFkICIgKyBtb2R1bGVzX2ZpbGVfcGF0
aCkKICAgICAgICAgICAgIHJldHVybgogICAgICAgICBtb2R1bGVzID0ganNvbi5sb2FkcyhzZWxm
Ll9maWxlc3lzdGVtLnJlYWRfdGV4dF9maWxlKG1vZHVsZXNfZmlsZV9wYXRoKSkKICAgICAgICAg
Zm9yIG1vZHVsZSBpbiBtb2R1bGVzOgotICAgICAgICAgICAgQXV0b0luc3RhbGxlcih0YXJnZXRf
ZGlyPXNlbGYuX2ZpbGVzeXN0ZW0uam9pbihzZWxmLl9kb2Nfcm9vdCwgbW9kdWxlWyJwYXRoIl0p
KS5pbnN0YWxsKHVybD1tb2R1bGVbInVybCJdLCB1cmxfc3VicGF0aD1tb2R1bGVbInVybF9zdWJw
YXRoIl0sIHRhcmdldF9uYW1lPW1vZHVsZVsibmFtZSJdKQorICAgICAgICAgICAgQXV0b0luc3Rh
bGxlcih0YXJnZXRfZGlyPXNlbGYuX2ZpbGVzeXN0ZW0uam9pbihzZWxmLl9kb2Nfcm9vdCwgc2Vs
Zi5fZmlsZXN5c3RlbS5zZXAuam9pbihtb2R1bGVbInBhdGgiXSkpKS5pbnN0YWxsKHVybD1tb2R1
bGVbInVybCJdLCB1cmxfc3VicGF0aD1tb2R1bGVbInVybF9zdWJwYXRoIl0sIHRhcmdldF9uYW1l
PW1vZHVsZVsibmFtZSJdKQogCiAgICAgZGVmIF9jb3B5X3dlYmtpdF90ZXN0X2ZpbGVzKHNlbGYp
OgogICAgICAgICBfbG9nLmRlYnVnKCdDb3B5aW5nIFdlYktpdCByZXNvdXJjZXMgZmlsZXMnKQpk
aWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS93M2MvdGVzdF9kb3dubG9hZGVyLnB5
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS93M2MvdGVzdF9kb3dubG9hZGVyLnB5CmluZGV4IDVh
ZGJhMmM5MjFjZDU5MDhjNWUxNGFmY2JiYWFmZjEzNTNkMGI3MzYuLjE2ZTQ0NGQyNDcwZGZkNDNj
ODU4MzA2YTRjYmM0ODAyYWIwNGEwMjcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvdzNjL3Rlc3RfZG93bmxvYWRlci5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3cz
Yy90ZXN0X2Rvd25sb2FkZXIucHkKQEAgLTE0OSw2ICsxNDksNDcgQEAgY2xhc3MgVGVzdERvd25s
b2FkZXIob2JqZWN0KToKICAgICAgICAgICAgIGlmIHNlbGYuX2ZpbGVzeXN0ZW0uaXNmaWxlKGRl
c3RpbmF0aW9uX3BhdGgpOgogICAgICAgICAgICAgICAgIHNlbGYuX2ZpbGVzeXN0ZW0ucmVtb3Zl
KGRlc3RpbmF0aW9uX3BhdGgpCiAKKyAgICBkZWYgX3N1Ym1vZHVsZV9zdGF0dXMoc2VsZiwgcmVw
b3NpdG9yeV9kaXJlY3RvcnkpOgorICAgICAgICByZXR1cm4gc2VsZi5naXQocmVwb3NpdG9yeV9k
aXJlY3RvcnkpLl9ydW5fZ2l0KFsnc3VibW9kdWxlJywgJ3N0YXR1cyddKQorCisgICAgZGVmIHN1
Ym1vZHVsZXNfZGVzY3JpcHRpb24oc2VsZiwgdGVzdF9yZXBvc2l0b3J5KToKKyAgICAgICAgc3Vi
bW9kdWxlcyA9IFtdCisgICAgICAgIHJlcG9zaXRvcnlfZGlyZWN0b3J5ID0gc2VsZi5fZmlsZXN5
c3RlbS5qb2luKHNlbGYucmVwb3NpdG9yeV9kaXJlY3RvcnksIHRlc3RfcmVwb3NpdG9yeVsnbmFt
ZSddKQorICAgICAgICBpZiBzZWxmLl9maWxlc3lzdGVtLmlzZmlsZShzZWxmLl9maWxlc3lzdGVt
LmpvaW4ocmVwb3NpdG9yeV9kaXJlY3RvcnksICcuZ2l0bW9kdWxlcycpKToKKyAgICAgICAgICAg
IHN1Ym1vZHVsZSA9IHt9CisgICAgICAgICAgICBmb3IgbGluZSBpbiBzZWxmLl9maWxlc3lzdGVt
LnJlYWRfdGV4dF9maWxlKHNlbGYuX2ZpbGVzeXN0ZW0uam9pbihyZXBvc2l0b3J5X2RpcmVjdG9y
eSwgJy5naXRtb2R1bGVzJykpLnNwbGl0bGluZXMoKToKKyAgICAgICAgICAgICAgICBsaW5lID0g
bGluZS5zdHJpcCgpCisgICAgICAgICAgICAgICAgaWYgbGluZS5zdGFydHN3aXRoKCdwYXRoID0g
Jyk6CisgICAgICAgICAgICAgICAgICAgIHN1Ym1vZHVsZVsncGF0aCddID0gbGluZVs3Ol0KKyAg
ICAgICAgICAgICAgICBlbGlmIGxpbmUuc3RhcnRzd2l0aCgndXJsID0gJyk6CisgICAgICAgICAg
ICAgICAgICAgIHN1Ym1vZHVsZVsndXJsJ10gPSBsaW5lWzY6XQorICAgICAgICAgICAgICAgICAg
ICBpZiBub3Qgc3VibW9kdWxlWyd1cmwnXS5zdGFydHN3aXRoKCdodHRwczovL2dpdGh1Yi5jb20v
Jyk6CisgICAgICAgICAgICAgICAgICAgICAgICBfbG9nLndhcm5pbmcoJ3N1Ym1vZHVsZSAlcyBu
b3QgaG9zdGVkIG9uIGdpdGh1YicgJSBzdWJtb2R1bGVbJ3BhdGgnXSkKKyAgICAgICAgICAgICAg
ICAgICAgc3VibW9kdWxlcy5hcHBlbmQoc3VibW9kdWxlKQorICAgICAgICAgICAgICAgICAgICBz
dWJtb2R1bGUgPSB7fQorCisgICAgICAgIHN1Ym1vZHVsZV9zdGF0dXMgPSBzZWxmLl9zdWJtb2R1
bGVfc3RhdHVzKHJlcG9zaXRvcnlfZGlyZWN0b3J5KQorICAgICAgICBzdWJtb2R1bGVfc3RhdHVz
ID0gW2xpbmVbMTpdLnNwbGl0KCcgJykgZm9yIGxpbmUgaW4gc2VsZi5fc3VibW9kdWxlX3N0YXR1
cyhyZXBvc2l0b3J5X2RpcmVjdG9yeSkuc3BsaXRsaW5lcygpXQorICAgICAgICBmb3Igc3VibW9k
dWxlIGluIHN1Ym1vZHVsZXM6CisgICAgICAgICAgICBmb3Igc3RhdHVzIGluIHN1Ym1vZHVsZV9z
dGF0dXM6CisgICAgICAgICAgICAgICAgaWYgc3VibW9kdWxlWydwYXRoJ10gPT0gc3RhdHVzWzFd
OgorICAgICAgICAgICAgICAgICAgICB1cmwgPSBzdWJtb2R1bGVbJ3VybCddWzotNF0KKyAgICAg
ICAgICAgICAgICAgICAgdmVyc2lvbiA9IHN0YXR1c1swXQorICAgICAgICAgICAgICAgICAgICBy
ZXBvc2l0b3J5X25hbWUgPSB1cmwuc3BsaXQoJy8nKS5wb3AoKQorICAgICAgICAgICAgICAgICAg
ICBzdWJtb2R1bGVbJ3VybCddID0gdXJsICsgJy9hcmNoaXZlLycgKyB2ZXJzaW9uICsgJy50YXIu
Z3onCisgICAgICAgICAgICAgICAgICAgIHN1Ym1vZHVsZVsndXJsX3N1YnBhdGgnXSA9IHJlcG9z
aXRvcnlfbmFtZSArICctJyArIHZlcnNpb24KKyAgICAgICAgICAgIGlmICcvJyBpbiBzdWJtb2R1
bGVbJ3BhdGgnXToKKyAgICAgICAgICAgICAgICBzdGVwcyA9IHN1Ym1vZHVsZVsncGF0aCddLnNw
bGl0KCcvJykKKyAgICAgICAgICAgICAgICBzdWJtb2R1bGVbJ25hbWUnXSA9IHN0ZXBzLnBvcCgp
CisgICAgICAgICAgICAgICAgc3VibW9kdWxlWydwYXRoJ10gPSBzdGVwcworICAgICAgICAgICAg
ZWxzZToKKyAgICAgICAgICAgICAgICBzdWJtb2R1bGVbJ25hbWUnXSA9IHN1Ym1vZHVsZVsncGF0
aCddCisgICAgICAgICAgICAgICAgc3VibW9kdWxlWydwYXRoJ10gPSBbJy4nXQorICAgICAgICBy
ZXR1cm4gc3VibW9kdWxlcworCisgICAgZGVmIGR1bXBfc3VibW9kdWxlc19kZXNjcmlwdGlvbihz
ZWxmLCB0ZXN0X3JlcG9zaXRvcnksIGZpbGVwYXRoKToKKyAgICAgICAgc2VsZi5fZmlsZXN5c3Rl
bS53cml0ZV90ZXh0X2ZpbGUoZmlsZXBhdGgsIGpzb24uZHVtcHMoc2VsZi5zdWJtb2R1bGVzX2Rl
c2NyaXB0aW9uKHRlc3RfcmVwb3NpdG9yeSksIHNvcnRfa2V5cz1UcnVlLCBpbmRlbnQ9NCkpCisK
ICAgICBkZWYgZG93bmxvYWRfdGVzdHMoc2VsZiwgZGVzdGluYXRpb25fZGlyZWN0b3J5LCB0ZXN0
X3BhdGhzPVtdKToKICAgICAgICAgZm9yIHRlc3RfcmVwb3NpdG9yeSBpbiBzZWxmLnRlc3RfcmVw
b3NpdG9yaWVzOgogICAgICAgICAgICAgc2VsZi5jaGVja291dF90ZXN0X3JlcG9zaXRvcnkodGVz
dF9yZXBvc2l0b3J5WydyZXZpc2lvbiddLCB0ZXN0X3JlcG9zaXRvcnlbJ3VybCddLCBzZWxmLl9m
aWxlc3lzdGVtLmpvaW4oc2VsZi5yZXBvc2l0b3J5X2RpcmVjdG9yeSwgdGVzdF9yZXBvc2l0b3J5
WyduYW1lJ10pKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS93M2MvdGVzdF9p
bXBvcnRlci5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdzNjL3Rlc3RfaW1wb3J0ZXIucHkK
aW5kZXggMDYxNzJjM2Y5ZGIwYWNjZDUyYzI4MDQxMjA4ZmE1M2RlNTIzM2Q4Yi4uM2Q1YWQxZWJi
ZmY5OTM4ODY0YzQ0MjE5MzQ3OWZlOTE3ZWYzOWViMCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS93M2MvdGVzdF9pbXBvcnRlci5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L3czYy90ZXN0X2ltcG9ydGVyLnB5CkBAIC0xOTAsNiArMTkwLDE1IEBAIGNsYXNzIFRlc3RJ
bXBvcnRlcihvYmplY3QpOgogCiAgICAgICAgIHNlbGYuaW1wb3J0X3Rlc3RzKCkKIAorICAgICAg
ICBpZiBzZWxmLl9pbXBvcnRpbmdfZG93bmxvYWRlZF90ZXN0czoKKyAgICAgICAgICAgIHNlbGYu
cG9zdF9wcm9jZXNzX2Rvd25sb2FkZWRfdGVzdHMoKQorCisgICAgZGVmIHBvc3RfcHJvY2Vzc19k
b3dubG9hZGVkX3Rlc3RzKHNlbGYpOgorICAgICAgICBmb3IgdGVzdF9yZXBvc2l0b3J5IGluIHNl
bGYuX3Rlc3RfZG93bmxvYWRlci50ZXN0X3JlcG9zaXRvcmllczoKKyAgICAgICAgICAgIGlmICdk
dW1wX3N1Ym1vZHVsZXNfZGVzY3JpcHRpb24nIGluIHRlc3RfcmVwb3NpdG9yeVsnaW1wb3J0X29w
dGlvbnMnXToKKyAgICAgICAgICAgICAgICBzZWxmLmZpbGVzeXN0ZW0ubWF5YmVfbWFrZV9kaXJl
Y3Rvcnkoc2VsZi5maWxlc3lzdGVtLmpvaW4oc2VsZi5kZXN0aW5hdGlvbl9kaXJlY3RvcnksICdy
ZXNvdXJjZXMnKSkKKyAgICAgICAgICAgICAgICBzZWxmLl90ZXN0X2Rvd25sb2FkZXIuZHVtcF9z
dWJtb2R1bGVzX2Rlc2NyaXB0aW9uKHRlc3RfcmVwb3NpdG9yeSwgc2VsZi5maWxlc3lzdGVtLmpv
aW4oc2VsZi5kZXN0aW5hdGlvbl9kaXJlY3RvcnksICdyZXNvdXJjZXMnLCB0ZXN0X3JlcG9zaXRv
cnlbJ25hbWUnXSArICctbW9kdWxlcy5qc29uJykpCisKICAgICBkZWYgdGVzdF9kb3dubG9hZGVy
KHNlbGYpOgogICAgICAgICBpZiBub3Qgc2VsZi5fdGVzdF9kb3dubG9hZGVyOgogICAgICAgICAg
ICAgZG93bmxvYWRfb3B0aW9ucyA9IFRlc3REb3dubG9hZGVyLmRlZmF1bHRfb3B0aW9ucygpCkBA
IC0yODEsNyArMjkwLDcgQEAgY2xhc3MgVGVzdEltcG9ydGVyKG9iamVjdCk6CiAgICAgICAgIGlm
IHNlbGYuX2ltcG9ydGluZ19kb3dubG9hZGVkX3Rlc3RzOgogICAgICAgICAgICAgZm9yIHRlc3Rf
cmVwb3NpdG9yeSBpbiBzZWxmLnRlc3RfZG93bmxvYWRlcigpLnRlc3RfcmVwb3NpdG9yaWVzOgog
ICAgICAgICAgICAgICAgIGlmIHRlc3Quc3RhcnRzd2l0aCh0ZXN0X3JlcG9zaXRvcnlbJ25hbWUn
XSk6Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiB0ZXN0X3JlcG9zaXRvcnlbJ2NvbnZlcnRf
dGVzdF9oYXJuZXNzX2xpbmtzJ10KKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdjb252ZXJ0
X3Rlc3RfaGFybmVzc19saW5rcycgaW4gdGVzdF9yZXBvc2l0b3J5WydpbXBvcnRfb3B0aW9ucydd
CiAgICAgICAgICAgICByZXR1cm4gVHJ1ZQogICAgICAgICByZXR1cm4gc2VsZi5vcHRpb25zLmNv
bnZlcnRfdGVzdF9oYXJuZXNzX2xpbmtzCiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvdzNjL3Rlc3RfaW1wb3J0ZXJfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L3czYy90ZXN0X2ltcG9ydGVyX3VuaXR0ZXN0LnB5CmluZGV4IDkwZTVmZWUzMGQwMTEzODE4
OWY4ODM3YjExYjI1YmFmNjg2OTY2NTUuLmE5NDUwMjcyMzkyOTdkNDJkOWQ1ZGE0MmMxYTM2YTA2
NWM3MzQ1NjMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdzNjL3Rlc3RfaW1w
b3J0ZXJfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS93M2MvdGVzdF9p
bXBvcnRlcl91bml0dGVzdC5weQpAQCAtMzQsNiArMzQsNyBAQCBmcm9tIHdlYmtpdHB5LmNvbW1v
bi5ob3N0X21vY2sgaW1wb3J0IE1vY2tIb3N0CiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0u
ZmlsZXN5c3RlbV9tb2NrIGltcG9ydCBNb2NrRmlsZVN5c3RlbQogZnJvbSB3ZWJraXRweS5jb21t
b24uc3lzdGVtLmV4ZWN1dGl2ZV9tb2NrIGltcG9ydCBNb2NrRXhlY3V0aXZlMiwgU2NyaXB0RXJy
b3IKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5vdXRwdXRjYXB0dXJlIGltcG9ydCBPdXRw
dXRDYXB0dXJlCitmcm9tIHdlYmtpdHB5LnczYy50ZXN0X2Rvd25sb2FkZXIgaW1wb3J0IFRlc3RE
b3dubG9hZGVyCiBmcm9tIHdlYmtpdHB5LnczYy50ZXN0X2ltcG9ydGVyIGltcG9ydCBwYXJzZV9h
cmdzLCBUZXN0SW1wb3J0ZXIKIAogCkBAIC05MiwxMiArOTMsMjEgQEAgY2xhc3MgVGVzdEltcG9y
dGVyVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAKICAgICBkZWYgaW1wb3J0X2Rvd25sb2FkZWRf
dGVzdHMoc2VsZiwgYXJncywgZmlsZXMpOgogICAgICAgICAjIGZpbGVzIGFyZSBwYXNzZWQgYXMg
cGFyYW1ldGVyIGFzIHdlIGNhbm5vdCBjbG9uZS9mZXRjaC9jaGVja291dCBhIHJlcG8gaW4gbW9j
ayBzeXN0ZW0uCisKKyAgICAgICAgY2xhc3MgVGVzdERvd25sb2FkZXJNb2NrKFRlc3REb3dubG9h
ZGVyKToKKyAgICAgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCByZXBvc2l0b3J5X2RpcmVjdG9y
eSwgaG9zdCwgb3B0aW9ucyk6CisgICAgICAgICAgICAgICAgVGVzdERvd25sb2FkZXIuX19pbml0
X18oc2VsZiwgcmVwb3NpdG9yeV9kaXJlY3RvcnksIGhvc3QsIG9wdGlvbnMpCisKKyAgICAgICAg
ICAgIGRlZiBfc3VibW9kdWxlX3N0YXR1cyhzZWxmLCByZXBvc2l0b3J5X2RpcmVjdG9yeSk6Cisg
ICAgICAgICAgICAgICAgcmV0dXJuICdhZGI0ZDM5MWE2OTg3N2Q0YTFlYWFmNTFkMTcyNWM5OWE1
YjhlZDg0IHRvb2xzL3Jlc291cmNlcycKKwogICAgICAgICBob3N0ID0gTW9ja0hvc3QoKQogICAg
ICAgICBob3N0LmV4ZWN1dGl2ZSA9IE1vY2tFeGVjdXRpdmUyKCkKICAgICAgICAgaG9zdC5maWxl
c3lzdGVtID0gTW9ja0ZpbGVTeXN0ZW0oZmlsZXM9ZmlsZXMpCiAKICAgICAgICAgb3B0aW9ucywg
YXJncyA9IHBhcnNlX2FyZ3MoYXJncykKICAgICAgICAgaW1wb3J0ZXIgPSBUZXN0SW1wb3J0ZXIo
aG9zdCwgTm9uZSwgb3B0aW9ucykKKyAgICAgICAgaW1wb3J0ZXIuX3Rlc3RfZG93bmxvYWRlciA9
IFRlc3REb3dubG9hZGVyTW9jayhpbXBvcnRlci50ZXN0c19kb3dubG9hZF9wYXRoLCBpbXBvcnRl
ci5ob3N0LCBpbXBvcnRlci5vcHRpb25zKQogICAgICAgICBpbXBvcnRlci5kb19pbXBvcnQoKQog
ICAgICAgICByZXR1cm4gaG9zdC5maWxlc3lzdGVtCiAKQEAgLTExNiw0ICsxMjYsMTcgQEAgY2xh
c3MgVGVzdEltcG9ydGVyVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIHNlbGYuYXNz
ZXJ0VHJ1ZSgnc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIicgaW4gZnMucmVhZF90ZXh0
X2ZpbGUoJy9tb2NrLWNoZWNrb3V0L0xheW91dFRlc3RzL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dC90ZXN0Lmh0bWwnKSkKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKCdzcmM9Ii4uLycgaW4gZnMu
cmVhZF90ZXh0X2ZpbGUoJy9tb2NrLWNoZWNrb3V0L0xheW91dFRlc3RzL3czYy9jc3N3Zy10ZXN0
cy90L3Rlc3QuaHRtbCcpKQogCisgICAgZGVmIHRlc3Rfc3VibW9kdWxlc19nZW5lcmF0aW9uKHNl
bGYpOgorICAgICAgICBGQUtFX0ZJTEVTID0geworICAgICAgICAgICAgJy9tb2NrLWNoZWNrb3V0
L1dlYktpdEJ1aWxkL3czYy10ZXN0cy9jc3N3Zy10ZXN0cy8uZ2l0bW9kdWxlcyc6ICdbc3VibW9k
dWxlICJ0b29scy9yZXNvdXJjZXMiXVxuCXBhdGggPSB0b29scy9yZXNvdXJjZXNcbgl1cmwgPSBo
dHRwczovL2dpdGh1Yi5jb20vdzNjL3Rlc3RoYXJuZXNzLmpzLmdpdFxuICBpZ25vcmUgPSBkaXJ0
eVxuJywKKyAgICAgICAgICAgICcvbW9jay1jaGVja291dC9XZWJLaXRCdWlsZC93M2MtdGVzdHMv
d2ViLXBsYXRmb3JtLXRlc3RzLy5naXRtb2R1bGVzJzogJ1tzdWJtb2R1bGUgInRvb2xzL3Jlc291
cmNlcyJdXG4JcGF0aCA9IHRvb2xzL3Jlc291cmNlc1xuCXVybCA9IGh0dHBzOi8vZ2l0aHViLmNv
bS93M2MvdGVzdGhhcm5lc3MuanMuZ2l0XG4gIGlnbm9yZSA9IGRpcnR5XG4nLAorICAgICAgICB9
CisKKyAgICAgICAgZnMgPSBzZWxmLmltcG9ydF9kb3dubG9hZGVkX3Rlc3RzKFsnLS1uby1mZXRj
aCcsICctLWltcG9ydC1hbGwnLCAnLWQnLCAndzNjJ10sIEZBS0VfRklMRVMpCisKKyAgICAgICAg
c2VsZi5hc3NlcnRGYWxzZShmcy5leGlzdHMoJy9tb2NrLWNoZWNrb3V0L0xheW91dFRlc3RzL3cz
Yy9yZXNvdXJjZXMvY3Nzd2ctdGVzdHMubW9kdWxlcycpKQorICAgICAgICBzZWxmLmFzc2VydFRy
dWUoZnMuZXhpc3RzKCcvbW9jay1jaGVja291dC9MYXlvdXRUZXN0cy93M2MvcmVzb3VyY2VzL3dl
Yi1wbGF0Zm9ybS10ZXN0cy1tb2R1bGVzLmpzb24nKSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVl
KCdodHRwczovL2dpdGh1Yi5jb20vdzNjL3Rlc3RoYXJuZXNzLmpzL2FyY2hpdmUvZGI0ZDM5MWE2
OTg3N2Q0YTFlYWFmNTFkMTcyNWM5OWE1YjhlZDg0LnRhci5neicgaW4gZnMucmVhZF90ZXh0X2Zp
bGUoJy9tb2NrLWNoZWNrb3V0L0xheW91dFRlc3RzL3czYy9yZXNvdXJjZXMvd2ViLXBsYXRmb3Jt
LXRlc3RzLW1vZHVsZXMuanNvbicpKQorCisKICAgICAjIEZJWE1FOiBOZWVkcyBtb3JlIHRlc3Rz
LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggYmM0NzY0YzEyMDNmZjc0YjI3Yzli
YWM3MDY1ZGE0YzJmNGU3NTZkZS4uNzk2ZDhhYmFiZTgzYjU3OWJhZTI0Nzk0OWRhN2YwZDk3OTE5
NjhlOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIw
MTUtMDMtMTYgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm4uZmFibGV0QGNyZi5jYW5vbi5mcj4KKwor
ICAgICAgICBXM0MgdGVzdCBpbXBvcnRlciBzaG91bGQgZ2VuZXJhdGUgdGhlIG1vZHVsZXMgaW5z
dGFsbGVkIGR5bmFtaWNhbGx5IHRvIHJ1biB3cHQgdGVzdHMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MjczOAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbmFtZWQgV1BUTW9kdWxlcyB0byB3ZWItcGxh
dGZvcm0tdGVzdC1tb2R1bGVzLmpzb24KKyAgICAgICAgVXBkYXRlZCBUZXN0UmVwb3NpdG9yaWVz
IHRvIGFzayB0aGUgaW1wb3J0ZXIgdG8gZ2VuZXJhdGUgd2ViLXBsYXRmb3JtLXRlc3QtbW9kdWxl
cy5qc29uIGF0IGltcG9ydCB0aW1lLiAgCisKKyAgICAgICAgKiByZXNvdXJjZXMvVGVzdFJlcG9z
aXRvcmllczoKKyAgICAgICAgKiByZXNvdXJjZXMvV1BUTW9kdWxlczogUmVtb3ZlZC4KKyAgICAg
ICAgKiByZXNvdXJjZXMvd2ViLXBsYXRmb3JtLXRlc3RzLW1vZHVsZXMuanNvbjogQWRkZWQuCisK
IDIwMTUtMDMtMTMgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm4uZmFibGV0QGNyZi5jYW5vbi5mcj4K
IAogICAgICAgICBXZWJLaXQgdGVzdCBpbmZyYXN0cnVjdHVyZSBzaG91bGQgYXV0b21hdGUgdGhl
IHByb2Nlc3Mgb2YgY2xvbmluZyBXM0MgdGVzdCBzdWl0ZSBhbmQgaW1wb3J0aW5nIHRlc3RzIGZy
b20gaXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9yZXNvdXJjZXMvVGVz
dFJlcG9zaXRvcmllcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9yZXNvdXJjZXMvVGVzdFJl
cG9zaXRvcmllcwppbmRleCA5NTY4ZTIwOTY3YWEwNjJiNzhjOTZiZWRkMTZhN2E5ZjEzOTYwMjY5
Li4wM2I3ZTViYTU5YTkyZjI4YTUyNDhmMmFlMTYxNGFlMWMxMzI1YzE1IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvcmVzb3VyY2VzL1Rlc3RSZXBvc2l0b3JpZXMKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3Jlc291cmNlcy9UZXN0UmVwb3NpdG9yaWVzCkBAIC0x
MCw3ICsxMCw3IEBACiAgICAgICAgICJwYXRoc190b19pbXBvcnQiOiBbCiAgICAgICAgICAgICAi
c3VwcG9ydCIKICAgICAgICAgXSwKLSAgICAgICAgImNvbnZlcnRfdGVzdF9oYXJuZXNzX2xpbmtz
IjogdHJ1ZQorICAgICAgICAiaW1wb3J0X29wdGlvbnMiOiBbImNvbnZlcnRfdGVzdF9oYXJuZXNz
X2xpbmtzIl0KICAgICB9LAogICAgIHsKICAgICAgICAgIm5hbWUiOiAid2ViLXBsYXRmb3JtLXRl
c3RzIiwKQEAgLTMwLDYgKzMwLDYgQEAKICAgICAgICAgICAgICJjb25maWcuZGVmYXVsdC5qc29u
IiwKICAgICAgICAgICAgICJzZXJ2ZS5weSIKICAgICAgICAgXSwKLSAgICAgICAgImNvbnZlcnRf
dGVzdF9oYXJuZXNzX2xpbmtzIjogZmFsc2UKKyAgICAgICAgImltcG9ydF9vcHRpb25zIjogWyJk
dW1wX3N1Ym1vZHVsZXNfZGVzY3JpcHRpb24iXQogICAgIH0KIF0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9yZXNvdXJjZXMvV1BUTW9kdWxlcyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9yZXNvdXJjZXMvV1BUTW9kdWxlcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggNjI4NDVmYTdjZDQxMDI4MGYyZjU3MDhlMGUzMTBkNzQ0OTVkODYyNy4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvcmVzb3VyY2VzL1dQVE1vZHVsZXMKKysrIC9kZXYvbnVsbApAQCAtMSwzMiArMCwwIEBA
Ci1bCi17Ci0gICAgIm5hbWUiOiAiaHRtbDVsaWIiLAotICAgICJwYXRoIjogInRvb2xzIiwKLSAg
ICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9odG1sNWxpYi9odG1sNWxpYi1weXRob24vYXJj
aGl2ZS83Y2NlNjViYmFhNzg0MTFmOThiOGIzN2VlZWZjOWRiMDNjNTgwMDk3LnRhci5neiIsCi0g
ICAgInVybF9zdWJwYXRoIjogImh0bWw1bGliLXB5dGhvbi03Y2NlNjViYmFhNzg0MTFmOThiOGIz
N2VlZWZjOWRiMDNjNTgwMDk3IgotfSwKLXsKLSAgICAibmFtZSI6ICJweXdlYnNvY2tldCIsCi0g
ICAgInBhdGgiOiAidG9vbHMiLAotICAgICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3czYy9w
eXdlYnNvY2tldC9hcmNoaXZlLzhjMjg1ZDkwMTUxMjFlOGMxYzQwYmU4NTI0MzlmYzAzYjRhMTgx
MTIudGFyLmd6IiwKLSAgICAidXJsX3N1YnBhdGgiOiAicHl3ZWJzb2NrZXQtOGMyODVkOTAxNTEy
MWU4YzFjNDBiZTg1MjQzOWZjMDNiNGExODExMiIKLX0sCi17Ci0gICAgIm5hbWUiOiAic2l4IiwK
LSAgICAicGF0aCI6ICJ0b29scyIsCi0gICAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vamdy
YWhhbS9zaXgvYXJjaGl2ZS8zYjYxNzNjODMzZDIxN2FiMDE4NmMzNTU4MDRmNTkyNWNiY2ZjYTQ3
LnRhci5neiIsCi0gICAgInVybF9zdWJwYXRoIjogInNpeC0zYjYxNzNjODMzZDIxN2FiMDE4NmMz
NTU4MDRmNTkyNWNiY2ZjYTQ3IgotfSwKLXsKLSAgICAibmFtZSI6ICJ3cHRzZXJ2ZSIsCi0gICAg
InBhdGgiOiAidG9vbHMiLAotICAgICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3czYy93cHRz
ZXJ2ZS9hcmNoaXZlLzkxZTc2NGZmYTBmNTg3MDkwMzQxYTI2YWY0NTdkZmRjNjc2MmViMGQudGFy
Lmd6IiwKLSAgICAidXJsX3N1YnBhdGgiOiAid3B0c2VydmUtOTFlNzY0ZmZhMGY1ODcwOTAzNDFh
MjZhZjQ1N2RmZGM2NzYyZWIwZCIKLX0sCi17Ci0gICAgIm5hbWUiOiAicmVzb3VyY2VzIiwKLSAg
ICAicGF0aCI6ICIuIiwKLSAgICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS93M2MvdGVzdGhh
cm5lc3MuanMvYXJjaGl2ZS83NGJhMTNkMmZiYjE5YzZlNzQ5NDk2MGJkNzcyNDg3M2U4OGM1MjNj
LnRhci5neiIsCi0gICAgInVybF9zdWJwYXRoIjogInRlc3RoYXJuZXNzLmpzLTc0YmExM2QyZmJi
MTljNmU3NDk0OTYwYmQ3NzI0ODczZTg4YzUyM2MiCi19Ci1dCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvcmVzb3VyY2VzL3dlYi1wbGF0Zm9ybS10ZXN0cy1tb2R1bGVzLmpz
b24gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvcmVzb3VyY2VzL3dlYi1wbGF0Zm9ybS10ZXN0
cy1tb2R1bGVzLmpzb24KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzY4MTY5YzZlYzMyNDQ1NjhjNzNhODliNmVhMzQ5
ZGZiYTc4MjE5ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9y
ZXNvdXJjZXMvd2ViLXBsYXRmb3JtLXRlc3RzLW1vZHVsZXMuanNvbgpAQCAtMCwwICsxLDQyIEBA
CitbCisgICAgeworICAgICAgICAibmFtZSI6ICJyZXNvdXJjZXMiLCAKKyAgICAgICAgInBhdGgi
OiBbCisgICAgICAgICAgICAiLiIKKyAgICAgICAgXSwgCisgICAgICAgICJ1cmwiOiAiaHR0cHM6
Ly9naXRodWIuY29tL3czYy90ZXN0aGFybmVzcy5qcy9hcmNoaXZlLzJhMWRhMjY0ZjY3MThkYjA0
YzM5MjVhOTk1NmI2MzU0MjY4MjdhZWYudGFyLmd6IiwgCisgICAgICAgICJ1cmxfc3VicGF0aCI6
ICJ0ZXN0aGFybmVzcy5qcy0yYTFkYTI2NGY2NzE4ZGIwNGMzOTI1YTk5NTZiNjM1NDI2ODI3YWVm
IgorICAgIH0sIAorICAgIHsKKyAgICAgICAgIm5hbWUiOiAid3B0c2VydmUiLCAKKyAgICAgICAg
InBhdGgiOiBbCisgICAgICAgICAgICAidG9vbHMiCisgICAgICAgIF0sIAorICAgICAgICAidXJs
IjogImh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd3B0c2VydmUvYXJjaGl2ZS85MWU3NjRmZmEwZjU4
NzA5MDM0MWEyNmFmNDU3ZGZkYzY3NjJlYjBkLnRhci5neiIsIAorICAgICAgICAidXJsX3N1YnBh
dGgiOiAid3B0c2VydmUtOTFlNzY0ZmZhMGY1ODcwOTAzNDFhMjZhZjQ1N2RmZGM2NzYyZWIwZCIK
KyAgICB9LCAKKyAgICB7CisgICAgICAgICJuYW1lIjogInB5d2Vic29ja2V0IiwgCisgICAgICAg
ICJwYXRoIjogWworICAgICAgICAgICAgInRvb2xzIgorICAgICAgICBdLCAKKyAgICAgICAgInVy
bCI6ICJodHRwczovL2dpdGh1Yi5jb20vdzNjL3B5d2Vic29ja2V0L2FyY2hpdmUvOGMyODVkOTAx
NTEyMWU4YzFjNDBiZTg1MjQzOWZjMDNiNGExODExMi50YXIuZ3oiLCAKKyAgICAgICAgInVybF9z
dWJwYXRoIjogInB5d2Vic29ja2V0LThjMjg1ZDkwMTUxMjFlOGMxYzQwYmU4NTI0MzlmYzAzYjRh
MTgxMTIiCisgICAgfSwgCisgICAgeworICAgICAgICAibmFtZSI6ICJodG1sNWxpYiIsIAorICAg
ICAgICAicGF0aCI6IFsKKyAgICAgICAgICAgICJ0b29scyIKKyAgICAgICAgXSwgCisgICAgICAg
ICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2h0bWw1bGliL2h0bWw1bGliLXB5dGhvbi9hcmNo
aXZlLzdjY2U2NWJiYWE3ODQxMWY5OGI4YjM3ZWVlZmM5ZGIwM2M1ODAwOTcudGFyLmd6IiwgCisg
ICAgICAgICJ1cmxfc3VicGF0aCI6ICJodG1sNWxpYi1weXRob24tN2NjZTY1YmJhYTc4NDExZjk4
YjhiMzdlZWVmYzlkYjAzYzU4MDA5NyIKKyAgICB9LCAKKyAgICB7CisgICAgICAgICJuYW1lIjog
InNpeCIsIAorICAgICAgICAicGF0aCI6IFsKKyAgICAgICAgICAgICJ0b29scyIKKyAgICAgICAg
XSwgCisgICAgICAgICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2pncmFoYW0vc2l4L2FyY2hp
dmUvM2I2MTczYzgzM2QyMTdhYjAxODZjMzU1ODA0ZjU5MjVjYmNmY2E0Ny50YXIuZ3oiLCAKKyAg
ICAgICAgInVybF9zdWJwYXRoIjogInNpeC0zYjYxNzNjODMzZDIxN2FiMDE4NmMzNTU4MDRmNTky
NWNiY2ZjYTQ3IgorICAgIH0KK10KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>248955</attachid>
            <date>2015-03-18 13:07:43 -0700</date>
            <delta_ts>2015-03-20 07:06:51 -0700</delta_ts>
            <desc>Fixing test and beefing up warning</desc>
            <filename>bug-142738-20150318210710.patch</filename>
            <type>text/plain</type>
            <size>17082</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgxNjkwCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggN2E0YjRlZDI1YmI1MzNkMTExOTQyNzBiZTg3ZDQ4NzJl
NzcxOTIyZC4uNDQyZTBjZjk2MzI2MDFkMjEyYWNjMjU0OGJlMzk5ZWM2ZjhiNmFiNyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMz
IEBACisyMDE1LTAzLTE2ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uLmZhYmxldEBjcmYuY2Fub24u
ZnI+CisKKyAgICAgICAgVzNDIHRlc3QgaW1wb3J0ZXIgc2hvdWxkIGdlbmVyYXRlIHRoZSBtb2R1
bGVzIGluc3RhbGxlZCBkeW5hbWljYWxseSB0byBydW4gd3B0IHRlc3RzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI3MzgKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgdGVzdCBpbXBvcnRlciBjYW4g
bm93IGdlbmVyYXRlIHRoZSBzdWJtb2R1bGVzIGRlc2NyaXB0aW9uIGZpbGUgYmFzZWQgb24gaW5m
b3JtYXRpb24gZXh0cmFjdGVkIGZyb20gdGhlIGNvcnJlc3BvbmRpbmcgZ2l0IHJlcG9zaXRvcnku
CisgICAgICAgIFRoZSBpbXBsZW1lbnRhdGlvbiBpcyBkb25lIHdpdGhpbiBUZXN0RG93bmxvYWRl
ciBhbmQgaXQgaXMgYWN0aXZhdGVkIGZvciB0aGUgV1BUIHJlcG9zaXRvcnkuCisgICAgICAgIExh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9yZXNvdXJjZXMvV1BUTW9kdWxlcyBpcyByZW5hbWVkIGFz
IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9yZXNvdXJjZXMvd2ViLXBsYXRmb3JtLXRlc3RzLW1v
ZHVsZXMuanNvbiBmb3IgdGhhdCByZWFzb24uCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9zZXJ2ZXJzL3dlYl9wbGF0Zm9ybV90ZXN0X3NlcnZlci5weToKKyAgICAg
ICAgKFdlYlBsYXRmb3JtVGVzdFNlcnZlci5faW5zdGFsbF9tb2R1bGVzKTogVXBkYXRlZCB0byBj
b3BlIHdpdGggcGF0aCBhcyBhcnJheS4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3czYy90
ZXN0X2Rvd25sb2FkZXIucHk6CisgICAgICAgIChUZXN0RG93bmxvYWRlci5fc3VibW9kdWxlX3N0
YXR1cyk6IEFkZGVkIHNvIHRoYXQgaXQgY2FuIGJlIG92ZXJyaWRlbiBmb3IgdW5pdCB0ZXN0cy4K
KyAgICAgICAgKFRlc3REb3dubG9hZGVyKToKKyAgICAgICAgKFRlc3REb3dubG9hZGVyLnN1Ym1v
ZHVsZXNfZGVzY3JpcHRpb24pOiBDb21wdXRlcyBzdWJtb2R1bGUgZGVzY3JpcHRpb24uCisgICAg
ICAgIChUZXN0RG93bmxvYWRlci5kdW1wX3N1Ym1vZHVsZXNfZGVzY3JpcHRpb24pOiBXcml0ZSBz
dWJtb2R1bGUgZGVzY3JpcHRpb24gaW4gYSBmaWxlLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0
cHkvdzNjL3Rlc3RfaW1wb3J0ZXIucHk6CisgICAgICAgIChUZXN0SW1wb3J0ZXIuZG9faW1wb3J0
KTogQWRkZWQgdGhlIHBvc3NpYmlsaXR5IHRvIHBvc3QgcHJvY2VzcyB0aGUgdGVzdHMuCisgICAg
ICAgIChUZXN0SW1wb3J0ZXIpOgorICAgICAgICAoVGVzdEltcG9ydGVyLnBvc3RfcHJvY2Vzc19k
b3dubG9hZGVkX3Rlc3RzKTogUG9zdCBwcm9jZXNzIHRoZSB0ZXN0cyB0byBlbmFibGUgZ2VuZXJh
dGluZyBtb2R1bGUgZGVzY3JpcHRpb24gZmlsZS4KKyAgICAgICAgKFRlc3RJbXBvcnRlci5zaG91
bGRfY29udmVydF90ZXN0X2hhcm5lc3NfbGlua3MpOiBVcGRhdGVkIGFjY29yZGluZyBuZXcgb3B0
aW9ucyBmb3JtYXQuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS93M2MvdGVzdF9pbXBvcnRl
cl91bml0dGVzdC5weToKKyAgICAgICAgKFRlc3RJbXBvcnRlclRlc3QuaW1wb3J0X2Rvd25sb2Fk
ZWRfdGVzdHMpOiBNYWtpbmcgdXNlIG9mIFRlc3REb3dubG9hZGVyTW9jay4gCisgICAgICAgIChU
ZXN0SW1wb3J0ZXJUZXN0LmltcG9ydF9kb3dubG9hZGVkX3Rlc3RzLlRlc3REb3dubG9hZGVyTW9j
ayk6IEFkZGVkIHRvIG92ZXJyaWRlIHN1Ym1vZHVsZSBzdGF0dXMgZ2F0aGVyaW5nLgorICAgICAg
ICAoVGVzdEltcG9ydGVyVGVzdC5pbXBvcnRfZG93bmxvYWRlZF90ZXN0cy5UZXN0RG93bmxvYWRl
ck1vY2suX19pbml0X18pOgorICAgICAgICAoVGVzdEltcG9ydGVyVGVzdC5pbXBvcnRfZG93bmxv
YWRlZF90ZXN0cy5UZXN0RG93bmxvYWRlck1vY2suX3N1Ym1vZHVsZV9zdGF0dXMpOgorICAgICAg
ICAoVGVzdEltcG9ydGVyVGVzdC50ZXN0X3N1Ym1vZHVsZXNfZ2VuZXJhdGlvbik6IEFkZGVkIHRv
IGNoZWNrIHRoYXQgbW9kdWxlcyBkZXNjcmlwdGlvbiBmaWxlcyB3b3Jrcy4KKwogMjAxNS0wMy0x
OCAgQ3NhYmEgT3N6dHJvZ29uw6FjICA8b3NzeUB3ZWJraXQub3JnPgogCiAgICAgICAgIFtFRkxd
IEJ1bXAgZ3N0cmVhbWVyIHZlcnNpb24gdG8gMS40LjQKZGlmZiAtLWdpdCBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3NlcnZlcnMvd2ViX3BsYXRmb3JtX3Rlc3Rfc2VydmVy
LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvc2VydmVycy93ZWJfcGxh
dGZvcm1fdGVzdF9zZXJ2ZXIucHkKaW5kZXggMDQxYTlmZTM0YTAxNDVmZmExNTIwNGVhNTI0NDA5
NzFhYmM3MmEzOS4uMjZmOWY5YTVhOWMxZDhmNmUwYTQ1ZTVlZjNkMmZhNzc3ZDAzZWM5NCAxMDA3
NTUKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvc2VydmVycy93ZWJf
cGxhdGZvcm1fdGVzdF9zZXJ2ZXIucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvc2VydmVycy93ZWJfcGxhdGZvcm1fdGVzdF9zZXJ2ZXIucHkKQEAgLTc5LDEzICs3
OSwxMyBAQCBjbGFzcyBXZWJQbGF0Zm9ybVRlc3RTZXJ2ZXIoaHR0cF9zZXJ2ZXJfYmFzZS5IdHRw
U2VydmVyQmFzZSk6CiAgICAgICAgIHNlbGYuX2RvY19yb290X3BhdGggPSBwb3J0X29iai5wYXRo
X2Zyb21fd2Via2l0X2Jhc2UoIkxheW91dFRlc3RzIiwgc2VsZi5fZG9jX3Jvb3QpCiAKICAgICBk
ZWYgX2luc3RhbGxfbW9kdWxlcyhzZWxmKToKLSAgICAgICAgbW9kdWxlc19maWxlX3BhdGggPSBz
ZWxmLl9maWxlc3lzdGVtLmpvaW4oc2VsZi5fbGF5b3V0X3Jvb3QsICJpbXBvcnRlZCIsICJ3M2Mi
LCAicmVzb3VyY2VzIiwgIldQVE1vZHVsZXMiKQorICAgICAgICBtb2R1bGVzX2ZpbGVfcGF0aCA9
IHNlbGYuX2ZpbGVzeXN0ZW0uam9pbihzZWxmLl9sYXlvdXRfcm9vdCwgImltcG9ydGVkIiwgIncz
YyIsICJyZXNvdXJjZXMiLCAid2ViLXBsYXRmb3JtLXRlc3RzLW1vZHVsZXMuanNvbiIpCiAgICAg
ICAgIGlmIG5vdCBzZWxmLl9maWxlc3lzdGVtLmlzZmlsZShtb2R1bGVzX2ZpbGVfcGF0aCk6CiAg
ICAgICAgICAgICBfbG9nLndhcm5pbmcoIkNhbm5vdCByZWFkICIgKyBtb2R1bGVzX2ZpbGVfcGF0
aCkKICAgICAgICAgICAgIHJldHVybgogICAgICAgICBtb2R1bGVzID0ganNvbi5sb2FkcyhzZWxm
Ll9maWxlc3lzdGVtLnJlYWRfdGV4dF9maWxlKG1vZHVsZXNfZmlsZV9wYXRoKSkKICAgICAgICAg
Zm9yIG1vZHVsZSBpbiBtb2R1bGVzOgotICAgICAgICAgICAgQXV0b0luc3RhbGxlcih0YXJnZXRf
ZGlyPXNlbGYuX2ZpbGVzeXN0ZW0uam9pbihzZWxmLl9kb2Nfcm9vdCwgbW9kdWxlWyJwYXRoIl0p
KS5pbnN0YWxsKHVybD1tb2R1bGVbInVybCJdLCB1cmxfc3VicGF0aD1tb2R1bGVbInVybF9zdWJw
YXRoIl0sIHRhcmdldF9uYW1lPW1vZHVsZVsibmFtZSJdKQorICAgICAgICAgICAgQXV0b0luc3Rh
bGxlcih0YXJnZXRfZGlyPXNlbGYuX2ZpbGVzeXN0ZW0uam9pbihzZWxmLl9kb2Nfcm9vdCwgc2Vs
Zi5fZmlsZXN5c3RlbS5zZXAuam9pbihtb2R1bGVbInBhdGgiXSkpKS5pbnN0YWxsKHVybD1tb2R1
bGVbInVybCJdLCB1cmxfc3VicGF0aD1tb2R1bGVbInVybF9zdWJwYXRoIl0sIHRhcmdldF9uYW1l
PW1vZHVsZVsibmFtZSJdKQogCiAgICAgZGVmIF9jb3B5X3dlYmtpdF90ZXN0X2ZpbGVzKHNlbGYp
OgogICAgICAgICBfbG9nLmRlYnVnKCdDb3B5aW5nIFdlYktpdCByZXNvdXJjZXMgZmlsZXMnKQpk
aWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS93M2MvdGVzdF9kb3dubG9hZGVyLnB5
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS93M2MvdGVzdF9kb3dubG9hZGVyLnB5CmluZGV4IDVh
ZGJhMmM5MjFjZDU5MDhjNWUxNGFmY2JiYWFmZjEzNTNkMGI3MzYuLmY4NjhmZGE2MDJhNDFiYWQz
NGE0YWJjZTkyZDc1MjU4OTBmZTljNTkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvdzNjL3Rlc3RfZG93bmxvYWRlci5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3cz
Yy90ZXN0X2Rvd25sb2FkZXIucHkKQEAgLTE0OSw2ICsxNDksNDggQEAgY2xhc3MgVGVzdERvd25s
b2FkZXIob2JqZWN0KToKICAgICAgICAgICAgIGlmIHNlbGYuX2ZpbGVzeXN0ZW0uaXNmaWxlKGRl
c3RpbmF0aW9uX3BhdGgpOgogICAgICAgICAgICAgICAgIHNlbGYuX2ZpbGVzeXN0ZW0ucmVtb3Zl
KGRlc3RpbmF0aW9uX3BhdGgpCiAKKyAgICBkZWYgX3N1Ym1vZHVsZV9zdGF0dXMoc2VsZiwgcmVw
b3NpdG9yeV9kaXJlY3RvcnkpOgorICAgICAgICByZXR1cm4gc2VsZi5naXQocmVwb3NpdG9yeV9k
aXJlY3RvcnkpLl9ydW5fZ2l0KFsnc3VibW9kdWxlJywgJ3N0YXR1cyddKQorCisgICAgZGVmIHN1
Ym1vZHVsZXNfZGVzY3JpcHRpb24oc2VsZiwgdGVzdF9yZXBvc2l0b3J5KToKKyAgICAgICAgc3Vi
bW9kdWxlcyA9IFtdCisgICAgICAgIHJlcG9zaXRvcnlfZGlyZWN0b3J5ID0gc2VsZi5fZmlsZXN5
c3RlbS5qb2luKHNlbGYucmVwb3NpdG9yeV9kaXJlY3RvcnksIHRlc3RfcmVwb3NpdG9yeVsnbmFt
ZSddKQorICAgICAgICBpZiBzZWxmLl9maWxlc3lzdGVtLmlzZmlsZShzZWxmLl9maWxlc3lzdGVt
LmpvaW4ocmVwb3NpdG9yeV9kaXJlY3RvcnksICcuZ2l0bW9kdWxlcycpKToKKyAgICAgICAgICAg
IHN1Ym1vZHVsZSA9IHt9CisgICAgICAgICAgICBmb3IgbGluZSBpbiBzZWxmLl9maWxlc3lzdGVt
LnJlYWRfdGV4dF9maWxlKHNlbGYuX2ZpbGVzeXN0ZW0uam9pbihyZXBvc2l0b3J5X2RpcmVjdG9y
eSwgJy5naXRtb2R1bGVzJykpLnNwbGl0bGluZXMoKToKKyAgICAgICAgICAgICAgICBsaW5lID0g
bGluZS5zdHJpcCgpCisgICAgICAgICAgICAgICAgaWYgbGluZS5zdGFydHN3aXRoKCdwYXRoID0g
Jyk6CisgICAgICAgICAgICAgICAgICAgIHN1Ym1vZHVsZVsncGF0aCddID0gbGluZVs3Ol0KKyAg
ICAgICAgICAgICAgICBlbGlmIGxpbmUuc3RhcnRzd2l0aCgndXJsID0gJyk6CisgICAgICAgICAg
ICAgICAgICAgIHN1Ym1vZHVsZVsndXJsJ10gPSBsaW5lWzY6XQorICAgICAgICAgICAgICAgICAg
ICBpZiBub3Qgc3VibW9kdWxlWyd1cmwnXS5zdGFydHN3aXRoKCdodHRwczovL2dpdGh1Yi5jb20v
Jyk6CisgICAgICAgICAgICAgICAgICAgICAgICBfbG9nLndhcm5pbmcoJ1N1Ym1vZHVsZSAlcyBp
cyBub3QgaG9zdGVkIG9uIGdpdGh1YicgJSBzdWJtb2R1bGVbJ3BhdGgnXSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgIF9sb2cud2FybmluZygnUGxlYXNlIGVuc3VyZSB0aGF0IGdlbmVyYXRlZCBV
UkwgcG9pbnRzIHRvIGFuIGFyY2hpdmUgb2YgdGhlIG1vZHVsZSBvciBtYW51YWxseSBlZGl0IGl0
cyB2YWx1ZSBhZnRlciB0aGUgaW1wb3J0JykKKyAgICAgICAgICAgICAgICAgICAgc3VibW9kdWxl
cy5hcHBlbmQoc3VibW9kdWxlKQorICAgICAgICAgICAgICAgICAgICBzdWJtb2R1bGUgPSB7fQor
CisgICAgICAgIHN1Ym1vZHVsZV9zdGF0dXMgPSBzZWxmLl9zdWJtb2R1bGVfc3RhdHVzKHJlcG9z
aXRvcnlfZGlyZWN0b3J5KQorICAgICAgICBzdWJtb2R1bGVfc3RhdHVzID0gW2xpbmVbMTpdLnNw
bGl0KCcgJykgZm9yIGxpbmUgaW4gc2VsZi5fc3VibW9kdWxlX3N0YXR1cyhyZXBvc2l0b3J5X2Rp
cmVjdG9yeSkuc3BsaXRsaW5lcygpXQorICAgICAgICBmb3Igc3VibW9kdWxlIGluIHN1Ym1vZHVs
ZXM6CisgICAgICAgICAgICBmb3Igc3RhdHVzIGluIHN1Ym1vZHVsZV9zdGF0dXM6CisgICAgICAg
ICAgICAgICAgaWYgc3VibW9kdWxlWydwYXRoJ10gPT0gc3RhdHVzWzFdOgorICAgICAgICAgICAg
ICAgICAgICB1cmwgPSBzdWJtb2R1bGVbJ3VybCddWzotNF0KKyAgICAgICAgICAgICAgICAgICAg
dmVyc2lvbiA9IHN0YXR1c1swXQorICAgICAgICAgICAgICAgICAgICByZXBvc2l0b3J5X25hbWUg
PSB1cmwuc3BsaXQoJy8nKS5wb3AoKQorICAgICAgICAgICAgICAgICAgICBzdWJtb2R1bGVbJ3Vy
bCddID0gdXJsICsgJy9hcmNoaXZlLycgKyB2ZXJzaW9uICsgJy50YXIuZ3onCisgICAgICAgICAg
ICAgICAgICAgIHN1Ym1vZHVsZVsndXJsX3N1YnBhdGgnXSA9IHJlcG9zaXRvcnlfbmFtZSArICct
JyArIHZlcnNpb24KKyAgICAgICAgICAgIGlmICcvJyBpbiBzdWJtb2R1bGVbJ3BhdGgnXToKKyAg
ICAgICAgICAgICAgICBzdGVwcyA9IHN1Ym1vZHVsZVsncGF0aCddLnNwbGl0KCcvJykKKyAgICAg
ICAgICAgICAgICBzdWJtb2R1bGVbJ25hbWUnXSA9IHN0ZXBzLnBvcCgpCisgICAgICAgICAgICAg
ICAgc3VibW9kdWxlWydwYXRoJ10gPSBzdGVwcworICAgICAgICAgICAgZWxzZToKKyAgICAgICAg
ICAgICAgICBzdWJtb2R1bGVbJ25hbWUnXSA9IHN1Ym1vZHVsZVsncGF0aCddCisgICAgICAgICAg
ICAgICAgc3VibW9kdWxlWydwYXRoJ10gPSBbJy4nXQorICAgICAgICByZXR1cm4gc3VibW9kdWxl
cworCisgICAgZGVmIGR1bXBfc3VibW9kdWxlc19kZXNjcmlwdGlvbihzZWxmLCB0ZXN0X3JlcG9z
aXRvcnksIGZpbGVwYXRoKToKKyAgICAgICAgc2VsZi5fZmlsZXN5c3RlbS53cml0ZV90ZXh0X2Zp
bGUoZmlsZXBhdGgsIGpzb24uZHVtcHMoc2VsZi5zdWJtb2R1bGVzX2Rlc2NyaXB0aW9uKHRlc3Rf
cmVwb3NpdG9yeSksIHNvcnRfa2V5cz1UcnVlLCBpbmRlbnQ9NCkpCisKICAgICBkZWYgZG93bmxv
YWRfdGVzdHMoc2VsZiwgZGVzdGluYXRpb25fZGlyZWN0b3J5LCB0ZXN0X3BhdGhzPVtdKToKICAg
ICAgICAgZm9yIHRlc3RfcmVwb3NpdG9yeSBpbiBzZWxmLnRlc3RfcmVwb3NpdG9yaWVzOgogICAg
ICAgICAgICAgc2VsZi5jaGVja291dF90ZXN0X3JlcG9zaXRvcnkodGVzdF9yZXBvc2l0b3J5Wydy
ZXZpc2lvbiddLCB0ZXN0X3JlcG9zaXRvcnlbJ3VybCddLCBzZWxmLl9maWxlc3lzdGVtLmpvaW4o
c2VsZi5yZXBvc2l0b3J5X2RpcmVjdG9yeSwgdGVzdF9yZXBvc2l0b3J5WyduYW1lJ10pKQpkaWZm
IC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS93M2MvdGVzdF9pbXBvcnRlci5weSBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvdzNjL3Rlc3RfaW1wb3J0ZXIucHkKaW5kZXggMDYxNzJjM2Y5
ZGIwYWNjZDUyYzI4MDQxMjA4ZmE1M2RlNTIzM2Q4Yi4uM2Q1YWQxZWJiZmY5OTM4ODY0YzQ0MjE5
MzQ3OWZlOTE3ZWYzOWViMCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS93M2Mv
dGVzdF9pbXBvcnRlci5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3czYy90ZXN0X2lt
cG9ydGVyLnB5CkBAIC0xOTAsNiArMTkwLDE1IEBAIGNsYXNzIFRlc3RJbXBvcnRlcihvYmplY3Qp
OgogCiAgICAgICAgIHNlbGYuaW1wb3J0X3Rlc3RzKCkKIAorICAgICAgICBpZiBzZWxmLl9pbXBv
cnRpbmdfZG93bmxvYWRlZF90ZXN0czoKKyAgICAgICAgICAgIHNlbGYucG9zdF9wcm9jZXNzX2Rv
d25sb2FkZWRfdGVzdHMoKQorCisgICAgZGVmIHBvc3RfcHJvY2Vzc19kb3dubG9hZGVkX3Rlc3Rz
KHNlbGYpOgorICAgICAgICBmb3IgdGVzdF9yZXBvc2l0b3J5IGluIHNlbGYuX3Rlc3RfZG93bmxv
YWRlci50ZXN0X3JlcG9zaXRvcmllczoKKyAgICAgICAgICAgIGlmICdkdW1wX3N1Ym1vZHVsZXNf
ZGVzY3JpcHRpb24nIGluIHRlc3RfcmVwb3NpdG9yeVsnaW1wb3J0X29wdGlvbnMnXToKKyAgICAg
ICAgICAgICAgICBzZWxmLmZpbGVzeXN0ZW0ubWF5YmVfbWFrZV9kaXJlY3Rvcnkoc2VsZi5maWxl
c3lzdGVtLmpvaW4oc2VsZi5kZXN0aW5hdGlvbl9kaXJlY3RvcnksICdyZXNvdXJjZXMnKSkKKyAg
ICAgICAgICAgICAgICBzZWxmLl90ZXN0X2Rvd25sb2FkZXIuZHVtcF9zdWJtb2R1bGVzX2Rlc2Ny
aXB0aW9uKHRlc3RfcmVwb3NpdG9yeSwgc2VsZi5maWxlc3lzdGVtLmpvaW4oc2VsZi5kZXN0aW5h
dGlvbl9kaXJlY3RvcnksICdyZXNvdXJjZXMnLCB0ZXN0X3JlcG9zaXRvcnlbJ25hbWUnXSArICct
bW9kdWxlcy5qc29uJykpCisKICAgICBkZWYgdGVzdF9kb3dubG9hZGVyKHNlbGYpOgogICAgICAg
ICBpZiBub3Qgc2VsZi5fdGVzdF9kb3dubG9hZGVyOgogICAgICAgICAgICAgZG93bmxvYWRfb3B0
aW9ucyA9IFRlc3REb3dubG9hZGVyLmRlZmF1bHRfb3B0aW9ucygpCkBAIC0yODEsNyArMjkwLDcg
QEAgY2xhc3MgVGVzdEltcG9ydGVyKG9iamVjdCk6CiAgICAgICAgIGlmIHNlbGYuX2ltcG9ydGlu
Z19kb3dubG9hZGVkX3Rlc3RzOgogICAgICAgICAgICAgZm9yIHRlc3RfcmVwb3NpdG9yeSBpbiBz
ZWxmLnRlc3RfZG93bmxvYWRlcigpLnRlc3RfcmVwb3NpdG9yaWVzOgogICAgICAgICAgICAgICAg
IGlmIHRlc3Quc3RhcnRzd2l0aCh0ZXN0X3JlcG9zaXRvcnlbJ25hbWUnXSk6Ci0gICAgICAgICAg
ICAgICAgICAgIHJldHVybiB0ZXN0X3JlcG9zaXRvcnlbJ2NvbnZlcnRfdGVzdF9oYXJuZXNzX2xp
bmtzJ10KKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdjb252ZXJ0X3Rlc3RfaGFybmVzc19s
aW5rcycgaW4gdGVzdF9yZXBvc2l0b3J5WydpbXBvcnRfb3B0aW9ucyddCiAgICAgICAgICAgICBy
ZXR1cm4gVHJ1ZQogICAgICAgICByZXR1cm4gc2VsZi5vcHRpb25zLmNvbnZlcnRfdGVzdF9oYXJu
ZXNzX2xpbmtzCiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdzNjL3Rlc3Rf
aW1wb3J0ZXJfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3czYy90ZXN0X2lt
cG9ydGVyX3VuaXR0ZXN0LnB5CmluZGV4IDkwZTVmZWUzMGQwMTEzODE4OWY4ODM3YjExYjI1YmFm
Njg2OTY2NTUuLjhhNDBlNzVjNmVlZGVlOWU3N2FmYzFlMzQzZDBlNmYyODNjNGRmZGYgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdzNjL3Rlc3RfaW1wb3J0ZXJfdW5pdHRlc3Qu
cHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS93M2MvdGVzdF9pbXBvcnRlcl91bml0dGVz
dC5weQpAQCAtMzQsNiArMzQsNyBAQCBmcm9tIHdlYmtpdHB5LmNvbW1vbi5ob3N0X21vY2sgaW1w
b3J0IE1vY2tIb3N0CiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZmlsZXN5c3RlbV9tb2Nr
IGltcG9ydCBNb2NrRmlsZVN5c3RlbQogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmV4ZWN1
dGl2ZV9tb2NrIGltcG9ydCBNb2NrRXhlY3V0aXZlMiwgU2NyaXB0RXJyb3IKIGZyb20gd2Via2l0
cHkuY29tbW9uLnN5c3RlbS5vdXRwdXRjYXB0dXJlIGltcG9ydCBPdXRwdXRDYXB0dXJlCitmcm9t
IHdlYmtpdHB5LnczYy50ZXN0X2Rvd25sb2FkZXIgaW1wb3J0IFRlc3REb3dubG9hZGVyCiBmcm9t
IHdlYmtpdHB5LnczYy50ZXN0X2ltcG9ydGVyIGltcG9ydCBwYXJzZV9hcmdzLCBUZXN0SW1wb3J0
ZXIKIAogCkBAIC05MiwxMiArOTMsMjEgQEAgY2xhc3MgVGVzdEltcG9ydGVyVGVzdCh1bml0dGVz
dC5UZXN0Q2FzZSk6CiAKICAgICBkZWYgaW1wb3J0X2Rvd25sb2FkZWRfdGVzdHMoc2VsZiwgYXJn
cywgZmlsZXMpOgogICAgICAgICAjIGZpbGVzIGFyZSBwYXNzZWQgYXMgcGFyYW1ldGVyIGFzIHdl
IGNhbm5vdCBjbG9uZS9mZXRjaC9jaGVja291dCBhIHJlcG8gaW4gbW9jayBzeXN0ZW0uCisKKyAg
ICAgICAgY2xhc3MgVGVzdERvd25sb2FkZXJNb2NrKFRlc3REb3dubG9hZGVyKToKKyAgICAgICAg
ICAgIGRlZiBfX2luaXRfXyhzZWxmLCByZXBvc2l0b3J5X2RpcmVjdG9yeSwgaG9zdCwgb3B0aW9u
cyk6CisgICAgICAgICAgICAgICAgVGVzdERvd25sb2FkZXIuX19pbml0X18oc2VsZiwgcmVwb3Np
dG9yeV9kaXJlY3RvcnksIGhvc3QsIG9wdGlvbnMpCisKKyAgICAgICAgICAgIGRlZiBfc3VibW9k
dWxlX3N0YXR1cyhzZWxmLCByZXBvc2l0b3J5X2RpcmVjdG9yeSk6CisgICAgICAgICAgICAgICAg
cmV0dXJuICdhZGI0ZDM5MWE2OTg3N2Q0YTFlYWFmNTFkMTcyNWM5OWE1YjhlZDg0IHRvb2xzL3Jl
c291cmNlcycKKwogICAgICAgICBob3N0ID0gTW9ja0hvc3QoKQogICAgICAgICBob3N0LmV4ZWN1
dGl2ZSA9IE1vY2tFeGVjdXRpdmUyKCkKICAgICAgICAgaG9zdC5maWxlc3lzdGVtID0gTW9ja0Zp
bGVTeXN0ZW0oZmlsZXM9ZmlsZXMpCiAKICAgICAgICAgb3B0aW9ucywgYXJncyA9IHBhcnNlX2Fy
Z3MoYXJncykKICAgICAgICAgaW1wb3J0ZXIgPSBUZXN0SW1wb3J0ZXIoaG9zdCwgTm9uZSwgb3B0
aW9ucykKKyAgICAgICAgaW1wb3J0ZXIuX3Rlc3RfZG93bmxvYWRlciA9IFRlc3REb3dubG9hZGVy
TW9jayhpbXBvcnRlci50ZXN0c19kb3dubG9hZF9wYXRoLCBpbXBvcnRlci5ob3N0LCBpbXBvcnRl
ci5vcHRpb25zKQogICAgICAgICBpbXBvcnRlci5kb19pbXBvcnQoKQogICAgICAgICByZXR1cm4g
aG9zdC5maWxlc3lzdGVtCiAKQEAgLTExNiw0ICsxMjYsMTcgQEAgY2xhc3MgVGVzdEltcG9ydGVy
VGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgnc3JjPSIv
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIicgaW4gZnMucmVhZF90ZXh0X2ZpbGUoJy9tb2NrLWNo
ZWNrb3V0L0xheW91dFRlc3RzL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdC90ZXN0Lmh0bWwnKSkK
ICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKCdzcmM9Ii4uLycgaW4gZnMucmVhZF90ZXh0X2ZpbGUo
Jy9tb2NrLWNoZWNrb3V0L0xheW91dFRlc3RzL3czYy9jc3N3Zy10ZXN0cy90L3Rlc3QuaHRtbCcp
KQogCisgICAgZGVmIHRlc3Rfc3VibW9kdWxlc19nZW5lcmF0aW9uKHNlbGYpOgorICAgICAgICBG
QUtFX0ZJTEVTID0geworICAgICAgICAgICAgJy9tb2NrLWNoZWNrb3V0L1dlYktpdEJ1aWxkL3cz
Yy10ZXN0cy9jc3N3Zy10ZXN0cy8uZ2l0bW9kdWxlcyc6ICdbc3VibW9kdWxlICJ0b29scy9yZXNv
dXJjZXMiXVxuCXBhdGggPSB0b29scy9yZXNvdXJjZXNcbgl1cmwgPSBodHRwczovL2dpdGh1Yi5j
b20vdzNjL3Rlc3RoYXJuZXNzLmpzLmdpdFxuICBpZ25vcmUgPSBkaXJ0eVxuJywKKyAgICAgICAg
ICAgICcvbW9jay1jaGVja291dC9XZWJLaXRCdWlsZC93M2MtdGVzdHMvd2ViLXBsYXRmb3JtLXRl
c3RzLy5naXRtb2R1bGVzJzogJ1tzdWJtb2R1bGUgInRvb2xzL3Jlc291cmNlcyJdXG4JcGF0aCA9
IHRvb2xzL3Jlc291cmNlc1xuCXVybCA9IGh0dHBzOi8vZ2l0aHViLmNvbS93M2MvdGVzdGhhcm5l
c3MuanMuZ2l0XG4gIGlnbm9yZSA9IGRpcnR5XG4nLAorICAgICAgICB9CisKKyAgICAgICAgZnMg
PSBzZWxmLmltcG9ydF9kb3dubG9hZGVkX3Rlc3RzKFsnLS1uby1mZXRjaCcsICctLWltcG9ydC1h
bGwnLCAnLWQnLCAndzNjJ10sIEZBS0VfRklMRVMpCisKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxz
ZShmcy5leGlzdHMoJy9tb2NrLWNoZWNrb3V0L0xheW91dFRlc3RzL3czYy9yZXNvdXJjZXMvY3Nz
d2ctdGVzdHMtbW9kdWxlcy5qc29uJykpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShmcy5leGlz
dHMoJy9tb2NrLWNoZWNrb3V0L0xheW91dFRlc3RzL3czYy9yZXNvdXJjZXMvd2ViLXBsYXRmb3Jt
LXRlc3RzLW1vZHVsZXMuanNvbicpKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoJ2h0dHBzOi8v
Z2l0aHViLmNvbS93M2MvdGVzdGhhcm5lc3MuanMvYXJjaGl2ZS9kYjRkMzkxYTY5ODc3ZDRhMWVh
YWY1MWQxNzI1Yzk5YTViOGVkODQudGFyLmd6JyBpbiBmcy5yZWFkX3RleHRfZmlsZSgnL21vY2st
Y2hlY2tvdXQvTGF5b3V0VGVzdHMvdzNjL3Jlc291cmNlcy93ZWItcGxhdGZvcm0tdGVzdHMtbW9k
dWxlcy5qc29uJykpCisKKwogICAgICMgRklYTUU6IE5lZWRzIG1vcmUgdGVzdHMuCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCBiYzQ3NjRjMTIwM2ZmNzRiMjdjOWJhYzcwNjVkYTRj
MmY0ZTc1NmRlLi43OTZkOGFiYWJlODNiNTc5YmFlMjQ3OTQ5ZGE3ZjBkOTc5MTk2OGU4IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxNS0wMy0xNiAg
WW91ZW5uIEZhYmxldCAgPHlvdWVubi5mYWJsZXRAY3JmLmNhbm9uLmZyPgorCisgICAgICAgIFcz
QyB0ZXN0IGltcG9ydGVyIHNob3VsZCBnZW5lcmF0ZSB0aGUgbW9kdWxlcyBpbnN0YWxsZWQgZHlu
YW1pY2FsbHkgdG8gcnVuIHdwdCB0ZXN0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTQyNzM4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgUmVuYW1lZCBXUFRNb2R1bGVzIHRvIHdlYi1wbGF0Zm9ybS10ZXN0
LW1vZHVsZXMuanNvbgorICAgICAgICBVcGRhdGVkIFRlc3RSZXBvc2l0b3JpZXMgdG8gYXNrIHRo
ZSBpbXBvcnRlciB0byBnZW5lcmF0ZSB3ZWItcGxhdGZvcm0tdGVzdC1tb2R1bGVzLmpzb24gYXQg
aW1wb3J0IHRpbWUuICAKKworICAgICAgICAqIHJlc291cmNlcy9UZXN0UmVwb3NpdG9yaWVzOgor
ICAgICAgICAqIHJlc291cmNlcy9XUFRNb2R1bGVzOiBSZW1vdmVkLgorICAgICAgICAqIHJlc291
cmNlcy93ZWItcGxhdGZvcm0tdGVzdHMtbW9kdWxlcy5qc29uOiBBZGRlZC4KKwogMjAxNS0wMy0x
MyAgWW91ZW5uIEZhYmxldCAgPHlvdWVubi5mYWJsZXRAY3JmLmNhbm9uLmZyPgogCiAgICAgICAg
IFdlYktpdCB0ZXN0IGluZnJhc3RydWN0dXJlIHNob3VsZCBhdXRvbWF0ZSB0aGUgcHJvY2VzcyBv
ZiBjbG9uaW5nIFczQyB0ZXN0IHN1aXRlIGFuZCBpbXBvcnRpbmcgdGVzdHMgZnJvbSBpdApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3Jlc291cmNlcy9UZXN0UmVwb3NpdG9y
aWVzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3Jlc291cmNlcy9UZXN0UmVwb3NpdG9yaWVz
CmluZGV4IDk1NjhlMjA5NjdhYTA2MmI3OGM5NmJlZGQxNmE3YTlmMTM5NjAyNjkuLjAzYjdlNWJh
NTlhOTJmMjhhNTI0OGYyYWUxNjE0YWUxYzEzMjVjMTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9yZXNvdXJjZXMvVGVzdFJlcG9zaXRvcmllcworKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvcmVzb3VyY2VzL1Rlc3RSZXBvc2l0b3JpZXMKQEAgLTEwLDcgKzEwLDcg
QEAKICAgICAgICAgInBhdGhzX3RvX2ltcG9ydCI6IFsKICAgICAgICAgICAgICJzdXBwb3J0Igog
ICAgICAgICBdLAotICAgICAgICAiY29udmVydF90ZXN0X2hhcm5lc3NfbGlua3MiOiB0cnVlCisg
ICAgICAgICJpbXBvcnRfb3B0aW9ucyI6IFsiY29udmVydF90ZXN0X2hhcm5lc3NfbGlua3MiXQog
ICAgIH0sCiAgICAgewogICAgICAgICAibmFtZSI6ICJ3ZWItcGxhdGZvcm0tdGVzdHMiLApAQCAt
MzAsNiArMzAsNiBAQAogICAgICAgICAgICAgImNvbmZpZy5kZWZhdWx0Lmpzb24iLAogICAgICAg
ICAgICAgInNlcnZlLnB5IgogICAgICAgICBdLAotICAgICAgICAiY29udmVydF90ZXN0X2hhcm5l
c3NfbGlua3MiOiBmYWxzZQorICAgICAgICAiaW1wb3J0X29wdGlvbnMiOiBbImR1bXBfc3VibW9k
dWxlc19kZXNjcmlwdGlvbiJdCiAgICAgfQogXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3Jlc291cmNlcy9XUFRNb2R1bGVzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3Jlc291cmNlcy9XUFRNb2R1bGVzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2Mjg0
NWZhN2NkNDEwMjgwZjJmNTcwOGUwZTMxMGQ3NDQ5NWQ4NjI3Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9yZXNv
dXJjZXMvV1BUTW9kdWxlcworKysgL2Rldi9udWxsCkBAIC0xLDMyICswLDAgQEAKLVsKLXsKLSAg
ICAibmFtZSI6ICJodG1sNWxpYiIsCi0gICAgInBhdGgiOiAidG9vbHMiLAotICAgICJ1cmwiOiAi
aHR0cHM6Ly9naXRodWIuY29tL2h0bWw1bGliL2h0bWw1bGliLXB5dGhvbi9hcmNoaXZlLzdjY2U2
NWJiYWE3ODQxMWY5OGI4YjM3ZWVlZmM5ZGIwM2M1ODAwOTcudGFyLmd6IiwKLSAgICAidXJsX3N1
YnBhdGgiOiAiaHRtbDVsaWItcHl0aG9uLTdjY2U2NWJiYWE3ODQxMWY5OGI4YjM3ZWVlZmM5ZGIw
M2M1ODAwOTciCi19LAotewotICAgICJuYW1lIjogInB5d2Vic29ja2V0IiwKLSAgICAicGF0aCI6
ICJ0b29scyIsCi0gICAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdzNjL3B5d2Vic29ja2V0
L2FyY2hpdmUvOGMyODVkOTAxNTEyMWU4YzFjNDBiZTg1MjQzOWZjMDNiNGExODExMi50YXIuZ3oi
LAotICAgICJ1cmxfc3VicGF0aCI6ICJweXdlYnNvY2tldC04YzI4NWQ5MDE1MTIxZThjMWM0MGJl
ODUyNDM5ZmMwM2I0YTE4MTEyIgotfSwKLXsKLSAgICAibmFtZSI6ICJzaXgiLAotICAgICJwYXRo
IjogInRvb2xzIiwKLSAgICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9qZ3JhaGFtL3NpeC9h
cmNoaXZlLzNiNjE3M2M4MzNkMjE3YWIwMTg2YzM1NTgwNGY1OTI1Y2JjZmNhNDcudGFyLmd6IiwK
LSAgICAidXJsX3N1YnBhdGgiOiAic2l4LTNiNjE3M2M4MzNkMjE3YWIwMTg2YzM1NTgwNGY1OTI1
Y2JjZmNhNDciCi19LAotewotICAgICJuYW1lIjogIndwdHNlcnZlIiwKLSAgICAicGF0aCI6ICJ0
b29scyIsCi0gICAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdzNjL3dwdHNlcnZlL2FyY2hp
dmUvOTFlNzY0ZmZhMGY1ODcwOTAzNDFhMjZhZjQ1N2RmZGM2NzYyZWIwZC50YXIuZ3oiLAotICAg
ICJ1cmxfc3VicGF0aCI6ICJ3cHRzZXJ2ZS05MWU3NjRmZmEwZjU4NzA5MDM0MWEyNmFmNDU3ZGZk
YzY3NjJlYjBkIgotfSwKLXsKLSAgICAibmFtZSI6ICJyZXNvdXJjZXMiLAotICAgICJwYXRoIjog
Ii4iLAotICAgICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3czYy90ZXN0aGFybmVzcy5qcy9h
cmNoaXZlLzc0YmExM2QyZmJiMTljNmU3NDk0OTYwYmQ3NzI0ODczZTg4YzUyM2MudGFyLmd6IiwK
LSAgICAidXJsX3N1YnBhdGgiOiAidGVzdGhhcm5lc3MuanMtNzRiYTEzZDJmYmIxOWM2ZTc0OTQ5
NjBiZDc3MjQ4NzNlODhjNTIzYyIKLX0KLV0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9yZXNvdXJjZXMvd2ViLXBsYXRmb3JtLXRlc3RzLW1vZHVsZXMuanNvbiBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9yZXNvdXJjZXMvd2ViLXBsYXRmb3JtLXRlc3RzLW1vZHVsZXMu
anNvbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi43NjgxNjljNmVjMzI0NDU2OGM3M2E4OWI2ZWEzNDlkZmJhNzgyMTlm
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3Jlc291cmNlcy93
ZWItcGxhdGZvcm0tdGVzdHMtbW9kdWxlcy5qc29uCkBAIC0wLDAgKzEsNDIgQEAKK1sKKyAgICB7
CisgICAgICAgICJuYW1lIjogInJlc291cmNlcyIsIAorICAgICAgICAicGF0aCI6IFsKKyAgICAg
ICAgICAgICIuIgorICAgICAgICBdLCAKKyAgICAgICAgInVybCI6ICJodHRwczovL2dpdGh1Yi5j
b20vdzNjL3Rlc3RoYXJuZXNzLmpzL2FyY2hpdmUvMmExZGEyNjRmNjcxOGRiMDRjMzkyNWE5OTU2
YjYzNTQyNjgyN2FlZi50YXIuZ3oiLCAKKyAgICAgICAgInVybF9zdWJwYXRoIjogInRlc3RoYXJu
ZXNzLmpzLTJhMWRhMjY0ZjY3MThkYjA0YzM5MjVhOTk1NmI2MzU0MjY4MjdhZWYiCisgICAgfSwg
CisgICAgeworICAgICAgICAibmFtZSI6ICJ3cHRzZXJ2ZSIsIAorICAgICAgICAicGF0aCI6IFsK
KyAgICAgICAgICAgICJ0b29scyIKKyAgICAgICAgXSwgCisgICAgICAgICJ1cmwiOiAiaHR0cHM6
Ly9naXRodWIuY29tL3czYy93cHRzZXJ2ZS9hcmNoaXZlLzkxZTc2NGZmYTBmNTg3MDkwMzQxYTI2
YWY0NTdkZmRjNjc2MmViMGQudGFyLmd6IiwgCisgICAgICAgICJ1cmxfc3VicGF0aCI6ICJ3cHRz
ZXJ2ZS05MWU3NjRmZmEwZjU4NzA5MDM0MWEyNmFmNDU3ZGZkYzY3NjJlYjBkIgorICAgIH0sIAor
ICAgIHsKKyAgICAgICAgIm5hbWUiOiAicHl3ZWJzb2NrZXQiLCAKKyAgICAgICAgInBhdGgiOiBb
CisgICAgICAgICAgICAidG9vbHMiCisgICAgICAgIF0sIAorICAgICAgICAidXJsIjogImh0dHBz
Oi8vZ2l0aHViLmNvbS93M2MvcHl3ZWJzb2NrZXQvYXJjaGl2ZS84YzI4NWQ5MDE1MTIxZThjMWM0
MGJlODUyNDM5ZmMwM2I0YTE4MTEyLnRhci5neiIsIAorICAgICAgICAidXJsX3N1YnBhdGgiOiAi
cHl3ZWJzb2NrZXQtOGMyODVkOTAxNTEyMWU4YzFjNDBiZTg1MjQzOWZjMDNiNGExODExMiIKKyAg
ICB9LCAKKyAgICB7CisgICAgICAgICJuYW1lIjogImh0bWw1bGliIiwgCisgICAgICAgICJwYXRo
IjogWworICAgICAgICAgICAgInRvb2xzIgorICAgICAgICBdLCAKKyAgICAgICAgInVybCI6ICJo
dHRwczovL2dpdGh1Yi5jb20vaHRtbDVsaWIvaHRtbDVsaWItcHl0aG9uL2FyY2hpdmUvN2NjZTY1
YmJhYTc4NDExZjk4YjhiMzdlZWVmYzlkYjAzYzU4MDA5Ny50YXIuZ3oiLCAKKyAgICAgICAgInVy
bF9zdWJwYXRoIjogImh0bWw1bGliLXB5dGhvbi03Y2NlNjViYmFhNzg0MTFmOThiOGIzN2VlZWZj
OWRiMDNjNTgwMDk3IgorICAgIH0sIAorICAgIHsKKyAgICAgICAgIm5hbWUiOiAic2l4IiwgCisg
ICAgICAgICJwYXRoIjogWworICAgICAgICAgICAgInRvb2xzIgorICAgICAgICBdLCAKKyAgICAg
ICAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vamdyYWhhbS9zaXgvYXJjaGl2ZS8zYjYxNzNj
ODMzZDIxN2FiMDE4NmMzNTU4MDRmNTkyNWNiY2ZjYTQ3LnRhci5neiIsIAorICAgICAgICAidXJs
X3N1YnBhdGgiOiAic2l4LTNiNjE3M2M4MzNkMjE3YWIwMTg2YzM1NTgwNGY1OTI1Y2JjZmNhNDci
CisgICAgfQorXQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>249112</attachid>
            <date>2015-03-20 07:07:00 -0700</date>
            <delta_ts>2015-04-06 01:09:30 -0700</delta_ts>
            <desc>Fixing names</desc>
            <filename>bug-142738-20150320150626.patch</filename>
            <type>text/plain</type>
            <size>17166</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgxNjkwCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggN2E0YjRlZDI1YmI1MzNkMTExOTQyNzBiZTg3ZDQ4NzJl
NzcxOTIyZC4uOTRkNDI1YmMzZmMxNmM3MmYyZDU5NTQ4NzdjOWFiYmZiN2NiOTg0MSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMz
IEBACisyMDE1LTAzLTIwICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uLmZhYmxldEBjcmYuY2Fub24u
ZnI+CisKKyAgICAgICAgVzNDIHRlc3QgaW1wb3J0ZXIgc2hvdWxkIGdlbmVyYXRlIHRoZSBtb2R1
bGVzIGluc3RhbGxlZCBkeW5hbWljYWxseSB0byBydW4gd3B0IHRlc3RzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI3MzgKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgdGVzdCBpbXBvcnRlciBjYW4g
bm93IGdlbmVyYXRlIHRoZSBzdWJtb2R1bGVzIGRlc2NyaXB0aW9uIGZpbGUgYmFzZWQgb24gaW5m
b3JtYXRpb24gZXh0cmFjdGVkIGZyb20gdGhlIGNvcnJlc3BvbmRpbmcgZ2l0IHJlcG9zaXRvcnku
CisgICAgICAgIFRoZSBpbXBsZW1lbnRhdGlvbiBpcyBkb25lIHdpdGhpbiBUZXN0RG93bmxvYWRl
ciBhbmQgaXQgaXMgYWN0aXZhdGVkIGZvciB0aGUgV1BUIHJlcG9zaXRvcnkuCisgICAgICAgIExh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9yZXNvdXJjZXMvV1BUTW9kdWxlcyBpcyByZW5hbWVkIGFz
IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9yZXNvdXJjZXMvd2ViLXBsYXRmb3JtLXRlc3RzLW1v
ZHVsZXMuanNvbiBmb3IgdGhhdCByZWFzb24uCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9zZXJ2ZXJzL3dlYl9wbGF0Zm9ybV90ZXN0X3NlcnZlci5weToKKyAgICAg
ICAgKFdlYlBsYXRmb3JtVGVzdFNlcnZlci5faW5zdGFsbF9tb2R1bGVzKTogVXBkYXRlZCB0byBj
b3BlIHdpdGggcGF0aCBhcyBhcnJheS4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3czYy90
ZXN0X2Rvd25sb2FkZXIucHk6CisgICAgICAgIChUZXN0RG93bmxvYWRlci5fZ2l0X3N1Ym1vZHVs
ZXNfc3RhdHVzKTogQWRkZWQgc28gdGhhdCBpdCBjYW4gYmUgb3ZlcnJpZGVuIGZvciB1bml0IHRl
c3RzLgorICAgICAgICAoVGVzdERvd25sb2FkZXIpOgorICAgICAgICAoVGVzdERvd25sb2FkZXIu
X2dpdF9zdWJtb2R1bGVzX2Rlc2NyaXB0aW9uKTogQ29tcHV0ZXMgc3VibW9kdWxlIGRlc2NyaXB0
aW9uLgorICAgICAgICAoVGVzdERvd25sb2FkZXIuZ2VuZXJhdGVfZ2l0X3N1Ym1vZHVsZXNfZGVz
Y3JpcHRpb24pOiBXcml0ZSBzdWJtb2R1bGUgZGVzY3JpcHRpb24gaW4gYSBmaWxlLgorICAgICAg
ICAqIFNjcmlwdHMvd2Via2l0cHkvdzNjL3Rlc3RfaW1wb3J0ZXIucHk6CisgICAgICAgIChUZXN0
SW1wb3J0ZXIuZG9faW1wb3J0KTogQWRkZWQgdGhlIHBvc3NpYmlsaXR5IHRvIHBvc3QgcHJvY2Vz
cyB0aGUgdGVzdHMuCisgICAgICAgIChUZXN0SW1wb3J0ZXIpOgorICAgICAgICAoVGVzdEltcG9y
dGVyLnByb2Nlc3NfdGVzdF9yZXBvc2l0b3JpZXNfaW1wb3J0X29wdGlvbnMpOiBFbmFibGUgZ2Vu
ZXJhdGluZyBtb2R1bGUgZGVzY3JpcHRpb24gZmlsZS4KKyAgICAgICAgKFRlc3RJbXBvcnRlci5z
aG91bGRfY29udmVydF90ZXN0X2hhcm5lc3NfbGlua3MpOiBVcGRhdGVkIGFjY29yZGluZyBuZXcg
b3B0aW9ucyBmb3JtYXQuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS93M2MvdGVzdF9pbXBv
cnRlcl91bml0dGVzdC5weToKKyAgICAgICAgKFRlc3RJbXBvcnRlclRlc3QuaW1wb3J0X2Rvd25s
b2FkZWRfdGVzdHMpOiBNYWtpbmcgdXNlIG9mIFRlc3REb3dubG9hZGVyTW9jay4gCisgICAgICAg
IChUZXN0SW1wb3J0ZXJUZXN0LmltcG9ydF9kb3dubG9hZGVkX3Rlc3RzLlRlc3REb3dubG9hZGVy
TW9jayk6IEFkZGVkIHRvIG92ZXJyaWRlIHN1Ym1vZHVsZSBzdGF0dXMgZ2F0aGVyaW5nLgorICAg
ICAgICAoVGVzdEltcG9ydGVyVGVzdC5pbXBvcnRfZG93bmxvYWRlZF90ZXN0cy5UZXN0RG93bmxv
YWRlck1vY2suX19pbml0X18pOgorICAgICAgICAoVGVzdEltcG9ydGVyVGVzdC5pbXBvcnRfZG93
bmxvYWRlZF90ZXN0cy5UZXN0RG93bmxvYWRlck1vY2suX2dpdF9zdWJtb2R1bGVzX3N0YXR1cyk6
CisgICAgICAgIChUZXN0SW1wb3J0ZXJUZXN0LnRlc3Rfc3VibW9kdWxlc19nZW5lcmF0aW9uKTog
QWRkZWQgdG8gY2hlY2sgdGhhdCBtb2R1bGVzIGRlc2NyaXB0aW9uIGZpbGVzIHdvcmtzLgorCiAy
MDE1LTAzLTE4ICBDc2FiYSBPc3p0cm9nb27DoWMgIDxvc3N5QHdlYmtpdC5vcmc+CiAKICAgICAg
ICAgW0VGTF0gQnVtcCBnc3RyZWFtZXIgdmVyc2lvbiB0byAxLjQuNApkaWZmIC0tZ2l0IGEvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvc2VydmVycy93ZWJfcGxhdGZvcm1fdGVz
dF9zZXJ2ZXIucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9zZXJ2ZXJz
L3dlYl9wbGF0Zm9ybV90ZXN0X3NlcnZlci5weQppbmRleCAwNDFhOWZlMzRhMDE0NWZmYTE1MjA0
ZWE1MjQ0MDk3MWFiYzcyYTM5Li4yNmY5ZjlhNWE5YzFkOGY2ZTBhNDVlNWVmM2QyZmE3NzdkMDNl
Yzk0IDEwMDc1NQotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9zZXJ2
ZXJzL3dlYl9wbGF0Zm9ybV90ZXN0X3NlcnZlci5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9zZXJ2ZXJzL3dlYl9wbGF0Zm9ybV90ZXN0X3NlcnZlci5weQpAQCAt
NzksMTMgKzc5LDEzIEBAIGNsYXNzIFdlYlBsYXRmb3JtVGVzdFNlcnZlcihodHRwX3NlcnZlcl9i
YXNlLkh0dHBTZXJ2ZXJCYXNlKToKICAgICAgICAgc2VsZi5fZG9jX3Jvb3RfcGF0aCA9IHBvcnRf
b2JqLnBhdGhfZnJvbV93ZWJraXRfYmFzZSgiTGF5b3V0VGVzdHMiLCBzZWxmLl9kb2Nfcm9vdCkK
IAogICAgIGRlZiBfaW5zdGFsbF9tb2R1bGVzKHNlbGYpOgotICAgICAgICBtb2R1bGVzX2ZpbGVf
cGF0aCA9IHNlbGYuX2ZpbGVzeXN0ZW0uam9pbihzZWxmLl9sYXlvdXRfcm9vdCwgImltcG9ydGVk
IiwgInczYyIsICJyZXNvdXJjZXMiLCAiV1BUTW9kdWxlcyIpCisgICAgICAgIG1vZHVsZXNfZmls
ZV9wYXRoID0gc2VsZi5fZmlsZXN5c3RlbS5qb2luKHNlbGYuX2xheW91dF9yb290LCAiaW1wb3J0
ZWQiLCAidzNjIiwgInJlc291cmNlcyIsICJ3ZWItcGxhdGZvcm0tdGVzdHMtbW9kdWxlcy5qc29u
IikKICAgICAgICAgaWYgbm90IHNlbGYuX2ZpbGVzeXN0ZW0uaXNmaWxlKG1vZHVsZXNfZmlsZV9w
YXRoKToKICAgICAgICAgICAgIF9sb2cud2FybmluZygiQ2Fubm90IHJlYWQgIiArIG1vZHVsZXNf
ZmlsZV9wYXRoKQogICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgIG1vZHVsZXMgPSBqc29uLmxv
YWRzKHNlbGYuX2ZpbGVzeXN0ZW0ucmVhZF90ZXh0X2ZpbGUobW9kdWxlc19maWxlX3BhdGgpKQog
ICAgICAgICBmb3IgbW9kdWxlIGluIG1vZHVsZXM6Ci0gICAgICAgICAgICBBdXRvSW5zdGFsbGVy
KHRhcmdldF9kaXI9c2VsZi5fZmlsZXN5c3RlbS5qb2luKHNlbGYuX2RvY19yb290LCBtb2R1bGVb
InBhdGgiXSkpLmluc3RhbGwodXJsPW1vZHVsZVsidXJsIl0sIHVybF9zdWJwYXRoPW1vZHVsZVsi
dXJsX3N1YnBhdGgiXSwgdGFyZ2V0X25hbWU9bW9kdWxlWyJuYW1lIl0pCisgICAgICAgICAgICBB
dXRvSW5zdGFsbGVyKHRhcmdldF9kaXI9c2VsZi5fZmlsZXN5c3RlbS5qb2luKHNlbGYuX2RvY19y
b290LCBzZWxmLl9maWxlc3lzdGVtLnNlcC5qb2luKG1vZHVsZVsicGF0aCJdKSkpLmluc3RhbGwo
dXJsPW1vZHVsZVsidXJsIl0sIHVybF9zdWJwYXRoPW1vZHVsZVsidXJsX3N1YnBhdGgiXSwgdGFy
Z2V0X25hbWU9bW9kdWxlWyJuYW1lIl0pCiAKICAgICBkZWYgX2NvcHlfd2Via2l0X3Rlc3RfZmls
ZXMoc2VsZik6CiAgICAgICAgIF9sb2cuZGVidWcoJ0NvcHlpbmcgV2ViS2l0IHJlc291cmNlcyBm
aWxlcycpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3czYy90ZXN0X2Rvd25s
b2FkZXIucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3czYy90ZXN0X2Rvd25sb2FkZXIucHkK
aW5kZXggNWFkYmEyYzkyMWNkNTkwOGM1ZTE0YWZjYmJhYWZmMTM1M2QwYjczNi4uM2ZlYWNiODhh
NGIxNDRkN2I1NzdjMzUzNmM0NjBkM2JjMTFiZmZjNCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS93M2MvdGVzdF9kb3dubG9hZGVyLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvdzNjL3Rlc3RfZG93bmxvYWRlci5weQpAQCAtMTQ5LDYgKzE0OSw0NyBAQCBjbGFzcyBU
ZXN0RG93bmxvYWRlcihvYmplY3QpOgogICAgICAgICAgICAgaWYgc2VsZi5fZmlsZXN5c3RlbS5p
c2ZpbGUoZGVzdGluYXRpb25fcGF0aCk6CiAgICAgICAgICAgICAgICAgc2VsZi5fZmlsZXN5c3Rl
bS5yZW1vdmUoZGVzdGluYXRpb25fcGF0aCkKIAorICAgIGRlZiBfZ2l0X3N1Ym1vZHVsZXNfc3Rh
dHVzKHNlbGYsIHJlcG9zaXRvcnlfZGlyZWN0b3J5KToKKyAgICAgICAgcmV0dXJuIHNlbGYuZ2l0
KHJlcG9zaXRvcnlfZGlyZWN0b3J5KS5fcnVuX2dpdChbJ3N1Ym1vZHVsZScsICdzdGF0dXMnXSkK
KworICAgIGRlZiBfZ2l0X3N1Ym1vZHVsZXNfZGVzY3JpcHRpb24oc2VsZiwgdGVzdF9yZXBvc2l0
b3J5KToKKyAgICAgICAgc3VibW9kdWxlcyA9IFtdCisgICAgICAgIHJlcG9zaXRvcnlfZGlyZWN0
b3J5ID0gc2VsZi5fZmlsZXN5c3RlbS5qb2luKHNlbGYucmVwb3NpdG9yeV9kaXJlY3RvcnksIHRl
c3RfcmVwb3NpdG9yeVsnbmFtZSddKQorICAgICAgICBpZiBzZWxmLl9maWxlc3lzdGVtLmlzZmls
ZShzZWxmLl9maWxlc3lzdGVtLmpvaW4ocmVwb3NpdG9yeV9kaXJlY3RvcnksICcuZ2l0bW9kdWxl
cycpKToKKyAgICAgICAgICAgIHN1Ym1vZHVsZSA9IHt9CisgICAgICAgICAgICBmb3IgbGluZSBp
biBzZWxmLl9maWxlc3lzdGVtLnJlYWRfdGV4dF9maWxlKHNlbGYuX2ZpbGVzeXN0ZW0uam9pbihy
ZXBvc2l0b3J5X2RpcmVjdG9yeSwgJy5naXRtb2R1bGVzJykpLnNwbGl0bGluZXMoKToKKyAgICAg
ICAgICAgICAgICBsaW5lID0gbGluZS5zdHJpcCgpCisgICAgICAgICAgICAgICAgaWYgbGluZS5z
dGFydHN3aXRoKCdwYXRoID0gJyk6CisgICAgICAgICAgICAgICAgICAgIHN1Ym1vZHVsZVsncGF0
aCddID0gbGluZVs3Ol0KKyAgICAgICAgICAgICAgICBlbGlmIGxpbmUuc3RhcnRzd2l0aCgndXJs
ID0gJyk6CisgICAgICAgICAgICAgICAgICAgIHN1Ym1vZHVsZVsndXJsJ10gPSBsaW5lWzY6XQor
ICAgICAgICAgICAgICAgICAgICBpZiBub3Qgc3VibW9kdWxlWyd1cmwnXS5zdGFydHN3aXRoKCdo
dHRwczovL2dpdGh1Yi5jb20vJyk6CisgICAgICAgICAgICAgICAgICAgICAgICBfbG9nLndhcm5p
bmcoJ1N1Ym1vZHVsZSAlcyBpcyBub3QgaG9zdGVkIG9uIGdpdGh1YicgJSBzdWJtb2R1bGVbJ3Bh
dGgnXSkKKyAgICAgICAgICAgICAgICAgICAgICAgIF9sb2cud2FybmluZygnUGxlYXNlIGVuc3Vy
ZSB0aGF0IGdlbmVyYXRlZCBVUkwgcG9pbnRzIHRvIGFuIGFyY2hpdmUgb2YgdGhlIG1vZHVsZSBv
ciBtYW51YWxseSBlZGl0IGl0cyB2YWx1ZSBhZnRlciB0aGUgaW1wb3J0JykKKyAgICAgICAgICAg
ICAgICAgICAgc3VibW9kdWxlcy5hcHBlbmQoc3VibW9kdWxlKQorICAgICAgICAgICAgICAgICAg
ICBzdWJtb2R1bGUgPSB7fQorCisgICAgICAgIHN1Ym1vZHVsZXNfc3RhdHVzID0gW2xpbmVbMTpd
LnNwbGl0KCcgJykgZm9yIGxpbmUgaW4gc2VsZi5fZ2l0X3N1Ym1vZHVsZXNfc3RhdHVzKHJlcG9z
aXRvcnlfZGlyZWN0b3J5KS5zcGxpdGxpbmVzKCldCisgICAgICAgIGZvciBzdWJtb2R1bGUgaW4g
c3VibW9kdWxlczoKKyAgICAgICAgICAgIGZvciBzdGF0dXMgaW4gc3VibW9kdWxlc19zdGF0dXM6
CisgICAgICAgICAgICAgICAgaWYgc3VibW9kdWxlWydwYXRoJ10gPT0gc3RhdHVzWzFdOgorICAg
ICAgICAgICAgICAgICAgICB1cmwgPSBzdWJtb2R1bGVbJ3VybCddWzotNF0KKyAgICAgICAgICAg
ICAgICAgICAgdmVyc2lvbiA9IHN0YXR1c1swXQorICAgICAgICAgICAgICAgICAgICByZXBvc2l0
b3J5X25hbWUgPSB1cmwuc3BsaXQoJy8nKS5wb3AoKQorICAgICAgICAgICAgICAgICAgICBzdWJt
b2R1bGVbJ3VybCddID0gdXJsICsgJy9hcmNoaXZlLycgKyB2ZXJzaW9uICsgJy50YXIuZ3onCisg
ICAgICAgICAgICAgICAgICAgIHN1Ym1vZHVsZVsndXJsX3N1YnBhdGgnXSA9IHJlcG9zaXRvcnlf
bmFtZSArICctJyArIHZlcnNpb24KKyAgICAgICAgICAgIGlmICcvJyBpbiBzdWJtb2R1bGVbJ3Bh
dGgnXToKKyAgICAgICAgICAgICAgICBzdGVwcyA9IHN1Ym1vZHVsZVsncGF0aCddLnNwbGl0KCcv
JykKKyAgICAgICAgICAgICAgICBzdWJtb2R1bGVbJ25hbWUnXSA9IHN0ZXBzLnBvcCgpCisgICAg
ICAgICAgICAgICAgc3VibW9kdWxlWydwYXRoJ10gPSBzdGVwcworICAgICAgICAgICAgZWxzZToK
KyAgICAgICAgICAgICAgICBzdWJtb2R1bGVbJ25hbWUnXSA9IHN1Ym1vZHVsZVsncGF0aCddCisg
ICAgICAgICAgICAgICAgc3VibW9kdWxlWydwYXRoJ10gPSBbJy4nXQorICAgICAgICByZXR1cm4g
c3VibW9kdWxlcworCisgICAgZGVmIGdlbmVyYXRlX2dpdF9zdWJtb2R1bGVzX2Rlc2NyaXB0aW9u
KHNlbGYsIHRlc3RfcmVwb3NpdG9yeSwgZmlsZXBhdGgpOgorICAgICAgICBzZWxmLl9maWxlc3lz
dGVtLndyaXRlX3RleHRfZmlsZShmaWxlcGF0aCwganNvbi5kdW1wcyhzZWxmLl9naXRfc3VibW9k
dWxlc19kZXNjcmlwdGlvbih0ZXN0X3JlcG9zaXRvcnkpLCBzb3J0X2tleXM9VHJ1ZSwgaW5kZW50
PTQpKQorCiAgICAgZGVmIGRvd25sb2FkX3Rlc3RzKHNlbGYsIGRlc3RpbmF0aW9uX2RpcmVjdG9y
eSwgdGVzdF9wYXRocz1bXSk6CiAgICAgICAgIGZvciB0ZXN0X3JlcG9zaXRvcnkgaW4gc2VsZi50
ZXN0X3JlcG9zaXRvcmllczoKICAgICAgICAgICAgIHNlbGYuY2hlY2tvdXRfdGVzdF9yZXBvc2l0
b3J5KHRlc3RfcmVwb3NpdG9yeVsncmV2aXNpb24nXSwgdGVzdF9yZXBvc2l0b3J5Wyd1cmwnXSwg
c2VsZi5fZmlsZXN5c3RlbS5qb2luKHNlbGYucmVwb3NpdG9yeV9kaXJlY3RvcnksIHRlc3RfcmVw
b3NpdG9yeVsnbmFtZSddKSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdzNj
L3Rlc3RfaW1wb3J0ZXIucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3czYy90ZXN0X2ltcG9y
dGVyLnB5CmluZGV4IDA2MTcyYzNmOWRiMGFjY2Q1MmMyODA0MTIwOGZhNTNkZTUyMzNkOGIuLmVj
MDJhZjI5NjBmYmFhN2ZmNWMwMjMyMDdlMTM1MTM1NzdhNmVkMDggMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvdzNjL3Rlc3RfaW1wb3J0ZXIucHkKKysrIGIvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS93M2MvdGVzdF9pbXBvcnRlci5weQpAQCAtMTkwLDYgKzE5MCwxNiBAQCBjbGFz
cyBUZXN0SW1wb3J0ZXIob2JqZWN0KToKIAogICAgICAgICBzZWxmLmltcG9ydF90ZXN0cygpCiAK
KyAgICAgICAgaWYgc2VsZi5faW1wb3J0aW5nX2Rvd25sb2FkZWRfdGVzdHM6CisgICAgICAgICAg
ICBzZWxmLnByb2Nlc3NfdGVzdF9yZXBvc2l0b3JpZXNfaW1wb3J0X29wdGlvbnMoKQorCisgICAg
ZGVmIHByb2Nlc3NfdGVzdF9yZXBvc2l0b3JpZXNfaW1wb3J0X29wdGlvbnMoc2VsZik6CisgICAg
ICAgIGZvciB0ZXN0X3JlcG9zaXRvcnkgaW4gc2VsZi5fdGVzdF9kb3dubG9hZGVyLnRlc3RfcmVw
b3NpdG9yaWVzOgorICAgICAgICAgICAgaWYgJ2dlbmVyYXRlX2dpdF9zdWJtb2R1bGVzX2Rlc2Ny
aXB0aW9uJyBpbiB0ZXN0X3JlcG9zaXRvcnlbJ2ltcG9ydF9vcHRpb25zJ106CisgICAgICAgICAg
ICAgICAgc2VsZi5maWxlc3lzdGVtLm1heWJlX21ha2VfZGlyZWN0b3J5KHNlbGYuZmlsZXN5c3Rl
bS5qb2luKHNlbGYuZGVzdGluYXRpb25fZGlyZWN0b3J5LCAncmVzb3VyY2VzJykpCisgICAgICAg
ICAgICAgICAgc2VsZi5fdGVzdF9kb3dubG9hZGVyLmdlbmVyYXRlX2dpdF9zdWJtb2R1bGVzX2Rl
c2NyaXB0aW9uKHRlc3RfcmVwb3NpdG9yeSwgc2VsZi5maWxlc3lzdGVtLmpvaW4oc2VsZi5kZXN0
aW5hdGlvbl9kaXJlY3RvcnksICdyZXNvdXJjZXMnLCB0ZXN0X3JlcG9zaXRvcnlbJ25hbWUnXSAr
ICctbW9kdWxlcy5qc29uJykpCisgICAgICAgICAgICAjIEZJWE1FOiBHZW5lcmF0ZSBXUFQgLmdp
dGlnbm9yZSBhbmQgIG1haW4gX19pbml0X18ucHkKKwogICAgIGRlZiB0ZXN0X2Rvd25sb2FkZXIo
c2VsZik6CiAgICAgICAgIGlmIG5vdCBzZWxmLl90ZXN0X2Rvd25sb2FkZXI6CiAgICAgICAgICAg
ICBkb3dubG9hZF9vcHRpb25zID0gVGVzdERvd25sb2FkZXIuZGVmYXVsdF9vcHRpb25zKCkKQEAg
LTI4MSw3ICsyOTEsNyBAQCBjbGFzcyBUZXN0SW1wb3J0ZXIob2JqZWN0KToKICAgICAgICAgaWYg
c2VsZi5faW1wb3J0aW5nX2Rvd25sb2FkZWRfdGVzdHM6CiAgICAgICAgICAgICBmb3IgdGVzdF9y
ZXBvc2l0b3J5IGluIHNlbGYudGVzdF9kb3dubG9hZGVyKCkudGVzdF9yZXBvc2l0b3JpZXM6CiAg
ICAgICAgICAgICAgICAgaWYgdGVzdC5zdGFydHN3aXRoKHRlc3RfcmVwb3NpdG9yeVsnbmFtZSdd
KToKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRlc3RfcmVwb3NpdG9yeVsnY29udmVydF90
ZXN0X2hhcm5lc3NfbGlua3MnXQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ2NvbnZlcnRf
dGVzdF9oYXJuZXNzX2xpbmtzJyBpbiB0ZXN0X3JlcG9zaXRvcnlbJ2ltcG9ydF9vcHRpb25zJ10K
ICAgICAgICAgICAgIHJldHVybiBUcnVlCiAgICAgICAgIHJldHVybiBzZWxmLm9wdGlvbnMuY29u
dmVydF90ZXN0X2hhcm5lc3NfbGlua3MKIApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS93M2MvdGVzdF9pbXBvcnRlcl91bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvdzNjL3Rlc3RfaW1wb3J0ZXJfdW5pdHRlc3QucHkKaW5kZXggOTBlNWZlZTMwZDAxMTM4MTg5
Zjg4MzdiMTFiMjViYWY2ODY5NjY1NS4uMGFlMzY2MGJjZTgwYjYwNWIwNTUyMGFlNzI1YWYzMjUw
NzQzZDYwOSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS93M2MvdGVzdF9pbXBv
cnRlcl91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3czYy90ZXN0X2lt
cG9ydGVyX3VuaXR0ZXN0LnB5CkBAIC0zNCw2ICszNCw3IEBAIGZyb20gd2Via2l0cHkuY29tbW9u
Lmhvc3RfbW9jayBpbXBvcnQgTW9ja0hvc3QKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5m
aWxlc3lzdGVtX21vY2sgaW1wb3J0IE1vY2tGaWxlU3lzdGVtCiBmcm9tIHdlYmtpdHB5LmNvbW1v
bi5zeXN0ZW0uZXhlY3V0aXZlX21vY2sgaW1wb3J0IE1vY2tFeGVjdXRpdmUyLCBTY3JpcHRFcnJv
cgogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLm91dHB1dGNhcHR1cmUgaW1wb3J0IE91dHB1
dENhcHR1cmUKK2Zyb20gd2Via2l0cHkudzNjLnRlc3RfZG93bmxvYWRlciBpbXBvcnQgVGVzdERv
d25sb2FkZXIKIGZyb20gd2Via2l0cHkudzNjLnRlc3RfaW1wb3J0ZXIgaW1wb3J0IHBhcnNlX2Fy
Z3MsIFRlc3RJbXBvcnRlcgogCiAKQEAgLTkyLDEyICs5MywyMSBAQCBjbGFzcyBUZXN0SW1wb3J0
ZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKIAogICAgIGRlZiBpbXBvcnRfZG93bmxvYWRlZF90
ZXN0cyhzZWxmLCBhcmdzLCBmaWxlcyk6CiAgICAgICAgICMgZmlsZXMgYXJlIHBhc3NlZCBhcyBw
YXJhbWV0ZXIgYXMgd2UgY2Fubm90IGNsb25lL2ZldGNoL2NoZWNrb3V0IGEgcmVwbyBpbiBtb2Nr
IHN5c3RlbS4KKworICAgICAgICBjbGFzcyBUZXN0RG93bmxvYWRlck1vY2soVGVzdERvd25sb2Fk
ZXIpOgorICAgICAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHJlcG9zaXRvcnlfZGlyZWN0b3J5
LCBob3N0LCBvcHRpb25zKToKKyAgICAgICAgICAgICAgICBUZXN0RG93bmxvYWRlci5fX2luaXRf
XyhzZWxmLCByZXBvc2l0b3J5X2RpcmVjdG9yeSwgaG9zdCwgb3B0aW9ucykKKworICAgICAgICAg
ICAgZGVmIF9naXRfc3VibW9kdWxlc19zdGF0dXMoc2VsZiwgcmVwb3NpdG9yeV9kaXJlY3Rvcnkp
OgorICAgICAgICAgICAgICAgIHJldHVybiAnYWRiNGQzOTFhNjk4NzdkNGExZWFhZjUxZDE3MjVj
OTlhNWI4ZWQ4NCB0b29scy9yZXNvdXJjZXMnCisKICAgICAgICAgaG9zdCA9IE1vY2tIb3N0KCkK
ICAgICAgICAgaG9zdC5leGVjdXRpdmUgPSBNb2NrRXhlY3V0aXZlMigpCiAgICAgICAgIGhvc3Qu
ZmlsZXN5c3RlbSA9IE1vY2tGaWxlU3lzdGVtKGZpbGVzPWZpbGVzKQogCiAgICAgICAgIG9wdGlv
bnMsIGFyZ3MgPSBwYXJzZV9hcmdzKGFyZ3MpCiAgICAgICAgIGltcG9ydGVyID0gVGVzdEltcG9y
dGVyKGhvc3QsIE5vbmUsIG9wdGlvbnMpCisgICAgICAgIGltcG9ydGVyLl90ZXN0X2Rvd25sb2Fk
ZXIgPSBUZXN0RG93bmxvYWRlck1vY2soaW1wb3J0ZXIudGVzdHNfZG93bmxvYWRfcGF0aCwgaW1w
b3J0ZXIuaG9zdCwgaW1wb3J0ZXIub3B0aW9ucykKICAgICAgICAgaW1wb3J0ZXIuZG9faW1wb3J0
KCkKICAgICAgICAgcmV0dXJuIGhvc3QuZmlsZXN5c3RlbQogCkBAIC0xMTYsNCArMTI2LDE3IEBA
IGNsYXNzIFRlc3RJbXBvcnRlclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBzZWxm
LmFzc2VydFRydWUoJ3NyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyInIGluIGZzLnJlYWRf
dGV4dF9maWxlKCcvbW9jay1jaGVja291dC9MYXlvdXRUZXN0cy93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3QvdGVzdC5odG1sJykpCiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgnc3JjPSIuLi8nIGlu
IGZzLnJlYWRfdGV4dF9maWxlKCcvbW9jay1jaGVja291dC9MYXlvdXRUZXN0cy93M2MvY3Nzd2ct
dGVzdHMvdC90ZXN0Lmh0bWwnKSkKIAorICAgIGRlZiB0ZXN0X3N1Ym1vZHVsZXNfZ2VuZXJhdGlv
bihzZWxmKToKKyAgICAgICAgRkFLRV9GSUxFUyA9IHsKKyAgICAgICAgICAgICcvbW9jay1jaGVj
a291dC9XZWJLaXRCdWlsZC93M2MtdGVzdHMvY3Nzd2ctdGVzdHMvLmdpdG1vZHVsZXMnOiAnW3N1
Ym1vZHVsZSAidG9vbHMvcmVzb3VyY2VzIl1cbglwYXRoID0gdG9vbHMvcmVzb3VyY2VzXG4JdXJs
ID0gaHR0cHM6Ly9naXRodWIuY29tL3czYy90ZXN0aGFybmVzcy5qcy5naXRcbiAgaWdub3JlID0g
ZGlydHlcbicsCisgICAgICAgICAgICAnL21vY2stY2hlY2tvdXQvV2ViS2l0QnVpbGQvdzNjLXRl
c3RzL3dlYi1wbGF0Zm9ybS10ZXN0cy8uZ2l0bW9kdWxlcyc6ICdbc3VibW9kdWxlICJ0b29scy9y
ZXNvdXJjZXMiXVxuCXBhdGggPSB0b29scy9yZXNvdXJjZXNcbgl1cmwgPSBodHRwczovL2dpdGh1
Yi5jb20vdzNjL3Rlc3RoYXJuZXNzLmpzLmdpdFxuICBpZ25vcmUgPSBkaXJ0eVxuJywKKyAgICAg
ICAgfQorCisgICAgICAgIGZzID0gc2VsZi5pbXBvcnRfZG93bmxvYWRlZF90ZXN0cyhbJy0tbm8t
ZmV0Y2gnLCAnLS1pbXBvcnQtYWxsJywgJy1kJywgJ3czYyddLCBGQUtFX0ZJTEVTKQorCisgICAg
ICAgIHNlbGYuYXNzZXJ0RmFsc2UoZnMuZXhpc3RzKCcvbW9jay1jaGVja291dC9MYXlvdXRUZXN0
cy93M2MvcmVzb3VyY2VzL2Nzc3dnLXRlc3RzLW1vZHVsZXMuanNvbicpKQorICAgICAgICBzZWxm
LmFzc2VydFRydWUoZnMuZXhpc3RzKCcvbW9jay1jaGVja291dC9MYXlvdXRUZXN0cy93M2MvcmVz
b3VyY2VzL3dlYi1wbGF0Zm9ybS10ZXN0cy1tb2R1bGVzLmpzb24nKSkKKyAgICAgICAgc2VsZi5h
c3NlcnRUcnVlKCdodHRwczovL2dpdGh1Yi5jb20vdzNjL3Rlc3RoYXJuZXNzLmpzL2FyY2hpdmUv
ZGI0ZDM5MWE2OTg3N2Q0YTFlYWFmNTFkMTcyNWM5OWE1YjhlZDg0LnRhci5neicgaW4gZnMucmVh
ZF90ZXh0X2ZpbGUoJy9tb2NrLWNoZWNrb3V0L0xheW91dFRlc3RzL3czYy9yZXNvdXJjZXMvd2Vi
LXBsYXRmb3JtLXRlc3RzLW1vZHVsZXMuanNvbicpKQorCisKICAgICAjIEZJWE1FOiBOZWVkcyBt
b3JlIHRlc3RzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxv
ZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggYmM0NzY0YzEyMDNm
Zjc0YjI3YzliYWM3MDY1ZGE0YzJmNGU3NTZkZS4uNDcyMzJjZjNmZDBmZTJkNWJjODEzOGVlYzgy
ZTI1OWUyNjFmNWE4MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5n
ZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTcgQEAKKzIwMTUtMDMtMjAgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm4uZmFibGV0QGNyZi5jYW5v
bi5mcj4KKworICAgICAgICBXM0MgdGVzdCBpbXBvcnRlciBzaG91bGQgZ2VuZXJhdGUgdGhlIG1v
ZHVsZXMgaW5zdGFsbGVkIGR5bmFtaWNhbGx5IHRvIHJ1biB3cHQgdGVzdHMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MjczOAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbmFtZWQgV1BUTW9kdWxlcyB0
byB3ZWItcGxhdGZvcm0tdGVzdC1tb2R1bGVzLmpzb24KKyAgICAgICAgVXBkYXRlZCBUZXN0UmVw
b3NpdG9yaWVzIHRvIGFzayB0aGUgaW1wb3J0ZXIgdG8gZ2VuZXJhdGUgd2ViLXBsYXRmb3JtLXRl
c3QtbW9kdWxlcy5qc29uIGF0IGltcG9ydCB0aW1lLiAgCisKKyAgICAgICAgKiByZXNvdXJjZXMv
VGVzdFJlcG9zaXRvcmllczoKKyAgICAgICAgKiByZXNvdXJjZXMvV1BUTW9kdWxlczogUmVtb3Zl
ZC4KKyAgICAgICAgKiByZXNvdXJjZXMvd2ViLXBsYXRmb3JtLXRlc3RzLW1vZHVsZXMuanNvbjog
QWRkZWQuCisKIDIwMTUtMDMtMTMgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm4uZmFibGV0QGNyZi5j
YW5vbi5mcj4KIAogICAgICAgICBXZWJLaXQgdGVzdCBpbmZyYXN0cnVjdHVyZSBzaG91bGQgYXV0
b21hdGUgdGhlIHByb2Nlc3Mgb2YgY2xvbmluZyBXM0MgdGVzdCBzdWl0ZSBhbmQgaW1wb3J0aW5n
IHRlc3RzIGZyb20gaXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9yZXNv
dXJjZXMvVGVzdFJlcG9zaXRvcmllcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9yZXNvdXJj
ZXMvVGVzdFJlcG9zaXRvcmllcwppbmRleCA5NTY4ZTIwOTY3YWEwNjJiNzhjOTZiZWRkMTZhN2E5
ZjEzOTYwMjY5Li5mMjhhMDc3YzQ1YjRiMjMzM2ZmMzk2YmUzODE3MTliMTk2ZDAzM2VjIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvcmVzb3VyY2VzL1Rlc3RSZXBvc2l0b3Jp
ZXMKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3Jlc291cmNlcy9UZXN0UmVwb3NpdG9y
aWVzCkBAIC0xMCw3ICsxMCw3IEBACiAgICAgICAgICJwYXRoc190b19pbXBvcnQiOiBbCiAgICAg
ICAgICAgICAic3VwcG9ydCIKICAgICAgICAgXSwKLSAgICAgICAgImNvbnZlcnRfdGVzdF9oYXJu
ZXNzX2xpbmtzIjogdHJ1ZQorICAgICAgICAiaW1wb3J0X29wdGlvbnMiOiBbImNvbnZlcnRfdGVz
dF9oYXJuZXNzX2xpbmtzIl0KICAgICB9LAogICAgIHsKICAgICAgICAgIm5hbWUiOiAid2ViLXBs
YXRmb3JtLXRlc3RzIiwKQEAgLTMwLDYgKzMwLDYgQEAKICAgICAgICAgICAgICJjb25maWcuZGVm
YXVsdC5qc29uIiwKICAgICAgICAgICAgICJzZXJ2ZS5weSIKICAgICAgICAgXSwKLSAgICAgICAg
ImNvbnZlcnRfdGVzdF9oYXJuZXNzX2xpbmtzIjogZmFsc2UKKyAgICAgICAgImltcG9ydF9vcHRp
b25zIjogWyJnZW5lcmF0ZV9naXRfc3VibW9kdWxlc19kZXNjcmlwdGlvbiJdCiAgICAgfQogXQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3Jlc291cmNlcy9XUFRNb2R1bGVz
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3Jlc291cmNlcy9XUFRNb2R1bGVzCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2Mjg0NWZhN2NkNDEwMjgwZjJmNTcwOGUwZTMxMGQ3NDQ5
NWQ4NjI3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9yZXNvdXJjZXMvV1BUTW9kdWxlcworKysgL2Rldi9udWxs
CkBAIC0xLDMyICswLDAgQEAKLVsKLXsKLSAgICAibmFtZSI6ICJodG1sNWxpYiIsCi0gICAgInBh
dGgiOiAidG9vbHMiLAotICAgICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2h0bWw1bGliL2h0
bWw1bGliLXB5dGhvbi9hcmNoaXZlLzdjY2U2NWJiYWE3ODQxMWY5OGI4YjM3ZWVlZmM5ZGIwM2M1
ODAwOTcudGFyLmd6IiwKLSAgICAidXJsX3N1YnBhdGgiOiAiaHRtbDVsaWItcHl0aG9uLTdjY2U2
NWJiYWE3ODQxMWY5OGI4YjM3ZWVlZmM5ZGIwM2M1ODAwOTciCi19LAotewotICAgICJuYW1lIjog
InB5d2Vic29ja2V0IiwKLSAgICAicGF0aCI6ICJ0b29scyIsCi0gICAgInVybCI6ICJodHRwczov
L2dpdGh1Yi5jb20vdzNjL3B5d2Vic29ja2V0L2FyY2hpdmUvOGMyODVkOTAxNTEyMWU4YzFjNDBi
ZTg1MjQzOWZjMDNiNGExODExMi50YXIuZ3oiLAotICAgICJ1cmxfc3VicGF0aCI6ICJweXdlYnNv
Y2tldC04YzI4NWQ5MDE1MTIxZThjMWM0MGJlODUyNDM5ZmMwM2I0YTE4MTEyIgotfSwKLXsKLSAg
ICAibmFtZSI6ICJzaXgiLAotICAgICJwYXRoIjogInRvb2xzIiwKLSAgICAidXJsIjogImh0dHBz
Oi8vZ2l0aHViLmNvbS9qZ3JhaGFtL3NpeC9hcmNoaXZlLzNiNjE3M2M4MzNkMjE3YWIwMTg2YzM1
NTgwNGY1OTI1Y2JjZmNhNDcudGFyLmd6IiwKLSAgICAidXJsX3N1YnBhdGgiOiAic2l4LTNiNjE3
M2M4MzNkMjE3YWIwMTg2YzM1NTgwNGY1OTI1Y2JjZmNhNDciCi19LAotewotICAgICJuYW1lIjog
IndwdHNlcnZlIiwKLSAgICAicGF0aCI6ICJ0b29scyIsCi0gICAgInVybCI6ICJodHRwczovL2dp
dGh1Yi5jb20vdzNjL3dwdHNlcnZlL2FyY2hpdmUvOTFlNzY0ZmZhMGY1ODcwOTAzNDFhMjZhZjQ1
N2RmZGM2NzYyZWIwZC50YXIuZ3oiLAotICAgICJ1cmxfc3VicGF0aCI6ICJ3cHRzZXJ2ZS05MWU3
NjRmZmEwZjU4NzA5MDM0MWEyNmFmNDU3ZGZkYzY3NjJlYjBkIgotfSwKLXsKLSAgICAibmFtZSI6
ICJyZXNvdXJjZXMiLAotICAgICJwYXRoIjogIi4iLAotICAgICJ1cmwiOiAiaHR0cHM6Ly9naXRo
dWIuY29tL3czYy90ZXN0aGFybmVzcy5qcy9hcmNoaXZlLzc0YmExM2QyZmJiMTljNmU3NDk0OTYw
YmQ3NzI0ODczZTg4YzUyM2MudGFyLmd6IiwKLSAgICAidXJsX3N1YnBhdGgiOiAidGVzdGhhcm5l
c3MuanMtNzRiYTEzZDJmYmIxOWM2ZTc0OTQ5NjBiZDc3MjQ4NzNlODhjNTIzYyIKLX0KLV0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9yZXNvdXJjZXMvd2ViLXBsYXRmb3Jt
LXRlc3RzLW1vZHVsZXMuanNvbiBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9yZXNvdXJjZXMv
d2ViLXBsYXRmb3JtLXRlc3RzLW1vZHVsZXMuanNvbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NjgxNjljNmVjMzI0
NDU2OGM3M2E4OWI2ZWEzNDlkZmJhNzgyMTlmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3Jlc291cmNlcy93ZWItcGxhdGZvcm0tdGVzdHMtbW9kdWxlcy5qc29u
CkBAIC0wLDAgKzEsNDIgQEAKK1sKKyAgICB7CisgICAgICAgICJuYW1lIjogInJlc291cmNlcyIs
IAorICAgICAgICAicGF0aCI6IFsKKyAgICAgICAgICAgICIuIgorICAgICAgICBdLCAKKyAgICAg
ICAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdzNjL3Rlc3RoYXJuZXNzLmpzL2FyY2hpdmUv
MmExZGEyNjRmNjcxOGRiMDRjMzkyNWE5OTU2YjYzNTQyNjgyN2FlZi50YXIuZ3oiLCAKKyAgICAg
ICAgInVybF9zdWJwYXRoIjogInRlc3RoYXJuZXNzLmpzLTJhMWRhMjY0ZjY3MThkYjA0YzM5MjVh
OTk1NmI2MzU0MjY4MjdhZWYiCisgICAgfSwgCisgICAgeworICAgICAgICAibmFtZSI6ICJ3cHRz
ZXJ2ZSIsIAorICAgICAgICAicGF0aCI6IFsKKyAgICAgICAgICAgICJ0b29scyIKKyAgICAgICAg
XSwgCisgICAgICAgICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3czYy93cHRzZXJ2ZS9hcmNo
aXZlLzkxZTc2NGZmYTBmNTg3MDkwMzQxYTI2YWY0NTdkZmRjNjc2MmViMGQudGFyLmd6IiwgCisg
ICAgICAgICJ1cmxfc3VicGF0aCI6ICJ3cHRzZXJ2ZS05MWU3NjRmZmEwZjU4NzA5MDM0MWEyNmFm
NDU3ZGZkYzY3NjJlYjBkIgorICAgIH0sIAorICAgIHsKKyAgICAgICAgIm5hbWUiOiAicHl3ZWJz
b2NrZXQiLCAKKyAgICAgICAgInBhdGgiOiBbCisgICAgICAgICAgICAidG9vbHMiCisgICAgICAg
IF0sIAorICAgICAgICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS93M2MvcHl3ZWJzb2NrZXQv
YXJjaGl2ZS84YzI4NWQ5MDE1MTIxZThjMWM0MGJlODUyNDM5ZmMwM2I0YTE4MTEyLnRhci5neiIs
IAorICAgICAgICAidXJsX3N1YnBhdGgiOiAicHl3ZWJzb2NrZXQtOGMyODVkOTAxNTEyMWU4YzFj
NDBiZTg1MjQzOWZjMDNiNGExODExMiIKKyAgICB9LCAKKyAgICB7CisgICAgICAgICJuYW1lIjog
Imh0bWw1bGliIiwgCisgICAgICAgICJwYXRoIjogWworICAgICAgICAgICAgInRvb2xzIgorICAg
ICAgICBdLCAKKyAgICAgICAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaHRtbDVsaWIvaHRt
bDVsaWItcHl0aG9uL2FyY2hpdmUvN2NjZTY1YmJhYTc4NDExZjk4YjhiMzdlZWVmYzlkYjAzYzU4
MDA5Ny50YXIuZ3oiLCAKKyAgICAgICAgInVybF9zdWJwYXRoIjogImh0bWw1bGliLXB5dGhvbi03
Y2NlNjViYmFhNzg0MTFmOThiOGIzN2VlZWZjOWRiMDNjNTgwMDk3IgorICAgIH0sIAorICAgIHsK
KyAgICAgICAgIm5hbWUiOiAic2l4IiwgCisgICAgICAgICJwYXRoIjogWworICAgICAgICAgICAg
InRvb2xzIgorICAgICAgICBdLCAKKyAgICAgICAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20v
amdyYWhhbS9zaXgvYXJjaGl2ZS8zYjYxNzNjODMzZDIxN2FiMDE4NmMzNTU4MDRmNTkyNWNiY2Zj
YTQ3LnRhci5neiIsIAorICAgICAgICAidXJsX3N1YnBhdGgiOiAic2l4LTNiNjE3M2M4MzNkMjE3
YWIwMTg2YzM1NTgwNGY1OTI1Y2JjZmNhNDciCisgICAgfQorXQpcIE5vIG5ld2xpbmUgYXQgZW5k
IG9mIGZpbGUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250196</attachid>
            <date>2015-04-06 01:09:39 -0700</date>
            <delta_ts>2015-04-06 01:11:29 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-142738-20150406100849.patch</filename>
            <type>text/plain</type>
            <size>17237</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgyMzQyCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNzk1MWRhMDk5OWUyNGNlN2NhYTgzODE0YzVjNWYwOGM2
OGE2ZDI2ZC4uZTEzNGYxNDg5NmEwOTZmOTY2NzE1YzcxOWI0NTVhNGVlODQyZDZlYyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMz
IEBACisyMDE1LTA0LTA2ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uLmZhYmxldEBjcmYuY2Fub24u
ZnI+CisKKyAgICAgICAgVzNDIHRlc3QgaW1wb3J0ZXIgc2hvdWxkIGdlbmVyYXRlIHRoZSBtb2R1
bGVzIGluc3RhbGxlZCBkeW5hbWljYWxseSB0byBydW4gd3B0IHRlc3RzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI3MzgKKworICAgICAgICBSZXZp
ZXdlZCBieSBSeW9zdWtlIE5pd2EuCisKKyAgICAgICAgVGhlIHRlc3QgaW1wb3J0ZXIgY2FuIG5v
dyBnZW5lcmF0ZSB0aGUgc3VibW9kdWxlcyBkZXNjcmlwdGlvbiBmaWxlIGJhc2VkIG9uIGluZm9y
bWF0aW9uIGV4dHJhY3RlZCBmcm9tIHRoZSBjb3JyZXNwb25kaW5nIGdpdCByZXBvc2l0b3J5Lgor
ICAgICAgICBUaGUgaW1wbGVtZW50YXRpb24gaXMgZG9uZSB3aXRoaW4gVGVzdERvd25sb2FkZXIg
YW5kIGl0IGlzIGFjdGl2YXRlZCBmb3IgdGhlIFdQVCByZXBvc2l0b3J5LgorICAgICAgICBMYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvcmVzb3VyY2VzL1dQVE1vZHVsZXMgaXMgcmVuYW1lZCBhcyBM
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvcmVzb3VyY2VzL3dlYi1wbGF0Zm9ybS10ZXN0cy1tb2R1
bGVzLmpzb24gZm9yIHRoYXQgcmVhc29uLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvc2VydmVycy93ZWJfcGxhdGZvcm1fdGVzdF9zZXJ2ZXIucHk6CisgICAgICAg
IChXZWJQbGF0Zm9ybVRlc3RTZXJ2ZXIuX2luc3RhbGxfbW9kdWxlcyk6IFVwZGF0ZWQgdG8gY29w
ZSB3aXRoIHBhdGggYXMgYXJyYXkuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS93M2MvdGVz
dF9kb3dubG9hZGVyLnB5OgorICAgICAgICAoVGVzdERvd25sb2FkZXIuX2dpdF9zdWJtb2R1bGVz
X3N0YXR1cyk6IEFkZGVkIHNvIHRoYXQgaXQgY2FuIGJlIG92ZXJyaWRlbiBmb3IgdW5pdCB0ZXN0
cy4KKyAgICAgICAgKFRlc3REb3dubG9hZGVyKToKKyAgICAgICAgKFRlc3REb3dubG9hZGVyLl9n
aXRfc3VibW9kdWxlc19kZXNjcmlwdGlvbik6IENvbXB1dGVzIHN1Ym1vZHVsZSBkZXNjcmlwdGlv
bi4KKyAgICAgICAgKFRlc3REb3dubG9hZGVyLmdlbmVyYXRlX2dpdF9zdWJtb2R1bGVzX2Rlc2Ny
aXB0aW9uKTogV3JpdGUgc3VibW9kdWxlIGRlc2NyaXB0aW9uIGluIGEgZmlsZS4KKyAgICAgICAg
KiBTY3JpcHRzL3dlYmtpdHB5L3czYy90ZXN0X2ltcG9ydGVyLnB5OgorICAgICAgICAoVGVzdElt
cG9ydGVyLmRvX2ltcG9ydCk6IEFkZGVkIHRoZSBwb3NzaWJpbGl0eSB0byBwb3N0IHByb2Nlc3Mg
dGhlIHRlc3RzLgorICAgICAgICAoVGVzdEltcG9ydGVyKToKKyAgICAgICAgKFRlc3RJbXBvcnRl
ci5wcm9jZXNzX3Rlc3RfcmVwb3NpdG9yaWVzX2ltcG9ydF9vcHRpb25zKTogRW5hYmxlIGdlbmVy
YXRpbmcgbW9kdWxlIGRlc2NyaXB0aW9uIGZpbGUuCisgICAgICAgIChUZXN0SW1wb3J0ZXIuc2hv
dWxkX2NvbnZlcnRfdGVzdF9oYXJuZXNzX2xpbmtzKTogVXBkYXRlZCBhY2NvcmRpbmcgbmV3IG9w
dGlvbnMgZm9ybWF0LgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdzNjL3Rlc3RfaW1wb3J0
ZXJfdW5pdHRlc3QucHk6CisgICAgICAgIChUZXN0SW1wb3J0ZXJUZXN0LmltcG9ydF9kb3dubG9h
ZGVkX3Rlc3RzKTogTWFraW5nIHVzZSBvZiBUZXN0RG93bmxvYWRlck1vY2suIAorICAgICAgICAo
VGVzdEltcG9ydGVyVGVzdC5pbXBvcnRfZG93bmxvYWRlZF90ZXN0cy5UZXN0RG93bmxvYWRlck1v
Y2spOiBBZGRlZCB0byBvdmVycmlkZSBzdWJtb2R1bGUgc3RhdHVzIGdhdGhlcmluZy4KKyAgICAg
ICAgKFRlc3RJbXBvcnRlclRlc3QuaW1wb3J0X2Rvd25sb2FkZWRfdGVzdHMuVGVzdERvd25sb2Fk
ZXJNb2NrLl9faW5pdF9fKToKKyAgICAgICAgKFRlc3RJbXBvcnRlclRlc3QuaW1wb3J0X2Rvd25s
b2FkZWRfdGVzdHMuVGVzdERvd25sb2FkZXJNb2NrLl9naXRfc3VibW9kdWxlc19zdGF0dXMpOgor
ICAgICAgICAoVGVzdEltcG9ydGVyVGVzdC50ZXN0X3N1Ym1vZHVsZXNfZ2VuZXJhdGlvbik6IEFk
ZGVkIHRvIGNoZWNrIHRoYXQgbW9kdWxlcyBkZXNjcmlwdGlvbiBmaWxlcyB3b3Jrcy4KKwogMjAx
NS0wNC0wMyAgQ3NhYmEgT3N6dHJvZ29uw6FjICA8b3NzeUB3ZWJraXQub3JnPgogCiAgICAgICAg
IHJ1bi1qc2Mtc3RyZXNzLXRlc3RzIC0tcmVtb3RlIHNob3VsZCBhZGQgbGlibGx2bUZvckpTQy5z
byB0byB0aGUgYnVuZGxlIG9uIExpbnV4CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9zZXJ2ZXJzL3dlYl9wbGF0Zm9ybV90ZXN0X3NlcnZlci5weSBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3NlcnZlcnMvd2ViX3BsYXRmb3JtX3Rl
c3Rfc2VydmVyLnB5CmluZGV4IDA0MWE5ZmUzNGEwMTQ1ZmZhMTUyMDRlYTUyNDQwOTcxYWJjNzJh
MzkuLjI2ZjlmOWE1YTljMWQ4ZjZlMGE0NWU1ZWYzZDJmYTc3N2QwM2VjOTQgMTAwNzU1Ci0tLSBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3NlcnZlcnMvd2ViX3BsYXRmb3Jt
X3Rlc3Rfc2VydmVyLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L3NlcnZlcnMvd2ViX3BsYXRmb3JtX3Rlc3Rfc2VydmVyLnB5CkBAIC03OSwxMyArNzksMTMgQEAg
Y2xhc3MgV2ViUGxhdGZvcm1UZXN0U2VydmVyKGh0dHBfc2VydmVyX2Jhc2UuSHR0cFNlcnZlckJh
c2UpOgogICAgICAgICBzZWxmLl9kb2Nfcm9vdF9wYXRoID0gcG9ydF9vYmoucGF0aF9mcm9tX3dl
YmtpdF9iYXNlKCJMYXlvdXRUZXN0cyIsIHNlbGYuX2RvY19yb290KQogCiAgICAgZGVmIF9pbnN0
YWxsX21vZHVsZXMoc2VsZik6Ci0gICAgICAgIG1vZHVsZXNfZmlsZV9wYXRoID0gc2VsZi5fZmls
ZXN5c3RlbS5qb2luKHNlbGYuX2xheW91dF9yb290LCAiaW1wb3J0ZWQiLCAidzNjIiwgInJlc291
cmNlcyIsICJXUFRNb2R1bGVzIikKKyAgICAgICAgbW9kdWxlc19maWxlX3BhdGggPSBzZWxmLl9m
aWxlc3lzdGVtLmpvaW4oc2VsZi5fbGF5b3V0X3Jvb3QsICJpbXBvcnRlZCIsICJ3M2MiLCAicmVz
b3VyY2VzIiwgIndlYi1wbGF0Zm9ybS10ZXN0cy1tb2R1bGVzLmpzb24iKQogICAgICAgICBpZiBu
b3Qgc2VsZi5fZmlsZXN5c3RlbS5pc2ZpbGUobW9kdWxlc19maWxlX3BhdGgpOgogICAgICAgICAg
ICAgX2xvZy53YXJuaW5nKCJDYW5ub3QgcmVhZCAiICsgbW9kdWxlc19maWxlX3BhdGgpCiAgICAg
ICAgICAgICByZXR1cm4KICAgICAgICAgbW9kdWxlcyA9IGpzb24ubG9hZHMoc2VsZi5fZmlsZXN5
c3RlbS5yZWFkX3RleHRfZmlsZShtb2R1bGVzX2ZpbGVfcGF0aCkpCiAgICAgICAgIGZvciBtb2R1
bGUgaW4gbW9kdWxlczoKLSAgICAgICAgICAgIEF1dG9JbnN0YWxsZXIodGFyZ2V0X2Rpcj1zZWxm
Ll9maWxlc3lzdGVtLmpvaW4oc2VsZi5fZG9jX3Jvb3QsIG1vZHVsZVsicGF0aCJdKSkuaW5zdGFs
bCh1cmw9bW9kdWxlWyJ1cmwiXSwgdXJsX3N1YnBhdGg9bW9kdWxlWyJ1cmxfc3VicGF0aCJdLCB0
YXJnZXRfbmFtZT1tb2R1bGVbIm5hbWUiXSkKKyAgICAgICAgICAgIEF1dG9JbnN0YWxsZXIodGFy
Z2V0X2Rpcj1zZWxmLl9maWxlc3lzdGVtLmpvaW4oc2VsZi5fZG9jX3Jvb3QsIHNlbGYuX2ZpbGVz
eXN0ZW0uc2VwLmpvaW4obW9kdWxlWyJwYXRoIl0pKSkuaW5zdGFsbCh1cmw9bW9kdWxlWyJ1cmwi
XSwgdXJsX3N1YnBhdGg9bW9kdWxlWyJ1cmxfc3VicGF0aCJdLCB0YXJnZXRfbmFtZT1tb2R1bGVb
Im5hbWUiXSkKIAogICAgIGRlZiBfY29weV93ZWJraXRfdGVzdF9maWxlcyhzZWxmKToKICAgICAg
ICAgX2xvZy5kZWJ1ZygnQ29weWluZyBXZWJLaXQgcmVzb3VyY2VzIGZpbGVzJykKZGlmZiAtLWdp
dCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdzNjL3Rlc3RfZG93bmxvYWRlci5weSBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvdzNjL3Rlc3RfZG93bmxvYWRlci5weQppbmRleCA1YWRiYTJjOTIx
Y2Q1OTA4YzVlMTRhZmNiYmFhZmYxMzUzZDBiNzM2Li4zZmVhY2I4OGE0YjE0NGQ3YjU3N2MzNTM2
YzQ2MGQzYmMxMWJmZmM0IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3czYy90
ZXN0X2Rvd25sb2FkZXIucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS93M2MvdGVzdF9k
b3dubG9hZGVyLnB5CkBAIC0xNDksNiArMTQ5LDQ3IEBAIGNsYXNzIFRlc3REb3dubG9hZGVyKG9i
amVjdCk6CiAgICAgICAgICAgICBpZiBzZWxmLl9maWxlc3lzdGVtLmlzZmlsZShkZXN0aW5hdGlv
bl9wYXRoKToKICAgICAgICAgICAgICAgICBzZWxmLl9maWxlc3lzdGVtLnJlbW92ZShkZXN0aW5h
dGlvbl9wYXRoKQogCisgICAgZGVmIF9naXRfc3VibW9kdWxlc19zdGF0dXMoc2VsZiwgcmVwb3Np
dG9yeV9kaXJlY3RvcnkpOgorICAgICAgICByZXR1cm4gc2VsZi5naXQocmVwb3NpdG9yeV9kaXJl
Y3RvcnkpLl9ydW5fZ2l0KFsnc3VibW9kdWxlJywgJ3N0YXR1cyddKQorCisgICAgZGVmIF9naXRf
c3VibW9kdWxlc19kZXNjcmlwdGlvbihzZWxmLCB0ZXN0X3JlcG9zaXRvcnkpOgorICAgICAgICBz
dWJtb2R1bGVzID0gW10KKyAgICAgICAgcmVwb3NpdG9yeV9kaXJlY3RvcnkgPSBzZWxmLl9maWxl
c3lzdGVtLmpvaW4oc2VsZi5yZXBvc2l0b3J5X2RpcmVjdG9yeSwgdGVzdF9yZXBvc2l0b3J5Wydu
YW1lJ10pCisgICAgICAgIGlmIHNlbGYuX2ZpbGVzeXN0ZW0uaXNmaWxlKHNlbGYuX2ZpbGVzeXN0
ZW0uam9pbihyZXBvc2l0b3J5X2RpcmVjdG9yeSwgJy5naXRtb2R1bGVzJykpOgorICAgICAgICAg
ICAgc3VibW9kdWxlID0ge30KKyAgICAgICAgICAgIGZvciBsaW5lIGluIHNlbGYuX2ZpbGVzeXN0
ZW0ucmVhZF90ZXh0X2ZpbGUoc2VsZi5fZmlsZXN5c3RlbS5qb2luKHJlcG9zaXRvcnlfZGlyZWN0
b3J5LCAnLmdpdG1vZHVsZXMnKSkuc3BsaXRsaW5lcygpOgorICAgICAgICAgICAgICAgIGxpbmUg
PSBsaW5lLnN0cmlwKCkKKyAgICAgICAgICAgICAgICBpZiBsaW5lLnN0YXJ0c3dpdGgoJ3BhdGgg
PSAnKToKKyAgICAgICAgICAgICAgICAgICAgc3VibW9kdWxlWydwYXRoJ10gPSBsaW5lWzc6XQor
ICAgICAgICAgICAgICAgIGVsaWYgbGluZS5zdGFydHN3aXRoKCd1cmwgPSAnKToKKyAgICAgICAg
ICAgICAgICAgICAgc3VibW9kdWxlWyd1cmwnXSA9IGxpbmVbNjpdCisgICAgICAgICAgICAgICAg
ICAgIGlmIG5vdCBzdWJtb2R1bGVbJ3VybCddLnN0YXJ0c3dpdGgoJ2h0dHBzOi8vZ2l0aHViLmNv
bS8nKToKKyAgICAgICAgICAgICAgICAgICAgICAgIF9sb2cud2FybmluZygnU3VibW9kdWxlICVz
IGlzIG5vdCBob3N0ZWQgb24gZ2l0aHViJyAlIHN1Ym1vZHVsZVsncGF0aCddKQorICAgICAgICAg
ICAgICAgICAgICAgICAgX2xvZy53YXJuaW5nKCdQbGVhc2UgZW5zdXJlIHRoYXQgZ2VuZXJhdGVk
IFVSTCBwb2ludHMgdG8gYW4gYXJjaGl2ZSBvZiB0aGUgbW9kdWxlIG9yIG1hbnVhbGx5IGVkaXQg
aXRzIHZhbHVlIGFmdGVyIHRoZSBpbXBvcnQnKQorICAgICAgICAgICAgICAgICAgICBzdWJtb2R1
bGVzLmFwcGVuZChzdWJtb2R1bGUpCisgICAgICAgICAgICAgICAgICAgIHN1Ym1vZHVsZSA9IHt9
CisKKyAgICAgICAgc3VibW9kdWxlc19zdGF0dXMgPSBbbGluZVsxOl0uc3BsaXQoJyAnKSBmb3Ig
bGluZSBpbiBzZWxmLl9naXRfc3VibW9kdWxlc19zdGF0dXMocmVwb3NpdG9yeV9kaXJlY3Rvcnkp
LnNwbGl0bGluZXMoKV0KKyAgICAgICAgZm9yIHN1Ym1vZHVsZSBpbiBzdWJtb2R1bGVzOgorICAg
ICAgICAgICAgZm9yIHN0YXR1cyBpbiBzdWJtb2R1bGVzX3N0YXR1czoKKyAgICAgICAgICAgICAg
ICBpZiBzdWJtb2R1bGVbJ3BhdGgnXSA9PSBzdGF0dXNbMV06CisgICAgICAgICAgICAgICAgICAg
IHVybCA9IHN1Ym1vZHVsZVsndXJsJ11bOi00XQorICAgICAgICAgICAgICAgICAgICB2ZXJzaW9u
ID0gc3RhdHVzWzBdCisgICAgICAgICAgICAgICAgICAgIHJlcG9zaXRvcnlfbmFtZSA9IHVybC5z
cGxpdCgnLycpLnBvcCgpCisgICAgICAgICAgICAgICAgICAgIHN1Ym1vZHVsZVsndXJsJ10gPSB1
cmwgKyAnL2FyY2hpdmUvJyArIHZlcnNpb24gKyAnLnRhci5neicKKyAgICAgICAgICAgICAgICAg
ICAgc3VibW9kdWxlWyd1cmxfc3VicGF0aCddID0gcmVwb3NpdG9yeV9uYW1lICsgJy0nICsgdmVy
c2lvbgorICAgICAgICAgICAgaWYgJy8nIGluIHN1Ym1vZHVsZVsncGF0aCddOgorICAgICAgICAg
ICAgICAgIHN0ZXBzID0gc3VibW9kdWxlWydwYXRoJ10uc3BsaXQoJy8nKQorICAgICAgICAgICAg
ICAgIHN1Ym1vZHVsZVsnbmFtZSddID0gc3RlcHMucG9wKCkKKyAgICAgICAgICAgICAgICBzdWJt
b2R1bGVbJ3BhdGgnXSA9IHN0ZXBzCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAg
IHN1Ym1vZHVsZVsnbmFtZSddID0gc3VibW9kdWxlWydwYXRoJ10KKyAgICAgICAgICAgICAgICBz
dWJtb2R1bGVbJ3BhdGgnXSA9IFsnLiddCisgICAgICAgIHJldHVybiBzdWJtb2R1bGVzCisKKyAg
ICBkZWYgZ2VuZXJhdGVfZ2l0X3N1Ym1vZHVsZXNfZGVzY3JpcHRpb24oc2VsZiwgdGVzdF9yZXBv
c2l0b3J5LCBmaWxlcGF0aCk6CisgICAgICAgIHNlbGYuX2ZpbGVzeXN0ZW0ud3JpdGVfdGV4dF9m
aWxlKGZpbGVwYXRoLCBqc29uLmR1bXBzKHNlbGYuX2dpdF9zdWJtb2R1bGVzX2Rlc2NyaXB0aW9u
KHRlc3RfcmVwb3NpdG9yeSksIHNvcnRfa2V5cz1UcnVlLCBpbmRlbnQ9NCkpCisKICAgICBkZWYg
ZG93bmxvYWRfdGVzdHMoc2VsZiwgZGVzdGluYXRpb25fZGlyZWN0b3J5LCB0ZXN0X3BhdGhzPVtd
KToKICAgICAgICAgZm9yIHRlc3RfcmVwb3NpdG9yeSBpbiBzZWxmLnRlc3RfcmVwb3NpdG9yaWVz
OgogICAgICAgICAgICAgc2VsZi5jaGVja291dF90ZXN0X3JlcG9zaXRvcnkodGVzdF9yZXBvc2l0
b3J5WydyZXZpc2lvbiddLCB0ZXN0X3JlcG9zaXRvcnlbJ3VybCddLCBzZWxmLl9maWxlc3lzdGVt
LmpvaW4oc2VsZi5yZXBvc2l0b3J5X2RpcmVjdG9yeSwgdGVzdF9yZXBvc2l0b3J5WyduYW1lJ10p
KQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS93M2MvdGVzdF9pbXBvcnRlci5w
eSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdzNjL3Rlc3RfaW1wb3J0ZXIucHkKaW5kZXggMDYx
NzJjM2Y5ZGIwYWNjZDUyYzI4MDQxMjA4ZmE1M2RlNTIzM2Q4Yi4uYTRhM2FmNTJhMDJjODAyOTU3
NmU5MWZmOTNmNzIxOTNiMzI4N2MwYSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS93M2MvdGVzdF9pbXBvcnRlci5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3czYy90
ZXN0X2ltcG9ydGVyLnB5CkBAIC0xOTAsNiArMTkwLDE2IEBAIGNsYXNzIFRlc3RJbXBvcnRlcihv
YmplY3QpOgogCiAgICAgICAgIHNlbGYuaW1wb3J0X3Rlc3RzKCkKIAorICAgICAgICBpZiBzZWxm
Ll9pbXBvcnRpbmdfZG93bmxvYWRlZF90ZXN0czoKKyAgICAgICAgICAgIHNlbGYuZ2VuZXJhdGVf
Z2l0X3N1Ym1vZHVsZXNfZGVzY3JpcHRpb25fZm9yX2FsbF9yZXBvc2l0b3JpZXMoKQorCisgICAg
ZGVmIGdlbmVyYXRlX2dpdF9zdWJtb2R1bGVzX2Rlc2NyaXB0aW9uX2Zvcl9hbGxfcmVwb3NpdG9y
aWVzKHNlbGYpOgorICAgICAgICBmb3IgdGVzdF9yZXBvc2l0b3J5IGluIHNlbGYuX3Rlc3RfZG93
bmxvYWRlci50ZXN0X3JlcG9zaXRvcmllczoKKyAgICAgICAgICAgIGlmICdnZW5lcmF0ZV9naXRf
c3VibW9kdWxlc19kZXNjcmlwdGlvbicgaW4gdGVzdF9yZXBvc2l0b3J5WydpbXBvcnRfb3B0aW9u
cyddOgorICAgICAgICAgICAgICAgIHNlbGYuZmlsZXN5c3RlbS5tYXliZV9tYWtlX2RpcmVjdG9y
eShzZWxmLmZpbGVzeXN0ZW0uam9pbihzZWxmLmRlc3RpbmF0aW9uX2RpcmVjdG9yeSwgJ3Jlc291
cmNlcycpKQorICAgICAgICAgICAgICAgIHNlbGYuX3Rlc3RfZG93bmxvYWRlci5nZW5lcmF0ZV9n
aXRfc3VibW9kdWxlc19kZXNjcmlwdGlvbih0ZXN0X3JlcG9zaXRvcnksIHNlbGYuZmlsZXN5c3Rl
bS5qb2luKHNlbGYuZGVzdGluYXRpb25fZGlyZWN0b3J5LCAncmVzb3VyY2VzJywgdGVzdF9yZXBv
c2l0b3J5WyduYW1lJ10gKyAnLW1vZHVsZXMuanNvbicpKQorICAgICAgICAgICAgIyBGSVhNRTog
R2VuZXJhdGUgV1BUIC5naXRpZ25vcmUgYW5kICBtYWluIF9faW5pdF9fLnB5CisKICAgICBkZWYg
dGVzdF9kb3dubG9hZGVyKHNlbGYpOgogICAgICAgICBpZiBub3Qgc2VsZi5fdGVzdF9kb3dubG9h
ZGVyOgogICAgICAgICAgICAgZG93bmxvYWRfb3B0aW9ucyA9IFRlc3REb3dubG9hZGVyLmRlZmF1
bHRfb3B0aW9ucygpCkBAIC0yODEsNyArMjkxLDcgQEAgY2xhc3MgVGVzdEltcG9ydGVyKG9iamVj
dCk6CiAgICAgICAgIGlmIHNlbGYuX2ltcG9ydGluZ19kb3dubG9hZGVkX3Rlc3RzOgogICAgICAg
ICAgICAgZm9yIHRlc3RfcmVwb3NpdG9yeSBpbiBzZWxmLnRlc3RfZG93bmxvYWRlcigpLnRlc3Rf
cmVwb3NpdG9yaWVzOgogICAgICAgICAgICAgICAgIGlmIHRlc3Quc3RhcnRzd2l0aCh0ZXN0X3Jl
cG9zaXRvcnlbJ25hbWUnXSk6Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiB0ZXN0X3JlcG9z
aXRvcnlbJ2NvbnZlcnRfdGVzdF9oYXJuZXNzX2xpbmtzJ10KKyAgICAgICAgICAgICAgICAgICAg
cmV0dXJuICdjb252ZXJ0X3Rlc3RfaGFybmVzc19saW5rcycgaW4gdGVzdF9yZXBvc2l0b3J5Wydp
bXBvcnRfb3B0aW9ucyddCiAgICAgICAgICAgICByZXR1cm4gVHJ1ZQogICAgICAgICByZXR1cm4g
c2VsZi5vcHRpb25zLmNvbnZlcnRfdGVzdF9oYXJuZXNzX2xpbmtzCiAKZGlmZiAtLWdpdCBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvdzNjL3Rlc3RfaW1wb3J0ZXJfdW5pdHRlc3QucHkgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L3czYy90ZXN0X2ltcG9ydGVyX3VuaXR0ZXN0LnB5CmluZGV4IDkw
ZTVmZWUzMGQwMTEzODE4OWY4ODM3YjExYjI1YmFmNjg2OTY2NTUuLjBhZTM2NjBiY2U4MGI2MDVi
MDU1MjBhZTcyNWFmMzI1MDc0M2Q2MDkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvdzNjL3Rlc3RfaW1wb3J0ZXJfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS93M2MvdGVzdF9pbXBvcnRlcl91bml0dGVzdC5weQpAQCAtMzQsNiArMzQsNyBAQCBmcm9t
IHdlYmtpdHB5LmNvbW1vbi5ob3N0X21vY2sgaW1wb3J0IE1vY2tIb3N0CiBmcm9tIHdlYmtpdHB5
LmNvbW1vbi5zeXN0ZW0uZmlsZXN5c3RlbV9tb2NrIGltcG9ydCBNb2NrRmlsZVN5c3RlbQogZnJv
bSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmV4ZWN1dGl2ZV9tb2NrIGltcG9ydCBNb2NrRXhlY3V0
aXZlMiwgU2NyaXB0RXJyb3IKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5vdXRwdXRjYXB0
dXJlIGltcG9ydCBPdXRwdXRDYXB0dXJlCitmcm9tIHdlYmtpdHB5LnczYy50ZXN0X2Rvd25sb2Fk
ZXIgaW1wb3J0IFRlc3REb3dubG9hZGVyCiBmcm9tIHdlYmtpdHB5LnczYy50ZXN0X2ltcG9ydGVy
IGltcG9ydCBwYXJzZV9hcmdzLCBUZXN0SW1wb3J0ZXIKIAogCkBAIC05MiwxMiArOTMsMjEgQEAg
Y2xhc3MgVGVzdEltcG9ydGVyVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAKICAgICBkZWYgaW1w
b3J0X2Rvd25sb2FkZWRfdGVzdHMoc2VsZiwgYXJncywgZmlsZXMpOgogICAgICAgICAjIGZpbGVz
IGFyZSBwYXNzZWQgYXMgcGFyYW1ldGVyIGFzIHdlIGNhbm5vdCBjbG9uZS9mZXRjaC9jaGVja291
dCBhIHJlcG8gaW4gbW9jayBzeXN0ZW0uCisKKyAgICAgICAgY2xhc3MgVGVzdERvd25sb2FkZXJN
b2NrKFRlc3REb3dubG9hZGVyKToKKyAgICAgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCByZXBv
c2l0b3J5X2RpcmVjdG9yeSwgaG9zdCwgb3B0aW9ucyk6CisgICAgICAgICAgICAgICAgVGVzdERv
d25sb2FkZXIuX19pbml0X18oc2VsZiwgcmVwb3NpdG9yeV9kaXJlY3RvcnksIGhvc3QsIG9wdGlv
bnMpCisKKyAgICAgICAgICAgIGRlZiBfZ2l0X3N1Ym1vZHVsZXNfc3RhdHVzKHNlbGYsIHJlcG9z
aXRvcnlfZGlyZWN0b3J5KToKKyAgICAgICAgICAgICAgICByZXR1cm4gJ2FkYjRkMzkxYTY5ODc3
ZDRhMWVhYWY1MWQxNzI1Yzk5YTViOGVkODQgdG9vbHMvcmVzb3VyY2VzJworCiAgICAgICAgIGhv
c3QgPSBNb2NrSG9zdCgpCiAgICAgICAgIGhvc3QuZXhlY3V0aXZlID0gTW9ja0V4ZWN1dGl2ZTIo
KQogICAgICAgICBob3N0LmZpbGVzeXN0ZW0gPSBNb2NrRmlsZVN5c3RlbShmaWxlcz1maWxlcykK
IAogICAgICAgICBvcHRpb25zLCBhcmdzID0gcGFyc2VfYXJncyhhcmdzKQogICAgICAgICBpbXBv
cnRlciA9IFRlc3RJbXBvcnRlcihob3N0LCBOb25lLCBvcHRpb25zKQorICAgICAgICBpbXBvcnRl
ci5fdGVzdF9kb3dubG9hZGVyID0gVGVzdERvd25sb2FkZXJNb2NrKGltcG9ydGVyLnRlc3RzX2Rv
d25sb2FkX3BhdGgsIGltcG9ydGVyLmhvc3QsIGltcG9ydGVyLm9wdGlvbnMpCiAgICAgICAgIGlt
cG9ydGVyLmRvX2ltcG9ydCgpCiAgICAgICAgIHJldHVybiBob3N0LmZpbGVzeXN0ZW0KIApAQCAt
MTE2LDQgKzEyNiwxNyBAQCBjbGFzcyBUZXN0SW1wb3J0ZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNl
KToKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKCdzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3Mu
anMiJyBpbiBmcy5yZWFkX3RleHRfZmlsZSgnL21vY2stY2hlY2tvdXQvTGF5b3V0VGVzdHMvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90L3Rlc3QuaHRtbCcpKQogICAgICAgICBzZWxmLmFzc2VydFRy
dWUoJ3NyYz0iLi4vJyBpbiBmcy5yZWFkX3RleHRfZmlsZSgnL21vY2stY2hlY2tvdXQvTGF5b3V0
VGVzdHMvdzNjL2Nzc3dnLXRlc3RzL3QvdGVzdC5odG1sJykpCiAKKyAgICBkZWYgdGVzdF9zdWJt
b2R1bGVzX2dlbmVyYXRpb24oc2VsZik6CisgICAgICAgIEZBS0VfRklMRVMgPSB7CisgICAgICAg
ICAgICAnL21vY2stY2hlY2tvdXQvV2ViS2l0QnVpbGQvdzNjLXRlc3RzL2Nzc3dnLXRlc3RzLy5n
aXRtb2R1bGVzJzogJ1tzdWJtb2R1bGUgInRvb2xzL3Jlc291cmNlcyJdXG4JcGF0aCA9IHRvb2xz
L3Jlc291cmNlc1xuCXVybCA9IGh0dHBzOi8vZ2l0aHViLmNvbS93M2MvdGVzdGhhcm5lc3MuanMu
Z2l0XG4gIGlnbm9yZSA9IGRpcnR5XG4nLAorICAgICAgICAgICAgJy9tb2NrLWNoZWNrb3V0L1dl
YktpdEJ1aWxkL3czYy10ZXN0cy93ZWItcGxhdGZvcm0tdGVzdHMvLmdpdG1vZHVsZXMnOiAnW3N1
Ym1vZHVsZSAidG9vbHMvcmVzb3VyY2VzIl1cbglwYXRoID0gdG9vbHMvcmVzb3VyY2VzXG4JdXJs
ID0gaHR0cHM6Ly9naXRodWIuY29tL3czYy90ZXN0aGFybmVzcy5qcy5naXRcbiAgaWdub3JlID0g
ZGlydHlcbicsCisgICAgICAgIH0KKworICAgICAgICBmcyA9IHNlbGYuaW1wb3J0X2Rvd25sb2Fk
ZWRfdGVzdHMoWyctLW5vLWZldGNoJywgJy0taW1wb3J0LWFsbCcsICctZCcsICd3M2MnXSwgRkFL
RV9GSUxFUykKKworICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGZzLmV4aXN0cygnL21vY2stY2hl
Y2tvdXQvTGF5b3V0VGVzdHMvdzNjL3Jlc291cmNlcy9jc3N3Zy10ZXN0cy1tb2R1bGVzLmpzb24n
KSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGZzLmV4aXN0cygnL21vY2stY2hlY2tvdXQvTGF5
b3V0VGVzdHMvdzNjL3Jlc291cmNlcy93ZWItcGxhdGZvcm0tdGVzdHMtbW9kdWxlcy5qc29uJykp
CisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgnaHR0cHM6Ly9naXRodWIuY29tL3czYy90ZXN0aGFy
bmVzcy5qcy9hcmNoaXZlL2RiNGQzOTFhNjk4NzdkNGExZWFhZjUxZDE3MjVjOTlhNWI4ZWQ4NC50
YXIuZ3onIGluIGZzLnJlYWRfdGV4dF9maWxlKCcvbW9jay1jaGVja291dC9MYXlvdXRUZXN0cy93
M2MvcmVzb3VyY2VzL3dlYi1wbGF0Zm9ybS10ZXN0cy1tb2R1bGVzLmpzb24nKSkKKworCiAgICAg
IyBGSVhNRTogTmVlZHMgbW9yZSB0ZXN0cy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmlu
ZGV4IGJjNDc2NGMxMjAzZmY3NGIyN2M5YmFjNzA2NWRhNGMyZjRlNzU2ZGUuLmU3MjYwYTUyYmY2
ZjIwODgwZTRkNWU3NWIxMzliZDA5YzI1Mjg0NWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE1LTA0LTA2ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5u
LmZhYmxldEBjcmYuY2Fub24uZnI+CisKKyAgICAgICAgVzNDIHRlc3QgaW1wb3J0ZXIgc2hvdWxk
IGdlbmVyYXRlIHRoZSBtb2R1bGVzIGluc3RhbGxlZCBkeW5hbWljYWxseSB0byBydW4gd3B0IHRl
c3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI3
MzgKKworICAgICAgICBSZXZpZXdlZCBieSBSeW9zdWtlIE5pd2EuCisKKyAgICAgICAgUmVuYW1l
ZCBXUFRNb2R1bGVzIHRvIHdlYi1wbGF0Zm9ybS10ZXN0LW1vZHVsZXMuanNvbgorICAgICAgICBV
cGRhdGVkIFRlc3RSZXBvc2l0b3JpZXMgdG8gYXNrIHRoZSBpbXBvcnRlciB0byBnZW5lcmF0ZSB3
ZWItcGxhdGZvcm0tdGVzdC1tb2R1bGVzLmpzb24gYXQgaW1wb3J0IHRpbWUuICAKKworICAgICAg
ICAqIHJlc291cmNlcy9UZXN0UmVwb3NpdG9yaWVzOgorICAgICAgICAqIHJlc291cmNlcy9XUFRN
b2R1bGVzOiBSZW1vdmVkLgorICAgICAgICAqIHJlc291cmNlcy93ZWItcGxhdGZvcm0tdGVzdHMt
bW9kdWxlcy5qc29uOiBBZGRlZC4KKwogMjAxNS0wMy0xMyAgWW91ZW5uIEZhYmxldCAgPHlvdWVu
bi5mYWJsZXRAY3JmLmNhbm9uLmZyPgogCiAgICAgICAgIFdlYktpdCB0ZXN0IGluZnJhc3RydWN0
dXJlIHNob3VsZCBhdXRvbWF0ZSB0aGUgcHJvY2VzcyBvZiBjbG9uaW5nIFczQyB0ZXN0IHN1aXRl
IGFuZCBpbXBvcnRpbmcgdGVzdHMgZnJvbSBpdApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3Jlc291cmNlcy9UZXN0UmVwb3NpdG9yaWVzIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3Jlc291cmNlcy9UZXN0UmVwb3NpdG9yaWVzCmluZGV4IDk1NjhlMjA5NjdhYTA2MmI3
OGM5NmJlZGQxNmE3YTlmMTM5NjAyNjkuLmYyOGEwNzdjNDViNGIyMzMzZmYzOTZiZTM4MTcxOWIx
OTZkMDMzZWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9yZXNvdXJjZXMv
VGVzdFJlcG9zaXRvcmllcworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvcmVzb3VyY2Vz
L1Rlc3RSZXBvc2l0b3JpZXMKQEAgLTEwLDcgKzEwLDcgQEAKICAgICAgICAgInBhdGhzX3RvX2lt
cG9ydCI6IFsKICAgICAgICAgICAgICJzdXBwb3J0IgogICAgICAgICBdLAotICAgICAgICAiY29u
dmVydF90ZXN0X2hhcm5lc3NfbGlua3MiOiB0cnVlCisgICAgICAgICJpbXBvcnRfb3B0aW9ucyI6
IFsiY29udmVydF90ZXN0X2hhcm5lc3NfbGlua3MiXQogICAgIH0sCiAgICAgewogICAgICAgICAi
bmFtZSI6ICJ3ZWItcGxhdGZvcm0tdGVzdHMiLApAQCAtMzAsNiArMzAsNiBAQAogICAgICAgICAg
ICAgImNvbmZpZy5kZWZhdWx0Lmpzb24iLAogICAgICAgICAgICAgInNlcnZlLnB5IgogICAgICAg
ICBdLAotICAgICAgICAiY29udmVydF90ZXN0X2hhcm5lc3NfbGlua3MiOiBmYWxzZQorICAgICAg
ICAiaW1wb3J0X29wdGlvbnMiOiBbImdlbmVyYXRlX2dpdF9zdWJtb2R1bGVzX2Rlc2NyaXB0aW9u
Il0KICAgICB9CiBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvcmVzb3Vy
Y2VzL1dQVE1vZHVsZXMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvcmVzb3VyY2VzL1dQVE1v
ZHVsZXMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDYyODQ1ZmE3Y2Q0MTAyODBmMmY1
NzA4ZTBlMzEwZDc0NDk1ZDg2MjcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3Jlc291cmNlcy9XUFRNb2R1bGVz
CisrKyAvZGV2L251bGwKQEAgLTEsMzIgKzAsMCBAQAotWwotewotICAgICJuYW1lIjogImh0bWw1
bGliIiwKLSAgICAicGF0aCI6ICJ0b29scyIsCi0gICAgInVybCI6ICJodHRwczovL2dpdGh1Yi5j
b20vaHRtbDVsaWIvaHRtbDVsaWItcHl0aG9uL2FyY2hpdmUvN2NjZTY1YmJhYTc4NDExZjk4Yjhi
MzdlZWVmYzlkYjAzYzU4MDA5Ny50YXIuZ3oiLAotICAgICJ1cmxfc3VicGF0aCI6ICJodG1sNWxp
Yi1weXRob24tN2NjZTY1YmJhYTc4NDExZjk4YjhiMzdlZWVmYzlkYjAzYzU4MDA5NyIKLX0sCi17
Ci0gICAgIm5hbWUiOiAicHl3ZWJzb2NrZXQiLAotICAgICJwYXRoIjogInRvb2xzIiwKLSAgICAi
dXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS93M2MvcHl3ZWJzb2NrZXQvYXJjaGl2ZS84YzI4NWQ5
MDE1MTIxZThjMWM0MGJlODUyNDM5ZmMwM2I0YTE4MTEyLnRhci5neiIsCi0gICAgInVybF9zdWJw
YXRoIjogInB5d2Vic29ja2V0LThjMjg1ZDkwMTUxMjFlOGMxYzQwYmU4NTI0MzlmYzAzYjRhMTgx
MTIiCi19LAotewotICAgICJuYW1lIjogInNpeCIsCi0gICAgInBhdGgiOiAidG9vbHMiLAotICAg
ICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2pncmFoYW0vc2l4L2FyY2hpdmUvM2I2MTczYzgz
M2QyMTdhYjAxODZjMzU1ODA0ZjU5MjVjYmNmY2E0Ny50YXIuZ3oiLAotICAgICJ1cmxfc3VicGF0
aCI6ICJzaXgtM2I2MTczYzgzM2QyMTdhYjAxODZjMzU1ODA0ZjU5MjVjYmNmY2E0NyIKLX0sCi17
Ci0gICAgIm5hbWUiOiAid3B0c2VydmUiLAotICAgICJwYXRoIjogInRvb2xzIiwKLSAgICAidXJs
IjogImh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd3B0c2VydmUvYXJjaGl2ZS85MWU3NjRmZmEwZjU4
NzA5MDM0MWEyNmFmNDU3ZGZkYzY3NjJlYjBkLnRhci5neiIsCi0gICAgInVybF9zdWJwYXRoIjog
IndwdHNlcnZlLTkxZTc2NGZmYTBmNTg3MDkwMzQxYTI2YWY0NTdkZmRjNjc2MmViMGQiCi19LAot
ewotICAgICJuYW1lIjogInJlc291cmNlcyIsCi0gICAgInBhdGgiOiAiLiIsCi0gICAgInVybCI6
ICJodHRwczovL2dpdGh1Yi5jb20vdzNjL3Rlc3RoYXJuZXNzLmpzL2FyY2hpdmUvNzRiYTEzZDJm
YmIxOWM2ZTc0OTQ5NjBiZDc3MjQ4NzNlODhjNTIzYy50YXIuZ3oiLAotICAgICJ1cmxfc3VicGF0
aCI6ICJ0ZXN0aGFybmVzcy5qcy03NGJhMTNkMmZiYjE5YzZlNzQ5NDk2MGJkNzcyNDg3M2U4OGM1
MjNjIgotfQotXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3Jlc291cmNl
cy93ZWItcGxhdGZvcm0tdGVzdHMtbW9kdWxlcy5qc29uIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3Jlc291cmNlcy93ZWItcGxhdGZvcm0tdGVzdHMtbW9kdWxlcy5qc29uCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
Ljc2ODE2OWM2ZWMzMjQ0NTY4YzczYTg5YjZlYTM0OWRmYmE3ODIxOWYKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvcmVzb3VyY2VzL3dlYi1wbGF0Zm9ybS10ZXN0
cy1tb2R1bGVzLmpzb24KQEAgLTAsMCArMSw0MiBAQAorWworICAgIHsKKyAgICAgICAgIm5hbWUi
OiAicmVzb3VyY2VzIiwgCisgICAgICAgICJwYXRoIjogWworICAgICAgICAgICAgIi4iCisgICAg
ICAgIF0sIAorICAgICAgICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS93M2MvdGVzdGhhcm5l
c3MuanMvYXJjaGl2ZS8yYTFkYTI2NGY2NzE4ZGIwNGMzOTI1YTk5NTZiNjM1NDI2ODI3YWVmLnRh
ci5neiIsIAorICAgICAgICAidXJsX3N1YnBhdGgiOiAidGVzdGhhcm5lc3MuanMtMmExZGEyNjRm
NjcxOGRiMDRjMzkyNWE5OTU2YjYzNTQyNjgyN2FlZiIKKyAgICB9LCAKKyAgICB7CisgICAgICAg
ICJuYW1lIjogIndwdHNlcnZlIiwgCisgICAgICAgICJwYXRoIjogWworICAgICAgICAgICAgInRv
b2xzIgorICAgICAgICBdLCAKKyAgICAgICAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdzNj
L3dwdHNlcnZlL2FyY2hpdmUvOTFlNzY0ZmZhMGY1ODcwOTAzNDFhMjZhZjQ1N2RmZGM2NzYyZWIw
ZC50YXIuZ3oiLCAKKyAgICAgICAgInVybF9zdWJwYXRoIjogIndwdHNlcnZlLTkxZTc2NGZmYTBm
NTg3MDkwMzQxYTI2YWY0NTdkZmRjNjc2MmViMGQiCisgICAgfSwgCisgICAgeworICAgICAgICAi
bmFtZSI6ICJweXdlYnNvY2tldCIsIAorICAgICAgICAicGF0aCI6IFsKKyAgICAgICAgICAgICJ0
b29scyIKKyAgICAgICAgXSwgCisgICAgICAgICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3cz
Yy9weXdlYnNvY2tldC9hcmNoaXZlLzhjMjg1ZDkwMTUxMjFlOGMxYzQwYmU4NTI0MzlmYzAzYjRh
MTgxMTIudGFyLmd6IiwgCisgICAgICAgICJ1cmxfc3VicGF0aCI6ICJweXdlYnNvY2tldC04YzI4
NWQ5MDE1MTIxZThjMWM0MGJlODUyNDM5ZmMwM2I0YTE4MTEyIgorICAgIH0sIAorICAgIHsKKyAg
ICAgICAgIm5hbWUiOiAiaHRtbDVsaWIiLCAKKyAgICAgICAgInBhdGgiOiBbCisgICAgICAgICAg
ICAidG9vbHMiCisgICAgICAgIF0sIAorICAgICAgICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNv
bS9odG1sNWxpYi9odG1sNWxpYi1weXRob24vYXJjaGl2ZS83Y2NlNjViYmFhNzg0MTFmOThiOGIz
N2VlZWZjOWRiMDNjNTgwMDk3LnRhci5neiIsIAorICAgICAgICAidXJsX3N1YnBhdGgiOiAiaHRt
bDVsaWItcHl0aG9uLTdjY2U2NWJiYWE3ODQxMWY5OGI4YjM3ZWVlZmM5ZGIwM2M1ODAwOTciCisg
ICAgfSwgCisgICAgeworICAgICAgICAibmFtZSI6ICJzaXgiLCAKKyAgICAgICAgInBhdGgiOiBb
CisgICAgICAgICAgICAidG9vbHMiCisgICAgICAgIF0sIAorICAgICAgICAidXJsIjogImh0dHBz
Oi8vZ2l0aHViLmNvbS9qZ3JhaGFtL3NpeC9hcmNoaXZlLzNiNjE3M2M4MzNkMjE3YWIwMTg2YzM1
NTgwNGY1OTI1Y2JjZmNhNDcudGFyLmd6IiwgCisgICAgICAgICJ1cmxfc3VicGF0aCI6ICJzaXgt
M2I2MTczYzgzM2QyMTdhYjAxODZjMzU1ODA0ZjU5MjVjYmNmY2E0NyIKKyAgICB9CitdClwgTm8g
bmV3bGluZSBhdCBlbmQgb2YgZmlsZQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250197</attachid>
            <date>2015-04-06 01:11:36 -0700</date>
            <delta_ts>2015-04-06 02:06:56 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-142738-20150406101047.patch</filename>
            <type>text/plain</type>
            <size>17253</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgyMzQyCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNzk1MWRhMDk5OWUyNGNlN2NhYTgzODE0YzVjNWYwOGM2
OGE2ZDI2ZC4uODRlMDQwYTc4ODY3OWU1YzIxNzcyM2ZmNDY1OTNkNmRmMDFjZTdlZCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMz
IEBACisyMDE1LTA0LTA2ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uLmZhYmxldEBjcmYuY2Fub24u
ZnI+CisKKyAgICAgICAgVzNDIHRlc3QgaW1wb3J0ZXIgc2hvdWxkIGdlbmVyYXRlIHRoZSBtb2R1
bGVzIGluc3RhbGxlZCBkeW5hbWljYWxseSB0byBydW4gd3B0IHRlc3RzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI3MzgKKworICAgICAgICBSZXZp
ZXdlZCBieSBSeW9zdWtlIE5pd2EuCisKKyAgICAgICAgVGhlIHRlc3QgaW1wb3J0ZXIgY2FuIG5v
dyBnZW5lcmF0ZSB0aGUgc3VibW9kdWxlcyBkZXNjcmlwdGlvbiBmaWxlIGJhc2VkIG9uIGluZm9y
bWF0aW9uIGV4dHJhY3RlZCBmcm9tIHRoZSBjb3JyZXNwb25kaW5nIGdpdCByZXBvc2l0b3J5Lgor
ICAgICAgICBUaGUgaW1wbGVtZW50YXRpb24gaXMgZG9uZSB3aXRoaW4gVGVzdERvd25sb2FkZXIg
YW5kIGl0IGlzIGFjdGl2YXRlZCBmb3IgdGhlIFdQVCByZXBvc2l0b3J5LgorICAgICAgICBMYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvcmVzb3VyY2VzL1dQVE1vZHVsZXMgaXMgcmVuYW1lZCBhcyBM
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvcmVzb3VyY2VzL3dlYi1wbGF0Zm9ybS10ZXN0cy1tb2R1
bGVzLmpzb24gZm9yIHRoYXQgcmVhc29uLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvc2VydmVycy93ZWJfcGxhdGZvcm1fdGVzdF9zZXJ2ZXIucHk6CisgICAgICAg
IChXZWJQbGF0Zm9ybVRlc3RTZXJ2ZXIuX2luc3RhbGxfbW9kdWxlcyk6IFVwZGF0ZWQgdG8gY29w
ZSB3aXRoIHBhdGggYXMgYXJyYXkuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS93M2MvdGVz
dF9kb3dubG9hZGVyLnB5OgorICAgICAgICAoVGVzdERvd25sb2FkZXIuX2dpdF9zdWJtb2R1bGVz
X3N0YXR1cyk6IEFkZGVkIHNvIHRoYXQgaXQgY2FuIGJlIG92ZXJyaWRlbiBmb3IgdW5pdCB0ZXN0
cy4KKyAgICAgICAgKFRlc3REb3dubG9hZGVyKToKKyAgICAgICAgKFRlc3REb3dubG9hZGVyLl9n
aXRfc3VibW9kdWxlc19kZXNjcmlwdGlvbik6IENvbXB1dGVzIHN1Ym1vZHVsZSBkZXNjcmlwdGlv
bi4KKyAgICAgICAgKFRlc3REb3dubG9hZGVyLmdlbmVyYXRlX2dpdF9zdWJtb2R1bGVzX2Rlc2Ny
aXB0aW9uKTogV3JpdGUgc3VibW9kdWxlIGRlc2NyaXB0aW9uIGluIGEgZmlsZS4KKyAgICAgICAg
KiBTY3JpcHRzL3dlYmtpdHB5L3czYy90ZXN0X2ltcG9ydGVyLnB5OgorICAgICAgICAoVGVzdElt
cG9ydGVyLmRvX2ltcG9ydCk6IEFkZGVkIHRoZSBwb3NzaWJpbGl0eSB0byBwb3N0IHByb2Nlc3Mg
dGhlIHRlc3RzLgorICAgICAgICAoVGVzdEltcG9ydGVyKToKKyAgICAgICAgKFRlc3RJbXBvcnRl
ci5nZW5lcmF0ZV9naXRfc3VibW9kdWxlc19kZXNjcmlwdGlvbl9mb3JfYWxsX3JlcG9zaXRvcmll
cyk6IEVuYWJsZSBnZW5lcmF0aW5nIG1vZHVsZSBkZXNjcmlwdGlvbiBmaWxlLgorICAgICAgICAo
VGVzdEltcG9ydGVyLnNob3VsZF9jb252ZXJ0X3Rlc3RfaGFybmVzc19saW5rcyk6IFVwZGF0ZWQg
YWNjb3JkaW5nIG5ldyBvcHRpb25zIGZvcm1hdC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5
L3czYy90ZXN0X2ltcG9ydGVyX3VuaXR0ZXN0LnB5OgorICAgICAgICAoVGVzdEltcG9ydGVyVGVz
dC5pbXBvcnRfZG93bmxvYWRlZF90ZXN0cyk6IE1ha2luZyB1c2Ugb2YgVGVzdERvd25sb2FkZXJN
b2NrLiAKKyAgICAgICAgKFRlc3RJbXBvcnRlclRlc3QuaW1wb3J0X2Rvd25sb2FkZWRfdGVzdHMu
VGVzdERvd25sb2FkZXJNb2NrKTogQWRkZWQgdG8gb3ZlcnJpZGUgc3VibW9kdWxlIHN0YXR1cyBn
YXRoZXJpbmcuCisgICAgICAgIChUZXN0SW1wb3J0ZXJUZXN0LmltcG9ydF9kb3dubG9hZGVkX3Rl
c3RzLlRlc3REb3dubG9hZGVyTW9jay5fX2luaXRfXyk6CisgICAgICAgIChUZXN0SW1wb3J0ZXJU
ZXN0LmltcG9ydF9kb3dubG9hZGVkX3Rlc3RzLlRlc3REb3dubG9hZGVyTW9jay5fZ2l0X3N1Ym1v
ZHVsZXNfc3RhdHVzKToKKyAgICAgICAgKFRlc3RJbXBvcnRlclRlc3QudGVzdF9zdWJtb2R1bGVz
X2dlbmVyYXRpb24pOiBBZGRlZCB0byBjaGVjayB0aGF0IG1vZHVsZXMgZGVzY3JpcHRpb24gZmls
ZXMgd29ya3MuCisKIDIwMTUtMDQtMDMgIENzYWJhIE9zenRyb2dvbsOhYyAgPG9zc3lAd2Via2l0
Lm9yZz4KIAogICAgICAgICBydW4tanNjLXN0cmVzcy10ZXN0cyAtLXJlbW90ZSBzaG91bGQgYWRk
IGxpYmxsdm1Gb3JKU0Muc28gdG8gdGhlIGJ1bmRsZSBvbiBMaW51eApkaWZmIC0tZ2l0IGEvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvc2VydmVycy93ZWJfcGxhdGZvcm1fdGVz
dF9zZXJ2ZXIucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9zZXJ2ZXJz
L3dlYl9wbGF0Zm9ybV90ZXN0X3NlcnZlci5weQppbmRleCAwNDFhOWZlMzRhMDE0NWZmYTE1MjA0
ZWE1MjQ0MDk3MWFiYzcyYTM5Li4yNmY5ZjlhNWE5YzFkOGY2ZTBhNDVlNWVmM2QyZmE3NzdkMDNl
Yzk0IDEwMDc1NQotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9zZXJ2
ZXJzL3dlYl9wbGF0Zm9ybV90ZXN0X3NlcnZlci5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9zZXJ2ZXJzL3dlYl9wbGF0Zm9ybV90ZXN0X3NlcnZlci5weQpAQCAt
NzksMTMgKzc5LDEzIEBAIGNsYXNzIFdlYlBsYXRmb3JtVGVzdFNlcnZlcihodHRwX3NlcnZlcl9i
YXNlLkh0dHBTZXJ2ZXJCYXNlKToKICAgICAgICAgc2VsZi5fZG9jX3Jvb3RfcGF0aCA9IHBvcnRf
b2JqLnBhdGhfZnJvbV93ZWJraXRfYmFzZSgiTGF5b3V0VGVzdHMiLCBzZWxmLl9kb2Nfcm9vdCkK
IAogICAgIGRlZiBfaW5zdGFsbF9tb2R1bGVzKHNlbGYpOgotICAgICAgICBtb2R1bGVzX2ZpbGVf
cGF0aCA9IHNlbGYuX2ZpbGVzeXN0ZW0uam9pbihzZWxmLl9sYXlvdXRfcm9vdCwgImltcG9ydGVk
IiwgInczYyIsICJyZXNvdXJjZXMiLCAiV1BUTW9kdWxlcyIpCisgICAgICAgIG1vZHVsZXNfZmls
ZV9wYXRoID0gc2VsZi5fZmlsZXN5c3RlbS5qb2luKHNlbGYuX2xheW91dF9yb290LCAiaW1wb3J0
ZWQiLCAidzNjIiwgInJlc291cmNlcyIsICJ3ZWItcGxhdGZvcm0tdGVzdHMtbW9kdWxlcy5qc29u
IikKICAgICAgICAgaWYgbm90IHNlbGYuX2ZpbGVzeXN0ZW0uaXNmaWxlKG1vZHVsZXNfZmlsZV9w
YXRoKToKICAgICAgICAgICAgIF9sb2cud2FybmluZygiQ2Fubm90IHJlYWQgIiArIG1vZHVsZXNf
ZmlsZV9wYXRoKQogICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgIG1vZHVsZXMgPSBqc29uLmxv
YWRzKHNlbGYuX2ZpbGVzeXN0ZW0ucmVhZF90ZXh0X2ZpbGUobW9kdWxlc19maWxlX3BhdGgpKQog
ICAgICAgICBmb3IgbW9kdWxlIGluIG1vZHVsZXM6Ci0gICAgICAgICAgICBBdXRvSW5zdGFsbGVy
KHRhcmdldF9kaXI9c2VsZi5fZmlsZXN5c3RlbS5qb2luKHNlbGYuX2RvY19yb290LCBtb2R1bGVb
InBhdGgiXSkpLmluc3RhbGwodXJsPW1vZHVsZVsidXJsIl0sIHVybF9zdWJwYXRoPW1vZHVsZVsi
dXJsX3N1YnBhdGgiXSwgdGFyZ2V0X25hbWU9bW9kdWxlWyJuYW1lIl0pCisgICAgICAgICAgICBB
dXRvSW5zdGFsbGVyKHRhcmdldF9kaXI9c2VsZi5fZmlsZXN5c3RlbS5qb2luKHNlbGYuX2RvY19y
b290LCBzZWxmLl9maWxlc3lzdGVtLnNlcC5qb2luKG1vZHVsZVsicGF0aCJdKSkpLmluc3RhbGwo
dXJsPW1vZHVsZVsidXJsIl0sIHVybF9zdWJwYXRoPW1vZHVsZVsidXJsX3N1YnBhdGgiXSwgdGFy
Z2V0X25hbWU9bW9kdWxlWyJuYW1lIl0pCiAKICAgICBkZWYgX2NvcHlfd2Via2l0X3Rlc3RfZmls
ZXMoc2VsZik6CiAgICAgICAgIF9sb2cuZGVidWcoJ0NvcHlpbmcgV2ViS2l0IHJlc291cmNlcyBm
aWxlcycpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3czYy90ZXN0X2Rvd25s
b2FkZXIucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3czYy90ZXN0X2Rvd25sb2FkZXIucHkK
aW5kZXggNWFkYmEyYzkyMWNkNTkwOGM1ZTE0YWZjYmJhYWZmMTM1M2QwYjczNi4uM2ZlYWNiODhh
NGIxNDRkN2I1NzdjMzUzNmM0NjBkM2JjMTFiZmZjNCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS93M2MvdGVzdF9kb3dubG9hZGVyLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvdzNjL3Rlc3RfZG93bmxvYWRlci5weQpAQCAtMTQ5LDYgKzE0OSw0NyBAQCBjbGFzcyBU
ZXN0RG93bmxvYWRlcihvYmplY3QpOgogICAgICAgICAgICAgaWYgc2VsZi5fZmlsZXN5c3RlbS5p
c2ZpbGUoZGVzdGluYXRpb25fcGF0aCk6CiAgICAgICAgICAgICAgICAgc2VsZi5fZmlsZXN5c3Rl
bS5yZW1vdmUoZGVzdGluYXRpb25fcGF0aCkKIAorICAgIGRlZiBfZ2l0X3N1Ym1vZHVsZXNfc3Rh
dHVzKHNlbGYsIHJlcG9zaXRvcnlfZGlyZWN0b3J5KToKKyAgICAgICAgcmV0dXJuIHNlbGYuZ2l0
KHJlcG9zaXRvcnlfZGlyZWN0b3J5KS5fcnVuX2dpdChbJ3N1Ym1vZHVsZScsICdzdGF0dXMnXSkK
KworICAgIGRlZiBfZ2l0X3N1Ym1vZHVsZXNfZGVzY3JpcHRpb24oc2VsZiwgdGVzdF9yZXBvc2l0
b3J5KToKKyAgICAgICAgc3VibW9kdWxlcyA9IFtdCisgICAgICAgIHJlcG9zaXRvcnlfZGlyZWN0
b3J5ID0gc2VsZi5fZmlsZXN5c3RlbS5qb2luKHNlbGYucmVwb3NpdG9yeV9kaXJlY3RvcnksIHRl
c3RfcmVwb3NpdG9yeVsnbmFtZSddKQorICAgICAgICBpZiBzZWxmLl9maWxlc3lzdGVtLmlzZmls
ZShzZWxmLl9maWxlc3lzdGVtLmpvaW4ocmVwb3NpdG9yeV9kaXJlY3RvcnksICcuZ2l0bW9kdWxl
cycpKToKKyAgICAgICAgICAgIHN1Ym1vZHVsZSA9IHt9CisgICAgICAgICAgICBmb3IgbGluZSBp
biBzZWxmLl9maWxlc3lzdGVtLnJlYWRfdGV4dF9maWxlKHNlbGYuX2ZpbGVzeXN0ZW0uam9pbihy
ZXBvc2l0b3J5X2RpcmVjdG9yeSwgJy5naXRtb2R1bGVzJykpLnNwbGl0bGluZXMoKToKKyAgICAg
ICAgICAgICAgICBsaW5lID0gbGluZS5zdHJpcCgpCisgICAgICAgICAgICAgICAgaWYgbGluZS5z
dGFydHN3aXRoKCdwYXRoID0gJyk6CisgICAgICAgICAgICAgICAgICAgIHN1Ym1vZHVsZVsncGF0
aCddID0gbGluZVs3Ol0KKyAgICAgICAgICAgICAgICBlbGlmIGxpbmUuc3RhcnRzd2l0aCgndXJs
ID0gJyk6CisgICAgICAgICAgICAgICAgICAgIHN1Ym1vZHVsZVsndXJsJ10gPSBsaW5lWzY6XQor
ICAgICAgICAgICAgICAgICAgICBpZiBub3Qgc3VibW9kdWxlWyd1cmwnXS5zdGFydHN3aXRoKCdo
dHRwczovL2dpdGh1Yi5jb20vJyk6CisgICAgICAgICAgICAgICAgICAgICAgICBfbG9nLndhcm5p
bmcoJ1N1Ym1vZHVsZSAlcyBpcyBub3QgaG9zdGVkIG9uIGdpdGh1YicgJSBzdWJtb2R1bGVbJ3Bh
dGgnXSkKKyAgICAgICAgICAgICAgICAgICAgICAgIF9sb2cud2FybmluZygnUGxlYXNlIGVuc3Vy
ZSB0aGF0IGdlbmVyYXRlZCBVUkwgcG9pbnRzIHRvIGFuIGFyY2hpdmUgb2YgdGhlIG1vZHVsZSBv
ciBtYW51YWxseSBlZGl0IGl0cyB2YWx1ZSBhZnRlciB0aGUgaW1wb3J0JykKKyAgICAgICAgICAg
ICAgICAgICAgc3VibW9kdWxlcy5hcHBlbmQoc3VibW9kdWxlKQorICAgICAgICAgICAgICAgICAg
ICBzdWJtb2R1bGUgPSB7fQorCisgICAgICAgIHN1Ym1vZHVsZXNfc3RhdHVzID0gW2xpbmVbMTpd
LnNwbGl0KCcgJykgZm9yIGxpbmUgaW4gc2VsZi5fZ2l0X3N1Ym1vZHVsZXNfc3RhdHVzKHJlcG9z
aXRvcnlfZGlyZWN0b3J5KS5zcGxpdGxpbmVzKCldCisgICAgICAgIGZvciBzdWJtb2R1bGUgaW4g
c3VibW9kdWxlczoKKyAgICAgICAgICAgIGZvciBzdGF0dXMgaW4gc3VibW9kdWxlc19zdGF0dXM6
CisgICAgICAgICAgICAgICAgaWYgc3VibW9kdWxlWydwYXRoJ10gPT0gc3RhdHVzWzFdOgorICAg
ICAgICAgICAgICAgICAgICB1cmwgPSBzdWJtb2R1bGVbJ3VybCddWzotNF0KKyAgICAgICAgICAg
ICAgICAgICAgdmVyc2lvbiA9IHN0YXR1c1swXQorICAgICAgICAgICAgICAgICAgICByZXBvc2l0
b3J5X25hbWUgPSB1cmwuc3BsaXQoJy8nKS5wb3AoKQorICAgICAgICAgICAgICAgICAgICBzdWJt
b2R1bGVbJ3VybCddID0gdXJsICsgJy9hcmNoaXZlLycgKyB2ZXJzaW9uICsgJy50YXIuZ3onCisg
ICAgICAgICAgICAgICAgICAgIHN1Ym1vZHVsZVsndXJsX3N1YnBhdGgnXSA9IHJlcG9zaXRvcnlf
bmFtZSArICctJyArIHZlcnNpb24KKyAgICAgICAgICAgIGlmICcvJyBpbiBzdWJtb2R1bGVbJ3Bh
dGgnXToKKyAgICAgICAgICAgICAgICBzdGVwcyA9IHN1Ym1vZHVsZVsncGF0aCddLnNwbGl0KCcv
JykKKyAgICAgICAgICAgICAgICBzdWJtb2R1bGVbJ25hbWUnXSA9IHN0ZXBzLnBvcCgpCisgICAg
ICAgICAgICAgICAgc3VibW9kdWxlWydwYXRoJ10gPSBzdGVwcworICAgICAgICAgICAgZWxzZToK
KyAgICAgICAgICAgICAgICBzdWJtb2R1bGVbJ25hbWUnXSA9IHN1Ym1vZHVsZVsncGF0aCddCisg
ICAgICAgICAgICAgICAgc3VibW9kdWxlWydwYXRoJ10gPSBbJy4nXQorICAgICAgICByZXR1cm4g
c3VibW9kdWxlcworCisgICAgZGVmIGdlbmVyYXRlX2dpdF9zdWJtb2R1bGVzX2Rlc2NyaXB0aW9u
KHNlbGYsIHRlc3RfcmVwb3NpdG9yeSwgZmlsZXBhdGgpOgorICAgICAgICBzZWxmLl9maWxlc3lz
dGVtLndyaXRlX3RleHRfZmlsZShmaWxlcGF0aCwganNvbi5kdW1wcyhzZWxmLl9naXRfc3VibW9k
dWxlc19kZXNjcmlwdGlvbih0ZXN0X3JlcG9zaXRvcnkpLCBzb3J0X2tleXM9VHJ1ZSwgaW5kZW50
PTQpKQorCiAgICAgZGVmIGRvd25sb2FkX3Rlc3RzKHNlbGYsIGRlc3RpbmF0aW9uX2RpcmVjdG9y
eSwgdGVzdF9wYXRocz1bXSk6CiAgICAgICAgIGZvciB0ZXN0X3JlcG9zaXRvcnkgaW4gc2VsZi50
ZXN0X3JlcG9zaXRvcmllczoKICAgICAgICAgICAgIHNlbGYuY2hlY2tvdXRfdGVzdF9yZXBvc2l0
b3J5KHRlc3RfcmVwb3NpdG9yeVsncmV2aXNpb24nXSwgdGVzdF9yZXBvc2l0b3J5Wyd1cmwnXSwg
c2VsZi5fZmlsZXN5c3RlbS5qb2luKHNlbGYucmVwb3NpdG9yeV9kaXJlY3RvcnksIHRlc3RfcmVw
b3NpdG9yeVsnbmFtZSddKSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdzNj
L3Rlc3RfaW1wb3J0ZXIucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3czYy90ZXN0X2ltcG9y
dGVyLnB5CmluZGV4IDA2MTcyYzNmOWRiMGFjY2Q1MmMyODA0MTIwOGZhNTNkZTUyMzNkOGIuLmE0
YTNhZjUyYTAyYzgwMjk1NzZlOTFmZjkzZjcyMTkzYjMyODdjMGEgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvdzNjL3Rlc3RfaW1wb3J0ZXIucHkKKysrIGIvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS93M2MvdGVzdF9pbXBvcnRlci5weQpAQCAtMTkwLDYgKzE5MCwxNiBAQCBjbGFz
cyBUZXN0SW1wb3J0ZXIob2JqZWN0KToKIAogICAgICAgICBzZWxmLmltcG9ydF90ZXN0cygpCiAK
KyAgICAgICAgaWYgc2VsZi5faW1wb3J0aW5nX2Rvd25sb2FkZWRfdGVzdHM6CisgICAgICAgICAg
ICBzZWxmLmdlbmVyYXRlX2dpdF9zdWJtb2R1bGVzX2Rlc2NyaXB0aW9uX2Zvcl9hbGxfcmVwb3Np
dG9yaWVzKCkKKworICAgIGRlZiBnZW5lcmF0ZV9naXRfc3VibW9kdWxlc19kZXNjcmlwdGlvbl9m
b3JfYWxsX3JlcG9zaXRvcmllcyhzZWxmKToKKyAgICAgICAgZm9yIHRlc3RfcmVwb3NpdG9yeSBp
biBzZWxmLl90ZXN0X2Rvd25sb2FkZXIudGVzdF9yZXBvc2l0b3JpZXM6CisgICAgICAgICAgICBp
ZiAnZ2VuZXJhdGVfZ2l0X3N1Ym1vZHVsZXNfZGVzY3JpcHRpb24nIGluIHRlc3RfcmVwb3NpdG9y
eVsnaW1wb3J0X29wdGlvbnMnXToKKyAgICAgICAgICAgICAgICBzZWxmLmZpbGVzeXN0ZW0ubWF5
YmVfbWFrZV9kaXJlY3Rvcnkoc2VsZi5maWxlc3lzdGVtLmpvaW4oc2VsZi5kZXN0aW5hdGlvbl9k
aXJlY3RvcnksICdyZXNvdXJjZXMnKSkKKyAgICAgICAgICAgICAgICBzZWxmLl90ZXN0X2Rvd25s
b2FkZXIuZ2VuZXJhdGVfZ2l0X3N1Ym1vZHVsZXNfZGVzY3JpcHRpb24odGVzdF9yZXBvc2l0b3J5
LCBzZWxmLmZpbGVzeXN0ZW0uam9pbihzZWxmLmRlc3RpbmF0aW9uX2RpcmVjdG9yeSwgJ3Jlc291
cmNlcycsIHRlc3RfcmVwb3NpdG9yeVsnbmFtZSddICsgJy1tb2R1bGVzLmpzb24nKSkKKyAgICAg
ICAgICAgICMgRklYTUU6IEdlbmVyYXRlIFdQVCAuZ2l0aWdub3JlIGFuZCAgbWFpbiBfX2luaXRf
Xy5weQorCiAgICAgZGVmIHRlc3RfZG93bmxvYWRlcihzZWxmKToKICAgICAgICAgaWYgbm90IHNl
bGYuX3Rlc3RfZG93bmxvYWRlcjoKICAgICAgICAgICAgIGRvd25sb2FkX29wdGlvbnMgPSBUZXN0
RG93bmxvYWRlci5kZWZhdWx0X29wdGlvbnMoKQpAQCAtMjgxLDcgKzI5MSw3IEBAIGNsYXNzIFRl
c3RJbXBvcnRlcihvYmplY3QpOgogICAgICAgICBpZiBzZWxmLl9pbXBvcnRpbmdfZG93bmxvYWRl
ZF90ZXN0czoKICAgICAgICAgICAgIGZvciB0ZXN0X3JlcG9zaXRvcnkgaW4gc2VsZi50ZXN0X2Rv
d25sb2FkZXIoKS50ZXN0X3JlcG9zaXRvcmllczoKICAgICAgICAgICAgICAgICBpZiB0ZXN0LnN0
YXJ0c3dpdGgodGVzdF9yZXBvc2l0b3J5WyduYW1lJ10pOgotICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gdGVzdF9yZXBvc2l0b3J5Wydjb252ZXJ0X3Rlc3RfaGFybmVzc19saW5rcyddCisgICAg
ICAgICAgICAgICAgICAgIHJldHVybiAnY29udmVydF90ZXN0X2hhcm5lc3NfbGlua3MnIGluIHRl
c3RfcmVwb3NpdG9yeVsnaW1wb3J0X29wdGlvbnMnXQogICAgICAgICAgICAgcmV0dXJuIFRydWUK
ICAgICAgICAgcmV0dXJuIHNlbGYub3B0aW9ucy5jb252ZXJ0X3Rlc3RfaGFybmVzc19saW5rcwog
CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3czYy90ZXN0X2ltcG9ydGVyX3Vu
aXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS93M2MvdGVzdF9pbXBvcnRlcl91bml0
dGVzdC5weQppbmRleCA5MGU1ZmVlMzBkMDExMzgxODlmODgzN2IxMWIyNWJhZjY4Njk2NjU1Li4w
YWUzNjYwYmNlODBiNjA1YjA1NTIwYWU3MjVhZjMyNTA3NDNkNjA5IDEwMDY0NAotLS0gYS9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L3czYy90ZXN0X2ltcG9ydGVyX3VuaXR0ZXN0LnB5CisrKyBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvdzNjL3Rlc3RfaW1wb3J0ZXJfdW5pdHRlc3QucHkKQEAgLTM0
LDYgKzM0LDcgQEAgZnJvbSB3ZWJraXRweS5jb21tb24uaG9zdF9tb2NrIGltcG9ydCBNb2NrSG9z
dAogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmZpbGVzeXN0ZW1fbW9jayBpbXBvcnQgTW9j
a0ZpbGVTeXN0ZW0KIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5leGVjdXRpdmVfbW9jayBp
bXBvcnQgTW9ja0V4ZWN1dGl2ZTIsIFNjcmlwdEVycm9yCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5z
eXN0ZW0ub3V0cHV0Y2FwdHVyZSBpbXBvcnQgT3V0cHV0Q2FwdHVyZQorZnJvbSB3ZWJraXRweS53
M2MudGVzdF9kb3dubG9hZGVyIGltcG9ydCBUZXN0RG93bmxvYWRlcgogZnJvbSB3ZWJraXRweS53
M2MudGVzdF9pbXBvcnRlciBpbXBvcnQgcGFyc2VfYXJncywgVGVzdEltcG9ydGVyCiAKIApAQCAt
OTIsMTIgKzkzLDIxIEBAIGNsYXNzIFRlc3RJbXBvcnRlclRlc3QodW5pdHRlc3QuVGVzdENhc2Up
OgogCiAgICAgZGVmIGltcG9ydF9kb3dubG9hZGVkX3Rlc3RzKHNlbGYsIGFyZ3MsIGZpbGVzKToK
ICAgICAgICAgIyBmaWxlcyBhcmUgcGFzc2VkIGFzIHBhcmFtZXRlciBhcyB3ZSBjYW5ub3QgY2xv
bmUvZmV0Y2gvY2hlY2tvdXQgYSByZXBvIGluIG1vY2sgc3lzdGVtLgorCisgICAgICAgIGNsYXNz
IFRlc3REb3dubG9hZGVyTW9jayhUZXN0RG93bmxvYWRlcik6CisgICAgICAgICAgICBkZWYgX19p
bml0X18oc2VsZiwgcmVwb3NpdG9yeV9kaXJlY3RvcnksIGhvc3QsIG9wdGlvbnMpOgorICAgICAg
ICAgICAgICAgIFRlc3REb3dubG9hZGVyLl9faW5pdF9fKHNlbGYsIHJlcG9zaXRvcnlfZGlyZWN0
b3J5LCBob3N0LCBvcHRpb25zKQorCisgICAgICAgICAgICBkZWYgX2dpdF9zdWJtb2R1bGVzX3N0
YXR1cyhzZWxmLCByZXBvc2l0b3J5X2RpcmVjdG9yeSk6CisgICAgICAgICAgICAgICAgcmV0dXJu
ICdhZGI0ZDM5MWE2OTg3N2Q0YTFlYWFmNTFkMTcyNWM5OWE1YjhlZDg0IHRvb2xzL3Jlc291cmNl
cycKKwogICAgICAgICBob3N0ID0gTW9ja0hvc3QoKQogICAgICAgICBob3N0LmV4ZWN1dGl2ZSA9
IE1vY2tFeGVjdXRpdmUyKCkKICAgICAgICAgaG9zdC5maWxlc3lzdGVtID0gTW9ja0ZpbGVTeXN0
ZW0oZmlsZXM9ZmlsZXMpCiAKICAgICAgICAgb3B0aW9ucywgYXJncyA9IHBhcnNlX2FyZ3MoYXJn
cykKICAgICAgICAgaW1wb3J0ZXIgPSBUZXN0SW1wb3J0ZXIoaG9zdCwgTm9uZSwgb3B0aW9ucykK
KyAgICAgICAgaW1wb3J0ZXIuX3Rlc3RfZG93bmxvYWRlciA9IFRlc3REb3dubG9hZGVyTW9jayhp
bXBvcnRlci50ZXN0c19kb3dubG9hZF9wYXRoLCBpbXBvcnRlci5ob3N0LCBpbXBvcnRlci5vcHRp
b25zKQogICAgICAgICBpbXBvcnRlci5kb19pbXBvcnQoKQogICAgICAgICByZXR1cm4gaG9zdC5m
aWxlc3lzdGVtCiAKQEAgLTExNiw0ICsxMjYsMTcgQEAgY2xhc3MgVGVzdEltcG9ydGVyVGVzdCh1
bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgnc3JjPSIvcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzLmpzIicgaW4gZnMucmVhZF90ZXh0X2ZpbGUoJy9tb2NrLWNoZWNrb3V0
L0xheW91dFRlc3RzL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdC90ZXN0Lmh0bWwnKSkKICAgICAg
ICAgc2VsZi5hc3NlcnRUcnVlKCdzcmM9Ii4uLycgaW4gZnMucmVhZF90ZXh0X2ZpbGUoJy9tb2Nr
LWNoZWNrb3V0L0xheW91dFRlc3RzL3czYy9jc3N3Zy10ZXN0cy90L3Rlc3QuaHRtbCcpKQogCisg
ICAgZGVmIHRlc3Rfc3VibW9kdWxlc19nZW5lcmF0aW9uKHNlbGYpOgorICAgICAgICBGQUtFX0ZJ
TEVTID0geworICAgICAgICAgICAgJy9tb2NrLWNoZWNrb3V0L1dlYktpdEJ1aWxkL3czYy10ZXN0
cy9jc3N3Zy10ZXN0cy8uZ2l0bW9kdWxlcyc6ICdbc3VibW9kdWxlICJ0b29scy9yZXNvdXJjZXMi
XVxuCXBhdGggPSB0b29scy9yZXNvdXJjZXNcbgl1cmwgPSBodHRwczovL2dpdGh1Yi5jb20vdzNj
L3Rlc3RoYXJuZXNzLmpzLmdpdFxuICBpZ25vcmUgPSBkaXJ0eVxuJywKKyAgICAgICAgICAgICcv
bW9jay1jaGVja291dC9XZWJLaXRCdWlsZC93M2MtdGVzdHMvd2ViLXBsYXRmb3JtLXRlc3RzLy5n
aXRtb2R1bGVzJzogJ1tzdWJtb2R1bGUgInRvb2xzL3Jlc291cmNlcyJdXG4JcGF0aCA9IHRvb2xz
L3Jlc291cmNlc1xuCXVybCA9IGh0dHBzOi8vZ2l0aHViLmNvbS93M2MvdGVzdGhhcm5lc3MuanMu
Z2l0XG4gIGlnbm9yZSA9IGRpcnR5XG4nLAorICAgICAgICB9CisKKyAgICAgICAgZnMgPSBzZWxm
LmltcG9ydF9kb3dubG9hZGVkX3Rlc3RzKFsnLS1uby1mZXRjaCcsICctLWltcG9ydC1hbGwnLCAn
LWQnLCAndzNjJ10sIEZBS0VfRklMRVMpCisKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShmcy5l
eGlzdHMoJy9tb2NrLWNoZWNrb3V0L0xheW91dFRlc3RzL3czYy9yZXNvdXJjZXMvY3Nzd2ctdGVz
dHMtbW9kdWxlcy5qc29uJykpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShmcy5leGlzdHMoJy9t
b2NrLWNoZWNrb3V0L0xheW91dFRlc3RzL3czYy9yZXNvdXJjZXMvd2ViLXBsYXRmb3JtLXRlc3Rz
LW1vZHVsZXMuanNvbicpKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoJ2h0dHBzOi8vZ2l0aHVi
LmNvbS93M2MvdGVzdGhhcm5lc3MuanMvYXJjaGl2ZS9kYjRkMzkxYTY5ODc3ZDRhMWVhYWY1MWQx
NzI1Yzk5YTViOGVkODQudGFyLmd6JyBpbiBmcy5yZWFkX3RleHRfZmlsZSgnL21vY2stY2hlY2tv
dXQvTGF5b3V0VGVzdHMvdzNjL3Jlc291cmNlcy93ZWItcGxhdGZvcm0tdGVzdHMtbW9kdWxlcy5q
c29uJykpCisKKwogICAgICMgRklYTUU6IE5lZWRzIG1vcmUgdGVzdHMuCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL0NoYW5nZUxvZwppbmRleCBiYzQ3NjRjMTIwM2ZmNzRiMjdjOWJhYzcwNjVkYTRjMmY0ZTc1
NmRlLi5lNzI2MGE1MmJmNmYyMDg4MGU0ZDVlNzViMTM5YmQwOWMyNTI4NDVhIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxNS0wNC0wNiAgWW91ZW5u
IEZhYmxldCAgPHlvdWVubi5mYWJsZXRAY3JmLmNhbm9uLmZyPgorCisgICAgICAgIFczQyB0ZXN0
IGltcG9ydGVyIHNob3VsZCBnZW5lcmF0ZSB0aGUgbW9kdWxlcyBpbnN0YWxsZWQgZHluYW1pY2Fs
bHkgdG8gcnVuIHdwdCB0ZXN0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTQyNzM4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgUnlvc3VrZSBOaXdhLgor
CisgICAgICAgIFJlbmFtZWQgV1BUTW9kdWxlcyB0byB3ZWItcGxhdGZvcm0tdGVzdC1tb2R1bGVz
Lmpzb24KKyAgICAgICAgVXBkYXRlZCBUZXN0UmVwb3NpdG9yaWVzIHRvIGFzayB0aGUgaW1wb3J0
ZXIgdG8gZ2VuZXJhdGUgd2ViLXBsYXRmb3JtLXRlc3QtbW9kdWxlcy5qc29uIGF0IGltcG9ydCB0
aW1lLiAgCisKKyAgICAgICAgKiByZXNvdXJjZXMvVGVzdFJlcG9zaXRvcmllczoKKyAgICAgICAg
KiByZXNvdXJjZXMvV1BUTW9kdWxlczogUmVtb3ZlZC4KKyAgICAgICAgKiByZXNvdXJjZXMvd2Vi
LXBsYXRmb3JtLXRlc3RzLW1vZHVsZXMuanNvbjogQWRkZWQuCisKIDIwMTUtMDMtMTMgIFlvdWVu
biBGYWJsZXQgIDx5b3Vlbm4uZmFibGV0QGNyZi5jYW5vbi5mcj4KIAogICAgICAgICBXZWJLaXQg
dGVzdCBpbmZyYXN0cnVjdHVyZSBzaG91bGQgYXV0b21hdGUgdGhlIHByb2Nlc3Mgb2YgY2xvbmlu
ZyBXM0MgdGVzdCBzdWl0ZSBhbmQgaW1wb3J0aW5nIHRlc3RzIGZyb20gaXQKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9yZXNvdXJjZXMvVGVzdFJlcG9zaXRvcmllcyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9yZXNvdXJjZXMvVGVzdFJlcG9zaXRvcmllcwppbmRleCA5
NTY4ZTIwOTY3YWEwNjJiNzhjOTZiZWRkMTZhN2E5ZjEzOTYwMjY5Li5mMjhhMDc3YzQ1YjRiMjMz
M2ZmMzk2YmUzODE3MTliMTk2ZDAzM2VjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvcmVzb3VyY2VzL1Rlc3RSZXBvc2l0b3JpZXMKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3Jlc291cmNlcy9UZXN0UmVwb3NpdG9yaWVzCkBAIC0xMCw3ICsxMCw3IEBACiAgICAg
ICAgICJwYXRoc190b19pbXBvcnQiOiBbCiAgICAgICAgICAgICAic3VwcG9ydCIKICAgICAgICAg
XSwKLSAgICAgICAgImNvbnZlcnRfdGVzdF9oYXJuZXNzX2xpbmtzIjogdHJ1ZQorICAgICAgICAi
aW1wb3J0X29wdGlvbnMiOiBbImNvbnZlcnRfdGVzdF9oYXJuZXNzX2xpbmtzIl0KICAgICB9LAog
ICAgIHsKICAgICAgICAgIm5hbWUiOiAid2ViLXBsYXRmb3JtLXRlc3RzIiwKQEAgLTMwLDYgKzMw
LDYgQEAKICAgICAgICAgICAgICJjb25maWcuZGVmYXVsdC5qc29uIiwKICAgICAgICAgICAgICJz
ZXJ2ZS5weSIKICAgICAgICAgXSwKLSAgICAgICAgImNvbnZlcnRfdGVzdF9oYXJuZXNzX2xpbmtz
IjogZmFsc2UKKyAgICAgICAgImltcG9ydF9vcHRpb25zIjogWyJnZW5lcmF0ZV9naXRfc3VibW9k
dWxlc19kZXNjcmlwdGlvbiJdCiAgICAgfQogXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3Jlc291cmNlcy9XUFRNb2R1bGVzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3Jlc291cmNlcy9XUFRNb2R1bGVzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2Mjg0
NWZhN2NkNDEwMjgwZjJmNTcwOGUwZTMxMGQ3NDQ5NWQ4NjI3Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9yZXNv
dXJjZXMvV1BUTW9kdWxlcworKysgL2Rldi9udWxsCkBAIC0xLDMyICswLDAgQEAKLVsKLXsKLSAg
ICAibmFtZSI6ICJodG1sNWxpYiIsCi0gICAgInBhdGgiOiAidG9vbHMiLAotICAgICJ1cmwiOiAi
aHR0cHM6Ly9naXRodWIuY29tL2h0bWw1bGliL2h0bWw1bGliLXB5dGhvbi9hcmNoaXZlLzdjY2U2
NWJiYWE3ODQxMWY5OGI4YjM3ZWVlZmM5ZGIwM2M1ODAwOTcudGFyLmd6IiwKLSAgICAidXJsX3N1
YnBhdGgiOiAiaHRtbDVsaWItcHl0aG9uLTdjY2U2NWJiYWE3ODQxMWY5OGI4YjM3ZWVlZmM5ZGIw
M2M1ODAwOTciCi19LAotewotICAgICJuYW1lIjogInB5d2Vic29ja2V0IiwKLSAgICAicGF0aCI6
ICJ0b29scyIsCi0gICAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdzNjL3B5d2Vic29ja2V0
L2FyY2hpdmUvOGMyODVkOTAxNTEyMWU4YzFjNDBiZTg1MjQzOWZjMDNiNGExODExMi50YXIuZ3oi
LAotICAgICJ1cmxfc3VicGF0aCI6ICJweXdlYnNvY2tldC04YzI4NWQ5MDE1MTIxZThjMWM0MGJl
ODUyNDM5ZmMwM2I0YTE4MTEyIgotfSwKLXsKLSAgICAibmFtZSI6ICJzaXgiLAotICAgICJwYXRo
IjogInRvb2xzIiwKLSAgICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9qZ3JhaGFtL3NpeC9h
cmNoaXZlLzNiNjE3M2M4MzNkMjE3YWIwMTg2YzM1NTgwNGY1OTI1Y2JjZmNhNDcudGFyLmd6IiwK
LSAgICAidXJsX3N1YnBhdGgiOiAic2l4LTNiNjE3M2M4MzNkMjE3YWIwMTg2YzM1NTgwNGY1OTI1
Y2JjZmNhNDciCi19LAotewotICAgICJuYW1lIjogIndwdHNlcnZlIiwKLSAgICAicGF0aCI6ICJ0
b29scyIsCi0gICAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdzNjL3dwdHNlcnZlL2FyY2hp
dmUvOTFlNzY0ZmZhMGY1ODcwOTAzNDFhMjZhZjQ1N2RmZGM2NzYyZWIwZC50YXIuZ3oiLAotICAg
ICJ1cmxfc3VicGF0aCI6ICJ3cHRzZXJ2ZS05MWU3NjRmZmEwZjU4NzA5MDM0MWEyNmFmNDU3ZGZk
YzY3NjJlYjBkIgotfSwKLXsKLSAgICAibmFtZSI6ICJyZXNvdXJjZXMiLAotICAgICJwYXRoIjog
Ii4iLAotICAgICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3czYy90ZXN0aGFybmVzcy5qcy9h
cmNoaXZlLzc0YmExM2QyZmJiMTljNmU3NDk0OTYwYmQ3NzI0ODczZTg4YzUyM2MudGFyLmd6IiwK
LSAgICAidXJsX3N1YnBhdGgiOiAidGVzdGhhcm5lc3MuanMtNzRiYTEzZDJmYmIxOWM2ZTc0OTQ5
NjBiZDc3MjQ4NzNlODhjNTIzYyIKLX0KLV0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9yZXNvdXJjZXMvd2ViLXBsYXRmb3JtLXRlc3RzLW1vZHVsZXMuanNvbiBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9yZXNvdXJjZXMvd2ViLXBsYXRmb3JtLXRlc3RzLW1vZHVsZXMu
anNvbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi43NjgxNjljNmVjMzI0NDU2OGM3M2E4OWI2ZWEzNDlkZmJhNzgyMTlm
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3Jlc291cmNlcy93
ZWItcGxhdGZvcm0tdGVzdHMtbW9kdWxlcy5qc29uCkBAIC0wLDAgKzEsNDIgQEAKK1sKKyAgICB7
CisgICAgICAgICJuYW1lIjogInJlc291cmNlcyIsIAorICAgICAgICAicGF0aCI6IFsKKyAgICAg
ICAgICAgICIuIgorICAgICAgICBdLCAKKyAgICAgICAgInVybCI6ICJodHRwczovL2dpdGh1Yi5j
b20vdzNjL3Rlc3RoYXJuZXNzLmpzL2FyY2hpdmUvMmExZGEyNjRmNjcxOGRiMDRjMzkyNWE5OTU2
YjYzNTQyNjgyN2FlZi50YXIuZ3oiLCAKKyAgICAgICAgInVybF9zdWJwYXRoIjogInRlc3RoYXJu
ZXNzLmpzLTJhMWRhMjY0ZjY3MThkYjA0YzM5MjVhOTk1NmI2MzU0MjY4MjdhZWYiCisgICAgfSwg
CisgICAgeworICAgICAgICAibmFtZSI6ICJ3cHRzZXJ2ZSIsIAorICAgICAgICAicGF0aCI6IFsK
KyAgICAgICAgICAgICJ0b29scyIKKyAgICAgICAgXSwgCisgICAgICAgICJ1cmwiOiAiaHR0cHM6
Ly9naXRodWIuY29tL3czYy93cHRzZXJ2ZS9hcmNoaXZlLzkxZTc2NGZmYTBmNTg3MDkwMzQxYTI2
YWY0NTdkZmRjNjc2MmViMGQudGFyLmd6IiwgCisgICAgICAgICJ1cmxfc3VicGF0aCI6ICJ3cHRz
ZXJ2ZS05MWU3NjRmZmEwZjU4NzA5MDM0MWEyNmFmNDU3ZGZkYzY3NjJlYjBkIgorICAgIH0sIAor
ICAgIHsKKyAgICAgICAgIm5hbWUiOiAicHl3ZWJzb2NrZXQiLCAKKyAgICAgICAgInBhdGgiOiBb
CisgICAgICAgICAgICAidG9vbHMiCisgICAgICAgIF0sIAorICAgICAgICAidXJsIjogImh0dHBz
Oi8vZ2l0aHViLmNvbS93M2MvcHl3ZWJzb2NrZXQvYXJjaGl2ZS84YzI4NWQ5MDE1MTIxZThjMWM0
MGJlODUyNDM5ZmMwM2I0YTE4MTEyLnRhci5neiIsIAorICAgICAgICAidXJsX3N1YnBhdGgiOiAi
cHl3ZWJzb2NrZXQtOGMyODVkOTAxNTEyMWU4YzFjNDBiZTg1MjQzOWZjMDNiNGExODExMiIKKyAg
ICB9LCAKKyAgICB7CisgICAgICAgICJuYW1lIjogImh0bWw1bGliIiwgCisgICAgICAgICJwYXRo
IjogWworICAgICAgICAgICAgInRvb2xzIgorICAgICAgICBdLCAKKyAgICAgICAgInVybCI6ICJo
dHRwczovL2dpdGh1Yi5jb20vaHRtbDVsaWIvaHRtbDVsaWItcHl0aG9uL2FyY2hpdmUvN2NjZTY1
YmJhYTc4NDExZjk4YjhiMzdlZWVmYzlkYjAzYzU4MDA5Ny50YXIuZ3oiLCAKKyAgICAgICAgInVy
bF9zdWJwYXRoIjogImh0bWw1bGliLXB5dGhvbi03Y2NlNjViYmFhNzg0MTFmOThiOGIzN2VlZWZj
OWRiMDNjNTgwMDk3IgorICAgIH0sIAorICAgIHsKKyAgICAgICAgIm5hbWUiOiAic2l4IiwgCisg
ICAgICAgICJwYXRoIjogWworICAgICAgICAgICAgInRvb2xzIgorICAgICAgICBdLCAKKyAgICAg
ICAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vamdyYWhhbS9zaXgvYXJjaGl2ZS8zYjYxNzNj
ODMzZDIxN2FiMDE4NmMzNTU4MDRmNTkyNWNiY2ZjYTQ3LnRhci5neiIsIAorICAgICAgICAidXJs
X3N1YnBhdGgiOiAic2l4LTNiNjE3M2M4MzNkMjE3YWIwMTg2YzM1NTgwNGY1OTI1Y2JjZmNhNDci
CisgICAgfQorXQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
</data>

          </attachment>
      

    </bug>

</bugzilla>