<?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>74897</bug_id>
          
          <creation_ts>2011-12-19 16:15:07 -0800</creation_ts>
          <short_desc>IndexedDB: Add tests for structured clone data</short_desc>
          <delta_ts>2012-01-30 13:07:49 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</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>
          
          <blocked>77239</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Joshua Bell">jsbell</reporter>
          <assigned_to name="Joshua Bell">jsbell</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>dgrogan</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>524258</commentid>
    <comment_count>0</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2011-12-19 16:15:07 -0800</bug_when>
    <thetext>IndexedDB: Add tests for structured clone data</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>524260</commentid>
    <comment_count>1</comment_count>
      <attachid>119940</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2011-12-19 16:15:26 -0800</bug_when>
    <thetext>Created attachment 119940
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>524261</commentid>
    <comment_count>2</comment_count>
      <attachid>119940</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2011-12-19 16:15:37 -0800</bug_when>
    <thetext>Comment on attachment 119940
Patch

WIP, no review yet</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>524322</commentid>
    <comment_count>3</comment_count>
      <attachid>119957</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2011-12-19 17:20:47 -0800</bug_when>
    <thetext>Created attachment 119957
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>524323</commentid>
    <comment_count>4</comment_count>
      <attachid>119957</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2011-12-19 17:21:06 -0800</bug_when>
    <thetext>Comment on attachment 119957
Patch

Added File test (name is lost) but still WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>531541</commentid>
    <comment_count>5</comment_count>
      <attachid>121525</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-01-06 17:27:28 -0800</bug_when>
    <thetext>Created attachment 121525
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>531545</commentid>
    <comment_count>6</comment_count>
      <attachid>121526</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-01-06 17:47:13 -0800</bug_when>
    <thetext>Created attachment 121526
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>531546</commentid>
    <comment_count>7</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-01-06 17:49:38 -0800</bug_when>
    <thetext>Tests only - review?

Note one FAIL in the expectations file - the V8 serialized cloning code doesn&apos;t distinguish 0 and -0. It should, but will require checking around to see where folks think the test should live (should -0 be considered a non-Integer, or should the SSV code special case it?)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>531577</commentid>
    <comment_count>8</comment_count>
      <attachid>121526</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-06 19:03:52 -0800</bug_when>
    <thetext>Comment on attachment 121526
Patch

Attachment 121526 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/11172177

New failing tests:
storage/indexeddb/structured-clone.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>532396</commentid>
    <comment_count>9</comment_count>
      <attachid>121707</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-01-09 11:54:22 -0800</bug_when>
    <thetext>Created attachment 121707
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>532397</commentid>
    <comment_count>10</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-01-09 11:56:08 -0800</bug_when>
    <thetext>New patch. Removed some FIXMEs, clarified others with bug URL, removed debug lines that depended on a file modification time (duh) that would have caused failures.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>532465</commentid>
    <comment_count>11</comment_count>
      <attachid>121707</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-09 13:16:14 -0800</bug_when>
    <thetext>Comment on attachment 121707
Patch

Attachment 121707 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/11184652

New failing tests:
storage/indexeddb/structured-clone.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>534929</commentid>
    <comment_count>12</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-01-12 10:02:08 -0800</bug_when>
    <thetext>No idea why this is failing - it passes when submitted to linux_layout try bot. May have to bisect the test. :P</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>539085</commentid>
    <comment_count>13</comment_count>
      <attachid>123210</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-01-19 15:31:43 -0800</bug_when>
    <thetext>Created attachment 123210
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>539087</commentid>
    <comment_count>14</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-01-19 15:33:25 -0800</bug_when>
    <thetext>Marked test as failing (TEXT) in expectations. This should let it pass cr-linux (Chromium EWS). Per offline discussion, we can then land this harmlessly and determine what the text difference actually is since it doesn&apos;t repro locally or via the try bots.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>539101</commentid>
    <comment_count>15</comment_count>
      <attachid>123210</attachid>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-01-19 15:42:26 -0800</bug_when>
    <thetext>Comment on attachment 123210
Patch

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

LGTM

I didn&apos;t go through this finely.

&gt; LayoutTests/storage/indexeddb/structured-clone.html:16
&gt; +if (window.eventSender) {

What&apos;s this?  When is it available and not available?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>539107</commentid>
    <comment_count>16</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-01-19 15:49:04 -0800</bug_when>
    <thetext>(In reply to comment #15)
&gt; &gt; LayoutTests/storage/indexeddb/structured-clone.html:16
&gt; &gt; +if (window.eventSender) {
&gt; 
&gt; What&apos;s this?  When is it available and not available?

It&apos;s used in other layout tests to synthesize drag &amp; drop events (which is what I&apos;m using it for here, to produce the data for File and FileList tests). I admit I just copied&amp;pasted from other tests - it looks like it&apos;s provided by DumpRenderTree in Tools/DumpRenderTree/$PORT/EventSender.cpp</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>539664</commentid>
    <comment_count>17</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-01-20 11:50:02 -0800</bug_when>
    <thetext>http://crbug.com/108012 reports a crash when storing File objects in the Chromium port. Possible that this is what we&apos;re seeing here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>539957</commentid>
    <comment_count>18</comment_count>
      <attachid>123210</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-01-20 17:37:21 -0800</bug_when>
    <thetext>Comment on attachment 123210
Patch

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

&gt; LayoutTests/platform/chromium/test_expectations.txt:3921
&gt; +BUGWK74897 : storage/indexeddb/structured-clone.html = TEXT

You may want to file a new bug to track this since landing this patch will close 74897.

&gt;&gt; LayoutTests/storage/indexeddb/structured-clone.html:16
&gt;&gt; +if (window.eventSender) {
&gt; 
&gt; What&apos;s this?  When is it available and not available?

It&apos;s like window.layoutTestController.  Checking it for existence is nice when loading in a regular browser rather than DumpRenderTree.

&gt; LayoutTests/storage/indexeddb/structured-clone.html:23
&gt; +    eventSender.beginDragWithFiles([&apos;resources/test-data.html&apos;, &apos;resources/test-data.txt&apos;]);
&gt; +    eventSender.mouseMoveTo(targetX, targetY);
&gt; +    eventSender.mouseUp();

Nit: Can you add some text (maybe to the description) that says that this test requires DumpRenderTree?  Alternately you could write instructions on how to run the test from a browser.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>543694</commentid>
    <comment_count>19</comment_count>
      <attachid>124227</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-01-26 17:42:34 -0800</bug_when>
    <thetext>Created attachment 124227
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>543728</commentid>
    <comment_count>20</comment_count>
      <attachid>124227</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-26 18:49:27 -0800</bug_when>
    <thetext>Comment on attachment 124227
Patch

Attachment 124227 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/11350571

New failing tests:
storage/indexeddb/structured-clone.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>544112</commentid>
    <comment_count>21</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-01-27 08:57:02 -0800</bug_when>
    <thetext>Yay, looks like it was other tests that failed cr-linux (Chromium EWS), not this one. I&apos;ll re-up the patch; not going to land until I get a green.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>544250</commentid>
    <comment_count>22</comment_count>
      <attachid>124348</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-01-27 12:19:37 -0800</bug_when>
    <thetext>Created attachment 124348
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>544251</commentid>
    <comment_count>23</comment_count>
      <attachid>124348</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-01-27 12:20:16 -0800</bug_when>
    <thetext>Comment on attachment 124348
Patch

No changes, just running through cq prechecks again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>544287</commentid>
    <comment_count>24</comment_count>
      <attachid>124348</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-27 12:56:02 -0800</bug_when>
    <thetext>Comment on attachment 124348
Patch

Attachment 124348 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/11350838

New failing tests:
storage/indexeddb/structured-clone.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>544315</commentid>
    <comment_count>25</comment_count>
      <attachid>124359</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-01-27 13:20:55 -0800</bug_when>
    <thetext>Created attachment 124359
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>544534</commentid>
    <comment_count>26</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-01-27 17:29:03 -0800</bug_when>
    <thetext>Okay, tony@ - for real this time?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>545219</commentid>
    <comment_count>27</comment_count>
      <attachid>124359</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-30 11:03:27 -0800</bug_when>
    <thetext>Comment on attachment 124359
Patch

Rejecting attachment 124359 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 2

Last 500 characters of output:
unk FAILED -- saving rejects to file LayoutTests/platform/chromium/test_expectations.txt.rej
patching file LayoutTests/storage/indexeddb/resources/test-data.html
patching file LayoutTests/storage/indexeddb/resources/test-data.txt
patching file LayoutTests/storage/indexeddb/structured-clone-expected.txt
patching file LayoutTests/storage/indexeddb/structured-clone.html

Failed to run &quot;[u&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/svn-apply&apos;, u&apos;--force&apos;, u&apos;--reviewer&apos;, u&apos;Tony Chang&apos;]&quot; exit_code: 1

Full output: http://queues.webkit.org/results/11371235</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>545248</commentid>
    <comment_count>28</comment_count>
      <attachid>124574</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-01-30 11:48:06 -0800</bug_when>
    <thetext>Created attachment 124574
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>545254</commentid>
    <comment_count>29</comment_count>
      <attachid>124574</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-30 11:53:43 -0800</bug_when>
    <thetext>Comment on attachment 124574
Patch for landing

Rejecting attachment 124574 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 2

Last 500 characters of output:
1 FAILED at 4038.
1 out of 1 hunk FAILED -- saving rejects to file LayoutTests/platform/chromium/test_expectations.txt.rej
patching file LayoutTests/storage/indexeddb/resources/test-data.html
patching file LayoutTests/storage/indexeddb/resources/test-data.txt
patching file LayoutTests/storage/indexeddb/structured-clone-expected.txt
patching file LayoutTests/storage/indexeddb/structured-clone.html

Failed to run &quot;[u&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/svn-apply&apos;, u&apos;--force&apos;]&quot; exit_code: 1

Full output: http://queues.webkit.org/results/11368619</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>545278</commentid>
    <comment_count>30</comment_count>
      <attachid>124579</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-01-30 12:09:25 -0800</bug_when>
    <thetext>Created attachment 124579
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>545338</commentid>
    <comment_count>31</comment_count>
      <attachid>124579</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-30 13:07:42 -0800</bug_when>
    <thetext>Comment on attachment 124579
Patch for landing

Clearing flags on attachment: 124579

Committed r106279: &lt;http://trac.webkit.org/changeset/106279&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>545339</commentid>
    <comment_count>32</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-30 13:07:49 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>119940</attachid>
            <date>2011-12-19 16:15:26 -0800</date>
            <delta_ts>2011-12-19 17:20:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-74897-20111219161524.patch</filename>
            <type>text/plain</type>
            <size>13030</size>
            <attacher name="Joshua Bell">jsbell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAyOTg4CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNmZiYWZkZTZjMGIzZDhiNDY3ZWZj
Yjg5YjkxMzdiYTY4OTU4Njc0Mi4uYzY1ZmZlODdmN2EyNTA2N2VjMWM0MmE2YTFhNGE0NGUyOTFj
MmI2NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDExLTEyLTE5ICBKb3NodWEgQmVsbCAgPGpz
YmVsbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhlZERCOiBBZGQgdGVzdHMgZm9yIHN0
cnVjdHVyZWQgY2xvbmUgZGF0YQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NzQ4OTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3N0cnVjdHVyZWQtY2xvbmUuaHRtbDogQWRk
ZWQuCisKIDIwMTEtMTItMTUgIEtlbm5ldGggUnVzc2VsbCAgPGtickBnb29nbGUuY29tPgogCiAg
ICAgICAgIFVucmV2aWV3ZWQgQ2hyb21pdW0gdGVzdCBleHBlY3RhdGlvbnMgdXBkYXRlOyBwdWxs
IHVwIHNvbWUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3N0cnVj
dHVyZWQtY2xvbmUuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3N0cnVjdHVy
ZWQtY2xvbmUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNjIyMTQzOWNlNTBlYWYyN2Q0ZDZhYTQ5ZDkwYWVi
MWNjNzg4YjViCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvc3RydWN0dXJlZC1jbG9uZS5odG1sCkBAIC0wLDAgKzEsNDE0IEBACis8aHRtbD4KKzxoZWFk
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hhcmVkLmpzIj48L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xl
Ij48L2Rpdj4KKzxzY3JpcHQ+CisKK2Rlc2NyaXB0aW9uKCJUZXN0IHN0cnVjdHVyZWQgY2xvbmUg
cGVybXV0YXRpb25zIGluIEluZGV4ZWREQi4iKTsKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworCitmdW5j
dGlvbiB0ZXN0KCkKK3sKKyAgICBldmFsQW5kTG9nKCJpbmRleGVkREIgPSB3aW5kb3cuaW5kZXhl
ZERCIHx8IHdpbmRvdy53ZWJraXRJbmRleGVkREIiKTsKKyAgICBzaG91bGRCZVRydWUoImluZGV4
ZWREQiAhPSBudWxsIik7CisgICAgZXZhbEFuZExvZygiSURCVHJhbnNhY3Rpb24gPSB3aW5kb3cu
SURCVHJhbnNhY3Rpb24gfHwgd2luZG93LndlYmtpdElEQlRyYW5zYWN0aW9uIik7CisgICAgc2hv
dWxkQmVUcnVlKCJJREJUcmFuc2FjdGlvbiAhPSBudWxsIik7CisgICAgcHJlcGFyZURhdGFiYXNl
KCk7Cit9CisKK2Z1bmN0aW9uIHByZXBhcmVEYXRhYmFzZSgpCit7CisgICAgZGVidWcoIiIpOwor
ICAgIGRlYnVnKCJQcmVwYXJlIERhdGFiYXNlIik7CisgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2co
ImluZGV4ZWREQi5kZWxldGVEYXRhYmFzZSgnc3RydWN0dXJlZC1jbG9uZScpIik7CisgICAgcmVx
dWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CisgICAgcmVxdWVzdC5vbnN1
Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRl
eGVkREIub3Blbignc3RydWN0dXJlZC1jbG9uZScpIik7CisgICAgICAgIHJlcXVlc3Qub25lcnJv
ciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworICAgICAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9
IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGV2YWxBbmRMb2coImRiID0gcmVxdWVzdC5yZXN1
bHQiKTsKKyAgICAgICAgICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJkYi5zZXRWZXJzaW9uKCcx
JykiKTsKKyAgICAgICAgICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxi
YWNrOworICAgICAgICAgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAg
ICAgICAgICAgICAgZXZhbEFuZExvZygiZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScp
Iik7CisgICAgICAgICAgICAgICAgdmFyIHRyYW5zID0gcmVxdWVzdC5yZXN1bHQ7CisgICAgICAg
ICAgICAgICAgdHJhbnMub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworICAgICAg
ICAgICAgICAgIHRyYW5zLm9uYWJvcnQgPSB1bmV4cGVjdGVkQWJvcnRDYWxsYmFjazsKKyAgICAg
ICAgICAgICAgICB0cmFucy5vbmNvbXBsZXRlID0gc3RhcnRUZXN0czsKKyAgICAgICAgICAgIH07
CisgICAgICAgIH07CisgICAgfTsKK30KKworZnVuY3Rpb24gc3RhcnRUZXN0cygpCit7CisgICAg
dmFyIHRlc3RzX3RvX3J1biA9IFsKKyAgICAgICAgdGVzdFVuZGVmaW5lZCwKKyAgICAgICAgdGVz
dE51bGwsCisgICAgICAgIHRlc3RCb29sZWFuLAorICAgICAgICB0ZXN0TnVtYmVyLAorICAgICAg
ICB0ZXN0U3RyaW5nLAorICAgICAgICB0ZXN0Qm9vbGVhbk9iamVjdCwKKyAgICAgICAgdGVzdE51
bWJlck9iamVjdCwKKyAgICAgICAgdGVzdFN0cmluZ09iamVjdCwKKyAgICAgICAgdGVzdERhdGVP
YmplY3QsCisgICAgICAgIHRlc3RSZWdFeHBPYmplY3QsCisgICAgICAgIHRlc3RJbWFnZURhdGEs
CisgICAgICAgIHRlc3RCbG9iLAorICAgICAgICB0ZXN0QXJyYXksCisgICAgICAgIHRlc3RPYmpl
Y3QKKyAgICBdOworCisgICAgZnVuY3Rpb24gbmV4dFRlc3QoKSB7CisgICAgICAgIGRlYnVnKCIi
KTsKKyAgICAgICAgaWYgKHRlc3RzX3RvX3J1bi5sZW5ndGgpIHsKKyAgICAgICAgICAgIHZhciB0
ZXN0ID0gdGVzdHNfdG9fcnVuLnNoaWZ0KCk7CisgICAgICAgICAgICB0ZXN0KG5leHRUZXN0KTsg
Ly8gV2hlbiBkb25lLCBjYWxsIHRoaXMgYWdhaW4uCisgICAgICAgIH0gZWxzZSB7CisgICAgICAg
ICAgICBkb25lKCk7CisgICAgICAgIH0KKyAgICB9CisgICAgbmV4dFRlc3QoKTsKK30KKworZnVu
Y3Rpb24gZm9yRWFjaFdpdGhDYWxsYmFjayh0ZXN0RnVuY3Rpb24sIHZhbHVlcywgY2FsbGJhY2sp
Cit7CisgICAgZnVuY3Rpb24gbmV4dFZhbHVlKCkgeworICAgICAgICBpZiAodmFsdWVzLmxlbmd0
aCkgeworICAgICAgICAgICAgdGVzdEZ1bmN0aW9uKHZhbHVlcy5zaGlmdCgpLCBuZXh0VmFsdWUp
OworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgY2FsbGJhY2soKTsKKyAgICAgICAgfQor
ICAgIH0KKworICAgIG5leHRWYWx1ZSgpOworfQorCitmdW5jdGlvbiB0ZXN0VmFsdWUodmFsdWUs
IGNhbGxiYWNrKQoreworICAgIC8vIE9uZSB0cmFuc2FjdGlvbiBwZXIgdGVzdCwgc2luY2Ugc29t
ZSB0ZXN0cyByZXF1aXJlIGFzeW5jaHJvbm91cworICAgIC8vIG9wZXJhdGlvbnMgdG8gdmVyaWZ5
IHRoZSByZXN1bHQgKGUuZy4gdmlhIEZpbGVSZWFkZXIpCisgICAgZXZhbEFuZExvZygidHJhbnNh
Y3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1lJywgSURCVHJhbnNhY3Rpb24uUkVBRF9X
UklURSkiKTsKKyAgICB0cmFuc2FjdGlvbi5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJh
Y2s7CisgICAgdHJhbnNhY3Rpb24ub25hYm9ydCA9IHVuZXhwZWN0ZWRBYm9ydENhbGxiYWNrOwor
ICAgIGV2YWxBbmRMb2coInN0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3JlTmFt
ZScpIik7CisgICAgc2hvdWxkQmVUcnVlKCJzdG9yZSAhPSBudWxsIik7CisKKyAgICAvL2RlYnVn
KCJ2YWx1ZSBpczogIiArIFN0cmluZyh2YWx1ZSkgKyAiICh0eXBlOiAiICsgdHlwZW9mIHZhbHVl
ICsgIikiKTsKKyAgICB3aW5kb3cudmFsdWUgPSB2YWx1ZTsKKyAgICByZXF1ZXN0ID0gZXZhbEFu
ZExvZygic3RvcmUucHV0KHZhbHVlLCAna2V5JykiKTsKKyAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1
bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKKyAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9u
KGUpIHsKKyAgICAgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coInN0b3JlLmdldCgna2V5JykiKTsK
KyAgICAgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CisgICAg
ICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgLy9kZWJ1
ZygiZ290IGJhY2s6ICIgKyBTdHJpbmcocmVxdWVzdC5yZXN1bHQpICsgIiAodHlwZTogIiArIHR5
cGVvZiByZXF1ZXN0LnJlc3VsdCArICIpIik7CisgICAgICAgICAgICBjYWxsYmFjayhyZXF1ZXN0
LnJlc3VsdCk7CisgICAgICAgIH07CisgICAgfTsKK30KKworLy8gSWRlbnRpdHkgdGVzdGluZywg
c2Vuc2l0aXZlIHRvIE5hTiBhbmQgLTAKK2Z1bmN0aW9uIGlzKHgsIHkpIHsKKyAgICBpZiAoeCA9
PT0geSkgeworICAgICAgICByZXR1cm4geCAhPT0gMCB8fCAxIC8geCA9PT0gMSAvIHk7CisgICAg
fQorICAgIHJldHVybiB4ICE9PSB4ICYmIHkgIT09IHk7Cit9CisKK2Z1bmN0aW9uIGFycmF5Q29t
cGFyZShhLCBiKSB7CisgICAgaWYgKGEubGVuZ3RoICE9PSBiLmxlbmd0aCkgeworICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgfQorICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYS5sZW5ndGg7ICsr
aSkgeworICAgICAgICBpZiAoIWlzKGFbaV0sIGJbaV0pKSB7CisgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Z1bmN0aW9u
IHRlc3RQcmltaXRpdmVWYWx1ZShzdHJpbmcsIGNhbGxiYWNrKQoreworICAgIGRlYnVnKCJUZXN0
aW5nOiAiICsgc3RyaW5nKTsKKyAgICB2YXIgdmFsdWUgPSBldmFsKCJ2YWx1ZSA9ICgiICsgc3Ry
aW5nICsgIikiKTsKKyAgICB0ZXN0X2RhdGEgPSB2YWx1ZTsKKyAgICB0ZXN0VmFsdWUodGVzdF9k
YXRhLCBmdW5jdGlvbihyZXN1bHQpIHsKKyAgICAgICAgd2luZG93LnJlc3VsdCA9IHJlc3VsdDsK
KyAgICAgICAgc2hvdWxkQmVUcnVlKCJpcyh0ZXN0X2RhdGEsIHJlc3VsdCkiKTsKKyAgICAgICAg
Y2FsbGJhY2soKTsKKyAgICB9KTsKK30KKworZnVuY3Rpb24gZ2V0Q2xhc3MobykgeworICAgIGlm
IChvID09PSAodm9pZCAwKSkgeworICAgICAgICByZXR1cm4gInVuZGVmaW5lZCI7CisgICAgfSBl
bHNlIGlmIChvID09PSBudWxsKSB7CisgICAgICAgIHJldHVybiAibnVsbCI7CisgICAgfSBlbHNl
IHsKKyAgICAgICAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChvKS5tYXRj
aCgvXlxbb2JqZWN0ICguKilcXSQvKVsxXTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIHRlc3RPYmpl
Y3RXaXRoVmFsdWUoc3RyaW5nLCBjYWxsYmFjaykKK3sKKyAgICBkZWJ1ZygiVGVzdGluZzogIiAr
IHN0cmluZyk7CisgICAgdmFyIHZhbHVlID0gZXZhbCgidmFsdWUgPSAoIiArIHN0cmluZyArICIp
Iik7CisgICAgdGVzdF9kYXRhID0gdmFsdWU7CisgICAgdGVzdFZhbHVlKHRlc3RfZGF0YSwgZnVu
Y3Rpb24ocmVzdWx0KSB7CisgICAgICAgIHdpbmRvdy5yZXN1bHQgPSByZXN1bHQ7CisgICAgICAg
IGRlYnVnKCJjbGFzcyBvZiByZXN1bHQ6ICIgKyBnZXRDbGFzcyhyZXN1bHQpKTsKKyAgICAgICAg
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ0eXBlb2YgcmVzdWx0IiwgIm9iamVjdCIpOworICAgICAg
ICBzaG91bGRCZSgidGVzdF9kYXRhLnRvU3RyaW5nKCkiLCAicmVzdWx0LnRvU3RyaW5nKCkiKTsK
KyAgICAgICAgc2hvdWxkQmUoIk9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0ZXN0X2Rh
dGEpIiwgIk9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChyZXN1bHQpIik7CisgICAgICAg
IHNob3VsZEJlVHJ1ZSgiaXModGVzdF9kYXRhLnZhbHVlT2YoKSwgcmVzdWx0LnZhbHVlT2YoKSki
KTsKKyAgICAgICAgY2FsbGJhY2soKTsKKyAgICB9KTsKK30KKworZnVuY3Rpb24gdGVzdFVuZGVm
aW5lZChjYWxsYmFjaykKK3sKKyAgICB0ZXN0UHJpbWl0aXZlVmFsdWUoInVuZGVmaW5lZCIsIGNh
bGxiYWNrKTsKK30KKworZnVuY3Rpb24gdGVzdE51bGwoY2FsbGJhY2spCit7CisgICAgdGVzdFBy
aW1pdGl2ZVZhbHVlKCJudWxsIiwgY2FsbGJhY2spOworfQorCitmdW5jdGlvbiB0ZXN0Qm9vbGVh
bihjYWxsYmFjaykKK3sKKyAgICBkZWJ1ZygidGVzdGluZyBib29sZWFuIHByaW1pdGl2ZXMiKTsK
KyAgICBkZWJ1ZygiIik7CisgICAgZm9yRWFjaFdpdGhDYWxsYmFjayh0ZXN0UHJpbWl0aXZlVmFs
dWUsIFsidHJ1ZSIsICJmYWxzZSJdLCBjYWxsYmFjayk7Cit9CisKK2Z1bmN0aW9uIHRlc3RCb29s
ZWFuT2JqZWN0KGNhbGxiYWNrKQoreworICAgIGRlYnVnKCJ0ZXN0aW5nIEJvb2xlYW4gb2JqZWN0
cyIpOworICAgIGRlYnVnKCIiKTsKKyAgICBmb3JFYWNoV2l0aENhbGxiYWNrKHRlc3RPYmplY3RX
aXRoVmFsdWUsIFsKKyAgICAgICAgIm5ldyBCb29sZWFuKHRydWUpIiwKKyAgICAgICAgIm5ldyBC
b29sZWFuKGZhbHNlKSIKKyAgICBdLCBjYWxsYmFjayk7Cit9CisKK2Z1bmN0aW9uIHRlc3RTdHJp
bmcoY2FsbGJhY2spCit7CisgICAgZGVidWcoInRlc3Rpbmcgc3RyaW5nIHByaW1pdGl2ZXMiKTsK
KyAgICBkZWJ1ZygiIik7CisgICAgZm9yRWFjaFdpdGhDYWxsYmFjayh0ZXN0UHJpbWl0aXZlVmFs
dWUsIFsKKyAgICAgICAgIicnIiwKKyAgICAgICAgIid0aGlzIGlzIGEgc2FtcGxlIHN0cmluZyci
LAorICAgICAgICAiJ251bGwoXFwwKSciCisgICAgXSwgY2FsbGJhY2spOworfQorCitmdW5jdGlv
biB0ZXN0U3RyaW5nT2JqZWN0KGNhbGxiYWNrKQoreworICAgIGRlYnVnKCJ0ZXN0aW5nIFN0cmlu
ZyBvYmplY3RzIik7CisgICAgZGVidWcoIiIpOworICAgIGZvckVhY2hXaXRoQ2FsbGJhY2sodGVz
dE9iamVjdFdpdGhWYWx1ZSwgWworICAgICAgICAibmV3IFN0cmluZygpIiwKKyAgICAgICAgIm5l
dyBTdHJpbmcoJ3RoaXMgaXMgYSBzYW1wbGUgc3RyaW5nJykiLAorICAgICAgICAibmV3IFN0cmlu
ZygnbnVsbChcXDApJykiCisgICAgXSwgY2FsbGJhY2spOworfQorCitmdW5jdGlvbiB0ZXN0TnVt
YmVyKGNhbGxiYWNrKQoreworICAgIGRlYnVnKCJ0ZXN0aW5nIG51bWJlciBwcmltaXRpdmVzIik7
CisgICAgZGVidWcoIiIpOworICAgIGZvckVhY2hXaXRoQ2FsbGJhY2sodGVzdFByaW1pdGl2ZVZh
bHVlLCBbCisgICAgICAgICJOYU4iLAorICAgICAgICAiLUluZmluaXR5IiwKKyAgICAgICAgIi1O
dW1iZXIuTUFYX1ZBTFVFIiwKKyAgICAgICAgIi1OdW1iZXIuTUlOX1ZBTFVFIiwKKyAgICAgICAg
Ii0wIiwgLy8gRklYTUU6IFRoaXMgY3VycmVudGx5IGZhaWxzLgorICAgICAgICAiMCIsCisgICAg
ICAgICJOdW1iZXIuTUlOX1ZBTFVFIiwKKyAgICAgICAgIk51bWJlci5NQVhfVkFMVUUiLAorICAg
ICAgICAiSW5maW5pdHkiCisgICAgXSwgY2FsbGJhY2spOworfQorCitmdW5jdGlvbiB0ZXN0TnVt
YmVyT2JqZWN0KGNhbGxiYWNrKQoreworICAgIGRlYnVnKCJ0ZXN0aW5nIE51bWJlciBvYmplY3Rz
Iik7CisgICAgZGVidWcoIiIpOworICAgIGZvckVhY2hXaXRoQ2FsbGJhY2sodGVzdE9iamVjdFdp
dGhWYWx1ZSwgWworICAgICAgICAibmV3IE51bWJlcihOYU4pIiwKKyAgICAgICAgIm5ldyBOdW1i
ZXIoLUluZmluaXR5KSIsCisgICAgICAgICJuZXcgTnVtYmVyKC1OdW1iZXIuTUFYX1ZBTFVFKSIs
CisgICAgICAgICJuZXcgTnVtYmVyKC1OdW1iZXIuTUlOX1ZBTFVFKSIsCisgICAgICAgICJuZXcg
TnVtYmVyKC0wKSIsCisgICAgICAgICJuZXcgTnVtYmVyKDApIiwKKyAgICAgICAgIm5ldyBOdW1i
ZXIoTnVtYmVyLk1JTl9WQUxVRSkiLAorICAgICAgICAibmV3IE51bWJlcihOdW1iZXIuTUFYX1ZB
TFVFKSIsCisgICAgICAgICJuZXcgTnVtYmVyKEluZmluaXR5KSIKKyAgICBdLCBjYWxsYmFjayk7
Cit9CisKK2Z1bmN0aW9uIHRlc3REYXRlT2JqZWN0KGNhbGxiYWNrKQoreworICAgIGRlYnVnKCJ0
ZXN0aW5nIERhdGUgb2JqZWN0cyIpOworICAgIGRlYnVnKCIiKTsKKyAgICBmb3JFYWNoV2l0aENh
bGxiYWNrKHRlc3RPYmplY3RXaXRoVmFsdWUsIFsKKyAgICAgICAgIm5ldyBEYXRlKC0xZTEzKSIs
CisgICAgICAgICJuZXcgRGF0ZSgtMWUxMikiLAorICAgICAgICAibmV3IERhdGUoLTFlOSkiLAor
ICAgICAgICAibmV3IERhdGUoLTFlNikiLAorICAgICAgICAibmV3IERhdGUoLTFlMykiLAorICAg
ICAgICAibmV3IERhdGUoMCkiLAorICAgICAgICAibmV3IERhdGUoMWUzKSIsCisgICAgICAgICJu
ZXcgRGF0ZSgxZTYpIiwKKyAgICAgICAgIm5ldyBEYXRlKDFlOSkiLAorICAgICAgICAibmV3IERh
dGUoMWUxMikiLAorICAgICAgICAibmV3IERhdGUoMWUxMykiCisgICAgXSwgY2FsbGJhY2spOwor
fQorCitmdW5jdGlvbiB0ZXN0UmVnRXhwT2JqZWN0KGNhbGxiYWNrKQoreworICAgIGRlYnVnKCJ0
ZXN0aW5nIFJlZ0V4cCBvYmplY3RzIik7CisgICAgZGVidWcoIiIpOworICAgIGZ1bmN0aW9uIHRl
c3RSZWdFeHAodmFsdWUsIGNhbGxiYWNrKSB7CisgICAgICAgIGRlYnVnKCJUZXN0aW5nIFJlZ0V4
cDogIiArIHZhbHVlKTsKKyAgICAgICAgdGVzdF9kYXRhID0gdmFsdWU7CisgICAgICAgIHRlc3RW
YWx1ZSh0ZXN0X2RhdGEsIGZ1bmN0aW9uKHJlc3VsdCkgeworICAgICAgICAgICAgd2luZG93LnJl
c3VsdCA9IHJlc3VsdDsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZ2V0Q2xh
c3MocmVzdWx0KSIsICJSZWdFeHAiKTsKKyAgICAgICAgICAgIHNob3VsZEJlKCJ0ZXN0X2RhdGEu
dG9TdHJpbmcoKSIsICJyZXN1bHQudG9TdHJpbmcoKSIpOworICAgICAgICAgICAgY2FsbGJhY2so
KTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgZm9yRWFjaFdpdGhDYWxsYmFjayh0ZXN0UmVn
RXhwLCBbCisgICAgICAgIG5ldyBSZWdFeHAoKSwKKyAgICAgICAgL2FiYy8sCisgICAgICAgIC9h
YmMvZywKKyAgICAgICAgL2FiYy9pLAorICAgICAgICAvYWJjL2dpLAorICAgICAgICAvYWJjL20s
CisgICAgICAgIC9hYmMvbWcsCisgICAgICAgIC9hYmMvbWksCisgICAgICAgIC9hYmMvbWdpCisg
ICAgXSwgY2FsbGJhY2spOworfQorCisvLyBGSVhNRTogVGhlIGZvbGxvd2luZyBzaG91bGQgcGFz
czoKKy8vICAgRmlsZSBvYmplY3QKKy8vICAgRmlsZUxpc3Qgb2JqZWN0CisKKy8vIEZJWE1FOiBU
aGUgZm9sbG93aW5nIHNob3VsZCBmYWlsIHcvIERBVEFfQ0xPTkVfRVJST1I6CisvLyAgIG90aGVy
IEpTIG9iamVjdHM6IEVycm9yLCBGdW5jdGlvbiwgZXRjLgorLy8gICBob3N0IG9iamVjdHM6IERP
TSBub2RlLCB3aW5kb3csIGV0Yy4KKworZnVuY3Rpb24gdGVzdEltYWdlRGF0YShjYWxsYmFjaykK
K3sKKyAgICBkZWJ1ZygiVGVzdGluZyBJbWFnZURhdGEiKTsKKyAgICBldmFsQW5kTG9nKCJjYW52
YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKSIpOworICAgIGV2YWxBbmRMb2co
ImNhbnZhcy53aWR0aCA9IDgiKTsKKyAgICBldmFsQW5kTG9nKCJjYW52YXMuaGVpZ2h0ID0gOCIp
OworICAgIGV2YWxBbmRMb2coImltYWdlRGF0YSA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpLmdl
dEltYWdlRGF0YSgwLCAwLCA4LCA4KSIpOworICAgIHNob3VsZEJlVHJ1ZSgiaW1hZ2VEYXRhLmRh
dGEubGVuZ3RoID09PSAyNTYiKTsKKworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMjU2OyArK2kp
IHsKKyAgICAgICAgaW1hZ2VEYXRhLmRhdGFbaV0gPSBpOworICAgIH0KKworICAgIHRlc3RWYWx1
ZShpbWFnZURhdGEsIGZ1bmN0aW9uKHJlc3VsdCkgeworICAgICAgICB3aW5kb3cucmVzdWx0ID0g
cmVzdWx0OworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIlN0cmluZyhyZXN1bHQpIiwg
IltvYmplY3QgSW1hZ2VEYXRhXSIpOworICAgICAgICBzaG91bGRCZVRydWUoInJlc3VsdC53aWR0
aCA9PT0gaW1hZ2VEYXRhLndpZHRoIik7CisgICAgICAgIHNob3VsZEJlVHJ1ZSgicmVzdWx0Lmhl
aWdodCA9PT0gaW1hZ2VEYXRhLmhlaWdodCIpOworICAgICAgICBzaG91bGRCZVRydWUoInJlc3Vs
dC5kYXRhLmxlbmd0aCA9PT0gaW1hZ2VEYXRhLmRhdGEubGVuZ3RoIik7CisgICAgICAgIGlmIChh
cnJheUNvbXBhcmUoaW1hZ2VEYXRhLmRhdGEsIHJlc3VsdC5kYXRhKSkgeworICAgICAgICAgICAg
dGVzdFBhc3NlZCgicmVzdWx0IGRhdGEgbWF0Y2hlcyIpOworICAgICAgICB9IGVsc2UgeworICAg
ICAgICAgICAgdGVzdEZhaWxlZCgicmVzdWx0IGRhdGEgZG9lc24ndCBtYXRjaCIpOworICAgICAg
ICB9CisgICAgICAgIGNhbGxiYWNrKCk7CisgICAgfSk7Cit9CisKK2Z1bmN0aW9uIHRlc3RCbG9i
KGNhbGxiYWNrKQoreworICAgIGRlYnVnKCJUZXN0aW5nIEJsb2IiKTsKKyAgICBldmFsQW5kTG9n
KCJCbG9iQnVpbGRlciA9IHdpbmRvdy5CbG9iQnVpbGRlciB8fCB3aW5kb3cuV2ViS2l0QmxvYkJ1
aWxkZXIiKTsKKyAgICBzaG91bGRCZVRydWUoIkJsb2JCdWlsZGVyICE9IG51bGwiKTsKKyAgICBz
aG91bGRCZVRydWUoIkZpbGVSZWFkZXIgIT0gbnVsbCIpOworICAgIGV2YWxBbmRMb2coImJ1aWxk
ZXIgPSBuZXcgQmxvYkJ1aWxkZXIoKSIpOworICAgIGV2YWxBbmRMb2coInRlc3RfY29udGVudCA9
ICdUaGlzIGlzIGEgdGVzdC4gVGhpcyBpcyBvbmx5IGEgdGVzdC4nIik7CisgICAgZXZhbEFuZExv
ZygiYnVpbGRlci5hcHBlbmQodGVzdF9jb250ZW50KSIpOworICAgIGV2YWxBbmRMb2coInRlc3Rf
ZGF0YSA9IGJ1aWxkZXIuZ2V0QmxvYigpIik7CisgICAgdGVzdFZhbHVlKHRlc3RfZGF0YSwgZnVu
Y3Rpb24ocmVzdWx0KSB7CisgICAgICAgIHdpbmRvdy5yZXN1bHQgPSByZXN1bHQ7CisgICAgICAg
IHNob3VsZEJlRXF1YWxUb1N0cmluZygiU3RyaW5nKHJlc3VsdCkiLCAiW29iamVjdCBCbG9iXSIp
OworICAgICAgICBldmFsQW5kTG9nKCJyZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpIik7CisgICAg
ICAgIHJlYWRlci5vbmxvYWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgICAgICBpZiAoZS50YXJn
ZXQucmVhZHlTdGF0ZSA9PT0gRmlsZVJlYWRlci5ET05FKSB7CisgICAgICAgICAgICAgICAgZGVi
dWcoInJlYWRBc1RleHQgcHJvZHVjZWQ6ICIgKyBlLnRhcmdldC5yZXN1bHQpOworICAgICAgICAg
ICAgICAgIHdpbmRvdy50ZXh0ID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICAgICAgICAgIHNo
b3VsZEJlVHJ1ZSgidGV4dCA9PT0gdGVzdF9jb250ZW50Iik7CisgICAgICAgICAgICAgICAgY2Fs
bGJhY2soKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICAgICAgZXZhbEFuZExvZygi
cmVhZGVyLnJlYWRBc1RleHQocmVzdWx0KSIpOworICAgIH0pOworfQorCitmdW5jdGlvbiB0ZXN0
QXJyYXkoY2FsbGJhY2spIHsKKyAgICBkZWJ1ZygiVGVzdGluZyBBcnJheSIpOworICAgIGV2YWxB
bmRMb2coInRlc3RfZGF0YSA9IFtdIik7CisgICAgZXZhbEFuZExvZygidGVzdF9kYXRhWzBdID0g
J2ZvbyciKTsKKyAgICBldmFsQW5kTG9nKCJ0ZXN0X2RhdGFbMV0gPSAnYmFyJyIpOworICAgIGV2
YWxBbmRMb2coInRlc3RfZGF0YVsxMF0gPSB0cnVlIik7CisgICAgZXZhbEFuZExvZygidGVzdF9k
YXRhWzExXSA9IGZhbHNlIik7CisgICAgZXZhbEFuZExvZygidGVzdF9kYXRhWzIwXSA9IDEyMyIp
OworICAgIGV2YWxBbmRMb2coInRlc3RfZGF0YVsyMV0gPSA0NTYiKTsKKyAgICBldmFsQW5kTG9n
KCJ0ZXN0X2RhdGFbMzBdID0gbnVsbCIpOworCisgICAgdGVzdFZhbHVlKHRlc3RfZGF0YSwgZnVu
Y3Rpb24ocmVzdWx0KSB7CisgICAgICAgIHdpbmRvdy5yZXN1bHQgPSByZXN1bHQ7CisgICAgICAg
IHNob3VsZEJlVHJ1ZSgidGVzdF9kYXRhLmxlbmd0aCA9PT0gcmVzdWx0Lmxlbmd0aCIpOworICAg
ICAgICBPYmplY3Qua2V5cyh0ZXN0X2RhdGEpLmZvckVhY2goCisgICAgICAgICAgICBmdW5jdGlv
bihrZXkpIHsKKyAgICAgICAgICAgICAgICBzaG91bGRCZVRydWUoInRlc3RfZGF0YVsiICsga2V5
ICsgIl0gPT09IHJlc3VsdFsiICsga2V5ICsgIl0iKTsKKyAgICAgICAgICAgIH0pOworICAgICAg
ICBjYWxsYmFjaygpOworICAgIH0pOworfQorCitmdW5jdGlvbiB0ZXN0T2JqZWN0KGNhbGxiYWNr
KSB7CisgICAgZGVidWcoIlRlc3RpbmcgT2JqZWN0Iik7CisgICAgZXZhbEFuZExvZygidGVzdF9k
YXRhID0gW10iKTsKKyAgICBldmFsQW5kTG9nKCJ0ZXN0X2RhdGFbMF0gPSAnZm9vJyIpOworICAg
IGV2YWxBbmRMb2coInRlc3RfZGF0YVsxXSA9ICdiYXInIik7CisgICAgZXZhbEFuZExvZygidGVz
dF9kYXRhWydhJ10gPSB0cnVlIik7CisgICAgZXZhbEFuZExvZygidGVzdF9kYXRhWydiJ10gPSBm
YWxzZSIpOworICAgIGV2YWxBbmRMb2coInRlc3RfZGF0YVsnZm9vJ10gPSAxMjMiKTsKKyAgICBl
dmFsQW5kTG9nKCJ0ZXN0X2RhdGFbJ2JhciddID0gNDU2Iik7CisgICAgZXZhbEFuZExvZygidGVz
dF9kYXRhWycnXSA9IG51bGwiKTsKKworICAgIHRlc3RWYWx1ZSh0ZXN0X2RhdGEsIGZ1bmN0aW9u
KHJlc3VsdCkgeworICAgICAgICB3aW5kb3cucmVzdWx0ID0gcmVzdWx0OworICAgICAgICBzaG91
bGRCZSgiSlNPTi5zdHJpbmdpZnkoT2JqZWN0LmtleXModGVzdF9kYXRhKS5zb3J0KCkpIiwgIkpT
T04uc3RyaW5naWZ5KE9iamVjdC5rZXlzKHJlc3VsdCkuc29ydCgpKSIpOworICAgICAgICBPYmpl
Y3Qua2V5cyh0ZXN0X2RhdGEpLmZvckVhY2goCisgICAgICAgICAgICBmdW5jdGlvbihrZXkpIHsK
KyAgICAgICAgICAgICAgICBzaG91bGRCZVRydWUoInRlc3RfZGF0YVsiICsgSlNPTi5zdHJpbmdp
Znkoa2V5KSArICJdID09PSByZXN1bHRbIiArIEpTT04uc3RyaW5naWZ5KGtleSkgKyAiXSIpOwor
ICAgICAgICAgICAgfSk7CisgICAgICAgIGNhbGxiYWNrKCk7CisgICAgfSk7Cit9CisKK3Rlc3Qo
KTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>119957</attachid>
            <date>2011-12-19 17:20:47 -0800</date>
            <delta_ts>2012-01-06 17:27:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-74897-20111219172046.patch</filename>
            <type>text/plain</type>
            <size>15187</size>
            <attacher name="Joshua Bell">jsbell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAyOTg4CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNmZiYWZkZTZjMGIzZDhiNDY3ZWZj
Yjg5YjkxMzdiYTY4OTU4Njc0Mi4uYzY1ZmZlODdmN2EyNTA2N2VjMWM0MmE2YTFhNGE0NGUyOTFj
MmI2NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDExLTEyLTE5ICBKb3NodWEgQmVsbCAgPGpz
YmVsbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhlZERCOiBBZGQgdGVzdHMgZm9yIHN0
cnVjdHVyZWQgY2xvbmUgZGF0YQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NzQ4OTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3N0cnVjdHVyZWQtY2xvbmUuaHRtbDogQWRk
ZWQuCisKIDIwMTEtMTItMTUgIEtlbm5ldGggUnVzc2VsbCAgPGtickBnb29nbGUuY29tPgogCiAg
ICAgICAgIFVucmV2aWV3ZWQgQ2hyb21pdW0gdGVzdCBleHBlY3RhdGlvbnMgdXBkYXRlOyBwdWxs
IHVwIHNvbWUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3N0cnVj
dHVyZWQtY2xvbmUuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3N0cnVjdHVy
ZWQtY2xvbmUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NWFiMjgyNzFhZjE3ZTNkZmRjM2YwMzgxMDI3ZDk4
YjI4M2QwZTI3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvc3RydWN0dXJlZC1jbG9uZS5odG1sCkBAIC0wLDAgKzEsNDY3IEBACis8aHRtbD4KKzxoZWFk
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hhcmVkLmpzIj48L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xl
Ij48L2Rpdj4KKzxzY3JpcHQ+CisKK2Rlc2NyaXB0aW9uKCJUZXN0IHN0cnVjdHVyZWQgY2xvbmUg
cGVybXV0YXRpb25zIGluIEluZGV4ZWREQi4iKTsKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworCitmdW5j
dGlvbiB0ZXN0KCkKK3sKKyAgICBldmFsQW5kTG9nKCJpbmRleGVkREIgPSB3aW5kb3cuaW5kZXhl
ZERCIHx8IHdpbmRvdy53ZWJraXRJbmRleGVkREIiKTsKKyAgICBzaG91bGRCZVRydWUoImluZGV4
ZWREQiAhPSBudWxsIik7CisgICAgZXZhbEFuZExvZygiSURCVHJhbnNhY3Rpb24gPSB3aW5kb3cu
SURCVHJhbnNhY3Rpb24gfHwgd2luZG93LndlYmtpdElEQlRyYW5zYWN0aW9uIik7CisgICAgc2hv
dWxkQmVUcnVlKCJJREJUcmFuc2FjdGlvbiAhPSBudWxsIik7CisgICAgcHJlcGFyZURhdGFiYXNl
KCk7Cit9CisKK2Z1bmN0aW9uIHByZXBhcmVEYXRhYmFzZSgpCit7CisgICAgZGVidWcoIiIpOwor
ICAgIGRlYnVnKCJQcmVwYXJlIERhdGFiYXNlIik7CisgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2co
ImluZGV4ZWREQi5kZWxldGVEYXRhYmFzZSgnc3RydWN0dXJlZC1jbG9uZScpIik7CisgICAgcmVx
dWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CisgICAgcmVxdWVzdC5vbnN1
Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRl
eGVkREIub3Blbignc3RydWN0dXJlZC1jbG9uZScpIik7CisgICAgICAgIHJlcXVlc3Qub25lcnJv
ciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworICAgICAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9
IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGV2YWxBbmRMb2coImRiID0gcmVxdWVzdC5yZXN1
bHQiKTsKKyAgICAgICAgICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJkYi5zZXRWZXJzaW9uKCcx
JykiKTsKKyAgICAgICAgICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxi
YWNrOworICAgICAgICAgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAg
ICAgICAgICAgICAgZXZhbEFuZExvZygiZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScp
Iik7CisgICAgICAgICAgICAgICAgdmFyIHRyYW5zID0gcmVxdWVzdC5yZXN1bHQ7CisgICAgICAg
ICAgICAgICAgdHJhbnMub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworICAgICAg
ICAgICAgICAgIHRyYW5zLm9uYWJvcnQgPSB1bmV4cGVjdGVkQWJvcnRDYWxsYmFjazsKKyAgICAg
ICAgICAgICAgICB0cmFucy5vbmNvbXBsZXRlID0gc3RhcnRUZXN0czsKKyAgICAgICAgICAgIH07
CisgICAgICAgIH07CisgICAgfTsKK30KKworZnVuY3Rpb24gc3RhcnRUZXN0cygpCit7CisgICAg
dmFyIHRlc3RzX3RvX3J1biA9IFsKKyAgICAgICAgdGVzdFVuZGVmaW5lZCwKKyAgICAgICAgdGVz
dE51bGwsCisgICAgICAgIHRlc3RCb29sZWFuLAorICAgICAgICB0ZXN0TnVtYmVyLAorICAgICAg
ICB0ZXN0U3RyaW5nLAorICAgICAgICB0ZXN0Qm9vbGVhbk9iamVjdCwKKyAgICAgICAgdGVzdE51
bWJlck9iamVjdCwKKyAgICAgICAgdGVzdFN0cmluZ09iamVjdCwKKyAgICAgICAgdGVzdERhdGVP
YmplY3QsCisgICAgICAgIHRlc3RSZWdFeHBPYmplY3QsCisgICAgICAgIHRlc3RJbWFnZURhdGEs
CisgICAgICAgIHRlc3RCbG9iLAorICAgICAgICB0ZXN0RmlsZSwKKyAgICAgICAgdGVzdEFycmF5
LAorICAgICAgICB0ZXN0T2JqZWN0CisgICAgXTsKKworICAgIGZ1bmN0aW9uIG5leHRUZXN0KCkg
eworICAgICAgICBkZWJ1ZygiIik7CisgICAgICAgIGlmICh0ZXN0c190b19ydW4ubGVuZ3RoKSB7
CisgICAgICAgICAgICB2YXIgdGVzdCA9IHRlc3RzX3RvX3J1bi5zaGlmdCgpOworICAgICAgICAg
ICAgdGVzdChuZXh0VGVzdCk7IC8vIFdoZW4gZG9uZSwgY2FsbCB0aGlzIGFnYWluLgorICAgICAg
ICB9IGVsc2UgeworICAgICAgICAgICAgZG9uZSgpOworICAgICAgICB9CisgICAgfQorICAgIG5l
eHRUZXN0KCk7Cit9CisKK2Z1bmN0aW9uIGZvckVhY2hXaXRoQ2FsbGJhY2sodGVzdEZ1bmN0aW9u
LCB2YWx1ZXMsIGNhbGxiYWNrKQoreworICAgIGZ1bmN0aW9uIG5leHRWYWx1ZSgpIHsKKyAgICAg
ICAgaWYgKHZhbHVlcy5sZW5ndGgpIHsKKyAgICAgICAgICAgIHRlc3RGdW5jdGlvbih2YWx1ZXMu
c2hpZnQoKSwgbmV4dFZhbHVlKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGNhbGxi
YWNrKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBuZXh0VmFsdWUoKTsKK30KKworZnVuY3Rp
b24gdGVzdFZhbHVlKHZhbHVlLCBjYWxsYmFjaykKK3sKKyAgICAvLyBPbmUgdHJhbnNhY3Rpb24g
cGVyIHRlc3QsIHNpbmNlIHNvbWUgdGVzdHMgcmVxdWlyZSBhc3luY2hyb25vdXMKKyAgICAvLyBv
cGVyYXRpb25zIHRvIHZlcmlmeSB0aGUgcmVzdWx0IChlLmcuIHZpYSBGaWxlUmVhZGVyKQorICAg
IGV2YWxBbmRMb2coInRyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24oJ3N0b3JlTmFtZScsIElE
QlRyYW5zYWN0aW9uLlJFQURfV1JJVEUpIik7CisgICAgdHJhbnNhY3Rpb24ub25lcnJvciA9IHVu
ZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworICAgIHRyYW5zYWN0aW9uLm9uYWJvcnQgPSB1bmV4cGVj
dGVkQWJvcnRDYWxsYmFjazsKKyAgICBldmFsQW5kTG9nKCJzdG9yZSA9IHRyYW5zYWN0aW9uLm9i
amVjdFN0b3JlKCdzdG9yZU5hbWUnKSIpOworICAgIHNob3VsZEJlVHJ1ZSgic3RvcmUgIT0gbnVs
bCIpOworCisgICAgLy9kZWJ1ZygidmFsdWUgaXM6ICIgKyBTdHJpbmcodmFsdWUpICsgIiAodHlw
ZTogIiArIHR5cGVvZiB2YWx1ZSArICIpIik7CisgICAgd2luZG93LnZhbHVlID0gdmFsdWU7Cisg
ICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coInN0b3JlLnB1dCh2YWx1ZSwgJ2tleScpIik7CisgICAg
cmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CisgICAgcmVxdWVzdC5v
bnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJz
dG9yZS5nZXQoJ2tleScpIik7CisgICAgICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRF
cnJvckNhbGxiYWNrOworICAgICAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsK
KyAgICAgICAgICAgIC8vZGVidWcoImdvdCBiYWNrOiAiICsgU3RyaW5nKHJlcXVlc3QucmVzdWx0
KSArICIgKHR5cGU6ICIgKyB0eXBlb2YgcmVxdWVzdC5yZXN1bHQgKyAiKSIpOworICAgICAgICAg
ICAgY2FsbGJhY2socmVxdWVzdC5yZXN1bHQpOworICAgICAgICB9OworICAgIH07Cit9CisKKy8v
IElkZW50aXR5IHRlc3RpbmcsIHNlbnNpdGl2ZSB0byBOYU4gYW5kIC0wCitmdW5jdGlvbiBpcyh4
LCB5KSB7CisgICAgaWYgKHggPT09IHkpIHsKKyAgICAgICAgcmV0dXJuIHggIT09IDAgfHwgMSAv
IHggPT09IDEgLyB5OworICAgIH0KKyAgICByZXR1cm4geCAhPT0geCAmJiB5ICE9PSB5OworfQor
CitmdW5jdGlvbiBhcnJheUNvbXBhcmUoYSwgYikgeworICAgIGlmIChhLmxlbmd0aCAhPT0gYi5s
ZW5ndGgpIHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICBmb3IgKHZhciBpID0g
MDsgaSA8IGEubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgaWYgKCFpcyhhW2ldLCBiW2ldKSkgewor
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiB0
cnVlOworfQorCitmdW5jdGlvbiB0ZXN0UHJpbWl0aXZlVmFsdWUoc3RyaW5nLCBjYWxsYmFjaykK
K3sKKyAgICBkZWJ1ZygiVGVzdGluZzogIiArIHN0cmluZyk7CisgICAgdmFyIHZhbHVlID0gZXZh
bCgidmFsdWUgPSAoIiArIHN0cmluZyArICIpIik7CisgICAgdGVzdF9kYXRhID0gdmFsdWU7Cisg
ICAgdGVzdFZhbHVlKHRlc3RfZGF0YSwgZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgICAgIHdpbmRv
dy5yZXN1bHQgPSByZXN1bHQ7CisgICAgICAgIHNob3VsZEJlVHJ1ZSgiaXModGVzdF9kYXRhLCBy
ZXN1bHQpIik7CisgICAgICAgIGNhbGxiYWNrKCk7CisgICAgfSk7Cit9CisKK2Z1bmN0aW9uIGdl
dENsYXNzKG8pIHsKKyAgICBpZiAobyA9PT0gKHZvaWQgMCkpIHsKKyAgICAgICAgcmV0dXJuICJ1
bmRlZmluZWQiOworICAgIH0gZWxzZSBpZiAobyA9PT0gbnVsbCkgeworICAgICAgICByZXR1cm4g
Im51bGwiOworICAgIH0gZWxzZSB7CisgICAgICAgIHJldHVybiBPYmplY3QucHJvdG90eXBlLnRv
U3RyaW5nLmNhbGwobykubWF0Y2goL15cW29iamVjdCAoLiopXF0kLylbMV07CisgICAgfQorfQor
CitmdW5jdGlvbiB0ZXN0T2JqZWN0V2l0aFZhbHVlKHN0cmluZywgY2FsbGJhY2spCit7CisgICAg
ZGVidWcoIlRlc3Rpbmc6ICIgKyBzdHJpbmcpOworICAgIHZhciB2YWx1ZSA9IGV2YWwoInZhbHVl
ID0gKCIgKyBzdHJpbmcgKyAiKSIpOworICAgIHRlc3RfZGF0YSA9IHZhbHVlOworICAgIHRlc3RW
YWx1ZSh0ZXN0X2RhdGEsIGZ1bmN0aW9uKHJlc3VsdCkgeworICAgICAgICB3aW5kb3cucmVzdWx0
ID0gcmVzdWx0OworICAgICAgICBkZWJ1ZygiY2xhc3Mgb2YgcmVzdWx0OiAiICsgZ2V0Q2xhc3Mo
cmVzdWx0KSk7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygidHlwZW9mIHJlc3VsdCIs
ICJvYmplY3QiKTsKKyAgICAgICAgc2hvdWxkQmUoInJlc3VsdC50b1N0cmluZygpIiwgInRlc3Rf
ZGF0YS50b1N0cmluZygpIik7CisgICAgICAgIHNob3VsZEJlVHJ1ZSgidGVzdF9kYXRhICE9PSBy
ZXN1bHQiKTsKKyAgICAgICAgc2hvdWxkQmUoIk9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2Fs
bChyZXN1bHQpIiwgIk9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0ZXN0X2RhdGEpIik7
CisgICAgICAgIHNob3VsZEJlVHJ1ZSgiaXModGVzdF9kYXRhLnZhbHVlT2YoKSwgcmVzdWx0LnZh
bHVlT2YoKSkiKTsKKyAgICAgICAgY2FsbGJhY2soKTsKKyAgICB9KTsKK30KKworZnVuY3Rpb24g
dGVzdFVuZGVmaW5lZChjYWxsYmFjaykKK3sKKyAgICB0ZXN0UHJpbWl0aXZlVmFsdWUoInVuZGVm
aW5lZCIsIGNhbGxiYWNrKTsKK30KKworZnVuY3Rpb24gdGVzdE51bGwoY2FsbGJhY2spCit7Cisg
ICAgdGVzdFByaW1pdGl2ZVZhbHVlKCJudWxsIiwgY2FsbGJhY2spOworfQorCitmdW5jdGlvbiB0
ZXN0Qm9vbGVhbihjYWxsYmFjaykKK3sKKyAgICBkZWJ1ZygiVGVzdGluZyBib29sZWFuIHByaW1p
dGl2ZXMiKTsKKyAgICBkZWJ1ZygiIik7CisgICAgZm9yRWFjaFdpdGhDYWxsYmFjayh0ZXN0UHJp
bWl0aXZlVmFsdWUsIFsidHJ1ZSIsICJmYWxzZSJdLCBjYWxsYmFjayk7Cit9CisKK2Z1bmN0aW9u
IHRlc3RCb29sZWFuT2JqZWN0KGNhbGxiYWNrKQoreworICAgIGRlYnVnKCJUZXN0aW5nIEJvb2xl
YW4gb2JqZWN0cyIpOworICAgIGRlYnVnKCIiKTsKKyAgICBmb3JFYWNoV2l0aENhbGxiYWNrKHRl
c3RPYmplY3RXaXRoVmFsdWUsIFsKKyAgICAgICAgIm5ldyBCb29sZWFuKHRydWUpIiwKKyAgICAg
ICAgIm5ldyBCb29sZWFuKGZhbHNlKSIKKyAgICBdLCBjYWxsYmFjayk7Cit9CisKK2Z1bmN0aW9u
IHRlc3RTdHJpbmcoY2FsbGJhY2spCit7CisgICAgZGVidWcoIlRlc3Rpbmcgc3RyaW5nIHByaW1p
dGl2ZXMiKTsKKyAgICBkZWJ1ZygiIik7CisgICAgZm9yRWFjaFdpdGhDYWxsYmFjayh0ZXN0UHJp
bWl0aXZlVmFsdWUsIFsKKyAgICAgICAgIicnIiwKKyAgICAgICAgIid0aGlzIGlzIGEgc2FtcGxl
IHN0cmluZyciLAorICAgICAgICAiJ251bGwoXFwwKSciCisgICAgXSwgY2FsbGJhY2spOworfQor
CitmdW5jdGlvbiB0ZXN0U3RyaW5nT2JqZWN0KGNhbGxiYWNrKQoreworICAgIGRlYnVnKCJUZXN0
aW5nIFN0cmluZyBvYmplY3RzIik7CisgICAgZGVidWcoIiIpOworICAgIGZvckVhY2hXaXRoQ2Fs
bGJhY2sodGVzdE9iamVjdFdpdGhWYWx1ZSwgWworICAgICAgICAibmV3IFN0cmluZygpIiwKKyAg
ICAgICAgIm5ldyBTdHJpbmcoJ3RoaXMgaXMgYSBzYW1wbGUgc3RyaW5nJykiLAorICAgICAgICAi
bmV3IFN0cmluZygnbnVsbChcXDApJykiCisgICAgXSwgY2FsbGJhY2spOworfQorCitmdW5jdGlv
biB0ZXN0TnVtYmVyKGNhbGxiYWNrKQoreworICAgIGRlYnVnKCJUZXN0aW5nIG51bWJlciBwcmlt
aXRpdmVzIik7CisgICAgZGVidWcoIiIpOworICAgIGZvckVhY2hXaXRoQ2FsbGJhY2sodGVzdFBy
aW1pdGl2ZVZhbHVlLCBbCisgICAgICAgICJOYU4iLAorICAgICAgICAiLUluZmluaXR5IiwKKyAg
ICAgICAgIi1OdW1iZXIuTUFYX1ZBTFVFIiwKKyAgICAgICAgIi1OdW1iZXIuTUlOX1ZBTFVFIiwK
KyAgICAgICAgIi0wIiwgLy8gRklYTUU6IFRoaXMgY3VycmVudGx5IGZhaWxzLgorICAgICAgICAi
MCIsCisgICAgICAgICJOdW1iZXIuTUlOX1ZBTFVFIiwKKyAgICAgICAgIk51bWJlci5NQVhfVkFM
VUUiLAorICAgICAgICAiSW5maW5pdHkiCisgICAgXSwgY2FsbGJhY2spOworfQorCitmdW5jdGlv
biB0ZXN0TnVtYmVyT2JqZWN0KGNhbGxiYWNrKQoreworICAgIGRlYnVnKCJUZXN0aW5nIE51bWJl
ciBvYmplY3RzIik7CisgICAgZGVidWcoIiIpOworICAgIGZvckVhY2hXaXRoQ2FsbGJhY2sodGVz
dE9iamVjdFdpdGhWYWx1ZSwgWworICAgICAgICAibmV3IE51bWJlcihOYU4pIiwKKyAgICAgICAg
Im5ldyBOdW1iZXIoLUluZmluaXR5KSIsCisgICAgICAgICJuZXcgTnVtYmVyKC1OdW1iZXIuTUFY
X1ZBTFVFKSIsCisgICAgICAgICJuZXcgTnVtYmVyKC1OdW1iZXIuTUlOX1ZBTFVFKSIsCisgICAg
ICAgICJuZXcgTnVtYmVyKC0wKSIsCisgICAgICAgICJuZXcgTnVtYmVyKDApIiwKKyAgICAgICAg
Im5ldyBOdW1iZXIoTnVtYmVyLk1JTl9WQUxVRSkiLAorICAgICAgICAibmV3IE51bWJlcihOdW1i
ZXIuTUFYX1ZBTFVFKSIsCisgICAgICAgICJuZXcgTnVtYmVyKEluZmluaXR5KSIKKyAgICBdLCBj
YWxsYmFjayk7Cit9CisKK2Z1bmN0aW9uIHRlc3REYXRlT2JqZWN0KGNhbGxiYWNrKQoreworICAg
IGRlYnVnKCJUZXN0aW5nIERhdGUgb2JqZWN0cyIpOworICAgIGRlYnVnKCIiKTsKKyAgICBmb3JF
YWNoV2l0aENhbGxiYWNrKHRlc3RPYmplY3RXaXRoVmFsdWUsIFsKKyAgICAgICAgIm5ldyBEYXRl
KC0xZTEzKSIsCisgICAgICAgICJuZXcgRGF0ZSgtMWUxMikiLAorICAgICAgICAibmV3IERhdGUo
LTFlOSkiLAorICAgICAgICAibmV3IERhdGUoLTFlNikiLAorICAgICAgICAibmV3IERhdGUoLTFl
MykiLAorICAgICAgICAibmV3IERhdGUoMCkiLAorICAgICAgICAibmV3IERhdGUoMWUzKSIsCisg
ICAgICAgICJuZXcgRGF0ZSgxZTYpIiwKKyAgICAgICAgIm5ldyBEYXRlKDFlOSkiLAorICAgICAg
ICAibmV3IERhdGUoMWUxMikiLAorICAgICAgICAibmV3IERhdGUoMWUxMykiCisgICAgXSwgY2Fs
bGJhY2spOworfQorCitmdW5jdGlvbiB0ZXN0UmVnRXhwT2JqZWN0KGNhbGxiYWNrKQoreworICAg
IGRlYnVnKCJUZXN0aW5nIFJlZ0V4cCBvYmplY3RzIik7CisgICAgZGVidWcoIiIpOworICAgIGZ1
bmN0aW9uIHRlc3RSZWdFeHAodmFsdWUsIGNhbGxiYWNrKSB7CisgICAgICAgIGRlYnVnKCJUZXN0
aW5nIFJlZ0V4cDogIiArIHZhbHVlKTsKKyAgICAgICAgdGVzdF9kYXRhID0gdmFsdWU7CisgICAg
ICAgIHRlc3RWYWx1ZSh0ZXN0X2RhdGEsIGZ1bmN0aW9uKHJlc3VsdCkgeworICAgICAgICAgICAg
d2luZG93LnJlc3VsdCA9IHJlc3VsdDsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgidGVzdF9k
YXRhICE9PSByZXN1bHQiKTsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZ2V0
Q2xhc3MocmVzdWx0KSIsICJSZWdFeHAiKTsKKyAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHQu
dG9TdHJpbmcoKSIsICJ0ZXN0X2RhdGEudG9TdHJpbmcoKSIpOworICAgICAgICAgICAgY2FsbGJh
Y2soKTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgZm9yRWFjaFdpdGhDYWxsYmFjayh0ZXN0
UmVnRXhwLCBbCisgICAgICAgIG5ldyBSZWdFeHAoKSwKKyAgICAgICAgL2FiYy8sCisgICAgICAg
IC9hYmMvZywKKyAgICAgICAgL2FiYy9pLAorICAgICAgICAvYWJjL2dpLAorICAgICAgICAvYWJj
L20sCisgICAgICAgIC9hYmMvbWcsCisgICAgICAgIC9hYmMvbWksCisgICAgICAgIC9hYmMvbWdp
CisgICAgXSwgY2FsbGJhY2spOworfQorCisvLyBGSVhNRTogVGhlIGZvbGxvd2luZyBzaG91bGQg
cGFzczoKKy8vICAgRmlsZUxpc3Qgb2JqZWN0CisKKy8vIEZJWE1FOiBUaGUgZm9sbG93aW5nIHNo
b3VsZCBmYWlsIHcvIERBVEFfQ0xPTkVfRVJST1I6CisvLyAgIG90aGVyIEpTIG9iamVjdHM6IEVy
cm9yLCBGdW5jdGlvbiwgZXRjLgorLy8gICBob3N0IG9iamVjdHM6IERPTSBub2RlLCB3aW5kb3cs
IGV0Yy4KKworZnVuY3Rpb24gdGVzdEltYWdlRGF0YShjYWxsYmFjaykKK3sKKyAgICBkZWJ1Zygi
VGVzdGluZyBJbWFnZURhdGEiKTsKKyAgICBldmFsQW5kTG9nKCJjYW52YXMgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCdjYW52YXMnKSIpOworICAgIGV2YWxBbmRMb2coImNhbnZhcy53aWR0aCA9
IDgiKTsKKyAgICBldmFsQW5kTG9nKCJjYW52YXMuaGVpZ2h0ID0gOCIpOworICAgIGV2YWxBbmRM
b2coInRlc3RfZGF0YSA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpLmdldEltYWdlRGF0YSgwLCAw
LCA4LCA4KSIpOworICAgIHNob3VsZEJlVHJ1ZSgidGVzdF9kYXRhLmRhdGEubGVuZ3RoID09PSAy
NTYiKTsKKworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMjU2OyArK2kpIHsKKyAgICAgICAgdGVz
dF9kYXRhLmRhdGFbaV0gPSBpOworICAgIH0KKworICAgIHRlc3RWYWx1ZSh0ZXN0X2RhdGEsIGZ1
bmN0aW9uKHJlc3VsdCkgeworICAgICAgICB3aW5kb3cucmVzdWx0ID0gcmVzdWx0OworICAgICAg
ICBzaG91bGRCZVRydWUoInRlc3RfZGF0YSAhPT0gcmVzdWx0Iik7CisgICAgICAgIHNob3VsZEJl
RXF1YWxUb1N0cmluZygiU3RyaW5nKHJlc3VsdCkiLCAiW29iamVjdCBJbWFnZURhdGFdIik7Cisg
ICAgICAgIHNob3VsZEJlVHJ1ZSgicmVzdWx0LndpZHRoID09PSB0ZXN0X2RhdGEud2lkdGgiKTsK
KyAgICAgICAgc2hvdWxkQmVUcnVlKCJyZXN1bHQuaGVpZ2h0ID09PSB0ZXN0X2RhdGEuaGVpZ2h0
Iik7CisgICAgICAgIHNob3VsZEJlVHJ1ZSgicmVzdWx0LmRhdGEubGVuZ3RoID09PSB0ZXN0X2Rh
dGEuZGF0YS5sZW5ndGgiKTsKKyAgICAgICAgaWYgKGFycmF5Q29tcGFyZSh0ZXN0X2RhdGEuZGF0
YSwgcmVzdWx0LmRhdGEpKSB7CisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJyZXN1bHQgZGF0YSBt
YXRjaGVzIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJyZXN1
bHQgZGF0YSBkb2Vzbid0IG1hdGNoIik7CisgICAgICAgIH0KKyAgICAgICAgY2FsbGJhY2soKTsK
KyAgICB9KTsKK30KKworZnVuY3Rpb24gdGVzdEJsb2IoY2FsbGJhY2spCit7CisgICAgZGVidWco
IlRlc3RpbmcgQmxvYiIpOworICAgIGV2YWxBbmRMb2coIkJsb2JCdWlsZGVyID0gd2luZG93LkJs
b2JCdWlsZGVyIHx8IHdpbmRvdy5XZWJLaXRCbG9iQnVpbGRlciIpOworICAgIHNob3VsZEJlVHJ1
ZSgiQmxvYkJ1aWxkZXIgIT0gbnVsbCIpOworICAgIHNob3VsZEJlVHJ1ZSgiRmlsZVJlYWRlciAh
PSBudWxsIik7CisgICAgZXZhbEFuZExvZygiYnVpbGRlciA9IG5ldyBCbG9iQnVpbGRlcigpIik7
CisgICAgZXZhbEFuZExvZygidGVzdF9jb250ZW50ID0gJ1RoaXMgaXMgYSB0ZXN0LiBUaGlzIGlz
IG9ubHkgYSB0ZXN0LiciKTsKKyAgICBldmFsQW5kTG9nKCJidWlsZGVyLmFwcGVuZCh0ZXN0X2Nv
bnRlbnQpIik7CisgICAgZXZhbEFuZExvZygidGVzdF9kYXRhID0gYnVpbGRlci5nZXRCbG9iKCki
KTsKKyAgICB0ZXN0VmFsdWUodGVzdF9kYXRhLCBmdW5jdGlvbihyZXN1bHQpIHsKKyAgICAgICAg
d2luZG93LnJlc3VsdCA9IHJlc3VsdDsKKyAgICAgICAgc2hvdWxkQmVUcnVlKCJ0ZXN0X2RhdGEg
IT09IHJlc3VsdCIpOworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIlN0cmluZyhyZXN1
bHQpIiwgIltvYmplY3QgQmxvYl0iKTsKKyAgICAgICAgZXZhbEFuZExvZygicmVhZGVyID0gbmV3
IEZpbGVSZWFkZXIoKSIpOworICAgICAgICByZWFkZXIub25sb2FkID0gZnVuY3Rpb24oZSkgewor
ICAgICAgICAgICAgaWYgKGUudGFyZ2V0LnJlYWR5U3RhdGUgPT09IEZpbGVSZWFkZXIuRE9ORSkg
eworICAgICAgICAgICAgICAgIGRlYnVnKCJyZWFkQXNUZXh0IHByb2R1Y2VkOiAiICsgZS50YXJn
ZXQucmVzdWx0KTsKKyAgICAgICAgICAgICAgICB3aW5kb3cudGV4dCA9IGUudGFyZ2V0LnJlc3Vs
dDsKKyAgICAgICAgICAgICAgICBzaG91bGRCZVRydWUoInRleHQgPT09IHRlc3RfY29udGVudCIp
OworICAgICAgICAgICAgICAgIGNhbGxiYWNrKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH07
CisgICAgICAgIGV2YWxBbmRMb2coInJlYWRlci5yZWFkQXNUZXh0KHJlc3VsdCkiKTsKKyAgICB9
KTsKK30KKworZnVuY3Rpb24gdGVzdEZpbGUoY2FsbGJhY2spCit7CisgICAgZGVidWcoIlRlc3Rp
bmcgRmlsZSIpOworICAgIGV2YWxBbmRMb2coInRlc3RfY29udGVudCA9ICdUd2FzIGJyaWxsaWcg
YW5kIHRoZSBzbGl0aHkgdG92ZXMnIik7CisgICAgZXZhbEFuZExvZygicmVxdWVzdEZpbGVTeXN0
ZW0gPSB3aW5kb3cucmVxdWVzdEZpbGVTeXN0ZW0gfHwgd2luZG93LndlYmtpdFJlcXVlc3RGaWxl
U3lzdGVtIik7CisgICAgc2hvdWxkQmVUcnVlKCJyZXF1ZXN0RmlsZVN5c3RlbSAhPSBudWxsIik7
CisgICAgcmVxdWVzdEZpbGVTeXN0ZW0od2luZG93LlRFTVBPUkFSWSwgMTAyNCwgb25GaWxlU3lz
dGVtLCB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjayk7CisKKyAgICBmdW5jdGlvbiBvbkZpbGVTeXN0
ZW0oZmlsZVN5c3RlbSkgeworICAgICAgICBmaWxlU3lzdGVtLnJvb3QuZ2V0RmlsZSgndGVzdC50
eHQnLCB7Y3JlYXRlOiB0cnVlLCBleGNsdXNpdmU6IHRydWV9LCBvbkZpbGVFbnRyeSwgdW5leHBl
Y3RlZEVycm9yQ2FsbGJhY2spOworICAgIH0KKworICAgIGZ1bmN0aW9uIG9uRmlsZUVudHJ5KGZp
bGVFbnRyeSkgeworICAgICAgICBmaWxlRW50cnkuY3JlYXRlV3JpdGVyKGZ1bmN0aW9uKHdyaXRl
cikgeworICAgICAgICAgICAgd3JpdGVyLm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFj
azsKKyAgICAgICAgICAgIHdyaXRlci5vbndyaXRlZW5kID0gZnVuY3Rpb24oZSkgeyBmaWxlRW50
cnkuZmlsZShnb3RGaWxlLCB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjayk7IH07CisKKyAgICAgICAg
ICAgIGJ1aWxkZXIgPSBuZXcgQmxvYkJ1aWxkZXIoKTsKKyAgICAgICAgICAgIGJ1aWxkZXIuYXBw
ZW5kKHRlc3RfY29udGVudCk7CisgICAgICAgICAgICB3cml0ZXIud3JpdGUoYnVpbGRlci5nZXRC
bG9iKCd0ZXh0L3BsYWluJykpOworICAgICAgICB9LCB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjayk7
CisgICAgfQorCisgICAgZnVuY3Rpb24gZ290RmlsZShmaWxlKSB7CisgICAgICAgIHdpbmRvdy50
ZXN0X2RhdGEgPSBmaWxlOworICAgICAgICBkZWJ1ZygiZmlsZSBuYW1lOiAiICsgZmlsZS5uYW1l
KTsKKyAgICAgICAgdGVzdFZhbHVlKHRlc3RfZGF0YSwgZnVuY3Rpb24ocmVzdWx0KSB7CisgICAg
ICAgICAgICB3aW5kb3cucmVzdWx0ID0gcmVzdWx0OworICAgICAgICAgICAgc2hvdWxkQmVUcnVl
KCJ0ZXN0X2RhdGEgIT09IHJlc3VsdCIpOworICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdC5u
YW1lIiwgInRlc3RfZGF0YS5uYW1lIik7CisKKyAgICAgICAgICAgIGRlYnVnKCJyZXN1bHQgbmFt
ZTogIiArIHJlc3VsdC5uYW1lKTsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygi
U3RyaW5nKHJlc3VsdCkiLCAiW29iamVjdCBGaWxlXSIpOworICAgICAgICAgICAgZXZhbEFuZExv
ZygicmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKSIpOworICAgICAgICAgICAgcmVhZGVyLm9ubG9h
ZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgICAgICBpZiAoZS50YXJnZXQucmVhZHlTdGF0
ZSA9PT0gRmlsZVJlYWRlci5ET05FKSB7CisgICAgICAgICAgICAgICAgICAgIGRlYnVnKCJyZWFk
QXNUZXh0IHByb2R1Y2VkOiAiICsgZS50YXJnZXQucmVzdWx0KTsKKyAgICAgICAgICAgICAgICAg
ICAgd2luZG93LnRleHQgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgICAgICAgICAgICAgIHNo
b3VsZEJlVHJ1ZSgidGV4dCA9PT0gdGVzdF9jb250ZW50Iik7CisgICAgICAgICAgICAgICAgICAg
IGNhbGxiYWNrKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfTsKKyAgICAgICAg
ICAgIGV2YWxBbmRMb2coInJlYWRlci5yZWFkQXNUZXh0KHJlc3VsdCkiKTsKKyAgICAgICAgfSk7
CisgICAgfQorfQorCitmdW5jdGlvbiB0ZXN0QXJyYXkoY2FsbGJhY2spIHsKKyAgICBkZWJ1Zygi
VGVzdGluZyBBcnJheSIpOworICAgIGV2YWxBbmRMb2coInRlc3RfZGF0YSA9IFtdIik7CisgICAg
ZXZhbEFuZExvZygidGVzdF9kYXRhWzBdID0gJ2ZvbyciKTsKKyAgICBldmFsQW5kTG9nKCJ0ZXN0
X2RhdGFbMV0gPSAnYmFyJyIpOworICAgIGV2YWxBbmRMb2coInRlc3RfZGF0YVsxMF0gPSB0cnVl
Iik7CisgICAgZXZhbEFuZExvZygidGVzdF9kYXRhWzExXSA9IGZhbHNlIik7CisgICAgZXZhbEFu
ZExvZygidGVzdF9kYXRhWzIwXSA9IDEyMyIpOworICAgIGV2YWxBbmRMb2coInRlc3RfZGF0YVsy
MV0gPSA0NTYiKTsKKyAgICBldmFsQW5kTG9nKCJ0ZXN0X2RhdGFbMzBdID0gbnVsbCIpOworCisg
ICAgdGVzdFZhbHVlKHRlc3RfZGF0YSwgZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgICAgIHdpbmRv
dy5yZXN1bHQgPSByZXN1bHQ7CisgICAgICAgIHNob3VsZEJlVHJ1ZSgidGVzdF9kYXRhICE9PSBy
ZXN1bHQiKTsKKyAgICAgICAgc2hvdWxkQmVUcnVlKCJ0ZXN0X2RhdGEubGVuZ3RoID09PSByZXN1
bHQubGVuZ3RoIik7CisgICAgICAgIE9iamVjdC5rZXlzKHRlc3RfZGF0YSkuZm9yRWFjaCgKKyAg
ICAgICAgICAgIGZ1bmN0aW9uKGtleSkgeworICAgICAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgi
dGVzdF9kYXRhWyIgKyBrZXkgKyAiXSA9PT0gcmVzdWx0WyIgKyBrZXkgKyAiXSIpOworICAgICAg
ICAgICAgfSk7CisgICAgICAgIGNhbGxiYWNrKCk7CisgICAgfSk7Cit9CisKK2Z1bmN0aW9uIHRl
c3RPYmplY3QoY2FsbGJhY2spIHsKKyAgICBkZWJ1ZygiVGVzdGluZyBPYmplY3QiKTsKKyAgICBl
dmFsQW5kTG9nKCJ0ZXN0X2RhdGEgPSBbXSIpOworICAgIGV2YWxBbmRMb2coInRlc3RfZGF0YVsw
XSA9ICdmb28nIik7CisgICAgZXZhbEFuZExvZygidGVzdF9kYXRhWzFdID0gJ2JhciciKTsKKyAg
ICBldmFsQW5kTG9nKCJ0ZXN0X2RhdGFbJ2EnXSA9IHRydWUiKTsKKyAgICBldmFsQW5kTG9nKCJ0
ZXN0X2RhdGFbJ2InXSA9IGZhbHNlIik7CisgICAgZXZhbEFuZExvZygidGVzdF9kYXRhWydmb28n
XSA9IDEyMyIpOworICAgIGV2YWxBbmRMb2coInRlc3RfZGF0YVsnYmFyJ10gPSA0NTYiKTsKKyAg
ICBldmFsQW5kTG9nKCJ0ZXN0X2RhdGFbJyddID0gbnVsbCIpOworCisgICAgdGVzdFZhbHVlKHRl
c3RfZGF0YSwgZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgICAgIHdpbmRvdy5yZXN1bHQgPSByZXN1
bHQ7CisgICAgICAgIHNob3VsZEJlVHJ1ZSgidGVzdF9kYXRhICE9PSByZXN1bHQiKTsKKyAgICAg
ICAgc2hvdWxkQmVUcnVlKCJhcnJheUNvbXBhcmUoT2JqZWN0LmtleXMocmVzdWx0KS5zb3J0KCks
IE9iamVjdC5rZXlzKHRlc3RfZGF0YSkuc29ydCgpKSIpOworICAgICAgICBPYmplY3Qua2V5cyh0
ZXN0X2RhdGEpLmZvckVhY2goCisgICAgICAgICAgICBmdW5jdGlvbihrZXkpIHsKKyAgICAgICAg
ICAgICAgICBzaG91bGRCZVRydWUoInRlc3RfZGF0YVsiICsgSlNPTi5zdHJpbmdpZnkoa2V5KSAr
ICJdID09PSByZXN1bHRbIiArIEpTT04uc3RyaW5naWZ5KGtleSkgKyAiXSIpOworICAgICAgICAg
ICAgfSk7CisgICAgICAgIGNhbGxiYWNrKCk7CisgICAgfSk7Cit9CisKK3Rlc3QoKTsKKworPC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>121525</attachid>
            <date>2012-01-06 17:27:28 -0800</date>
            <delta_ts>2012-01-06 17:47:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-74897-20120106172727.patch</filename>
            <type>text/plain</type>
            <size>18543</size>
            <attacher name="Joshua Bell">jsbell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA0MjgzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOWViYjFiZGY3MDgwZmU0NjRhYTZh
ZWE0YTQ5OWRlNjMwMGMyMTA0Mi4uNTkxNjg0MmIxODczZjk0ZWFiZThhZDQ1NTE4MjhhODM3NmVh
OWU4ZSAxMDA3NTUKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDEyLTAxLTA2ICBKb3NodWEgQmVsbCAgPGpz
YmVsbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhlZERCOiBBZGQgdGVzdHMgZm9yIHN0
cnVjdHVyZWQgY2xvbmUgZGF0YQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NzQ4OTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3N0cnVjdHVyZWQtY2xvbmUuaHRtbDogQWRk
ZWQuCisKIDIwMTItMDEtMDYgIENzYWJhIE9zenRyb2dvbsOhYyAgPG9zc3lAd2Via2l0Lm9yZz4K
IAogICAgICAgICBbUXRdIFVucmV2aWV3ZWQgZ2FyZGVuaW5nLiBTa2lwIGEgbmV3IGZhaWxpbmcg
dGVzdC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNl
cy90ZXN0LWRhdGEuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNl
cy90ZXN0LWRhdGEuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NWJkYjI4YWQ1OTJhZTJmYWY4YzdhOTNjNzNj
ZTAyYmNmMjBmZDAyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvcmVzb3VyY2VzL3Rlc3QtZGF0YS5odG1sCkBAIC0wLDAgKzEsNCBAQAorPCFET0NUWVBF
IGh0bWw+Cis8dGl0bGU+VGhpcyBpcyBzb21lIHRlc3QgZGF0YTwvdGl0bGU+Cis8aDE+VGVzdCBk
YXRhITwvaDE+Cis8cD5HZXQgeW91ciB0ZXN0IGRhdGEgaGVyZSEKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy90ZXN0LWRhdGEudHh0IGIvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL3Rlc3QtZGF0YS50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZGVlM2EyZDNjN2U2YTE3NmZhY2E3ZTUwODc1ODYyZDQxYjdkM2VjZQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy90ZXN0LWRhdGEu
dHh0CkBAIC0wLDAgKzEgQEAKK0xvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1
ciBhZGlwaXNjaW5nIGVsaXQuIEFlbmVhbiBsYW9yZWV0IGRvbG9yIGlkIHVybmEgZWxlaWZlbmQg
YWxpcXVldC4gTnVsbGEgdmVsIGRvbG9yIGlwc3VtLiBBbGlxdWFtIHV0IHR1cnBpcyBuaXNsLCBp
biB2dWxwdXRhdGUgc2FwaWVuLiBDdW0gc29jaWlzIG5hdG9xdWUgcGVuYXRpYnVzIGV0IG1hZ25p
cyBkaXMgcGFydHVyaWVudCBtb250ZXMsIG5hc2NldHVyIHJpZGljdWx1cyBtdXMuIFNlZCBjb25n
dWUgbWFnbmEgdml0YWUgZG9sb3IgZmV1Z2lhdCB2ZWhpY3VsYS4gU2VkIHZvbHV0cGF0LCB0ZWxs
dXMgdmVsIHZhcml1cyB2ZXN0aWJ1bHVtLCBwdXJ1cyBxdWFtIG1vbGxpcyBzYXBpZW4sIGluIGNv
bmRpbWVudHVtIGxlbyBuZXF1ZSBzZWQgbnVsbGEuIE51bmMgcXVpcyBwb3J0YSBlbGl0LiBQZWxs
ZW50ZXNxdWUgZXJhdCBsZWN0dXMsIHVsdHJpY2llcyBhIGxvYm9ydGlzIGlkLCBmYXVjaWJ1cyBp
ZCBxdWFtLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvc3RydWN0
dXJlZC1jbG9uZS5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvc3RydWN0dXJl
ZC1jbG9uZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI1YzIwYWJkYjc1YjA2YjYwNDM2NWE1ZDEzZDAxMDE1
N2JjOWE2N2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9zdHJ1Y3R1cmVkLWNsb25lLmh0bWwKQEAgLTAsMCArMSw1MzcgQEAKKzxodG1sPgorPGhlYWQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFyZWQuanMiPjwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHk+Cis8aW5wdXQgdHlwZT0iZmlsZSIgaWQ9ImZpbGVJbnB1dCIgbXVsdGlwbGU+
PC9pbnB1dD4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9k
aXY+Cis8c2NyaXB0PgorCisvLyBGSVhNRTogVHlwZXMgYXJlIHNlbnNpdGl2ZSB0byBiZWluZyBp
bnN0YW50aWF0ZWQgaW4gdGhlIHdvcmtlciBwcm9jZXNzLCBlLmcuCisvLyBmb3IgbG9va2luZyB1
cCBrZXkgcGF0aHMuIEVuc3VyZSB0aGF0IGlzIGJlaW5nIHRlc3RlZC4KKworZGVzY3JpcHRpb24o
IlRlc3Qgc3RydWN0dXJlZCBjbG9uZSBwZXJtdXRhdGlvbnMgaW4gSW5kZXhlZERCLiIpOworaWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53
YWl0VW50aWxEb25lKCk7CisKK2lmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAgICB2YXIgZmls
ZUlucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGVJbnB1dCIpOworICAgIHZhciBm
aWxlUmVjdCA9IGZpbGVJbnB1dC5nZXRDbGllbnRSZWN0cygpWzBdOworICAgIHZhciB0YXJnZXRY
ID0gZmlsZVJlY3QubGVmdCArIGZpbGVSZWN0LndpZHRoIC8gMjsKKyAgICB2YXIgdGFyZ2V0WSA9
IGZpbGVSZWN0LnRvcCArIGZpbGVSZWN0LmhlaWdodCAvIDI7CisgICAgZXZlbnRTZW5kZXIuYmVn
aW5EcmFnV2l0aEZpbGVzKFsncmVzb3VyY2VzL3Rlc3QtZGF0YS5odG1sJywgJ3Jlc291cmNlcy90
ZXN0LWRhdGEudHh0J10pOworICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHRhcmdldFgsIHRh
cmdldFkpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKK30KKworZnVuY3Rpb24gdGVzdCgp
Cit7CisgICAgZXZhbEFuZExvZygiaW5kZXhlZERCID0gd2luZG93LmluZGV4ZWREQiB8fCB3aW5k
b3cud2Via2l0SW5kZXhlZERCIik7CisgICAgc2hvdWxkQmVUcnVlKCJpbmRleGVkREIgIT0gbnVs
bCIpOworICAgIGV2YWxBbmRMb2coIklEQlRyYW5zYWN0aW9uID0gd2luZG93LklEQlRyYW5zYWN0
aW9uIHx8IHdpbmRvdy53ZWJraXRJREJUcmFuc2FjdGlvbiIpOworICAgIHNob3VsZEJlVHJ1ZSgi
SURCVHJhbnNhY3Rpb24gIT0gbnVsbCIpOworICAgIHByZXBhcmVEYXRhYmFzZSgpOworfQorCitm
dW5jdGlvbiBwcmVwYXJlRGF0YWJhc2UoKQoreworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1Zygi
UHJlcGFyZSBEYXRhYmFzZSIpOworICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIu
ZGVsZXRlRGF0YWJhc2UoJ3N0cnVjdHVyZWQtY2xvbmUnKSIpOworICAgIHJlcXVlc3Qub25lcnJv
ciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZnVu
Y3Rpb24oZSkgeworICAgICAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLm9wZW4o
J3N0cnVjdHVyZWQtY2xvbmUnKSIpOworICAgICAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVj
dGVkRXJyb3JDYWxsYmFjazsKKyAgICAgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihl
KSB7CisgICAgICAgICAgICBldmFsQW5kTG9nKCJkYiA9IHJlcXVlc3QucmVzdWx0Iik7CisgICAg
ICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImRiLnZlcnNpb24iLCAiIik7CisgICAgICAg
ICAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiZGIuc2V0VmVyc2lvbignMScpIik7CisgICAgICAg
ICAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKKyAgICAgICAg
ICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgICAgIGV2
YWxBbmRMb2coImRiLmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKSIpOworICAgICAgICAg
ICAgICAgIHZhciB0cmFucyA9IHJlcXVlc3QucmVzdWx0OworICAgICAgICAgICAgICAgIHRyYW5z
Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKKyAgICAgICAgICAgICAgICB0cmFu
cy5vbmFib3J0ID0gdW5leHBlY3RlZEFib3J0Q2FsbGJhY2s7CisgICAgICAgICAgICAgICAgdHJh
bnMub25jb21wbGV0ZSA9IHN0YXJ0VGVzdHM7CisgICAgICAgICAgICB9OworICAgICAgICB9Owor
ICAgIH07Cit9CisKK2Z1bmN0aW9uIHN0YXJ0VGVzdHMoKQoreworICAgIGRlYnVnKCIiKTsKKyAg
ICBkZWJ1ZygiUnVubmluZyB0ZXN0cy4uLiIpOworICAgIHZhciB0ZXN0c190b19ydW4gPSBbCisg
ICAgICAgIHRlc3RVbmRlZmluZWQsCisgICAgICAgIHRlc3ROdWxsLAorICAgICAgICB0ZXN0Qm9v
bGVhbiwKKyAgICAgICAgdGVzdE51bWJlciwKKyAgICAgICAgdGVzdFN0cmluZywKKyAgICAgICAg
dGVzdEJvb2xlYW5PYmplY3QsCisgICAgICAgIHRlc3ROdW1iZXJPYmplY3QsCisgICAgICAgIHRl
c3RTdHJpbmdPYmplY3QsCisgICAgICAgIHRlc3REYXRlT2JqZWN0LAorICAgICAgICB0ZXN0UmVn
RXhwT2JqZWN0LAorICAgICAgICB0ZXN0SW1hZ2VEYXRhLAorICAgICAgICB0ZXN0QmxvYiwKKyAg
ICAgICAgdGVzdEZpbGUsCisgICAgICAgIHRlc3RGaWxlTGlzdCwKKyAgICAgICAgdGVzdEFycmF5
LAorICAgICAgICB0ZXN0T2JqZWN0CisgICAgXTsKKworICAgIGZ1bmN0aW9uIG5leHRUZXN0KCkg
eworICAgICAgICBkZWJ1ZygiIik7CisgICAgICAgIGlmICh0ZXN0c190b19ydW4ubGVuZ3RoKSB7
CisgICAgICAgICAgICB2YXIgdGVzdCA9IHRlc3RzX3RvX3J1bi5zaGlmdCgpOworICAgICAgICAg
ICAgdGVzdChuZXh0VGVzdCk7IC8vIFdoZW4gZG9uZSwgY2FsbCB0aGlzIGFnYWluLgorICAgICAg
ICB9IGVsc2UgeworICAgICAgICAgICAgdGVzdEJhZFR5cGVzKCk7CisgICAgICAgIH0KKyAgICB9
CisgICAgbmV4dFRlc3QoKTsKK30KKworZnVuY3Rpb24gZm9yRWFjaFdpdGhDYWxsYmFjayh0ZXN0
RnVuY3Rpb24sIHZhbHVlcywgY2FsbGJhY2spCit7CisgICAgZnVuY3Rpb24gbmV4dFZhbHVlKCkg
eworICAgICAgICBpZiAodmFsdWVzLmxlbmd0aCkgeworICAgICAgICAgICAgdGVzdEZ1bmN0aW9u
KHZhbHVlcy5zaGlmdCgpLCBuZXh0VmFsdWUpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAg
ICAgY2FsbGJhY2soKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIG5leHRWYWx1ZSgpOworfQor
CitmdW5jdGlvbiB0ZXN0VmFsdWUodmFsdWUsIGNhbGxiYWNrKQoreworICAgIC8vIE9uZSB0cmFu
c2FjdGlvbiBwZXIgdGVzdCwgc2luY2Ugc29tZSB0ZXN0cyByZXF1aXJlIGFzeW5jaHJvbm91cwor
ICAgIC8vIG9wZXJhdGlvbnMgdG8gdmVyaWZ5IHRoZSByZXN1bHQgKGUuZy4gdmlhIEZpbGVSZWFk
ZXIpCisgICAgZXZhbEFuZExvZygidHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3RvcmVO
YW1lJywgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkiKTsKKyAgICB0cmFuc2FjdGlvbi5vbmVy
cm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CisgICAgdHJhbnNhY3Rpb24ub25hYm9ydCA9
IHVuZXhwZWN0ZWRBYm9ydENhbGxiYWNrOworICAgIGV2YWxBbmRMb2coInN0b3JlID0gdHJhbnNh
Y3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpIik7CisKKyAgICBkZWJ1ZygidmFsdWUgaXM6
ICIgKyBTdHJpbmcodmFsdWUpICsgIiAodHlwZTogIiArIHR5cGVvZiB2YWx1ZSArICIpIik7Cisg
ICAgd2luZG93LnZhbHVlID0gdmFsdWU7CisgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coInN0b3Jl
LnB1dCh2YWx1ZSwgJ2tleScpIik7CisgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVy
cm9yQ2FsbGJhY2s7CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAg
ICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJzdG9yZS5nZXQoJ2tleScpIik7CisgICAgICAgIHJl
cXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworICAgICAgICByZXF1ZXN0
Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIC8vZGVidWcoImdvdCBiYWNr
OiAiICsgU3RyaW5nKHJlcXVlc3QucmVzdWx0KSArICIgKHR5cGU6ICIgKyB0eXBlb2YgcmVxdWVz
dC5yZXN1bHQgKyAiKSIpOworICAgICAgICAgICAgY2FsbGJhY2socmVxdWVzdC5yZXN1bHQpOwor
ICAgICAgICB9OworICAgIH07Cit9CisKKy8vIElkZW50aXR5IHRlc3RpbmcsIHNlbnNpdGl2ZSB0
byBOYU4gYW5kIC0wCitmdW5jdGlvbiBpcyh4LCB5KSB7CisgICAgaWYgKHggPT09IHkpIHsKKyAg
ICAgICAgcmV0dXJuIHggIT09IDAgfHwgMSAvIHggPT09IDEgLyB5OworICAgIH0KKyAgICByZXR1
cm4geCAhPT0geCAmJiB5ICE9PSB5OworfQorCitmdW5jdGlvbiBhcnJheUNvbXBhcmUoYSwgYikg
eworICAgIGlmIChhLmxlbmd0aCAhPT0gYi5sZW5ndGgpIHsKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgIH0KKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IGEubGVuZ3RoOyArK2kpIHsKKyAgICAg
ICAgaWYgKCFpcyhhW2ldLCBiW2ldKSkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
ICAgICB9CisgICAgfQorICAgIHJldHVybiB0cnVlOworfQorCitmdW5jdGlvbiB0ZXN0UHJpbWl0
aXZlVmFsdWUoc3RyaW5nLCBjYWxsYmFjaykKK3sKKyAgICBkZWJ1ZygiVGVzdGluZzogIiArIHN0
cmluZyk7CisgICAgdmFyIHZhbHVlID0gZXZhbCgidmFsdWUgPSAoIiArIHN0cmluZyArICIpIik7
CisgICAgdGVzdF9kYXRhID0gdmFsdWU7CisgICAgdGVzdFZhbHVlKHRlc3RfZGF0YSwgZnVuY3Rp
b24ocmVzdWx0KSB7CisgICAgICAgIHdpbmRvdy5yZXN1bHQgPSByZXN1bHQ7CisgICAgICAgIHNo
b3VsZEJlVHJ1ZSgiaXModGVzdF9kYXRhLCByZXN1bHQpIik7CisgICAgICAgIGRlYnVnKCIiKTsK
KyAgICAgICAgY2FsbGJhY2soKTsKKyAgICB9KTsKK30KKworZnVuY3Rpb24gdGVzdE9iamVjdFdp
dGhWYWx1ZShzdHJpbmcsIGNhbGxiYWNrKQoreworICAgIGRlYnVnKCJUZXN0aW5nOiAiICsgc3Ry
aW5nKTsKKyAgICB2YXIgdmFsdWUgPSBldmFsKCJ2YWx1ZSA9ICgiICsgc3RyaW5nICsgIikiKTsK
KyAgICB0ZXN0X2RhdGEgPSB2YWx1ZTsKKyAgICB0ZXN0VmFsdWUodGVzdF9kYXRhLCBmdW5jdGlv
bihyZXN1bHQpIHsKKyAgICAgICAgd2luZG93LnJlc3VsdCA9IHJlc3VsdDsKKyAgICAgICAgZGVi
dWcoIlN0cmluZyhyZXN1bHQpOiAiICsgU3RyaW5nKHJlc3VsdCkpOworICAgICAgICBzaG91bGRC
ZUVxdWFsVG9TdHJpbmcoInR5cGVvZiByZXN1bHQiLCAib2JqZWN0Iik7CisgICAgICAgIHNob3Vs
ZEJlKCJPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwocmVzdWx0KSIsICJPYmplY3QucHJv
dG90eXBlLnRvU3RyaW5nLmNhbGwodGVzdF9kYXRhKSIpOworICAgICAgICBzaG91bGRCZVRydWUo
InRlc3RfZGF0YSAhPT0gcmVzdWx0Iik7CisgICAgICAgIHNob3VsZEJlKCJyZXN1bHQudG9TdHJp
bmcoKSIsICJ0ZXN0X2RhdGEudG9TdHJpbmcoKSIpOworICAgICAgICBzaG91bGRCZVRydWUoImlz
KHRlc3RfZGF0YS52YWx1ZU9mKCksIHJlc3VsdC52YWx1ZU9mKCkpIik7CisgICAgICAgIGRlYnVn
KCIiKTsKKyAgICAgICAgY2FsbGJhY2soKTsKKyAgICB9KTsKK30KKworZnVuY3Rpb24gdGVzdFVu
ZGVmaW5lZChjYWxsYmFjaykKK3sKKyAgICB0ZXN0UHJpbWl0aXZlVmFsdWUoInVuZGVmaW5lZCIs
IGNhbGxiYWNrKTsKK30KKworZnVuY3Rpb24gdGVzdE51bGwoY2FsbGJhY2spCit7CisgICAgdGVz
dFByaW1pdGl2ZVZhbHVlKCJudWxsIiwgY2FsbGJhY2spOworfQorCitmdW5jdGlvbiB0ZXN0Qm9v
bGVhbihjYWxsYmFjaykKK3sKKyAgICBkZWJ1ZygiVGVzdGluZyBib29sZWFuIHByaW1pdGl2ZXMi
KTsKKyAgICBkZWJ1ZygiIik7CisgICAgZm9yRWFjaFdpdGhDYWxsYmFjayh0ZXN0UHJpbWl0aXZl
VmFsdWUsIFsidHJ1ZSIsICJmYWxzZSJdLCBjYWxsYmFjayk7Cit9CisKK2Z1bmN0aW9uIHRlc3RC
b29sZWFuT2JqZWN0KGNhbGxiYWNrKQoreworICAgIGRlYnVnKCJUZXN0aW5nIEJvb2xlYW4gb2Jq
ZWN0cyIpOworICAgIGRlYnVnKCIiKTsKKyAgICBmb3JFYWNoV2l0aENhbGxiYWNrKHRlc3RPYmpl
Y3RXaXRoVmFsdWUsIFsKKyAgICAgICAgIm5ldyBCb29sZWFuKHRydWUpIiwKKyAgICAgICAgIm5l
dyBCb29sZWFuKGZhbHNlKSIKKyAgICBdLCBjYWxsYmFjayk7Cit9CisKK2Z1bmN0aW9uIHRlc3RT
dHJpbmcoY2FsbGJhY2spCit7CisgICAgZGVidWcoIlRlc3Rpbmcgc3RyaW5nIHByaW1pdGl2ZXMi
KTsKKyAgICBkZWJ1ZygiIik7CisgICAgZm9yRWFjaFdpdGhDYWxsYmFjayh0ZXN0UHJpbWl0aXZl
VmFsdWUsIFsKKyAgICAgICAgIicnIiwKKyAgICAgICAgIid0aGlzIGlzIGEgc2FtcGxlIHN0cmlu
ZyciLAorICAgICAgICAiJ251bGwoXFwwKSciCisgICAgXSwgY2FsbGJhY2spOworfQorCitmdW5j
dGlvbiB0ZXN0U3RyaW5nT2JqZWN0KGNhbGxiYWNrKQoreworICAgIGRlYnVnKCJUZXN0aW5nIFN0
cmluZyBvYmplY3RzIik7CisgICAgZGVidWcoIiIpOworICAgIGZvckVhY2hXaXRoQ2FsbGJhY2so
dGVzdE9iamVjdFdpdGhWYWx1ZSwgWworICAgICAgICAibmV3IFN0cmluZygpIiwKKyAgICAgICAg
Im5ldyBTdHJpbmcoJ3RoaXMgaXMgYSBzYW1wbGUgc3RyaW5nJykiLAorICAgICAgICAibmV3IFN0
cmluZygnbnVsbChcXDApJykiCisgICAgXSwgY2FsbGJhY2spOworfQorCitmdW5jdGlvbiB0ZXN0
TnVtYmVyKGNhbGxiYWNrKQoreworICAgIGRlYnVnKCJUZXN0aW5nIG51bWJlciBwcmltaXRpdmVz
Iik7CisgICAgZGVidWcoIiIpOworICAgIGZvckVhY2hXaXRoQ2FsbGJhY2sodGVzdFByaW1pdGl2
ZVZhbHVlLCBbCisgICAgICAgICJOYU4iLAorICAgICAgICAiLUluZmluaXR5IiwKKyAgICAgICAg
Ii1OdW1iZXIuTUFYX1ZBTFVFIiwKKyAgICAgICAgIi1OdW1iZXIuTUlOX1ZBTFVFIiwKKyAgICAg
ICAgIi0wIiwgLy8gRklYTUU6IFRoaXMgY3VycmVudGx5IGZhaWxzLgorICAgICAgICAiMCIsCisg
ICAgICAgICJOdW1iZXIuTUlOX1ZBTFVFIiwKKyAgICAgICAgIk51bWJlci5NQVhfVkFMVUUiLAor
ICAgICAgICAiSW5maW5pdHkiCisgICAgXSwgY2FsbGJhY2spOworfQorCitmdW5jdGlvbiB0ZXN0
TnVtYmVyT2JqZWN0KGNhbGxiYWNrKQoreworICAgIGRlYnVnKCJUZXN0aW5nIE51bWJlciBvYmpl
Y3RzIik7CisgICAgZGVidWcoIiIpOworICAgIGZvckVhY2hXaXRoQ2FsbGJhY2sodGVzdE9iamVj
dFdpdGhWYWx1ZSwgWworICAgICAgICAibmV3IE51bWJlcihOYU4pIiwKKyAgICAgICAgIm5ldyBO
dW1iZXIoLUluZmluaXR5KSIsCisgICAgICAgICJuZXcgTnVtYmVyKC1OdW1iZXIuTUFYX1ZBTFVF
KSIsCisgICAgICAgICJuZXcgTnVtYmVyKC1OdW1iZXIuTUlOX1ZBTFVFKSIsCisgICAgICAgICJu
ZXcgTnVtYmVyKC0wKSIsCisgICAgICAgICJuZXcgTnVtYmVyKDApIiwKKyAgICAgICAgIm5ldyBO
dW1iZXIoTnVtYmVyLk1JTl9WQUxVRSkiLAorICAgICAgICAibmV3IE51bWJlcihOdW1iZXIuTUFY
X1ZBTFVFKSIsCisgICAgICAgICJuZXcgTnVtYmVyKEluZmluaXR5KSIKKyAgICBdLCBjYWxsYmFj
ayk7Cit9CisKK2Z1bmN0aW9uIHRlc3REYXRlT2JqZWN0KGNhbGxiYWNrKQoreworICAgIGRlYnVn
KCJUZXN0aW5nIERhdGUgb2JqZWN0cyIpOworICAgIGRlYnVnKCIiKTsKKyAgICBmb3JFYWNoV2l0
aENhbGxiYWNrKHRlc3RPYmplY3RXaXRoVmFsdWUsIFsKKyAgICAgICAgIm5ldyBEYXRlKC0xZTEz
KSIsCisgICAgICAgICJuZXcgRGF0ZSgtMWUxMikiLAorICAgICAgICAibmV3IERhdGUoLTFlOSki
LAorICAgICAgICAibmV3IERhdGUoLTFlNikiLAorICAgICAgICAibmV3IERhdGUoLTFlMykiLAor
ICAgICAgICAibmV3IERhdGUoMCkiLAorICAgICAgICAibmV3IERhdGUoMWUzKSIsCisgICAgICAg
ICJuZXcgRGF0ZSgxZTYpIiwKKyAgICAgICAgIm5ldyBEYXRlKDFlOSkiLAorICAgICAgICAibmV3
IERhdGUoMWUxMikiLAorICAgICAgICAibmV3IERhdGUoMWUxMykiCisgICAgXSwgY2FsbGJhY2sp
OworfQorCitmdW5jdGlvbiB0ZXN0UmVnRXhwT2JqZWN0KGNhbGxiYWNrKQoreworICAgIGRlYnVn
KCJUZXN0aW5nIFJlZ0V4cCBvYmplY3RzIik7CisgICAgZGVidWcoIiIpOworICAgIGZ1bmN0aW9u
IHRlc3RSZWdFeHAoc3RyaW5nLCBjYWxsYmFjaykgeworICAgICAgICBkZWJ1ZygiVGVzdGluZyBS
ZWdFeHA6ICIgKyBzdHJpbmcpOworICAgICAgICB2YXIgdmFsdWUgPSBldmFsKCJ2YWx1ZSA9ICgi
ICsgc3RyaW5nICsgIikiKTsKKyAgICAgICAgdGVzdF9kYXRhID0gdmFsdWU7CisgICAgICAgIHRl
c3RWYWx1ZSh0ZXN0X2RhdGEsIGZ1bmN0aW9uKHJlc3VsdCkgeworICAgICAgICAgICAgd2luZG93
LnJlc3VsdCA9IHJlc3VsdDsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgidGVzdF9kYXRhICE9
PSByZXN1bHQiKTsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiT2JqZWN0LnBy
b3RvdHlwZS50b1N0cmluZy5jYWxsKHJlc3VsdCkiLCAiW29iamVjdCBSZWdFeHBdIik7CisgICAg
ICAgICAgICBzaG91bGRCZSgicmVzdWx0LnRvU3RyaW5nKCkiLCAidGVzdF9kYXRhLnRvU3RyaW5n
KCkiKTsKKyAgICAgICAgICAgIGRlYnVnKCIiKTsKKyAgICAgICAgICAgIGNhbGxiYWNrKCk7Cisg
ICAgICAgIH0pOworICAgIH0KKworICAgIGZvckVhY2hXaXRoQ2FsbGJhY2sodGVzdFJlZ0V4cCwg
WworICAgICAgICAibmV3IFJlZ0V4cCgpIiwKKyAgICAgICAgIi9hYmMvIiwKKyAgICAgICAgIi9h
YmMvZyIsCisgICAgICAgICIvYWJjL2kiLAorICAgICAgICAiL2FiYy9naSIsCisgICAgICAgICIv
YWJjL20iLAorICAgICAgICAiL2FiYy9tZyIsCisgICAgICAgICIvYWJjL21pIiwKKyAgICAgICAg
Ii9hYmMvbWdpIgorICAgIF0sIGNhbGxiYWNrKTsKK30KKworLy8gRklYTUU6IFRoZSBmb2xsb3dp
bmcgYXJlIHN1cHBvcnRlZCwgYnV0IG5vdCBpbiB0aGUgc3BlYzoKKy8vICAgVHlwZWQgQXJyYXlz
CisvLyAgIE1lc3NhZ2UgUG9ydAorCitmdW5jdGlvbiB0ZXN0SW1hZ2VEYXRhKGNhbGxiYWNrKQor
eworICAgIGRlYnVnKCJUZXN0aW5nIEltYWdlRGF0YSIpOworICAgIGV2YWxBbmRMb2coImNhbnZh
cyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpIik7CisgICAgZXZhbEFuZExvZygi
Y2FudmFzLndpZHRoID0gOCIpOworICAgIGV2YWxBbmRMb2coImNhbnZhcy5oZWlnaHQgPSA4Iik7
CisgICAgZXZhbEFuZExvZygidGVzdF9kYXRhID0gY2FudmFzLmdldENvbnRleHQoJzJkJykuZ2V0
SW1hZ2VEYXRhKDAsIDAsIDgsIDgpIik7CisKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDI1Njsg
KytpKSB7CisgICAgICAgIHRlc3RfZGF0YS5kYXRhW2ldID0gaTsKKyAgICB9CisKKyAgICB0ZXN0
VmFsdWUodGVzdF9kYXRhLCBmdW5jdGlvbihyZXN1bHQpIHsKKyAgICAgICAgd2luZG93LnJlc3Vs
dCA9IHJlc3VsdDsKKyAgICAgICAgc2hvdWxkQmVUcnVlKCJ0ZXN0X2RhdGEgIT09IHJlc3VsdCIp
OworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIk9iamVjdC5wcm90b3R5cGUudG9TdHJp
bmcuY2FsbChyZXN1bHQpIiwgIltvYmplY3QgSW1hZ2VEYXRhXSIpOworICAgICAgICBzaG91bGRC
ZSgicmVzdWx0LndpZHRoIiwgInRlc3RfZGF0YS53aWR0aCIpOworICAgICAgICBzaG91bGRCZSgi
cmVzdWx0LmhlaWdodCIsICJ0ZXN0X2RhdGEuaGVpZ2h0Iik7CisgICAgICAgIHNob3VsZEJlKCJy
ZXN1bHQuZGF0YS5sZW5ndGgiLCAidGVzdF9kYXRhLmRhdGEubGVuZ3RoIik7CisgICAgICAgIGlm
IChhcnJheUNvbXBhcmUodGVzdF9kYXRhLmRhdGEsIHJlc3VsdC5kYXRhKSkgeworICAgICAgICAg
ICAgdGVzdFBhc3NlZCgicmVzdWx0IGRhdGEgbWF0Y2hlcyIpOworICAgICAgICB9IGVsc2Ugewor
ICAgICAgICAgICAgdGVzdEZhaWxlZCgicmVzdWx0IGRhdGEgZG9lc24ndCBtYXRjaCIpOworICAg
ICAgICB9CisgICAgICAgIGNhbGxiYWNrKCk7CisgICAgfSk7Cit9CisKK2Z1bmN0aW9uIHJlYWRC
bG9iQXNUZXh0KGJsb2IsIGNhbGxiYWNrKQoreworICAgIHZhciByZWFkZXIgPSBuZXcgRmlsZVJl
YWRlcigpOworICAgIHJlYWRlci5vbmxvYWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGlmIChl
LnRhcmdldC5yZWFkeVN0YXRlID09PSBGaWxlUmVhZGVyLkRPTkUpIHsKKyAgICAgICAgICAgIGNh
bGxiYWNrKGUudGFyZ2V0LnJlc3VsdCk7CisgICAgICAgIH0KKyAgICB9OworICAgIHJlYWRlci5v
bmVycm9yID0gZnVuY3Rpb24oZSkgeworICAgICAgICB0ZXN0RmFpbGVkKCJFcnJvciByZWFkaW5n
IGJsb2IgYXMgdGV4dDogIiArIGUpOworICAgICAgICBkb25lKCk7CisgICAgfTsKKyAgICByZWFk
ZXIucmVhZEFzVGV4dChibG9iKTsKK30KKworZnVuY3Rpb24gY2hlY2tCbG9iQ29udGVudHMoYmxv
YiwgZXhwZWN0ZWQsIGNhbGxiYWNrKQoreworICAgIHJlYWRCbG9iQXNUZXh0KGJsb2IsIGZ1bmN0
aW9uKHRleHQpIHsKKyAgICAgICAgd2luZG93LnRleHQgPSB0ZXh0OworICAgICAgICBzaG91bGRC
ZUVxdWFsVG9TdHJpbmcoInRleHQiLCBleHBlY3RlZCk7CisgICAgICAgIGNhbGxiYWNrKCk7Cisg
ICAgfSk7Cit9CisKK2Z1bmN0aW9uIGNvbXBhcmVCbG9icyhibG9iMSwgYmxvYjIsIGNhbGxiYWNr
KQoreworICAgIHJlYWRCbG9iQXNUZXh0KGJsb2IxLCBmdW5jdGlvbih0ZXh0MSkgeworICAgICAg
ICByZWFkQmxvYkFzVGV4dChibG9iMiwgZnVuY3Rpb24odGV4dDIpIHsKKyAgICAgICAgICAgIHdp
bmRvdy50ZXh0MSA9IHRleHQxOworICAgICAgICAgICAgd2luZG93LnRleHQyID0gdGV4dDI7Cisg
ICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInRleHQyIiwgdGV4dDEpOworICAgICAg
ICAgICAgY2FsbGJhY2soKTsKKyAgICAgICAgfSk7CisgICAgfSk7Cit9CisKK2Z1bmN0aW9uIHRl
c3RCbG9iKGNhbGxiYWNrKQoreworICAgIGRlYnVnKCJUZXN0aW5nIEJsb2IiKTsKKyAgICBldmFs
QW5kTG9nKCJCbG9iQnVpbGRlciA9IHdpbmRvdy5CbG9iQnVpbGRlciB8fCB3aW5kb3cuV2ViS2l0
QmxvYkJ1aWxkZXIiKTsKKyAgICBzaG91bGRCZVRydWUoIkJsb2JCdWlsZGVyICE9IG51bGwiKTsK
KyAgICBzaG91bGRCZVRydWUoIkZpbGVSZWFkZXIgIT0gbnVsbCIpOworICAgIGV2YWxBbmRMb2co
ImJ1aWxkZXIgPSBuZXcgQmxvYkJ1aWxkZXIoKSIpOworICAgIGV2YWxBbmRMb2coInRlc3RfY29u
dGVudCA9ICdUaGlzIGlzIGEgdGVzdC4gVGhpcyBpcyBvbmx5IGEgdGVzdC4nIik7CisgICAgZXZh
bEFuZExvZygiYnVpbGRlci5hcHBlbmQodGVzdF9jb250ZW50KSIpOworICAgIGV2YWxBbmRMb2co
InRlc3RfZGF0YSA9IGJ1aWxkZXIuZ2V0QmxvYigpIik7CisgICAgdGVzdFZhbHVlKHRlc3RfZGF0
YSwgZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgICAgIHdpbmRvdy5yZXN1bHQgPSByZXN1bHQ7Cisg
ICAgICAgIHNob3VsZEJlVHJ1ZSgidGVzdF9kYXRhICE9PSByZXN1bHQiKTsKKyAgICAgICAgc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCJPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwocmVzdWx0
KSIsICJbb2JqZWN0IEJsb2JdIik7CisgICAgICAgIHNob3VsZEJlKCJyZXN1bHQuc2l6ZSIsICJ0
ZXN0X2RhdGEuc2l6ZSIpOworICAgICAgICBzaG91bGRCZSgicmVzdWx0LnR5cGUiLCAidGVzdF9k
YXRhLnR5cGUiKTsKKyAgICAgICAgY2hlY2tCbG9iQ29udGVudHMocmVzdWx0LCB0ZXN0X2NvbnRl
bnQsIGNhbGxiYWNrKTsKKyAgICB9KTsKK30KKworZnVuY3Rpb24gY29tcGFyZUZpbGVzKGZpbGUx
LCBmaWxlMiwgY2FsbGJhY2spCit7CisgICAgd2luZG93LmZpbGUxID0gZmlsZTE7CisgICAgd2lu
ZG93LmZpbGUyID0gZmlsZTI7CisgICAgc2hvdWxkQmVUcnVlKCJmaWxlMSAhPT0gZmlsZTIiKTsK
KyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIk9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2Fs
bChmaWxlMSkiLCAiW29iamVjdCBGaWxlXSIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygi
T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGZpbGUyKSIsICJbb2JqZWN0IEZpbGVdIik7
CisgICAgZGVidWcoImZpbGUxLnNpemU6ICIgKyBmaWxlMS5zaXplKTsKKyAgICBzaG91bGRCZSgi
ZmlsZTEuc2l6ZSIsICJmaWxlMi5zaXplIik7CisgICAgZGVidWcoImZpbGUxLnR5cGU6ICIgKyBm
aWxlMS50eXBlKTsKKyAgICBzaG91bGRCZSgiZmlsZTEudHlwZSIsICJmaWxlMi50eXBlIik7Cisg
ICAgZGVidWcoImZpbGUxLm5hbWU6ICIgKyBmaWxlMS5uYW1lKTsKKyAgICBzaG91bGRCZSgiZmls
ZTEubmFtZSIsICJmaWxlMi5uYW1lIik7CisgICAgZGVidWcoImZpbGUxLmxhc3RNb2RpZmllZERh
dGU6ICIgKyBmaWxlMS5sYXN0TW9kaWZpZWREYXRlKTsKKyAgICBzaG91bGRCZSgiU3RyaW5nKGZp
bGUxLmxhc3RNb2RpZmllZERhdGUpIiwgIlN0cmluZyhmaWxlMi5sYXN0TW9kaWZpZWREYXRlKSIp
OworICAgIGlmIChjYWxsYmFjaykgeworICAgICAgICBjb21wYXJlQmxvYnMoZmlsZTEsIGZpbGUy
LCBjYWxsYmFjayk7CisgICAgfQorfQorCitmdW5jdGlvbiB0ZXN0RmlsZShjYWxsYmFjaykKK3sK
KyAgICBkZWJ1ZygiVGVzdGluZyBGaWxlIik7CisgICAgZXZhbEFuZExvZygidGVzdF9jb250ZW50
ID0gZmlsZUlucHV0LmZpbGVzWzBdIik7CisKKyAgICB3aW5kb3cudGVzdF9kYXRhID0gdGVzdF9j
b250ZW50OworICAgIHRlc3RWYWx1ZSh0ZXN0X2RhdGEsIGZ1bmN0aW9uKHJlc3VsdCkgeworICAg
ICAgICB3aW5kb3cucmVzdWx0ID0gcmVzdWx0OworICAgICAgICBjb21wYXJlRmlsZXMocmVzdWx0
LCB0ZXN0X2RhdGEsIGNhbGxiYWNrKTsKKyAgICB9KTsKK30KKworCitmdW5jdGlvbiB0ZXN0Rmls
ZUxpc3QoY2FsbGJhY2spCit7CisgICAgZGVidWcoIlRlc3RpbmcgRmlsZUxpc3QiKTsKKyAgICBl
dmFsQW5kTG9nKCJ0ZXN0X2NvbnRlbnQgPSBmaWxlSW5wdXQuZmlsZXMiKTsKKworICAgIHdpbmRv
dy50ZXN0X2RhdGEgPSB0ZXN0X2NvbnRlbnQ7CisgICAgdGVzdFZhbHVlKHRlc3RfZGF0YSwgZnVu
Y3Rpb24ocmVzdWx0KSB7CisgICAgICAgIHdpbmRvdy5yZXN1bHQgPSByZXN1bHQ7CisgICAgICAg
IHNob3VsZEJlVHJ1ZSgidGVzdF9kYXRhICE9PSByZXN1bHQiKTsKKyAgICAgICAgc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCJPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwocmVzdWx0KSIsICJb
b2JqZWN0IEZpbGVMaXN0XSIpOworICAgICAgICBzaG91bGRCZSgicmVzdWx0Lmxlbmd0aCIsICJ0
ZXN0X2RhdGEubGVuZ3RoIik7CisgICAgICAgIGkgPSAwOworICAgICAgICBmdW5jdGlvbiBkb05l
eHQoKSB7CisgICAgICAgICAgICBpZiAoaSA+PSB0ZXN0X2RhdGEubGVuZ3RoKSB7CisgICAgICAg
ICAgICAgICAgY2FsbGJhY2soKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAg
ICAgZGVidWcoImNvbXBhcmluZyBmaWxlWyIgKyBpICsgIl0iKTsKKyAgICAgICAgICAgICAgICBj
b21wYXJlRmlsZXMocmVzdWx0W2ldLCB0ZXN0X2RhdGFbaSsrXSwgZG9OZXh0KTsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgfQorICAgICAgICBkb05leHQoKTsKKyAgICB9KTsKK30KKworZnVuY3Rp
b24gdGVzdEFycmF5KGNhbGxiYWNrKSB7CisgICAgZGVidWcoIlRlc3RpbmcgQXJyYXkiKTsKKyAg
ICBldmFsQW5kTG9nKCJ0ZXN0X2RhdGEgPSBbXSIpOworICAgIGV2YWxBbmRMb2coInRlc3RfZGF0
YVswXSA9ICdmb28nIik7CisgICAgZXZhbEFuZExvZygidGVzdF9kYXRhWzFdID0gJ2JhciciKTsK
KyAgICBldmFsQW5kTG9nKCJ0ZXN0X2RhdGFbMTBdID0gdHJ1ZSIpOworICAgIGV2YWxBbmRMb2co
InRlc3RfZGF0YVsxMV0gPSBmYWxzZSIpOworICAgIGV2YWxBbmRMb2coInRlc3RfZGF0YVsyMF0g
PSAxMjMiKTsKKyAgICBldmFsQW5kTG9nKCJ0ZXN0X2RhdGFbMjFdID0gNDU2Iik7CisgICAgZXZh
bEFuZExvZygidGVzdF9kYXRhWzMwXSA9IG51bGwiKTsKKworICAgIHRlc3RWYWx1ZSh0ZXN0X2Rh
dGEsIGZ1bmN0aW9uKHJlc3VsdCkgeworICAgICAgICB3aW5kb3cucmVzdWx0ID0gcmVzdWx0Owor
ICAgICAgICBzaG91bGRCZVRydWUoInRlc3RfZGF0YSAhPT0gcmVzdWx0Iik7CisgICAgICAgIHNo
b3VsZEJlVHJ1ZSgidGVzdF9kYXRhLmxlbmd0aCA9PT0gcmVzdWx0Lmxlbmd0aCIpOworICAgICAg
ICBPYmplY3Qua2V5cyh0ZXN0X2RhdGEpLmZvckVhY2goCisgICAgICAgICAgICBmdW5jdGlvbihr
ZXkpIHsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgidGVzdF9kYXRhWyIgKyBrZXkgKyAiXSIs
ICJyZXN1bHRbIiArIGtleSArICJdIik7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgY2FsbGJh
Y2soKTsKKyAgICB9KTsKK30KKworZnVuY3Rpb24gdGVzdE9iamVjdChjYWxsYmFjaykgeworICAg
IGRlYnVnKCJUZXN0aW5nIE9iamVjdCIpOworICAgIGV2YWxBbmRMb2coInRlc3RfZGF0YSA9IFtd
Iik7CisgICAgZXZhbEFuZExvZygidGVzdF9kYXRhWzBdID0gJ2ZvbyciKTsKKyAgICBldmFsQW5k
TG9nKCJ0ZXN0X2RhdGFbMV0gPSAnYmFyJyIpOworICAgIGV2YWxBbmRMb2coInRlc3RfZGF0YVsn
YSddID0gdHJ1ZSIpOworICAgIGV2YWxBbmRMb2coInRlc3RfZGF0YVsnYiddID0gZmFsc2UiKTsK
KyAgICBldmFsQW5kTG9nKCJ0ZXN0X2RhdGFbJ2ZvbyddID0gMTIzIik7CisgICAgZXZhbEFuZExv
ZygidGVzdF9kYXRhWydiYXInXSA9IDQ1NiIpOworICAgIGV2YWxBbmRMb2coInRlc3RfZGF0YVsn
J10gPSBudWxsIik7CisKKyAgICB0ZXN0VmFsdWUodGVzdF9kYXRhLCBmdW5jdGlvbihyZXN1bHQp
IHsKKyAgICAgICAgd2luZG93LnJlc3VsdCA9IHJlc3VsdDsKKyAgICAgICAgc2hvdWxkQmVUcnVl
KCJ0ZXN0X2RhdGEgIT09IHJlc3VsdCIpOworICAgICAgICBzaG91bGRCZVRydWUoImFycmF5Q29t
cGFyZShPYmplY3Qua2V5cyhyZXN1bHQpLnNvcnQoKSwgT2JqZWN0LmtleXModGVzdF9kYXRhKS5z
b3J0KCkpIik7CisgICAgICAgIE9iamVjdC5rZXlzKHRlc3RfZGF0YSkuZm9yRWFjaCgKKyAgICAg
ICAgICAgIGZ1bmN0aW9uKGtleSkgeworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJ0ZXN0X2Rh
dGFbIiArIEpTT04uc3RyaW5naWZ5KGtleSkgKyAiXSIsICJyZXN1bHRbIiArIEpTT04uc3RyaW5n
aWZ5KGtleSkgKyAiXSIpOworICAgICAgICAgICAgfSk7CisgICAgICAgIGNhbGxiYWNrKCk7Cisg
ICAgfSk7Cit9CisKK2Z1bmN0aW9uIHRlc3RCYWRUeXBlcygpCit7CisgICAgZGVidWcoIiIpOwor
ICAgIGRlYnVnKCJUZXN0IHR5cGVzIHRoYXQgY2FuJ3QgYmUgY2xvbmVkOiIpOworICAgIGRlYnVn
KCIiKTsKKworICAgIGV2YWxBbmRMb2coInRyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24oJ3N0
b3JlTmFtZScsIElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUpIik7CisgICAgZXZhbEFuZExvZygi
c3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmVOYW1lJykiKTsKKyAgICB0cmFu
c2FjdGlvbi5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CisgICAgdHJhbnNhY3Rp
b24ub25jb21wbGV0ZSA9IHVuZXhwZWN0ZWRDb21wbGV0ZUNhbGxiYWNrOworICAgIHRyYW5zYWN0
aW9uLm9uYWJvcnQgPSBkb25lOworCisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJPdGhlciBK
YXZhU2NyaXB0IG9iamVjdCB0eXBlczoiKTsKKyAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJz
dG9yZS5wdXQobmV3IEVycm9yLCAna2V5JykiLCAiRE9NRXhjZXB0aW9uLkRBVEFfQ0xPTkVfRVJS
Iik7CisgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigic3RvcmUucHV0KG5ldyBGdW5jdGlvbiwg
J2tleScpIiwgIkRPTUV4Y2VwdGlvbi5EQVRBX0NMT05FX0VSUiIpOworCisgICAgZGVidWcoIiIp
OworICAgIGRlYnVnKCJPdGhlciBob3N0IG9iamVjdCB0eXBlczoiKTsKKyAgICBldmFsQW5kRXhw
ZWN0RXhjZXB0aW9uKCJzdG9yZS5wdXQod2luZG93LCAna2V5JykiLCAiRE9NRXhjZXB0aW9uLkRB
VEFfQ0xPTkVfRVJSIik7CisgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigic3RvcmUucHV0KGRv
Y3VtZW50LCAna2V5JykiLCAiRE9NRXhjZXB0aW9uLkRBVEFfQ0xPTkVfRVJSIik7CisgICAgZXZh
bEFuZEV4cGVjdEV4Y2VwdGlvbigic3RvcmUucHV0KGRvY3VtZW50LmJvZHksICdrZXknKSIsICJE
T01FeGNlcHRpb24uREFUQV9DTE9ORV9FUlIiKTsKK30KKwordGVzdCgpOworCis8L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>121526</attachid>
            <date>2012-01-06 17:47:13 -0800</date>
            <delta_ts>2012-01-09 11:54:19 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-74897-20120106174712.patch</filename>
            <type>text/plain</type>
            <size>47118</size>
            <attacher name="Joshua Bell">jsbell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA0MjgzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOWViYjFiZGY3MDgwZmU0NjRhYTZh
ZWE0YTQ5OWRlNjMwMGMyMTA0Mi4uNTkxNjg0MmIxODczZjk0ZWFiZThhZDQ1NTE4MjhhODM3NmVh
OWU4ZSAxMDA3NTUKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDEyLTAxLTA2ICBKb3NodWEgQmVsbCAgPGpz
YmVsbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhlZERCOiBBZGQgdGVzdHMgZm9yIHN0
cnVjdHVyZWQgY2xvbmUgZGF0YQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NzQ4OTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3N0cnVjdHVyZWQtY2xvbmUuaHRtbDogQWRk
ZWQuCisKIDIwMTItMDEtMDYgIENzYWJhIE9zenRyb2dvbsOhYyAgPG9zc3lAd2Via2l0Lm9yZz4K
IAogICAgICAgICBbUXRdIFVucmV2aWV3ZWQgZ2FyZGVuaW5nLiBTa2lwIGEgbmV3IGZhaWxpbmcg
dGVzdC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNl
cy90ZXN0LWRhdGEuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNl
cy90ZXN0LWRhdGEuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NWJkYjI4YWQ1OTJhZTJmYWY4YzdhOTNjNzNj
ZTAyYmNmMjBmZDAyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvcmVzb3VyY2VzL3Rlc3QtZGF0YS5odG1sCkBAIC0wLDAgKzEsNCBAQAorPCFET0NUWVBF
IGh0bWw+Cis8dGl0bGU+VGhpcyBpcyBzb21lIHRlc3QgZGF0YTwvdGl0bGU+Cis8aDE+VGVzdCBk
YXRhITwvaDE+Cis8cD5HZXQgeW91ciB0ZXN0IGRhdGEgaGVyZSEKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy90ZXN0LWRhdGEudHh0IGIvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL3Rlc3QtZGF0YS50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZGVlM2EyZDNjN2U2YTE3NmZhY2E3ZTUwODc1ODYyZDQxYjdkM2VjZQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy90ZXN0LWRhdGEu
dHh0CkBAIC0wLDAgKzEgQEAKK0xvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1
ciBhZGlwaXNjaW5nIGVsaXQuIEFlbmVhbiBsYW9yZWV0IGRvbG9yIGlkIHVybmEgZWxlaWZlbmQg
YWxpcXVldC4gTnVsbGEgdmVsIGRvbG9yIGlwc3VtLiBBbGlxdWFtIHV0IHR1cnBpcyBuaXNsLCBp
biB2dWxwdXRhdGUgc2FwaWVuLiBDdW0gc29jaWlzIG5hdG9xdWUgcGVuYXRpYnVzIGV0IG1hZ25p
cyBkaXMgcGFydHVyaWVudCBtb250ZXMsIG5hc2NldHVyIHJpZGljdWx1cyBtdXMuIFNlZCBjb25n
dWUgbWFnbmEgdml0YWUgZG9sb3IgZmV1Z2lhdCB2ZWhpY3VsYS4gU2VkIHZvbHV0cGF0LCB0ZWxs
dXMgdmVsIHZhcml1cyB2ZXN0aWJ1bHVtLCBwdXJ1cyBxdWFtIG1vbGxpcyBzYXBpZW4sIGluIGNv
bmRpbWVudHVtIGxlbyBuZXF1ZSBzZWQgbnVsbGEuIE51bmMgcXVpcyBwb3J0YSBlbGl0LiBQZWxs
ZW50ZXNxdWUgZXJhdCBsZWN0dXMsIHVsdHJpY2llcyBhIGxvYm9ydGlzIGlkLCBmYXVjaWJ1cyBp
ZCBxdWFtLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvc3RydWN0
dXJlZC1jbG9uZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9z
dHJ1Y3R1cmVkLWNsb25lLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNzJjMWQ2MmJiNGY1ZTAy
MDk1Y2EyMWRlYzA2NjhmODJhMTUyZTA0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvc3RydWN0dXJlZC1jbG9uZS1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSw3NTkgQEAKKworVGVzdCBzdHJ1Y3R1cmVkIGNsb25lIHBlcm11dGF0aW9ucyBpbiBJbmRleGVk
REIuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitpbmRleGVkREIgPSB3aW5kb3cu
aW5kZXhlZERCIHx8IHdpbmRvdy53ZWJraXRJbmRleGVkREIKK1BBU1MgaW5kZXhlZERCICE9IG51
bGwgaXMgdHJ1ZQorSURCVHJhbnNhY3Rpb24gPSB3aW5kb3cuSURCVHJhbnNhY3Rpb24gfHwgd2lu
ZG93LndlYmtpdElEQlRyYW5zYWN0aW9uCitQQVNTIElEQlRyYW5zYWN0aW9uICE9IG51bGwgaXMg
dHJ1ZQorCitQcmVwYXJlIERhdGFiYXNlCitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoJ3N0cnVj
dHVyZWQtY2xvbmUnKQoraW5kZXhlZERCLm9wZW4oJ3N0cnVjdHVyZWQtY2xvbmUnKQorZGIgPSBy
ZXF1ZXN0LnJlc3VsdAorUEFTUyBkYi52ZXJzaW9uIGlzICIiCitkYi5zZXRWZXJzaW9uKCcxJykK
K2RiLmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKQorCitSdW5uaW5nIHRlc3RzLi4uCisK
K1Rlc3Rpbmc6IHVuZGVmaW5lZAordHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3RvcmVO
YW1lJywgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkKK3N0b3JlID0gdHJhbnNhY3Rpb24ub2Jq
ZWN0U3RvcmUoJ3N0b3JlTmFtZScpCit2YWx1ZSBpczogdW5kZWZpbmVkICh0eXBlOiB1bmRlZmlu
ZWQpCitzdG9yZS5wdXQodmFsdWUsICdrZXknKQorc3RvcmUuZ2V0KCdrZXknKQorUEFTUyBpcyh0
ZXN0X2RhdGEsIHJlc3VsdCkgaXMgdHJ1ZQorCisKK1Rlc3Rpbmc6IG51bGwKK3RyYW5zYWN0aW9u
ID0gZGIudHJhbnNhY3Rpb24oJ3N0b3JlTmFtZScsIElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUp
CitzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKQordmFsdWUgaXM6
IG51bGwgKHR5cGU6IG9iamVjdCkKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5nZXQo
J2tleScpCitQQVNTIGlzKHRlc3RfZGF0YSwgcmVzdWx0KSBpcyB0cnVlCisKKworVGVzdGluZyBi
b29sZWFuIHByaW1pdGl2ZXMKKworVGVzdGluZzogdHJ1ZQordHJhbnNhY3Rpb24gPSBkYi50cmFu
c2FjdGlvbignc3RvcmVOYW1lJywgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkKK3N0b3JlID0g
dHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpCit2YWx1ZSBpczogdHJ1ZSAodHlw
ZTogYm9vbGVhbikKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5nZXQoJ2tleScpCitQ
QVNTIGlzKHRlc3RfZGF0YSwgcmVzdWx0KSBpcyB0cnVlCisKK1Rlc3Rpbmc6IGZhbHNlCit0cmFu
c2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUnLCBJREJUcmFuc2FjdGlvbi5SRUFE
X1dSSVRFKQorc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmVOYW1lJykKK3Zh
bHVlIGlzOiBmYWxzZSAodHlwZTogYm9vbGVhbikKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScpCitz
dG9yZS5nZXQoJ2tleScpCitQQVNTIGlzKHRlc3RfZGF0YSwgcmVzdWx0KSBpcyB0cnVlCisKKwor
VGVzdGluZyBudW1iZXIgcHJpbWl0aXZlcworCitUZXN0aW5nOiBOYU4KK3RyYW5zYWN0aW9uID0g
ZGIudHJhbnNhY3Rpb24oJ3N0b3JlTmFtZScsIElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUpCitz
dG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKQordmFsdWUgaXM6IE5h
TiAodHlwZTogbnVtYmVyKQorc3RvcmUucHV0KHZhbHVlLCAna2V5JykKK3N0b3JlLmdldCgna2V5
JykKK1BBU1MgaXModGVzdF9kYXRhLCByZXN1bHQpIGlzIHRydWUKKworVGVzdGluZzogLUluZmlu
aXR5Cit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUnLCBJREJUcmFuc2Fj
dGlvbi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmVO
YW1lJykKK3ZhbHVlIGlzOiAtSW5maW5pdHkgKHR5cGU6IG51bWJlcikKK3N0b3JlLnB1dCh2YWx1
ZSwgJ2tleScpCitzdG9yZS5nZXQoJ2tleScpCitQQVNTIGlzKHRlc3RfZGF0YSwgcmVzdWx0KSBp
cyB0cnVlCisKK1Rlc3Rpbmc6IC1OdW1iZXIuTUFYX1ZBTFVFCit0cmFuc2FjdGlvbiA9IGRiLnRy
YW5zYWN0aW9uKCdzdG9yZU5hbWUnLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKQorc3RvcmUg
PSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmVOYW1lJykKK3ZhbHVlIGlzOiAtMS43OTc2
OTMxMzQ4NjIzMTU3ZSszMDggKHR5cGU6IG51bWJlcikKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScp
CitzdG9yZS5nZXQoJ2tleScpCitQQVNTIGlzKHRlc3RfZGF0YSwgcmVzdWx0KSBpcyB0cnVlCisK
K1Rlc3Rpbmc6IC1OdW1iZXIuTUlOX1ZBTFVFCit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9u
KCdzdG9yZU5hbWUnLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFuc2Fj
dGlvbi5vYmplY3RTdG9yZSgnc3RvcmVOYW1lJykKK3ZhbHVlIGlzOiAtNWUtMzI0ICh0eXBlOiBu
dW1iZXIpCitzdG9yZS5wdXQodmFsdWUsICdrZXknKQorc3RvcmUuZ2V0KCdrZXknKQorUEFTUyBp
cyh0ZXN0X2RhdGEsIHJlc3VsdCkgaXMgdHJ1ZQorCitUZXN0aW5nOiAtMAordHJhbnNhY3Rpb24g
PSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1lJywgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkK
K3N0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpCit2YWx1ZSBpczog
MCAodHlwZTogbnVtYmVyKQorc3RvcmUucHV0KHZhbHVlLCAna2V5JykKK3N0b3JlLmdldCgna2V5
JykKK0ZBSUwgaXModGVzdF9kYXRhLCByZXN1bHQpIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2Uu
CisKK1Rlc3Rpbmc6IDAKK3RyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24oJ3N0b3JlTmFtZScs
IElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUpCitzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0
b3JlKCdzdG9yZU5hbWUnKQordmFsdWUgaXM6IDAgKHR5cGU6IG51bWJlcikKK3N0b3JlLnB1dCh2
YWx1ZSwgJ2tleScpCitzdG9yZS5nZXQoJ2tleScpCitQQVNTIGlzKHRlc3RfZGF0YSwgcmVzdWx0
KSBpcyB0cnVlCisKK1Rlc3Rpbmc6IE51bWJlci5NSU5fVkFMVUUKK3RyYW5zYWN0aW9uID0gZGIu
dHJhbnNhY3Rpb24oJ3N0b3JlTmFtZScsIElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUpCitzdG9y
ZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKQordmFsdWUgaXM6IDVlLTMy
NCAodHlwZTogbnVtYmVyKQorc3RvcmUucHV0KHZhbHVlLCAna2V5JykKK3N0b3JlLmdldCgna2V5
JykKK1BBU1MgaXModGVzdF9kYXRhLCByZXN1bHQpIGlzIHRydWUKKworVGVzdGluZzogTnVtYmVy
Lk1BWF9WQUxVRQordHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1lJywgSURC
VHJhbnNhY3Rpb24uUkVBRF9XUklURSkKK3N0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUo
J3N0b3JlTmFtZScpCit2YWx1ZSBpczogMS43OTc2OTMxMzQ4NjIzMTU3ZSszMDggKHR5cGU6IG51
bWJlcikKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5nZXQoJ2tleScpCitQQVNTIGlz
KHRlc3RfZGF0YSwgcmVzdWx0KSBpcyB0cnVlCisKK1Rlc3Rpbmc6IEluZmluaXR5Cit0cmFuc2Fj
dGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUnLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dS
SVRFKQorc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmVOYW1lJykKK3ZhbHVl
IGlzOiBJbmZpbml0eSAodHlwZTogbnVtYmVyKQorc3RvcmUucHV0KHZhbHVlLCAna2V5JykKK3N0
b3JlLmdldCgna2V5JykKK1BBU1MgaXModGVzdF9kYXRhLCByZXN1bHQpIGlzIHRydWUKKworCitU
ZXN0aW5nIHN0cmluZyBwcmltaXRpdmVzCisKK1Rlc3Rpbmc6ICcnCit0cmFuc2FjdGlvbiA9IGRi
LnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUnLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKQorc3Rv
cmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmVOYW1lJykKK3ZhbHVlIGlzOiAgKHR5
cGU6IHN0cmluZykKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5nZXQoJ2tleScpCitQ
QVNTIGlzKHRlc3RfZGF0YSwgcmVzdWx0KSBpcyB0cnVlCisKK1Rlc3Rpbmc6ICd0aGlzIGlzIGEg
c2FtcGxlIHN0cmluZycKK3RyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24oJ3N0b3JlTmFtZScs
IElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUpCitzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0
b3JlKCdzdG9yZU5hbWUnKQordmFsdWUgaXM6IHRoaXMgaXMgYSBzYW1wbGUgc3RyaW5nICh0eXBl
OiBzdHJpbmcpCitzdG9yZS5wdXQodmFsdWUsICdrZXknKQorc3RvcmUuZ2V0KCdrZXknKQorUEFT
UyBpcyh0ZXN0X2RhdGEsIHJlc3VsdCkgaXMgdHJ1ZQorCitUZXN0aW5nOiAnbnVsbChcMCknCit0
cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUnLCBJREJUcmFuc2FjdGlvbi5S
RUFEX1dSSVRFKQorc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmVOYW1lJykK
K3ZhbHVlIGlzOiBudWxsKCkgKHR5cGU6IHN0cmluZykKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScp
CitzdG9yZS5nZXQoJ2tleScpCitQQVNTIGlzKHRlc3RfZGF0YSwgcmVzdWx0KSBpcyB0cnVlCisK
KworVGVzdGluZyBCb29sZWFuIG9iamVjdHMKKworVGVzdGluZzogbmV3IEJvb2xlYW4odHJ1ZSkK
K3RyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24oJ3N0b3JlTmFtZScsIElEQlRyYW5zYWN0aW9u
LlJFQURfV1JJVEUpCitzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUn
KQordmFsdWUgaXM6IHRydWUgKHR5cGU6IG9iamVjdCkKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScp
CitzdG9yZS5nZXQoJ2tleScpCitTdHJpbmcocmVzdWx0KTogdHJ1ZQorUEFTUyB0eXBlb2YgcmVz
dWx0IGlzICJvYmplY3QiCitQQVNTIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChyZXN1
bHQpIGlzIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0ZXN0X2RhdGEpCitQQVNTIHRl
c3RfZGF0YSAhPT0gcmVzdWx0IGlzIHRydWUKK1BBU1MgcmVzdWx0LnRvU3RyaW5nKCkgaXMgdGVz
dF9kYXRhLnRvU3RyaW5nKCkKK1BBU1MgaXModGVzdF9kYXRhLnZhbHVlT2YoKSwgcmVzdWx0LnZh
bHVlT2YoKSkgaXMgdHJ1ZQorCitUZXN0aW5nOiBuZXcgQm9vbGVhbihmYWxzZSkKK3RyYW5zYWN0
aW9uID0gZGIudHJhbnNhY3Rpb24oJ3N0b3JlTmFtZScsIElEQlRyYW5zYWN0aW9uLlJFQURfV1JJ
VEUpCitzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKQordmFsdWUg
aXM6IGZhbHNlICh0eXBlOiBvYmplY3QpCitzdG9yZS5wdXQodmFsdWUsICdrZXknKQorc3RvcmUu
Z2V0KCdrZXknKQorU3RyaW5nKHJlc3VsdCk6IGZhbHNlCitQQVNTIHR5cGVvZiByZXN1bHQgaXMg
Im9iamVjdCIKK1BBU1MgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHJlc3VsdCkgaXMg
T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHRlc3RfZGF0YSkKK1BBU1MgdGVzdF9kYXRh
ICE9PSByZXN1bHQgaXMgdHJ1ZQorUEFTUyByZXN1bHQudG9TdHJpbmcoKSBpcyB0ZXN0X2RhdGEu
dG9TdHJpbmcoKQorUEFTUyBpcyh0ZXN0X2RhdGEudmFsdWVPZigpLCByZXN1bHQudmFsdWVPZigp
KSBpcyB0cnVlCisKKworVGVzdGluZyBOdW1iZXIgb2JqZWN0cworCitUZXN0aW5nOiBuZXcgTnVt
YmVyKE5hTikKK3RyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24oJ3N0b3JlTmFtZScsIElEQlRy
YW5zYWN0aW9uLlJFQURfV1JJVEUpCitzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdz
dG9yZU5hbWUnKQordmFsdWUgaXM6IE5hTiAodHlwZTogb2JqZWN0KQorc3RvcmUucHV0KHZhbHVl
LCAna2V5JykKK3N0b3JlLmdldCgna2V5JykKK1N0cmluZyhyZXN1bHQpOiBOYU4KK1BBU1MgdHlw
ZW9mIHJlc3VsdCBpcyAib2JqZWN0IgorUEFTUyBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNh
bGwocmVzdWx0KSBpcyBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodGVzdF9kYXRhKQor
UEFTUyB0ZXN0X2RhdGEgIT09IHJlc3VsdCBpcyB0cnVlCitQQVNTIHJlc3VsdC50b1N0cmluZygp
IGlzIHRlc3RfZGF0YS50b1N0cmluZygpCitQQVNTIGlzKHRlc3RfZGF0YS52YWx1ZU9mKCksIHJl
c3VsdC52YWx1ZU9mKCkpIGlzIHRydWUKKworVGVzdGluZzogbmV3IE51bWJlcigtSW5maW5pdHkp
Cit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUnLCBJREJUcmFuc2FjdGlv
bi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmVOYW1l
JykKK3ZhbHVlIGlzOiAtSW5maW5pdHkgKHR5cGU6IG9iamVjdCkKK3N0b3JlLnB1dCh2YWx1ZSwg
J2tleScpCitzdG9yZS5nZXQoJ2tleScpCitTdHJpbmcocmVzdWx0KTogLUluZmluaXR5CitQQVNT
IHR5cGVvZiByZXN1bHQgaXMgIm9iamVjdCIKK1BBU1MgT2JqZWN0LnByb3RvdHlwZS50b1N0cmlu
Zy5jYWxsKHJlc3VsdCkgaXMgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHRlc3RfZGF0
YSkKK1BBU1MgdGVzdF9kYXRhICE9PSByZXN1bHQgaXMgdHJ1ZQorUEFTUyByZXN1bHQudG9TdHJp
bmcoKSBpcyB0ZXN0X2RhdGEudG9TdHJpbmcoKQorUEFTUyBpcyh0ZXN0X2RhdGEudmFsdWVPZigp
LCByZXN1bHQudmFsdWVPZigpKSBpcyB0cnVlCisKK1Rlc3Rpbmc6IG5ldyBOdW1iZXIoLU51bWJl
ci5NQVhfVkFMVUUpCit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUnLCBJ
REJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9y
ZSgnc3RvcmVOYW1lJykKK3ZhbHVlIGlzOiAtMS43OTc2OTMxMzQ4NjIzMTU3ZSszMDggKHR5cGU6
IG9iamVjdCkKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5nZXQoJ2tleScpCitTdHJp
bmcocmVzdWx0KTogLTEuNzk3NjkzMTM0ODYyMzE1N2UrMzA4CitQQVNTIHR5cGVvZiByZXN1bHQg
aXMgIm9iamVjdCIKK1BBU1MgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHJlc3VsdCkg
aXMgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHRlc3RfZGF0YSkKK1BBU1MgdGVzdF9k
YXRhICE9PSByZXN1bHQgaXMgdHJ1ZQorUEFTUyByZXN1bHQudG9TdHJpbmcoKSBpcyB0ZXN0X2Rh
dGEudG9TdHJpbmcoKQorUEFTUyBpcyh0ZXN0X2RhdGEudmFsdWVPZigpLCByZXN1bHQudmFsdWVP
ZigpKSBpcyB0cnVlCisKK1Rlc3Rpbmc6IG5ldyBOdW1iZXIoLU51bWJlci5NSU5fVkFMVUUpCit0
cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUnLCBJREJUcmFuc2FjdGlvbi5S
RUFEX1dSSVRFKQorc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmVOYW1lJykK
K3ZhbHVlIGlzOiAtNWUtMzI0ICh0eXBlOiBvYmplY3QpCitzdG9yZS5wdXQodmFsdWUsICdrZXkn
KQorc3RvcmUuZ2V0KCdrZXknKQorU3RyaW5nKHJlc3VsdCk6IC01ZS0zMjQKK1BBU1MgdHlwZW9m
IHJlc3VsdCBpcyAib2JqZWN0IgorUEFTUyBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwo
cmVzdWx0KSBpcyBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodGVzdF9kYXRhKQorUEFT
UyB0ZXN0X2RhdGEgIT09IHJlc3VsdCBpcyB0cnVlCitQQVNTIHJlc3VsdC50b1N0cmluZygpIGlz
IHRlc3RfZGF0YS50b1N0cmluZygpCitQQVNTIGlzKHRlc3RfZGF0YS52YWx1ZU9mKCksIHJlc3Vs
dC52YWx1ZU9mKCkpIGlzIHRydWUKKworVGVzdGluZzogbmV3IE51bWJlcigtMCkKK3RyYW5zYWN0
aW9uID0gZGIudHJhbnNhY3Rpb24oJ3N0b3JlTmFtZScsIElEQlRyYW5zYWN0aW9uLlJFQURfV1JJ
VEUpCitzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKQordmFsdWUg
aXM6IDAgKHR5cGU6IG9iamVjdCkKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5nZXQo
J2tleScpCitTdHJpbmcocmVzdWx0KTogMAorUEFTUyB0eXBlb2YgcmVzdWx0IGlzICJvYmplY3Qi
CitQQVNTIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChyZXN1bHQpIGlzIE9iamVjdC5w
cm90b3R5cGUudG9TdHJpbmcuY2FsbCh0ZXN0X2RhdGEpCitQQVNTIHRlc3RfZGF0YSAhPT0gcmVz
dWx0IGlzIHRydWUKK1BBU1MgcmVzdWx0LnRvU3RyaW5nKCkgaXMgdGVzdF9kYXRhLnRvU3RyaW5n
KCkKK1BBU1MgaXModGVzdF9kYXRhLnZhbHVlT2YoKSwgcmVzdWx0LnZhbHVlT2YoKSkgaXMgdHJ1
ZQorCitUZXN0aW5nOiBuZXcgTnVtYmVyKDApCit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9u
KCdzdG9yZU5hbWUnLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFuc2Fj
dGlvbi5vYmplY3RTdG9yZSgnc3RvcmVOYW1lJykKK3ZhbHVlIGlzOiAwICh0eXBlOiBvYmplY3Qp
CitzdG9yZS5wdXQodmFsdWUsICdrZXknKQorc3RvcmUuZ2V0KCdrZXknKQorU3RyaW5nKHJlc3Vs
dCk6IDAKK1BBU1MgdHlwZW9mIHJlc3VsdCBpcyAib2JqZWN0IgorUEFTUyBPYmplY3QucHJvdG90
eXBlLnRvU3RyaW5nLmNhbGwocmVzdWx0KSBpcyBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNh
bGwodGVzdF9kYXRhKQorUEFTUyB0ZXN0X2RhdGEgIT09IHJlc3VsdCBpcyB0cnVlCitQQVNTIHJl
c3VsdC50b1N0cmluZygpIGlzIHRlc3RfZGF0YS50b1N0cmluZygpCitQQVNTIGlzKHRlc3RfZGF0
YS52YWx1ZU9mKCksIHJlc3VsdC52YWx1ZU9mKCkpIGlzIHRydWUKKworVGVzdGluZzogbmV3IE51
bWJlcihOdW1iZXIuTUlOX1ZBTFVFKQordHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3Rv
cmVOYW1lJywgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkKK3N0b3JlID0gdHJhbnNhY3Rpb24u
b2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpCit2YWx1ZSBpczogNWUtMzI0ICh0eXBlOiBvYmplY3Qp
CitzdG9yZS5wdXQodmFsdWUsICdrZXknKQorc3RvcmUuZ2V0KCdrZXknKQorU3RyaW5nKHJlc3Vs
dCk6IDVlLTMyNAorUEFTUyB0eXBlb2YgcmVzdWx0IGlzICJvYmplY3QiCitQQVNTIE9iamVjdC5w
cm90b3R5cGUudG9TdHJpbmcuY2FsbChyZXN1bHQpIGlzIE9iamVjdC5wcm90b3R5cGUudG9TdHJp
bmcuY2FsbCh0ZXN0X2RhdGEpCitQQVNTIHRlc3RfZGF0YSAhPT0gcmVzdWx0IGlzIHRydWUKK1BB
U1MgcmVzdWx0LnRvU3RyaW5nKCkgaXMgdGVzdF9kYXRhLnRvU3RyaW5nKCkKK1BBU1MgaXModGVz
dF9kYXRhLnZhbHVlT2YoKSwgcmVzdWx0LnZhbHVlT2YoKSkgaXMgdHJ1ZQorCitUZXN0aW5nOiBu
ZXcgTnVtYmVyKE51bWJlci5NQVhfVkFMVUUpCit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9u
KCdzdG9yZU5hbWUnLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFuc2Fj
dGlvbi5vYmplY3RTdG9yZSgnc3RvcmVOYW1lJykKK3ZhbHVlIGlzOiAxLjc5NzY5MzEzNDg2MjMx
NTdlKzMwOCAodHlwZTogb2JqZWN0KQorc3RvcmUucHV0KHZhbHVlLCAna2V5JykKK3N0b3JlLmdl
dCgna2V5JykKK1N0cmluZyhyZXN1bHQpOiAxLjc5NzY5MzEzNDg2MjMxNTdlKzMwOAorUEFTUyB0
eXBlb2YgcmVzdWx0IGlzICJvYmplY3QiCitQQVNTIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcu
Y2FsbChyZXN1bHQpIGlzIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0ZXN0X2RhdGEp
CitQQVNTIHRlc3RfZGF0YSAhPT0gcmVzdWx0IGlzIHRydWUKK1BBU1MgcmVzdWx0LnRvU3RyaW5n
KCkgaXMgdGVzdF9kYXRhLnRvU3RyaW5nKCkKK1BBU1MgaXModGVzdF9kYXRhLnZhbHVlT2YoKSwg
cmVzdWx0LnZhbHVlT2YoKSkgaXMgdHJ1ZQorCitUZXN0aW5nOiBuZXcgTnVtYmVyKEluZmluaXR5
KQordHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1lJywgSURCVHJhbnNhY3Rp
b24uUkVBRF9XUklURSkKK3N0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3JlTmFt
ZScpCit2YWx1ZSBpczogSW5maW5pdHkgKHR5cGU6IG9iamVjdCkKK3N0b3JlLnB1dCh2YWx1ZSwg
J2tleScpCitzdG9yZS5nZXQoJ2tleScpCitTdHJpbmcocmVzdWx0KTogSW5maW5pdHkKK1BBU1Mg
dHlwZW9mIHJlc3VsdCBpcyAib2JqZWN0IgorUEFTUyBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5n
LmNhbGwocmVzdWx0KSBpcyBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodGVzdF9kYXRh
KQorUEFTUyB0ZXN0X2RhdGEgIT09IHJlc3VsdCBpcyB0cnVlCitQQVNTIHJlc3VsdC50b1N0cmlu
ZygpIGlzIHRlc3RfZGF0YS50b1N0cmluZygpCitQQVNTIGlzKHRlc3RfZGF0YS52YWx1ZU9mKCks
IHJlc3VsdC52YWx1ZU9mKCkpIGlzIHRydWUKKworCitUZXN0aW5nIFN0cmluZyBvYmplY3RzCisK
K1Rlc3Rpbmc6IG5ldyBTdHJpbmcoKQordHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3Rv
cmVOYW1lJywgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkKK3N0b3JlID0gdHJhbnNhY3Rpb24u
b2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpCit2YWx1ZSBpczogICh0eXBlOiBvYmplY3QpCitzdG9y
ZS5wdXQodmFsdWUsICdrZXknKQorc3RvcmUuZ2V0KCdrZXknKQorU3RyaW5nKHJlc3VsdCk6IAor
UEFTUyB0eXBlb2YgcmVzdWx0IGlzICJvYmplY3QiCitQQVNTIE9iamVjdC5wcm90b3R5cGUudG9T
dHJpbmcuY2FsbChyZXN1bHQpIGlzIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0ZXN0
X2RhdGEpCitQQVNTIHRlc3RfZGF0YSAhPT0gcmVzdWx0IGlzIHRydWUKK1BBU1MgcmVzdWx0LnRv
U3RyaW5nKCkgaXMgdGVzdF9kYXRhLnRvU3RyaW5nKCkKK1BBU1MgaXModGVzdF9kYXRhLnZhbHVl
T2YoKSwgcmVzdWx0LnZhbHVlT2YoKSkgaXMgdHJ1ZQorCitUZXN0aW5nOiBuZXcgU3RyaW5nKCd0
aGlzIGlzIGEgc2FtcGxlIHN0cmluZycpCit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdz
dG9yZU5hbWUnLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFuc2FjdGlv
bi5vYmplY3RTdG9yZSgnc3RvcmVOYW1lJykKK3ZhbHVlIGlzOiB0aGlzIGlzIGEgc2FtcGxlIHN0
cmluZyAodHlwZTogb2JqZWN0KQorc3RvcmUucHV0KHZhbHVlLCAna2V5JykKK3N0b3JlLmdldCgn
a2V5JykKK1N0cmluZyhyZXN1bHQpOiB0aGlzIGlzIGEgc2FtcGxlIHN0cmluZworUEFTUyB0eXBl
b2YgcmVzdWx0IGlzICJvYmplY3QiCitQQVNTIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2Fs
bChyZXN1bHQpIGlzIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0ZXN0X2RhdGEpCitQ
QVNTIHRlc3RfZGF0YSAhPT0gcmVzdWx0IGlzIHRydWUKK1BBU1MgcmVzdWx0LnRvU3RyaW5nKCkg
aXMgdGVzdF9kYXRhLnRvU3RyaW5nKCkKK1BBU1MgaXModGVzdF9kYXRhLnZhbHVlT2YoKSwgcmVz
dWx0LnZhbHVlT2YoKSkgaXMgdHJ1ZQorCitUZXN0aW5nOiBuZXcgU3RyaW5nKCdudWxsKFwwKScp
Cit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUnLCBJREJUcmFuc2FjdGlv
bi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmVOYW1l
JykKK3ZhbHVlIGlzOiBudWxsKCkgKHR5cGU6IG9iamVjdCkKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tl
eScpCitzdG9yZS5nZXQoJ2tleScpCitTdHJpbmcocmVzdWx0KTogbnVsbCgpCitQQVNTIHR5cGVv
ZiByZXN1bHQgaXMgIm9iamVjdCIKK1BBU1MgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxs
KHJlc3VsdCkgaXMgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHRlc3RfZGF0YSkKK1BB
U1MgdGVzdF9kYXRhICE9PSByZXN1bHQgaXMgdHJ1ZQorUEFTUyByZXN1bHQudG9TdHJpbmcoKSBp
cyB0ZXN0X2RhdGEudG9TdHJpbmcoKQorUEFTUyBpcyh0ZXN0X2RhdGEudmFsdWVPZigpLCByZXN1
bHQudmFsdWVPZigpKSBpcyB0cnVlCisKKworVGVzdGluZyBEYXRlIG9iamVjdHMKKworVGVzdGlu
ZzogbmV3IERhdGUoLTFlMTMpCit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5h
bWUnLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmpl
Y3RTdG9yZSgnc3RvcmVOYW1lJykKK3ZhbHVlIGlzOiBTdW4gRmViIDA5IDE2NTMgMjI6MTM6MjAg
R01ULTA4MDAgKFBTVCkgKHR5cGU6IG9iamVjdCkKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScpCitz
dG9yZS5nZXQoJ2tleScpCitTdHJpbmcocmVzdWx0KTogU3VuIEZlYiAwOSAxNjUzIDIyOjEzOjIw
IEdNVC0wODAwIChQU1QpCitQQVNTIHR5cGVvZiByZXN1bHQgaXMgIm9iamVjdCIKK1BBU1MgT2Jq
ZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHJlc3VsdCkgaXMgT2JqZWN0LnByb3RvdHlwZS50
b1N0cmluZy5jYWxsKHRlc3RfZGF0YSkKK1BBU1MgdGVzdF9kYXRhICE9PSByZXN1bHQgaXMgdHJ1
ZQorUEFTUyByZXN1bHQudG9TdHJpbmcoKSBpcyB0ZXN0X2RhdGEudG9TdHJpbmcoKQorUEFTUyBp
cyh0ZXN0X2RhdGEudmFsdWVPZigpLCByZXN1bHQudmFsdWVPZigpKSBpcyB0cnVlCisKK1Rlc3Rp
bmc6IG5ldyBEYXRlKC0xZTEyKQordHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3RvcmVO
YW1lJywgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkKK3N0b3JlID0gdHJhbnNhY3Rpb24ub2Jq
ZWN0U3RvcmUoJ3N0b3JlTmFtZScpCit2YWx1ZSBpczogU3VuIEFwciAyNCAxOTM4IDE1OjEzOjIw
IEdNVC0wNzAwIChQRFQpICh0eXBlOiBvYmplY3QpCitzdG9yZS5wdXQodmFsdWUsICdrZXknKQor
c3RvcmUuZ2V0KCdrZXknKQorU3RyaW5nKHJlc3VsdCk6IFN1biBBcHIgMjQgMTkzOCAxNToxMzoy
MCBHTVQtMDcwMCAoUERUKQorUEFTUyB0eXBlb2YgcmVzdWx0IGlzICJvYmplY3QiCitQQVNTIE9i
amVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChyZXN1bHQpIGlzIE9iamVjdC5wcm90b3R5cGUu
dG9TdHJpbmcuY2FsbCh0ZXN0X2RhdGEpCitQQVNTIHRlc3RfZGF0YSAhPT0gcmVzdWx0IGlzIHRy
dWUKK1BBU1MgcmVzdWx0LnRvU3RyaW5nKCkgaXMgdGVzdF9kYXRhLnRvU3RyaW5nKCkKK1BBU1Mg
aXModGVzdF9kYXRhLnZhbHVlT2YoKSwgcmVzdWx0LnZhbHVlT2YoKSkgaXMgdHJ1ZQorCitUZXN0
aW5nOiBuZXcgRGF0ZSgtMWU5KQordHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3RvcmVO
YW1lJywgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkKK3N0b3JlID0gdHJhbnNhY3Rpb24ub2Jq
ZWN0U3RvcmUoJ3N0b3JlTmFtZScpCit2YWx1ZSBpczogU2F0IERlYyAyMCAxOTY5IDAyOjEzOjIw
IEdNVC0wODAwIChQU1QpICh0eXBlOiBvYmplY3QpCitzdG9yZS5wdXQodmFsdWUsICdrZXknKQor
c3RvcmUuZ2V0KCdrZXknKQorU3RyaW5nKHJlc3VsdCk6IFNhdCBEZWMgMjAgMTk2OSAwMjoxMzoy
MCBHTVQtMDgwMCAoUFNUKQorUEFTUyB0eXBlb2YgcmVzdWx0IGlzICJvYmplY3QiCitQQVNTIE9i
amVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChyZXN1bHQpIGlzIE9iamVjdC5wcm90b3R5cGUu
dG9TdHJpbmcuY2FsbCh0ZXN0X2RhdGEpCitQQVNTIHRlc3RfZGF0YSAhPT0gcmVzdWx0IGlzIHRy
dWUKK1BBU1MgcmVzdWx0LnRvU3RyaW5nKCkgaXMgdGVzdF9kYXRhLnRvU3RyaW5nKCkKK1BBU1Mg
aXModGVzdF9kYXRhLnZhbHVlT2YoKSwgcmVzdWx0LnZhbHVlT2YoKSkgaXMgdHJ1ZQorCitUZXN0
aW5nOiBuZXcgRGF0ZSgtMWU2KQordHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3RvcmVO
YW1lJywgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkKK3N0b3JlID0gdHJhbnNhY3Rpb24ub2Jq
ZWN0U3RvcmUoJ3N0b3JlTmFtZScpCit2YWx1ZSBpczogV2VkIERlYyAzMSAxOTY5IDE1OjQzOjIw
IEdNVC0wODAwIChQU1QpICh0eXBlOiBvYmplY3QpCitzdG9yZS5wdXQodmFsdWUsICdrZXknKQor
c3RvcmUuZ2V0KCdrZXknKQorU3RyaW5nKHJlc3VsdCk6IFdlZCBEZWMgMzEgMTk2OSAxNTo0Mzoy
MCBHTVQtMDgwMCAoUFNUKQorUEFTUyB0eXBlb2YgcmVzdWx0IGlzICJvYmplY3QiCitQQVNTIE9i
amVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChyZXN1bHQpIGlzIE9iamVjdC5wcm90b3R5cGUu
dG9TdHJpbmcuY2FsbCh0ZXN0X2RhdGEpCitQQVNTIHRlc3RfZGF0YSAhPT0gcmVzdWx0IGlzIHRy
dWUKK1BBU1MgcmVzdWx0LnRvU3RyaW5nKCkgaXMgdGVzdF9kYXRhLnRvU3RyaW5nKCkKK1BBU1Mg
aXModGVzdF9kYXRhLnZhbHVlT2YoKSwgcmVzdWx0LnZhbHVlT2YoKSkgaXMgdHJ1ZQorCitUZXN0
aW5nOiBuZXcgRGF0ZSgtMWUzKQordHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3RvcmVO
YW1lJywgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkKK3N0b3JlID0gdHJhbnNhY3Rpb24ub2Jq
ZWN0U3RvcmUoJ3N0b3JlTmFtZScpCit2YWx1ZSBpczogV2VkIERlYyAzMSAxOTY5IDE1OjU5OjU5
IEdNVC0wODAwIChQU1QpICh0eXBlOiBvYmplY3QpCitzdG9yZS5wdXQodmFsdWUsICdrZXknKQor
c3RvcmUuZ2V0KCdrZXknKQorU3RyaW5nKHJlc3VsdCk6IFdlZCBEZWMgMzEgMTk2OSAxNTo1OTo1
OSBHTVQtMDgwMCAoUFNUKQorUEFTUyB0eXBlb2YgcmVzdWx0IGlzICJvYmplY3QiCitQQVNTIE9i
amVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChyZXN1bHQpIGlzIE9iamVjdC5wcm90b3R5cGUu
dG9TdHJpbmcuY2FsbCh0ZXN0X2RhdGEpCitQQVNTIHRlc3RfZGF0YSAhPT0gcmVzdWx0IGlzIHRy
dWUKK1BBU1MgcmVzdWx0LnRvU3RyaW5nKCkgaXMgdGVzdF9kYXRhLnRvU3RyaW5nKCkKK1BBU1Mg
aXModGVzdF9kYXRhLnZhbHVlT2YoKSwgcmVzdWx0LnZhbHVlT2YoKSkgaXMgdHJ1ZQorCitUZXN0
aW5nOiBuZXcgRGF0ZSgwKQordHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1l
JywgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkKK3N0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0
U3RvcmUoJ3N0b3JlTmFtZScpCit2YWx1ZSBpczogV2VkIERlYyAzMSAxOTY5IDE2OjAwOjAwIEdN
VC0wODAwIChQU1QpICh0eXBlOiBvYmplY3QpCitzdG9yZS5wdXQodmFsdWUsICdrZXknKQorc3Rv
cmUuZ2V0KCdrZXknKQorU3RyaW5nKHJlc3VsdCk6IFdlZCBEZWMgMzEgMTk2OSAxNjowMDowMCBH
TVQtMDgwMCAoUFNUKQorUEFTUyB0eXBlb2YgcmVzdWx0IGlzICJvYmplY3QiCitQQVNTIE9iamVj
dC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChyZXN1bHQpIGlzIE9iamVjdC5wcm90b3R5cGUudG9T
dHJpbmcuY2FsbCh0ZXN0X2RhdGEpCitQQVNTIHRlc3RfZGF0YSAhPT0gcmVzdWx0IGlzIHRydWUK
K1BBU1MgcmVzdWx0LnRvU3RyaW5nKCkgaXMgdGVzdF9kYXRhLnRvU3RyaW5nKCkKK1BBU1MgaXMo
dGVzdF9kYXRhLnZhbHVlT2YoKSwgcmVzdWx0LnZhbHVlT2YoKSkgaXMgdHJ1ZQorCitUZXN0aW5n
OiBuZXcgRGF0ZSgxZTMpCit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUn
LCBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RT
dG9yZSgnc3RvcmVOYW1lJykKK3ZhbHVlIGlzOiBXZWQgRGVjIDMxIDE5NjkgMTY6MDA6MDEgR01U
LTA4MDAgKFBTVCkgKHR5cGU6IG9iamVjdCkKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScpCitzdG9y
ZS5nZXQoJ2tleScpCitTdHJpbmcocmVzdWx0KTogV2VkIERlYyAzMSAxOTY5IDE2OjAwOjAxIEdN
VC0wODAwIChQU1QpCitQQVNTIHR5cGVvZiByZXN1bHQgaXMgIm9iamVjdCIKK1BBU1MgT2JqZWN0
LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHJlc3VsdCkgaXMgT2JqZWN0LnByb3RvdHlwZS50b1N0
cmluZy5jYWxsKHRlc3RfZGF0YSkKK1BBU1MgdGVzdF9kYXRhICE9PSByZXN1bHQgaXMgdHJ1ZQor
UEFTUyByZXN1bHQudG9TdHJpbmcoKSBpcyB0ZXN0X2RhdGEudG9TdHJpbmcoKQorUEFTUyBpcyh0
ZXN0X2RhdGEudmFsdWVPZigpLCByZXN1bHQudmFsdWVPZigpKSBpcyB0cnVlCisKK1Rlc3Rpbmc6
IG5ldyBEYXRlKDFlNikKK3RyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24oJ3N0b3JlTmFtZScs
IElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUpCitzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0
b3JlKCdzdG9yZU5hbWUnKQordmFsdWUgaXM6IFdlZCBEZWMgMzEgMTk2OSAxNjoxNjo0MCBHTVQt
MDgwMCAoUFNUKSAodHlwZTogb2JqZWN0KQorc3RvcmUucHV0KHZhbHVlLCAna2V5JykKK3N0b3Jl
LmdldCgna2V5JykKK1N0cmluZyhyZXN1bHQpOiBXZWQgRGVjIDMxIDE5NjkgMTY6MTY6NDAgR01U
LTA4MDAgKFBTVCkKK1BBU1MgdHlwZW9mIHJlc3VsdCBpcyAib2JqZWN0IgorUEFTUyBPYmplY3Qu
cHJvdG90eXBlLnRvU3RyaW5nLmNhbGwocmVzdWx0KSBpcyBPYmplY3QucHJvdG90eXBlLnRvU3Ry
aW5nLmNhbGwodGVzdF9kYXRhKQorUEFTUyB0ZXN0X2RhdGEgIT09IHJlc3VsdCBpcyB0cnVlCitQ
QVNTIHJlc3VsdC50b1N0cmluZygpIGlzIHRlc3RfZGF0YS50b1N0cmluZygpCitQQVNTIGlzKHRl
c3RfZGF0YS52YWx1ZU9mKCksIHJlc3VsdC52YWx1ZU9mKCkpIGlzIHRydWUKKworVGVzdGluZzog
bmV3IERhdGUoMWU5KQordHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1lJywg
SURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkKK3N0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3Rv
cmUoJ3N0b3JlTmFtZScpCit2YWx1ZSBpczogTW9uIEphbiAxMiAxOTcwIDA1OjQ2OjQwIEdNVC0w
ODAwIChQU1QpICh0eXBlOiBvYmplY3QpCitzdG9yZS5wdXQodmFsdWUsICdrZXknKQorc3RvcmUu
Z2V0KCdrZXknKQorU3RyaW5nKHJlc3VsdCk6IE1vbiBKYW4gMTIgMTk3MCAwNTo0Njo0MCBHTVQt
MDgwMCAoUFNUKQorUEFTUyB0eXBlb2YgcmVzdWx0IGlzICJvYmplY3QiCitQQVNTIE9iamVjdC5w
cm90b3R5cGUudG9TdHJpbmcuY2FsbChyZXN1bHQpIGlzIE9iamVjdC5wcm90b3R5cGUudG9TdHJp
bmcuY2FsbCh0ZXN0X2RhdGEpCitQQVNTIHRlc3RfZGF0YSAhPT0gcmVzdWx0IGlzIHRydWUKK1BB
U1MgcmVzdWx0LnRvU3RyaW5nKCkgaXMgdGVzdF9kYXRhLnRvU3RyaW5nKCkKK1BBU1MgaXModGVz
dF9kYXRhLnZhbHVlT2YoKSwgcmVzdWx0LnZhbHVlT2YoKSkgaXMgdHJ1ZQorCitUZXN0aW5nOiBu
ZXcgRGF0ZSgxZTEyKQordHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1lJywg
SURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkKK3N0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3Rv
cmUoJ3N0b3JlTmFtZScpCit2YWx1ZSBpczogU2F0IFNlcCAwOCAyMDAxIDE4OjQ2OjQwIEdNVC0w
NzAwIChQRFQpICh0eXBlOiBvYmplY3QpCitzdG9yZS5wdXQodmFsdWUsICdrZXknKQorc3RvcmUu
Z2V0KCdrZXknKQorU3RyaW5nKHJlc3VsdCk6IFNhdCBTZXAgMDggMjAwMSAxODo0Njo0MCBHTVQt
MDcwMCAoUERUKQorUEFTUyB0eXBlb2YgcmVzdWx0IGlzICJvYmplY3QiCitQQVNTIE9iamVjdC5w
cm90b3R5cGUudG9TdHJpbmcuY2FsbChyZXN1bHQpIGlzIE9iamVjdC5wcm90b3R5cGUudG9TdHJp
bmcuY2FsbCh0ZXN0X2RhdGEpCitQQVNTIHRlc3RfZGF0YSAhPT0gcmVzdWx0IGlzIHRydWUKK1BB
U1MgcmVzdWx0LnRvU3RyaW5nKCkgaXMgdGVzdF9kYXRhLnRvU3RyaW5nKCkKK1BBU1MgaXModGVz
dF9kYXRhLnZhbHVlT2YoKSwgcmVzdWx0LnZhbHVlT2YoKSkgaXMgdHJ1ZQorCitUZXN0aW5nOiBu
ZXcgRGF0ZSgxZTEzKQordHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1lJywg
SURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkKK3N0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3Rv
cmUoJ3N0b3JlTmFtZScpCit2YWx1ZSBpczogU2F0IE5vdiAyMCAyMjg2IDA5OjQ2OjQwIEdNVC0w
ODAwIChQU1QpICh0eXBlOiBvYmplY3QpCitzdG9yZS5wdXQodmFsdWUsICdrZXknKQorc3RvcmUu
Z2V0KCdrZXknKQorU3RyaW5nKHJlc3VsdCk6IFNhdCBOb3YgMjAgMjI4NiAwOTo0Njo0MCBHTVQt
MDgwMCAoUFNUKQorUEFTUyB0eXBlb2YgcmVzdWx0IGlzICJvYmplY3QiCitQQVNTIE9iamVjdC5w
cm90b3R5cGUudG9TdHJpbmcuY2FsbChyZXN1bHQpIGlzIE9iamVjdC5wcm90b3R5cGUudG9TdHJp
bmcuY2FsbCh0ZXN0X2RhdGEpCitQQVNTIHRlc3RfZGF0YSAhPT0gcmVzdWx0IGlzIHRydWUKK1BB
U1MgcmVzdWx0LnRvU3RyaW5nKCkgaXMgdGVzdF9kYXRhLnRvU3RyaW5nKCkKK1BBU1MgaXModGVz
dF9kYXRhLnZhbHVlT2YoKSwgcmVzdWx0LnZhbHVlT2YoKSkgaXMgdHJ1ZQorCisKK1Rlc3Rpbmcg
UmVnRXhwIG9iamVjdHMKKworVGVzdGluZyBSZWdFeHA6IG5ldyBSZWdFeHAoKQordHJhbnNhY3Rp
b24gPSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1lJywgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklU
RSkKK3N0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpCit2YWx1ZSBp
czogLyg/OikvICh0eXBlOiBvYmplY3QpCitzdG9yZS5wdXQodmFsdWUsICdrZXknKQorc3RvcmUu
Z2V0KCdrZXknKQorUEFTUyB0ZXN0X2RhdGEgIT09IHJlc3VsdCBpcyB0cnVlCitQQVNTIE9iamVj
dC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChyZXN1bHQpIGlzICJbb2JqZWN0IFJlZ0V4cF0iCitQ
QVNTIHJlc3VsdC50b1N0cmluZygpIGlzIHRlc3RfZGF0YS50b1N0cmluZygpCisKK1Rlc3Rpbmcg
UmVnRXhwOiAvYWJjLwordHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1lJywg
SURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkKK3N0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3Rv
cmUoJ3N0b3JlTmFtZScpCit2YWx1ZSBpczogL2FiYy8gKHR5cGU6IG9iamVjdCkKK3N0b3JlLnB1
dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5nZXQoJ2tleScpCitQQVNTIHRlc3RfZGF0YSAhPT0gcmVz
dWx0IGlzIHRydWUKK1BBU1MgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHJlc3VsdCkg
aXMgIltvYmplY3QgUmVnRXhwXSIKK1BBU1MgcmVzdWx0LnRvU3RyaW5nKCkgaXMgdGVzdF9kYXRh
LnRvU3RyaW5nKCkKKworVGVzdGluZyBSZWdFeHA6IC9hYmMvZwordHJhbnNhY3Rpb24gPSBkYi50
cmFuc2FjdGlvbignc3RvcmVOYW1lJywgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkKK3N0b3Jl
ID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpCit2YWx1ZSBpczogL2FiYy9n
ICh0eXBlOiBvYmplY3QpCitzdG9yZS5wdXQodmFsdWUsICdrZXknKQorc3RvcmUuZ2V0KCdrZXkn
KQorUEFTUyB0ZXN0X2RhdGEgIT09IHJlc3VsdCBpcyB0cnVlCitQQVNTIE9iamVjdC5wcm90b3R5
cGUudG9TdHJpbmcuY2FsbChyZXN1bHQpIGlzICJbb2JqZWN0IFJlZ0V4cF0iCitQQVNTIHJlc3Vs
dC50b1N0cmluZygpIGlzIHRlc3RfZGF0YS50b1N0cmluZygpCisKK1Rlc3RpbmcgUmVnRXhwOiAv
YWJjL2kKK3RyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24oJ3N0b3JlTmFtZScsIElEQlRyYW5z
YWN0aW9uLlJFQURfV1JJVEUpCitzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9y
ZU5hbWUnKQordmFsdWUgaXM6IC9hYmMvaSAodHlwZTogb2JqZWN0KQorc3RvcmUucHV0KHZhbHVl
LCAna2V5JykKK3N0b3JlLmdldCgna2V5JykKK1BBU1MgdGVzdF9kYXRhICE9PSByZXN1bHQgaXMg
dHJ1ZQorUEFTUyBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwocmVzdWx0KSBpcyAiW29i
amVjdCBSZWdFeHBdIgorUEFTUyByZXN1bHQudG9TdHJpbmcoKSBpcyB0ZXN0X2RhdGEudG9TdHJp
bmcoKQorCitUZXN0aW5nIFJlZ0V4cDogL2FiYy9naQordHJhbnNhY3Rpb24gPSBkYi50cmFuc2Fj
dGlvbignc3RvcmVOYW1lJywgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkKK3N0b3JlID0gdHJh
bnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpCit2YWx1ZSBpczogL2FiYy9naSAodHlw
ZTogb2JqZWN0KQorc3RvcmUucHV0KHZhbHVlLCAna2V5JykKK3N0b3JlLmdldCgna2V5JykKK1BB
U1MgdGVzdF9kYXRhICE9PSByZXN1bHQgaXMgdHJ1ZQorUEFTUyBPYmplY3QucHJvdG90eXBlLnRv
U3RyaW5nLmNhbGwocmVzdWx0KSBpcyAiW29iamVjdCBSZWdFeHBdIgorUEFTUyByZXN1bHQudG9T
dHJpbmcoKSBpcyB0ZXN0X2RhdGEudG9TdHJpbmcoKQorCitUZXN0aW5nIFJlZ0V4cDogL2FiYy9t
Cit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUnLCBJREJUcmFuc2FjdGlv
bi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmVOYW1l
JykKK3ZhbHVlIGlzOiAvYWJjL20gKHR5cGU6IG9iamVjdCkKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tl
eScpCitzdG9yZS5nZXQoJ2tleScpCitQQVNTIHRlc3RfZGF0YSAhPT0gcmVzdWx0IGlzIHRydWUK
K1BBU1MgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHJlc3VsdCkgaXMgIltvYmplY3Qg
UmVnRXhwXSIKK1BBU1MgcmVzdWx0LnRvU3RyaW5nKCkgaXMgdGVzdF9kYXRhLnRvU3RyaW5nKCkK
KworVGVzdGluZyBSZWdFeHA6IC9hYmMvbWcKK3RyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24o
J3N0b3JlTmFtZScsIElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUpCitzdG9yZSA9IHRyYW5zYWN0
aW9uLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKQordmFsdWUgaXM6IC9hYmMvZ20gKHR5cGU6IG9i
amVjdCkKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5nZXQoJ2tleScpCitQQVNTIHRl
c3RfZGF0YSAhPT0gcmVzdWx0IGlzIHRydWUKK1BBU1MgT2JqZWN0LnByb3RvdHlwZS50b1N0cmlu
Zy5jYWxsKHJlc3VsdCkgaXMgIltvYmplY3QgUmVnRXhwXSIKK1BBU1MgcmVzdWx0LnRvU3RyaW5n
KCkgaXMgdGVzdF9kYXRhLnRvU3RyaW5nKCkKKworVGVzdGluZyBSZWdFeHA6IC9hYmMvbWkKK3Ry
YW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24oJ3N0b3JlTmFtZScsIElEQlRyYW5zYWN0aW9uLlJF
QURfV1JJVEUpCitzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKQor
dmFsdWUgaXM6IC9hYmMvaW0gKHR5cGU6IG9iamVjdCkKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScp
CitzdG9yZS5nZXQoJ2tleScpCitQQVNTIHRlc3RfZGF0YSAhPT0gcmVzdWx0IGlzIHRydWUKK1BB
U1MgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHJlc3VsdCkgaXMgIltvYmplY3QgUmVn
RXhwXSIKK1BBU1MgcmVzdWx0LnRvU3RyaW5nKCkgaXMgdGVzdF9kYXRhLnRvU3RyaW5nKCkKKwor
VGVzdGluZyBSZWdFeHA6IC9hYmMvbWdpCit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdz
dG9yZU5hbWUnLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFuc2FjdGlv
bi5vYmplY3RTdG9yZSgnc3RvcmVOYW1lJykKK3ZhbHVlIGlzOiAvYWJjL2dpbSAodHlwZTogb2Jq
ZWN0KQorc3RvcmUucHV0KHZhbHVlLCAna2V5JykKK3N0b3JlLmdldCgna2V5JykKK1BBU1MgdGVz
dF9kYXRhICE9PSByZXN1bHQgaXMgdHJ1ZQorUEFTUyBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5n
LmNhbGwocmVzdWx0KSBpcyAiW29iamVjdCBSZWdFeHBdIgorUEFTUyByZXN1bHQudG9TdHJpbmco
KSBpcyB0ZXN0X2RhdGEudG9TdHJpbmcoKQorCisKK1Rlc3RpbmcgSW1hZ2VEYXRhCitjYW52YXMg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKQorY2FudmFzLndpZHRoID0gOAorY2Fu
dmFzLmhlaWdodCA9IDgKK3Rlc3RfZGF0YSA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpLmdldElt
YWdlRGF0YSgwLCAwLCA4LCA4KQordHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3RvcmVO
YW1lJywgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkKK3N0b3JlID0gdHJhbnNhY3Rpb24ub2Jq
ZWN0U3RvcmUoJ3N0b3JlTmFtZScpCit2YWx1ZSBpczogW29iamVjdCBJbWFnZURhdGFdICh0eXBl
OiBvYmplY3QpCitzdG9yZS5wdXQodmFsdWUsICdrZXknKQorc3RvcmUuZ2V0KCdrZXknKQorUEFT
UyB0ZXN0X2RhdGEgIT09IHJlc3VsdCBpcyB0cnVlCitQQVNTIE9iamVjdC5wcm90b3R5cGUudG9T
dHJpbmcuY2FsbChyZXN1bHQpIGlzICJbb2JqZWN0IEltYWdlRGF0YV0iCitQQVNTIHJlc3VsdC53
aWR0aCBpcyB0ZXN0X2RhdGEud2lkdGgKK1BBU1MgcmVzdWx0LmhlaWdodCBpcyB0ZXN0X2RhdGEu
aGVpZ2h0CitQQVNTIHJlc3VsdC5kYXRhLmxlbmd0aCBpcyB0ZXN0X2RhdGEuZGF0YS5sZW5ndGgK
K1BBU1MgcmVzdWx0IGRhdGEgbWF0Y2hlcworCitUZXN0aW5nIEJsb2IKK0Jsb2JCdWlsZGVyID0g
d2luZG93LkJsb2JCdWlsZGVyIHx8IHdpbmRvdy5XZWJLaXRCbG9iQnVpbGRlcgorUEFTUyBCbG9i
QnVpbGRlciAhPSBudWxsIGlzIHRydWUKK1BBU1MgRmlsZVJlYWRlciAhPSBudWxsIGlzIHRydWUK
K2J1aWxkZXIgPSBuZXcgQmxvYkJ1aWxkZXIoKQordGVzdF9jb250ZW50ID0gJ1RoaXMgaXMgYSB0
ZXN0LiBUaGlzIGlzIG9ubHkgYSB0ZXN0LicKK2J1aWxkZXIuYXBwZW5kKHRlc3RfY29udGVudCkK
K3Rlc3RfZGF0YSA9IGJ1aWxkZXIuZ2V0QmxvYigpCit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0
aW9uKCdzdG9yZU5hbWUnLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFu
c2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmVOYW1lJykKK3ZhbHVlIGlzOiBbb2JqZWN0IEJsb2Jd
ICh0eXBlOiBvYmplY3QpCitzdG9yZS5wdXQodmFsdWUsICdrZXknKQorc3RvcmUuZ2V0KCdrZXkn
KQorUEFTUyB0ZXN0X2RhdGEgIT09IHJlc3VsdCBpcyB0cnVlCitQQVNTIE9iamVjdC5wcm90b3R5
cGUudG9TdHJpbmcuY2FsbChyZXN1bHQpIGlzICJbb2JqZWN0IEJsb2JdIgorUEFTUyByZXN1bHQu
c2l6ZSBpcyB0ZXN0X2RhdGEuc2l6ZQorUEFTUyByZXN1bHQudHlwZSBpcyB0ZXN0X2RhdGEudHlw
ZQorUEFTUyB0ZXh0IGlzICJUaGlzIGlzIGEgdGVzdC4gVGhpcyBpcyBvbmx5IGEgdGVzdC4iCisK
K1Rlc3RpbmcgRmlsZQordGVzdF9jb250ZW50ID0gZmlsZUlucHV0LmZpbGVzWzBdCit0cmFuc2Fj
dGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUnLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dS
SVRFKQorc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmVOYW1lJykKK3ZhbHVl
IGlzOiBbb2JqZWN0IEZpbGVdICh0eXBlOiBvYmplY3QpCitzdG9yZS5wdXQodmFsdWUsICdrZXkn
KQorc3RvcmUuZ2V0KCdrZXknKQorUEFTUyBmaWxlMSAhPT0gZmlsZTIgaXMgdHJ1ZQorUEFTUyBP
YmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZmlsZTEpIGlzICJbb2JqZWN0IEZpbGVdIgor
UEFTUyBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZmlsZTIpIGlzICJbb2JqZWN0IEZp
bGVdIgorZmlsZTEuc2l6ZTogMTAyCitQQVNTIGZpbGUxLnNpemUgaXMgZmlsZTIuc2l6ZQorZmls
ZTEudHlwZTogdGV4dC9odG1sCitQQVNTIGZpbGUxLnR5cGUgaXMgZmlsZTIudHlwZQorZmlsZTEu
bmFtZTogdGVzdC1kYXRhLmh0bWwKK1BBU1MgZmlsZTEubmFtZSBpcyBmaWxlMi5uYW1lCitmaWxl
MS5sYXN0TW9kaWZpZWREYXRlOiBGcmkgSmFuIDA2IDIwMTIgMTc6MTQ6MDcgR01ULTA4MDAgKFBT
VCkKK1BBU1MgU3RyaW5nKGZpbGUxLmxhc3RNb2RpZmllZERhdGUpIGlzIFN0cmluZyhmaWxlMi5s
YXN0TW9kaWZpZWREYXRlKQorUEFTUyB0ZXh0MiBpcyAiPCFET0NUWVBFIGh0bWw+XG48dGl0bGU+
VGhpcyBpcyBzb21lIHRlc3QgZGF0YTwvdGl0bGU+XG48aDE+VGVzdCBkYXRhITwvaDE+XG48cD5H
ZXQgeW91ciB0ZXN0IGRhdGEgaGVyZSFcbiIKKworVGVzdGluZyBGaWxlTGlzdAordGVzdF9jb250
ZW50ID0gZmlsZUlucHV0LmZpbGVzCit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdzdG9y
ZU5hbWUnLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFuc2FjdGlvbi5v
YmplY3RTdG9yZSgnc3RvcmVOYW1lJykKK3ZhbHVlIGlzOiBbb2JqZWN0IEZpbGVMaXN0XSAodHlw
ZTogb2JqZWN0KQorc3RvcmUucHV0KHZhbHVlLCAna2V5JykKK3N0b3JlLmdldCgna2V5JykKK1BB
U1MgdGVzdF9kYXRhICE9PSByZXN1bHQgaXMgdHJ1ZQorUEFTUyBPYmplY3QucHJvdG90eXBlLnRv
U3RyaW5nLmNhbGwocmVzdWx0KSBpcyAiW29iamVjdCBGaWxlTGlzdF0iCitQQVNTIHJlc3VsdC5s
ZW5ndGggaXMgdGVzdF9kYXRhLmxlbmd0aAorY29tcGFyaW5nIGZpbGVbMF0KK1BBU1MgZmlsZTEg
IT09IGZpbGUyIGlzIHRydWUKK1BBU1MgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGZp
bGUxKSBpcyAiW29iamVjdCBGaWxlXSIKK1BBU1MgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5j
YWxsKGZpbGUyKSBpcyAiW29iamVjdCBGaWxlXSIKK2ZpbGUxLnNpemU6IDEwMgorUEFTUyBmaWxl
MS5zaXplIGlzIGZpbGUyLnNpemUKK2ZpbGUxLnR5cGU6IHRleHQvaHRtbAorUEFTUyBmaWxlMS50
eXBlIGlzIGZpbGUyLnR5cGUKK2ZpbGUxLm5hbWU6IHRlc3QtZGF0YS5odG1sCitQQVNTIGZpbGUx
Lm5hbWUgaXMgZmlsZTIubmFtZQorZmlsZTEubGFzdE1vZGlmaWVkRGF0ZTogRnJpIEphbiAwNiAy
MDEyIDE3OjE0OjA3IEdNVC0wODAwIChQU1QpCitQQVNTIFN0cmluZyhmaWxlMS5sYXN0TW9kaWZp
ZWREYXRlKSBpcyBTdHJpbmcoZmlsZTIubGFzdE1vZGlmaWVkRGF0ZSkKK1BBU1MgdGV4dDIgaXMg
IjwhRE9DVFlQRSBodG1sPlxuPHRpdGxlPlRoaXMgaXMgc29tZSB0ZXN0IGRhdGE8L3RpdGxlPlxu
PGgxPlRlc3QgZGF0YSE8L2gxPlxuPHA+R2V0IHlvdXIgdGVzdCBkYXRhIGhlcmUhXG4iCitjb21w
YXJpbmcgZmlsZVsxXQorUEFTUyBmaWxlMSAhPT0gZmlsZTIgaXMgdHJ1ZQorUEFTUyBPYmplY3Qu
cHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZmlsZTEpIGlzICJbb2JqZWN0IEZpbGVdIgorUEFTUyBP
YmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZmlsZTIpIGlzICJbb2JqZWN0IEZpbGVdIgor
ZmlsZTEuc2l6ZTogNTAyCitQQVNTIGZpbGUxLnNpemUgaXMgZmlsZTIuc2l6ZQorZmlsZTEudHlw
ZTogdGV4dC9wbGFpbgorUEFTUyBmaWxlMS50eXBlIGlzIGZpbGUyLnR5cGUKK2ZpbGUxLm5hbWU6
IHRlc3QtZGF0YS50eHQKK1BBU1MgZmlsZTEubmFtZSBpcyBmaWxlMi5uYW1lCitmaWxlMS5sYXN0
TW9kaWZpZWREYXRlOiBGcmkgSmFuIDA2IDIwMTIgMTc6MTU6MTUgR01ULTA4MDAgKFBTVCkKK1BB
U1MgU3RyaW5nKGZpbGUxLmxhc3RNb2RpZmllZERhdGUpIGlzIFN0cmluZyhmaWxlMi5sYXN0TW9k
aWZpZWREYXRlKQorUEFTUyB0ZXh0MiBpcyAiTG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNv
bnNlY3RldHVyIGFkaXBpc2NpbmcgZWxpdC4gQWVuZWFuIGxhb3JlZXQgZG9sb3IgaWQgdXJuYSBl
bGVpZmVuZCBhbGlxdWV0LiBOdWxsYSB2ZWwgZG9sb3IgaXBzdW0uIEFsaXF1YW0gdXQgdHVycGlz
IG5pc2wsIGluIHZ1bHB1dGF0ZSBzYXBpZW4uIEN1bSBzb2NpaXMgbmF0b3F1ZSBwZW5hdGlidXMg
ZXQgbWFnbmlzIGRpcyBwYXJ0dXJpZW50IG1vbnRlcywgbmFzY2V0dXIgcmlkaWN1bHVzIG11cy4g
U2VkIGNvbmd1ZSBtYWduYSB2aXRhZSBkb2xvciBmZXVnaWF0IHZlaGljdWxhLiBTZWQgdm9sdXRw
YXQsIHRlbGx1cyB2ZWwgdmFyaXVzIHZlc3RpYnVsdW0sIHB1cnVzIHF1YW0gbW9sbGlzIHNhcGll
biwgaW4gY29uZGltZW50dW0gbGVvIG5lcXVlIHNlZCBudWxsYS4gTnVuYyBxdWlzIHBvcnRhIGVs
aXQuIFBlbGxlbnRlc3F1ZSBlcmF0IGxlY3R1cywgdWx0cmljaWVzIGEgbG9ib3J0aXMgaWQsIGZh
dWNpYnVzIGlkIHF1YW0uXG4iCisKK1Rlc3RpbmcgQXJyYXkKK3Rlc3RfZGF0YSA9IFtdCit0ZXN0
X2RhdGFbMF0gPSAnZm9vJwordGVzdF9kYXRhWzFdID0gJ2JhcicKK3Rlc3RfZGF0YVsxMF0gPSB0
cnVlCit0ZXN0X2RhdGFbMTFdID0gZmFsc2UKK3Rlc3RfZGF0YVsyMF0gPSAxMjMKK3Rlc3RfZGF0
YVsyMV0gPSA0NTYKK3Rlc3RfZGF0YVszMF0gPSBudWxsCit0cmFuc2FjdGlvbiA9IGRiLnRyYW5z
YWN0aW9uKCdzdG9yZU5hbWUnLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0
cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmVOYW1lJykKK3ZhbHVlIGlzOiBmb28sYmFyLCws
LCwsLCwsdHJ1ZSxmYWxzZSwsLCwsLCwsLDEyMyw0NTYsLCwsLCwsLCwgKHR5cGU6IG9iamVjdCkK
K3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5nZXQoJ2tleScpCitQQVNTIHRlc3RfZGF0
YSAhPT0gcmVzdWx0IGlzIHRydWUKK1BBU1MgdGVzdF9kYXRhLmxlbmd0aCA9PT0gcmVzdWx0Lmxl
bmd0aCBpcyB0cnVlCitQQVNTIHRlc3RfZGF0YVswXSBpcyByZXN1bHRbMF0KK1BBU1MgdGVzdF9k
YXRhWzFdIGlzIHJlc3VsdFsxXQorUEFTUyB0ZXN0X2RhdGFbMTBdIGlzIHJlc3VsdFsxMF0KK1BB
U1MgdGVzdF9kYXRhWzExXSBpcyByZXN1bHRbMTFdCitQQVNTIHRlc3RfZGF0YVsyMF0gaXMgcmVz
dWx0WzIwXQorUEFTUyB0ZXN0X2RhdGFbMjFdIGlzIHJlc3VsdFsyMV0KK1BBU1MgdGVzdF9kYXRh
WzMwXSBpcyByZXN1bHRbMzBdCisKK1Rlc3RpbmcgT2JqZWN0Cit0ZXN0X2RhdGEgPSBbXQordGVz
dF9kYXRhWzBdID0gJ2ZvbycKK3Rlc3RfZGF0YVsxXSA9ICdiYXInCit0ZXN0X2RhdGFbJ2EnXSA9
IHRydWUKK3Rlc3RfZGF0YVsnYiddID0gZmFsc2UKK3Rlc3RfZGF0YVsnZm9vJ10gPSAxMjMKK3Rl
c3RfZGF0YVsnYmFyJ10gPSA0NTYKK3Rlc3RfZGF0YVsnJ10gPSBudWxsCit0cmFuc2FjdGlvbiA9
IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUnLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKQor
c3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmVOYW1lJykKK3ZhbHVlIGlzOiBm
b28sYmFyICh0eXBlOiBvYmplY3QpCitzdG9yZS5wdXQodmFsdWUsICdrZXknKQorc3RvcmUuZ2V0
KCdrZXknKQorUEFTUyB0ZXN0X2RhdGEgIT09IHJlc3VsdCBpcyB0cnVlCitQQVNTIGFycmF5Q29t
cGFyZShPYmplY3Qua2V5cyhyZXN1bHQpLnNvcnQoKSwgT2JqZWN0LmtleXModGVzdF9kYXRhKS5z
b3J0KCkpIGlzIHRydWUKK1BBU1MgdGVzdF9kYXRhWyIwIl0gaXMgcmVzdWx0WyIwIl0KK1BBU1Mg
dGVzdF9kYXRhWyIxIl0gaXMgcmVzdWx0WyIxIl0KK1BBU1MgdGVzdF9kYXRhWyJhIl0gaXMgcmVz
dWx0WyJhIl0KK1BBU1MgdGVzdF9kYXRhWyJiIl0gaXMgcmVzdWx0WyJiIl0KK1BBU1MgdGVzdF9k
YXRhWyJmb28iXSBpcyByZXN1bHRbImZvbyJdCitQQVNTIHRlc3RfZGF0YVsiYmFyIl0gaXMgcmVz
dWx0WyJiYXIiXQorUEFTUyB0ZXN0X2RhdGFbIiJdIGlzIHJlc3VsdFsiIl0KKworCitUZXN0IHR5
cGVzIHRoYXQgY2FuJ3QgYmUgY2xvbmVkOgorCit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9u
KCdzdG9yZU5hbWUnLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFuc2Fj
dGlvbi5vYmplY3RTdG9yZSgnc3RvcmVOYW1lJykKKworT3RoZXIgSmF2YVNjcmlwdCBvYmplY3Qg
dHlwZXM6CitFeHBlY3RpbmcgZXhjZXB0aW9uIGZyb20gc3RvcmUucHV0KG5ldyBFcnJvciwgJ2tl
eScpCitQQVNTIEV4Y2VwdGlvbiB3YXMgdGhyb3duLgorUEFTUyBjb2RlIGlzIERPTUV4Y2VwdGlv
bi5EQVRBX0NMT05FX0VSUgorRXhwZWN0aW5nIGV4Y2VwdGlvbiBmcm9tIHN0b3JlLnB1dChuZXcg
RnVuY3Rpb24sICdrZXknKQorUEFTUyBFeGNlcHRpb24gd2FzIHRocm93bi4KK1BBU1MgY29kZSBp
cyBET01FeGNlcHRpb24uREFUQV9DTE9ORV9FUlIKKworT3RoZXIgaG9zdCBvYmplY3QgdHlwZXM6
CitFeHBlY3RpbmcgZXhjZXB0aW9uIGZyb20gc3RvcmUucHV0KHdpbmRvdywgJ2tleScpCitQQVNT
IEV4Y2VwdGlvbiB3YXMgdGhyb3duLgorUEFTUyBjb2RlIGlzIERPTUV4Y2VwdGlvbi5EQVRBX0NM
T05FX0VSUgorRXhwZWN0aW5nIGV4Y2VwdGlvbiBmcm9tIHN0b3JlLnB1dChkb2N1bWVudCwgJ2tl
eScpCitQQVNTIEV4Y2VwdGlvbiB3YXMgdGhyb3duLgorUEFTUyBjb2RlIGlzIERPTUV4Y2VwdGlv
bi5EQVRBX0NMT05FX0VSUgorRXhwZWN0aW5nIGV4Y2VwdGlvbiBmcm9tIHN0b3JlLnB1dChkb2N1
bWVudC5ib2R5LCAna2V5JykKK1BBU1MgRXhjZXB0aW9uIHdhcyB0aHJvd24uCitQQVNTIGNvZGUg
aXMgRE9NRXhjZXB0aW9uLkRBVEFfQ0xPTkVfRVJSCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvc3RydWN0dXJlZC1jbG9uZS5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvc3RydWN0dXJlZC1jbG9uZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI1YzIwYWJkYjc1YjA2
YjYwNDM2NWE1ZDEzZDAxMDE1N2JjOWE2N2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9zdHJ1Y3R1cmVkLWNsb25lLmh0bWwKQEAgLTAsMCArMSw1Mzcg
QEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFyZWQu
anMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8aW5wdXQgdHlwZT0iZmlsZSIgaWQ9ImZp
bGVJbnB1dCIgbXVsdGlwbGU+PC9pbnB1dD4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRp
diBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0PgorCisvLyBGSVhNRTogVHlwZXMgYXJlIHNl
bnNpdGl2ZSB0byBiZWluZyBpbnN0YW50aWF0ZWQgaW4gdGhlIHdvcmtlciBwcm9jZXNzLCBlLmcu
CisvLyBmb3IgbG9va2luZyB1cCBrZXkgcGF0aHMuIEVuc3VyZSB0aGF0IGlzIGJlaW5nIHRlc3Rl
ZC4KKworZGVzY3JpcHRpb24oIlRlc3Qgc3RydWN0dXJlZCBjbG9uZSBwZXJtdXRhdGlvbnMgaW4g
SW5kZXhlZERCLiIpOworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisKK2lmICh3aW5kb3cuZXZlbnRTZW5k
ZXIpIHsKKyAgICB2YXIgZmlsZUlucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGVJ
bnB1dCIpOworICAgIHZhciBmaWxlUmVjdCA9IGZpbGVJbnB1dC5nZXRDbGllbnRSZWN0cygpWzBd
OworICAgIHZhciB0YXJnZXRYID0gZmlsZVJlY3QubGVmdCArIGZpbGVSZWN0LndpZHRoIC8gMjsK
KyAgICB2YXIgdGFyZ2V0WSA9IGZpbGVSZWN0LnRvcCArIGZpbGVSZWN0LmhlaWdodCAvIDI7Cisg
ICAgZXZlbnRTZW5kZXIuYmVnaW5EcmFnV2l0aEZpbGVzKFsncmVzb3VyY2VzL3Rlc3QtZGF0YS5o
dG1sJywgJ3Jlc291cmNlcy90ZXN0LWRhdGEudHh0J10pOworICAgIGV2ZW50U2VuZGVyLm1vdXNl
TW92ZVRvKHRhcmdldFgsIHRhcmdldFkpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKK30K
KworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgZXZhbEFuZExvZygiaW5kZXhlZERCID0gd2luZG93
LmluZGV4ZWREQiB8fCB3aW5kb3cud2Via2l0SW5kZXhlZERCIik7CisgICAgc2hvdWxkQmVUcnVl
KCJpbmRleGVkREIgIT0gbnVsbCIpOworICAgIGV2YWxBbmRMb2coIklEQlRyYW5zYWN0aW9uID0g
d2luZG93LklEQlRyYW5zYWN0aW9uIHx8IHdpbmRvdy53ZWJraXRJREJUcmFuc2FjdGlvbiIpOwor
ICAgIHNob3VsZEJlVHJ1ZSgiSURCVHJhbnNhY3Rpb24gIT0gbnVsbCIpOworICAgIHByZXBhcmVE
YXRhYmFzZSgpOworfQorCitmdW5jdGlvbiBwcmVwYXJlRGF0YWJhc2UoKQoreworICAgIGRlYnVn
KCIiKTsKKyAgICBkZWJ1ZygiUHJlcGFyZSBEYXRhYmFzZSIpOworICAgIHJlcXVlc3QgPSBldmFs
QW5kTG9nKCJpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoJ3N0cnVjdHVyZWQtY2xvbmUnKSIpOwor
ICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworICAgIHJlcXVl
c3Qub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAgICByZXF1ZXN0ID0gZXZhbEFuZExv
ZygiaW5kZXhlZERCLm9wZW4oJ3N0cnVjdHVyZWQtY2xvbmUnKSIpOworICAgICAgICByZXF1ZXN0
Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKKyAgICAgICAgcmVxdWVzdC5vbnN1
Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgICAgICBldmFsQW5kTG9nKCJkYiA9IHJlcXVl
c3QucmVzdWx0Iik7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImRiLnZlcnNp
b24iLCAiIik7CisgICAgICAgICAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiZGIuc2V0VmVyc2lv
bignMScpIik7CisgICAgICAgICAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JD
YWxsYmFjazsKKyAgICAgICAgICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgewor
ICAgICAgICAgICAgICAgIGV2YWxBbmRMb2coImRiLmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZU5h
bWUnKSIpOworICAgICAgICAgICAgICAgIHZhciB0cmFucyA9IHJlcXVlc3QucmVzdWx0OworICAg
ICAgICAgICAgICAgIHRyYW5zLm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKKyAg
ICAgICAgICAgICAgICB0cmFucy5vbmFib3J0ID0gdW5leHBlY3RlZEFib3J0Q2FsbGJhY2s7Cisg
ICAgICAgICAgICAgICAgdHJhbnMub25jb21wbGV0ZSA9IHN0YXJ0VGVzdHM7CisgICAgICAgICAg
ICB9OworICAgICAgICB9OworICAgIH07Cit9CisKK2Z1bmN0aW9uIHN0YXJ0VGVzdHMoKQorewor
ICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1ZygiUnVubmluZyB0ZXN0cy4uLiIpOworICAgIHZhciB0
ZXN0c190b19ydW4gPSBbCisgICAgICAgIHRlc3RVbmRlZmluZWQsCisgICAgICAgIHRlc3ROdWxs
LAorICAgICAgICB0ZXN0Qm9vbGVhbiwKKyAgICAgICAgdGVzdE51bWJlciwKKyAgICAgICAgdGVz
dFN0cmluZywKKyAgICAgICAgdGVzdEJvb2xlYW5PYmplY3QsCisgICAgICAgIHRlc3ROdW1iZXJP
YmplY3QsCisgICAgICAgIHRlc3RTdHJpbmdPYmplY3QsCisgICAgICAgIHRlc3REYXRlT2JqZWN0
LAorICAgICAgICB0ZXN0UmVnRXhwT2JqZWN0LAorICAgICAgICB0ZXN0SW1hZ2VEYXRhLAorICAg
ICAgICB0ZXN0QmxvYiwKKyAgICAgICAgdGVzdEZpbGUsCisgICAgICAgIHRlc3RGaWxlTGlzdCwK
KyAgICAgICAgdGVzdEFycmF5LAorICAgICAgICB0ZXN0T2JqZWN0CisgICAgXTsKKworICAgIGZ1
bmN0aW9uIG5leHRUZXN0KCkgeworICAgICAgICBkZWJ1ZygiIik7CisgICAgICAgIGlmICh0ZXN0
c190b19ydW4ubGVuZ3RoKSB7CisgICAgICAgICAgICB2YXIgdGVzdCA9IHRlc3RzX3RvX3J1bi5z
aGlmdCgpOworICAgICAgICAgICAgdGVzdChuZXh0VGVzdCk7IC8vIFdoZW4gZG9uZSwgY2FsbCB0
aGlzIGFnYWluLgorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgdGVzdEJhZFR5cGVzKCk7
CisgICAgICAgIH0KKyAgICB9CisgICAgbmV4dFRlc3QoKTsKK30KKworZnVuY3Rpb24gZm9yRWFj
aFdpdGhDYWxsYmFjayh0ZXN0RnVuY3Rpb24sIHZhbHVlcywgY2FsbGJhY2spCit7CisgICAgZnVu
Y3Rpb24gbmV4dFZhbHVlKCkgeworICAgICAgICBpZiAodmFsdWVzLmxlbmd0aCkgeworICAgICAg
ICAgICAgdGVzdEZ1bmN0aW9uKHZhbHVlcy5zaGlmdCgpLCBuZXh0VmFsdWUpOworICAgICAgICB9
IGVsc2UgeworICAgICAgICAgICAgY2FsbGJhY2soKTsKKyAgICAgICAgfQorICAgIH0KKworICAg
IG5leHRWYWx1ZSgpOworfQorCitmdW5jdGlvbiB0ZXN0VmFsdWUodmFsdWUsIGNhbGxiYWNrKQor
eworICAgIC8vIE9uZSB0cmFuc2FjdGlvbiBwZXIgdGVzdCwgc2luY2Ugc29tZSB0ZXN0cyByZXF1
aXJlIGFzeW5jaHJvbm91cworICAgIC8vIG9wZXJhdGlvbnMgdG8gdmVyaWZ5IHRoZSByZXN1bHQg
KGUuZy4gdmlhIEZpbGVSZWFkZXIpCisgICAgZXZhbEFuZExvZygidHJhbnNhY3Rpb24gPSBkYi50
cmFuc2FjdGlvbignc3RvcmVOYW1lJywgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkiKTsKKyAg
ICB0cmFuc2FjdGlvbi5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CisgICAgdHJh
bnNhY3Rpb24ub25hYm9ydCA9IHVuZXhwZWN0ZWRBYm9ydENhbGxiYWNrOworICAgIGV2YWxBbmRM
b2coInN0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpIik7CisKKyAg
ICBkZWJ1ZygidmFsdWUgaXM6ICIgKyBTdHJpbmcodmFsdWUpICsgIiAodHlwZTogIiArIHR5cGVv
ZiB2YWx1ZSArICIpIik7CisgICAgd2luZG93LnZhbHVlID0gdmFsdWU7CisgICAgcmVxdWVzdCA9
IGV2YWxBbmRMb2coInN0b3JlLnB1dCh2YWx1ZSwgJ2tleScpIik7CisgICAgcmVxdWVzdC5vbmVy
cm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBm
dW5jdGlvbihlKSB7CisgICAgICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJzdG9yZS5nZXQoJ2tl
eScpIik7CisgICAgICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNr
OworICAgICAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAg
IC8vZGVidWcoImdvdCBiYWNrOiAiICsgU3RyaW5nKHJlcXVlc3QucmVzdWx0KSArICIgKHR5cGU6
ICIgKyB0eXBlb2YgcmVxdWVzdC5yZXN1bHQgKyAiKSIpOworICAgICAgICAgICAgY2FsbGJhY2so
cmVxdWVzdC5yZXN1bHQpOworICAgICAgICB9OworICAgIH07Cit9CisKKy8vIElkZW50aXR5IHRl
c3RpbmcsIHNlbnNpdGl2ZSB0byBOYU4gYW5kIC0wCitmdW5jdGlvbiBpcyh4LCB5KSB7CisgICAg
aWYgKHggPT09IHkpIHsKKyAgICAgICAgcmV0dXJuIHggIT09IDAgfHwgMSAvIHggPT09IDEgLyB5
OworICAgIH0KKyAgICByZXR1cm4geCAhPT0geCAmJiB5ICE9PSB5OworfQorCitmdW5jdGlvbiBh
cnJheUNvbXBhcmUoYSwgYikgeworICAgIGlmIChhLmxlbmd0aCAhPT0gYi5sZW5ndGgpIHsKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IGEubGVu
Z3RoOyArK2kpIHsKKyAgICAgICAgaWYgKCFpcyhhW2ldLCBiW2ldKSkgeworICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiB0cnVlOworfQorCitm
dW5jdGlvbiB0ZXN0UHJpbWl0aXZlVmFsdWUoc3RyaW5nLCBjYWxsYmFjaykKK3sKKyAgICBkZWJ1
ZygiVGVzdGluZzogIiArIHN0cmluZyk7CisgICAgdmFyIHZhbHVlID0gZXZhbCgidmFsdWUgPSAo
IiArIHN0cmluZyArICIpIik7CisgICAgdGVzdF9kYXRhID0gdmFsdWU7CisgICAgdGVzdFZhbHVl
KHRlc3RfZGF0YSwgZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgICAgIHdpbmRvdy5yZXN1bHQgPSBy
ZXN1bHQ7CisgICAgICAgIHNob3VsZEJlVHJ1ZSgiaXModGVzdF9kYXRhLCByZXN1bHQpIik7Cisg
ICAgICAgIGRlYnVnKCIiKTsKKyAgICAgICAgY2FsbGJhY2soKTsKKyAgICB9KTsKK30KKworZnVu
Y3Rpb24gdGVzdE9iamVjdFdpdGhWYWx1ZShzdHJpbmcsIGNhbGxiYWNrKQoreworICAgIGRlYnVn
KCJUZXN0aW5nOiAiICsgc3RyaW5nKTsKKyAgICB2YXIgdmFsdWUgPSBldmFsKCJ2YWx1ZSA9ICgi
ICsgc3RyaW5nICsgIikiKTsKKyAgICB0ZXN0X2RhdGEgPSB2YWx1ZTsKKyAgICB0ZXN0VmFsdWUo
dGVzdF9kYXRhLCBmdW5jdGlvbihyZXN1bHQpIHsKKyAgICAgICAgd2luZG93LnJlc3VsdCA9IHJl
c3VsdDsKKyAgICAgICAgZGVidWcoIlN0cmluZyhyZXN1bHQpOiAiICsgU3RyaW5nKHJlc3VsdCkp
OworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInR5cGVvZiByZXN1bHQiLCAib2JqZWN0
Iik7CisgICAgICAgIHNob3VsZEJlKCJPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwocmVz
dWx0KSIsICJPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodGVzdF9kYXRhKSIpOworICAg
ICAgICBzaG91bGRCZVRydWUoInRlc3RfZGF0YSAhPT0gcmVzdWx0Iik7CisgICAgICAgIHNob3Vs
ZEJlKCJyZXN1bHQudG9TdHJpbmcoKSIsICJ0ZXN0X2RhdGEudG9TdHJpbmcoKSIpOworICAgICAg
ICBzaG91bGRCZVRydWUoImlzKHRlc3RfZGF0YS52YWx1ZU9mKCksIHJlc3VsdC52YWx1ZU9mKCkp
Iik7CisgICAgICAgIGRlYnVnKCIiKTsKKyAgICAgICAgY2FsbGJhY2soKTsKKyAgICB9KTsKK30K
KworZnVuY3Rpb24gdGVzdFVuZGVmaW5lZChjYWxsYmFjaykKK3sKKyAgICB0ZXN0UHJpbWl0aXZl
VmFsdWUoInVuZGVmaW5lZCIsIGNhbGxiYWNrKTsKK30KKworZnVuY3Rpb24gdGVzdE51bGwoY2Fs
bGJhY2spCit7CisgICAgdGVzdFByaW1pdGl2ZVZhbHVlKCJudWxsIiwgY2FsbGJhY2spOworfQor
CitmdW5jdGlvbiB0ZXN0Qm9vbGVhbihjYWxsYmFjaykKK3sKKyAgICBkZWJ1ZygiVGVzdGluZyBi
b29sZWFuIHByaW1pdGl2ZXMiKTsKKyAgICBkZWJ1ZygiIik7CisgICAgZm9yRWFjaFdpdGhDYWxs
YmFjayh0ZXN0UHJpbWl0aXZlVmFsdWUsIFsidHJ1ZSIsICJmYWxzZSJdLCBjYWxsYmFjayk7Cit9
CisKK2Z1bmN0aW9uIHRlc3RCb29sZWFuT2JqZWN0KGNhbGxiYWNrKQoreworICAgIGRlYnVnKCJU
ZXN0aW5nIEJvb2xlYW4gb2JqZWN0cyIpOworICAgIGRlYnVnKCIiKTsKKyAgICBmb3JFYWNoV2l0
aENhbGxiYWNrKHRlc3RPYmplY3RXaXRoVmFsdWUsIFsKKyAgICAgICAgIm5ldyBCb29sZWFuKHRy
dWUpIiwKKyAgICAgICAgIm5ldyBCb29sZWFuKGZhbHNlKSIKKyAgICBdLCBjYWxsYmFjayk7Cit9
CisKK2Z1bmN0aW9uIHRlc3RTdHJpbmcoY2FsbGJhY2spCit7CisgICAgZGVidWcoIlRlc3Rpbmcg
c3RyaW5nIHByaW1pdGl2ZXMiKTsKKyAgICBkZWJ1ZygiIik7CisgICAgZm9yRWFjaFdpdGhDYWxs
YmFjayh0ZXN0UHJpbWl0aXZlVmFsdWUsIFsKKyAgICAgICAgIicnIiwKKyAgICAgICAgIid0aGlz
IGlzIGEgc2FtcGxlIHN0cmluZyciLAorICAgICAgICAiJ251bGwoXFwwKSciCisgICAgXSwgY2Fs
bGJhY2spOworfQorCitmdW5jdGlvbiB0ZXN0U3RyaW5nT2JqZWN0KGNhbGxiYWNrKQoreworICAg
IGRlYnVnKCJUZXN0aW5nIFN0cmluZyBvYmplY3RzIik7CisgICAgZGVidWcoIiIpOworICAgIGZv
ckVhY2hXaXRoQ2FsbGJhY2sodGVzdE9iamVjdFdpdGhWYWx1ZSwgWworICAgICAgICAibmV3IFN0
cmluZygpIiwKKyAgICAgICAgIm5ldyBTdHJpbmcoJ3RoaXMgaXMgYSBzYW1wbGUgc3RyaW5nJyki
LAorICAgICAgICAibmV3IFN0cmluZygnbnVsbChcXDApJykiCisgICAgXSwgY2FsbGJhY2spOwor
fQorCitmdW5jdGlvbiB0ZXN0TnVtYmVyKGNhbGxiYWNrKQoreworICAgIGRlYnVnKCJUZXN0aW5n
IG51bWJlciBwcmltaXRpdmVzIik7CisgICAgZGVidWcoIiIpOworICAgIGZvckVhY2hXaXRoQ2Fs
bGJhY2sodGVzdFByaW1pdGl2ZVZhbHVlLCBbCisgICAgICAgICJOYU4iLAorICAgICAgICAiLUlu
ZmluaXR5IiwKKyAgICAgICAgIi1OdW1iZXIuTUFYX1ZBTFVFIiwKKyAgICAgICAgIi1OdW1iZXIu
TUlOX1ZBTFVFIiwKKyAgICAgICAgIi0wIiwgLy8gRklYTUU6IFRoaXMgY3VycmVudGx5IGZhaWxz
LgorICAgICAgICAiMCIsCisgICAgICAgICJOdW1iZXIuTUlOX1ZBTFVFIiwKKyAgICAgICAgIk51
bWJlci5NQVhfVkFMVUUiLAorICAgICAgICAiSW5maW5pdHkiCisgICAgXSwgY2FsbGJhY2spOwor
fQorCitmdW5jdGlvbiB0ZXN0TnVtYmVyT2JqZWN0KGNhbGxiYWNrKQoreworICAgIGRlYnVnKCJU
ZXN0aW5nIE51bWJlciBvYmplY3RzIik7CisgICAgZGVidWcoIiIpOworICAgIGZvckVhY2hXaXRo
Q2FsbGJhY2sodGVzdE9iamVjdFdpdGhWYWx1ZSwgWworICAgICAgICAibmV3IE51bWJlcihOYU4p
IiwKKyAgICAgICAgIm5ldyBOdW1iZXIoLUluZmluaXR5KSIsCisgICAgICAgICJuZXcgTnVtYmVy
KC1OdW1iZXIuTUFYX1ZBTFVFKSIsCisgICAgICAgICJuZXcgTnVtYmVyKC1OdW1iZXIuTUlOX1ZB
TFVFKSIsCisgICAgICAgICJuZXcgTnVtYmVyKC0wKSIsCisgICAgICAgICJuZXcgTnVtYmVyKDAp
IiwKKyAgICAgICAgIm5ldyBOdW1iZXIoTnVtYmVyLk1JTl9WQUxVRSkiLAorICAgICAgICAibmV3
IE51bWJlcihOdW1iZXIuTUFYX1ZBTFVFKSIsCisgICAgICAgICJuZXcgTnVtYmVyKEluZmluaXR5
KSIKKyAgICBdLCBjYWxsYmFjayk7Cit9CisKK2Z1bmN0aW9uIHRlc3REYXRlT2JqZWN0KGNhbGxi
YWNrKQoreworICAgIGRlYnVnKCJUZXN0aW5nIERhdGUgb2JqZWN0cyIpOworICAgIGRlYnVnKCIi
KTsKKyAgICBmb3JFYWNoV2l0aENhbGxiYWNrKHRlc3RPYmplY3RXaXRoVmFsdWUsIFsKKyAgICAg
ICAgIm5ldyBEYXRlKC0xZTEzKSIsCisgICAgICAgICJuZXcgRGF0ZSgtMWUxMikiLAorICAgICAg
ICAibmV3IERhdGUoLTFlOSkiLAorICAgICAgICAibmV3IERhdGUoLTFlNikiLAorICAgICAgICAi
bmV3IERhdGUoLTFlMykiLAorICAgICAgICAibmV3IERhdGUoMCkiLAorICAgICAgICAibmV3IERh
dGUoMWUzKSIsCisgICAgICAgICJuZXcgRGF0ZSgxZTYpIiwKKyAgICAgICAgIm5ldyBEYXRlKDFl
OSkiLAorICAgICAgICAibmV3IERhdGUoMWUxMikiLAorICAgICAgICAibmV3IERhdGUoMWUxMyki
CisgICAgXSwgY2FsbGJhY2spOworfQorCitmdW5jdGlvbiB0ZXN0UmVnRXhwT2JqZWN0KGNhbGxi
YWNrKQoreworICAgIGRlYnVnKCJUZXN0aW5nIFJlZ0V4cCBvYmplY3RzIik7CisgICAgZGVidWco
IiIpOworICAgIGZ1bmN0aW9uIHRlc3RSZWdFeHAoc3RyaW5nLCBjYWxsYmFjaykgeworICAgICAg
ICBkZWJ1ZygiVGVzdGluZyBSZWdFeHA6ICIgKyBzdHJpbmcpOworICAgICAgICB2YXIgdmFsdWUg
PSBldmFsKCJ2YWx1ZSA9ICgiICsgc3RyaW5nICsgIikiKTsKKyAgICAgICAgdGVzdF9kYXRhID0g
dmFsdWU7CisgICAgICAgIHRlc3RWYWx1ZSh0ZXN0X2RhdGEsIGZ1bmN0aW9uKHJlc3VsdCkgewor
ICAgICAgICAgICAgd2luZG93LnJlc3VsdCA9IHJlc3VsdDsKKyAgICAgICAgICAgIHNob3VsZEJl
VHJ1ZSgidGVzdF9kYXRhICE9PSByZXN1bHQiKTsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxU
b1N0cmluZygiT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHJlc3VsdCkiLCAiW29iamVj
dCBSZWdFeHBdIik7CisgICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0LnRvU3RyaW5nKCkiLCAi
dGVzdF9kYXRhLnRvU3RyaW5nKCkiKTsKKyAgICAgICAgICAgIGRlYnVnKCIiKTsKKyAgICAgICAg
ICAgIGNhbGxiYWNrKCk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGZvckVhY2hXaXRoQ2Fs
bGJhY2sodGVzdFJlZ0V4cCwgWworICAgICAgICAibmV3IFJlZ0V4cCgpIiwKKyAgICAgICAgIi9h
YmMvIiwKKyAgICAgICAgIi9hYmMvZyIsCisgICAgICAgICIvYWJjL2kiLAorICAgICAgICAiL2Fi
Yy9naSIsCisgICAgICAgICIvYWJjL20iLAorICAgICAgICAiL2FiYy9tZyIsCisgICAgICAgICIv
YWJjL21pIiwKKyAgICAgICAgIi9hYmMvbWdpIgorICAgIF0sIGNhbGxiYWNrKTsKK30KKworLy8g
RklYTUU6IFRoZSBmb2xsb3dpbmcgYXJlIHN1cHBvcnRlZCwgYnV0IG5vdCBpbiB0aGUgc3BlYzoK
Ky8vICAgVHlwZWQgQXJyYXlzCisvLyAgIE1lc3NhZ2UgUG9ydAorCitmdW5jdGlvbiB0ZXN0SW1h
Z2VEYXRhKGNhbGxiYWNrKQoreworICAgIGRlYnVnKCJUZXN0aW5nIEltYWdlRGF0YSIpOworICAg
IGV2YWxBbmRMb2coImNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpIik7
CisgICAgZXZhbEFuZExvZygiY2FudmFzLndpZHRoID0gOCIpOworICAgIGV2YWxBbmRMb2coImNh
bnZhcy5oZWlnaHQgPSA4Iik7CisgICAgZXZhbEFuZExvZygidGVzdF9kYXRhID0gY2FudmFzLmdl
dENvbnRleHQoJzJkJykuZ2V0SW1hZ2VEYXRhKDAsIDAsIDgsIDgpIik7CisKKyAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IDI1NjsgKytpKSB7CisgICAgICAgIHRlc3RfZGF0YS5kYXRhW2ldID0gaTsK
KyAgICB9CisKKyAgICB0ZXN0VmFsdWUodGVzdF9kYXRhLCBmdW5jdGlvbihyZXN1bHQpIHsKKyAg
ICAgICAgd2luZG93LnJlc3VsdCA9IHJlc3VsdDsKKyAgICAgICAgc2hvdWxkQmVUcnVlKCJ0ZXN0
X2RhdGEgIT09IHJlc3VsdCIpOworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIk9iamVj
dC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChyZXN1bHQpIiwgIltvYmplY3QgSW1hZ2VEYXRhXSIp
OworICAgICAgICBzaG91bGRCZSgicmVzdWx0LndpZHRoIiwgInRlc3RfZGF0YS53aWR0aCIpOwor
ICAgICAgICBzaG91bGRCZSgicmVzdWx0LmhlaWdodCIsICJ0ZXN0X2RhdGEuaGVpZ2h0Iik7Cisg
ICAgICAgIHNob3VsZEJlKCJyZXN1bHQuZGF0YS5sZW5ndGgiLCAidGVzdF9kYXRhLmRhdGEubGVu
Z3RoIik7CisgICAgICAgIGlmIChhcnJheUNvbXBhcmUodGVzdF9kYXRhLmRhdGEsIHJlc3VsdC5k
YXRhKSkgeworICAgICAgICAgICAgdGVzdFBhc3NlZCgicmVzdWx0IGRhdGEgbWF0Y2hlcyIpOwor
ICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgdGVzdEZhaWxlZCgicmVzdWx0IGRhdGEgZG9l
c24ndCBtYXRjaCIpOworICAgICAgICB9CisgICAgICAgIGNhbGxiYWNrKCk7CisgICAgfSk7Cit9
CisKK2Z1bmN0aW9uIHJlYWRCbG9iQXNUZXh0KGJsb2IsIGNhbGxiYWNrKQoreworICAgIHZhciBy
ZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpOworICAgIHJlYWRlci5vbmxvYWQgPSBmdW5jdGlvbihl
KSB7CisgICAgICAgIGlmIChlLnRhcmdldC5yZWFkeVN0YXRlID09PSBGaWxlUmVhZGVyLkRPTkUp
IHsKKyAgICAgICAgICAgIGNhbGxiYWNrKGUudGFyZ2V0LnJlc3VsdCk7CisgICAgICAgIH0KKyAg
ICB9OworICAgIHJlYWRlci5vbmVycm9yID0gZnVuY3Rpb24oZSkgeworICAgICAgICB0ZXN0RmFp
bGVkKCJFcnJvciByZWFkaW5nIGJsb2IgYXMgdGV4dDogIiArIGUpOworICAgICAgICBkb25lKCk7
CisgICAgfTsKKyAgICByZWFkZXIucmVhZEFzVGV4dChibG9iKTsKK30KKworZnVuY3Rpb24gY2hl
Y2tCbG9iQ29udGVudHMoYmxvYiwgZXhwZWN0ZWQsIGNhbGxiYWNrKQoreworICAgIHJlYWRCbG9i
QXNUZXh0KGJsb2IsIGZ1bmN0aW9uKHRleHQpIHsKKyAgICAgICAgd2luZG93LnRleHQgPSB0ZXh0
OworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInRleHQiLCBleHBlY3RlZCk7CisgICAg
ICAgIGNhbGxiYWNrKCk7CisgICAgfSk7Cit9CisKK2Z1bmN0aW9uIGNvbXBhcmVCbG9icyhibG9i
MSwgYmxvYjIsIGNhbGxiYWNrKQoreworICAgIHJlYWRCbG9iQXNUZXh0KGJsb2IxLCBmdW5jdGlv
bih0ZXh0MSkgeworICAgICAgICByZWFkQmxvYkFzVGV4dChibG9iMiwgZnVuY3Rpb24odGV4dDIp
IHsKKyAgICAgICAgICAgIHdpbmRvdy50ZXh0MSA9IHRleHQxOworICAgICAgICAgICAgd2luZG93
LnRleHQyID0gdGV4dDI7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInRleHQy
IiwgdGV4dDEpOworICAgICAgICAgICAgY2FsbGJhY2soKTsKKyAgICAgICAgfSk7CisgICAgfSk7
Cit9CisKK2Z1bmN0aW9uIHRlc3RCbG9iKGNhbGxiYWNrKQoreworICAgIGRlYnVnKCJUZXN0aW5n
IEJsb2IiKTsKKyAgICBldmFsQW5kTG9nKCJCbG9iQnVpbGRlciA9IHdpbmRvdy5CbG9iQnVpbGRl
ciB8fCB3aW5kb3cuV2ViS2l0QmxvYkJ1aWxkZXIiKTsKKyAgICBzaG91bGRCZVRydWUoIkJsb2JC
dWlsZGVyICE9IG51bGwiKTsKKyAgICBzaG91bGRCZVRydWUoIkZpbGVSZWFkZXIgIT0gbnVsbCIp
OworICAgIGV2YWxBbmRMb2coImJ1aWxkZXIgPSBuZXcgQmxvYkJ1aWxkZXIoKSIpOworICAgIGV2
YWxBbmRMb2coInRlc3RfY29udGVudCA9ICdUaGlzIGlzIGEgdGVzdC4gVGhpcyBpcyBvbmx5IGEg
dGVzdC4nIik7CisgICAgZXZhbEFuZExvZygiYnVpbGRlci5hcHBlbmQodGVzdF9jb250ZW50KSIp
OworICAgIGV2YWxBbmRMb2coInRlc3RfZGF0YSA9IGJ1aWxkZXIuZ2V0QmxvYigpIik7CisgICAg
dGVzdFZhbHVlKHRlc3RfZGF0YSwgZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgICAgIHdpbmRvdy5y
ZXN1bHQgPSByZXN1bHQ7CisgICAgICAgIHNob3VsZEJlVHJ1ZSgidGVzdF9kYXRhICE9PSByZXN1
bHQiKTsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJPYmplY3QucHJvdG90eXBlLnRv
U3RyaW5nLmNhbGwocmVzdWx0KSIsICJbb2JqZWN0IEJsb2JdIik7CisgICAgICAgIHNob3VsZEJl
KCJyZXN1bHQuc2l6ZSIsICJ0ZXN0X2RhdGEuc2l6ZSIpOworICAgICAgICBzaG91bGRCZSgicmVz
dWx0LnR5cGUiLCAidGVzdF9kYXRhLnR5cGUiKTsKKyAgICAgICAgY2hlY2tCbG9iQ29udGVudHMo
cmVzdWx0LCB0ZXN0X2NvbnRlbnQsIGNhbGxiYWNrKTsKKyAgICB9KTsKK30KKworZnVuY3Rpb24g
Y29tcGFyZUZpbGVzKGZpbGUxLCBmaWxlMiwgY2FsbGJhY2spCit7CisgICAgd2luZG93LmZpbGUx
ID0gZmlsZTE7CisgICAgd2luZG93LmZpbGUyID0gZmlsZTI7CisgICAgc2hvdWxkQmVUcnVlKCJm
aWxlMSAhPT0gZmlsZTIiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIk9iamVjdC5wcm90
b3R5cGUudG9TdHJpbmcuY2FsbChmaWxlMSkiLCAiW29iamVjdCBGaWxlXSIpOworICAgIHNob3Vs
ZEJlRXF1YWxUb1N0cmluZygiT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGZpbGUyKSIs
ICJbb2JqZWN0IEZpbGVdIik7CisgICAgZGVidWcoImZpbGUxLnNpemU6ICIgKyBmaWxlMS5zaXpl
KTsKKyAgICBzaG91bGRCZSgiZmlsZTEuc2l6ZSIsICJmaWxlMi5zaXplIik7CisgICAgZGVidWco
ImZpbGUxLnR5cGU6ICIgKyBmaWxlMS50eXBlKTsKKyAgICBzaG91bGRCZSgiZmlsZTEudHlwZSIs
ICJmaWxlMi50eXBlIik7CisgICAgZGVidWcoImZpbGUxLm5hbWU6ICIgKyBmaWxlMS5uYW1lKTsK
KyAgICBzaG91bGRCZSgiZmlsZTEubmFtZSIsICJmaWxlMi5uYW1lIik7CisgICAgZGVidWcoImZp
bGUxLmxhc3RNb2RpZmllZERhdGU6ICIgKyBmaWxlMS5sYXN0TW9kaWZpZWREYXRlKTsKKyAgICBz
aG91bGRCZSgiU3RyaW5nKGZpbGUxLmxhc3RNb2RpZmllZERhdGUpIiwgIlN0cmluZyhmaWxlMi5s
YXN0TW9kaWZpZWREYXRlKSIpOworICAgIGlmIChjYWxsYmFjaykgeworICAgICAgICBjb21wYXJl
QmxvYnMoZmlsZTEsIGZpbGUyLCBjYWxsYmFjayk7CisgICAgfQorfQorCitmdW5jdGlvbiB0ZXN0
RmlsZShjYWxsYmFjaykKK3sKKyAgICBkZWJ1ZygiVGVzdGluZyBGaWxlIik7CisgICAgZXZhbEFu
ZExvZygidGVzdF9jb250ZW50ID0gZmlsZUlucHV0LmZpbGVzWzBdIik7CisKKyAgICB3aW5kb3cu
dGVzdF9kYXRhID0gdGVzdF9jb250ZW50OworICAgIHRlc3RWYWx1ZSh0ZXN0X2RhdGEsIGZ1bmN0
aW9uKHJlc3VsdCkgeworICAgICAgICB3aW5kb3cucmVzdWx0ID0gcmVzdWx0OworICAgICAgICBj
b21wYXJlRmlsZXMocmVzdWx0LCB0ZXN0X2RhdGEsIGNhbGxiYWNrKTsKKyAgICB9KTsKK30KKwor
CitmdW5jdGlvbiB0ZXN0RmlsZUxpc3QoY2FsbGJhY2spCit7CisgICAgZGVidWcoIlRlc3Rpbmcg
RmlsZUxpc3QiKTsKKyAgICBldmFsQW5kTG9nKCJ0ZXN0X2NvbnRlbnQgPSBmaWxlSW5wdXQuZmls
ZXMiKTsKKworICAgIHdpbmRvdy50ZXN0X2RhdGEgPSB0ZXN0X2NvbnRlbnQ7CisgICAgdGVzdFZh
bHVlKHRlc3RfZGF0YSwgZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgICAgIHdpbmRvdy5yZXN1bHQg
PSByZXN1bHQ7CisgICAgICAgIHNob3VsZEJlVHJ1ZSgidGVzdF9kYXRhICE9PSByZXN1bHQiKTsK
KyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJPYmplY3QucHJvdG90eXBlLnRvU3RyaW5n
LmNhbGwocmVzdWx0KSIsICJbb2JqZWN0IEZpbGVMaXN0XSIpOworICAgICAgICBzaG91bGRCZSgi
cmVzdWx0Lmxlbmd0aCIsICJ0ZXN0X2RhdGEubGVuZ3RoIik7CisgICAgICAgIGkgPSAwOworICAg
ICAgICBmdW5jdGlvbiBkb05leHQoKSB7CisgICAgICAgICAgICBpZiAoaSA+PSB0ZXN0X2RhdGEu
bGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgY2FsbGJhY2soKTsKKyAgICAgICAgICAgIH0gZWxz
ZSB7CisgICAgICAgICAgICAgICAgZGVidWcoImNvbXBhcmluZyBmaWxlWyIgKyBpICsgIl0iKTsK
KyAgICAgICAgICAgICAgICBjb21wYXJlRmlsZXMocmVzdWx0W2ldLCB0ZXN0X2RhdGFbaSsrXSwg
ZG9OZXh0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBkb05leHQoKTsKKyAg
ICB9KTsKK30KKworZnVuY3Rpb24gdGVzdEFycmF5KGNhbGxiYWNrKSB7CisgICAgZGVidWcoIlRl
c3RpbmcgQXJyYXkiKTsKKyAgICBldmFsQW5kTG9nKCJ0ZXN0X2RhdGEgPSBbXSIpOworICAgIGV2
YWxBbmRMb2coInRlc3RfZGF0YVswXSA9ICdmb28nIik7CisgICAgZXZhbEFuZExvZygidGVzdF9k
YXRhWzFdID0gJ2JhciciKTsKKyAgICBldmFsQW5kTG9nKCJ0ZXN0X2RhdGFbMTBdID0gdHJ1ZSIp
OworICAgIGV2YWxBbmRMb2coInRlc3RfZGF0YVsxMV0gPSBmYWxzZSIpOworICAgIGV2YWxBbmRM
b2coInRlc3RfZGF0YVsyMF0gPSAxMjMiKTsKKyAgICBldmFsQW5kTG9nKCJ0ZXN0X2RhdGFbMjFd
ID0gNDU2Iik7CisgICAgZXZhbEFuZExvZygidGVzdF9kYXRhWzMwXSA9IG51bGwiKTsKKworICAg
IHRlc3RWYWx1ZSh0ZXN0X2RhdGEsIGZ1bmN0aW9uKHJlc3VsdCkgeworICAgICAgICB3aW5kb3cu
cmVzdWx0ID0gcmVzdWx0OworICAgICAgICBzaG91bGRCZVRydWUoInRlc3RfZGF0YSAhPT0gcmVz
dWx0Iik7CisgICAgICAgIHNob3VsZEJlVHJ1ZSgidGVzdF9kYXRhLmxlbmd0aCA9PT0gcmVzdWx0
Lmxlbmd0aCIpOworICAgICAgICBPYmplY3Qua2V5cyh0ZXN0X2RhdGEpLmZvckVhY2goCisgICAg
ICAgICAgICBmdW5jdGlvbihrZXkpIHsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgidGVzdF9k
YXRhWyIgKyBrZXkgKyAiXSIsICJyZXN1bHRbIiArIGtleSArICJdIik7CisgICAgICAgICAgICB9
KTsKKyAgICAgICAgY2FsbGJhY2soKTsKKyAgICB9KTsKK30KKworZnVuY3Rpb24gdGVzdE9iamVj
dChjYWxsYmFjaykgeworICAgIGRlYnVnKCJUZXN0aW5nIE9iamVjdCIpOworICAgIGV2YWxBbmRM
b2coInRlc3RfZGF0YSA9IFtdIik7CisgICAgZXZhbEFuZExvZygidGVzdF9kYXRhWzBdID0gJ2Zv
byciKTsKKyAgICBldmFsQW5kTG9nKCJ0ZXN0X2RhdGFbMV0gPSAnYmFyJyIpOworICAgIGV2YWxB
bmRMb2coInRlc3RfZGF0YVsnYSddID0gdHJ1ZSIpOworICAgIGV2YWxBbmRMb2coInRlc3RfZGF0
YVsnYiddID0gZmFsc2UiKTsKKyAgICBldmFsQW5kTG9nKCJ0ZXN0X2RhdGFbJ2ZvbyddID0gMTIz
Iik7CisgICAgZXZhbEFuZExvZygidGVzdF9kYXRhWydiYXInXSA9IDQ1NiIpOworICAgIGV2YWxB
bmRMb2coInRlc3RfZGF0YVsnJ10gPSBudWxsIik7CisKKyAgICB0ZXN0VmFsdWUodGVzdF9kYXRh
LCBmdW5jdGlvbihyZXN1bHQpIHsKKyAgICAgICAgd2luZG93LnJlc3VsdCA9IHJlc3VsdDsKKyAg
ICAgICAgc2hvdWxkQmVUcnVlKCJ0ZXN0X2RhdGEgIT09IHJlc3VsdCIpOworICAgICAgICBzaG91
bGRCZVRydWUoImFycmF5Q29tcGFyZShPYmplY3Qua2V5cyhyZXN1bHQpLnNvcnQoKSwgT2JqZWN0
LmtleXModGVzdF9kYXRhKS5zb3J0KCkpIik7CisgICAgICAgIE9iamVjdC5rZXlzKHRlc3RfZGF0
YSkuZm9yRWFjaCgKKyAgICAgICAgICAgIGZ1bmN0aW9uKGtleSkgeworICAgICAgICAgICAgICAg
IHNob3VsZEJlKCJ0ZXN0X2RhdGFbIiArIEpTT04uc3RyaW5naWZ5KGtleSkgKyAiXSIsICJyZXN1
bHRbIiArIEpTT04uc3RyaW5naWZ5KGtleSkgKyAiXSIpOworICAgICAgICAgICAgfSk7CisgICAg
ICAgIGNhbGxiYWNrKCk7CisgICAgfSk7Cit9CisKK2Z1bmN0aW9uIHRlc3RCYWRUeXBlcygpCit7
CisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJUZXN0IHR5cGVzIHRoYXQgY2FuJ3QgYmUgY2xv
bmVkOiIpOworICAgIGRlYnVnKCIiKTsKKworICAgIGV2YWxBbmRMb2coInRyYW5zYWN0aW9uID0g
ZGIudHJhbnNhY3Rpb24oJ3N0b3JlTmFtZScsIElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUpIik7
CisgICAgZXZhbEFuZExvZygic3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmVO
YW1lJykiKTsKKyAgICB0cmFuc2FjdGlvbi5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJh
Y2s7CisgICAgdHJhbnNhY3Rpb24ub25jb21wbGV0ZSA9IHVuZXhwZWN0ZWRDb21wbGV0ZUNhbGxi
YWNrOworICAgIHRyYW5zYWN0aW9uLm9uYWJvcnQgPSBkb25lOworCisgICAgZGVidWcoIiIpOwor
ICAgIGRlYnVnKCJPdGhlciBKYXZhU2NyaXB0IG9iamVjdCB0eXBlczoiKTsKKyAgICBldmFsQW5k
RXhwZWN0RXhjZXB0aW9uKCJzdG9yZS5wdXQobmV3IEVycm9yLCAna2V5JykiLCAiRE9NRXhjZXB0
aW9uLkRBVEFfQ0xPTkVfRVJSIik7CisgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigic3RvcmUu
cHV0KG5ldyBGdW5jdGlvbiwgJ2tleScpIiwgIkRPTUV4Y2VwdGlvbi5EQVRBX0NMT05FX0VSUiIp
OworCisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJPdGhlciBob3N0IG9iamVjdCB0eXBlczoi
KTsKKyAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJzdG9yZS5wdXQod2luZG93LCAna2V5Jyki
LCAiRE9NRXhjZXB0aW9uLkRBVEFfQ0xPTkVfRVJSIik7CisgICAgZXZhbEFuZEV4cGVjdEV4Y2Vw
dGlvbigic3RvcmUucHV0KGRvY3VtZW50LCAna2V5JykiLCAiRE9NRXhjZXB0aW9uLkRBVEFfQ0xP
TkVfRVJSIik7CisgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigic3RvcmUucHV0KGRvY3VtZW50
LmJvZHksICdrZXknKSIsICJET01FeGNlcHRpb24uREFUQV9DTE9ORV9FUlIiKTsKK30KKwordGVz
dCgpOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>121707</attachid>
            <date>2012-01-09 11:54:22 -0800</date>
            <delta_ts>2012-01-19 15:31:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-74897-20120109115422.patch</filename>
            <type>text/plain</type>
            <size>47107</size>
            <attacher name="Joshua Bell">jsbell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA0NDYyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggN2JiNGJhZjAwMWNiNmM4ZDZhYzkz
OTJmOTc0MTc1NTAzYjUwMmRiYy4uYzI1MTA5YTEwNTI0MjhmNmFhYmQ2NWYxZDUxMGViYjY0M2Ux
Y2E4NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEyLTAxLTA5ICBKb3NodWEgQmVsbCAgPGpz
YmVsbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhlZERCOiBBZGQgdGVzdHMgZm9yIHN0
cnVjdHVyZWQgY2xvbmUgZGF0YQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NzQ4OTcKKworICAgICAgICBWYWxpZGF0ZSB0aGF0IHRoZSB0eXBlcyBsaXN0
ZWQgaW4gdGhlIEhUTUw1ICJzdHJ1Y3R1cmVkIGNsb25lCisgICAgICAgIGFsZ29yaXRobSIgcm91
bmQgdHJpcCBwcm9wZXJseSB0aHJvdWdoIEluZGV4ZWQgREIgc3RvcmFnZS4gT25lCisgICAgICAg
IGVkZ2UgY2FzZSBGQUlMICgtMCkgaXMgbm90ZWQgaW4gdGhlICJleHBlY3RlZCIgZmlsZSwgc2Vl
OgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU4ODAK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHN0b3Jh
Z2UvaW5kZXhlZGRiL3Jlc291cmNlcy90ZXN0LWRhdGEuaHRtbDogQWRkZWQuCisgICAgICAgICog
c3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL3Rlc3QtZGF0YS50eHQ6IEFkZGVkLgorICAgICAg
ICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3N0cnVjdHVyZWQtY2xvbmUtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9zdHJ1Y3R1cmVkLWNsb25lLmh0bWw6IEFk
ZGVkLgorCiAyMDEyLTAxLTA5ICBKb2huIEtub3R0ZW5iZWx0ICA8amtub3R0ZW5AY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIFtDaHJvbWl1bV0gVXBkYXRlIHRlc3QgZXhwZWN0YXRpb25zLgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL3Rlc3QtZGF0
YS5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL3Rlc3QtZGF0
YS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjc1YmRiMjhhZDU5MmFlMmZhZjhjN2E5M2M3M2NlMDJiY2YyMGZk
MDIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNv
dXJjZXMvdGVzdC1kYXRhLmh0bWwKQEAgLTAsMCArMSw0IEBACis8IURPQ1RZUEUgaHRtbD4KKzx0
aXRsZT5UaGlzIGlzIHNvbWUgdGVzdCBkYXRhPC90aXRsZT4KKzxoMT5UZXN0IGRhdGEhPC9oMT4K
KzxwPkdldCB5b3VyIHRlc3QgZGF0YSBoZXJlIQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL3Rlc3QtZGF0YS50eHQgYi9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvdGVzdC1kYXRhLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kZWUzYTJk
M2M3ZTZhMTc2ZmFjYTdlNTA4NzU4NjJkNDFiN2QzZWNlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL3Rlc3QtZGF0YS50eHQKQEAgLTAs
MCArMSBAQAorTG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2Np
bmcgZWxpdC4gQWVuZWFuIGxhb3JlZXQgZG9sb3IgaWQgdXJuYSBlbGVpZmVuZCBhbGlxdWV0LiBO
dWxsYSB2ZWwgZG9sb3IgaXBzdW0uIEFsaXF1YW0gdXQgdHVycGlzIG5pc2wsIGluIHZ1bHB1dGF0
ZSBzYXBpZW4uIEN1bSBzb2NpaXMgbmF0b3F1ZSBwZW5hdGlidXMgZXQgbWFnbmlzIGRpcyBwYXJ0
dXJpZW50IG1vbnRlcywgbmFzY2V0dXIgcmlkaWN1bHVzIG11cy4gU2VkIGNvbmd1ZSBtYWduYSB2
aXRhZSBkb2xvciBmZXVnaWF0IHZlaGljdWxhLiBTZWQgdm9sdXRwYXQsIHRlbGx1cyB2ZWwgdmFy
aXVzIHZlc3RpYnVsdW0sIHB1cnVzIHF1YW0gbW9sbGlzIHNhcGllbiwgaW4gY29uZGltZW50dW0g
bGVvIG5lcXVlIHNlZCBudWxsYS4gTnVuYyBxdWlzIHBvcnRhIGVsaXQuIFBlbGxlbnRlc3F1ZSBl
cmF0IGxlY3R1cywgdWx0cmljaWVzIGEgbG9ib3J0aXMgaWQsIGZhdWNpYnVzIGlkIHF1YW0uCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9zdHJ1Y3R1cmVkLWNsb25l
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3N0cnVjdHVyZWQt
Y2xvbmUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFmZDFkOWU5OTZmMGVhM2U5MjgwYTViYjNj
NWIzZjhhM2RmZjU5OGEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9zdHJ1Y3R1cmVkLWNsb25lLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDc1NiBAQAor
CitUZXN0IHN0cnVjdHVyZWQgY2xvbmUgcGVybXV0YXRpb25zIGluIEluZGV4ZWREQi4KKworT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK2luZGV4ZWREQiA9IHdpbmRvdy5pbmRleGVkREIg
fHwgd2luZG93LndlYmtpdEluZGV4ZWREQgorUEFTUyBpbmRleGVkREIgIT0gbnVsbCBpcyB0cnVl
CitJREJUcmFuc2FjdGlvbiA9IHdpbmRvdy5JREJUcmFuc2FjdGlvbiB8fCB3aW5kb3cud2Via2l0
SURCVHJhbnNhY3Rpb24KK1BBU1MgSURCVHJhbnNhY3Rpb24gIT0gbnVsbCBpcyB0cnVlCisKK1By
ZXBhcmUgRGF0YWJhc2UKK2luZGV4ZWREQi5kZWxldGVEYXRhYmFzZSgnc3RydWN0dXJlZC1jbG9u
ZScpCitpbmRleGVkREIub3Blbignc3RydWN0dXJlZC1jbG9uZScpCitkYiA9IHJlcXVlc3QucmVz
dWx0CitQQVNTIGRiLnZlcnNpb24gaXMgIiIKK2RiLnNldFZlcnNpb24oJzEnKQorZGIuY3JlYXRl
T2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpCisKK1J1bm5pbmcgdGVzdHMuLi4KKworVGVzdGluZzog
dW5kZWZpbmVkCit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUnLCBJREJU
cmFuc2FjdGlvbi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgn
c3RvcmVOYW1lJykKK3ZhbHVlIGlzOiB1bmRlZmluZWQgKHR5cGU6IHVuZGVmaW5lZCkKK3N0b3Jl
LnB1dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5nZXQoJ2tleScpCitQQVNTIGlzKHRlc3RfZGF0YSwg
cmVzdWx0KSBpcyB0cnVlCisKKworVGVzdGluZzogbnVsbAordHJhbnNhY3Rpb24gPSBkYi50cmFu
c2FjdGlvbignc3RvcmVOYW1lJywgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkKK3N0b3JlID0g
dHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpCit2YWx1ZSBpczogbnVsbCAodHlw
ZTogb2JqZWN0KQorc3RvcmUucHV0KHZhbHVlLCAna2V5JykKK3N0b3JlLmdldCgna2V5JykKK1BB
U1MgaXModGVzdF9kYXRhLCByZXN1bHQpIGlzIHRydWUKKworCitUZXN0aW5nIGJvb2xlYW4gcHJp
bWl0aXZlcworCitUZXN0aW5nOiB0cnVlCit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdz
dG9yZU5hbWUnLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFuc2FjdGlv
bi5vYmplY3RTdG9yZSgnc3RvcmVOYW1lJykKK3ZhbHVlIGlzOiB0cnVlICh0eXBlOiBib29sZWFu
KQorc3RvcmUucHV0KHZhbHVlLCAna2V5JykKK3N0b3JlLmdldCgna2V5JykKK1BBU1MgaXModGVz
dF9kYXRhLCByZXN1bHQpIGlzIHRydWUKKworVGVzdGluZzogZmFsc2UKK3RyYW5zYWN0aW9uID0g
ZGIudHJhbnNhY3Rpb24oJ3N0b3JlTmFtZScsIElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUpCitz
dG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKQordmFsdWUgaXM6IGZh
bHNlICh0eXBlOiBib29sZWFuKQorc3RvcmUucHV0KHZhbHVlLCAna2V5JykKK3N0b3JlLmdldCgn
a2V5JykKK1BBU1MgaXModGVzdF9kYXRhLCByZXN1bHQpIGlzIHRydWUKKworCitUZXN0aW5nIG51
bWJlciBwcmltaXRpdmVzCisKK1Rlc3Rpbmc6IE5hTgordHJhbnNhY3Rpb24gPSBkYi50cmFuc2Fj
dGlvbignc3RvcmVOYW1lJywgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkKK3N0b3JlID0gdHJh
bnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpCit2YWx1ZSBpczogTmFOICh0eXBlOiBu
dW1iZXIpCitzdG9yZS5wdXQodmFsdWUsICdrZXknKQorc3RvcmUuZ2V0KCdrZXknKQorUEFTUyBp
cyh0ZXN0X2RhdGEsIHJlc3VsdCkgaXMgdHJ1ZQorCitUZXN0aW5nOiAtSW5maW5pdHkKK3RyYW5z
YWN0aW9uID0gZGIudHJhbnNhY3Rpb24oJ3N0b3JlTmFtZScsIElEQlRyYW5zYWN0aW9uLlJFQURf
V1JJVEUpCitzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKQordmFs
dWUgaXM6IC1JbmZpbml0eSAodHlwZTogbnVtYmVyKQorc3RvcmUucHV0KHZhbHVlLCAna2V5JykK
K3N0b3JlLmdldCgna2V5JykKK1BBU1MgaXModGVzdF9kYXRhLCByZXN1bHQpIGlzIHRydWUKKwor
VGVzdGluZzogLU51bWJlci5NQVhfVkFMVUUKK3RyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24o
J3N0b3JlTmFtZScsIElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUpCitzdG9yZSA9IHRyYW5zYWN0
aW9uLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKQordmFsdWUgaXM6IC0xLjc5NzY5MzEzNDg2MjMx
NTdlKzMwOCAodHlwZTogbnVtYmVyKQorc3RvcmUucHV0KHZhbHVlLCAna2V5JykKK3N0b3JlLmdl
dCgna2V5JykKK1BBU1MgaXModGVzdF9kYXRhLCByZXN1bHQpIGlzIHRydWUKKworVGVzdGluZzog
LU51bWJlci5NSU5fVkFMVUUKK3RyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24oJ3N0b3JlTmFt
ZScsIElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUpCitzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVj
dFN0b3JlKCdzdG9yZU5hbWUnKQordmFsdWUgaXM6IC01ZS0zMjQgKHR5cGU6IG51bWJlcikKK3N0
b3JlLnB1dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5nZXQoJ2tleScpCitQQVNTIGlzKHRlc3RfZGF0
YSwgcmVzdWx0KSBpcyB0cnVlCisKK1Rlc3Rpbmc6IC0wCit0cmFuc2FjdGlvbiA9IGRiLnRyYW5z
YWN0aW9uKCdzdG9yZU5hbWUnLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0
cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmVOYW1lJykKK3ZhbHVlIGlzOiAwICh0eXBlOiBu
dW1iZXIpCitzdG9yZS5wdXQodmFsdWUsICdrZXknKQorc3RvcmUuZ2V0KCdrZXknKQorRkFJTCBp
cyh0ZXN0X2RhdGEsIHJlc3VsdCkgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KKworVGVzdGlu
ZzogMAordHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1lJywgSURCVHJhbnNh
Y3Rpb24uUkVBRF9XUklURSkKK3N0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3Jl
TmFtZScpCit2YWx1ZSBpczogMCAodHlwZTogbnVtYmVyKQorc3RvcmUucHV0KHZhbHVlLCAna2V5
JykKK3N0b3JlLmdldCgna2V5JykKK1BBU1MgaXModGVzdF9kYXRhLCByZXN1bHQpIGlzIHRydWUK
KworVGVzdGluZzogTnVtYmVyLk1JTl9WQUxVRQordHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlv
bignc3RvcmVOYW1lJywgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkKK3N0b3JlID0gdHJhbnNh
Y3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpCit2YWx1ZSBpczogNWUtMzI0ICh0eXBlOiBu
dW1iZXIpCitzdG9yZS5wdXQodmFsdWUsICdrZXknKQorc3RvcmUuZ2V0KCdrZXknKQorUEFTUyBp
cyh0ZXN0X2RhdGEsIHJlc3VsdCkgaXMgdHJ1ZQorCitUZXN0aW5nOiBOdW1iZXIuTUFYX1ZBTFVF
Cit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUnLCBJREJUcmFuc2FjdGlv
bi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmVOYW1l
JykKK3ZhbHVlIGlzOiAxLjc5NzY5MzEzNDg2MjMxNTdlKzMwOCAodHlwZTogbnVtYmVyKQorc3Rv
cmUucHV0KHZhbHVlLCAna2V5JykKK3N0b3JlLmdldCgna2V5JykKK1BBU1MgaXModGVzdF9kYXRh
LCByZXN1bHQpIGlzIHRydWUKKworVGVzdGluZzogSW5maW5pdHkKK3RyYW5zYWN0aW9uID0gZGIu
dHJhbnNhY3Rpb24oJ3N0b3JlTmFtZScsIElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUpCitzdG9y
ZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKQordmFsdWUgaXM6IEluZmlu
aXR5ICh0eXBlOiBudW1iZXIpCitzdG9yZS5wdXQodmFsdWUsICdrZXknKQorc3RvcmUuZ2V0KCdr
ZXknKQorUEFTUyBpcyh0ZXN0X2RhdGEsIHJlc3VsdCkgaXMgdHJ1ZQorCisKK1Rlc3Rpbmcgc3Ry
aW5nIHByaW1pdGl2ZXMKKworVGVzdGluZzogJycKK3RyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rp
b24oJ3N0b3JlTmFtZScsIElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUpCitzdG9yZSA9IHRyYW5z
YWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKQordmFsdWUgaXM6ICAodHlwZTogc3RyaW5n
KQorc3RvcmUucHV0KHZhbHVlLCAna2V5JykKK3N0b3JlLmdldCgna2V5JykKK1BBU1MgaXModGVz
dF9kYXRhLCByZXN1bHQpIGlzIHRydWUKKworVGVzdGluZzogJ3RoaXMgaXMgYSBzYW1wbGUgc3Ry
aW5nJwordHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1lJywgSURCVHJhbnNh
Y3Rpb24uUkVBRF9XUklURSkKK3N0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3Jl
TmFtZScpCit2YWx1ZSBpczogdGhpcyBpcyBhIHNhbXBsZSBzdHJpbmcgKHR5cGU6IHN0cmluZykK
K3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5nZXQoJ2tleScpCitQQVNTIGlzKHRlc3Rf
ZGF0YSwgcmVzdWx0KSBpcyB0cnVlCisKK1Rlc3Rpbmc6ICdudWxsKFwwKScKK3RyYW5zYWN0aW9u
ID0gZGIudHJhbnNhY3Rpb24oJ3N0b3JlTmFtZScsIElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUp
CitzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKQordmFsdWUgaXM6
IG51bGwoKSAodHlwZTogc3RyaW5nKQorc3RvcmUucHV0KHZhbHVlLCAna2V5JykKK3N0b3JlLmdl
dCgna2V5JykKK1BBU1MgaXModGVzdF9kYXRhLCByZXN1bHQpIGlzIHRydWUKKworCitUZXN0aW5n
IEJvb2xlYW4gb2JqZWN0cworCitUZXN0aW5nOiBuZXcgQm9vbGVhbih0cnVlKQordHJhbnNhY3Rp
b24gPSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1lJywgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklU
RSkKK3N0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpCit2YWx1ZSBp
czogdHJ1ZSAodHlwZTogb2JqZWN0KQorc3RvcmUucHV0KHZhbHVlLCAna2V5JykKK3N0b3JlLmdl
dCgna2V5JykKK1N0cmluZyhyZXN1bHQpOiB0cnVlCitQQVNTIHR5cGVvZiByZXN1bHQgaXMgIm9i
amVjdCIKK1BBU1MgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHJlc3VsdCkgaXMgT2Jq
ZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHRlc3RfZGF0YSkKK1BBU1MgdGVzdF9kYXRhICE9
PSByZXN1bHQgaXMgdHJ1ZQorUEFTUyByZXN1bHQudG9TdHJpbmcoKSBpcyB0ZXN0X2RhdGEudG9T
dHJpbmcoKQorUEFTUyBpcyh0ZXN0X2RhdGEudmFsdWVPZigpLCByZXN1bHQudmFsdWVPZigpKSBp
cyB0cnVlCisKK1Rlc3Rpbmc6IG5ldyBCb29sZWFuKGZhbHNlKQordHJhbnNhY3Rpb24gPSBkYi50
cmFuc2FjdGlvbignc3RvcmVOYW1lJywgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkKK3N0b3Jl
ID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpCit2YWx1ZSBpczogZmFsc2Ug
KHR5cGU6IG9iamVjdCkKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5nZXQoJ2tleScp
CitTdHJpbmcocmVzdWx0KTogZmFsc2UKK1BBU1MgdHlwZW9mIHJlc3VsdCBpcyAib2JqZWN0Igor
UEFTUyBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwocmVzdWx0KSBpcyBPYmplY3QucHJv
dG90eXBlLnRvU3RyaW5nLmNhbGwodGVzdF9kYXRhKQorUEFTUyB0ZXN0X2RhdGEgIT09IHJlc3Vs
dCBpcyB0cnVlCitQQVNTIHJlc3VsdC50b1N0cmluZygpIGlzIHRlc3RfZGF0YS50b1N0cmluZygp
CitQQVNTIGlzKHRlc3RfZGF0YS52YWx1ZU9mKCksIHJlc3VsdC52YWx1ZU9mKCkpIGlzIHRydWUK
KworCitUZXN0aW5nIE51bWJlciBvYmplY3RzCisKK1Rlc3Rpbmc6IG5ldyBOdW1iZXIoTmFOKQor
dHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1lJywgSURCVHJhbnNhY3Rpb24u
UkVBRF9XUklURSkKK3N0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScp
Cit2YWx1ZSBpczogTmFOICh0eXBlOiBvYmplY3QpCitzdG9yZS5wdXQodmFsdWUsICdrZXknKQor
c3RvcmUuZ2V0KCdrZXknKQorU3RyaW5nKHJlc3VsdCk6IE5hTgorUEFTUyB0eXBlb2YgcmVzdWx0
IGlzICJvYmplY3QiCitQQVNTIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChyZXN1bHQp
IGlzIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0ZXN0X2RhdGEpCitQQVNTIHRlc3Rf
ZGF0YSAhPT0gcmVzdWx0IGlzIHRydWUKK1BBU1MgcmVzdWx0LnRvU3RyaW5nKCkgaXMgdGVzdF9k
YXRhLnRvU3RyaW5nKCkKK1BBU1MgaXModGVzdF9kYXRhLnZhbHVlT2YoKSwgcmVzdWx0LnZhbHVl
T2YoKSkgaXMgdHJ1ZQorCitUZXN0aW5nOiBuZXcgTnVtYmVyKC1JbmZpbml0eSkKK3RyYW5zYWN0
aW9uID0gZGIudHJhbnNhY3Rpb24oJ3N0b3JlTmFtZScsIElEQlRyYW5zYWN0aW9uLlJFQURfV1JJ
VEUpCitzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKQordmFsdWUg
aXM6IC1JbmZpbml0eSAodHlwZTogb2JqZWN0KQorc3RvcmUucHV0KHZhbHVlLCAna2V5JykKK3N0
b3JlLmdldCgna2V5JykKK1N0cmluZyhyZXN1bHQpOiAtSW5maW5pdHkKK1BBU1MgdHlwZW9mIHJl
c3VsdCBpcyAib2JqZWN0IgorUEFTUyBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwocmVz
dWx0KSBpcyBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodGVzdF9kYXRhKQorUEFTUyB0
ZXN0X2RhdGEgIT09IHJlc3VsdCBpcyB0cnVlCitQQVNTIHJlc3VsdC50b1N0cmluZygpIGlzIHRl
c3RfZGF0YS50b1N0cmluZygpCitQQVNTIGlzKHRlc3RfZGF0YS52YWx1ZU9mKCksIHJlc3VsdC52
YWx1ZU9mKCkpIGlzIHRydWUKKworVGVzdGluZzogbmV3IE51bWJlcigtTnVtYmVyLk1BWF9WQUxV
RSkKK3RyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24oJ3N0b3JlTmFtZScsIElEQlRyYW5zYWN0
aW9uLlJFQURfV1JJVEUpCitzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZU5h
bWUnKQordmFsdWUgaXM6IC0xLjc5NzY5MzEzNDg2MjMxNTdlKzMwOCAodHlwZTogb2JqZWN0KQor
c3RvcmUucHV0KHZhbHVlLCAna2V5JykKK3N0b3JlLmdldCgna2V5JykKK1N0cmluZyhyZXN1bHQp
OiAtMS43OTc2OTMxMzQ4NjIzMTU3ZSszMDgKK1BBU1MgdHlwZW9mIHJlc3VsdCBpcyAib2JqZWN0
IgorUEFTUyBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwocmVzdWx0KSBpcyBPYmplY3Qu
cHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodGVzdF9kYXRhKQorUEFTUyB0ZXN0X2RhdGEgIT09IHJl
c3VsdCBpcyB0cnVlCitQQVNTIHJlc3VsdC50b1N0cmluZygpIGlzIHRlc3RfZGF0YS50b1N0cmlu
ZygpCitQQVNTIGlzKHRlc3RfZGF0YS52YWx1ZU9mKCksIHJlc3VsdC52YWx1ZU9mKCkpIGlzIHRy
dWUKKworVGVzdGluZzogbmV3IE51bWJlcigtTnVtYmVyLk1JTl9WQUxVRSkKK3RyYW5zYWN0aW9u
ID0gZGIudHJhbnNhY3Rpb24oJ3N0b3JlTmFtZScsIElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUp
CitzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKQordmFsdWUgaXM6
IC01ZS0zMjQgKHR5cGU6IG9iamVjdCkKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5n
ZXQoJ2tleScpCitTdHJpbmcocmVzdWx0KTogLTVlLTMyNAorUEFTUyB0eXBlb2YgcmVzdWx0IGlz
ICJvYmplY3QiCitQQVNTIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChyZXN1bHQpIGlz
IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0ZXN0X2RhdGEpCitQQVNTIHRlc3RfZGF0
YSAhPT0gcmVzdWx0IGlzIHRydWUKK1BBU1MgcmVzdWx0LnRvU3RyaW5nKCkgaXMgdGVzdF9kYXRh
LnRvU3RyaW5nKCkKK1BBU1MgaXModGVzdF9kYXRhLnZhbHVlT2YoKSwgcmVzdWx0LnZhbHVlT2Yo
KSkgaXMgdHJ1ZQorCitUZXN0aW5nOiBuZXcgTnVtYmVyKC0wKQordHJhbnNhY3Rpb24gPSBkYi50
cmFuc2FjdGlvbignc3RvcmVOYW1lJywgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkKK3N0b3Jl
ID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpCit2YWx1ZSBpczogMCAodHlw
ZTogb2JqZWN0KQorc3RvcmUucHV0KHZhbHVlLCAna2V5JykKK3N0b3JlLmdldCgna2V5JykKK1N0
cmluZyhyZXN1bHQpOiAwCitQQVNTIHR5cGVvZiByZXN1bHQgaXMgIm9iamVjdCIKK1BBU1MgT2Jq
ZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHJlc3VsdCkgaXMgT2JqZWN0LnByb3RvdHlwZS50
b1N0cmluZy5jYWxsKHRlc3RfZGF0YSkKK1BBU1MgdGVzdF9kYXRhICE9PSByZXN1bHQgaXMgdHJ1
ZQorUEFTUyByZXN1bHQudG9TdHJpbmcoKSBpcyB0ZXN0X2RhdGEudG9TdHJpbmcoKQorUEFTUyBp
cyh0ZXN0X2RhdGEudmFsdWVPZigpLCByZXN1bHQudmFsdWVPZigpKSBpcyB0cnVlCisKK1Rlc3Rp
bmc6IG5ldyBOdW1iZXIoMCkKK3RyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24oJ3N0b3JlTmFt
ZScsIElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUpCitzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVj
dFN0b3JlKCdzdG9yZU5hbWUnKQordmFsdWUgaXM6IDAgKHR5cGU6IG9iamVjdCkKK3N0b3JlLnB1
dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5nZXQoJ2tleScpCitTdHJpbmcocmVzdWx0KTogMAorUEFT
UyB0eXBlb2YgcmVzdWx0IGlzICJvYmplY3QiCitQQVNTIE9iamVjdC5wcm90b3R5cGUudG9TdHJp
bmcuY2FsbChyZXN1bHQpIGlzIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0ZXN0X2Rh
dGEpCitQQVNTIHRlc3RfZGF0YSAhPT0gcmVzdWx0IGlzIHRydWUKK1BBU1MgcmVzdWx0LnRvU3Ry
aW5nKCkgaXMgdGVzdF9kYXRhLnRvU3RyaW5nKCkKK1BBU1MgaXModGVzdF9kYXRhLnZhbHVlT2Yo
KSwgcmVzdWx0LnZhbHVlT2YoKSkgaXMgdHJ1ZQorCitUZXN0aW5nOiBuZXcgTnVtYmVyKE51bWJl
ci5NSU5fVkFMVUUpCit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUnLCBJ
REJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9y
ZSgnc3RvcmVOYW1lJykKK3ZhbHVlIGlzOiA1ZS0zMjQgKHR5cGU6IG9iamVjdCkKK3N0b3JlLnB1
dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5nZXQoJ2tleScpCitTdHJpbmcocmVzdWx0KTogNWUtMzI0
CitQQVNTIHR5cGVvZiByZXN1bHQgaXMgIm9iamVjdCIKK1BBU1MgT2JqZWN0LnByb3RvdHlwZS50
b1N0cmluZy5jYWxsKHJlc3VsdCkgaXMgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHRl
c3RfZGF0YSkKK1BBU1MgdGVzdF9kYXRhICE9PSByZXN1bHQgaXMgdHJ1ZQorUEFTUyByZXN1bHQu
dG9TdHJpbmcoKSBpcyB0ZXN0X2RhdGEudG9TdHJpbmcoKQorUEFTUyBpcyh0ZXN0X2RhdGEudmFs
dWVPZigpLCByZXN1bHQudmFsdWVPZigpKSBpcyB0cnVlCisKK1Rlc3Rpbmc6IG5ldyBOdW1iZXIo
TnVtYmVyLk1BWF9WQUxVRSkKK3RyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24oJ3N0b3JlTmFt
ZScsIElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUpCitzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVj
dFN0b3JlKCdzdG9yZU5hbWUnKQordmFsdWUgaXM6IDEuNzk3NjkzMTM0ODYyMzE1N2UrMzA4ICh0
eXBlOiBvYmplY3QpCitzdG9yZS5wdXQodmFsdWUsICdrZXknKQorc3RvcmUuZ2V0KCdrZXknKQor
U3RyaW5nKHJlc3VsdCk6IDEuNzk3NjkzMTM0ODYyMzE1N2UrMzA4CitQQVNTIHR5cGVvZiByZXN1
bHQgaXMgIm9iamVjdCIKK1BBU1MgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHJlc3Vs
dCkgaXMgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHRlc3RfZGF0YSkKK1BBU1MgdGVz
dF9kYXRhICE9PSByZXN1bHQgaXMgdHJ1ZQorUEFTUyByZXN1bHQudG9TdHJpbmcoKSBpcyB0ZXN0
X2RhdGEudG9TdHJpbmcoKQorUEFTUyBpcyh0ZXN0X2RhdGEudmFsdWVPZigpLCByZXN1bHQudmFs
dWVPZigpKSBpcyB0cnVlCisKK1Rlc3Rpbmc6IG5ldyBOdW1iZXIoSW5maW5pdHkpCit0cmFuc2Fj
dGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUnLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dS
SVRFKQorc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmVOYW1lJykKK3ZhbHVl
IGlzOiBJbmZpbml0eSAodHlwZTogb2JqZWN0KQorc3RvcmUucHV0KHZhbHVlLCAna2V5JykKK3N0
b3JlLmdldCgna2V5JykKK1N0cmluZyhyZXN1bHQpOiBJbmZpbml0eQorUEFTUyB0eXBlb2YgcmVz
dWx0IGlzICJvYmplY3QiCitQQVNTIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChyZXN1
bHQpIGlzIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0ZXN0X2RhdGEpCitQQVNTIHRl
c3RfZGF0YSAhPT0gcmVzdWx0IGlzIHRydWUKK1BBU1MgcmVzdWx0LnRvU3RyaW5nKCkgaXMgdGVz
dF9kYXRhLnRvU3RyaW5nKCkKK1BBU1MgaXModGVzdF9kYXRhLnZhbHVlT2YoKSwgcmVzdWx0LnZh
bHVlT2YoKSkgaXMgdHJ1ZQorCisKK1Rlc3RpbmcgU3RyaW5nIG9iamVjdHMKKworVGVzdGluZzog
bmV3IFN0cmluZygpCit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUnLCBJ
REJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9y
ZSgnc3RvcmVOYW1lJykKK3ZhbHVlIGlzOiAgKHR5cGU6IG9iamVjdCkKK3N0b3JlLnB1dCh2YWx1
ZSwgJ2tleScpCitzdG9yZS5nZXQoJ2tleScpCitTdHJpbmcocmVzdWx0KTogCitQQVNTIHR5cGVv
ZiByZXN1bHQgaXMgIm9iamVjdCIKK1BBU1MgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxs
KHJlc3VsdCkgaXMgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHRlc3RfZGF0YSkKK1BB
U1MgdGVzdF9kYXRhICE9PSByZXN1bHQgaXMgdHJ1ZQorUEFTUyByZXN1bHQudG9TdHJpbmcoKSBp
cyB0ZXN0X2RhdGEudG9TdHJpbmcoKQorUEFTUyBpcyh0ZXN0X2RhdGEudmFsdWVPZigpLCByZXN1
bHQudmFsdWVPZigpKSBpcyB0cnVlCisKK1Rlc3Rpbmc6IG5ldyBTdHJpbmcoJ3RoaXMgaXMgYSBz
YW1wbGUgc3RyaW5nJykKK3RyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24oJ3N0b3JlTmFtZScs
IElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUpCitzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0
b3JlKCdzdG9yZU5hbWUnKQordmFsdWUgaXM6IHRoaXMgaXMgYSBzYW1wbGUgc3RyaW5nICh0eXBl
OiBvYmplY3QpCitzdG9yZS5wdXQodmFsdWUsICdrZXknKQorc3RvcmUuZ2V0KCdrZXknKQorU3Ry
aW5nKHJlc3VsdCk6IHRoaXMgaXMgYSBzYW1wbGUgc3RyaW5nCitQQVNTIHR5cGVvZiByZXN1bHQg
aXMgIm9iamVjdCIKK1BBU1MgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHJlc3VsdCkg
aXMgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHRlc3RfZGF0YSkKK1BBU1MgdGVzdF9k
YXRhICE9PSByZXN1bHQgaXMgdHJ1ZQorUEFTUyByZXN1bHQudG9TdHJpbmcoKSBpcyB0ZXN0X2Rh
dGEudG9TdHJpbmcoKQorUEFTUyBpcyh0ZXN0X2RhdGEudmFsdWVPZigpLCByZXN1bHQudmFsdWVP
ZigpKSBpcyB0cnVlCisKK1Rlc3Rpbmc6IG5ldyBTdHJpbmcoJ251bGwoXDApJykKK3RyYW5zYWN0
aW9uID0gZGIudHJhbnNhY3Rpb24oJ3N0b3JlTmFtZScsIElEQlRyYW5zYWN0aW9uLlJFQURfV1JJ
VEUpCitzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKQordmFsdWUg
aXM6IG51bGwoKSAodHlwZTogb2JqZWN0KQorc3RvcmUucHV0KHZhbHVlLCAna2V5JykKK3N0b3Jl
LmdldCgna2V5JykKK1N0cmluZyhyZXN1bHQpOiBudWxsKCkKK1BBU1MgdHlwZW9mIHJlc3VsdCBp
cyAib2JqZWN0IgorUEFTUyBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwocmVzdWx0KSBp
cyBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodGVzdF9kYXRhKQorUEFTUyB0ZXN0X2Rh
dGEgIT09IHJlc3VsdCBpcyB0cnVlCitQQVNTIHJlc3VsdC50b1N0cmluZygpIGlzIHRlc3RfZGF0
YS50b1N0cmluZygpCitQQVNTIGlzKHRlc3RfZGF0YS52YWx1ZU9mKCksIHJlc3VsdC52YWx1ZU9m
KCkpIGlzIHRydWUKKworCitUZXN0aW5nIERhdGUgb2JqZWN0cworCitUZXN0aW5nOiBuZXcgRGF0
ZSgtMWUxMykKK3RyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24oJ3N0b3JlTmFtZScsIElEQlRy
YW5zYWN0aW9uLlJFQURfV1JJVEUpCitzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdz
dG9yZU5hbWUnKQordmFsdWUgaXM6IFN1biBGZWIgMDkgMTY1MyAyMjoxMzoyMCBHTVQtMDgwMCAo
UFNUKSAodHlwZTogb2JqZWN0KQorc3RvcmUucHV0KHZhbHVlLCAna2V5JykKK3N0b3JlLmdldCgn
a2V5JykKK1N0cmluZyhyZXN1bHQpOiBTdW4gRmViIDA5IDE2NTMgMjI6MTM6MjAgR01ULTA4MDAg
KFBTVCkKK1BBU1MgdHlwZW9mIHJlc3VsdCBpcyAib2JqZWN0IgorUEFTUyBPYmplY3QucHJvdG90
eXBlLnRvU3RyaW5nLmNhbGwocmVzdWx0KSBpcyBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNh
bGwodGVzdF9kYXRhKQorUEFTUyB0ZXN0X2RhdGEgIT09IHJlc3VsdCBpcyB0cnVlCitQQVNTIHJl
c3VsdC50b1N0cmluZygpIGlzIHRlc3RfZGF0YS50b1N0cmluZygpCitQQVNTIGlzKHRlc3RfZGF0
YS52YWx1ZU9mKCksIHJlc3VsdC52YWx1ZU9mKCkpIGlzIHRydWUKKworVGVzdGluZzogbmV3IERh
dGUoLTFlMTIpCit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUnLCBJREJU
cmFuc2FjdGlvbi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgn
c3RvcmVOYW1lJykKK3ZhbHVlIGlzOiBTdW4gQXByIDI0IDE5MzggMTU6MTM6MjAgR01ULTA3MDAg
KFBEVCkgKHR5cGU6IG9iamVjdCkKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5nZXQo
J2tleScpCitTdHJpbmcocmVzdWx0KTogU3VuIEFwciAyNCAxOTM4IDE1OjEzOjIwIEdNVC0wNzAw
IChQRFQpCitQQVNTIHR5cGVvZiByZXN1bHQgaXMgIm9iamVjdCIKK1BBU1MgT2JqZWN0LnByb3Rv
dHlwZS50b1N0cmluZy5jYWxsKHJlc3VsdCkgaXMgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5j
YWxsKHRlc3RfZGF0YSkKK1BBU1MgdGVzdF9kYXRhICE9PSByZXN1bHQgaXMgdHJ1ZQorUEFTUyBy
ZXN1bHQudG9TdHJpbmcoKSBpcyB0ZXN0X2RhdGEudG9TdHJpbmcoKQorUEFTUyBpcyh0ZXN0X2Rh
dGEudmFsdWVPZigpLCByZXN1bHQudmFsdWVPZigpKSBpcyB0cnVlCisKK1Rlc3Rpbmc6IG5ldyBE
YXRlKC0xZTkpCit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUnLCBJREJU
cmFuc2FjdGlvbi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgn
c3RvcmVOYW1lJykKK3ZhbHVlIGlzOiBTYXQgRGVjIDIwIDE5NjkgMDI6MTM6MjAgR01ULTA4MDAg
KFBTVCkgKHR5cGU6IG9iamVjdCkKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5nZXQo
J2tleScpCitTdHJpbmcocmVzdWx0KTogU2F0IERlYyAyMCAxOTY5IDAyOjEzOjIwIEdNVC0wODAw
IChQU1QpCitQQVNTIHR5cGVvZiByZXN1bHQgaXMgIm9iamVjdCIKK1BBU1MgT2JqZWN0LnByb3Rv
dHlwZS50b1N0cmluZy5jYWxsKHJlc3VsdCkgaXMgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5j
YWxsKHRlc3RfZGF0YSkKK1BBU1MgdGVzdF9kYXRhICE9PSByZXN1bHQgaXMgdHJ1ZQorUEFTUyBy
ZXN1bHQudG9TdHJpbmcoKSBpcyB0ZXN0X2RhdGEudG9TdHJpbmcoKQorUEFTUyBpcyh0ZXN0X2Rh
dGEudmFsdWVPZigpLCByZXN1bHQudmFsdWVPZigpKSBpcyB0cnVlCisKK1Rlc3Rpbmc6IG5ldyBE
YXRlKC0xZTYpCit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUnLCBJREJU
cmFuc2FjdGlvbi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgn
c3RvcmVOYW1lJykKK3ZhbHVlIGlzOiBXZWQgRGVjIDMxIDE5NjkgMTU6NDM6MjAgR01ULTA4MDAg
KFBTVCkgKHR5cGU6IG9iamVjdCkKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5nZXQo
J2tleScpCitTdHJpbmcocmVzdWx0KTogV2VkIERlYyAzMSAxOTY5IDE1OjQzOjIwIEdNVC0wODAw
IChQU1QpCitQQVNTIHR5cGVvZiByZXN1bHQgaXMgIm9iamVjdCIKK1BBU1MgT2JqZWN0LnByb3Rv
dHlwZS50b1N0cmluZy5jYWxsKHJlc3VsdCkgaXMgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5j
YWxsKHRlc3RfZGF0YSkKK1BBU1MgdGVzdF9kYXRhICE9PSByZXN1bHQgaXMgdHJ1ZQorUEFTUyBy
ZXN1bHQudG9TdHJpbmcoKSBpcyB0ZXN0X2RhdGEudG9TdHJpbmcoKQorUEFTUyBpcyh0ZXN0X2Rh
dGEudmFsdWVPZigpLCByZXN1bHQudmFsdWVPZigpKSBpcyB0cnVlCisKK1Rlc3Rpbmc6IG5ldyBE
YXRlKC0xZTMpCit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUnLCBJREJU
cmFuc2FjdGlvbi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgn
c3RvcmVOYW1lJykKK3ZhbHVlIGlzOiBXZWQgRGVjIDMxIDE5NjkgMTU6NTk6NTkgR01ULTA4MDAg
KFBTVCkgKHR5cGU6IG9iamVjdCkKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5nZXQo
J2tleScpCitTdHJpbmcocmVzdWx0KTogV2VkIERlYyAzMSAxOTY5IDE1OjU5OjU5IEdNVC0wODAw
IChQU1QpCitQQVNTIHR5cGVvZiByZXN1bHQgaXMgIm9iamVjdCIKK1BBU1MgT2JqZWN0LnByb3Rv
dHlwZS50b1N0cmluZy5jYWxsKHJlc3VsdCkgaXMgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5j
YWxsKHRlc3RfZGF0YSkKK1BBU1MgdGVzdF9kYXRhICE9PSByZXN1bHQgaXMgdHJ1ZQorUEFTUyBy
ZXN1bHQudG9TdHJpbmcoKSBpcyB0ZXN0X2RhdGEudG9TdHJpbmcoKQorUEFTUyBpcyh0ZXN0X2Rh
dGEudmFsdWVPZigpLCByZXN1bHQudmFsdWVPZigpKSBpcyB0cnVlCisKK1Rlc3Rpbmc6IG5ldyBE
YXRlKDApCit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUnLCBJREJUcmFu
c2FjdGlvbi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3Rv
cmVOYW1lJykKK3ZhbHVlIGlzOiBXZWQgRGVjIDMxIDE5NjkgMTY6MDA6MDAgR01ULTA4MDAgKFBT
VCkgKHR5cGU6IG9iamVjdCkKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5nZXQoJ2tl
eScpCitTdHJpbmcocmVzdWx0KTogV2VkIERlYyAzMSAxOTY5IDE2OjAwOjAwIEdNVC0wODAwIChQ
U1QpCitQQVNTIHR5cGVvZiByZXN1bHQgaXMgIm9iamVjdCIKK1BBU1MgT2JqZWN0LnByb3RvdHlw
ZS50b1N0cmluZy5jYWxsKHJlc3VsdCkgaXMgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxs
KHRlc3RfZGF0YSkKK1BBU1MgdGVzdF9kYXRhICE9PSByZXN1bHQgaXMgdHJ1ZQorUEFTUyByZXN1
bHQudG9TdHJpbmcoKSBpcyB0ZXN0X2RhdGEudG9TdHJpbmcoKQorUEFTUyBpcyh0ZXN0X2RhdGEu
dmFsdWVPZigpLCByZXN1bHQudmFsdWVPZigpKSBpcyB0cnVlCisKK1Rlc3Rpbmc6IG5ldyBEYXRl
KDFlMykKK3RyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24oJ3N0b3JlTmFtZScsIElEQlRyYW5z
YWN0aW9uLlJFQURfV1JJVEUpCitzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9y
ZU5hbWUnKQordmFsdWUgaXM6IFdlZCBEZWMgMzEgMTk2OSAxNjowMDowMSBHTVQtMDgwMCAoUFNU
KSAodHlwZTogb2JqZWN0KQorc3RvcmUucHV0KHZhbHVlLCAna2V5JykKK3N0b3JlLmdldCgna2V5
JykKK1N0cmluZyhyZXN1bHQpOiBXZWQgRGVjIDMxIDE5NjkgMTY6MDA6MDEgR01ULTA4MDAgKFBT
VCkKK1BBU1MgdHlwZW9mIHJlc3VsdCBpcyAib2JqZWN0IgorUEFTUyBPYmplY3QucHJvdG90eXBl
LnRvU3RyaW5nLmNhbGwocmVzdWx0KSBpcyBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwo
dGVzdF9kYXRhKQorUEFTUyB0ZXN0X2RhdGEgIT09IHJlc3VsdCBpcyB0cnVlCitQQVNTIHJlc3Vs
dC50b1N0cmluZygpIGlzIHRlc3RfZGF0YS50b1N0cmluZygpCitQQVNTIGlzKHRlc3RfZGF0YS52
YWx1ZU9mKCksIHJlc3VsdC52YWx1ZU9mKCkpIGlzIHRydWUKKworVGVzdGluZzogbmV3IERhdGUo
MWU2KQordHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1lJywgSURCVHJhbnNh
Y3Rpb24uUkVBRF9XUklURSkKK3N0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3Jl
TmFtZScpCit2YWx1ZSBpczogV2VkIERlYyAzMSAxOTY5IDE2OjE2OjQwIEdNVC0wODAwIChQU1Qp
ICh0eXBlOiBvYmplY3QpCitzdG9yZS5wdXQodmFsdWUsICdrZXknKQorc3RvcmUuZ2V0KCdrZXkn
KQorU3RyaW5nKHJlc3VsdCk6IFdlZCBEZWMgMzEgMTk2OSAxNjoxNjo0MCBHTVQtMDgwMCAoUFNU
KQorUEFTUyB0eXBlb2YgcmVzdWx0IGlzICJvYmplY3QiCitQQVNTIE9iamVjdC5wcm90b3R5cGUu
dG9TdHJpbmcuY2FsbChyZXN1bHQpIGlzIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0
ZXN0X2RhdGEpCitQQVNTIHRlc3RfZGF0YSAhPT0gcmVzdWx0IGlzIHRydWUKK1BBU1MgcmVzdWx0
LnRvU3RyaW5nKCkgaXMgdGVzdF9kYXRhLnRvU3RyaW5nKCkKK1BBU1MgaXModGVzdF9kYXRhLnZh
bHVlT2YoKSwgcmVzdWx0LnZhbHVlT2YoKSkgaXMgdHJ1ZQorCitUZXN0aW5nOiBuZXcgRGF0ZSgx
ZTkpCit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUnLCBJREJUcmFuc2Fj
dGlvbi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmVO
YW1lJykKK3ZhbHVlIGlzOiBNb24gSmFuIDEyIDE5NzAgMDU6NDY6NDAgR01ULTA4MDAgKFBTVCkg
KHR5cGU6IG9iamVjdCkKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5nZXQoJ2tleScp
CitTdHJpbmcocmVzdWx0KTogTW9uIEphbiAxMiAxOTcwIDA1OjQ2OjQwIEdNVC0wODAwIChQU1Qp
CitQQVNTIHR5cGVvZiByZXN1bHQgaXMgIm9iamVjdCIKK1BBU1MgT2JqZWN0LnByb3RvdHlwZS50
b1N0cmluZy5jYWxsKHJlc3VsdCkgaXMgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHRl
c3RfZGF0YSkKK1BBU1MgdGVzdF9kYXRhICE9PSByZXN1bHQgaXMgdHJ1ZQorUEFTUyByZXN1bHQu
dG9TdHJpbmcoKSBpcyB0ZXN0X2RhdGEudG9TdHJpbmcoKQorUEFTUyBpcyh0ZXN0X2RhdGEudmFs
dWVPZigpLCByZXN1bHQudmFsdWVPZigpKSBpcyB0cnVlCisKK1Rlc3Rpbmc6IG5ldyBEYXRlKDFl
MTIpCit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUnLCBJREJUcmFuc2Fj
dGlvbi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmVO
YW1lJykKK3ZhbHVlIGlzOiBTYXQgU2VwIDA4IDIwMDEgMTg6NDY6NDAgR01ULTA3MDAgKFBEVCkg
KHR5cGU6IG9iamVjdCkKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5nZXQoJ2tleScp
CitTdHJpbmcocmVzdWx0KTogU2F0IFNlcCAwOCAyMDAxIDE4OjQ2OjQwIEdNVC0wNzAwIChQRFQp
CitQQVNTIHR5cGVvZiByZXN1bHQgaXMgIm9iamVjdCIKK1BBU1MgT2JqZWN0LnByb3RvdHlwZS50
b1N0cmluZy5jYWxsKHJlc3VsdCkgaXMgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHRl
c3RfZGF0YSkKK1BBU1MgdGVzdF9kYXRhICE9PSByZXN1bHQgaXMgdHJ1ZQorUEFTUyByZXN1bHQu
dG9TdHJpbmcoKSBpcyB0ZXN0X2RhdGEudG9TdHJpbmcoKQorUEFTUyBpcyh0ZXN0X2RhdGEudmFs
dWVPZigpLCByZXN1bHQudmFsdWVPZigpKSBpcyB0cnVlCisKK1Rlc3Rpbmc6IG5ldyBEYXRlKDFl
MTMpCit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUnLCBJREJUcmFuc2Fj
dGlvbi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmVO
YW1lJykKK3ZhbHVlIGlzOiBTYXQgTm92IDIwIDIyODYgMDk6NDY6NDAgR01ULTA4MDAgKFBTVCkg
KHR5cGU6IG9iamVjdCkKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5nZXQoJ2tleScp
CitTdHJpbmcocmVzdWx0KTogU2F0IE5vdiAyMCAyMjg2IDA5OjQ2OjQwIEdNVC0wODAwIChQU1Qp
CitQQVNTIHR5cGVvZiByZXN1bHQgaXMgIm9iamVjdCIKK1BBU1MgT2JqZWN0LnByb3RvdHlwZS50
b1N0cmluZy5jYWxsKHJlc3VsdCkgaXMgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHRl
c3RfZGF0YSkKK1BBU1MgdGVzdF9kYXRhICE9PSByZXN1bHQgaXMgdHJ1ZQorUEFTUyByZXN1bHQu
dG9TdHJpbmcoKSBpcyB0ZXN0X2RhdGEudG9TdHJpbmcoKQorUEFTUyBpcyh0ZXN0X2RhdGEudmFs
dWVPZigpLCByZXN1bHQudmFsdWVPZigpKSBpcyB0cnVlCisKKworVGVzdGluZyBSZWdFeHAgb2Jq
ZWN0cworCitUZXN0aW5nIFJlZ0V4cDogbmV3IFJlZ0V4cCgpCit0cmFuc2FjdGlvbiA9IGRiLnRy
YW5zYWN0aW9uKCdzdG9yZU5hbWUnLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKQorc3RvcmUg
PSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmVOYW1lJykKK3ZhbHVlIGlzOiAvKD86KS8g
KHR5cGU6IG9iamVjdCkKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5nZXQoJ2tleScp
CitQQVNTIHRlc3RfZGF0YSAhPT0gcmVzdWx0IGlzIHRydWUKK1BBU1MgT2JqZWN0LnByb3RvdHlw
ZS50b1N0cmluZy5jYWxsKHJlc3VsdCkgaXMgIltvYmplY3QgUmVnRXhwXSIKK1BBU1MgcmVzdWx0
LnRvU3RyaW5nKCkgaXMgdGVzdF9kYXRhLnRvU3RyaW5nKCkKKworVGVzdGluZyBSZWdFeHA6IC9h
YmMvCit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUnLCBJREJUcmFuc2Fj
dGlvbi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmVO
YW1lJykKK3ZhbHVlIGlzOiAvYWJjLyAodHlwZTogb2JqZWN0KQorc3RvcmUucHV0KHZhbHVlLCAn
a2V5JykKK3N0b3JlLmdldCgna2V5JykKK1BBU1MgdGVzdF9kYXRhICE9PSByZXN1bHQgaXMgdHJ1
ZQorUEFTUyBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwocmVzdWx0KSBpcyAiW29iamVj
dCBSZWdFeHBdIgorUEFTUyByZXN1bHQudG9TdHJpbmcoKSBpcyB0ZXN0X2RhdGEudG9TdHJpbmco
KQorCitUZXN0aW5nIFJlZ0V4cDogL2FiYy9nCit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9u
KCdzdG9yZU5hbWUnLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFuc2Fj
dGlvbi5vYmplY3RTdG9yZSgnc3RvcmVOYW1lJykKK3ZhbHVlIGlzOiAvYWJjL2cgKHR5cGU6IG9i
amVjdCkKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5nZXQoJ2tleScpCitQQVNTIHRl
c3RfZGF0YSAhPT0gcmVzdWx0IGlzIHRydWUKK1BBU1MgT2JqZWN0LnByb3RvdHlwZS50b1N0cmlu
Zy5jYWxsKHJlc3VsdCkgaXMgIltvYmplY3QgUmVnRXhwXSIKK1BBU1MgcmVzdWx0LnRvU3RyaW5n
KCkgaXMgdGVzdF9kYXRhLnRvU3RyaW5nKCkKKworVGVzdGluZyBSZWdFeHA6IC9hYmMvaQordHJh
bnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1lJywgSURCVHJhbnNhY3Rpb24uUkVB
RF9XUklURSkKK3N0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpCit2
YWx1ZSBpczogL2FiYy9pICh0eXBlOiBvYmplY3QpCitzdG9yZS5wdXQodmFsdWUsICdrZXknKQor
c3RvcmUuZ2V0KCdrZXknKQorUEFTUyB0ZXN0X2RhdGEgIT09IHJlc3VsdCBpcyB0cnVlCitQQVNT
IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChyZXN1bHQpIGlzICJbb2JqZWN0IFJlZ0V4
cF0iCitQQVNTIHJlc3VsdC50b1N0cmluZygpIGlzIHRlc3RfZGF0YS50b1N0cmluZygpCisKK1Rl
c3RpbmcgUmVnRXhwOiAvYWJjL2dpCit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdzdG9y
ZU5hbWUnLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFuc2FjdGlvbi5v
YmplY3RTdG9yZSgnc3RvcmVOYW1lJykKK3ZhbHVlIGlzOiAvYWJjL2dpICh0eXBlOiBvYmplY3Qp
CitzdG9yZS5wdXQodmFsdWUsICdrZXknKQorc3RvcmUuZ2V0KCdrZXknKQorUEFTUyB0ZXN0X2Rh
dGEgIT09IHJlc3VsdCBpcyB0cnVlCitQQVNTIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2Fs
bChyZXN1bHQpIGlzICJbb2JqZWN0IFJlZ0V4cF0iCitQQVNTIHJlc3VsdC50b1N0cmluZygpIGlz
IHRlc3RfZGF0YS50b1N0cmluZygpCisKK1Rlc3RpbmcgUmVnRXhwOiAvYWJjL20KK3RyYW5zYWN0
aW9uID0gZGIudHJhbnNhY3Rpb24oJ3N0b3JlTmFtZScsIElEQlRyYW5zYWN0aW9uLlJFQURfV1JJ
VEUpCitzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKQordmFsdWUg
aXM6IC9hYmMvbSAodHlwZTogb2JqZWN0KQorc3RvcmUucHV0KHZhbHVlLCAna2V5JykKK3N0b3Jl
LmdldCgna2V5JykKK1BBU1MgdGVzdF9kYXRhICE9PSByZXN1bHQgaXMgdHJ1ZQorUEFTUyBPYmpl
Y3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwocmVzdWx0KSBpcyAiW29iamVjdCBSZWdFeHBdIgor
UEFTUyByZXN1bHQudG9TdHJpbmcoKSBpcyB0ZXN0X2RhdGEudG9TdHJpbmcoKQorCitUZXN0aW5n
IFJlZ0V4cDogL2FiYy9tZwordHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1l
JywgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkKK3N0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0
U3RvcmUoJ3N0b3JlTmFtZScpCit2YWx1ZSBpczogL2FiYy9nbSAodHlwZTogb2JqZWN0KQorc3Rv
cmUucHV0KHZhbHVlLCAna2V5JykKK3N0b3JlLmdldCgna2V5JykKK1BBU1MgdGVzdF9kYXRhICE9
PSByZXN1bHQgaXMgdHJ1ZQorUEFTUyBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwocmVz
dWx0KSBpcyAiW29iamVjdCBSZWdFeHBdIgorUEFTUyByZXN1bHQudG9TdHJpbmcoKSBpcyB0ZXN0
X2RhdGEudG9TdHJpbmcoKQorCitUZXN0aW5nIFJlZ0V4cDogL2FiYy9taQordHJhbnNhY3Rpb24g
PSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1lJywgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkK
K3N0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpCit2YWx1ZSBpczog
L2FiYy9pbSAodHlwZTogb2JqZWN0KQorc3RvcmUucHV0KHZhbHVlLCAna2V5JykKK3N0b3JlLmdl
dCgna2V5JykKK1BBU1MgdGVzdF9kYXRhICE9PSByZXN1bHQgaXMgdHJ1ZQorUEFTUyBPYmplY3Qu
cHJvdG90eXBlLnRvU3RyaW5nLmNhbGwocmVzdWx0KSBpcyAiW29iamVjdCBSZWdFeHBdIgorUEFT
UyByZXN1bHQudG9TdHJpbmcoKSBpcyB0ZXN0X2RhdGEudG9TdHJpbmcoKQorCitUZXN0aW5nIFJl
Z0V4cDogL2FiYy9tZ2kKK3RyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24oJ3N0b3JlTmFtZScs
IElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUpCitzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0
b3JlKCdzdG9yZU5hbWUnKQordmFsdWUgaXM6IC9hYmMvZ2ltICh0eXBlOiBvYmplY3QpCitzdG9y
ZS5wdXQodmFsdWUsICdrZXknKQorc3RvcmUuZ2V0KCdrZXknKQorUEFTUyB0ZXN0X2RhdGEgIT09
IHJlc3VsdCBpcyB0cnVlCitQQVNTIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChyZXN1
bHQpIGlzICJbb2JqZWN0IFJlZ0V4cF0iCitQQVNTIHJlc3VsdC50b1N0cmluZygpIGlzIHRlc3Rf
ZGF0YS50b1N0cmluZygpCisKKworVGVzdGluZyBJbWFnZURhdGEKK2NhbnZhcyA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpCitjYW52YXMud2lkdGggPSA4CitjYW52YXMuaGVpZ2h0
ID0gOAordGVzdF9kYXRhID0gY2FudmFzLmdldENvbnRleHQoJzJkJykuZ2V0SW1hZ2VEYXRhKDAs
IDAsIDgsIDgpCit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUnLCBJREJU
cmFuc2FjdGlvbi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgn
c3RvcmVOYW1lJykKK3ZhbHVlIGlzOiBbb2JqZWN0IEltYWdlRGF0YV0gKHR5cGU6IG9iamVjdCkK
K3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5nZXQoJ2tleScpCitQQVNTIHRlc3RfZGF0
YSAhPT0gcmVzdWx0IGlzIHRydWUKK1BBU1MgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxs
KHJlc3VsdCkgaXMgIltvYmplY3QgSW1hZ2VEYXRhXSIKK1BBU1MgcmVzdWx0LndpZHRoIGlzIHRl
c3RfZGF0YS53aWR0aAorUEFTUyByZXN1bHQuaGVpZ2h0IGlzIHRlc3RfZGF0YS5oZWlnaHQKK1BB
U1MgcmVzdWx0LmRhdGEubGVuZ3RoIGlzIHRlc3RfZGF0YS5kYXRhLmxlbmd0aAorUEFTUyByZXN1
bHQgZGF0YSBtYXRjaGVzCisKK1Rlc3RpbmcgQmxvYgorQmxvYkJ1aWxkZXIgPSB3aW5kb3cuQmxv
YkJ1aWxkZXIgfHwgd2luZG93LldlYktpdEJsb2JCdWlsZGVyCitQQVNTIEJsb2JCdWlsZGVyICE9
IG51bGwgaXMgdHJ1ZQorUEFTUyBGaWxlUmVhZGVyICE9IG51bGwgaXMgdHJ1ZQorYnVpbGRlciA9
IG5ldyBCbG9iQnVpbGRlcigpCit0ZXN0X2NvbnRlbnQgPSAnVGhpcyBpcyBhIHRlc3QuIFRoaXMg
aXMgb25seSBhIHRlc3QuJworYnVpbGRlci5hcHBlbmQodGVzdF9jb250ZW50KQordGVzdF9kYXRh
ID0gYnVpbGRlci5nZXRCbG9iKCkKK3RyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24oJ3N0b3Jl
TmFtZScsIElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUpCitzdG9yZSA9IHRyYW5zYWN0aW9uLm9i
amVjdFN0b3JlKCdzdG9yZU5hbWUnKQordmFsdWUgaXM6IFtvYmplY3QgQmxvYl0gKHR5cGU6IG9i
amVjdCkKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5nZXQoJ2tleScpCitQQVNTIHRl
c3RfZGF0YSAhPT0gcmVzdWx0IGlzIHRydWUKK1BBU1MgT2JqZWN0LnByb3RvdHlwZS50b1N0cmlu
Zy5jYWxsKHJlc3VsdCkgaXMgIltvYmplY3QgQmxvYl0iCitQQVNTIHJlc3VsdC5zaXplIGlzIHRl
c3RfZGF0YS5zaXplCitQQVNTIHJlc3VsdC50eXBlIGlzIHRlc3RfZGF0YS50eXBlCitQQVNTIHRl
eHQgaXMgIlRoaXMgaXMgYSB0ZXN0LiBUaGlzIGlzIG9ubHkgYSB0ZXN0LiIKKworVGVzdGluZyBG
aWxlCit0ZXN0X2NvbnRlbnQgPSBmaWxlSW5wdXQuZmlsZXNbMF0KK3RyYW5zYWN0aW9uID0gZGIu
dHJhbnNhY3Rpb24oJ3N0b3JlTmFtZScsIElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUpCitzdG9y
ZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKQordmFsdWUgaXM6IFtvYmpl
Y3QgRmlsZV0gKHR5cGU6IG9iamVjdCkKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5n
ZXQoJ2tleScpCitQQVNTIGZpbGUxICE9PSBmaWxlMiBpcyB0cnVlCitQQVNTIE9iamVjdC5wcm90
b3R5cGUudG9TdHJpbmcuY2FsbChmaWxlMSkgaXMgIltvYmplY3QgRmlsZV0iCitQQVNTIE9iamVj
dC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChmaWxlMikgaXMgIltvYmplY3QgRmlsZV0iCitmaWxl
MS5zaXplOiAxMDIKK1BBU1MgZmlsZTEuc2l6ZSBpcyBmaWxlMi5zaXplCitmaWxlMS50eXBlOiB0
ZXh0L2h0bWwKK1BBU1MgZmlsZTEudHlwZSBpcyBmaWxlMi50eXBlCitmaWxlMS5uYW1lOiB0ZXN0
LWRhdGEuaHRtbAorUEFTUyBmaWxlMS5uYW1lIGlzIGZpbGUyLm5hbWUKK1BBU1MgU3RyaW5nKGZp
bGUxLmxhc3RNb2RpZmllZERhdGUpIGlzIFN0cmluZyhmaWxlMi5sYXN0TW9kaWZpZWREYXRlKQor
UEFTUyB0ZXh0MiBpcyAiPCFET0NUWVBFIGh0bWw+XG48dGl0bGU+VGhpcyBpcyBzb21lIHRlc3Qg
ZGF0YTwvdGl0bGU+XG48aDE+VGVzdCBkYXRhITwvaDE+XG48cD5HZXQgeW91ciB0ZXN0IGRhdGEg
aGVyZSFcbiIKKworVGVzdGluZyBGaWxlTGlzdAordGVzdF9jb250ZW50ID0gZmlsZUlucHV0LmZp
bGVzCit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUnLCBJREJUcmFuc2Fj
dGlvbi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmVO
YW1lJykKK3ZhbHVlIGlzOiBbb2JqZWN0IEZpbGVMaXN0XSAodHlwZTogb2JqZWN0KQorc3RvcmUu
cHV0KHZhbHVlLCAna2V5JykKK3N0b3JlLmdldCgna2V5JykKK1BBU1MgdGVzdF9kYXRhICE9PSBy
ZXN1bHQgaXMgdHJ1ZQorUEFTUyBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwocmVzdWx0
KSBpcyAiW29iamVjdCBGaWxlTGlzdF0iCitQQVNTIHJlc3VsdC5sZW5ndGggaXMgdGVzdF9kYXRh
Lmxlbmd0aAorY29tcGFyaW5nIGZpbGVbMF0KK1BBU1MgZmlsZTEgIT09IGZpbGUyIGlzIHRydWUK
K1BBU1MgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGZpbGUxKSBpcyAiW29iamVjdCBG
aWxlXSIKK1BBU1MgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGZpbGUyKSBpcyAiW29i
amVjdCBGaWxlXSIKK2ZpbGUxLnNpemU6IDEwMgorUEFTUyBmaWxlMS5zaXplIGlzIGZpbGUyLnNp
emUKK2ZpbGUxLnR5cGU6IHRleHQvaHRtbAorUEFTUyBmaWxlMS50eXBlIGlzIGZpbGUyLnR5cGUK
K2ZpbGUxLm5hbWU6IHRlc3QtZGF0YS5odG1sCitQQVNTIGZpbGUxLm5hbWUgaXMgZmlsZTIubmFt
ZQorUEFTUyBTdHJpbmcoZmlsZTEubGFzdE1vZGlmaWVkRGF0ZSkgaXMgU3RyaW5nKGZpbGUyLmxh
c3RNb2RpZmllZERhdGUpCitQQVNTIHRleHQyIGlzICI8IURPQ1RZUEUgaHRtbD5cbjx0aXRsZT5U
aGlzIGlzIHNvbWUgdGVzdCBkYXRhPC90aXRsZT5cbjxoMT5UZXN0IGRhdGEhPC9oMT5cbjxwPkdl
dCB5b3VyIHRlc3QgZGF0YSBoZXJlIVxuIgorY29tcGFyaW5nIGZpbGVbMV0KK1BBU1MgZmlsZTEg
IT09IGZpbGUyIGlzIHRydWUKK1BBU1MgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGZp
bGUxKSBpcyAiW29iamVjdCBGaWxlXSIKK1BBU1MgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5j
YWxsKGZpbGUyKSBpcyAiW29iamVjdCBGaWxlXSIKK2ZpbGUxLnNpemU6IDUwMgorUEFTUyBmaWxl
MS5zaXplIGlzIGZpbGUyLnNpemUKK2ZpbGUxLnR5cGU6IHRleHQvcGxhaW4KK1BBU1MgZmlsZTEu
dHlwZSBpcyBmaWxlMi50eXBlCitmaWxlMS5uYW1lOiB0ZXN0LWRhdGEudHh0CitQQVNTIGZpbGUx
Lm5hbWUgaXMgZmlsZTIubmFtZQorUEFTUyBTdHJpbmcoZmlsZTEubGFzdE1vZGlmaWVkRGF0ZSkg
aXMgU3RyaW5nKGZpbGUyLmxhc3RNb2RpZmllZERhdGUpCitQQVNTIHRleHQyIGlzICJMb3JlbSBp
cHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlzY2luZyBlbGl0LiBBZW5lYW4g
bGFvcmVldCBkb2xvciBpZCB1cm5hIGVsZWlmZW5kIGFsaXF1ZXQuIE51bGxhIHZlbCBkb2xvciBp
cHN1bS4gQWxpcXVhbSB1dCB0dXJwaXMgbmlzbCwgaW4gdnVscHV0YXRlIHNhcGllbi4gQ3VtIHNv
Y2lpcyBuYXRvcXVlIHBlbmF0aWJ1cyBldCBtYWduaXMgZGlzIHBhcnR1cmllbnQgbW9udGVzLCBu
YXNjZXR1ciByaWRpY3VsdXMgbXVzLiBTZWQgY29uZ3VlIG1hZ25hIHZpdGFlIGRvbG9yIGZldWdp
YXQgdmVoaWN1bGEuIFNlZCB2b2x1dHBhdCwgdGVsbHVzIHZlbCB2YXJpdXMgdmVzdGlidWx1bSwg
cHVydXMgcXVhbSBtb2xsaXMgc2FwaWVuLCBpbiBjb25kaW1lbnR1bSBsZW8gbmVxdWUgc2VkIG51
bGxhLiBOdW5jIHF1aXMgcG9ydGEgZWxpdC4gUGVsbGVudGVzcXVlIGVyYXQgbGVjdHVzLCB1bHRy
aWNpZXMgYSBsb2JvcnRpcyBpZCwgZmF1Y2lidXMgaWQgcXVhbS5cbiIKKworVGVzdGluZyBBcnJh
eQordGVzdF9kYXRhID0gW10KK3Rlc3RfZGF0YVswXSA9ICdmb28nCit0ZXN0X2RhdGFbMV0gPSAn
YmFyJwordGVzdF9kYXRhWzEwXSA9IHRydWUKK3Rlc3RfZGF0YVsxMV0gPSBmYWxzZQordGVzdF9k
YXRhWzIwXSA9IDEyMwordGVzdF9kYXRhWzIxXSA9IDQ1NgordGVzdF9kYXRhWzMwXSA9IG51bGwK
K3RyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24oJ3N0b3JlTmFtZScsIElEQlRyYW5zYWN0aW9u
LlJFQURfV1JJVEUpCitzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUn
KQordmFsdWUgaXM6IGZvbyxiYXIsLCwsLCwsLCx0cnVlLGZhbHNlLCwsLCwsLCwsMTIzLDQ1Niws
LCwsLCwsLCAodHlwZTogb2JqZWN0KQorc3RvcmUucHV0KHZhbHVlLCAna2V5JykKK3N0b3JlLmdl
dCgna2V5JykKK1BBU1MgdGVzdF9kYXRhICE9PSByZXN1bHQgaXMgdHJ1ZQorUEFTUyB0ZXN0X2Rh
dGEubGVuZ3RoID09PSByZXN1bHQubGVuZ3RoIGlzIHRydWUKK1BBU1MgdGVzdF9kYXRhWzBdIGlz
IHJlc3VsdFswXQorUEFTUyB0ZXN0X2RhdGFbMV0gaXMgcmVzdWx0WzFdCitQQVNTIHRlc3RfZGF0
YVsxMF0gaXMgcmVzdWx0WzEwXQorUEFTUyB0ZXN0X2RhdGFbMTFdIGlzIHJlc3VsdFsxMV0KK1BB
U1MgdGVzdF9kYXRhWzIwXSBpcyByZXN1bHRbMjBdCitQQVNTIHRlc3RfZGF0YVsyMV0gaXMgcmVz
dWx0WzIxXQorUEFTUyB0ZXN0X2RhdGFbMzBdIGlzIHJlc3VsdFszMF0KKworVGVzdGluZyBPYmpl
Y3QKK3Rlc3RfZGF0YSA9IFtdCit0ZXN0X2RhdGFbMF0gPSAnZm9vJwordGVzdF9kYXRhWzFdID0g
J2JhcicKK3Rlc3RfZGF0YVsnYSddID0gdHJ1ZQordGVzdF9kYXRhWydiJ10gPSBmYWxzZQordGVz
dF9kYXRhWydmb28nXSA9IDEyMwordGVzdF9kYXRhWydiYXInXSA9IDQ1NgordGVzdF9kYXRhWycn
XSA9IG51bGwKK3RyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24oJ3N0b3JlTmFtZScsIElEQlRy
YW5zYWN0aW9uLlJFQURfV1JJVEUpCitzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdz
dG9yZU5hbWUnKQordmFsdWUgaXM6IGZvbyxiYXIgKHR5cGU6IG9iamVjdCkKK3N0b3JlLnB1dCh2
YWx1ZSwgJ2tleScpCitzdG9yZS5nZXQoJ2tleScpCitQQVNTIHRlc3RfZGF0YSAhPT0gcmVzdWx0
IGlzIHRydWUKK1BBU1MgYXJyYXlDb21wYXJlKE9iamVjdC5rZXlzKHJlc3VsdCkuc29ydCgpLCBP
YmplY3Qua2V5cyh0ZXN0X2RhdGEpLnNvcnQoKSkgaXMgdHJ1ZQorUEFTUyB0ZXN0X2RhdGFbIjAi
XSBpcyByZXN1bHRbIjAiXQorUEFTUyB0ZXN0X2RhdGFbIjEiXSBpcyByZXN1bHRbIjEiXQorUEFT
UyB0ZXN0X2RhdGFbImEiXSBpcyByZXN1bHRbImEiXQorUEFTUyB0ZXN0X2RhdGFbImIiXSBpcyBy
ZXN1bHRbImIiXQorUEFTUyB0ZXN0X2RhdGFbImZvbyJdIGlzIHJlc3VsdFsiZm9vIl0KK1BBU1Mg
dGVzdF9kYXRhWyJiYXIiXSBpcyByZXN1bHRbImJhciJdCitQQVNTIHRlc3RfZGF0YVsiIl0gaXMg
cmVzdWx0WyIiXQorCisKK1Rlc3QgdHlwZXMgdGhhdCBjYW4ndCBiZSBjbG9uZWQ6CisKK3RyYW5z
YWN0aW9uID0gZGIudHJhbnNhY3Rpb24oJ3N0b3JlTmFtZScsIElEQlRyYW5zYWN0aW9uLlJFQURf
V1JJVEUpCitzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKQorCitP
dGhlciBKYXZhU2NyaXB0IG9iamVjdCB0eXBlczoKK0V4cGVjdGluZyBleGNlcHRpb24gZnJvbSBz
dG9yZS5wdXQobmV3IEVycm9yLCAna2V5JykKK1BBU1MgRXhjZXB0aW9uIHdhcyB0aHJvd24uCitQ
QVNTIGNvZGUgaXMgRE9NRXhjZXB0aW9uLkRBVEFfQ0xPTkVfRVJSCitFeHBlY3RpbmcgZXhjZXB0
aW9uIGZyb20gc3RvcmUucHV0KG5ldyBGdW5jdGlvbiwgJ2tleScpCitQQVNTIEV4Y2VwdGlvbiB3
YXMgdGhyb3duLgorUEFTUyBjb2RlIGlzIERPTUV4Y2VwdGlvbi5EQVRBX0NMT05FX0VSUgorCitP
dGhlciBob3N0IG9iamVjdCB0eXBlczoKK0V4cGVjdGluZyBleGNlcHRpb24gZnJvbSBzdG9yZS5w
dXQod2luZG93LCAna2V5JykKK1BBU1MgRXhjZXB0aW9uIHdhcyB0aHJvd24uCitQQVNTIGNvZGUg
aXMgRE9NRXhjZXB0aW9uLkRBVEFfQ0xPTkVfRVJSCitFeHBlY3RpbmcgZXhjZXB0aW9uIGZyb20g
c3RvcmUucHV0KGRvY3VtZW50LCAna2V5JykKK1BBU1MgRXhjZXB0aW9uIHdhcyB0aHJvd24uCitQ
QVNTIGNvZGUgaXMgRE9NRXhjZXB0aW9uLkRBVEFfQ0xPTkVfRVJSCitFeHBlY3RpbmcgZXhjZXB0
aW9uIGZyb20gc3RvcmUucHV0KGRvY3VtZW50LmJvZHksICdrZXknKQorUEFTUyBFeGNlcHRpb24g
d2FzIHRocm93bi4KK1BBU1MgY29kZSBpcyBET01FeGNlcHRpb24uREFUQV9DTE9ORV9FUlIKK1BB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9zdHJ1Y3R1cmVkLWNsb25lLmh0bWwg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9zdHJ1Y3R1cmVkLWNsb25lLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZGYwNWFhNTA0NzI2OTczZTVmMjdjMWJlZmU1Zjc4MTcxOGRkZDI1ZAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3N0cnVjdHVyZWQtY2xv
bmUuaHRtbApAQCAtMCwwICsxLDUyOSBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0icmVzb3VyY2VzL3NoYXJlZC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxp
bnB1dCB0eXBlPSJmaWxlIiBpZD0iZmlsZUlucHV0IiBtdWx0aXBsZT48L2lucHV0PgorPHAgaWQ9
ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+CisK
K2Rlc2NyaXB0aW9uKCJUZXN0IHN0cnVjdHVyZWQgY2xvbmUgcGVybXV0YXRpb25zIGluIEluZGV4
ZWREQi4iKTsKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworCitpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7
CisgICAgdmFyIGZpbGVJbnB1dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlSW5wdXQi
KTsKKyAgICB2YXIgZmlsZVJlY3QgPSBmaWxlSW5wdXQuZ2V0Q2xpZW50UmVjdHMoKVswXTsKKyAg
ICB2YXIgdGFyZ2V0WCA9IGZpbGVSZWN0LmxlZnQgKyBmaWxlUmVjdC53aWR0aCAvIDI7CisgICAg
dmFyIHRhcmdldFkgPSBmaWxlUmVjdC50b3AgKyBmaWxlUmVjdC5oZWlnaHQgLyAyOworICAgIGV2
ZW50U2VuZGVyLmJlZ2luRHJhZ1dpdGhGaWxlcyhbJ3Jlc291cmNlcy90ZXN0LWRhdGEuaHRtbCcs
ICdyZXNvdXJjZXMvdGVzdC1kYXRhLnR4dCddKTsKKyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVU
byh0YXJnZXRYLCB0YXJnZXRZKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7Cit9CisKK2Z1
bmN0aW9uIHRlc3QoKQoreworICAgIGV2YWxBbmRMb2coImluZGV4ZWREQiA9IHdpbmRvdy5pbmRl
eGVkREIgfHwgd2luZG93LndlYmtpdEluZGV4ZWREQiIpOworICAgIHNob3VsZEJlVHJ1ZSgiaW5k
ZXhlZERCICE9IG51bGwiKTsKKyAgICBldmFsQW5kTG9nKCJJREJUcmFuc2FjdGlvbiA9IHdpbmRv
dy5JREJUcmFuc2FjdGlvbiB8fCB3aW5kb3cud2Via2l0SURCVHJhbnNhY3Rpb24iKTsKKyAgICBz
aG91bGRCZVRydWUoIklEQlRyYW5zYWN0aW9uICE9IG51bGwiKTsKKyAgICBwcmVwYXJlRGF0YWJh
c2UoKTsKK30KKworZnVuY3Rpb24gcHJlcGFyZURhdGFiYXNlKCkKK3sKKyAgICBkZWJ1ZygiIik7
CisgICAgZGVidWcoIlByZXBhcmUgRGF0YWJhc2UiKTsKKyAgICByZXF1ZXN0ID0gZXZhbEFuZExv
ZygiaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKCdzdHJ1Y3R1cmVkLWNsb25lJykiKTsKKyAgICBy
ZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKKyAgICByZXF1ZXN0Lm9u
c3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImlu
ZGV4ZWREQi5vcGVuKCdzdHJ1Y3R1cmVkLWNsb25lJykiKTsKKyAgICAgICAgcmVxdWVzdC5vbmVy
cm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CisgICAgICAgIHJlcXVlc3Qub25zdWNjZXNz
ID0gZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgZXZhbEFuZExvZygiZGIgPSByZXF1ZXN0LnJl
c3VsdCIpOworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJkYi52ZXJzaW9uIiwg
IiIpOworICAgICAgICAgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImRiLnNldFZlcnNpb24oJzEn
KSIpOworICAgICAgICAgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJh
Y2s7CisgICAgICAgICAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKKyAgICAg
ICAgICAgICAgICBldmFsQW5kTG9nKCJkYi5jcmVhdGVPYmplY3RTdG9yZSgnc3RvcmVOYW1lJyki
KTsKKyAgICAgICAgICAgICAgICB2YXIgdHJhbnMgPSByZXF1ZXN0LnJlc3VsdDsKKyAgICAgICAg
ICAgICAgICB0cmFucy5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CisgICAgICAg
ICAgICAgICAgdHJhbnMub25hYm9ydCA9IHVuZXhwZWN0ZWRBYm9ydENhbGxiYWNrOworICAgICAg
ICAgICAgICAgIHRyYW5zLm9uY29tcGxldGUgPSBzdGFydFRlc3RzOworICAgICAgICAgICAgfTsK
KyAgICAgICAgfTsKKyAgICB9OworfQorCitmdW5jdGlvbiBzdGFydFRlc3RzKCkKK3sKKyAgICBk
ZWJ1ZygiIik7CisgICAgZGVidWcoIlJ1bm5pbmcgdGVzdHMuLi4iKTsKKyAgICB2YXIgdGVzdHNf
dG9fcnVuID0gWworICAgICAgICB0ZXN0VW5kZWZpbmVkLAorICAgICAgICB0ZXN0TnVsbCwKKyAg
ICAgICAgdGVzdEJvb2xlYW4sCisgICAgICAgIHRlc3ROdW1iZXIsCisgICAgICAgIHRlc3RTdHJp
bmcsCisgICAgICAgIHRlc3RCb29sZWFuT2JqZWN0LAorICAgICAgICB0ZXN0TnVtYmVyT2JqZWN0
LAorICAgICAgICB0ZXN0U3RyaW5nT2JqZWN0LAorICAgICAgICB0ZXN0RGF0ZU9iamVjdCwKKyAg
ICAgICAgdGVzdFJlZ0V4cE9iamVjdCwKKyAgICAgICAgdGVzdEltYWdlRGF0YSwKKyAgICAgICAg
dGVzdEJsb2IsCisgICAgICAgIHRlc3RGaWxlLAorICAgICAgICB0ZXN0RmlsZUxpc3QsCisgICAg
ICAgIHRlc3RBcnJheSwKKyAgICAgICAgdGVzdE9iamVjdAorICAgIF07CisKKyAgICBmdW5jdGlv
biBuZXh0VGVzdCgpIHsKKyAgICAgICAgZGVidWcoIiIpOworICAgICAgICBpZiAodGVzdHNfdG9f
cnVuLmxlbmd0aCkgeworICAgICAgICAgICAgdmFyIHRlc3QgPSB0ZXN0c190b19ydW4uc2hpZnQo
KTsKKyAgICAgICAgICAgIHRlc3QobmV4dFRlc3QpOyAvLyBXaGVuIGRvbmUsIGNhbGwgdGhpcyBh
Z2Fpbi4KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRlc3RCYWRUeXBlcygpOworICAg
ICAgICB9CisgICAgfQorICAgIG5leHRUZXN0KCk7Cit9CisKK2Z1bmN0aW9uIGZvckVhY2hXaXRo
Q2FsbGJhY2sodGVzdEZ1bmN0aW9uLCB2YWx1ZXMsIGNhbGxiYWNrKQoreworICAgIGZ1bmN0aW9u
IG5leHRWYWx1ZSgpIHsKKyAgICAgICAgaWYgKHZhbHVlcy5sZW5ndGgpIHsKKyAgICAgICAgICAg
IHRlc3RGdW5jdGlvbih2YWx1ZXMuc2hpZnQoKSwgbmV4dFZhbHVlKTsKKyAgICAgICAgfSBlbHNl
IHsKKyAgICAgICAgICAgIGNhbGxiYWNrKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBuZXh0
VmFsdWUoKTsKK30KKworZnVuY3Rpb24gdGVzdFZhbHVlKHZhbHVlLCBjYWxsYmFjaykKK3sKKyAg
ICAvLyBPbmUgdHJhbnNhY3Rpb24gcGVyIHRlc3QsIHNpbmNlIHNvbWUgdGVzdHMgcmVxdWlyZSBh
c3luY2hyb25vdXMKKyAgICAvLyBvcGVyYXRpb25zIHRvIHZlcmlmeSB0aGUgcmVzdWx0IChlLmcu
IHZpYSBGaWxlUmVhZGVyKQorICAgIGV2YWxBbmRMb2coInRyYW5zYWN0aW9uID0gZGIudHJhbnNh
Y3Rpb24oJ3N0b3JlTmFtZScsIElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUpIik7CisgICAgdHJh
bnNhY3Rpb24ub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworICAgIHRyYW5zYWN0
aW9uLm9uYWJvcnQgPSB1bmV4cGVjdGVkQWJvcnRDYWxsYmFjazsKKyAgICBldmFsQW5kTG9nKCJz
dG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKSIpOworCisgICAgZGVi
dWcoInZhbHVlIGlzOiAiICsgU3RyaW5nKHZhbHVlKSArICIgKHR5cGU6ICIgKyB0eXBlb2YgdmFs
dWUgKyAiKSIpOworICAgIHdpbmRvdy52YWx1ZSA9IHZhbHVlOworICAgIHJlcXVlc3QgPSBldmFs
QW5kTG9nKCJzdG9yZS5wdXQodmFsdWUsICdrZXknKSIpOworICAgIHJlcXVlc3Qub25lcnJvciA9
IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rp
b24oZSkgeworICAgICAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygic3RvcmUuZ2V0KCdrZXknKSIp
OworICAgICAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKKyAg
ICAgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgICAgICAvL2Rl
YnVnKCJnb3QgYmFjazogIiArIFN0cmluZyhyZXF1ZXN0LnJlc3VsdCkgKyAiICh0eXBlOiAiICsg
dHlwZW9mIHJlcXVlc3QucmVzdWx0ICsgIikiKTsKKyAgICAgICAgICAgIGNhbGxiYWNrKHJlcXVl
c3QucmVzdWx0KTsKKyAgICAgICAgfTsKKyAgICB9OworfQorCisvLyBJZGVudGl0eSB0ZXN0aW5n
LCBzZW5zaXRpdmUgdG8gTmFOIGFuZCAtMAorZnVuY3Rpb24gaXMoeCwgeSkgeworICAgIGlmICh4
ID09PSB5KSB7CisgICAgICAgIHJldHVybiB4ICE9PSAwIHx8IDEgLyB4ID09PSAxIC8geTsKKyAg
ICB9CisgICAgcmV0dXJuIHggIT09IHggJiYgeSAhPT0geTsKK30KKworZnVuY3Rpb24gYXJyYXlD
b21wYXJlKGEsIGIpIHsKKyAgICBpZiAoYS5sZW5ndGggIT09IGIubGVuZ3RoKSB7CisgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhLmxlbmd0aDsg
KytpKSB7CisgICAgICAgIGlmICghaXMoYVtpXSwgYltpXSkpIHsKKyAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gdHJ1ZTsKK30KKworZnVuY3Rp
b24gdGVzdFByaW1pdGl2ZVZhbHVlKHN0cmluZywgY2FsbGJhY2spCit7CisgICAgZGVidWcoIlRl
c3Rpbmc6ICIgKyBzdHJpbmcpOworICAgIHZhciB2YWx1ZSA9IGV2YWwoInZhbHVlID0gKCIgKyBz
dHJpbmcgKyAiKSIpOworICAgIHRlc3RfZGF0YSA9IHZhbHVlOworICAgIHRlc3RWYWx1ZSh0ZXN0
X2RhdGEsIGZ1bmN0aW9uKHJlc3VsdCkgeworICAgICAgICB3aW5kb3cucmVzdWx0ID0gcmVzdWx0
OworICAgICAgICBzaG91bGRCZVRydWUoImlzKHRlc3RfZGF0YSwgcmVzdWx0KSIpOworICAgICAg
ICBkZWJ1ZygiIik7CisgICAgICAgIGNhbGxiYWNrKCk7CisgICAgfSk7Cit9CisKK2Z1bmN0aW9u
IHRlc3RPYmplY3RXaXRoVmFsdWUoc3RyaW5nLCBjYWxsYmFjaykKK3sKKyAgICBkZWJ1ZygiVGVz
dGluZzogIiArIHN0cmluZyk7CisgICAgdmFyIHZhbHVlID0gZXZhbCgidmFsdWUgPSAoIiArIHN0
cmluZyArICIpIik7CisgICAgdGVzdF9kYXRhID0gdmFsdWU7CisgICAgdGVzdFZhbHVlKHRlc3Rf
ZGF0YSwgZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgICAgIHdpbmRvdy5yZXN1bHQgPSByZXN1bHQ7
CisgICAgICAgIGRlYnVnKCJTdHJpbmcocmVzdWx0KTogIiArIFN0cmluZyhyZXN1bHQpKTsKKyAg
ICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ0eXBlb2YgcmVzdWx0IiwgIm9iamVjdCIpOwor
ICAgICAgICBzaG91bGRCZSgiT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHJlc3VsdCki
LCAiT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHRlc3RfZGF0YSkiKTsKKyAgICAgICAg
c2hvdWxkQmVUcnVlKCJ0ZXN0X2RhdGEgIT09IHJlc3VsdCIpOworICAgICAgICBzaG91bGRCZSgi
cmVzdWx0LnRvU3RyaW5nKCkiLCAidGVzdF9kYXRhLnRvU3RyaW5nKCkiKTsKKyAgICAgICAgc2hv
dWxkQmVUcnVlKCJpcyh0ZXN0X2RhdGEudmFsdWVPZigpLCByZXN1bHQudmFsdWVPZigpKSIpOwor
ICAgICAgICBkZWJ1ZygiIik7CisgICAgICAgIGNhbGxiYWNrKCk7CisgICAgfSk7Cit9CisKK2Z1
bmN0aW9uIHRlc3RVbmRlZmluZWQoY2FsbGJhY2spCit7CisgICAgdGVzdFByaW1pdGl2ZVZhbHVl
KCJ1bmRlZmluZWQiLCBjYWxsYmFjayk7Cit9CisKK2Z1bmN0aW9uIHRlc3ROdWxsKGNhbGxiYWNr
KQoreworICAgIHRlc3RQcmltaXRpdmVWYWx1ZSgibnVsbCIsIGNhbGxiYWNrKTsKK30KKworZnVu
Y3Rpb24gdGVzdEJvb2xlYW4oY2FsbGJhY2spCit7CisgICAgZGVidWcoIlRlc3RpbmcgYm9vbGVh
biBwcmltaXRpdmVzIik7CisgICAgZGVidWcoIiIpOworICAgIGZvckVhY2hXaXRoQ2FsbGJhY2so
dGVzdFByaW1pdGl2ZVZhbHVlLCBbInRydWUiLCAiZmFsc2UiXSwgY2FsbGJhY2spOworfQorCitm
dW5jdGlvbiB0ZXN0Qm9vbGVhbk9iamVjdChjYWxsYmFjaykKK3sKKyAgICBkZWJ1ZygiVGVzdGlu
ZyBCb29sZWFuIG9iamVjdHMiKTsKKyAgICBkZWJ1ZygiIik7CisgICAgZm9yRWFjaFdpdGhDYWxs
YmFjayh0ZXN0T2JqZWN0V2l0aFZhbHVlLCBbCisgICAgICAgICJuZXcgQm9vbGVhbih0cnVlKSIs
CisgICAgICAgICJuZXcgQm9vbGVhbihmYWxzZSkiCisgICAgXSwgY2FsbGJhY2spOworfQorCitm
dW5jdGlvbiB0ZXN0U3RyaW5nKGNhbGxiYWNrKQoreworICAgIGRlYnVnKCJUZXN0aW5nIHN0cmlu
ZyBwcmltaXRpdmVzIik7CisgICAgZGVidWcoIiIpOworICAgIGZvckVhY2hXaXRoQ2FsbGJhY2so
dGVzdFByaW1pdGl2ZVZhbHVlLCBbCisgICAgICAgICInJyIsCisgICAgICAgICIndGhpcyBpcyBh
IHNhbXBsZSBzdHJpbmcnIiwKKyAgICAgICAgIidudWxsKFxcMCknIgorICAgIF0sIGNhbGxiYWNr
KTsKK30KKworZnVuY3Rpb24gdGVzdFN0cmluZ09iamVjdChjYWxsYmFjaykKK3sKKyAgICBkZWJ1
ZygiVGVzdGluZyBTdHJpbmcgb2JqZWN0cyIpOworICAgIGRlYnVnKCIiKTsKKyAgICBmb3JFYWNo
V2l0aENhbGxiYWNrKHRlc3RPYmplY3RXaXRoVmFsdWUsIFsKKyAgICAgICAgIm5ldyBTdHJpbmco
KSIsCisgICAgICAgICJuZXcgU3RyaW5nKCd0aGlzIGlzIGEgc2FtcGxlIHN0cmluZycpIiwKKyAg
ICAgICAgIm5ldyBTdHJpbmcoJ251bGwoXFwwKScpIgorICAgIF0sIGNhbGxiYWNrKTsKK30KKwor
ZnVuY3Rpb24gdGVzdE51bWJlcihjYWxsYmFjaykKK3sKKyAgICBkZWJ1ZygiVGVzdGluZyBudW1i
ZXIgcHJpbWl0aXZlcyIpOworICAgIGRlYnVnKCIiKTsKKyAgICBmb3JFYWNoV2l0aENhbGxiYWNr
KHRlc3RQcmltaXRpdmVWYWx1ZSwgWworICAgICAgICAiTmFOIiwKKyAgICAgICAgIi1JbmZpbml0
eSIsCisgICAgICAgICItTnVtYmVyLk1BWF9WQUxVRSIsCisgICAgICAgICItTnVtYmVyLk1JTl9W
QUxVRSIsCisgICAgICAgICItMCIsIC8vIEZJWE1FOiBUaGlzIGN1cnJlbnRseSBmYWlscy4gaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc1ODgwCisgICAgICAgICIwIiwK
KyAgICAgICAgIk51bWJlci5NSU5fVkFMVUUiLAorICAgICAgICAiTnVtYmVyLk1BWF9WQUxVRSIs
CisgICAgICAgICJJbmZpbml0eSIKKyAgICBdLCBjYWxsYmFjayk7Cit9CisKK2Z1bmN0aW9uIHRl
c3ROdW1iZXJPYmplY3QoY2FsbGJhY2spCit7CisgICAgZGVidWcoIlRlc3RpbmcgTnVtYmVyIG9i
amVjdHMiKTsKKyAgICBkZWJ1ZygiIik7CisgICAgZm9yRWFjaFdpdGhDYWxsYmFjayh0ZXN0T2Jq
ZWN0V2l0aFZhbHVlLCBbCisgICAgICAgICJuZXcgTnVtYmVyKE5hTikiLAorICAgICAgICAibmV3
IE51bWJlcigtSW5maW5pdHkpIiwKKyAgICAgICAgIm5ldyBOdW1iZXIoLU51bWJlci5NQVhfVkFM
VUUpIiwKKyAgICAgICAgIm5ldyBOdW1iZXIoLU51bWJlci5NSU5fVkFMVUUpIiwKKyAgICAgICAg
Im5ldyBOdW1iZXIoLTApIiwKKyAgICAgICAgIm5ldyBOdW1iZXIoMCkiLAorICAgICAgICAibmV3
IE51bWJlcihOdW1iZXIuTUlOX1ZBTFVFKSIsCisgICAgICAgICJuZXcgTnVtYmVyKE51bWJlci5N
QVhfVkFMVUUpIiwKKyAgICAgICAgIm5ldyBOdW1iZXIoSW5maW5pdHkpIgorICAgIF0sIGNhbGxi
YWNrKTsKK30KKworZnVuY3Rpb24gdGVzdERhdGVPYmplY3QoY2FsbGJhY2spCit7CisgICAgZGVi
dWcoIlRlc3RpbmcgRGF0ZSBvYmplY3RzIik7CisgICAgZGVidWcoIiIpOworICAgIGZvckVhY2hX
aXRoQ2FsbGJhY2sodGVzdE9iamVjdFdpdGhWYWx1ZSwgWworICAgICAgICAibmV3IERhdGUoLTFl
MTMpIiwKKyAgICAgICAgIm5ldyBEYXRlKC0xZTEyKSIsCisgICAgICAgICJuZXcgRGF0ZSgtMWU5
KSIsCisgICAgICAgICJuZXcgRGF0ZSgtMWU2KSIsCisgICAgICAgICJuZXcgRGF0ZSgtMWUzKSIs
CisgICAgICAgICJuZXcgRGF0ZSgwKSIsCisgICAgICAgICJuZXcgRGF0ZSgxZTMpIiwKKyAgICAg
ICAgIm5ldyBEYXRlKDFlNikiLAorICAgICAgICAibmV3IERhdGUoMWU5KSIsCisgICAgICAgICJu
ZXcgRGF0ZSgxZTEyKSIsCisgICAgICAgICJuZXcgRGF0ZSgxZTEzKSIKKyAgICBdLCBjYWxsYmFj
ayk7Cit9CisKK2Z1bmN0aW9uIHRlc3RSZWdFeHBPYmplY3QoY2FsbGJhY2spCit7CisgICAgZGVi
dWcoIlRlc3RpbmcgUmVnRXhwIG9iamVjdHMiKTsKKyAgICBkZWJ1ZygiIik7CisgICAgZnVuY3Rp
b24gdGVzdFJlZ0V4cChzdHJpbmcsIGNhbGxiYWNrKSB7CisgICAgICAgIGRlYnVnKCJUZXN0aW5n
IFJlZ0V4cDogIiArIHN0cmluZyk7CisgICAgICAgIHZhciB2YWx1ZSA9IGV2YWwoInZhbHVlID0g
KCIgKyBzdHJpbmcgKyAiKSIpOworICAgICAgICB0ZXN0X2RhdGEgPSB2YWx1ZTsKKyAgICAgICAg
dGVzdFZhbHVlKHRlc3RfZGF0YSwgZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgICAgICAgICB3aW5k
b3cucmVzdWx0ID0gcmVzdWx0OworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCJ0ZXN0X2RhdGEg
IT09IHJlc3VsdCIpOworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJPYmplY3Qu
cHJvdG90eXBlLnRvU3RyaW5nLmNhbGwocmVzdWx0KSIsICJbb2JqZWN0IFJlZ0V4cF0iKTsKKyAg
ICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHQudG9TdHJpbmcoKSIsICJ0ZXN0X2RhdGEudG9TdHJp
bmcoKSIpOworICAgICAgICAgICAgZGVidWcoIiIpOworICAgICAgICAgICAgY2FsbGJhY2soKTsK
KyAgICAgICAgfSk7CisgICAgfQorCisgICAgZm9yRWFjaFdpdGhDYWxsYmFjayh0ZXN0UmVnRXhw
LCBbCisgICAgICAgICJuZXcgUmVnRXhwKCkiLAorICAgICAgICAiL2FiYy8iLAorICAgICAgICAi
L2FiYy9nIiwKKyAgICAgICAgIi9hYmMvaSIsCisgICAgICAgICIvYWJjL2dpIiwKKyAgICAgICAg
Ii9hYmMvbSIsCisgICAgICAgICIvYWJjL21nIiwKKyAgICAgICAgIi9hYmMvbWkiLAorICAgICAg
ICAiL2FiYy9tZ2kiCisgICAgXSwgY2FsbGJhY2spOworfQorCitmdW5jdGlvbiB0ZXN0SW1hZ2VE
YXRhKGNhbGxiYWNrKQoreworICAgIGRlYnVnKCJUZXN0aW5nIEltYWdlRGF0YSIpOworICAgIGV2
YWxBbmRMb2coImNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpIik7Cisg
ICAgZXZhbEFuZExvZygiY2FudmFzLndpZHRoID0gOCIpOworICAgIGV2YWxBbmRMb2coImNhbnZh
cy5oZWlnaHQgPSA4Iik7CisgICAgZXZhbEFuZExvZygidGVzdF9kYXRhID0gY2FudmFzLmdldENv
bnRleHQoJzJkJykuZ2V0SW1hZ2VEYXRhKDAsIDAsIDgsIDgpIik7CisKKyAgICBmb3IgKHZhciBp
ID0gMDsgaSA8IDI1NjsgKytpKSB7CisgICAgICAgIHRlc3RfZGF0YS5kYXRhW2ldID0gaTsKKyAg
ICB9CisKKyAgICB0ZXN0VmFsdWUodGVzdF9kYXRhLCBmdW5jdGlvbihyZXN1bHQpIHsKKyAgICAg
ICAgd2luZG93LnJlc3VsdCA9IHJlc3VsdDsKKyAgICAgICAgc2hvdWxkQmVUcnVlKCJ0ZXN0X2Rh
dGEgIT09IHJlc3VsdCIpOworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIk9iamVjdC5w
cm90b3R5cGUudG9TdHJpbmcuY2FsbChyZXN1bHQpIiwgIltvYmplY3QgSW1hZ2VEYXRhXSIpOwor
ICAgICAgICBzaG91bGRCZSgicmVzdWx0LndpZHRoIiwgInRlc3RfZGF0YS53aWR0aCIpOworICAg
ICAgICBzaG91bGRCZSgicmVzdWx0LmhlaWdodCIsICJ0ZXN0X2RhdGEuaGVpZ2h0Iik7CisgICAg
ICAgIHNob3VsZEJlKCJyZXN1bHQuZGF0YS5sZW5ndGgiLCAidGVzdF9kYXRhLmRhdGEubGVuZ3Ro
Iik7CisgICAgICAgIGlmIChhcnJheUNvbXBhcmUodGVzdF9kYXRhLmRhdGEsIHJlc3VsdC5kYXRh
KSkgeworICAgICAgICAgICAgdGVzdFBhc3NlZCgicmVzdWx0IGRhdGEgbWF0Y2hlcyIpOworICAg
ICAgICB9IGVsc2UgeworICAgICAgICAgICAgdGVzdEZhaWxlZCgicmVzdWx0IGRhdGEgZG9lc24n
dCBtYXRjaCIpOworICAgICAgICB9CisgICAgICAgIGNhbGxiYWNrKCk7CisgICAgfSk7Cit9CisK
K2Z1bmN0aW9uIHJlYWRCbG9iQXNUZXh0KGJsb2IsIGNhbGxiYWNrKQoreworICAgIHZhciByZWFk
ZXIgPSBuZXcgRmlsZVJlYWRlcigpOworICAgIHJlYWRlci5vbmxvYWQgPSBmdW5jdGlvbihlKSB7
CisgICAgICAgIGlmIChlLnRhcmdldC5yZWFkeVN0YXRlID09PSBGaWxlUmVhZGVyLkRPTkUpIHsK
KyAgICAgICAgICAgIGNhbGxiYWNrKGUudGFyZ2V0LnJlc3VsdCk7CisgICAgICAgIH0KKyAgICB9
OworICAgIHJlYWRlci5vbmVycm9yID0gZnVuY3Rpb24oZSkgeworICAgICAgICB0ZXN0RmFpbGVk
KCJFcnJvciByZWFkaW5nIGJsb2IgYXMgdGV4dDogIiArIGUpOworICAgICAgICBkb25lKCk7Cisg
ICAgfTsKKyAgICByZWFkZXIucmVhZEFzVGV4dChibG9iKTsKK30KKworZnVuY3Rpb24gY2hlY2tC
bG9iQ29udGVudHMoYmxvYiwgZXhwZWN0ZWQsIGNhbGxiYWNrKQoreworICAgIHJlYWRCbG9iQXNU
ZXh0KGJsb2IsIGZ1bmN0aW9uKHRleHQpIHsKKyAgICAgICAgd2luZG93LnRleHQgPSB0ZXh0Owor
ICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInRleHQiLCBleHBlY3RlZCk7CisgICAgICAg
IGNhbGxiYWNrKCk7CisgICAgfSk7Cit9CisKK2Z1bmN0aW9uIGNvbXBhcmVCbG9icyhibG9iMSwg
YmxvYjIsIGNhbGxiYWNrKQoreworICAgIHJlYWRCbG9iQXNUZXh0KGJsb2IxLCBmdW5jdGlvbih0
ZXh0MSkgeworICAgICAgICByZWFkQmxvYkFzVGV4dChibG9iMiwgZnVuY3Rpb24odGV4dDIpIHsK
KyAgICAgICAgICAgIHdpbmRvdy50ZXh0MSA9IHRleHQxOworICAgICAgICAgICAgd2luZG93LnRl
eHQyID0gdGV4dDI7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInRleHQyIiwg
dGV4dDEpOworICAgICAgICAgICAgY2FsbGJhY2soKTsKKyAgICAgICAgfSk7CisgICAgfSk7Cit9
CisKK2Z1bmN0aW9uIHRlc3RCbG9iKGNhbGxiYWNrKQoreworICAgIGRlYnVnKCJUZXN0aW5nIEJs
b2IiKTsKKyAgICBldmFsQW5kTG9nKCJCbG9iQnVpbGRlciA9IHdpbmRvdy5CbG9iQnVpbGRlciB8
fCB3aW5kb3cuV2ViS2l0QmxvYkJ1aWxkZXIiKTsKKyAgICBzaG91bGRCZVRydWUoIkJsb2JCdWls
ZGVyICE9IG51bGwiKTsKKyAgICBzaG91bGRCZVRydWUoIkZpbGVSZWFkZXIgIT0gbnVsbCIpOwor
ICAgIGV2YWxBbmRMb2coImJ1aWxkZXIgPSBuZXcgQmxvYkJ1aWxkZXIoKSIpOworICAgIGV2YWxB
bmRMb2coInRlc3RfY29udGVudCA9ICdUaGlzIGlzIGEgdGVzdC4gVGhpcyBpcyBvbmx5IGEgdGVz
dC4nIik7CisgICAgZXZhbEFuZExvZygiYnVpbGRlci5hcHBlbmQodGVzdF9jb250ZW50KSIpOwor
ICAgIGV2YWxBbmRMb2coInRlc3RfZGF0YSA9IGJ1aWxkZXIuZ2V0QmxvYigpIik7CisgICAgdGVz
dFZhbHVlKHRlc3RfZGF0YSwgZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgICAgIHdpbmRvdy5yZXN1
bHQgPSByZXN1bHQ7CisgICAgICAgIHNob3VsZEJlVHJ1ZSgidGVzdF9kYXRhICE9PSByZXN1bHQi
KTsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJPYmplY3QucHJvdG90eXBlLnRvU3Ry
aW5nLmNhbGwocmVzdWx0KSIsICJbb2JqZWN0IEJsb2JdIik7CisgICAgICAgIHNob3VsZEJlKCJy
ZXN1bHQuc2l6ZSIsICJ0ZXN0X2RhdGEuc2l6ZSIpOworICAgICAgICBzaG91bGRCZSgicmVzdWx0
LnR5cGUiLCAidGVzdF9kYXRhLnR5cGUiKTsKKyAgICAgICAgY2hlY2tCbG9iQ29udGVudHMocmVz
dWx0LCB0ZXN0X2NvbnRlbnQsIGNhbGxiYWNrKTsKKyAgICB9KTsKK30KKworZnVuY3Rpb24gY29t
cGFyZUZpbGVzKGZpbGUxLCBmaWxlMiwgY2FsbGJhY2spCit7CisgICAgd2luZG93LmZpbGUxID0g
ZmlsZTE7CisgICAgd2luZG93LmZpbGUyID0gZmlsZTI7CisgICAgc2hvdWxkQmVUcnVlKCJmaWxl
MSAhPT0gZmlsZTIiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIk9iamVjdC5wcm90b3R5
cGUudG9TdHJpbmcuY2FsbChmaWxlMSkiLCAiW29iamVjdCBGaWxlXSIpOworICAgIHNob3VsZEJl
RXF1YWxUb1N0cmluZygiT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGZpbGUyKSIsICJb
b2JqZWN0IEZpbGVdIik7CisgICAgZGVidWcoImZpbGUxLnNpemU6ICIgKyBmaWxlMS5zaXplKTsK
KyAgICBzaG91bGRCZSgiZmlsZTEuc2l6ZSIsICJmaWxlMi5zaXplIik7CisgICAgZGVidWcoImZp
bGUxLnR5cGU6ICIgKyBmaWxlMS50eXBlKTsKKyAgICBzaG91bGRCZSgiZmlsZTEudHlwZSIsICJm
aWxlMi50eXBlIik7CisgICAgZGVidWcoImZpbGUxLm5hbWU6ICIgKyBmaWxlMS5uYW1lKTsKKyAg
ICBzaG91bGRCZSgiZmlsZTEubmFtZSIsICJmaWxlMi5uYW1lIik7CisgICAgc2hvdWxkQmUoIlN0
cmluZyhmaWxlMS5sYXN0TW9kaWZpZWREYXRlKSIsICJTdHJpbmcoZmlsZTIubGFzdE1vZGlmaWVk
RGF0ZSkiKTsKKyAgICBpZiAoY2FsbGJhY2spIHsKKyAgICAgICAgY29tcGFyZUJsb2JzKGZpbGUx
LCBmaWxlMiwgY2FsbGJhY2spOworICAgIH0KK30KKworZnVuY3Rpb24gdGVzdEZpbGUoY2FsbGJh
Y2spCit7CisgICAgZGVidWcoIlRlc3RpbmcgRmlsZSIpOworICAgIGV2YWxBbmRMb2coInRlc3Rf
Y29udGVudCA9IGZpbGVJbnB1dC5maWxlc1swXSIpOworCisgICAgd2luZG93LnRlc3RfZGF0YSA9
IHRlc3RfY29udGVudDsKKyAgICB0ZXN0VmFsdWUodGVzdF9kYXRhLCBmdW5jdGlvbihyZXN1bHQp
IHsKKyAgICAgICAgd2luZG93LnJlc3VsdCA9IHJlc3VsdDsKKyAgICAgICAgY29tcGFyZUZpbGVz
KHJlc3VsdCwgdGVzdF9kYXRhLCBjYWxsYmFjayk7CisgICAgfSk7Cit9CisKKworZnVuY3Rpb24g
dGVzdEZpbGVMaXN0KGNhbGxiYWNrKQoreworICAgIGRlYnVnKCJUZXN0aW5nIEZpbGVMaXN0Iik7
CisgICAgZXZhbEFuZExvZygidGVzdF9jb250ZW50ID0gZmlsZUlucHV0LmZpbGVzIik7CisKKyAg
ICB3aW5kb3cudGVzdF9kYXRhID0gdGVzdF9jb250ZW50OworICAgIHRlc3RWYWx1ZSh0ZXN0X2Rh
dGEsIGZ1bmN0aW9uKHJlc3VsdCkgeworICAgICAgICB3aW5kb3cucmVzdWx0ID0gcmVzdWx0Owor
ICAgICAgICBzaG91bGRCZVRydWUoInRlc3RfZGF0YSAhPT0gcmVzdWx0Iik7CisgICAgICAgIHNo
b3VsZEJlRXF1YWxUb1N0cmluZygiT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHJlc3Vs
dCkiLCAiW29iamVjdCBGaWxlTGlzdF0iKTsKKyAgICAgICAgc2hvdWxkQmUoInJlc3VsdC5sZW5n
dGgiLCAidGVzdF9kYXRhLmxlbmd0aCIpOworICAgICAgICBpID0gMDsKKyAgICAgICAgZnVuY3Rp
b24gZG9OZXh0KCkgeworICAgICAgICAgICAgaWYgKGkgPj0gdGVzdF9kYXRhLmxlbmd0aCkgewor
ICAgICAgICAgICAgICAgIGNhbGxiYWNrKCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAg
ICAgICAgICAgIGRlYnVnKCJjb21wYXJpbmcgZmlsZVsiICsgaSArICJdIik7CisgICAgICAgICAg
ICAgICAgY29tcGFyZUZpbGVzKHJlc3VsdFtpXSwgdGVzdF9kYXRhW2krK10sIGRvTmV4dCk7Cisg
ICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZG9OZXh0KCk7CisgICAgfSk7Cit9CisK
K2Z1bmN0aW9uIHRlc3RBcnJheShjYWxsYmFjaykgeworICAgIGRlYnVnKCJUZXN0aW5nIEFycmF5
Iik7CisgICAgZXZhbEFuZExvZygidGVzdF9kYXRhID0gW10iKTsKKyAgICBldmFsQW5kTG9nKCJ0
ZXN0X2RhdGFbMF0gPSAnZm9vJyIpOworICAgIGV2YWxBbmRMb2coInRlc3RfZGF0YVsxXSA9ICdi
YXInIik7CisgICAgZXZhbEFuZExvZygidGVzdF9kYXRhWzEwXSA9IHRydWUiKTsKKyAgICBldmFs
QW5kTG9nKCJ0ZXN0X2RhdGFbMTFdID0gZmFsc2UiKTsKKyAgICBldmFsQW5kTG9nKCJ0ZXN0X2Rh
dGFbMjBdID0gMTIzIik7CisgICAgZXZhbEFuZExvZygidGVzdF9kYXRhWzIxXSA9IDQ1NiIpOwor
ICAgIGV2YWxBbmRMb2coInRlc3RfZGF0YVszMF0gPSBudWxsIik7CisKKyAgICB0ZXN0VmFsdWUo
dGVzdF9kYXRhLCBmdW5jdGlvbihyZXN1bHQpIHsKKyAgICAgICAgd2luZG93LnJlc3VsdCA9IHJl
c3VsdDsKKyAgICAgICAgc2hvdWxkQmVUcnVlKCJ0ZXN0X2RhdGEgIT09IHJlc3VsdCIpOworICAg
ICAgICBzaG91bGRCZVRydWUoInRlc3RfZGF0YS5sZW5ndGggPT09IHJlc3VsdC5sZW5ndGgiKTsK
KyAgICAgICAgT2JqZWN0LmtleXModGVzdF9kYXRhKS5mb3JFYWNoKAorICAgICAgICAgICAgZnVu
Y3Rpb24oa2V5KSB7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInRlc3RfZGF0YVsiICsga2V5
ICsgIl0iLCAicmVzdWx0WyIgKyBrZXkgKyAiXSIpOworICAgICAgICAgICAgfSk7CisgICAgICAg
IGNhbGxiYWNrKCk7CisgICAgfSk7Cit9CisKK2Z1bmN0aW9uIHRlc3RPYmplY3QoY2FsbGJhY2sp
IHsKKyAgICBkZWJ1ZygiVGVzdGluZyBPYmplY3QiKTsKKyAgICBldmFsQW5kTG9nKCJ0ZXN0X2Rh
dGEgPSBbXSIpOworICAgIGV2YWxBbmRMb2coInRlc3RfZGF0YVswXSA9ICdmb28nIik7CisgICAg
ZXZhbEFuZExvZygidGVzdF9kYXRhWzFdID0gJ2JhciciKTsKKyAgICBldmFsQW5kTG9nKCJ0ZXN0
X2RhdGFbJ2EnXSA9IHRydWUiKTsKKyAgICBldmFsQW5kTG9nKCJ0ZXN0X2RhdGFbJ2InXSA9IGZh
bHNlIik7CisgICAgZXZhbEFuZExvZygidGVzdF9kYXRhWydmb28nXSA9IDEyMyIpOworICAgIGV2
YWxBbmRMb2coInRlc3RfZGF0YVsnYmFyJ10gPSA0NTYiKTsKKyAgICBldmFsQW5kTG9nKCJ0ZXN0
X2RhdGFbJyddID0gbnVsbCIpOworCisgICAgdGVzdFZhbHVlKHRlc3RfZGF0YSwgZnVuY3Rpb24o
cmVzdWx0KSB7CisgICAgICAgIHdpbmRvdy5yZXN1bHQgPSByZXN1bHQ7CisgICAgICAgIHNob3Vs
ZEJlVHJ1ZSgidGVzdF9kYXRhICE9PSByZXN1bHQiKTsKKyAgICAgICAgc2hvdWxkQmVUcnVlKCJh
cnJheUNvbXBhcmUoT2JqZWN0LmtleXMocmVzdWx0KS5zb3J0KCksIE9iamVjdC5rZXlzKHRlc3Rf
ZGF0YSkuc29ydCgpKSIpOworICAgICAgICBPYmplY3Qua2V5cyh0ZXN0X2RhdGEpLmZvckVhY2go
CisgICAgICAgICAgICBmdW5jdGlvbihrZXkpIHsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgi
dGVzdF9kYXRhWyIgKyBKU09OLnN0cmluZ2lmeShrZXkpICsgIl0iLCAicmVzdWx0WyIgKyBKU09O
LnN0cmluZ2lmeShrZXkpICsgIl0iKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICBjYWxsYmFj
aygpOworICAgIH0pOworfQorCitmdW5jdGlvbiB0ZXN0QmFkVHlwZXMoKQoreworICAgIGRlYnVn
KCIiKTsKKyAgICBkZWJ1ZygiVGVzdCB0eXBlcyB0aGF0IGNhbid0IGJlIGNsb25lZDoiKTsKKyAg
ICBkZWJ1ZygiIik7CisKKyAgICBldmFsQW5kTG9nKCJ0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0
aW9uKCdzdG9yZU5hbWUnLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKSIpOworICAgIGV2YWxB
bmRMb2coInN0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpIik7Cisg
ICAgdHJhbnNhY3Rpb24ub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworICAgIHRy
YW5zYWN0aW9uLm9uY29tcGxldGUgPSB1bmV4cGVjdGVkQ29tcGxldGVDYWxsYmFjazsKKyAgICB0
cmFuc2FjdGlvbi5vbmFib3J0ID0gZG9uZTsKKworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1Zygi
T3RoZXIgSmF2YVNjcmlwdCBvYmplY3QgdHlwZXM6Iik7CisgICAgZXZhbEFuZEV4cGVjdEV4Y2Vw
dGlvbigic3RvcmUucHV0KG5ldyBFcnJvciwgJ2tleScpIiwgIkRPTUV4Y2VwdGlvbi5EQVRBX0NM
T05FX0VSUiIpOworICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oInN0b3JlLnB1dChuZXcgRnVu
Y3Rpb24sICdrZXknKSIsICJET01FeGNlcHRpb24uREFUQV9DTE9ORV9FUlIiKTsKKworICAgIGRl
YnVnKCIiKTsKKyAgICBkZWJ1ZygiT3RoZXIgaG9zdCBvYmplY3QgdHlwZXM6Iik7CisgICAgZXZh
bEFuZEV4cGVjdEV4Y2VwdGlvbigic3RvcmUucHV0KHdpbmRvdywgJ2tleScpIiwgIkRPTUV4Y2Vw
dGlvbi5EQVRBX0NMT05FX0VSUiIpOworICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oInN0b3Jl
LnB1dChkb2N1bWVudCwgJ2tleScpIiwgIkRPTUV4Y2VwdGlvbi5EQVRBX0NMT05FX0VSUiIpOwor
ICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oInN0b3JlLnB1dChkb2N1bWVudC5ib2R5LCAna2V5
JykiLCAiRE9NRXhjZXB0aW9uLkRBVEFfQ0xPTkVfRVJSIik7Cit9CisKK3Rlc3QoKTsKKworPC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>123210</attachid>
            <date>2012-01-19 15:31:43 -0800</date>
            <delta_ts>2012-01-26 17:42:30 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-74897-20120119153142.patch</filename>
            <type>text/plain</type>
            <size>47735</size>
            <attacher name="Joshua Bell">jsbell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1NDQwCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNzBhYmNkZWNiMDA5NmIzZTRkZDQ1
ZDY3OWM1MjQ2ZTUyMTY2ODI0ZC4uNTJiMzBiZWExN2I3ZWEzZTc3Njk0ZTA5MTA2OGI0ZjcwZmZi
OTA5NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEyLTAxLTE5ICBKb3NodWEgQmVsbCAgPGpz
YmVsbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhlZERCOiBBZGQgdGVzdHMgZm9yIHN0
cnVjdHVyZWQgY2xvbmUgZGF0YQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NzQ4OTcKKworICAgICAgICBWYWxpZGF0ZSB0aGF0IHRoZSB0eXBlcyBsaXN0
ZWQgaW4gdGhlIEhUTUw1ICJzdHJ1Y3R1cmVkIGNsb25lCisgICAgICAgIGFsZ29yaXRobSIgcm91
bmQgdHJpcCBwcm9wZXJseSB0aHJvdWdoIEluZGV4ZWQgREIgc3RvcmFnZS4gT25lCisgICAgICAg
IGVkZ2UgY2FzZSBGQUlMICgtMCkgaXMgbm90ZWQgaW4gdGhlICJleHBlY3RlZCIgZmlsZSwgc2Vl
OgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU4ODAK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHN0b3Jh
Z2UvaW5kZXhlZGRiL3Jlc291cmNlcy90ZXN0LWRhdGEuaHRtbDogQWRkZWQuCisgICAgICAgICog
c3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL3Rlc3QtZGF0YS50eHQ6IEFkZGVkLgorICAgICAg
ICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3N0cnVjdHVyZWQtY2xvbmUtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9zdHJ1Y3R1cmVkLWNsb25lLmh0bWw6IEFk
ZGVkLgorCiAyMDEyLTAxLTE5ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29t
PgogCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NTE5
MgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3Rh
dGlvbnMudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlv
bnMudHh0CmluZGV4IDJkYmJlOTc3MmZiMGQ2ZjI2NGMyYjJjNjE1ODhiNjA3ZDA4YTZlNTkuLmJj
MjhiYTBmNmM0ZGY3YmIyODJjOTgyMjVlM2RhMmI1MDgxMTYwM2MgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQKQEAgLTM5MTYs
MyArMzkxNiw2IEBAIEJVR1dLNzY2NDYgOiBzdmcvZm9yZWlnbk9iamVjdC90ZXh0LXRyZWYtMDIt
Yi5zdmcgPSBURVhUCiAKIC8vIE5lZWQgdG8gaW1wbGVtZW50IGZpbGUgbmFtZSBsb2dnaW5nLgog
QlVHV0s3NjU3MiA6IGh0dHAvdGVzdHMvZG93bmxvYWQgPSBGQUlMCisKKy8vIEZhaWxpbmcgb24g
Q2hyb21pdW0gTGludXggRVdTIGJ1dCBub3Qgb24gdHJ5IGJvdHMgb3IgbG9jYWxseQorQlVHV0s3
NDg5NyA6IHN0b3JhZ2UvaW5kZXhlZGRiL3N0cnVjdHVyZWQtY2xvbmUuaHRtbCA9IFRFWFQKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy90ZXN0LWRh
dGEuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy90ZXN0LWRh
dGEuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi43NWJkYjI4YWQ1OTJhZTJmYWY4YzdhOTNjNzNjZTAyYmNmMjBm
ZDAyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVz
b3VyY2VzL3Rlc3QtZGF0YS5odG1sCkBAIC0wLDAgKzEsNCBAQAorPCFET0NUWVBFIGh0bWw+Cis8
dGl0bGU+VGhpcyBpcyBzb21lIHRlc3QgZGF0YTwvdGl0bGU+Cis8aDE+VGVzdCBkYXRhITwvaDE+
Cis8cD5HZXQgeW91ciB0ZXN0IGRhdGEgaGVyZSEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy90ZXN0LWRhdGEudHh0IGIvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL3Rlc3QtZGF0YS50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGVlM2Ey
ZDNjN2U2YTE3NmZhY2E3ZTUwODc1ODYyZDQxYjdkM2VjZQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy90ZXN0LWRhdGEudHh0CkBAIC0w
LDAgKzEgQEAKK0xvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBhZGlwaXNj
aW5nIGVsaXQuIEFlbmVhbiBsYW9yZWV0IGRvbG9yIGlkIHVybmEgZWxlaWZlbmQgYWxpcXVldC4g
TnVsbGEgdmVsIGRvbG9yIGlwc3VtLiBBbGlxdWFtIHV0IHR1cnBpcyBuaXNsLCBpbiB2dWxwdXRh
dGUgc2FwaWVuLiBDdW0gc29jaWlzIG5hdG9xdWUgcGVuYXRpYnVzIGV0IG1hZ25pcyBkaXMgcGFy
dHVyaWVudCBtb250ZXMsIG5hc2NldHVyIHJpZGljdWx1cyBtdXMuIFNlZCBjb25ndWUgbWFnbmEg
dml0YWUgZG9sb3IgZmV1Z2lhdCB2ZWhpY3VsYS4gU2VkIHZvbHV0cGF0LCB0ZWxsdXMgdmVsIHZh
cml1cyB2ZXN0aWJ1bHVtLCBwdXJ1cyBxdWFtIG1vbGxpcyBzYXBpZW4sIGluIGNvbmRpbWVudHVt
IGxlbyBuZXF1ZSBzZWQgbnVsbGEuIE51bmMgcXVpcyBwb3J0YSBlbGl0LiBQZWxsZW50ZXNxdWUg
ZXJhdCBsZWN0dXMsIHVsdHJpY2llcyBhIGxvYm9ydGlzIGlkLCBmYXVjaWJ1cyBpZCBxdWFtLgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvc3RydWN0dXJlZC1jbG9u
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9zdHJ1Y3R1cmVk
LWNsb25lLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZmQxZDllOTk2ZjBlYTNlOTI4MGE1YmIz
YzViM2Y4YTNkZmY1OThhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvc3RydWN0dXJlZC1jbG9uZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3NTYgQEAK
KworVGVzdCBzdHJ1Y3R1cmVkIGNsb25lIHBlcm11dGF0aW9ucyBpbiBJbmRleGVkREIuCisKK09u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitpbmRleGVkREIgPSB3aW5kb3cuaW5kZXhlZERC
IHx8IHdpbmRvdy53ZWJraXRJbmRleGVkREIKK1BBU1MgaW5kZXhlZERCICE9IG51bGwgaXMgdHJ1
ZQorSURCVHJhbnNhY3Rpb24gPSB3aW5kb3cuSURCVHJhbnNhY3Rpb24gfHwgd2luZG93LndlYmtp
dElEQlRyYW5zYWN0aW9uCitQQVNTIElEQlRyYW5zYWN0aW9uICE9IG51bGwgaXMgdHJ1ZQorCitQ
cmVwYXJlIERhdGFiYXNlCitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoJ3N0cnVjdHVyZWQtY2xv
bmUnKQoraW5kZXhlZERCLm9wZW4oJ3N0cnVjdHVyZWQtY2xvbmUnKQorZGIgPSByZXF1ZXN0LnJl
c3VsdAorUEFTUyBkYi52ZXJzaW9uIGlzICIiCitkYi5zZXRWZXJzaW9uKCcxJykKK2RiLmNyZWF0
ZU9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKQorCitSdW5uaW5nIHRlc3RzLi4uCisKK1Rlc3Rpbmc6
IHVuZGVmaW5lZAordHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1lJywgSURC
VHJhbnNhY3Rpb24uUkVBRF9XUklURSkKK3N0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUo
J3N0b3JlTmFtZScpCit2YWx1ZSBpczogdW5kZWZpbmVkICh0eXBlOiB1bmRlZmluZWQpCitzdG9y
ZS5wdXQodmFsdWUsICdrZXknKQorc3RvcmUuZ2V0KCdrZXknKQorUEFTUyBpcyh0ZXN0X2RhdGEs
IHJlc3VsdCkgaXMgdHJ1ZQorCisKK1Rlc3Rpbmc6IG51bGwKK3RyYW5zYWN0aW9uID0gZGIudHJh
bnNhY3Rpb24oJ3N0b3JlTmFtZScsIElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUpCitzdG9yZSA9
IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKQordmFsdWUgaXM6IG51bGwgKHR5
cGU6IG9iamVjdCkKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5nZXQoJ2tleScpCitQ
QVNTIGlzKHRlc3RfZGF0YSwgcmVzdWx0KSBpcyB0cnVlCisKKworVGVzdGluZyBib29sZWFuIHBy
aW1pdGl2ZXMKKworVGVzdGluZzogdHJ1ZQordHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbign
c3RvcmVOYW1lJywgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkKK3N0b3JlID0gdHJhbnNhY3Rp
b24ub2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpCit2YWx1ZSBpczogdHJ1ZSAodHlwZTogYm9vbGVh
bikKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5nZXQoJ2tleScpCitQQVNTIGlzKHRl
c3RfZGF0YSwgcmVzdWx0KSBpcyB0cnVlCisKK1Rlc3Rpbmc6IGZhbHNlCit0cmFuc2FjdGlvbiA9
IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUnLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKQor
c3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmVOYW1lJykKK3ZhbHVlIGlzOiBm
YWxzZSAodHlwZTogYm9vbGVhbikKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5nZXQo
J2tleScpCitQQVNTIGlzKHRlc3RfZGF0YSwgcmVzdWx0KSBpcyB0cnVlCisKKworVGVzdGluZyBu
dW1iZXIgcHJpbWl0aXZlcworCitUZXN0aW5nOiBOYU4KK3RyYW5zYWN0aW9uID0gZGIudHJhbnNh
Y3Rpb24oJ3N0b3JlTmFtZScsIElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUpCitzdG9yZSA9IHRy
YW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKQordmFsdWUgaXM6IE5hTiAodHlwZTog
bnVtYmVyKQorc3RvcmUucHV0KHZhbHVlLCAna2V5JykKK3N0b3JlLmdldCgna2V5JykKK1BBU1Mg
aXModGVzdF9kYXRhLCByZXN1bHQpIGlzIHRydWUKKworVGVzdGluZzogLUluZmluaXR5Cit0cmFu
c2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUnLCBJREJUcmFuc2FjdGlvbi5SRUFE
X1dSSVRFKQorc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmVOYW1lJykKK3Zh
bHVlIGlzOiAtSW5maW5pdHkgKHR5cGU6IG51bWJlcikKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScp
CitzdG9yZS5nZXQoJ2tleScpCitQQVNTIGlzKHRlc3RfZGF0YSwgcmVzdWx0KSBpcyB0cnVlCisK
K1Rlc3Rpbmc6IC1OdW1iZXIuTUFYX1ZBTFVFCit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9u
KCdzdG9yZU5hbWUnLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFuc2Fj
dGlvbi5vYmplY3RTdG9yZSgnc3RvcmVOYW1lJykKK3ZhbHVlIGlzOiAtMS43OTc2OTMxMzQ4NjIz
MTU3ZSszMDggKHR5cGU6IG51bWJlcikKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5n
ZXQoJ2tleScpCitQQVNTIGlzKHRlc3RfZGF0YSwgcmVzdWx0KSBpcyB0cnVlCisKK1Rlc3Rpbmc6
IC1OdW1iZXIuTUlOX1ZBTFVFCit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5h
bWUnLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmpl
Y3RTdG9yZSgnc3RvcmVOYW1lJykKK3ZhbHVlIGlzOiAtNWUtMzI0ICh0eXBlOiBudW1iZXIpCitz
dG9yZS5wdXQodmFsdWUsICdrZXknKQorc3RvcmUuZ2V0KCdrZXknKQorUEFTUyBpcyh0ZXN0X2Rh
dGEsIHJlc3VsdCkgaXMgdHJ1ZQorCitUZXN0aW5nOiAtMAordHJhbnNhY3Rpb24gPSBkYi50cmFu
c2FjdGlvbignc3RvcmVOYW1lJywgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkKK3N0b3JlID0g
dHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpCit2YWx1ZSBpczogMCAodHlwZTog
bnVtYmVyKQorc3RvcmUucHV0KHZhbHVlLCAna2V5JykKK3N0b3JlLmdldCgna2V5JykKK0ZBSUwg
aXModGVzdF9kYXRhLCByZXN1bHQpIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCisKK1Rlc3Rp
bmc6IDAKK3RyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24oJ3N0b3JlTmFtZScsIElEQlRyYW5z
YWN0aW9uLlJFQURfV1JJVEUpCitzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9y
ZU5hbWUnKQordmFsdWUgaXM6IDAgKHR5cGU6IG51bWJlcikKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tl
eScpCitzdG9yZS5nZXQoJ2tleScpCitQQVNTIGlzKHRlc3RfZGF0YSwgcmVzdWx0KSBpcyB0cnVl
CisKK1Rlc3Rpbmc6IE51bWJlci5NSU5fVkFMVUUKK3RyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rp
b24oJ3N0b3JlTmFtZScsIElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUpCitzdG9yZSA9IHRyYW5z
YWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKQordmFsdWUgaXM6IDVlLTMyNCAodHlwZTog
bnVtYmVyKQorc3RvcmUucHV0KHZhbHVlLCAna2V5JykKK3N0b3JlLmdldCgna2V5JykKK1BBU1Mg
aXModGVzdF9kYXRhLCByZXN1bHQpIGlzIHRydWUKKworVGVzdGluZzogTnVtYmVyLk1BWF9WQUxV
RQordHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1lJywgSURCVHJhbnNhY3Rp
b24uUkVBRF9XUklURSkKK3N0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3JlTmFt
ZScpCit2YWx1ZSBpczogMS43OTc2OTMxMzQ4NjIzMTU3ZSszMDggKHR5cGU6IG51bWJlcikKK3N0
b3JlLnB1dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5nZXQoJ2tleScpCitQQVNTIGlzKHRlc3RfZGF0
YSwgcmVzdWx0KSBpcyB0cnVlCisKK1Rlc3Rpbmc6IEluZmluaXR5Cit0cmFuc2FjdGlvbiA9IGRi
LnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUnLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKQorc3Rv
cmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmVOYW1lJykKK3ZhbHVlIGlzOiBJbmZp
bml0eSAodHlwZTogbnVtYmVyKQorc3RvcmUucHV0KHZhbHVlLCAna2V5JykKK3N0b3JlLmdldCgn
a2V5JykKK1BBU1MgaXModGVzdF9kYXRhLCByZXN1bHQpIGlzIHRydWUKKworCitUZXN0aW5nIHN0
cmluZyBwcmltaXRpdmVzCisKK1Rlc3Rpbmc6ICcnCit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0
aW9uKCdzdG9yZU5hbWUnLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFu
c2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmVOYW1lJykKK3ZhbHVlIGlzOiAgKHR5cGU6IHN0cmlu
ZykKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5nZXQoJ2tleScpCitQQVNTIGlzKHRl
c3RfZGF0YSwgcmVzdWx0KSBpcyB0cnVlCisKK1Rlc3Rpbmc6ICd0aGlzIGlzIGEgc2FtcGxlIHN0
cmluZycKK3RyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24oJ3N0b3JlTmFtZScsIElEQlRyYW5z
YWN0aW9uLlJFQURfV1JJVEUpCitzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9y
ZU5hbWUnKQordmFsdWUgaXM6IHRoaXMgaXMgYSBzYW1wbGUgc3RyaW5nICh0eXBlOiBzdHJpbmcp
CitzdG9yZS5wdXQodmFsdWUsICdrZXknKQorc3RvcmUuZ2V0KCdrZXknKQorUEFTUyBpcyh0ZXN0
X2RhdGEsIHJlc3VsdCkgaXMgdHJ1ZQorCitUZXN0aW5nOiAnbnVsbChcMCknCit0cmFuc2FjdGlv
biA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUnLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRF
KQorc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmVOYW1lJykKK3ZhbHVlIGlz
OiBudWxsKCkgKHR5cGU6IHN0cmluZykKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5n
ZXQoJ2tleScpCitQQVNTIGlzKHRlc3RfZGF0YSwgcmVzdWx0KSBpcyB0cnVlCisKKworVGVzdGlu
ZyBCb29sZWFuIG9iamVjdHMKKworVGVzdGluZzogbmV3IEJvb2xlYW4odHJ1ZSkKK3RyYW5zYWN0
aW9uID0gZGIudHJhbnNhY3Rpb24oJ3N0b3JlTmFtZScsIElEQlRyYW5zYWN0aW9uLlJFQURfV1JJ
VEUpCitzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKQordmFsdWUg
aXM6IHRydWUgKHR5cGU6IG9iamVjdCkKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5n
ZXQoJ2tleScpCitTdHJpbmcocmVzdWx0KTogdHJ1ZQorUEFTUyB0eXBlb2YgcmVzdWx0IGlzICJv
YmplY3QiCitQQVNTIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChyZXN1bHQpIGlzIE9i
amVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0ZXN0X2RhdGEpCitQQVNTIHRlc3RfZGF0YSAh
PT0gcmVzdWx0IGlzIHRydWUKK1BBU1MgcmVzdWx0LnRvU3RyaW5nKCkgaXMgdGVzdF9kYXRhLnRv
U3RyaW5nKCkKK1BBU1MgaXModGVzdF9kYXRhLnZhbHVlT2YoKSwgcmVzdWx0LnZhbHVlT2YoKSkg
aXMgdHJ1ZQorCitUZXN0aW5nOiBuZXcgQm9vbGVhbihmYWxzZSkKK3RyYW5zYWN0aW9uID0gZGIu
dHJhbnNhY3Rpb24oJ3N0b3JlTmFtZScsIElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUpCitzdG9y
ZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKQordmFsdWUgaXM6IGZhbHNl
ICh0eXBlOiBvYmplY3QpCitzdG9yZS5wdXQodmFsdWUsICdrZXknKQorc3RvcmUuZ2V0KCdrZXkn
KQorU3RyaW5nKHJlc3VsdCk6IGZhbHNlCitQQVNTIHR5cGVvZiByZXN1bHQgaXMgIm9iamVjdCIK
K1BBU1MgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHJlc3VsdCkgaXMgT2JqZWN0LnBy
b3RvdHlwZS50b1N0cmluZy5jYWxsKHRlc3RfZGF0YSkKK1BBU1MgdGVzdF9kYXRhICE9PSByZXN1
bHQgaXMgdHJ1ZQorUEFTUyByZXN1bHQudG9TdHJpbmcoKSBpcyB0ZXN0X2RhdGEudG9TdHJpbmco
KQorUEFTUyBpcyh0ZXN0X2RhdGEudmFsdWVPZigpLCByZXN1bHQudmFsdWVPZigpKSBpcyB0cnVl
CisKKworVGVzdGluZyBOdW1iZXIgb2JqZWN0cworCitUZXN0aW5nOiBuZXcgTnVtYmVyKE5hTikK
K3RyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24oJ3N0b3JlTmFtZScsIElEQlRyYW5zYWN0aW9u
LlJFQURfV1JJVEUpCitzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUn
KQordmFsdWUgaXM6IE5hTiAodHlwZTogb2JqZWN0KQorc3RvcmUucHV0KHZhbHVlLCAna2V5JykK
K3N0b3JlLmdldCgna2V5JykKK1N0cmluZyhyZXN1bHQpOiBOYU4KK1BBU1MgdHlwZW9mIHJlc3Vs
dCBpcyAib2JqZWN0IgorUEFTUyBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwocmVzdWx0
KSBpcyBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodGVzdF9kYXRhKQorUEFTUyB0ZXN0
X2RhdGEgIT09IHJlc3VsdCBpcyB0cnVlCitQQVNTIHJlc3VsdC50b1N0cmluZygpIGlzIHRlc3Rf
ZGF0YS50b1N0cmluZygpCitQQVNTIGlzKHRlc3RfZGF0YS52YWx1ZU9mKCksIHJlc3VsdC52YWx1
ZU9mKCkpIGlzIHRydWUKKworVGVzdGluZzogbmV3IE51bWJlcigtSW5maW5pdHkpCit0cmFuc2Fj
dGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUnLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dS
SVRFKQorc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmVOYW1lJykKK3ZhbHVl
IGlzOiAtSW5maW5pdHkgKHR5cGU6IG9iamVjdCkKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScpCitz
dG9yZS5nZXQoJ2tleScpCitTdHJpbmcocmVzdWx0KTogLUluZmluaXR5CitQQVNTIHR5cGVvZiBy
ZXN1bHQgaXMgIm9iamVjdCIKK1BBU1MgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHJl
c3VsdCkgaXMgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHRlc3RfZGF0YSkKK1BBU1Mg
dGVzdF9kYXRhICE9PSByZXN1bHQgaXMgdHJ1ZQorUEFTUyByZXN1bHQudG9TdHJpbmcoKSBpcyB0
ZXN0X2RhdGEudG9TdHJpbmcoKQorUEFTUyBpcyh0ZXN0X2RhdGEudmFsdWVPZigpLCByZXN1bHQu
dmFsdWVPZigpKSBpcyB0cnVlCisKK1Rlc3Rpbmc6IG5ldyBOdW1iZXIoLU51bWJlci5NQVhfVkFM
VUUpCit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUnLCBJREJUcmFuc2Fj
dGlvbi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmVO
YW1lJykKK3ZhbHVlIGlzOiAtMS43OTc2OTMxMzQ4NjIzMTU3ZSszMDggKHR5cGU6IG9iamVjdCkK
K3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5nZXQoJ2tleScpCitTdHJpbmcocmVzdWx0
KTogLTEuNzk3NjkzMTM0ODYyMzE1N2UrMzA4CitQQVNTIHR5cGVvZiByZXN1bHQgaXMgIm9iamVj
dCIKK1BBU1MgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHJlc3VsdCkgaXMgT2JqZWN0
LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHRlc3RfZGF0YSkKK1BBU1MgdGVzdF9kYXRhICE9PSBy
ZXN1bHQgaXMgdHJ1ZQorUEFTUyByZXN1bHQudG9TdHJpbmcoKSBpcyB0ZXN0X2RhdGEudG9TdHJp
bmcoKQorUEFTUyBpcyh0ZXN0X2RhdGEudmFsdWVPZigpLCByZXN1bHQudmFsdWVPZigpKSBpcyB0
cnVlCisKK1Rlc3Rpbmc6IG5ldyBOdW1iZXIoLU51bWJlci5NSU5fVkFMVUUpCit0cmFuc2FjdGlv
biA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUnLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRF
KQorc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmVOYW1lJykKK3ZhbHVlIGlz
OiAtNWUtMzI0ICh0eXBlOiBvYmplY3QpCitzdG9yZS5wdXQodmFsdWUsICdrZXknKQorc3RvcmUu
Z2V0KCdrZXknKQorU3RyaW5nKHJlc3VsdCk6IC01ZS0zMjQKK1BBU1MgdHlwZW9mIHJlc3VsdCBp
cyAib2JqZWN0IgorUEFTUyBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwocmVzdWx0KSBp
cyBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodGVzdF9kYXRhKQorUEFTUyB0ZXN0X2Rh
dGEgIT09IHJlc3VsdCBpcyB0cnVlCitQQVNTIHJlc3VsdC50b1N0cmluZygpIGlzIHRlc3RfZGF0
YS50b1N0cmluZygpCitQQVNTIGlzKHRlc3RfZGF0YS52YWx1ZU9mKCksIHJlc3VsdC52YWx1ZU9m
KCkpIGlzIHRydWUKKworVGVzdGluZzogbmV3IE51bWJlcigtMCkKK3RyYW5zYWN0aW9uID0gZGIu
dHJhbnNhY3Rpb24oJ3N0b3JlTmFtZScsIElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUpCitzdG9y
ZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKQordmFsdWUgaXM6IDAgKHR5
cGU6IG9iamVjdCkKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5nZXQoJ2tleScpCitT
dHJpbmcocmVzdWx0KTogMAorUEFTUyB0eXBlb2YgcmVzdWx0IGlzICJvYmplY3QiCitQQVNTIE9i
amVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChyZXN1bHQpIGlzIE9iamVjdC5wcm90b3R5cGUu
dG9TdHJpbmcuY2FsbCh0ZXN0X2RhdGEpCitQQVNTIHRlc3RfZGF0YSAhPT0gcmVzdWx0IGlzIHRy
dWUKK1BBU1MgcmVzdWx0LnRvU3RyaW5nKCkgaXMgdGVzdF9kYXRhLnRvU3RyaW5nKCkKK1BBU1Mg
aXModGVzdF9kYXRhLnZhbHVlT2YoKSwgcmVzdWx0LnZhbHVlT2YoKSkgaXMgdHJ1ZQorCitUZXN0
aW5nOiBuZXcgTnVtYmVyKDApCit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5h
bWUnLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmpl
Y3RTdG9yZSgnc3RvcmVOYW1lJykKK3ZhbHVlIGlzOiAwICh0eXBlOiBvYmplY3QpCitzdG9yZS5w
dXQodmFsdWUsICdrZXknKQorc3RvcmUuZ2V0KCdrZXknKQorU3RyaW5nKHJlc3VsdCk6IDAKK1BB
U1MgdHlwZW9mIHJlc3VsdCBpcyAib2JqZWN0IgorUEFTUyBPYmplY3QucHJvdG90eXBlLnRvU3Ry
aW5nLmNhbGwocmVzdWx0KSBpcyBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodGVzdF9k
YXRhKQorUEFTUyB0ZXN0X2RhdGEgIT09IHJlc3VsdCBpcyB0cnVlCitQQVNTIHJlc3VsdC50b1N0
cmluZygpIGlzIHRlc3RfZGF0YS50b1N0cmluZygpCitQQVNTIGlzKHRlc3RfZGF0YS52YWx1ZU9m
KCksIHJlc3VsdC52YWx1ZU9mKCkpIGlzIHRydWUKKworVGVzdGluZzogbmV3IE51bWJlcihOdW1i
ZXIuTUlOX1ZBTFVFKQordHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1lJywg
SURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkKK3N0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3Rv
cmUoJ3N0b3JlTmFtZScpCit2YWx1ZSBpczogNWUtMzI0ICh0eXBlOiBvYmplY3QpCitzdG9yZS5w
dXQodmFsdWUsICdrZXknKQorc3RvcmUuZ2V0KCdrZXknKQorU3RyaW5nKHJlc3VsdCk6IDVlLTMy
NAorUEFTUyB0eXBlb2YgcmVzdWx0IGlzICJvYmplY3QiCitQQVNTIE9iamVjdC5wcm90b3R5cGUu
dG9TdHJpbmcuY2FsbChyZXN1bHQpIGlzIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0
ZXN0X2RhdGEpCitQQVNTIHRlc3RfZGF0YSAhPT0gcmVzdWx0IGlzIHRydWUKK1BBU1MgcmVzdWx0
LnRvU3RyaW5nKCkgaXMgdGVzdF9kYXRhLnRvU3RyaW5nKCkKK1BBU1MgaXModGVzdF9kYXRhLnZh
bHVlT2YoKSwgcmVzdWx0LnZhbHVlT2YoKSkgaXMgdHJ1ZQorCitUZXN0aW5nOiBuZXcgTnVtYmVy
KE51bWJlci5NQVhfVkFMVUUpCit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5h
bWUnLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmpl
Y3RTdG9yZSgnc3RvcmVOYW1lJykKK3ZhbHVlIGlzOiAxLjc5NzY5MzEzNDg2MjMxNTdlKzMwOCAo
dHlwZTogb2JqZWN0KQorc3RvcmUucHV0KHZhbHVlLCAna2V5JykKK3N0b3JlLmdldCgna2V5JykK
K1N0cmluZyhyZXN1bHQpOiAxLjc5NzY5MzEzNDg2MjMxNTdlKzMwOAorUEFTUyB0eXBlb2YgcmVz
dWx0IGlzICJvYmplY3QiCitQQVNTIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChyZXN1
bHQpIGlzIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0ZXN0X2RhdGEpCitQQVNTIHRl
c3RfZGF0YSAhPT0gcmVzdWx0IGlzIHRydWUKK1BBU1MgcmVzdWx0LnRvU3RyaW5nKCkgaXMgdGVz
dF9kYXRhLnRvU3RyaW5nKCkKK1BBU1MgaXModGVzdF9kYXRhLnZhbHVlT2YoKSwgcmVzdWx0LnZh
bHVlT2YoKSkgaXMgdHJ1ZQorCitUZXN0aW5nOiBuZXcgTnVtYmVyKEluZmluaXR5KQordHJhbnNh
Y3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1lJywgSURCVHJhbnNhY3Rpb24uUkVBRF9X
UklURSkKK3N0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpCit2YWx1
ZSBpczogSW5maW5pdHkgKHR5cGU6IG9iamVjdCkKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScpCitz
dG9yZS5nZXQoJ2tleScpCitTdHJpbmcocmVzdWx0KTogSW5maW5pdHkKK1BBU1MgdHlwZW9mIHJl
c3VsdCBpcyAib2JqZWN0IgorUEFTUyBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwocmVz
dWx0KSBpcyBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodGVzdF9kYXRhKQorUEFTUyB0
ZXN0X2RhdGEgIT09IHJlc3VsdCBpcyB0cnVlCitQQVNTIHJlc3VsdC50b1N0cmluZygpIGlzIHRl
c3RfZGF0YS50b1N0cmluZygpCitQQVNTIGlzKHRlc3RfZGF0YS52YWx1ZU9mKCksIHJlc3VsdC52
YWx1ZU9mKCkpIGlzIHRydWUKKworCitUZXN0aW5nIFN0cmluZyBvYmplY3RzCisKK1Rlc3Rpbmc6
IG5ldyBTdHJpbmcoKQordHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1lJywg
SURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkKK3N0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3Rv
cmUoJ3N0b3JlTmFtZScpCit2YWx1ZSBpczogICh0eXBlOiBvYmplY3QpCitzdG9yZS5wdXQodmFs
dWUsICdrZXknKQorc3RvcmUuZ2V0KCdrZXknKQorU3RyaW5nKHJlc3VsdCk6IAorUEFTUyB0eXBl
b2YgcmVzdWx0IGlzICJvYmplY3QiCitQQVNTIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2Fs
bChyZXN1bHQpIGlzIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0ZXN0X2RhdGEpCitQ
QVNTIHRlc3RfZGF0YSAhPT0gcmVzdWx0IGlzIHRydWUKK1BBU1MgcmVzdWx0LnRvU3RyaW5nKCkg
aXMgdGVzdF9kYXRhLnRvU3RyaW5nKCkKK1BBU1MgaXModGVzdF9kYXRhLnZhbHVlT2YoKSwgcmVz
dWx0LnZhbHVlT2YoKSkgaXMgdHJ1ZQorCitUZXN0aW5nOiBuZXcgU3RyaW5nKCd0aGlzIGlzIGEg
c2FtcGxlIHN0cmluZycpCit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUn
LCBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RT
dG9yZSgnc3RvcmVOYW1lJykKK3ZhbHVlIGlzOiB0aGlzIGlzIGEgc2FtcGxlIHN0cmluZyAodHlw
ZTogb2JqZWN0KQorc3RvcmUucHV0KHZhbHVlLCAna2V5JykKK3N0b3JlLmdldCgna2V5JykKK1N0
cmluZyhyZXN1bHQpOiB0aGlzIGlzIGEgc2FtcGxlIHN0cmluZworUEFTUyB0eXBlb2YgcmVzdWx0
IGlzICJvYmplY3QiCitQQVNTIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChyZXN1bHQp
IGlzIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0ZXN0X2RhdGEpCitQQVNTIHRlc3Rf
ZGF0YSAhPT0gcmVzdWx0IGlzIHRydWUKK1BBU1MgcmVzdWx0LnRvU3RyaW5nKCkgaXMgdGVzdF9k
YXRhLnRvU3RyaW5nKCkKK1BBU1MgaXModGVzdF9kYXRhLnZhbHVlT2YoKSwgcmVzdWx0LnZhbHVl
T2YoKSkgaXMgdHJ1ZQorCitUZXN0aW5nOiBuZXcgU3RyaW5nKCdudWxsKFwwKScpCit0cmFuc2Fj
dGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUnLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dS
SVRFKQorc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmVOYW1lJykKK3ZhbHVl
IGlzOiBudWxsKCkgKHR5cGU6IG9iamVjdCkKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScpCitzdG9y
ZS5nZXQoJ2tleScpCitTdHJpbmcocmVzdWx0KTogbnVsbCgpCitQQVNTIHR5cGVvZiByZXN1bHQg
aXMgIm9iamVjdCIKK1BBU1MgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHJlc3VsdCkg
aXMgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHRlc3RfZGF0YSkKK1BBU1MgdGVzdF9k
YXRhICE9PSByZXN1bHQgaXMgdHJ1ZQorUEFTUyByZXN1bHQudG9TdHJpbmcoKSBpcyB0ZXN0X2Rh
dGEudG9TdHJpbmcoKQorUEFTUyBpcyh0ZXN0X2RhdGEudmFsdWVPZigpLCByZXN1bHQudmFsdWVP
ZigpKSBpcyB0cnVlCisKKworVGVzdGluZyBEYXRlIG9iamVjdHMKKworVGVzdGluZzogbmV3IERh
dGUoLTFlMTMpCit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUnLCBJREJU
cmFuc2FjdGlvbi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgn
c3RvcmVOYW1lJykKK3ZhbHVlIGlzOiBTdW4gRmViIDA5IDE2NTMgMjI6MTM6MjAgR01ULTA4MDAg
KFBTVCkgKHR5cGU6IG9iamVjdCkKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5nZXQo
J2tleScpCitTdHJpbmcocmVzdWx0KTogU3VuIEZlYiAwOSAxNjUzIDIyOjEzOjIwIEdNVC0wODAw
IChQU1QpCitQQVNTIHR5cGVvZiByZXN1bHQgaXMgIm9iamVjdCIKK1BBU1MgT2JqZWN0LnByb3Rv
dHlwZS50b1N0cmluZy5jYWxsKHJlc3VsdCkgaXMgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5j
YWxsKHRlc3RfZGF0YSkKK1BBU1MgdGVzdF9kYXRhICE9PSByZXN1bHQgaXMgdHJ1ZQorUEFTUyBy
ZXN1bHQudG9TdHJpbmcoKSBpcyB0ZXN0X2RhdGEudG9TdHJpbmcoKQorUEFTUyBpcyh0ZXN0X2Rh
dGEudmFsdWVPZigpLCByZXN1bHQudmFsdWVPZigpKSBpcyB0cnVlCisKK1Rlc3Rpbmc6IG5ldyBE
YXRlKC0xZTEyKQordHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1lJywgSURC
VHJhbnNhY3Rpb24uUkVBRF9XUklURSkKK3N0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUo
J3N0b3JlTmFtZScpCit2YWx1ZSBpczogU3VuIEFwciAyNCAxOTM4IDE1OjEzOjIwIEdNVC0wNzAw
IChQRFQpICh0eXBlOiBvYmplY3QpCitzdG9yZS5wdXQodmFsdWUsICdrZXknKQorc3RvcmUuZ2V0
KCdrZXknKQorU3RyaW5nKHJlc3VsdCk6IFN1biBBcHIgMjQgMTkzOCAxNToxMzoyMCBHTVQtMDcw
MCAoUERUKQorUEFTUyB0eXBlb2YgcmVzdWx0IGlzICJvYmplY3QiCitQQVNTIE9iamVjdC5wcm90
b3R5cGUudG9TdHJpbmcuY2FsbChyZXN1bHQpIGlzIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcu
Y2FsbCh0ZXN0X2RhdGEpCitQQVNTIHRlc3RfZGF0YSAhPT0gcmVzdWx0IGlzIHRydWUKK1BBU1Mg
cmVzdWx0LnRvU3RyaW5nKCkgaXMgdGVzdF9kYXRhLnRvU3RyaW5nKCkKK1BBU1MgaXModGVzdF9k
YXRhLnZhbHVlT2YoKSwgcmVzdWx0LnZhbHVlT2YoKSkgaXMgdHJ1ZQorCitUZXN0aW5nOiBuZXcg
RGF0ZSgtMWU5KQordHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1lJywgSURC
VHJhbnNhY3Rpb24uUkVBRF9XUklURSkKK3N0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUo
J3N0b3JlTmFtZScpCit2YWx1ZSBpczogU2F0IERlYyAyMCAxOTY5IDAyOjEzOjIwIEdNVC0wODAw
IChQU1QpICh0eXBlOiBvYmplY3QpCitzdG9yZS5wdXQodmFsdWUsICdrZXknKQorc3RvcmUuZ2V0
KCdrZXknKQorU3RyaW5nKHJlc3VsdCk6IFNhdCBEZWMgMjAgMTk2OSAwMjoxMzoyMCBHTVQtMDgw
MCAoUFNUKQorUEFTUyB0eXBlb2YgcmVzdWx0IGlzICJvYmplY3QiCitQQVNTIE9iamVjdC5wcm90
b3R5cGUudG9TdHJpbmcuY2FsbChyZXN1bHQpIGlzIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcu
Y2FsbCh0ZXN0X2RhdGEpCitQQVNTIHRlc3RfZGF0YSAhPT0gcmVzdWx0IGlzIHRydWUKK1BBU1Mg
cmVzdWx0LnRvU3RyaW5nKCkgaXMgdGVzdF9kYXRhLnRvU3RyaW5nKCkKK1BBU1MgaXModGVzdF9k
YXRhLnZhbHVlT2YoKSwgcmVzdWx0LnZhbHVlT2YoKSkgaXMgdHJ1ZQorCitUZXN0aW5nOiBuZXcg
RGF0ZSgtMWU2KQordHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1lJywgSURC
VHJhbnNhY3Rpb24uUkVBRF9XUklURSkKK3N0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUo
J3N0b3JlTmFtZScpCit2YWx1ZSBpczogV2VkIERlYyAzMSAxOTY5IDE1OjQzOjIwIEdNVC0wODAw
IChQU1QpICh0eXBlOiBvYmplY3QpCitzdG9yZS5wdXQodmFsdWUsICdrZXknKQorc3RvcmUuZ2V0
KCdrZXknKQorU3RyaW5nKHJlc3VsdCk6IFdlZCBEZWMgMzEgMTk2OSAxNTo0MzoyMCBHTVQtMDgw
MCAoUFNUKQorUEFTUyB0eXBlb2YgcmVzdWx0IGlzICJvYmplY3QiCitQQVNTIE9iamVjdC5wcm90
b3R5cGUudG9TdHJpbmcuY2FsbChyZXN1bHQpIGlzIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcu
Y2FsbCh0ZXN0X2RhdGEpCitQQVNTIHRlc3RfZGF0YSAhPT0gcmVzdWx0IGlzIHRydWUKK1BBU1Mg
cmVzdWx0LnRvU3RyaW5nKCkgaXMgdGVzdF9kYXRhLnRvU3RyaW5nKCkKK1BBU1MgaXModGVzdF9k
YXRhLnZhbHVlT2YoKSwgcmVzdWx0LnZhbHVlT2YoKSkgaXMgdHJ1ZQorCitUZXN0aW5nOiBuZXcg
RGF0ZSgtMWUzKQordHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1lJywgSURC
VHJhbnNhY3Rpb24uUkVBRF9XUklURSkKK3N0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUo
J3N0b3JlTmFtZScpCit2YWx1ZSBpczogV2VkIERlYyAzMSAxOTY5IDE1OjU5OjU5IEdNVC0wODAw
IChQU1QpICh0eXBlOiBvYmplY3QpCitzdG9yZS5wdXQodmFsdWUsICdrZXknKQorc3RvcmUuZ2V0
KCdrZXknKQorU3RyaW5nKHJlc3VsdCk6IFdlZCBEZWMgMzEgMTk2OSAxNTo1OTo1OSBHTVQtMDgw
MCAoUFNUKQorUEFTUyB0eXBlb2YgcmVzdWx0IGlzICJvYmplY3QiCitQQVNTIE9iamVjdC5wcm90
b3R5cGUudG9TdHJpbmcuY2FsbChyZXN1bHQpIGlzIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcu
Y2FsbCh0ZXN0X2RhdGEpCitQQVNTIHRlc3RfZGF0YSAhPT0gcmVzdWx0IGlzIHRydWUKK1BBU1Mg
cmVzdWx0LnRvU3RyaW5nKCkgaXMgdGVzdF9kYXRhLnRvU3RyaW5nKCkKK1BBU1MgaXModGVzdF9k
YXRhLnZhbHVlT2YoKSwgcmVzdWx0LnZhbHVlT2YoKSkgaXMgdHJ1ZQorCitUZXN0aW5nOiBuZXcg
RGF0ZSgwKQordHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1lJywgSURCVHJh
bnNhY3Rpb24uUkVBRF9XUklURSkKK3N0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0
b3JlTmFtZScpCit2YWx1ZSBpczogV2VkIERlYyAzMSAxOTY5IDE2OjAwOjAwIEdNVC0wODAwIChQ
U1QpICh0eXBlOiBvYmplY3QpCitzdG9yZS5wdXQodmFsdWUsICdrZXknKQorc3RvcmUuZ2V0KCdr
ZXknKQorU3RyaW5nKHJlc3VsdCk6IFdlZCBEZWMgMzEgMTk2OSAxNjowMDowMCBHTVQtMDgwMCAo
UFNUKQorUEFTUyB0eXBlb2YgcmVzdWx0IGlzICJvYmplY3QiCitQQVNTIE9iamVjdC5wcm90b3R5
cGUudG9TdHJpbmcuY2FsbChyZXN1bHQpIGlzIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2Fs
bCh0ZXN0X2RhdGEpCitQQVNTIHRlc3RfZGF0YSAhPT0gcmVzdWx0IGlzIHRydWUKK1BBU1MgcmVz
dWx0LnRvU3RyaW5nKCkgaXMgdGVzdF9kYXRhLnRvU3RyaW5nKCkKK1BBU1MgaXModGVzdF9kYXRh
LnZhbHVlT2YoKSwgcmVzdWx0LnZhbHVlT2YoKSkgaXMgdHJ1ZQorCitUZXN0aW5nOiBuZXcgRGF0
ZSgxZTMpCit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUnLCBJREJUcmFu
c2FjdGlvbi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3Rv
cmVOYW1lJykKK3ZhbHVlIGlzOiBXZWQgRGVjIDMxIDE5NjkgMTY6MDA6MDEgR01ULTA4MDAgKFBT
VCkgKHR5cGU6IG9iamVjdCkKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5nZXQoJ2tl
eScpCitTdHJpbmcocmVzdWx0KTogV2VkIERlYyAzMSAxOTY5IDE2OjAwOjAxIEdNVC0wODAwIChQ
U1QpCitQQVNTIHR5cGVvZiByZXN1bHQgaXMgIm9iamVjdCIKK1BBU1MgT2JqZWN0LnByb3RvdHlw
ZS50b1N0cmluZy5jYWxsKHJlc3VsdCkgaXMgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxs
KHRlc3RfZGF0YSkKK1BBU1MgdGVzdF9kYXRhICE9PSByZXN1bHQgaXMgdHJ1ZQorUEFTUyByZXN1
bHQudG9TdHJpbmcoKSBpcyB0ZXN0X2RhdGEudG9TdHJpbmcoKQorUEFTUyBpcyh0ZXN0X2RhdGEu
dmFsdWVPZigpLCByZXN1bHQudmFsdWVPZigpKSBpcyB0cnVlCisKK1Rlc3Rpbmc6IG5ldyBEYXRl
KDFlNikKK3RyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24oJ3N0b3JlTmFtZScsIElEQlRyYW5z
YWN0aW9uLlJFQURfV1JJVEUpCitzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9y
ZU5hbWUnKQordmFsdWUgaXM6IFdlZCBEZWMgMzEgMTk2OSAxNjoxNjo0MCBHTVQtMDgwMCAoUFNU
KSAodHlwZTogb2JqZWN0KQorc3RvcmUucHV0KHZhbHVlLCAna2V5JykKK3N0b3JlLmdldCgna2V5
JykKK1N0cmluZyhyZXN1bHQpOiBXZWQgRGVjIDMxIDE5NjkgMTY6MTY6NDAgR01ULTA4MDAgKFBT
VCkKK1BBU1MgdHlwZW9mIHJlc3VsdCBpcyAib2JqZWN0IgorUEFTUyBPYmplY3QucHJvdG90eXBl
LnRvU3RyaW5nLmNhbGwocmVzdWx0KSBpcyBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwo
dGVzdF9kYXRhKQorUEFTUyB0ZXN0X2RhdGEgIT09IHJlc3VsdCBpcyB0cnVlCitQQVNTIHJlc3Vs
dC50b1N0cmluZygpIGlzIHRlc3RfZGF0YS50b1N0cmluZygpCitQQVNTIGlzKHRlc3RfZGF0YS52
YWx1ZU9mKCksIHJlc3VsdC52YWx1ZU9mKCkpIGlzIHRydWUKKworVGVzdGluZzogbmV3IERhdGUo
MWU5KQordHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1lJywgSURCVHJhbnNh
Y3Rpb24uUkVBRF9XUklURSkKK3N0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3Jl
TmFtZScpCit2YWx1ZSBpczogTW9uIEphbiAxMiAxOTcwIDA1OjQ2OjQwIEdNVC0wODAwIChQU1Qp
ICh0eXBlOiBvYmplY3QpCitzdG9yZS5wdXQodmFsdWUsICdrZXknKQorc3RvcmUuZ2V0KCdrZXkn
KQorU3RyaW5nKHJlc3VsdCk6IE1vbiBKYW4gMTIgMTk3MCAwNTo0Njo0MCBHTVQtMDgwMCAoUFNU
KQorUEFTUyB0eXBlb2YgcmVzdWx0IGlzICJvYmplY3QiCitQQVNTIE9iamVjdC5wcm90b3R5cGUu
dG9TdHJpbmcuY2FsbChyZXN1bHQpIGlzIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0
ZXN0X2RhdGEpCitQQVNTIHRlc3RfZGF0YSAhPT0gcmVzdWx0IGlzIHRydWUKK1BBU1MgcmVzdWx0
LnRvU3RyaW5nKCkgaXMgdGVzdF9kYXRhLnRvU3RyaW5nKCkKK1BBU1MgaXModGVzdF9kYXRhLnZh
bHVlT2YoKSwgcmVzdWx0LnZhbHVlT2YoKSkgaXMgdHJ1ZQorCitUZXN0aW5nOiBuZXcgRGF0ZSgx
ZTEyKQordHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1lJywgSURCVHJhbnNh
Y3Rpb24uUkVBRF9XUklURSkKK3N0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3Jl
TmFtZScpCit2YWx1ZSBpczogU2F0IFNlcCAwOCAyMDAxIDE4OjQ2OjQwIEdNVC0wNzAwIChQRFQp
ICh0eXBlOiBvYmplY3QpCitzdG9yZS5wdXQodmFsdWUsICdrZXknKQorc3RvcmUuZ2V0KCdrZXkn
KQorU3RyaW5nKHJlc3VsdCk6IFNhdCBTZXAgMDggMjAwMSAxODo0Njo0MCBHTVQtMDcwMCAoUERU
KQorUEFTUyB0eXBlb2YgcmVzdWx0IGlzICJvYmplY3QiCitQQVNTIE9iamVjdC5wcm90b3R5cGUu
dG9TdHJpbmcuY2FsbChyZXN1bHQpIGlzIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0
ZXN0X2RhdGEpCitQQVNTIHRlc3RfZGF0YSAhPT0gcmVzdWx0IGlzIHRydWUKK1BBU1MgcmVzdWx0
LnRvU3RyaW5nKCkgaXMgdGVzdF9kYXRhLnRvU3RyaW5nKCkKK1BBU1MgaXModGVzdF9kYXRhLnZh
bHVlT2YoKSwgcmVzdWx0LnZhbHVlT2YoKSkgaXMgdHJ1ZQorCitUZXN0aW5nOiBuZXcgRGF0ZSgx
ZTEzKQordHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1lJywgSURCVHJhbnNh
Y3Rpb24uUkVBRF9XUklURSkKK3N0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3Jl
TmFtZScpCit2YWx1ZSBpczogU2F0IE5vdiAyMCAyMjg2IDA5OjQ2OjQwIEdNVC0wODAwIChQU1Qp
ICh0eXBlOiBvYmplY3QpCitzdG9yZS5wdXQodmFsdWUsICdrZXknKQorc3RvcmUuZ2V0KCdrZXkn
KQorU3RyaW5nKHJlc3VsdCk6IFNhdCBOb3YgMjAgMjI4NiAwOTo0Njo0MCBHTVQtMDgwMCAoUFNU
KQorUEFTUyB0eXBlb2YgcmVzdWx0IGlzICJvYmplY3QiCitQQVNTIE9iamVjdC5wcm90b3R5cGUu
dG9TdHJpbmcuY2FsbChyZXN1bHQpIGlzIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0
ZXN0X2RhdGEpCitQQVNTIHRlc3RfZGF0YSAhPT0gcmVzdWx0IGlzIHRydWUKK1BBU1MgcmVzdWx0
LnRvU3RyaW5nKCkgaXMgdGVzdF9kYXRhLnRvU3RyaW5nKCkKK1BBU1MgaXModGVzdF9kYXRhLnZh
bHVlT2YoKSwgcmVzdWx0LnZhbHVlT2YoKSkgaXMgdHJ1ZQorCisKK1Rlc3RpbmcgUmVnRXhwIG9i
amVjdHMKKworVGVzdGluZyBSZWdFeHA6IG5ldyBSZWdFeHAoKQordHJhbnNhY3Rpb24gPSBkYi50
cmFuc2FjdGlvbignc3RvcmVOYW1lJywgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkKK3N0b3Jl
ID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpCit2YWx1ZSBpczogLyg/Oikv
ICh0eXBlOiBvYmplY3QpCitzdG9yZS5wdXQodmFsdWUsICdrZXknKQorc3RvcmUuZ2V0KCdrZXkn
KQorUEFTUyB0ZXN0X2RhdGEgIT09IHJlc3VsdCBpcyB0cnVlCitQQVNTIE9iamVjdC5wcm90b3R5
cGUudG9TdHJpbmcuY2FsbChyZXN1bHQpIGlzICJbb2JqZWN0IFJlZ0V4cF0iCitQQVNTIHJlc3Vs
dC50b1N0cmluZygpIGlzIHRlc3RfZGF0YS50b1N0cmluZygpCisKK1Rlc3RpbmcgUmVnRXhwOiAv
YWJjLwordHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1lJywgSURCVHJhbnNh
Y3Rpb24uUkVBRF9XUklURSkKK3N0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3Jl
TmFtZScpCit2YWx1ZSBpczogL2FiYy8gKHR5cGU6IG9iamVjdCkKK3N0b3JlLnB1dCh2YWx1ZSwg
J2tleScpCitzdG9yZS5nZXQoJ2tleScpCitQQVNTIHRlc3RfZGF0YSAhPT0gcmVzdWx0IGlzIHRy
dWUKK1BBU1MgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHJlc3VsdCkgaXMgIltvYmpl
Y3QgUmVnRXhwXSIKK1BBU1MgcmVzdWx0LnRvU3RyaW5nKCkgaXMgdGVzdF9kYXRhLnRvU3RyaW5n
KCkKKworVGVzdGluZyBSZWdFeHA6IC9hYmMvZwordHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlv
bignc3RvcmVOYW1lJywgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkKK3N0b3JlID0gdHJhbnNh
Y3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpCit2YWx1ZSBpczogL2FiYy9nICh0eXBlOiBv
YmplY3QpCitzdG9yZS5wdXQodmFsdWUsICdrZXknKQorc3RvcmUuZ2V0KCdrZXknKQorUEFTUyB0
ZXN0X2RhdGEgIT09IHJlc3VsdCBpcyB0cnVlCitQQVNTIE9iamVjdC5wcm90b3R5cGUudG9TdHJp
bmcuY2FsbChyZXN1bHQpIGlzICJbb2JqZWN0IFJlZ0V4cF0iCitQQVNTIHJlc3VsdC50b1N0cmlu
ZygpIGlzIHRlc3RfZGF0YS50b1N0cmluZygpCisKK1Rlc3RpbmcgUmVnRXhwOiAvYWJjL2kKK3Ry
YW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24oJ3N0b3JlTmFtZScsIElEQlRyYW5zYWN0aW9uLlJF
QURfV1JJVEUpCitzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKQor
dmFsdWUgaXM6IC9hYmMvaSAodHlwZTogb2JqZWN0KQorc3RvcmUucHV0KHZhbHVlLCAna2V5JykK
K3N0b3JlLmdldCgna2V5JykKK1BBU1MgdGVzdF9kYXRhICE9PSByZXN1bHQgaXMgdHJ1ZQorUEFT
UyBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwocmVzdWx0KSBpcyAiW29iamVjdCBSZWdF
eHBdIgorUEFTUyByZXN1bHQudG9TdHJpbmcoKSBpcyB0ZXN0X2RhdGEudG9TdHJpbmcoKQorCitU
ZXN0aW5nIFJlZ0V4cDogL2FiYy9naQordHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3Rv
cmVOYW1lJywgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkKK3N0b3JlID0gdHJhbnNhY3Rpb24u
b2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpCit2YWx1ZSBpczogL2FiYy9naSAodHlwZTogb2JqZWN0
KQorc3RvcmUucHV0KHZhbHVlLCAna2V5JykKK3N0b3JlLmdldCgna2V5JykKK1BBU1MgdGVzdF9k
YXRhICE9PSByZXN1bHQgaXMgdHJ1ZQorUEFTUyBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNh
bGwocmVzdWx0KSBpcyAiW29iamVjdCBSZWdFeHBdIgorUEFTUyByZXN1bHQudG9TdHJpbmcoKSBp
cyB0ZXN0X2RhdGEudG9TdHJpbmcoKQorCitUZXN0aW5nIFJlZ0V4cDogL2FiYy9tCit0cmFuc2Fj
dGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUnLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dS
SVRFKQorc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmVOYW1lJykKK3ZhbHVl
IGlzOiAvYWJjL20gKHR5cGU6IG9iamVjdCkKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScpCitzdG9y
ZS5nZXQoJ2tleScpCitQQVNTIHRlc3RfZGF0YSAhPT0gcmVzdWx0IGlzIHRydWUKK1BBU1MgT2Jq
ZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHJlc3VsdCkgaXMgIltvYmplY3QgUmVnRXhwXSIK
K1BBU1MgcmVzdWx0LnRvU3RyaW5nKCkgaXMgdGVzdF9kYXRhLnRvU3RyaW5nKCkKKworVGVzdGlu
ZyBSZWdFeHA6IC9hYmMvbWcKK3RyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24oJ3N0b3JlTmFt
ZScsIElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUpCitzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVj
dFN0b3JlKCdzdG9yZU5hbWUnKQordmFsdWUgaXM6IC9hYmMvZ20gKHR5cGU6IG9iamVjdCkKK3N0
b3JlLnB1dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5nZXQoJ2tleScpCitQQVNTIHRlc3RfZGF0YSAh
PT0gcmVzdWx0IGlzIHRydWUKK1BBU1MgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHJl
c3VsdCkgaXMgIltvYmplY3QgUmVnRXhwXSIKK1BBU1MgcmVzdWx0LnRvU3RyaW5nKCkgaXMgdGVz
dF9kYXRhLnRvU3RyaW5nKCkKKworVGVzdGluZyBSZWdFeHA6IC9hYmMvbWkKK3RyYW5zYWN0aW9u
ID0gZGIudHJhbnNhY3Rpb24oJ3N0b3JlTmFtZScsIElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUp
CitzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKQordmFsdWUgaXM6
IC9hYmMvaW0gKHR5cGU6IG9iamVjdCkKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5n
ZXQoJ2tleScpCitQQVNTIHRlc3RfZGF0YSAhPT0gcmVzdWx0IGlzIHRydWUKK1BBU1MgT2JqZWN0
LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHJlc3VsdCkgaXMgIltvYmplY3QgUmVnRXhwXSIKK1BB
U1MgcmVzdWx0LnRvU3RyaW5nKCkgaXMgdGVzdF9kYXRhLnRvU3RyaW5nKCkKKworVGVzdGluZyBS
ZWdFeHA6IC9hYmMvbWdpCit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUn
LCBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RT
dG9yZSgnc3RvcmVOYW1lJykKK3ZhbHVlIGlzOiAvYWJjL2dpbSAodHlwZTogb2JqZWN0KQorc3Rv
cmUucHV0KHZhbHVlLCAna2V5JykKK3N0b3JlLmdldCgna2V5JykKK1BBU1MgdGVzdF9kYXRhICE9
PSByZXN1bHQgaXMgdHJ1ZQorUEFTUyBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwocmVz
dWx0KSBpcyAiW29iamVjdCBSZWdFeHBdIgorUEFTUyByZXN1bHQudG9TdHJpbmcoKSBpcyB0ZXN0
X2RhdGEudG9TdHJpbmcoKQorCisKK1Rlc3RpbmcgSW1hZ2VEYXRhCitjYW52YXMgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKQorY2FudmFzLndpZHRoID0gOAorY2FudmFzLmhlaWdo
dCA9IDgKK3Rlc3RfZGF0YSA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpLmdldEltYWdlRGF0YSgw
LCAwLCA4LCA4KQordHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1lJywgSURC
VHJhbnNhY3Rpb24uUkVBRF9XUklURSkKK3N0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUo
J3N0b3JlTmFtZScpCit2YWx1ZSBpczogW29iamVjdCBJbWFnZURhdGFdICh0eXBlOiBvYmplY3Qp
CitzdG9yZS5wdXQodmFsdWUsICdrZXknKQorc3RvcmUuZ2V0KCdrZXknKQorUEFTUyB0ZXN0X2Rh
dGEgIT09IHJlc3VsdCBpcyB0cnVlCitQQVNTIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2Fs
bChyZXN1bHQpIGlzICJbb2JqZWN0IEltYWdlRGF0YV0iCitQQVNTIHJlc3VsdC53aWR0aCBpcyB0
ZXN0X2RhdGEud2lkdGgKK1BBU1MgcmVzdWx0LmhlaWdodCBpcyB0ZXN0X2RhdGEuaGVpZ2h0CitQ
QVNTIHJlc3VsdC5kYXRhLmxlbmd0aCBpcyB0ZXN0X2RhdGEuZGF0YS5sZW5ndGgKK1BBU1MgcmVz
dWx0IGRhdGEgbWF0Y2hlcworCitUZXN0aW5nIEJsb2IKK0Jsb2JCdWlsZGVyID0gd2luZG93LkJs
b2JCdWlsZGVyIHx8IHdpbmRvdy5XZWJLaXRCbG9iQnVpbGRlcgorUEFTUyBCbG9iQnVpbGRlciAh
PSBudWxsIGlzIHRydWUKK1BBU1MgRmlsZVJlYWRlciAhPSBudWxsIGlzIHRydWUKK2J1aWxkZXIg
PSBuZXcgQmxvYkJ1aWxkZXIoKQordGVzdF9jb250ZW50ID0gJ1RoaXMgaXMgYSB0ZXN0LiBUaGlz
IGlzIG9ubHkgYSB0ZXN0LicKK2J1aWxkZXIuYXBwZW5kKHRlc3RfY29udGVudCkKK3Rlc3RfZGF0
YSA9IGJ1aWxkZXIuZ2V0QmxvYigpCit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdzdG9y
ZU5hbWUnLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFuc2FjdGlvbi5v
YmplY3RTdG9yZSgnc3RvcmVOYW1lJykKK3ZhbHVlIGlzOiBbb2JqZWN0IEJsb2JdICh0eXBlOiBv
YmplY3QpCitzdG9yZS5wdXQodmFsdWUsICdrZXknKQorc3RvcmUuZ2V0KCdrZXknKQorUEFTUyB0
ZXN0X2RhdGEgIT09IHJlc3VsdCBpcyB0cnVlCitQQVNTIE9iamVjdC5wcm90b3R5cGUudG9TdHJp
bmcuY2FsbChyZXN1bHQpIGlzICJbb2JqZWN0IEJsb2JdIgorUEFTUyByZXN1bHQuc2l6ZSBpcyB0
ZXN0X2RhdGEuc2l6ZQorUEFTUyByZXN1bHQudHlwZSBpcyB0ZXN0X2RhdGEudHlwZQorUEFTUyB0
ZXh0IGlzICJUaGlzIGlzIGEgdGVzdC4gVGhpcyBpcyBvbmx5IGEgdGVzdC4iCisKK1Rlc3Rpbmcg
RmlsZQordGVzdF9jb250ZW50ID0gZmlsZUlucHV0LmZpbGVzWzBdCit0cmFuc2FjdGlvbiA9IGRi
LnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUnLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKQorc3Rv
cmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmVOYW1lJykKK3ZhbHVlIGlzOiBbb2Jq
ZWN0IEZpbGVdICh0eXBlOiBvYmplY3QpCitzdG9yZS5wdXQodmFsdWUsICdrZXknKQorc3RvcmUu
Z2V0KCdrZXknKQorUEFTUyBmaWxlMSAhPT0gZmlsZTIgaXMgdHJ1ZQorUEFTUyBPYmplY3QucHJv
dG90eXBlLnRvU3RyaW5nLmNhbGwoZmlsZTEpIGlzICJbb2JqZWN0IEZpbGVdIgorUEFTUyBPYmpl
Y3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZmlsZTIpIGlzICJbb2JqZWN0IEZpbGVdIgorZmls
ZTEuc2l6ZTogMTAyCitQQVNTIGZpbGUxLnNpemUgaXMgZmlsZTIuc2l6ZQorZmlsZTEudHlwZTog
dGV4dC9odG1sCitQQVNTIGZpbGUxLnR5cGUgaXMgZmlsZTIudHlwZQorZmlsZTEubmFtZTogdGVz
dC1kYXRhLmh0bWwKK1BBU1MgZmlsZTEubmFtZSBpcyBmaWxlMi5uYW1lCitQQVNTIFN0cmluZyhm
aWxlMS5sYXN0TW9kaWZpZWREYXRlKSBpcyBTdHJpbmcoZmlsZTIubGFzdE1vZGlmaWVkRGF0ZSkK
K1BBU1MgdGV4dDIgaXMgIjwhRE9DVFlQRSBodG1sPlxuPHRpdGxlPlRoaXMgaXMgc29tZSB0ZXN0
IGRhdGE8L3RpdGxlPlxuPGgxPlRlc3QgZGF0YSE8L2gxPlxuPHA+R2V0IHlvdXIgdGVzdCBkYXRh
IGhlcmUhXG4iCisKK1Rlc3RpbmcgRmlsZUxpc3QKK3Rlc3RfY29udGVudCA9IGZpbGVJbnB1dC5m
aWxlcwordHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1lJywgSURCVHJhbnNh
Y3Rpb24uUkVBRF9XUklURSkKK3N0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3Jl
TmFtZScpCit2YWx1ZSBpczogW29iamVjdCBGaWxlTGlzdF0gKHR5cGU6IG9iamVjdCkKK3N0b3Jl
LnB1dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5nZXQoJ2tleScpCitQQVNTIHRlc3RfZGF0YSAhPT0g
cmVzdWx0IGlzIHRydWUKK1BBU1MgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHJlc3Vs
dCkgaXMgIltvYmplY3QgRmlsZUxpc3RdIgorUEFTUyByZXN1bHQubGVuZ3RoIGlzIHRlc3RfZGF0
YS5sZW5ndGgKK2NvbXBhcmluZyBmaWxlWzBdCitQQVNTIGZpbGUxICE9PSBmaWxlMiBpcyB0cnVl
CitQQVNTIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChmaWxlMSkgaXMgIltvYmplY3Qg
RmlsZV0iCitQQVNTIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChmaWxlMikgaXMgIltv
YmplY3QgRmlsZV0iCitmaWxlMS5zaXplOiAxMDIKK1BBU1MgZmlsZTEuc2l6ZSBpcyBmaWxlMi5z
aXplCitmaWxlMS50eXBlOiB0ZXh0L2h0bWwKK1BBU1MgZmlsZTEudHlwZSBpcyBmaWxlMi50eXBl
CitmaWxlMS5uYW1lOiB0ZXN0LWRhdGEuaHRtbAorUEFTUyBmaWxlMS5uYW1lIGlzIGZpbGUyLm5h
bWUKK1BBU1MgU3RyaW5nKGZpbGUxLmxhc3RNb2RpZmllZERhdGUpIGlzIFN0cmluZyhmaWxlMi5s
YXN0TW9kaWZpZWREYXRlKQorUEFTUyB0ZXh0MiBpcyAiPCFET0NUWVBFIGh0bWw+XG48dGl0bGU+
VGhpcyBpcyBzb21lIHRlc3QgZGF0YTwvdGl0bGU+XG48aDE+VGVzdCBkYXRhITwvaDE+XG48cD5H
ZXQgeW91ciB0ZXN0IGRhdGEgaGVyZSFcbiIKK2NvbXBhcmluZyBmaWxlWzFdCitQQVNTIGZpbGUx
ICE9PSBmaWxlMiBpcyB0cnVlCitQQVNTIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChm
aWxlMSkgaXMgIltvYmplY3QgRmlsZV0iCitQQVNTIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcu
Y2FsbChmaWxlMikgaXMgIltvYmplY3QgRmlsZV0iCitmaWxlMS5zaXplOiA1MDIKK1BBU1MgZmls
ZTEuc2l6ZSBpcyBmaWxlMi5zaXplCitmaWxlMS50eXBlOiB0ZXh0L3BsYWluCitQQVNTIGZpbGUx
LnR5cGUgaXMgZmlsZTIudHlwZQorZmlsZTEubmFtZTogdGVzdC1kYXRhLnR4dAorUEFTUyBmaWxl
MS5uYW1lIGlzIGZpbGUyLm5hbWUKK1BBU1MgU3RyaW5nKGZpbGUxLmxhc3RNb2RpZmllZERhdGUp
IGlzIFN0cmluZyhmaWxlMi5sYXN0TW9kaWZpZWREYXRlKQorUEFTUyB0ZXh0MiBpcyAiTG9yZW0g
aXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2NpbmcgZWxpdC4gQWVuZWFu
IGxhb3JlZXQgZG9sb3IgaWQgdXJuYSBlbGVpZmVuZCBhbGlxdWV0LiBOdWxsYSB2ZWwgZG9sb3Ig
aXBzdW0uIEFsaXF1YW0gdXQgdHVycGlzIG5pc2wsIGluIHZ1bHB1dGF0ZSBzYXBpZW4uIEN1bSBz
b2NpaXMgbmF0b3F1ZSBwZW5hdGlidXMgZXQgbWFnbmlzIGRpcyBwYXJ0dXJpZW50IG1vbnRlcywg
bmFzY2V0dXIgcmlkaWN1bHVzIG11cy4gU2VkIGNvbmd1ZSBtYWduYSB2aXRhZSBkb2xvciBmZXVn
aWF0IHZlaGljdWxhLiBTZWQgdm9sdXRwYXQsIHRlbGx1cyB2ZWwgdmFyaXVzIHZlc3RpYnVsdW0s
IHB1cnVzIHF1YW0gbW9sbGlzIHNhcGllbiwgaW4gY29uZGltZW50dW0gbGVvIG5lcXVlIHNlZCBu
dWxsYS4gTnVuYyBxdWlzIHBvcnRhIGVsaXQuIFBlbGxlbnRlc3F1ZSBlcmF0IGxlY3R1cywgdWx0
cmljaWVzIGEgbG9ib3J0aXMgaWQsIGZhdWNpYnVzIGlkIHF1YW0uXG4iCisKK1Rlc3RpbmcgQXJy
YXkKK3Rlc3RfZGF0YSA9IFtdCit0ZXN0X2RhdGFbMF0gPSAnZm9vJwordGVzdF9kYXRhWzFdID0g
J2JhcicKK3Rlc3RfZGF0YVsxMF0gPSB0cnVlCit0ZXN0X2RhdGFbMTFdID0gZmFsc2UKK3Rlc3Rf
ZGF0YVsyMF0gPSAxMjMKK3Rlc3RfZGF0YVsyMV0gPSA0NTYKK3Rlc3RfZGF0YVszMF0gPSBudWxs
Cit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUnLCBJREJUcmFuc2FjdGlv
bi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmVOYW1l
JykKK3ZhbHVlIGlzOiBmb28sYmFyLCwsLCwsLCwsdHJ1ZSxmYWxzZSwsLCwsLCwsLDEyMyw0NTYs
LCwsLCwsLCwgKHR5cGU6IG9iamVjdCkKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5n
ZXQoJ2tleScpCitQQVNTIHRlc3RfZGF0YSAhPT0gcmVzdWx0IGlzIHRydWUKK1BBU1MgdGVzdF9k
YXRhLmxlbmd0aCA9PT0gcmVzdWx0Lmxlbmd0aCBpcyB0cnVlCitQQVNTIHRlc3RfZGF0YVswXSBp
cyByZXN1bHRbMF0KK1BBU1MgdGVzdF9kYXRhWzFdIGlzIHJlc3VsdFsxXQorUEFTUyB0ZXN0X2Rh
dGFbMTBdIGlzIHJlc3VsdFsxMF0KK1BBU1MgdGVzdF9kYXRhWzExXSBpcyByZXN1bHRbMTFdCitQ
QVNTIHRlc3RfZGF0YVsyMF0gaXMgcmVzdWx0WzIwXQorUEFTUyB0ZXN0X2RhdGFbMjFdIGlzIHJl
c3VsdFsyMV0KK1BBU1MgdGVzdF9kYXRhWzMwXSBpcyByZXN1bHRbMzBdCisKK1Rlc3RpbmcgT2Jq
ZWN0Cit0ZXN0X2RhdGEgPSBbXQordGVzdF9kYXRhWzBdID0gJ2ZvbycKK3Rlc3RfZGF0YVsxXSA9
ICdiYXInCit0ZXN0X2RhdGFbJ2EnXSA9IHRydWUKK3Rlc3RfZGF0YVsnYiddID0gZmFsc2UKK3Rl
c3RfZGF0YVsnZm9vJ10gPSAxMjMKK3Rlc3RfZGF0YVsnYmFyJ10gPSA0NTYKK3Rlc3RfZGF0YVsn
J10gPSBudWxsCit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUnLCBJREJU
cmFuc2FjdGlvbi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgn
c3RvcmVOYW1lJykKK3ZhbHVlIGlzOiBmb28sYmFyICh0eXBlOiBvYmplY3QpCitzdG9yZS5wdXQo
dmFsdWUsICdrZXknKQorc3RvcmUuZ2V0KCdrZXknKQorUEFTUyB0ZXN0X2RhdGEgIT09IHJlc3Vs
dCBpcyB0cnVlCitQQVNTIGFycmF5Q29tcGFyZShPYmplY3Qua2V5cyhyZXN1bHQpLnNvcnQoKSwg
T2JqZWN0LmtleXModGVzdF9kYXRhKS5zb3J0KCkpIGlzIHRydWUKK1BBU1MgdGVzdF9kYXRhWyIw
Il0gaXMgcmVzdWx0WyIwIl0KK1BBU1MgdGVzdF9kYXRhWyIxIl0gaXMgcmVzdWx0WyIxIl0KK1BB
U1MgdGVzdF9kYXRhWyJhIl0gaXMgcmVzdWx0WyJhIl0KK1BBU1MgdGVzdF9kYXRhWyJiIl0gaXMg
cmVzdWx0WyJiIl0KK1BBU1MgdGVzdF9kYXRhWyJmb28iXSBpcyByZXN1bHRbImZvbyJdCitQQVNT
IHRlc3RfZGF0YVsiYmFyIl0gaXMgcmVzdWx0WyJiYXIiXQorUEFTUyB0ZXN0X2RhdGFbIiJdIGlz
IHJlc3VsdFsiIl0KKworCitUZXN0IHR5cGVzIHRoYXQgY2FuJ3QgYmUgY2xvbmVkOgorCit0cmFu
c2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUnLCBJREJUcmFuc2FjdGlvbi5SRUFE
X1dSSVRFKQorc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmVOYW1lJykKKwor
T3RoZXIgSmF2YVNjcmlwdCBvYmplY3QgdHlwZXM6CitFeHBlY3RpbmcgZXhjZXB0aW9uIGZyb20g
c3RvcmUucHV0KG5ldyBFcnJvciwgJ2tleScpCitQQVNTIEV4Y2VwdGlvbiB3YXMgdGhyb3duLgor
UEFTUyBjb2RlIGlzIERPTUV4Y2VwdGlvbi5EQVRBX0NMT05FX0VSUgorRXhwZWN0aW5nIGV4Y2Vw
dGlvbiBmcm9tIHN0b3JlLnB1dChuZXcgRnVuY3Rpb24sICdrZXknKQorUEFTUyBFeGNlcHRpb24g
d2FzIHRocm93bi4KK1BBU1MgY29kZSBpcyBET01FeGNlcHRpb24uREFUQV9DTE9ORV9FUlIKKwor
T3RoZXIgaG9zdCBvYmplY3QgdHlwZXM6CitFeHBlY3RpbmcgZXhjZXB0aW9uIGZyb20gc3RvcmUu
cHV0KHdpbmRvdywgJ2tleScpCitQQVNTIEV4Y2VwdGlvbiB3YXMgdGhyb3duLgorUEFTUyBjb2Rl
IGlzIERPTUV4Y2VwdGlvbi5EQVRBX0NMT05FX0VSUgorRXhwZWN0aW5nIGV4Y2VwdGlvbiBmcm9t
IHN0b3JlLnB1dChkb2N1bWVudCwgJ2tleScpCitQQVNTIEV4Y2VwdGlvbiB3YXMgdGhyb3duLgor
UEFTUyBjb2RlIGlzIERPTUV4Y2VwdGlvbi5EQVRBX0NMT05FX0VSUgorRXhwZWN0aW5nIGV4Y2Vw
dGlvbiBmcm9tIHN0b3JlLnB1dChkb2N1bWVudC5ib2R5LCAna2V5JykKK1BBU1MgRXhjZXB0aW9u
IHdhcyB0aHJvd24uCitQQVNTIGNvZGUgaXMgRE9NRXhjZXB0aW9uLkRBVEFfQ0xPTkVfRVJSCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvc3RydWN0dXJlZC1jbG9uZS5odG1s
IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvc3RydWN0dXJlZC1jbG9uZS5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmRmMDVhYTUwNDcyNjk3M2U1ZjI3YzFiZWZlNWY3ODE3MThkZGQyNWQKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9zdHJ1Y3R1cmVkLWNs
b25lLmh0bWwKQEAgLTAsMCArMSw1MjkgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9InJlc291cmNlcy9zaGFyZWQuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8
aW5wdXQgdHlwZT0iZmlsZSIgaWQ9ImZpbGVJbnB1dCIgbXVsdGlwbGU+PC9pbnB1dD4KKzxwIGlk
PSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0Pgor
CitkZXNjcmlwdGlvbigiVGVzdCBzdHJ1Y3R1cmVkIGNsb25lIHBlcm11dGF0aW9ucyBpbiBJbmRl
eGVkREIuIik7CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRl
c3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKworaWYgKHdpbmRvdy5ldmVudFNlbmRlcikg
eworICAgIHZhciBmaWxlSW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlsZUlucHV0
Iik7CisgICAgdmFyIGZpbGVSZWN0ID0gZmlsZUlucHV0LmdldENsaWVudFJlY3RzKClbMF07Cisg
ICAgdmFyIHRhcmdldFggPSBmaWxlUmVjdC5sZWZ0ICsgZmlsZVJlY3Qud2lkdGggLyAyOworICAg
IHZhciB0YXJnZXRZID0gZmlsZVJlY3QudG9wICsgZmlsZVJlY3QuaGVpZ2h0IC8gMjsKKyAgICBl
dmVudFNlbmRlci5iZWdpbkRyYWdXaXRoRmlsZXMoWydyZXNvdXJjZXMvdGVzdC1kYXRhLmh0bWwn
LCAncmVzb3VyY2VzL3Rlc3QtZGF0YS50eHQnXSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VNb3Zl
VG8odGFyZ2V0WCwgdGFyZ2V0WSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOworfQorCitm
dW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBldmFsQW5kTG9nKCJpbmRleGVkREIgPSB3aW5kb3cuaW5k
ZXhlZERCIHx8IHdpbmRvdy53ZWJraXRJbmRleGVkREIiKTsKKyAgICBzaG91bGRCZVRydWUoImlu
ZGV4ZWREQiAhPSBudWxsIik7CisgICAgZXZhbEFuZExvZygiSURCVHJhbnNhY3Rpb24gPSB3aW5k
b3cuSURCVHJhbnNhY3Rpb24gfHwgd2luZG93LndlYmtpdElEQlRyYW5zYWN0aW9uIik7CisgICAg
c2hvdWxkQmVUcnVlKCJJREJUcmFuc2FjdGlvbiAhPSBudWxsIik7CisgICAgcHJlcGFyZURhdGFi
YXNlKCk7Cit9CisKK2Z1bmN0aW9uIHByZXBhcmVEYXRhYmFzZSgpCit7CisgICAgZGVidWcoIiIp
OworICAgIGRlYnVnKCJQcmVwYXJlIERhdGFiYXNlIik7CisgICAgcmVxdWVzdCA9IGV2YWxBbmRM
b2coImluZGV4ZWREQi5kZWxldGVEYXRhYmFzZSgnc3RydWN0dXJlZC1jbG9uZScpIik7CisgICAg
cmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CisgICAgcmVxdWVzdC5v
bnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJp
bmRleGVkREIub3Blbignc3RydWN0dXJlZC1jbG9uZScpIik7CisgICAgICAgIHJlcXVlc3Qub25l
cnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworICAgICAgICByZXF1ZXN0Lm9uc3VjY2Vz
cyA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGV2YWxBbmRMb2coImRiID0gcmVxdWVzdC5y
ZXN1bHQiKTsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZGIudmVyc2lvbiIs
ICIiKTsKKyAgICAgICAgICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJkYi5zZXRWZXJzaW9uKCcx
JykiKTsKKyAgICAgICAgICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxi
YWNrOworICAgICAgICAgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAg
ICAgICAgICAgICAgZXZhbEFuZExvZygiZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScp
Iik7CisgICAgICAgICAgICAgICAgdmFyIHRyYW5zID0gcmVxdWVzdC5yZXN1bHQ7CisgICAgICAg
ICAgICAgICAgdHJhbnMub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworICAgICAg
ICAgICAgICAgIHRyYW5zLm9uYWJvcnQgPSB1bmV4cGVjdGVkQWJvcnRDYWxsYmFjazsKKyAgICAg
ICAgICAgICAgICB0cmFucy5vbmNvbXBsZXRlID0gc3RhcnRUZXN0czsKKyAgICAgICAgICAgIH07
CisgICAgICAgIH07CisgICAgfTsKK30KKworZnVuY3Rpb24gc3RhcnRUZXN0cygpCit7CisgICAg
ZGVidWcoIiIpOworICAgIGRlYnVnKCJSdW5uaW5nIHRlc3RzLi4uIik7CisgICAgdmFyIHRlc3Rz
X3RvX3J1biA9IFsKKyAgICAgICAgdGVzdFVuZGVmaW5lZCwKKyAgICAgICAgdGVzdE51bGwsCisg
ICAgICAgIHRlc3RCb29sZWFuLAorICAgICAgICB0ZXN0TnVtYmVyLAorICAgICAgICB0ZXN0U3Ry
aW5nLAorICAgICAgICB0ZXN0Qm9vbGVhbk9iamVjdCwKKyAgICAgICAgdGVzdE51bWJlck9iamVj
dCwKKyAgICAgICAgdGVzdFN0cmluZ09iamVjdCwKKyAgICAgICAgdGVzdERhdGVPYmplY3QsCisg
ICAgICAgIHRlc3RSZWdFeHBPYmplY3QsCisgICAgICAgIHRlc3RJbWFnZURhdGEsCisgICAgICAg
IHRlc3RCbG9iLAorICAgICAgICB0ZXN0RmlsZSwKKyAgICAgICAgdGVzdEZpbGVMaXN0LAorICAg
ICAgICB0ZXN0QXJyYXksCisgICAgICAgIHRlc3RPYmplY3QKKyAgICBdOworCisgICAgZnVuY3Rp
b24gbmV4dFRlc3QoKSB7CisgICAgICAgIGRlYnVnKCIiKTsKKyAgICAgICAgaWYgKHRlc3RzX3Rv
X3J1bi5sZW5ndGgpIHsKKyAgICAgICAgICAgIHZhciB0ZXN0ID0gdGVzdHNfdG9fcnVuLnNoaWZ0
KCk7CisgICAgICAgICAgICB0ZXN0KG5leHRUZXN0KTsgLy8gV2hlbiBkb25lLCBjYWxsIHRoaXMg
YWdhaW4uCisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB0ZXN0QmFkVHlwZXMoKTsKKyAg
ICAgICAgfQorICAgIH0KKyAgICBuZXh0VGVzdCgpOworfQorCitmdW5jdGlvbiBmb3JFYWNoV2l0
aENhbGxiYWNrKHRlc3RGdW5jdGlvbiwgdmFsdWVzLCBjYWxsYmFjaykKK3sKKyAgICBmdW5jdGlv
biBuZXh0VmFsdWUoKSB7CisgICAgICAgIGlmICh2YWx1ZXMubGVuZ3RoKSB7CisgICAgICAgICAg
ICB0ZXN0RnVuY3Rpb24odmFsdWVzLnNoaWZ0KCksIG5leHRWYWx1ZSk7CisgICAgICAgIH0gZWxz
ZSB7CisgICAgICAgICAgICBjYWxsYmFjaygpOworICAgICAgICB9CisgICAgfQorCisgICAgbmV4
dFZhbHVlKCk7Cit9CisKK2Z1bmN0aW9uIHRlc3RWYWx1ZSh2YWx1ZSwgY2FsbGJhY2spCit7Cisg
ICAgLy8gT25lIHRyYW5zYWN0aW9uIHBlciB0ZXN0LCBzaW5jZSBzb21lIHRlc3RzIHJlcXVpcmUg
YXN5bmNocm9ub3VzCisgICAgLy8gb3BlcmF0aW9ucyB0byB2ZXJpZnkgdGhlIHJlc3VsdCAoZS5n
LiB2aWEgRmlsZVJlYWRlcikKKyAgICBldmFsQW5kTG9nKCJ0cmFuc2FjdGlvbiA9IGRiLnRyYW5z
YWN0aW9uKCdzdG9yZU5hbWUnLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKSIpOworICAgIHRy
YW5zYWN0aW9uLm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKKyAgICB0cmFuc2Fj
dGlvbi5vbmFib3J0ID0gdW5leHBlY3RlZEFib3J0Q2FsbGJhY2s7CisgICAgZXZhbEFuZExvZygi
c3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmVOYW1lJykiKTsKKworICAgIGRl
YnVnKCJ2YWx1ZSBpczogIiArIFN0cmluZyh2YWx1ZSkgKyAiICh0eXBlOiAiICsgdHlwZW9mIHZh
bHVlICsgIikiKTsKKyAgICB3aW5kb3cudmFsdWUgPSB2YWx1ZTsKKyAgICByZXF1ZXN0ID0gZXZh
bEFuZExvZygic3RvcmUucHV0KHZhbHVlLCAna2V5JykiKTsKKyAgICByZXF1ZXN0Lm9uZXJyb3Ig
PSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKKyAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0
aW9uKGUpIHsKKyAgICAgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coInN0b3JlLmdldCgna2V5Jyki
KTsKKyAgICAgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Cisg
ICAgICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgLy9k
ZWJ1ZygiZ290IGJhY2s6ICIgKyBTdHJpbmcocmVxdWVzdC5yZXN1bHQpICsgIiAodHlwZTogIiAr
IHR5cGVvZiByZXF1ZXN0LnJlc3VsdCArICIpIik7CisgICAgICAgICAgICBjYWxsYmFjayhyZXF1
ZXN0LnJlc3VsdCk7CisgICAgICAgIH07CisgICAgfTsKK30KKworLy8gSWRlbnRpdHkgdGVzdGlu
Zywgc2Vuc2l0aXZlIHRvIE5hTiBhbmQgLTAKK2Z1bmN0aW9uIGlzKHgsIHkpIHsKKyAgICBpZiAo
eCA9PT0geSkgeworICAgICAgICByZXR1cm4geCAhPT0gMCB8fCAxIC8geCA9PT0gMSAvIHk7Cisg
ICAgfQorICAgIHJldHVybiB4ICE9PSB4ICYmIHkgIT09IHk7Cit9CisKK2Z1bmN0aW9uIGFycmF5
Q29tcGFyZShhLCBiKSB7CisgICAgaWYgKGEubGVuZ3RoICE9PSBiLmxlbmd0aCkgeworICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYS5sZW5ndGg7
ICsraSkgeworICAgICAgICBpZiAoIWlzKGFbaV0sIGJbaV0pKSB7CisgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Z1bmN0
aW9uIHRlc3RQcmltaXRpdmVWYWx1ZShzdHJpbmcsIGNhbGxiYWNrKQoreworICAgIGRlYnVnKCJU
ZXN0aW5nOiAiICsgc3RyaW5nKTsKKyAgICB2YXIgdmFsdWUgPSBldmFsKCJ2YWx1ZSA9ICgiICsg
c3RyaW5nICsgIikiKTsKKyAgICB0ZXN0X2RhdGEgPSB2YWx1ZTsKKyAgICB0ZXN0VmFsdWUodGVz
dF9kYXRhLCBmdW5jdGlvbihyZXN1bHQpIHsKKyAgICAgICAgd2luZG93LnJlc3VsdCA9IHJlc3Vs
dDsKKyAgICAgICAgc2hvdWxkQmVUcnVlKCJpcyh0ZXN0X2RhdGEsIHJlc3VsdCkiKTsKKyAgICAg
ICAgZGVidWcoIiIpOworICAgICAgICBjYWxsYmFjaygpOworICAgIH0pOworfQorCitmdW5jdGlv
biB0ZXN0T2JqZWN0V2l0aFZhbHVlKHN0cmluZywgY2FsbGJhY2spCit7CisgICAgZGVidWcoIlRl
c3Rpbmc6ICIgKyBzdHJpbmcpOworICAgIHZhciB2YWx1ZSA9IGV2YWwoInZhbHVlID0gKCIgKyBz
dHJpbmcgKyAiKSIpOworICAgIHRlc3RfZGF0YSA9IHZhbHVlOworICAgIHRlc3RWYWx1ZSh0ZXN0
X2RhdGEsIGZ1bmN0aW9uKHJlc3VsdCkgeworICAgICAgICB3aW5kb3cucmVzdWx0ID0gcmVzdWx0
OworICAgICAgICBkZWJ1ZygiU3RyaW5nKHJlc3VsdCk6ICIgKyBTdHJpbmcocmVzdWx0KSk7Cisg
ICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygidHlwZW9mIHJlc3VsdCIsICJvYmplY3QiKTsK
KyAgICAgICAgc2hvdWxkQmUoIk9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChyZXN1bHQp
IiwgIk9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0ZXN0X2RhdGEpIik7CisgICAgICAg
IHNob3VsZEJlVHJ1ZSgidGVzdF9kYXRhICE9PSByZXN1bHQiKTsKKyAgICAgICAgc2hvdWxkQmUo
InJlc3VsdC50b1N0cmluZygpIiwgInRlc3RfZGF0YS50b1N0cmluZygpIik7CisgICAgICAgIHNo
b3VsZEJlVHJ1ZSgiaXModGVzdF9kYXRhLnZhbHVlT2YoKSwgcmVzdWx0LnZhbHVlT2YoKSkiKTsK
KyAgICAgICAgZGVidWcoIiIpOworICAgICAgICBjYWxsYmFjaygpOworICAgIH0pOworfQorCitm
dW5jdGlvbiB0ZXN0VW5kZWZpbmVkKGNhbGxiYWNrKQoreworICAgIHRlc3RQcmltaXRpdmVWYWx1
ZSgidW5kZWZpbmVkIiwgY2FsbGJhY2spOworfQorCitmdW5jdGlvbiB0ZXN0TnVsbChjYWxsYmFj
aykKK3sKKyAgICB0ZXN0UHJpbWl0aXZlVmFsdWUoIm51bGwiLCBjYWxsYmFjayk7Cit9CisKK2Z1
bmN0aW9uIHRlc3RCb29sZWFuKGNhbGxiYWNrKQoreworICAgIGRlYnVnKCJUZXN0aW5nIGJvb2xl
YW4gcHJpbWl0aXZlcyIpOworICAgIGRlYnVnKCIiKTsKKyAgICBmb3JFYWNoV2l0aENhbGxiYWNr
KHRlc3RQcmltaXRpdmVWYWx1ZSwgWyJ0cnVlIiwgImZhbHNlIl0sIGNhbGxiYWNrKTsKK30KKwor
ZnVuY3Rpb24gdGVzdEJvb2xlYW5PYmplY3QoY2FsbGJhY2spCit7CisgICAgZGVidWcoIlRlc3Rp
bmcgQm9vbGVhbiBvYmplY3RzIik7CisgICAgZGVidWcoIiIpOworICAgIGZvckVhY2hXaXRoQ2Fs
bGJhY2sodGVzdE9iamVjdFdpdGhWYWx1ZSwgWworICAgICAgICAibmV3IEJvb2xlYW4odHJ1ZSki
LAorICAgICAgICAibmV3IEJvb2xlYW4oZmFsc2UpIgorICAgIF0sIGNhbGxiYWNrKTsKK30KKwor
ZnVuY3Rpb24gdGVzdFN0cmluZyhjYWxsYmFjaykKK3sKKyAgICBkZWJ1ZygiVGVzdGluZyBzdHJp
bmcgcHJpbWl0aXZlcyIpOworICAgIGRlYnVnKCIiKTsKKyAgICBmb3JFYWNoV2l0aENhbGxiYWNr
KHRlc3RQcmltaXRpdmVWYWx1ZSwgWworICAgICAgICAiJyciLAorICAgICAgICAiJ3RoaXMgaXMg
YSBzYW1wbGUgc3RyaW5nJyIsCisgICAgICAgICInbnVsbChcXDApJyIKKyAgICBdLCBjYWxsYmFj
ayk7Cit9CisKK2Z1bmN0aW9uIHRlc3RTdHJpbmdPYmplY3QoY2FsbGJhY2spCit7CisgICAgZGVi
dWcoIlRlc3RpbmcgU3RyaW5nIG9iamVjdHMiKTsKKyAgICBkZWJ1ZygiIik7CisgICAgZm9yRWFj
aFdpdGhDYWxsYmFjayh0ZXN0T2JqZWN0V2l0aFZhbHVlLCBbCisgICAgICAgICJuZXcgU3RyaW5n
KCkiLAorICAgICAgICAibmV3IFN0cmluZygndGhpcyBpcyBhIHNhbXBsZSBzdHJpbmcnKSIsCisg
ICAgICAgICJuZXcgU3RyaW5nKCdudWxsKFxcMCknKSIKKyAgICBdLCBjYWxsYmFjayk7Cit9CisK
K2Z1bmN0aW9uIHRlc3ROdW1iZXIoY2FsbGJhY2spCit7CisgICAgZGVidWcoIlRlc3RpbmcgbnVt
YmVyIHByaW1pdGl2ZXMiKTsKKyAgICBkZWJ1ZygiIik7CisgICAgZm9yRWFjaFdpdGhDYWxsYmFj
ayh0ZXN0UHJpbWl0aXZlVmFsdWUsIFsKKyAgICAgICAgIk5hTiIsCisgICAgICAgICItSW5maW5p
dHkiLAorICAgICAgICAiLU51bWJlci5NQVhfVkFMVUUiLAorICAgICAgICAiLU51bWJlci5NSU5f
VkFMVUUiLAorICAgICAgICAiLTAiLCAvLyBGSVhNRTogVGhpcyBjdXJyZW50bHkgZmFpbHMuIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NTg4MAorICAgICAgICAiMCIs
CisgICAgICAgICJOdW1iZXIuTUlOX1ZBTFVFIiwKKyAgICAgICAgIk51bWJlci5NQVhfVkFMVUUi
LAorICAgICAgICAiSW5maW5pdHkiCisgICAgXSwgY2FsbGJhY2spOworfQorCitmdW5jdGlvbiB0
ZXN0TnVtYmVyT2JqZWN0KGNhbGxiYWNrKQoreworICAgIGRlYnVnKCJUZXN0aW5nIE51bWJlciBv
YmplY3RzIik7CisgICAgZGVidWcoIiIpOworICAgIGZvckVhY2hXaXRoQ2FsbGJhY2sodGVzdE9i
amVjdFdpdGhWYWx1ZSwgWworICAgICAgICAibmV3IE51bWJlcihOYU4pIiwKKyAgICAgICAgIm5l
dyBOdW1iZXIoLUluZmluaXR5KSIsCisgICAgICAgICJuZXcgTnVtYmVyKC1OdW1iZXIuTUFYX1ZB
TFVFKSIsCisgICAgICAgICJuZXcgTnVtYmVyKC1OdW1iZXIuTUlOX1ZBTFVFKSIsCisgICAgICAg
ICJuZXcgTnVtYmVyKC0wKSIsCisgICAgICAgICJuZXcgTnVtYmVyKDApIiwKKyAgICAgICAgIm5l
dyBOdW1iZXIoTnVtYmVyLk1JTl9WQUxVRSkiLAorICAgICAgICAibmV3IE51bWJlcihOdW1iZXIu
TUFYX1ZBTFVFKSIsCisgICAgICAgICJuZXcgTnVtYmVyKEluZmluaXR5KSIKKyAgICBdLCBjYWxs
YmFjayk7Cit9CisKK2Z1bmN0aW9uIHRlc3REYXRlT2JqZWN0KGNhbGxiYWNrKQoreworICAgIGRl
YnVnKCJUZXN0aW5nIERhdGUgb2JqZWN0cyIpOworICAgIGRlYnVnKCIiKTsKKyAgICBmb3JFYWNo
V2l0aENhbGxiYWNrKHRlc3RPYmplY3RXaXRoVmFsdWUsIFsKKyAgICAgICAgIm5ldyBEYXRlKC0x
ZTEzKSIsCisgICAgICAgICJuZXcgRGF0ZSgtMWUxMikiLAorICAgICAgICAibmV3IERhdGUoLTFl
OSkiLAorICAgICAgICAibmV3IERhdGUoLTFlNikiLAorICAgICAgICAibmV3IERhdGUoLTFlMyki
LAorICAgICAgICAibmV3IERhdGUoMCkiLAorICAgICAgICAibmV3IERhdGUoMWUzKSIsCisgICAg
ICAgICJuZXcgRGF0ZSgxZTYpIiwKKyAgICAgICAgIm5ldyBEYXRlKDFlOSkiLAorICAgICAgICAi
bmV3IERhdGUoMWUxMikiLAorICAgICAgICAibmV3IERhdGUoMWUxMykiCisgICAgXSwgY2FsbGJh
Y2spOworfQorCitmdW5jdGlvbiB0ZXN0UmVnRXhwT2JqZWN0KGNhbGxiYWNrKQoreworICAgIGRl
YnVnKCJUZXN0aW5nIFJlZ0V4cCBvYmplY3RzIik7CisgICAgZGVidWcoIiIpOworICAgIGZ1bmN0
aW9uIHRlc3RSZWdFeHAoc3RyaW5nLCBjYWxsYmFjaykgeworICAgICAgICBkZWJ1ZygiVGVzdGlu
ZyBSZWdFeHA6ICIgKyBzdHJpbmcpOworICAgICAgICB2YXIgdmFsdWUgPSBldmFsKCJ2YWx1ZSA9
ICgiICsgc3RyaW5nICsgIikiKTsKKyAgICAgICAgdGVzdF9kYXRhID0gdmFsdWU7CisgICAgICAg
IHRlc3RWYWx1ZSh0ZXN0X2RhdGEsIGZ1bmN0aW9uKHJlc3VsdCkgeworICAgICAgICAgICAgd2lu
ZG93LnJlc3VsdCA9IHJlc3VsdDsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgidGVzdF9kYXRh
ICE9PSByZXN1bHQiKTsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiT2JqZWN0
LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHJlc3VsdCkiLCAiW29iamVjdCBSZWdFeHBdIik7Cisg
ICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0LnRvU3RyaW5nKCkiLCAidGVzdF9kYXRhLnRvU3Ry
aW5nKCkiKTsKKyAgICAgICAgICAgIGRlYnVnKCIiKTsKKyAgICAgICAgICAgIGNhbGxiYWNrKCk7
CisgICAgICAgIH0pOworICAgIH0KKworICAgIGZvckVhY2hXaXRoQ2FsbGJhY2sodGVzdFJlZ0V4
cCwgWworICAgICAgICAibmV3IFJlZ0V4cCgpIiwKKyAgICAgICAgIi9hYmMvIiwKKyAgICAgICAg
Ii9hYmMvZyIsCisgICAgICAgICIvYWJjL2kiLAorICAgICAgICAiL2FiYy9naSIsCisgICAgICAg
ICIvYWJjL20iLAorICAgICAgICAiL2FiYy9tZyIsCisgICAgICAgICIvYWJjL21pIiwKKyAgICAg
ICAgIi9hYmMvbWdpIgorICAgIF0sIGNhbGxiYWNrKTsKK30KKworZnVuY3Rpb24gdGVzdEltYWdl
RGF0YShjYWxsYmFjaykKK3sKKyAgICBkZWJ1ZygiVGVzdGluZyBJbWFnZURhdGEiKTsKKyAgICBl
dmFsQW5kTG9nKCJjYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKSIpOwor
ICAgIGV2YWxBbmRMb2coImNhbnZhcy53aWR0aCA9IDgiKTsKKyAgICBldmFsQW5kTG9nKCJjYW52
YXMuaGVpZ2h0ID0gOCIpOworICAgIGV2YWxBbmRMb2coInRlc3RfZGF0YSA9IGNhbnZhcy5nZXRD
b250ZXh0KCcyZCcpLmdldEltYWdlRGF0YSgwLCAwLCA4LCA4KSIpOworCisgICAgZm9yICh2YXIg
aSA9IDA7IGkgPCAyNTY7ICsraSkgeworICAgICAgICB0ZXN0X2RhdGEuZGF0YVtpXSA9IGk7Cisg
ICAgfQorCisgICAgdGVzdFZhbHVlKHRlc3RfZGF0YSwgZnVuY3Rpb24ocmVzdWx0KSB7CisgICAg
ICAgIHdpbmRvdy5yZXN1bHQgPSByZXN1bHQ7CisgICAgICAgIHNob3VsZEJlVHJ1ZSgidGVzdF9k
YXRhICE9PSByZXN1bHQiKTsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJPYmplY3Qu
cHJvdG90eXBlLnRvU3RyaW5nLmNhbGwocmVzdWx0KSIsICJbb2JqZWN0IEltYWdlRGF0YV0iKTsK
KyAgICAgICAgc2hvdWxkQmUoInJlc3VsdC53aWR0aCIsICJ0ZXN0X2RhdGEud2lkdGgiKTsKKyAg
ICAgICAgc2hvdWxkQmUoInJlc3VsdC5oZWlnaHQiLCAidGVzdF9kYXRhLmhlaWdodCIpOworICAg
ICAgICBzaG91bGRCZSgicmVzdWx0LmRhdGEubGVuZ3RoIiwgInRlc3RfZGF0YS5kYXRhLmxlbmd0
aCIpOworICAgICAgICBpZiAoYXJyYXlDb21wYXJlKHRlc3RfZGF0YS5kYXRhLCByZXN1bHQuZGF0
YSkpIHsKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoInJlc3VsdCBkYXRhIG1hdGNoZXMiKTsKKyAg
ICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoInJlc3VsdCBkYXRhIGRvZXNu
J3QgbWF0Y2giKTsKKyAgICAgICAgfQorICAgICAgICBjYWxsYmFjaygpOworICAgIH0pOworfQor
CitmdW5jdGlvbiByZWFkQmxvYkFzVGV4dChibG9iLCBjYWxsYmFjaykKK3sKKyAgICB2YXIgcmVh
ZGVyID0gbmV3IEZpbGVSZWFkZXIoKTsKKyAgICByZWFkZXIub25sb2FkID0gZnVuY3Rpb24oZSkg
eworICAgICAgICBpZiAoZS50YXJnZXQucmVhZHlTdGF0ZSA9PT0gRmlsZVJlYWRlci5ET05FKSB7
CisgICAgICAgICAgICBjYWxsYmFjayhlLnRhcmdldC5yZXN1bHQpOworICAgICAgICB9CisgICAg
fTsKKyAgICByZWFkZXIub25lcnJvciA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgdGVzdEZhaWxl
ZCgiRXJyb3IgcmVhZGluZyBibG9iIGFzIHRleHQ6ICIgKyBlKTsKKyAgICAgICAgZG9uZSgpOwor
ICAgIH07CisgICAgcmVhZGVyLnJlYWRBc1RleHQoYmxvYik7Cit9CisKK2Z1bmN0aW9uIGNoZWNr
QmxvYkNvbnRlbnRzKGJsb2IsIGV4cGVjdGVkLCBjYWxsYmFjaykKK3sKKyAgICByZWFkQmxvYkFz
VGV4dChibG9iLCBmdW5jdGlvbih0ZXh0KSB7CisgICAgICAgIHdpbmRvdy50ZXh0ID0gdGV4dDsK
KyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ0ZXh0IiwgZXhwZWN0ZWQpOworICAgICAg
ICBjYWxsYmFjaygpOworICAgIH0pOworfQorCitmdW5jdGlvbiBjb21wYXJlQmxvYnMoYmxvYjEs
IGJsb2IyLCBjYWxsYmFjaykKK3sKKyAgICByZWFkQmxvYkFzVGV4dChibG9iMSwgZnVuY3Rpb24o
dGV4dDEpIHsKKyAgICAgICAgcmVhZEJsb2JBc1RleHQoYmxvYjIsIGZ1bmN0aW9uKHRleHQyKSB7
CisgICAgICAgICAgICB3aW5kb3cudGV4dDEgPSB0ZXh0MTsKKyAgICAgICAgICAgIHdpbmRvdy50
ZXh0MiA9IHRleHQyOworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ0ZXh0MiIs
IHRleHQxKTsKKyAgICAgICAgICAgIGNhbGxiYWNrKCk7CisgICAgICAgIH0pOworICAgIH0pOwor
fQorCitmdW5jdGlvbiB0ZXN0QmxvYihjYWxsYmFjaykKK3sKKyAgICBkZWJ1ZygiVGVzdGluZyBC
bG9iIik7CisgICAgZXZhbEFuZExvZygiQmxvYkJ1aWxkZXIgPSB3aW5kb3cuQmxvYkJ1aWxkZXIg
fHwgd2luZG93LldlYktpdEJsb2JCdWlsZGVyIik7CisgICAgc2hvdWxkQmVUcnVlKCJCbG9iQnVp
bGRlciAhPSBudWxsIik7CisgICAgc2hvdWxkQmVUcnVlKCJGaWxlUmVhZGVyICE9IG51bGwiKTsK
KyAgICBldmFsQW5kTG9nKCJidWlsZGVyID0gbmV3IEJsb2JCdWlsZGVyKCkiKTsKKyAgICBldmFs
QW5kTG9nKCJ0ZXN0X2NvbnRlbnQgPSAnVGhpcyBpcyBhIHRlc3QuIFRoaXMgaXMgb25seSBhIHRl
c3QuJyIpOworICAgIGV2YWxBbmRMb2coImJ1aWxkZXIuYXBwZW5kKHRlc3RfY29udGVudCkiKTsK
KyAgICBldmFsQW5kTG9nKCJ0ZXN0X2RhdGEgPSBidWlsZGVyLmdldEJsb2IoKSIpOworICAgIHRl
c3RWYWx1ZSh0ZXN0X2RhdGEsIGZ1bmN0aW9uKHJlc3VsdCkgeworICAgICAgICB3aW5kb3cucmVz
dWx0ID0gcmVzdWx0OworICAgICAgICBzaG91bGRCZVRydWUoInRlc3RfZGF0YSAhPT0gcmVzdWx0
Iik7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiT2JqZWN0LnByb3RvdHlwZS50b1N0
cmluZy5jYWxsKHJlc3VsdCkiLCAiW29iamVjdCBCbG9iXSIpOworICAgICAgICBzaG91bGRCZSgi
cmVzdWx0LnNpemUiLCAidGVzdF9kYXRhLnNpemUiKTsKKyAgICAgICAgc2hvdWxkQmUoInJlc3Vs
dC50eXBlIiwgInRlc3RfZGF0YS50eXBlIik7CisgICAgICAgIGNoZWNrQmxvYkNvbnRlbnRzKHJl
c3VsdCwgdGVzdF9jb250ZW50LCBjYWxsYmFjayk7CisgICAgfSk7Cit9CisKK2Z1bmN0aW9uIGNv
bXBhcmVGaWxlcyhmaWxlMSwgZmlsZTIsIGNhbGxiYWNrKQoreworICAgIHdpbmRvdy5maWxlMSA9
IGZpbGUxOworICAgIHdpbmRvdy5maWxlMiA9IGZpbGUyOworICAgIHNob3VsZEJlVHJ1ZSgiZmls
ZTEgIT09IGZpbGUyIik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJPYmplY3QucHJvdG90
eXBlLnRvU3RyaW5nLmNhbGwoZmlsZTEpIiwgIltvYmplY3QgRmlsZV0iKTsKKyAgICBzaG91bGRC
ZUVxdWFsVG9TdHJpbmcoIk9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChmaWxlMikiLCAi
W29iamVjdCBGaWxlXSIpOworICAgIGRlYnVnKCJmaWxlMS5zaXplOiAiICsgZmlsZTEuc2l6ZSk7
CisgICAgc2hvdWxkQmUoImZpbGUxLnNpemUiLCAiZmlsZTIuc2l6ZSIpOworICAgIGRlYnVnKCJm
aWxlMS50eXBlOiAiICsgZmlsZTEudHlwZSk7CisgICAgc2hvdWxkQmUoImZpbGUxLnR5cGUiLCAi
ZmlsZTIudHlwZSIpOworICAgIGRlYnVnKCJmaWxlMS5uYW1lOiAiICsgZmlsZTEubmFtZSk7Cisg
ICAgc2hvdWxkQmUoImZpbGUxLm5hbWUiLCAiZmlsZTIubmFtZSIpOworICAgIHNob3VsZEJlKCJT
dHJpbmcoZmlsZTEubGFzdE1vZGlmaWVkRGF0ZSkiLCAiU3RyaW5nKGZpbGUyLmxhc3RNb2RpZmll
ZERhdGUpIik7CisgICAgaWYgKGNhbGxiYWNrKSB7CisgICAgICAgIGNvbXBhcmVCbG9icyhmaWxl
MSwgZmlsZTIsIGNhbGxiYWNrKTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIHRlc3RGaWxlKGNhbGxi
YWNrKQoreworICAgIGRlYnVnKCJUZXN0aW5nIEZpbGUiKTsKKyAgICBldmFsQW5kTG9nKCJ0ZXN0
X2NvbnRlbnQgPSBmaWxlSW5wdXQuZmlsZXNbMF0iKTsKKworICAgIHdpbmRvdy50ZXN0X2RhdGEg
PSB0ZXN0X2NvbnRlbnQ7CisgICAgdGVzdFZhbHVlKHRlc3RfZGF0YSwgZnVuY3Rpb24ocmVzdWx0
KSB7CisgICAgICAgIHdpbmRvdy5yZXN1bHQgPSByZXN1bHQ7CisgICAgICAgIGNvbXBhcmVGaWxl
cyhyZXN1bHQsIHRlc3RfZGF0YSwgY2FsbGJhY2spOworICAgIH0pOworfQorCisKK2Z1bmN0aW9u
IHRlc3RGaWxlTGlzdChjYWxsYmFjaykKK3sKKyAgICBkZWJ1ZygiVGVzdGluZyBGaWxlTGlzdCIp
OworICAgIGV2YWxBbmRMb2coInRlc3RfY29udGVudCA9IGZpbGVJbnB1dC5maWxlcyIpOworCisg
ICAgd2luZG93LnRlc3RfZGF0YSA9IHRlc3RfY29udGVudDsKKyAgICB0ZXN0VmFsdWUodGVzdF9k
YXRhLCBmdW5jdGlvbihyZXN1bHQpIHsKKyAgICAgICAgd2luZG93LnJlc3VsdCA9IHJlc3VsdDsK
KyAgICAgICAgc2hvdWxkQmVUcnVlKCJ0ZXN0X2RhdGEgIT09IHJlc3VsdCIpOworICAgICAgICBz
aG91bGRCZUVxdWFsVG9TdHJpbmcoIk9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChyZXN1
bHQpIiwgIltvYmplY3QgRmlsZUxpc3RdIik7CisgICAgICAgIHNob3VsZEJlKCJyZXN1bHQubGVu
Z3RoIiwgInRlc3RfZGF0YS5sZW5ndGgiKTsKKyAgICAgICAgaSA9IDA7CisgICAgICAgIGZ1bmN0
aW9uIGRvTmV4dCgpIHsKKyAgICAgICAgICAgIGlmIChpID49IHRlc3RfZGF0YS5sZW5ndGgpIHsK
KyAgICAgICAgICAgICAgICBjYWxsYmFjaygpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAg
ICAgICAgICAgICBkZWJ1ZygiY29tcGFyaW5nIGZpbGVbIiArIGkgKyAiXSIpOworICAgICAgICAg
ICAgICAgIGNvbXBhcmVGaWxlcyhyZXN1bHRbaV0sIHRlc3RfZGF0YVtpKytdLCBkb05leHQpOwor
ICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGRvTmV4dCgpOworICAgIH0pOworfQor
CitmdW5jdGlvbiB0ZXN0QXJyYXkoY2FsbGJhY2spIHsKKyAgICBkZWJ1ZygiVGVzdGluZyBBcnJh
eSIpOworICAgIGV2YWxBbmRMb2coInRlc3RfZGF0YSA9IFtdIik7CisgICAgZXZhbEFuZExvZygi
dGVzdF9kYXRhWzBdID0gJ2ZvbyciKTsKKyAgICBldmFsQW5kTG9nKCJ0ZXN0X2RhdGFbMV0gPSAn
YmFyJyIpOworICAgIGV2YWxBbmRMb2coInRlc3RfZGF0YVsxMF0gPSB0cnVlIik7CisgICAgZXZh
bEFuZExvZygidGVzdF9kYXRhWzExXSA9IGZhbHNlIik7CisgICAgZXZhbEFuZExvZygidGVzdF9k
YXRhWzIwXSA9IDEyMyIpOworICAgIGV2YWxBbmRMb2coInRlc3RfZGF0YVsyMV0gPSA0NTYiKTsK
KyAgICBldmFsQW5kTG9nKCJ0ZXN0X2RhdGFbMzBdID0gbnVsbCIpOworCisgICAgdGVzdFZhbHVl
KHRlc3RfZGF0YSwgZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgICAgIHdpbmRvdy5yZXN1bHQgPSBy
ZXN1bHQ7CisgICAgICAgIHNob3VsZEJlVHJ1ZSgidGVzdF9kYXRhICE9PSByZXN1bHQiKTsKKyAg
ICAgICAgc2hvdWxkQmVUcnVlKCJ0ZXN0X2RhdGEubGVuZ3RoID09PSByZXN1bHQubGVuZ3RoIik7
CisgICAgICAgIE9iamVjdC5rZXlzKHRlc3RfZGF0YSkuZm9yRWFjaCgKKyAgICAgICAgICAgIGZ1
bmN0aW9uKGtleSkgeworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJ0ZXN0X2RhdGFbIiArIGtl
eSArICJdIiwgInJlc3VsdFsiICsga2V5ICsgIl0iKTsKKyAgICAgICAgICAgIH0pOworICAgICAg
ICBjYWxsYmFjaygpOworICAgIH0pOworfQorCitmdW5jdGlvbiB0ZXN0T2JqZWN0KGNhbGxiYWNr
KSB7CisgICAgZGVidWcoIlRlc3RpbmcgT2JqZWN0Iik7CisgICAgZXZhbEFuZExvZygidGVzdF9k
YXRhID0gW10iKTsKKyAgICBldmFsQW5kTG9nKCJ0ZXN0X2RhdGFbMF0gPSAnZm9vJyIpOworICAg
IGV2YWxBbmRMb2coInRlc3RfZGF0YVsxXSA9ICdiYXInIik7CisgICAgZXZhbEFuZExvZygidGVz
dF9kYXRhWydhJ10gPSB0cnVlIik7CisgICAgZXZhbEFuZExvZygidGVzdF9kYXRhWydiJ10gPSBm
YWxzZSIpOworICAgIGV2YWxBbmRMb2coInRlc3RfZGF0YVsnZm9vJ10gPSAxMjMiKTsKKyAgICBl
dmFsQW5kTG9nKCJ0ZXN0X2RhdGFbJ2JhciddID0gNDU2Iik7CisgICAgZXZhbEFuZExvZygidGVz
dF9kYXRhWycnXSA9IG51bGwiKTsKKworICAgIHRlc3RWYWx1ZSh0ZXN0X2RhdGEsIGZ1bmN0aW9u
KHJlc3VsdCkgeworICAgICAgICB3aW5kb3cucmVzdWx0ID0gcmVzdWx0OworICAgICAgICBzaG91
bGRCZVRydWUoInRlc3RfZGF0YSAhPT0gcmVzdWx0Iik7CisgICAgICAgIHNob3VsZEJlVHJ1ZSgi
YXJyYXlDb21wYXJlKE9iamVjdC5rZXlzKHJlc3VsdCkuc29ydCgpLCBPYmplY3Qua2V5cyh0ZXN0
X2RhdGEpLnNvcnQoKSkiKTsKKyAgICAgICAgT2JqZWN0LmtleXModGVzdF9kYXRhKS5mb3JFYWNo
KAorICAgICAgICAgICAgZnVuY3Rpb24oa2V5KSB7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUo
InRlc3RfZGF0YVsiICsgSlNPTi5zdHJpbmdpZnkoa2V5KSArICJdIiwgInJlc3VsdFsiICsgSlNP
Ti5zdHJpbmdpZnkoa2V5KSArICJdIik7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgY2FsbGJh
Y2soKTsKKyAgICB9KTsKK30KKworZnVuY3Rpb24gdGVzdEJhZFR5cGVzKCkKK3sKKyAgICBkZWJ1
ZygiIik7CisgICAgZGVidWcoIlRlc3QgdHlwZXMgdGhhdCBjYW4ndCBiZSBjbG9uZWQ6Iik7Cisg
ICAgZGVidWcoIiIpOworCisgICAgZXZhbEFuZExvZygidHJhbnNhY3Rpb24gPSBkYi50cmFuc2Fj
dGlvbignc3RvcmVOYW1lJywgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkiKTsKKyAgICBldmFs
QW5kTG9nKCJzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKSIpOwor
ICAgIHRyYW5zYWN0aW9uLm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKKyAgICB0
cmFuc2FjdGlvbi5vbmNvbXBsZXRlID0gdW5leHBlY3RlZENvbXBsZXRlQ2FsbGJhY2s7CisgICAg
dHJhbnNhY3Rpb24ub25hYm9ydCA9IGRvbmU7CisKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWco
Ik90aGVyIEphdmFTY3JpcHQgb2JqZWN0IHR5cGVzOiIpOworICAgIGV2YWxBbmRFeHBlY3RFeGNl
cHRpb24oInN0b3JlLnB1dChuZXcgRXJyb3IsICdrZXknKSIsICJET01FeGNlcHRpb24uREFUQV9D
TE9ORV9FUlIiKTsKKyAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJzdG9yZS5wdXQobmV3IEZ1
bmN0aW9uLCAna2V5JykiLCAiRE9NRXhjZXB0aW9uLkRBVEFfQ0xPTkVfRVJSIik7CisKKyAgICBk
ZWJ1ZygiIik7CisgICAgZGVidWcoIk90aGVyIGhvc3Qgb2JqZWN0IHR5cGVzOiIpOworICAgIGV2
YWxBbmRFeHBlY3RFeGNlcHRpb24oInN0b3JlLnB1dCh3aW5kb3csICdrZXknKSIsICJET01FeGNl
cHRpb24uREFUQV9DTE9ORV9FUlIiKTsKKyAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJzdG9y
ZS5wdXQoZG9jdW1lbnQsICdrZXknKSIsICJET01FeGNlcHRpb24uREFUQV9DTE9ORV9FUlIiKTsK
KyAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJzdG9yZS5wdXQoZG9jdW1lbnQuYm9keSwgJ2tl
eScpIiwgIkRPTUV4Y2VwdGlvbi5EQVRBX0NMT05FX0VSUiIpOworfQorCit0ZXN0KCk7CisKKzwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>124227</attachid>
            <date>2012-01-26 17:42:34 -0800</date>
            <delta_ts>2012-01-27 12:19:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-74897-20120126174233.patch</filename>
            <type>text/plain</type>
            <size>43747</size>
            <attacher name="Joshua Bell">jsbell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1OTk4CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggM2QxZmEwYmU5ZTZhMWIxYmExZGEz
MDU5YTY3YmQ2OWFlODAyOTIyMS4uMDk4MTkzZmNhNDYwYTdmY2FjNGE3MDNiZDBkNzVhYjU5YWVi
YWQ3ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEyLTAxLTE5ICBKb3NodWEgQmVsbCAgPGpz
YmVsbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhlZERCOiBBZGQgdGVzdHMgZm9yIHN0
cnVjdHVyZWQgY2xvbmUgZGF0YQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NzQ4OTcKKworICAgICAgICBWYWxpZGF0ZSB0aGF0IHRoZSB0eXBlcyBsaXN0
ZWQgaW4gdGhlIEhUTUw1ICJzdHJ1Y3R1cmVkIGNsb25lIGFsZ29yaXRobSIKKyAgICAgICAgcm91
bmQgdHJpcCBwcm9wZXJseSB0aHJvdWdoIEluZGV4ZWQgREIgc3RvcmFnZS4gVHlwZXMgd2l0aCBp
bmNvbXBsZXRlCisgICAgICAgIHN1cHBvcnQgaW4gdGhlIENocm9taXVtIHBvcnQgYXJlIGV4Y2x1
ZGVkIChodHRwOi8vY3JidWcuY29tLzEwODAxMikKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy90ZXN0
LWRhdGEuaHRtbDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2Vz
L3Rlc3QtZGF0YS50eHQ6IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3N0cnVj
dHVyZWQtY2xvbmUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2luZGV4
ZWRkYi9zdHJ1Y3R1cmVkLWNsb25lLmh0bWw6IEFkZGVkLgorCiAyMDEyLTAxLTI2ICBBbnRvbiBN
dWhpbiAgPGFudG9ubUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgQW5vdGhlciB1bnJldmlld2Vk
IHJlYmFzZWxpbmUuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9y
ZXNvdXJjZXMvdGVzdC1kYXRhLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9y
ZXNvdXJjZXMvdGVzdC1kYXRhLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzViZGIyOGFkNTkyYWUyZmFmOGM3
YTkzYzczY2UwMmJjZjIwZmQwMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL3Jlc291cmNlcy90ZXN0LWRhdGEuaHRtbApAQCAtMCwwICsxLDQgQEAKKzwh
RE9DVFlQRSBodG1sPgorPHRpdGxlPlRoaXMgaXMgc29tZSB0ZXN0IGRhdGE8L3RpdGxlPgorPGgx
PlRlc3QgZGF0YSE8L2gxPgorPHA+R2V0IHlvdXIgdGVzdCBkYXRhIGhlcmUhCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvdGVzdC1kYXRhLnR4dCBi
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy90ZXN0LWRhdGEudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmRlZTNhMmQzYzdlNmExNzZmYWNhN2U1MDg3NTg2MmQ0MWI3ZDNlY2UKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvdGVz
dC1kYXRhLnR4dApAQCAtMCwwICsxIEBACitMb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29u
c2VjdGV0dXIgYWRpcGlzY2luZyBlbGl0LiBBZW5lYW4gbGFvcmVldCBkb2xvciBpZCB1cm5hIGVs
ZWlmZW5kIGFsaXF1ZXQuIE51bGxhIHZlbCBkb2xvciBpcHN1bS4gQWxpcXVhbSB1dCB0dXJwaXMg
bmlzbCwgaW4gdnVscHV0YXRlIHNhcGllbi4gQ3VtIHNvY2lpcyBuYXRvcXVlIHBlbmF0aWJ1cyBl
dCBtYWduaXMgZGlzIHBhcnR1cmllbnQgbW9udGVzLCBuYXNjZXR1ciByaWRpY3VsdXMgbXVzLiBT
ZWQgY29uZ3VlIG1hZ25hIHZpdGFlIGRvbG9yIGZldWdpYXQgdmVoaWN1bGEuIFNlZCB2b2x1dHBh
dCwgdGVsbHVzIHZlbCB2YXJpdXMgdmVzdGlidWx1bSwgcHVydXMgcXVhbSBtb2xsaXMgc2FwaWVu
LCBpbiBjb25kaW1lbnR1bSBsZW8gbmVxdWUgc2VkIG51bGxhLiBOdW5jIHF1aXMgcG9ydGEgZWxp
dC4gUGVsbGVudGVzcXVlIGVyYXQgbGVjdHVzLCB1bHRyaWNpZXMgYSBsb2JvcnRpcyBpZCwgZmF1
Y2lidXMgaWQgcXVhbS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L3N0cnVjdHVyZWQtY2xvbmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvc3RydWN0dXJlZC1jbG9uZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDM1NDcyODNh
MGM1OWYzYTg2YmI5OTlmNDE4MDNlZTQzNGM2YTY5MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3N0cnVjdHVyZWQtY2xvbmUtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsNjgzIEBACisKK1Rlc3Qgc3RydWN0dXJlZCBjbG9uZSBwZXJtdXRhdGlvbnMgaW4g
SW5kZXhlZERCLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworaW5kZXhlZERCID0g
d2luZG93LmluZGV4ZWREQiB8fCB3aW5kb3cud2Via2l0SW5kZXhlZERCCitQQVNTIGluZGV4ZWRE
QiAhPSBudWxsIGlzIHRydWUKK0lEQlRyYW5zYWN0aW9uID0gd2luZG93LklEQlRyYW5zYWN0aW9u
IHx8IHdpbmRvdy53ZWJraXRJREJUcmFuc2FjdGlvbgorUEFTUyBJREJUcmFuc2FjdGlvbiAhPSBu
dWxsIGlzIHRydWUKKworUHJlcGFyZSBEYXRhYmFzZQoraW5kZXhlZERCLmRlbGV0ZURhdGFiYXNl
KCdzdHJ1Y3R1cmVkLWNsb25lJykKK2luZGV4ZWREQi5vcGVuKCdzdHJ1Y3R1cmVkLWNsb25lJykK
K2RiID0gcmVxdWVzdC5yZXN1bHQKK1BBU1MgZGIudmVyc2lvbiBpcyAiIgorZGIuc2V0VmVyc2lv
bignMScpCitkYi5jcmVhdGVPYmplY3RTdG9yZSgnc3RvcmVOYW1lJykKKworUnVubmluZyB0ZXN0
cy4uLgorCitUZXN0aW5nOiB1bmRlZmluZWQKK3RyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24o
J3N0b3JlTmFtZScsIElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUpCitzdG9yZSA9IHRyYW5zYWN0
aW9uLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKQordmFsdWUgaXM6IHVuZGVmaW5lZCAodHlwZTog
dW5kZWZpbmVkKQorc3RvcmUucHV0KHZhbHVlLCAna2V5JykKK3N0b3JlLmdldCgna2V5JykKK1BB
U1MgaXModGVzdF9kYXRhLCByZXN1bHQpIGlzIHRydWUKKworCitUZXN0aW5nOiBudWxsCit0cmFu
c2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUnLCBJREJUcmFuc2FjdGlvbi5SRUFE
X1dSSVRFKQorc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmVOYW1lJykKK3Zh
bHVlIGlzOiBudWxsICh0eXBlOiBvYmplY3QpCitzdG9yZS5wdXQodmFsdWUsICdrZXknKQorc3Rv
cmUuZ2V0KCdrZXknKQorUEFTUyBpcyh0ZXN0X2RhdGEsIHJlc3VsdCkgaXMgdHJ1ZQorCisKK1Rl
c3RpbmcgYm9vbGVhbiBwcmltaXRpdmVzCisKK1Rlc3Rpbmc6IHRydWUKK3RyYW5zYWN0aW9uID0g
ZGIudHJhbnNhY3Rpb24oJ3N0b3JlTmFtZScsIElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUpCitz
dG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKQordmFsdWUgaXM6IHRy
dWUgKHR5cGU6IGJvb2xlYW4pCitzdG9yZS5wdXQodmFsdWUsICdrZXknKQorc3RvcmUuZ2V0KCdr
ZXknKQorUEFTUyBpcyh0ZXN0X2RhdGEsIHJlc3VsdCkgaXMgdHJ1ZQorCitUZXN0aW5nOiBmYWxz
ZQordHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1lJywgSURCVHJhbnNhY3Rp
b24uUkVBRF9XUklURSkKK3N0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3JlTmFt
ZScpCit2YWx1ZSBpczogZmFsc2UgKHR5cGU6IGJvb2xlYW4pCitzdG9yZS5wdXQodmFsdWUsICdr
ZXknKQorc3RvcmUuZ2V0KCdrZXknKQorUEFTUyBpcyh0ZXN0X2RhdGEsIHJlc3VsdCkgaXMgdHJ1
ZQorCisKK1Rlc3RpbmcgbnVtYmVyIHByaW1pdGl2ZXMKKworVGVzdGluZzogTmFOCit0cmFuc2Fj
dGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUnLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dS
SVRFKQorc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmVOYW1lJykKK3ZhbHVl
IGlzOiBOYU4gKHR5cGU6IG51bWJlcikKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5n
ZXQoJ2tleScpCitQQVNTIGlzKHRlc3RfZGF0YSwgcmVzdWx0KSBpcyB0cnVlCisKK1Rlc3Rpbmc6
IC1JbmZpbml0eQordHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1lJywgSURC
VHJhbnNhY3Rpb24uUkVBRF9XUklURSkKK3N0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUo
J3N0b3JlTmFtZScpCit2YWx1ZSBpczogLUluZmluaXR5ICh0eXBlOiBudW1iZXIpCitzdG9yZS5w
dXQodmFsdWUsICdrZXknKQorc3RvcmUuZ2V0KCdrZXknKQorUEFTUyBpcyh0ZXN0X2RhdGEsIHJl
c3VsdCkgaXMgdHJ1ZQorCitUZXN0aW5nOiAtTnVtYmVyLk1BWF9WQUxVRQordHJhbnNhY3Rpb24g
PSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1lJywgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkK
K3N0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpCit2YWx1ZSBpczog
LTEuNzk3NjkzMTM0ODYyMzE1N2UrMzA4ICh0eXBlOiBudW1iZXIpCitzdG9yZS5wdXQodmFsdWUs
ICdrZXknKQorc3RvcmUuZ2V0KCdrZXknKQorUEFTUyBpcyh0ZXN0X2RhdGEsIHJlc3VsdCkgaXMg
dHJ1ZQorCitUZXN0aW5nOiAtTnVtYmVyLk1JTl9WQUxVRQordHJhbnNhY3Rpb24gPSBkYi50cmFu
c2FjdGlvbignc3RvcmVOYW1lJywgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkKK3N0b3JlID0g
dHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpCit2YWx1ZSBpczogLTVlLTMyNCAo
dHlwZTogbnVtYmVyKQorc3RvcmUucHV0KHZhbHVlLCAna2V5JykKK3N0b3JlLmdldCgna2V5JykK
K1BBU1MgaXModGVzdF9kYXRhLCByZXN1bHQpIGlzIHRydWUKKworVGVzdGluZzogLTAKK3RyYW5z
YWN0aW9uID0gZGIudHJhbnNhY3Rpb24oJ3N0b3JlTmFtZScsIElEQlRyYW5zYWN0aW9uLlJFQURf
V1JJVEUpCitzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKQordmFs
dWUgaXM6IDAgKHR5cGU6IG51bWJlcikKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5n
ZXQoJ2tleScpCitQQVNTIGlzKHRlc3RfZGF0YSwgcmVzdWx0KSBpcyB0cnVlCisKK1Rlc3Rpbmc6
IDAKK3RyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24oJ3N0b3JlTmFtZScsIElEQlRyYW5zYWN0
aW9uLlJFQURfV1JJVEUpCitzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZU5h
bWUnKQordmFsdWUgaXM6IDAgKHR5cGU6IG51bWJlcikKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScp
CitzdG9yZS5nZXQoJ2tleScpCitQQVNTIGlzKHRlc3RfZGF0YSwgcmVzdWx0KSBpcyB0cnVlCisK
K1Rlc3Rpbmc6IE51bWJlci5NSU5fVkFMVUUKK3RyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24o
J3N0b3JlTmFtZScsIElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUpCitzdG9yZSA9IHRyYW5zYWN0
aW9uLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKQordmFsdWUgaXM6IDVlLTMyNCAodHlwZTogbnVt
YmVyKQorc3RvcmUucHV0KHZhbHVlLCAna2V5JykKK3N0b3JlLmdldCgna2V5JykKK1BBU1MgaXMo
dGVzdF9kYXRhLCByZXN1bHQpIGlzIHRydWUKKworVGVzdGluZzogTnVtYmVyLk1BWF9WQUxVRQor
dHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1lJywgSURCVHJhbnNhY3Rpb24u
UkVBRF9XUklURSkKK3N0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScp
Cit2YWx1ZSBpczogMS43OTc2OTMxMzQ4NjIzMTU3ZSszMDggKHR5cGU6IG51bWJlcikKK3N0b3Jl
LnB1dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5nZXQoJ2tleScpCitQQVNTIGlzKHRlc3RfZGF0YSwg
cmVzdWx0KSBpcyB0cnVlCisKK1Rlc3Rpbmc6IEluZmluaXR5Cit0cmFuc2FjdGlvbiA9IGRiLnRy
YW5zYWN0aW9uKCdzdG9yZU5hbWUnLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKQorc3RvcmUg
PSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmVOYW1lJykKK3ZhbHVlIGlzOiBJbmZpbml0
eSAodHlwZTogbnVtYmVyKQorc3RvcmUucHV0KHZhbHVlLCAna2V5JykKK3N0b3JlLmdldCgna2V5
JykKK1BBU1MgaXModGVzdF9kYXRhLCByZXN1bHQpIGlzIHRydWUKKworCitUZXN0aW5nIHN0cmlu
ZyBwcmltaXRpdmVzCisKK1Rlc3Rpbmc6ICcnCit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9u
KCdzdG9yZU5hbWUnLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFuc2Fj
dGlvbi5vYmplY3RTdG9yZSgnc3RvcmVOYW1lJykKK3ZhbHVlIGlzOiAgKHR5cGU6IHN0cmluZykK
K3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5nZXQoJ2tleScpCitQQVNTIGlzKHRlc3Rf
ZGF0YSwgcmVzdWx0KSBpcyB0cnVlCisKK1Rlc3Rpbmc6ICd0aGlzIGlzIGEgc2FtcGxlIHN0cmlu
ZycKK3RyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24oJ3N0b3JlTmFtZScsIElEQlRyYW5zYWN0
aW9uLlJFQURfV1JJVEUpCitzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZU5h
bWUnKQordmFsdWUgaXM6IHRoaXMgaXMgYSBzYW1wbGUgc3RyaW5nICh0eXBlOiBzdHJpbmcpCitz
dG9yZS5wdXQodmFsdWUsICdrZXknKQorc3RvcmUuZ2V0KCdrZXknKQorUEFTUyBpcyh0ZXN0X2Rh
dGEsIHJlc3VsdCkgaXMgdHJ1ZQorCitUZXN0aW5nOiAnbnVsbChcMCknCit0cmFuc2FjdGlvbiA9
IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUnLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKQor
c3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmVOYW1lJykKK3ZhbHVlIGlzOiBu
dWxsKCkgKHR5cGU6IHN0cmluZykKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5nZXQo
J2tleScpCitQQVNTIGlzKHRlc3RfZGF0YSwgcmVzdWx0KSBpcyB0cnVlCisKKworVGVzdGluZyBC
b29sZWFuIG9iamVjdHMKKworVGVzdGluZzogbmV3IEJvb2xlYW4odHJ1ZSkKK3RyYW5zYWN0aW9u
ID0gZGIudHJhbnNhY3Rpb24oJ3N0b3JlTmFtZScsIElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUp
CitzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKQordmFsdWUgaXM6
IHRydWUgKHR5cGU6IG9iamVjdCkKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5nZXQo
J2tleScpCitTdHJpbmcocmVzdWx0KTogdHJ1ZQorUEFTUyB0eXBlb2YgcmVzdWx0IGlzICJvYmpl
Y3QiCitQQVNTIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChyZXN1bHQpIGlzIE9iamVj
dC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0ZXN0X2RhdGEpCitQQVNTIHRlc3RfZGF0YSAhPT0g
cmVzdWx0IGlzIHRydWUKK1BBU1MgcmVzdWx0LnRvU3RyaW5nKCkgaXMgdGVzdF9kYXRhLnRvU3Ry
aW5nKCkKK1BBU1MgaXModGVzdF9kYXRhLnZhbHVlT2YoKSwgcmVzdWx0LnZhbHVlT2YoKSkgaXMg
dHJ1ZQorCitUZXN0aW5nOiBuZXcgQm9vbGVhbihmYWxzZSkKK3RyYW5zYWN0aW9uID0gZGIudHJh
bnNhY3Rpb24oJ3N0b3JlTmFtZScsIElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUpCitzdG9yZSA9
IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKQordmFsdWUgaXM6IGZhbHNlICh0
eXBlOiBvYmplY3QpCitzdG9yZS5wdXQodmFsdWUsICdrZXknKQorc3RvcmUuZ2V0KCdrZXknKQor
U3RyaW5nKHJlc3VsdCk6IGZhbHNlCitQQVNTIHR5cGVvZiByZXN1bHQgaXMgIm9iamVjdCIKK1BB
U1MgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHJlc3VsdCkgaXMgT2JqZWN0LnByb3Rv
dHlwZS50b1N0cmluZy5jYWxsKHRlc3RfZGF0YSkKK1BBU1MgdGVzdF9kYXRhICE9PSByZXN1bHQg
aXMgdHJ1ZQorUEFTUyByZXN1bHQudG9TdHJpbmcoKSBpcyB0ZXN0X2RhdGEudG9TdHJpbmcoKQor
UEFTUyBpcyh0ZXN0X2RhdGEudmFsdWVPZigpLCByZXN1bHQudmFsdWVPZigpKSBpcyB0cnVlCisK
KworVGVzdGluZyBOdW1iZXIgb2JqZWN0cworCitUZXN0aW5nOiBuZXcgTnVtYmVyKE5hTikKK3Ry
YW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24oJ3N0b3JlTmFtZScsIElEQlRyYW5zYWN0aW9uLlJF
QURfV1JJVEUpCitzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKQor
dmFsdWUgaXM6IE5hTiAodHlwZTogb2JqZWN0KQorc3RvcmUucHV0KHZhbHVlLCAna2V5JykKK3N0
b3JlLmdldCgna2V5JykKK1N0cmluZyhyZXN1bHQpOiBOYU4KK1BBU1MgdHlwZW9mIHJlc3VsdCBp
cyAib2JqZWN0IgorUEFTUyBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwocmVzdWx0KSBp
cyBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodGVzdF9kYXRhKQorUEFTUyB0ZXN0X2Rh
dGEgIT09IHJlc3VsdCBpcyB0cnVlCitQQVNTIHJlc3VsdC50b1N0cmluZygpIGlzIHRlc3RfZGF0
YS50b1N0cmluZygpCitQQVNTIGlzKHRlc3RfZGF0YS52YWx1ZU9mKCksIHJlc3VsdC52YWx1ZU9m
KCkpIGlzIHRydWUKKworVGVzdGluZzogbmV3IE51bWJlcigtSW5maW5pdHkpCit0cmFuc2FjdGlv
biA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUnLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRF
KQorc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmVOYW1lJykKK3ZhbHVlIGlz
OiAtSW5maW5pdHkgKHR5cGU6IG9iamVjdCkKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScpCitzdG9y
ZS5nZXQoJ2tleScpCitTdHJpbmcocmVzdWx0KTogLUluZmluaXR5CitQQVNTIHR5cGVvZiByZXN1
bHQgaXMgIm9iamVjdCIKK1BBU1MgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHJlc3Vs
dCkgaXMgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHRlc3RfZGF0YSkKK1BBU1MgdGVz
dF9kYXRhICE9PSByZXN1bHQgaXMgdHJ1ZQorUEFTUyByZXN1bHQudG9TdHJpbmcoKSBpcyB0ZXN0
X2RhdGEudG9TdHJpbmcoKQorUEFTUyBpcyh0ZXN0X2RhdGEudmFsdWVPZigpLCByZXN1bHQudmFs
dWVPZigpKSBpcyB0cnVlCisKK1Rlc3Rpbmc6IG5ldyBOdW1iZXIoLU51bWJlci5NQVhfVkFMVUUp
Cit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUnLCBJREJUcmFuc2FjdGlv
bi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmVOYW1l
JykKK3ZhbHVlIGlzOiAtMS43OTc2OTMxMzQ4NjIzMTU3ZSszMDggKHR5cGU6IG9iamVjdCkKK3N0
b3JlLnB1dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5nZXQoJ2tleScpCitTdHJpbmcocmVzdWx0KTog
LTEuNzk3NjkzMTM0ODYyMzE1N2UrMzA4CitQQVNTIHR5cGVvZiByZXN1bHQgaXMgIm9iamVjdCIK
K1BBU1MgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHJlc3VsdCkgaXMgT2JqZWN0LnBy
b3RvdHlwZS50b1N0cmluZy5jYWxsKHRlc3RfZGF0YSkKK1BBU1MgdGVzdF9kYXRhICE9PSByZXN1
bHQgaXMgdHJ1ZQorUEFTUyByZXN1bHQudG9TdHJpbmcoKSBpcyB0ZXN0X2RhdGEudG9TdHJpbmco
KQorUEFTUyBpcyh0ZXN0X2RhdGEudmFsdWVPZigpLCByZXN1bHQudmFsdWVPZigpKSBpcyB0cnVl
CisKK1Rlc3Rpbmc6IG5ldyBOdW1iZXIoLU51bWJlci5NSU5fVkFMVUUpCit0cmFuc2FjdGlvbiA9
IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUnLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKQor
c3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmVOYW1lJykKK3ZhbHVlIGlzOiAt
NWUtMzI0ICh0eXBlOiBvYmplY3QpCitzdG9yZS5wdXQodmFsdWUsICdrZXknKQorc3RvcmUuZ2V0
KCdrZXknKQorU3RyaW5nKHJlc3VsdCk6IC01ZS0zMjQKK1BBU1MgdHlwZW9mIHJlc3VsdCBpcyAi
b2JqZWN0IgorUEFTUyBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwocmVzdWx0KSBpcyBP
YmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodGVzdF9kYXRhKQorUEFTUyB0ZXN0X2RhdGEg
IT09IHJlc3VsdCBpcyB0cnVlCitQQVNTIHJlc3VsdC50b1N0cmluZygpIGlzIHRlc3RfZGF0YS50
b1N0cmluZygpCitQQVNTIGlzKHRlc3RfZGF0YS52YWx1ZU9mKCksIHJlc3VsdC52YWx1ZU9mKCkp
IGlzIHRydWUKKworVGVzdGluZzogbmV3IE51bWJlcigtMCkKK3RyYW5zYWN0aW9uID0gZGIudHJh
bnNhY3Rpb24oJ3N0b3JlTmFtZScsIElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUpCitzdG9yZSA9
IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKQordmFsdWUgaXM6IDAgKHR5cGU6
IG9iamVjdCkKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5nZXQoJ2tleScpCitTdHJp
bmcocmVzdWx0KTogMAorUEFTUyB0eXBlb2YgcmVzdWx0IGlzICJvYmplY3QiCitQQVNTIE9iamVj
dC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChyZXN1bHQpIGlzIE9iamVjdC5wcm90b3R5cGUudG9T
dHJpbmcuY2FsbCh0ZXN0X2RhdGEpCitQQVNTIHRlc3RfZGF0YSAhPT0gcmVzdWx0IGlzIHRydWUK
K1BBU1MgcmVzdWx0LnRvU3RyaW5nKCkgaXMgdGVzdF9kYXRhLnRvU3RyaW5nKCkKK1BBU1MgaXMo
dGVzdF9kYXRhLnZhbHVlT2YoKSwgcmVzdWx0LnZhbHVlT2YoKSkgaXMgdHJ1ZQorCitUZXN0aW5n
OiBuZXcgTnVtYmVyKDApCit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUn
LCBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RT
dG9yZSgnc3RvcmVOYW1lJykKK3ZhbHVlIGlzOiAwICh0eXBlOiBvYmplY3QpCitzdG9yZS5wdXQo
dmFsdWUsICdrZXknKQorc3RvcmUuZ2V0KCdrZXknKQorU3RyaW5nKHJlc3VsdCk6IDAKK1BBU1Mg
dHlwZW9mIHJlc3VsdCBpcyAib2JqZWN0IgorUEFTUyBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5n
LmNhbGwocmVzdWx0KSBpcyBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodGVzdF9kYXRh
KQorUEFTUyB0ZXN0X2RhdGEgIT09IHJlc3VsdCBpcyB0cnVlCitQQVNTIHJlc3VsdC50b1N0cmlu
ZygpIGlzIHRlc3RfZGF0YS50b1N0cmluZygpCitQQVNTIGlzKHRlc3RfZGF0YS52YWx1ZU9mKCks
IHJlc3VsdC52YWx1ZU9mKCkpIGlzIHRydWUKKworVGVzdGluZzogbmV3IE51bWJlcihOdW1iZXIu
TUlOX1ZBTFVFKQordHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1lJywgSURC
VHJhbnNhY3Rpb24uUkVBRF9XUklURSkKK3N0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUo
J3N0b3JlTmFtZScpCit2YWx1ZSBpczogNWUtMzI0ICh0eXBlOiBvYmplY3QpCitzdG9yZS5wdXQo
dmFsdWUsICdrZXknKQorc3RvcmUuZ2V0KCdrZXknKQorU3RyaW5nKHJlc3VsdCk6IDVlLTMyNAor
UEFTUyB0eXBlb2YgcmVzdWx0IGlzICJvYmplY3QiCitQQVNTIE9iamVjdC5wcm90b3R5cGUudG9T
dHJpbmcuY2FsbChyZXN1bHQpIGlzIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0ZXN0
X2RhdGEpCitQQVNTIHRlc3RfZGF0YSAhPT0gcmVzdWx0IGlzIHRydWUKK1BBU1MgcmVzdWx0LnRv
U3RyaW5nKCkgaXMgdGVzdF9kYXRhLnRvU3RyaW5nKCkKK1BBU1MgaXModGVzdF9kYXRhLnZhbHVl
T2YoKSwgcmVzdWx0LnZhbHVlT2YoKSkgaXMgdHJ1ZQorCitUZXN0aW5nOiBuZXcgTnVtYmVyKE51
bWJlci5NQVhfVkFMVUUpCit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUn
LCBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RT
dG9yZSgnc3RvcmVOYW1lJykKK3ZhbHVlIGlzOiAxLjc5NzY5MzEzNDg2MjMxNTdlKzMwOCAodHlw
ZTogb2JqZWN0KQorc3RvcmUucHV0KHZhbHVlLCAna2V5JykKK3N0b3JlLmdldCgna2V5JykKK1N0
cmluZyhyZXN1bHQpOiAxLjc5NzY5MzEzNDg2MjMxNTdlKzMwOAorUEFTUyB0eXBlb2YgcmVzdWx0
IGlzICJvYmplY3QiCitQQVNTIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChyZXN1bHQp
IGlzIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0ZXN0X2RhdGEpCitQQVNTIHRlc3Rf
ZGF0YSAhPT0gcmVzdWx0IGlzIHRydWUKK1BBU1MgcmVzdWx0LnRvU3RyaW5nKCkgaXMgdGVzdF9k
YXRhLnRvU3RyaW5nKCkKK1BBU1MgaXModGVzdF9kYXRhLnZhbHVlT2YoKSwgcmVzdWx0LnZhbHVl
T2YoKSkgaXMgdHJ1ZQorCitUZXN0aW5nOiBuZXcgTnVtYmVyKEluZmluaXR5KQordHJhbnNhY3Rp
b24gPSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1lJywgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklU
RSkKK3N0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpCit2YWx1ZSBp
czogSW5maW5pdHkgKHR5cGU6IG9iamVjdCkKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScpCitzdG9y
ZS5nZXQoJ2tleScpCitTdHJpbmcocmVzdWx0KTogSW5maW5pdHkKK1BBU1MgdHlwZW9mIHJlc3Vs
dCBpcyAib2JqZWN0IgorUEFTUyBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwocmVzdWx0
KSBpcyBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodGVzdF9kYXRhKQorUEFTUyB0ZXN0
X2RhdGEgIT09IHJlc3VsdCBpcyB0cnVlCitQQVNTIHJlc3VsdC50b1N0cmluZygpIGlzIHRlc3Rf
ZGF0YS50b1N0cmluZygpCitQQVNTIGlzKHRlc3RfZGF0YS52YWx1ZU9mKCksIHJlc3VsdC52YWx1
ZU9mKCkpIGlzIHRydWUKKworCitUZXN0aW5nIFN0cmluZyBvYmplY3RzCisKK1Rlc3Rpbmc6IG5l
dyBTdHJpbmcoKQordHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1lJywgSURC
VHJhbnNhY3Rpb24uUkVBRF9XUklURSkKK3N0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUo
J3N0b3JlTmFtZScpCit2YWx1ZSBpczogICh0eXBlOiBvYmplY3QpCitzdG9yZS5wdXQodmFsdWUs
ICdrZXknKQorc3RvcmUuZ2V0KCdrZXknKQorU3RyaW5nKHJlc3VsdCk6IAorUEFTUyB0eXBlb2Yg
cmVzdWx0IGlzICJvYmplY3QiCitQQVNTIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChy
ZXN1bHQpIGlzIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0ZXN0X2RhdGEpCitQQVNT
IHRlc3RfZGF0YSAhPT0gcmVzdWx0IGlzIHRydWUKK1BBU1MgcmVzdWx0LnRvU3RyaW5nKCkgaXMg
dGVzdF9kYXRhLnRvU3RyaW5nKCkKK1BBU1MgaXModGVzdF9kYXRhLnZhbHVlT2YoKSwgcmVzdWx0
LnZhbHVlT2YoKSkgaXMgdHJ1ZQorCitUZXN0aW5nOiBuZXcgU3RyaW5nKCd0aGlzIGlzIGEgc2Ft
cGxlIHN0cmluZycpCit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUnLCBJ
REJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9y
ZSgnc3RvcmVOYW1lJykKK3ZhbHVlIGlzOiB0aGlzIGlzIGEgc2FtcGxlIHN0cmluZyAodHlwZTog
b2JqZWN0KQorc3RvcmUucHV0KHZhbHVlLCAna2V5JykKK3N0b3JlLmdldCgna2V5JykKK1N0cmlu
ZyhyZXN1bHQpOiB0aGlzIGlzIGEgc2FtcGxlIHN0cmluZworUEFTUyB0eXBlb2YgcmVzdWx0IGlz
ICJvYmplY3QiCitQQVNTIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChyZXN1bHQpIGlz
IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0ZXN0X2RhdGEpCitQQVNTIHRlc3RfZGF0
YSAhPT0gcmVzdWx0IGlzIHRydWUKK1BBU1MgcmVzdWx0LnRvU3RyaW5nKCkgaXMgdGVzdF9kYXRh
LnRvU3RyaW5nKCkKK1BBU1MgaXModGVzdF9kYXRhLnZhbHVlT2YoKSwgcmVzdWx0LnZhbHVlT2Yo
KSkgaXMgdHJ1ZQorCitUZXN0aW5nOiBuZXcgU3RyaW5nKCdudWxsKFwwKScpCit0cmFuc2FjdGlv
biA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUnLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRF
KQorc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmVOYW1lJykKK3ZhbHVlIGlz
OiBudWxsKCkgKHR5cGU6IG9iamVjdCkKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5n
ZXQoJ2tleScpCitTdHJpbmcocmVzdWx0KTogbnVsbCgpCitQQVNTIHR5cGVvZiByZXN1bHQgaXMg
Im9iamVjdCIKK1BBU1MgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHJlc3VsdCkgaXMg
T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHRlc3RfZGF0YSkKK1BBU1MgdGVzdF9kYXRh
ICE9PSByZXN1bHQgaXMgdHJ1ZQorUEFTUyByZXN1bHQudG9TdHJpbmcoKSBpcyB0ZXN0X2RhdGEu
dG9TdHJpbmcoKQorUEFTUyBpcyh0ZXN0X2RhdGEudmFsdWVPZigpLCByZXN1bHQudmFsdWVPZigp
KSBpcyB0cnVlCisKKworVGVzdGluZyBEYXRlIG9iamVjdHMKKworVGVzdGluZzogbmV3IERhdGUo
LTFlMTMpCit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUnLCBJREJUcmFu
c2FjdGlvbi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3Rv
cmVOYW1lJykKK3ZhbHVlIGlzOiBTdW4gRmViIDA5IDE2NTMgMjI6MTM6MjAgR01ULTA4MDAgKFBT
VCkgKHR5cGU6IG9iamVjdCkKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5nZXQoJ2tl
eScpCitTdHJpbmcocmVzdWx0KTogU3VuIEZlYiAwOSAxNjUzIDIyOjEzOjIwIEdNVC0wODAwIChQ
U1QpCitQQVNTIHR5cGVvZiByZXN1bHQgaXMgIm9iamVjdCIKK1BBU1MgT2JqZWN0LnByb3RvdHlw
ZS50b1N0cmluZy5jYWxsKHJlc3VsdCkgaXMgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxs
KHRlc3RfZGF0YSkKK1BBU1MgdGVzdF9kYXRhICE9PSByZXN1bHQgaXMgdHJ1ZQorUEFTUyByZXN1
bHQudG9TdHJpbmcoKSBpcyB0ZXN0X2RhdGEudG9TdHJpbmcoKQorUEFTUyBpcyh0ZXN0X2RhdGEu
dmFsdWVPZigpLCByZXN1bHQudmFsdWVPZigpKSBpcyB0cnVlCisKK1Rlc3Rpbmc6IG5ldyBEYXRl
KC0xZTEyKQordHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1lJywgSURCVHJh
bnNhY3Rpb24uUkVBRF9XUklURSkKK3N0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0
b3JlTmFtZScpCit2YWx1ZSBpczogU3VuIEFwciAyNCAxOTM4IDE1OjEzOjIwIEdNVC0wNzAwIChQ
RFQpICh0eXBlOiBvYmplY3QpCitzdG9yZS5wdXQodmFsdWUsICdrZXknKQorc3RvcmUuZ2V0KCdr
ZXknKQorU3RyaW5nKHJlc3VsdCk6IFN1biBBcHIgMjQgMTkzOCAxNToxMzoyMCBHTVQtMDcwMCAo
UERUKQorUEFTUyB0eXBlb2YgcmVzdWx0IGlzICJvYmplY3QiCitQQVNTIE9iamVjdC5wcm90b3R5
cGUudG9TdHJpbmcuY2FsbChyZXN1bHQpIGlzIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2Fs
bCh0ZXN0X2RhdGEpCitQQVNTIHRlc3RfZGF0YSAhPT0gcmVzdWx0IGlzIHRydWUKK1BBU1MgcmVz
dWx0LnRvU3RyaW5nKCkgaXMgdGVzdF9kYXRhLnRvU3RyaW5nKCkKK1BBU1MgaXModGVzdF9kYXRh
LnZhbHVlT2YoKSwgcmVzdWx0LnZhbHVlT2YoKSkgaXMgdHJ1ZQorCitUZXN0aW5nOiBuZXcgRGF0
ZSgtMWU5KQordHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1lJywgSURCVHJh
bnNhY3Rpb24uUkVBRF9XUklURSkKK3N0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0
b3JlTmFtZScpCit2YWx1ZSBpczogU2F0IERlYyAyMCAxOTY5IDAyOjEzOjIwIEdNVC0wODAwIChQ
U1QpICh0eXBlOiBvYmplY3QpCitzdG9yZS5wdXQodmFsdWUsICdrZXknKQorc3RvcmUuZ2V0KCdr
ZXknKQorU3RyaW5nKHJlc3VsdCk6IFNhdCBEZWMgMjAgMTk2OSAwMjoxMzoyMCBHTVQtMDgwMCAo
UFNUKQorUEFTUyB0eXBlb2YgcmVzdWx0IGlzICJvYmplY3QiCitQQVNTIE9iamVjdC5wcm90b3R5
cGUudG9TdHJpbmcuY2FsbChyZXN1bHQpIGlzIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2Fs
bCh0ZXN0X2RhdGEpCitQQVNTIHRlc3RfZGF0YSAhPT0gcmVzdWx0IGlzIHRydWUKK1BBU1MgcmVz
dWx0LnRvU3RyaW5nKCkgaXMgdGVzdF9kYXRhLnRvU3RyaW5nKCkKK1BBU1MgaXModGVzdF9kYXRh
LnZhbHVlT2YoKSwgcmVzdWx0LnZhbHVlT2YoKSkgaXMgdHJ1ZQorCitUZXN0aW5nOiBuZXcgRGF0
ZSgtMWU2KQordHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1lJywgSURCVHJh
bnNhY3Rpb24uUkVBRF9XUklURSkKK3N0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0
b3JlTmFtZScpCit2YWx1ZSBpczogV2VkIERlYyAzMSAxOTY5IDE1OjQzOjIwIEdNVC0wODAwIChQ
U1QpICh0eXBlOiBvYmplY3QpCitzdG9yZS5wdXQodmFsdWUsICdrZXknKQorc3RvcmUuZ2V0KCdr
ZXknKQorU3RyaW5nKHJlc3VsdCk6IFdlZCBEZWMgMzEgMTk2OSAxNTo0MzoyMCBHTVQtMDgwMCAo
UFNUKQorUEFTUyB0eXBlb2YgcmVzdWx0IGlzICJvYmplY3QiCitQQVNTIE9iamVjdC5wcm90b3R5
cGUudG9TdHJpbmcuY2FsbChyZXN1bHQpIGlzIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2Fs
bCh0ZXN0X2RhdGEpCitQQVNTIHRlc3RfZGF0YSAhPT0gcmVzdWx0IGlzIHRydWUKK1BBU1MgcmVz
dWx0LnRvU3RyaW5nKCkgaXMgdGVzdF9kYXRhLnRvU3RyaW5nKCkKK1BBU1MgaXModGVzdF9kYXRh
LnZhbHVlT2YoKSwgcmVzdWx0LnZhbHVlT2YoKSkgaXMgdHJ1ZQorCitUZXN0aW5nOiBuZXcgRGF0
ZSgtMWUzKQordHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1lJywgSURCVHJh
bnNhY3Rpb24uUkVBRF9XUklURSkKK3N0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0
b3JlTmFtZScpCit2YWx1ZSBpczogV2VkIERlYyAzMSAxOTY5IDE1OjU5OjU5IEdNVC0wODAwIChQ
U1QpICh0eXBlOiBvYmplY3QpCitzdG9yZS5wdXQodmFsdWUsICdrZXknKQorc3RvcmUuZ2V0KCdr
ZXknKQorU3RyaW5nKHJlc3VsdCk6IFdlZCBEZWMgMzEgMTk2OSAxNTo1OTo1OSBHTVQtMDgwMCAo
UFNUKQorUEFTUyB0eXBlb2YgcmVzdWx0IGlzICJvYmplY3QiCitQQVNTIE9iamVjdC5wcm90b3R5
cGUudG9TdHJpbmcuY2FsbChyZXN1bHQpIGlzIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2Fs
bCh0ZXN0X2RhdGEpCitQQVNTIHRlc3RfZGF0YSAhPT0gcmVzdWx0IGlzIHRydWUKK1BBU1MgcmVz
dWx0LnRvU3RyaW5nKCkgaXMgdGVzdF9kYXRhLnRvU3RyaW5nKCkKK1BBU1MgaXModGVzdF9kYXRh
LnZhbHVlT2YoKSwgcmVzdWx0LnZhbHVlT2YoKSkgaXMgdHJ1ZQorCitUZXN0aW5nOiBuZXcgRGF0
ZSgwKQordHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1lJywgSURCVHJhbnNh
Y3Rpb24uUkVBRF9XUklURSkKK3N0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3Jl
TmFtZScpCit2YWx1ZSBpczogV2VkIERlYyAzMSAxOTY5IDE2OjAwOjAwIEdNVC0wODAwIChQU1Qp
ICh0eXBlOiBvYmplY3QpCitzdG9yZS5wdXQodmFsdWUsICdrZXknKQorc3RvcmUuZ2V0KCdrZXkn
KQorU3RyaW5nKHJlc3VsdCk6IFdlZCBEZWMgMzEgMTk2OSAxNjowMDowMCBHTVQtMDgwMCAoUFNU
KQorUEFTUyB0eXBlb2YgcmVzdWx0IGlzICJvYmplY3QiCitQQVNTIE9iamVjdC5wcm90b3R5cGUu
dG9TdHJpbmcuY2FsbChyZXN1bHQpIGlzIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0
ZXN0X2RhdGEpCitQQVNTIHRlc3RfZGF0YSAhPT0gcmVzdWx0IGlzIHRydWUKK1BBU1MgcmVzdWx0
LnRvU3RyaW5nKCkgaXMgdGVzdF9kYXRhLnRvU3RyaW5nKCkKK1BBU1MgaXModGVzdF9kYXRhLnZh
bHVlT2YoKSwgcmVzdWx0LnZhbHVlT2YoKSkgaXMgdHJ1ZQorCitUZXN0aW5nOiBuZXcgRGF0ZSgx
ZTMpCit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUnLCBJREJUcmFuc2Fj
dGlvbi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmVO
YW1lJykKK3ZhbHVlIGlzOiBXZWQgRGVjIDMxIDE5NjkgMTY6MDA6MDEgR01ULTA4MDAgKFBTVCkg
KHR5cGU6IG9iamVjdCkKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5nZXQoJ2tleScp
CitTdHJpbmcocmVzdWx0KTogV2VkIERlYyAzMSAxOTY5IDE2OjAwOjAxIEdNVC0wODAwIChQU1Qp
CitQQVNTIHR5cGVvZiByZXN1bHQgaXMgIm9iamVjdCIKK1BBU1MgT2JqZWN0LnByb3RvdHlwZS50
b1N0cmluZy5jYWxsKHJlc3VsdCkgaXMgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHRl
c3RfZGF0YSkKK1BBU1MgdGVzdF9kYXRhICE9PSByZXN1bHQgaXMgdHJ1ZQorUEFTUyByZXN1bHQu
dG9TdHJpbmcoKSBpcyB0ZXN0X2RhdGEudG9TdHJpbmcoKQorUEFTUyBpcyh0ZXN0X2RhdGEudmFs
dWVPZigpLCByZXN1bHQudmFsdWVPZigpKSBpcyB0cnVlCisKK1Rlc3Rpbmc6IG5ldyBEYXRlKDFl
NikKK3RyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24oJ3N0b3JlTmFtZScsIElEQlRyYW5zYWN0
aW9uLlJFQURfV1JJVEUpCitzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZU5h
bWUnKQordmFsdWUgaXM6IFdlZCBEZWMgMzEgMTk2OSAxNjoxNjo0MCBHTVQtMDgwMCAoUFNUKSAo
dHlwZTogb2JqZWN0KQorc3RvcmUucHV0KHZhbHVlLCAna2V5JykKK3N0b3JlLmdldCgna2V5JykK
K1N0cmluZyhyZXN1bHQpOiBXZWQgRGVjIDMxIDE5NjkgMTY6MTY6NDAgR01ULTA4MDAgKFBTVCkK
K1BBU1MgdHlwZW9mIHJlc3VsdCBpcyAib2JqZWN0IgorUEFTUyBPYmplY3QucHJvdG90eXBlLnRv
U3RyaW5nLmNhbGwocmVzdWx0KSBpcyBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodGVz
dF9kYXRhKQorUEFTUyB0ZXN0X2RhdGEgIT09IHJlc3VsdCBpcyB0cnVlCitQQVNTIHJlc3VsdC50
b1N0cmluZygpIGlzIHRlc3RfZGF0YS50b1N0cmluZygpCitQQVNTIGlzKHRlc3RfZGF0YS52YWx1
ZU9mKCksIHJlc3VsdC52YWx1ZU9mKCkpIGlzIHRydWUKKworVGVzdGluZzogbmV3IERhdGUoMWU5
KQordHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1lJywgSURCVHJhbnNhY3Rp
b24uUkVBRF9XUklURSkKK3N0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3JlTmFt
ZScpCit2YWx1ZSBpczogTW9uIEphbiAxMiAxOTcwIDA1OjQ2OjQwIEdNVC0wODAwIChQU1QpICh0
eXBlOiBvYmplY3QpCitzdG9yZS5wdXQodmFsdWUsICdrZXknKQorc3RvcmUuZ2V0KCdrZXknKQor
U3RyaW5nKHJlc3VsdCk6IE1vbiBKYW4gMTIgMTk3MCAwNTo0Njo0MCBHTVQtMDgwMCAoUFNUKQor
UEFTUyB0eXBlb2YgcmVzdWx0IGlzICJvYmplY3QiCitQQVNTIE9iamVjdC5wcm90b3R5cGUudG9T
dHJpbmcuY2FsbChyZXN1bHQpIGlzIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0ZXN0
X2RhdGEpCitQQVNTIHRlc3RfZGF0YSAhPT0gcmVzdWx0IGlzIHRydWUKK1BBU1MgcmVzdWx0LnRv
U3RyaW5nKCkgaXMgdGVzdF9kYXRhLnRvU3RyaW5nKCkKK1BBU1MgaXModGVzdF9kYXRhLnZhbHVl
T2YoKSwgcmVzdWx0LnZhbHVlT2YoKSkgaXMgdHJ1ZQorCitUZXN0aW5nOiBuZXcgRGF0ZSgxZTEy
KQordHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1lJywgSURCVHJhbnNhY3Rp
b24uUkVBRF9XUklURSkKK3N0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3JlTmFt
ZScpCit2YWx1ZSBpczogU2F0IFNlcCAwOCAyMDAxIDE4OjQ2OjQwIEdNVC0wNzAwIChQRFQpICh0
eXBlOiBvYmplY3QpCitzdG9yZS5wdXQodmFsdWUsICdrZXknKQorc3RvcmUuZ2V0KCdrZXknKQor
U3RyaW5nKHJlc3VsdCk6IFNhdCBTZXAgMDggMjAwMSAxODo0Njo0MCBHTVQtMDcwMCAoUERUKQor
UEFTUyB0eXBlb2YgcmVzdWx0IGlzICJvYmplY3QiCitQQVNTIE9iamVjdC5wcm90b3R5cGUudG9T
dHJpbmcuY2FsbChyZXN1bHQpIGlzIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0ZXN0
X2RhdGEpCitQQVNTIHRlc3RfZGF0YSAhPT0gcmVzdWx0IGlzIHRydWUKK1BBU1MgcmVzdWx0LnRv
U3RyaW5nKCkgaXMgdGVzdF9kYXRhLnRvU3RyaW5nKCkKK1BBU1MgaXModGVzdF9kYXRhLnZhbHVl
T2YoKSwgcmVzdWx0LnZhbHVlT2YoKSkgaXMgdHJ1ZQorCitUZXN0aW5nOiBuZXcgRGF0ZSgxZTEz
KQordHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1lJywgSURCVHJhbnNhY3Rp
b24uUkVBRF9XUklURSkKK3N0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3JlTmFt
ZScpCit2YWx1ZSBpczogU2F0IE5vdiAyMCAyMjg2IDA5OjQ2OjQwIEdNVC0wODAwIChQU1QpICh0
eXBlOiBvYmplY3QpCitzdG9yZS5wdXQodmFsdWUsICdrZXknKQorc3RvcmUuZ2V0KCdrZXknKQor
U3RyaW5nKHJlc3VsdCk6IFNhdCBOb3YgMjAgMjI4NiAwOTo0Njo0MCBHTVQtMDgwMCAoUFNUKQor
UEFTUyB0eXBlb2YgcmVzdWx0IGlzICJvYmplY3QiCitQQVNTIE9iamVjdC5wcm90b3R5cGUudG9T
dHJpbmcuY2FsbChyZXN1bHQpIGlzIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0ZXN0
X2RhdGEpCitQQVNTIHRlc3RfZGF0YSAhPT0gcmVzdWx0IGlzIHRydWUKK1BBU1MgcmVzdWx0LnRv
U3RyaW5nKCkgaXMgdGVzdF9kYXRhLnRvU3RyaW5nKCkKK1BBU1MgaXModGVzdF9kYXRhLnZhbHVl
T2YoKSwgcmVzdWx0LnZhbHVlT2YoKSkgaXMgdHJ1ZQorCisKK1Rlc3RpbmcgUmVnRXhwIG9iamVj
dHMKKworVGVzdGluZyBSZWdFeHA6IG5ldyBSZWdFeHAoKQordHJhbnNhY3Rpb24gPSBkYi50cmFu
c2FjdGlvbignc3RvcmVOYW1lJywgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkKK3N0b3JlID0g
dHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpCit2YWx1ZSBpczogLyg/OikvICh0
eXBlOiBvYmplY3QpCitzdG9yZS5wdXQodmFsdWUsICdrZXknKQorc3RvcmUuZ2V0KCdrZXknKQor
UEFTUyB0ZXN0X2RhdGEgIT09IHJlc3VsdCBpcyB0cnVlCitQQVNTIE9iamVjdC5wcm90b3R5cGUu
dG9TdHJpbmcuY2FsbChyZXN1bHQpIGlzICJbb2JqZWN0IFJlZ0V4cF0iCitQQVNTIHJlc3VsdC50
b1N0cmluZygpIGlzIHRlc3RfZGF0YS50b1N0cmluZygpCisKK1Rlc3RpbmcgUmVnRXhwOiAvYWJj
LwordHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1lJywgSURCVHJhbnNhY3Rp
b24uUkVBRF9XUklURSkKK3N0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3JlTmFt
ZScpCit2YWx1ZSBpczogL2FiYy8gKHR5cGU6IG9iamVjdCkKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tl
eScpCitzdG9yZS5nZXQoJ2tleScpCitQQVNTIHRlc3RfZGF0YSAhPT0gcmVzdWx0IGlzIHRydWUK
K1BBU1MgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHJlc3VsdCkgaXMgIltvYmplY3Qg
UmVnRXhwXSIKK1BBU1MgcmVzdWx0LnRvU3RyaW5nKCkgaXMgdGVzdF9kYXRhLnRvU3RyaW5nKCkK
KworVGVzdGluZyBSZWdFeHA6IC9hYmMvZwordHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbign
c3RvcmVOYW1lJywgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkKK3N0b3JlID0gdHJhbnNhY3Rp
b24ub2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpCit2YWx1ZSBpczogL2FiYy9nICh0eXBlOiBvYmpl
Y3QpCitzdG9yZS5wdXQodmFsdWUsICdrZXknKQorc3RvcmUuZ2V0KCdrZXknKQorUEFTUyB0ZXN0
X2RhdGEgIT09IHJlc3VsdCBpcyB0cnVlCitQQVNTIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcu
Y2FsbChyZXN1bHQpIGlzICJbb2JqZWN0IFJlZ0V4cF0iCitQQVNTIHJlc3VsdC50b1N0cmluZygp
IGlzIHRlc3RfZGF0YS50b1N0cmluZygpCisKK1Rlc3RpbmcgUmVnRXhwOiAvYWJjL2kKK3RyYW5z
YWN0aW9uID0gZGIudHJhbnNhY3Rpb24oJ3N0b3JlTmFtZScsIElEQlRyYW5zYWN0aW9uLlJFQURf
V1JJVEUpCitzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKQordmFs
dWUgaXM6IC9hYmMvaSAodHlwZTogb2JqZWN0KQorc3RvcmUucHV0KHZhbHVlLCAna2V5JykKK3N0
b3JlLmdldCgna2V5JykKK1BBU1MgdGVzdF9kYXRhICE9PSByZXN1bHQgaXMgdHJ1ZQorUEFTUyBP
YmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwocmVzdWx0KSBpcyAiW29iamVjdCBSZWdFeHBd
IgorUEFTUyByZXN1bHQudG9TdHJpbmcoKSBpcyB0ZXN0X2RhdGEudG9TdHJpbmcoKQorCitUZXN0
aW5nIFJlZ0V4cDogL2FiYy9naQordHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3RvcmVO
YW1lJywgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkKK3N0b3JlID0gdHJhbnNhY3Rpb24ub2Jq
ZWN0U3RvcmUoJ3N0b3JlTmFtZScpCit2YWx1ZSBpczogL2FiYy9naSAodHlwZTogb2JqZWN0KQor
c3RvcmUucHV0KHZhbHVlLCAna2V5JykKK3N0b3JlLmdldCgna2V5JykKK1BBU1MgdGVzdF9kYXRh
ICE9PSByZXN1bHQgaXMgdHJ1ZQorUEFTUyBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwo
cmVzdWx0KSBpcyAiW29iamVjdCBSZWdFeHBdIgorUEFTUyByZXN1bHQudG9TdHJpbmcoKSBpcyB0
ZXN0X2RhdGEudG9TdHJpbmcoKQorCitUZXN0aW5nIFJlZ0V4cDogL2FiYy9tCit0cmFuc2FjdGlv
biA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUnLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRF
KQorc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmVOYW1lJykKK3ZhbHVlIGlz
OiAvYWJjL20gKHR5cGU6IG9iamVjdCkKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5n
ZXQoJ2tleScpCitQQVNTIHRlc3RfZGF0YSAhPT0gcmVzdWx0IGlzIHRydWUKK1BBU1MgT2JqZWN0
LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHJlc3VsdCkgaXMgIltvYmplY3QgUmVnRXhwXSIKK1BB
U1MgcmVzdWx0LnRvU3RyaW5nKCkgaXMgdGVzdF9kYXRhLnRvU3RyaW5nKCkKKworVGVzdGluZyBS
ZWdFeHA6IC9hYmMvbWcKK3RyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24oJ3N0b3JlTmFtZScs
IElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUpCitzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0
b3JlKCdzdG9yZU5hbWUnKQordmFsdWUgaXM6IC9hYmMvZ20gKHR5cGU6IG9iamVjdCkKK3N0b3Jl
LnB1dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5nZXQoJ2tleScpCitQQVNTIHRlc3RfZGF0YSAhPT0g
cmVzdWx0IGlzIHRydWUKK1BBU1MgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHJlc3Vs
dCkgaXMgIltvYmplY3QgUmVnRXhwXSIKK1BBU1MgcmVzdWx0LnRvU3RyaW5nKCkgaXMgdGVzdF9k
YXRhLnRvU3RyaW5nKCkKKworVGVzdGluZyBSZWdFeHA6IC9hYmMvbWkKK3RyYW5zYWN0aW9uID0g
ZGIudHJhbnNhY3Rpb24oJ3N0b3JlTmFtZScsIElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUpCitz
dG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKQordmFsdWUgaXM6IC9h
YmMvaW0gKHR5cGU6IG9iamVjdCkKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5nZXQo
J2tleScpCitQQVNTIHRlc3RfZGF0YSAhPT0gcmVzdWx0IGlzIHRydWUKK1BBU1MgT2JqZWN0LnBy
b3RvdHlwZS50b1N0cmluZy5jYWxsKHJlc3VsdCkgaXMgIltvYmplY3QgUmVnRXhwXSIKK1BBU1Mg
cmVzdWx0LnRvU3RyaW5nKCkgaXMgdGVzdF9kYXRhLnRvU3RyaW5nKCkKKworVGVzdGluZyBSZWdF
eHA6IC9hYmMvbWdpCit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUnLCBJ
REJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9y
ZSgnc3RvcmVOYW1lJykKK3ZhbHVlIGlzOiAvYWJjL2dpbSAodHlwZTogb2JqZWN0KQorc3RvcmUu
cHV0KHZhbHVlLCAna2V5JykKK3N0b3JlLmdldCgna2V5JykKK1BBU1MgdGVzdF9kYXRhICE9PSBy
ZXN1bHQgaXMgdHJ1ZQorUEFTUyBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwocmVzdWx0
KSBpcyAiW29iamVjdCBSZWdFeHBdIgorUEFTUyByZXN1bHQudG9TdHJpbmcoKSBpcyB0ZXN0X2Rh
dGEudG9TdHJpbmcoKQorCisKK1Rlc3RpbmcgSW1hZ2VEYXRhCitjYW52YXMgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCdjYW52YXMnKQorY2FudmFzLndpZHRoID0gOAorY2FudmFzLmhlaWdodCA9
IDgKK3Rlc3RfZGF0YSA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpLmdldEltYWdlRGF0YSgwLCAw
LCA4LCA4KQordHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1lJywgSURCVHJh
bnNhY3Rpb24uUkVBRF9XUklURSkKK3N0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0
b3JlTmFtZScpCit2YWx1ZSBpczogW29iamVjdCBJbWFnZURhdGFdICh0eXBlOiBvYmplY3QpCitz
dG9yZS5wdXQodmFsdWUsICdrZXknKQorc3RvcmUuZ2V0KCdrZXknKQorUEFTUyB0ZXN0X2RhdGEg
IT09IHJlc3VsdCBpcyB0cnVlCitQQVNTIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChy
ZXN1bHQpIGlzICJbb2JqZWN0IEltYWdlRGF0YV0iCitQQVNTIHJlc3VsdC53aWR0aCBpcyB0ZXN0
X2RhdGEud2lkdGgKK1BBU1MgcmVzdWx0LmhlaWdodCBpcyB0ZXN0X2RhdGEuaGVpZ2h0CitQQVNT
IHJlc3VsdC5kYXRhLmxlbmd0aCBpcyB0ZXN0X2RhdGEuZGF0YS5sZW5ndGgKK1BBU1MgcmVzdWx0
IGRhdGEgbWF0Y2hlcworCitUZXN0aW5nIEFycmF5Cit0ZXN0X2RhdGEgPSBbXQordGVzdF9kYXRh
WzBdID0gJ2ZvbycKK3Rlc3RfZGF0YVsxXSA9ICdiYXInCit0ZXN0X2RhdGFbMTBdID0gdHJ1ZQor
dGVzdF9kYXRhWzExXSA9IGZhbHNlCit0ZXN0X2RhdGFbMjBdID0gMTIzCit0ZXN0X2RhdGFbMjFd
ID0gNDU2Cit0ZXN0X2RhdGFbMzBdID0gbnVsbAordHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlv
bignc3RvcmVOYW1lJywgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkKK3N0b3JlID0gdHJhbnNh
Y3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpCit2YWx1ZSBpczogZm9vLGJhciwsLCwsLCws
LHRydWUsZmFsc2UsLCwsLCwsLCwxMjMsNDU2LCwsLCwsLCwsICh0eXBlOiBvYmplY3QpCitzdG9y
ZS5wdXQodmFsdWUsICdrZXknKQorc3RvcmUuZ2V0KCdrZXknKQorUEFTUyB0ZXN0X2RhdGEgIT09
IHJlc3VsdCBpcyB0cnVlCitQQVNTIHRlc3RfZGF0YS5sZW5ndGggPT09IHJlc3VsdC5sZW5ndGgg
aXMgdHJ1ZQorUEFTUyB0ZXN0X2RhdGFbMF0gaXMgcmVzdWx0WzBdCitQQVNTIHRlc3RfZGF0YVsx
XSBpcyByZXN1bHRbMV0KK1BBU1MgdGVzdF9kYXRhWzEwXSBpcyByZXN1bHRbMTBdCitQQVNTIHRl
c3RfZGF0YVsxMV0gaXMgcmVzdWx0WzExXQorUEFTUyB0ZXN0X2RhdGFbMjBdIGlzIHJlc3VsdFsy
MF0KK1BBU1MgdGVzdF9kYXRhWzIxXSBpcyByZXN1bHRbMjFdCitQQVNTIHRlc3RfZGF0YVszMF0g
aXMgcmVzdWx0WzMwXQorCitUZXN0aW5nIE9iamVjdAordGVzdF9kYXRhID0gW10KK3Rlc3RfZGF0
YVswXSA9ICdmb28nCit0ZXN0X2RhdGFbMV0gPSAnYmFyJwordGVzdF9kYXRhWydhJ10gPSB0cnVl
Cit0ZXN0X2RhdGFbJ2InXSA9IGZhbHNlCit0ZXN0X2RhdGFbJ2ZvbyddID0gMTIzCit0ZXN0X2Rh
dGFbJ2JhciddID0gNDU2Cit0ZXN0X2RhdGFbJyddID0gbnVsbAordHJhbnNhY3Rpb24gPSBkYi50
cmFuc2FjdGlvbignc3RvcmVOYW1lJywgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkKK3N0b3Jl
ID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpCit2YWx1ZSBpczogZm9vLGJh
ciAodHlwZTogb2JqZWN0KQorc3RvcmUucHV0KHZhbHVlLCAna2V5JykKK3N0b3JlLmdldCgna2V5
JykKK1BBU1MgdGVzdF9kYXRhICE9PSByZXN1bHQgaXMgdHJ1ZQorUEFTUyBhcnJheUNvbXBhcmUo
T2JqZWN0LmtleXMocmVzdWx0KS5zb3J0KCksIE9iamVjdC5rZXlzKHRlc3RfZGF0YSkuc29ydCgp
KSBpcyB0cnVlCitQQVNTIHRlc3RfZGF0YVsiMCJdIGlzIHJlc3VsdFsiMCJdCitQQVNTIHRlc3Rf
ZGF0YVsiMSJdIGlzIHJlc3VsdFsiMSJdCitQQVNTIHRlc3RfZGF0YVsiYSJdIGlzIHJlc3VsdFsi
YSJdCitQQVNTIHRlc3RfZGF0YVsiYiJdIGlzIHJlc3VsdFsiYiJdCitQQVNTIHRlc3RfZGF0YVsi
Zm9vIl0gaXMgcmVzdWx0WyJmb28iXQorUEFTUyB0ZXN0X2RhdGFbImJhciJdIGlzIHJlc3VsdFsi
YmFyIl0KK1BBU1MgdGVzdF9kYXRhWyIiXSBpcyByZXN1bHRbIiJdCisKKworVGVzdCB0eXBlcyB0
aGF0IGNhbid0IGJlIGNsb25lZDoKKwordHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3Rv
cmVOYW1lJywgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkKK3N0b3JlID0gdHJhbnNhY3Rpb24u
b2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpCisKK090aGVyIEphdmFTY3JpcHQgb2JqZWN0IHR5cGVz
OgorRXhwZWN0aW5nIGV4Y2VwdGlvbiBmcm9tIHN0b3JlLnB1dChuZXcgRXJyb3IsICdrZXknKQor
UEFTUyBFeGNlcHRpb24gd2FzIHRocm93bi4KK1BBU1MgY29kZSBpcyBET01FeGNlcHRpb24uREFU
QV9DTE9ORV9FUlIKK0V4cGVjdGluZyBleGNlcHRpb24gZnJvbSBzdG9yZS5wdXQobmV3IEZ1bmN0
aW9uLCAna2V5JykKK1BBU1MgRXhjZXB0aW9uIHdhcyB0aHJvd24uCitQQVNTIGNvZGUgaXMgRE9N
RXhjZXB0aW9uLkRBVEFfQ0xPTkVfRVJSCisKK090aGVyIGhvc3Qgb2JqZWN0IHR5cGVzOgorRXhw
ZWN0aW5nIGV4Y2VwdGlvbiBmcm9tIHN0b3JlLnB1dCh3aW5kb3csICdrZXknKQorUEFTUyBFeGNl
cHRpb24gd2FzIHRocm93bi4KK1BBU1MgY29kZSBpcyBET01FeGNlcHRpb24uREFUQV9DTE9ORV9F
UlIKK0V4cGVjdGluZyBleGNlcHRpb24gZnJvbSBzdG9yZS5wdXQoZG9jdW1lbnQsICdrZXknKQor
UEFTUyBFeGNlcHRpb24gd2FzIHRocm93bi4KK1BBU1MgY29kZSBpcyBET01FeGNlcHRpb24uREFU
QV9DTE9ORV9FUlIKK0V4cGVjdGluZyBleGNlcHRpb24gZnJvbSBzdG9yZS5wdXQoZG9jdW1lbnQu
Ym9keSwgJ2tleScpCitQQVNTIEV4Y2VwdGlvbiB3YXMgdGhyb3duLgorUEFTUyBjb2RlIGlzIERP
TUV4Y2VwdGlvbi5EQVRBX0NMT05FX0VSUgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL3N0cnVjdHVyZWQtY2xvbmUuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL3N0cnVjdHVyZWQtY2xvbmUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45OWZhODk2NTcyM2U5ODNjODJi
ZGYzYjc3MDkzYWQ1YTcwZjZjNTUyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvc3RydWN0dXJlZC1jbG9uZS5odG1sCkBAIC0wLDAgKzEsNTMxIEBACis8
aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hhcmVkLmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGlucHV0IHR5cGU9ImZpbGUiIGlkPSJmaWxlSW5w
dXQiIG11bHRpcGxlPjwvaW5wdXQ+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9
ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KKworZGVzY3JpcHRpb24oIlRlc3Qgc3RydWN0dXJl
ZCBjbG9uZSBwZXJtdXRhdGlvbnMgaW4gSW5kZXhlZERCLiIpOworaWYgKHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7
CisKK2lmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAgICB2YXIgZmlsZUlucHV0ID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoImZpbGVJbnB1dCIpOworICAgIHZhciBmaWxlUmVjdCA9IGZpbGVJ
bnB1dC5nZXRDbGllbnRSZWN0cygpWzBdOworICAgIHZhciB0YXJnZXRYID0gZmlsZVJlY3QubGVm
dCArIGZpbGVSZWN0LndpZHRoIC8gMjsKKyAgICB2YXIgdGFyZ2V0WSA9IGZpbGVSZWN0LnRvcCAr
IGZpbGVSZWN0LmhlaWdodCAvIDI7CisgICAgZXZlbnRTZW5kZXIuYmVnaW5EcmFnV2l0aEZpbGVz
KFsncmVzb3VyY2VzL3Rlc3QtZGF0YS5odG1sJywgJ3Jlc291cmNlcy90ZXN0LWRhdGEudHh0J10p
OworICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHRhcmdldFgsIHRhcmdldFkpOworICAgIGV2
ZW50U2VuZGVyLm1vdXNlVXAoKTsKK30KKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgZXZhbEFu
ZExvZygiaW5kZXhlZERCID0gd2luZG93LmluZGV4ZWREQiB8fCB3aW5kb3cud2Via2l0SW5kZXhl
ZERCIik7CisgICAgc2hvdWxkQmVUcnVlKCJpbmRleGVkREIgIT0gbnVsbCIpOworICAgIGV2YWxB
bmRMb2coIklEQlRyYW5zYWN0aW9uID0gd2luZG93LklEQlRyYW5zYWN0aW9uIHx8IHdpbmRvdy53
ZWJraXRJREJUcmFuc2FjdGlvbiIpOworICAgIHNob3VsZEJlVHJ1ZSgiSURCVHJhbnNhY3Rpb24g
IT0gbnVsbCIpOworICAgIHByZXBhcmVEYXRhYmFzZSgpOworfQorCitmdW5jdGlvbiBwcmVwYXJl
RGF0YWJhc2UoKQoreworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1ZygiUHJlcGFyZSBEYXRhYmFz
ZSIpOworICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIuZGVsZXRlRGF0YWJhc2Uo
J3N0cnVjdHVyZWQtY2xvbmUnKSIpOworICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRF
cnJvckNhbGxiYWNrOworICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAg
ICAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLm9wZW4oJ3N0cnVjdHVyZWQtY2xv
bmUnKSIpOworICAgICAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFj
azsKKyAgICAgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgICAg
ICBldmFsQW5kTG9nKCJkYiA9IHJlcXVlc3QucmVzdWx0Iik7CisgICAgICAgICAgICBzaG91bGRC
ZUVxdWFsVG9TdHJpbmcoImRiLnZlcnNpb24iLCAiIik7CisgICAgICAgICAgICByZXF1ZXN0ID0g
ZXZhbEFuZExvZygiZGIuc2V0VmVyc2lvbignMScpIik7CisgICAgICAgICAgICByZXF1ZXN0Lm9u
ZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKKyAgICAgICAgICAgIHJlcXVlc3Qub25z
dWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgICAgIGV2YWxBbmRMb2coImRiLmNy
ZWF0ZU9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKSIpOworICAgICAgICAgICAgICAgIHZhciB0cmFu
cyA9IHJlcXVlc3QucmVzdWx0OworICAgICAgICAgICAgICAgIHRyYW5zLm9uZXJyb3IgPSB1bmV4
cGVjdGVkRXJyb3JDYWxsYmFjazsKKyAgICAgICAgICAgICAgICB0cmFucy5vbmFib3J0ID0gdW5l
eHBlY3RlZEFib3J0Q2FsbGJhY2s7CisgICAgICAgICAgICAgICAgdHJhbnMub25jb21wbGV0ZSA9
IHN0YXJ0VGVzdHM7CisgICAgICAgICAgICB9OworICAgICAgICB9OworICAgIH07Cit9CisKK2Z1
bmN0aW9uIHN0YXJ0VGVzdHMoKQoreworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1ZygiUnVubmlu
ZyB0ZXN0cy4uLiIpOworICAgIHZhciB0ZXN0c190b19ydW4gPSBbCisgICAgICAgIHRlc3RVbmRl
ZmluZWQsCisgICAgICAgIHRlc3ROdWxsLAorICAgICAgICB0ZXN0Qm9vbGVhbiwKKyAgICAgICAg
dGVzdE51bWJlciwKKyAgICAgICAgdGVzdFN0cmluZywKKyAgICAgICAgdGVzdEJvb2xlYW5PYmpl
Y3QsCisgICAgICAgIHRlc3ROdW1iZXJPYmplY3QsCisgICAgICAgIHRlc3RTdHJpbmdPYmplY3Qs
CisgICAgICAgIHRlc3REYXRlT2JqZWN0LAorICAgICAgICB0ZXN0UmVnRXhwT2JqZWN0LAorICAg
ICAgICB0ZXN0SW1hZ2VEYXRhLAorICAgICAgICAvLyBGSVhNRTogQmxvYiwgRmlsZSwgYW5kIEZp
bGVMaXN0IHN1cHBvcnQgaXMgaW5jb21wbGV0ZS4KKyAgICAgICAgLy8gaHR0cDovL2NyYnVnLmNv
bS8xMDgwMTIKKyAgICAgICAgLy90ZXN0QmxvYiwKKyAgICAgICAgLy90ZXN0RmlsZSwKKyAgICAg
ICAgLy90ZXN0RmlsZUxpc3QsCisgICAgICAgIHRlc3RBcnJheSwKKyAgICAgICAgdGVzdE9iamVj
dAorICAgIF07CisKKyAgICBmdW5jdGlvbiBuZXh0VGVzdCgpIHsKKyAgICAgICAgZGVidWcoIiIp
OworICAgICAgICBpZiAodGVzdHNfdG9fcnVuLmxlbmd0aCkgeworICAgICAgICAgICAgdmFyIHRl
c3QgPSB0ZXN0c190b19ydW4uc2hpZnQoKTsKKyAgICAgICAgICAgIHRlc3QobmV4dFRlc3QpOyAv
LyBXaGVuIGRvbmUsIGNhbGwgdGhpcyBhZ2Fpbi4KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg
ICAgIHRlc3RCYWRUeXBlcygpOworICAgICAgICB9CisgICAgfQorICAgIG5leHRUZXN0KCk7Cit9
CisKK2Z1bmN0aW9uIGZvckVhY2hXaXRoQ2FsbGJhY2sodGVzdEZ1bmN0aW9uLCB2YWx1ZXMsIGNh
bGxiYWNrKQoreworICAgIGZ1bmN0aW9uIG5leHRWYWx1ZSgpIHsKKyAgICAgICAgaWYgKHZhbHVl
cy5sZW5ndGgpIHsKKyAgICAgICAgICAgIHRlc3RGdW5jdGlvbih2YWx1ZXMuc2hpZnQoKSwgbmV4
dFZhbHVlKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGNhbGxiYWNrKCk7CisgICAg
ICAgIH0KKyAgICB9CisKKyAgICBuZXh0VmFsdWUoKTsKK30KKworZnVuY3Rpb24gdGVzdFZhbHVl
KHZhbHVlLCBjYWxsYmFjaykKK3sKKyAgICAvLyBPbmUgdHJhbnNhY3Rpb24gcGVyIHRlc3QsIHNp
bmNlIHNvbWUgdGVzdHMgcmVxdWlyZSBhc3luY2hyb25vdXMKKyAgICAvLyBvcGVyYXRpb25zIHRv
IHZlcmlmeSB0aGUgcmVzdWx0IChlLmcuIHZpYSBGaWxlUmVhZGVyKQorICAgIGV2YWxBbmRMb2co
InRyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24oJ3N0b3JlTmFtZScsIElEQlRyYW5zYWN0aW9u
LlJFQURfV1JJVEUpIik7CisgICAgdHJhbnNhY3Rpb24ub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJv
ckNhbGxiYWNrOworICAgIHRyYW5zYWN0aW9uLm9uYWJvcnQgPSB1bmV4cGVjdGVkQWJvcnRDYWxs
YmFjazsKKyAgICBldmFsQW5kTG9nKCJzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdz
dG9yZU5hbWUnKSIpOworCisgICAgZGVidWcoInZhbHVlIGlzOiAiICsgU3RyaW5nKHZhbHVlKSAr
ICIgKHR5cGU6ICIgKyB0eXBlb2YgdmFsdWUgKyAiKSIpOworICAgIHdpbmRvdy52YWx1ZSA9IHZh
bHVlOworICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJzdG9yZS5wdXQodmFsdWUsICdrZXknKSIp
OworICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworICAgIHJl
cXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAgICByZXF1ZXN0ID0gZXZhbEFu
ZExvZygic3RvcmUuZ2V0KCdrZXknKSIpOworICAgICAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4
cGVjdGVkRXJyb3JDYWxsYmFjazsKKyAgICAgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBmdW5jdGlv
bihlKSB7CisgICAgICAgICAgICAvL2RlYnVnKCJnb3QgYmFjazogIiArIFN0cmluZyhyZXF1ZXN0
LnJlc3VsdCkgKyAiICh0eXBlOiAiICsgdHlwZW9mIHJlcXVlc3QucmVzdWx0ICsgIikiKTsKKyAg
ICAgICAgICAgIGNhbGxiYWNrKHJlcXVlc3QucmVzdWx0KTsKKyAgICAgICAgfTsKKyAgICB9Owor
fQorCisvLyBJZGVudGl0eSB0ZXN0aW5nLCBzZW5zaXRpdmUgdG8gTmFOIGFuZCAtMAorZnVuY3Rp
b24gaXMoeCwgeSkgeworICAgIGlmICh4ID09PSB5KSB7CisgICAgICAgIHJldHVybiB4ICE9PSAw
IHx8IDEgLyB4ID09PSAxIC8geTsKKyAgICB9CisgICAgcmV0dXJuIHggIT09IHggJiYgeSAhPT0g
eTsKK30KKworZnVuY3Rpb24gYXJyYXlDb21wYXJlKGEsIGIpIHsKKyAgICBpZiAoYS5sZW5ndGgg
IT09IGIubGVuZ3RoKSB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgZm9yICh2
YXIgaSA9IDA7IGkgPCBhLmxlbmd0aDsgKytpKSB7CisgICAgICAgIGlmICghaXMoYVtpXSwgYltp
XSkpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKyAgICBy
ZXR1cm4gdHJ1ZTsKK30KKworZnVuY3Rpb24gdGVzdFByaW1pdGl2ZVZhbHVlKHN0cmluZywgY2Fs
bGJhY2spCit7CisgICAgZGVidWcoIlRlc3Rpbmc6ICIgKyBzdHJpbmcpOworICAgIHZhciB2YWx1
ZSA9IGV2YWwoInZhbHVlID0gKCIgKyBzdHJpbmcgKyAiKSIpOworICAgIHRlc3RfZGF0YSA9IHZh
bHVlOworICAgIHRlc3RWYWx1ZSh0ZXN0X2RhdGEsIGZ1bmN0aW9uKHJlc3VsdCkgeworICAgICAg
ICB3aW5kb3cucmVzdWx0ID0gcmVzdWx0OworICAgICAgICBzaG91bGRCZVRydWUoImlzKHRlc3Rf
ZGF0YSwgcmVzdWx0KSIpOworICAgICAgICBkZWJ1ZygiIik7CisgICAgICAgIGNhbGxiYWNrKCk7
CisgICAgfSk7Cit9CisKK2Z1bmN0aW9uIHRlc3RPYmplY3RXaXRoVmFsdWUoc3RyaW5nLCBjYWxs
YmFjaykKK3sKKyAgICBkZWJ1ZygiVGVzdGluZzogIiArIHN0cmluZyk7CisgICAgdmFyIHZhbHVl
ID0gZXZhbCgidmFsdWUgPSAoIiArIHN0cmluZyArICIpIik7CisgICAgdGVzdF9kYXRhID0gdmFs
dWU7CisgICAgdGVzdFZhbHVlKHRlc3RfZGF0YSwgZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgICAg
IHdpbmRvdy5yZXN1bHQgPSByZXN1bHQ7CisgICAgICAgIGRlYnVnKCJTdHJpbmcocmVzdWx0KTog
IiArIFN0cmluZyhyZXN1bHQpKTsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ0eXBl
b2YgcmVzdWx0IiwgIm9iamVjdCIpOworICAgICAgICBzaG91bGRCZSgiT2JqZWN0LnByb3RvdHlw
ZS50b1N0cmluZy5jYWxsKHJlc3VsdCkiLCAiT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxs
KHRlc3RfZGF0YSkiKTsKKyAgICAgICAgc2hvdWxkQmVUcnVlKCJ0ZXN0X2RhdGEgIT09IHJlc3Vs
dCIpOworICAgICAgICBzaG91bGRCZSgicmVzdWx0LnRvU3RyaW5nKCkiLCAidGVzdF9kYXRhLnRv
U3RyaW5nKCkiKTsKKyAgICAgICAgc2hvdWxkQmVUcnVlKCJpcyh0ZXN0X2RhdGEudmFsdWVPZigp
LCByZXN1bHQudmFsdWVPZigpKSIpOworICAgICAgICBkZWJ1ZygiIik7CisgICAgICAgIGNhbGxi
YWNrKCk7CisgICAgfSk7Cit9CisKK2Z1bmN0aW9uIHRlc3RVbmRlZmluZWQoY2FsbGJhY2spCit7
CisgICAgdGVzdFByaW1pdGl2ZVZhbHVlKCJ1bmRlZmluZWQiLCBjYWxsYmFjayk7Cit9CisKK2Z1
bmN0aW9uIHRlc3ROdWxsKGNhbGxiYWNrKQoreworICAgIHRlc3RQcmltaXRpdmVWYWx1ZSgibnVs
bCIsIGNhbGxiYWNrKTsKK30KKworZnVuY3Rpb24gdGVzdEJvb2xlYW4oY2FsbGJhY2spCit7Cisg
ICAgZGVidWcoIlRlc3RpbmcgYm9vbGVhbiBwcmltaXRpdmVzIik7CisgICAgZGVidWcoIiIpOwor
ICAgIGZvckVhY2hXaXRoQ2FsbGJhY2sodGVzdFByaW1pdGl2ZVZhbHVlLCBbInRydWUiLCAiZmFs
c2UiXSwgY2FsbGJhY2spOworfQorCitmdW5jdGlvbiB0ZXN0Qm9vbGVhbk9iamVjdChjYWxsYmFj
aykKK3sKKyAgICBkZWJ1ZygiVGVzdGluZyBCb29sZWFuIG9iamVjdHMiKTsKKyAgICBkZWJ1Zygi
Iik7CisgICAgZm9yRWFjaFdpdGhDYWxsYmFjayh0ZXN0T2JqZWN0V2l0aFZhbHVlLCBbCisgICAg
ICAgICJuZXcgQm9vbGVhbih0cnVlKSIsCisgICAgICAgICJuZXcgQm9vbGVhbihmYWxzZSkiCisg
ICAgXSwgY2FsbGJhY2spOworfQorCitmdW5jdGlvbiB0ZXN0U3RyaW5nKGNhbGxiYWNrKQorewor
ICAgIGRlYnVnKCJUZXN0aW5nIHN0cmluZyBwcmltaXRpdmVzIik7CisgICAgZGVidWcoIiIpOwor
ICAgIGZvckVhY2hXaXRoQ2FsbGJhY2sodGVzdFByaW1pdGl2ZVZhbHVlLCBbCisgICAgICAgICIn
JyIsCisgICAgICAgICIndGhpcyBpcyBhIHNhbXBsZSBzdHJpbmcnIiwKKyAgICAgICAgIidudWxs
KFxcMCknIgorICAgIF0sIGNhbGxiYWNrKTsKK30KKworZnVuY3Rpb24gdGVzdFN0cmluZ09iamVj
dChjYWxsYmFjaykKK3sKKyAgICBkZWJ1ZygiVGVzdGluZyBTdHJpbmcgb2JqZWN0cyIpOworICAg
IGRlYnVnKCIiKTsKKyAgICBmb3JFYWNoV2l0aENhbGxiYWNrKHRlc3RPYmplY3RXaXRoVmFsdWUs
IFsKKyAgICAgICAgIm5ldyBTdHJpbmcoKSIsCisgICAgICAgICJuZXcgU3RyaW5nKCd0aGlzIGlz
IGEgc2FtcGxlIHN0cmluZycpIiwKKyAgICAgICAgIm5ldyBTdHJpbmcoJ251bGwoXFwwKScpIgor
ICAgIF0sIGNhbGxiYWNrKTsKK30KKworZnVuY3Rpb24gdGVzdE51bWJlcihjYWxsYmFjaykKK3sK
KyAgICBkZWJ1ZygiVGVzdGluZyBudW1iZXIgcHJpbWl0aXZlcyIpOworICAgIGRlYnVnKCIiKTsK
KyAgICBmb3JFYWNoV2l0aENhbGxiYWNrKHRlc3RQcmltaXRpdmVWYWx1ZSwgWworICAgICAgICAi
TmFOIiwKKyAgICAgICAgIi1JbmZpbml0eSIsCisgICAgICAgICItTnVtYmVyLk1BWF9WQUxVRSIs
CisgICAgICAgICItTnVtYmVyLk1JTl9WQUxVRSIsCisgICAgICAgICItMCIsCisgICAgICAgICIw
IiwKKyAgICAgICAgIk51bWJlci5NSU5fVkFMVUUiLAorICAgICAgICAiTnVtYmVyLk1BWF9WQUxV
RSIsCisgICAgICAgICJJbmZpbml0eSIKKyAgICBdLCBjYWxsYmFjayk7Cit9CisKK2Z1bmN0aW9u
IHRlc3ROdW1iZXJPYmplY3QoY2FsbGJhY2spCit7CisgICAgZGVidWcoIlRlc3RpbmcgTnVtYmVy
IG9iamVjdHMiKTsKKyAgICBkZWJ1ZygiIik7CisgICAgZm9yRWFjaFdpdGhDYWxsYmFjayh0ZXN0
T2JqZWN0V2l0aFZhbHVlLCBbCisgICAgICAgICJuZXcgTnVtYmVyKE5hTikiLAorICAgICAgICAi
bmV3IE51bWJlcigtSW5maW5pdHkpIiwKKyAgICAgICAgIm5ldyBOdW1iZXIoLU51bWJlci5NQVhf
VkFMVUUpIiwKKyAgICAgICAgIm5ldyBOdW1iZXIoLU51bWJlci5NSU5fVkFMVUUpIiwKKyAgICAg
ICAgIm5ldyBOdW1iZXIoLTApIiwKKyAgICAgICAgIm5ldyBOdW1iZXIoMCkiLAorICAgICAgICAi
bmV3IE51bWJlcihOdW1iZXIuTUlOX1ZBTFVFKSIsCisgICAgICAgICJuZXcgTnVtYmVyKE51bWJl
ci5NQVhfVkFMVUUpIiwKKyAgICAgICAgIm5ldyBOdW1iZXIoSW5maW5pdHkpIgorICAgIF0sIGNh
bGxiYWNrKTsKK30KKworZnVuY3Rpb24gdGVzdERhdGVPYmplY3QoY2FsbGJhY2spCit7CisgICAg
ZGVidWcoIlRlc3RpbmcgRGF0ZSBvYmplY3RzIik7CisgICAgZGVidWcoIiIpOworICAgIGZvckVh
Y2hXaXRoQ2FsbGJhY2sodGVzdE9iamVjdFdpdGhWYWx1ZSwgWworICAgICAgICAibmV3IERhdGUo
LTFlMTMpIiwKKyAgICAgICAgIm5ldyBEYXRlKC0xZTEyKSIsCisgICAgICAgICJuZXcgRGF0ZSgt
MWU5KSIsCisgICAgICAgICJuZXcgRGF0ZSgtMWU2KSIsCisgICAgICAgICJuZXcgRGF0ZSgtMWUz
KSIsCisgICAgICAgICJuZXcgRGF0ZSgwKSIsCisgICAgICAgICJuZXcgRGF0ZSgxZTMpIiwKKyAg
ICAgICAgIm5ldyBEYXRlKDFlNikiLAorICAgICAgICAibmV3IERhdGUoMWU5KSIsCisgICAgICAg
ICJuZXcgRGF0ZSgxZTEyKSIsCisgICAgICAgICJuZXcgRGF0ZSgxZTEzKSIKKyAgICBdLCBjYWxs
YmFjayk7Cit9CisKK2Z1bmN0aW9uIHRlc3RSZWdFeHBPYmplY3QoY2FsbGJhY2spCit7CisgICAg
ZGVidWcoIlRlc3RpbmcgUmVnRXhwIG9iamVjdHMiKTsKKyAgICBkZWJ1ZygiIik7CisgICAgZnVu
Y3Rpb24gdGVzdFJlZ0V4cChzdHJpbmcsIGNhbGxiYWNrKSB7CisgICAgICAgIGRlYnVnKCJUZXN0
aW5nIFJlZ0V4cDogIiArIHN0cmluZyk7CisgICAgICAgIHZhciB2YWx1ZSA9IGV2YWwoInZhbHVl
ID0gKCIgKyBzdHJpbmcgKyAiKSIpOworICAgICAgICB0ZXN0X2RhdGEgPSB2YWx1ZTsKKyAgICAg
ICAgdGVzdFZhbHVlKHRlc3RfZGF0YSwgZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgICAgICAgICB3
aW5kb3cucmVzdWx0ID0gcmVzdWx0OworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCJ0ZXN0X2Rh
dGEgIT09IHJlc3VsdCIpOworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJPYmpl
Y3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwocmVzdWx0KSIsICJbb2JqZWN0IFJlZ0V4cF0iKTsK
KyAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHQudG9TdHJpbmcoKSIsICJ0ZXN0X2RhdGEudG9T
dHJpbmcoKSIpOworICAgICAgICAgICAgZGVidWcoIiIpOworICAgICAgICAgICAgY2FsbGJhY2so
KTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgZm9yRWFjaFdpdGhDYWxsYmFjayh0ZXN0UmVn
RXhwLCBbCisgICAgICAgICJuZXcgUmVnRXhwKCkiLAorICAgICAgICAiL2FiYy8iLAorICAgICAg
ICAiL2FiYy9nIiwKKyAgICAgICAgIi9hYmMvaSIsCisgICAgICAgICIvYWJjL2dpIiwKKyAgICAg
ICAgIi9hYmMvbSIsCisgICAgICAgICIvYWJjL21nIiwKKyAgICAgICAgIi9hYmMvbWkiLAorICAg
ICAgICAiL2FiYy9tZ2kiCisgICAgXSwgY2FsbGJhY2spOworfQorCitmdW5jdGlvbiB0ZXN0SW1h
Z2VEYXRhKGNhbGxiYWNrKQoreworICAgIGRlYnVnKCJUZXN0aW5nIEltYWdlRGF0YSIpOworICAg
IGV2YWxBbmRMb2coImNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpIik7
CisgICAgZXZhbEFuZExvZygiY2FudmFzLndpZHRoID0gOCIpOworICAgIGV2YWxBbmRMb2coImNh
bnZhcy5oZWlnaHQgPSA4Iik7CisgICAgZXZhbEFuZExvZygidGVzdF9kYXRhID0gY2FudmFzLmdl
dENvbnRleHQoJzJkJykuZ2V0SW1hZ2VEYXRhKDAsIDAsIDgsIDgpIik7CisKKyAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IDI1NjsgKytpKSB7CisgICAgICAgIHRlc3RfZGF0YS5kYXRhW2ldID0gaTsK
KyAgICB9CisKKyAgICB0ZXN0VmFsdWUodGVzdF9kYXRhLCBmdW5jdGlvbihyZXN1bHQpIHsKKyAg
ICAgICAgd2luZG93LnJlc3VsdCA9IHJlc3VsdDsKKyAgICAgICAgc2hvdWxkQmVUcnVlKCJ0ZXN0
X2RhdGEgIT09IHJlc3VsdCIpOworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIk9iamVj
dC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChyZXN1bHQpIiwgIltvYmplY3QgSW1hZ2VEYXRhXSIp
OworICAgICAgICBzaG91bGRCZSgicmVzdWx0LndpZHRoIiwgInRlc3RfZGF0YS53aWR0aCIpOwor
ICAgICAgICBzaG91bGRCZSgicmVzdWx0LmhlaWdodCIsICJ0ZXN0X2RhdGEuaGVpZ2h0Iik7Cisg
ICAgICAgIHNob3VsZEJlKCJyZXN1bHQuZGF0YS5sZW5ndGgiLCAidGVzdF9kYXRhLmRhdGEubGVu
Z3RoIik7CisgICAgICAgIGlmIChhcnJheUNvbXBhcmUodGVzdF9kYXRhLmRhdGEsIHJlc3VsdC5k
YXRhKSkgeworICAgICAgICAgICAgdGVzdFBhc3NlZCgicmVzdWx0IGRhdGEgbWF0Y2hlcyIpOwor
ICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgdGVzdEZhaWxlZCgicmVzdWx0IGRhdGEgZG9l
c24ndCBtYXRjaCIpOworICAgICAgICB9CisgICAgICAgIGNhbGxiYWNrKCk7CisgICAgfSk7Cit9
CisKK2Z1bmN0aW9uIHJlYWRCbG9iQXNUZXh0KGJsb2IsIGNhbGxiYWNrKQoreworICAgIHZhciBy
ZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpOworICAgIHJlYWRlci5vbmxvYWQgPSBmdW5jdGlvbihl
KSB7CisgICAgICAgIGlmIChlLnRhcmdldC5yZWFkeVN0YXRlID09PSBGaWxlUmVhZGVyLkRPTkUp
IHsKKyAgICAgICAgICAgIGNhbGxiYWNrKGUudGFyZ2V0LnJlc3VsdCk7CisgICAgICAgIH0KKyAg
ICB9OworICAgIHJlYWRlci5vbmVycm9yID0gZnVuY3Rpb24oZSkgeworICAgICAgICB0ZXN0RmFp
bGVkKCJFcnJvciByZWFkaW5nIGJsb2IgYXMgdGV4dDogIiArIGUpOworICAgICAgICBkb25lKCk7
CisgICAgfTsKKyAgICByZWFkZXIucmVhZEFzVGV4dChibG9iKTsKK30KKworZnVuY3Rpb24gY2hl
Y2tCbG9iQ29udGVudHMoYmxvYiwgZXhwZWN0ZWQsIGNhbGxiYWNrKQoreworICAgIHJlYWRCbG9i
QXNUZXh0KGJsb2IsIGZ1bmN0aW9uKHRleHQpIHsKKyAgICAgICAgd2luZG93LnRleHQgPSB0ZXh0
OworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInRleHQiLCBleHBlY3RlZCk7CisgICAg
ICAgIGNhbGxiYWNrKCk7CisgICAgfSk7Cit9CisKK2Z1bmN0aW9uIGNvbXBhcmVCbG9icyhibG9i
MSwgYmxvYjIsIGNhbGxiYWNrKQoreworICAgIHJlYWRCbG9iQXNUZXh0KGJsb2IxLCBmdW5jdGlv
bih0ZXh0MSkgeworICAgICAgICByZWFkQmxvYkFzVGV4dChibG9iMiwgZnVuY3Rpb24odGV4dDIp
IHsKKyAgICAgICAgICAgIHdpbmRvdy50ZXh0MSA9IHRleHQxOworICAgICAgICAgICAgd2luZG93
LnRleHQyID0gdGV4dDI7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInRleHQy
IiwgdGV4dDEpOworICAgICAgICAgICAgY2FsbGJhY2soKTsKKyAgICAgICAgfSk7CisgICAgfSk7
Cit9CisKK2Z1bmN0aW9uIHRlc3RCbG9iKGNhbGxiYWNrKQoreworICAgIGRlYnVnKCJUZXN0aW5n
IEJsb2IiKTsKKyAgICBldmFsQW5kTG9nKCJCbG9iQnVpbGRlciA9IHdpbmRvdy5CbG9iQnVpbGRl
ciB8fCB3aW5kb3cuV2ViS2l0QmxvYkJ1aWxkZXIiKTsKKyAgICBzaG91bGRCZVRydWUoIkJsb2JC
dWlsZGVyICE9IG51bGwiKTsKKyAgICBzaG91bGRCZVRydWUoIkZpbGVSZWFkZXIgIT0gbnVsbCIp
OworICAgIGV2YWxBbmRMb2coImJ1aWxkZXIgPSBuZXcgQmxvYkJ1aWxkZXIoKSIpOworICAgIGV2
YWxBbmRMb2coInRlc3RfY29udGVudCA9ICdUaGlzIGlzIGEgdGVzdC4gVGhpcyBpcyBvbmx5IGEg
dGVzdC4nIik7CisgICAgZXZhbEFuZExvZygiYnVpbGRlci5hcHBlbmQodGVzdF9jb250ZW50KSIp
OworICAgIGV2YWxBbmRMb2coInRlc3RfZGF0YSA9IGJ1aWxkZXIuZ2V0QmxvYigpIik7CisgICAg
dGVzdFZhbHVlKHRlc3RfZGF0YSwgZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgICAgIHdpbmRvdy5y
ZXN1bHQgPSByZXN1bHQ7CisgICAgICAgIHNob3VsZEJlVHJ1ZSgidGVzdF9kYXRhICE9PSByZXN1
bHQiKTsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJPYmplY3QucHJvdG90eXBlLnRv
U3RyaW5nLmNhbGwocmVzdWx0KSIsICJbb2JqZWN0IEJsb2JdIik7CisgICAgICAgIHNob3VsZEJl
KCJyZXN1bHQuc2l6ZSIsICJ0ZXN0X2RhdGEuc2l6ZSIpOworICAgICAgICBzaG91bGRCZSgicmVz
dWx0LnR5cGUiLCAidGVzdF9kYXRhLnR5cGUiKTsKKyAgICAgICAgY2hlY2tCbG9iQ29udGVudHMo
cmVzdWx0LCB0ZXN0X2NvbnRlbnQsIGNhbGxiYWNrKTsKKyAgICB9KTsKK30KKworZnVuY3Rpb24g
Y29tcGFyZUZpbGVzKGZpbGUxLCBmaWxlMiwgY2FsbGJhY2spCit7CisgICAgd2luZG93LmZpbGUx
ID0gZmlsZTE7CisgICAgd2luZG93LmZpbGUyID0gZmlsZTI7CisgICAgc2hvdWxkQmVUcnVlKCJm
aWxlMSAhPT0gZmlsZTIiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIk9iamVjdC5wcm90
b3R5cGUudG9TdHJpbmcuY2FsbChmaWxlMSkiLCAiW29iamVjdCBGaWxlXSIpOworICAgIHNob3Vs
ZEJlRXF1YWxUb1N0cmluZygiT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGZpbGUyKSIs
ICJbb2JqZWN0IEZpbGVdIik7CisgICAgZGVidWcoImZpbGUxLnNpemU6ICIgKyBmaWxlMS5zaXpl
KTsKKyAgICBzaG91bGRCZSgiZmlsZTEuc2l6ZSIsICJmaWxlMi5zaXplIik7CisgICAgZGVidWco
ImZpbGUxLnR5cGU6ICIgKyBmaWxlMS50eXBlKTsKKyAgICBzaG91bGRCZSgiZmlsZTEudHlwZSIs
ICJmaWxlMi50eXBlIik7CisgICAgZGVidWcoImZpbGUxLm5hbWU6ICIgKyBmaWxlMS5uYW1lKTsK
KyAgICBzaG91bGRCZSgiZmlsZTEubmFtZSIsICJmaWxlMi5uYW1lIik7CisgICAgc2hvdWxkQmUo
IlN0cmluZyhmaWxlMS5sYXN0TW9kaWZpZWREYXRlKSIsICJTdHJpbmcoZmlsZTIubGFzdE1vZGlm
aWVkRGF0ZSkiKTsKKyAgICBpZiAoY2FsbGJhY2spIHsKKyAgICAgICAgY29tcGFyZUJsb2JzKGZp
bGUxLCBmaWxlMiwgY2FsbGJhY2spOworICAgIH0KK30KKworZnVuY3Rpb24gdGVzdEZpbGUoY2Fs
bGJhY2spCit7CisgICAgZGVidWcoIlRlc3RpbmcgRmlsZSIpOworICAgIGV2YWxBbmRMb2coInRl
c3RfY29udGVudCA9IGZpbGVJbnB1dC5maWxlc1swXSIpOworCisgICAgd2luZG93LnRlc3RfZGF0
YSA9IHRlc3RfY29udGVudDsKKyAgICB0ZXN0VmFsdWUodGVzdF9kYXRhLCBmdW5jdGlvbihyZXN1
bHQpIHsKKyAgICAgICAgd2luZG93LnJlc3VsdCA9IHJlc3VsdDsKKyAgICAgICAgY29tcGFyZUZp
bGVzKHJlc3VsdCwgdGVzdF9kYXRhLCBjYWxsYmFjayk7CisgICAgfSk7Cit9CisKKworZnVuY3Rp
b24gdGVzdEZpbGVMaXN0KGNhbGxiYWNrKQoreworICAgIGRlYnVnKCJUZXN0aW5nIEZpbGVMaXN0
Iik7CisgICAgZXZhbEFuZExvZygidGVzdF9jb250ZW50ID0gZmlsZUlucHV0LmZpbGVzIik7CisK
KyAgICB3aW5kb3cudGVzdF9kYXRhID0gdGVzdF9jb250ZW50OworICAgIHRlc3RWYWx1ZSh0ZXN0
X2RhdGEsIGZ1bmN0aW9uKHJlc3VsdCkgeworICAgICAgICB3aW5kb3cucmVzdWx0ID0gcmVzdWx0
OworICAgICAgICBzaG91bGRCZVRydWUoInRlc3RfZGF0YSAhPT0gcmVzdWx0Iik7CisgICAgICAg
IHNob3VsZEJlRXF1YWxUb1N0cmluZygiT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHJl
c3VsdCkiLCAiW29iamVjdCBGaWxlTGlzdF0iKTsKKyAgICAgICAgc2hvdWxkQmUoInJlc3VsdC5s
ZW5ndGgiLCAidGVzdF9kYXRhLmxlbmd0aCIpOworICAgICAgICBpID0gMDsKKyAgICAgICAgZnVu
Y3Rpb24gZG9OZXh0KCkgeworICAgICAgICAgICAgaWYgKGkgPj0gdGVzdF9kYXRhLmxlbmd0aCkg
eworICAgICAgICAgICAgICAgIGNhbGxiYWNrKCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAg
ICAgICAgICAgICAgIGRlYnVnKCJjb21wYXJpbmcgZmlsZVsiICsgaSArICJdIik7CisgICAgICAg
ICAgICAgICAgY29tcGFyZUZpbGVzKHJlc3VsdFtpXSwgdGVzdF9kYXRhW2krK10sIGRvTmV4dCk7
CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZG9OZXh0KCk7CisgICAgfSk7Cit9
CisKK2Z1bmN0aW9uIHRlc3RBcnJheShjYWxsYmFjaykgeworICAgIGRlYnVnKCJUZXN0aW5nIEFy
cmF5Iik7CisgICAgZXZhbEFuZExvZygidGVzdF9kYXRhID0gW10iKTsKKyAgICBldmFsQW5kTG9n
KCJ0ZXN0X2RhdGFbMF0gPSAnZm9vJyIpOworICAgIGV2YWxBbmRMb2coInRlc3RfZGF0YVsxXSA9
ICdiYXInIik7CisgICAgZXZhbEFuZExvZygidGVzdF9kYXRhWzEwXSA9IHRydWUiKTsKKyAgICBl
dmFsQW5kTG9nKCJ0ZXN0X2RhdGFbMTFdID0gZmFsc2UiKTsKKyAgICBldmFsQW5kTG9nKCJ0ZXN0
X2RhdGFbMjBdID0gMTIzIik7CisgICAgZXZhbEFuZExvZygidGVzdF9kYXRhWzIxXSA9IDQ1NiIp
OworICAgIGV2YWxBbmRMb2coInRlc3RfZGF0YVszMF0gPSBudWxsIik7CisKKyAgICB0ZXN0VmFs
dWUodGVzdF9kYXRhLCBmdW5jdGlvbihyZXN1bHQpIHsKKyAgICAgICAgd2luZG93LnJlc3VsdCA9
IHJlc3VsdDsKKyAgICAgICAgc2hvdWxkQmVUcnVlKCJ0ZXN0X2RhdGEgIT09IHJlc3VsdCIpOwor
ICAgICAgICBzaG91bGRCZVRydWUoInRlc3RfZGF0YS5sZW5ndGggPT09IHJlc3VsdC5sZW5ndGgi
KTsKKyAgICAgICAgT2JqZWN0LmtleXModGVzdF9kYXRhKS5mb3JFYWNoKAorICAgICAgICAgICAg
ZnVuY3Rpb24oa2V5KSB7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInRlc3RfZGF0YVsiICsg
a2V5ICsgIl0iLCAicmVzdWx0WyIgKyBrZXkgKyAiXSIpOworICAgICAgICAgICAgfSk7CisgICAg
ICAgIGNhbGxiYWNrKCk7CisgICAgfSk7Cit9CisKK2Z1bmN0aW9uIHRlc3RPYmplY3QoY2FsbGJh
Y2spIHsKKyAgICBkZWJ1ZygiVGVzdGluZyBPYmplY3QiKTsKKyAgICBldmFsQW5kTG9nKCJ0ZXN0
X2RhdGEgPSBbXSIpOworICAgIGV2YWxBbmRMb2coInRlc3RfZGF0YVswXSA9ICdmb28nIik7Cisg
ICAgZXZhbEFuZExvZygidGVzdF9kYXRhWzFdID0gJ2JhciciKTsKKyAgICBldmFsQW5kTG9nKCJ0
ZXN0X2RhdGFbJ2EnXSA9IHRydWUiKTsKKyAgICBldmFsQW5kTG9nKCJ0ZXN0X2RhdGFbJ2InXSA9
IGZhbHNlIik7CisgICAgZXZhbEFuZExvZygidGVzdF9kYXRhWydmb28nXSA9IDEyMyIpOworICAg
IGV2YWxBbmRMb2coInRlc3RfZGF0YVsnYmFyJ10gPSA0NTYiKTsKKyAgICBldmFsQW5kTG9nKCJ0
ZXN0X2RhdGFbJyddID0gbnVsbCIpOworCisgICAgdGVzdFZhbHVlKHRlc3RfZGF0YSwgZnVuY3Rp
b24ocmVzdWx0KSB7CisgICAgICAgIHdpbmRvdy5yZXN1bHQgPSByZXN1bHQ7CisgICAgICAgIHNo
b3VsZEJlVHJ1ZSgidGVzdF9kYXRhICE9PSByZXN1bHQiKTsKKyAgICAgICAgc2hvdWxkQmVUcnVl
KCJhcnJheUNvbXBhcmUoT2JqZWN0LmtleXMocmVzdWx0KS5zb3J0KCksIE9iamVjdC5rZXlzKHRl
c3RfZGF0YSkuc29ydCgpKSIpOworICAgICAgICBPYmplY3Qua2V5cyh0ZXN0X2RhdGEpLmZvckVh
Y2goCisgICAgICAgICAgICBmdW5jdGlvbihrZXkpIHsKKyAgICAgICAgICAgICAgICBzaG91bGRC
ZSgidGVzdF9kYXRhWyIgKyBKU09OLnN0cmluZ2lmeShrZXkpICsgIl0iLCAicmVzdWx0WyIgKyBK
U09OLnN0cmluZ2lmeShrZXkpICsgIl0iKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICBjYWxs
YmFjaygpOworICAgIH0pOworfQorCitmdW5jdGlvbiB0ZXN0QmFkVHlwZXMoKQoreworICAgIGRl
YnVnKCIiKTsKKyAgICBkZWJ1ZygiVGVzdCB0eXBlcyB0aGF0IGNhbid0IGJlIGNsb25lZDoiKTsK
KyAgICBkZWJ1ZygiIik7CisKKyAgICBldmFsQW5kTG9nKCJ0cmFuc2FjdGlvbiA9IGRiLnRyYW5z
YWN0aW9uKCdzdG9yZU5hbWUnLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKSIpOworICAgIGV2
YWxBbmRMb2coInN0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpIik7
CisgICAgdHJhbnNhY3Rpb24ub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworICAg
IHRyYW5zYWN0aW9uLm9uY29tcGxldGUgPSB1bmV4cGVjdGVkQ29tcGxldGVDYWxsYmFjazsKKyAg
ICB0cmFuc2FjdGlvbi5vbmFib3J0ID0gZG9uZTsKKworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1
ZygiT3RoZXIgSmF2YVNjcmlwdCBvYmplY3QgdHlwZXM6Iik7CisgICAgZXZhbEFuZEV4cGVjdEV4
Y2VwdGlvbigic3RvcmUucHV0KG5ldyBFcnJvciwgJ2tleScpIiwgIkRPTUV4Y2VwdGlvbi5EQVRB
X0NMT05FX0VSUiIpOworICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oInN0b3JlLnB1dChuZXcg
RnVuY3Rpb24sICdrZXknKSIsICJET01FeGNlcHRpb24uREFUQV9DTE9ORV9FUlIiKTsKKworICAg
IGRlYnVnKCIiKTsKKyAgICBkZWJ1ZygiT3RoZXIgaG9zdCBvYmplY3QgdHlwZXM6Iik7CisgICAg
ZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigic3RvcmUucHV0KHdpbmRvdywgJ2tleScpIiwgIkRPTUV4
Y2VwdGlvbi5EQVRBX0NMT05FX0VSUiIpOworICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oInN0
b3JlLnB1dChkb2N1bWVudCwgJ2tleScpIiwgIkRPTUV4Y2VwdGlvbi5EQVRBX0NMT05FX0VSUiIp
OworICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oInN0b3JlLnB1dChkb2N1bWVudC5ib2R5LCAn
a2V5JykiLCAiRE9NRXhjZXB0aW9uLkRBVEFfQ0xPTkVfRVJSIik7Cit9CisKK3Rlc3QoKTsKKwor
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>124348</attachid>
            <date>2012-01-27 12:19:37 -0800</date>
            <delta_ts>2012-01-27 13:20:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-74897-20120127121936.patch</filename>
            <type>text/plain</type>
            <size>43762</size>
            <attacher name="Joshua Bell">jsbell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA2MDk2CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMjg4Njk1MDkyMGZkZGQxM2Y4MWQx
NmUyOGMwYzZhNDVmY2UyY2E1MS4uNmU4NzZhYWExY2JlZjg3N2VhYjUwZWE5ZmIzOGNmNmNlYTM3
MGRkZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEyLTAxLTE5ICBKb3NodWEgQmVsbCAgPGpz
YmVsbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhlZERCOiBBZGQgdGVzdHMgZm9yIHN0
cnVjdHVyZWQgY2xvbmUgZGF0YQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NzQ4OTcKKworICAgICAgICBWYWxpZGF0ZSB0aGF0IHRoZSB0eXBlcyBsaXN0
ZWQgaW4gdGhlIEhUTUw1ICJzdHJ1Y3R1cmVkIGNsb25lIGFsZ29yaXRobSIKKyAgICAgICAgcm91
bmQgdHJpcCBwcm9wZXJseSB0aHJvdWdoIEluZGV4ZWQgREIgc3RvcmFnZS4gVHlwZXMgd2l0aCBp
bmNvbXBsZXRlCisgICAgICAgIHN1cHBvcnQgaW4gdGhlIENocm9taXVtIHBvcnQgYXJlIGV4Y2x1
ZGVkIChodHRwOi8vY3JidWcuY29tLzEwODAxMikKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy90ZXN0
LWRhdGEuaHRtbDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2Vz
L3Rlc3QtZGF0YS50eHQ6IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3N0cnVj
dHVyZWQtY2xvbmUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2luZGV4
ZWRkYi9zdHJ1Y3R1cmVkLWNsb25lLmh0bWw6IEFkZGVkLgorCiAyMDEyLTAxLTI2ICBZdXpvIEZ1
amlzaGltYSAgPHl1em9AZ29vZ2xlLmNvbT4KIAogICAgICAgICBbQ2hyb21pdW1dIFVucmV2aWV3
ZWQgdGVzdCBleHBlY3RhdGlvbiBjaGFuZ2UuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvdGVzdC1kYXRhLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvdGVzdC1kYXRhLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzViZGIy
OGFkNTkyYWUyZmFmOGM3YTkzYzczY2UwMmJjZjIwZmQwMgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy90ZXN0LWRhdGEuaHRtbApAQCAt
MCwwICsxLDQgQEAKKzwhRE9DVFlQRSBodG1sPgorPHRpdGxlPlRoaXMgaXMgc29tZSB0ZXN0IGRh
dGE8L3RpdGxlPgorPGgxPlRlc3QgZGF0YSE8L2gxPgorPHA+R2V0IHlvdXIgdGVzdCBkYXRhIGhl
cmUhCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMv
dGVzdC1kYXRhLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy90
ZXN0LWRhdGEudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRlZTNhMmQzYzdlNmExNzZmYWNhN2U1MDg3NTg2MmQ0
MWI3ZDNlY2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9yZXNvdXJjZXMvdGVzdC1kYXRhLnR4dApAQCAtMCwwICsxIEBACitMb3JlbSBpcHN1bSBkb2xv
ciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlzY2luZyBlbGl0LiBBZW5lYW4gbGFvcmVldCBk
b2xvciBpZCB1cm5hIGVsZWlmZW5kIGFsaXF1ZXQuIE51bGxhIHZlbCBkb2xvciBpcHN1bS4gQWxp
cXVhbSB1dCB0dXJwaXMgbmlzbCwgaW4gdnVscHV0YXRlIHNhcGllbi4gQ3VtIHNvY2lpcyBuYXRv
cXVlIHBlbmF0aWJ1cyBldCBtYWduaXMgZGlzIHBhcnR1cmllbnQgbW9udGVzLCBuYXNjZXR1ciBy
aWRpY3VsdXMgbXVzLiBTZWQgY29uZ3VlIG1hZ25hIHZpdGFlIGRvbG9yIGZldWdpYXQgdmVoaWN1
bGEuIFNlZCB2b2x1dHBhdCwgdGVsbHVzIHZlbCB2YXJpdXMgdmVzdGlidWx1bSwgcHVydXMgcXVh
bSBtb2xsaXMgc2FwaWVuLCBpbiBjb25kaW1lbnR1bSBsZW8gbmVxdWUgc2VkIG51bGxhLiBOdW5j
IHF1aXMgcG9ydGEgZWxpdC4gUGVsbGVudGVzcXVlIGVyYXQgbGVjdHVzLCB1bHRyaWNpZXMgYSBs
b2JvcnRpcyBpZCwgZmF1Y2lidXMgaWQgcXVhbS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL3N0cnVjdHVyZWQtY2xvbmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvc3RydWN0dXJlZC1jbG9uZS1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZDM1NDcyODNhMGM1OWYzYTg2YmI5OTlmNDE4MDNlZTQzNGM2YTY5MgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3N0cnVjdHVyZWQtY2xvbmUt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNjgzIEBACisKK1Rlc3Qgc3RydWN0dXJlZCBjbG9uZSBw
ZXJtdXRhdGlvbnMgaW4gSW5kZXhlZERCLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisK
KworaW5kZXhlZERCID0gd2luZG93LmluZGV4ZWREQiB8fCB3aW5kb3cud2Via2l0SW5kZXhlZERC
CitQQVNTIGluZGV4ZWREQiAhPSBudWxsIGlzIHRydWUKK0lEQlRyYW5zYWN0aW9uID0gd2luZG93
LklEQlRyYW5zYWN0aW9uIHx8IHdpbmRvdy53ZWJraXRJREJUcmFuc2FjdGlvbgorUEFTUyBJREJU
cmFuc2FjdGlvbiAhPSBudWxsIGlzIHRydWUKKworUHJlcGFyZSBEYXRhYmFzZQoraW5kZXhlZERC
LmRlbGV0ZURhdGFiYXNlKCdzdHJ1Y3R1cmVkLWNsb25lJykKK2luZGV4ZWREQi5vcGVuKCdzdHJ1
Y3R1cmVkLWNsb25lJykKK2RiID0gcmVxdWVzdC5yZXN1bHQKK1BBU1MgZGIudmVyc2lvbiBpcyAi
IgorZGIuc2V0VmVyc2lvbignMScpCitkYi5jcmVhdGVPYmplY3RTdG9yZSgnc3RvcmVOYW1lJykK
KworUnVubmluZyB0ZXN0cy4uLgorCitUZXN0aW5nOiB1bmRlZmluZWQKK3RyYW5zYWN0aW9uID0g
ZGIudHJhbnNhY3Rpb24oJ3N0b3JlTmFtZScsIElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUpCitz
dG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKQordmFsdWUgaXM6IHVu
ZGVmaW5lZCAodHlwZTogdW5kZWZpbmVkKQorc3RvcmUucHV0KHZhbHVlLCAna2V5JykKK3N0b3Jl
LmdldCgna2V5JykKK1BBU1MgaXModGVzdF9kYXRhLCByZXN1bHQpIGlzIHRydWUKKworCitUZXN0
aW5nOiBudWxsCit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUnLCBJREJU
cmFuc2FjdGlvbi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgn
c3RvcmVOYW1lJykKK3ZhbHVlIGlzOiBudWxsICh0eXBlOiBvYmplY3QpCitzdG9yZS5wdXQodmFs
dWUsICdrZXknKQorc3RvcmUuZ2V0KCdrZXknKQorUEFTUyBpcyh0ZXN0X2RhdGEsIHJlc3VsdCkg
aXMgdHJ1ZQorCisKK1Rlc3RpbmcgYm9vbGVhbiBwcmltaXRpdmVzCisKK1Rlc3Rpbmc6IHRydWUK
K3RyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24oJ3N0b3JlTmFtZScsIElEQlRyYW5zYWN0aW9u
LlJFQURfV1JJVEUpCitzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUn
KQordmFsdWUgaXM6IHRydWUgKHR5cGU6IGJvb2xlYW4pCitzdG9yZS5wdXQodmFsdWUsICdrZXkn
KQorc3RvcmUuZ2V0KCdrZXknKQorUEFTUyBpcyh0ZXN0X2RhdGEsIHJlc3VsdCkgaXMgdHJ1ZQor
CitUZXN0aW5nOiBmYWxzZQordHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1l
JywgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkKK3N0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0
U3RvcmUoJ3N0b3JlTmFtZScpCit2YWx1ZSBpczogZmFsc2UgKHR5cGU6IGJvb2xlYW4pCitzdG9y
ZS5wdXQodmFsdWUsICdrZXknKQorc3RvcmUuZ2V0KCdrZXknKQorUEFTUyBpcyh0ZXN0X2RhdGEs
IHJlc3VsdCkgaXMgdHJ1ZQorCisKK1Rlc3RpbmcgbnVtYmVyIHByaW1pdGl2ZXMKKworVGVzdGlu
ZzogTmFOCit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUnLCBJREJUcmFu
c2FjdGlvbi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3Rv
cmVOYW1lJykKK3ZhbHVlIGlzOiBOYU4gKHR5cGU6IG51bWJlcikKK3N0b3JlLnB1dCh2YWx1ZSwg
J2tleScpCitzdG9yZS5nZXQoJ2tleScpCitQQVNTIGlzKHRlc3RfZGF0YSwgcmVzdWx0KSBpcyB0
cnVlCisKK1Rlc3Rpbmc6IC1JbmZpbml0eQordHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbign
c3RvcmVOYW1lJywgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkKK3N0b3JlID0gdHJhbnNhY3Rp
b24ub2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpCit2YWx1ZSBpczogLUluZmluaXR5ICh0eXBlOiBu
dW1iZXIpCitzdG9yZS5wdXQodmFsdWUsICdrZXknKQorc3RvcmUuZ2V0KCdrZXknKQorUEFTUyBp
cyh0ZXN0X2RhdGEsIHJlc3VsdCkgaXMgdHJ1ZQorCitUZXN0aW5nOiAtTnVtYmVyLk1BWF9WQUxV
RQordHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1lJywgSURCVHJhbnNhY3Rp
b24uUkVBRF9XUklURSkKK3N0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3JlTmFt
ZScpCit2YWx1ZSBpczogLTEuNzk3NjkzMTM0ODYyMzE1N2UrMzA4ICh0eXBlOiBudW1iZXIpCitz
dG9yZS5wdXQodmFsdWUsICdrZXknKQorc3RvcmUuZ2V0KCdrZXknKQorUEFTUyBpcyh0ZXN0X2Rh
dGEsIHJlc3VsdCkgaXMgdHJ1ZQorCitUZXN0aW5nOiAtTnVtYmVyLk1JTl9WQUxVRQordHJhbnNh
Y3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1lJywgSURCVHJhbnNhY3Rpb24uUkVBRF9X
UklURSkKK3N0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpCit2YWx1
ZSBpczogLTVlLTMyNCAodHlwZTogbnVtYmVyKQorc3RvcmUucHV0KHZhbHVlLCAna2V5JykKK3N0
b3JlLmdldCgna2V5JykKK1BBU1MgaXModGVzdF9kYXRhLCByZXN1bHQpIGlzIHRydWUKKworVGVz
dGluZzogLTAKK3RyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24oJ3N0b3JlTmFtZScsIElEQlRy
YW5zYWN0aW9uLlJFQURfV1JJVEUpCitzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdz
dG9yZU5hbWUnKQordmFsdWUgaXM6IDAgKHR5cGU6IG51bWJlcikKK3N0b3JlLnB1dCh2YWx1ZSwg
J2tleScpCitzdG9yZS5nZXQoJ2tleScpCitQQVNTIGlzKHRlc3RfZGF0YSwgcmVzdWx0KSBpcyB0
cnVlCisKK1Rlc3Rpbmc6IDAKK3RyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24oJ3N0b3JlTmFt
ZScsIElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUpCitzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVj
dFN0b3JlKCdzdG9yZU5hbWUnKQordmFsdWUgaXM6IDAgKHR5cGU6IG51bWJlcikKK3N0b3JlLnB1
dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5nZXQoJ2tleScpCitQQVNTIGlzKHRlc3RfZGF0YSwgcmVz
dWx0KSBpcyB0cnVlCisKK1Rlc3Rpbmc6IE51bWJlci5NSU5fVkFMVUUKK3RyYW5zYWN0aW9uID0g
ZGIudHJhbnNhY3Rpb24oJ3N0b3JlTmFtZScsIElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUpCitz
dG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKQordmFsdWUgaXM6IDVl
LTMyNCAodHlwZTogbnVtYmVyKQorc3RvcmUucHV0KHZhbHVlLCAna2V5JykKK3N0b3JlLmdldCgn
a2V5JykKK1BBU1MgaXModGVzdF9kYXRhLCByZXN1bHQpIGlzIHRydWUKKworVGVzdGluZzogTnVt
YmVyLk1BWF9WQUxVRQordHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1lJywg
SURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkKK3N0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3Rv
cmUoJ3N0b3JlTmFtZScpCit2YWx1ZSBpczogMS43OTc2OTMxMzQ4NjIzMTU3ZSszMDggKHR5cGU6
IG51bWJlcikKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5nZXQoJ2tleScpCitQQVNT
IGlzKHRlc3RfZGF0YSwgcmVzdWx0KSBpcyB0cnVlCisKK1Rlc3Rpbmc6IEluZmluaXR5Cit0cmFu
c2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUnLCBJREJUcmFuc2FjdGlvbi5SRUFE
X1dSSVRFKQorc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmVOYW1lJykKK3Zh
bHVlIGlzOiBJbmZpbml0eSAodHlwZTogbnVtYmVyKQorc3RvcmUucHV0KHZhbHVlLCAna2V5JykK
K3N0b3JlLmdldCgna2V5JykKK1BBU1MgaXModGVzdF9kYXRhLCByZXN1bHQpIGlzIHRydWUKKwor
CitUZXN0aW5nIHN0cmluZyBwcmltaXRpdmVzCisKK1Rlc3Rpbmc6ICcnCit0cmFuc2FjdGlvbiA9
IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUnLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKQor
c3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmVOYW1lJykKK3ZhbHVlIGlzOiAg
KHR5cGU6IHN0cmluZykKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5nZXQoJ2tleScp
CitQQVNTIGlzKHRlc3RfZGF0YSwgcmVzdWx0KSBpcyB0cnVlCisKK1Rlc3Rpbmc6ICd0aGlzIGlz
IGEgc2FtcGxlIHN0cmluZycKK3RyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24oJ3N0b3JlTmFt
ZScsIElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUpCitzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVj
dFN0b3JlKCdzdG9yZU5hbWUnKQordmFsdWUgaXM6IHRoaXMgaXMgYSBzYW1wbGUgc3RyaW5nICh0
eXBlOiBzdHJpbmcpCitzdG9yZS5wdXQodmFsdWUsICdrZXknKQorc3RvcmUuZ2V0KCdrZXknKQor
UEFTUyBpcyh0ZXN0X2RhdGEsIHJlc3VsdCkgaXMgdHJ1ZQorCitUZXN0aW5nOiAnbnVsbChcMCkn
Cit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUnLCBJREJUcmFuc2FjdGlv
bi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmVOYW1l
JykKK3ZhbHVlIGlzOiBudWxsKCkgKHR5cGU6IHN0cmluZykKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tl
eScpCitzdG9yZS5nZXQoJ2tleScpCitQQVNTIGlzKHRlc3RfZGF0YSwgcmVzdWx0KSBpcyB0cnVl
CisKKworVGVzdGluZyBCb29sZWFuIG9iamVjdHMKKworVGVzdGluZzogbmV3IEJvb2xlYW4odHJ1
ZSkKK3RyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24oJ3N0b3JlTmFtZScsIElEQlRyYW5zYWN0
aW9uLlJFQURfV1JJVEUpCitzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZU5h
bWUnKQordmFsdWUgaXM6IHRydWUgKHR5cGU6IG9iamVjdCkKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tl
eScpCitzdG9yZS5nZXQoJ2tleScpCitTdHJpbmcocmVzdWx0KTogdHJ1ZQorUEFTUyB0eXBlb2Yg
cmVzdWx0IGlzICJvYmplY3QiCitQQVNTIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChy
ZXN1bHQpIGlzIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0ZXN0X2RhdGEpCitQQVNT
IHRlc3RfZGF0YSAhPT0gcmVzdWx0IGlzIHRydWUKK1BBU1MgcmVzdWx0LnRvU3RyaW5nKCkgaXMg
dGVzdF9kYXRhLnRvU3RyaW5nKCkKK1BBU1MgaXModGVzdF9kYXRhLnZhbHVlT2YoKSwgcmVzdWx0
LnZhbHVlT2YoKSkgaXMgdHJ1ZQorCitUZXN0aW5nOiBuZXcgQm9vbGVhbihmYWxzZSkKK3RyYW5z
YWN0aW9uID0gZGIudHJhbnNhY3Rpb24oJ3N0b3JlTmFtZScsIElEQlRyYW5zYWN0aW9uLlJFQURf
V1JJVEUpCitzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKQordmFs
dWUgaXM6IGZhbHNlICh0eXBlOiBvYmplY3QpCitzdG9yZS5wdXQodmFsdWUsICdrZXknKQorc3Rv
cmUuZ2V0KCdrZXknKQorU3RyaW5nKHJlc3VsdCk6IGZhbHNlCitQQVNTIHR5cGVvZiByZXN1bHQg
aXMgIm9iamVjdCIKK1BBU1MgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHJlc3VsdCkg
aXMgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHRlc3RfZGF0YSkKK1BBU1MgdGVzdF9k
YXRhICE9PSByZXN1bHQgaXMgdHJ1ZQorUEFTUyByZXN1bHQudG9TdHJpbmcoKSBpcyB0ZXN0X2Rh
dGEudG9TdHJpbmcoKQorUEFTUyBpcyh0ZXN0X2RhdGEudmFsdWVPZigpLCByZXN1bHQudmFsdWVP
ZigpKSBpcyB0cnVlCisKKworVGVzdGluZyBOdW1iZXIgb2JqZWN0cworCitUZXN0aW5nOiBuZXcg
TnVtYmVyKE5hTikKK3RyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24oJ3N0b3JlTmFtZScsIElE
QlRyYW5zYWN0aW9uLlJFQURfV1JJVEUpCitzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3Jl
KCdzdG9yZU5hbWUnKQordmFsdWUgaXM6IE5hTiAodHlwZTogb2JqZWN0KQorc3RvcmUucHV0KHZh
bHVlLCAna2V5JykKK3N0b3JlLmdldCgna2V5JykKK1N0cmluZyhyZXN1bHQpOiBOYU4KK1BBU1Mg
dHlwZW9mIHJlc3VsdCBpcyAib2JqZWN0IgorUEFTUyBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5n
LmNhbGwocmVzdWx0KSBpcyBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodGVzdF9kYXRh
KQorUEFTUyB0ZXN0X2RhdGEgIT09IHJlc3VsdCBpcyB0cnVlCitQQVNTIHJlc3VsdC50b1N0cmlu
ZygpIGlzIHRlc3RfZGF0YS50b1N0cmluZygpCitQQVNTIGlzKHRlc3RfZGF0YS52YWx1ZU9mKCks
IHJlc3VsdC52YWx1ZU9mKCkpIGlzIHRydWUKKworVGVzdGluZzogbmV3IE51bWJlcigtSW5maW5p
dHkpCit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUnLCBJREJUcmFuc2Fj
dGlvbi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmVO
YW1lJykKK3ZhbHVlIGlzOiAtSW5maW5pdHkgKHR5cGU6IG9iamVjdCkKK3N0b3JlLnB1dCh2YWx1
ZSwgJ2tleScpCitzdG9yZS5nZXQoJ2tleScpCitTdHJpbmcocmVzdWx0KTogLUluZmluaXR5CitQ
QVNTIHR5cGVvZiByZXN1bHQgaXMgIm9iamVjdCIKK1BBU1MgT2JqZWN0LnByb3RvdHlwZS50b1N0
cmluZy5jYWxsKHJlc3VsdCkgaXMgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHRlc3Rf
ZGF0YSkKK1BBU1MgdGVzdF9kYXRhICE9PSByZXN1bHQgaXMgdHJ1ZQorUEFTUyByZXN1bHQudG9T
dHJpbmcoKSBpcyB0ZXN0X2RhdGEudG9TdHJpbmcoKQorUEFTUyBpcyh0ZXN0X2RhdGEudmFsdWVP
ZigpLCByZXN1bHQudmFsdWVPZigpKSBpcyB0cnVlCisKK1Rlc3Rpbmc6IG5ldyBOdW1iZXIoLU51
bWJlci5NQVhfVkFMVUUpCit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUn
LCBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RT
dG9yZSgnc3RvcmVOYW1lJykKK3ZhbHVlIGlzOiAtMS43OTc2OTMxMzQ4NjIzMTU3ZSszMDggKHR5
cGU6IG9iamVjdCkKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5nZXQoJ2tleScpCitT
dHJpbmcocmVzdWx0KTogLTEuNzk3NjkzMTM0ODYyMzE1N2UrMzA4CitQQVNTIHR5cGVvZiByZXN1
bHQgaXMgIm9iamVjdCIKK1BBU1MgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHJlc3Vs
dCkgaXMgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHRlc3RfZGF0YSkKK1BBU1MgdGVz
dF9kYXRhICE9PSByZXN1bHQgaXMgdHJ1ZQorUEFTUyByZXN1bHQudG9TdHJpbmcoKSBpcyB0ZXN0
X2RhdGEudG9TdHJpbmcoKQorUEFTUyBpcyh0ZXN0X2RhdGEudmFsdWVPZigpLCByZXN1bHQudmFs
dWVPZigpKSBpcyB0cnVlCisKK1Rlc3Rpbmc6IG5ldyBOdW1iZXIoLU51bWJlci5NSU5fVkFMVUUp
Cit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUnLCBJREJUcmFuc2FjdGlv
bi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmVOYW1l
JykKK3ZhbHVlIGlzOiAtNWUtMzI0ICh0eXBlOiBvYmplY3QpCitzdG9yZS5wdXQodmFsdWUsICdr
ZXknKQorc3RvcmUuZ2V0KCdrZXknKQorU3RyaW5nKHJlc3VsdCk6IC01ZS0zMjQKK1BBU1MgdHlw
ZW9mIHJlc3VsdCBpcyAib2JqZWN0IgorUEFTUyBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNh
bGwocmVzdWx0KSBpcyBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodGVzdF9kYXRhKQor
UEFTUyB0ZXN0X2RhdGEgIT09IHJlc3VsdCBpcyB0cnVlCitQQVNTIHJlc3VsdC50b1N0cmluZygp
IGlzIHRlc3RfZGF0YS50b1N0cmluZygpCitQQVNTIGlzKHRlc3RfZGF0YS52YWx1ZU9mKCksIHJl
c3VsdC52YWx1ZU9mKCkpIGlzIHRydWUKKworVGVzdGluZzogbmV3IE51bWJlcigtMCkKK3RyYW5z
YWN0aW9uID0gZGIudHJhbnNhY3Rpb24oJ3N0b3JlTmFtZScsIElEQlRyYW5zYWN0aW9uLlJFQURf
V1JJVEUpCitzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKQordmFs
dWUgaXM6IDAgKHR5cGU6IG9iamVjdCkKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5n
ZXQoJ2tleScpCitTdHJpbmcocmVzdWx0KTogMAorUEFTUyB0eXBlb2YgcmVzdWx0IGlzICJvYmpl
Y3QiCitQQVNTIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChyZXN1bHQpIGlzIE9iamVj
dC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0ZXN0X2RhdGEpCitQQVNTIHRlc3RfZGF0YSAhPT0g
cmVzdWx0IGlzIHRydWUKK1BBU1MgcmVzdWx0LnRvU3RyaW5nKCkgaXMgdGVzdF9kYXRhLnRvU3Ry
aW5nKCkKK1BBU1MgaXModGVzdF9kYXRhLnZhbHVlT2YoKSwgcmVzdWx0LnZhbHVlT2YoKSkgaXMg
dHJ1ZQorCitUZXN0aW5nOiBuZXcgTnVtYmVyKDApCit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0
aW9uKCdzdG9yZU5hbWUnLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFu
c2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmVOYW1lJykKK3ZhbHVlIGlzOiAwICh0eXBlOiBvYmpl
Y3QpCitzdG9yZS5wdXQodmFsdWUsICdrZXknKQorc3RvcmUuZ2V0KCdrZXknKQorU3RyaW5nKHJl
c3VsdCk6IDAKK1BBU1MgdHlwZW9mIHJlc3VsdCBpcyAib2JqZWN0IgorUEFTUyBPYmplY3QucHJv
dG90eXBlLnRvU3RyaW5nLmNhbGwocmVzdWx0KSBpcyBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5n
LmNhbGwodGVzdF9kYXRhKQorUEFTUyB0ZXN0X2RhdGEgIT09IHJlc3VsdCBpcyB0cnVlCitQQVNT
IHJlc3VsdC50b1N0cmluZygpIGlzIHRlc3RfZGF0YS50b1N0cmluZygpCitQQVNTIGlzKHRlc3Rf
ZGF0YS52YWx1ZU9mKCksIHJlc3VsdC52YWx1ZU9mKCkpIGlzIHRydWUKKworVGVzdGluZzogbmV3
IE51bWJlcihOdW1iZXIuTUlOX1ZBTFVFKQordHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbign
c3RvcmVOYW1lJywgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkKK3N0b3JlID0gdHJhbnNhY3Rp
b24ub2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpCit2YWx1ZSBpczogNWUtMzI0ICh0eXBlOiBvYmpl
Y3QpCitzdG9yZS5wdXQodmFsdWUsICdrZXknKQorc3RvcmUuZ2V0KCdrZXknKQorU3RyaW5nKHJl
c3VsdCk6IDVlLTMyNAorUEFTUyB0eXBlb2YgcmVzdWx0IGlzICJvYmplY3QiCitQQVNTIE9iamVj
dC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChyZXN1bHQpIGlzIE9iamVjdC5wcm90b3R5cGUudG9T
dHJpbmcuY2FsbCh0ZXN0X2RhdGEpCitQQVNTIHRlc3RfZGF0YSAhPT0gcmVzdWx0IGlzIHRydWUK
K1BBU1MgcmVzdWx0LnRvU3RyaW5nKCkgaXMgdGVzdF9kYXRhLnRvU3RyaW5nKCkKK1BBU1MgaXMo
dGVzdF9kYXRhLnZhbHVlT2YoKSwgcmVzdWx0LnZhbHVlT2YoKSkgaXMgdHJ1ZQorCitUZXN0aW5n
OiBuZXcgTnVtYmVyKE51bWJlci5NQVhfVkFMVUUpCit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0
aW9uKCdzdG9yZU5hbWUnLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFu
c2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmVOYW1lJykKK3ZhbHVlIGlzOiAxLjc5NzY5MzEzNDg2
MjMxNTdlKzMwOCAodHlwZTogb2JqZWN0KQorc3RvcmUucHV0KHZhbHVlLCAna2V5JykKK3N0b3Jl
LmdldCgna2V5JykKK1N0cmluZyhyZXN1bHQpOiAxLjc5NzY5MzEzNDg2MjMxNTdlKzMwOAorUEFT
UyB0eXBlb2YgcmVzdWx0IGlzICJvYmplY3QiCitQQVNTIE9iamVjdC5wcm90b3R5cGUudG9TdHJp
bmcuY2FsbChyZXN1bHQpIGlzIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0ZXN0X2Rh
dGEpCitQQVNTIHRlc3RfZGF0YSAhPT0gcmVzdWx0IGlzIHRydWUKK1BBU1MgcmVzdWx0LnRvU3Ry
aW5nKCkgaXMgdGVzdF9kYXRhLnRvU3RyaW5nKCkKK1BBU1MgaXModGVzdF9kYXRhLnZhbHVlT2Yo
KSwgcmVzdWx0LnZhbHVlT2YoKSkgaXMgdHJ1ZQorCitUZXN0aW5nOiBuZXcgTnVtYmVyKEluZmlu
aXR5KQordHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1lJywgSURCVHJhbnNh
Y3Rpb24uUkVBRF9XUklURSkKK3N0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3Jl
TmFtZScpCit2YWx1ZSBpczogSW5maW5pdHkgKHR5cGU6IG9iamVjdCkKK3N0b3JlLnB1dCh2YWx1
ZSwgJ2tleScpCitzdG9yZS5nZXQoJ2tleScpCitTdHJpbmcocmVzdWx0KTogSW5maW5pdHkKK1BB
U1MgdHlwZW9mIHJlc3VsdCBpcyAib2JqZWN0IgorUEFTUyBPYmplY3QucHJvdG90eXBlLnRvU3Ry
aW5nLmNhbGwocmVzdWx0KSBpcyBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodGVzdF9k
YXRhKQorUEFTUyB0ZXN0X2RhdGEgIT09IHJlc3VsdCBpcyB0cnVlCitQQVNTIHJlc3VsdC50b1N0
cmluZygpIGlzIHRlc3RfZGF0YS50b1N0cmluZygpCitQQVNTIGlzKHRlc3RfZGF0YS52YWx1ZU9m
KCksIHJlc3VsdC52YWx1ZU9mKCkpIGlzIHRydWUKKworCitUZXN0aW5nIFN0cmluZyBvYmplY3Rz
CisKK1Rlc3Rpbmc6IG5ldyBTdHJpbmcoKQordHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbign
c3RvcmVOYW1lJywgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkKK3N0b3JlID0gdHJhbnNhY3Rp
b24ub2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpCit2YWx1ZSBpczogICh0eXBlOiBvYmplY3QpCitz
dG9yZS5wdXQodmFsdWUsICdrZXknKQorc3RvcmUuZ2V0KCdrZXknKQorU3RyaW5nKHJlc3VsdCk6
IAorUEFTUyB0eXBlb2YgcmVzdWx0IGlzICJvYmplY3QiCitQQVNTIE9iamVjdC5wcm90b3R5cGUu
dG9TdHJpbmcuY2FsbChyZXN1bHQpIGlzIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0
ZXN0X2RhdGEpCitQQVNTIHRlc3RfZGF0YSAhPT0gcmVzdWx0IGlzIHRydWUKK1BBU1MgcmVzdWx0
LnRvU3RyaW5nKCkgaXMgdGVzdF9kYXRhLnRvU3RyaW5nKCkKK1BBU1MgaXModGVzdF9kYXRhLnZh
bHVlT2YoKSwgcmVzdWx0LnZhbHVlT2YoKSkgaXMgdHJ1ZQorCitUZXN0aW5nOiBuZXcgU3RyaW5n
KCd0aGlzIGlzIGEgc2FtcGxlIHN0cmluZycpCit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9u
KCdzdG9yZU5hbWUnLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFuc2Fj
dGlvbi5vYmplY3RTdG9yZSgnc3RvcmVOYW1lJykKK3ZhbHVlIGlzOiB0aGlzIGlzIGEgc2FtcGxl
IHN0cmluZyAodHlwZTogb2JqZWN0KQorc3RvcmUucHV0KHZhbHVlLCAna2V5JykKK3N0b3JlLmdl
dCgna2V5JykKK1N0cmluZyhyZXN1bHQpOiB0aGlzIGlzIGEgc2FtcGxlIHN0cmluZworUEFTUyB0
eXBlb2YgcmVzdWx0IGlzICJvYmplY3QiCitQQVNTIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcu
Y2FsbChyZXN1bHQpIGlzIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0ZXN0X2RhdGEp
CitQQVNTIHRlc3RfZGF0YSAhPT0gcmVzdWx0IGlzIHRydWUKK1BBU1MgcmVzdWx0LnRvU3RyaW5n
KCkgaXMgdGVzdF9kYXRhLnRvU3RyaW5nKCkKK1BBU1MgaXModGVzdF9kYXRhLnZhbHVlT2YoKSwg
cmVzdWx0LnZhbHVlT2YoKSkgaXMgdHJ1ZQorCitUZXN0aW5nOiBuZXcgU3RyaW5nKCdudWxsKFww
KScpCit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUnLCBJREJUcmFuc2Fj
dGlvbi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmVO
YW1lJykKK3ZhbHVlIGlzOiBudWxsKCkgKHR5cGU6IG9iamVjdCkKK3N0b3JlLnB1dCh2YWx1ZSwg
J2tleScpCitzdG9yZS5nZXQoJ2tleScpCitTdHJpbmcocmVzdWx0KTogbnVsbCgpCitQQVNTIHR5
cGVvZiByZXN1bHQgaXMgIm9iamVjdCIKK1BBU1MgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5j
YWxsKHJlc3VsdCkgaXMgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHRlc3RfZGF0YSkK
K1BBU1MgdGVzdF9kYXRhICE9PSByZXN1bHQgaXMgdHJ1ZQorUEFTUyByZXN1bHQudG9TdHJpbmco
KSBpcyB0ZXN0X2RhdGEudG9TdHJpbmcoKQorUEFTUyBpcyh0ZXN0X2RhdGEudmFsdWVPZigpLCBy
ZXN1bHQudmFsdWVPZigpKSBpcyB0cnVlCisKKworVGVzdGluZyBEYXRlIG9iamVjdHMKKworVGVz
dGluZzogbmV3IERhdGUoLTFlMTMpCit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdzdG9y
ZU5hbWUnLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFuc2FjdGlvbi5v
YmplY3RTdG9yZSgnc3RvcmVOYW1lJykKK3ZhbHVlIGlzOiBTdW4gRmViIDA5IDE2NTMgMjI6MTM6
MjAgR01ULTA4MDAgKFBTVCkgKHR5cGU6IG9iamVjdCkKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScp
CitzdG9yZS5nZXQoJ2tleScpCitTdHJpbmcocmVzdWx0KTogU3VuIEZlYiAwOSAxNjUzIDIyOjEz
OjIwIEdNVC0wODAwIChQU1QpCitQQVNTIHR5cGVvZiByZXN1bHQgaXMgIm9iamVjdCIKK1BBU1Mg
T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHJlc3VsdCkgaXMgT2JqZWN0LnByb3RvdHlw
ZS50b1N0cmluZy5jYWxsKHRlc3RfZGF0YSkKK1BBU1MgdGVzdF9kYXRhICE9PSByZXN1bHQgaXMg
dHJ1ZQorUEFTUyByZXN1bHQudG9TdHJpbmcoKSBpcyB0ZXN0X2RhdGEudG9TdHJpbmcoKQorUEFT
UyBpcyh0ZXN0X2RhdGEudmFsdWVPZigpLCByZXN1bHQudmFsdWVPZigpKSBpcyB0cnVlCisKK1Rl
c3Rpbmc6IG5ldyBEYXRlKC0xZTEyKQordHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3Rv
cmVOYW1lJywgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkKK3N0b3JlID0gdHJhbnNhY3Rpb24u
b2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpCit2YWx1ZSBpczogU3VuIEFwciAyNCAxOTM4IDE1OjEz
OjIwIEdNVC0wNzAwIChQRFQpICh0eXBlOiBvYmplY3QpCitzdG9yZS5wdXQodmFsdWUsICdrZXkn
KQorc3RvcmUuZ2V0KCdrZXknKQorU3RyaW5nKHJlc3VsdCk6IFN1biBBcHIgMjQgMTkzOCAxNTox
MzoyMCBHTVQtMDcwMCAoUERUKQorUEFTUyB0eXBlb2YgcmVzdWx0IGlzICJvYmplY3QiCitQQVNT
IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChyZXN1bHQpIGlzIE9iamVjdC5wcm90b3R5
cGUudG9TdHJpbmcuY2FsbCh0ZXN0X2RhdGEpCitQQVNTIHRlc3RfZGF0YSAhPT0gcmVzdWx0IGlz
IHRydWUKK1BBU1MgcmVzdWx0LnRvU3RyaW5nKCkgaXMgdGVzdF9kYXRhLnRvU3RyaW5nKCkKK1BB
U1MgaXModGVzdF9kYXRhLnZhbHVlT2YoKSwgcmVzdWx0LnZhbHVlT2YoKSkgaXMgdHJ1ZQorCitU
ZXN0aW5nOiBuZXcgRGF0ZSgtMWU5KQordHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3Rv
cmVOYW1lJywgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkKK3N0b3JlID0gdHJhbnNhY3Rpb24u
b2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpCit2YWx1ZSBpczogU2F0IERlYyAyMCAxOTY5IDAyOjEz
OjIwIEdNVC0wODAwIChQU1QpICh0eXBlOiBvYmplY3QpCitzdG9yZS5wdXQodmFsdWUsICdrZXkn
KQorc3RvcmUuZ2V0KCdrZXknKQorU3RyaW5nKHJlc3VsdCk6IFNhdCBEZWMgMjAgMTk2OSAwMjox
MzoyMCBHTVQtMDgwMCAoUFNUKQorUEFTUyB0eXBlb2YgcmVzdWx0IGlzICJvYmplY3QiCitQQVNT
IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChyZXN1bHQpIGlzIE9iamVjdC5wcm90b3R5
cGUudG9TdHJpbmcuY2FsbCh0ZXN0X2RhdGEpCitQQVNTIHRlc3RfZGF0YSAhPT0gcmVzdWx0IGlz
IHRydWUKK1BBU1MgcmVzdWx0LnRvU3RyaW5nKCkgaXMgdGVzdF9kYXRhLnRvU3RyaW5nKCkKK1BB
U1MgaXModGVzdF9kYXRhLnZhbHVlT2YoKSwgcmVzdWx0LnZhbHVlT2YoKSkgaXMgdHJ1ZQorCitU
ZXN0aW5nOiBuZXcgRGF0ZSgtMWU2KQordHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3Rv
cmVOYW1lJywgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkKK3N0b3JlID0gdHJhbnNhY3Rpb24u
b2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpCit2YWx1ZSBpczogV2VkIERlYyAzMSAxOTY5IDE1OjQz
OjIwIEdNVC0wODAwIChQU1QpICh0eXBlOiBvYmplY3QpCitzdG9yZS5wdXQodmFsdWUsICdrZXkn
KQorc3RvcmUuZ2V0KCdrZXknKQorU3RyaW5nKHJlc3VsdCk6IFdlZCBEZWMgMzEgMTk2OSAxNTo0
MzoyMCBHTVQtMDgwMCAoUFNUKQorUEFTUyB0eXBlb2YgcmVzdWx0IGlzICJvYmplY3QiCitQQVNT
IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChyZXN1bHQpIGlzIE9iamVjdC5wcm90b3R5
cGUudG9TdHJpbmcuY2FsbCh0ZXN0X2RhdGEpCitQQVNTIHRlc3RfZGF0YSAhPT0gcmVzdWx0IGlz
IHRydWUKK1BBU1MgcmVzdWx0LnRvU3RyaW5nKCkgaXMgdGVzdF9kYXRhLnRvU3RyaW5nKCkKK1BB
U1MgaXModGVzdF9kYXRhLnZhbHVlT2YoKSwgcmVzdWx0LnZhbHVlT2YoKSkgaXMgdHJ1ZQorCitU
ZXN0aW5nOiBuZXcgRGF0ZSgtMWUzKQordHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3Rv
cmVOYW1lJywgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkKK3N0b3JlID0gdHJhbnNhY3Rpb24u
b2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpCit2YWx1ZSBpczogV2VkIERlYyAzMSAxOTY5IDE1OjU5
OjU5IEdNVC0wODAwIChQU1QpICh0eXBlOiBvYmplY3QpCitzdG9yZS5wdXQodmFsdWUsICdrZXkn
KQorc3RvcmUuZ2V0KCdrZXknKQorU3RyaW5nKHJlc3VsdCk6IFdlZCBEZWMgMzEgMTk2OSAxNTo1
OTo1OSBHTVQtMDgwMCAoUFNUKQorUEFTUyB0eXBlb2YgcmVzdWx0IGlzICJvYmplY3QiCitQQVNT
IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChyZXN1bHQpIGlzIE9iamVjdC5wcm90b3R5
cGUudG9TdHJpbmcuY2FsbCh0ZXN0X2RhdGEpCitQQVNTIHRlc3RfZGF0YSAhPT0gcmVzdWx0IGlz
IHRydWUKK1BBU1MgcmVzdWx0LnRvU3RyaW5nKCkgaXMgdGVzdF9kYXRhLnRvU3RyaW5nKCkKK1BB
U1MgaXModGVzdF9kYXRhLnZhbHVlT2YoKSwgcmVzdWx0LnZhbHVlT2YoKSkgaXMgdHJ1ZQorCitU
ZXN0aW5nOiBuZXcgRGF0ZSgwKQordHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3RvcmVO
YW1lJywgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkKK3N0b3JlID0gdHJhbnNhY3Rpb24ub2Jq
ZWN0U3RvcmUoJ3N0b3JlTmFtZScpCit2YWx1ZSBpczogV2VkIERlYyAzMSAxOTY5IDE2OjAwOjAw
IEdNVC0wODAwIChQU1QpICh0eXBlOiBvYmplY3QpCitzdG9yZS5wdXQodmFsdWUsICdrZXknKQor
c3RvcmUuZ2V0KCdrZXknKQorU3RyaW5nKHJlc3VsdCk6IFdlZCBEZWMgMzEgMTk2OSAxNjowMDow
MCBHTVQtMDgwMCAoUFNUKQorUEFTUyB0eXBlb2YgcmVzdWx0IGlzICJvYmplY3QiCitQQVNTIE9i
amVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChyZXN1bHQpIGlzIE9iamVjdC5wcm90b3R5cGUu
dG9TdHJpbmcuY2FsbCh0ZXN0X2RhdGEpCitQQVNTIHRlc3RfZGF0YSAhPT0gcmVzdWx0IGlzIHRy
dWUKK1BBU1MgcmVzdWx0LnRvU3RyaW5nKCkgaXMgdGVzdF9kYXRhLnRvU3RyaW5nKCkKK1BBU1Mg
aXModGVzdF9kYXRhLnZhbHVlT2YoKSwgcmVzdWx0LnZhbHVlT2YoKSkgaXMgdHJ1ZQorCitUZXN0
aW5nOiBuZXcgRGF0ZSgxZTMpCit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5h
bWUnLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmpl
Y3RTdG9yZSgnc3RvcmVOYW1lJykKK3ZhbHVlIGlzOiBXZWQgRGVjIDMxIDE5NjkgMTY6MDA6MDEg
R01ULTA4MDAgKFBTVCkgKHR5cGU6IG9iamVjdCkKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScpCitz
dG9yZS5nZXQoJ2tleScpCitTdHJpbmcocmVzdWx0KTogV2VkIERlYyAzMSAxOTY5IDE2OjAwOjAx
IEdNVC0wODAwIChQU1QpCitQQVNTIHR5cGVvZiByZXN1bHQgaXMgIm9iamVjdCIKK1BBU1MgT2Jq
ZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHJlc3VsdCkgaXMgT2JqZWN0LnByb3RvdHlwZS50
b1N0cmluZy5jYWxsKHRlc3RfZGF0YSkKK1BBU1MgdGVzdF9kYXRhICE9PSByZXN1bHQgaXMgdHJ1
ZQorUEFTUyByZXN1bHQudG9TdHJpbmcoKSBpcyB0ZXN0X2RhdGEudG9TdHJpbmcoKQorUEFTUyBp
cyh0ZXN0X2RhdGEudmFsdWVPZigpLCByZXN1bHQudmFsdWVPZigpKSBpcyB0cnVlCisKK1Rlc3Rp
bmc6IG5ldyBEYXRlKDFlNikKK3RyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24oJ3N0b3JlTmFt
ZScsIElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUpCitzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVj
dFN0b3JlKCdzdG9yZU5hbWUnKQordmFsdWUgaXM6IFdlZCBEZWMgMzEgMTk2OSAxNjoxNjo0MCBH
TVQtMDgwMCAoUFNUKSAodHlwZTogb2JqZWN0KQorc3RvcmUucHV0KHZhbHVlLCAna2V5JykKK3N0
b3JlLmdldCgna2V5JykKK1N0cmluZyhyZXN1bHQpOiBXZWQgRGVjIDMxIDE5NjkgMTY6MTY6NDAg
R01ULTA4MDAgKFBTVCkKK1BBU1MgdHlwZW9mIHJlc3VsdCBpcyAib2JqZWN0IgorUEFTUyBPYmpl
Y3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwocmVzdWx0KSBpcyBPYmplY3QucHJvdG90eXBlLnRv
U3RyaW5nLmNhbGwodGVzdF9kYXRhKQorUEFTUyB0ZXN0X2RhdGEgIT09IHJlc3VsdCBpcyB0cnVl
CitQQVNTIHJlc3VsdC50b1N0cmluZygpIGlzIHRlc3RfZGF0YS50b1N0cmluZygpCitQQVNTIGlz
KHRlc3RfZGF0YS52YWx1ZU9mKCksIHJlc3VsdC52YWx1ZU9mKCkpIGlzIHRydWUKKworVGVzdGlu
ZzogbmV3IERhdGUoMWU5KQordHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1l
JywgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkKK3N0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0
U3RvcmUoJ3N0b3JlTmFtZScpCit2YWx1ZSBpczogTW9uIEphbiAxMiAxOTcwIDA1OjQ2OjQwIEdN
VC0wODAwIChQU1QpICh0eXBlOiBvYmplY3QpCitzdG9yZS5wdXQodmFsdWUsICdrZXknKQorc3Rv
cmUuZ2V0KCdrZXknKQorU3RyaW5nKHJlc3VsdCk6IE1vbiBKYW4gMTIgMTk3MCAwNTo0Njo0MCBH
TVQtMDgwMCAoUFNUKQorUEFTUyB0eXBlb2YgcmVzdWx0IGlzICJvYmplY3QiCitQQVNTIE9iamVj
dC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChyZXN1bHQpIGlzIE9iamVjdC5wcm90b3R5cGUudG9T
dHJpbmcuY2FsbCh0ZXN0X2RhdGEpCitQQVNTIHRlc3RfZGF0YSAhPT0gcmVzdWx0IGlzIHRydWUK
K1BBU1MgcmVzdWx0LnRvU3RyaW5nKCkgaXMgdGVzdF9kYXRhLnRvU3RyaW5nKCkKK1BBU1MgaXMo
dGVzdF9kYXRhLnZhbHVlT2YoKSwgcmVzdWx0LnZhbHVlT2YoKSkgaXMgdHJ1ZQorCitUZXN0aW5n
OiBuZXcgRGF0ZSgxZTEyKQordHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1l
JywgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkKK3N0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0
U3RvcmUoJ3N0b3JlTmFtZScpCit2YWx1ZSBpczogU2F0IFNlcCAwOCAyMDAxIDE4OjQ2OjQwIEdN
VC0wNzAwIChQRFQpICh0eXBlOiBvYmplY3QpCitzdG9yZS5wdXQodmFsdWUsICdrZXknKQorc3Rv
cmUuZ2V0KCdrZXknKQorU3RyaW5nKHJlc3VsdCk6IFNhdCBTZXAgMDggMjAwMSAxODo0Njo0MCBH
TVQtMDcwMCAoUERUKQorUEFTUyB0eXBlb2YgcmVzdWx0IGlzICJvYmplY3QiCitQQVNTIE9iamVj
dC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChyZXN1bHQpIGlzIE9iamVjdC5wcm90b3R5cGUudG9T
dHJpbmcuY2FsbCh0ZXN0X2RhdGEpCitQQVNTIHRlc3RfZGF0YSAhPT0gcmVzdWx0IGlzIHRydWUK
K1BBU1MgcmVzdWx0LnRvU3RyaW5nKCkgaXMgdGVzdF9kYXRhLnRvU3RyaW5nKCkKK1BBU1MgaXMo
dGVzdF9kYXRhLnZhbHVlT2YoKSwgcmVzdWx0LnZhbHVlT2YoKSkgaXMgdHJ1ZQorCitUZXN0aW5n
OiBuZXcgRGF0ZSgxZTEzKQordHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1l
JywgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkKK3N0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0
U3RvcmUoJ3N0b3JlTmFtZScpCit2YWx1ZSBpczogU2F0IE5vdiAyMCAyMjg2IDA5OjQ2OjQwIEdN
VC0wODAwIChQU1QpICh0eXBlOiBvYmplY3QpCitzdG9yZS5wdXQodmFsdWUsICdrZXknKQorc3Rv
cmUuZ2V0KCdrZXknKQorU3RyaW5nKHJlc3VsdCk6IFNhdCBOb3YgMjAgMjI4NiAwOTo0Njo0MCBH
TVQtMDgwMCAoUFNUKQorUEFTUyB0eXBlb2YgcmVzdWx0IGlzICJvYmplY3QiCitQQVNTIE9iamVj
dC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChyZXN1bHQpIGlzIE9iamVjdC5wcm90b3R5cGUudG9T
dHJpbmcuY2FsbCh0ZXN0X2RhdGEpCitQQVNTIHRlc3RfZGF0YSAhPT0gcmVzdWx0IGlzIHRydWUK
K1BBU1MgcmVzdWx0LnRvU3RyaW5nKCkgaXMgdGVzdF9kYXRhLnRvU3RyaW5nKCkKK1BBU1MgaXMo
dGVzdF9kYXRhLnZhbHVlT2YoKSwgcmVzdWx0LnZhbHVlT2YoKSkgaXMgdHJ1ZQorCisKK1Rlc3Rp
bmcgUmVnRXhwIG9iamVjdHMKKworVGVzdGluZyBSZWdFeHA6IG5ldyBSZWdFeHAoKQordHJhbnNh
Y3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1lJywgSURCVHJhbnNhY3Rpb24uUkVBRF9X
UklURSkKK3N0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpCit2YWx1
ZSBpczogLyg/OikvICh0eXBlOiBvYmplY3QpCitzdG9yZS5wdXQodmFsdWUsICdrZXknKQorc3Rv
cmUuZ2V0KCdrZXknKQorUEFTUyB0ZXN0X2RhdGEgIT09IHJlc3VsdCBpcyB0cnVlCitQQVNTIE9i
amVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChyZXN1bHQpIGlzICJbb2JqZWN0IFJlZ0V4cF0i
CitQQVNTIHJlc3VsdC50b1N0cmluZygpIGlzIHRlc3RfZGF0YS50b1N0cmluZygpCisKK1Rlc3Rp
bmcgUmVnRXhwOiAvYWJjLwordHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1l
JywgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkKK3N0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0
U3RvcmUoJ3N0b3JlTmFtZScpCit2YWx1ZSBpczogL2FiYy8gKHR5cGU6IG9iamVjdCkKK3N0b3Jl
LnB1dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5nZXQoJ2tleScpCitQQVNTIHRlc3RfZGF0YSAhPT0g
cmVzdWx0IGlzIHRydWUKK1BBU1MgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHJlc3Vs
dCkgaXMgIltvYmplY3QgUmVnRXhwXSIKK1BBU1MgcmVzdWx0LnRvU3RyaW5nKCkgaXMgdGVzdF9k
YXRhLnRvU3RyaW5nKCkKKworVGVzdGluZyBSZWdFeHA6IC9hYmMvZwordHJhbnNhY3Rpb24gPSBk
Yi50cmFuc2FjdGlvbignc3RvcmVOYW1lJywgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkKK3N0
b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpCit2YWx1ZSBpczogL2Fi
Yy9nICh0eXBlOiBvYmplY3QpCitzdG9yZS5wdXQodmFsdWUsICdrZXknKQorc3RvcmUuZ2V0KCdr
ZXknKQorUEFTUyB0ZXN0X2RhdGEgIT09IHJlc3VsdCBpcyB0cnVlCitQQVNTIE9iamVjdC5wcm90
b3R5cGUudG9TdHJpbmcuY2FsbChyZXN1bHQpIGlzICJbb2JqZWN0IFJlZ0V4cF0iCitQQVNTIHJl
c3VsdC50b1N0cmluZygpIGlzIHRlc3RfZGF0YS50b1N0cmluZygpCisKK1Rlc3RpbmcgUmVnRXhw
OiAvYWJjL2kKK3RyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24oJ3N0b3JlTmFtZScsIElEQlRy
YW5zYWN0aW9uLlJFQURfV1JJVEUpCitzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdz
dG9yZU5hbWUnKQordmFsdWUgaXM6IC9hYmMvaSAodHlwZTogb2JqZWN0KQorc3RvcmUucHV0KHZh
bHVlLCAna2V5JykKK3N0b3JlLmdldCgna2V5JykKK1BBU1MgdGVzdF9kYXRhICE9PSByZXN1bHQg
aXMgdHJ1ZQorUEFTUyBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwocmVzdWx0KSBpcyAi
W29iamVjdCBSZWdFeHBdIgorUEFTUyByZXN1bHQudG9TdHJpbmcoKSBpcyB0ZXN0X2RhdGEudG9T
dHJpbmcoKQorCitUZXN0aW5nIFJlZ0V4cDogL2FiYy9naQordHJhbnNhY3Rpb24gPSBkYi50cmFu
c2FjdGlvbignc3RvcmVOYW1lJywgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkKK3N0b3JlID0g
dHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpCit2YWx1ZSBpczogL2FiYy9naSAo
dHlwZTogb2JqZWN0KQorc3RvcmUucHV0KHZhbHVlLCAna2V5JykKK3N0b3JlLmdldCgna2V5JykK
K1BBU1MgdGVzdF9kYXRhICE9PSByZXN1bHQgaXMgdHJ1ZQorUEFTUyBPYmplY3QucHJvdG90eXBl
LnRvU3RyaW5nLmNhbGwocmVzdWx0KSBpcyAiW29iamVjdCBSZWdFeHBdIgorUEFTUyByZXN1bHQu
dG9TdHJpbmcoKSBpcyB0ZXN0X2RhdGEudG9TdHJpbmcoKQorCitUZXN0aW5nIFJlZ0V4cDogL2Fi
Yy9tCit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUnLCBJREJUcmFuc2Fj
dGlvbi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmVO
YW1lJykKK3ZhbHVlIGlzOiAvYWJjL20gKHR5cGU6IG9iamVjdCkKK3N0b3JlLnB1dCh2YWx1ZSwg
J2tleScpCitzdG9yZS5nZXQoJ2tleScpCitQQVNTIHRlc3RfZGF0YSAhPT0gcmVzdWx0IGlzIHRy
dWUKK1BBU1MgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHJlc3VsdCkgaXMgIltvYmpl
Y3QgUmVnRXhwXSIKK1BBU1MgcmVzdWx0LnRvU3RyaW5nKCkgaXMgdGVzdF9kYXRhLnRvU3RyaW5n
KCkKKworVGVzdGluZyBSZWdFeHA6IC9hYmMvbWcKK3RyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rp
b24oJ3N0b3JlTmFtZScsIElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUpCitzdG9yZSA9IHRyYW5z
YWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKQordmFsdWUgaXM6IC9hYmMvZ20gKHR5cGU6
IG9iamVjdCkKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5nZXQoJ2tleScpCitQQVNT
IHRlc3RfZGF0YSAhPT0gcmVzdWx0IGlzIHRydWUKK1BBU1MgT2JqZWN0LnByb3RvdHlwZS50b1N0
cmluZy5jYWxsKHJlc3VsdCkgaXMgIltvYmplY3QgUmVnRXhwXSIKK1BBU1MgcmVzdWx0LnRvU3Ry
aW5nKCkgaXMgdGVzdF9kYXRhLnRvU3RyaW5nKCkKKworVGVzdGluZyBSZWdFeHA6IC9hYmMvbWkK
K3RyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24oJ3N0b3JlTmFtZScsIElEQlRyYW5zYWN0aW9u
LlJFQURfV1JJVEUpCitzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUn
KQordmFsdWUgaXM6IC9hYmMvaW0gKHR5cGU6IG9iamVjdCkKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tl
eScpCitzdG9yZS5nZXQoJ2tleScpCitQQVNTIHRlc3RfZGF0YSAhPT0gcmVzdWx0IGlzIHRydWUK
K1BBU1MgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHJlc3VsdCkgaXMgIltvYmplY3Qg
UmVnRXhwXSIKK1BBU1MgcmVzdWx0LnRvU3RyaW5nKCkgaXMgdGVzdF9kYXRhLnRvU3RyaW5nKCkK
KworVGVzdGluZyBSZWdFeHA6IC9hYmMvbWdpCit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9u
KCdzdG9yZU5hbWUnLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFuc2Fj
dGlvbi5vYmplY3RTdG9yZSgnc3RvcmVOYW1lJykKK3ZhbHVlIGlzOiAvYWJjL2dpbSAodHlwZTog
b2JqZWN0KQorc3RvcmUucHV0KHZhbHVlLCAna2V5JykKK3N0b3JlLmdldCgna2V5JykKK1BBU1Mg
dGVzdF9kYXRhICE9PSByZXN1bHQgaXMgdHJ1ZQorUEFTUyBPYmplY3QucHJvdG90eXBlLnRvU3Ry
aW5nLmNhbGwocmVzdWx0KSBpcyAiW29iamVjdCBSZWdFeHBdIgorUEFTUyByZXN1bHQudG9TdHJp
bmcoKSBpcyB0ZXN0X2RhdGEudG9TdHJpbmcoKQorCisKK1Rlc3RpbmcgSW1hZ2VEYXRhCitjYW52
YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKQorY2FudmFzLndpZHRoID0gOAor
Y2FudmFzLmhlaWdodCA9IDgKK3Rlc3RfZGF0YSA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpLmdl
dEltYWdlRGF0YSgwLCAwLCA4LCA4KQordHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3Rv
cmVOYW1lJywgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkKK3N0b3JlID0gdHJhbnNhY3Rpb24u
b2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpCit2YWx1ZSBpczogW29iamVjdCBJbWFnZURhdGFdICh0
eXBlOiBvYmplY3QpCitzdG9yZS5wdXQodmFsdWUsICdrZXknKQorc3RvcmUuZ2V0KCdrZXknKQor
UEFTUyB0ZXN0X2RhdGEgIT09IHJlc3VsdCBpcyB0cnVlCitQQVNTIE9iamVjdC5wcm90b3R5cGUu
dG9TdHJpbmcuY2FsbChyZXN1bHQpIGlzICJbb2JqZWN0IEltYWdlRGF0YV0iCitQQVNTIHJlc3Vs
dC53aWR0aCBpcyB0ZXN0X2RhdGEud2lkdGgKK1BBU1MgcmVzdWx0LmhlaWdodCBpcyB0ZXN0X2Rh
dGEuaGVpZ2h0CitQQVNTIHJlc3VsdC5kYXRhLmxlbmd0aCBpcyB0ZXN0X2RhdGEuZGF0YS5sZW5n
dGgKK1BBU1MgcmVzdWx0IGRhdGEgbWF0Y2hlcworCitUZXN0aW5nIEFycmF5Cit0ZXN0X2RhdGEg
PSBbXQordGVzdF9kYXRhWzBdID0gJ2ZvbycKK3Rlc3RfZGF0YVsxXSA9ICdiYXInCit0ZXN0X2Rh
dGFbMTBdID0gdHJ1ZQordGVzdF9kYXRhWzExXSA9IGZhbHNlCit0ZXN0X2RhdGFbMjBdID0gMTIz
Cit0ZXN0X2RhdGFbMjFdID0gNDU2Cit0ZXN0X2RhdGFbMzBdID0gbnVsbAordHJhbnNhY3Rpb24g
PSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1lJywgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkK
K3N0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpCit2YWx1ZSBpczog
Zm9vLGJhciwsLCwsLCwsLHRydWUsZmFsc2UsLCwsLCwsLCwxMjMsNDU2LCwsLCwsLCwsICh0eXBl
OiBvYmplY3QpCitzdG9yZS5wdXQodmFsdWUsICdrZXknKQorc3RvcmUuZ2V0KCdrZXknKQorUEFT
UyB0ZXN0X2RhdGEgIT09IHJlc3VsdCBpcyB0cnVlCitQQVNTIHRlc3RfZGF0YS5sZW5ndGggPT09
IHJlc3VsdC5sZW5ndGggaXMgdHJ1ZQorUEFTUyB0ZXN0X2RhdGFbMF0gaXMgcmVzdWx0WzBdCitQ
QVNTIHRlc3RfZGF0YVsxXSBpcyByZXN1bHRbMV0KK1BBU1MgdGVzdF9kYXRhWzEwXSBpcyByZXN1
bHRbMTBdCitQQVNTIHRlc3RfZGF0YVsxMV0gaXMgcmVzdWx0WzExXQorUEFTUyB0ZXN0X2RhdGFb
MjBdIGlzIHJlc3VsdFsyMF0KK1BBU1MgdGVzdF9kYXRhWzIxXSBpcyByZXN1bHRbMjFdCitQQVNT
IHRlc3RfZGF0YVszMF0gaXMgcmVzdWx0WzMwXQorCitUZXN0aW5nIE9iamVjdAordGVzdF9kYXRh
ID0gW10KK3Rlc3RfZGF0YVswXSA9ICdmb28nCit0ZXN0X2RhdGFbMV0gPSAnYmFyJwordGVzdF9k
YXRhWydhJ10gPSB0cnVlCit0ZXN0X2RhdGFbJ2InXSA9IGZhbHNlCit0ZXN0X2RhdGFbJ2Zvbydd
ID0gMTIzCit0ZXN0X2RhdGFbJ2JhciddID0gNDU2Cit0ZXN0X2RhdGFbJyddID0gbnVsbAordHJh
bnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1lJywgSURCVHJhbnNhY3Rpb24uUkVB
RF9XUklURSkKK3N0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpCit2
YWx1ZSBpczogZm9vLGJhciAodHlwZTogb2JqZWN0KQorc3RvcmUucHV0KHZhbHVlLCAna2V5JykK
K3N0b3JlLmdldCgna2V5JykKK1BBU1MgdGVzdF9kYXRhICE9PSByZXN1bHQgaXMgdHJ1ZQorUEFT
UyBhcnJheUNvbXBhcmUoT2JqZWN0LmtleXMocmVzdWx0KS5zb3J0KCksIE9iamVjdC5rZXlzKHRl
c3RfZGF0YSkuc29ydCgpKSBpcyB0cnVlCitQQVNTIHRlc3RfZGF0YVsiMCJdIGlzIHJlc3VsdFsi
MCJdCitQQVNTIHRlc3RfZGF0YVsiMSJdIGlzIHJlc3VsdFsiMSJdCitQQVNTIHRlc3RfZGF0YVsi
YSJdIGlzIHJlc3VsdFsiYSJdCitQQVNTIHRlc3RfZGF0YVsiYiJdIGlzIHJlc3VsdFsiYiJdCitQ
QVNTIHRlc3RfZGF0YVsiZm9vIl0gaXMgcmVzdWx0WyJmb28iXQorUEFTUyB0ZXN0X2RhdGFbImJh
ciJdIGlzIHJlc3VsdFsiYmFyIl0KK1BBU1MgdGVzdF9kYXRhWyIiXSBpcyByZXN1bHRbIiJdCisK
KworVGVzdCB0eXBlcyB0aGF0IGNhbid0IGJlIGNsb25lZDoKKwordHJhbnNhY3Rpb24gPSBkYi50
cmFuc2FjdGlvbignc3RvcmVOYW1lJywgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkKK3N0b3Jl
ID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpCisKK090aGVyIEphdmFTY3Jp
cHQgb2JqZWN0IHR5cGVzOgorRXhwZWN0aW5nIGV4Y2VwdGlvbiBmcm9tIHN0b3JlLnB1dChuZXcg
RXJyb3IsICdrZXknKQorUEFTUyBFeGNlcHRpb24gd2FzIHRocm93bi4KK1BBU1MgY29kZSBpcyBE
T01FeGNlcHRpb24uREFUQV9DTE9ORV9FUlIKK0V4cGVjdGluZyBleGNlcHRpb24gZnJvbSBzdG9y
ZS5wdXQobmV3IEZ1bmN0aW9uLCAna2V5JykKK1BBU1MgRXhjZXB0aW9uIHdhcyB0aHJvd24uCitQ
QVNTIGNvZGUgaXMgRE9NRXhjZXB0aW9uLkRBVEFfQ0xPTkVfRVJSCisKK090aGVyIGhvc3Qgb2Jq
ZWN0IHR5cGVzOgorRXhwZWN0aW5nIGV4Y2VwdGlvbiBmcm9tIHN0b3JlLnB1dCh3aW5kb3csICdr
ZXknKQorUEFTUyBFeGNlcHRpb24gd2FzIHRocm93bi4KK1BBU1MgY29kZSBpcyBET01FeGNlcHRp
b24uREFUQV9DTE9ORV9FUlIKK0V4cGVjdGluZyBleGNlcHRpb24gZnJvbSBzdG9yZS5wdXQoZG9j
dW1lbnQsICdrZXknKQorUEFTUyBFeGNlcHRpb24gd2FzIHRocm93bi4KK1BBU1MgY29kZSBpcyBE
T01FeGNlcHRpb24uREFUQV9DTE9ORV9FUlIKK0V4cGVjdGluZyBleGNlcHRpb24gZnJvbSBzdG9y
ZS5wdXQoZG9jdW1lbnQuYm9keSwgJ2tleScpCitQQVNTIEV4Y2VwdGlvbiB3YXMgdGhyb3duLgor
UEFTUyBjb2RlIGlzIERPTUV4Y2VwdGlvbi5EQVRBX0NMT05FX0VSUgorUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3N0cnVjdHVyZWQtY2xvbmUuaHRtbCBiL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL3N0cnVjdHVyZWQtY2xvbmUuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45OWZh
ODk2NTcyM2U5ODNjODJiZGYzYjc3MDkzYWQ1YTcwZjZjNTUyCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvc3RydWN0dXJlZC1jbG9uZS5odG1sCkBAIC0w
LDAgKzEsNTMxIEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMv
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvc2hhcmVkLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGlucHV0IHR5cGU9ImZp
bGUiIGlkPSJmaWxlSW5wdXQiIG11bHRpcGxlPjwvaW5wdXQ+Cis8cCBpZD0iZGVzY3JpcHRpb24i
PjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KKworZGVzY3JpcHRpb24o
IlRlc3Qgc3RydWN0dXJlZCBjbG9uZSBwZXJtdXRhdGlvbnMgaW4gSW5kZXhlZERCLiIpOworaWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53
YWl0VW50aWxEb25lKCk7CisKK2lmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAgICB2YXIgZmls
ZUlucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGVJbnB1dCIpOworICAgIHZhciBm
aWxlUmVjdCA9IGZpbGVJbnB1dC5nZXRDbGllbnRSZWN0cygpWzBdOworICAgIHZhciB0YXJnZXRY
ID0gZmlsZVJlY3QubGVmdCArIGZpbGVSZWN0LndpZHRoIC8gMjsKKyAgICB2YXIgdGFyZ2V0WSA9
IGZpbGVSZWN0LnRvcCArIGZpbGVSZWN0LmhlaWdodCAvIDI7CisgICAgZXZlbnRTZW5kZXIuYmVn
aW5EcmFnV2l0aEZpbGVzKFsncmVzb3VyY2VzL3Rlc3QtZGF0YS5odG1sJywgJ3Jlc291cmNlcy90
ZXN0LWRhdGEudHh0J10pOworICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHRhcmdldFgsIHRh
cmdldFkpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKK30KKworZnVuY3Rpb24gdGVzdCgp
Cit7CisgICAgZXZhbEFuZExvZygiaW5kZXhlZERCID0gd2luZG93LmluZGV4ZWREQiB8fCB3aW5k
b3cud2Via2l0SW5kZXhlZERCIik7CisgICAgc2hvdWxkQmVUcnVlKCJpbmRleGVkREIgIT0gbnVs
bCIpOworICAgIGV2YWxBbmRMb2coIklEQlRyYW5zYWN0aW9uID0gd2luZG93LklEQlRyYW5zYWN0
aW9uIHx8IHdpbmRvdy53ZWJraXRJREJUcmFuc2FjdGlvbiIpOworICAgIHNob3VsZEJlVHJ1ZSgi
SURCVHJhbnNhY3Rpb24gIT0gbnVsbCIpOworICAgIHByZXBhcmVEYXRhYmFzZSgpOworfQorCitm
dW5jdGlvbiBwcmVwYXJlRGF0YWJhc2UoKQoreworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1Zygi
UHJlcGFyZSBEYXRhYmFzZSIpOworICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIu
ZGVsZXRlRGF0YWJhc2UoJ3N0cnVjdHVyZWQtY2xvbmUnKSIpOworICAgIHJlcXVlc3Qub25lcnJv
ciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZnVu
Y3Rpb24oZSkgeworICAgICAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLm9wZW4o
J3N0cnVjdHVyZWQtY2xvbmUnKSIpOworICAgICAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVj
dGVkRXJyb3JDYWxsYmFjazsKKyAgICAgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihl
KSB7CisgICAgICAgICAgICBldmFsQW5kTG9nKCJkYiA9IHJlcXVlc3QucmVzdWx0Iik7CisgICAg
ICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImRiLnZlcnNpb24iLCAiIik7CisgICAgICAg
ICAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiZGIuc2V0VmVyc2lvbignMScpIik7CisgICAgICAg
ICAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKKyAgICAgICAg
ICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgICAgIGV2
YWxBbmRMb2coImRiLmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKSIpOworICAgICAgICAg
ICAgICAgIHZhciB0cmFucyA9IHJlcXVlc3QucmVzdWx0OworICAgICAgICAgICAgICAgIHRyYW5z
Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKKyAgICAgICAgICAgICAgICB0cmFu
cy5vbmFib3J0ID0gdW5leHBlY3RlZEFib3J0Q2FsbGJhY2s7CisgICAgICAgICAgICAgICAgdHJh
bnMub25jb21wbGV0ZSA9IHN0YXJ0VGVzdHM7CisgICAgICAgICAgICB9OworICAgICAgICB9Owor
ICAgIH07Cit9CisKK2Z1bmN0aW9uIHN0YXJ0VGVzdHMoKQoreworICAgIGRlYnVnKCIiKTsKKyAg
ICBkZWJ1ZygiUnVubmluZyB0ZXN0cy4uLiIpOworICAgIHZhciB0ZXN0c190b19ydW4gPSBbCisg
ICAgICAgIHRlc3RVbmRlZmluZWQsCisgICAgICAgIHRlc3ROdWxsLAorICAgICAgICB0ZXN0Qm9v
bGVhbiwKKyAgICAgICAgdGVzdE51bWJlciwKKyAgICAgICAgdGVzdFN0cmluZywKKyAgICAgICAg
dGVzdEJvb2xlYW5PYmplY3QsCisgICAgICAgIHRlc3ROdW1iZXJPYmplY3QsCisgICAgICAgIHRl
c3RTdHJpbmdPYmplY3QsCisgICAgICAgIHRlc3REYXRlT2JqZWN0LAorICAgICAgICB0ZXN0UmVn
RXhwT2JqZWN0LAorICAgICAgICB0ZXN0SW1hZ2VEYXRhLAorICAgICAgICAvLyBGSVhNRTogQmxv
YiwgRmlsZSwgYW5kIEZpbGVMaXN0IHN1cHBvcnQgaXMgaW5jb21wbGV0ZS4KKyAgICAgICAgLy8g
aHR0cDovL2NyYnVnLmNvbS8xMDgwMTIKKyAgICAgICAgLy90ZXN0QmxvYiwKKyAgICAgICAgLy90
ZXN0RmlsZSwKKyAgICAgICAgLy90ZXN0RmlsZUxpc3QsCisgICAgICAgIHRlc3RBcnJheSwKKyAg
ICAgICAgdGVzdE9iamVjdAorICAgIF07CisKKyAgICBmdW5jdGlvbiBuZXh0VGVzdCgpIHsKKyAg
ICAgICAgZGVidWcoIiIpOworICAgICAgICBpZiAodGVzdHNfdG9fcnVuLmxlbmd0aCkgeworICAg
ICAgICAgICAgdmFyIHRlc3QgPSB0ZXN0c190b19ydW4uc2hpZnQoKTsKKyAgICAgICAgICAgIHRl
c3QobmV4dFRlc3QpOyAvLyBXaGVuIGRvbmUsIGNhbGwgdGhpcyBhZ2Fpbi4KKyAgICAgICAgfSBl
bHNlIHsKKyAgICAgICAgICAgIHRlc3RCYWRUeXBlcygpOworICAgICAgICB9CisgICAgfQorICAg
IG5leHRUZXN0KCk7Cit9CisKK2Z1bmN0aW9uIGZvckVhY2hXaXRoQ2FsbGJhY2sodGVzdEZ1bmN0
aW9uLCB2YWx1ZXMsIGNhbGxiYWNrKQoreworICAgIGZ1bmN0aW9uIG5leHRWYWx1ZSgpIHsKKyAg
ICAgICAgaWYgKHZhbHVlcy5sZW5ndGgpIHsKKyAgICAgICAgICAgIHRlc3RGdW5jdGlvbih2YWx1
ZXMuc2hpZnQoKSwgbmV4dFZhbHVlKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGNh
bGxiYWNrKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBuZXh0VmFsdWUoKTsKK30KKworZnVu
Y3Rpb24gdGVzdFZhbHVlKHZhbHVlLCBjYWxsYmFjaykKK3sKKyAgICAvLyBPbmUgdHJhbnNhY3Rp
b24gcGVyIHRlc3QsIHNpbmNlIHNvbWUgdGVzdHMgcmVxdWlyZSBhc3luY2hyb25vdXMKKyAgICAv
LyBvcGVyYXRpb25zIHRvIHZlcmlmeSB0aGUgcmVzdWx0IChlLmcuIHZpYSBGaWxlUmVhZGVyKQor
ICAgIGV2YWxBbmRMb2coInRyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24oJ3N0b3JlTmFtZScs
IElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUpIik7CisgICAgdHJhbnNhY3Rpb24ub25lcnJvciA9
IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworICAgIHRyYW5zYWN0aW9uLm9uYWJvcnQgPSB1bmV4
cGVjdGVkQWJvcnRDYWxsYmFjazsKKyAgICBldmFsQW5kTG9nKCJzdG9yZSA9IHRyYW5zYWN0aW9u
Lm9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKSIpOworCisgICAgZGVidWcoInZhbHVlIGlzOiAiICsg
U3RyaW5nKHZhbHVlKSArICIgKHR5cGU6ICIgKyB0eXBlb2YgdmFsdWUgKyAiKSIpOworICAgIHdp
bmRvdy52YWx1ZSA9IHZhbHVlOworICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJzdG9yZS5wdXQo
dmFsdWUsICdrZXknKSIpOworICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNh
bGxiYWNrOworICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAgICBy
ZXF1ZXN0ID0gZXZhbEFuZExvZygic3RvcmUuZ2V0KCdrZXknKSIpOworICAgICAgICByZXF1ZXN0
Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKKyAgICAgICAgcmVxdWVzdC5vbnN1
Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgICAgICAvL2RlYnVnKCJnb3QgYmFjazogIiAr
IFN0cmluZyhyZXF1ZXN0LnJlc3VsdCkgKyAiICh0eXBlOiAiICsgdHlwZW9mIHJlcXVlc3QucmVz
dWx0ICsgIikiKTsKKyAgICAgICAgICAgIGNhbGxiYWNrKHJlcXVlc3QucmVzdWx0KTsKKyAgICAg
ICAgfTsKKyAgICB9OworfQorCisvLyBJZGVudGl0eSB0ZXN0aW5nLCBzZW5zaXRpdmUgdG8gTmFO
IGFuZCAtMAorZnVuY3Rpb24gaXMoeCwgeSkgeworICAgIGlmICh4ID09PSB5KSB7CisgICAgICAg
IHJldHVybiB4ICE9PSAwIHx8IDEgLyB4ID09PSAxIC8geTsKKyAgICB9CisgICAgcmV0dXJuIHgg
IT09IHggJiYgeSAhPT0geTsKK30KKworZnVuY3Rpb24gYXJyYXlDb21wYXJlKGEsIGIpIHsKKyAg
ICBpZiAoYS5sZW5ndGggIT09IGIubGVuZ3RoKSB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICB9CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhLmxlbmd0aDsgKytpKSB7CisgICAgICAgIGlm
ICghaXMoYVtpXSwgYltpXSkpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAg
fQorICAgIH0KKyAgICByZXR1cm4gdHJ1ZTsKK30KKworZnVuY3Rpb24gdGVzdFByaW1pdGl2ZVZh
bHVlKHN0cmluZywgY2FsbGJhY2spCit7CisgICAgZGVidWcoIlRlc3Rpbmc6ICIgKyBzdHJpbmcp
OworICAgIHZhciB2YWx1ZSA9IGV2YWwoInZhbHVlID0gKCIgKyBzdHJpbmcgKyAiKSIpOworICAg
IHRlc3RfZGF0YSA9IHZhbHVlOworICAgIHRlc3RWYWx1ZSh0ZXN0X2RhdGEsIGZ1bmN0aW9uKHJl
c3VsdCkgeworICAgICAgICB3aW5kb3cucmVzdWx0ID0gcmVzdWx0OworICAgICAgICBzaG91bGRC
ZVRydWUoImlzKHRlc3RfZGF0YSwgcmVzdWx0KSIpOworICAgICAgICBkZWJ1ZygiIik7CisgICAg
ICAgIGNhbGxiYWNrKCk7CisgICAgfSk7Cit9CisKK2Z1bmN0aW9uIHRlc3RPYmplY3RXaXRoVmFs
dWUoc3RyaW5nLCBjYWxsYmFjaykKK3sKKyAgICBkZWJ1ZygiVGVzdGluZzogIiArIHN0cmluZyk7
CisgICAgdmFyIHZhbHVlID0gZXZhbCgidmFsdWUgPSAoIiArIHN0cmluZyArICIpIik7CisgICAg
dGVzdF9kYXRhID0gdmFsdWU7CisgICAgdGVzdFZhbHVlKHRlc3RfZGF0YSwgZnVuY3Rpb24ocmVz
dWx0KSB7CisgICAgICAgIHdpbmRvdy5yZXN1bHQgPSByZXN1bHQ7CisgICAgICAgIGRlYnVnKCJT
dHJpbmcocmVzdWx0KTogIiArIFN0cmluZyhyZXN1bHQpKTsKKyAgICAgICAgc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCJ0eXBlb2YgcmVzdWx0IiwgIm9iamVjdCIpOworICAgICAgICBzaG91bGRCZSgi
T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHJlc3VsdCkiLCAiT2JqZWN0LnByb3RvdHlw
ZS50b1N0cmluZy5jYWxsKHRlc3RfZGF0YSkiKTsKKyAgICAgICAgc2hvdWxkQmVUcnVlKCJ0ZXN0
X2RhdGEgIT09IHJlc3VsdCIpOworICAgICAgICBzaG91bGRCZSgicmVzdWx0LnRvU3RyaW5nKCki
LCAidGVzdF9kYXRhLnRvU3RyaW5nKCkiKTsKKyAgICAgICAgc2hvdWxkQmVUcnVlKCJpcyh0ZXN0
X2RhdGEudmFsdWVPZigpLCByZXN1bHQudmFsdWVPZigpKSIpOworICAgICAgICBkZWJ1ZygiIik7
CisgICAgICAgIGNhbGxiYWNrKCk7CisgICAgfSk7Cit9CisKK2Z1bmN0aW9uIHRlc3RVbmRlZmlu
ZWQoY2FsbGJhY2spCit7CisgICAgdGVzdFByaW1pdGl2ZVZhbHVlKCJ1bmRlZmluZWQiLCBjYWxs
YmFjayk7Cit9CisKK2Z1bmN0aW9uIHRlc3ROdWxsKGNhbGxiYWNrKQoreworICAgIHRlc3RQcmlt
aXRpdmVWYWx1ZSgibnVsbCIsIGNhbGxiYWNrKTsKK30KKworZnVuY3Rpb24gdGVzdEJvb2xlYW4o
Y2FsbGJhY2spCit7CisgICAgZGVidWcoIlRlc3RpbmcgYm9vbGVhbiBwcmltaXRpdmVzIik7Cisg
ICAgZGVidWcoIiIpOworICAgIGZvckVhY2hXaXRoQ2FsbGJhY2sodGVzdFByaW1pdGl2ZVZhbHVl
LCBbInRydWUiLCAiZmFsc2UiXSwgY2FsbGJhY2spOworfQorCitmdW5jdGlvbiB0ZXN0Qm9vbGVh
bk9iamVjdChjYWxsYmFjaykKK3sKKyAgICBkZWJ1ZygiVGVzdGluZyBCb29sZWFuIG9iamVjdHMi
KTsKKyAgICBkZWJ1ZygiIik7CisgICAgZm9yRWFjaFdpdGhDYWxsYmFjayh0ZXN0T2JqZWN0V2l0
aFZhbHVlLCBbCisgICAgICAgICJuZXcgQm9vbGVhbih0cnVlKSIsCisgICAgICAgICJuZXcgQm9v
bGVhbihmYWxzZSkiCisgICAgXSwgY2FsbGJhY2spOworfQorCitmdW5jdGlvbiB0ZXN0U3RyaW5n
KGNhbGxiYWNrKQoreworICAgIGRlYnVnKCJUZXN0aW5nIHN0cmluZyBwcmltaXRpdmVzIik7Cisg
ICAgZGVidWcoIiIpOworICAgIGZvckVhY2hXaXRoQ2FsbGJhY2sodGVzdFByaW1pdGl2ZVZhbHVl
LCBbCisgICAgICAgICInJyIsCisgICAgICAgICIndGhpcyBpcyBhIHNhbXBsZSBzdHJpbmcnIiwK
KyAgICAgICAgIidudWxsKFxcMCknIgorICAgIF0sIGNhbGxiYWNrKTsKK30KKworZnVuY3Rpb24g
dGVzdFN0cmluZ09iamVjdChjYWxsYmFjaykKK3sKKyAgICBkZWJ1ZygiVGVzdGluZyBTdHJpbmcg
b2JqZWN0cyIpOworICAgIGRlYnVnKCIiKTsKKyAgICBmb3JFYWNoV2l0aENhbGxiYWNrKHRlc3RP
YmplY3RXaXRoVmFsdWUsIFsKKyAgICAgICAgIm5ldyBTdHJpbmcoKSIsCisgICAgICAgICJuZXcg
U3RyaW5nKCd0aGlzIGlzIGEgc2FtcGxlIHN0cmluZycpIiwKKyAgICAgICAgIm5ldyBTdHJpbmco
J251bGwoXFwwKScpIgorICAgIF0sIGNhbGxiYWNrKTsKK30KKworZnVuY3Rpb24gdGVzdE51bWJl
cihjYWxsYmFjaykKK3sKKyAgICBkZWJ1ZygiVGVzdGluZyBudW1iZXIgcHJpbWl0aXZlcyIpOwor
ICAgIGRlYnVnKCIiKTsKKyAgICBmb3JFYWNoV2l0aENhbGxiYWNrKHRlc3RQcmltaXRpdmVWYWx1
ZSwgWworICAgICAgICAiTmFOIiwKKyAgICAgICAgIi1JbmZpbml0eSIsCisgICAgICAgICItTnVt
YmVyLk1BWF9WQUxVRSIsCisgICAgICAgICItTnVtYmVyLk1JTl9WQUxVRSIsCisgICAgICAgICIt
MCIsCisgICAgICAgICIwIiwKKyAgICAgICAgIk51bWJlci5NSU5fVkFMVUUiLAorICAgICAgICAi
TnVtYmVyLk1BWF9WQUxVRSIsCisgICAgICAgICJJbmZpbml0eSIKKyAgICBdLCBjYWxsYmFjayk7
Cit9CisKK2Z1bmN0aW9uIHRlc3ROdW1iZXJPYmplY3QoY2FsbGJhY2spCit7CisgICAgZGVidWco
IlRlc3RpbmcgTnVtYmVyIG9iamVjdHMiKTsKKyAgICBkZWJ1ZygiIik7CisgICAgZm9yRWFjaFdp
dGhDYWxsYmFjayh0ZXN0T2JqZWN0V2l0aFZhbHVlLCBbCisgICAgICAgICJuZXcgTnVtYmVyKE5h
TikiLAorICAgICAgICAibmV3IE51bWJlcigtSW5maW5pdHkpIiwKKyAgICAgICAgIm5ldyBOdW1i
ZXIoLU51bWJlci5NQVhfVkFMVUUpIiwKKyAgICAgICAgIm5ldyBOdW1iZXIoLU51bWJlci5NSU5f
VkFMVUUpIiwKKyAgICAgICAgIm5ldyBOdW1iZXIoLTApIiwKKyAgICAgICAgIm5ldyBOdW1iZXIo
MCkiLAorICAgICAgICAibmV3IE51bWJlcihOdW1iZXIuTUlOX1ZBTFVFKSIsCisgICAgICAgICJu
ZXcgTnVtYmVyKE51bWJlci5NQVhfVkFMVUUpIiwKKyAgICAgICAgIm5ldyBOdW1iZXIoSW5maW5p
dHkpIgorICAgIF0sIGNhbGxiYWNrKTsKK30KKworZnVuY3Rpb24gdGVzdERhdGVPYmplY3QoY2Fs
bGJhY2spCit7CisgICAgZGVidWcoIlRlc3RpbmcgRGF0ZSBvYmplY3RzIik7CisgICAgZGVidWco
IiIpOworICAgIGZvckVhY2hXaXRoQ2FsbGJhY2sodGVzdE9iamVjdFdpdGhWYWx1ZSwgWworICAg
ICAgICAibmV3IERhdGUoLTFlMTMpIiwKKyAgICAgICAgIm5ldyBEYXRlKC0xZTEyKSIsCisgICAg
ICAgICJuZXcgRGF0ZSgtMWU5KSIsCisgICAgICAgICJuZXcgRGF0ZSgtMWU2KSIsCisgICAgICAg
ICJuZXcgRGF0ZSgtMWUzKSIsCisgICAgICAgICJuZXcgRGF0ZSgwKSIsCisgICAgICAgICJuZXcg
RGF0ZSgxZTMpIiwKKyAgICAgICAgIm5ldyBEYXRlKDFlNikiLAorICAgICAgICAibmV3IERhdGUo
MWU5KSIsCisgICAgICAgICJuZXcgRGF0ZSgxZTEyKSIsCisgICAgICAgICJuZXcgRGF0ZSgxZTEz
KSIKKyAgICBdLCBjYWxsYmFjayk7Cit9CisKK2Z1bmN0aW9uIHRlc3RSZWdFeHBPYmplY3QoY2Fs
bGJhY2spCit7CisgICAgZGVidWcoIlRlc3RpbmcgUmVnRXhwIG9iamVjdHMiKTsKKyAgICBkZWJ1
ZygiIik7CisgICAgZnVuY3Rpb24gdGVzdFJlZ0V4cChzdHJpbmcsIGNhbGxiYWNrKSB7CisgICAg
ICAgIGRlYnVnKCJUZXN0aW5nIFJlZ0V4cDogIiArIHN0cmluZyk7CisgICAgICAgIHZhciB2YWx1
ZSA9IGV2YWwoInZhbHVlID0gKCIgKyBzdHJpbmcgKyAiKSIpOworICAgICAgICB0ZXN0X2RhdGEg
PSB2YWx1ZTsKKyAgICAgICAgdGVzdFZhbHVlKHRlc3RfZGF0YSwgZnVuY3Rpb24ocmVzdWx0KSB7
CisgICAgICAgICAgICB3aW5kb3cucmVzdWx0ID0gcmVzdWx0OworICAgICAgICAgICAgc2hvdWxk
QmVUcnVlKCJ0ZXN0X2RhdGEgIT09IHJlc3VsdCIpOworICAgICAgICAgICAgc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCJPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwocmVzdWx0KSIsICJbb2Jq
ZWN0IFJlZ0V4cF0iKTsKKyAgICAgICAgICAgIHNob3VsZEJlKCJyZXN1bHQudG9TdHJpbmcoKSIs
ICJ0ZXN0X2RhdGEudG9TdHJpbmcoKSIpOworICAgICAgICAgICAgZGVidWcoIiIpOworICAgICAg
ICAgICAgY2FsbGJhY2soKTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgZm9yRWFjaFdpdGhD
YWxsYmFjayh0ZXN0UmVnRXhwLCBbCisgICAgICAgICJuZXcgUmVnRXhwKCkiLAorICAgICAgICAi
L2FiYy8iLAorICAgICAgICAiL2FiYy9nIiwKKyAgICAgICAgIi9hYmMvaSIsCisgICAgICAgICIv
YWJjL2dpIiwKKyAgICAgICAgIi9hYmMvbSIsCisgICAgICAgICIvYWJjL21nIiwKKyAgICAgICAg
Ii9hYmMvbWkiLAorICAgICAgICAiL2FiYy9tZ2kiCisgICAgXSwgY2FsbGJhY2spOworfQorCitm
dW5jdGlvbiB0ZXN0SW1hZ2VEYXRhKGNhbGxiYWNrKQoreworICAgIGRlYnVnKCJUZXN0aW5nIElt
YWdlRGF0YSIpOworICAgIGV2YWxBbmRMb2coImNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoJ2NhbnZhcycpIik7CisgICAgZXZhbEFuZExvZygiY2FudmFzLndpZHRoID0gOCIpOworICAg
IGV2YWxBbmRMb2coImNhbnZhcy5oZWlnaHQgPSA4Iik7CisgICAgZXZhbEFuZExvZygidGVzdF9k
YXRhID0gY2FudmFzLmdldENvbnRleHQoJzJkJykuZ2V0SW1hZ2VEYXRhKDAsIDAsIDgsIDgpIik7
CisKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDI1NjsgKytpKSB7CisgICAgICAgIHRlc3RfZGF0
YS5kYXRhW2ldID0gaTsKKyAgICB9CisKKyAgICB0ZXN0VmFsdWUodGVzdF9kYXRhLCBmdW5jdGlv
bihyZXN1bHQpIHsKKyAgICAgICAgd2luZG93LnJlc3VsdCA9IHJlc3VsdDsKKyAgICAgICAgc2hv
dWxkQmVUcnVlKCJ0ZXN0X2RhdGEgIT09IHJlc3VsdCIpOworICAgICAgICBzaG91bGRCZUVxdWFs
VG9TdHJpbmcoIk9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChyZXN1bHQpIiwgIltvYmpl
Y3QgSW1hZ2VEYXRhXSIpOworICAgICAgICBzaG91bGRCZSgicmVzdWx0LndpZHRoIiwgInRlc3Rf
ZGF0YS53aWR0aCIpOworICAgICAgICBzaG91bGRCZSgicmVzdWx0LmhlaWdodCIsICJ0ZXN0X2Rh
dGEuaGVpZ2h0Iik7CisgICAgICAgIHNob3VsZEJlKCJyZXN1bHQuZGF0YS5sZW5ndGgiLCAidGVz
dF9kYXRhLmRhdGEubGVuZ3RoIik7CisgICAgICAgIGlmIChhcnJheUNvbXBhcmUodGVzdF9kYXRh
LmRhdGEsIHJlc3VsdC5kYXRhKSkgeworICAgICAgICAgICAgdGVzdFBhc3NlZCgicmVzdWx0IGRh
dGEgbWF0Y2hlcyIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgdGVzdEZhaWxlZCgi
cmVzdWx0IGRhdGEgZG9lc24ndCBtYXRjaCIpOworICAgICAgICB9CisgICAgICAgIGNhbGxiYWNr
KCk7CisgICAgfSk7Cit9CisKK2Z1bmN0aW9uIHJlYWRCbG9iQXNUZXh0KGJsb2IsIGNhbGxiYWNr
KQoreworICAgIHZhciByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpOworICAgIHJlYWRlci5vbmxv
YWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGlmIChlLnRhcmdldC5yZWFkeVN0YXRlID09PSBG
aWxlUmVhZGVyLkRPTkUpIHsKKyAgICAgICAgICAgIGNhbGxiYWNrKGUudGFyZ2V0LnJlc3VsdCk7
CisgICAgICAgIH0KKyAgICB9OworICAgIHJlYWRlci5vbmVycm9yID0gZnVuY3Rpb24oZSkgewor
ICAgICAgICB0ZXN0RmFpbGVkKCJFcnJvciByZWFkaW5nIGJsb2IgYXMgdGV4dDogIiArIGUpOwor
ICAgICAgICBkb25lKCk7CisgICAgfTsKKyAgICByZWFkZXIucmVhZEFzVGV4dChibG9iKTsKK30K
KworZnVuY3Rpb24gY2hlY2tCbG9iQ29udGVudHMoYmxvYiwgZXhwZWN0ZWQsIGNhbGxiYWNrKQor
eworICAgIHJlYWRCbG9iQXNUZXh0KGJsb2IsIGZ1bmN0aW9uKHRleHQpIHsKKyAgICAgICAgd2lu
ZG93LnRleHQgPSB0ZXh0OworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInRleHQiLCBl
eHBlY3RlZCk7CisgICAgICAgIGNhbGxiYWNrKCk7CisgICAgfSk7Cit9CisKK2Z1bmN0aW9uIGNv
bXBhcmVCbG9icyhibG9iMSwgYmxvYjIsIGNhbGxiYWNrKQoreworICAgIHJlYWRCbG9iQXNUZXh0
KGJsb2IxLCBmdW5jdGlvbih0ZXh0MSkgeworICAgICAgICByZWFkQmxvYkFzVGV4dChibG9iMiwg
ZnVuY3Rpb24odGV4dDIpIHsKKyAgICAgICAgICAgIHdpbmRvdy50ZXh0MSA9IHRleHQxOworICAg
ICAgICAgICAgd2luZG93LnRleHQyID0gdGV4dDI7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFs
VG9TdHJpbmcoInRleHQyIiwgdGV4dDEpOworICAgICAgICAgICAgY2FsbGJhY2soKTsKKyAgICAg
ICAgfSk7CisgICAgfSk7Cit9CisKK2Z1bmN0aW9uIHRlc3RCbG9iKGNhbGxiYWNrKQoreworICAg
IGRlYnVnKCJUZXN0aW5nIEJsb2IiKTsKKyAgICBldmFsQW5kTG9nKCJCbG9iQnVpbGRlciA9IHdp
bmRvdy5CbG9iQnVpbGRlciB8fCB3aW5kb3cuV2ViS2l0QmxvYkJ1aWxkZXIiKTsKKyAgICBzaG91
bGRCZVRydWUoIkJsb2JCdWlsZGVyICE9IG51bGwiKTsKKyAgICBzaG91bGRCZVRydWUoIkZpbGVS
ZWFkZXIgIT0gbnVsbCIpOworICAgIGV2YWxBbmRMb2coImJ1aWxkZXIgPSBuZXcgQmxvYkJ1aWxk
ZXIoKSIpOworICAgIGV2YWxBbmRMb2coInRlc3RfY29udGVudCA9ICdUaGlzIGlzIGEgdGVzdC4g
VGhpcyBpcyBvbmx5IGEgdGVzdC4nIik7CisgICAgZXZhbEFuZExvZygiYnVpbGRlci5hcHBlbmQo
dGVzdF9jb250ZW50KSIpOworICAgIGV2YWxBbmRMb2coInRlc3RfZGF0YSA9IGJ1aWxkZXIuZ2V0
QmxvYigpIik7CisgICAgdGVzdFZhbHVlKHRlc3RfZGF0YSwgZnVuY3Rpb24ocmVzdWx0KSB7Cisg
ICAgICAgIHdpbmRvdy5yZXN1bHQgPSByZXN1bHQ7CisgICAgICAgIHNob3VsZEJlVHJ1ZSgidGVz
dF9kYXRhICE9PSByZXN1bHQiKTsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJPYmpl
Y3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwocmVzdWx0KSIsICJbb2JqZWN0IEJsb2JdIik7Cisg
ICAgICAgIHNob3VsZEJlKCJyZXN1bHQuc2l6ZSIsICJ0ZXN0X2RhdGEuc2l6ZSIpOworICAgICAg
ICBzaG91bGRCZSgicmVzdWx0LnR5cGUiLCAidGVzdF9kYXRhLnR5cGUiKTsKKyAgICAgICAgY2hl
Y2tCbG9iQ29udGVudHMocmVzdWx0LCB0ZXN0X2NvbnRlbnQsIGNhbGxiYWNrKTsKKyAgICB9KTsK
K30KKworZnVuY3Rpb24gY29tcGFyZUZpbGVzKGZpbGUxLCBmaWxlMiwgY2FsbGJhY2spCit7Cisg
ICAgd2luZG93LmZpbGUxID0gZmlsZTE7CisgICAgd2luZG93LmZpbGUyID0gZmlsZTI7CisgICAg
c2hvdWxkQmVUcnVlKCJmaWxlMSAhPT0gZmlsZTIiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJp
bmcoIk9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChmaWxlMSkiLCAiW29iamVjdCBGaWxl
XSIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiT2JqZWN0LnByb3RvdHlwZS50b1N0cmlu
Zy5jYWxsKGZpbGUyKSIsICJbb2JqZWN0IEZpbGVdIik7CisgICAgZGVidWcoImZpbGUxLnNpemU6
ICIgKyBmaWxlMS5zaXplKTsKKyAgICBzaG91bGRCZSgiZmlsZTEuc2l6ZSIsICJmaWxlMi5zaXpl
Iik7CisgICAgZGVidWcoImZpbGUxLnR5cGU6ICIgKyBmaWxlMS50eXBlKTsKKyAgICBzaG91bGRC
ZSgiZmlsZTEudHlwZSIsICJmaWxlMi50eXBlIik7CisgICAgZGVidWcoImZpbGUxLm5hbWU6ICIg
KyBmaWxlMS5uYW1lKTsKKyAgICBzaG91bGRCZSgiZmlsZTEubmFtZSIsICJmaWxlMi5uYW1lIik7
CisgICAgc2hvdWxkQmUoIlN0cmluZyhmaWxlMS5sYXN0TW9kaWZpZWREYXRlKSIsICJTdHJpbmco
ZmlsZTIubGFzdE1vZGlmaWVkRGF0ZSkiKTsKKyAgICBpZiAoY2FsbGJhY2spIHsKKyAgICAgICAg
Y29tcGFyZUJsb2JzKGZpbGUxLCBmaWxlMiwgY2FsbGJhY2spOworICAgIH0KK30KKworZnVuY3Rp
b24gdGVzdEZpbGUoY2FsbGJhY2spCit7CisgICAgZGVidWcoIlRlc3RpbmcgRmlsZSIpOworICAg
IGV2YWxBbmRMb2coInRlc3RfY29udGVudCA9IGZpbGVJbnB1dC5maWxlc1swXSIpOworCisgICAg
d2luZG93LnRlc3RfZGF0YSA9IHRlc3RfY29udGVudDsKKyAgICB0ZXN0VmFsdWUodGVzdF9kYXRh
LCBmdW5jdGlvbihyZXN1bHQpIHsKKyAgICAgICAgd2luZG93LnJlc3VsdCA9IHJlc3VsdDsKKyAg
ICAgICAgY29tcGFyZUZpbGVzKHJlc3VsdCwgdGVzdF9kYXRhLCBjYWxsYmFjayk7CisgICAgfSk7
Cit9CisKKworZnVuY3Rpb24gdGVzdEZpbGVMaXN0KGNhbGxiYWNrKQoreworICAgIGRlYnVnKCJU
ZXN0aW5nIEZpbGVMaXN0Iik7CisgICAgZXZhbEFuZExvZygidGVzdF9jb250ZW50ID0gZmlsZUlu
cHV0LmZpbGVzIik7CisKKyAgICB3aW5kb3cudGVzdF9kYXRhID0gdGVzdF9jb250ZW50OworICAg
IHRlc3RWYWx1ZSh0ZXN0X2RhdGEsIGZ1bmN0aW9uKHJlc3VsdCkgeworICAgICAgICB3aW5kb3cu
cmVzdWx0ID0gcmVzdWx0OworICAgICAgICBzaG91bGRCZVRydWUoInRlc3RfZGF0YSAhPT0gcmVz
dWx0Iik7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiT2JqZWN0LnByb3RvdHlwZS50
b1N0cmluZy5jYWxsKHJlc3VsdCkiLCAiW29iamVjdCBGaWxlTGlzdF0iKTsKKyAgICAgICAgc2hv
dWxkQmUoInJlc3VsdC5sZW5ndGgiLCAidGVzdF9kYXRhLmxlbmd0aCIpOworICAgICAgICBpID0g
MDsKKyAgICAgICAgZnVuY3Rpb24gZG9OZXh0KCkgeworICAgICAgICAgICAgaWYgKGkgPj0gdGVz
dF9kYXRhLmxlbmd0aCkgeworICAgICAgICAgICAgICAgIGNhbGxiYWNrKCk7CisgICAgICAgICAg
ICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGRlYnVnKCJjb21wYXJpbmcgZmlsZVsiICsgaSAr
ICJdIik7CisgICAgICAgICAgICAgICAgY29tcGFyZUZpbGVzKHJlc3VsdFtpXSwgdGVzdF9kYXRh
W2krK10sIGRvTmV4dCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZG9OZXh0
KCk7CisgICAgfSk7Cit9CisKK2Z1bmN0aW9uIHRlc3RBcnJheShjYWxsYmFjaykgeworICAgIGRl
YnVnKCJUZXN0aW5nIEFycmF5Iik7CisgICAgZXZhbEFuZExvZygidGVzdF9kYXRhID0gW10iKTsK
KyAgICBldmFsQW5kTG9nKCJ0ZXN0X2RhdGFbMF0gPSAnZm9vJyIpOworICAgIGV2YWxBbmRMb2co
InRlc3RfZGF0YVsxXSA9ICdiYXInIik7CisgICAgZXZhbEFuZExvZygidGVzdF9kYXRhWzEwXSA9
IHRydWUiKTsKKyAgICBldmFsQW5kTG9nKCJ0ZXN0X2RhdGFbMTFdID0gZmFsc2UiKTsKKyAgICBl
dmFsQW5kTG9nKCJ0ZXN0X2RhdGFbMjBdID0gMTIzIik7CisgICAgZXZhbEFuZExvZygidGVzdF9k
YXRhWzIxXSA9IDQ1NiIpOworICAgIGV2YWxBbmRMb2coInRlc3RfZGF0YVszMF0gPSBudWxsIik7
CisKKyAgICB0ZXN0VmFsdWUodGVzdF9kYXRhLCBmdW5jdGlvbihyZXN1bHQpIHsKKyAgICAgICAg
d2luZG93LnJlc3VsdCA9IHJlc3VsdDsKKyAgICAgICAgc2hvdWxkQmVUcnVlKCJ0ZXN0X2RhdGEg
IT09IHJlc3VsdCIpOworICAgICAgICBzaG91bGRCZVRydWUoInRlc3RfZGF0YS5sZW5ndGggPT09
IHJlc3VsdC5sZW5ndGgiKTsKKyAgICAgICAgT2JqZWN0LmtleXModGVzdF9kYXRhKS5mb3JFYWNo
KAorICAgICAgICAgICAgZnVuY3Rpb24oa2V5KSB7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUo
InRlc3RfZGF0YVsiICsga2V5ICsgIl0iLCAicmVzdWx0WyIgKyBrZXkgKyAiXSIpOworICAgICAg
ICAgICAgfSk7CisgICAgICAgIGNhbGxiYWNrKCk7CisgICAgfSk7Cit9CisKK2Z1bmN0aW9uIHRl
c3RPYmplY3QoY2FsbGJhY2spIHsKKyAgICBkZWJ1ZygiVGVzdGluZyBPYmplY3QiKTsKKyAgICBl
dmFsQW5kTG9nKCJ0ZXN0X2RhdGEgPSBbXSIpOworICAgIGV2YWxBbmRMb2coInRlc3RfZGF0YVsw
XSA9ICdmb28nIik7CisgICAgZXZhbEFuZExvZygidGVzdF9kYXRhWzFdID0gJ2JhciciKTsKKyAg
ICBldmFsQW5kTG9nKCJ0ZXN0X2RhdGFbJ2EnXSA9IHRydWUiKTsKKyAgICBldmFsQW5kTG9nKCJ0
ZXN0X2RhdGFbJ2InXSA9IGZhbHNlIik7CisgICAgZXZhbEFuZExvZygidGVzdF9kYXRhWydmb28n
XSA9IDEyMyIpOworICAgIGV2YWxBbmRMb2coInRlc3RfZGF0YVsnYmFyJ10gPSA0NTYiKTsKKyAg
ICBldmFsQW5kTG9nKCJ0ZXN0X2RhdGFbJyddID0gbnVsbCIpOworCisgICAgdGVzdFZhbHVlKHRl
c3RfZGF0YSwgZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgICAgIHdpbmRvdy5yZXN1bHQgPSByZXN1
bHQ7CisgICAgICAgIHNob3VsZEJlVHJ1ZSgidGVzdF9kYXRhICE9PSByZXN1bHQiKTsKKyAgICAg
ICAgc2hvdWxkQmVUcnVlKCJhcnJheUNvbXBhcmUoT2JqZWN0LmtleXMocmVzdWx0KS5zb3J0KCks
IE9iamVjdC5rZXlzKHRlc3RfZGF0YSkuc29ydCgpKSIpOworICAgICAgICBPYmplY3Qua2V5cyh0
ZXN0X2RhdGEpLmZvckVhY2goCisgICAgICAgICAgICBmdW5jdGlvbihrZXkpIHsKKyAgICAgICAg
ICAgICAgICBzaG91bGRCZSgidGVzdF9kYXRhWyIgKyBKU09OLnN0cmluZ2lmeShrZXkpICsgIl0i
LCAicmVzdWx0WyIgKyBKU09OLnN0cmluZ2lmeShrZXkpICsgIl0iKTsKKyAgICAgICAgICAgIH0p
OworICAgICAgICBjYWxsYmFjaygpOworICAgIH0pOworfQorCitmdW5jdGlvbiB0ZXN0QmFkVHlw
ZXMoKQoreworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1ZygiVGVzdCB0eXBlcyB0aGF0IGNhbid0
IGJlIGNsb25lZDoiKTsKKyAgICBkZWJ1ZygiIik7CisKKyAgICBldmFsQW5kTG9nKCJ0cmFuc2Fj
dGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUnLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dS
SVRFKSIpOworICAgIGV2YWxBbmRMb2coInN0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUo
J3N0b3JlTmFtZScpIik7CisgICAgdHJhbnNhY3Rpb24ub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJv
ckNhbGxiYWNrOworICAgIHRyYW5zYWN0aW9uLm9uY29tcGxldGUgPSB1bmV4cGVjdGVkQ29tcGxl
dGVDYWxsYmFjazsKKyAgICB0cmFuc2FjdGlvbi5vbmFib3J0ID0gZG9uZTsKKworICAgIGRlYnVn
KCIiKTsKKyAgICBkZWJ1ZygiT3RoZXIgSmF2YVNjcmlwdCBvYmplY3QgdHlwZXM6Iik7CisgICAg
ZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigic3RvcmUucHV0KG5ldyBFcnJvciwgJ2tleScpIiwgIkRP
TUV4Y2VwdGlvbi5EQVRBX0NMT05FX0VSUiIpOworICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24o
InN0b3JlLnB1dChuZXcgRnVuY3Rpb24sICdrZXknKSIsICJET01FeGNlcHRpb24uREFUQV9DTE9O
RV9FUlIiKTsKKworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1ZygiT3RoZXIgaG9zdCBvYmplY3Qg
dHlwZXM6Iik7CisgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigic3RvcmUucHV0KHdpbmRvdywg
J2tleScpIiwgIkRPTUV4Y2VwdGlvbi5EQVRBX0NMT05FX0VSUiIpOworICAgIGV2YWxBbmRFeHBl
Y3RFeGNlcHRpb24oInN0b3JlLnB1dChkb2N1bWVudCwgJ2tleScpIiwgIkRPTUV4Y2VwdGlvbi5E
QVRBX0NMT05FX0VSUiIpOworICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oInN0b3JlLnB1dChk
b2N1bWVudC5ib2R5LCAna2V5JykiLCAiRE9NRXhjZXB0aW9uLkRBVEFfQ0xPTkVfRVJSIik7Cit9
CisKK3Rlc3QoKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>124359</attachid>
            <date>2012-01-27 13:20:55 -0800</date>
            <delta_ts>2012-01-30 11:48:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-74897-20120127132055.patch</filename>
            <type>text/plain</type>
            <size>45110</size>
            <attacher name="Joshua Bell">jsbell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA2MDk2CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMjg4Njk1MDkyMGZkZGQxM2Y4MWQx
NmUyOGMwYzZhNDVmY2UyY2E1MS4uOTUxNmU3M2Y0NWY4ODJmZDdkNjE4Mzc1NTg1NTc3MTIyOGIz
ODI2NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDEyLTAxLTE5ICBKb3NodWEgQmVsbCAgPGpz
YmVsbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhlZERCOiBBZGQgdGVzdHMgZm9yIHN0
cnVjdHVyZWQgY2xvbmUgZGF0YQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NzQ4OTcKKworICAgICAgICBWYWxpZGF0ZSB0aGF0IHRoZSB0eXBlcyBsaXN0
ZWQgaW4gdGhlIEhUTUw1ICJzdHJ1Y3R1cmVkIGNsb25lIGFsZ29yaXRobSIKKyAgICAgICAgcm91
bmQgdHJpcCBwcm9wZXJseSB0aHJvdWdoIEluZGV4ZWQgREIgc3RvcmFnZS4gVHlwZXMgd2l0aCBp
bmNvbXBsZXRlCisgICAgICAgIHN1cHBvcnQgaW4gdGhlIENocm9taXVtIHBvcnQgYXJlIGV4Y2x1
ZGVkIChodHRwOi8vY3JidWcuY29tLzEwODAxMikuCisgICAgICAgIExhbmRpbmcgZGlzYWJsZWQg
c2luY2UgY3ItbGludXggaXMgZmFpbGluZyB0ZXN0IGZvciB1bmtub3duIHJlYXNvbnMuCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9j
aHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQ6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVk
ZGIvcmVzb3VyY2VzL3Rlc3QtZGF0YS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2lu
ZGV4ZWRkYi9yZXNvdXJjZXMvdGVzdC1kYXRhLnR4dDogQWRkZWQuCisgICAgICAgICogc3RvcmFn
ZS9pbmRleGVkZGIvc3RydWN0dXJlZC1jbG9uZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3N0cnVjdHVyZWQtY2xvbmUuaHRtbDogQWRkZWQuCisKIDIw
MTItMDEtMjYgIFl1em8gRnVqaXNoaW1hICA8eXV6b0Bnb29nbGUuY29tPgogCiAgICAgICAgIFtD
aHJvbWl1bV0gVW5yZXZpZXdlZCB0ZXN0IGV4cGVjdGF0aW9uIGNoYW5nZS4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dCBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dAppbmRleCBk
MGVkMTIzZWM0MzU4Mjc2NDQ0N2Q0YzI4MTgwOTc5YTJhNGUyODcyLi5hZWU3YjliYjhmZDYzZDdk
ODc1NDU4Y2U0ODBhNTJkMjJhZGYzYWFkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CkBAIC00MDIwLDMgKzQwMjAsNSBAQCBC
VUdXSzc3MDYxIFhQIERFQlVHIDogc3ZnL2N1c3RvbS9vYmplY3Qtc2l6aW5nLWV4cGxpY2l0LXdp
ZHRoLnhodG1sID0gUEFTUyBJTUFHRQogQlVHV0s3NzE4MyA6IHN2Zy9hcy1vYmplY3QvbmVzdGVk
LWVtYmVkZGVkLXN2Zy1zaXplLWNoYW5nZXMuaHRtbCA9IFBBU1MgVElNRU9VVAogCiBCVUdXSzc3
MTg4IE1BQyBHUFUgOiBmYXN0L2NhbnZhcy9ncmFkaWVudC1hZGQtc2Vjb25kLXN0YXJ0LWVuZC1z
dG9wLmh0bWwgPSBJTUFHRQorCitCVUdXSzc3MjM5IDogc3RvcmFnZS9pbmRleGVkZGIvc3RydWN0
dXJlZC1jbG9uZS5odG1sID0gUEFTUyBURVhUCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvdGVzdC1kYXRhLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvdGVzdC1kYXRhLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzViZGIy
OGFkNTkyYWUyZmFmOGM3YTkzYzczY2UwMmJjZjIwZmQwMgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy90ZXN0LWRhdGEuaHRtbApAQCAt
MCwwICsxLDQgQEAKKzwhRE9DVFlQRSBodG1sPgorPHRpdGxlPlRoaXMgaXMgc29tZSB0ZXN0IGRh
dGE8L3RpdGxlPgorPGgxPlRlc3QgZGF0YSE8L2gxPgorPHA+R2V0IHlvdXIgdGVzdCBkYXRhIGhl
cmUhCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMv
dGVzdC1kYXRhLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy90
ZXN0LWRhdGEudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRlZTNhMmQzYzdlNmExNzZmYWNhN2U1MDg3NTg2MmQ0
MWI3ZDNlY2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9yZXNvdXJjZXMvdGVzdC1kYXRhLnR4dApAQCAtMCwwICsxIEBACitMb3JlbSBpcHN1bSBkb2xv
ciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlzY2luZyBlbGl0LiBBZW5lYW4gbGFvcmVldCBk
b2xvciBpZCB1cm5hIGVsZWlmZW5kIGFsaXF1ZXQuIE51bGxhIHZlbCBkb2xvciBpcHN1bS4gQWxp
cXVhbSB1dCB0dXJwaXMgbmlzbCwgaW4gdnVscHV0YXRlIHNhcGllbi4gQ3VtIHNvY2lpcyBuYXRv
cXVlIHBlbmF0aWJ1cyBldCBtYWduaXMgZGlzIHBhcnR1cmllbnQgbW9udGVzLCBuYXNjZXR1ciBy
aWRpY3VsdXMgbXVzLiBTZWQgY29uZ3VlIG1hZ25hIHZpdGFlIGRvbG9yIGZldWdpYXQgdmVoaWN1
bGEuIFNlZCB2b2x1dHBhdCwgdGVsbHVzIHZlbCB2YXJpdXMgdmVzdGlidWx1bSwgcHVydXMgcXVh
bSBtb2xsaXMgc2FwaWVuLCBpbiBjb25kaW1lbnR1bSBsZW8gbmVxdWUgc2VkIG51bGxhLiBOdW5j
IHF1aXMgcG9ydGEgZWxpdC4gUGVsbGVudGVzcXVlIGVyYXQgbGVjdHVzLCB1bHRyaWNpZXMgYSBs
b2JvcnRpcyBpZCwgZmF1Y2lidXMgaWQgcXVhbS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL3N0cnVjdHVyZWQtY2xvbmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvc3RydWN0dXJlZC1jbG9uZS1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uOWIwMzc0YTYwN2Q0Y2I5Y2E1MGRjYTVkYTZiNWRlODBiODNkMDExMwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3N0cnVjdHVyZWQtY2xvbmUt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNjkyIEBACisKK1Rlc3Qgc3RydWN0dXJlZCBjbG9uZSBw
ZXJtdXRhdGlvbnMgaW4gSW5kZXhlZERCLiBGaWxlL0ZpbGVMaXN0IHRlc3RzIHJlcXVpcmUgRHVt
cFJlbmRlclRyZWUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitpbmRleGVkREIg
PSB3aW5kb3cuaW5kZXhlZERCIHx8IHdpbmRvdy53ZWJraXRJbmRleGVkREIKK1BBU1MgaW5kZXhl
ZERCICE9IG51bGwgaXMgdHJ1ZQorSURCVHJhbnNhY3Rpb24gPSB3aW5kb3cuSURCVHJhbnNhY3Rp
b24gfHwgd2luZG93LndlYmtpdElEQlRyYW5zYWN0aW9uCitQQVNTIElEQlRyYW5zYWN0aW9uICE9
IG51bGwgaXMgdHJ1ZQorCitQcmVwYXJlIERhdGFiYXNlCitpbmRleGVkREIuZGVsZXRlRGF0YWJh
c2UoJ3N0cnVjdHVyZWQtY2xvbmUnKQoraW5kZXhlZERCLm9wZW4oJ3N0cnVjdHVyZWQtY2xvbmUn
KQorZGIgPSByZXF1ZXN0LnJlc3VsdAorUEFTUyBkYi52ZXJzaW9uIGlzICIiCitkYi5zZXRWZXJz
aW9uKCcxJykKK2RiLmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKQorCitSdW5uaW5nIHRl
c3RzLi4uCisKK1Rlc3Rpbmc6IHVuZGVmaW5lZAordHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlv
bignc3RvcmVOYW1lJywgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkKK3N0b3JlID0gdHJhbnNh
Y3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpCit2YWx1ZSBpczogdW5kZWZpbmVkICh0eXBl
OiB1bmRlZmluZWQpCitzdG9yZS5wdXQodmFsdWUsICdrZXknKQorc3RvcmUuZ2V0KCdrZXknKQor
UEFTUyBpcyh0ZXN0X2RhdGEsIHJlc3VsdCkgaXMgdHJ1ZQorCisKK1Rlc3Rpbmc6IG51bGwKK3Ry
YW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24oJ3N0b3JlTmFtZScsIElEQlRyYW5zYWN0aW9uLlJF
QURfV1JJVEUpCitzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKQor
dmFsdWUgaXM6IG51bGwgKHR5cGU6IG9iamVjdCkKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScpCitz
dG9yZS5nZXQoJ2tleScpCitQQVNTIGlzKHRlc3RfZGF0YSwgcmVzdWx0KSBpcyB0cnVlCisKKwor
VGVzdGluZyBib29sZWFuIHByaW1pdGl2ZXMKKworVGVzdGluZzogdHJ1ZQordHJhbnNhY3Rpb24g
PSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1lJywgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkK
K3N0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpCit2YWx1ZSBpczog
dHJ1ZSAodHlwZTogYm9vbGVhbikKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5nZXQo
J2tleScpCitQQVNTIGlzKHRlc3RfZGF0YSwgcmVzdWx0KSBpcyB0cnVlCisKK1Rlc3Rpbmc6IGZh
bHNlCit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUnLCBJREJUcmFuc2Fj
dGlvbi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmVO
YW1lJykKK3ZhbHVlIGlzOiBmYWxzZSAodHlwZTogYm9vbGVhbikKK3N0b3JlLnB1dCh2YWx1ZSwg
J2tleScpCitzdG9yZS5nZXQoJ2tleScpCitQQVNTIGlzKHRlc3RfZGF0YSwgcmVzdWx0KSBpcyB0
cnVlCisKKworVGVzdGluZyBudW1iZXIgcHJpbWl0aXZlcworCitUZXN0aW5nOiBOYU4KK3RyYW5z
YWN0aW9uID0gZGIudHJhbnNhY3Rpb24oJ3N0b3JlTmFtZScsIElEQlRyYW5zYWN0aW9uLlJFQURf
V1JJVEUpCitzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKQordmFs
dWUgaXM6IE5hTiAodHlwZTogbnVtYmVyKQorc3RvcmUucHV0KHZhbHVlLCAna2V5JykKK3N0b3Jl
LmdldCgna2V5JykKK1BBU1MgaXModGVzdF9kYXRhLCByZXN1bHQpIGlzIHRydWUKKworVGVzdGlu
ZzogLUluZmluaXR5Cit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUnLCBJ
REJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9y
ZSgnc3RvcmVOYW1lJykKK3ZhbHVlIGlzOiAtSW5maW5pdHkgKHR5cGU6IG51bWJlcikKK3N0b3Jl
LnB1dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5nZXQoJ2tleScpCitQQVNTIGlzKHRlc3RfZGF0YSwg
cmVzdWx0KSBpcyB0cnVlCisKK1Rlc3Rpbmc6IC1OdW1iZXIuTUFYX1ZBTFVFCit0cmFuc2FjdGlv
biA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUnLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRF
KQorc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmVOYW1lJykKK3ZhbHVlIGlz
OiAtMS43OTc2OTMxMzQ4NjIzMTU3ZSszMDggKHR5cGU6IG51bWJlcikKK3N0b3JlLnB1dCh2YWx1
ZSwgJ2tleScpCitzdG9yZS5nZXQoJ2tleScpCitQQVNTIGlzKHRlc3RfZGF0YSwgcmVzdWx0KSBp
cyB0cnVlCisKK1Rlc3Rpbmc6IC1OdW1iZXIuTUlOX1ZBTFVFCit0cmFuc2FjdGlvbiA9IGRiLnRy
YW5zYWN0aW9uKCdzdG9yZU5hbWUnLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKQorc3RvcmUg
PSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmVOYW1lJykKK3ZhbHVlIGlzOiAtNWUtMzI0
ICh0eXBlOiBudW1iZXIpCitzdG9yZS5wdXQodmFsdWUsICdrZXknKQorc3RvcmUuZ2V0KCdrZXkn
KQorUEFTUyBpcyh0ZXN0X2RhdGEsIHJlc3VsdCkgaXMgdHJ1ZQorCitUZXN0aW5nOiAtMAordHJh
bnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1lJywgSURCVHJhbnNhY3Rpb24uUkVB
RF9XUklURSkKK3N0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpCit2
YWx1ZSBpczogMCAodHlwZTogbnVtYmVyKQorc3RvcmUucHV0KHZhbHVlLCAna2V5JykKK3N0b3Jl
LmdldCgna2V5JykKK1BBU1MgaXModGVzdF9kYXRhLCByZXN1bHQpIGlzIHRydWUKKworVGVzdGlu
ZzogMAordHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1lJywgSURCVHJhbnNh
Y3Rpb24uUkVBRF9XUklURSkKK3N0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3Jl
TmFtZScpCit2YWx1ZSBpczogMCAodHlwZTogbnVtYmVyKQorc3RvcmUucHV0KHZhbHVlLCAna2V5
JykKK3N0b3JlLmdldCgna2V5JykKK1BBU1MgaXModGVzdF9kYXRhLCByZXN1bHQpIGlzIHRydWUK
KworVGVzdGluZzogTnVtYmVyLk1JTl9WQUxVRQordHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlv
bignc3RvcmVOYW1lJywgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkKK3N0b3JlID0gdHJhbnNh
Y3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpCit2YWx1ZSBpczogNWUtMzI0ICh0eXBlOiBu
dW1iZXIpCitzdG9yZS5wdXQodmFsdWUsICdrZXknKQorc3RvcmUuZ2V0KCdrZXknKQorUEFTUyBp
cyh0ZXN0X2RhdGEsIHJlc3VsdCkgaXMgdHJ1ZQorCitUZXN0aW5nOiBOdW1iZXIuTUFYX1ZBTFVF
Cit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUnLCBJREJUcmFuc2FjdGlv
bi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmVOYW1l
JykKK3ZhbHVlIGlzOiAxLjc5NzY5MzEzNDg2MjMxNTdlKzMwOCAodHlwZTogbnVtYmVyKQorc3Rv
cmUucHV0KHZhbHVlLCAna2V5JykKK3N0b3JlLmdldCgna2V5JykKK1BBU1MgaXModGVzdF9kYXRh
LCByZXN1bHQpIGlzIHRydWUKKworVGVzdGluZzogSW5maW5pdHkKK3RyYW5zYWN0aW9uID0gZGIu
dHJhbnNhY3Rpb24oJ3N0b3JlTmFtZScsIElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUpCitzdG9y
ZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKQordmFsdWUgaXM6IEluZmlu
aXR5ICh0eXBlOiBudW1iZXIpCitzdG9yZS5wdXQodmFsdWUsICdrZXknKQorc3RvcmUuZ2V0KCdr
ZXknKQorUEFTUyBpcyh0ZXN0X2RhdGEsIHJlc3VsdCkgaXMgdHJ1ZQorCisKK1Rlc3Rpbmcgc3Ry
aW5nIHByaW1pdGl2ZXMKKworVGVzdGluZzogJycKK3RyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rp
b24oJ3N0b3JlTmFtZScsIElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUpCitzdG9yZSA9IHRyYW5z
YWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKQordmFsdWUgaXM6ICAodHlwZTogc3RyaW5n
KQorc3RvcmUucHV0KHZhbHVlLCAna2V5JykKK3N0b3JlLmdldCgna2V5JykKK1BBU1MgaXModGVz
dF9kYXRhLCByZXN1bHQpIGlzIHRydWUKKworVGVzdGluZzogJ3RoaXMgaXMgYSBzYW1wbGUgc3Ry
aW5nJwordHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1lJywgSURCVHJhbnNh
Y3Rpb24uUkVBRF9XUklURSkKK3N0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3Jl
TmFtZScpCit2YWx1ZSBpczogdGhpcyBpcyBhIHNhbXBsZSBzdHJpbmcgKHR5cGU6IHN0cmluZykK
K3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5nZXQoJ2tleScpCitQQVNTIGlzKHRlc3Rf
ZGF0YSwgcmVzdWx0KSBpcyB0cnVlCisKK1Rlc3Rpbmc6ICdudWxsKFwwKScKK3RyYW5zYWN0aW9u
ID0gZGIudHJhbnNhY3Rpb24oJ3N0b3JlTmFtZScsIElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUp
CitzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKQordmFsdWUgaXM6
IG51bGwoKSAodHlwZTogc3RyaW5nKQorc3RvcmUucHV0KHZhbHVlLCAna2V5JykKK3N0b3JlLmdl
dCgna2V5JykKK1BBU1MgaXModGVzdF9kYXRhLCByZXN1bHQpIGlzIHRydWUKKworCitUZXN0aW5n
IEJvb2xlYW4gb2JqZWN0cworCitUZXN0aW5nOiBuZXcgQm9vbGVhbih0cnVlKQordHJhbnNhY3Rp
b24gPSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1lJywgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklU
RSkKK3N0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpCit2YWx1ZSBp
czogdHJ1ZSAodHlwZTogb2JqZWN0KQorc3RvcmUucHV0KHZhbHVlLCAna2V5JykKK3N0b3JlLmdl
dCgna2V5JykKK1N0cmluZyhyZXN1bHQpOiB0cnVlCitQQVNTIHR5cGVvZiByZXN1bHQgaXMgIm9i
amVjdCIKK1BBU1MgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHJlc3VsdCkgaXMgT2Jq
ZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHRlc3RfZGF0YSkKK1BBU1MgdGVzdF9kYXRhICE9
PSByZXN1bHQgaXMgdHJ1ZQorUEFTUyByZXN1bHQudG9TdHJpbmcoKSBpcyB0ZXN0X2RhdGEudG9T
dHJpbmcoKQorUEFTUyBpcyh0ZXN0X2RhdGEudmFsdWVPZigpLCByZXN1bHQudmFsdWVPZigpKSBp
cyB0cnVlCisKK1Rlc3Rpbmc6IG5ldyBCb29sZWFuKGZhbHNlKQordHJhbnNhY3Rpb24gPSBkYi50
cmFuc2FjdGlvbignc3RvcmVOYW1lJywgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkKK3N0b3Jl
ID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpCit2YWx1ZSBpczogZmFsc2Ug
KHR5cGU6IG9iamVjdCkKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5nZXQoJ2tleScp
CitTdHJpbmcocmVzdWx0KTogZmFsc2UKK1BBU1MgdHlwZW9mIHJlc3VsdCBpcyAib2JqZWN0Igor
UEFTUyBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwocmVzdWx0KSBpcyBPYmplY3QucHJv
dG90eXBlLnRvU3RyaW5nLmNhbGwodGVzdF9kYXRhKQorUEFTUyB0ZXN0X2RhdGEgIT09IHJlc3Vs
dCBpcyB0cnVlCitQQVNTIHJlc3VsdC50b1N0cmluZygpIGlzIHRlc3RfZGF0YS50b1N0cmluZygp
CitQQVNTIGlzKHRlc3RfZGF0YS52YWx1ZU9mKCksIHJlc3VsdC52YWx1ZU9mKCkpIGlzIHRydWUK
KworCitUZXN0aW5nIE51bWJlciBvYmplY3RzCisKK1Rlc3Rpbmc6IG5ldyBOdW1iZXIoTmFOKQor
dHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1lJywgSURCVHJhbnNhY3Rpb24u
UkVBRF9XUklURSkKK3N0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScp
Cit2YWx1ZSBpczogTmFOICh0eXBlOiBvYmplY3QpCitzdG9yZS5wdXQodmFsdWUsICdrZXknKQor
c3RvcmUuZ2V0KCdrZXknKQorU3RyaW5nKHJlc3VsdCk6IE5hTgorUEFTUyB0eXBlb2YgcmVzdWx0
IGlzICJvYmplY3QiCitQQVNTIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChyZXN1bHQp
IGlzIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0ZXN0X2RhdGEpCitQQVNTIHRlc3Rf
ZGF0YSAhPT0gcmVzdWx0IGlzIHRydWUKK1BBU1MgcmVzdWx0LnRvU3RyaW5nKCkgaXMgdGVzdF9k
YXRhLnRvU3RyaW5nKCkKK1BBU1MgaXModGVzdF9kYXRhLnZhbHVlT2YoKSwgcmVzdWx0LnZhbHVl
T2YoKSkgaXMgdHJ1ZQorCitUZXN0aW5nOiBuZXcgTnVtYmVyKC1JbmZpbml0eSkKK3RyYW5zYWN0
aW9uID0gZGIudHJhbnNhY3Rpb24oJ3N0b3JlTmFtZScsIElEQlRyYW5zYWN0aW9uLlJFQURfV1JJ
VEUpCitzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKQordmFsdWUg
aXM6IC1JbmZpbml0eSAodHlwZTogb2JqZWN0KQorc3RvcmUucHV0KHZhbHVlLCAna2V5JykKK3N0
b3JlLmdldCgna2V5JykKK1N0cmluZyhyZXN1bHQpOiAtSW5maW5pdHkKK1BBU1MgdHlwZW9mIHJl
c3VsdCBpcyAib2JqZWN0IgorUEFTUyBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwocmVz
dWx0KSBpcyBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodGVzdF9kYXRhKQorUEFTUyB0
ZXN0X2RhdGEgIT09IHJlc3VsdCBpcyB0cnVlCitQQVNTIHJlc3VsdC50b1N0cmluZygpIGlzIHRl
c3RfZGF0YS50b1N0cmluZygpCitQQVNTIGlzKHRlc3RfZGF0YS52YWx1ZU9mKCksIHJlc3VsdC52
YWx1ZU9mKCkpIGlzIHRydWUKKworVGVzdGluZzogbmV3IE51bWJlcigtTnVtYmVyLk1BWF9WQUxV
RSkKK3RyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24oJ3N0b3JlTmFtZScsIElEQlRyYW5zYWN0
aW9uLlJFQURfV1JJVEUpCitzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZU5h
bWUnKQordmFsdWUgaXM6IC0xLjc5NzY5MzEzNDg2MjMxNTdlKzMwOCAodHlwZTogb2JqZWN0KQor
c3RvcmUucHV0KHZhbHVlLCAna2V5JykKK3N0b3JlLmdldCgna2V5JykKK1N0cmluZyhyZXN1bHQp
OiAtMS43OTc2OTMxMzQ4NjIzMTU3ZSszMDgKK1BBU1MgdHlwZW9mIHJlc3VsdCBpcyAib2JqZWN0
IgorUEFTUyBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwocmVzdWx0KSBpcyBPYmplY3Qu
cHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodGVzdF9kYXRhKQorUEFTUyB0ZXN0X2RhdGEgIT09IHJl
c3VsdCBpcyB0cnVlCitQQVNTIHJlc3VsdC50b1N0cmluZygpIGlzIHRlc3RfZGF0YS50b1N0cmlu
ZygpCitQQVNTIGlzKHRlc3RfZGF0YS52YWx1ZU9mKCksIHJlc3VsdC52YWx1ZU9mKCkpIGlzIHRy
dWUKKworVGVzdGluZzogbmV3IE51bWJlcigtTnVtYmVyLk1JTl9WQUxVRSkKK3RyYW5zYWN0aW9u
ID0gZGIudHJhbnNhY3Rpb24oJ3N0b3JlTmFtZScsIElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUp
CitzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKQordmFsdWUgaXM6
IC01ZS0zMjQgKHR5cGU6IG9iamVjdCkKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5n
ZXQoJ2tleScpCitTdHJpbmcocmVzdWx0KTogLTVlLTMyNAorUEFTUyB0eXBlb2YgcmVzdWx0IGlz
ICJvYmplY3QiCitQQVNTIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChyZXN1bHQpIGlz
IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0ZXN0X2RhdGEpCitQQVNTIHRlc3RfZGF0
YSAhPT0gcmVzdWx0IGlzIHRydWUKK1BBU1MgcmVzdWx0LnRvU3RyaW5nKCkgaXMgdGVzdF9kYXRh
LnRvU3RyaW5nKCkKK1BBU1MgaXModGVzdF9kYXRhLnZhbHVlT2YoKSwgcmVzdWx0LnZhbHVlT2Yo
KSkgaXMgdHJ1ZQorCitUZXN0aW5nOiBuZXcgTnVtYmVyKC0wKQordHJhbnNhY3Rpb24gPSBkYi50
cmFuc2FjdGlvbignc3RvcmVOYW1lJywgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkKK3N0b3Jl
ID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpCit2YWx1ZSBpczogMCAodHlw
ZTogb2JqZWN0KQorc3RvcmUucHV0KHZhbHVlLCAna2V5JykKK3N0b3JlLmdldCgna2V5JykKK1N0
cmluZyhyZXN1bHQpOiAwCitQQVNTIHR5cGVvZiByZXN1bHQgaXMgIm9iamVjdCIKK1BBU1MgT2Jq
ZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHJlc3VsdCkgaXMgT2JqZWN0LnByb3RvdHlwZS50
b1N0cmluZy5jYWxsKHRlc3RfZGF0YSkKK1BBU1MgdGVzdF9kYXRhICE9PSByZXN1bHQgaXMgdHJ1
ZQorUEFTUyByZXN1bHQudG9TdHJpbmcoKSBpcyB0ZXN0X2RhdGEudG9TdHJpbmcoKQorUEFTUyBp
cyh0ZXN0X2RhdGEudmFsdWVPZigpLCByZXN1bHQudmFsdWVPZigpKSBpcyB0cnVlCisKK1Rlc3Rp
bmc6IG5ldyBOdW1iZXIoMCkKK3RyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24oJ3N0b3JlTmFt
ZScsIElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUpCitzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVj
dFN0b3JlKCdzdG9yZU5hbWUnKQordmFsdWUgaXM6IDAgKHR5cGU6IG9iamVjdCkKK3N0b3JlLnB1
dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5nZXQoJ2tleScpCitTdHJpbmcocmVzdWx0KTogMAorUEFT
UyB0eXBlb2YgcmVzdWx0IGlzICJvYmplY3QiCitQQVNTIE9iamVjdC5wcm90b3R5cGUudG9TdHJp
bmcuY2FsbChyZXN1bHQpIGlzIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0ZXN0X2Rh
dGEpCitQQVNTIHRlc3RfZGF0YSAhPT0gcmVzdWx0IGlzIHRydWUKK1BBU1MgcmVzdWx0LnRvU3Ry
aW5nKCkgaXMgdGVzdF9kYXRhLnRvU3RyaW5nKCkKK1BBU1MgaXModGVzdF9kYXRhLnZhbHVlT2Yo
KSwgcmVzdWx0LnZhbHVlT2YoKSkgaXMgdHJ1ZQorCitUZXN0aW5nOiBuZXcgTnVtYmVyKE51bWJl
ci5NSU5fVkFMVUUpCit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUnLCBJ
REJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9y
ZSgnc3RvcmVOYW1lJykKK3ZhbHVlIGlzOiA1ZS0zMjQgKHR5cGU6IG9iamVjdCkKK3N0b3JlLnB1
dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5nZXQoJ2tleScpCitTdHJpbmcocmVzdWx0KTogNWUtMzI0
CitQQVNTIHR5cGVvZiByZXN1bHQgaXMgIm9iamVjdCIKK1BBU1MgT2JqZWN0LnByb3RvdHlwZS50
b1N0cmluZy5jYWxsKHJlc3VsdCkgaXMgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHRl
c3RfZGF0YSkKK1BBU1MgdGVzdF9kYXRhICE9PSByZXN1bHQgaXMgdHJ1ZQorUEFTUyByZXN1bHQu
dG9TdHJpbmcoKSBpcyB0ZXN0X2RhdGEudG9TdHJpbmcoKQorUEFTUyBpcyh0ZXN0X2RhdGEudmFs
dWVPZigpLCByZXN1bHQudmFsdWVPZigpKSBpcyB0cnVlCisKK1Rlc3Rpbmc6IG5ldyBOdW1iZXIo
TnVtYmVyLk1BWF9WQUxVRSkKK3RyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24oJ3N0b3JlTmFt
ZScsIElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUpCitzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVj
dFN0b3JlKCdzdG9yZU5hbWUnKQordmFsdWUgaXM6IDEuNzk3NjkzMTM0ODYyMzE1N2UrMzA4ICh0
eXBlOiBvYmplY3QpCitzdG9yZS5wdXQodmFsdWUsICdrZXknKQorc3RvcmUuZ2V0KCdrZXknKQor
U3RyaW5nKHJlc3VsdCk6IDEuNzk3NjkzMTM0ODYyMzE1N2UrMzA4CitQQVNTIHR5cGVvZiByZXN1
bHQgaXMgIm9iamVjdCIKK1BBU1MgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHJlc3Vs
dCkgaXMgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHRlc3RfZGF0YSkKK1BBU1MgdGVz
dF9kYXRhICE9PSByZXN1bHQgaXMgdHJ1ZQorUEFTUyByZXN1bHQudG9TdHJpbmcoKSBpcyB0ZXN0
X2RhdGEudG9TdHJpbmcoKQorUEFTUyBpcyh0ZXN0X2RhdGEudmFsdWVPZigpLCByZXN1bHQudmFs
dWVPZigpKSBpcyB0cnVlCisKK1Rlc3Rpbmc6IG5ldyBOdW1iZXIoSW5maW5pdHkpCit0cmFuc2Fj
dGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUnLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dS
SVRFKQorc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmVOYW1lJykKK3ZhbHVl
IGlzOiBJbmZpbml0eSAodHlwZTogb2JqZWN0KQorc3RvcmUucHV0KHZhbHVlLCAna2V5JykKK3N0
b3JlLmdldCgna2V5JykKK1N0cmluZyhyZXN1bHQpOiBJbmZpbml0eQorUEFTUyB0eXBlb2YgcmVz
dWx0IGlzICJvYmplY3QiCitQQVNTIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChyZXN1
bHQpIGlzIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0ZXN0X2RhdGEpCitQQVNTIHRl
c3RfZGF0YSAhPT0gcmVzdWx0IGlzIHRydWUKK1BBU1MgcmVzdWx0LnRvU3RyaW5nKCkgaXMgdGVz
dF9kYXRhLnRvU3RyaW5nKCkKK1BBU1MgaXModGVzdF9kYXRhLnZhbHVlT2YoKSwgcmVzdWx0LnZh
bHVlT2YoKSkgaXMgdHJ1ZQorCisKK1Rlc3RpbmcgU3RyaW5nIG9iamVjdHMKKworVGVzdGluZzog
bmV3IFN0cmluZygpCit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUnLCBJ
REJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9y
ZSgnc3RvcmVOYW1lJykKK3ZhbHVlIGlzOiAgKHR5cGU6IG9iamVjdCkKK3N0b3JlLnB1dCh2YWx1
ZSwgJ2tleScpCitzdG9yZS5nZXQoJ2tleScpCitTdHJpbmcocmVzdWx0KTogCitQQVNTIHR5cGVv
ZiByZXN1bHQgaXMgIm9iamVjdCIKK1BBU1MgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxs
KHJlc3VsdCkgaXMgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHRlc3RfZGF0YSkKK1BB
U1MgdGVzdF9kYXRhICE9PSByZXN1bHQgaXMgdHJ1ZQorUEFTUyByZXN1bHQudG9TdHJpbmcoKSBp
cyB0ZXN0X2RhdGEudG9TdHJpbmcoKQorUEFTUyBpcyh0ZXN0X2RhdGEudmFsdWVPZigpLCByZXN1
bHQudmFsdWVPZigpKSBpcyB0cnVlCisKK1Rlc3Rpbmc6IG5ldyBTdHJpbmcoJ3RoaXMgaXMgYSBz
YW1wbGUgc3RyaW5nJykKK3RyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24oJ3N0b3JlTmFtZScs
IElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUpCitzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0
b3JlKCdzdG9yZU5hbWUnKQordmFsdWUgaXM6IHRoaXMgaXMgYSBzYW1wbGUgc3RyaW5nICh0eXBl
OiBvYmplY3QpCitzdG9yZS5wdXQodmFsdWUsICdrZXknKQorc3RvcmUuZ2V0KCdrZXknKQorU3Ry
aW5nKHJlc3VsdCk6IHRoaXMgaXMgYSBzYW1wbGUgc3RyaW5nCitQQVNTIHR5cGVvZiByZXN1bHQg
aXMgIm9iamVjdCIKK1BBU1MgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHJlc3VsdCkg
aXMgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHRlc3RfZGF0YSkKK1BBU1MgdGVzdF9k
YXRhICE9PSByZXN1bHQgaXMgdHJ1ZQorUEFTUyByZXN1bHQudG9TdHJpbmcoKSBpcyB0ZXN0X2Rh
dGEudG9TdHJpbmcoKQorUEFTUyBpcyh0ZXN0X2RhdGEudmFsdWVPZigpLCByZXN1bHQudmFsdWVP
ZigpKSBpcyB0cnVlCisKK1Rlc3Rpbmc6IG5ldyBTdHJpbmcoJ251bGwoXDApJykKK3RyYW5zYWN0
aW9uID0gZGIudHJhbnNhY3Rpb24oJ3N0b3JlTmFtZScsIElEQlRyYW5zYWN0aW9uLlJFQURfV1JJ
VEUpCitzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKQordmFsdWUg
aXM6IG51bGwoKSAodHlwZTogb2JqZWN0KQorc3RvcmUucHV0KHZhbHVlLCAna2V5JykKK3N0b3Jl
LmdldCgna2V5JykKK1N0cmluZyhyZXN1bHQpOiBudWxsKCkKK1BBU1MgdHlwZW9mIHJlc3VsdCBp
cyAib2JqZWN0IgorUEFTUyBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwocmVzdWx0KSBp
cyBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodGVzdF9kYXRhKQorUEFTUyB0ZXN0X2Rh
dGEgIT09IHJlc3VsdCBpcyB0cnVlCitQQVNTIHJlc3VsdC50b1N0cmluZygpIGlzIHRlc3RfZGF0
YS50b1N0cmluZygpCitQQVNTIGlzKHRlc3RfZGF0YS52YWx1ZU9mKCksIHJlc3VsdC52YWx1ZU9m
KCkpIGlzIHRydWUKKworCitUZXN0aW5nIERhdGUgb2JqZWN0cworCitUZXN0aW5nOiBuZXcgRGF0
ZSgtMWUxMykKK3RyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24oJ3N0b3JlTmFtZScsIElEQlRy
YW5zYWN0aW9uLlJFQURfV1JJVEUpCitzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdz
dG9yZU5hbWUnKQordmFsdWUgaXM6IFN1biBGZWIgMDkgMTY1MyAyMjoxMzoyMCBHTVQtMDgwMCAo
UFNUKSAodHlwZTogb2JqZWN0KQorc3RvcmUucHV0KHZhbHVlLCAna2V5JykKK3N0b3JlLmdldCgn
a2V5JykKK1N0cmluZyhyZXN1bHQpOiBTdW4gRmViIDA5IDE2NTMgMjI6MTM6MjAgR01ULTA4MDAg
KFBTVCkKK1BBU1MgdHlwZW9mIHJlc3VsdCBpcyAib2JqZWN0IgorUEFTUyBPYmplY3QucHJvdG90
eXBlLnRvU3RyaW5nLmNhbGwocmVzdWx0KSBpcyBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNh
bGwodGVzdF9kYXRhKQorUEFTUyB0ZXN0X2RhdGEgIT09IHJlc3VsdCBpcyB0cnVlCitQQVNTIHJl
c3VsdC50b1N0cmluZygpIGlzIHRlc3RfZGF0YS50b1N0cmluZygpCitQQVNTIGlzKHRlc3RfZGF0
YS52YWx1ZU9mKCksIHJlc3VsdC52YWx1ZU9mKCkpIGlzIHRydWUKKworVGVzdGluZzogbmV3IERh
dGUoLTFlMTIpCit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUnLCBJREJU
cmFuc2FjdGlvbi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgn
c3RvcmVOYW1lJykKK3ZhbHVlIGlzOiBTdW4gQXByIDI0IDE5MzggMTU6MTM6MjAgR01ULTA3MDAg
KFBEVCkgKHR5cGU6IG9iamVjdCkKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5nZXQo
J2tleScpCitTdHJpbmcocmVzdWx0KTogU3VuIEFwciAyNCAxOTM4IDE1OjEzOjIwIEdNVC0wNzAw
IChQRFQpCitQQVNTIHR5cGVvZiByZXN1bHQgaXMgIm9iamVjdCIKK1BBU1MgT2JqZWN0LnByb3Rv
dHlwZS50b1N0cmluZy5jYWxsKHJlc3VsdCkgaXMgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5j
YWxsKHRlc3RfZGF0YSkKK1BBU1MgdGVzdF9kYXRhICE9PSByZXN1bHQgaXMgdHJ1ZQorUEFTUyBy
ZXN1bHQudG9TdHJpbmcoKSBpcyB0ZXN0X2RhdGEudG9TdHJpbmcoKQorUEFTUyBpcyh0ZXN0X2Rh
dGEudmFsdWVPZigpLCByZXN1bHQudmFsdWVPZigpKSBpcyB0cnVlCisKK1Rlc3Rpbmc6IG5ldyBE
YXRlKC0xZTkpCit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUnLCBJREJU
cmFuc2FjdGlvbi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgn
c3RvcmVOYW1lJykKK3ZhbHVlIGlzOiBTYXQgRGVjIDIwIDE5NjkgMDI6MTM6MjAgR01ULTA4MDAg
KFBTVCkgKHR5cGU6IG9iamVjdCkKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5nZXQo
J2tleScpCitTdHJpbmcocmVzdWx0KTogU2F0IERlYyAyMCAxOTY5IDAyOjEzOjIwIEdNVC0wODAw
IChQU1QpCitQQVNTIHR5cGVvZiByZXN1bHQgaXMgIm9iamVjdCIKK1BBU1MgT2JqZWN0LnByb3Rv
dHlwZS50b1N0cmluZy5jYWxsKHJlc3VsdCkgaXMgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5j
YWxsKHRlc3RfZGF0YSkKK1BBU1MgdGVzdF9kYXRhICE9PSByZXN1bHQgaXMgdHJ1ZQorUEFTUyBy
ZXN1bHQudG9TdHJpbmcoKSBpcyB0ZXN0X2RhdGEudG9TdHJpbmcoKQorUEFTUyBpcyh0ZXN0X2Rh
dGEudmFsdWVPZigpLCByZXN1bHQudmFsdWVPZigpKSBpcyB0cnVlCisKK1Rlc3Rpbmc6IG5ldyBE
YXRlKC0xZTYpCit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUnLCBJREJU
cmFuc2FjdGlvbi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgn
c3RvcmVOYW1lJykKK3ZhbHVlIGlzOiBXZWQgRGVjIDMxIDE5NjkgMTU6NDM6MjAgR01ULTA4MDAg
KFBTVCkgKHR5cGU6IG9iamVjdCkKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5nZXQo
J2tleScpCitTdHJpbmcocmVzdWx0KTogV2VkIERlYyAzMSAxOTY5IDE1OjQzOjIwIEdNVC0wODAw
IChQU1QpCitQQVNTIHR5cGVvZiByZXN1bHQgaXMgIm9iamVjdCIKK1BBU1MgT2JqZWN0LnByb3Rv
dHlwZS50b1N0cmluZy5jYWxsKHJlc3VsdCkgaXMgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5j
YWxsKHRlc3RfZGF0YSkKK1BBU1MgdGVzdF9kYXRhICE9PSByZXN1bHQgaXMgdHJ1ZQorUEFTUyBy
ZXN1bHQudG9TdHJpbmcoKSBpcyB0ZXN0X2RhdGEudG9TdHJpbmcoKQorUEFTUyBpcyh0ZXN0X2Rh
dGEudmFsdWVPZigpLCByZXN1bHQudmFsdWVPZigpKSBpcyB0cnVlCisKK1Rlc3Rpbmc6IG5ldyBE
YXRlKC0xZTMpCit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUnLCBJREJU
cmFuc2FjdGlvbi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgn
c3RvcmVOYW1lJykKK3ZhbHVlIGlzOiBXZWQgRGVjIDMxIDE5NjkgMTU6NTk6NTkgR01ULTA4MDAg
KFBTVCkgKHR5cGU6IG9iamVjdCkKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5nZXQo
J2tleScpCitTdHJpbmcocmVzdWx0KTogV2VkIERlYyAzMSAxOTY5IDE1OjU5OjU5IEdNVC0wODAw
IChQU1QpCitQQVNTIHR5cGVvZiByZXN1bHQgaXMgIm9iamVjdCIKK1BBU1MgT2JqZWN0LnByb3Rv
dHlwZS50b1N0cmluZy5jYWxsKHJlc3VsdCkgaXMgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5j
YWxsKHRlc3RfZGF0YSkKK1BBU1MgdGVzdF9kYXRhICE9PSByZXN1bHQgaXMgdHJ1ZQorUEFTUyBy
ZXN1bHQudG9TdHJpbmcoKSBpcyB0ZXN0X2RhdGEudG9TdHJpbmcoKQorUEFTUyBpcyh0ZXN0X2Rh
dGEudmFsdWVPZigpLCByZXN1bHQudmFsdWVPZigpKSBpcyB0cnVlCisKK1Rlc3Rpbmc6IG5ldyBE
YXRlKDApCit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUnLCBJREJUcmFu
c2FjdGlvbi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3Rv
cmVOYW1lJykKK3ZhbHVlIGlzOiBXZWQgRGVjIDMxIDE5NjkgMTY6MDA6MDAgR01ULTA4MDAgKFBT
VCkgKHR5cGU6IG9iamVjdCkKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5nZXQoJ2tl
eScpCitTdHJpbmcocmVzdWx0KTogV2VkIERlYyAzMSAxOTY5IDE2OjAwOjAwIEdNVC0wODAwIChQ
U1QpCitQQVNTIHR5cGVvZiByZXN1bHQgaXMgIm9iamVjdCIKK1BBU1MgT2JqZWN0LnByb3RvdHlw
ZS50b1N0cmluZy5jYWxsKHJlc3VsdCkgaXMgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxs
KHRlc3RfZGF0YSkKK1BBU1MgdGVzdF9kYXRhICE9PSByZXN1bHQgaXMgdHJ1ZQorUEFTUyByZXN1
bHQudG9TdHJpbmcoKSBpcyB0ZXN0X2RhdGEudG9TdHJpbmcoKQorUEFTUyBpcyh0ZXN0X2RhdGEu
dmFsdWVPZigpLCByZXN1bHQudmFsdWVPZigpKSBpcyB0cnVlCisKK1Rlc3Rpbmc6IG5ldyBEYXRl
KDFlMykKK3RyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24oJ3N0b3JlTmFtZScsIElEQlRyYW5z
YWN0aW9uLlJFQURfV1JJVEUpCitzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9y
ZU5hbWUnKQordmFsdWUgaXM6IFdlZCBEZWMgMzEgMTk2OSAxNjowMDowMSBHTVQtMDgwMCAoUFNU
KSAodHlwZTogb2JqZWN0KQorc3RvcmUucHV0KHZhbHVlLCAna2V5JykKK3N0b3JlLmdldCgna2V5
JykKK1N0cmluZyhyZXN1bHQpOiBXZWQgRGVjIDMxIDE5NjkgMTY6MDA6MDEgR01ULTA4MDAgKFBT
VCkKK1BBU1MgdHlwZW9mIHJlc3VsdCBpcyAib2JqZWN0IgorUEFTUyBPYmplY3QucHJvdG90eXBl
LnRvU3RyaW5nLmNhbGwocmVzdWx0KSBpcyBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwo
dGVzdF9kYXRhKQorUEFTUyB0ZXN0X2RhdGEgIT09IHJlc3VsdCBpcyB0cnVlCitQQVNTIHJlc3Vs
dC50b1N0cmluZygpIGlzIHRlc3RfZGF0YS50b1N0cmluZygpCitQQVNTIGlzKHRlc3RfZGF0YS52
YWx1ZU9mKCksIHJlc3VsdC52YWx1ZU9mKCkpIGlzIHRydWUKKworVGVzdGluZzogbmV3IERhdGUo
MWU2KQordHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1lJywgSURCVHJhbnNh
Y3Rpb24uUkVBRF9XUklURSkKK3N0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3Jl
TmFtZScpCit2YWx1ZSBpczogV2VkIERlYyAzMSAxOTY5IDE2OjE2OjQwIEdNVC0wODAwIChQU1Qp
ICh0eXBlOiBvYmplY3QpCitzdG9yZS5wdXQodmFsdWUsICdrZXknKQorc3RvcmUuZ2V0KCdrZXkn
KQorU3RyaW5nKHJlc3VsdCk6IFdlZCBEZWMgMzEgMTk2OSAxNjoxNjo0MCBHTVQtMDgwMCAoUFNU
KQorUEFTUyB0eXBlb2YgcmVzdWx0IGlzICJvYmplY3QiCitQQVNTIE9iamVjdC5wcm90b3R5cGUu
dG9TdHJpbmcuY2FsbChyZXN1bHQpIGlzIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0
ZXN0X2RhdGEpCitQQVNTIHRlc3RfZGF0YSAhPT0gcmVzdWx0IGlzIHRydWUKK1BBU1MgcmVzdWx0
LnRvU3RyaW5nKCkgaXMgdGVzdF9kYXRhLnRvU3RyaW5nKCkKK1BBU1MgaXModGVzdF9kYXRhLnZh
bHVlT2YoKSwgcmVzdWx0LnZhbHVlT2YoKSkgaXMgdHJ1ZQorCitUZXN0aW5nOiBuZXcgRGF0ZSgx
ZTkpCit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUnLCBJREJUcmFuc2Fj
dGlvbi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmVO
YW1lJykKK3ZhbHVlIGlzOiBNb24gSmFuIDEyIDE5NzAgMDU6NDY6NDAgR01ULTA4MDAgKFBTVCkg
KHR5cGU6IG9iamVjdCkKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5nZXQoJ2tleScp
CitTdHJpbmcocmVzdWx0KTogTW9uIEphbiAxMiAxOTcwIDA1OjQ2OjQwIEdNVC0wODAwIChQU1Qp
CitQQVNTIHR5cGVvZiByZXN1bHQgaXMgIm9iamVjdCIKK1BBU1MgT2JqZWN0LnByb3RvdHlwZS50
b1N0cmluZy5jYWxsKHJlc3VsdCkgaXMgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHRl
c3RfZGF0YSkKK1BBU1MgdGVzdF9kYXRhICE9PSByZXN1bHQgaXMgdHJ1ZQorUEFTUyByZXN1bHQu
dG9TdHJpbmcoKSBpcyB0ZXN0X2RhdGEudG9TdHJpbmcoKQorUEFTUyBpcyh0ZXN0X2RhdGEudmFs
dWVPZigpLCByZXN1bHQudmFsdWVPZigpKSBpcyB0cnVlCisKK1Rlc3Rpbmc6IG5ldyBEYXRlKDFl
MTIpCit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUnLCBJREJUcmFuc2Fj
dGlvbi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmVO
YW1lJykKK3ZhbHVlIGlzOiBTYXQgU2VwIDA4IDIwMDEgMTg6NDY6NDAgR01ULTA3MDAgKFBEVCkg
KHR5cGU6IG9iamVjdCkKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5nZXQoJ2tleScp
CitTdHJpbmcocmVzdWx0KTogU2F0IFNlcCAwOCAyMDAxIDE4OjQ2OjQwIEdNVC0wNzAwIChQRFQp
CitQQVNTIHR5cGVvZiByZXN1bHQgaXMgIm9iamVjdCIKK1BBU1MgT2JqZWN0LnByb3RvdHlwZS50
b1N0cmluZy5jYWxsKHJlc3VsdCkgaXMgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHRl
c3RfZGF0YSkKK1BBU1MgdGVzdF9kYXRhICE9PSByZXN1bHQgaXMgdHJ1ZQorUEFTUyByZXN1bHQu
dG9TdHJpbmcoKSBpcyB0ZXN0X2RhdGEudG9TdHJpbmcoKQorUEFTUyBpcyh0ZXN0X2RhdGEudmFs
dWVPZigpLCByZXN1bHQudmFsdWVPZigpKSBpcyB0cnVlCisKK1Rlc3Rpbmc6IG5ldyBEYXRlKDFl
MTMpCit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUnLCBJREJUcmFuc2Fj
dGlvbi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmVO
YW1lJykKK3ZhbHVlIGlzOiBTYXQgTm92IDIwIDIyODYgMDk6NDY6NDAgR01ULTA4MDAgKFBTVCkg
KHR5cGU6IG9iamVjdCkKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5nZXQoJ2tleScp
CitTdHJpbmcocmVzdWx0KTogU2F0IE5vdiAyMCAyMjg2IDA5OjQ2OjQwIEdNVC0wODAwIChQU1Qp
CitQQVNTIHR5cGVvZiByZXN1bHQgaXMgIm9iamVjdCIKK1BBU1MgT2JqZWN0LnByb3RvdHlwZS50
b1N0cmluZy5jYWxsKHJlc3VsdCkgaXMgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHRl
c3RfZGF0YSkKK1BBU1MgdGVzdF9kYXRhICE9PSByZXN1bHQgaXMgdHJ1ZQorUEFTUyByZXN1bHQu
dG9TdHJpbmcoKSBpcyB0ZXN0X2RhdGEudG9TdHJpbmcoKQorUEFTUyBpcyh0ZXN0X2RhdGEudmFs
dWVPZigpLCByZXN1bHQudmFsdWVPZigpKSBpcyB0cnVlCisKKworVGVzdGluZyBSZWdFeHAgb2Jq
ZWN0cworCitUZXN0aW5nIFJlZ0V4cDogbmV3IFJlZ0V4cCgpCit0cmFuc2FjdGlvbiA9IGRiLnRy
YW5zYWN0aW9uKCdzdG9yZU5hbWUnLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKQorc3RvcmUg
PSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmVOYW1lJykKK3ZhbHVlIGlzOiAvKD86KS8g
KHR5cGU6IG9iamVjdCkKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5nZXQoJ2tleScp
CitQQVNTIHRlc3RfZGF0YSAhPT0gcmVzdWx0IGlzIHRydWUKK1BBU1MgT2JqZWN0LnByb3RvdHlw
ZS50b1N0cmluZy5jYWxsKHJlc3VsdCkgaXMgIltvYmplY3QgUmVnRXhwXSIKK1BBU1MgcmVzdWx0
LnRvU3RyaW5nKCkgaXMgdGVzdF9kYXRhLnRvU3RyaW5nKCkKKworVGVzdGluZyBSZWdFeHA6IC9h
YmMvCit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUnLCBJREJUcmFuc2Fj
dGlvbi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmVO
YW1lJykKK3ZhbHVlIGlzOiAvYWJjLyAodHlwZTogb2JqZWN0KQorc3RvcmUucHV0KHZhbHVlLCAn
a2V5JykKK3N0b3JlLmdldCgna2V5JykKK1BBU1MgdGVzdF9kYXRhICE9PSByZXN1bHQgaXMgdHJ1
ZQorUEFTUyBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwocmVzdWx0KSBpcyAiW29iamVj
dCBSZWdFeHBdIgorUEFTUyByZXN1bHQudG9TdHJpbmcoKSBpcyB0ZXN0X2RhdGEudG9TdHJpbmco
KQorCitUZXN0aW5nIFJlZ0V4cDogL2FiYy9nCit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9u
KCdzdG9yZU5hbWUnLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFuc2Fj
dGlvbi5vYmplY3RTdG9yZSgnc3RvcmVOYW1lJykKK3ZhbHVlIGlzOiAvYWJjL2cgKHR5cGU6IG9i
amVjdCkKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5nZXQoJ2tleScpCitQQVNTIHRl
c3RfZGF0YSAhPT0gcmVzdWx0IGlzIHRydWUKK1BBU1MgT2JqZWN0LnByb3RvdHlwZS50b1N0cmlu
Zy5jYWxsKHJlc3VsdCkgaXMgIltvYmplY3QgUmVnRXhwXSIKK1BBU1MgcmVzdWx0LnRvU3RyaW5n
KCkgaXMgdGVzdF9kYXRhLnRvU3RyaW5nKCkKKworVGVzdGluZyBSZWdFeHA6IC9hYmMvaQordHJh
bnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1lJywgSURCVHJhbnNhY3Rpb24uUkVB
RF9XUklURSkKK3N0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpCit2
YWx1ZSBpczogL2FiYy9pICh0eXBlOiBvYmplY3QpCitzdG9yZS5wdXQodmFsdWUsICdrZXknKQor
c3RvcmUuZ2V0KCdrZXknKQorUEFTUyB0ZXN0X2RhdGEgIT09IHJlc3VsdCBpcyB0cnVlCitQQVNT
IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChyZXN1bHQpIGlzICJbb2JqZWN0IFJlZ0V4
cF0iCitQQVNTIHJlc3VsdC50b1N0cmluZygpIGlzIHRlc3RfZGF0YS50b1N0cmluZygpCisKK1Rl
c3RpbmcgUmVnRXhwOiAvYWJjL2dpCit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdzdG9y
ZU5hbWUnLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFuc2FjdGlvbi5v
YmplY3RTdG9yZSgnc3RvcmVOYW1lJykKK3ZhbHVlIGlzOiAvYWJjL2dpICh0eXBlOiBvYmplY3Qp
CitzdG9yZS5wdXQodmFsdWUsICdrZXknKQorc3RvcmUuZ2V0KCdrZXknKQorUEFTUyB0ZXN0X2Rh
dGEgIT09IHJlc3VsdCBpcyB0cnVlCitQQVNTIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2Fs
bChyZXN1bHQpIGlzICJbb2JqZWN0IFJlZ0V4cF0iCitQQVNTIHJlc3VsdC50b1N0cmluZygpIGlz
IHRlc3RfZGF0YS50b1N0cmluZygpCisKK1Rlc3RpbmcgUmVnRXhwOiAvYWJjL20KK3RyYW5zYWN0
aW9uID0gZGIudHJhbnNhY3Rpb24oJ3N0b3JlTmFtZScsIElEQlRyYW5zYWN0aW9uLlJFQURfV1JJ
VEUpCitzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKQordmFsdWUg
aXM6IC9hYmMvbSAodHlwZTogb2JqZWN0KQorc3RvcmUucHV0KHZhbHVlLCAna2V5JykKK3N0b3Jl
LmdldCgna2V5JykKK1BBU1MgdGVzdF9kYXRhICE9PSByZXN1bHQgaXMgdHJ1ZQorUEFTUyBPYmpl
Y3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwocmVzdWx0KSBpcyAiW29iamVjdCBSZWdFeHBdIgor
UEFTUyByZXN1bHQudG9TdHJpbmcoKSBpcyB0ZXN0X2RhdGEudG9TdHJpbmcoKQorCitUZXN0aW5n
IFJlZ0V4cDogL2FiYy9tZwordHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1l
JywgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkKK3N0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0
U3RvcmUoJ3N0b3JlTmFtZScpCit2YWx1ZSBpczogL2FiYy9nbSAodHlwZTogb2JqZWN0KQorc3Rv
cmUucHV0KHZhbHVlLCAna2V5JykKK3N0b3JlLmdldCgna2V5JykKK1BBU1MgdGVzdF9kYXRhICE9
PSByZXN1bHQgaXMgdHJ1ZQorUEFTUyBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwocmVz
dWx0KSBpcyAiW29iamVjdCBSZWdFeHBdIgorUEFTUyByZXN1bHQudG9TdHJpbmcoKSBpcyB0ZXN0
X2RhdGEudG9TdHJpbmcoKQorCitUZXN0aW5nIFJlZ0V4cDogL2FiYy9taQordHJhbnNhY3Rpb24g
PSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1lJywgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkK
K3N0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpCit2YWx1ZSBpczog
L2FiYy9pbSAodHlwZTogb2JqZWN0KQorc3RvcmUucHV0KHZhbHVlLCAna2V5JykKK3N0b3JlLmdl
dCgna2V5JykKK1BBU1MgdGVzdF9kYXRhICE9PSByZXN1bHQgaXMgdHJ1ZQorUEFTUyBPYmplY3Qu
cHJvdG90eXBlLnRvU3RyaW5nLmNhbGwocmVzdWx0KSBpcyAiW29iamVjdCBSZWdFeHBdIgorUEFT
UyByZXN1bHQudG9TdHJpbmcoKSBpcyB0ZXN0X2RhdGEudG9TdHJpbmcoKQorCitUZXN0aW5nIFJl
Z0V4cDogL2FiYy9tZ2kKK3RyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24oJ3N0b3JlTmFtZScs
IElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUpCitzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0
b3JlKCdzdG9yZU5hbWUnKQordmFsdWUgaXM6IC9hYmMvZ2ltICh0eXBlOiBvYmplY3QpCitzdG9y
ZS5wdXQodmFsdWUsICdrZXknKQorc3RvcmUuZ2V0KCdrZXknKQorUEFTUyB0ZXN0X2RhdGEgIT09
IHJlc3VsdCBpcyB0cnVlCitQQVNTIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChyZXN1
bHQpIGlzICJbb2JqZWN0IFJlZ0V4cF0iCitQQVNTIHJlc3VsdC50b1N0cmluZygpIGlzIHRlc3Rf
ZGF0YS50b1N0cmluZygpCisKKworVGVzdGluZyBJbWFnZURhdGEKK2NhbnZhcyA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpCitjYW52YXMud2lkdGggPSA4CitjYW52YXMuaGVpZ2h0
ID0gOAordGVzdF9kYXRhID0gY2FudmFzLmdldENvbnRleHQoJzJkJykuZ2V0SW1hZ2VEYXRhKDAs
IDAsIDgsIDgpCit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUnLCBJREJU
cmFuc2FjdGlvbi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgn
c3RvcmVOYW1lJykKK3ZhbHVlIGlzOiBbb2JqZWN0IEltYWdlRGF0YV0gKHR5cGU6IG9iamVjdCkK
K3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5nZXQoJ2tleScpCitQQVNTIHRlc3RfZGF0
YSAhPT0gcmVzdWx0IGlzIHRydWUKK1BBU1MgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxs
KHJlc3VsdCkgaXMgIltvYmplY3QgSW1hZ2VEYXRhXSIKK1BBU1MgcmVzdWx0LndpZHRoIGlzIHRl
c3RfZGF0YS53aWR0aAorUEFTUyByZXN1bHQuaGVpZ2h0IGlzIHRlc3RfZGF0YS5oZWlnaHQKK1BB
U1MgcmVzdWx0LmRhdGEubGVuZ3RoIGlzIHRlc3RfZGF0YS5kYXRhLmxlbmd0aAorUEFTUyByZXN1
bHQgZGF0YSBtYXRjaGVzCisKK1Rlc3RpbmcgQmxvYgorU2tpcHBpbmcgdGVzdAorCitUZXN0aW5n
IEZpbGUKK1NraXBwaW5nIHRlc3QKKworVGVzdGluZyBGaWxlTGlzdAorU2tpcHBpbmcgdGVzdAor
CitUZXN0aW5nIEFycmF5Cit0ZXN0X2RhdGEgPSBbXQordGVzdF9kYXRhWzBdID0gJ2ZvbycKK3Rl
c3RfZGF0YVsxXSA9ICdiYXInCit0ZXN0X2RhdGFbMTBdID0gdHJ1ZQordGVzdF9kYXRhWzExXSA9
IGZhbHNlCit0ZXN0X2RhdGFbMjBdID0gMTIzCit0ZXN0X2RhdGFbMjFdID0gNDU2Cit0ZXN0X2Rh
dGFbMzBdID0gbnVsbAordHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1lJywg
SURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkKK3N0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3Rv
cmUoJ3N0b3JlTmFtZScpCit2YWx1ZSBpczogZm9vLGJhciwsLCwsLCwsLHRydWUsZmFsc2UsLCws
LCwsLCwxMjMsNDU2LCwsLCwsLCwsICh0eXBlOiBvYmplY3QpCitzdG9yZS5wdXQodmFsdWUsICdr
ZXknKQorc3RvcmUuZ2V0KCdrZXknKQorUEFTUyB0ZXN0X2RhdGEgIT09IHJlc3VsdCBpcyB0cnVl
CitQQVNTIHRlc3RfZGF0YS5sZW5ndGggPT09IHJlc3VsdC5sZW5ndGggaXMgdHJ1ZQorUEFTUyB0
ZXN0X2RhdGFbMF0gaXMgcmVzdWx0WzBdCitQQVNTIHRlc3RfZGF0YVsxXSBpcyByZXN1bHRbMV0K
K1BBU1MgdGVzdF9kYXRhWzEwXSBpcyByZXN1bHRbMTBdCitQQVNTIHRlc3RfZGF0YVsxMV0gaXMg
cmVzdWx0WzExXQorUEFTUyB0ZXN0X2RhdGFbMjBdIGlzIHJlc3VsdFsyMF0KK1BBU1MgdGVzdF9k
YXRhWzIxXSBpcyByZXN1bHRbMjFdCitQQVNTIHRlc3RfZGF0YVszMF0gaXMgcmVzdWx0WzMwXQor
CitUZXN0aW5nIE9iamVjdAordGVzdF9kYXRhID0gW10KK3Rlc3RfZGF0YVswXSA9ICdmb28nCit0
ZXN0X2RhdGFbMV0gPSAnYmFyJwordGVzdF9kYXRhWydhJ10gPSB0cnVlCit0ZXN0X2RhdGFbJ2In
XSA9IGZhbHNlCit0ZXN0X2RhdGFbJ2ZvbyddID0gMTIzCit0ZXN0X2RhdGFbJ2JhciddID0gNDU2
Cit0ZXN0X2RhdGFbJyddID0gbnVsbAordHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3Rv
cmVOYW1lJywgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkKK3N0b3JlID0gdHJhbnNhY3Rpb24u
b2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpCit2YWx1ZSBpczogZm9vLGJhciAodHlwZTogb2JqZWN0
KQorc3RvcmUucHV0KHZhbHVlLCAna2V5JykKK3N0b3JlLmdldCgna2V5JykKK1BBU1MgdGVzdF9k
YXRhICE9PSByZXN1bHQgaXMgdHJ1ZQorUEFTUyBhcnJheUNvbXBhcmUoT2JqZWN0LmtleXMocmVz
dWx0KS5zb3J0KCksIE9iamVjdC5rZXlzKHRlc3RfZGF0YSkuc29ydCgpKSBpcyB0cnVlCitQQVNT
IHRlc3RfZGF0YVsiMCJdIGlzIHJlc3VsdFsiMCJdCitQQVNTIHRlc3RfZGF0YVsiMSJdIGlzIHJl
c3VsdFsiMSJdCitQQVNTIHRlc3RfZGF0YVsiYSJdIGlzIHJlc3VsdFsiYSJdCitQQVNTIHRlc3Rf
ZGF0YVsiYiJdIGlzIHJlc3VsdFsiYiJdCitQQVNTIHRlc3RfZGF0YVsiZm9vIl0gaXMgcmVzdWx0
WyJmb28iXQorUEFTUyB0ZXN0X2RhdGFbImJhciJdIGlzIHJlc3VsdFsiYmFyIl0KK1BBU1MgdGVz
dF9kYXRhWyIiXSBpcyByZXN1bHRbIiJdCisKKworVGVzdCB0eXBlcyB0aGF0IGNhbid0IGJlIGNs
b25lZDoKKwordHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1lJywgSURCVHJh
bnNhY3Rpb24uUkVBRF9XUklURSkKK3N0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0
b3JlTmFtZScpCisKK090aGVyIEphdmFTY3JpcHQgb2JqZWN0IHR5cGVzOgorRXhwZWN0aW5nIGV4
Y2VwdGlvbiBmcm9tIHN0b3JlLnB1dChuZXcgRXJyb3IsICdrZXknKQorUEFTUyBFeGNlcHRpb24g
d2FzIHRocm93bi4KK1BBU1MgY29kZSBpcyBET01FeGNlcHRpb24uREFUQV9DTE9ORV9FUlIKK0V4
cGVjdGluZyBleGNlcHRpb24gZnJvbSBzdG9yZS5wdXQobmV3IEZ1bmN0aW9uLCAna2V5JykKK1BB
U1MgRXhjZXB0aW9uIHdhcyB0aHJvd24uCitQQVNTIGNvZGUgaXMgRE9NRXhjZXB0aW9uLkRBVEFf
Q0xPTkVfRVJSCisKK090aGVyIGhvc3Qgb2JqZWN0IHR5cGVzOgorRXhwZWN0aW5nIGV4Y2VwdGlv
biBmcm9tIHN0b3JlLnB1dCh3aW5kb3csICdrZXknKQorUEFTUyBFeGNlcHRpb24gd2FzIHRocm93
bi4KK1BBU1MgY29kZSBpcyBET01FeGNlcHRpb24uREFUQV9DTE9ORV9FUlIKK0V4cGVjdGluZyBl
eGNlcHRpb24gZnJvbSBzdG9yZS5wdXQoZG9jdW1lbnQsICdrZXknKQorUEFTUyBFeGNlcHRpb24g
d2FzIHRocm93bi4KK1BBU1MgY29kZSBpcyBET01FeGNlcHRpb24uREFUQV9DTE9ORV9FUlIKK0V4
cGVjdGluZyBleGNlcHRpb24gZnJvbSBzdG9yZS5wdXQoZG9jdW1lbnQuYm9keSwgJ2tleScpCitQ
QVNTIEV4Y2VwdGlvbiB3YXMgdGhyb3duLgorUEFTUyBjb2RlIGlzIERPTUV4Y2VwdGlvbi5EQVRB
X0NMT05FX0VSUgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBM
RVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3N0cnVjdHVy
ZWQtY2xvbmUuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3N0cnVjdHVyZWQt
Y2xvbmUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MzQ4ZmFiZjUyODA0M2ZiNzY3ZmY4YzExMDZhMjQ1YzYw
MDdkM2M1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
c3RydWN0dXJlZC1jbG9uZS5odG1sCkBAIC0wLDAgKzEsNTUwIEBACis8aHRtbD4KKzxoZWFkPgor
PHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hhcmVkLmpzIj48L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorPGlucHV0IHR5cGU9ImZpbGUiIGlkPSJmaWxlSW5wdXQiIG11bHRpcGxlPjwv
aW5wdXQ+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2
PgorPHNjcmlwdD4KKworZGVzY3JpcHRpb24oIlRlc3Qgc3RydWN0dXJlZCBjbG9uZSBwZXJtdXRh
dGlvbnMgaW4gSW5kZXhlZERCLiBGaWxlL0ZpbGVMaXN0IHRlc3RzIHJlcXVpcmUgRHVtcFJlbmRl
clRyZWUuIik7CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRl
c3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKworaWYgKHdpbmRvdy5ldmVudFNlbmRlcikg
eworICAgIHZhciBmaWxlSW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlsZUlucHV0
Iik7CisgICAgdmFyIGZpbGVSZWN0ID0gZmlsZUlucHV0LmdldENsaWVudFJlY3RzKClbMF07Cisg
ICAgdmFyIHRhcmdldFggPSBmaWxlUmVjdC5sZWZ0ICsgZmlsZVJlY3Qud2lkdGggLyAyOworICAg
IHZhciB0YXJnZXRZID0gZmlsZVJlY3QudG9wICsgZmlsZVJlY3QuaGVpZ2h0IC8gMjsKKyAgICBl
dmVudFNlbmRlci5iZWdpbkRyYWdXaXRoRmlsZXMoWydyZXNvdXJjZXMvdGVzdC1kYXRhLmh0bWwn
LCAncmVzb3VyY2VzL3Rlc3QtZGF0YS50eHQnXSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VNb3Zl
VG8odGFyZ2V0WCwgdGFyZ2V0WSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOworfQorCitm
dW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBldmFsQW5kTG9nKCJpbmRleGVkREIgPSB3aW5kb3cuaW5k
ZXhlZERCIHx8IHdpbmRvdy53ZWJraXRJbmRleGVkREIiKTsKKyAgICBzaG91bGRCZVRydWUoImlu
ZGV4ZWREQiAhPSBudWxsIik7CisgICAgZXZhbEFuZExvZygiSURCVHJhbnNhY3Rpb24gPSB3aW5k
b3cuSURCVHJhbnNhY3Rpb24gfHwgd2luZG93LndlYmtpdElEQlRyYW5zYWN0aW9uIik7CisgICAg
c2hvdWxkQmVUcnVlKCJJREJUcmFuc2FjdGlvbiAhPSBudWxsIik7CisgICAgcHJlcGFyZURhdGFi
YXNlKCk7Cit9CisKK2Z1bmN0aW9uIHByZXBhcmVEYXRhYmFzZSgpCit7CisgICAgZGVidWcoIiIp
OworICAgIGRlYnVnKCJQcmVwYXJlIERhdGFiYXNlIik7CisgICAgcmVxdWVzdCA9IGV2YWxBbmRM
b2coImluZGV4ZWREQi5kZWxldGVEYXRhYmFzZSgnc3RydWN0dXJlZC1jbG9uZScpIik7CisgICAg
cmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CisgICAgcmVxdWVzdC5v
bnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJp
bmRleGVkREIub3Blbignc3RydWN0dXJlZC1jbG9uZScpIik7CisgICAgICAgIHJlcXVlc3Qub25l
cnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworICAgICAgICByZXF1ZXN0Lm9uc3VjY2Vz
cyA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGV2YWxBbmRMb2coImRiID0gcmVxdWVzdC5y
ZXN1bHQiKTsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZGIudmVyc2lvbiIs
ICIiKTsKKyAgICAgICAgICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJkYi5zZXRWZXJzaW9uKCcx
JykiKTsKKyAgICAgICAgICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxi
YWNrOworICAgICAgICAgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAg
ICAgICAgICAgICAgZXZhbEFuZExvZygiZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScp
Iik7CisgICAgICAgICAgICAgICAgdmFyIHRyYW5zID0gcmVxdWVzdC5yZXN1bHQ7CisgICAgICAg
ICAgICAgICAgdHJhbnMub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworICAgICAg
ICAgICAgICAgIHRyYW5zLm9uYWJvcnQgPSB1bmV4cGVjdGVkQWJvcnRDYWxsYmFjazsKKyAgICAg
ICAgICAgICAgICB0cmFucy5vbmNvbXBsZXRlID0gc3RhcnRUZXN0czsKKyAgICAgICAgICAgIH07
CisgICAgICAgIH07CisgICAgfTsKK30KKworZnVuY3Rpb24gc3RhcnRUZXN0cygpCit7CisgICAg
ZGVidWcoIiIpOworICAgIGRlYnVnKCJSdW5uaW5nIHRlc3RzLi4uIik7CisgICAgdmFyIHRlc3Rz
X3RvX3J1biA9IFsKKyAgICAgICAgdGVzdFVuZGVmaW5lZCwKKyAgICAgICAgdGVzdE51bGwsCisg
ICAgICAgIHRlc3RCb29sZWFuLAorICAgICAgICB0ZXN0TnVtYmVyLAorICAgICAgICB0ZXN0U3Ry
aW5nLAorICAgICAgICB0ZXN0Qm9vbGVhbk9iamVjdCwKKyAgICAgICAgdGVzdE51bWJlck9iamVj
dCwKKyAgICAgICAgdGVzdFN0cmluZ09iamVjdCwKKyAgICAgICAgdGVzdERhdGVPYmplY3QsCisg
ICAgICAgIHRlc3RSZWdFeHBPYmplY3QsCisgICAgICAgIHRlc3RJbWFnZURhdGEsCisgICAgICAg
IHRlc3RCbG9iLAorICAgICAgICB0ZXN0RmlsZSwKKyAgICAgICAgdGVzdEZpbGVMaXN0LAorICAg
ICAgICB0ZXN0QXJyYXksCisgICAgICAgIHRlc3RPYmplY3QKKyAgICBdOworCisgICAgZnVuY3Rp
b24gbmV4dFRlc3QoKSB7CisgICAgICAgIGRlYnVnKCIiKTsKKyAgICAgICAgaWYgKHRlc3RzX3Rv
X3J1bi5sZW5ndGgpIHsKKyAgICAgICAgICAgIHZhciB0ZXN0ID0gdGVzdHNfdG9fcnVuLnNoaWZ0
KCk7CisgICAgICAgICAgICB0ZXN0KG5leHRUZXN0KTsgLy8gV2hlbiBkb25lLCBjYWxsIHRoaXMg
YWdhaW4uCisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB0ZXN0QmFkVHlwZXMoKTsKKyAg
ICAgICAgfQorICAgIH0KKyAgICBuZXh0VGVzdCgpOworfQorCitmdW5jdGlvbiBmb3JFYWNoV2l0
aENhbGxiYWNrKHRlc3RGdW5jdGlvbiwgdmFsdWVzLCBjYWxsYmFjaykKK3sKKyAgICBmdW5jdGlv
biBuZXh0VmFsdWUoKSB7CisgICAgICAgIGlmICh2YWx1ZXMubGVuZ3RoKSB7CisgICAgICAgICAg
ICB0ZXN0RnVuY3Rpb24odmFsdWVzLnNoaWZ0KCksIG5leHRWYWx1ZSk7CisgICAgICAgIH0gZWxz
ZSB7CisgICAgICAgICAgICBjYWxsYmFjaygpOworICAgICAgICB9CisgICAgfQorCisgICAgbmV4
dFZhbHVlKCk7Cit9CisKK2Z1bmN0aW9uIHRlc3RWYWx1ZSh2YWx1ZSwgY2FsbGJhY2spCit7Cisg
ICAgLy8gT25lIHRyYW5zYWN0aW9uIHBlciB0ZXN0LCBzaW5jZSBzb21lIHRlc3RzIHJlcXVpcmUg
YXN5bmNocm9ub3VzCisgICAgLy8gb3BlcmF0aW9ucyB0byB2ZXJpZnkgdGhlIHJlc3VsdCAoZS5n
LiB2aWEgRmlsZVJlYWRlcikKKyAgICBldmFsQW5kTG9nKCJ0cmFuc2FjdGlvbiA9IGRiLnRyYW5z
YWN0aW9uKCdzdG9yZU5hbWUnLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKSIpOworICAgIHRy
YW5zYWN0aW9uLm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKKyAgICB0cmFuc2Fj
dGlvbi5vbmFib3J0ID0gdW5leHBlY3RlZEFib3J0Q2FsbGJhY2s7CisgICAgZXZhbEFuZExvZygi
c3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmVOYW1lJykiKTsKKworICAgIGRl
YnVnKCJ2YWx1ZSBpczogIiArIFN0cmluZyh2YWx1ZSkgKyAiICh0eXBlOiAiICsgdHlwZW9mIHZh
bHVlICsgIikiKTsKKyAgICB3aW5kb3cudmFsdWUgPSB2YWx1ZTsKKyAgICByZXF1ZXN0ID0gZXZh
bEFuZExvZygic3RvcmUucHV0KHZhbHVlLCAna2V5JykiKTsKKyAgICByZXF1ZXN0Lm9uZXJyb3Ig
PSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKKyAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0
aW9uKGUpIHsKKyAgICAgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coInN0b3JlLmdldCgna2V5Jyki
KTsKKyAgICAgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Cisg
ICAgICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgLy9k
ZWJ1ZygiZ290IGJhY2s6ICIgKyBTdHJpbmcocmVxdWVzdC5yZXN1bHQpICsgIiAodHlwZTogIiAr
IHR5cGVvZiByZXF1ZXN0LnJlc3VsdCArICIpIik7CisgICAgICAgICAgICBjYWxsYmFjayhyZXF1
ZXN0LnJlc3VsdCk7CisgICAgICAgIH07CisgICAgfTsKK30KKworLy8gSWRlbnRpdHkgdGVzdGlu
Zywgc2Vuc2l0aXZlIHRvIE5hTiBhbmQgLTAKK2Z1bmN0aW9uIGlzKHgsIHkpIHsKKyAgICBpZiAo
eCA9PT0geSkgeworICAgICAgICByZXR1cm4geCAhPT0gMCB8fCAxIC8geCA9PT0gMSAvIHk7Cisg
ICAgfQorICAgIHJldHVybiB4ICE9PSB4ICYmIHkgIT09IHk7Cit9CisKK2Z1bmN0aW9uIGFycmF5
Q29tcGFyZShhLCBiKSB7CisgICAgaWYgKGEubGVuZ3RoICE9PSBiLmxlbmd0aCkgeworICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYS5sZW5ndGg7
ICsraSkgeworICAgICAgICBpZiAoIWlzKGFbaV0sIGJbaV0pKSB7CisgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Z1bmN0
aW9uIHRlc3RQcmltaXRpdmVWYWx1ZShzdHJpbmcsIGNhbGxiYWNrKQoreworICAgIGRlYnVnKCJU
ZXN0aW5nOiAiICsgc3RyaW5nKTsKKyAgICB2YXIgdmFsdWUgPSBldmFsKCJ2YWx1ZSA9ICgiICsg
c3RyaW5nICsgIikiKTsKKyAgICB0ZXN0X2RhdGEgPSB2YWx1ZTsKKyAgICB0ZXN0VmFsdWUodGVz
dF9kYXRhLCBmdW5jdGlvbihyZXN1bHQpIHsKKyAgICAgICAgd2luZG93LnJlc3VsdCA9IHJlc3Vs
dDsKKyAgICAgICAgc2hvdWxkQmVUcnVlKCJpcyh0ZXN0X2RhdGEsIHJlc3VsdCkiKTsKKyAgICAg
ICAgZGVidWcoIiIpOworICAgICAgICBjYWxsYmFjaygpOworICAgIH0pOworfQorCitmdW5jdGlv
biB0ZXN0T2JqZWN0V2l0aFZhbHVlKHN0cmluZywgY2FsbGJhY2spCit7CisgICAgZGVidWcoIlRl
c3Rpbmc6ICIgKyBzdHJpbmcpOworICAgIHZhciB2YWx1ZSA9IGV2YWwoInZhbHVlID0gKCIgKyBz
dHJpbmcgKyAiKSIpOworICAgIHRlc3RfZGF0YSA9IHZhbHVlOworICAgIHRlc3RWYWx1ZSh0ZXN0
X2RhdGEsIGZ1bmN0aW9uKHJlc3VsdCkgeworICAgICAgICB3aW5kb3cucmVzdWx0ID0gcmVzdWx0
OworICAgICAgICBkZWJ1ZygiU3RyaW5nKHJlc3VsdCk6ICIgKyBTdHJpbmcocmVzdWx0KSk7Cisg
ICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygidHlwZW9mIHJlc3VsdCIsICJvYmplY3QiKTsK
KyAgICAgICAgc2hvdWxkQmUoIk9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChyZXN1bHQp
IiwgIk9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0ZXN0X2RhdGEpIik7CisgICAgICAg
IHNob3VsZEJlVHJ1ZSgidGVzdF9kYXRhICE9PSByZXN1bHQiKTsKKyAgICAgICAgc2hvdWxkQmUo
InJlc3VsdC50b1N0cmluZygpIiwgInRlc3RfZGF0YS50b1N0cmluZygpIik7CisgICAgICAgIHNo
b3VsZEJlVHJ1ZSgiaXModGVzdF9kYXRhLnZhbHVlT2YoKSwgcmVzdWx0LnZhbHVlT2YoKSkiKTsK
KyAgICAgICAgZGVidWcoIiIpOworICAgICAgICBjYWxsYmFjaygpOworICAgIH0pOworfQorCitm
dW5jdGlvbiB0ZXN0VW5kZWZpbmVkKGNhbGxiYWNrKQoreworICAgIHRlc3RQcmltaXRpdmVWYWx1
ZSgidW5kZWZpbmVkIiwgY2FsbGJhY2spOworfQorCitmdW5jdGlvbiB0ZXN0TnVsbChjYWxsYmFj
aykKK3sKKyAgICB0ZXN0UHJpbWl0aXZlVmFsdWUoIm51bGwiLCBjYWxsYmFjayk7Cit9CisKK2Z1
bmN0aW9uIHRlc3RCb29sZWFuKGNhbGxiYWNrKQoreworICAgIGRlYnVnKCJUZXN0aW5nIGJvb2xl
YW4gcHJpbWl0aXZlcyIpOworICAgIGRlYnVnKCIiKTsKKyAgICBmb3JFYWNoV2l0aENhbGxiYWNr
KHRlc3RQcmltaXRpdmVWYWx1ZSwgWyJ0cnVlIiwgImZhbHNlIl0sIGNhbGxiYWNrKTsKK30KKwor
ZnVuY3Rpb24gdGVzdEJvb2xlYW5PYmplY3QoY2FsbGJhY2spCit7CisgICAgZGVidWcoIlRlc3Rp
bmcgQm9vbGVhbiBvYmplY3RzIik7CisgICAgZGVidWcoIiIpOworICAgIGZvckVhY2hXaXRoQ2Fs
bGJhY2sodGVzdE9iamVjdFdpdGhWYWx1ZSwgWworICAgICAgICAibmV3IEJvb2xlYW4odHJ1ZSki
LAorICAgICAgICAibmV3IEJvb2xlYW4oZmFsc2UpIgorICAgIF0sIGNhbGxiYWNrKTsKK30KKwor
ZnVuY3Rpb24gdGVzdFN0cmluZyhjYWxsYmFjaykKK3sKKyAgICBkZWJ1ZygiVGVzdGluZyBzdHJp
bmcgcHJpbWl0aXZlcyIpOworICAgIGRlYnVnKCIiKTsKKyAgICBmb3JFYWNoV2l0aENhbGxiYWNr
KHRlc3RQcmltaXRpdmVWYWx1ZSwgWworICAgICAgICAiJyciLAorICAgICAgICAiJ3RoaXMgaXMg
YSBzYW1wbGUgc3RyaW5nJyIsCisgICAgICAgICInbnVsbChcXDApJyIKKyAgICBdLCBjYWxsYmFj
ayk7Cit9CisKK2Z1bmN0aW9uIHRlc3RTdHJpbmdPYmplY3QoY2FsbGJhY2spCit7CisgICAgZGVi
dWcoIlRlc3RpbmcgU3RyaW5nIG9iamVjdHMiKTsKKyAgICBkZWJ1ZygiIik7CisgICAgZm9yRWFj
aFdpdGhDYWxsYmFjayh0ZXN0T2JqZWN0V2l0aFZhbHVlLCBbCisgICAgICAgICJuZXcgU3RyaW5n
KCkiLAorICAgICAgICAibmV3IFN0cmluZygndGhpcyBpcyBhIHNhbXBsZSBzdHJpbmcnKSIsCisg
ICAgICAgICJuZXcgU3RyaW5nKCdudWxsKFxcMCknKSIKKyAgICBdLCBjYWxsYmFjayk7Cit9CisK
K2Z1bmN0aW9uIHRlc3ROdW1iZXIoY2FsbGJhY2spCit7CisgICAgZGVidWcoIlRlc3RpbmcgbnVt
YmVyIHByaW1pdGl2ZXMiKTsKKyAgICBkZWJ1ZygiIik7CisgICAgZm9yRWFjaFdpdGhDYWxsYmFj
ayh0ZXN0UHJpbWl0aXZlVmFsdWUsIFsKKyAgICAgICAgIk5hTiIsCisgICAgICAgICItSW5maW5p
dHkiLAorICAgICAgICAiLU51bWJlci5NQVhfVkFMVUUiLAorICAgICAgICAiLU51bWJlci5NSU5f
VkFMVUUiLAorICAgICAgICAiLTAiLAorICAgICAgICAiMCIsCisgICAgICAgICJOdW1iZXIuTUlO
X1ZBTFVFIiwKKyAgICAgICAgIk51bWJlci5NQVhfVkFMVUUiLAorICAgICAgICAiSW5maW5pdHki
CisgICAgXSwgY2FsbGJhY2spOworfQorCitmdW5jdGlvbiB0ZXN0TnVtYmVyT2JqZWN0KGNhbGxi
YWNrKQoreworICAgIGRlYnVnKCJUZXN0aW5nIE51bWJlciBvYmplY3RzIik7CisgICAgZGVidWco
IiIpOworICAgIGZvckVhY2hXaXRoQ2FsbGJhY2sodGVzdE9iamVjdFdpdGhWYWx1ZSwgWworICAg
ICAgICAibmV3IE51bWJlcihOYU4pIiwKKyAgICAgICAgIm5ldyBOdW1iZXIoLUluZmluaXR5KSIs
CisgICAgICAgICJuZXcgTnVtYmVyKC1OdW1iZXIuTUFYX1ZBTFVFKSIsCisgICAgICAgICJuZXcg
TnVtYmVyKC1OdW1iZXIuTUlOX1ZBTFVFKSIsCisgICAgICAgICJuZXcgTnVtYmVyKC0wKSIsCisg
ICAgICAgICJuZXcgTnVtYmVyKDApIiwKKyAgICAgICAgIm5ldyBOdW1iZXIoTnVtYmVyLk1JTl9W
QUxVRSkiLAorICAgICAgICAibmV3IE51bWJlcihOdW1iZXIuTUFYX1ZBTFVFKSIsCisgICAgICAg
ICJuZXcgTnVtYmVyKEluZmluaXR5KSIKKyAgICBdLCBjYWxsYmFjayk7Cit9CisKK2Z1bmN0aW9u
IHRlc3REYXRlT2JqZWN0KGNhbGxiYWNrKQoreworICAgIGRlYnVnKCJUZXN0aW5nIERhdGUgb2Jq
ZWN0cyIpOworICAgIGRlYnVnKCIiKTsKKyAgICBmb3JFYWNoV2l0aENhbGxiYWNrKHRlc3RPYmpl
Y3RXaXRoVmFsdWUsIFsKKyAgICAgICAgIm5ldyBEYXRlKC0xZTEzKSIsCisgICAgICAgICJuZXcg
RGF0ZSgtMWUxMikiLAorICAgICAgICAibmV3IERhdGUoLTFlOSkiLAorICAgICAgICAibmV3IERh
dGUoLTFlNikiLAorICAgICAgICAibmV3IERhdGUoLTFlMykiLAorICAgICAgICAibmV3IERhdGUo
MCkiLAorICAgICAgICAibmV3IERhdGUoMWUzKSIsCisgICAgICAgICJuZXcgRGF0ZSgxZTYpIiwK
KyAgICAgICAgIm5ldyBEYXRlKDFlOSkiLAorICAgICAgICAibmV3IERhdGUoMWUxMikiLAorICAg
ICAgICAibmV3IERhdGUoMWUxMykiCisgICAgXSwgY2FsbGJhY2spOworfQorCitmdW5jdGlvbiB0
ZXN0UmVnRXhwT2JqZWN0KGNhbGxiYWNrKQoreworICAgIGRlYnVnKCJUZXN0aW5nIFJlZ0V4cCBv
YmplY3RzIik7CisgICAgZGVidWcoIiIpOworICAgIGZ1bmN0aW9uIHRlc3RSZWdFeHAoc3RyaW5n
LCBjYWxsYmFjaykgeworICAgICAgICBkZWJ1ZygiVGVzdGluZyBSZWdFeHA6ICIgKyBzdHJpbmcp
OworICAgICAgICB2YXIgdmFsdWUgPSBldmFsKCJ2YWx1ZSA9ICgiICsgc3RyaW5nICsgIikiKTsK
KyAgICAgICAgdGVzdF9kYXRhID0gdmFsdWU7CisgICAgICAgIHRlc3RWYWx1ZSh0ZXN0X2RhdGEs
IGZ1bmN0aW9uKHJlc3VsdCkgeworICAgICAgICAgICAgd2luZG93LnJlc3VsdCA9IHJlc3VsdDsK
KyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgidGVzdF9kYXRhICE9PSByZXN1bHQiKTsKKyAgICAg
ICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5j
YWxsKHJlc3VsdCkiLCAiW29iamVjdCBSZWdFeHBdIik7CisgICAgICAgICAgICBzaG91bGRCZSgi
cmVzdWx0LnRvU3RyaW5nKCkiLCAidGVzdF9kYXRhLnRvU3RyaW5nKCkiKTsKKyAgICAgICAgICAg
IGRlYnVnKCIiKTsKKyAgICAgICAgICAgIGNhbGxiYWNrKCk7CisgICAgICAgIH0pOworICAgIH0K
KworICAgIGZvckVhY2hXaXRoQ2FsbGJhY2sodGVzdFJlZ0V4cCwgWworICAgICAgICAibmV3IFJl
Z0V4cCgpIiwKKyAgICAgICAgIi9hYmMvIiwKKyAgICAgICAgIi9hYmMvZyIsCisgICAgICAgICIv
YWJjL2kiLAorICAgICAgICAiL2FiYy9naSIsCisgICAgICAgICIvYWJjL20iLAorICAgICAgICAi
L2FiYy9tZyIsCisgICAgICAgICIvYWJjL21pIiwKKyAgICAgICAgIi9hYmMvbWdpIgorICAgIF0s
IGNhbGxiYWNrKTsKK30KKworZnVuY3Rpb24gdGVzdEltYWdlRGF0YShjYWxsYmFjaykKK3sKKyAg
ICBkZWJ1ZygiVGVzdGluZyBJbWFnZURhdGEiKTsKKyAgICBldmFsQW5kTG9nKCJjYW52YXMgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKSIpOworICAgIGV2YWxBbmRMb2coImNhbnZh
cy53aWR0aCA9IDgiKTsKKyAgICBldmFsQW5kTG9nKCJjYW52YXMuaGVpZ2h0ID0gOCIpOworICAg
IGV2YWxBbmRMb2coInRlc3RfZGF0YSA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpLmdldEltYWdl
RGF0YSgwLCAwLCA4LCA4KSIpOworCisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAyNTY7ICsraSkg
eworICAgICAgICB0ZXN0X2RhdGEuZGF0YVtpXSA9IGk7CisgICAgfQorCisgICAgdGVzdFZhbHVl
KHRlc3RfZGF0YSwgZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgICAgIHdpbmRvdy5yZXN1bHQgPSBy
ZXN1bHQ7CisgICAgICAgIHNob3VsZEJlVHJ1ZSgidGVzdF9kYXRhICE9PSByZXN1bHQiKTsKKyAg
ICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNh
bGwocmVzdWx0KSIsICJbb2JqZWN0IEltYWdlRGF0YV0iKTsKKyAgICAgICAgc2hvdWxkQmUoInJl
c3VsdC53aWR0aCIsICJ0ZXN0X2RhdGEud2lkdGgiKTsKKyAgICAgICAgc2hvdWxkQmUoInJlc3Vs
dC5oZWlnaHQiLCAidGVzdF9kYXRhLmhlaWdodCIpOworICAgICAgICBzaG91bGRCZSgicmVzdWx0
LmRhdGEubGVuZ3RoIiwgInRlc3RfZGF0YS5kYXRhLmxlbmd0aCIpOworICAgICAgICBpZiAoYXJy
YXlDb21wYXJlKHRlc3RfZGF0YS5kYXRhLCByZXN1bHQuZGF0YSkpIHsKKyAgICAgICAgICAgIHRl
c3RQYXNzZWQoInJlc3VsdCBkYXRhIG1hdGNoZXMiKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAg
ICAgICAgIHRlc3RGYWlsZWQoInJlc3VsdCBkYXRhIGRvZXNuJ3QgbWF0Y2giKTsKKyAgICAgICAg
fQorICAgICAgICBjYWxsYmFjaygpOworICAgIH0pOworfQorCitmdW5jdGlvbiByZWFkQmxvYkFz
VGV4dChibG9iLCBjYWxsYmFjaykKK3sKKyAgICB2YXIgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIo
KTsKKyAgICByZWFkZXIub25sb2FkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBpZiAoZS50YXJn
ZXQucmVhZHlTdGF0ZSA9PT0gRmlsZVJlYWRlci5ET05FKSB7CisgICAgICAgICAgICBjYWxsYmFj
ayhlLnRhcmdldC5yZXN1bHQpOworICAgICAgICB9CisgICAgfTsKKyAgICByZWFkZXIub25lcnJv
ciA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgdGVzdEZhaWxlZCgiRXJyb3IgcmVhZGluZyBibG9i
IGFzIHRleHQ6ICIgKyBlKTsKKyAgICAgICAgZG9uZSgpOworICAgIH07CisgICAgcmVhZGVyLnJl
YWRBc1RleHQoYmxvYik7Cit9CisKK2Z1bmN0aW9uIGNoZWNrQmxvYkNvbnRlbnRzKGJsb2IsIGV4
cGVjdGVkLCBjYWxsYmFjaykKK3sKKyAgICByZWFkQmxvYkFzVGV4dChibG9iLCBmdW5jdGlvbih0
ZXh0KSB7CisgICAgICAgIHdpbmRvdy50ZXh0ID0gdGV4dDsKKyAgICAgICAgc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCJ0ZXh0IiwgZXhwZWN0ZWQpOworICAgICAgICBjYWxsYmFjaygpOworICAgIH0p
OworfQorCitmdW5jdGlvbiBjb21wYXJlQmxvYnMoYmxvYjEsIGJsb2IyLCBjYWxsYmFjaykKK3sK
KyAgICByZWFkQmxvYkFzVGV4dChibG9iMSwgZnVuY3Rpb24odGV4dDEpIHsKKyAgICAgICAgcmVh
ZEJsb2JBc1RleHQoYmxvYjIsIGZ1bmN0aW9uKHRleHQyKSB7CisgICAgICAgICAgICB3aW5kb3cu
dGV4dDEgPSB0ZXh0MTsKKyAgICAgICAgICAgIHdpbmRvdy50ZXh0MiA9IHRleHQyOworICAgICAg
ICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ0ZXh0MiIsIHRleHQxKTsKKyAgICAgICAgICAg
IGNhbGxiYWNrKCk7CisgICAgICAgIH0pOworICAgIH0pOworfQorCitmdW5jdGlvbiB0ZXN0Qmxv
YihjYWxsYmFjaykKK3sKKyAgICBkZWJ1ZygiVGVzdGluZyBCbG9iIik7CisKKyAgICAvLyBGSVhN
RTogQmxvYiwgRmlsZSwgYW5kIEZpbGVMaXN0IHN1cHBvcnQgaXMgaW5jb21wbGV0ZS4KKyAgICAv
LyBodHRwOi8vY3JidWcuY29tLzEwODAxMgorICAgIGRlYnVnKCJTa2lwcGluZyB0ZXN0Iik7Cisg
ICAgY2FsbGJhY2soKTsKKyAgICByZXR1cm47CisKKyAgICBldmFsQW5kTG9nKCJCbG9iQnVpbGRl
ciA9IHdpbmRvdy5CbG9iQnVpbGRlciB8fCB3aW5kb3cuV2ViS2l0QmxvYkJ1aWxkZXIiKTsKKyAg
ICBzaG91bGRCZVRydWUoIkJsb2JCdWlsZGVyICE9IG51bGwiKTsKKyAgICBzaG91bGRCZVRydWUo
IkZpbGVSZWFkZXIgIT0gbnVsbCIpOworICAgIGV2YWxBbmRMb2coImJ1aWxkZXIgPSBuZXcgQmxv
YkJ1aWxkZXIoKSIpOworICAgIGV2YWxBbmRMb2coInRlc3RfY29udGVudCA9ICdUaGlzIGlzIGEg
dGVzdC4gVGhpcyBpcyBvbmx5IGEgdGVzdC4nIik7CisgICAgZXZhbEFuZExvZygiYnVpbGRlci5h
cHBlbmQodGVzdF9jb250ZW50KSIpOworICAgIGV2YWxBbmRMb2coInRlc3RfZGF0YSA9IGJ1aWxk
ZXIuZ2V0QmxvYigpIik7CisgICAgdGVzdFZhbHVlKHRlc3RfZGF0YSwgZnVuY3Rpb24ocmVzdWx0
KSB7CisgICAgICAgIHdpbmRvdy5yZXN1bHQgPSByZXN1bHQ7CisgICAgICAgIHNob3VsZEJlVHJ1
ZSgidGVzdF9kYXRhICE9PSByZXN1bHQiKTsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCJPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwocmVzdWx0KSIsICJbb2JqZWN0IEJsb2Jd
Iik7CisgICAgICAgIHNob3VsZEJlKCJyZXN1bHQuc2l6ZSIsICJ0ZXN0X2RhdGEuc2l6ZSIpOwor
ICAgICAgICBzaG91bGRCZSgicmVzdWx0LnR5cGUiLCAidGVzdF9kYXRhLnR5cGUiKTsKKyAgICAg
ICAgY2hlY2tCbG9iQ29udGVudHMocmVzdWx0LCB0ZXN0X2NvbnRlbnQsIGNhbGxiYWNrKTsKKyAg
ICB9KTsKK30KKworZnVuY3Rpb24gY29tcGFyZUZpbGVzKGZpbGUxLCBmaWxlMiwgY2FsbGJhY2sp
Cit7CisgICAgd2luZG93LmZpbGUxID0gZmlsZTE7CisgICAgd2luZG93LmZpbGUyID0gZmlsZTI7
CisgICAgc2hvdWxkQmVUcnVlKCJmaWxlMSAhPT0gZmlsZTIiKTsKKyAgICBzaG91bGRCZUVxdWFs
VG9TdHJpbmcoIk9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChmaWxlMSkiLCAiW29iamVj
dCBGaWxlXSIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiT2JqZWN0LnByb3RvdHlwZS50
b1N0cmluZy5jYWxsKGZpbGUyKSIsICJbb2JqZWN0IEZpbGVdIik7CisgICAgZGVidWcoImZpbGUx
LnNpemU6ICIgKyBmaWxlMS5zaXplKTsKKyAgICBzaG91bGRCZSgiZmlsZTEuc2l6ZSIsICJmaWxl
Mi5zaXplIik7CisgICAgZGVidWcoImZpbGUxLnR5cGU6ICIgKyBmaWxlMS50eXBlKTsKKyAgICBz
aG91bGRCZSgiZmlsZTEudHlwZSIsICJmaWxlMi50eXBlIik7CisgICAgZGVidWcoImZpbGUxLm5h
bWU6ICIgKyBmaWxlMS5uYW1lKTsKKyAgICBzaG91bGRCZSgiZmlsZTEubmFtZSIsICJmaWxlMi5u
YW1lIik7CisgICAgc2hvdWxkQmUoIlN0cmluZyhmaWxlMS5sYXN0TW9kaWZpZWREYXRlKSIsICJT
dHJpbmcoZmlsZTIubGFzdE1vZGlmaWVkRGF0ZSkiKTsKKyAgICBpZiAoY2FsbGJhY2spIHsKKyAg
ICAgICAgY29tcGFyZUJsb2JzKGZpbGUxLCBmaWxlMiwgY2FsbGJhY2spOworICAgIH0KK30KKwor
ZnVuY3Rpb24gdGVzdEZpbGUoY2FsbGJhY2spCit7CisgICAgZGVidWcoIlRlc3RpbmcgRmlsZSIp
OworCisgICAgLy8gRklYTUU6IEJsb2IsIEZpbGUsIGFuZCBGaWxlTGlzdCBzdXBwb3J0IGlzIGlu
Y29tcGxldGUuCisgICAgLy8gaHR0cDovL2NyYnVnLmNvbS8xMDgwMTIKKyAgICBkZWJ1ZygiU2tp
cHBpbmcgdGVzdCIpOworICAgIGNhbGxiYWNrKCk7CisgICAgcmV0dXJuOworCisgICAgZXZhbEFu
ZExvZygidGVzdF9jb250ZW50ID0gZmlsZUlucHV0LmZpbGVzWzBdIik7CisKKyAgICB3aW5kb3cu
dGVzdF9kYXRhID0gdGVzdF9jb250ZW50OworICAgIHRlc3RWYWx1ZSh0ZXN0X2RhdGEsIGZ1bmN0
aW9uKHJlc3VsdCkgeworICAgICAgICB3aW5kb3cucmVzdWx0ID0gcmVzdWx0OworICAgICAgICBj
b21wYXJlRmlsZXMocmVzdWx0LCB0ZXN0X2RhdGEsIGNhbGxiYWNrKTsKKyAgICB9KTsKK30KKwor
CitmdW5jdGlvbiB0ZXN0RmlsZUxpc3QoY2FsbGJhY2spCit7CisgICAgZGVidWcoIlRlc3Rpbmcg
RmlsZUxpc3QiKTsKKworICAgIC8vIEZJWE1FOiBCbG9iLCBGaWxlLCBhbmQgRmlsZUxpc3Qgc3Vw
cG9ydCBpcyBpbmNvbXBsZXRlLgorICAgIC8vIGh0dHA6Ly9jcmJ1Zy5jb20vMTA4MDEyCisgICAg
ZGVidWcoIlNraXBwaW5nIHRlc3QiKTsKKyAgICBjYWxsYmFjaygpOworICAgIHJldHVybjsKKwor
ICAgIGV2YWxBbmRMb2coInRlc3RfY29udGVudCA9IGZpbGVJbnB1dC5maWxlcyIpOworCisgICAg
d2luZG93LnRlc3RfZGF0YSA9IHRlc3RfY29udGVudDsKKyAgICB0ZXN0VmFsdWUodGVzdF9kYXRh
LCBmdW5jdGlvbihyZXN1bHQpIHsKKyAgICAgICAgd2luZG93LnJlc3VsdCA9IHJlc3VsdDsKKyAg
ICAgICAgc2hvdWxkQmVUcnVlKCJ0ZXN0X2RhdGEgIT09IHJlc3VsdCIpOworICAgICAgICBzaG91
bGRCZUVxdWFsVG9TdHJpbmcoIk9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChyZXN1bHQp
IiwgIltvYmplY3QgRmlsZUxpc3RdIik7CisgICAgICAgIHNob3VsZEJlKCJyZXN1bHQubGVuZ3Ro
IiwgInRlc3RfZGF0YS5sZW5ndGgiKTsKKyAgICAgICAgaSA9IDA7CisgICAgICAgIGZ1bmN0aW9u
IGRvTmV4dCgpIHsKKyAgICAgICAgICAgIGlmIChpID49IHRlc3RfZGF0YS5sZW5ndGgpIHsKKyAg
ICAgICAgICAgICAgICBjYWxsYmFjaygpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg
ICAgICAgICBkZWJ1ZygiY29tcGFyaW5nIGZpbGVbIiArIGkgKyAiXSIpOworICAgICAgICAgICAg
ICAgIGNvbXBhcmVGaWxlcyhyZXN1bHRbaV0sIHRlc3RfZGF0YVtpKytdLCBkb05leHQpOworICAg
ICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGRvTmV4dCgpOworICAgIH0pOworfQorCitm
dW5jdGlvbiB0ZXN0QXJyYXkoY2FsbGJhY2spIHsKKyAgICBkZWJ1ZygiVGVzdGluZyBBcnJheSIp
OworICAgIGV2YWxBbmRMb2coInRlc3RfZGF0YSA9IFtdIik7CisgICAgZXZhbEFuZExvZygidGVz
dF9kYXRhWzBdID0gJ2ZvbyciKTsKKyAgICBldmFsQW5kTG9nKCJ0ZXN0X2RhdGFbMV0gPSAnYmFy
JyIpOworICAgIGV2YWxBbmRMb2coInRlc3RfZGF0YVsxMF0gPSB0cnVlIik7CisgICAgZXZhbEFu
ZExvZygidGVzdF9kYXRhWzExXSA9IGZhbHNlIik7CisgICAgZXZhbEFuZExvZygidGVzdF9kYXRh
WzIwXSA9IDEyMyIpOworICAgIGV2YWxBbmRMb2coInRlc3RfZGF0YVsyMV0gPSA0NTYiKTsKKyAg
ICBldmFsQW5kTG9nKCJ0ZXN0X2RhdGFbMzBdID0gbnVsbCIpOworCisgICAgdGVzdFZhbHVlKHRl
c3RfZGF0YSwgZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgICAgIHdpbmRvdy5yZXN1bHQgPSByZXN1
bHQ7CisgICAgICAgIHNob3VsZEJlVHJ1ZSgidGVzdF9kYXRhICE9PSByZXN1bHQiKTsKKyAgICAg
ICAgc2hvdWxkQmVUcnVlKCJ0ZXN0X2RhdGEubGVuZ3RoID09PSByZXN1bHQubGVuZ3RoIik7Cisg
ICAgICAgIE9iamVjdC5rZXlzKHRlc3RfZGF0YSkuZm9yRWFjaCgKKyAgICAgICAgICAgIGZ1bmN0
aW9uKGtleSkgeworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJ0ZXN0X2RhdGFbIiArIGtleSAr
ICJdIiwgInJlc3VsdFsiICsga2V5ICsgIl0iKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICBj
YWxsYmFjaygpOworICAgIH0pOworfQorCitmdW5jdGlvbiB0ZXN0T2JqZWN0KGNhbGxiYWNrKSB7
CisgICAgZGVidWcoIlRlc3RpbmcgT2JqZWN0Iik7CisgICAgZXZhbEFuZExvZygidGVzdF9kYXRh
ID0gW10iKTsKKyAgICBldmFsQW5kTG9nKCJ0ZXN0X2RhdGFbMF0gPSAnZm9vJyIpOworICAgIGV2
YWxBbmRMb2coInRlc3RfZGF0YVsxXSA9ICdiYXInIik7CisgICAgZXZhbEFuZExvZygidGVzdF9k
YXRhWydhJ10gPSB0cnVlIik7CisgICAgZXZhbEFuZExvZygidGVzdF9kYXRhWydiJ10gPSBmYWxz
ZSIpOworICAgIGV2YWxBbmRMb2coInRlc3RfZGF0YVsnZm9vJ10gPSAxMjMiKTsKKyAgICBldmFs
QW5kTG9nKCJ0ZXN0X2RhdGFbJ2JhciddID0gNDU2Iik7CisgICAgZXZhbEFuZExvZygidGVzdF9k
YXRhWycnXSA9IG51bGwiKTsKKworICAgIHRlc3RWYWx1ZSh0ZXN0X2RhdGEsIGZ1bmN0aW9uKHJl
c3VsdCkgeworICAgICAgICB3aW5kb3cucmVzdWx0ID0gcmVzdWx0OworICAgICAgICBzaG91bGRC
ZVRydWUoInRlc3RfZGF0YSAhPT0gcmVzdWx0Iik7CisgICAgICAgIHNob3VsZEJlVHJ1ZSgiYXJy
YXlDb21wYXJlKE9iamVjdC5rZXlzKHJlc3VsdCkuc29ydCgpLCBPYmplY3Qua2V5cyh0ZXN0X2Rh
dGEpLnNvcnQoKSkiKTsKKyAgICAgICAgT2JqZWN0LmtleXModGVzdF9kYXRhKS5mb3JFYWNoKAor
ICAgICAgICAgICAgZnVuY3Rpb24oa2V5KSB7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInRl
c3RfZGF0YVsiICsgSlNPTi5zdHJpbmdpZnkoa2V5KSArICJdIiwgInJlc3VsdFsiICsgSlNPTi5z
dHJpbmdpZnkoa2V5KSArICJdIik7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgY2FsbGJhY2so
KTsKKyAgICB9KTsKK30KKworZnVuY3Rpb24gdGVzdEJhZFR5cGVzKCkKK3sKKyAgICBkZWJ1Zygi
Iik7CisgICAgZGVidWcoIlRlc3QgdHlwZXMgdGhhdCBjYW4ndCBiZSBjbG9uZWQ6Iik7CisgICAg
ZGVidWcoIiIpOworCisgICAgZXZhbEFuZExvZygidHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlv
bignc3RvcmVOYW1lJywgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkiKTsKKyAgICBldmFsQW5k
TG9nKCJzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKSIpOworICAg
IHRyYW5zYWN0aW9uLm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKKyAgICB0cmFu
c2FjdGlvbi5vbmNvbXBsZXRlID0gdW5leHBlY3RlZENvbXBsZXRlQ2FsbGJhY2s7CisgICAgdHJh
bnNhY3Rpb24ub25hYm9ydCA9IGRvbmU7CisKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoIk90
aGVyIEphdmFTY3JpcHQgb2JqZWN0IHR5cGVzOiIpOworICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRp
b24oInN0b3JlLnB1dChuZXcgRXJyb3IsICdrZXknKSIsICJET01FeGNlcHRpb24uREFUQV9DTE9O
RV9FUlIiKTsKKyAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJzdG9yZS5wdXQobmV3IEZ1bmN0
aW9uLCAna2V5JykiLCAiRE9NRXhjZXB0aW9uLkRBVEFfQ0xPTkVfRVJSIik7CisKKyAgICBkZWJ1
ZygiIik7CisgICAgZGVidWcoIk90aGVyIGhvc3Qgb2JqZWN0IHR5cGVzOiIpOworICAgIGV2YWxB
bmRFeHBlY3RFeGNlcHRpb24oInN0b3JlLnB1dCh3aW5kb3csICdrZXknKSIsICJET01FeGNlcHRp
b24uREFUQV9DTE9ORV9FUlIiKTsKKyAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJzdG9yZS5w
dXQoZG9jdW1lbnQsICdrZXknKSIsICJET01FeGNlcHRpb24uREFUQV9DTE9ORV9FUlIiKTsKKyAg
ICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJzdG9yZS5wdXQoZG9jdW1lbnQuYm9keSwgJ2tleScp
IiwgIkRPTUV4Y2VwdGlvbi5EQVRBX0NMT05FX0VSUiIpOworfQorCit0ZXN0KCk7CisKKzwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>124574</attachid>
            <date>2012-01-30 11:48:06 -0800</date>
            <delta_ts>2012-01-30 12:09:21 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-74897-20120130114805.patch</filename>
            <type>text/plain</type>
            <size>45074</size>
            <attacher name="Joshua Bell">jsbell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA2MjE1CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMTViOGE4MGU0YzAyZDQxZmQ2N2Rj
Mjc0M2E1YTZjNGNhODZjNmYyMC4uYzU0MmY0Y2M1M2NiNTAyMGRmOTZmZjNmNjVkNWYzODU5N2Rj
NjVmMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDEyLTAxLTMwICBKb3NodWEgQmVsbCAgPGpz
YmVsbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhlZERCOiBBZGQgdGVzdHMgZm9yIHN0
cnVjdHVyZWQgY2xvbmUgZGF0YQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NzQ4OTcKKworICAgICAgICBWYWxpZGF0ZSB0aGF0IHRoZSB0eXBlcyBsaXN0
ZWQgaW4gdGhlIEhUTUw1ICJzdHJ1Y3R1cmVkIGNsb25lIGFsZ29yaXRobSIKKyAgICAgICAgcm91
bmQgdHJpcCBwcm9wZXJseSB0aHJvdWdoIEluZGV4ZWQgREIgc3RvcmFnZS4gVHlwZXMgd2l0aCBp
bmNvbXBsZXRlCisgICAgICAgIHN1cHBvcnQgaW4gdGhlIENocm9taXVtIHBvcnQgYXJlIGV4Y2x1
ZGVkIChodHRwOi8vY3JidWcuY29tLzEwODAxMikuCisgICAgICAgIExhbmRpbmcgZGlzYWJsZWQg
c2luY2UgY3ItbGludXggaXMgZmFpbGluZyB0ZXN0IGZvciB1bmtub3duIHJlYXNvbnMuCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgVG9ueSBDaGFuZy4KKworICAgICAgICAqIHBsYXRmb3JtL2Nocm9t
aXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9y
ZXNvdXJjZXMvdGVzdC1kYXRhLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhl
ZGRiL3Jlc291cmNlcy90ZXN0LWRhdGEudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2lu
ZGV4ZWRkYi9zdHJ1Y3R1cmVkLWNsb25lLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
c3RvcmFnZS9pbmRleGVkZGIvc3RydWN0dXJlZC1jbG9uZS5odG1sOiBBZGRlZC4KKwogMjAxMi0w
MS0yOSAgWXV6byBGdWppc2hpbWEgIDx5dXpvQGdvb2dsZS5jb20+CiAKICAgICAgICAgW0Nocm9t
aXVtXSBVbnJldmlld2VkIHRlc3QgZXhwZWN0YXRpb24gY2hhbmdlLgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0IGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CmluZGV4IDUwNzIz
MGE5OTcwNjVhODU4ZTA3YTMzYTdjNWQyOGM3YTE3ODRhNjMuLmZjOWVmNjI2N2E1ZTJmOTFhNDQ5
ZTBlMmExYWUxY2RlZDVmOWZjNTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQKQEAgLTQwMzgsMyArNDAzOCw1IEBAIEJVR1dL
NzczMTAgOiBmYXN0L2pzL25hdmlnYXRvci1sYW5ndWFnZS5odG1sID0gUEFTUyBURVhUCiAKIEJV
R1dLNzczMTQgV0lOIE1BQyA6IGZhc3QvZXZlbnRzL3RvdWNoL3NlbmQtb25jYW5jZWwtZXZlbnQu
aHRtbCA9IFBBU1MgVEVYVAogQlVHV0s3NzMxNSBXSU4gTUFDIDogZmFzdC9ldmVudHMvdG91Y2gv
dG91Y2gtZ2VzdHVyZS1zY3JvbGwuaHRtbCA9IFBBU1MgVEVYVAorCitCVUdXSzc3MjM5IDogc3Rv
cmFnZS9pbmRleGVkZGIvc3RydWN0dXJlZC1jbG9uZS5odG1sID0gUEFTUyBURVhUCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvdGVzdC1kYXRhLmh0
bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvdGVzdC1kYXRhLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNzViZGIyOGFkNTkyYWUyZmFmOGM3YTkzYzczY2UwMmJjZjIwZmQwMgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNl
cy90ZXN0LWRhdGEuaHRtbApAQCAtMCwwICsxLDQgQEAKKzwhRE9DVFlQRSBodG1sPgorPHRpdGxl
PlRoaXMgaXMgc29tZSB0ZXN0IGRhdGE8L3RpdGxlPgorPGgxPlRlc3QgZGF0YSE8L2gxPgorPHA+
R2V0IHlvdXIgdGVzdCBkYXRhIGhlcmUhCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9yZXNvdXJjZXMvdGVzdC1kYXRhLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL3Jlc291cmNlcy90ZXN0LWRhdGEudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRlZTNhMmQzYzdl
NmExNzZmYWNhN2U1MDg3NTg2MmQ0MWI3ZDNlY2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvdGVzdC1kYXRhLnR4dApAQCAtMCwwICsx
IEBACitMb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlzY2luZyBl
bGl0LiBBZW5lYW4gbGFvcmVldCBkb2xvciBpZCB1cm5hIGVsZWlmZW5kIGFsaXF1ZXQuIE51bGxh
IHZlbCBkb2xvciBpcHN1bS4gQWxpcXVhbSB1dCB0dXJwaXMgbmlzbCwgaW4gdnVscHV0YXRlIHNh
cGllbi4gQ3VtIHNvY2lpcyBuYXRvcXVlIHBlbmF0aWJ1cyBldCBtYWduaXMgZGlzIHBhcnR1cmll
bnQgbW9udGVzLCBuYXNjZXR1ciByaWRpY3VsdXMgbXVzLiBTZWQgY29uZ3VlIG1hZ25hIHZpdGFl
IGRvbG9yIGZldWdpYXQgdmVoaWN1bGEuIFNlZCB2b2x1dHBhdCwgdGVsbHVzIHZlbCB2YXJpdXMg
dmVzdGlidWx1bSwgcHVydXMgcXVhbSBtb2xsaXMgc2FwaWVuLCBpbiBjb25kaW1lbnR1bSBsZW8g
bmVxdWUgc2VkIG51bGxhLiBOdW5jIHF1aXMgcG9ydGEgZWxpdC4gUGVsbGVudGVzcXVlIGVyYXQg
bGVjdHVzLCB1bHRyaWNpZXMgYSBsb2JvcnRpcyBpZCwgZmF1Y2lidXMgaWQgcXVhbS4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3N0cnVjdHVyZWQtY2xvbmUtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvc3RydWN0dXJlZC1jbG9u
ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWIwMzc0YTYwN2Q0Y2I5Y2E1MGRjYTVkYTZiNWRl
ODBiODNkMDExMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL3N0cnVjdHVyZWQtY2xvbmUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNjkyIEBACisKK1Rl
c3Qgc3RydWN0dXJlZCBjbG9uZSBwZXJtdXRhdGlvbnMgaW4gSW5kZXhlZERCLiBGaWxlL0ZpbGVM
aXN0IHRlc3RzIHJlcXVpcmUgRHVtcFJlbmRlclRyZWUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KKworCitpbmRleGVkREIgPSB3aW5kb3cuaW5kZXhlZERCIHx8IHdpbmRvdy53ZWJraXRJ
bmRleGVkREIKK1BBU1MgaW5kZXhlZERCICE9IG51bGwgaXMgdHJ1ZQorSURCVHJhbnNhY3Rpb24g
PSB3aW5kb3cuSURCVHJhbnNhY3Rpb24gfHwgd2luZG93LndlYmtpdElEQlRyYW5zYWN0aW9uCitQ
QVNTIElEQlRyYW5zYWN0aW9uICE9IG51bGwgaXMgdHJ1ZQorCitQcmVwYXJlIERhdGFiYXNlCitp
bmRleGVkREIuZGVsZXRlRGF0YWJhc2UoJ3N0cnVjdHVyZWQtY2xvbmUnKQoraW5kZXhlZERCLm9w
ZW4oJ3N0cnVjdHVyZWQtY2xvbmUnKQorZGIgPSByZXF1ZXN0LnJlc3VsdAorUEFTUyBkYi52ZXJz
aW9uIGlzICIiCitkYi5zZXRWZXJzaW9uKCcxJykKK2RiLmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9y
ZU5hbWUnKQorCitSdW5uaW5nIHRlc3RzLi4uCisKK1Rlc3Rpbmc6IHVuZGVmaW5lZAordHJhbnNh
Y3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1lJywgSURCVHJhbnNhY3Rpb24uUkVBRF9X
UklURSkKK3N0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpCit2YWx1
ZSBpczogdW5kZWZpbmVkICh0eXBlOiB1bmRlZmluZWQpCitzdG9yZS5wdXQodmFsdWUsICdrZXkn
KQorc3RvcmUuZ2V0KCdrZXknKQorUEFTUyBpcyh0ZXN0X2RhdGEsIHJlc3VsdCkgaXMgdHJ1ZQor
CisKK1Rlc3Rpbmc6IG51bGwKK3RyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24oJ3N0b3JlTmFt
ZScsIElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUpCitzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVj
dFN0b3JlKCdzdG9yZU5hbWUnKQordmFsdWUgaXM6IG51bGwgKHR5cGU6IG9iamVjdCkKK3N0b3Jl
LnB1dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5nZXQoJ2tleScpCitQQVNTIGlzKHRlc3RfZGF0YSwg
cmVzdWx0KSBpcyB0cnVlCisKKworVGVzdGluZyBib29sZWFuIHByaW1pdGl2ZXMKKworVGVzdGlu
ZzogdHJ1ZQordHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1lJywgSURCVHJh
bnNhY3Rpb24uUkVBRF9XUklURSkKK3N0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0
b3JlTmFtZScpCit2YWx1ZSBpczogdHJ1ZSAodHlwZTogYm9vbGVhbikKK3N0b3JlLnB1dCh2YWx1
ZSwgJ2tleScpCitzdG9yZS5nZXQoJ2tleScpCitQQVNTIGlzKHRlc3RfZGF0YSwgcmVzdWx0KSBp
cyB0cnVlCisKK1Rlc3Rpbmc6IGZhbHNlCit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdz
dG9yZU5hbWUnLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFuc2FjdGlv
bi5vYmplY3RTdG9yZSgnc3RvcmVOYW1lJykKK3ZhbHVlIGlzOiBmYWxzZSAodHlwZTogYm9vbGVh
bikKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5nZXQoJ2tleScpCitQQVNTIGlzKHRl
c3RfZGF0YSwgcmVzdWx0KSBpcyB0cnVlCisKKworVGVzdGluZyBudW1iZXIgcHJpbWl0aXZlcwor
CitUZXN0aW5nOiBOYU4KK3RyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24oJ3N0b3JlTmFtZScs
IElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUpCitzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0
b3JlKCdzdG9yZU5hbWUnKQordmFsdWUgaXM6IE5hTiAodHlwZTogbnVtYmVyKQorc3RvcmUucHV0
KHZhbHVlLCAna2V5JykKK3N0b3JlLmdldCgna2V5JykKK1BBU1MgaXModGVzdF9kYXRhLCByZXN1
bHQpIGlzIHRydWUKKworVGVzdGluZzogLUluZmluaXR5Cit0cmFuc2FjdGlvbiA9IGRiLnRyYW5z
YWN0aW9uKCdzdG9yZU5hbWUnLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0
cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmVOYW1lJykKK3ZhbHVlIGlzOiAtSW5maW5pdHkg
KHR5cGU6IG51bWJlcikKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5nZXQoJ2tleScp
CitQQVNTIGlzKHRlc3RfZGF0YSwgcmVzdWx0KSBpcyB0cnVlCisKK1Rlc3Rpbmc6IC1OdW1iZXIu
TUFYX1ZBTFVFCit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUnLCBJREJU
cmFuc2FjdGlvbi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgn
c3RvcmVOYW1lJykKK3ZhbHVlIGlzOiAtMS43OTc2OTMxMzQ4NjIzMTU3ZSszMDggKHR5cGU6IG51
bWJlcikKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5nZXQoJ2tleScpCitQQVNTIGlz
KHRlc3RfZGF0YSwgcmVzdWx0KSBpcyB0cnVlCisKK1Rlc3Rpbmc6IC1OdW1iZXIuTUlOX1ZBTFVF
Cit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUnLCBJREJUcmFuc2FjdGlv
bi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmVOYW1l
JykKK3ZhbHVlIGlzOiAtNWUtMzI0ICh0eXBlOiBudW1iZXIpCitzdG9yZS5wdXQodmFsdWUsICdr
ZXknKQorc3RvcmUuZ2V0KCdrZXknKQorUEFTUyBpcyh0ZXN0X2RhdGEsIHJlc3VsdCkgaXMgdHJ1
ZQorCitUZXN0aW5nOiAtMAordHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1l
JywgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkKK3N0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0
U3RvcmUoJ3N0b3JlTmFtZScpCit2YWx1ZSBpczogMCAodHlwZTogbnVtYmVyKQorc3RvcmUucHV0
KHZhbHVlLCAna2V5JykKK3N0b3JlLmdldCgna2V5JykKK1BBU1MgaXModGVzdF9kYXRhLCByZXN1
bHQpIGlzIHRydWUKKworVGVzdGluZzogMAordHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbign
c3RvcmVOYW1lJywgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkKK3N0b3JlID0gdHJhbnNhY3Rp
b24ub2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpCit2YWx1ZSBpczogMCAodHlwZTogbnVtYmVyKQor
c3RvcmUucHV0KHZhbHVlLCAna2V5JykKK3N0b3JlLmdldCgna2V5JykKK1BBU1MgaXModGVzdF9k
YXRhLCByZXN1bHQpIGlzIHRydWUKKworVGVzdGluZzogTnVtYmVyLk1JTl9WQUxVRQordHJhbnNh
Y3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1lJywgSURCVHJhbnNhY3Rpb24uUkVBRF9X
UklURSkKK3N0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpCit2YWx1
ZSBpczogNWUtMzI0ICh0eXBlOiBudW1iZXIpCitzdG9yZS5wdXQodmFsdWUsICdrZXknKQorc3Rv
cmUuZ2V0KCdrZXknKQorUEFTUyBpcyh0ZXN0X2RhdGEsIHJlc3VsdCkgaXMgdHJ1ZQorCitUZXN0
aW5nOiBOdW1iZXIuTUFYX1ZBTFVFCit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdzdG9y
ZU5hbWUnLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFuc2FjdGlvbi5v
YmplY3RTdG9yZSgnc3RvcmVOYW1lJykKK3ZhbHVlIGlzOiAxLjc5NzY5MzEzNDg2MjMxNTdlKzMw
OCAodHlwZTogbnVtYmVyKQorc3RvcmUucHV0KHZhbHVlLCAna2V5JykKK3N0b3JlLmdldCgna2V5
JykKK1BBU1MgaXModGVzdF9kYXRhLCByZXN1bHQpIGlzIHRydWUKKworVGVzdGluZzogSW5maW5p
dHkKK3RyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24oJ3N0b3JlTmFtZScsIElEQlRyYW5zYWN0
aW9uLlJFQURfV1JJVEUpCitzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZU5h
bWUnKQordmFsdWUgaXM6IEluZmluaXR5ICh0eXBlOiBudW1iZXIpCitzdG9yZS5wdXQodmFsdWUs
ICdrZXknKQorc3RvcmUuZ2V0KCdrZXknKQorUEFTUyBpcyh0ZXN0X2RhdGEsIHJlc3VsdCkgaXMg
dHJ1ZQorCisKK1Rlc3Rpbmcgc3RyaW5nIHByaW1pdGl2ZXMKKworVGVzdGluZzogJycKK3RyYW5z
YWN0aW9uID0gZGIudHJhbnNhY3Rpb24oJ3N0b3JlTmFtZScsIElEQlRyYW5zYWN0aW9uLlJFQURf
V1JJVEUpCitzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKQordmFs
dWUgaXM6ICAodHlwZTogc3RyaW5nKQorc3RvcmUucHV0KHZhbHVlLCAna2V5JykKK3N0b3JlLmdl
dCgna2V5JykKK1BBU1MgaXModGVzdF9kYXRhLCByZXN1bHQpIGlzIHRydWUKKworVGVzdGluZzog
J3RoaXMgaXMgYSBzYW1wbGUgc3RyaW5nJwordHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbign
c3RvcmVOYW1lJywgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkKK3N0b3JlID0gdHJhbnNhY3Rp
b24ub2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpCit2YWx1ZSBpczogdGhpcyBpcyBhIHNhbXBsZSBz
dHJpbmcgKHR5cGU6IHN0cmluZykKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5nZXQo
J2tleScpCitQQVNTIGlzKHRlc3RfZGF0YSwgcmVzdWx0KSBpcyB0cnVlCisKK1Rlc3Rpbmc6ICdu
dWxsKFwwKScKK3RyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24oJ3N0b3JlTmFtZScsIElEQlRy
YW5zYWN0aW9uLlJFQURfV1JJVEUpCitzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdz
dG9yZU5hbWUnKQordmFsdWUgaXM6IG51bGwoKSAodHlwZTogc3RyaW5nKQorc3RvcmUucHV0KHZh
bHVlLCAna2V5JykKK3N0b3JlLmdldCgna2V5JykKK1BBU1MgaXModGVzdF9kYXRhLCByZXN1bHQp
IGlzIHRydWUKKworCitUZXN0aW5nIEJvb2xlYW4gb2JqZWN0cworCitUZXN0aW5nOiBuZXcgQm9v
bGVhbih0cnVlKQordHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1lJywgSURC
VHJhbnNhY3Rpb24uUkVBRF9XUklURSkKK3N0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUo
J3N0b3JlTmFtZScpCit2YWx1ZSBpczogdHJ1ZSAodHlwZTogb2JqZWN0KQorc3RvcmUucHV0KHZh
bHVlLCAna2V5JykKK3N0b3JlLmdldCgna2V5JykKK1N0cmluZyhyZXN1bHQpOiB0cnVlCitQQVNT
IHR5cGVvZiByZXN1bHQgaXMgIm9iamVjdCIKK1BBU1MgT2JqZWN0LnByb3RvdHlwZS50b1N0cmlu
Zy5jYWxsKHJlc3VsdCkgaXMgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHRlc3RfZGF0
YSkKK1BBU1MgdGVzdF9kYXRhICE9PSByZXN1bHQgaXMgdHJ1ZQorUEFTUyByZXN1bHQudG9TdHJp
bmcoKSBpcyB0ZXN0X2RhdGEudG9TdHJpbmcoKQorUEFTUyBpcyh0ZXN0X2RhdGEudmFsdWVPZigp
LCByZXN1bHQudmFsdWVPZigpKSBpcyB0cnVlCisKK1Rlc3Rpbmc6IG5ldyBCb29sZWFuKGZhbHNl
KQordHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1lJywgSURCVHJhbnNhY3Rp
b24uUkVBRF9XUklURSkKK3N0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3JlTmFt
ZScpCit2YWx1ZSBpczogZmFsc2UgKHR5cGU6IG9iamVjdCkKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tl
eScpCitzdG9yZS5nZXQoJ2tleScpCitTdHJpbmcocmVzdWx0KTogZmFsc2UKK1BBU1MgdHlwZW9m
IHJlc3VsdCBpcyAib2JqZWN0IgorUEFTUyBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwo
cmVzdWx0KSBpcyBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodGVzdF9kYXRhKQorUEFT
UyB0ZXN0X2RhdGEgIT09IHJlc3VsdCBpcyB0cnVlCitQQVNTIHJlc3VsdC50b1N0cmluZygpIGlz
IHRlc3RfZGF0YS50b1N0cmluZygpCitQQVNTIGlzKHRlc3RfZGF0YS52YWx1ZU9mKCksIHJlc3Vs
dC52YWx1ZU9mKCkpIGlzIHRydWUKKworCitUZXN0aW5nIE51bWJlciBvYmplY3RzCisKK1Rlc3Rp
bmc6IG5ldyBOdW1iZXIoTmFOKQordHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3RvcmVO
YW1lJywgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkKK3N0b3JlID0gdHJhbnNhY3Rpb24ub2Jq
ZWN0U3RvcmUoJ3N0b3JlTmFtZScpCit2YWx1ZSBpczogTmFOICh0eXBlOiBvYmplY3QpCitzdG9y
ZS5wdXQodmFsdWUsICdrZXknKQorc3RvcmUuZ2V0KCdrZXknKQorU3RyaW5nKHJlc3VsdCk6IE5h
TgorUEFTUyB0eXBlb2YgcmVzdWx0IGlzICJvYmplY3QiCitQQVNTIE9iamVjdC5wcm90b3R5cGUu
dG9TdHJpbmcuY2FsbChyZXN1bHQpIGlzIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0
ZXN0X2RhdGEpCitQQVNTIHRlc3RfZGF0YSAhPT0gcmVzdWx0IGlzIHRydWUKK1BBU1MgcmVzdWx0
LnRvU3RyaW5nKCkgaXMgdGVzdF9kYXRhLnRvU3RyaW5nKCkKK1BBU1MgaXModGVzdF9kYXRhLnZh
bHVlT2YoKSwgcmVzdWx0LnZhbHVlT2YoKSkgaXMgdHJ1ZQorCitUZXN0aW5nOiBuZXcgTnVtYmVy
KC1JbmZpbml0eSkKK3RyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24oJ3N0b3JlTmFtZScsIElE
QlRyYW5zYWN0aW9uLlJFQURfV1JJVEUpCitzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3Jl
KCdzdG9yZU5hbWUnKQordmFsdWUgaXM6IC1JbmZpbml0eSAodHlwZTogb2JqZWN0KQorc3RvcmUu
cHV0KHZhbHVlLCAna2V5JykKK3N0b3JlLmdldCgna2V5JykKK1N0cmluZyhyZXN1bHQpOiAtSW5m
aW5pdHkKK1BBU1MgdHlwZW9mIHJlc3VsdCBpcyAib2JqZWN0IgorUEFTUyBPYmplY3QucHJvdG90
eXBlLnRvU3RyaW5nLmNhbGwocmVzdWx0KSBpcyBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNh
bGwodGVzdF9kYXRhKQorUEFTUyB0ZXN0X2RhdGEgIT09IHJlc3VsdCBpcyB0cnVlCitQQVNTIHJl
c3VsdC50b1N0cmluZygpIGlzIHRlc3RfZGF0YS50b1N0cmluZygpCitQQVNTIGlzKHRlc3RfZGF0
YS52YWx1ZU9mKCksIHJlc3VsdC52YWx1ZU9mKCkpIGlzIHRydWUKKworVGVzdGluZzogbmV3IE51
bWJlcigtTnVtYmVyLk1BWF9WQUxVRSkKK3RyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24oJ3N0
b3JlTmFtZScsIElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUpCitzdG9yZSA9IHRyYW5zYWN0aW9u
Lm9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKQordmFsdWUgaXM6IC0xLjc5NzY5MzEzNDg2MjMxNTdl
KzMwOCAodHlwZTogb2JqZWN0KQorc3RvcmUucHV0KHZhbHVlLCAna2V5JykKK3N0b3JlLmdldCgn
a2V5JykKK1N0cmluZyhyZXN1bHQpOiAtMS43OTc2OTMxMzQ4NjIzMTU3ZSszMDgKK1BBU1MgdHlw
ZW9mIHJlc3VsdCBpcyAib2JqZWN0IgorUEFTUyBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNh
bGwocmVzdWx0KSBpcyBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodGVzdF9kYXRhKQor
UEFTUyB0ZXN0X2RhdGEgIT09IHJlc3VsdCBpcyB0cnVlCitQQVNTIHJlc3VsdC50b1N0cmluZygp
IGlzIHRlc3RfZGF0YS50b1N0cmluZygpCitQQVNTIGlzKHRlc3RfZGF0YS52YWx1ZU9mKCksIHJl
c3VsdC52YWx1ZU9mKCkpIGlzIHRydWUKKworVGVzdGluZzogbmV3IE51bWJlcigtTnVtYmVyLk1J
Tl9WQUxVRSkKK3RyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24oJ3N0b3JlTmFtZScsIElEQlRy
YW5zYWN0aW9uLlJFQURfV1JJVEUpCitzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdz
dG9yZU5hbWUnKQordmFsdWUgaXM6IC01ZS0zMjQgKHR5cGU6IG9iamVjdCkKK3N0b3JlLnB1dCh2
YWx1ZSwgJ2tleScpCitzdG9yZS5nZXQoJ2tleScpCitTdHJpbmcocmVzdWx0KTogLTVlLTMyNAor
UEFTUyB0eXBlb2YgcmVzdWx0IGlzICJvYmplY3QiCitQQVNTIE9iamVjdC5wcm90b3R5cGUudG9T
dHJpbmcuY2FsbChyZXN1bHQpIGlzIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0ZXN0
X2RhdGEpCitQQVNTIHRlc3RfZGF0YSAhPT0gcmVzdWx0IGlzIHRydWUKK1BBU1MgcmVzdWx0LnRv
U3RyaW5nKCkgaXMgdGVzdF9kYXRhLnRvU3RyaW5nKCkKK1BBU1MgaXModGVzdF9kYXRhLnZhbHVl
T2YoKSwgcmVzdWx0LnZhbHVlT2YoKSkgaXMgdHJ1ZQorCitUZXN0aW5nOiBuZXcgTnVtYmVyKC0w
KQordHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1lJywgSURCVHJhbnNhY3Rp
b24uUkVBRF9XUklURSkKK3N0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3JlTmFt
ZScpCit2YWx1ZSBpczogMCAodHlwZTogb2JqZWN0KQorc3RvcmUucHV0KHZhbHVlLCAna2V5JykK
K3N0b3JlLmdldCgna2V5JykKK1N0cmluZyhyZXN1bHQpOiAwCitQQVNTIHR5cGVvZiByZXN1bHQg
aXMgIm9iamVjdCIKK1BBU1MgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHJlc3VsdCkg
aXMgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHRlc3RfZGF0YSkKK1BBU1MgdGVzdF9k
YXRhICE9PSByZXN1bHQgaXMgdHJ1ZQorUEFTUyByZXN1bHQudG9TdHJpbmcoKSBpcyB0ZXN0X2Rh
dGEudG9TdHJpbmcoKQorUEFTUyBpcyh0ZXN0X2RhdGEudmFsdWVPZigpLCByZXN1bHQudmFsdWVP
ZigpKSBpcyB0cnVlCisKK1Rlc3Rpbmc6IG5ldyBOdW1iZXIoMCkKK3RyYW5zYWN0aW9uID0gZGIu
dHJhbnNhY3Rpb24oJ3N0b3JlTmFtZScsIElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUpCitzdG9y
ZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKQordmFsdWUgaXM6IDAgKHR5
cGU6IG9iamVjdCkKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5nZXQoJ2tleScpCitT
dHJpbmcocmVzdWx0KTogMAorUEFTUyB0eXBlb2YgcmVzdWx0IGlzICJvYmplY3QiCitQQVNTIE9i
amVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChyZXN1bHQpIGlzIE9iamVjdC5wcm90b3R5cGUu
dG9TdHJpbmcuY2FsbCh0ZXN0X2RhdGEpCitQQVNTIHRlc3RfZGF0YSAhPT0gcmVzdWx0IGlzIHRy
dWUKK1BBU1MgcmVzdWx0LnRvU3RyaW5nKCkgaXMgdGVzdF9kYXRhLnRvU3RyaW5nKCkKK1BBU1Mg
aXModGVzdF9kYXRhLnZhbHVlT2YoKSwgcmVzdWx0LnZhbHVlT2YoKSkgaXMgdHJ1ZQorCitUZXN0
aW5nOiBuZXcgTnVtYmVyKE51bWJlci5NSU5fVkFMVUUpCit0cmFuc2FjdGlvbiA9IGRiLnRyYW5z
YWN0aW9uKCdzdG9yZU5hbWUnLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0
cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmVOYW1lJykKK3ZhbHVlIGlzOiA1ZS0zMjQgKHR5
cGU6IG9iamVjdCkKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5nZXQoJ2tleScpCitT
dHJpbmcocmVzdWx0KTogNWUtMzI0CitQQVNTIHR5cGVvZiByZXN1bHQgaXMgIm9iamVjdCIKK1BB
U1MgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHJlc3VsdCkgaXMgT2JqZWN0LnByb3Rv
dHlwZS50b1N0cmluZy5jYWxsKHRlc3RfZGF0YSkKK1BBU1MgdGVzdF9kYXRhICE9PSByZXN1bHQg
aXMgdHJ1ZQorUEFTUyByZXN1bHQudG9TdHJpbmcoKSBpcyB0ZXN0X2RhdGEudG9TdHJpbmcoKQor
UEFTUyBpcyh0ZXN0X2RhdGEudmFsdWVPZigpLCByZXN1bHQudmFsdWVPZigpKSBpcyB0cnVlCisK
K1Rlc3Rpbmc6IG5ldyBOdW1iZXIoTnVtYmVyLk1BWF9WQUxVRSkKK3RyYW5zYWN0aW9uID0gZGIu
dHJhbnNhY3Rpb24oJ3N0b3JlTmFtZScsIElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUpCitzdG9y
ZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKQordmFsdWUgaXM6IDEuNzk3
NjkzMTM0ODYyMzE1N2UrMzA4ICh0eXBlOiBvYmplY3QpCitzdG9yZS5wdXQodmFsdWUsICdrZXkn
KQorc3RvcmUuZ2V0KCdrZXknKQorU3RyaW5nKHJlc3VsdCk6IDEuNzk3NjkzMTM0ODYyMzE1N2Ur
MzA4CitQQVNTIHR5cGVvZiByZXN1bHQgaXMgIm9iamVjdCIKK1BBU1MgT2JqZWN0LnByb3RvdHlw
ZS50b1N0cmluZy5jYWxsKHJlc3VsdCkgaXMgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxs
KHRlc3RfZGF0YSkKK1BBU1MgdGVzdF9kYXRhICE9PSByZXN1bHQgaXMgdHJ1ZQorUEFTUyByZXN1
bHQudG9TdHJpbmcoKSBpcyB0ZXN0X2RhdGEudG9TdHJpbmcoKQorUEFTUyBpcyh0ZXN0X2RhdGEu
dmFsdWVPZigpLCByZXN1bHQudmFsdWVPZigpKSBpcyB0cnVlCisKK1Rlc3Rpbmc6IG5ldyBOdW1i
ZXIoSW5maW5pdHkpCit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUnLCBJ
REJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9y
ZSgnc3RvcmVOYW1lJykKK3ZhbHVlIGlzOiBJbmZpbml0eSAodHlwZTogb2JqZWN0KQorc3RvcmUu
cHV0KHZhbHVlLCAna2V5JykKK3N0b3JlLmdldCgna2V5JykKK1N0cmluZyhyZXN1bHQpOiBJbmZp
bml0eQorUEFTUyB0eXBlb2YgcmVzdWx0IGlzICJvYmplY3QiCitQQVNTIE9iamVjdC5wcm90b3R5
cGUudG9TdHJpbmcuY2FsbChyZXN1bHQpIGlzIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2Fs
bCh0ZXN0X2RhdGEpCitQQVNTIHRlc3RfZGF0YSAhPT0gcmVzdWx0IGlzIHRydWUKK1BBU1MgcmVz
dWx0LnRvU3RyaW5nKCkgaXMgdGVzdF9kYXRhLnRvU3RyaW5nKCkKK1BBU1MgaXModGVzdF9kYXRh
LnZhbHVlT2YoKSwgcmVzdWx0LnZhbHVlT2YoKSkgaXMgdHJ1ZQorCisKK1Rlc3RpbmcgU3RyaW5n
IG9iamVjdHMKKworVGVzdGluZzogbmV3IFN0cmluZygpCit0cmFuc2FjdGlvbiA9IGRiLnRyYW5z
YWN0aW9uKCdzdG9yZU5hbWUnLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0
cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmVOYW1lJykKK3ZhbHVlIGlzOiAgKHR5cGU6IG9i
amVjdCkKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5nZXQoJ2tleScpCitTdHJpbmco
cmVzdWx0KTogCitQQVNTIHR5cGVvZiByZXN1bHQgaXMgIm9iamVjdCIKK1BBU1MgT2JqZWN0LnBy
b3RvdHlwZS50b1N0cmluZy5jYWxsKHJlc3VsdCkgaXMgT2JqZWN0LnByb3RvdHlwZS50b1N0cmlu
Zy5jYWxsKHRlc3RfZGF0YSkKK1BBU1MgdGVzdF9kYXRhICE9PSByZXN1bHQgaXMgdHJ1ZQorUEFT
UyByZXN1bHQudG9TdHJpbmcoKSBpcyB0ZXN0X2RhdGEudG9TdHJpbmcoKQorUEFTUyBpcyh0ZXN0
X2RhdGEudmFsdWVPZigpLCByZXN1bHQudmFsdWVPZigpKSBpcyB0cnVlCisKK1Rlc3Rpbmc6IG5l
dyBTdHJpbmcoJ3RoaXMgaXMgYSBzYW1wbGUgc3RyaW5nJykKK3RyYW5zYWN0aW9uID0gZGIudHJh
bnNhY3Rpb24oJ3N0b3JlTmFtZScsIElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUpCitzdG9yZSA9
IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKQordmFsdWUgaXM6IHRoaXMgaXMg
YSBzYW1wbGUgc3RyaW5nICh0eXBlOiBvYmplY3QpCitzdG9yZS5wdXQodmFsdWUsICdrZXknKQor
c3RvcmUuZ2V0KCdrZXknKQorU3RyaW5nKHJlc3VsdCk6IHRoaXMgaXMgYSBzYW1wbGUgc3RyaW5n
CitQQVNTIHR5cGVvZiByZXN1bHQgaXMgIm9iamVjdCIKK1BBU1MgT2JqZWN0LnByb3RvdHlwZS50
b1N0cmluZy5jYWxsKHJlc3VsdCkgaXMgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHRl
c3RfZGF0YSkKK1BBU1MgdGVzdF9kYXRhICE9PSByZXN1bHQgaXMgdHJ1ZQorUEFTUyByZXN1bHQu
dG9TdHJpbmcoKSBpcyB0ZXN0X2RhdGEudG9TdHJpbmcoKQorUEFTUyBpcyh0ZXN0X2RhdGEudmFs
dWVPZigpLCByZXN1bHQudmFsdWVPZigpKSBpcyB0cnVlCisKK1Rlc3Rpbmc6IG5ldyBTdHJpbmco
J251bGwoXDApJykKK3RyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24oJ3N0b3JlTmFtZScsIElE
QlRyYW5zYWN0aW9uLlJFQURfV1JJVEUpCitzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3Jl
KCdzdG9yZU5hbWUnKQordmFsdWUgaXM6IG51bGwoKSAodHlwZTogb2JqZWN0KQorc3RvcmUucHV0
KHZhbHVlLCAna2V5JykKK3N0b3JlLmdldCgna2V5JykKK1N0cmluZyhyZXN1bHQpOiBudWxsKCkK
K1BBU1MgdHlwZW9mIHJlc3VsdCBpcyAib2JqZWN0IgorUEFTUyBPYmplY3QucHJvdG90eXBlLnRv
U3RyaW5nLmNhbGwocmVzdWx0KSBpcyBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodGVz
dF9kYXRhKQorUEFTUyB0ZXN0X2RhdGEgIT09IHJlc3VsdCBpcyB0cnVlCitQQVNTIHJlc3VsdC50
b1N0cmluZygpIGlzIHRlc3RfZGF0YS50b1N0cmluZygpCitQQVNTIGlzKHRlc3RfZGF0YS52YWx1
ZU9mKCksIHJlc3VsdC52YWx1ZU9mKCkpIGlzIHRydWUKKworCitUZXN0aW5nIERhdGUgb2JqZWN0
cworCitUZXN0aW5nOiBuZXcgRGF0ZSgtMWUxMykKK3RyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rp
b24oJ3N0b3JlTmFtZScsIElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUpCitzdG9yZSA9IHRyYW5z
YWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKQordmFsdWUgaXM6IFN1biBGZWIgMDkgMTY1
MyAyMjoxMzoyMCBHTVQtMDgwMCAoUFNUKSAodHlwZTogb2JqZWN0KQorc3RvcmUucHV0KHZhbHVl
LCAna2V5JykKK3N0b3JlLmdldCgna2V5JykKK1N0cmluZyhyZXN1bHQpOiBTdW4gRmViIDA5IDE2
NTMgMjI6MTM6MjAgR01ULTA4MDAgKFBTVCkKK1BBU1MgdHlwZW9mIHJlc3VsdCBpcyAib2JqZWN0
IgorUEFTUyBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwocmVzdWx0KSBpcyBPYmplY3Qu
cHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodGVzdF9kYXRhKQorUEFTUyB0ZXN0X2RhdGEgIT09IHJl
c3VsdCBpcyB0cnVlCitQQVNTIHJlc3VsdC50b1N0cmluZygpIGlzIHRlc3RfZGF0YS50b1N0cmlu
ZygpCitQQVNTIGlzKHRlc3RfZGF0YS52YWx1ZU9mKCksIHJlc3VsdC52YWx1ZU9mKCkpIGlzIHRy
dWUKKworVGVzdGluZzogbmV3IERhdGUoLTFlMTIpCit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0
aW9uKCdzdG9yZU5hbWUnLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFu
c2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmVOYW1lJykKK3ZhbHVlIGlzOiBTdW4gQXByIDI0IDE5
MzggMTU6MTM6MjAgR01ULTA3MDAgKFBEVCkgKHR5cGU6IG9iamVjdCkKK3N0b3JlLnB1dCh2YWx1
ZSwgJ2tleScpCitzdG9yZS5nZXQoJ2tleScpCitTdHJpbmcocmVzdWx0KTogU3VuIEFwciAyNCAx
OTM4IDE1OjEzOjIwIEdNVC0wNzAwIChQRFQpCitQQVNTIHR5cGVvZiByZXN1bHQgaXMgIm9iamVj
dCIKK1BBU1MgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHJlc3VsdCkgaXMgT2JqZWN0
LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHRlc3RfZGF0YSkKK1BBU1MgdGVzdF9kYXRhICE9PSBy
ZXN1bHQgaXMgdHJ1ZQorUEFTUyByZXN1bHQudG9TdHJpbmcoKSBpcyB0ZXN0X2RhdGEudG9TdHJp
bmcoKQorUEFTUyBpcyh0ZXN0X2RhdGEudmFsdWVPZigpLCByZXN1bHQudmFsdWVPZigpKSBpcyB0
cnVlCisKK1Rlc3Rpbmc6IG5ldyBEYXRlKC0xZTkpCit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0
aW9uKCdzdG9yZU5hbWUnLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFu
c2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmVOYW1lJykKK3ZhbHVlIGlzOiBTYXQgRGVjIDIwIDE5
NjkgMDI6MTM6MjAgR01ULTA4MDAgKFBTVCkgKHR5cGU6IG9iamVjdCkKK3N0b3JlLnB1dCh2YWx1
ZSwgJ2tleScpCitzdG9yZS5nZXQoJ2tleScpCitTdHJpbmcocmVzdWx0KTogU2F0IERlYyAyMCAx
OTY5IDAyOjEzOjIwIEdNVC0wODAwIChQU1QpCitQQVNTIHR5cGVvZiByZXN1bHQgaXMgIm9iamVj
dCIKK1BBU1MgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHJlc3VsdCkgaXMgT2JqZWN0
LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHRlc3RfZGF0YSkKK1BBU1MgdGVzdF9kYXRhICE9PSBy
ZXN1bHQgaXMgdHJ1ZQorUEFTUyByZXN1bHQudG9TdHJpbmcoKSBpcyB0ZXN0X2RhdGEudG9TdHJp
bmcoKQorUEFTUyBpcyh0ZXN0X2RhdGEudmFsdWVPZigpLCByZXN1bHQudmFsdWVPZigpKSBpcyB0
cnVlCisKK1Rlc3Rpbmc6IG5ldyBEYXRlKC0xZTYpCit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0
aW9uKCdzdG9yZU5hbWUnLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFu
c2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmVOYW1lJykKK3ZhbHVlIGlzOiBXZWQgRGVjIDMxIDE5
NjkgMTU6NDM6MjAgR01ULTA4MDAgKFBTVCkgKHR5cGU6IG9iamVjdCkKK3N0b3JlLnB1dCh2YWx1
ZSwgJ2tleScpCitzdG9yZS5nZXQoJ2tleScpCitTdHJpbmcocmVzdWx0KTogV2VkIERlYyAzMSAx
OTY5IDE1OjQzOjIwIEdNVC0wODAwIChQU1QpCitQQVNTIHR5cGVvZiByZXN1bHQgaXMgIm9iamVj
dCIKK1BBU1MgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHJlc3VsdCkgaXMgT2JqZWN0
LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHRlc3RfZGF0YSkKK1BBU1MgdGVzdF9kYXRhICE9PSBy
ZXN1bHQgaXMgdHJ1ZQorUEFTUyByZXN1bHQudG9TdHJpbmcoKSBpcyB0ZXN0X2RhdGEudG9TdHJp
bmcoKQorUEFTUyBpcyh0ZXN0X2RhdGEudmFsdWVPZigpLCByZXN1bHQudmFsdWVPZigpKSBpcyB0
cnVlCisKK1Rlc3Rpbmc6IG5ldyBEYXRlKC0xZTMpCit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0
aW9uKCdzdG9yZU5hbWUnLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFu
c2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmVOYW1lJykKK3ZhbHVlIGlzOiBXZWQgRGVjIDMxIDE5
NjkgMTU6NTk6NTkgR01ULTA4MDAgKFBTVCkgKHR5cGU6IG9iamVjdCkKK3N0b3JlLnB1dCh2YWx1
ZSwgJ2tleScpCitzdG9yZS5nZXQoJ2tleScpCitTdHJpbmcocmVzdWx0KTogV2VkIERlYyAzMSAx
OTY5IDE1OjU5OjU5IEdNVC0wODAwIChQU1QpCitQQVNTIHR5cGVvZiByZXN1bHQgaXMgIm9iamVj
dCIKK1BBU1MgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHJlc3VsdCkgaXMgT2JqZWN0
LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHRlc3RfZGF0YSkKK1BBU1MgdGVzdF9kYXRhICE9PSBy
ZXN1bHQgaXMgdHJ1ZQorUEFTUyByZXN1bHQudG9TdHJpbmcoKSBpcyB0ZXN0X2RhdGEudG9TdHJp
bmcoKQorUEFTUyBpcyh0ZXN0X2RhdGEudmFsdWVPZigpLCByZXN1bHQudmFsdWVPZigpKSBpcyB0
cnVlCisKK1Rlc3Rpbmc6IG5ldyBEYXRlKDApCit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9u
KCdzdG9yZU5hbWUnLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFuc2Fj
dGlvbi5vYmplY3RTdG9yZSgnc3RvcmVOYW1lJykKK3ZhbHVlIGlzOiBXZWQgRGVjIDMxIDE5Njkg
MTY6MDA6MDAgR01ULTA4MDAgKFBTVCkgKHR5cGU6IG9iamVjdCkKK3N0b3JlLnB1dCh2YWx1ZSwg
J2tleScpCitzdG9yZS5nZXQoJ2tleScpCitTdHJpbmcocmVzdWx0KTogV2VkIERlYyAzMSAxOTY5
IDE2OjAwOjAwIEdNVC0wODAwIChQU1QpCitQQVNTIHR5cGVvZiByZXN1bHQgaXMgIm9iamVjdCIK
K1BBU1MgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHJlc3VsdCkgaXMgT2JqZWN0LnBy
b3RvdHlwZS50b1N0cmluZy5jYWxsKHRlc3RfZGF0YSkKK1BBU1MgdGVzdF9kYXRhICE9PSByZXN1
bHQgaXMgdHJ1ZQorUEFTUyByZXN1bHQudG9TdHJpbmcoKSBpcyB0ZXN0X2RhdGEudG9TdHJpbmco
KQorUEFTUyBpcyh0ZXN0X2RhdGEudmFsdWVPZigpLCByZXN1bHQudmFsdWVPZigpKSBpcyB0cnVl
CisKK1Rlc3Rpbmc6IG5ldyBEYXRlKDFlMykKK3RyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24o
J3N0b3JlTmFtZScsIElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUpCitzdG9yZSA9IHRyYW5zYWN0
aW9uLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKQordmFsdWUgaXM6IFdlZCBEZWMgMzEgMTk2OSAx
NjowMDowMSBHTVQtMDgwMCAoUFNUKSAodHlwZTogb2JqZWN0KQorc3RvcmUucHV0KHZhbHVlLCAn
a2V5JykKK3N0b3JlLmdldCgna2V5JykKK1N0cmluZyhyZXN1bHQpOiBXZWQgRGVjIDMxIDE5Njkg
MTY6MDA6MDEgR01ULTA4MDAgKFBTVCkKK1BBU1MgdHlwZW9mIHJlc3VsdCBpcyAib2JqZWN0Igor
UEFTUyBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwocmVzdWx0KSBpcyBPYmplY3QucHJv
dG90eXBlLnRvU3RyaW5nLmNhbGwodGVzdF9kYXRhKQorUEFTUyB0ZXN0X2RhdGEgIT09IHJlc3Vs
dCBpcyB0cnVlCitQQVNTIHJlc3VsdC50b1N0cmluZygpIGlzIHRlc3RfZGF0YS50b1N0cmluZygp
CitQQVNTIGlzKHRlc3RfZGF0YS52YWx1ZU9mKCksIHJlc3VsdC52YWx1ZU9mKCkpIGlzIHRydWUK
KworVGVzdGluZzogbmV3IERhdGUoMWU2KQordHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbign
c3RvcmVOYW1lJywgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkKK3N0b3JlID0gdHJhbnNhY3Rp
b24ub2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpCit2YWx1ZSBpczogV2VkIERlYyAzMSAxOTY5IDE2
OjE2OjQwIEdNVC0wODAwIChQU1QpICh0eXBlOiBvYmplY3QpCitzdG9yZS5wdXQodmFsdWUsICdr
ZXknKQorc3RvcmUuZ2V0KCdrZXknKQorU3RyaW5nKHJlc3VsdCk6IFdlZCBEZWMgMzEgMTk2OSAx
NjoxNjo0MCBHTVQtMDgwMCAoUFNUKQorUEFTUyB0eXBlb2YgcmVzdWx0IGlzICJvYmplY3QiCitQ
QVNTIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChyZXN1bHQpIGlzIE9iamVjdC5wcm90
b3R5cGUudG9TdHJpbmcuY2FsbCh0ZXN0X2RhdGEpCitQQVNTIHRlc3RfZGF0YSAhPT0gcmVzdWx0
IGlzIHRydWUKK1BBU1MgcmVzdWx0LnRvU3RyaW5nKCkgaXMgdGVzdF9kYXRhLnRvU3RyaW5nKCkK
K1BBU1MgaXModGVzdF9kYXRhLnZhbHVlT2YoKSwgcmVzdWx0LnZhbHVlT2YoKSkgaXMgdHJ1ZQor
CitUZXN0aW5nOiBuZXcgRGF0ZSgxZTkpCit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdz
dG9yZU5hbWUnLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFuc2FjdGlv
bi5vYmplY3RTdG9yZSgnc3RvcmVOYW1lJykKK3ZhbHVlIGlzOiBNb24gSmFuIDEyIDE5NzAgMDU6
NDY6NDAgR01ULTA4MDAgKFBTVCkgKHR5cGU6IG9iamVjdCkKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tl
eScpCitzdG9yZS5nZXQoJ2tleScpCitTdHJpbmcocmVzdWx0KTogTW9uIEphbiAxMiAxOTcwIDA1
OjQ2OjQwIEdNVC0wODAwIChQU1QpCitQQVNTIHR5cGVvZiByZXN1bHQgaXMgIm9iamVjdCIKK1BB
U1MgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHJlc3VsdCkgaXMgT2JqZWN0LnByb3Rv
dHlwZS50b1N0cmluZy5jYWxsKHRlc3RfZGF0YSkKK1BBU1MgdGVzdF9kYXRhICE9PSByZXN1bHQg
aXMgdHJ1ZQorUEFTUyByZXN1bHQudG9TdHJpbmcoKSBpcyB0ZXN0X2RhdGEudG9TdHJpbmcoKQor
UEFTUyBpcyh0ZXN0X2RhdGEudmFsdWVPZigpLCByZXN1bHQudmFsdWVPZigpKSBpcyB0cnVlCisK
K1Rlc3Rpbmc6IG5ldyBEYXRlKDFlMTIpCit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdz
dG9yZU5hbWUnLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFuc2FjdGlv
bi5vYmplY3RTdG9yZSgnc3RvcmVOYW1lJykKK3ZhbHVlIGlzOiBTYXQgU2VwIDA4IDIwMDEgMTg6
NDY6NDAgR01ULTA3MDAgKFBEVCkgKHR5cGU6IG9iamVjdCkKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tl
eScpCitzdG9yZS5nZXQoJ2tleScpCitTdHJpbmcocmVzdWx0KTogU2F0IFNlcCAwOCAyMDAxIDE4
OjQ2OjQwIEdNVC0wNzAwIChQRFQpCitQQVNTIHR5cGVvZiByZXN1bHQgaXMgIm9iamVjdCIKK1BB
U1MgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHJlc3VsdCkgaXMgT2JqZWN0LnByb3Rv
dHlwZS50b1N0cmluZy5jYWxsKHRlc3RfZGF0YSkKK1BBU1MgdGVzdF9kYXRhICE9PSByZXN1bHQg
aXMgdHJ1ZQorUEFTUyByZXN1bHQudG9TdHJpbmcoKSBpcyB0ZXN0X2RhdGEudG9TdHJpbmcoKQor
UEFTUyBpcyh0ZXN0X2RhdGEudmFsdWVPZigpLCByZXN1bHQudmFsdWVPZigpKSBpcyB0cnVlCisK
K1Rlc3Rpbmc6IG5ldyBEYXRlKDFlMTMpCit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdz
dG9yZU5hbWUnLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFuc2FjdGlv
bi5vYmplY3RTdG9yZSgnc3RvcmVOYW1lJykKK3ZhbHVlIGlzOiBTYXQgTm92IDIwIDIyODYgMDk6
NDY6NDAgR01ULTA4MDAgKFBTVCkgKHR5cGU6IG9iamVjdCkKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tl
eScpCitzdG9yZS5nZXQoJ2tleScpCitTdHJpbmcocmVzdWx0KTogU2F0IE5vdiAyMCAyMjg2IDA5
OjQ2OjQwIEdNVC0wODAwIChQU1QpCitQQVNTIHR5cGVvZiByZXN1bHQgaXMgIm9iamVjdCIKK1BB
U1MgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHJlc3VsdCkgaXMgT2JqZWN0LnByb3Rv
dHlwZS50b1N0cmluZy5jYWxsKHRlc3RfZGF0YSkKK1BBU1MgdGVzdF9kYXRhICE9PSByZXN1bHQg
aXMgdHJ1ZQorUEFTUyByZXN1bHQudG9TdHJpbmcoKSBpcyB0ZXN0X2RhdGEudG9TdHJpbmcoKQor
UEFTUyBpcyh0ZXN0X2RhdGEudmFsdWVPZigpLCByZXN1bHQudmFsdWVPZigpKSBpcyB0cnVlCisK
KworVGVzdGluZyBSZWdFeHAgb2JqZWN0cworCitUZXN0aW5nIFJlZ0V4cDogbmV3IFJlZ0V4cCgp
Cit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUnLCBJREJUcmFuc2FjdGlv
bi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmVOYW1l
JykKK3ZhbHVlIGlzOiAvKD86KS8gKHR5cGU6IG9iamVjdCkKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tl
eScpCitzdG9yZS5nZXQoJ2tleScpCitQQVNTIHRlc3RfZGF0YSAhPT0gcmVzdWx0IGlzIHRydWUK
K1BBU1MgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHJlc3VsdCkgaXMgIltvYmplY3Qg
UmVnRXhwXSIKK1BBU1MgcmVzdWx0LnRvU3RyaW5nKCkgaXMgdGVzdF9kYXRhLnRvU3RyaW5nKCkK
KworVGVzdGluZyBSZWdFeHA6IC9hYmMvCit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdz
dG9yZU5hbWUnLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFuc2FjdGlv
bi5vYmplY3RTdG9yZSgnc3RvcmVOYW1lJykKK3ZhbHVlIGlzOiAvYWJjLyAodHlwZTogb2JqZWN0
KQorc3RvcmUucHV0KHZhbHVlLCAna2V5JykKK3N0b3JlLmdldCgna2V5JykKK1BBU1MgdGVzdF9k
YXRhICE9PSByZXN1bHQgaXMgdHJ1ZQorUEFTUyBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNh
bGwocmVzdWx0KSBpcyAiW29iamVjdCBSZWdFeHBdIgorUEFTUyByZXN1bHQudG9TdHJpbmcoKSBp
cyB0ZXN0X2RhdGEudG9TdHJpbmcoKQorCitUZXN0aW5nIFJlZ0V4cDogL2FiYy9nCit0cmFuc2Fj
dGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUnLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dS
SVRFKQorc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmVOYW1lJykKK3ZhbHVl
IGlzOiAvYWJjL2cgKHR5cGU6IG9iamVjdCkKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScpCitzdG9y
ZS5nZXQoJ2tleScpCitQQVNTIHRlc3RfZGF0YSAhPT0gcmVzdWx0IGlzIHRydWUKK1BBU1MgT2Jq
ZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHJlc3VsdCkgaXMgIltvYmplY3QgUmVnRXhwXSIK
K1BBU1MgcmVzdWx0LnRvU3RyaW5nKCkgaXMgdGVzdF9kYXRhLnRvU3RyaW5nKCkKKworVGVzdGlu
ZyBSZWdFeHA6IC9hYmMvaQordHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1l
JywgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkKK3N0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0
U3RvcmUoJ3N0b3JlTmFtZScpCit2YWx1ZSBpczogL2FiYy9pICh0eXBlOiBvYmplY3QpCitzdG9y
ZS5wdXQodmFsdWUsICdrZXknKQorc3RvcmUuZ2V0KCdrZXknKQorUEFTUyB0ZXN0X2RhdGEgIT09
IHJlc3VsdCBpcyB0cnVlCitQQVNTIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChyZXN1
bHQpIGlzICJbb2JqZWN0IFJlZ0V4cF0iCitQQVNTIHJlc3VsdC50b1N0cmluZygpIGlzIHRlc3Rf
ZGF0YS50b1N0cmluZygpCisKK1Rlc3RpbmcgUmVnRXhwOiAvYWJjL2dpCit0cmFuc2FjdGlvbiA9
IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUnLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKQor
c3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmVOYW1lJykKK3ZhbHVlIGlzOiAv
YWJjL2dpICh0eXBlOiBvYmplY3QpCitzdG9yZS5wdXQodmFsdWUsICdrZXknKQorc3RvcmUuZ2V0
KCdrZXknKQorUEFTUyB0ZXN0X2RhdGEgIT09IHJlc3VsdCBpcyB0cnVlCitQQVNTIE9iamVjdC5w
cm90b3R5cGUudG9TdHJpbmcuY2FsbChyZXN1bHQpIGlzICJbb2JqZWN0IFJlZ0V4cF0iCitQQVNT
IHJlc3VsdC50b1N0cmluZygpIGlzIHRlc3RfZGF0YS50b1N0cmluZygpCisKK1Rlc3RpbmcgUmVn
RXhwOiAvYWJjL20KK3RyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24oJ3N0b3JlTmFtZScsIElE
QlRyYW5zYWN0aW9uLlJFQURfV1JJVEUpCitzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3Jl
KCdzdG9yZU5hbWUnKQordmFsdWUgaXM6IC9hYmMvbSAodHlwZTogb2JqZWN0KQorc3RvcmUucHV0
KHZhbHVlLCAna2V5JykKK3N0b3JlLmdldCgna2V5JykKK1BBU1MgdGVzdF9kYXRhICE9PSByZXN1
bHQgaXMgdHJ1ZQorUEFTUyBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwocmVzdWx0KSBp
cyAiW29iamVjdCBSZWdFeHBdIgorUEFTUyByZXN1bHQudG9TdHJpbmcoKSBpcyB0ZXN0X2RhdGEu
dG9TdHJpbmcoKQorCitUZXN0aW5nIFJlZ0V4cDogL2FiYy9tZwordHJhbnNhY3Rpb24gPSBkYi50
cmFuc2FjdGlvbignc3RvcmVOYW1lJywgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkKK3N0b3Jl
ID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpCit2YWx1ZSBpczogL2FiYy9n
bSAodHlwZTogb2JqZWN0KQorc3RvcmUucHV0KHZhbHVlLCAna2V5JykKK3N0b3JlLmdldCgna2V5
JykKK1BBU1MgdGVzdF9kYXRhICE9PSByZXN1bHQgaXMgdHJ1ZQorUEFTUyBPYmplY3QucHJvdG90
eXBlLnRvU3RyaW5nLmNhbGwocmVzdWx0KSBpcyAiW29iamVjdCBSZWdFeHBdIgorUEFTUyByZXN1
bHQudG9TdHJpbmcoKSBpcyB0ZXN0X2RhdGEudG9TdHJpbmcoKQorCitUZXN0aW5nIFJlZ0V4cDog
L2FiYy9taQordHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1lJywgSURCVHJh
bnNhY3Rpb24uUkVBRF9XUklURSkKK3N0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0
b3JlTmFtZScpCit2YWx1ZSBpczogL2FiYy9pbSAodHlwZTogb2JqZWN0KQorc3RvcmUucHV0KHZh
bHVlLCAna2V5JykKK3N0b3JlLmdldCgna2V5JykKK1BBU1MgdGVzdF9kYXRhICE9PSByZXN1bHQg
aXMgdHJ1ZQorUEFTUyBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwocmVzdWx0KSBpcyAi
W29iamVjdCBSZWdFeHBdIgorUEFTUyByZXN1bHQudG9TdHJpbmcoKSBpcyB0ZXN0X2RhdGEudG9T
dHJpbmcoKQorCitUZXN0aW5nIFJlZ0V4cDogL2FiYy9tZ2kKK3RyYW5zYWN0aW9uID0gZGIudHJh
bnNhY3Rpb24oJ3N0b3JlTmFtZScsIElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUpCitzdG9yZSA9
IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKQordmFsdWUgaXM6IC9hYmMvZ2lt
ICh0eXBlOiBvYmplY3QpCitzdG9yZS5wdXQodmFsdWUsICdrZXknKQorc3RvcmUuZ2V0KCdrZXkn
KQorUEFTUyB0ZXN0X2RhdGEgIT09IHJlc3VsdCBpcyB0cnVlCitQQVNTIE9iamVjdC5wcm90b3R5
cGUudG9TdHJpbmcuY2FsbChyZXN1bHQpIGlzICJbb2JqZWN0IFJlZ0V4cF0iCitQQVNTIHJlc3Vs
dC50b1N0cmluZygpIGlzIHRlc3RfZGF0YS50b1N0cmluZygpCisKKworVGVzdGluZyBJbWFnZURh
dGEKK2NhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpCitjYW52YXMud2lk
dGggPSA4CitjYW52YXMuaGVpZ2h0ID0gOAordGVzdF9kYXRhID0gY2FudmFzLmdldENvbnRleHQo
JzJkJykuZ2V0SW1hZ2VEYXRhKDAsIDAsIDgsIDgpCit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0
aW9uKCdzdG9yZU5hbWUnLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFu
c2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmVOYW1lJykKK3ZhbHVlIGlzOiBbb2JqZWN0IEltYWdl
RGF0YV0gKHR5cGU6IG9iamVjdCkKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5nZXQo
J2tleScpCitQQVNTIHRlc3RfZGF0YSAhPT0gcmVzdWx0IGlzIHRydWUKK1BBU1MgT2JqZWN0LnBy
b3RvdHlwZS50b1N0cmluZy5jYWxsKHJlc3VsdCkgaXMgIltvYmplY3QgSW1hZ2VEYXRhXSIKK1BB
U1MgcmVzdWx0LndpZHRoIGlzIHRlc3RfZGF0YS53aWR0aAorUEFTUyByZXN1bHQuaGVpZ2h0IGlz
IHRlc3RfZGF0YS5oZWlnaHQKK1BBU1MgcmVzdWx0LmRhdGEubGVuZ3RoIGlzIHRlc3RfZGF0YS5k
YXRhLmxlbmd0aAorUEFTUyByZXN1bHQgZGF0YSBtYXRjaGVzCisKK1Rlc3RpbmcgQmxvYgorU2tp
cHBpbmcgdGVzdAorCitUZXN0aW5nIEZpbGUKK1NraXBwaW5nIHRlc3QKKworVGVzdGluZyBGaWxl
TGlzdAorU2tpcHBpbmcgdGVzdAorCitUZXN0aW5nIEFycmF5Cit0ZXN0X2RhdGEgPSBbXQordGVz
dF9kYXRhWzBdID0gJ2ZvbycKK3Rlc3RfZGF0YVsxXSA9ICdiYXInCit0ZXN0X2RhdGFbMTBdID0g
dHJ1ZQordGVzdF9kYXRhWzExXSA9IGZhbHNlCit0ZXN0X2RhdGFbMjBdID0gMTIzCit0ZXN0X2Rh
dGFbMjFdID0gNDU2Cit0ZXN0X2RhdGFbMzBdID0gbnVsbAordHJhbnNhY3Rpb24gPSBkYi50cmFu
c2FjdGlvbignc3RvcmVOYW1lJywgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkKK3N0b3JlID0g
dHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpCit2YWx1ZSBpczogZm9vLGJhciws
LCwsLCwsLHRydWUsZmFsc2UsLCwsLCwsLCwxMjMsNDU2LCwsLCwsLCwsICh0eXBlOiBvYmplY3Qp
CitzdG9yZS5wdXQodmFsdWUsICdrZXknKQorc3RvcmUuZ2V0KCdrZXknKQorUEFTUyB0ZXN0X2Rh
dGEgIT09IHJlc3VsdCBpcyB0cnVlCitQQVNTIHRlc3RfZGF0YS5sZW5ndGggPT09IHJlc3VsdC5s
ZW5ndGggaXMgdHJ1ZQorUEFTUyB0ZXN0X2RhdGFbMF0gaXMgcmVzdWx0WzBdCitQQVNTIHRlc3Rf
ZGF0YVsxXSBpcyByZXN1bHRbMV0KK1BBU1MgdGVzdF9kYXRhWzEwXSBpcyByZXN1bHRbMTBdCitQ
QVNTIHRlc3RfZGF0YVsxMV0gaXMgcmVzdWx0WzExXQorUEFTUyB0ZXN0X2RhdGFbMjBdIGlzIHJl
c3VsdFsyMF0KK1BBU1MgdGVzdF9kYXRhWzIxXSBpcyByZXN1bHRbMjFdCitQQVNTIHRlc3RfZGF0
YVszMF0gaXMgcmVzdWx0WzMwXQorCitUZXN0aW5nIE9iamVjdAordGVzdF9kYXRhID0gW10KK3Rl
c3RfZGF0YVswXSA9ICdmb28nCit0ZXN0X2RhdGFbMV0gPSAnYmFyJwordGVzdF9kYXRhWydhJ10g
PSB0cnVlCit0ZXN0X2RhdGFbJ2InXSA9IGZhbHNlCit0ZXN0X2RhdGFbJ2ZvbyddID0gMTIzCit0
ZXN0X2RhdGFbJ2JhciddID0gNDU2Cit0ZXN0X2RhdGFbJyddID0gbnVsbAordHJhbnNhY3Rpb24g
PSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1lJywgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkK
K3N0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpCit2YWx1ZSBpczog
Zm9vLGJhciAodHlwZTogb2JqZWN0KQorc3RvcmUucHV0KHZhbHVlLCAna2V5JykKK3N0b3JlLmdl
dCgna2V5JykKK1BBU1MgdGVzdF9kYXRhICE9PSByZXN1bHQgaXMgdHJ1ZQorUEFTUyBhcnJheUNv
bXBhcmUoT2JqZWN0LmtleXMocmVzdWx0KS5zb3J0KCksIE9iamVjdC5rZXlzKHRlc3RfZGF0YSku
c29ydCgpKSBpcyB0cnVlCitQQVNTIHRlc3RfZGF0YVsiMCJdIGlzIHJlc3VsdFsiMCJdCitQQVNT
IHRlc3RfZGF0YVsiMSJdIGlzIHJlc3VsdFsiMSJdCitQQVNTIHRlc3RfZGF0YVsiYSJdIGlzIHJl
c3VsdFsiYSJdCitQQVNTIHRlc3RfZGF0YVsiYiJdIGlzIHJlc3VsdFsiYiJdCitQQVNTIHRlc3Rf
ZGF0YVsiZm9vIl0gaXMgcmVzdWx0WyJmb28iXQorUEFTUyB0ZXN0X2RhdGFbImJhciJdIGlzIHJl
c3VsdFsiYmFyIl0KK1BBU1MgdGVzdF9kYXRhWyIiXSBpcyByZXN1bHRbIiJdCisKKworVGVzdCB0
eXBlcyB0aGF0IGNhbid0IGJlIGNsb25lZDoKKwordHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlv
bignc3RvcmVOYW1lJywgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkKK3N0b3JlID0gdHJhbnNh
Y3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpCisKK090aGVyIEphdmFTY3JpcHQgb2JqZWN0
IHR5cGVzOgorRXhwZWN0aW5nIGV4Y2VwdGlvbiBmcm9tIHN0b3JlLnB1dChuZXcgRXJyb3IsICdr
ZXknKQorUEFTUyBFeGNlcHRpb24gd2FzIHRocm93bi4KK1BBU1MgY29kZSBpcyBET01FeGNlcHRp
b24uREFUQV9DTE9ORV9FUlIKK0V4cGVjdGluZyBleGNlcHRpb24gZnJvbSBzdG9yZS5wdXQobmV3
IEZ1bmN0aW9uLCAna2V5JykKK1BBU1MgRXhjZXB0aW9uIHdhcyB0aHJvd24uCitQQVNTIGNvZGUg
aXMgRE9NRXhjZXB0aW9uLkRBVEFfQ0xPTkVfRVJSCisKK090aGVyIGhvc3Qgb2JqZWN0IHR5cGVz
OgorRXhwZWN0aW5nIGV4Y2VwdGlvbiBmcm9tIHN0b3JlLnB1dCh3aW5kb3csICdrZXknKQorUEFT
UyBFeGNlcHRpb24gd2FzIHRocm93bi4KK1BBU1MgY29kZSBpcyBET01FeGNlcHRpb24uREFUQV9D
TE9ORV9FUlIKK0V4cGVjdGluZyBleGNlcHRpb24gZnJvbSBzdG9yZS5wdXQoZG9jdW1lbnQsICdr
ZXknKQorUEFTUyBFeGNlcHRpb24gd2FzIHRocm93bi4KK1BBU1MgY29kZSBpcyBET01FeGNlcHRp
b24uREFUQV9DTE9ORV9FUlIKK0V4cGVjdGluZyBleGNlcHRpb24gZnJvbSBzdG9yZS5wdXQoZG9j
dW1lbnQuYm9keSwgJ2tleScpCitQQVNTIEV4Y2VwdGlvbiB3YXMgdGhyb3duLgorUEFTUyBjb2Rl
IGlzIERPTUV4Y2VwdGlvbi5EQVRBX0NMT05FX0VSUgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL3N0cnVjdHVyZWQtY2xvbmUuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL3N0cnVjdHVyZWQtY2xvbmUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MzQ4ZmFiZjUyODA0
M2ZiNzY3ZmY4YzExMDZhMjQ1YzYwMDdkM2M1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvc3RydWN0dXJlZC1jbG9uZS5odG1sCkBAIC0wLDAgKzEsNTUw
IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hhcmVk
LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGlucHV0IHR5cGU9ImZpbGUiIGlkPSJm
aWxlSW5wdXQiIG11bHRpcGxlPjwvaW5wdXQ+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxk
aXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KKworZGVzY3JpcHRpb24oIlRlc3Qgc3Ry
dWN0dXJlZCBjbG9uZSBwZXJtdXRhdGlvbnMgaW4gSW5kZXhlZERCLiBGaWxlL0ZpbGVMaXN0IHRl
c3RzIHJlcXVpcmUgRHVtcFJlbmRlclRyZWUuIik7CitpZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKworaWYg
KHdpbmRvdy5ldmVudFNlbmRlcikgeworICAgIHZhciBmaWxlSW5wdXQgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgiZmlsZUlucHV0Iik7CisgICAgdmFyIGZpbGVSZWN0ID0gZmlsZUlucHV0Lmdl
dENsaWVudFJlY3RzKClbMF07CisgICAgdmFyIHRhcmdldFggPSBmaWxlUmVjdC5sZWZ0ICsgZmls
ZVJlY3Qud2lkdGggLyAyOworICAgIHZhciB0YXJnZXRZID0gZmlsZVJlY3QudG9wICsgZmlsZVJl
Y3QuaGVpZ2h0IC8gMjsKKyAgICBldmVudFNlbmRlci5iZWdpbkRyYWdXaXRoRmlsZXMoWydyZXNv
dXJjZXMvdGVzdC1kYXRhLmh0bWwnLCAncmVzb3VyY2VzL3Rlc3QtZGF0YS50eHQnXSk7CisgICAg
ZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8odGFyZ2V0WCwgdGFyZ2V0WSk7CisgICAgZXZlbnRTZW5k
ZXIubW91c2VVcCgpOworfQorCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBldmFsQW5kTG9nKCJp
bmRleGVkREIgPSB3aW5kb3cuaW5kZXhlZERCIHx8IHdpbmRvdy53ZWJraXRJbmRleGVkREIiKTsK
KyAgICBzaG91bGRCZVRydWUoImluZGV4ZWREQiAhPSBudWxsIik7CisgICAgZXZhbEFuZExvZygi
SURCVHJhbnNhY3Rpb24gPSB3aW5kb3cuSURCVHJhbnNhY3Rpb24gfHwgd2luZG93LndlYmtpdElE
QlRyYW5zYWN0aW9uIik7CisgICAgc2hvdWxkQmVUcnVlKCJJREJUcmFuc2FjdGlvbiAhPSBudWxs
Iik7CisgICAgcHJlcGFyZURhdGFiYXNlKCk7Cit9CisKK2Z1bmN0aW9uIHByZXBhcmVEYXRhYmFz
ZSgpCit7CisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJQcmVwYXJlIERhdGFiYXNlIik7Cisg
ICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4ZWREQi5kZWxldGVEYXRhYmFzZSgnc3RydWN0
dXJlZC1jbG9uZScpIik7CisgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2Fs
bGJhY2s7CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIHJl
cXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIub3Blbignc3RydWN0dXJlZC1jbG9uZScpIik7
CisgICAgICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworICAg
ICAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGV2YWxB
bmRMb2coImRiID0gcmVxdWVzdC5yZXN1bHQiKTsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxU
b1N0cmluZygiZGIudmVyc2lvbiIsICIiKTsKKyAgICAgICAgICAgIHJlcXVlc3QgPSBldmFsQW5k
TG9nKCJkYi5zZXRWZXJzaW9uKCcxJykiKTsKKyAgICAgICAgICAgIHJlcXVlc3Qub25lcnJvciA9
IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworICAgICAgICAgICAgcmVxdWVzdC5vbnN1Y2Nlc3Mg
PSBmdW5jdGlvbihlKSB7CisgICAgICAgICAgICAgICAgZXZhbEFuZExvZygiZGIuY3JlYXRlT2Jq
ZWN0U3RvcmUoJ3N0b3JlTmFtZScpIik7CisgICAgICAgICAgICAgICAgdmFyIHRyYW5zID0gcmVx
dWVzdC5yZXN1bHQ7CisgICAgICAgICAgICAgICAgdHJhbnMub25lcnJvciA9IHVuZXhwZWN0ZWRF
cnJvckNhbGxiYWNrOworICAgICAgICAgICAgICAgIHRyYW5zLm9uYWJvcnQgPSB1bmV4cGVjdGVk
QWJvcnRDYWxsYmFjazsKKyAgICAgICAgICAgICAgICB0cmFucy5vbmNvbXBsZXRlID0gc3RhcnRU
ZXN0czsKKyAgICAgICAgICAgIH07CisgICAgICAgIH07CisgICAgfTsKK30KKworZnVuY3Rpb24g
c3RhcnRUZXN0cygpCit7CisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJSdW5uaW5nIHRlc3Rz
Li4uIik7CisgICAgdmFyIHRlc3RzX3RvX3J1biA9IFsKKyAgICAgICAgdGVzdFVuZGVmaW5lZCwK
KyAgICAgICAgdGVzdE51bGwsCisgICAgICAgIHRlc3RCb29sZWFuLAorICAgICAgICB0ZXN0TnVt
YmVyLAorICAgICAgICB0ZXN0U3RyaW5nLAorICAgICAgICB0ZXN0Qm9vbGVhbk9iamVjdCwKKyAg
ICAgICAgdGVzdE51bWJlck9iamVjdCwKKyAgICAgICAgdGVzdFN0cmluZ09iamVjdCwKKyAgICAg
ICAgdGVzdERhdGVPYmplY3QsCisgICAgICAgIHRlc3RSZWdFeHBPYmplY3QsCisgICAgICAgIHRl
c3RJbWFnZURhdGEsCisgICAgICAgIHRlc3RCbG9iLAorICAgICAgICB0ZXN0RmlsZSwKKyAgICAg
ICAgdGVzdEZpbGVMaXN0LAorICAgICAgICB0ZXN0QXJyYXksCisgICAgICAgIHRlc3RPYmplY3QK
KyAgICBdOworCisgICAgZnVuY3Rpb24gbmV4dFRlc3QoKSB7CisgICAgICAgIGRlYnVnKCIiKTsK
KyAgICAgICAgaWYgKHRlc3RzX3RvX3J1bi5sZW5ndGgpIHsKKyAgICAgICAgICAgIHZhciB0ZXN0
ID0gdGVzdHNfdG9fcnVuLnNoaWZ0KCk7CisgICAgICAgICAgICB0ZXN0KG5leHRUZXN0KTsgLy8g
V2hlbiBkb25lLCBjYWxsIHRoaXMgYWdhaW4uCisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAg
ICB0ZXN0QmFkVHlwZXMoKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBuZXh0VGVzdCgpOworfQor
CitmdW5jdGlvbiBmb3JFYWNoV2l0aENhbGxiYWNrKHRlc3RGdW5jdGlvbiwgdmFsdWVzLCBjYWxs
YmFjaykKK3sKKyAgICBmdW5jdGlvbiBuZXh0VmFsdWUoKSB7CisgICAgICAgIGlmICh2YWx1ZXMu
bGVuZ3RoKSB7CisgICAgICAgICAgICB0ZXN0RnVuY3Rpb24odmFsdWVzLnNoaWZ0KCksIG5leHRW
YWx1ZSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBjYWxsYmFjaygpOworICAgICAg
ICB9CisgICAgfQorCisgICAgbmV4dFZhbHVlKCk7Cit9CisKK2Z1bmN0aW9uIHRlc3RWYWx1ZSh2
YWx1ZSwgY2FsbGJhY2spCit7CisgICAgLy8gT25lIHRyYW5zYWN0aW9uIHBlciB0ZXN0LCBzaW5j
ZSBzb21lIHRlc3RzIHJlcXVpcmUgYXN5bmNocm9ub3VzCisgICAgLy8gb3BlcmF0aW9ucyB0byB2
ZXJpZnkgdGhlIHJlc3VsdCAoZS5nLiB2aWEgRmlsZVJlYWRlcikKKyAgICBldmFsQW5kTG9nKCJ0
cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUnLCBJREJUcmFuc2FjdGlvbi5S
RUFEX1dSSVRFKSIpOworICAgIHRyYW5zYWN0aW9uLm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JD
YWxsYmFjazsKKyAgICB0cmFuc2FjdGlvbi5vbmFib3J0ID0gdW5leHBlY3RlZEFib3J0Q2FsbGJh
Y2s7CisgICAgZXZhbEFuZExvZygic3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3Rv
cmVOYW1lJykiKTsKKworICAgIGRlYnVnKCJ2YWx1ZSBpczogIiArIFN0cmluZyh2YWx1ZSkgKyAi
ICh0eXBlOiAiICsgdHlwZW9mIHZhbHVlICsgIikiKTsKKyAgICB3aW5kb3cudmFsdWUgPSB2YWx1
ZTsKKyAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygic3RvcmUucHV0KHZhbHVlLCAna2V5JykiKTsK
KyAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKKyAgICByZXF1
ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgcmVxdWVzdCA9IGV2YWxBbmRM
b2coInN0b3JlLmdldCgna2V5JykiKTsKKyAgICAgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBl
Y3RlZEVycm9yQ2FsbGJhY2s7CisgICAgICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24o
ZSkgeworICAgICAgICAgICAgLy9kZWJ1ZygiZ290IGJhY2s6ICIgKyBTdHJpbmcocmVxdWVzdC5y
ZXN1bHQpICsgIiAodHlwZTogIiArIHR5cGVvZiByZXF1ZXN0LnJlc3VsdCArICIpIik7CisgICAg
ICAgICAgICBjYWxsYmFjayhyZXF1ZXN0LnJlc3VsdCk7CisgICAgICAgIH07CisgICAgfTsKK30K
KworLy8gSWRlbnRpdHkgdGVzdGluZywgc2Vuc2l0aXZlIHRvIE5hTiBhbmQgLTAKK2Z1bmN0aW9u
IGlzKHgsIHkpIHsKKyAgICBpZiAoeCA9PT0geSkgeworICAgICAgICByZXR1cm4geCAhPT0gMCB8
fCAxIC8geCA9PT0gMSAvIHk7CisgICAgfQorICAgIHJldHVybiB4ICE9PSB4ICYmIHkgIT09IHk7
Cit9CisKK2Z1bmN0aW9uIGFycmF5Q29tcGFyZShhLCBiKSB7CisgICAgaWYgKGEubGVuZ3RoICE9
PSBiLmxlbmd0aCkgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIGZvciAodmFy
IGkgPSAwOyBpIDwgYS5sZW5ndGg7ICsraSkgeworICAgICAgICBpZiAoIWlzKGFbaV0sIGJbaV0p
KSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0
dXJuIHRydWU7Cit9CisKK2Z1bmN0aW9uIHRlc3RQcmltaXRpdmVWYWx1ZShzdHJpbmcsIGNhbGxi
YWNrKQoreworICAgIGRlYnVnKCJUZXN0aW5nOiAiICsgc3RyaW5nKTsKKyAgICB2YXIgdmFsdWUg
PSBldmFsKCJ2YWx1ZSA9ICgiICsgc3RyaW5nICsgIikiKTsKKyAgICB0ZXN0X2RhdGEgPSB2YWx1
ZTsKKyAgICB0ZXN0VmFsdWUodGVzdF9kYXRhLCBmdW5jdGlvbihyZXN1bHQpIHsKKyAgICAgICAg
d2luZG93LnJlc3VsdCA9IHJlc3VsdDsKKyAgICAgICAgc2hvdWxkQmVUcnVlKCJpcyh0ZXN0X2Rh
dGEsIHJlc3VsdCkiKTsKKyAgICAgICAgZGVidWcoIiIpOworICAgICAgICBjYWxsYmFjaygpOwor
ICAgIH0pOworfQorCitmdW5jdGlvbiB0ZXN0T2JqZWN0V2l0aFZhbHVlKHN0cmluZywgY2FsbGJh
Y2spCit7CisgICAgZGVidWcoIlRlc3Rpbmc6ICIgKyBzdHJpbmcpOworICAgIHZhciB2YWx1ZSA9
IGV2YWwoInZhbHVlID0gKCIgKyBzdHJpbmcgKyAiKSIpOworICAgIHRlc3RfZGF0YSA9IHZhbHVl
OworICAgIHRlc3RWYWx1ZSh0ZXN0X2RhdGEsIGZ1bmN0aW9uKHJlc3VsdCkgeworICAgICAgICB3
aW5kb3cucmVzdWx0ID0gcmVzdWx0OworICAgICAgICBkZWJ1ZygiU3RyaW5nKHJlc3VsdCk6ICIg
KyBTdHJpbmcocmVzdWx0KSk7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygidHlwZW9m
IHJlc3VsdCIsICJvYmplY3QiKTsKKyAgICAgICAgc2hvdWxkQmUoIk9iamVjdC5wcm90b3R5cGUu
dG9TdHJpbmcuY2FsbChyZXN1bHQpIiwgIk9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0
ZXN0X2RhdGEpIik7CisgICAgICAgIHNob3VsZEJlVHJ1ZSgidGVzdF9kYXRhICE9PSByZXN1bHQi
KTsKKyAgICAgICAgc2hvdWxkQmUoInJlc3VsdC50b1N0cmluZygpIiwgInRlc3RfZGF0YS50b1N0
cmluZygpIik7CisgICAgICAgIHNob3VsZEJlVHJ1ZSgiaXModGVzdF9kYXRhLnZhbHVlT2YoKSwg
cmVzdWx0LnZhbHVlT2YoKSkiKTsKKyAgICAgICAgZGVidWcoIiIpOworICAgICAgICBjYWxsYmFj
aygpOworICAgIH0pOworfQorCitmdW5jdGlvbiB0ZXN0VW5kZWZpbmVkKGNhbGxiYWNrKQorewor
ICAgIHRlc3RQcmltaXRpdmVWYWx1ZSgidW5kZWZpbmVkIiwgY2FsbGJhY2spOworfQorCitmdW5j
dGlvbiB0ZXN0TnVsbChjYWxsYmFjaykKK3sKKyAgICB0ZXN0UHJpbWl0aXZlVmFsdWUoIm51bGwi
LCBjYWxsYmFjayk7Cit9CisKK2Z1bmN0aW9uIHRlc3RCb29sZWFuKGNhbGxiYWNrKQoreworICAg
IGRlYnVnKCJUZXN0aW5nIGJvb2xlYW4gcHJpbWl0aXZlcyIpOworICAgIGRlYnVnKCIiKTsKKyAg
ICBmb3JFYWNoV2l0aENhbGxiYWNrKHRlc3RQcmltaXRpdmVWYWx1ZSwgWyJ0cnVlIiwgImZhbHNl
Il0sIGNhbGxiYWNrKTsKK30KKworZnVuY3Rpb24gdGVzdEJvb2xlYW5PYmplY3QoY2FsbGJhY2sp
Cit7CisgICAgZGVidWcoIlRlc3RpbmcgQm9vbGVhbiBvYmplY3RzIik7CisgICAgZGVidWcoIiIp
OworICAgIGZvckVhY2hXaXRoQ2FsbGJhY2sodGVzdE9iamVjdFdpdGhWYWx1ZSwgWworICAgICAg
ICAibmV3IEJvb2xlYW4odHJ1ZSkiLAorICAgICAgICAibmV3IEJvb2xlYW4oZmFsc2UpIgorICAg
IF0sIGNhbGxiYWNrKTsKK30KKworZnVuY3Rpb24gdGVzdFN0cmluZyhjYWxsYmFjaykKK3sKKyAg
ICBkZWJ1ZygiVGVzdGluZyBzdHJpbmcgcHJpbWl0aXZlcyIpOworICAgIGRlYnVnKCIiKTsKKyAg
ICBmb3JFYWNoV2l0aENhbGxiYWNrKHRlc3RQcmltaXRpdmVWYWx1ZSwgWworICAgICAgICAiJyci
LAorICAgICAgICAiJ3RoaXMgaXMgYSBzYW1wbGUgc3RyaW5nJyIsCisgICAgICAgICInbnVsbChc
XDApJyIKKyAgICBdLCBjYWxsYmFjayk7Cit9CisKK2Z1bmN0aW9uIHRlc3RTdHJpbmdPYmplY3Qo
Y2FsbGJhY2spCit7CisgICAgZGVidWcoIlRlc3RpbmcgU3RyaW5nIG9iamVjdHMiKTsKKyAgICBk
ZWJ1ZygiIik7CisgICAgZm9yRWFjaFdpdGhDYWxsYmFjayh0ZXN0T2JqZWN0V2l0aFZhbHVlLCBb
CisgICAgICAgICJuZXcgU3RyaW5nKCkiLAorICAgICAgICAibmV3IFN0cmluZygndGhpcyBpcyBh
IHNhbXBsZSBzdHJpbmcnKSIsCisgICAgICAgICJuZXcgU3RyaW5nKCdudWxsKFxcMCknKSIKKyAg
ICBdLCBjYWxsYmFjayk7Cit9CisKK2Z1bmN0aW9uIHRlc3ROdW1iZXIoY2FsbGJhY2spCit7Cisg
ICAgZGVidWcoIlRlc3RpbmcgbnVtYmVyIHByaW1pdGl2ZXMiKTsKKyAgICBkZWJ1ZygiIik7Cisg
ICAgZm9yRWFjaFdpdGhDYWxsYmFjayh0ZXN0UHJpbWl0aXZlVmFsdWUsIFsKKyAgICAgICAgIk5h
TiIsCisgICAgICAgICItSW5maW5pdHkiLAorICAgICAgICAiLU51bWJlci5NQVhfVkFMVUUiLAor
ICAgICAgICAiLU51bWJlci5NSU5fVkFMVUUiLAorICAgICAgICAiLTAiLAorICAgICAgICAiMCIs
CisgICAgICAgICJOdW1iZXIuTUlOX1ZBTFVFIiwKKyAgICAgICAgIk51bWJlci5NQVhfVkFMVUUi
LAorICAgICAgICAiSW5maW5pdHkiCisgICAgXSwgY2FsbGJhY2spOworfQorCitmdW5jdGlvbiB0
ZXN0TnVtYmVyT2JqZWN0KGNhbGxiYWNrKQoreworICAgIGRlYnVnKCJUZXN0aW5nIE51bWJlciBv
YmplY3RzIik7CisgICAgZGVidWcoIiIpOworICAgIGZvckVhY2hXaXRoQ2FsbGJhY2sodGVzdE9i
amVjdFdpdGhWYWx1ZSwgWworICAgICAgICAibmV3IE51bWJlcihOYU4pIiwKKyAgICAgICAgIm5l
dyBOdW1iZXIoLUluZmluaXR5KSIsCisgICAgICAgICJuZXcgTnVtYmVyKC1OdW1iZXIuTUFYX1ZB
TFVFKSIsCisgICAgICAgICJuZXcgTnVtYmVyKC1OdW1iZXIuTUlOX1ZBTFVFKSIsCisgICAgICAg
ICJuZXcgTnVtYmVyKC0wKSIsCisgICAgICAgICJuZXcgTnVtYmVyKDApIiwKKyAgICAgICAgIm5l
dyBOdW1iZXIoTnVtYmVyLk1JTl9WQUxVRSkiLAorICAgICAgICAibmV3IE51bWJlcihOdW1iZXIu
TUFYX1ZBTFVFKSIsCisgICAgICAgICJuZXcgTnVtYmVyKEluZmluaXR5KSIKKyAgICBdLCBjYWxs
YmFjayk7Cit9CisKK2Z1bmN0aW9uIHRlc3REYXRlT2JqZWN0KGNhbGxiYWNrKQoreworICAgIGRl
YnVnKCJUZXN0aW5nIERhdGUgb2JqZWN0cyIpOworICAgIGRlYnVnKCIiKTsKKyAgICBmb3JFYWNo
V2l0aENhbGxiYWNrKHRlc3RPYmplY3RXaXRoVmFsdWUsIFsKKyAgICAgICAgIm5ldyBEYXRlKC0x
ZTEzKSIsCisgICAgICAgICJuZXcgRGF0ZSgtMWUxMikiLAorICAgICAgICAibmV3IERhdGUoLTFl
OSkiLAorICAgICAgICAibmV3IERhdGUoLTFlNikiLAorICAgICAgICAibmV3IERhdGUoLTFlMyki
LAorICAgICAgICAibmV3IERhdGUoMCkiLAorICAgICAgICAibmV3IERhdGUoMWUzKSIsCisgICAg
ICAgICJuZXcgRGF0ZSgxZTYpIiwKKyAgICAgICAgIm5ldyBEYXRlKDFlOSkiLAorICAgICAgICAi
bmV3IERhdGUoMWUxMikiLAorICAgICAgICAibmV3IERhdGUoMWUxMykiCisgICAgXSwgY2FsbGJh
Y2spOworfQorCitmdW5jdGlvbiB0ZXN0UmVnRXhwT2JqZWN0KGNhbGxiYWNrKQoreworICAgIGRl
YnVnKCJUZXN0aW5nIFJlZ0V4cCBvYmplY3RzIik7CisgICAgZGVidWcoIiIpOworICAgIGZ1bmN0
aW9uIHRlc3RSZWdFeHAoc3RyaW5nLCBjYWxsYmFjaykgeworICAgICAgICBkZWJ1ZygiVGVzdGlu
ZyBSZWdFeHA6ICIgKyBzdHJpbmcpOworICAgICAgICB2YXIgdmFsdWUgPSBldmFsKCJ2YWx1ZSA9
ICgiICsgc3RyaW5nICsgIikiKTsKKyAgICAgICAgdGVzdF9kYXRhID0gdmFsdWU7CisgICAgICAg
IHRlc3RWYWx1ZSh0ZXN0X2RhdGEsIGZ1bmN0aW9uKHJlc3VsdCkgeworICAgICAgICAgICAgd2lu
ZG93LnJlc3VsdCA9IHJlc3VsdDsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgidGVzdF9kYXRh
ICE9PSByZXN1bHQiKTsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiT2JqZWN0
LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHJlc3VsdCkiLCAiW29iamVjdCBSZWdFeHBdIik7Cisg
ICAgICAgICAgICBzaG91bGRCZSgicmVzdWx0LnRvU3RyaW5nKCkiLCAidGVzdF9kYXRhLnRvU3Ry
aW5nKCkiKTsKKyAgICAgICAgICAgIGRlYnVnKCIiKTsKKyAgICAgICAgICAgIGNhbGxiYWNrKCk7
CisgICAgICAgIH0pOworICAgIH0KKworICAgIGZvckVhY2hXaXRoQ2FsbGJhY2sodGVzdFJlZ0V4
cCwgWworICAgICAgICAibmV3IFJlZ0V4cCgpIiwKKyAgICAgICAgIi9hYmMvIiwKKyAgICAgICAg
Ii9hYmMvZyIsCisgICAgICAgICIvYWJjL2kiLAorICAgICAgICAiL2FiYy9naSIsCisgICAgICAg
ICIvYWJjL20iLAorICAgICAgICAiL2FiYy9tZyIsCisgICAgICAgICIvYWJjL21pIiwKKyAgICAg
ICAgIi9hYmMvbWdpIgorICAgIF0sIGNhbGxiYWNrKTsKK30KKworZnVuY3Rpb24gdGVzdEltYWdl
RGF0YShjYWxsYmFjaykKK3sKKyAgICBkZWJ1ZygiVGVzdGluZyBJbWFnZURhdGEiKTsKKyAgICBl
dmFsQW5kTG9nKCJjYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKSIpOwor
ICAgIGV2YWxBbmRMb2coImNhbnZhcy53aWR0aCA9IDgiKTsKKyAgICBldmFsQW5kTG9nKCJjYW52
YXMuaGVpZ2h0ID0gOCIpOworICAgIGV2YWxBbmRMb2coInRlc3RfZGF0YSA9IGNhbnZhcy5nZXRD
b250ZXh0KCcyZCcpLmdldEltYWdlRGF0YSgwLCAwLCA4LCA4KSIpOworCisgICAgZm9yICh2YXIg
aSA9IDA7IGkgPCAyNTY7ICsraSkgeworICAgICAgICB0ZXN0X2RhdGEuZGF0YVtpXSA9IGk7Cisg
ICAgfQorCisgICAgdGVzdFZhbHVlKHRlc3RfZGF0YSwgZnVuY3Rpb24ocmVzdWx0KSB7CisgICAg
ICAgIHdpbmRvdy5yZXN1bHQgPSByZXN1bHQ7CisgICAgICAgIHNob3VsZEJlVHJ1ZSgidGVzdF9k
YXRhICE9PSByZXN1bHQiKTsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJPYmplY3Qu
cHJvdG90eXBlLnRvU3RyaW5nLmNhbGwocmVzdWx0KSIsICJbb2JqZWN0IEltYWdlRGF0YV0iKTsK
KyAgICAgICAgc2hvdWxkQmUoInJlc3VsdC53aWR0aCIsICJ0ZXN0X2RhdGEud2lkdGgiKTsKKyAg
ICAgICAgc2hvdWxkQmUoInJlc3VsdC5oZWlnaHQiLCAidGVzdF9kYXRhLmhlaWdodCIpOworICAg
ICAgICBzaG91bGRCZSgicmVzdWx0LmRhdGEubGVuZ3RoIiwgInRlc3RfZGF0YS5kYXRhLmxlbmd0
aCIpOworICAgICAgICBpZiAoYXJyYXlDb21wYXJlKHRlc3RfZGF0YS5kYXRhLCByZXN1bHQuZGF0
YSkpIHsKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoInJlc3VsdCBkYXRhIG1hdGNoZXMiKTsKKyAg
ICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoInJlc3VsdCBkYXRhIGRvZXNu
J3QgbWF0Y2giKTsKKyAgICAgICAgfQorICAgICAgICBjYWxsYmFjaygpOworICAgIH0pOworfQor
CitmdW5jdGlvbiByZWFkQmxvYkFzVGV4dChibG9iLCBjYWxsYmFjaykKK3sKKyAgICB2YXIgcmVh
ZGVyID0gbmV3IEZpbGVSZWFkZXIoKTsKKyAgICByZWFkZXIub25sb2FkID0gZnVuY3Rpb24oZSkg
eworICAgICAgICBpZiAoZS50YXJnZXQucmVhZHlTdGF0ZSA9PT0gRmlsZVJlYWRlci5ET05FKSB7
CisgICAgICAgICAgICBjYWxsYmFjayhlLnRhcmdldC5yZXN1bHQpOworICAgICAgICB9CisgICAg
fTsKKyAgICByZWFkZXIub25lcnJvciA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgdGVzdEZhaWxl
ZCgiRXJyb3IgcmVhZGluZyBibG9iIGFzIHRleHQ6ICIgKyBlKTsKKyAgICAgICAgZG9uZSgpOwor
ICAgIH07CisgICAgcmVhZGVyLnJlYWRBc1RleHQoYmxvYik7Cit9CisKK2Z1bmN0aW9uIGNoZWNr
QmxvYkNvbnRlbnRzKGJsb2IsIGV4cGVjdGVkLCBjYWxsYmFjaykKK3sKKyAgICByZWFkQmxvYkFz
VGV4dChibG9iLCBmdW5jdGlvbih0ZXh0KSB7CisgICAgICAgIHdpbmRvdy50ZXh0ID0gdGV4dDsK
KyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ0ZXh0IiwgZXhwZWN0ZWQpOworICAgICAg
ICBjYWxsYmFjaygpOworICAgIH0pOworfQorCitmdW5jdGlvbiBjb21wYXJlQmxvYnMoYmxvYjEs
IGJsb2IyLCBjYWxsYmFjaykKK3sKKyAgICByZWFkQmxvYkFzVGV4dChibG9iMSwgZnVuY3Rpb24o
dGV4dDEpIHsKKyAgICAgICAgcmVhZEJsb2JBc1RleHQoYmxvYjIsIGZ1bmN0aW9uKHRleHQyKSB7
CisgICAgICAgICAgICB3aW5kb3cudGV4dDEgPSB0ZXh0MTsKKyAgICAgICAgICAgIHdpbmRvdy50
ZXh0MiA9IHRleHQyOworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ0ZXh0MiIs
IHRleHQxKTsKKyAgICAgICAgICAgIGNhbGxiYWNrKCk7CisgICAgICAgIH0pOworICAgIH0pOwor
fQorCitmdW5jdGlvbiB0ZXN0QmxvYihjYWxsYmFjaykKK3sKKyAgICBkZWJ1ZygiVGVzdGluZyBC
bG9iIik7CisKKyAgICAvLyBGSVhNRTogQmxvYiwgRmlsZSwgYW5kIEZpbGVMaXN0IHN1cHBvcnQg
aXMgaW5jb21wbGV0ZS4KKyAgICAvLyBodHRwOi8vY3JidWcuY29tLzEwODAxMgorICAgIGRlYnVn
KCJTa2lwcGluZyB0ZXN0Iik7CisgICAgY2FsbGJhY2soKTsKKyAgICByZXR1cm47CisKKyAgICBl
dmFsQW5kTG9nKCJCbG9iQnVpbGRlciA9IHdpbmRvdy5CbG9iQnVpbGRlciB8fCB3aW5kb3cuV2Vi
S2l0QmxvYkJ1aWxkZXIiKTsKKyAgICBzaG91bGRCZVRydWUoIkJsb2JCdWlsZGVyICE9IG51bGwi
KTsKKyAgICBzaG91bGRCZVRydWUoIkZpbGVSZWFkZXIgIT0gbnVsbCIpOworICAgIGV2YWxBbmRM
b2coImJ1aWxkZXIgPSBuZXcgQmxvYkJ1aWxkZXIoKSIpOworICAgIGV2YWxBbmRMb2coInRlc3Rf
Y29udGVudCA9ICdUaGlzIGlzIGEgdGVzdC4gVGhpcyBpcyBvbmx5IGEgdGVzdC4nIik7CisgICAg
ZXZhbEFuZExvZygiYnVpbGRlci5hcHBlbmQodGVzdF9jb250ZW50KSIpOworICAgIGV2YWxBbmRM
b2coInRlc3RfZGF0YSA9IGJ1aWxkZXIuZ2V0QmxvYigpIik7CisgICAgdGVzdFZhbHVlKHRlc3Rf
ZGF0YSwgZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgICAgIHdpbmRvdy5yZXN1bHQgPSByZXN1bHQ7
CisgICAgICAgIHNob3VsZEJlVHJ1ZSgidGVzdF9kYXRhICE9PSByZXN1bHQiKTsKKyAgICAgICAg
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwocmVz
dWx0KSIsICJbb2JqZWN0IEJsb2JdIik7CisgICAgICAgIHNob3VsZEJlKCJyZXN1bHQuc2l6ZSIs
ICJ0ZXN0X2RhdGEuc2l6ZSIpOworICAgICAgICBzaG91bGRCZSgicmVzdWx0LnR5cGUiLCAidGVz
dF9kYXRhLnR5cGUiKTsKKyAgICAgICAgY2hlY2tCbG9iQ29udGVudHMocmVzdWx0LCB0ZXN0X2Nv
bnRlbnQsIGNhbGxiYWNrKTsKKyAgICB9KTsKK30KKworZnVuY3Rpb24gY29tcGFyZUZpbGVzKGZp
bGUxLCBmaWxlMiwgY2FsbGJhY2spCit7CisgICAgd2luZG93LmZpbGUxID0gZmlsZTE7CisgICAg
d2luZG93LmZpbGUyID0gZmlsZTI7CisgICAgc2hvdWxkQmVUcnVlKCJmaWxlMSAhPT0gZmlsZTIi
KTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIk9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcu
Y2FsbChmaWxlMSkiLCAiW29iamVjdCBGaWxlXSIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmlu
ZygiT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGZpbGUyKSIsICJbb2JqZWN0IEZpbGVd
Iik7CisgICAgZGVidWcoImZpbGUxLnNpemU6ICIgKyBmaWxlMS5zaXplKTsKKyAgICBzaG91bGRC
ZSgiZmlsZTEuc2l6ZSIsICJmaWxlMi5zaXplIik7CisgICAgZGVidWcoImZpbGUxLnR5cGU6ICIg
KyBmaWxlMS50eXBlKTsKKyAgICBzaG91bGRCZSgiZmlsZTEudHlwZSIsICJmaWxlMi50eXBlIik7
CisgICAgZGVidWcoImZpbGUxLm5hbWU6ICIgKyBmaWxlMS5uYW1lKTsKKyAgICBzaG91bGRCZSgi
ZmlsZTEubmFtZSIsICJmaWxlMi5uYW1lIik7CisgICAgc2hvdWxkQmUoIlN0cmluZyhmaWxlMS5s
YXN0TW9kaWZpZWREYXRlKSIsICJTdHJpbmcoZmlsZTIubGFzdE1vZGlmaWVkRGF0ZSkiKTsKKyAg
ICBpZiAoY2FsbGJhY2spIHsKKyAgICAgICAgY29tcGFyZUJsb2JzKGZpbGUxLCBmaWxlMiwgY2Fs
bGJhY2spOworICAgIH0KK30KKworZnVuY3Rpb24gdGVzdEZpbGUoY2FsbGJhY2spCit7CisgICAg
ZGVidWcoIlRlc3RpbmcgRmlsZSIpOworCisgICAgLy8gRklYTUU6IEJsb2IsIEZpbGUsIGFuZCBG
aWxlTGlzdCBzdXBwb3J0IGlzIGluY29tcGxldGUuCisgICAgLy8gaHR0cDovL2NyYnVnLmNvbS8x
MDgwMTIKKyAgICBkZWJ1ZygiU2tpcHBpbmcgdGVzdCIpOworICAgIGNhbGxiYWNrKCk7CisgICAg
cmV0dXJuOworCisgICAgZXZhbEFuZExvZygidGVzdF9jb250ZW50ID0gZmlsZUlucHV0LmZpbGVz
WzBdIik7CisKKyAgICB3aW5kb3cudGVzdF9kYXRhID0gdGVzdF9jb250ZW50OworICAgIHRlc3RW
YWx1ZSh0ZXN0X2RhdGEsIGZ1bmN0aW9uKHJlc3VsdCkgeworICAgICAgICB3aW5kb3cucmVzdWx0
ID0gcmVzdWx0OworICAgICAgICBjb21wYXJlRmlsZXMocmVzdWx0LCB0ZXN0X2RhdGEsIGNhbGxi
YWNrKTsKKyAgICB9KTsKK30KKworCitmdW5jdGlvbiB0ZXN0RmlsZUxpc3QoY2FsbGJhY2spCit7
CisgICAgZGVidWcoIlRlc3RpbmcgRmlsZUxpc3QiKTsKKworICAgIC8vIEZJWE1FOiBCbG9iLCBG
aWxlLCBhbmQgRmlsZUxpc3Qgc3VwcG9ydCBpcyBpbmNvbXBsZXRlLgorICAgIC8vIGh0dHA6Ly9j
cmJ1Zy5jb20vMTA4MDEyCisgICAgZGVidWcoIlNraXBwaW5nIHRlc3QiKTsKKyAgICBjYWxsYmFj
aygpOworICAgIHJldHVybjsKKworICAgIGV2YWxBbmRMb2coInRlc3RfY29udGVudCA9IGZpbGVJ
bnB1dC5maWxlcyIpOworCisgICAgd2luZG93LnRlc3RfZGF0YSA9IHRlc3RfY29udGVudDsKKyAg
ICB0ZXN0VmFsdWUodGVzdF9kYXRhLCBmdW5jdGlvbihyZXN1bHQpIHsKKyAgICAgICAgd2luZG93
LnJlc3VsdCA9IHJlc3VsdDsKKyAgICAgICAgc2hvdWxkQmVUcnVlKCJ0ZXN0X2RhdGEgIT09IHJl
c3VsdCIpOworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIk9iamVjdC5wcm90b3R5cGUu
dG9TdHJpbmcuY2FsbChyZXN1bHQpIiwgIltvYmplY3QgRmlsZUxpc3RdIik7CisgICAgICAgIHNo
b3VsZEJlKCJyZXN1bHQubGVuZ3RoIiwgInRlc3RfZGF0YS5sZW5ndGgiKTsKKyAgICAgICAgaSA9
IDA7CisgICAgICAgIGZ1bmN0aW9uIGRvTmV4dCgpIHsKKyAgICAgICAgICAgIGlmIChpID49IHRl
c3RfZGF0YS5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICBjYWxsYmFjaygpOworICAgICAgICAg
ICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBkZWJ1ZygiY29tcGFyaW5nIGZpbGVbIiArIGkg
KyAiXSIpOworICAgICAgICAgICAgICAgIGNvbXBhcmVGaWxlcyhyZXN1bHRbaV0sIHRlc3RfZGF0
YVtpKytdLCBkb05leHQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGRvTmV4
dCgpOworICAgIH0pOworfQorCitmdW5jdGlvbiB0ZXN0QXJyYXkoY2FsbGJhY2spIHsKKyAgICBk
ZWJ1ZygiVGVzdGluZyBBcnJheSIpOworICAgIGV2YWxBbmRMb2coInRlc3RfZGF0YSA9IFtdIik7
CisgICAgZXZhbEFuZExvZygidGVzdF9kYXRhWzBdID0gJ2ZvbyciKTsKKyAgICBldmFsQW5kTG9n
KCJ0ZXN0X2RhdGFbMV0gPSAnYmFyJyIpOworICAgIGV2YWxBbmRMb2coInRlc3RfZGF0YVsxMF0g
PSB0cnVlIik7CisgICAgZXZhbEFuZExvZygidGVzdF9kYXRhWzExXSA9IGZhbHNlIik7CisgICAg
ZXZhbEFuZExvZygidGVzdF9kYXRhWzIwXSA9IDEyMyIpOworICAgIGV2YWxBbmRMb2coInRlc3Rf
ZGF0YVsyMV0gPSA0NTYiKTsKKyAgICBldmFsQW5kTG9nKCJ0ZXN0X2RhdGFbMzBdID0gbnVsbCIp
OworCisgICAgdGVzdFZhbHVlKHRlc3RfZGF0YSwgZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgICAg
IHdpbmRvdy5yZXN1bHQgPSByZXN1bHQ7CisgICAgICAgIHNob3VsZEJlVHJ1ZSgidGVzdF9kYXRh
ICE9PSByZXN1bHQiKTsKKyAgICAgICAgc2hvdWxkQmVUcnVlKCJ0ZXN0X2RhdGEubGVuZ3RoID09
PSByZXN1bHQubGVuZ3RoIik7CisgICAgICAgIE9iamVjdC5rZXlzKHRlc3RfZGF0YSkuZm9yRWFj
aCgKKyAgICAgICAgICAgIGZ1bmN0aW9uKGtleSkgeworICAgICAgICAgICAgICAgIHNob3VsZEJl
KCJ0ZXN0X2RhdGFbIiArIGtleSArICJdIiwgInJlc3VsdFsiICsga2V5ICsgIl0iKTsKKyAgICAg
ICAgICAgIH0pOworICAgICAgICBjYWxsYmFjaygpOworICAgIH0pOworfQorCitmdW5jdGlvbiB0
ZXN0T2JqZWN0KGNhbGxiYWNrKSB7CisgICAgZGVidWcoIlRlc3RpbmcgT2JqZWN0Iik7CisgICAg
ZXZhbEFuZExvZygidGVzdF9kYXRhID0gW10iKTsKKyAgICBldmFsQW5kTG9nKCJ0ZXN0X2RhdGFb
MF0gPSAnZm9vJyIpOworICAgIGV2YWxBbmRMb2coInRlc3RfZGF0YVsxXSA9ICdiYXInIik7Cisg
ICAgZXZhbEFuZExvZygidGVzdF9kYXRhWydhJ10gPSB0cnVlIik7CisgICAgZXZhbEFuZExvZygi
dGVzdF9kYXRhWydiJ10gPSBmYWxzZSIpOworICAgIGV2YWxBbmRMb2coInRlc3RfZGF0YVsnZm9v
J10gPSAxMjMiKTsKKyAgICBldmFsQW5kTG9nKCJ0ZXN0X2RhdGFbJ2JhciddID0gNDU2Iik7Cisg
ICAgZXZhbEFuZExvZygidGVzdF9kYXRhWycnXSA9IG51bGwiKTsKKworICAgIHRlc3RWYWx1ZSh0
ZXN0X2RhdGEsIGZ1bmN0aW9uKHJlc3VsdCkgeworICAgICAgICB3aW5kb3cucmVzdWx0ID0gcmVz
dWx0OworICAgICAgICBzaG91bGRCZVRydWUoInRlc3RfZGF0YSAhPT0gcmVzdWx0Iik7CisgICAg
ICAgIHNob3VsZEJlVHJ1ZSgiYXJyYXlDb21wYXJlKE9iamVjdC5rZXlzKHJlc3VsdCkuc29ydCgp
LCBPYmplY3Qua2V5cyh0ZXN0X2RhdGEpLnNvcnQoKSkiKTsKKyAgICAgICAgT2JqZWN0LmtleXMo
dGVzdF9kYXRhKS5mb3JFYWNoKAorICAgICAgICAgICAgZnVuY3Rpb24oa2V5KSB7CisgICAgICAg
ICAgICAgICAgc2hvdWxkQmUoInRlc3RfZGF0YVsiICsgSlNPTi5zdHJpbmdpZnkoa2V5KSArICJd
IiwgInJlc3VsdFsiICsgSlNPTi5zdHJpbmdpZnkoa2V5KSArICJdIik7CisgICAgICAgICAgICB9
KTsKKyAgICAgICAgY2FsbGJhY2soKTsKKyAgICB9KTsKK30KKworZnVuY3Rpb24gdGVzdEJhZFR5
cGVzKCkKK3sKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoIlRlc3QgdHlwZXMgdGhhdCBjYW4n
dCBiZSBjbG9uZWQ6Iik7CisgICAgZGVidWcoIiIpOworCisgICAgZXZhbEFuZExvZygidHJhbnNh
Y3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1lJywgSURCVHJhbnNhY3Rpb24uUkVBRF9X
UklURSkiKTsKKyAgICBldmFsQW5kTG9nKCJzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3Jl
KCdzdG9yZU5hbWUnKSIpOworICAgIHRyYW5zYWN0aW9uLm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJy
b3JDYWxsYmFjazsKKyAgICB0cmFuc2FjdGlvbi5vbmNvbXBsZXRlID0gdW5leHBlY3RlZENvbXBs
ZXRlQ2FsbGJhY2s7CisgICAgdHJhbnNhY3Rpb24ub25hYm9ydCA9IGRvbmU7CisKKyAgICBkZWJ1
ZygiIik7CisgICAgZGVidWcoIk90aGVyIEphdmFTY3JpcHQgb2JqZWN0IHR5cGVzOiIpOworICAg
IGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oInN0b3JlLnB1dChuZXcgRXJyb3IsICdrZXknKSIsICJE
T01FeGNlcHRpb24uREFUQV9DTE9ORV9FUlIiKTsKKyAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9u
KCJzdG9yZS5wdXQobmV3IEZ1bmN0aW9uLCAna2V5JykiLCAiRE9NRXhjZXB0aW9uLkRBVEFfQ0xP
TkVfRVJSIik7CisKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoIk90aGVyIGhvc3Qgb2JqZWN0
IHR5cGVzOiIpOworICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oInN0b3JlLnB1dCh3aW5kb3cs
ICdrZXknKSIsICJET01FeGNlcHRpb24uREFUQV9DTE9ORV9FUlIiKTsKKyAgICBldmFsQW5kRXhw
ZWN0RXhjZXB0aW9uKCJzdG9yZS5wdXQoZG9jdW1lbnQsICdrZXknKSIsICJET01FeGNlcHRpb24u
REFUQV9DTE9ORV9FUlIiKTsKKyAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJzdG9yZS5wdXQo
ZG9jdW1lbnQuYm9keSwgJ2tleScpIiwgIkRPTUV4Y2VwdGlvbi5EQVRBX0NMT05FX0VSUiIpOwor
fQorCit0ZXN0KCk7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>124579</attachid>
            <date>2012-01-30 12:09:25 -0800</date>
            <delta_ts>2012-01-30 13:07:42 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-74897-20120130120924.patch</filename>
            <type>text/plain</type>
            <size>45147</size>
            <attacher name="Joshua Bell">jsbell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA2MjczCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNGFkODZhZGIzNGMwODYyMWUyYmRl
NTAzYzlhZTA1NjEzYWRmNDBiOS4uZjZiMDFkMWFlYzlmNjk2ODk1ZjllNTNiYmVlNzU5NTVhZDYw
ZGYwYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDEyLTAxLTMwICBKb3NodWEgQmVsbCAgPGpz
YmVsbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhlZERCOiBBZGQgdGVzdHMgZm9yIHN0
cnVjdHVyZWQgY2xvbmUgZGF0YQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NzQ4OTcKKworICAgICAgICBWYWxpZGF0ZSB0aGF0IHRoZSB0eXBlcyBsaXN0
ZWQgaW4gdGhlIEhUTUw1ICJzdHJ1Y3R1cmVkIGNsb25lIGFsZ29yaXRobSIKKyAgICAgICAgcm91
bmQgdHJpcCBwcm9wZXJseSB0aHJvdWdoIEluZGV4ZWQgREIgc3RvcmFnZS4gVHlwZXMgd2l0aCBp
bmNvbXBsZXRlCisgICAgICAgIHN1cHBvcnQgaW4gdGhlIENocm9taXVtIHBvcnQgYXJlIGV4Y2x1
ZGVkIChodHRwOi8vY3JidWcuY29tLzEwODAxMikuCisgICAgICAgIExhbmRpbmcgZGlzYWJsZWQg
c2luY2UgY3ItbGludXggaXMgZmFpbGluZyB0ZXN0IGZvciB1bmtub3duIHJlYXNvbnMuCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgVG9ueSBDaGFuZy4KKworICAgICAgICAqIHBsYXRmb3JtL2Nocm9t
aXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9y
ZXNvdXJjZXMvdGVzdC1kYXRhLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhl
ZGRiL3Jlc291cmNlcy90ZXN0LWRhdGEudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2lu
ZGV4ZWRkYi9zdHJ1Y3R1cmVkLWNsb25lLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
c3RvcmFnZS9pbmRleGVkZGIvc3RydWN0dXJlZC1jbG9uZS5odG1sOiBBZGRlZC4KKwogMjAxMi0w
MS0zMCAgR3JlZyBCaWxsb2NrICA8Z2JpbGxvY2tAZ29vZ2xlLmNvbT4KIAogICAgICAgICBFbmFi
bGUgd2ViIGludGVudHMgbGF5b3V0IHRlc3RzIGZvciBDaHJvbWl1bSBidWlsZC4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dCBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dAppbmRl
eCA1NzMwN2RhYzA2NDhiMjU5MGVjOTExYjkwMjY5MjJkM2IwNWFhM2ExLi5kZTRhZjZjZjFjY2Fj
ZDAzODVjODJjYzFhMzIyZDY1YmE4Yjg1Y2YyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CkBAIC00MDM1LDMgKzQwMzUsNSBA
QCBCVUdXSzc3MzEwIDogZmFzdC9qcy9uYXZpZ2F0b3ItbGFuZ3VhZ2UuaHRtbCA9IFBBU1MgVEVY
VAogQlVHV0s3NzMxNCBXSU4gTUFDIDogZmFzdC9ldmVudHMvdG91Y2gvc2VuZC1vbmNhbmNlbC1l
dmVudC5odG1sID0gUEFTUyBURVhUCiBCVUdXSzc3MzE1IFdJTiBNQUMgOiBmYXN0L2V2ZW50cy90
b3VjaC90b3VjaC1nZXN0dXJlLXNjcm9sbC5odG1sID0gUEFTUyBURVhUCiBCVUdXSzc3MzI0IFdJ
TiBNQUMgREVCVUcgU0xPVyA6IGZhc3QvanMvZGZnLWludDMyYXJyYXkuaHRtbCA9IFBBU1MKKwor
QlVHV0s3NzIzOSA6IHN0b3JhZ2UvaW5kZXhlZGRiL3N0cnVjdHVyZWQtY2xvbmUuaHRtbCA9IFBB
U1MgVEVYVApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3Vy
Y2VzL3Rlc3QtZGF0YS5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3Vy
Y2VzL3Rlc3QtZGF0YS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc1YmRiMjhhZDU5MmFlMmZhZjhjN2E5M2M3
M2NlMDJiY2YyMGZkMDIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9yZXNvdXJjZXMvdGVzdC1kYXRhLmh0bWwKQEAgLTAsMCArMSw0IEBACis8IURPQ1RZ
UEUgaHRtbD4KKzx0aXRsZT5UaGlzIGlzIHNvbWUgdGVzdCBkYXRhPC90aXRsZT4KKzxoMT5UZXN0
IGRhdGEhPC9oMT4KKzxwPkdldCB5b3VyIHRlc3QgZGF0YSBoZXJlIQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL3Rlc3QtZGF0YS50eHQgYi9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvdGVzdC1kYXRhLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5kZWUzYTJkM2M3ZTZhMTc2ZmFjYTdlNTA4NzU4NjJkNDFiN2QzZWNlCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL3Rlc3QtZGF0
YS50eHQKQEAgLTAsMCArMSBAQAorTG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3Rl
dHVyIGFkaXBpc2NpbmcgZWxpdC4gQWVuZWFuIGxhb3JlZXQgZG9sb3IgaWQgdXJuYSBlbGVpZmVu
ZCBhbGlxdWV0LiBOdWxsYSB2ZWwgZG9sb3IgaXBzdW0uIEFsaXF1YW0gdXQgdHVycGlzIG5pc2ws
IGluIHZ1bHB1dGF0ZSBzYXBpZW4uIEN1bSBzb2NpaXMgbmF0b3F1ZSBwZW5hdGlidXMgZXQgbWFn
bmlzIGRpcyBwYXJ0dXJpZW50IG1vbnRlcywgbmFzY2V0dXIgcmlkaWN1bHVzIG11cy4gU2VkIGNv
bmd1ZSBtYWduYSB2aXRhZSBkb2xvciBmZXVnaWF0IHZlaGljdWxhLiBTZWQgdm9sdXRwYXQsIHRl
bGx1cyB2ZWwgdmFyaXVzIHZlc3RpYnVsdW0sIHB1cnVzIHF1YW0gbW9sbGlzIHNhcGllbiwgaW4g
Y29uZGltZW50dW0gbGVvIG5lcXVlIHNlZCBudWxsYS4gTnVuYyBxdWlzIHBvcnRhIGVsaXQuIFBl
bGxlbnRlc3F1ZSBlcmF0IGxlY3R1cywgdWx0cmljaWVzIGEgbG9ib3J0aXMgaWQsIGZhdWNpYnVz
IGlkIHF1YW0uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9zdHJ1
Y3R1cmVkLWNsb25lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L3N0cnVjdHVyZWQtY2xvbmUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjliMDM3NGE2MDdkNGNi
OWNhNTBkY2E1ZGE2YjVkZTgwYjgzZDAxMTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9zdHJ1Y3R1cmVkLWNsb25lLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDY5MiBAQAorCitUZXN0IHN0cnVjdHVyZWQgY2xvbmUgcGVybXV0YXRpb25zIGluIEluZGV4
ZWREQi4gRmlsZS9GaWxlTGlzdCB0ZXN0cyByZXF1aXJlIER1bXBSZW5kZXJUcmVlLgorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworaW5kZXhlZERCID0gd2luZG93LmluZGV4ZWREQiB8
fCB3aW5kb3cud2Via2l0SW5kZXhlZERCCitQQVNTIGluZGV4ZWREQiAhPSBudWxsIGlzIHRydWUK
K0lEQlRyYW5zYWN0aW9uID0gd2luZG93LklEQlRyYW5zYWN0aW9uIHx8IHdpbmRvdy53ZWJraXRJ
REJUcmFuc2FjdGlvbgorUEFTUyBJREJUcmFuc2FjdGlvbiAhPSBudWxsIGlzIHRydWUKKworUHJl
cGFyZSBEYXRhYmFzZQoraW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKCdzdHJ1Y3R1cmVkLWNsb25l
JykKK2luZGV4ZWREQi5vcGVuKCdzdHJ1Y3R1cmVkLWNsb25lJykKK2RiID0gcmVxdWVzdC5yZXN1
bHQKK1BBU1MgZGIudmVyc2lvbiBpcyAiIgorZGIuc2V0VmVyc2lvbignMScpCitkYi5jcmVhdGVP
YmplY3RTdG9yZSgnc3RvcmVOYW1lJykKKworUnVubmluZyB0ZXN0cy4uLgorCitUZXN0aW5nOiB1
bmRlZmluZWQKK3RyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24oJ3N0b3JlTmFtZScsIElEQlRy
YW5zYWN0aW9uLlJFQURfV1JJVEUpCitzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdz
dG9yZU5hbWUnKQordmFsdWUgaXM6IHVuZGVmaW5lZCAodHlwZTogdW5kZWZpbmVkKQorc3RvcmUu
cHV0KHZhbHVlLCAna2V5JykKK3N0b3JlLmdldCgna2V5JykKK1BBU1MgaXModGVzdF9kYXRhLCBy
ZXN1bHQpIGlzIHRydWUKKworCitUZXN0aW5nOiBudWxsCit0cmFuc2FjdGlvbiA9IGRiLnRyYW5z
YWN0aW9uKCdzdG9yZU5hbWUnLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0
cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmVOYW1lJykKK3ZhbHVlIGlzOiBudWxsICh0eXBl
OiBvYmplY3QpCitzdG9yZS5wdXQodmFsdWUsICdrZXknKQorc3RvcmUuZ2V0KCdrZXknKQorUEFT
UyBpcyh0ZXN0X2RhdGEsIHJlc3VsdCkgaXMgdHJ1ZQorCisKK1Rlc3RpbmcgYm9vbGVhbiBwcmlt
aXRpdmVzCisKK1Rlc3Rpbmc6IHRydWUKK3RyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24oJ3N0
b3JlTmFtZScsIElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUpCitzdG9yZSA9IHRyYW5zYWN0aW9u
Lm9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKQordmFsdWUgaXM6IHRydWUgKHR5cGU6IGJvb2xlYW4p
CitzdG9yZS5wdXQodmFsdWUsICdrZXknKQorc3RvcmUuZ2V0KCdrZXknKQorUEFTUyBpcyh0ZXN0
X2RhdGEsIHJlc3VsdCkgaXMgdHJ1ZQorCitUZXN0aW5nOiBmYWxzZQordHJhbnNhY3Rpb24gPSBk
Yi50cmFuc2FjdGlvbignc3RvcmVOYW1lJywgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkKK3N0
b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpCit2YWx1ZSBpczogZmFs
c2UgKHR5cGU6IGJvb2xlYW4pCitzdG9yZS5wdXQodmFsdWUsICdrZXknKQorc3RvcmUuZ2V0KCdr
ZXknKQorUEFTUyBpcyh0ZXN0X2RhdGEsIHJlc3VsdCkgaXMgdHJ1ZQorCisKK1Rlc3RpbmcgbnVt
YmVyIHByaW1pdGl2ZXMKKworVGVzdGluZzogTmFOCit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0
aW9uKCdzdG9yZU5hbWUnLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFu
c2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmVOYW1lJykKK3ZhbHVlIGlzOiBOYU4gKHR5cGU6IG51
bWJlcikKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5nZXQoJ2tleScpCitQQVNTIGlz
KHRlc3RfZGF0YSwgcmVzdWx0KSBpcyB0cnVlCisKK1Rlc3Rpbmc6IC1JbmZpbml0eQordHJhbnNh
Y3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1lJywgSURCVHJhbnNhY3Rpb24uUkVBRF9X
UklURSkKK3N0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpCit2YWx1
ZSBpczogLUluZmluaXR5ICh0eXBlOiBudW1iZXIpCitzdG9yZS5wdXQodmFsdWUsICdrZXknKQor
c3RvcmUuZ2V0KCdrZXknKQorUEFTUyBpcyh0ZXN0X2RhdGEsIHJlc3VsdCkgaXMgdHJ1ZQorCitU
ZXN0aW5nOiAtTnVtYmVyLk1BWF9WQUxVRQordHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbign
c3RvcmVOYW1lJywgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkKK3N0b3JlID0gdHJhbnNhY3Rp
b24ub2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpCit2YWx1ZSBpczogLTEuNzk3NjkzMTM0ODYyMzE1
N2UrMzA4ICh0eXBlOiBudW1iZXIpCitzdG9yZS5wdXQodmFsdWUsICdrZXknKQorc3RvcmUuZ2V0
KCdrZXknKQorUEFTUyBpcyh0ZXN0X2RhdGEsIHJlc3VsdCkgaXMgdHJ1ZQorCitUZXN0aW5nOiAt
TnVtYmVyLk1JTl9WQUxVRQordHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1l
JywgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkKK3N0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0
U3RvcmUoJ3N0b3JlTmFtZScpCit2YWx1ZSBpczogLTVlLTMyNCAodHlwZTogbnVtYmVyKQorc3Rv
cmUucHV0KHZhbHVlLCAna2V5JykKK3N0b3JlLmdldCgna2V5JykKK1BBU1MgaXModGVzdF9kYXRh
LCByZXN1bHQpIGlzIHRydWUKKworVGVzdGluZzogLTAKK3RyYW5zYWN0aW9uID0gZGIudHJhbnNh
Y3Rpb24oJ3N0b3JlTmFtZScsIElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUpCitzdG9yZSA9IHRy
YW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKQordmFsdWUgaXM6IDAgKHR5cGU6IG51
bWJlcikKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5nZXQoJ2tleScpCitQQVNTIGlz
KHRlc3RfZGF0YSwgcmVzdWx0KSBpcyB0cnVlCisKK1Rlc3Rpbmc6IDAKK3RyYW5zYWN0aW9uID0g
ZGIudHJhbnNhY3Rpb24oJ3N0b3JlTmFtZScsIElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUpCitz
dG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKQordmFsdWUgaXM6IDAg
KHR5cGU6IG51bWJlcikKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5nZXQoJ2tleScp
CitQQVNTIGlzKHRlc3RfZGF0YSwgcmVzdWx0KSBpcyB0cnVlCisKK1Rlc3Rpbmc6IE51bWJlci5N
SU5fVkFMVUUKK3RyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24oJ3N0b3JlTmFtZScsIElEQlRy
YW5zYWN0aW9uLlJFQURfV1JJVEUpCitzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdz
dG9yZU5hbWUnKQordmFsdWUgaXM6IDVlLTMyNCAodHlwZTogbnVtYmVyKQorc3RvcmUucHV0KHZh
bHVlLCAna2V5JykKK3N0b3JlLmdldCgna2V5JykKK1BBU1MgaXModGVzdF9kYXRhLCByZXN1bHQp
IGlzIHRydWUKKworVGVzdGluZzogTnVtYmVyLk1BWF9WQUxVRQordHJhbnNhY3Rpb24gPSBkYi50
cmFuc2FjdGlvbignc3RvcmVOYW1lJywgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkKK3N0b3Jl
ID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpCit2YWx1ZSBpczogMS43OTc2
OTMxMzQ4NjIzMTU3ZSszMDggKHR5cGU6IG51bWJlcikKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScp
CitzdG9yZS5nZXQoJ2tleScpCitQQVNTIGlzKHRlc3RfZGF0YSwgcmVzdWx0KSBpcyB0cnVlCisK
K1Rlc3Rpbmc6IEluZmluaXR5Cit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5h
bWUnLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmpl
Y3RTdG9yZSgnc3RvcmVOYW1lJykKK3ZhbHVlIGlzOiBJbmZpbml0eSAodHlwZTogbnVtYmVyKQor
c3RvcmUucHV0KHZhbHVlLCAna2V5JykKK3N0b3JlLmdldCgna2V5JykKK1BBU1MgaXModGVzdF9k
YXRhLCByZXN1bHQpIGlzIHRydWUKKworCitUZXN0aW5nIHN0cmluZyBwcmltaXRpdmVzCisKK1Rl
c3Rpbmc6ICcnCit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUnLCBJREJU
cmFuc2FjdGlvbi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgn
c3RvcmVOYW1lJykKK3ZhbHVlIGlzOiAgKHR5cGU6IHN0cmluZykKK3N0b3JlLnB1dCh2YWx1ZSwg
J2tleScpCitzdG9yZS5nZXQoJ2tleScpCitQQVNTIGlzKHRlc3RfZGF0YSwgcmVzdWx0KSBpcyB0
cnVlCisKK1Rlc3Rpbmc6ICd0aGlzIGlzIGEgc2FtcGxlIHN0cmluZycKK3RyYW5zYWN0aW9uID0g
ZGIudHJhbnNhY3Rpb24oJ3N0b3JlTmFtZScsIElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUpCitz
dG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKQordmFsdWUgaXM6IHRo
aXMgaXMgYSBzYW1wbGUgc3RyaW5nICh0eXBlOiBzdHJpbmcpCitzdG9yZS5wdXQodmFsdWUsICdr
ZXknKQorc3RvcmUuZ2V0KCdrZXknKQorUEFTUyBpcyh0ZXN0X2RhdGEsIHJlc3VsdCkgaXMgdHJ1
ZQorCitUZXN0aW5nOiAnbnVsbChcMCknCit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdz
dG9yZU5hbWUnLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFuc2FjdGlv
bi5vYmplY3RTdG9yZSgnc3RvcmVOYW1lJykKK3ZhbHVlIGlzOiBudWxsKCkgKHR5cGU6IHN0cmlu
ZykKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5nZXQoJ2tleScpCitQQVNTIGlzKHRl
c3RfZGF0YSwgcmVzdWx0KSBpcyB0cnVlCisKKworVGVzdGluZyBCb29sZWFuIG9iamVjdHMKKwor
VGVzdGluZzogbmV3IEJvb2xlYW4odHJ1ZSkKK3RyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24o
J3N0b3JlTmFtZScsIElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUpCitzdG9yZSA9IHRyYW5zYWN0
aW9uLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKQordmFsdWUgaXM6IHRydWUgKHR5cGU6IG9iamVj
dCkKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5nZXQoJ2tleScpCitTdHJpbmcocmVz
dWx0KTogdHJ1ZQorUEFTUyB0eXBlb2YgcmVzdWx0IGlzICJvYmplY3QiCitQQVNTIE9iamVjdC5w
cm90b3R5cGUudG9TdHJpbmcuY2FsbChyZXN1bHQpIGlzIE9iamVjdC5wcm90b3R5cGUudG9TdHJp
bmcuY2FsbCh0ZXN0X2RhdGEpCitQQVNTIHRlc3RfZGF0YSAhPT0gcmVzdWx0IGlzIHRydWUKK1BB
U1MgcmVzdWx0LnRvU3RyaW5nKCkgaXMgdGVzdF9kYXRhLnRvU3RyaW5nKCkKK1BBU1MgaXModGVz
dF9kYXRhLnZhbHVlT2YoKSwgcmVzdWx0LnZhbHVlT2YoKSkgaXMgdHJ1ZQorCitUZXN0aW5nOiBu
ZXcgQm9vbGVhbihmYWxzZSkKK3RyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24oJ3N0b3JlTmFt
ZScsIElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUpCitzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVj
dFN0b3JlKCdzdG9yZU5hbWUnKQordmFsdWUgaXM6IGZhbHNlICh0eXBlOiBvYmplY3QpCitzdG9y
ZS5wdXQodmFsdWUsICdrZXknKQorc3RvcmUuZ2V0KCdrZXknKQorU3RyaW5nKHJlc3VsdCk6IGZh
bHNlCitQQVNTIHR5cGVvZiByZXN1bHQgaXMgIm9iamVjdCIKK1BBU1MgT2JqZWN0LnByb3RvdHlw
ZS50b1N0cmluZy5jYWxsKHJlc3VsdCkgaXMgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxs
KHRlc3RfZGF0YSkKK1BBU1MgdGVzdF9kYXRhICE9PSByZXN1bHQgaXMgdHJ1ZQorUEFTUyByZXN1
bHQudG9TdHJpbmcoKSBpcyB0ZXN0X2RhdGEudG9TdHJpbmcoKQorUEFTUyBpcyh0ZXN0X2RhdGEu
dmFsdWVPZigpLCByZXN1bHQudmFsdWVPZigpKSBpcyB0cnVlCisKKworVGVzdGluZyBOdW1iZXIg
b2JqZWN0cworCitUZXN0aW5nOiBuZXcgTnVtYmVyKE5hTikKK3RyYW5zYWN0aW9uID0gZGIudHJh
bnNhY3Rpb24oJ3N0b3JlTmFtZScsIElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUpCitzdG9yZSA9
IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKQordmFsdWUgaXM6IE5hTiAodHlw
ZTogb2JqZWN0KQorc3RvcmUucHV0KHZhbHVlLCAna2V5JykKK3N0b3JlLmdldCgna2V5JykKK1N0
cmluZyhyZXN1bHQpOiBOYU4KK1BBU1MgdHlwZW9mIHJlc3VsdCBpcyAib2JqZWN0IgorUEFTUyBP
YmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwocmVzdWx0KSBpcyBPYmplY3QucHJvdG90eXBl
LnRvU3RyaW5nLmNhbGwodGVzdF9kYXRhKQorUEFTUyB0ZXN0X2RhdGEgIT09IHJlc3VsdCBpcyB0
cnVlCitQQVNTIHJlc3VsdC50b1N0cmluZygpIGlzIHRlc3RfZGF0YS50b1N0cmluZygpCitQQVNT
IGlzKHRlc3RfZGF0YS52YWx1ZU9mKCksIHJlc3VsdC52YWx1ZU9mKCkpIGlzIHRydWUKKworVGVz
dGluZzogbmV3IE51bWJlcigtSW5maW5pdHkpCit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9u
KCdzdG9yZU5hbWUnLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFuc2Fj
dGlvbi5vYmplY3RTdG9yZSgnc3RvcmVOYW1lJykKK3ZhbHVlIGlzOiAtSW5maW5pdHkgKHR5cGU6
IG9iamVjdCkKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5nZXQoJ2tleScpCitTdHJp
bmcocmVzdWx0KTogLUluZmluaXR5CitQQVNTIHR5cGVvZiByZXN1bHQgaXMgIm9iamVjdCIKK1BB
U1MgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHJlc3VsdCkgaXMgT2JqZWN0LnByb3Rv
dHlwZS50b1N0cmluZy5jYWxsKHRlc3RfZGF0YSkKK1BBU1MgdGVzdF9kYXRhICE9PSByZXN1bHQg
aXMgdHJ1ZQorUEFTUyByZXN1bHQudG9TdHJpbmcoKSBpcyB0ZXN0X2RhdGEudG9TdHJpbmcoKQor
UEFTUyBpcyh0ZXN0X2RhdGEudmFsdWVPZigpLCByZXN1bHQudmFsdWVPZigpKSBpcyB0cnVlCisK
K1Rlc3Rpbmc6IG5ldyBOdW1iZXIoLU51bWJlci5NQVhfVkFMVUUpCit0cmFuc2FjdGlvbiA9IGRi
LnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUnLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKQorc3Rv
cmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmVOYW1lJykKK3ZhbHVlIGlzOiAtMS43
OTc2OTMxMzQ4NjIzMTU3ZSszMDggKHR5cGU6IG9iamVjdCkKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tl
eScpCitzdG9yZS5nZXQoJ2tleScpCitTdHJpbmcocmVzdWx0KTogLTEuNzk3NjkzMTM0ODYyMzE1
N2UrMzA4CitQQVNTIHR5cGVvZiByZXN1bHQgaXMgIm9iamVjdCIKK1BBU1MgT2JqZWN0LnByb3Rv
dHlwZS50b1N0cmluZy5jYWxsKHJlc3VsdCkgaXMgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5j
YWxsKHRlc3RfZGF0YSkKK1BBU1MgdGVzdF9kYXRhICE9PSByZXN1bHQgaXMgdHJ1ZQorUEFTUyBy
ZXN1bHQudG9TdHJpbmcoKSBpcyB0ZXN0X2RhdGEudG9TdHJpbmcoKQorUEFTUyBpcyh0ZXN0X2Rh
dGEudmFsdWVPZigpLCByZXN1bHQudmFsdWVPZigpKSBpcyB0cnVlCisKK1Rlc3Rpbmc6IG5ldyBO
dW1iZXIoLU51bWJlci5NSU5fVkFMVUUpCit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdz
dG9yZU5hbWUnLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFuc2FjdGlv
bi5vYmplY3RTdG9yZSgnc3RvcmVOYW1lJykKK3ZhbHVlIGlzOiAtNWUtMzI0ICh0eXBlOiBvYmpl
Y3QpCitzdG9yZS5wdXQodmFsdWUsICdrZXknKQorc3RvcmUuZ2V0KCdrZXknKQorU3RyaW5nKHJl
c3VsdCk6IC01ZS0zMjQKK1BBU1MgdHlwZW9mIHJlc3VsdCBpcyAib2JqZWN0IgorUEFTUyBPYmpl
Y3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwocmVzdWx0KSBpcyBPYmplY3QucHJvdG90eXBlLnRv
U3RyaW5nLmNhbGwodGVzdF9kYXRhKQorUEFTUyB0ZXN0X2RhdGEgIT09IHJlc3VsdCBpcyB0cnVl
CitQQVNTIHJlc3VsdC50b1N0cmluZygpIGlzIHRlc3RfZGF0YS50b1N0cmluZygpCitQQVNTIGlz
KHRlc3RfZGF0YS52YWx1ZU9mKCksIHJlc3VsdC52YWx1ZU9mKCkpIGlzIHRydWUKKworVGVzdGlu
ZzogbmV3IE51bWJlcigtMCkKK3RyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24oJ3N0b3JlTmFt
ZScsIElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUpCitzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVj
dFN0b3JlKCdzdG9yZU5hbWUnKQordmFsdWUgaXM6IDAgKHR5cGU6IG9iamVjdCkKK3N0b3JlLnB1
dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5nZXQoJ2tleScpCitTdHJpbmcocmVzdWx0KTogMAorUEFT
UyB0eXBlb2YgcmVzdWx0IGlzICJvYmplY3QiCitQQVNTIE9iamVjdC5wcm90b3R5cGUudG9TdHJp
bmcuY2FsbChyZXN1bHQpIGlzIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0ZXN0X2Rh
dGEpCitQQVNTIHRlc3RfZGF0YSAhPT0gcmVzdWx0IGlzIHRydWUKK1BBU1MgcmVzdWx0LnRvU3Ry
aW5nKCkgaXMgdGVzdF9kYXRhLnRvU3RyaW5nKCkKK1BBU1MgaXModGVzdF9kYXRhLnZhbHVlT2Yo
KSwgcmVzdWx0LnZhbHVlT2YoKSkgaXMgdHJ1ZQorCitUZXN0aW5nOiBuZXcgTnVtYmVyKDApCit0
cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUnLCBJREJUcmFuc2FjdGlvbi5S
RUFEX1dSSVRFKQorc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmVOYW1lJykK
K3ZhbHVlIGlzOiAwICh0eXBlOiBvYmplY3QpCitzdG9yZS5wdXQodmFsdWUsICdrZXknKQorc3Rv
cmUuZ2V0KCdrZXknKQorU3RyaW5nKHJlc3VsdCk6IDAKK1BBU1MgdHlwZW9mIHJlc3VsdCBpcyAi
b2JqZWN0IgorUEFTUyBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwocmVzdWx0KSBpcyBP
YmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodGVzdF9kYXRhKQorUEFTUyB0ZXN0X2RhdGEg
IT09IHJlc3VsdCBpcyB0cnVlCitQQVNTIHJlc3VsdC50b1N0cmluZygpIGlzIHRlc3RfZGF0YS50
b1N0cmluZygpCitQQVNTIGlzKHRlc3RfZGF0YS52YWx1ZU9mKCksIHJlc3VsdC52YWx1ZU9mKCkp
IGlzIHRydWUKKworVGVzdGluZzogbmV3IE51bWJlcihOdW1iZXIuTUlOX1ZBTFVFKQordHJhbnNh
Y3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1lJywgSURCVHJhbnNhY3Rpb24uUkVBRF9X
UklURSkKK3N0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpCit2YWx1
ZSBpczogNWUtMzI0ICh0eXBlOiBvYmplY3QpCitzdG9yZS5wdXQodmFsdWUsICdrZXknKQorc3Rv
cmUuZ2V0KCdrZXknKQorU3RyaW5nKHJlc3VsdCk6IDVlLTMyNAorUEFTUyB0eXBlb2YgcmVzdWx0
IGlzICJvYmplY3QiCitQQVNTIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChyZXN1bHQp
IGlzIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0ZXN0X2RhdGEpCitQQVNTIHRlc3Rf
ZGF0YSAhPT0gcmVzdWx0IGlzIHRydWUKK1BBU1MgcmVzdWx0LnRvU3RyaW5nKCkgaXMgdGVzdF9k
YXRhLnRvU3RyaW5nKCkKK1BBU1MgaXModGVzdF9kYXRhLnZhbHVlT2YoKSwgcmVzdWx0LnZhbHVl
T2YoKSkgaXMgdHJ1ZQorCitUZXN0aW5nOiBuZXcgTnVtYmVyKE51bWJlci5NQVhfVkFMVUUpCit0
cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUnLCBJREJUcmFuc2FjdGlvbi5S
RUFEX1dSSVRFKQorc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmVOYW1lJykK
K3ZhbHVlIGlzOiAxLjc5NzY5MzEzNDg2MjMxNTdlKzMwOCAodHlwZTogb2JqZWN0KQorc3RvcmUu
cHV0KHZhbHVlLCAna2V5JykKK3N0b3JlLmdldCgna2V5JykKK1N0cmluZyhyZXN1bHQpOiAxLjc5
NzY5MzEzNDg2MjMxNTdlKzMwOAorUEFTUyB0eXBlb2YgcmVzdWx0IGlzICJvYmplY3QiCitQQVNT
IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChyZXN1bHQpIGlzIE9iamVjdC5wcm90b3R5
cGUudG9TdHJpbmcuY2FsbCh0ZXN0X2RhdGEpCitQQVNTIHRlc3RfZGF0YSAhPT0gcmVzdWx0IGlz
IHRydWUKK1BBU1MgcmVzdWx0LnRvU3RyaW5nKCkgaXMgdGVzdF9kYXRhLnRvU3RyaW5nKCkKK1BB
U1MgaXModGVzdF9kYXRhLnZhbHVlT2YoKSwgcmVzdWx0LnZhbHVlT2YoKSkgaXMgdHJ1ZQorCitU
ZXN0aW5nOiBuZXcgTnVtYmVyKEluZmluaXR5KQordHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlv
bignc3RvcmVOYW1lJywgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkKK3N0b3JlID0gdHJhbnNh
Y3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpCit2YWx1ZSBpczogSW5maW5pdHkgKHR5cGU6
IG9iamVjdCkKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5nZXQoJ2tleScpCitTdHJp
bmcocmVzdWx0KTogSW5maW5pdHkKK1BBU1MgdHlwZW9mIHJlc3VsdCBpcyAib2JqZWN0IgorUEFT
UyBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwocmVzdWx0KSBpcyBPYmplY3QucHJvdG90
eXBlLnRvU3RyaW5nLmNhbGwodGVzdF9kYXRhKQorUEFTUyB0ZXN0X2RhdGEgIT09IHJlc3VsdCBp
cyB0cnVlCitQQVNTIHJlc3VsdC50b1N0cmluZygpIGlzIHRlc3RfZGF0YS50b1N0cmluZygpCitQ
QVNTIGlzKHRlc3RfZGF0YS52YWx1ZU9mKCksIHJlc3VsdC52YWx1ZU9mKCkpIGlzIHRydWUKKwor
CitUZXN0aW5nIFN0cmluZyBvYmplY3RzCisKK1Rlc3Rpbmc6IG5ldyBTdHJpbmcoKQordHJhbnNh
Y3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1lJywgSURCVHJhbnNhY3Rpb24uUkVBRF9X
UklURSkKK3N0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpCit2YWx1
ZSBpczogICh0eXBlOiBvYmplY3QpCitzdG9yZS5wdXQodmFsdWUsICdrZXknKQorc3RvcmUuZ2V0
KCdrZXknKQorU3RyaW5nKHJlc3VsdCk6IAorUEFTUyB0eXBlb2YgcmVzdWx0IGlzICJvYmplY3Qi
CitQQVNTIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChyZXN1bHQpIGlzIE9iamVjdC5w
cm90b3R5cGUudG9TdHJpbmcuY2FsbCh0ZXN0X2RhdGEpCitQQVNTIHRlc3RfZGF0YSAhPT0gcmVz
dWx0IGlzIHRydWUKK1BBU1MgcmVzdWx0LnRvU3RyaW5nKCkgaXMgdGVzdF9kYXRhLnRvU3RyaW5n
KCkKK1BBU1MgaXModGVzdF9kYXRhLnZhbHVlT2YoKSwgcmVzdWx0LnZhbHVlT2YoKSkgaXMgdHJ1
ZQorCitUZXN0aW5nOiBuZXcgU3RyaW5nKCd0aGlzIGlzIGEgc2FtcGxlIHN0cmluZycpCit0cmFu
c2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUnLCBJREJUcmFuc2FjdGlvbi5SRUFE
X1dSSVRFKQorc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmVOYW1lJykKK3Zh
bHVlIGlzOiB0aGlzIGlzIGEgc2FtcGxlIHN0cmluZyAodHlwZTogb2JqZWN0KQorc3RvcmUucHV0
KHZhbHVlLCAna2V5JykKK3N0b3JlLmdldCgna2V5JykKK1N0cmluZyhyZXN1bHQpOiB0aGlzIGlz
IGEgc2FtcGxlIHN0cmluZworUEFTUyB0eXBlb2YgcmVzdWx0IGlzICJvYmplY3QiCitQQVNTIE9i
amVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChyZXN1bHQpIGlzIE9iamVjdC5wcm90b3R5cGUu
dG9TdHJpbmcuY2FsbCh0ZXN0X2RhdGEpCitQQVNTIHRlc3RfZGF0YSAhPT0gcmVzdWx0IGlzIHRy
dWUKK1BBU1MgcmVzdWx0LnRvU3RyaW5nKCkgaXMgdGVzdF9kYXRhLnRvU3RyaW5nKCkKK1BBU1Mg
aXModGVzdF9kYXRhLnZhbHVlT2YoKSwgcmVzdWx0LnZhbHVlT2YoKSkgaXMgdHJ1ZQorCitUZXN0
aW5nOiBuZXcgU3RyaW5nKCdudWxsKFwwKScpCit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9u
KCdzdG9yZU5hbWUnLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFuc2Fj
dGlvbi5vYmplY3RTdG9yZSgnc3RvcmVOYW1lJykKK3ZhbHVlIGlzOiBudWxsKCkgKHR5cGU6IG9i
amVjdCkKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5nZXQoJ2tleScpCitTdHJpbmco
cmVzdWx0KTogbnVsbCgpCitQQVNTIHR5cGVvZiByZXN1bHQgaXMgIm9iamVjdCIKK1BBU1MgT2Jq
ZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHJlc3VsdCkgaXMgT2JqZWN0LnByb3RvdHlwZS50
b1N0cmluZy5jYWxsKHRlc3RfZGF0YSkKK1BBU1MgdGVzdF9kYXRhICE9PSByZXN1bHQgaXMgdHJ1
ZQorUEFTUyByZXN1bHQudG9TdHJpbmcoKSBpcyB0ZXN0X2RhdGEudG9TdHJpbmcoKQorUEFTUyBp
cyh0ZXN0X2RhdGEudmFsdWVPZigpLCByZXN1bHQudmFsdWVPZigpKSBpcyB0cnVlCisKKworVGVz
dGluZyBEYXRlIG9iamVjdHMKKworVGVzdGluZzogbmV3IERhdGUoLTFlMTMpCit0cmFuc2FjdGlv
biA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUnLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRF
KQorc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmVOYW1lJykKK3ZhbHVlIGlz
OiBTdW4gRmViIDA5IDE2NTMgMjI6MTM6MjAgR01ULTA4MDAgKFBTVCkgKHR5cGU6IG9iamVjdCkK
K3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5nZXQoJ2tleScpCitTdHJpbmcocmVzdWx0
KTogU3VuIEZlYiAwOSAxNjUzIDIyOjEzOjIwIEdNVC0wODAwIChQU1QpCitQQVNTIHR5cGVvZiBy
ZXN1bHQgaXMgIm9iamVjdCIKK1BBU1MgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHJl
c3VsdCkgaXMgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHRlc3RfZGF0YSkKK1BBU1Mg
dGVzdF9kYXRhICE9PSByZXN1bHQgaXMgdHJ1ZQorUEFTUyByZXN1bHQudG9TdHJpbmcoKSBpcyB0
ZXN0X2RhdGEudG9TdHJpbmcoKQorUEFTUyBpcyh0ZXN0X2RhdGEudmFsdWVPZigpLCByZXN1bHQu
dmFsdWVPZigpKSBpcyB0cnVlCisKK1Rlc3Rpbmc6IG5ldyBEYXRlKC0xZTEyKQordHJhbnNhY3Rp
b24gPSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1lJywgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklU
RSkKK3N0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpCit2YWx1ZSBp
czogU3VuIEFwciAyNCAxOTM4IDE1OjEzOjIwIEdNVC0wNzAwIChQRFQpICh0eXBlOiBvYmplY3Qp
CitzdG9yZS5wdXQodmFsdWUsICdrZXknKQorc3RvcmUuZ2V0KCdrZXknKQorU3RyaW5nKHJlc3Vs
dCk6IFN1biBBcHIgMjQgMTkzOCAxNToxMzoyMCBHTVQtMDcwMCAoUERUKQorUEFTUyB0eXBlb2Yg
cmVzdWx0IGlzICJvYmplY3QiCitQQVNTIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChy
ZXN1bHQpIGlzIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0ZXN0X2RhdGEpCitQQVNT
IHRlc3RfZGF0YSAhPT0gcmVzdWx0IGlzIHRydWUKK1BBU1MgcmVzdWx0LnRvU3RyaW5nKCkgaXMg
dGVzdF9kYXRhLnRvU3RyaW5nKCkKK1BBU1MgaXModGVzdF9kYXRhLnZhbHVlT2YoKSwgcmVzdWx0
LnZhbHVlT2YoKSkgaXMgdHJ1ZQorCitUZXN0aW5nOiBuZXcgRGF0ZSgtMWU5KQordHJhbnNhY3Rp
b24gPSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1lJywgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklU
RSkKK3N0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpCit2YWx1ZSBp
czogU2F0IERlYyAyMCAxOTY5IDAyOjEzOjIwIEdNVC0wODAwIChQU1QpICh0eXBlOiBvYmplY3Qp
CitzdG9yZS5wdXQodmFsdWUsICdrZXknKQorc3RvcmUuZ2V0KCdrZXknKQorU3RyaW5nKHJlc3Vs
dCk6IFNhdCBEZWMgMjAgMTk2OSAwMjoxMzoyMCBHTVQtMDgwMCAoUFNUKQorUEFTUyB0eXBlb2Yg
cmVzdWx0IGlzICJvYmplY3QiCitQQVNTIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChy
ZXN1bHQpIGlzIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0ZXN0X2RhdGEpCitQQVNT
IHRlc3RfZGF0YSAhPT0gcmVzdWx0IGlzIHRydWUKK1BBU1MgcmVzdWx0LnRvU3RyaW5nKCkgaXMg
dGVzdF9kYXRhLnRvU3RyaW5nKCkKK1BBU1MgaXModGVzdF9kYXRhLnZhbHVlT2YoKSwgcmVzdWx0
LnZhbHVlT2YoKSkgaXMgdHJ1ZQorCitUZXN0aW5nOiBuZXcgRGF0ZSgtMWU2KQordHJhbnNhY3Rp
b24gPSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1lJywgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklU
RSkKK3N0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpCit2YWx1ZSBp
czogV2VkIERlYyAzMSAxOTY5IDE1OjQzOjIwIEdNVC0wODAwIChQU1QpICh0eXBlOiBvYmplY3Qp
CitzdG9yZS5wdXQodmFsdWUsICdrZXknKQorc3RvcmUuZ2V0KCdrZXknKQorU3RyaW5nKHJlc3Vs
dCk6IFdlZCBEZWMgMzEgMTk2OSAxNTo0MzoyMCBHTVQtMDgwMCAoUFNUKQorUEFTUyB0eXBlb2Yg
cmVzdWx0IGlzICJvYmplY3QiCitQQVNTIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChy
ZXN1bHQpIGlzIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0ZXN0X2RhdGEpCitQQVNT
IHRlc3RfZGF0YSAhPT0gcmVzdWx0IGlzIHRydWUKK1BBU1MgcmVzdWx0LnRvU3RyaW5nKCkgaXMg
dGVzdF9kYXRhLnRvU3RyaW5nKCkKK1BBU1MgaXModGVzdF9kYXRhLnZhbHVlT2YoKSwgcmVzdWx0
LnZhbHVlT2YoKSkgaXMgdHJ1ZQorCitUZXN0aW5nOiBuZXcgRGF0ZSgtMWUzKQordHJhbnNhY3Rp
b24gPSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1lJywgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklU
RSkKK3N0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpCit2YWx1ZSBp
czogV2VkIERlYyAzMSAxOTY5IDE1OjU5OjU5IEdNVC0wODAwIChQU1QpICh0eXBlOiBvYmplY3Qp
CitzdG9yZS5wdXQodmFsdWUsICdrZXknKQorc3RvcmUuZ2V0KCdrZXknKQorU3RyaW5nKHJlc3Vs
dCk6IFdlZCBEZWMgMzEgMTk2OSAxNTo1OTo1OSBHTVQtMDgwMCAoUFNUKQorUEFTUyB0eXBlb2Yg
cmVzdWx0IGlzICJvYmplY3QiCitQQVNTIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChy
ZXN1bHQpIGlzIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0ZXN0X2RhdGEpCitQQVNT
IHRlc3RfZGF0YSAhPT0gcmVzdWx0IGlzIHRydWUKK1BBU1MgcmVzdWx0LnRvU3RyaW5nKCkgaXMg
dGVzdF9kYXRhLnRvU3RyaW5nKCkKK1BBU1MgaXModGVzdF9kYXRhLnZhbHVlT2YoKSwgcmVzdWx0
LnZhbHVlT2YoKSkgaXMgdHJ1ZQorCitUZXN0aW5nOiBuZXcgRGF0ZSgwKQordHJhbnNhY3Rpb24g
PSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1lJywgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkK
K3N0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpCit2YWx1ZSBpczog
V2VkIERlYyAzMSAxOTY5IDE2OjAwOjAwIEdNVC0wODAwIChQU1QpICh0eXBlOiBvYmplY3QpCitz
dG9yZS5wdXQodmFsdWUsICdrZXknKQorc3RvcmUuZ2V0KCdrZXknKQorU3RyaW5nKHJlc3VsdCk6
IFdlZCBEZWMgMzEgMTk2OSAxNjowMDowMCBHTVQtMDgwMCAoUFNUKQorUEFTUyB0eXBlb2YgcmVz
dWx0IGlzICJvYmplY3QiCitQQVNTIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChyZXN1
bHQpIGlzIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0ZXN0X2RhdGEpCitQQVNTIHRl
c3RfZGF0YSAhPT0gcmVzdWx0IGlzIHRydWUKK1BBU1MgcmVzdWx0LnRvU3RyaW5nKCkgaXMgdGVz
dF9kYXRhLnRvU3RyaW5nKCkKK1BBU1MgaXModGVzdF9kYXRhLnZhbHVlT2YoKSwgcmVzdWx0LnZh
bHVlT2YoKSkgaXMgdHJ1ZQorCitUZXN0aW5nOiBuZXcgRGF0ZSgxZTMpCit0cmFuc2FjdGlvbiA9
IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUnLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKQor
c3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmVOYW1lJykKK3ZhbHVlIGlzOiBX
ZWQgRGVjIDMxIDE5NjkgMTY6MDA6MDEgR01ULTA4MDAgKFBTVCkgKHR5cGU6IG9iamVjdCkKK3N0
b3JlLnB1dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5nZXQoJ2tleScpCitTdHJpbmcocmVzdWx0KTog
V2VkIERlYyAzMSAxOTY5IDE2OjAwOjAxIEdNVC0wODAwIChQU1QpCitQQVNTIHR5cGVvZiByZXN1
bHQgaXMgIm9iamVjdCIKK1BBU1MgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHJlc3Vs
dCkgaXMgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHRlc3RfZGF0YSkKK1BBU1MgdGVz
dF9kYXRhICE9PSByZXN1bHQgaXMgdHJ1ZQorUEFTUyByZXN1bHQudG9TdHJpbmcoKSBpcyB0ZXN0
X2RhdGEudG9TdHJpbmcoKQorUEFTUyBpcyh0ZXN0X2RhdGEudmFsdWVPZigpLCByZXN1bHQudmFs
dWVPZigpKSBpcyB0cnVlCisKK1Rlc3Rpbmc6IG5ldyBEYXRlKDFlNikKK3RyYW5zYWN0aW9uID0g
ZGIudHJhbnNhY3Rpb24oJ3N0b3JlTmFtZScsIElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUpCitz
dG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKQordmFsdWUgaXM6IFdl
ZCBEZWMgMzEgMTk2OSAxNjoxNjo0MCBHTVQtMDgwMCAoUFNUKSAodHlwZTogb2JqZWN0KQorc3Rv
cmUucHV0KHZhbHVlLCAna2V5JykKK3N0b3JlLmdldCgna2V5JykKK1N0cmluZyhyZXN1bHQpOiBX
ZWQgRGVjIDMxIDE5NjkgMTY6MTY6NDAgR01ULTA4MDAgKFBTVCkKK1BBU1MgdHlwZW9mIHJlc3Vs
dCBpcyAib2JqZWN0IgorUEFTUyBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwocmVzdWx0
KSBpcyBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodGVzdF9kYXRhKQorUEFTUyB0ZXN0
X2RhdGEgIT09IHJlc3VsdCBpcyB0cnVlCitQQVNTIHJlc3VsdC50b1N0cmluZygpIGlzIHRlc3Rf
ZGF0YS50b1N0cmluZygpCitQQVNTIGlzKHRlc3RfZGF0YS52YWx1ZU9mKCksIHJlc3VsdC52YWx1
ZU9mKCkpIGlzIHRydWUKKworVGVzdGluZzogbmV3IERhdGUoMWU5KQordHJhbnNhY3Rpb24gPSBk
Yi50cmFuc2FjdGlvbignc3RvcmVOYW1lJywgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkKK3N0
b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpCit2YWx1ZSBpczogTW9u
IEphbiAxMiAxOTcwIDA1OjQ2OjQwIEdNVC0wODAwIChQU1QpICh0eXBlOiBvYmplY3QpCitzdG9y
ZS5wdXQodmFsdWUsICdrZXknKQorc3RvcmUuZ2V0KCdrZXknKQorU3RyaW5nKHJlc3VsdCk6IE1v
biBKYW4gMTIgMTk3MCAwNTo0Njo0MCBHTVQtMDgwMCAoUFNUKQorUEFTUyB0eXBlb2YgcmVzdWx0
IGlzICJvYmplY3QiCitQQVNTIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChyZXN1bHQp
IGlzIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0ZXN0X2RhdGEpCitQQVNTIHRlc3Rf
ZGF0YSAhPT0gcmVzdWx0IGlzIHRydWUKK1BBU1MgcmVzdWx0LnRvU3RyaW5nKCkgaXMgdGVzdF9k
YXRhLnRvU3RyaW5nKCkKK1BBU1MgaXModGVzdF9kYXRhLnZhbHVlT2YoKSwgcmVzdWx0LnZhbHVl
T2YoKSkgaXMgdHJ1ZQorCitUZXN0aW5nOiBuZXcgRGF0ZSgxZTEyKQordHJhbnNhY3Rpb24gPSBk
Yi50cmFuc2FjdGlvbignc3RvcmVOYW1lJywgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkKK3N0
b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpCit2YWx1ZSBpczogU2F0
IFNlcCAwOCAyMDAxIDE4OjQ2OjQwIEdNVC0wNzAwIChQRFQpICh0eXBlOiBvYmplY3QpCitzdG9y
ZS5wdXQodmFsdWUsICdrZXknKQorc3RvcmUuZ2V0KCdrZXknKQorU3RyaW5nKHJlc3VsdCk6IFNh
dCBTZXAgMDggMjAwMSAxODo0Njo0MCBHTVQtMDcwMCAoUERUKQorUEFTUyB0eXBlb2YgcmVzdWx0
IGlzICJvYmplY3QiCitQQVNTIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChyZXN1bHQp
IGlzIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0ZXN0X2RhdGEpCitQQVNTIHRlc3Rf
ZGF0YSAhPT0gcmVzdWx0IGlzIHRydWUKK1BBU1MgcmVzdWx0LnRvU3RyaW5nKCkgaXMgdGVzdF9k
YXRhLnRvU3RyaW5nKCkKK1BBU1MgaXModGVzdF9kYXRhLnZhbHVlT2YoKSwgcmVzdWx0LnZhbHVl
T2YoKSkgaXMgdHJ1ZQorCitUZXN0aW5nOiBuZXcgRGF0ZSgxZTEzKQordHJhbnNhY3Rpb24gPSBk
Yi50cmFuc2FjdGlvbignc3RvcmVOYW1lJywgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkKK3N0
b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpCit2YWx1ZSBpczogU2F0
IE5vdiAyMCAyMjg2IDA5OjQ2OjQwIEdNVC0wODAwIChQU1QpICh0eXBlOiBvYmplY3QpCitzdG9y
ZS5wdXQodmFsdWUsICdrZXknKQorc3RvcmUuZ2V0KCdrZXknKQorU3RyaW5nKHJlc3VsdCk6IFNh
dCBOb3YgMjAgMjI4NiAwOTo0Njo0MCBHTVQtMDgwMCAoUFNUKQorUEFTUyB0eXBlb2YgcmVzdWx0
IGlzICJvYmplY3QiCitQQVNTIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChyZXN1bHQp
IGlzIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0ZXN0X2RhdGEpCitQQVNTIHRlc3Rf
ZGF0YSAhPT0gcmVzdWx0IGlzIHRydWUKK1BBU1MgcmVzdWx0LnRvU3RyaW5nKCkgaXMgdGVzdF9k
YXRhLnRvU3RyaW5nKCkKK1BBU1MgaXModGVzdF9kYXRhLnZhbHVlT2YoKSwgcmVzdWx0LnZhbHVl
T2YoKSkgaXMgdHJ1ZQorCisKK1Rlc3RpbmcgUmVnRXhwIG9iamVjdHMKKworVGVzdGluZyBSZWdF
eHA6IG5ldyBSZWdFeHAoKQordHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1l
JywgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkKK3N0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0
U3RvcmUoJ3N0b3JlTmFtZScpCit2YWx1ZSBpczogLyg/OikvICh0eXBlOiBvYmplY3QpCitzdG9y
ZS5wdXQodmFsdWUsICdrZXknKQorc3RvcmUuZ2V0KCdrZXknKQorUEFTUyB0ZXN0X2RhdGEgIT09
IHJlc3VsdCBpcyB0cnVlCitQQVNTIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChyZXN1
bHQpIGlzICJbb2JqZWN0IFJlZ0V4cF0iCitQQVNTIHJlc3VsdC50b1N0cmluZygpIGlzIHRlc3Rf
ZGF0YS50b1N0cmluZygpCisKK1Rlc3RpbmcgUmVnRXhwOiAvYWJjLwordHJhbnNhY3Rpb24gPSBk
Yi50cmFuc2FjdGlvbignc3RvcmVOYW1lJywgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkKK3N0
b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpCit2YWx1ZSBpczogL2Fi
Yy8gKHR5cGU6IG9iamVjdCkKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5nZXQoJ2tl
eScpCitQQVNTIHRlc3RfZGF0YSAhPT0gcmVzdWx0IGlzIHRydWUKK1BBU1MgT2JqZWN0LnByb3Rv
dHlwZS50b1N0cmluZy5jYWxsKHJlc3VsdCkgaXMgIltvYmplY3QgUmVnRXhwXSIKK1BBU1MgcmVz
dWx0LnRvU3RyaW5nKCkgaXMgdGVzdF9kYXRhLnRvU3RyaW5nKCkKKworVGVzdGluZyBSZWdFeHA6
IC9hYmMvZwordHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1lJywgSURCVHJh
bnNhY3Rpb24uUkVBRF9XUklURSkKK3N0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0
b3JlTmFtZScpCit2YWx1ZSBpczogL2FiYy9nICh0eXBlOiBvYmplY3QpCitzdG9yZS5wdXQodmFs
dWUsICdrZXknKQorc3RvcmUuZ2V0KCdrZXknKQorUEFTUyB0ZXN0X2RhdGEgIT09IHJlc3VsdCBp
cyB0cnVlCitQQVNTIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChyZXN1bHQpIGlzICJb
b2JqZWN0IFJlZ0V4cF0iCitQQVNTIHJlc3VsdC50b1N0cmluZygpIGlzIHRlc3RfZGF0YS50b1N0
cmluZygpCisKK1Rlc3RpbmcgUmVnRXhwOiAvYWJjL2kKK3RyYW5zYWN0aW9uID0gZGIudHJhbnNh
Y3Rpb24oJ3N0b3JlTmFtZScsIElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUpCitzdG9yZSA9IHRy
YW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKQordmFsdWUgaXM6IC9hYmMvaSAodHlw
ZTogb2JqZWN0KQorc3RvcmUucHV0KHZhbHVlLCAna2V5JykKK3N0b3JlLmdldCgna2V5JykKK1BB
U1MgdGVzdF9kYXRhICE9PSByZXN1bHQgaXMgdHJ1ZQorUEFTUyBPYmplY3QucHJvdG90eXBlLnRv
U3RyaW5nLmNhbGwocmVzdWx0KSBpcyAiW29iamVjdCBSZWdFeHBdIgorUEFTUyByZXN1bHQudG9T
dHJpbmcoKSBpcyB0ZXN0X2RhdGEudG9TdHJpbmcoKQorCitUZXN0aW5nIFJlZ0V4cDogL2FiYy9n
aQordHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1lJywgSURCVHJhbnNhY3Rp
b24uUkVBRF9XUklURSkKK3N0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3JlTmFt
ZScpCit2YWx1ZSBpczogL2FiYy9naSAodHlwZTogb2JqZWN0KQorc3RvcmUucHV0KHZhbHVlLCAn
a2V5JykKK3N0b3JlLmdldCgna2V5JykKK1BBU1MgdGVzdF9kYXRhICE9PSByZXN1bHQgaXMgdHJ1
ZQorUEFTUyBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwocmVzdWx0KSBpcyAiW29iamVj
dCBSZWdFeHBdIgorUEFTUyByZXN1bHQudG9TdHJpbmcoKSBpcyB0ZXN0X2RhdGEudG9TdHJpbmco
KQorCitUZXN0aW5nIFJlZ0V4cDogL2FiYy9tCit0cmFuc2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9u
KCdzdG9yZU5hbWUnLCBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFKQorc3RvcmUgPSB0cmFuc2Fj
dGlvbi5vYmplY3RTdG9yZSgnc3RvcmVOYW1lJykKK3ZhbHVlIGlzOiAvYWJjL20gKHR5cGU6IG9i
amVjdCkKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5nZXQoJ2tleScpCitQQVNTIHRl
c3RfZGF0YSAhPT0gcmVzdWx0IGlzIHRydWUKK1BBU1MgT2JqZWN0LnByb3RvdHlwZS50b1N0cmlu
Zy5jYWxsKHJlc3VsdCkgaXMgIltvYmplY3QgUmVnRXhwXSIKK1BBU1MgcmVzdWx0LnRvU3RyaW5n
KCkgaXMgdGVzdF9kYXRhLnRvU3RyaW5nKCkKKworVGVzdGluZyBSZWdFeHA6IC9hYmMvbWcKK3Ry
YW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24oJ3N0b3JlTmFtZScsIElEQlRyYW5zYWN0aW9uLlJF
QURfV1JJVEUpCitzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKQor
dmFsdWUgaXM6IC9hYmMvZ20gKHR5cGU6IG9iamVjdCkKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScp
CitzdG9yZS5nZXQoJ2tleScpCitQQVNTIHRlc3RfZGF0YSAhPT0gcmVzdWx0IGlzIHRydWUKK1BB
U1MgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHJlc3VsdCkgaXMgIltvYmplY3QgUmVn
RXhwXSIKK1BBU1MgcmVzdWx0LnRvU3RyaW5nKCkgaXMgdGVzdF9kYXRhLnRvU3RyaW5nKCkKKwor
VGVzdGluZyBSZWdFeHA6IC9hYmMvbWkKK3RyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24oJ3N0
b3JlTmFtZScsIElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUpCitzdG9yZSA9IHRyYW5zYWN0aW9u
Lm9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKQordmFsdWUgaXM6IC9hYmMvaW0gKHR5cGU6IG9iamVj
dCkKK3N0b3JlLnB1dCh2YWx1ZSwgJ2tleScpCitzdG9yZS5nZXQoJ2tleScpCitQQVNTIHRlc3Rf
ZGF0YSAhPT0gcmVzdWx0IGlzIHRydWUKK1BBU1MgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5j
YWxsKHJlc3VsdCkgaXMgIltvYmplY3QgUmVnRXhwXSIKK1BBU1MgcmVzdWx0LnRvU3RyaW5nKCkg
aXMgdGVzdF9kYXRhLnRvU3RyaW5nKCkKKworVGVzdGluZyBSZWdFeHA6IC9hYmMvbWdpCit0cmFu
c2FjdGlvbiA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUnLCBJREJUcmFuc2FjdGlvbi5SRUFE
X1dSSVRFKQorc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmVOYW1lJykKK3Zh
bHVlIGlzOiAvYWJjL2dpbSAodHlwZTogb2JqZWN0KQorc3RvcmUucHV0KHZhbHVlLCAna2V5JykK
K3N0b3JlLmdldCgna2V5JykKK1BBU1MgdGVzdF9kYXRhICE9PSByZXN1bHQgaXMgdHJ1ZQorUEFT
UyBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwocmVzdWx0KSBpcyAiW29iamVjdCBSZWdF
eHBdIgorUEFTUyByZXN1bHQudG9TdHJpbmcoKSBpcyB0ZXN0X2RhdGEudG9TdHJpbmcoKQorCisK
K1Rlc3RpbmcgSW1hZ2VEYXRhCitjYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52
YXMnKQorY2FudmFzLndpZHRoID0gOAorY2FudmFzLmhlaWdodCA9IDgKK3Rlc3RfZGF0YSA9IGNh
bnZhcy5nZXRDb250ZXh0KCcyZCcpLmdldEltYWdlRGF0YSgwLCAwLCA4LCA4KQordHJhbnNhY3Rp
b24gPSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1lJywgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklU
RSkKK3N0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpCit2YWx1ZSBp
czogW29iamVjdCBJbWFnZURhdGFdICh0eXBlOiBvYmplY3QpCitzdG9yZS5wdXQodmFsdWUsICdr
ZXknKQorc3RvcmUuZ2V0KCdrZXknKQorUEFTUyB0ZXN0X2RhdGEgIT09IHJlc3VsdCBpcyB0cnVl
CitQQVNTIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChyZXN1bHQpIGlzICJbb2JqZWN0
IEltYWdlRGF0YV0iCitQQVNTIHJlc3VsdC53aWR0aCBpcyB0ZXN0X2RhdGEud2lkdGgKK1BBU1Mg
cmVzdWx0LmhlaWdodCBpcyB0ZXN0X2RhdGEuaGVpZ2h0CitQQVNTIHJlc3VsdC5kYXRhLmxlbmd0
aCBpcyB0ZXN0X2RhdGEuZGF0YS5sZW5ndGgKK1BBU1MgcmVzdWx0IGRhdGEgbWF0Y2hlcworCitU
ZXN0aW5nIEJsb2IKK1NraXBwaW5nIHRlc3QKKworVGVzdGluZyBGaWxlCitTa2lwcGluZyB0ZXN0
CisKK1Rlc3RpbmcgRmlsZUxpc3QKK1NraXBwaW5nIHRlc3QKKworVGVzdGluZyBBcnJheQordGVz
dF9kYXRhID0gW10KK3Rlc3RfZGF0YVswXSA9ICdmb28nCit0ZXN0X2RhdGFbMV0gPSAnYmFyJwor
dGVzdF9kYXRhWzEwXSA9IHRydWUKK3Rlc3RfZGF0YVsxMV0gPSBmYWxzZQordGVzdF9kYXRhWzIw
XSA9IDEyMwordGVzdF9kYXRhWzIxXSA9IDQ1NgordGVzdF9kYXRhWzMwXSA9IG51bGwKK3RyYW5z
YWN0aW9uID0gZGIudHJhbnNhY3Rpb24oJ3N0b3JlTmFtZScsIElEQlRyYW5zYWN0aW9uLlJFQURf
V1JJVEUpCitzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKQordmFs
dWUgaXM6IGZvbyxiYXIsLCwsLCwsLCx0cnVlLGZhbHNlLCwsLCwsLCwsMTIzLDQ1NiwsLCwsLCws
LCAodHlwZTogb2JqZWN0KQorc3RvcmUucHV0KHZhbHVlLCAna2V5JykKK3N0b3JlLmdldCgna2V5
JykKK1BBU1MgdGVzdF9kYXRhICE9PSByZXN1bHQgaXMgdHJ1ZQorUEFTUyB0ZXN0X2RhdGEubGVu
Z3RoID09PSByZXN1bHQubGVuZ3RoIGlzIHRydWUKK1BBU1MgdGVzdF9kYXRhWzBdIGlzIHJlc3Vs
dFswXQorUEFTUyB0ZXN0X2RhdGFbMV0gaXMgcmVzdWx0WzFdCitQQVNTIHRlc3RfZGF0YVsxMF0g
aXMgcmVzdWx0WzEwXQorUEFTUyB0ZXN0X2RhdGFbMTFdIGlzIHJlc3VsdFsxMV0KK1BBU1MgdGVz
dF9kYXRhWzIwXSBpcyByZXN1bHRbMjBdCitQQVNTIHRlc3RfZGF0YVsyMV0gaXMgcmVzdWx0WzIx
XQorUEFTUyB0ZXN0X2RhdGFbMzBdIGlzIHJlc3VsdFszMF0KKworVGVzdGluZyBPYmplY3QKK3Rl
c3RfZGF0YSA9IFtdCit0ZXN0X2RhdGFbMF0gPSAnZm9vJwordGVzdF9kYXRhWzFdID0gJ2JhcicK
K3Rlc3RfZGF0YVsnYSddID0gdHJ1ZQordGVzdF9kYXRhWydiJ10gPSBmYWxzZQordGVzdF9kYXRh
Wydmb28nXSA9IDEyMwordGVzdF9kYXRhWydiYXInXSA9IDQ1NgordGVzdF9kYXRhWycnXSA9IG51
bGwKK3RyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24oJ3N0b3JlTmFtZScsIElEQlRyYW5zYWN0
aW9uLlJFQURfV1JJVEUpCitzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZU5h
bWUnKQordmFsdWUgaXM6IGZvbyxiYXIgKHR5cGU6IG9iamVjdCkKK3N0b3JlLnB1dCh2YWx1ZSwg
J2tleScpCitzdG9yZS5nZXQoJ2tleScpCitQQVNTIHRlc3RfZGF0YSAhPT0gcmVzdWx0IGlzIHRy
dWUKK1BBU1MgYXJyYXlDb21wYXJlKE9iamVjdC5rZXlzKHJlc3VsdCkuc29ydCgpLCBPYmplY3Qu
a2V5cyh0ZXN0X2RhdGEpLnNvcnQoKSkgaXMgdHJ1ZQorUEFTUyB0ZXN0X2RhdGFbIjAiXSBpcyBy
ZXN1bHRbIjAiXQorUEFTUyB0ZXN0X2RhdGFbIjEiXSBpcyByZXN1bHRbIjEiXQorUEFTUyB0ZXN0
X2RhdGFbImEiXSBpcyByZXN1bHRbImEiXQorUEFTUyB0ZXN0X2RhdGFbImIiXSBpcyByZXN1bHRb
ImIiXQorUEFTUyB0ZXN0X2RhdGFbImZvbyJdIGlzIHJlc3VsdFsiZm9vIl0KK1BBU1MgdGVzdF9k
YXRhWyJiYXIiXSBpcyByZXN1bHRbImJhciJdCitQQVNTIHRlc3RfZGF0YVsiIl0gaXMgcmVzdWx0
WyIiXQorCisKK1Rlc3QgdHlwZXMgdGhhdCBjYW4ndCBiZSBjbG9uZWQ6CisKK3RyYW5zYWN0aW9u
ID0gZGIudHJhbnNhY3Rpb24oJ3N0b3JlTmFtZScsIElEQlRyYW5zYWN0aW9uLlJFQURfV1JJVEUp
CitzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKQorCitPdGhlciBK
YXZhU2NyaXB0IG9iamVjdCB0eXBlczoKK0V4cGVjdGluZyBleGNlcHRpb24gZnJvbSBzdG9yZS5w
dXQobmV3IEVycm9yLCAna2V5JykKK1BBU1MgRXhjZXB0aW9uIHdhcyB0aHJvd24uCitQQVNTIGNv
ZGUgaXMgRE9NRXhjZXB0aW9uLkRBVEFfQ0xPTkVfRVJSCitFeHBlY3RpbmcgZXhjZXB0aW9uIGZy
b20gc3RvcmUucHV0KG5ldyBGdW5jdGlvbiwgJ2tleScpCitQQVNTIEV4Y2VwdGlvbiB3YXMgdGhy
b3duLgorUEFTUyBjb2RlIGlzIERPTUV4Y2VwdGlvbi5EQVRBX0NMT05FX0VSUgorCitPdGhlciBo
b3N0IG9iamVjdCB0eXBlczoKK0V4cGVjdGluZyBleGNlcHRpb24gZnJvbSBzdG9yZS5wdXQod2lu
ZG93LCAna2V5JykKK1BBU1MgRXhjZXB0aW9uIHdhcyB0aHJvd24uCitQQVNTIGNvZGUgaXMgRE9N
RXhjZXB0aW9uLkRBVEFfQ0xPTkVfRVJSCitFeHBlY3RpbmcgZXhjZXB0aW9uIGZyb20gc3RvcmUu
cHV0KGRvY3VtZW50LCAna2V5JykKK1BBU1MgRXhjZXB0aW9uIHdhcyB0aHJvd24uCitQQVNTIGNv
ZGUgaXMgRE9NRXhjZXB0aW9uLkRBVEFfQ0xPTkVfRVJSCitFeHBlY3RpbmcgZXhjZXB0aW9uIGZy
b20gc3RvcmUucHV0KGRvY3VtZW50LmJvZHksICdrZXknKQorUEFTUyBFeGNlcHRpb24gd2FzIHRo
cm93bi4KK1BBU1MgY29kZSBpcyBET01FeGNlcHRpb24uREFUQV9DTE9ORV9FUlIKK1BBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9zdHJ1Y3R1cmVkLWNsb25lLmh0bWwgYi9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9zdHJ1Y3R1cmVkLWNsb25lLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNjM0OGZhYmY1MjgwNDNmYjc2N2ZmOGMxMTA2YTI0NWM2MDA3ZDNjNQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3N0cnVjdHVyZWQtY2xvbmUuaHRt
bApAQCAtMCwwICsxLDU1MCBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9m
YXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL3NoYXJlZC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxpbnB1dCB0
eXBlPSJmaWxlIiBpZD0iZmlsZUlucHV0IiBtdWx0aXBsZT48L2lucHV0PgorPHAgaWQ9ImRlc2Ny
aXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+CisKK2Rlc2Ny
aXB0aW9uKCJUZXN0IHN0cnVjdHVyZWQgY2xvbmUgcGVybXV0YXRpb25zIGluIEluZGV4ZWREQi4g
RmlsZS9GaWxlTGlzdCB0ZXN0cyByZXF1aXJlIER1bXBSZW5kZXJUcmVlLiIpOworaWYgKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50
aWxEb25lKCk7CisKK2lmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAgICB2YXIgZmlsZUlucHV0
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGVJbnB1dCIpOworICAgIHZhciBmaWxlUmVj
dCA9IGZpbGVJbnB1dC5nZXRDbGllbnRSZWN0cygpWzBdOworICAgIHZhciB0YXJnZXRYID0gZmls
ZVJlY3QubGVmdCArIGZpbGVSZWN0LndpZHRoIC8gMjsKKyAgICB2YXIgdGFyZ2V0WSA9IGZpbGVS
ZWN0LnRvcCArIGZpbGVSZWN0LmhlaWdodCAvIDI7CisgICAgZXZlbnRTZW5kZXIuYmVnaW5EcmFn
V2l0aEZpbGVzKFsncmVzb3VyY2VzL3Rlc3QtZGF0YS5odG1sJywgJ3Jlc291cmNlcy90ZXN0LWRh
dGEudHh0J10pOworICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHRhcmdldFgsIHRhcmdldFkp
OworICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKK30KKworZnVuY3Rpb24gdGVzdCgpCit7Cisg
ICAgZXZhbEFuZExvZygiaW5kZXhlZERCID0gd2luZG93LmluZGV4ZWREQiB8fCB3aW5kb3cud2Vi
a2l0SW5kZXhlZERCIik7CisgICAgc2hvdWxkQmVUcnVlKCJpbmRleGVkREIgIT0gbnVsbCIpOwor
ICAgIGV2YWxBbmRMb2coIklEQlRyYW5zYWN0aW9uID0gd2luZG93LklEQlRyYW5zYWN0aW9uIHx8
IHdpbmRvdy53ZWJraXRJREJUcmFuc2FjdGlvbiIpOworICAgIHNob3VsZEJlVHJ1ZSgiSURCVHJh
bnNhY3Rpb24gIT0gbnVsbCIpOworICAgIHByZXBhcmVEYXRhYmFzZSgpOworfQorCitmdW5jdGlv
biBwcmVwYXJlRGF0YWJhc2UoKQoreworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1ZygiUHJlcGFy
ZSBEYXRhYmFzZSIpOworICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIuZGVsZXRl
RGF0YWJhc2UoJ3N0cnVjdHVyZWQtY2xvbmUnKSIpOworICAgIHJlcXVlc3Qub25lcnJvciA9IHVu
ZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24o
ZSkgeworICAgICAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLm9wZW4oJ3N0cnVj
dHVyZWQtY2xvbmUnKSIpOworICAgICAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJy
b3JDYWxsYmFjazsKKyAgICAgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7Cisg
ICAgICAgICAgICBldmFsQW5kTG9nKCJkYiA9IHJlcXVlc3QucmVzdWx0Iik7CisgICAgICAgICAg
ICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImRiLnZlcnNpb24iLCAiIik7CisgICAgICAgICAgICBy
ZXF1ZXN0ID0gZXZhbEFuZExvZygiZGIuc2V0VmVyc2lvbignMScpIik7CisgICAgICAgICAgICBy
ZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKKyAgICAgICAgICAgIHJl
cXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgICAgIGV2YWxBbmRM
b2coImRiLmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZU5hbWUnKSIpOworICAgICAgICAgICAgICAg
IHZhciB0cmFucyA9IHJlcXVlc3QucmVzdWx0OworICAgICAgICAgICAgICAgIHRyYW5zLm9uZXJy
b3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKKyAgICAgICAgICAgICAgICB0cmFucy5vbmFi
b3J0ID0gdW5leHBlY3RlZEFib3J0Q2FsbGJhY2s7CisgICAgICAgICAgICAgICAgdHJhbnMub25j
b21wbGV0ZSA9IHN0YXJ0VGVzdHM7CisgICAgICAgICAgICB9OworICAgICAgICB9OworICAgIH07
Cit9CisKK2Z1bmN0aW9uIHN0YXJ0VGVzdHMoKQoreworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1
ZygiUnVubmluZyB0ZXN0cy4uLiIpOworICAgIHZhciB0ZXN0c190b19ydW4gPSBbCisgICAgICAg
IHRlc3RVbmRlZmluZWQsCisgICAgICAgIHRlc3ROdWxsLAorICAgICAgICB0ZXN0Qm9vbGVhbiwK
KyAgICAgICAgdGVzdE51bWJlciwKKyAgICAgICAgdGVzdFN0cmluZywKKyAgICAgICAgdGVzdEJv
b2xlYW5PYmplY3QsCisgICAgICAgIHRlc3ROdW1iZXJPYmplY3QsCisgICAgICAgIHRlc3RTdHJp
bmdPYmplY3QsCisgICAgICAgIHRlc3REYXRlT2JqZWN0LAorICAgICAgICB0ZXN0UmVnRXhwT2Jq
ZWN0LAorICAgICAgICB0ZXN0SW1hZ2VEYXRhLAorICAgICAgICB0ZXN0QmxvYiwKKyAgICAgICAg
dGVzdEZpbGUsCisgICAgICAgIHRlc3RGaWxlTGlzdCwKKyAgICAgICAgdGVzdEFycmF5LAorICAg
ICAgICB0ZXN0T2JqZWN0CisgICAgXTsKKworICAgIGZ1bmN0aW9uIG5leHRUZXN0KCkgeworICAg
ICAgICBkZWJ1ZygiIik7CisgICAgICAgIGlmICh0ZXN0c190b19ydW4ubGVuZ3RoKSB7CisgICAg
ICAgICAgICB2YXIgdGVzdCA9IHRlc3RzX3RvX3J1bi5zaGlmdCgpOworICAgICAgICAgICAgdGVz
dChuZXh0VGVzdCk7IC8vIFdoZW4gZG9uZSwgY2FsbCB0aGlzIGFnYWluLgorICAgICAgICB9IGVs
c2UgeworICAgICAgICAgICAgdGVzdEJhZFR5cGVzKCk7CisgICAgICAgIH0KKyAgICB9CisgICAg
bmV4dFRlc3QoKTsKK30KKworZnVuY3Rpb24gZm9yRWFjaFdpdGhDYWxsYmFjayh0ZXN0RnVuY3Rp
b24sIHZhbHVlcywgY2FsbGJhY2spCit7CisgICAgZnVuY3Rpb24gbmV4dFZhbHVlKCkgeworICAg
ICAgICBpZiAodmFsdWVzLmxlbmd0aCkgeworICAgICAgICAgICAgdGVzdEZ1bmN0aW9uKHZhbHVl
cy5zaGlmdCgpLCBuZXh0VmFsdWUpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgY2Fs
bGJhY2soKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIG5leHRWYWx1ZSgpOworfQorCitmdW5j
dGlvbiB0ZXN0VmFsdWUodmFsdWUsIGNhbGxiYWNrKQoreworICAgIC8vIE9uZSB0cmFuc2FjdGlv
biBwZXIgdGVzdCwgc2luY2Ugc29tZSB0ZXN0cyByZXF1aXJlIGFzeW5jaHJvbm91cworICAgIC8v
IG9wZXJhdGlvbnMgdG8gdmVyaWZ5IHRoZSByZXN1bHQgKGUuZy4gdmlhIEZpbGVSZWFkZXIpCisg
ICAgZXZhbEFuZExvZygidHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1lJywg
SURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSkiKTsKKyAgICB0cmFuc2FjdGlvbi5vbmVycm9yID0g
dW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CisgICAgdHJhbnNhY3Rpb24ub25hYm9ydCA9IHVuZXhw
ZWN0ZWRBYm9ydENhbGxiYWNrOworICAgIGV2YWxBbmRMb2coInN0b3JlID0gdHJhbnNhY3Rpb24u
b2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpIik7CisKKyAgICBkZWJ1ZygidmFsdWUgaXM6ICIgKyBT
dHJpbmcodmFsdWUpICsgIiAodHlwZTogIiArIHR5cGVvZiB2YWx1ZSArICIpIik7CisgICAgd2lu
ZG93LnZhbHVlID0gdmFsdWU7CisgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coInN0b3JlLnB1dCh2
YWx1ZSwgJ2tleScpIik7CisgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2Fs
bGJhY2s7CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIHJl
cXVlc3QgPSBldmFsQW5kTG9nKCJzdG9yZS5nZXQoJ2tleScpIik7CisgICAgICAgIHJlcXVlc3Qu
b25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworICAgICAgICByZXF1ZXN0Lm9uc3Vj
Y2VzcyA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIC8vZGVidWcoImdvdCBiYWNrOiAiICsg
U3RyaW5nKHJlcXVlc3QucmVzdWx0KSArICIgKHR5cGU6ICIgKyB0eXBlb2YgcmVxdWVzdC5yZXN1
bHQgKyAiKSIpOworICAgICAgICAgICAgY2FsbGJhY2socmVxdWVzdC5yZXN1bHQpOworICAgICAg
ICB9OworICAgIH07Cit9CisKKy8vIElkZW50aXR5IHRlc3RpbmcsIHNlbnNpdGl2ZSB0byBOYU4g
YW5kIC0wCitmdW5jdGlvbiBpcyh4LCB5KSB7CisgICAgaWYgKHggPT09IHkpIHsKKyAgICAgICAg
cmV0dXJuIHggIT09IDAgfHwgMSAvIHggPT09IDEgLyB5OworICAgIH0KKyAgICByZXR1cm4geCAh
PT0geCAmJiB5ICE9PSB5OworfQorCitmdW5jdGlvbiBhcnJheUNvbXBhcmUoYSwgYikgeworICAg
IGlmIChhLmxlbmd0aCAhPT0gYi5sZW5ndGgpIHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
IH0KKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IGEubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgaWYg
KCFpcyhhW2ldLCBiW2ldKSkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9
CisgICAgfQorICAgIHJldHVybiB0cnVlOworfQorCitmdW5jdGlvbiB0ZXN0UHJpbWl0aXZlVmFs
dWUoc3RyaW5nLCBjYWxsYmFjaykKK3sKKyAgICBkZWJ1ZygiVGVzdGluZzogIiArIHN0cmluZyk7
CisgICAgdmFyIHZhbHVlID0gZXZhbCgidmFsdWUgPSAoIiArIHN0cmluZyArICIpIik7CisgICAg
dGVzdF9kYXRhID0gdmFsdWU7CisgICAgdGVzdFZhbHVlKHRlc3RfZGF0YSwgZnVuY3Rpb24ocmVz
dWx0KSB7CisgICAgICAgIHdpbmRvdy5yZXN1bHQgPSByZXN1bHQ7CisgICAgICAgIHNob3VsZEJl
VHJ1ZSgiaXModGVzdF9kYXRhLCByZXN1bHQpIik7CisgICAgICAgIGRlYnVnKCIiKTsKKyAgICAg
ICAgY2FsbGJhY2soKTsKKyAgICB9KTsKK30KKworZnVuY3Rpb24gdGVzdE9iamVjdFdpdGhWYWx1
ZShzdHJpbmcsIGNhbGxiYWNrKQoreworICAgIGRlYnVnKCJUZXN0aW5nOiAiICsgc3RyaW5nKTsK
KyAgICB2YXIgdmFsdWUgPSBldmFsKCJ2YWx1ZSA9ICgiICsgc3RyaW5nICsgIikiKTsKKyAgICB0
ZXN0X2RhdGEgPSB2YWx1ZTsKKyAgICB0ZXN0VmFsdWUodGVzdF9kYXRhLCBmdW5jdGlvbihyZXN1
bHQpIHsKKyAgICAgICAgd2luZG93LnJlc3VsdCA9IHJlc3VsdDsKKyAgICAgICAgZGVidWcoIlN0
cmluZyhyZXN1bHQpOiAiICsgU3RyaW5nKHJlc3VsdCkpOworICAgICAgICBzaG91bGRCZUVxdWFs
VG9TdHJpbmcoInR5cGVvZiByZXN1bHQiLCAib2JqZWN0Iik7CisgICAgICAgIHNob3VsZEJlKCJP
YmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwocmVzdWx0KSIsICJPYmplY3QucHJvdG90eXBl
LnRvU3RyaW5nLmNhbGwodGVzdF9kYXRhKSIpOworICAgICAgICBzaG91bGRCZVRydWUoInRlc3Rf
ZGF0YSAhPT0gcmVzdWx0Iik7CisgICAgICAgIHNob3VsZEJlKCJyZXN1bHQudG9TdHJpbmcoKSIs
ICJ0ZXN0X2RhdGEudG9TdHJpbmcoKSIpOworICAgICAgICBzaG91bGRCZVRydWUoImlzKHRlc3Rf
ZGF0YS52YWx1ZU9mKCksIHJlc3VsdC52YWx1ZU9mKCkpIik7CisgICAgICAgIGRlYnVnKCIiKTsK
KyAgICAgICAgY2FsbGJhY2soKTsKKyAgICB9KTsKK30KKworZnVuY3Rpb24gdGVzdFVuZGVmaW5l
ZChjYWxsYmFjaykKK3sKKyAgICB0ZXN0UHJpbWl0aXZlVmFsdWUoInVuZGVmaW5lZCIsIGNhbGxi
YWNrKTsKK30KKworZnVuY3Rpb24gdGVzdE51bGwoY2FsbGJhY2spCit7CisgICAgdGVzdFByaW1p
dGl2ZVZhbHVlKCJudWxsIiwgY2FsbGJhY2spOworfQorCitmdW5jdGlvbiB0ZXN0Qm9vbGVhbihj
YWxsYmFjaykKK3sKKyAgICBkZWJ1ZygiVGVzdGluZyBib29sZWFuIHByaW1pdGl2ZXMiKTsKKyAg
ICBkZWJ1ZygiIik7CisgICAgZm9yRWFjaFdpdGhDYWxsYmFjayh0ZXN0UHJpbWl0aXZlVmFsdWUs
IFsidHJ1ZSIsICJmYWxzZSJdLCBjYWxsYmFjayk7Cit9CisKK2Z1bmN0aW9uIHRlc3RCb29sZWFu
T2JqZWN0KGNhbGxiYWNrKQoreworICAgIGRlYnVnKCJUZXN0aW5nIEJvb2xlYW4gb2JqZWN0cyIp
OworICAgIGRlYnVnKCIiKTsKKyAgICBmb3JFYWNoV2l0aENhbGxiYWNrKHRlc3RPYmplY3RXaXRo
VmFsdWUsIFsKKyAgICAgICAgIm5ldyBCb29sZWFuKHRydWUpIiwKKyAgICAgICAgIm5ldyBCb29s
ZWFuKGZhbHNlKSIKKyAgICBdLCBjYWxsYmFjayk7Cit9CisKK2Z1bmN0aW9uIHRlc3RTdHJpbmco
Y2FsbGJhY2spCit7CisgICAgZGVidWcoIlRlc3Rpbmcgc3RyaW5nIHByaW1pdGl2ZXMiKTsKKyAg
ICBkZWJ1ZygiIik7CisgICAgZm9yRWFjaFdpdGhDYWxsYmFjayh0ZXN0UHJpbWl0aXZlVmFsdWUs
IFsKKyAgICAgICAgIicnIiwKKyAgICAgICAgIid0aGlzIGlzIGEgc2FtcGxlIHN0cmluZyciLAor
ICAgICAgICAiJ251bGwoXFwwKSciCisgICAgXSwgY2FsbGJhY2spOworfQorCitmdW5jdGlvbiB0
ZXN0U3RyaW5nT2JqZWN0KGNhbGxiYWNrKQoreworICAgIGRlYnVnKCJUZXN0aW5nIFN0cmluZyBv
YmplY3RzIik7CisgICAgZGVidWcoIiIpOworICAgIGZvckVhY2hXaXRoQ2FsbGJhY2sodGVzdE9i
amVjdFdpdGhWYWx1ZSwgWworICAgICAgICAibmV3IFN0cmluZygpIiwKKyAgICAgICAgIm5ldyBT
dHJpbmcoJ3RoaXMgaXMgYSBzYW1wbGUgc3RyaW5nJykiLAorICAgICAgICAibmV3IFN0cmluZygn
bnVsbChcXDApJykiCisgICAgXSwgY2FsbGJhY2spOworfQorCitmdW5jdGlvbiB0ZXN0TnVtYmVy
KGNhbGxiYWNrKQoreworICAgIGRlYnVnKCJUZXN0aW5nIG51bWJlciBwcmltaXRpdmVzIik7Cisg
ICAgZGVidWcoIiIpOworICAgIGZvckVhY2hXaXRoQ2FsbGJhY2sodGVzdFByaW1pdGl2ZVZhbHVl
LCBbCisgICAgICAgICJOYU4iLAorICAgICAgICAiLUluZmluaXR5IiwKKyAgICAgICAgIi1OdW1i
ZXIuTUFYX1ZBTFVFIiwKKyAgICAgICAgIi1OdW1iZXIuTUlOX1ZBTFVFIiwKKyAgICAgICAgIi0w
IiwKKyAgICAgICAgIjAiLAorICAgICAgICAiTnVtYmVyLk1JTl9WQUxVRSIsCisgICAgICAgICJO
dW1iZXIuTUFYX1ZBTFVFIiwKKyAgICAgICAgIkluZmluaXR5IgorICAgIF0sIGNhbGxiYWNrKTsK
K30KKworZnVuY3Rpb24gdGVzdE51bWJlck9iamVjdChjYWxsYmFjaykKK3sKKyAgICBkZWJ1Zygi
VGVzdGluZyBOdW1iZXIgb2JqZWN0cyIpOworICAgIGRlYnVnKCIiKTsKKyAgICBmb3JFYWNoV2l0
aENhbGxiYWNrKHRlc3RPYmplY3RXaXRoVmFsdWUsIFsKKyAgICAgICAgIm5ldyBOdW1iZXIoTmFO
KSIsCisgICAgICAgICJuZXcgTnVtYmVyKC1JbmZpbml0eSkiLAorICAgICAgICAibmV3IE51bWJl
cigtTnVtYmVyLk1BWF9WQUxVRSkiLAorICAgICAgICAibmV3IE51bWJlcigtTnVtYmVyLk1JTl9W
QUxVRSkiLAorICAgICAgICAibmV3IE51bWJlcigtMCkiLAorICAgICAgICAibmV3IE51bWJlcigw
KSIsCisgICAgICAgICJuZXcgTnVtYmVyKE51bWJlci5NSU5fVkFMVUUpIiwKKyAgICAgICAgIm5l
dyBOdW1iZXIoTnVtYmVyLk1BWF9WQUxVRSkiLAorICAgICAgICAibmV3IE51bWJlcihJbmZpbml0
eSkiCisgICAgXSwgY2FsbGJhY2spOworfQorCitmdW5jdGlvbiB0ZXN0RGF0ZU9iamVjdChjYWxs
YmFjaykKK3sKKyAgICBkZWJ1ZygiVGVzdGluZyBEYXRlIG9iamVjdHMiKTsKKyAgICBkZWJ1Zygi
Iik7CisgICAgZm9yRWFjaFdpdGhDYWxsYmFjayh0ZXN0T2JqZWN0V2l0aFZhbHVlLCBbCisgICAg
ICAgICJuZXcgRGF0ZSgtMWUxMykiLAorICAgICAgICAibmV3IERhdGUoLTFlMTIpIiwKKyAgICAg
ICAgIm5ldyBEYXRlKC0xZTkpIiwKKyAgICAgICAgIm5ldyBEYXRlKC0xZTYpIiwKKyAgICAgICAg
Im5ldyBEYXRlKC0xZTMpIiwKKyAgICAgICAgIm5ldyBEYXRlKDApIiwKKyAgICAgICAgIm5ldyBE
YXRlKDFlMykiLAorICAgICAgICAibmV3IERhdGUoMWU2KSIsCisgICAgICAgICJuZXcgRGF0ZSgx
ZTkpIiwKKyAgICAgICAgIm5ldyBEYXRlKDFlMTIpIiwKKyAgICAgICAgIm5ldyBEYXRlKDFlMTMp
IgorICAgIF0sIGNhbGxiYWNrKTsKK30KKworZnVuY3Rpb24gdGVzdFJlZ0V4cE9iamVjdChjYWxs
YmFjaykKK3sKKyAgICBkZWJ1ZygiVGVzdGluZyBSZWdFeHAgb2JqZWN0cyIpOworICAgIGRlYnVn
KCIiKTsKKyAgICBmdW5jdGlvbiB0ZXN0UmVnRXhwKHN0cmluZywgY2FsbGJhY2spIHsKKyAgICAg
ICAgZGVidWcoIlRlc3RpbmcgUmVnRXhwOiAiICsgc3RyaW5nKTsKKyAgICAgICAgdmFyIHZhbHVl
ID0gZXZhbCgidmFsdWUgPSAoIiArIHN0cmluZyArICIpIik7CisgICAgICAgIHRlc3RfZGF0YSA9
IHZhbHVlOworICAgICAgICB0ZXN0VmFsdWUodGVzdF9kYXRhLCBmdW5jdGlvbihyZXN1bHQpIHsK
KyAgICAgICAgICAgIHdpbmRvdy5yZXN1bHQgPSByZXN1bHQ7CisgICAgICAgICAgICBzaG91bGRC
ZVRydWUoInRlc3RfZGF0YSAhPT0gcmVzdWx0Iik7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFs
VG9TdHJpbmcoIk9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChyZXN1bHQpIiwgIltvYmpl
Y3QgUmVnRXhwXSIpOworICAgICAgICAgICAgc2hvdWxkQmUoInJlc3VsdC50b1N0cmluZygpIiwg
InRlc3RfZGF0YS50b1N0cmluZygpIik7CisgICAgICAgICAgICBkZWJ1ZygiIik7CisgICAgICAg
ICAgICBjYWxsYmFjaygpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBmb3JFYWNoV2l0aENh
bGxiYWNrKHRlc3RSZWdFeHAsIFsKKyAgICAgICAgIm5ldyBSZWdFeHAoKSIsCisgICAgICAgICIv
YWJjLyIsCisgICAgICAgICIvYWJjL2ciLAorICAgICAgICAiL2FiYy9pIiwKKyAgICAgICAgIi9h
YmMvZ2kiLAorICAgICAgICAiL2FiYy9tIiwKKyAgICAgICAgIi9hYmMvbWciLAorICAgICAgICAi
L2FiYy9taSIsCisgICAgICAgICIvYWJjL21naSIKKyAgICBdLCBjYWxsYmFjayk7Cit9CisKK2Z1
bmN0aW9uIHRlc3RJbWFnZURhdGEoY2FsbGJhY2spCit7CisgICAgZGVidWcoIlRlc3RpbmcgSW1h
Z2VEYXRhIik7CisgICAgZXZhbEFuZExvZygiY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgnY2FudmFzJykiKTsKKyAgICBldmFsQW5kTG9nKCJjYW52YXMud2lkdGggPSA4Iik7CisgICAg
ZXZhbEFuZExvZygiY2FudmFzLmhlaWdodCA9IDgiKTsKKyAgICBldmFsQW5kTG9nKCJ0ZXN0X2Rh
dGEgPSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKS5nZXRJbWFnZURhdGEoMCwgMCwgOCwgOCkiKTsK
KworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMjU2OyArK2kpIHsKKyAgICAgICAgdGVzdF9kYXRh
LmRhdGFbaV0gPSBpOworICAgIH0KKworICAgIHRlc3RWYWx1ZSh0ZXN0X2RhdGEsIGZ1bmN0aW9u
KHJlc3VsdCkgeworICAgICAgICB3aW5kb3cucmVzdWx0ID0gcmVzdWx0OworICAgICAgICBzaG91
bGRCZVRydWUoInRlc3RfZGF0YSAhPT0gcmVzdWx0Iik7CisgICAgICAgIHNob3VsZEJlRXF1YWxU
b1N0cmluZygiT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHJlc3VsdCkiLCAiW29iamVj
dCBJbWFnZURhdGFdIik7CisgICAgICAgIHNob3VsZEJlKCJyZXN1bHQud2lkdGgiLCAidGVzdF9k
YXRhLndpZHRoIik7CisgICAgICAgIHNob3VsZEJlKCJyZXN1bHQuaGVpZ2h0IiwgInRlc3RfZGF0
YS5oZWlnaHQiKTsKKyAgICAgICAgc2hvdWxkQmUoInJlc3VsdC5kYXRhLmxlbmd0aCIsICJ0ZXN0
X2RhdGEuZGF0YS5sZW5ndGgiKTsKKyAgICAgICAgaWYgKGFycmF5Q29tcGFyZSh0ZXN0X2RhdGEu
ZGF0YSwgcmVzdWx0LmRhdGEpKSB7CisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJyZXN1bHQgZGF0
YSBtYXRjaGVzIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJy
ZXN1bHQgZGF0YSBkb2Vzbid0IG1hdGNoIik7CisgICAgICAgIH0KKyAgICAgICAgY2FsbGJhY2so
KTsKKyAgICB9KTsKK30KKworZnVuY3Rpb24gcmVhZEJsb2JBc1RleHQoYmxvYiwgY2FsbGJhY2sp
Cit7CisgICAgdmFyIHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7CisgICAgcmVhZGVyLm9ubG9h
ZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgaWYgKGUudGFyZ2V0LnJlYWR5U3RhdGUgPT09IEZp
bGVSZWFkZXIuRE9ORSkgeworICAgICAgICAgICAgY2FsbGJhY2soZS50YXJnZXQucmVzdWx0KTsK
KyAgICAgICAgfQorICAgIH07CisgICAgcmVhZGVyLm9uZXJyb3IgPSBmdW5jdGlvbihlKSB7Cisg
ICAgICAgIHRlc3RGYWlsZWQoIkVycm9yIHJlYWRpbmcgYmxvYiBhcyB0ZXh0OiAiICsgZSk7Cisg
ICAgICAgIGRvbmUoKTsKKyAgICB9OworICAgIHJlYWRlci5yZWFkQXNUZXh0KGJsb2IpOworfQor
CitmdW5jdGlvbiBjaGVja0Jsb2JDb250ZW50cyhibG9iLCBleHBlY3RlZCwgY2FsbGJhY2spCit7
CisgICAgcmVhZEJsb2JBc1RleHQoYmxvYiwgZnVuY3Rpb24odGV4dCkgeworICAgICAgICB3aW5k
b3cudGV4dCA9IHRleHQ7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygidGV4dCIsIGV4
cGVjdGVkKTsKKyAgICAgICAgY2FsbGJhY2soKTsKKyAgICB9KTsKK30KKworZnVuY3Rpb24gY29t
cGFyZUJsb2JzKGJsb2IxLCBibG9iMiwgY2FsbGJhY2spCit7CisgICAgcmVhZEJsb2JBc1RleHQo
YmxvYjEsIGZ1bmN0aW9uKHRleHQxKSB7CisgICAgICAgIHJlYWRCbG9iQXNUZXh0KGJsb2IyLCBm
dW5jdGlvbih0ZXh0MikgeworICAgICAgICAgICAgd2luZG93LnRleHQxID0gdGV4dDE7CisgICAg
ICAgICAgICB3aW5kb3cudGV4dDIgPSB0ZXh0MjsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxU
b1N0cmluZygidGV4dDIiLCB0ZXh0MSk7CisgICAgICAgICAgICBjYWxsYmFjaygpOworICAgICAg
ICB9KTsKKyAgICB9KTsKK30KKworZnVuY3Rpb24gdGVzdEJsb2IoY2FsbGJhY2spCit7CisgICAg
ZGVidWcoIlRlc3RpbmcgQmxvYiIpOworCisgICAgLy8gRklYTUU6IEJsb2IsIEZpbGUsIGFuZCBG
aWxlTGlzdCBzdXBwb3J0IGlzIGluY29tcGxldGUuCisgICAgLy8gaHR0cDovL2NyYnVnLmNvbS8x
MDgwMTIKKyAgICBkZWJ1ZygiU2tpcHBpbmcgdGVzdCIpOworICAgIGNhbGxiYWNrKCk7CisgICAg
cmV0dXJuOworCisgICAgZXZhbEFuZExvZygiQmxvYkJ1aWxkZXIgPSB3aW5kb3cuQmxvYkJ1aWxk
ZXIgfHwgd2luZG93LldlYktpdEJsb2JCdWlsZGVyIik7CisgICAgc2hvdWxkQmVUcnVlKCJCbG9i
QnVpbGRlciAhPSBudWxsIik7CisgICAgc2hvdWxkQmVUcnVlKCJGaWxlUmVhZGVyICE9IG51bGwi
KTsKKyAgICBldmFsQW5kTG9nKCJidWlsZGVyID0gbmV3IEJsb2JCdWlsZGVyKCkiKTsKKyAgICBl
dmFsQW5kTG9nKCJ0ZXN0X2NvbnRlbnQgPSAnVGhpcyBpcyBhIHRlc3QuIFRoaXMgaXMgb25seSBh
IHRlc3QuJyIpOworICAgIGV2YWxBbmRMb2coImJ1aWxkZXIuYXBwZW5kKHRlc3RfY29udGVudCki
KTsKKyAgICBldmFsQW5kTG9nKCJ0ZXN0X2RhdGEgPSBidWlsZGVyLmdldEJsb2IoKSIpOworICAg
IHRlc3RWYWx1ZSh0ZXN0X2RhdGEsIGZ1bmN0aW9uKHJlc3VsdCkgeworICAgICAgICB3aW5kb3cu
cmVzdWx0ID0gcmVzdWx0OworICAgICAgICBzaG91bGRCZVRydWUoInRlc3RfZGF0YSAhPT0gcmVz
dWx0Iik7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiT2JqZWN0LnByb3RvdHlwZS50
b1N0cmluZy5jYWxsKHJlc3VsdCkiLCAiW29iamVjdCBCbG9iXSIpOworICAgICAgICBzaG91bGRC
ZSgicmVzdWx0LnNpemUiLCAidGVzdF9kYXRhLnNpemUiKTsKKyAgICAgICAgc2hvdWxkQmUoInJl
c3VsdC50eXBlIiwgInRlc3RfZGF0YS50eXBlIik7CisgICAgICAgIGNoZWNrQmxvYkNvbnRlbnRz
KHJlc3VsdCwgdGVzdF9jb250ZW50LCBjYWxsYmFjayk7CisgICAgfSk7Cit9CisKK2Z1bmN0aW9u
IGNvbXBhcmVGaWxlcyhmaWxlMSwgZmlsZTIsIGNhbGxiYWNrKQoreworICAgIHdpbmRvdy5maWxl
MSA9IGZpbGUxOworICAgIHdpbmRvdy5maWxlMiA9IGZpbGUyOworICAgIHNob3VsZEJlVHJ1ZSgi
ZmlsZTEgIT09IGZpbGUyIik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJPYmplY3QucHJv
dG90eXBlLnRvU3RyaW5nLmNhbGwoZmlsZTEpIiwgIltvYmplY3QgRmlsZV0iKTsKKyAgICBzaG91
bGRCZUVxdWFsVG9TdHJpbmcoIk9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChmaWxlMiki
LCAiW29iamVjdCBGaWxlXSIpOworICAgIGRlYnVnKCJmaWxlMS5zaXplOiAiICsgZmlsZTEuc2l6
ZSk7CisgICAgc2hvdWxkQmUoImZpbGUxLnNpemUiLCAiZmlsZTIuc2l6ZSIpOworICAgIGRlYnVn
KCJmaWxlMS50eXBlOiAiICsgZmlsZTEudHlwZSk7CisgICAgc2hvdWxkQmUoImZpbGUxLnR5cGUi
LCAiZmlsZTIudHlwZSIpOworICAgIGRlYnVnKCJmaWxlMS5uYW1lOiAiICsgZmlsZTEubmFtZSk7
CisgICAgc2hvdWxkQmUoImZpbGUxLm5hbWUiLCAiZmlsZTIubmFtZSIpOworICAgIHNob3VsZEJl
KCJTdHJpbmcoZmlsZTEubGFzdE1vZGlmaWVkRGF0ZSkiLCAiU3RyaW5nKGZpbGUyLmxhc3RNb2Rp
ZmllZERhdGUpIik7CisgICAgaWYgKGNhbGxiYWNrKSB7CisgICAgICAgIGNvbXBhcmVCbG9icyhm
aWxlMSwgZmlsZTIsIGNhbGxiYWNrKTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIHRlc3RGaWxlKGNh
bGxiYWNrKQoreworICAgIGRlYnVnKCJUZXN0aW5nIEZpbGUiKTsKKworICAgIC8vIEZJWE1FOiBC
bG9iLCBGaWxlLCBhbmQgRmlsZUxpc3Qgc3VwcG9ydCBpcyBpbmNvbXBsZXRlLgorICAgIC8vIGh0
dHA6Ly9jcmJ1Zy5jb20vMTA4MDEyCisgICAgZGVidWcoIlNraXBwaW5nIHRlc3QiKTsKKyAgICBj
YWxsYmFjaygpOworICAgIHJldHVybjsKKworICAgIGV2YWxBbmRMb2coInRlc3RfY29udGVudCA9
IGZpbGVJbnB1dC5maWxlc1swXSIpOworCisgICAgd2luZG93LnRlc3RfZGF0YSA9IHRlc3RfY29u
dGVudDsKKyAgICB0ZXN0VmFsdWUodGVzdF9kYXRhLCBmdW5jdGlvbihyZXN1bHQpIHsKKyAgICAg
ICAgd2luZG93LnJlc3VsdCA9IHJlc3VsdDsKKyAgICAgICAgY29tcGFyZUZpbGVzKHJlc3VsdCwg
dGVzdF9kYXRhLCBjYWxsYmFjayk7CisgICAgfSk7Cit9CisKKworZnVuY3Rpb24gdGVzdEZpbGVM
aXN0KGNhbGxiYWNrKQoreworICAgIGRlYnVnKCJUZXN0aW5nIEZpbGVMaXN0Iik7CisKKyAgICAv
LyBGSVhNRTogQmxvYiwgRmlsZSwgYW5kIEZpbGVMaXN0IHN1cHBvcnQgaXMgaW5jb21wbGV0ZS4K
KyAgICAvLyBodHRwOi8vY3JidWcuY29tLzEwODAxMgorICAgIGRlYnVnKCJTa2lwcGluZyB0ZXN0
Iik7CisgICAgY2FsbGJhY2soKTsKKyAgICByZXR1cm47CisKKyAgICBldmFsQW5kTG9nKCJ0ZXN0
X2NvbnRlbnQgPSBmaWxlSW5wdXQuZmlsZXMiKTsKKworICAgIHdpbmRvdy50ZXN0X2RhdGEgPSB0
ZXN0X2NvbnRlbnQ7CisgICAgdGVzdFZhbHVlKHRlc3RfZGF0YSwgZnVuY3Rpb24ocmVzdWx0KSB7
CisgICAgICAgIHdpbmRvdy5yZXN1bHQgPSByZXN1bHQ7CisgICAgICAgIHNob3VsZEJlVHJ1ZSgi
dGVzdF9kYXRhICE9PSByZXN1bHQiKTsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJP
YmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwocmVzdWx0KSIsICJbb2JqZWN0IEZpbGVMaXN0
XSIpOworICAgICAgICBzaG91bGRCZSgicmVzdWx0Lmxlbmd0aCIsICJ0ZXN0X2RhdGEubGVuZ3Ro
Iik7CisgICAgICAgIGkgPSAwOworICAgICAgICBmdW5jdGlvbiBkb05leHQoKSB7CisgICAgICAg
ICAgICBpZiAoaSA+PSB0ZXN0X2RhdGEubGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgY2FsbGJh
Y2soKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZGVidWcoImNvbXBh
cmluZyBmaWxlWyIgKyBpICsgIl0iKTsKKyAgICAgICAgICAgICAgICBjb21wYXJlRmlsZXMocmVz
dWx0W2ldLCB0ZXN0X2RhdGFbaSsrXSwgZG9OZXh0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
fQorICAgICAgICBkb05leHQoKTsKKyAgICB9KTsKK30KKworZnVuY3Rpb24gdGVzdEFycmF5KGNh
bGxiYWNrKSB7CisgICAgZGVidWcoIlRlc3RpbmcgQXJyYXkiKTsKKyAgICBldmFsQW5kTG9nKCJ0
ZXN0X2RhdGEgPSBbXSIpOworICAgIGV2YWxBbmRMb2coInRlc3RfZGF0YVswXSA9ICdmb28nIik7
CisgICAgZXZhbEFuZExvZygidGVzdF9kYXRhWzFdID0gJ2JhciciKTsKKyAgICBldmFsQW5kTG9n
KCJ0ZXN0X2RhdGFbMTBdID0gdHJ1ZSIpOworICAgIGV2YWxBbmRMb2coInRlc3RfZGF0YVsxMV0g
PSBmYWxzZSIpOworICAgIGV2YWxBbmRMb2coInRlc3RfZGF0YVsyMF0gPSAxMjMiKTsKKyAgICBl
dmFsQW5kTG9nKCJ0ZXN0X2RhdGFbMjFdID0gNDU2Iik7CisgICAgZXZhbEFuZExvZygidGVzdF9k
YXRhWzMwXSA9IG51bGwiKTsKKworICAgIHRlc3RWYWx1ZSh0ZXN0X2RhdGEsIGZ1bmN0aW9uKHJl
c3VsdCkgeworICAgICAgICB3aW5kb3cucmVzdWx0ID0gcmVzdWx0OworICAgICAgICBzaG91bGRC
ZVRydWUoInRlc3RfZGF0YSAhPT0gcmVzdWx0Iik7CisgICAgICAgIHNob3VsZEJlVHJ1ZSgidGVz
dF9kYXRhLmxlbmd0aCA9PT0gcmVzdWx0Lmxlbmd0aCIpOworICAgICAgICBPYmplY3Qua2V5cyh0
ZXN0X2RhdGEpLmZvckVhY2goCisgICAgICAgICAgICBmdW5jdGlvbihrZXkpIHsKKyAgICAgICAg
ICAgICAgICBzaG91bGRCZSgidGVzdF9kYXRhWyIgKyBrZXkgKyAiXSIsICJyZXN1bHRbIiArIGtl
eSArICJdIik7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgY2FsbGJhY2soKTsKKyAgICB9KTsK
K30KKworZnVuY3Rpb24gdGVzdE9iamVjdChjYWxsYmFjaykgeworICAgIGRlYnVnKCJUZXN0aW5n
IE9iamVjdCIpOworICAgIGV2YWxBbmRMb2coInRlc3RfZGF0YSA9IFtdIik7CisgICAgZXZhbEFu
ZExvZygidGVzdF9kYXRhWzBdID0gJ2ZvbyciKTsKKyAgICBldmFsQW5kTG9nKCJ0ZXN0X2RhdGFb
MV0gPSAnYmFyJyIpOworICAgIGV2YWxBbmRMb2coInRlc3RfZGF0YVsnYSddID0gdHJ1ZSIpOwor
ICAgIGV2YWxBbmRMb2coInRlc3RfZGF0YVsnYiddID0gZmFsc2UiKTsKKyAgICBldmFsQW5kTG9n
KCJ0ZXN0X2RhdGFbJ2ZvbyddID0gMTIzIik7CisgICAgZXZhbEFuZExvZygidGVzdF9kYXRhWydi
YXInXSA9IDQ1NiIpOworICAgIGV2YWxBbmRMb2coInRlc3RfZGF0YVsnJ10gPSBudWxsIik7CisK
KyAgICB0ZXN0VmFsdWUodGVzdF9kYXRhLCBmdW5jdGlvbihyZXN1bHQpIHsKKyAgICAgICAgd2lu
ZG93LnJlc3VsdCA9IHJlc3VsdDsKKyAgICAgICAgc2hvdWxkQmVUcnVlKCJ0ZXN0X2RhdGEgIT09
IHJlc3VsdCIpOworICAgICAgICBzaG91bGRCZVRydWUoImFycmF5Q29tcGFyZShPYmplY3Qua2V5
cyhyZXN1bHQpLnNvcnQoKSwgT2JqZWN0LmtleXModGVzdF9kYXRhKS5zb3J0KCkpIik7CisgICAg
ICAgIE9iamVjdC5rZXlzKHRlc3RfZGF0YSkuZm9yRWFjaCgKKyAgICAgICAgICAgIGZ1bmN0aW9u
KGtleSkgeworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJ0ZXN0X2RhdGFbIiArIEpTT04uc3Ry
aW5naWZ5KGtleSkgKyAiXSIsICJyZXN1bHRbIiArIEpTT04uc3RyaW5naWZ5KGtleSkgKyAiXSIp
OworICAgICAgICAgICAgfSk7CisgICAgICAgIGNhbGxiYWNrKCk7CisgICAgfSk7Cit9CisKK2Z1
bmN0aW9uIHRlc3RCYWRUeXBlcygpCit7CisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJUZXN0
IHR5cGVzIHRoYXQgY2FuJ3QgYmUgY2xvbmVkOiIpOworICAgIGRlYnVnKCIiKTsKKworICAgIGV2
YWxBbmRMb2coInRyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24oJ3N0b3JlTmFtZScsIElEQlRy
YW5zYWN0aW9uLlJFQURfV1JJVEUpIik7CisgICAgZXZhbEFuZExvZygic3RvcmUgPSB0cmFuc2Fj
dGlvbi5vYmplY3RTdG9yZSgnc3RvcmVOYW1lJykiKTsKKyAgICB0cmFuc2FjdGlvbi5vbmVycm9y
ID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CisgICAgdHJhbnNhY3Rpb24ub25jb21wbGV0ZSA9
IHVuZXhwZWN0ZWRDb21wbGV0ZUNhbGxiYWNrOworICAgIHRyYW5zYWN0aW9uLm9uYWJvcnQgPSBk
b25lOworCisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJPdGhlciBKYXZhU2NyaXB0IG9iamVj
dCB0eXBlczoiKTsKKyAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJzdG9yZS5wdXQobmV3IEVy
cm9yLCAna2V5JykiLCAiRE9NRXhjZXB0aW9uLkRBVEFfQ0xPTkVfRVJSIik7CisgICAgZXZhbEFu
ZEV4cGVjdEV4Y2VwdGlvbigic3RvcmUucHV0KG5ldyBGdW5jdGlvbiwgJ2tleScpIiwgIkRPTUV4
Y2VwdGlvbi5EQVRBX0NMT05FX0VSUiIpOworCisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJP
dGhlciBob3N0IG9iamVjdCB0eXBlczoiKTsKKyAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJz
dG9yZS5wdXQod2luZG93LCAna2V5JykiLCAiRE9NRXhjZXB0aW9uLkRBVEFfQ0xPTkVfRVJSIik7
CisgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigic3RvcmUucHV0KGRvY3VtZW50LCAna2V5Jyki
LCAiRE9NRXhjZXB0aW9uLkRBVEFfQ0xPTkVfRVJSIik7CisgICAgZXZhbEFuZEV4cGVjdEV4Y2Vw
dGlvbigic3RvcmUucHV0KGRvY3VtZW50LmJvZHksICdrZXknKSIsICJET01FeGNlcHRpb24uREFU
QV9DTE9ORV9FUlIiKTsKK30KKwordGVzdCgpOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>