<?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>101998</bug_id>
          
          <creation_ts>2012-11-12 15:27:35 -0800</creation_ts>
          <short_desc>IndexedDB: non-trivial test conversion batch 2</short_desc>
          <delta_ts>2012-11-14 04:28:00 -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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="David Grogan">dgrogan</reporter>
          <assigned_to name="David Grogan">dgrogan</assigned_to>
          <cc>alecflett</cc>
    
    <cc>dglazkov</cc>
    
    <cc>gtk-ews</cc>
    
    <cc>haraken</cc>
    
    <cc>jochen</cc>
    
    <cc>jsbell</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>764885</commentid>
    <comment_count>0</comment_count>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-11-12 15:27:35 -0800</bug_when>
    <thetext>IndexedDB: non-trivial test conversion batch 2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764891</commentid>
    <comment_count>1</comment_count>
      <attachid>173740</attachid>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-11-12 15:37:32 -0800</bug_when>
    <thetext>Created attachment 173740
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764895</commentid>
    <comment_count>2</comment_count>
      <attachid>173743</attachid>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-11-12 15:43:05 -0800</bug_when>
    <thetext>Created attachment 173743
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764896</commentid>
    <comment_count>3</comment_count>
      <attachid>173744</attachid>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-11-12 15:43:55 -0800</bug_when>
    <thetext>Created attachment 173744
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764903</commentid>
    <comment_count>4</comment_count>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-11-12 15:49:20 -0800</bug_when>
    <thetext>Josh, could you take a look at these 5 tests?

delete-closed-database-object doesn&apos;t work in nrwt/DRT or stand-alone content_shell, only in nrwt/content_shell.  If I let it stay loaded in stand-alone content_shell the connection eventually does get gc&apos;d, allowing the other to proceed.  When you wrote this test, did you struggle with getting gc to collect the dead objects?  Any suggestions?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764909</commentid>
    <comment_count>5</comment_count>
      <attachid>173744</attachid>
    <who name="kov&apos;s GTK+ EWS bot">gtk-ews</who>
    <bug_when>2012-11-12 15:54:57 -0800</bug_when>
    <thetext>Comment on attachment 173744
Patch

Attachment 173744 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/14803914</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764974</commentid>
    <comment_count>6</comment_count>
      <attachid>173744</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-11-12 16:52:56 -0800</bug_when>
    <thetext>Comment on attachment 173744
Patch

lgtm...

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

&gt; LayoutTests/storage/indexeddb/resources/database-basics.js:58
&gt;      setVersionTrans.onabort = checkMetadata;

Can you change the  setVersionTrans.abort(); call following this line to use evalAndLog() ?

&gt; LayoutTests/storage/indexeddb/resources/database-closepending-flag.js:-74
&gt; -        // FIXME: Should verify &apos;blocked&apos; not fired. http://webkit.org/b/71130

Blocked event doesn&apos;t fire in the new code because we (incorrectly) enter a &quot;pending&quot; state before firing blocked when opening connections, right?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764978</commentid>
    <comment_count>7</comment_count>
      <attachid>173744</attachid>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-11-12 16:57:27 -0800</bug_when>
    <thetext>Comment on attachment 173744
Patch

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

Thanks for the review.  Any thoughts on the delete-closed-database-object troubles from comment 4?

&gt;&gt; LayoutTests/storage/indexeddb/resources/database-basics.js:58
&gt;&gt;      setVersionTrans.onabort = checkMetadata;
&gt; 
&gt; Can you change the  setVersionTrans.abort(); call following this line to use evalAndLog() ?

Will do.

&gt;&gt; LayoutTests/storage/indexeddb/resources/database-closepending-flag.js:-74
&gt;&gt; -        // FIXME: Should verify &apos;blocked&apos; not fired. http://webkit.org/b/71130
&gt; 
&gt; Blocked event doesn&apos;t fire in the new code because we (incorrectly) enter a &quot;pending&quot; state before firing blocked when opening connections, right?

I think we don&apos;t fire it because there are no other connections.  The previous connection is closed at line 46/25.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765372</commentid>
    <comment_count>8</comment_count>
      <attachid>173744</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-13 00:59:50 -0800</bug_when>
    <thetext>Comment on attachment 173744
Patch

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

New failing tests:
storage/indexeddb/delete-closed-database-object.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766133</commentid>
    <comment_count>9</comment_count>
      <attachid>174016</attachid>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-11-13 15:51:29 -0800</bug_when>
    <thetext>Created attachment 174016
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766134</commentid>
    <comment_count>10</comment_count>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-11-13 15:53:17 -0800</bug_when>
    <thetext>Tony, could you review this?

Patch 4 adds the requested evalAndLog and removes delete-closed-database-object test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766380</commentid>
    <comment_count>11</comment_count>
      <attachid>174016</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-13 21:04:23 -0800</bug_when>
    <thetext>Comment on attachment 174016
Patch

Clearing flags on attachment: 174016

Committed r134533: &lt;http://trac.webkit.org/changeset/134533&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766381</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-13 21:04:27 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766740</commentid>
    <comment_count>13</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-11-14 04:25:26 -0800</bug_when>
    <thetext>This patch causes a layout test failure on chromium:
http://code.google.com/p/chromium/issues/detail?id=160961

For the time being, we updated expectation results (in order to roll out WebKit DEPS). Would you fix the bug and re-update expectation results? See the above chromium issue for more details.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766742</commentid>
    <comment_count>14</comment_count>
    <who name="">jochen</who>
    <bug_when>2012-11-14 04:28:00 -0800</bug_when>
    <thetext>storage/indexeddb/database-basics.html now shows on content_browsertests. I&apos;ve temporarily disabled the test in chromium to not block the wk roll even longer

FAIL Error function called unexpectedly: (AbortError) Version change transaction was aborted in upgradeneeded event handler.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173740</attachid>
            <date>2012-11-12 15:37:32 -0800</date>
            <delta_ts>2012-11-12 15:43:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101998-20121112153534.patch</filename>
            <type>text/plain</type>
            <size>29920</size>
            <attacher name="David Grogan">dgrogan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0MjUyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNmNiMTlhMjQzMzdkY2E5MDNkOTc1
NWQxOGNmNDlkYzU2ZmQ3NDk2OC4uMGQwYzBjMGFhMjc1YzZhMWNlZWNjNmU0ZGYyZDhhMjI3MThm
ZDU2YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM4IEBACiAyMDEyLTExLTEyICBEYXZpZCBHcm9nYW4gIDxk
Z3JvZ2FuQGNocm9taXVtLm9yZz4KIAorICAgICAgICBJbmRleGVkREI6IG5vbi10cml2aWFsIHRl
c3QgY29udmVyc2lvbiBiYXRjaCAyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMDE5OTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBZGRpdGlvbmFsIGluZm9ybWF0aW9uIG9mIHRoZSBjaGFuZ2Ugc3VjaCBh
cyBhcHByb2FjaCwgcmF0aW9uYWxlLiBQbGVhc2UgYWRkIHBlci1mdW5jdGlvbiBkZXNjcmlwdGlv
bnMgYmVsb3cgKE9PUFMhKS4KKworICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1v
dmVybG9hZHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2N1cnNv
ci1vdmVybG9hZHMuaHRtbDoKKyAgICAgICAgICBUcml2aWFsIGNvbnZlcnNpb24gdGhhdCBJIG1p
c3NlZCBsYXN0IHRpbWUgYXJvdW5kLgorCisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvZGF0
YWJhc2UtYmFzaWNzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9k
YXRhYmFzZS1jbG9zZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIv
ZGF0YWJhc2UtY2xvc2VwZW5kaW5nLWZsYWctZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0b3Jh
Z2UvaW5kZXhlZGRiL2RlbGV0ZS1jbG9zZWQtZGF0YWJhc2Utb2JqZWN0LWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvZGF0YWJhc2UtYmFzaWNzLmpz
OgorICAgICAgICAgIFJlbW92ZWQgdGVzdCB0aGF0IHNob3dzIGNhbGxpbmcgc2V0VmVyc2lvbiBp
bnNpZGUgYSB2ZXJzaW9uIGNoYW5nZQorICAgICAgICAgIHRyYW5zYWN0aW9uIGlzIGFuIGVycm9y
LiBSZXBsYWNlZCB3aXRoIHRlc3Qgc2hvd2luZyBzYW1lIGVycm9yIGZvciBhCisgICAgICAgICAg
Z2VuZXJpYyB0cmFuc2FjdGlvbi4KKworICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3Jlc291
cmNlcy9kYXRhYmFzZS1jbG9zZS5qczoKKyAgICAgICAgICBGb3JtZXJseSB1c2VkIGJvdGggdW5i
bG9ja2VkIHNldFZlcnNpb24gYW5kIGRlbGV0ZURhdGFiYXNlIHRvIHNpZ25hbAorICAgICAgICAg
IHRoYXQgYSBjb25uZWN0aW9uIHdhcyBjbG9zZWQsIG5vdyBqdXN0IHVzZWQgZGVsZXRlRGF0YWJh
c2UuCisKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvZGF0YWJhc2UtY2xv
c2VwZW5kaW5nLWZsYWcuanM6CisgICAgICAgICAgU3RyYWlnaHRmb3J3YXJkLCBpdCBqdXN0IGhh
cyBtdWx0aXBsZSBvcGVucy4KKworICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNl
cy9kZWxldGUtY2xvc2VkLWRhdGFiYXNlLW9iamVjdC5qczoKKyAgICAgICAgICBJbnN0ZWFkIG9m
IHVzaW5nIHNldFZlcnNpb24gcHJvY2Vzc2lvbiB0byBpbmRpY2F0ZSB0aGUgZGF0YWJhc2UKKyAg
ICAgICAgICBjbG9zZWQsIHVzZSBhbiBvcGVuLXdpdGgtdmVyc2lvbiBjYWxsLgorCisyMDEyLTEx
LTEyICBEYXZpZCBHcm9nYW4gIDxkZ3JvZ2FuQGNocm9taXVtLm9yZz4KKwogICAgICAgICBJbmRl
eGVkREI6IENvbnZlcnQgc29tZSBub24tc2ltcGxlIHRlc3RzIGZyb20gc2V0VmVyc2lvbiB0byB1
cGdyYWRlbmVlZGVkCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMDE5NTkKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
Y3Vyc29yLW92ZXJsb2Fkcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9jdXJzb3Itb3ZlcmxvYWRzLWV4cGVjdGVkLnR4dAppbmRleCBjNDgwYzRkMzgwODQ4MzA5
ZTU3YjY3NTI5MDM4NzdjN2ZhZTIxZDM1Li4zODgwOWQzY2RjMTgwODg2YjhlOGNjOGRiM2E1YzAx
NzA3Y2JiZDM5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJz
b3Itb3ZlcmxvYWRzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9jdXJzb3Itb3ZlcmxvYWRzLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDMgQEAKLUNPTlNP
TEUgTUVTU0FHRTogVGhlIHNldFZlcnNpb24oKSBtZXRob2QgaXMgbm9uLXN0YW5kYXJkIGFuZCB3
aWxsIGJlIHJlbW92ZWQuIFVzZSB0aGUgInVwZ3JhZGVuZWVkZWQiIGV2ZW50IGluc3RlYWQuCiBD
T05TT0xFIE1FU1NBR0U6IE51bWVyaWMgZGlyZWN0aW9uIHZhbHVlcyBhcmUgZGVwcmVjYXRlZCBp
biBvcGVuQ3Vyc29yIGFuZCBvcGVuS2V5Q3Vyc29yLiBVc2UgIm5leHQiLCAibmV4dHVuaXF1ZSIs
ICJwcmV2Iiwgb3IgInByZXZ1bmlxdWUiLgogQ09OU09MRSBNRVNTQUdFOiBOdW1lcmljIGRpcmVj
dGlvbiB2YWx1ZXMgYXJlIGRlcHJlY2F0ZWQgaW4gb3BlbkN1cnNvciBhbmQgb3BlbktleUN1cnNv
ci4gVXNlICJuZXh0IiwgIm5leHR1bmlxdWUiLCAicHJldiIsIG9yICJwcmV2dW5pcXVlIi4KIENP
TlNPTEUgTUVTU0FHRTogTnVtZXJpYyBkaXJlY3Rpb24gdmFsdWVzIGFyZSBkZXByZWNhdGVkIGlu
IG9wZW5DdXJzb3IgYW5kIG9wZW5LZXlDdXJzb3IuIFVzZSAibmV4dCIsICJuZXh0dW5pcXVlIiwg
InByZXYiLCBvciAicHJldnVuaXF1ZSIuCkBAIC0zMCwxMiArMjksOSBAQCBPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURQogCiBpbmRleGVkREIgPSBzZWxmLmluZGV4ZWREQiB8fCBzZWxmLndlYmtpdElu
ZGV4ZWREQiB8fCBzZWxmLm1vekluZGV4ZWREQiB8fCBzZWxmLm1zSW5kZXhlZERCIHx8IHNlbGYu
T0luZGV4ZWREQjsKIAotZGJuYW1lID0gJ2N1cnNvci1vdmVybG9hZHMnCitkYm5hbWUgPSAiY3Vy
c29yLW92ZXJsb2Fkcy5odG1sIgogaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkKIGlu
ZGV4ZWREQi5vcGVuKGRibmFtZSkKLWRiID0gcmVxdWVzdC5yZXN1bHQKLVBBU1MgZGIudmVyc2lv
biBpcyAxCi1kYi5zZXRWZXJzaW9uKCcxJykKIHN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUo
J3N0b3JlJykKIGluZGV4ID0gc3RvcmUuY3JlYXRlSW5kZXgoJ2luZGV4JywgJ3ZhbHVlJykKIHN0
b3JlLnB1dCh7dmFsdWU6IDB9LCAwKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvY3Vyc29yLW92ZXJsb2Fkcy5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvY3Vyc29yLW92ZXJsb2Fkcy5odG1sCmluZGV4IGI0M2EzMTA3NjI0MGM1YWJlMDAxNGNi
ZDBkOTlhYTEyMzNlNWFiY2YuLjc2NzRkYzI4OWRmMmQyNjA3Y2RlMDkzZjE2OGI0YjE1YzdkMDg4
MmUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1vdmVy
bG9hZHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3Itb3Zl
cmxvYWRzLmh0bWwKQEAgLTQsMzUgKzQsMTQgQEAKIDxzY3JpcHQ+CiBkZXNjcmlwdGlvbigiVmFs
aWRhdGUgdGhlIG92ZXJsb2FkcyBvZiBJREJPYmplY3RTdG9yZS5vcGVuQ3Vyc29yKCksIElEQklu
ZGV4Lm9wZW5DdXJzb3IoKSBhbmQgSURCSW5kZXgub3BlbktleUN1cnNvcigpLiIpOwogCi1mdW5j
dGlvbiB0ZXN0KCkKLXsKLSAgICByZW1vdmVWZW5kb3JQcmVmaXhlcygpOwotICAgIHByZXBhcmVE
YXRhYmFzZSgpOwotfQotCitpbmRleGVkREJUZXN0KHByZXBhcmVEYXRhYmFzZSwgdmVyaWZ5T3Zl
cmxvYWRzKTsKIGZ1bmN0aW9uIHByZXBhcmVEYXRhYmFzZSgpCiB7Ci0gICAgZXZhbEFuZExvZygi
ZGJuYW1lID0gJ2N1cnNvci1vdmVybG9hZHMnIik7Ci0gICAgcmVxdWVzdCA9IGV2YWxBbmRMb2co
ImluZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpIik7Ci0gICAgcmVxdWVzdC5vbmVycm9y
ID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBmdW5j
dGlvbihlKSB7Ci0gICAgICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIub3Blbihk
Ym5hbWUpIik7Ci0gICAgICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxi
YWNrOwotICAgICAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAg
ICAgIGV2YWxBbmRMb2coImRiID0gcmVxdWVzdC5yZXN1bHQiKTsKLSAgICAgICAgICAgIHNob3Vs
ZEJlKCJkYi52ZXJzaW9uIiwgJzEnKTsKLSAgICAgICAgICAgIHJlcXVlc3QgPSBldmFsQW5kTG9n
KCJkYi5zZXRWZXJzaW9uKCcxJykiKTsKLSAgICAgICAgICAgIHJlcXVlc3Qub25lcnJvciA9IHVu
ZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotICAgICAgICAgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBm
dW5jdGlvbihlKSB7Ci0gICAgICAgICAgICAgICAgdHJhbnMgPSByZXF1ZXN0LnJlc3VsdDsKLSAg
ICAgICAgICAgICAgICBldmFsQW5kTG9nKCJzdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdz
dG9yZScpIik7Ci0gICAgICAgICAgICAgICAgZXZhbEFuZExvZygiaW5kZXggPSBzdG9yZS5jcmVh
dGVJbmRleCgnaW5kZXgnLCAndmFsdWUnKSIpOwotICAgICAgICAgICAgICAgIGV2YWxBbmRMb2co
InN0b3JlLnB1dCh7dmFsdWU6IDB9LCAwKSIpOwotICAgICAgICAgICAgICAgIHRyYW5zLm9uY29t
cGxldGUgPSB2ZXJpZnlPdmVybG9hZHM7Ci0KLSAgICAgICAgICAgIH07Ci0gICAgICAgIH07Ci0g
ICAgfTsKKyAgICBkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CisgICAgZXZlbnQudGFyZ2V0LnRy
YW5zYWN0aW9uLm9uYWJvcnQgPSB1bmV4cGVjdGVkQWJvcnRDYWxsYmFjazsKKyAgICBldmFsQW5k
TG9nKCJzdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZScpIik7CisgICAgZXZhbEFu
ZExvZygiaW5kZXggPSBzdG9yZS5jcmVhdGVJbmRleCgnaW5kZXgnLCAndmFsdWUnKSIpOworICAg
IGV2YWxBbmRMb2coInN0b3JlLnB1dCh7dmFsdWU6IDB9LCAwKSIpOwogfQogCiBmdW5jdGlvbiB2
ZXJpZnlPdmVybG9hZHMoKQpAQCAtMTIzLDcgKzEwMiw1IEBAIGZ1bmN0aW9uIGNoZWNrQ3Vyc29y
RGlyZWN0aW9uKHN0YXRlbWVudCwgZGlyZWN0aW9uKQogICAgIH07CiB9CiAKLXRlc3QoKTsKLQog
PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL2RhdGFiYXNlLWJhc2ljcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9kYXRhYmFzZS1iYXNpY3MtZXhwZWN0ZWQudHh0CmluZGV4IDM0YjFkZTI5MTdmYzVm
YzYwZjViNTA1NzgzOTZlZjIyZjRlMDQ3NWYuLjM5NGM4NTliMDU4OGY4ODViZmRkY2MyNzFiM2Ri
YzBiYTViODk5NDAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2Rh
dGFiYXNlLWJhc2ljcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvZGF0YWJhc2UtYmFzaWNzLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDMgQEAKLUNPTlNP
TEUgTUVTU0FHRTogVGhlIHNldFZlcnNpb24oKSBtZXRob2QgaXMgbm9uLXN0YW5kYXJkIGFuZCB3
aWxsIGJlIHJlbW92ZWQuIFVzZSB0aGUgInVwZ3JhZGVuZWVkZWQiIGV2ZW50IGluc3RlYWQuCiBU
ZXN0IHRoZSBiYXNpY3Mgb2YgSW5kZXhlZERCJ3MgSURCRGF0YWJhc2UuCiAKIE9uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KQEAgLTYsMjAgKzUsMTYgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUK
IAogaW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwg
c2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7
CiAKLWluZGV4ZWREQi5vcGVuKCdkYXRhYmFzZS1iYXNpY3MnKQotZGIgPSBldmVudC50YXJnZXQu
cmVzdWx0Ci1kYi5zZXRWZXJzaW9uKCduZXcgdmVyc2lvbicpCi1EZWxldGVkIGFsbCBvYmplY3Qg
c3RvcmVzLgotc2V0VmVyc2lvblN1Y2Nlc3MoKToKLVRlc3Rpbmcgc2V0VmVyc2lvbi4KLXJlcXVl
c3QgPSBkYi5zZXRWZXJzaW9uKCJ2ZXJzaW9uIGEiKQotRXhwZWN0aW5nIGV4Y2VwdGlvbiBmcm9t
IGRiLnNldFZlcnNpb24oInZlcnNpb24gYiIpCitkYm5hbWUgPSAiZGF0YWJhc2UtYmFzaWNzLmh0
bWwiCitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQoraW5kZXhlZERCLm9wZW4oZGJu
YW1lKQorVGVzdCB0aGF0IHlvdSBjYW4ndCBvcGVuIGEgdHJhbnNhY3Rpb24gd2hpbGUgaW4gYSB2
ZXJzaW9uY2hhbmdlIHRyYW5zYWN0aW9uCitFeHBlY3RpbmcgZXhjZXB0aW9uIGZyb20gZGIudHJh
bnNhY3Rpb24oImRvZXNudEV4aXN0IikKIFBBU1MgRXhjZXB0aW9uIHdhcyB0aHJvd24uCiBQQVNT
IGNvZGUgaXMgRE9NRXhjZXB0aW9uLklOVkFMSURfU1RBVEVfRVJSCiBQQVNTIGVuYW1lIGlzICdJ
bnZhbGlkU3RhdGVFcnJvcicKLWRiLnNldFZlcnNpb24oInZlcnNpb24gYiIpCi1QQVNTIGRiLnZl
cnNpb24gaXMgInZlcnNpb24gYiIKLVBBU1MgZGIubmFtZSBpcyAiZGF0YWJhc2UtYmFzaWNzIgor
UEFTUyBkYi52ZXJzaW9uIGlzIDEKK1BBU1MgZGIubmFtZSBpcyAiZGF0YWJhc2UtYmFzaWNzLmh0
bWwiCiBQQVNTIGRiLm9iamVjdFN0b3JlTmFtZXMgaXMgW10KIFBBU1MgZGIub2JqZWN0U3RvcmVO
YW1lcy5sZW5ndGggaXMgMAogUEFTUyBkYi5vYmplY3RTdG9yZU5hbWVzLmNvbnRhaW5zKCcnKSBp
cyBmYWxzZQpAQCAtMzEsMTggKzI2LDIwIEBAIFBBU1MgZGIub2JqZWN0U3RvcmVOYW1lcy5sZW5n
dGggaXMgMQogUEFTUyBkYi5vYmplY3RTdG9yZU5hbWVzLmNvbnRhaW5zKCcnKSBpcyBmYWxzZQog
UEFTUyBkYi5vYmplY3RTdG9yZU5hbWVzLmNvbnRhaW5zKCd0ZXN0NDU2JykgaXMgZmFsc2UKIFBB
U1MgZGIub2JqZWN0U3RvcmVOYW1lcy5jb250YWlucygndGVzdDEyMycpIGlzIHRydWUKLWRiLnNl
dFZlcnNpb24oInZlcnNpb24gYyIpCi1QQVNTIGRiLnZlcnNpb24gaXMgInZlcnNpb24gYyIKLVBB
U1MgZGIubmFtZSBpcyAiZGF0YWJhc2UtYmFzaWNzIgorZGIuY2xvc2UoKQorcmVxdWVzdCA9IGlu
ZGV4ZWREQi5vcGVuKGRibmFtZSwgMikKK2RiID0gZXZlbnQudGFyZ2V0LnJlc3VsdAorUEFTUyBk
Yi52ZXJzaW9uIGlzIDIKK1BBU1MgZGIubmFtZSBpcyAiZGF0YWJhc2UtYmFzaWNzLmh0bWwiCiBQ
QVNTIGRiLm9iamVjdFN0b3JlTmFtZXMgaXMgWyd0ZXN0MTIzJ10KIFBBU1MgZGIub2JqZWN0U3Rv
cmVOYW1lcy5sZW5ndGggaXMgMQogUEFTUyBkYi5vYmplY3RTdG9yZU5hbWVzLmNvbnRhaW5zKCcn
KSBpcyBmYWxzZQogUEFTUyBkYi5vYmplY3RTdG9yZU5hbWVzLmNvbnRhaW5zKCd0ZXN0NDU2Jykg
aXMgZmFsc2UKIFBBU1MgZGIub2JqZWN0U3RvcmVOYW1lcy5jb250YWlucygndGVzdDEyMycpIGlz
IHRydWUKIGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJ0ZXN0NDU2IikKLXNldFZlcnNpb25UcmFucyA9
IGV2ZW50LnRhcmdldC5yZXN1bHQKK3NldFZlcnNpb25UcmFucyA9IGV2ZW50LnRhcmdldC50cmFu
c2FjdGlvbgogUEFTUyBzZXRWZXJzaW9uVHJhbnMgaXMgbm9uLW51bGwuCi1QQVNTIGRiLnZlcnNp
b24gaXMgInZlcnNpb24gYiIKK1BBU1MgZGIudmVyc2lvbiBpcyAxCiBQQVNTIGRiLm9iamVjdFN0
b3JlTmFtZXMgaXMgWyd0ZXN0MTIzJ10KIFBBU1MgZGIub2JqZWN0U3RvcmVOYW1lcy5sZW5ndGgg
aXMgMQogUEFTUyBkYi5vYmplY3RTdG9yZU5hbWVzLmNvbnRhaW5zKCcnKSBpcyBmYWxzZQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZGF0YWJhc2UtY2xvc2UtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZGF0YWJhc2UtY2xvc2Ut
ZXhwZWN0ZWQudHh0CmluZGV4IDZiNGZiMGRmOWZkYjU3MDA0NGVjNDU2ZDJjN2JhYWZiNGU4N2Y4
YzUuLjk3YThkZTMwZjU1NTM4YjAwZWFiMTFmMGU2MGRmNGQ1MDUyZTUzODkgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2RhdGFiYXNlLWNsb3NlLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9kYXRhYmFzZS1jbG9zZS1leHBl
Y3RlZC50eHQKQEAgLTEsNSArMSwzIEBACi1DT05TT0xFIE1FU1NBR0U6IFRoZSBzZXRWZXJzaW9u
KCkgbWV0aG9kIGlzIG5vbi1zdGFuZGFyZCBhbmQgd2lsbCBiZSByZW1vdmVkLiBVc2UgdGhlICJ1
cGdyYWRlbmVlZGVkIiBldmVudCBpbnN0ZWFkLgotQ09OU09MRSBNRVNTQUdFOiBUaGUgc2V0VmVy
c2lvbigpIG1ldGhvZCBpcyBub24tc3RhbmRhcmQgYW5kIHdpbGwgYmUgcmVtb3ZlZC4gVXNlIHRo
ZSAidXBncmFkZW5lZWRlZCIgZXZlbnQgaW5zdGVhZC4KIFRlc3QgSW5kZXhlZERCICdzdGVwcyBm
b3IgY2xvc2luZyBhIGRhdGFiYXNlIGNvbm5lY3Rpb24nCiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KQEAgLTcsMjEgKzUsMTMgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIAogaW5kZXhl
ZERCID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJ
bmRleGVkREIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CiAKLWRibmFt
ZSA9IHNlbGYubG9jYXRpb24ucGF0aG5hbWUKK2RibmFtZSA9ICJkYXRhYmFzZS1jbG9zZS5odG1s
IgogaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkKLQotb3BlbkNvbm5lY3Rpb24oKToK
LXJlcXVlc3QgPSBpbmRleGVkREIub3BlbihkYm5hbWUpCi1jb25uZWN0aW9uID0gcmVxdWVzdC5y
ZXN1bHQKLXJlcXVlc3QgPSBjb25uZWN0aW9uLnNldFZlcnNpb24oJzEnKQoraW5kZXhlZERCLm9w
ZW4oZGJuYW1lKQogc3RvcmUgPSBjb25uZWN0aW9uLmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZScp
CiBzdG9yZS5wdXQoJ3ZhbHVlMScsICdrZXkxJykKIHN0b3JlLnB1dCgndmFsdWUyJywgJ2tleTIn
KQogCi1vcGVuVmVyc2lvbkNoYW5nZUNvbm5lY3Rpb24oKToKLXJlcXVlc3QgPSBpbmRleGVkREIu
b3BlbihkYm5hbWUpCi12ZXJzaW9uX2NoYW5nZV9jb25uZWN0aW9uID0gcmVxdWVzdC5yZXN1bHQK
LQogdGVzdENsb3NlKCk6CiBDcmVhdGUgdHJhbnNhY3Rpb25zIHVzaW5nIGNvbm5lY3Rpb246CiB0
cmFuczEgPSBjb25uZWN0aW9uLnRyYW5zYWN0aW9uKCdzdG9yZScpCkBAIC00NSw3ICszNSw2IEBA
IFBBU1MgZW5hbWUgaXMgJ0ludmFsaWRTdGF0ZUVycm9yJwogCiBOT1RFOiBPbmNlIHRoZSBjb25u
ZWN0aW9uIGlzIGNsb3NlZCwgdGhpcyBjYW4gdW5ibG9jayB0aGUgc3RlcHMgZm9yIHJ1bm5pbmcg
YSAidmVyc2lvbmNoYW5nZSIgdHJhbnNhY3Rpb24sIGFuZCB0aGUgc3RlcHMgZm9yIGRlbGV0aW5n
IGEgZGF0YWJhc2UsIHdoaWNoIGJvdGggd2FpdCBmb3IgY29ubmVjdGlvbnMgdG8gYSBnaXZlbiBk
YXRhYmFzZSB0byBiZSBjbG9zZWQgYmVmb3JlIGNvbnRpbnVpbmcuCiAKLXZlcnNpb25fY2hhbmdl
X2Nvbm5lY3Rpb24uc2V0VmVyc2lvbignMicpCiBpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJu
YW1lKQogCiB0cmFuc2FjdGlvbiAjMSByZXF1ZXN0IHN1Y2Nlc3NmdWwKQEAgLTU4LDExICs0Nyw2
IEBAIGF3YWl0aW5nX3RyYW5zYWN0aW9uX2NvdW50IC09IDEKIAogQWxsIHRyYW5zYWN0aW9ucyBj
b21wbGV0ZWQgLSB2ZXJzaW9uIGNoYW5nZXMgLyBkYXRhYmFzZSBkZWxldGVzIHNob3VsZCBub3cg
YmUgdW5ibG9ja2VkLgogCi12ZXJzaW9uIGNoYW5nZSB0cmFuc2FjdGlvbiB1bmJsb2NrZWQKLVBB
U1MgYXdhaXRpbmdfdHJhbnNhY3Rpb25fY291bnQgaXMgMAotUEFTUyB2ZXJzaW9uX2NoYW5nZV9j
b25uZWN0aW9uLnZlcnNpb24gaXMgIjIiCi12ZXJzaW9uX2NoYW5nZV9jb25uZWN0aW9uLmNsb3Nl
KCkKLQogZGVsZXRlIGRhdGFiYXNlIHVuYmxvY2tlZAogUEFTUyBhd2FpdGluZ190cmFuc2FjdGlv
bl9jb3VudCBpcyAwCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9kYXRhYmFzZS1jbG9zZXBlbmRpbmctZmxh
Zy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9kYXRhYmFzZS1j
bG9zZXBlbmRpbmctZmxhZy1leHBlY3RlZC50eHQKaW5kZXggNjdmYjVhNzA4NmY4YTEzZjYzYjRk
NGRkNjM0ZWJlNjEyMmM5NGRiZC4uODdmODIyNTNlMjVjMWIxNjg5NjAxMzgyZmQzYmYyYmVmMGY5
NDNiMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZGF0YWJhc2Ut
Y2xvc2VwZW5kaW5nLWZsYWctZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL2RhdGFiYXNlLWNsb3NlcGVuZGluZy1mbGFnLWV4cGVjdGVkLnR4dApAQCAtMSw2
ICsxLDMgQEAKLUNPTlNPTEUgTUVTU0FHRTogVGhlIHNldFZlcnNpb24oKSBtZXRob2QgaXMgbm9u
LXN0YW5kYXJkIGFuZCB3aWxsIGJlIHJlbW92ZWQuIFVzZSB0aGUgInVwZ3JhZGVuZWVkZWQiIGV2
ZW50IGluc3RlYWQuCi1DT05TT0xFIE1FU1NBR0U6IFRoZSBzZXRWZXJzaW9uKCkgbWV0aG9kIGlz
IG5vbi1zdGFuZGFyZCBhbmQgd2lsbCBiZSByZW1vdmVkLiBVc2UgdGhlICJ1cGdyYWRlbmVlZGVk
IiBldmVudCBpbnN0ZWFkLgotQ09OU09MRSBNRVNTQUdFOiBUaGUgc2V0VmVyc2lvbigpIG1ldGhv
ZCBpcyBub24tc3RhbmRhcmQgYW5kIHdpbGwgYmUgcmVtb3ZlZC4gVXNlIHRoZSAidXBncmFkZW5l
ZWRlZCIgZXZlbnQgaW5zdGVhZC4KIFRlc3QgSW5kZXhlZERCIElEQkRhdGFiYXNlIGludGVybmFs
IGNsb3NlUGVuZGluZyBmbGFnCiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KQEAgLTgsMTMg
KzUsOSBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogCiBpbmRleGVkREIgPSBzZWxmLmluZGV4
ZWREQiB8fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8fCBzZWxmLm1vekluZGV4ZWREQiB8fCBzZWxm
Lm1zSW5kZXhlZERCIHx8IHNlbGYuT0luZGV4ZWREQjsKIAotZGJuYW1lID0gc2VsZi5sb2NhdGlv
bi5wYXRobmFtZQorZGJuYW1lID0gImRhdGFiYXNlLWNsb3NlcGVuZGluZy1mbGFnLmh0bWwiCiBp
bmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQotCi1vcGVuQ29ubmVjdGlvbigpOgotcmVx
dWVzdCA9IGluZGV4ZWREQi5vcGVuKGRibmFtZSkKLWNvbm5lY3Rpb24gPSByZXF1ZXN0LnJlc3Vs
dAotcmVxdWVzdCA9IGNvbm5lY3Rpb24uc2V0VmVyc2lvbignMScpCitpbmRleGVkREIub3Blbihk
Ym5hbWUpCiBzdG9yZSA9IGNvbm5lY3Rpb24uY3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3JlJykKIAog
Rmlyc3QsIHZlcmlmeSB0aGF0IHRoZSBkYXRhYmFzZSBjb25uZWN0aW9uIGlzIG5vdCBjbG9zZWQ6
CkBAIC0zNiw5ICsyOSw4IEBAIFBBU1MgY29ubmVjdGlvbi5uYW1lIGlzIGRibmFtZQogCiBJREJE
YXRhYmFzZS5vYmplY3RTdG9yZU5hbWVzOgogIk9uY2UgdGhlIGNsb3NlUGVuZGluZyBmbGFnIGlz
IHNldCBvbiB0aGUgY29ubmVjdGlvbiwgdGhpcyBmdW5jdGlvbiBtdXN0IHJldHVybiBhIHNuYXBz
aG90IG9mIHRoZSBsaXN0IG9mIG5hbWVzIG9mIHRoZSBvYmplY3Qgc3RvcmVzIHRha2VuIGF0IHRo
ZSB0aW1lIHdoZW4gdGhlIGNsb3NlIG1ldGhvZCB3YXMgY2FsbGVkLiIKLXJlcXVlc3QgPSBpbmRl
eGVkREIub3BlbihkYm5hbWUpCityZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lLCAyKQog
dmVyc2lvbl9jaGFuZ2VfY29ubmVjdGlvbiA9IHJlcXVlc3QucmVzdWx0Ci12ZXJzaW9uX2NoYW5n
ZV9jb25uZWN0aW9uLnNldFZlcnNpb24oJzInKQogdmVyc2lvbl9jaGFuZ2VfY29ubmVjdGlvbi5j
cmVhdGVPYmplY3RTdG9yZSgnbmV3X3N0b3JlJykKIFBBU1MgdmVyc2lvbl9jaGFuZ2VfY29ubmVj
dGlvbi5vYmplY3RTdG9yZU5hbWVzLmNvbnRhaW5zKCduZXdfc3RvcmUnKSBpcyB0cnVlCiBQQVNT
IGNvbm5lY3Rpb24ub2JqZWN0U3RvcmVOYW1lcy5jb250YWlucygnbmV3X3N0b3JlJykgaXMgZmFs
c2UKQEAgLTYwLDEwICs1Miw5IEBAIGNvbm5lY3Rpb24ub252ZXJzaW9uY2hhbmdlID0gZnVuY3Rp
b24gKCkgeyB2ZXJzaW9uQ2hhbmdlV2FzRmlyZWQgPSB0cnVlOyB9CiB0cmFuc2FjdGlvbiA9IGNv
bm5lY3Rpb24udHJhbnNhY3Rpb24oJ3N0b3JlJykKIGNvbm5lY3Rpb24uY2xvc2UoKQogY2xvc2VQ
ZW5kaW5nIGlzIHNldCwgYnV0IGFjdGl2ZSB0cmFuc2FjdGlvbiB3aWxsIGtlZXAgY29ubmVjdGlv
biBmcm9tIGNsb3NpbmcKLXJlcXVlc3QgPSBpbmRleGVkREIub3BlbihkYm5hbWUpCi12ZXJzaW9u
X2NoYW5nZV9jb25uZWN0aW9uID0gcmVxdWVzdC5yZXN1bHQKLXZlcnNpb25fY2hhbmdlX2Nvbm5l
Y3Rpb24uc2V0VmVyc2lvbignMycpCityZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lLCAz
KQogJ2Jsb2NrZWQnIGV2ZW50IGZpcmVkLCBsZXR0aW5nIHRyYW5zYWN0aW9uIGNvbXBsZXRlIGFu
ZCBjb25uZWN0aW9uIGNsb3NlCit2ZXJzaW9uX2NoYW5nZV9jb25uZWN0aW9uID0gcmVxdWVzdC5y
ZXN1bHQKIFBBU1MgdmVyc2lvbkNoYW5nZVdhc0ZpcmVkIGlzIGZhbHNlCiB2ZXJzaW9uX2NoYW5n
ZV9jb25uZWN0aW9uLmNsb3NlKCkKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvZGVsZXRlLWNsb3NlZC1kYXRhYmFzZS1vYmplY3QtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZGVsZXRlLWNsb3NlZC1kYXRhYmFzZS1vYmplY3Qt
ZXhwZWN0ZWQudHh0CmluZGV4IDZlMzE4N2Q3ZTZhYjc3MDM3MWI2ODI3NDU1MGZjYzQwMWMxNjcx
MzIuLmM5OWE1Njc2ZjBlNTJlOTNiMTAxNjAwMmYwY2UyODVjMTI2NWMwMDYgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2RlbGV0ZS1jbG9zZWQtZGF0YWJhc2Utb2Jq
ZWN0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9kZWxl
dGUtY2xvc2VkLWRhdGFiYXNlLW9iamVjdC1leHBlY3RlZC50eHQKQEAgLTEsNCArMSwzIEBACi1D
T05TT0xFIE1FU1NBR0U6IFRoZSBzZXRWZXJzaW9uKCkgbWV0aG9kIGlzIG5vbi1zdGFuZGFyZCBh
bmQgd2lsbCBiZSByZW1vdmVkLiBVc2UgdGhlICJ1cGdyYWRlbmVlZGVkIiBldmVudCBpbnN0ZWFk
LgogRW5zdXJlIHRoYXQgSURCRGF0YWJhc2Ugb2JqZWN0cyBhcmUgZGVsZXRlZCB3aGVuIHRoZXJl
IGFyZSBubyByZXRhaW5pbmcgcGF0aHMgbGVmdAogCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
CkBAIC02LDEzICs1LDEyIEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiAKIGluZGV4ZWREQiA9
IHNlbGYuaW5kZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5kZXhl
ZERCIHx8IHNlbGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOwogCi1zZWxmLnN0YXRl
ID0gJ3N0YXJ0aW5nJwotaW5kZXhlZERCLm9wZW4oJ2RlbGV0ZS1jbG9zZWQtZGF0YWJhc2Utb2Jq
ZWN0JykKLWRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdAotaW5kZXhlZERCLm9wZW4oJ2RlbGV0ZS1j
bG9zZWQtZGF0YWJhc2Utb2JqZWN0JykKLVNlY29uZCBjb25uZWN0aW9uIHN1Y2Nlc3NmdWxseSBl
c3RhYmxpc2hlZC4KLWNhbGxpbmcgc2V0VmVyc2lvbigpIC0gY2FsbGJhY2sgc2hvdWxkIHJ1biBp
bW1lZGlhdGVseQotZGIuc2V0VmVyc2lvbigndmVyc2lvbiAxJykKK2RibmFtZSA9ICJkZWxldGUt
Y2xvc2VkLWRhdGFiYXNlLW9iamVjdC5odG1sIgoraW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRi
bmFtZSkKK2luZGV4ZWREQi5vcGVuKGRibmFtZSkKK0Nvbm5lY3Rpb24gc3VjY2Vzc2Z1bGx5IGVz
dGFibGlzaGVkLgorT3BlbiByZXF1ZXN0IHNob3VsZCBub3QgcmVjZWl2ZSBhIGJsb2NrZWQgZXZl
bnQ6CitpbmRleGVkREIub3BlbihkYm5hbWUsIDIpCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL3Jlc291cmNlcy9kYXRhYmFzZS1iYXNpY3MuanMgYi9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvZGF0YWJhc2UtYmFzaWNzLmpzCmluZGV4IDI1MWU0NTUx
MDAzYmY1ZWY3MDAyN2IwNDhmOGY0ZmIyNzJlYWQ0NDYuLmM2ZmZiMGE2NTdmNmRkOGI4OTBjYmFj
NzE0Zjg3OTVjNjM3YTZlOWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL3Jlc291cmNlcy9kYXRhYmFzZS1iYXNpY3MuanMKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvcmVzb3VyY2VzL2RhdGFiYXNlLWJhc2ljcy5qcwpAQCAtNSw1OCArNSwxNiBA
QCBpZiAodGhpcy5pbXBvcnRTY3JpcHRzKSB7CiAKIGRlc2NyaXB0aW9uKCJUZXN0IHRoZSBiYXNp
Y3Mgb2YgSW5kZXhlZERCJ3MgSURCRGF0YWJhc2UuIik7CiAKLWZ1bmN0aW9uIHRlc3QoKQoraW5k
ZXhlZERCVGVzdChwcmVwYXJlRGF0YWJhc2UsIHRlc3RTZXRWZXJzaW9uQWJvcnQpOworZnVuY3Rp
b24gcHJlcGFyZURhdGFiYXNlKCkKIHsKLSAgICByZW1vdmVWZW5kb3JQcmVmaXhlcygpOworICAg
IGRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKKyAgICBkZWJ1ZygiVGVzdCB0aGF0IHlvdSBjYW4n
dCBvcGVuIGEgdHJhbnNhY3Rpb24gd2hpbGUgaW4gYSB2ZXJzaW9uY2hhbmdlIHRyYW5zYWN0aW9u
Iik7CisgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbignZGIudHJhbnNhY3Rpb24oImRvZXNudEV4
aXN0IiknLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIkRPTUV4Y2VwdGlvbi5JTlZBTElE
X1NUQVRFX0VSUiIsICInSW52YWxpZFN0YXRlRXJyb3InIik7CiAKLSAgICByZXF1ZXN0ID0gZXZh
bEFuZExvZygiaW5kZXhlZERCLm9wZW4oJ2RhdGFiYXNlLWJhc2ljcycpIik7Ci0gICAgcmVxdWVz
dC5vbnN1Y2Nlc3MgPSBvcGVuU3VjY2VzczsKLSAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVj
dGVkRXJyb3JDYWxsYmFjazsKLX0KLQotZnVuY3Rpb24gb3BlblN1Y2Nlc3MoKQotewotICAgIHNl
bGYuZGIgPSBldmFsQW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKLQotICAgIHJl
cXVlc3QgPSBldmFsQW5kTG9nKCJkYi5zZXRWZXJzaW9uKCduZXcgdmVyc2lvbicpIik7Ci0gICAg
cmVxdWVzdC5vbnN1Y2Nlc3MgPSBmdW5jdGlvbigpIHsKLSAgICAgICAgZGVsZXRlQWxsT2JqZWN0
U3RvcmVzKGRiKTsKLQotICAgICAgICB2YXIgdHJhbnNhY3Rpb24gPSBldmVudC50YXJnZXQucmVz
dWx0OwotICAgICAgICB0cmFuc2FjdGlvbi5vbmNvbXBsZXRlID0gc2V0VmVyc2lvblN1Y2Nlc3M7
Ci0gICAgICAgIHRyYW5zYWN0aW9uLm9uYWJvcnQgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsK
LSAgICB9OwotICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwot
fQotCi1mdW5jdGlvbiBzZXRWZXJzaW9uU3VjY2VzcygpCi17Ci0gICAgZGVidWcoInNldFZlcnNp
b25TdWNjZXNzKCk6Iik7Ci0KLSAgICBkZWJ1ZygiVGVzdGluZyBzZXRWZXJzaW9uLiIpOwotICAg
IGV2YWxBbmRMb2coJ3JlcXVlc3QgPSBkYi5zZXRWZXJzaW9uKCJ2ZXJzaW9uIGEiKScpOwotICAg
IHJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24oZXZlbnQpIHsKLQotICAgICAgICBldmFsQW5k
RXhwZWN0RXhjZXB0aW9uKCdkYi5zZXRWZXJzaW9uKCJ2ZXJzaW9uIGIiKScsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIkRPTUV4Y2VwdGlvbi5JTlZBTElEX1NUQVRFX0VSUiIsICIn
SW52YWxpZFN0YXRlRXJyb3InIik7Ci0gICAgICAgIHZhciB0cmFuc2FjdGlvbiA9IGV2ZW50LnRh
cmdldC5yZXN1bHQ7Ci0gICAgICAgIHRyYW5zYWN0aW9uLm9uY29tcGxldGUgPSBzZXRWZXJzaW9u
QWdhaW47Ci0gICAgICAgIHRyYW5zYWN0aW9uLm9uYWJvcnQgPSB1bmV4cGVjdGVkRXJyb3JDYWxs
YmFjazsKLSAgICB9OwotICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxi
YWNrOwotfQotCi1mdW5jdGlvbiBzZXRWZXJzaW9uQWdhaW4oKQotewotICAgIHJlcXVlc3QgPSBl
dmFsQW5kTG9nKCdkYi5zZXRWZXJzaW9uKCJ2ZXJzaW9uIGIiKScpOwotICAgIHJlcXVlc3Qub25z
dWNjZXNzID0gY3JlYXRlT2JqZWN0U3RvcmU7Ci0gICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBl
Y3RlZEVycm9yQ2FsbGJhY2s7Ci19Ci0KLWZ1bmN0aW9uIGNyZWF0ZU9iamVjdFN0b3JlKCkKLXsK
LSAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImRiLnZlcnNpb24iLCAidmVyc2lvbiBiIik7Ci0g
ICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJkYi5uYW1lIiwgImRhdGFiYXNlLWJhc2ljcyIpOwor
ICAgIHNob3VsZEJlKCJkYi52ZXJzaW9uIiwgIjEiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJp
bmcoImRiLm5hbWUiLCBkYm5hbWUpOwogICAgIHNob3VsZEJlKCJkYi5vYmplY3RTdG9yZU5hbWVz
IiwgIltdIik7CiAgICAgc2hvdWxkQmUoImRiLm9iamVjdFN0b3JlTmFtZXMubGVuZ3RoIiwgIjAi
KTsKICAgICBzaG91bGRCZSgiZGIub2JqZWN0U3RvcmVOYW1lcy5jb250YWlucygnJykiLCAiZmFs
c2UiKTsKQEAgLTY1LDEwICsyMyw2IEBAIGZ1bmN0aW9uIGNyZWF0ZU9iamVjdFN0b3JlKCkKIAog
ICAgIG9iamVjdFN0b3JlID0gZXZhbEFuZExvZygnZGIuY3JlYXRlT2JqZWN0U3RvcmUoInRlc3Qx
MjMiKScpOwogICAgIGNoZWNrT2JqZWN0U3RvcmUoKTsKLQotICAgIHZhciB0cmFuc2FjdGlvbiA9
IGV2ZW50LnRhcmdldC5yZXN1bHQ7Ci0gICAgdHJhbnNhY3Rpb24ub25jb21wbGV0ZSA9IHRlc3RT
ZXRWZXJzaW9uQWJvcnQ7Ci0gICAgdHJhbnNhY3Rpb24ub25hYm9ydCA9IHVuZXhwZWN0ZWRBYm9y
dENhbGxiYWNrOwogfQogCiBmdW5jdGlvbiBjaGVja09iamVjdFN0b3JlKCkKQEAgLTgzLDE5ICsz
NywyMiBAQCBmdW5jdGlvbiBjaGVja09iamVjdFN0b3JlKCkKIAogZnVuY3Rpb24gdGVzdFNldFZl
cnNpb25BYm9ydCgpCiB7Ci0gICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coJ2RiLnNldFZlcnNpb24o
InZlcnNpb24gYyIpJyk7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBjcmVhdGVBbm90aGVyT2Jq
ZWN0U3RvcmU7CisgICAgZXZhbEFuZExvZygiZGIuY2xvc2UoKSIpOworICAgIGV2YWxBbmRMb2co
InJlcXVlc3QgPSBpbmRleGVkREIub3BlbihkYm5hbWUsIDIpIik7CisgICAgcmVxdWVzdC5vbnVw
Z3JhZGVuZWVkZWQgPSBjcmVhdGVBbm90aGVyT2JqZWN0U3RvcmU7CisgICAgcmVxdWVzdC5vbmJs
b2NrZWQgPSB1bmV4cGVjdGVkQmxvY2tlZENhbGxiYWNrOwogICAgIHJlcXVlc3Qub25lcnJvciA9
IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwogfQogCiBmdW5jdGlvbiBjcmVhdGVBbm90aGVyT2Jq
ZWN0U3RvcmUoKQogewotICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZGIudmVyc2lvbiIsICJ2
ZXJzaW9uIGMiKTsKLSAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImRiLm5hbWUiLCAiZGF0YWJh
c2UtYmFzaWNzIik7CisgICAgZXZhbEFuZExvZygiZGIgPSBldmVudC50YXJnZXQucmVzdWx0Iik7
CisgICAgc2hvdWxkQmUoImRiLnZlcnNpb24iLCAiMiIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0
cmluZygiZGIubmFtZSIsIGRibmFtZSk7CiAgICAgY2hlY2tPYmplY3RTdG9yZSgpOwogCiAgICAg
b2JqZWN0U3RvcmUgPSBldmFsQW5kTG9nKCdkYi5jcmVhdGVPYmplY3RTdG9yZSgidGVzdDQ1NiIp
Jyk7Ci0gICAgdmFyIHNldFZlcnNpb25UcmFucyA9IGV2YWxBbmRMb2coInNldFZlcnNpb25UcmFu
cyA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKKyAgICB2YXIgc2V0VmVyc2lvblRyYW5zID0gZXZh
bEFuZExvZygic2V0VmVyc2lvblRyYW5zID0gZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uIik7CiAg
ICAgc2hvdWxkQmVOb25OdWxsKCJzZXRWZXJzaW9uVHJhbnMiKTsKICAgICBzZXRWZXJzaW9uVHJh
bnMub25jb21wbGV0ZSA9IHVuZXhwZWN0ZWRDb21wbGV0ZUNhbGxiYWNrOwogICAgIHNldFZlcnNp
b25UcmFucy5vbmFib3J0ID0gY2hlY2tNZXRhZGF0YTsKQEAgLTEwNCw3ICs2MSw3IEBAIGZ1bmN0
aW9uIGNyZWF0ZUFub3RoZXJPYmplY3RTdG9yZSgpCiAKIGZ1bmN0aW9uIGNoZWNrTWV0YWRhdGEo
KQogewotICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZGIudmVyc2lvbiIsICJ2ZXJzaW9uIGIi
KTsKKyAgICBzaG91bGRCZSgiZGIudmVyc2lvbiIsICIxIik7CiAgICAgY2hlY2tPYmplY3RTdG9y
ZSgpOwogICAgIHRlc3RDbG9zZSgpOwogfQpAQCAtMTE4LDUgKzc1LDMgQEAgZnVuY3Rpb24gdGVz
dENsb3NlKCkKICAgICBldmFsQW5kTG9nKCJkYi5jbG9zZSgpIik7CiAgICAgZmluaXNoSlNUZXN0
KCk7CiB9Ci0KLXRlc3QoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL3Jlc291cmNlcy9kYXRhYmFzZS1jbG9zZS5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL3Jlc291cmNlcy9kYXRhYmFzZS1jbG9zZS5qcwppbmRleCAxZjU4ZjllNzAwZjQ3OTdk
NzE4ZWY2ODJkOTdjM2MzYjMzNTk1NTM5Li5kNjc2NTdkNGIwZjAyZWIwMGRkYmViZTIxMzBiYjk3
OTVjNDhkNjczIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNv
dXJjZXMvZGF0YWJhc2UtY2xvc2UuanMKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvcmVzb3VyY2VzL2RhdGFiYXNlLWNsb3NlLmpzCkBAIC01LDQ3ICs1LDEzIEBAIGlmICh0aGlz
LmltcG9ydFNjcmlwdHMpIHsKIAogZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERCICdzdGVwcyBm
b3IgY2xvc2luZyBhIGRhdGFiYXNlIGNvbm5lY3Rpb24nIik7CiAKLWZ1bmN0aW9uIHRlc3QoKQor
aW5kZXhlZERCVGVzdChwcmVwYXJlRGF0YWJhc2UsIHRlc3RDbG9zZSk7CitmdW5jdGlvbiBwcmVw
YXJlRGF0YWJhc2UoKQogewotICAgIHJlbW92ZVZlbmRvclByZWZpeGVzKCk7Ci0KLSAgICBldmFs
QW5kTG9nKCJkYm5hbWUgPSBzZWxmLmxvY2F0aW9uLnBhdGhuYW1lIik7Ci0gICAgcmVxdWVzdCA9
IGV2YWxBbmRMb2coImluZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpIik7Ci0gICAgcmVx
dWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci0gICAgcmVxdWVzdC5vbnN1
Y2Nlc3MgPSBvcGVuQ29ubmVjdGlvbjsKLX0KLQotZnVuY3Rpb24gb3BlbkNvbm5lY3Rpb24oKQot
ewotICAgIGRlYnVnKCIiKTsKLSAgICBkZWJ1Zygib3BlbkNvbm5lY3Rpb24oKToiKTsKLSAgICBl
dmFsQW5kTG9nKCJyZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lKSIpOwotICAgIHJlcXVl
c3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotICAgIHJlcXVlc3Qub25zdWNj
ZXNzID0gZnVuY3Rpb24oKSB7Ci0gICAgICAgIGV2YWxBbmRMb2coImNvbm5lY3Rpb24gPSByZXF1
ZXN0LnJlc3VsdCIpOwotICAgICAgICBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gY29ubmVjdGlvbi5z
ZXRWZXJzaW9uKCcxJykiKTsKLSAgICAgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVy
cm9yQ2FsbGJhY2s7Ci0gICAgICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24oKSB7Ci0g
ICAgICAgICAgICB0cmFucyA9IHJlcXVlc3QucmVzdWx0OwotICAgICAgICAgICAgZXZhbEFuZExv
Zygic3RvcmUgPSBjb25uZWN0aW9uLmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZScpIik7Ci0gICAg
ICAgICAgICBldmFsQW5kTG9nKCJzdG9yZS5wdXQoJ3ZhbHVlMScsICdrZXkxJykiKTsKLSAgICAg
ICAgICAgIGV2YWxBbmRMb2coInN0b3JlLnB1dCgndmFsdWUyJywgJ2tleTInKSIpOwotICAgICAg
ICAgICAgdHJhbnMub25hYm9ydCA9IHVuZXhwZWN0ZWRBYm9ydENhbGxiYWNrOwotICAgICAgICAg
ICAgdHJhbnMub25jb21wbGV0ZSA9IG9wZW5WZXJzaW9uQ2hhbmdlQ29ubmVjdGlvbjsKLSAgICAg
ICAgfTsKLSAgICB9OwotfQotCi1mdW5jdGlvbiBvcGVuVmVyc2lvbkNoYW5nZUNvbm5lY3Rpb24o
KQotewotICAgIGRlYnVnKCIiKTsKLSAgICBkZWJ1Zygib3BlblZlcnNpb25DaGFuZ2VDb25uZWN0
aW9uKCk6Iik7Ci0gICAgZXZhbEFuZExvZygicmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKGRibmFt
ZSkiKTsKLSAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLSAg
ICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uKCkgewotICAgICAgICBldmFsQW5kTG9nKCJ2
ZXJzaW9uX2NoYW5nZV9jb25uZWN0aW9uID0gcmVxdWVzdC5yZXN1bHQiKTsKLSAgICAgICAgdGVz
dENsb3NlKCk7Ci0gICAgfTsKKyAgICBjb25uZWN0aW9uID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsK
KyAgICBldmFsQW5kTG9nKCJzdG9yZSA9IGNvbm5lY3Rpb24uY3JlYXRlT2JqZWN0U3RvcmUoJ3N0
b3JlJykiKTsKKyAgICBldmFsQW5kTG9nKCJzdG9yZS5wdXQoJ3ZhbHVlMScsICdrZXkxJykiKTsK
KyAgICBldmFsQW5kTG9nKCJzdG9yZS5wdXQoJ3ZhbHVlMicsICdrZXkyJykiKTsKIH0KIAogZnVu
Y3Rpb24gdGVzdENsb3NlKCkKQEAgLTEwNSwxNiArNzEsNiBAQCBmdW5jdGlvbiB0ZXN0Q2xvc2Uo
KQogICAgIGRlYnVnKCJOT1RFOiBPbmNlIHRoZSBjb25uZWN0aW9uIGlzIGNsb3NlZCwgdGhpcyBj
YW4gdW5ibG9jayB0aGUgc3RlcHMgZm9yIHJ1bm5pbmcgYSBcInZlcnNpb25jaGFuZ2VcIiB0cmFu
c2FjdGlvbiwgYW5kIHRoZSBzdGVwcyBmb3IgZGVsZXRpbmcgYSBkYXRhYmFzZSwgd2hpY2ggYm90
aCB3YWl0IGZvciBjb25uZWN0aW9ucyB0byBhIGdpdmVuIGRhdGFiYXNlIHRvIGJlIGNsb3NlZCBi
ZWZvcmUgY29udGludWluZy4iKTsKICAgICBkZWJ1ZygiIik7CiAKLSAgICByZXF1ZXN0ID0gZXZh
bEFuZExvZygidmVyc2lvbl9jaGFuZ2VfY29ubmVjdGlvbi5zZXRWZXJzaW9uKCcyJykiKTsKLSAg
ICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLSAgICByZXF1ZXN0
Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uKCkgewotICAgICAgICBkZWJ1ZygiIik7Ci0gICAgICAgIGRl
YnVnKCJ2ZXJzaW9uIGNoYW5nZSB0cmFuc2FjdGlvbiB1bmJsb2NrZWQiKTsKLSAgICAgICAgc2hv
dWxkQmUoImF3YWl0aW5nX3RyYW5zYWN0aW9uX2NvdW50IiwgIjAiKTsKLSAgICAgICAgc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCJ2ZXJzaW9uX2NoYW5nZV9jb25uZWN0aW9uLnZlcnNpb24iLCAiMiIp
OwotICAgICAgICBldmFsQW5kTG9nKCJ2ZXJzaW9uX2NoYW5nZV9jb25uZWN0aW9uLmNsb3NlKCki
KTsKLSAgICB9OwotCiAgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4ZWREQi5kZWxldGVE
YXRhYmFzZShkYm5hbWUpIik7CiAgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9y
Q2FsbGJhY2s7CiAgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBmdW5jdGlvbigpIHsKQEAgLTEyNCw1
ICs4MCwzIEBAIGZ1bmN0aW9uIHRlc3RDbG9zZSgpCiAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwog
ICAgIH07CiB9Ci0KLXRlc3QoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL3Jlc291cmNlcy9kYXRhYmFzZS1jbG9zZXBlbmRpbmctZmxhZy5qcyBiL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9kYXRhYmFzZS1jbG9zZXBlbmRpbmctZmxh
Zy5qcwppbmRleCA0YjEwYjAxY2Q3ZTA3MTQ1MzI1ZTkxOTVmNDBmZDdmZTA1ODdiMGI1Li45MWM5
MDRiMDU0YTA3NjUyNmM2ZTg4NTFlMGQ5MGQ3YTNjMzBmMWMwIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvZGF0YWJhc2UtY2xvc2VwZW5kaW5nLWZs
YWcuanMKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2RhdGFi
YXNlLWNsb3NlcGVuZGluZy1mbGFnLmpzCkBAIC01LDMzICs1LDEyIEBAIGlmICh0aGlzLmltcG9y
dFNjcmlwdHMpIHsKIAogZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERCIElEQkRhdGFiYXNlIGlu
dGVybmFsIGNsb3NlUGVuZGluZyBmbGFnIik7CiAKLWZ1bmN0aW9uIHRlc3QoKQoraW5kZXhlZERC
VGVzdChwcmVwYXJlRGF0YWJhc2UsIHRlc3REYXRhYmFzZUNsb3NpbmdTdGVwcyk7CitmdW5jdGlv
biBwcmVwYXJlRGF0YWJhc2UoKQogewotICAgIHJlbW92ZVZlbmRvclByZWZpeGVzKCk7Ci0KLSAg
ICBldmFsQW5kTG9nKCJkYm5hbWUgPSBzZWxmLmxvY2F0aW9uLnBhdGhuYW1lIik7Ci0gICAgcmVx
dWVzdCA9IGV2YWxBbmRMb2coImluZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpIik7Ci0g
ICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci0gICAgcmVxdWVz
dC5vbnN1Y2Nlc3MgPSBvcGVuQ29ubmVjdGlvbjsKLX0KLQotZnVuY3Rpb24gb3BlbkNvbm5lY3Rp
b24oKQotewotICAgIGRlYnVnKCIiKTsKLSAgICBkZWJ1Zygib3BlbkNvbm5lY3Rpb24oKToiKTsK
LSAgICBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lKSIpOwotICAg
IHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotICAgIHJlcXVlc3Qu
b25zdWNjZXNzID0gZnVuY3Rpb24oKSB7Ci0gICAgICAgIGV2YWxBbmRMb2coImNvbm5lY3Rpb24g
PSByZXF1ZXN0LnJlc3VsdCIpOwotICAgICAgICBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gY29ubmVj
dGlvbi5zZXRWZXJzaW9uKCcxJykiKTsKLSAgICAgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBl
Y3RlZEVycm9yQ2FsbGJhY2s7Ci0gICAgICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24o
KSB7Ci0gICAgICAgICAgICB0cmFucyA9IHJlcXVlc3QucmVzdWx0OwotICAgICAgICAgICAgZXZh
bEFuZExvZygic3RvcmUgPSBjb25uZWN0aW9uLmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZScpIik7
Ci0gICAgICAgICAgICB0cmFucy5vbmFib3J0ID0gdW5leHBlY3RlZEFib3J0Q2FsbGJhY2s7Ci0g
ICAgICAgICAgICB0cmFucy5vbmNvbXBsZXRlID0gdGVzdERhdGFiYXNlQ2xvc2luZ1N0ZXBzOwot
ICAgICAgICB9OwotICAgIH07CisgICAgY29ubmVjdGlvbiA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7
CisgICAgZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uLm9uYWJvcnQgPSB1bmV4cGVjdGVkQWJvcnRD
YWxsYmFjazsKKyAgICBldmFsQW5kTG9nKCJzdG9yZSA9IGNvbm5lY3Rpb24uY3JlYXRlT2JqZWN0
U3RvcmUoJ3N0b3JlJykiKTsKIH0KIAogZnVuY3Rpb24gdGVzdERhdGFiYXNlQ2xvc2luZ1N0ZXBz
KCkKQEAgLTY2LDI1ICs0NSwyMiBAQCBmdW5jdGlvbiB0ZXN0SURCRGF0YWJhc2VPYmplY3RTdG9y
ZU5hbWVzKCkKICAgICBkZWJ1ZygiSURCRGF0YWJhc2Uub2JqZWN0U3RvcmVOYW1lczoiKTsKICAg
ICBkZWJ1ZygiXCJPbmNlIHRoZSBjbG9zZVBlbmRpbmcgZmxhZyBpcyBzZXQgb24gdGhlIGNvbm5l
Y3Rpb24sIHRoaXMgZnVuY3Rpb24gbXVzdCByZXR1cm4gYSBzbmFwc2hvdCBvZiB0aGUgbGlzdCBv
ZiBuYW1lcyBvZiB0aGUgb2JqZWN0IHN0b3JlcyB0YWtlbiBhdCB0aGUgdGltZSB3aGVuIHRoZSBj
bG9zZSBtZXRob2Qgd2FzIGNhbGxlZC5cIiIpOwogCi0gICAgZXZhbEFuZExvZygicmVxdWVzdCA9
IGluZGV4ZWREQi5vcGVuKGRibmFtZSkiKTsKKyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gaW5k
ZXhlZERCLm9wZW4oZGJuYW1lLCAyKSIpOworICAgIHJlcXVlc3Qub25ibG9ja2VkID0gdW5leHBl
Y3RlZEJsb2NrZWRDYWxsYmFjazsKICAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJy
b3JDYWxsYmFjazsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uKCkgeworICAgIHJl
cXVlc3Qub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24gKCkgewogICAgICAgICBldmFsQW5kTG9n
KCJ2ZXJzaW9uX2NoYW5nZV9jb25uZWN0aW9uID0gcmVxdWVzdC5yZXN1bHQiKTsKLSAgICAgICAg
cmVxdWVzdCA9IGV2YWxBbmRMb2coInZlcnNpb25fY2hhbmdlX2Nvbm5lY3Rpb24uc2V0VmVyc2lv
bignMicpIik7Ci0gICAgICAgIC8vIEZJWE1FOiBTaG91bGQgdmVyaWZ5ICdibG9ja2VkJyBub3Qg
ZmlyZWQuIGh0dHA6Ly93ZWJraXQub3JnL2IvNzExMzAKLSAgICAgICAgcmVxdWVzdC5vbmVycm9y
ID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci0gICAgICAgIHJlcXVlc3Qub25zdWNjZXNzID0g
ZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgdmFyIHRyYW5zYWN0aW9uID0gcmVxdWVzdC5yZXN1
bHQ7Ci0gICAgICAgICAgICBldmFsQW5kTG9nKCJ2ZXJzaW9uX2NoYW5nZV9jb25uZWN0aW9uLmNy
ZWF0ZU9iamVjdFN0b3JlKCduZXdfc3RvcmUnKSIpOwotICAgICAgICAgICAgdHJhbnNhY3Rpb24u
b25jb21wbGV0ZSA9IGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgICAgICBzaG91bGRCZVRydWUo
InZlcnNpb25fY2hhbmdlX2Nvbm5lY3Rpb24ub2JqZWN0U3RvcmVOYW1lcy5jb250YWlucygnbmV3
X3N0b3JlJykiKTsKLSAgICAgICAgICAgICAgICBzaG91bGRCZUZhbHNlKCJjb25uZWN0aW9uLm9i
amVjdFN0b3JlTmFtZXMuY29udGFpbnMoJ25ld19zdG9yZScpIik7Ci0gICAgICAgICAgICAgICAg
ZXZhbEFuZExvZygidmVyc2lvbl9jaGFuZ2VfY29ubmVjdGlvbi5jbG9zZSgpIik7Ci0KLSAgICAg
ICAgICAgICAgICB0ZXN0SURCRGF0YWJhc2VUcmFuc2FjdGlvbigpOwotICAgICAgICAgICAgfTsK
KyAgICAgICAgdmFyIHRyYW5zYWN0aW9uID0gcmVxdWVzdC50cmFuc2FjdGlvbjsKKyAgICAgICAg
ZXZhbEFuZExvZygidmVyc2lvbl9jaGFuZ2VfY29ubmVjdGlvbi5jcmVhdGVPYmplY3RTdG9yZSgn
bmV3X3N0b3JlJykiKTsKKyAgICAgICAgdHJhbnNhY3Rpb24ub25jb21wbGV0ZSA9IGZ1bmN0aW9u
ICgpIHsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgidmVyc2lvbl9jaGFuZ2VfY29ubmVjdGlv
bi5vYmplY3RTdG9yZU5hbWVzLmNvbnRhaW5zKCduZXdfc3RvcmUnKSIpOworICAgICAgICAgICAg
c2hvdWxkQmVGYWxzZSgiY29ubmVjdGlvbi5vYmplY3RTdG9yZU5hbWVzLmNvbnRhaW5zKCduZXdf
c3RvcmUnKSIpOwogICAgICAgICB9OwogICAgIH07CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBm
dW5jdGlvbigpIHsKKyAgICAgICAgZXZhbEFuZExvZygidmVyc2lvbl9jaGFuZ2VfY29ubmVjdGlv
bi5jbG9zZSgpIik7CisgICAgICAgIHRlc3RJREJEYXRhYmFzZVRyYW5zYWN0aW9uKCk7CisgICAg
fQogfQogCiBmdW5jdGlvbiB0ZXN0SURCRGF0YWJhc2VUcmFuc2FjdGlvbigpCkBAIC0xMjAsMjUg
Kzk2LDIwIEBAIGZ1bmN0aW9uIHRlc3RWZXJzaW9uQ2hhbmdlVHJhbnNhY3Rpb25TdGVwcygpCiAg
ICAgICAgIH0KICAgICAgICAgYnVzeSgpOwogCi0gICAgICAgIGV2YWxBbmRMb2coInJlcXVlc3Qg
PSBpbmRleGVkREIub3BlbihkYm5hbWUpIik7CisgICAgICAgIGV2YWxBbmRMb2coInJlcXVlc3Qg
PSBpbmRleGVkREIub3BlbihkYm5hbWUsIDMpIik7CiAgICAgICAgIHJlcXVlc3Qub25lcnJvciA9
IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotICAgICAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1
bmN0aW9uKCkgeworICAgICAgICByZXF1ZXN0Lm9uYmxvY2tlZCA9IGZ1bmN0aW9uICgpIHsKKyAg
ICAgICAgICAgIGRlYnVnKCInYmxvY2tlZCcgZXZlbnQgZmlyZWQsIGxldHRpbmcgdHJhbnNhY3Rp
b24gY29tcGxldGUgYW5kIGNvbm5lY3Rpb24gY2xvc2UiKTsKKyAgICAgICAgICAgIGtlZXBUcmFu
c2FjdGlvbkJ1c3kgPSBmYWxzZTsKKyAgICAgICAgfTsKKyAgICAgICAgcmVxdWVzdC5vbnVwZ3Jh
ZGVuZWVkZWQgPSBmdW5jdGlvbigpIHsKICAgICAgICAgICAgIGV2YWxBbmRMb2coInZlcnNpb25f
Y2hhbmdlX2Nvbm5lY3Rpb24gPSByZXF1ZXN0LnJlc3VsdCIpOwotICAgICAgICAgICAgcmVxdWVz
dCA9IGV2YWxBbmRMb2coInZlcnNpb25fY2hhbmdlX2Nvbm5lY3Rpb24uc2V0VmVyc2lvbignMycp
Iik7Ci0gICAgICAgICAgICByZXF1ZXN0Lm9uYmxvY2tlZCA9IGZ1bmN0aW9uICgpIHsKLSAgICAg
ICAgICAgICAgICBkZWJ1ZygiJ2Jsb2NrZWQnIGV2ZW50IGZpcmVkLCBsZXR0aW5nIHRyYW5zYWN0
aW9uIGNvbXBsZXRlIGFuZCBjb25uZWN0aW9uIGNsb3NlIik7Ci0gICAgICAgICAgICAgICAga2Vl
cFRyYW5zYWN0aW9uQnVzeSA9IGZhbHNlOwotICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIHNo
b3VsZEJlRmFsc2UoInZlcnNpb25DaGFuZ2VXYXNGaXJlZCIpOwogICAgICAgICAgICAgcmVxdWVz
dC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci0gICAgICAgICAgICByZXF1ZXN0
Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgICAgICBzaG91bGRCZUZhbHNl
KCJ2ZXJzaW9uQ2hhbmdlV2FzRmlyZWQiKTsKLSAgICAgICAgICAgICAgICB2YXIgdHJhbnNhY3Rp
b24gPSByZXF1ZXN0LnJlc3VsdDsKLSAgICAgICAgICAgICAgICB0cmFuc2FjdGlvbi5vbmNvbXBs
ZXRlID0gZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgICAgICAgICByZXF1ZXN0ID0gZXZhbEFu
ZExvZygidmVyc2lvbl9jaGFuZ2VfY29ubmVjdGlvbi5jbG9zZSgpIik7Ci0KLSAgICAgICAgICAg
ICAgICAgICAgdGVzdERhdGFiYXNlRGVsZXRpb24oKTsKLSAgICAgICAgICAgICAgICB9OwotICAg
ICAgICAgICAgfTsKKyAgICAgICAgfTsKKyAgICAgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBmdW5j
dGlvbiAoKSB7CisgICAgICAgICAgICBldmFsQW5kTG9nKCJ2ZXJzaW9uX2NoYW5nZV9jb25uZWN0
aW9uLmNsb3NlKCkiKTsKKyAgICAgICAgICAgIHRlc3REYXRhYmFzZURlbGV0aW9uKCk7CiAgICAg
ICAgIH07CiAgICAgfTsKIH0KQEAgLTE3OCw1ICsxNDksMyBAQCBmdW5jdGlvbiB0ZXN0RGF0YWJh
c2VEZWxldGlvbigpCiAgICAgICAgIH07CiAgICAgfTsKIH0KLQotdGVzdCgpOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2RlbGV0ZS1jbG9zZWQt
ZGF0YWJhc2Utb2JqZWN0LmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3Vy
Y2VzL2RlbGV0ZS1jbG9zZWQtZGF0YWJhc2Utb2JqZWN0LmpzCmluZGV4IDVkMzI5YTJiN2EzYjcw
YzA3ZTFmZmY4YjZkNmViYTE4ZDI4NDAzYjguLjc1ZmU1MDE1YTcwMTE1ZjMwOTQxMzgyMmRkN2Qy
ZDgzY2NlNjRhZDggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jl
c291cmNlcy9kZWxldGUtY2xvc2VkLWRhdGFiYXNlLW9iamVjdC5qcworKysgYi9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvZGVsZXRlLWNsb3NlZC1kYXRhYmFzZS1vYmpl
Y3QuanMKQEAgLTUsNDUgKzUsMjUgQEAgaWYgKHRoaXMuaW1wb3J0U2NyaXB0cykgewogCiBkZXNj
cmlwdGlvbigiRW5zdXJlIHRoYXQgSURCRGF0YWJhc2Ugb2JqZWN0cyBhcmUgZGVsZXRlZCB3aGVu
IHRoZXJlIGFyZSBubyByZXRhaW5pbmcgcGF0aHMgbGVmdCIpOwogCi1mdW5jdGlvbiB0ZXN0KCkg
ewotICAgIHJlbW92ZVZlbmRvclByZWZpeGVzKCk7Ci0gICAgb3BlbkRCQ29ubmVjdGlvbigpOwot
fQotCi1mdW5jdGlvbiBvcGVuREJDb25uZWN0aW9uKCkKK2luZGV4ZWREQlRlc3QocHJlcGFyZURh
dGFiYXNlLCBvcGVuU3VjY2Vzcyk7CitmdW5jdGlvbiBwcmVwYXJlRGF0YWJhc2UoKQogewotICAg
IGV2YWxBbmRMb2coInNlbGYuc3RhdGUgPSAnc3RhcnRpbmcnIik7Ci0gICAgcmVxdWVzdCA9IGV2
YWxBbmRMb2coImluZGV4ZWREQi5vcGVuKCdkZWxldGUtY2xvc2VkLWRhdGFiYXNlLW9iamVjdCcp
Iik7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBvcGVuU3VjY2VzczsKLSAgICByZXF1ZXN0Lm9u
ZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKIH0KIAogZnVuY3Rpb24gb3BlblN1Y2Nl
c3MoKQogewotICAgIHNlbGYuZGIgPSBldmFsQW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdldC5yZXN1
bHQiKTsKLQotICAgIC8vIE9wZW4gYSBzZWNvbmQgY29ubmVjdGlvbiB0byB0aGUgc2FtZSBkYXRh
YmFzZS4KLSAgICB2YXIgcmVxdWVzdDIgPSBldmFsQW5kTG9nKCJpbmRleGVkREIub3BlbignZGVs
ZXRlLWNsb3NlZC1kYXRhYmFzZS1vYmplY3QnKSIpOwotICAgIHJlcXVlc3QyLm9uc3VjY2VzcyA9
IG9wZW5TdWNjZXNzMjsKLSAgICByZXF1ZXN0Mi5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2Fs
bGJhY2s7Ci19Ci0KLWZ1bmN0aW9uIG9wZW5TdWNjZXNzMigpCi17Ci0gICAgZGVidWcoIlNlY29u
ZCBjb25uZWN0aW9uIHN1Y2Nlc3NmdWxseSBlc3RhYmxpc2hlZC4iKTsKKyAgICBkZWJ1ZygiQ29u
bmVjdGlvbiBzdWNjZXNzZnVsbHkgZXN0YWJsaXNoZWQuIik7CiAgICAgLy8gQWZ0ZXIgbGVhdmlu
ZyB0aGlzIGZ1bmN0aW9uLCB0aGVyZSBhcmUgbm8gcmVtYWluaW5nIHJlZmVyZW5jZXMgdG8gdGhl
Ci0gICAgLy8gc2Vjb25kIGNvbm5lY3Rpb24sIHNvIGl0IHNob3VsZCBnZXQgZGVsZXRlZC4KKyAg
ICAvLyBkYiwgc28gaXQgc2hvdWxkIGdldCBkZWxldGVkLgogICAgIHNldFRpbWVvdXQoc2V0VmVy
c2lvbiwgMik7CiB9CiAKIGZ1bmN0aW9uIHNldFZlcnNpb24oKQogewogICAgIGdjKCk7Ci0gICAg
ZGVidWcoImNhbGxpbmcgc2V0VmVyc2lvbigpIC0gY2FsbGJhY2sgc2hvdWxkIHJ1biBpbW1lZGlh
dGVseSIpOwotICAgIHZhciB2ZXJzaW9uQ2hhbmdlUmVxdWVzdCA9IGV2YWxBbmRMb2coImRiLnNl
dFZlcnNpb24oJ3ZlcnNpb24gMScpIik7Ci0gICAgdmVyc2lvbkNoYW5nZVJlcXVlc3Qub25lcnJv
ciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotICAgIHZlcnNpb25DaGFuZ2VSZXF1ZXN0Lm9u
YmxvY2tlZCA9IHVuZXhwZWN0ZWRCbG9ja2VkQ2FsbGJhY2s7Ci0gICAgdmVyc2lvbkNoYW5nZVJl
cXVlc3Qub25zdWNjZXNzID0gZmluaXNoSlNUZXN0OworICAgIGRlYnVnKCJPcGVuIHJlcXVlc3Qg
c2hvdWxkIG5vdCByZWNlaXZlIGEgYmxvY2tlZCBldmVudDoiKTsKKyAgICB2YXIgcmVxdWVzdCA9
IGV2YWxBbmRMb2coImluZGV4ZWREQi5vcGVuKGRibmFtZSwgMikiKTsKKyAgICByZXF1ZXN0Lm9u
ZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKKyAgICByZXF1ZXN0Lm9uYmxvY2tlZCA9
IHVuZXhwZWN0ZWRCbG9ja2VkQ2FsbGJhY2s7CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBmaW5p
c2hKU1Rlc3Q7CiB9Ci0KLXRlc3QoKTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173743</attachid>
            <date>2012-11-12 15:43:05 -0800</date>
            <delta_ts>2012-11-12 15:43:54 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101998-20121112154107.patch</filename>
            <type>text/plain</type>
            <size>49112</size>
            <attacher name="David Grogan">dgrogan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0MjUyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMjZkYmI4MWQ1ZGQ0YjExYjhiZjk3
YzcxZjFmMTFjODU1OTdjOTljZi4uMGQwYzBjMGFhMjc1YzZhMWNlZWNjNmU0ZGYyZDhhMjI3MThm
ZDU2YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSw1ICsxLDcyIEBACiAyMDEyLTExLTEyICBEYXZpZCBHcm9nYW4gIDxk
Z3JvZ2FuQGNocm9taXVtLm9yZz4KIAorICAgICAgICBJbmRleGVkREI6IG5vbi10cml2aWFsIHRl
c3QgY29udmVyc2lvbiBiYXRjaCAyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMDE5OTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBZGRpdGlvbmFsIGluZm9ybWF0aW9uIG9mIHRoZSBjaGFuZ2Ugc3VjaCBh
cyBhcHByb2FjaCwgcmF0aW9uYWxlLiBQbGVhc2UgYWRkIHBlci1mdW5jdGlvbiBkZXNjcmlwdGlv
bnMgYmVsb3cgKE9PUFMhKS4KKworICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1v
dmVybG9hZHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2N1cnNv
ci1vdmVybG9hZHMuaHRtbDoKKyAgICAgICAgICBUcml2aWFsIGNvbnZlcnNpb24gdGhhdCBJIG1p
c3NlZCBsYXN0IHRpbWUgYXJvdW5kLgorCisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvZGF0
YWJhc2UtYmFzaWNzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9k
YXRhYmFzZS1jbG9zZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIv
ZGF0YWJhc2UtY2xvc2VwZW5kaW5nLWZsYWctZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0b3Jh
Z2UvaW5kZXhlZGRiL2RlbGV0ZS1jbG9zZWQtZGF0YWJhc2Utb2JqZWN0LWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvZGF0YWJhc2UtYmFzaWNzLmpz
OgorICAgICAgICAgIFJlbW92ZWQgdGVzdCB0aGF0IHNob3dzIGNhbGxpbmcgc2V0VmVyc2lvbiBp
bnNpZGUgYSB2ZXJzaW9uIGNoYW5nZQorICAgICAgICAgIHRyYW5zYWN0aW9uIGlzIGFuIGVycm9y
LiBSZXBsYWNlZCB3aXRoIHRlc3Qgc2hvd2luZyBzYW1lIGVycm9yIGZvciBhCisgICAgICAgICAg
Z2VuZXJpYyB0cmFuc2FjdGlvbi4KKworICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3Jlc291
cmNlcy9kYXRhYmFzZS1jbG9zZS5qczoKKyAgICAgICAgICBGb3JtZXJseSB1c2VkIGJvdGggdW5i
bG9ja2VkIHNldFZlcnNpb24gYW5kIGRlbGV0ZURhdGFiYXNlIHRvIHNpZ25hbAorICAgICAgICAg
IHRoYXQgYSBjb25uZWN0aW9uIHdhcyBjbG9zZWQsIG5vdyBqdXN0IHVzZWQgZGVsZXRlRGF0YWJh
c2UuCisKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvZGF0YWJhc2UtY2xv
c2VwZW5kaW5nLWZsYWcuanM6CisgICAgICAgICAgU3RyYWlnaHRmb3J3YXJkLCBpdCBqdXN0IGhh
cyBtdWx0aXBsZSBvcGVucy4KKworICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNl
cy9kZWxldGUtY2xvc2VkLWRhdGFiYXNlLW9iamVjdC5qczoKKyAgICAgICAgICBJbnN0ZWFkIG9m
IHVzaW5nIHNldFZlcnNpb24gcHJvY2Vzc2lvbiB0byBpbmRpY2F0ZSB0aGUgZGF0YWJhc2UKKyAg
ICAgICAgICBjbG9zZWQsIHVzZSBhbiBvcGVuLXdpdGgtdmVyc2lvbiBjYWxsLgorCisyMDEyLTEx
LTEyICBEYXZpZCBHcm9nYW4gIDxkZ3JvZ2FuQGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRl
eGVkREI6IENvbnZlcnQgc29tZSBub24tc2ltcGxlIHRlc3RzIGZyb20gc2V0VmVyc2lvbiB0byB1
cGdyYWRlbmVlZGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMDE5NTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBPbmdvaW5nIHdvcmsgdG8gcmVtb3ZlIGNhbGxzIHRvIHNldFZlcnNpb24gZnJvbSBvdXIg
dGVzdHMgYmVmb3JlCisgICAgICAgIHJlbW92aW5nIGl0IGZyb20gdGhlIEluZGV4ZWREQiBBUEku
CisKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9jcmVhdGUtYW5kLXJlbW92ZS1vYmplY3Qt
c3RvcmUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2RlbGV0ZWRh
dGFiYXNlLWRlbGF5ZWQtYnktb3Blbi1hbmQtdmVyc2lvbmNoYW5nZS1leHBlY3RlZC50eHQ6Cisg
ICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvZHVwbGljYXRlcy1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2NyZWF0ZS1hbmQtcmVtb3ZlLW9iamVj
dC1zdG9yZS5qczoKKyAgICAgICAgICBDcmVhdGUgYW5kIGRlbGV0ZSB3ZXJlIHJ1bm5pbmcgYmV0
d2VlbiBvcGVuIGFuZCBzZXRWZXJzaW9uLCB3aGljaCBubworICAgICAgICAgIGxvbmdlciBtYWtl
cyBzZW5zZS4KKworICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9kYXRhYmFz
ZS1kZWxldGVwZW5kaW5nLWZsYWcuanM6CisgICAgICAgICAgVXNlIG9wdGlvbmFsIG9iamVjdCBw
YXJhbWV0ZXIgaW5zdGVhZCBvZiBvcHRpb25hbCB2ZXJzaW9uIHBhcmFtZXRlci4KKworICAgICAg
ICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9kZWxldGVkYXRhYmFzZS1kZWxheWVkLWJ5
LW9wZW4tYW5kLXZlcnNpb25jaGFuZ2UuanM6CisgICAgICAgICAgVGhpcyB1c2VkIHRvIGNhbGwg
ZGVsZXRlIGp1c3QgYWZ0ZXIgaXNzdWluZyBzZXRWZXJzaW9uIGJ1dCBiZWZvcmUKKyAgICAgICAg
ICByZWNlaXZpbmcgdGhlIGNvcnJlc3BvbmRpbmcgc3VjY2VzcyBldmVudC4gIE5vdyBpdCBjYWxs
cyBkZWxldGUgd2hpbGUKKyAgICAgICAgICBpbiB0aGUgdXBncmFkZW5lZWRlZCB0cmFuc2FjdGlv
biwgc3RpbGwgY2F1c2luZyB0aGUgZGVsZXRlIHRvIGJlCisgICAgICAgICAgZGVsYXllZCBieSBh
biBpbiBmbGlnaHQgdmVyc2lvbmNoYW5nZSB0cmFuc2FjdGlvbi4KKworICAgICAgICAqIHN0b3Jh
Z2UvaW5kZXhlZGRiL3Jlc291cmNlcy9kdXBsaWNhdGVzLmpzOgorICAgICAgICAgIENhbGwgaW5k
ZXhlZERCVGVzdCB0d2ljZSB0byByZXJ1biB0aGUgdGVzdHMgd2l0aCBhIGRpZmZlcmVudAorICAg
ICAgICAgIGRhdGFiYXNlLgorCisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2Vz
L3NoYXJlZC5qczoKKyAgICAgICAgICBBZGRlZCBhIHN1ZmZpeCBvcHRpb24gdG8gc3VwcG9ydCBk
dXBsaWNhdGVzLmpzLCBzd2l0Y2hlZCB0byBhbgorICAgICAgICAgIG9wdGlvbmFsIG9iamVjdCBw
YXJhbWV0ZXIuCisKKzIwMTItMTEtMTIgIERhdmlkIEdyb2dhbiAgPGRncm9nYW5AY2hyb21pdW0u
b3JnPgorCiAgICAgICAgIEluZGV4ZWREQjogY29udmVydCB0ZXN0cyBmcm9tIHNldFZlcnNpb24g
dG8gdXBncmFkZW5lZWRlZAogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTAxNjc2CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL2NyZWF0ZS1hbmQtcmVtb3ZlLW9iamVjdC1zdG9yZS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jcmVhdGUtYW5kLXJlbW92ZS1vYmplY3Qtc3RvcmUtZXhw
ZWN0ZWQudHh0CmluZGV4IGUyYmQ4YTBmYTUxNjQ2YmY5ZGNjOTEzYzA5NjQ4OGFhZTRlNDUwNzAu
LjRkYzY1NGM0YzkzNTVhMGEyMTdmMjhmYmExMWUwNjMyZDcxYzk4YTggMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2NyZWF0ZS1hbmQtcmVtb3ZlLW9iamVjdC1zdG9y
ZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3JlYXRl
LWFuZC1yZW1vdmUtb2JqZWN0LXN0b3JlLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDMgQEAKLUNP
TlNPTEUgTUVTU0FHRTogVGhlIHNldFZlcnNpb24oKSBtZXRob2QgaXMgbm9uLXN0YW5kYXJkIGFu
ZCB3aWxsIGJlIHJlbW92ZWQuIFVzZSB0aGUgInVwZ3JhZGVuZWVkZWQiIGV2ZW50IGluc3RlYWQu
CiBUZXN0IEluZGV4ZWREQidzIGNyZWF0ZSBhbmQgcmVtb3ZlT2JqZWN0U3RvcmUKIAogT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgpAQCAtNiwzMSArNSw5IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFCiAKIGluZGV4ZWREQiA9IHNlbGYuaW5kZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERC
IHx8IHNlbGYubW96SW5kZXhlZERCIHx8IHNlbGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5kZXhl
ZERCOwogCi1pbmRleGVkREIub3BlbignY3JlYXRlLWFuZC1yZW1vdmUtb2JqZWN0LXN0b3JlJykK
LW9wZW5TdWNjZXNzKCk6Ci1kYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQKLVRyeWluZyBjcmVhdGUK
LUV4cGVjdGluZyBleGNlcHRpb24gZnJvbSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic29tZSBvcyIp
Ci1QQVNTIEV4Y2VwdGlvbiB3YXMgdGhyb3duLgotUEFTUyBjb2RlIGlzIERPTUV4Y2VwdGlvbi5J
TlZBTElEX1NUQVRFX0VSUgotUEFTUyBlbmFtZSBpcyAnSW52YWxpZFN0YXRlRXJyb3InCi1Ucnlp
bmcgcmVtb3ZlCi1FeHBlY3RpbmcgZXhjZXB0aW9uIGZyb20gZGIuZGVsZXRlT2JqZWN0U3RvcmUo
InNvbWUgb3MiKQotUEFTUyBFeGNlcHRpb24gd2FzIHRocm93bi4KLVBBU1MgY29kZSBpcyBET01F
eGNlcHRpb24uSU5WQUxJRF9TVEFURV9FUlIKLVBBU1MgZW5hbWUgaXMgJ0ludmFsaWRTdGF0ZUVy
cm9yJwotcmVzdWx0ID0gZGIuc2V0VmVyc2lvbigndmVyc2lvbiAxJykKLVRyeWluZyBjcmVhdGUK
LUV4cGVjdGluZyBleGNlcHRpb24gZnJvbSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic29tZSBvcyIp
Ci1QQVNTIEV4Y2VwdGlvbiB3YXMgdGhyb3duLgotUEFTUyBjb2RlIGlzIERPTUV4Y2VwdGlvbi5J
TlZBTElEX1NUQVRFX0VSUgotUEFTUyBlbmFtZSBpcyAnSW52YWxpZFN0YXRlRXJyb3InCi1Ucnlp
bmcgcmVtb3ZlCi1FeHBlY3RpbmcgZXhjZXB0aW9uIGZyb20gZGIuZGVsZXRlT2JqZWN0U3RvcmUo
InNvbWUgb3MiKQotUEFTUyBFeGNlcHRpb24gd2FzIHRocm93bi4KLVBBU1MgY29kZSBpcyBET01F
eGNlcHRpb24uSU5WQUxJRF9TVEFURV9FUlIKLVBBU1MgZW5hbWUgaXMgJ0ludmFsaWRTdGF0ZUVy
cm9yJwotRGVsZXRlZCBhbGwgb2JqZWN0IHN0b3Jlcy4KK2RibmFtZSA9ICJjcmVhdGUtYW5kLXJl
bW92ZS1vYmplY3Qtc3RvcmUuaHRtbCIKK2luZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUp
CitpbmRleGVkREIub3BlbihkYm5hbWUpCiBkYi5jcmVhdGVPYmplY3RTdG9yZSgndG1wJykKIEV4
cGVjdGluZyBleGNlcHRpb24gZnJvbSBkYi5jcmVhdGVPYmplY3RTdG9yZSgndG1wJykKIFBBU1Mg
RXhjZXB0aW9uIHdhcyB0aHJvd24uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9jdXJzb3Itb3ZlcmxvYWRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL2N1cnNvci1vdmVybG9hZHMtZXhwZWN0ZWQudHh0CmluZGV4IGM0ODBjNGQz
ODA4NDgzMDllNTdiNjc1MjkwMzg3N2M3ZmFlMjFkMzUuLjM4ODA5ZDNjZGMxODA4ODZiOGU4Y2M4
ZGIzYTVjMDE3MDdjYmJkMzkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL2N1cnNvci1vdmVybG9hZHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL2N1cnNvci1vdmVybG9hZHMtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsMyBA
QAotQ09OU09MRSBNRVNTQUdFOiBUaGUgc2V0VmVyc2lvbigpIG1ldGhvZCBpcyBub24tc3RhbmRh
cmQgYW5kIHdpbGwgYmUgcmVtb3ZlZC4gVXNlIHRoZSAidXBncmFkZW5lZWRlZCIgZXZlbnQgaW5z
dGVhZC4KIENPTlNPTEUgTUVTU0FHRTogTnVtZXJpYyBkaXJlY3Rpb24gdmFsdWVzIGFyZSBkZXBy
ZWNhdGVkIGluIG9wZW5DdXJzb3IgYW5kIG9wZW5LZXlDdXJzb3IuIFVzZSAibmV4dCIsICJuZXh0
dW5pcXVlIiwgInByZXYiLCBvciAicHJldnVuaXF1ZSIuCiBDT05TT0xFIE1FU1NBR0U6IE51bWVy
aWMgZGlyZWN0aW9uIHZhbHVlcyBhcmUgZGVwcmVjYXRlZCBpbiBvcGVuQ3Vyc29yIGFuZCBvcGVu
S2V5Q3Vyc29yLiBVc2UgIm5leHQiLCAibmV4dHVuaXF1ZSIsICJwcmV2Iiwgb3IgInByZXZ1bmlx
dWUiLgogQ09OU09MRSBNRVNTQUdFOiBOdW1lcmljIGRpcmVjdGlvbiB2YWx1ZXMgYXJlIGRlcHJl
Y2F0ZWQgaW4gb3BlbkN1cnNvciBhbmQgb3BlbktleUN1cnNvci4gVXNlICJuZXh0IiwgIm5leHR1
bmlxdWUiLCAicHJldiIsIG9yICJwcmV2dW5pcXVlIi4KQEAgLTMwLDEyICsyOSw5IEBAIE9uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFCiAKIGluZGV4ZWREQiA9IHNlbGYuaW5kZXhlZERCIHx8IHNlbGYu
d2Via2l0SW5kZXhlZERCIHx8IHNlbGYubW96SW5kZXhlZERCIHx8IHNlbGYubXNJbmRleGVkREIg
fHwgc2VsZi5PSW5kZXhlZERCOwogCi1kYm5hbWUgPSAnY3Vyc29yLW92ZXJsb2FkcycKK2RibmFt
ZSA9ICJjdXJzb3Itb3ZlcmxvYWRzLmh0bWwiCiBpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJu
YW1lKQogaW5kZXhlZERCLm9wZW4oZGJuYW1lKQotZGIgPSByZXF1ZXN0LnJlc3VsdAotUEFTUyBk
Yi52ZXJzaW9uIGlzIDEKLWRiLnNldFZlcnNpb24oJzEnKQogc3RvcmUgPSBkYi5jcmVhdGVPYmpl
Y3RTdG9yZSgnc3RvcmUnKQogaW5kZXggPSBzdG9yZS5jcmVhdGVJbmRleCgnaW5kZXgnLCAndmFs
dWUnKQogc3RvcmUucHV0KHt2YWx1ZTogMH0sIDApCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9jdXJzb3Itb3ZlcmxvYWRzLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9jdXJzb3Itb3ZlcmxvYWRzLmh0bWwKaW5kZXggYjQzYTMxMDc2MjQwYzVh
YmUwMDE0Y2JkMGQ5OWFhMTIzM2U1YWJjZi4uNzY3NGRjMjg5ZGYyZDI2MDdjZGUwOTNmMTY4YjRi
MTVjN2QwODgyZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vy
c29yLW92ZXJsb2Fkcy5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1
cnNvci1vdmVybG9hZHMuaHRtbApAQCAtNCwzNSArNCwxNCBAQAogPHNjcmlwdD4KIGRlc2NyaXB0
aW9uKCJWYWxpZGF0ZSB0aGUgb3ZlcmxvYWRzIG9mIElEQk9iamVjdFN0b3JlLm9wZW5DdXJzb3Io
KSwgSURCSW5kZXgub3BlbkN1cnNvcigpIGFuZCBJREJJbmRleC5vcGVuS2V5Q3Vyc29yKCkuIik7
CiAKLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIHJlbW92ZVZlbmRvclByZWZpeGVzKCk7Ci0gICAg
cHJlcGFyZURhdGFiYXNlKCk7Ci19Ci0KK2luZGV4ZWREQlRlc3QocHJlcGFyZURhdGFiYXNlLCB2
ZXJpZnlPdmVybG9hZHMpOwogZnVuY3Rpb24gcHJlcGFyZURhdGFiYXNlKCkKIHsKLSAgICBldmFs
QW5kTG9nKCJkYm5hbWUgPSAnY3Vyc29yLW92ZXJsb2FkcyciKTsKLSAgICByZXF1ZXN0ID0gZXZh
bEFuZExvZygiaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkiKTsKLSAgICByZXF1ZXN0
Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLSAgICByZXF1ZXN0Lm9uc3VjY2Vz
cyA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4ZWRE
Qi5vcGVuKGRibmFtZSkiKTsKLSAgICAgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVy
cm9yQ2FsbGJhY2s7Ci0gICAgICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgewot
ICAgICAgICAgICAgZXZhbEFuZExvZygiZGIgPSByZXF1ZXN0LnJlc3VsdCIpOwotICAgICAgICAg
ICAgc2hvdWxkQmUoImRiLnZlcnNpb24iLCAnMScpOwotICAgICAgICAgICAgcmVxdWVzdCA9IGV2
YWxBbmRMb2coImRiLnNldFZlcnNpb24oJzEnKSIpOwotICAgICAgICAgICAgcmVxdWVzdC5vbmVy
cm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci0gICAgICAgICAgICByZXF1ZXN0Lm9uc3Vj
Y2VzcyA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgICAgICB0cmFucyA9IHJlcXVlc3QucmVz
dWx0OwotICAgICAgICAgICAgICAgIGV2YWxBbmRMb2coInN0b3JlID0gZGIuY3JlYXRlT2JqZWN0
U3RvcmUoJ3N0b3JlJykiKTsKLSAgICAgICAgICAgICAgICBldmFsQW5kTG9nKCJpbmRleCA9IHN0
b3JlLmNyZWF0ZUluZGV4KCdpbmRleCcsICd2YWx1ZScpIik7Ci0gICAgICAgICAgICAgICAgZXZh
bEFuZExvZygic3RvcmUucHV0KHt2YWx1ZTogMH0sIDApIik7Ci0gICAgICAgICAgICAgICAgdHJh
bnMub25jb21wbGV0ZSA9IHZlcmlmeU92ZXJsb2FkczsKLQotICAgICAgICAgICAgfTsKLSAgICAg
ICAgfTsKLSAgICB9OworICAgIGRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKKyAgICBldmVudC50
YXJnZXQudHJhbnNhY3Rpb24ub25hYm9ydCA9IHVuZXhwZWN0ZWRBYm9ydENhbGxiYWNrOworICAg
IGV2YWxBbmRMb2coInN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3JlJykiKTsKKyAg
ICBldmFsQW5kTG9nKCJpbmRleCA9IHN0b3JlLmNyZWF0ZUluZGV4KCdpbmRleCcsICd2YWx1ZScp
Iik7CisgICAgZXZhbEFuZExvZygic3RvcmUucHV0KHt2YWx1ZTogMH0sIDApIik7CiB9CiAKIGZ1
bmN0aW9uIHZlcmlmeU92ZXJsb2FkcygpCkBAIC0xMjMsNyArMTAyLDUgQEAgZnVuY3Rpb24gY2hl
Y2tDdXJzb3JEaXJlY3Rpb24oc3RhdGVtZW50LCBkaXJlY3Rpb24pCiAgICAgfTsKIH0KIAotdGVz
dCgpOwotCiA8L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvZGF0YWJhc2UtYmFzaWNzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL2RhdGFiYXNlLWJhc2ljcy1leHBlY3RlZC50eHQKaW5kZXggMzRiMWRl
MjkxN2ZjNWZjNjBmNWI1MDU3ODM5NmVmMjJmNGUwNDc1Zi4uMzk0Yzg1OWIwNTg4Zjg4NWJmZGRj
YzI3MWIzZGJjMGJhNWI4OTk0MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvZGF0YWJhc2UtYmFzaWNzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9kYXRhYmFzZS1iYXNpY3MtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsMyBA
QAotQ09OU09MRSBNRVNTQUdFOiBUaGUgc2V0VmVyc2lvbigpIG1ldGhvZCBpcyBub24tc3RhbmRh
cmQgYW5kIHdpbGwgYmUgcmVtb3ZlZC4gVXNlIHRoZSAidXBncmFkZW5lZWRlZCIgZXZlbnQgaW5z
dGVhZC4KIFRlc3QgdGhlIGJhc2ljcyBvZiBJbmRleGVkREIncyBJREJEYXRhYmFzZS4KIAogT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgpAQCAtNiwyMCArNSwxNiBAQCBPbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURQogCiBpbmRleGVkREIgPSBzZWxmLmluZGV4ZWREQiB8fCBzZWxmLndlYmtpdEluZGV4
ZWREQiB8fCBzZWxmLm1vekluZGV4ZWREQiB8fCBzZWxmLm1zSW5kZXhlZERCIHx8IHNlbGYuT0lu
ZGV4ZWREQjsKIAotaW5kZXhlZERCLm9wZW4oJ2RhdGFiYXNlLWJhc2ljcycpCi1kYiA9IGV2ZW50
LnRhcmdldC5yZXN1bHQKLWRiLnNldFZlcnNpb24oJ25ldyB2ZXJzaW9uJykKLURlbGV0ZWQgYWxs
IG9iamVjdCBzdG9yZXMuCi1zZXRWZXJzaW9uU3VjY2VzcygpOgotVGVzdGluZyBzZXRWZXJzaW9u
LgotcmVxdWVzdCA9IGRiLnNldFZlcnNpb24oInZlcnNpb24gYSIpCi1FeHBlY3RpbmcgZXhjZXB0
aW9uIGZyb20gZGIuc2V0VmVyc2lvbigidmVyc2lvbiBiIikKK2RibmFtZSA9ICJkYXRhYmFzZS1i
YXNpY3MuaHRtbCIKK2luZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCitpbmRleGVkREIu
b3BlbihkYm5hbWUpCitUZXN0IHRoYXQgeW91IGNhbid0IG9wZW4gYSB0cmFuc2FjdGlvbiB3aGls
ZSBpbiBhIHZlcnNpb25jaGFuZ2UgdHJhbnNhY3Rpb24KK0V4cGVjdGluZyBleGNlcHRpb24gZnJv
bSBkYi50cmFuc2FjdGlvbigiZG9lc250RXhpc3QiKQogUEFTUyBFeGNlcHRpb24gd2FzIHRocm93
bi4KIFBBU1MgY29kZSBpcyBET01FeGNlcHRpb24uSU5WQUxJRF9TVEFURV9FUlIKIFBBU1MgZW5h
bWUgaXMgJ0ludmFsaWRTdGF0ZUVycm9yJwotZGIuc2V0VmVyc2lvbigidmVyc2lvbiBiIikKLVBB
U1MgZGIudmVyc2lvbiBpcyAidmVyc2lvbiBiIgotUEFTUyBkYi5uYW1lIGlzICJkYXRhYmFzZS1i
YXNpY3MiCitQQVNTIGRiLnZlcnNpb24gaXMgMQorUEFTUyBkYi5uYW1lIGlzICJkYXRhYmFzZS1i
YXNpY3MuaHRtbCIKIFBBU1MgZGIub2JqZWN0U3RvcmVOYW1lcyBpcyBbXQogUEFTUyBkYi5vYmpl
Y3RTdG9yZU5hbWVzLmxlbmd0aCBpcyAwCiBQQVNTIGRiLm9iamVjdFN0b3JlTmFtZXMuY29udGFp
bnMoJycpIGlzIGZhbHNlCkBAIC0zMSwxOCArMjYsMjAgQEAgUEFTUyBkYi5vYmplY3RTdG9yZU5h
bWVzLmxlbmd0aCBpcyAxCiBQQVNTIGRiLm9iamVjdFN0b3JlTmFtZXMuY29udGFpbnMoJycpIGlz
IGZhbHNlCiBQQVNTIGRiLm9iamVjdFN0b3JlTmFtZXMuY29udGFpbnMoJ3Rlc3Q0NTYnKSBpcyBm
YWxzZQogUEFTUyBkYi5vYmplY3RTdG9yZU5hbWVzLmNvbnRhaW5zKCd0ZXN0MTIzJykgaXMgdHJ1
ZQotZGIuc2V0VmVyc2lvbigidmVyc2lvbiBjIikKLVBBU1MgZGIudmVyc2lvbiBpcyAidmVyc2lv
biBjIgotUEFTUyBkYi5uYW1lIGlzICJkYXRhYmFzZS1iYXNpY3MiCitkYi5jbG9zZSgpCityZXF1
ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lLCAyKQorZGIgPSBldmVudC50YXJnZXQucmVzdWx0
CitQQVNTIGRiLnZlcnNpb24gaXMgMgorUEFTUyBkYi5uYW1lIGlzICJkYXRhYmFzZS1iYXNpY3Mu
aHRtbCIKIFBBU1MgZGIub2JqZWN0U3RvcmVOYW1lcyBpcyBbJ3Rlc3QxMjMnXQogUEFTUyBkYi5v
YmplY3RTdG9yZU5hbWVzLmxlbmd0aCBpcyAxCiBQQVNTIGRiLm9iamVjdFN0b3JlTmFtZXMuY29u
dGFpbnMoJycpIGlzIGZhbHNlCiBQQVNTIGRiLm9iamVjdFN0b3JlTmFtZXMuY29udGFpbnMoJ3Rl
c3Q0NTYnKSBpcyBmYWxzZQogUEFTUyBkYi5vYmplY3RTdG9yZU5hbWVzLmNvbnRhaW5zKCd0ZXN0
MTIzJykgaXMgdHJ1ZQogZGIuY3JlYXRlT2JqZWN0U3RvcmUoInRlc3Q0NTYiKQotc2V0VmVyc2lv
blRyYW5zID0gZXZlbnQudGFyZ2V0LnJlc3VsdAorc2V0VmVyc2lvblRyYW5zID0gZXZlbnQudGFy
Z2V0LnRyYW5zYWN0aW9uCiBQQVNTIHNldFZlcnNpb25UcmFucyBpcyBub24tbnVsbC4KLVBBU1Mg
ZGIudmVyc2lvbiBpcyAidmVyc2lvbiBiIgorUEFTUyBkYi52ZXJzaW9uIGlzIDEKIFBBU1MgZGIu
b2JqZWN0U3RvcmVOYW1lcyBpcyBbJ3Rlc3QxMjMnXQogUEFTUyBkYi5vYmplY3RTdG9yZU5hbWVz
Lmxlbmd0aCBpcyAxCiBQQVNTIGRiLm9iamVjdFN0b3JlTmFtZXMuY29udGFpbnMoJycpIGlzIGZh
bHNlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9kYXRhYmFzZS1j
bG9zZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9kYXRhYmFz
ZS1jbG9zZS1leHBlY3RlZC50eHQKaW5kZXggNmI0ZmIwZGY5ZmRiNTcwMDQ0ZWM0NTZkMmM3YmFh
ZmI0ZTg3ZjhjNS4uYTMwNzlmYTJlMDVlMTMzMGNmMGU4MjY5ODA3ODE1MDNkYWNhOWUwNiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZGF0YWJhc2UtY2xvc2UtZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2RhdGFiYXNlLWNs
b3NlLWV4cGVjdGVkLnR4dApAQCAtMSw1ICsxLDMgQEAKLUNPTlNPTEUgTUVTU0FHRTogVGhlIHNl
dFZlcnNpb24oKSBtZXRob2QgaXMgbm9uLXN0YW5kYXJkIGFuZCB3aWxsIGJlIHJlbW92ZWQuIFVz
ZSB0aGUgInVwZ3JhZGVuZWVkZWQiIGV2ZW50IGluc3RlYWQuCi1DT05TT0xFIE1FU1NBR0U6IFRo
ZSBzZXRWZXJzaW9uKCkgbWV0aG9kIGlzIG5vbi1zdGFuZGFyZCBhbmQgd2lsbCBiZSByZW1vdmVk
LiBVc2UgdGhlICJ1cGdyYWRlbmVlZGVkIiBldmVudCBpbnN0ZWFkLgogVGVzdCBJbmRleGVkREIg
J3N0ZXBzIGZvciBjbG9zaW5nIGEgZGF0YWJhc2UgY29ubmVjdGlvbicKIAogT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgpAQCAtNywyMSArNSwxMyBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQog
CiBpbmRleGVkREIgPSBzZWxmLmluZGV4ZWREQiB8fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8fCBz
ZWxmLm1vekluZGV4ZWREQiB8fCBzZWxmLm1zSW5kZXhlZERCIHx8IHNlbGYuT0luZGV4ZWREQjsK
IAotZGJuYW1lID0gc2VsZi5sb2NhdGlvbi5wYXRobmFtZQorZGJuYW1lID0gImRhdGFiYXNlLWNs
b3NlLmh0bWwiCiBpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQotCi1vcGVuQ29ubmVj
dGlvbigpOgotcmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKGRibmFtZSkKLWNvbm5lY3Rpb24gPSBy
ZXF1ZXN0LnJlc3VsdAotcmVxdWVzdCA9IGNvbm5lY3Rpb24uc2V0VmVyc2lvbignMScpCitpbmRl
eGVkREIub3BlbihkYm5hbWUpCiBzdG9yZSA9IGNvbm5lY3Rpb24uY3JlYXRlT2JqZWN0U3RvcmUo
J3N0b3JlJykKIHN0b3JlLnB1dCgndmFsdWUxJywgJ2tleTEnKQogc3RvcmUucHV0KCd2YWx1ZTIn
LCAna2V5MicpCiAKLW9wZW5WZXJzaW9uQ2hhbmdlQ29ubmVjdGlvbigpOgotcmVxdWVzdCA9IGlu
ZGV4ZWREQi5vcGVuKGRibmFtZSkKLXZlcnNpb25fY2hhbmdlX2Nvbm5lY3Rpb24gPSByZXF1ZXN0
LnJlc3VsdAotCiB0ZXN0Q2xvc2UoKToKIENyZWF0ZSB0cmFuc2FjdGlvbnMgdXNpbmcgY29ubmVj
dGlvbjoKIHRyYW5zMSA9IGNvbm5lY3Rpb24udHJhbnNhY3Rpb24oJ3N0b3JlJykKQEAgLTQzLDkg
KzMzLDggQEAgUEFTUyBFeGNlcHRpb24gd2FzIHRocm93bi4KIFBBU1MgY29kZSBpcyBET01FeGNl
cHRpb24uSU5WQUxJRF9TVEFURV9FUlIKIFBBU1MgZW5hbWUgaXMgJ0ludmFsaWRTdGF0ZUVycm9y
JwogCi1OT1RFOiBPbmNlIHRoZSBjb25uZWN0aW9uIGlzIGNsb3NlZCwgdGhpcyBjYW4gdW5ibG9j
ayB0aGUgc3RlcHMgZm9yIHJ1bm5pbmcgYSAidmVyc2lvbmNoYW5nZSIgdHJhbnNhY3Rpb24sIGFu
ZCB0aGUgc3RlcHMgZm9yIGRlbGV0aW5nIGEgZGF0YWJhc2UsIHdoaWNoIGJvdGggd2FpdCBmb3Ig
Y29ubmVjdGlvbnMgdG8gYSBnaXZlbiBkYXRhYmFzZSB0byBiZSBjbG9zZWQgYmVmb3JlIGNvbnRp
bnVpbmcuCitOT1RFOiBPbmNlIHRoZSBjb25uZWN0aW9uIGlzIGNsb3NlZCwgdGhpcyBjYW4gdW5i
bG9jayB0aGUgc3RlcHMgZm9yIGRlbGV0aW5nIGEgZGF0YWJhc2UsIHdoaWNoIHdhaXRzIGZvciBj
b25uZWN0aW9ucyB0byBhIGdpdmVuIGRhdGFiYXNlIHRvIGJlIGNsb3NlZCBiZWZvcmUgY29udGlu
dWluZy4KIAotdmVyc2lvbl9jaGFuZ2VfY29ubmVjdGlvbi5zZXRWZXJzaW9uKCcyJykKIGluZGV4
ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCiAKIHRyYW5zYWN0aW9uICMxIHJlcXVlc3Qgc3Vj
Y2Vzc2Z1bApAQCAtNTYsMTIgKzQ1LDcgQEAgdHJhbnNhY3Rpb24gIzIgcmVxdWVzdCBzdWNjZXNz
ZnVsCiBQQVNTIGV2ZW50LnRhcmdldC5yZXN1bHQgaXMgInZhbHVlMiIKIGF3YWl0aW5nX3RyYW5z
YWN0aW9uX2NvdW50IC09IDEKIAotQWxsIHRyYW5zYWN0aW9ucyBjb21wbGV0ZWQgLSB2ZXJzaW9u
IGNoYW5nZXMgLyBkYXRhYmFzZSBkZWxldGVzIHNob3VsZCBub3cgYmUgdW5ibG9ja2VkLgotCi12
ZXJzaW9uIGNoYW5nZSB0cmFuc2FjdGlvbiB1bmJsb2NrZWQKLVBBU1MgYXdhaXRpbmdfdHJhbnNh
Y3Rpb25fY291bnQgaXMgMAotUEFTUyB2ZXJzaW9uX2NoYW5nZV9jb25uZWN0aW9uLnZlcnNpb24g
aXMgIjIiCi12ZXJzaW9uX2NoYW5nZV9jb25uZWN0aW9uLmNsb3NlKCkKK0FsbCB0cmFuc2FjdGlv
bnMgY29tcGxldGVkIC0gZGF0YWJhc2UgZGVsZXRlcyBzaG91bGQgbm93IGJlIHVuYmxvY2tlZC4K
IAogZGVsZXRlIGRhdGFiYXNlIHVuYmxvY2tlZAogUEFTUyBhd2FpdGluZ190cmFuc2FjdGlvbl9j
b3VudCBpcyAwCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9kYXRh
YmFzZS1jbG9zZXBlbmRpbmctZmxhZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9kYXRhYmFzZS1jbG9zZXBlbmRpbmctZmxhZy1leHBlY3RlZC50eHQKaW5kZXgg
NjdmYjVhNzA4NmY4YTEzZjYzYjRkNGRkNjM0ZWJlNjEyMmM5NGRiZC4uODdmODIyNTNlMjVjMWIx
Njg5NjAxMzgyZmQzYmYyYmVmMGY5NDNiMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvZGF0YWJhc2UtY2xvc2VwZW5kaW5nLWZsYWctZXhwZWN0ZWQudHh0CisrKyBi
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2RhdGFiYXNlLWNsb3NlcGVuZGluZy1mbGFn
LWV4cGVjdGVkLnR4dApAQCAtMSw2ICsxLDMgQEAKLUNPTlNPTEUgTUVTU0FHRTogVGhlIHNldFZl
cnNpb24oKSBtZXRob2QgaXMgbm9uLXN0YW5kYXJkIGFuZCB3aWxsIGJlIHJlbW92ZWQuIFVzZSB0
aGUgInVwZ3JhZGVuZWVkZWQiIGV2ZW50IGluc3RlYWQuCi1DT05TT0xFIE1FU1NBR0U6IFRoZSBz
ZXRWZXJzaW9uKCkgbWV0aG9kIGlzIG5vbi1zdGFuZGFyZCBhbmQgd2lsbCBiZSByZW1vdmVkLiBV
c2UgdGhlICJ1cGdyYWRlbmVlZGVkIiBldmVudCBpbnN0ZWFkLgotQ09OU09MRSBNRVNTQUdFOiBU
aGUgc2V0VmVyc2lvbigpIG1ldGhvZCBpcyBub24tc3RhbmRhcmQgYW5kIHdpbGwgYmUgcmVtb3Zl
ZC4gVXNlIHRoZSAidXBncmFkZW5lZWRlZCIgZXZlbnQgaW5zdGVhZC4KIFRlc3QgSW5kZXhlZERC
IElEQkRhdGFiYXNlIGludGVybmFsIGNsb3NlUGVuZGluZyBmbGFnCiAKIE9uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KQEAgLTgsMTMgKzUsOSBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogCiBp
bmRleGVkREIgPSBzZWxmLmluZGV4ZWREQiB8fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8fCBzZWxm
Lm1vekluZGV4ZWREQiB8fCBzZWxmLm1zSW5kZXhlZERCIHx8IHNlbGYuT0luZGV4ZWREQjsKIAot
ZGJuYW1lID0gc2VsZi5sb2NhdGlvbi5wYXRobmFtZQorZGJuYW1lID0gImRhdGFiYXNlLWNsb3Nl
cGVuZGluZy1mbGFnLmh0bWwiCiBpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQotCi1v
cGVuQ29ubmVjdGlvbigpOgotcmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKGRibmFtZSkKLWNvbm5l
Y3Rpb24gPSByZXF1ZXN0LnJlc3VsdAotcmVxdWVzdCA9IGNvbm5lY3Rpb24uc2V0VmVyc2lvbign
MScpCitpbmRleGVkREIub3BlbihkYm5hbWUpCiBzdG9yZSA9IGNvbm5lY3Rpb24uY3JlYXRlT2Jq
ZWN0U3RvcmUoJ3N0b3JlJykKIAogRmlyc3QsIHZlcmlmeSB0aGF0IHRoZSBkYXRhYmFzZSBjb25u
ZWN0aW9uIGlzIG5vdCBjbG9zZWQ6CkBAIC0zNiw5ICsyOSw4IEBAIFBBU1MgY29ubmVjdGlvbi5u
YW1lIGlzIGRibmFtZQogCiBJREJEYXRhYmFzZS5vYmplY3RTdG9yZU5hbWVzOgogIk9uY2UgdGhl
IGNsb3NlUGVuZGluZyBmbGFnIGlzIHNldCBvbiB0aGUgY29ubmVjdGlvbiwgdGhpcyBmdW5jdGlv
biBtdXN0IHJldHVybiBhIHNuYXBzaG90IG9mIHRoZSBsaXN0IG9mIG5hbWVzIG9mIHRoZSBvYmpl
Y3Qgc3RvcmVzIHRha2VuIGF0IHRoZSB0aW1lIHdoZW4gdGhlIGNsb3NlIG1ldGhvZCB3YXMgY2Fs
bGVkLiIKLXJlcXVlc3QgPSBpbmRleGVkREIub3BlbihkYm5hbWUpCityZXF1ZXN0ID0gaW5kZXhl
ZERCLm9wZW4oZGJuYW1lLCAyKQogdmVyc2lvbl9jaGFuZ2VfY29ubmVjdGlvbiA9IHJlcXVlc3Qu
cmVzdWx0Ci12ZXJzaW9uX2NoYW5nZV9jb25uZWN0aW9uLnNldFZlcnNpb24oJzInKQogdmVyc2lv
bl9jaGFuZ2VfY29ubmVjdGlvbi5jcmVhdGVPYmplY3RTdG9yZSgnbmV3X3N0b3JlJykKIFBBU1Mg
dmVyc2lvbl9jaGFuZ2VfY29ubmVjdGlvbi5vYmplY3RTdG9yZU5hbWVzLmNvbnRhaW5zKCduZXdf
c3RvcmUnKSBpcyB0cnVlCiBQQVNTIGNvbm5lY3Rpb24ub2JqZWN0U3RvcmVOYW1lcy5jb250YWlu
cygnbmV3X3N0b3JlJykgaXMgZmFsc2UKQEAgLTYwLDEwICs1Miw5IEBAIGNvbm5lY3Rpb24ub252
ZXJzaW9uY2hhbmdlID0gZnVuY3Rpb24gKCkgeyB2ZXJzaW9uQ2hhbmdlV2FzRmlyZWQgPSB0cnVl
OyB9CiB0cmFuc2FjdGlvbiA9IGNvbm5lY3Rpb24udHJhbnNhY3Rpb24oJ3N0b3JlJykKIGNvbm5l
Y3Rpb24uY2xvc2UoKQogY2xvc2VQZW5kaW5nIGlzIHNldCwgYnV0IGFjdGl2ZSB0cmFuc2FjdGlv
biB3aWxsIGtlZXAgY29ubmVjdGlvbiBmcm9tIGNsb3NpbmcKLXJlcXVlc3QgPSBpbmRleGVkREIu
b3BlbihkYm5hbWUpCi12ZXJzaW9uX2NoYW5nZV9jb25uZWN0aW9uID0gcmVxdWVzdC5yZXN1bHQK
LXZlcnNpb25fY2hhbmdlX2Nvbm5lY3Rpb24uc2V0VmVyc2lvbignMycpCityZXF1ZXN0ID0gaW5k
ZXhlZERCLm9wZW4oZGJuYW1lLCAzKQogJ2Jsb2NrZWQnIGV2ZW50IGZpcmVkLCBsZXR0aW5nIHRy
YW5zYWN0aW9uIGNvbXBsZXRlIGFuZCBjb25uZWN0aW9uIGNsb3NlCit2ZXJzaW9uX2NoYW5nZV9j
b25uZWN0aW9uID0gcmVxdWVzdC5yZXN1bHQKIFBBU1MgdmVyc2lvbkNoYW5nZVdhc0ZpcmVkIGlz
IGZhbHNlCiB2ZXJzaW9uX2NoYW5nZV9jb25uZWN0aW9uLmNsb3NlKCkKIApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZGVsZXRlLWNsb3NlZC1kYXRhYmFzZS1vYmpl
Y3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZGVsZXRlLWNs
b3NlZC1kYXRhYmFzZS1vYmplY3QtZXhwZWN0ZWQudHh0CmluZGV4IDZlMzE4N2Q3ZTZhYjc3MDM3
MWI2ODI3NDU1MGZjYzQwMWMxNjcxMzIuLmM5OWE1Njc2ZjBlNTJlOTNiMTAxNjAwMmYwY2UyODVj
MTI2NWMwMDYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2RlbGV0
ZS1jbG9zZWQtZGF0YWJhc2Utb2JqZWN0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9kZWxldGUtY2xvc2VkLWRhdGFiYXNlLW9iamVjdC1leHBlY3RlZC50
eHQKQEAgLTEsNCArMSwzIEBACi1DT05TT0xFIE1FU1NBR0U6IFRoZSBzZXRWZXJzaW9uKCkgbWV0
aG9kIGlzIG5vbi1zdGFuZGFyZCBhbmQgd2lsbCBiZSByZW1vdmVkLiBVc2UgdGhlICJ1cGdyYWRl
bmVlZGVkIiBldmVudCBpbnN0ZWFkLgogRW5zdXJlIHRoYXQgSURCRGF0YWJhc2Ugb2JqZWN0cyBh
cmUgZGVsZXRlZCB3aGVuIHRoZXJlIGFyZSBubyByZXRhaW5pbmcgcGF0aHMgbGVmdAogCiBPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCkBAIC02LDEzICs1LDEyIEBAIE9uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFCiAKIGluZGV4ZWREQiA9IHNlbGYuaW5kZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhl
ZERCIHx8IHNlbGYubW96SW5kZXhlZERCIHx8IHNlbGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5k
ZXhlZERCOwogCi1zZWxmLnN0YXRlID0gJ3N0YXJ0aW5nJwotaW5kZXhlZERCLm9wZW4oJ2RlbGV0
ZS1jbG9zZWQtZGF0YWJhc2Utb2JqZWN0JykKLWRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdAotaW5k
ZXhlZERCLm9wZW4oJ2RlbGV0ZS1jbG9zZWQtZGF0YWJhc2Utb2JqZWN0JykKLVNlY29uZCBjb25u
ZWN0aW9uIHN1Y2Nlc3NmdWxseSBlc3RhYmxpc2hlZC4KLWNhbGxpbmcgc2V0VmVyc2lvbigpIC0g
Y2FsbGJhY2sgc2hvdWxkIHJ1biBpbW1lZGlhdGVseQotZGIuc2V0VmVyc2lvbigndmVyc2lvbiAx
JykKK2RibmFtZSA9ICJkZWxldGUtY2xvc2VkLWRhdGFiYXNlLW9iamVjdC5odG1sIgoraW5kZXhl
ZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkKK2luZGV4ZWREQi5vcGVuKGRibmFtZSkKK0Nvbm5l
Y3Rpb24gc3VjY2Vzc2Z1bGx5IGVzdGFibGlzaGVkLgorT3BlbiByZXF1ZXN0IHNob3VsZCBub3Qg
cmVjZWl2ZSBhIGJsb2NrZWQgZXZlbnQ6CitpbmRleGVkREIub3BlbihkYm5hbWUsIDIpCiBQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2RlbGV0ZWRhdGFiYXNlLWRlbGF5ZWQtYnkt
b3Blbi1hbmQtdmVyc2lvbmNoYW5nZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9kZWxldGVkYXRhYmFzZS1kZWxheWVkLWJ5LW9wZW4tYW5kLXZlcnNpb25jaGFu
Z2UtZXhwZWN0ZWQudHh0CmluZGV4IDdlYWNjMTc1MDFhZDk2Yzg0OGZkNTkzZWIyZmMwMTY0NWMw
NTk0OTAuLjQzYmE0NjliOGE2YzJhNDIyZDU5MmRmMzc0ZWM3NTliZDQ5NzlmNTMgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2RlbGV0ZWRhdGFiYXNlLWRlbGF5ZWQt
Ynktb3Blbi1hbmQtdmVyc2lvbmNoYW5nZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvZGVsZXRlZGF0YWJhc2UtZGVsYXllZC1ieS1vcGVuLWFuZC12ZXJz
aW9uY2hhbmdlLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDMgQEAKLUNPTlNPTEUgTUVTU0FHRTog
VGhlIHNldFZlcnNpb24oKSBtZXRob2QgaXMgbm9uLXN0YW5kYXJkIGFuZCB3aWxsIGJlIHJlbW92
ZWQuIFVzZSB0aGUgInVwZ3JhZGVuZWVkZWQiIGV2ZW50IGluc3RlYWQuCiBUZXN0IHRoYXQgZGVs
ZXRlRGF0YWJhc2UgaXMgZGVsYXllZCBpZiBhIFZFUlNJT05fQ0hBTkdFIHRyYW5zYWN0aW9uIGlz
IHJ1bm5pbmcKIAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgpAQCAtNywyMiArNiwxNyBAQCBP
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURQogaW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIgfHwgc2Vs
Zi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5tc0luZGV4ZWRE
QiB8fCBzZWxmLk9JbmRleGVkREI7CiAKIGRibmFtZSA9ICJkZWxldGVkYXRhYmFzZS1kZWxheWVk
LWJ5LW9wZW4tYW5kLXZlcnNpb25jaGFuZ2UuaHRtbCIKLXZlciA9IDEKLXZlcnNpb25DaGFuZ2VD
b21wbGV0ZSA9IGZhbHNlCitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQogaW5kZXhl
ZERCLm9wZW4oZGJuYW1lKQotCi1vcGVuT25TdWNjZXNzKCk6Cit2ZXJzaW9uQ2hhbmdlQ29tcGxl
dGUgPSBmYWxzZQogaCA9IGV2ZW50LnRhcmdldC5yZXN1bHQKLWguc2V0VmVyc2lvbihTdHJpbmco
dmVyKyspKQogaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkKIAotc2V0VmVyc2lvbk9u
U3VjY2VzcygpOgotCiB0cmFuc2FjdGlvbk9uQ29tcGxldGUoKToKIHZlcnNpb25DaGFuZ2VDb21w
bGV0ZSA9IHRydWUKIAogb25WZXJzaW9uQ2hhbmdlKCk6Ci1vbGQgPSAiMSIKK29sZCA9IDEKIG5l
dyA9ICIiCiAKIGRlbGV0ZURhdGFiYXNlT25CbG9ja2VkKCk6CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9kdXBsaWNhdGVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2R1cGxpY2F0ZXMtZXhwZWN0ZWQudHh0CmluZGV4IGY0YTY3
OTdhMTNmZTJmZTFkNGY4ZThmYmRhZmQ4ZGFjMGYzNmJmYmMuLmFmMGJiNGIyNDY4MTMxNDhkZjJh
ZmUyYjdkM2QzZjU3ZWZjODQ4M2MgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL2R1cGxpY2F0ZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL2R1cGxpY2F0ZXMtZXhwZWN0ZWQudHh0CkBAIC0xLDUgKzEsMyBAQAotQ09OU09M
RSBNRVNTQUdFOiBUaGUgc2V0VmVyc2lvbigpIG1ldGhvZCBpcyBub24tc3RhbmRhcmQgYW5kIHdp
bGwgYmUgcmVtb3ZlZC4gVXNlIHRoZSAidXBncmFkZW5lZWRlZCIgZXZlbnQgaW5zdGVhZC4KLUNP
TlNPTEUgTUVTU0FHRTogVGhlIHNldFZlcnNpb24oKSBtZXRob2QgaXMgbm9uLXN0YW5kYXJkIGFu
ZCB3aWxsIGJlIHJlbW92ZWQuIFVzZSB0aGUgInVwZ3JhZGVuZWVkZWQiIGV2ZW50IGluc3RlYWQu
CiBWZXJpZnkgdGhhdCB5b3UgY2FuIHB1dCB0aGUgc2FtZSBkYXRhIGluIDIgZGlmZmVyZW50IGRh
dGFiYXNlcyB3aXRob3V0IHVuaXF1ZW5lc3MgY29uc3RyYWludHMgZmlyaW5nLgogCiBPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCkBAIC03LDEzICs1LDkgQEAgT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUKIAogaW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIg
fHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVk
REI7CiAKLWluZGV4ZWREQi5vcGVuKCdkdXBsaWNhdGVzLTEnKQotZGIgPSBldmVudC50YXJnZXQu
cmVzdWx0Ci1kYi5zZXRWZXJzaW9uKCduZXcgdmVyc2lvbicpCi1zZXRWZXJzaW9uU3VjY2Vzcygp
OgotdHJhbnMgPSBldmVudC50YXJnZXQucmVzdWx0Ci1QQVNTIHRyYW5zIGlzIG5vbi1udWxsLgot
RGVsZXRlZCBhbGwgb2JqZWN0IHN0b3Jlcy4KK2RibmFtZSA9ICJkdXBsaWNhdGVzLmh0bWwtMSIK
K2luZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCitpbmRleGVkREIub3BlbihkYm5hbWUp
CiBkYi5jcmVhdGVPYmplY3RTdG9yZSgnc3RvcmVOYW1lJywgbnVsbCkKIHN0b3JlLmNyZWF0ZUlu
ZGV4KCdpbmRleE5hbWUnLCAneCcpCiBzdG9yZS5hZGQoe3g6ICd2YWx1ZScsIHk6ICd6enonfSwg
J2tleScpCkBAIC00OSwxMyArNDMsMTEgQEAgUEFTUyBldmVudC50YXJnZXQucmVzdWx0LnZhbHVl
LnggaXMgInZhbHVlMiIKIFBBU1MgZXZlbnQudGFyZ2V0LnJlc3VsdC52YWx1ZS55IGlzICJ6enoy
IgogZXZlbnQudGFyZ2V0LnJlc3VsdC5jb250aW51ZSgpCiBQQVNTIGV2ZW50LnRhcmdldC5yZXN1
bHQgaXMgbnVsbAotaW5kZXhlZERCLm9wZW4oJ2R1cGxpY2F0ZXMtMicpCi1kYiA9IGV2ZW50LnRh
cmdldC5yZXN1bHQKLWRiLnNldFZlcnNpb24oJ25ldyB2ZXJzaW9uJykKLXNldFZlcnNpb25TdWNj
ZXNzKCk6Ci10cmFucyA9IGV2ZW50LnRhcmdldC5yZXN1bHQKLVBBU1MgdHJhbnMgaXMgbm9uLW51
bGwuCi1EZWxldGVkIGFsbCBvYmplY3Qgc3RvcmVzLgoraW5kZXhlZERCID0gc2VsZi5pbmRleGVk
REIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5t
c0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CisKK2RibmFtZSA9ICJkdXBsaWNhdGVzLmh0
bWwtMiIKK2luZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCitpbmRleGVkREIub3Blbihk
Ym5hbWUpCiBkYi5jcmVhdGVPYmplY3RTdG9yZSgnc3RvcmVOYW1lJywgbnVsbCkKIHN0b3JlLmNy
ZWF0ZUluZGV4KCdpbmRleE5hbWUnLCAneCcpCiBzdG9yZS5hZGQoe3g6ICd2YWx1ZScsIHk6ICd6
enonfSwgJ2tleScpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9y
ZXNvdXJjZXMvY3JlYXRlLWFuZC1yZW1vdmUtb2JqZWN0LXN0b3JlLmpzIGIvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2NyZWF0ZS1hbmQtcmVtb3ZlLW9iamVjdC1zdG9y
ZS5qcwppbmRleCBkMmM2OTk0NjIwYTBkMTAyN2RjMTBhMGE0OTdiZjliYzZlMDk4YzhlLi44NGE2
NzY2YTJhOTg3YmU4NjUwYjFhNDFmNzhkNWVlNDIxY2Q4NDk4IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvY3JlYXRlLWFuZC1yZW1vdmUtb2JqZWN0
LXN0b3JlLmpzCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9j
cmVhdGUtYW5kLXJlbW92ZS1vYmplY3Qtc3RvcmUuanMKQEAgLTUsNTUgKzUsMzEgQEAgaWYgKHRo
aXMuaW1wb3J0U2NyaXB0cykgewogCiBkZXNjcmlwdGlvbigiVGVzdCBJbmRleGVkREIncyBjcmVh
dGUgYW5kIHJlbW92ZU9iamVjdFN0b3JlIik7CiAKLWZ1bmN0aW9uIHRlc3QoKQoraW5kZXhlZERC
VGVzdChwcmVwYXJlRGF0YWJhc2UsIHNldFZlcnNpb25Db21wbGV0ZSk7CitmdW5jdGlvbiBwcmVw
YXJlRGF0YWJhc2UoKQogewotICAgIHJlbW92ZVZlbmRvclByZWZpeGVzKCk7Ci0gICAgcmVxdWVz
dCA9IGV2YWxBbmRMb2coImluZGV4ZWREQi5vcGVuKCdjcmVhdGUtYW5kLXJlbW92ZS1vYmplY3Qt
c3RvcmUnKSIpOwotICAgIHJlcXVlc3Qub25zdWNjZXNzID0gb3BlblN1Y2Nlc3M7Ci0gICAgcmVx
dWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci19Ci0KLWZ1bmN0aW9uIG9w
ZW5TdWNjZXNzKCkKLXsKLSAgICBkZWJ1Zygib3BlblN1Y2Nlc3MoKToiKTsKLSAgICBzZWxmLmRi
ID0gZXZhbEFuZExvZygiZGIgPSBldmVudC50YXJnZXQucmVzdWx0Iik7Ci0gICAgdGVzdENyZWF0
ZUFuZFJlbW92ZSgpOwotICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJyZXN1bHQgPSBkYi5zZXRW
ZXJzaW9uKCd2ZXJzaW9uIDEnKSIpOwotICAgIHJlcXVlc3Qub25zdWNjZXNzID0gY2xlYW5EYXRh
YmFzZTsKLSAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLSAg
ICB0ZXN0Q3JlYXRlQW5kUmVtb3ZlKCk7Ci19Ci0KLWZ1bmN0aW9uIHRlc3RDcmVhdGVBbmRSZW1v
dmUoKQotewotICAgIGRlYnVnKCJUcnlpbmcgY3JlYXRlIik7Ci0gICAgZXZhbEFuZEV4cGVjdEV4
Y2VwdGlvbignZGIuY3JlYXRlT2JqZWN0U3RvcmUoInNvbWUgb3MiKScsICJET01FeGNlcHRpb24u
SU5WQUxJRF9TVEFURV9FUlIiLCAiJ0ludmFsaWRTdGF0ZUVycm9yJyIpOwotICAgIGRlYnVnKCJU
cnlpbmcgcmVtb3ZlIik7Ci0gICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbignZGIuZGVsZXRlT2Jq
ZWN0U3RvcmUoInNvbWUgb3MiKScsICJET01FeGNlcHRpb24uSU5WQUxJRF9TVEFURV9FUlIiLCAi
J0ludmFsaWRTdGF0ZUVycm9yJyIpOwotfQotCi1mdW5jdGlvbiBjbGVhbkRhdGFiYXNlKCkKLXsK
LSAgICBkZWxldGVBbGxPYmplY3RTdG9yZXMoZGIpOwotCisgICAgZGIgPSBldmVudC50YXJnZXQu
cmVzdWx0OworICAgIGV2ZW50LnRhcmdldC50cmFuc2FjdGlvbi5vbmFib3J0ID0gdW5leHBlY3Rl
ZEFib3J0Q2FsbGJhY2s7CiAgICAgb3MgPSBldmFsQW5kTG9nKCJkYi5jcmVhdGVPYmplY3RTdG9y
ZSgndG1wJykiKTsKICAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJkYi5jcmVhdGVPYmplY3RT
dG9yZSgndG1wJykiLCAiSURCRGF0YWJhc2VFeGNlcHRpb24uQ09OU1RSQUlOVF9FUlIiLCAiJ0Nv
bnN0cmFpbnRFcnJvciciKTsKLSAgICBldmVudC50YXJnZXQucmVzdWx0Lm9uY29tcGxldGUgPSBz
ZXRWZXJzaW9uQ29tcGxldGU7CiB9CiAKIGZ1bmN0aW9uIHNldFZlcnNpb25Db21wbGV0ZSgpCiB7
CiAgICAgdHJhbnMgPSBldmFsQW5kTG9nKCJ0cmFucyA9IGRiLnRyYW5zYWN0aW9uKFsndG1wJ10p
Iik7CiAgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coInRyYW5zLm9iamVjdFN0b3JlKCd0bXAnKS5n
ZXQoMCkiKTsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IHRyeU9uY2VNb3JlOworICAgIHJlcXVl
c3Qub25zdWNjZXNzID0gdHJ5VG9DcmVhdGVBbmREZWxldGU7CiAgICAgcmVxdWVzdC5vbmVycm9y
ID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CiB9CiAKLWZ1bmN0aW9uIHRyeU9uY2VNb3JlKCkK
K2Z1bmN0aW9uIHRyeVRvQ3JlYXRlQW5kRGVsZXRlKCkKIHsKICAgICBzaG91bGRCZVVuZGVmaW5l
ZCgiZXZlbnQudGFyZ2V0LnJlc3VsdCIpOwogCi0gICAgdGVzdENyZWF0ZUFuZFJlbW92ZSgpOwor
ICAgIGRlYnVnKCJUcnlpbmcgY3JlYXRlIik7CisgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbign
ZGIuY3JlYXRlT2JqZWN0U3RvcmUoInNvbWUgb3MiKScsICJET01FeGNlcHRpb24uSU5WQUxJRF9T
VEFURV9FUlIiLCAiJ0ludmFsaWRTdGF0ZUVycm9yJyIpOworICAgIGRlYnVnKCJUcnlpbmcgcmVt
b3ZlIik7CisgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbignZGIuZGVsZXRlT2JqZWN0U3RvcmUo
InNvbWUgb3MiKScsICJET01FeGNlcHRpb24uSU5WQUxJRF9TVEFURV9FUlIiLCAiJ0ludmFsaWRT
dGF0ZUVycm9yJyIpOwogCiAgICAgZGVidWcoIlRyeWluZyBjcmVhdGUgd2l0aCBzdG9yZSB0aGF0
IGFscmVhZHkgZXhpc3RzIik7CiAgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigiZGIuY3JlYXRl
T2JqZWN0U3RvcmUoJ3RtcCcpIiwgIkRPTUV4Y2VwdGlvbi5JTlZBTElEX1NUQVRFX0VSUiIsICIn
SW52YWxpZFN0YXRlRXJyb3InIik7CkBAIC02Miw1ICszOCwzIEBAIGZ1bmN0aW9uIHRyeU9uY2VN
b3JlKCkKIAogICAgIGZpbmlzaEpTVGVzdCgpOwogfQotCi10ZXN0KCk7ClwgTm8gbmV3bGluZSBh
dCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
cmVzb3VyY2VzL2RhdGFiYXNlLWJhc2ljcy5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL3Jlc291cmNlcy9kYXRhYmFzZS1iYXNpY3MuanMKaW5kZXggMjUxZTQ1NTEwMDNiZjVlZjcw
MDI3YjA0OGY4ZjRmYjI3MmVhZDQ0Ni4uYzZmZmIwYTY1N2Y2ZGQ4Yjg5MGNiYWM3MTRmODc5NWM2
MzdhNmU5ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3Vy
Y2VzL2RhdGFiYXNlLWJhc2ljcy5qcworKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9yZXNvdXJjZXMvZGF0YWJhc2UtYmFzaWNzLmpzCkBAIC01LDU4ICs1LDE2IEBAIGlmICh0aGlz
LmltcG9ydFNjcmlwdHMpIHsKIAogZGVzY3JpcHRpb24oIlRlc3QgdGhlIGJhc2ljcyBvZiBJbmRl
eGVkREIncyBJREJEYXRhYmFzZS4iKTsKIAotZnVuY3Rpb24gdGVzdCgpCitpbmRleGVkREJUZXN0
KHByZXBhcmVEYXRhYmFzZSwgdGVzdFNldFZlcnNpb25BYm9ydCk7CitmdW5jdGlvbiBwcmVwYXJl
RGF0YWJhc2UoKQogewotICAgIHJlbW92ZVZlbmRvclByZWZpeGVzKCk7CisgICAgZGIgPSBldmVu
dC50YXJnZXQucmVzdWx0OworICAgIGRlYnVnKCJUZXN0IHRoYXQgeW91IGNhbid0IG9wZW4gYSB0
cmFuc2FjdGlvbiB3aGlsZSBpbiBhIHZlcnNpb25jaGFuZ2UgdHJhbnNhY3Rpb24iKTsKKyAgICBl
dmFsQW5kRXhwZWN0RXhjZXB0aW9uKCdkYi50cmFuc2FjdGlvbigiZG9lc250RXhpc3QiKScsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAiRE9NRXhjZXB0aW9uLklOVkFMSURfU1RBVEVfRVJS
IiwgIidJbnZhbGlkU3RhdGVFcnJvciciKTsKIAotICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJp
bmRleGVkREIub3BlbignZGF0YWJhc2UtYmFzaWNzJykiKTsKLSAgICByZXF1ZXN0Lm9uc3VjY2Vz
cyA9IG9wZW5TdWNjZXNzOwotICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNh
bGxiYWNrOwotfQotCi1mdW5jdGlvbiBvcGVuU3VjY2VzcygpCi17Ci0gICAgc2VsZi5kYiA9IGV2
YWxBbmRMb2coImRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIpOwotCi0gICAgcmVxdWVzdCA9IGV2
YWxBbmRMb2coImRiLnNldFZlcnNpb24oJ25ldyB2ZXJzaW9uJykiKTsKLSAgICByZXF1ZXN0Lm9u
c3VjY2VzcyA9IGZ1bmN0aW9uKCkgewotICAgICAgICBkZWxldGVBbGxPYmplY3RTdG9yZXMoZGIp
OwotCi0gICAgICAgIHZhciB0cmFuc2FjdGlvbiA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7Ci0gICAg
ICAgIHRyYW5zYWN0aW9uLm9uY29tcGxldGUgPSBzZXRWZXJzaW9uU3VjY2VzczsKLSAgICAgICAg
dHJhbnNhY3Rpb24ub25hYm9ydCA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotICAgIH07Ci0g
ICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci19Ci0KLWZ1bmN0
aW9uIHNldFZlcnNpb25TdWNjZXNzKCkKLXsKLSAgICBkZWJ1Zygic2V0VmVyc2lvblN1Y2Nlc3Mo
KToiKTsKLQotICAgIGRlYnVnKCJUZXN0aW5nIHNldFZlcnNpb24uIik7Ci0gICAgZXZhbEFuZExv
ZygncmVxdWVzdCA9IGRiLnNldFZlcnNpb24oInZlcnNpb24gYSIpJyk7Ci0gICAgcmVxdWVzdC5v
bnN1Y2Nlc3MgPSBmdW5jdGlvbihldmVudCkgewotCi0gICAgICAgIGV2YWxBbmRFeHBlY3RFeGNl
cHRpb24oJ2RiLnNldFZlcnNpb24oInZlcnNpb24gYiIpJywKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAiRE9NRXhjZXB0aW9uLklOVkFMSURfU1RBVEVfRVJSIiwgIidJbnZhbGlkU3Rh
dGVFcnJvciciKTsKLSAgICAgICAgdmFyIHRyYW5zYWN0aW9uID0gZXZlbnQudGFyZ2V0LnJlc3Vs
dDsKLSAgICAgICAgdHJhbnNhY3Rpb24ub25jb21wbGV0ZSA9IHNldFZlcnNpb25BZ2FpbjsKLSAg
ICAgICAgdHJhbnNhY3Rpb24ub25hYm9ydCA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotICAg
IH07Ci0gICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci19Ci0K
LWZ1bmN0aW9uIHNldFZlcnNpb25BZ2FpbigpCi17Ci0gICAgcmVxdWVzdCA9IGV2YWxBbmRMb2co
J2RiLnNldFZlcnNpb24oInZlcnNpb24gYiIpJyk7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBj
cmVhdGVPYmplY3RTdG9yZTsKLSAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JD
YWxsYmFjazsKLX0KLQotZnVuY3Rpb24gY3JlYXRlT2JqZWN0U3RvcmUoKQotewotICAgIHNob3Vs
ZEJlRXF1YWxUb1N0cmluZygiZGIudmVyc2lvbiIsICJ2ZXJzaW9uIGIiKTsKLSAgICBzaG91bGRC
ZUVxdWFsVG9TdHJpbmcoImRiLm5hbWUiLCAiZGF0YWJhc2UtYmFzaWNzIik7CisgICAgc2hvdWxk
QmUoImRiLnZlcnNpb24iLCAiMSIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZGIubmFt
ZSIsIGRibmFtZSk7CiAgICAgc2hvdWxkQmUoImRiLm9iamVjdFN0b3JlTmFtZXMiLCAiW10iKTsK
ICAgICBzaG91bGRCZSgiZGIub2JqZWN0U3RvcmVOYW1lcy5sZW5ndGgiLCAiMCIpOwogICAgIHNo
b3VsZEJlKCJkYi5vYmplY3RTdG9yZU5hbWVzLmNvbnRhaW5zKCcnKSIsICJmYWxzZSIpOwpAQCAt
NjUsMTAgKzIzLDYgQEAgZnVuY3Rpb24gY3JlYXRlT2JqZWN0U3RvcmUoKQogCiAgICAgb2JqZWN0
U3RvcmUgPSBldmFsQW5kTG9nKCdkYi5jcmVhdGVPYmplY3RTdG9yZSgidGVzdDEyMyIpJyk7CiAg
ICAgY2hlY2tPYmplY3RTdG9yZSgpOwotCi0gICAgdmFyIHRyYW5zYWN0aW9uID0gZXZlbnQudGFy
Z2V0LnJlc3VsdDsKLSAgICB0cmFuc2FjdGlvbi5vbmNvbXBsZXRlID0gdGVzdFNldFZlcnNpb25B
Ym9ydDsKLSAgICB0cmFuc2FjdGlvbi5vbmFib3J0ID0gdW5leHBlY3RlZEFib3J0Q2FsbGJhY2s7
CiB9CiAKIGZ1bmN0aW9uIGNoZWNrT2JqZWN0U3RvcmUoKQpAQCAtODMsMTkgKzM3LDIyIEBAIGZ1
bmN0aW9uIGNoZWNrT2JqZWN0U3RvcmUoKQogCiBmdW5jdGlvbiB0ZXN0U2V0VmVyc2lvbkFib3J0
KCkKIHsKLSAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygnZGIuc2V0VmVyc2lvbigidmVyc2lvbiBj
IiknKTsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGNyZWF0ZUFub3RoZXJPYmplY3RTdG9yZTsK
KyAgICBldmFsQW5kTG9nKCJkYi5jbG9zZSgpIik7CisgICAgZXZhbEFuZExvZygicmVxdWVzdCA9
IGluZGV4ZWREQi5vcGVuKGRibmFtZSwgMikiKTsKKyAgICByZXF1ZXN0Lm9udXBncmFkZW5lZWRl
ZCA9IGNyZWF0ZUFub3RoZXJPYmplY3RTdG9yZTsKKyAgICByZXF1ZXN0Lm9uYmxvY2tlZCA9IHVu
ZXhwZWN0ZWRCbG9ja2VkQ2FsbGJhY2s7CiAgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3Rl
ZEVycm9yQ2FsbGJhY2s7CiB9CiAKIGZ1bmN0aW9uIGNyZWF0ZUFub3RoZXJPYmplY3RTdG9yZSgp
CiB7Ci0gICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJkYi52ZXJzaW9uIiwgInZlcnNpb24gYyIp
OwotICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZGIubmFtZSIsICJkYXRhYmFzZS1iYXNpY3Mi
KTsKKyAgICBldmFsQW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKKyAgICBzaG91
bGRCZSgiZGIudmVyc2lvbiIsICIyIik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJkYi5u
YW1lIiwgZGJuYW1lKTsKICAgICBjaGVja09iamVjdFN0b3JlKCk7CiAKICAgICBvYmplY3RTdG9y
ZSA9IGV2YWxBbmRMb2coJ2RiLmNyZWF0ZU9iamVjdFN0b3JlKCJ0ZXN0NDU2IiknKTsKLSAgICB2
YXIgc2V0VmVyc2lvblRyYW5zID0gZXZhbEFuZExvZygic2V0VmVyc2lvblRyYW5zID0gZXZlbnQu
dGFyZ2V0LnJlc3VsdCIpOworICAgIHZhciBzZXRWZXJzaW9uVHJhbnMgPSBldmFsQW5kTG9nKCJz
ZXRWZXJzaW9uVHJhbnMgPSBldmVudC50YXJnZXQudHJhbnNhY3Rpb24iKTsKICAgICBzaG91bGRC
ZU5vbk51bGwoInNldFZlcnNpb25UcmFucyIpOwogICAgIHNldFZlcnNpb25UcmFucy5vbmNvbXBs
ZXRlID0gdW5leHBlY3RlZENvbXBsZXRlQ2FsbGJhY2s7CiAgICAgc2V0VmVyc2lvblRyYW5zLm9u
YWJvcnQgPSBjaGVja01ldGFkYXRhOwpAQCAtMTA0LDcgKzYxLDcgQEAgZnVuY3Rpb24gY3JlYXRl
QW5vdGhlck9iamVjdFN0b3JlKCkKIAogZnVuY3Rpb24gY2hlY2tNZXRhZGF0YSgpCiB7Ci0gICAg
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJkYi52ZXJzaW9uIiwgInZlcnNpb24gYiIpOworICAgIHNo
b3VsZEJlKCJkYi52ZXJzaW9uIiwgIjEiKTsKICAgICBjaGVja09iamVjdFN0b3JlKCk7CiAgICAg
dGVzdENsb3NlKCk7CiB9CkBAIC0xMTgsNSArNzUsMyBAQCBmdW5jdGlvbiB0ZXN0Q2xvc2UoKQog
ICAgIGV2YWxBbmRMb2coImRiLmNsb3NlKCkiKTsKICAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KLQot
dGVzdCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3Vy
Y2VzL2RhdGFiYXNlLWNsb3NlLmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVz
b3VyY2VzL2RhdGFiYXNlLWNsb3NlLmpzCmluZGV4IDFmNThmOWU3MDBmNDc5N2Q3MThlZjY4MmQ5
N2MzYzNiMzM1OTU1MzkuLjY5MWU1NWJjZjFmMWI3ODNkNWRjOGE1N2M2ZWE2NDNmMTgzZGIzNTYg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9kYXRh
YmFzZS1jbG9zZS5qcworKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJj
ZXMvZGF0YWJhc2UtY2xvc2UuanMKQEAgLTUsNDcgKzUsMTMgQEAgaWYgKHRoaXMuaW1wb3J0U2Ny
aXB0cykgewogCiBkZXNjcmlwdGlvbigiVGVzdCBJbmRleGVkREIgJ3N0ZXBzIGZvciBjbG9zaW5n
IGEgZGF0YWJhc2UgY29ubmVjdGlvbiciKTsKIAotZnVuY3Rpb24gdGVzdCgpCitpbmRleGVkREJU
ZXN0KHByZXBhcmVEYXRhYmFzZSwgdGVzdENsb3NlKTsKK2Z1bmN0aW9uIHByZXBhcmVEYXRhYmFz
ZSgpCiB7Ci0gICAgcmVtb3ZlVmVuZG9yUHJlZml4ZXMoKTsKLQotICAgIGV2YWxBbmRMb2coImRi
bmFtZSA9IHNlbGYubG9jYXRpb24ucGF0aG5hbWUiKTsKLSAgICByZXF1ZXN0ID0gZXZhbEFuZExv
ZygiaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkiKTsKLSAgICByZXF1ZXN0Lm9uZXJy
b3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IG9w
ZW5Db25uZWN0aW9uOwotfQotCi1mdW5jdGlvbiBvcGVuQ29ubmVjdGlvbigpCi17Ci0gICAgZGVi
dWcoIiIpOwotICAgIGRlYnVnKCJvcGVuQ29ubmVjdGlvbigpOiIpOwotICAgIGV2YWxBbmRMb2co
InJlcXVlc3QgPSBpbmRleGVkREIub3BlbihkYm5hbWUpIik7Ci0gICAgcmVxdWVzdC5vbmVycm9y
ID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBmdW5j
dGlvbigpIHsKLSAgICAgICAgZXZhbEFuZExvZygiY29ubmVjdGlvbiA9IHJlcXVlc3QucmVzdWx0
Iik7Ci0gICAgICAgIGV2YWxBbmRMb2coInJlcXVlc3QgPSBjb25uZWN0aW9uLnNldFZlcnNpb24o
JzEnKSIpOwotICAgICAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFj
azsKLSAgICAgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBmdW5jdGlvbigpIHsKLSAgICAgICAgICAg
IHRyYW5zID0gcmVxdWVzdC5yZXN1bHQ7Ci0gICAgICAgICAgICBldmFsQW5kTG9nKCJzdG9yZSA9
IGNvbm5lY3Rpb24uY3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3JlJykiKTsKLSAgICAgICAgICAgIGV2
YWxBbmRMb2coInN0b3JlLnB1dCgndmFsdWUxJywgJ2tleTEnKSIpOwotICAgICAgICAgICAgZXZh
bEFuZExvZygic3RvcmUucHV0KCd2YWx1ZTInLCAna2V5MicpIik7Ci0gICAgICAgICAgICB0cmFu
cy5vbmFib3J0ID0gdW5leHBlY3RlZEFib3J0Q2FsbGJhY2s7Ci0gICAgICAgICAgICB0cmFucy5v
bmNvbXBsZXRlID0gb3BlblZlcnNpb25DaGFuZ2VDb25uZWN0aW9uOwotICAgICAgICB9OwotICAg
IH07Ci19Ci0KLWZ1bmN0aW9uIG9wZW5WZXJzaW9uQ2hhbmdlQ29ubmVjdGlvbigpCi17Ci0gICAg
ZGVidWcoIiIpOwotICAgIGRlYnVnKCJvcGVuVmVyc2lvbkNoYW5nZUNvbm5lY3Rpb24oKToiKTsK
LSAgICBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lKSIpOwotICAg
IHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotICAgIHJlcXVlc3Qu
b25zdWNjZXNzID0gZnVuY3Rpb24oKSB7Ci0gICAgICAgIGV2YWxBbmRMb2coInZlcnNpb25fY2hh
bmdlX2Nvbm5lY3Rpb24gPSByZXF1ZXN0LnJlc3VsdCIpOwotICAgICAgICB0ZXN0Q2xvc2UoKTsK
LSAgICB9OworICAgIGNvbm5lY3Rpb24gPSBldmVudC50YXJnZXQucmVzdWx0OworICAgIGV2YWxB
bmRMb2coInN0b3JlID0gY29ubmVjdGlvbi5jcmVhdGVPYmplY3RTdG9yZSgnc3RvcmUnKSIpOwor
ICAgIGV2YWxBbmRMb2coInN0b3JlLnB1dCgndmFsdWUxJywgJ2tleTEnKSIpOworICAgIGV2YWxB
bmRMb2coInN0b3JlLnB1dCgndmFsdWUyJywgJ2tleTInKSIpOwogfQogCiBmdW5jdGlvbiB0ZXN0
Q2xvc2UoKQpAQCAtNzMsNyArMzksNyBAQCBmdW5jdGlvbiB0ZXN0Q2xvc2UoKQogCiAgICAgICAg
IGlmIChhd2FpdGluZ190cmFuc2FjdGlvbl9jb3VudCA9PSAwKSB7CiAgICAgICAgICAgICBkZWJ1
ZygiIik7Ci0gICAgICAgICAgICBkZWJ1ZygiQWxsIHRyYW5zYWN0aW9ucyBjb21wbGV0ZWQgLSB2
ZXJzaW9uIGNoYW5nZXMgLyBkYXRhYmFzZSBkZWxldGVzIHNob3VsZCBub3cgYmUgdW5ibG9ja2Vk
LiIpOworICAgICAgICAgICAgZGVidWcoIkFsbCB0cmFuc2FjdGlvbnMgY29tcGxldGVkIC0gZGF0
YWJhc2UgZGVsZXRlcyBzaG91bGQgbm93IGJlIHVuYmxvY2tlZC4iKTsKICAgICAgICAgfQogICAg
IH0KICAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygidHJhbnMxLm9iamVjdFN0b3JlKCdzdG9yZScp
LmdldCgna2V5MScpIik7CkBAIC0xMDIsMTkgKzY4LDkgQEAgZnVuY3Rpb24gdGVzdENsb3NlKCkK
ICAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJ0cmFuczMgPSBjb25uZWN0aW9uLnRyYW5zYWN0
aW9uKCdzdG9yZScpIiwgIkRPTUV4Y2VwdGlvbi5JTlZBTElEX1NUQVRFX0VSUiIsICInSW52YWxp
ZFN0YXRlRXJyb3InIik7CiAKICAgICBkZWJ1ZygiIik7Ci0gICAgZGVidWcoIk5PVEU6IE9uY2Ug
dGhlIGNvbm5lY3Rpb24gaXMgY2xvc2VkLCB0aGlzIGNhbiB1bmJsb2NrIHRoZSBzdGVwcyBmb3Ig
cnVubmluZyBhIFwidmVyc2lvbmNoYW5nZVwiIHRyYW5zYWN0aW9uLCBhbmQgdGhlIHN0ZXBzIGZv
ciBkZWxldGluZyBhIGRhdGFiYXNlLCB3aGljaCBib3RoIHdhaXQgZm9yIGNvbm5lY3Rpb25zIHRv
IGEgZ2l2ZW4gZGF0YWJhc2UgdG8gYmUgY2xvc2VkIGJlZm9yZSBjb250aW51aW5nLiIpOworICAg
IGRlYnVnKCJOT1RFOiBPbmNlIHRoZSBjb25uZWN0aW9uIGlzIGNsb3NlZCwgdGhpcyBjYW4gdW5i
bG9jayB0aGUgc3RlcHMgZm9yIGRlbGV0aW5nIGEgZGF0YWJhc2UsIHdoaWNoIHdhaXRzIGZvciBj
b25uZWN0aW9ucyB0byBhIGdpdmVuIGRhdGFiYXNlIHRvIGJlIGNsb3NlZCBiZWZvcmUgY29udGlu
dWluZy4iKTsKICAgICBkZWJ1ZygiIik7CiAKLSAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygidmVy
c2lvbl9jaGFuZ2VfY29ubmVjdGlvbi5zZXRWZXJzaW9uKCcyJykiKTsKLSAgICByZXF1ZXN0Lm9u
ZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9
IGZ1bmN0aW9uKCkgewotICAgICAgICBkZWJ1ZygiIik7Ci0gICAgICAgIGRlYnVnKCJ2ZXJzaW9u
IGNoYW5nZSB0cmFuc2FjdGlvbiB1bmJsb2NrZWQiKTsKLSAgICAgICAgc2hvdWxkQmUoImF3YWl0
aW5nX3RyYW5zYWN0aW9uX2NvdW50IiwgIjAiKTsKLSAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCJ2ZXJzaW9uX2NoYW5nZV9jb25uZWN0aW9uLnZlcnNpb24iLCAiMiIpOwotICAgICAgICBl
dmFsQW5kTG9nKCJ2ZXJzaW9uX2NoYW5nZV9jb25uZWN0aW9uLmNsb3NlKCkiKTsKLSAgICB9Owot
CiAgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5h
bWUpIik7CiAgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CiAg
ICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBmdW5jdGlvbigpIHsKQEAgLTEyNCw1ICs4MCwzIEBAIGZ1
bmN0aW9uIHRlc3RDbG9zZSgpCiAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwogICAgIH07CiB9Ci0K
LXRlc3QoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291
cmNlcy9kYXRhYmFzZS1jbG9zZXBlbmRpbmctZmxhZy5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL3Jlc291cmNlcy9kYXRhYmFzZS1jbG9zZXBlbmRpbmctZmxhZy5qcwppbmRleCA0
YjEwYjAxY2Q3ZTA3MTQ1MzI1ZTkxOTVmNDBmZDdmZTA1ODdiMGI1Li45MWM5MDRiMDU0YTA3NjUy
NmM2ZTg4NTFlMGQ5MGQ3YTNjMzBmMWMwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9yZXNvdXJjZXMvZGF0YWJhc2UtY2xvc2VwZW5kaW5nLWZsYWcuanMKKysrIGIv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2RhdGFiYXNlLWNsb3NlcGVu
ZGluZy1mbGFnLmpzCkBAIC01LDMzICs1LDEyIEBAIGlmICh0aGlzLmltcG9ydFNjcmlwdHMpIHsK
IAogZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERCIElEQkRhdGFiYXNlIGludGVybmFsIGNsb3Nl
UGVuZGluZyBmbGFnIik7CiAKLWZ1bmN0aW9uIHRlc3QoKQoraW5kZXhlZERCVGVzdChwcmVwYXJl
RGF0YWJhc2UsIHRlc3REYXRhYmFzZUNsb3NpbmdTdGVwcyk7CitmdW5jdGlvbiBwcmVwYXJlRGF0
YWJhc2UoKQogewotICAgIHJlbW92ZVZlbmRvclByZWZpeGVzKCk7Ci0KLSAgICBldmFsQW5kTG9n
KCJkYm5hbWUgPSBzZWxmLmxvY2F0aW9uLnBhdGhuYW1lIik7Ci0gICAgcmVxdWVzdCA9IGV2YWxB
bmRMb2coImluZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpIik7Ci0gICAgcmVxdWVzdC5v
bmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3Mg
PSBvcGVuQ29ubmVjdGlvbjsKLX0KLQotZnVuY3Rpb24gb3BlbkNvbm5lY3Rpb24oKQotewotICAg
IGRlYnVnKCIiKTsKLSAgICBkZWJ1Zygib3BlbkNvbm5lY3Rpb24oKToiKTsKLSAgICBldmFsQW5k
TG9nKCJyZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lKSIpOwotICAgIHJlcXVlc3Qub25l
cnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotICAgIHJlcXVlc3Qub25zdWNjZXNzID0g
ZnVuY3Rpb24oKSB7Ci0gICAgICAgIGV2YWxBbmRMb2coImNvbm5lY3Rpb24gPSByZXF1ZXN0LnJl
c3VsdCIpOwotICAgICAgICBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gY29ubmVjdGlvbi5zZXRWZXJz
aW9uKCcxJykiKTsKLSAgICAgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2Fs
bGJhY2s7Ci0gICAgICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24oKSB7Ci0gICAgICAg
ICAgICB0cmFucyA9IHJlcXVlc3QucmVzdWx0OwotICAgICAgICAgICAgZXZhbEFuZExvZygic3Rv
cmUgPSBjb25uZWN0aW9uLmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZScpIik7Ci0gICAgICAgICAg
ICB0cmFucy5vbmFib3J0ID0gdW5leHBlY3RlZEFib3J0Q2FsbGJhY2s7Ci0gICAgICAgICAgICB0
cmFucy5vbmNvbXBsZXRlID0gdGVzdERhdGFiYXNlQ2xvc2luZ1N0ZXBzOwotICAgICAgICB9Owot
ICAgIH07CisgICAgY29ubmVjdGlvbiA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CisgICAgZXZlbnQu
dGFyZ2V0LnRyYW5zYWN0aW9uLm9uYWJvcnQgPSB1bmV4cGVjdGVkQWJvcnRDYWxsYmFjazsKKyAg
ICBldmFsQW5kTG9nKCJzdG9yZSA9IGNvbm5lY3Rpb24uY3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3Jl
JykiKTsKIH0KIAogZnVuY3Rpb24gdGVzdERhdGFiYXNlQ2xvc2luZ1N0ZXBzKCkKQEAgLTY2LDI1
ICs0NSwyMiBAQCBmdW5jdGlvbiB0ZXN0SURCRGF0YWJhc2VPYmplY3RTdG9yZU5hbWVzKCkKICAg
ICBkZWJ1ZygiSURCRGF0YWJhc2Uub2JqZWN0U3RvcmVOYW1lczoiKTsKICAgICBkZWJ1ZygiXCJP
bmNlIHRoZSBjbG9zZVBlbmRpbmcgZmxhZyBpcyBzZXQgb24gdGhlIGNvbm5lY3Rpb24sIHRoaXMg
ZnVuY3Rpb24gbXVzdCByZXR1cm4gYSBzbmFwc2hvdCBvZiB0aGUgbGlzdCBvZiBuYW1lcyBvZiB0
aGUgb2JqZWN0IHN0b3JlcyB0YWtlbiBhdCB0aGUgdGltZSB3aGVuIHRoZSBjbG9zZSBtZXRob2Qg
d2FzIGNhbGxlZC5cIiIpOwogCi0gICAgZXZhbEFuZExvZygicmVxdWVzdCA9IGluZGV4ZWREQi5v
cGVuKGRibmFtZSkiKTsKKyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4o
ZGJuYW1lLCAyKSIpOworICAgIHJlcXVlc3Qub25ibG9ja2VkID0gdW5leHBlY3RlZEJsb2NrZWRD
YWxsYmFjazsKICAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsK
LSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uKCkgeworICAgIHJlcXVlc3Qub251cGdy
YWRlbmVlZGVkID0gZnVuY3Rpb24gKCkgewogICAgICAgICBldmFsQW5kTG9nKCJ2ZXJzaW9uX2No
YW5nZV9jb25uZWN0aW9uID0gcmVxdWVzdC5yZXN1bHQiKTsKLSAgICAgICAgcmVxdWVzdCA9IGV2
YWxBbmRMb2coInZlcnNpb25fY2hhbmdlX2Nvbm5lY3Rpb24uc2V0VmVyc2lvbignMicpIik7Ci0g
ICAgICAgIC8vIEZJWE1FOiBTaG91bGQgdmVyaWZ5ICdibG9ja2VkJyBub3QgZmlyZWQuIGh0dHA6
Ly93ZWJraXQub3JnL2IvNzExMzAKLSAgICAgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3Rl
ZEVycm9yQ2FsbGJhY2s7Ci0gICAgICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24gKCkg
ewotICAgICAgICAgICAgdmFyIHRyYW5zYWN0aW9uID0gcmVxdWVzdC5yZXN1bHQ7Ci0gICAgICAg
ICAgICBldmFsQW5kTG9nKCJ2ZXJzaW9uX2NoYW5nZV9jb25uZWN0aW9uLmNyZWF0ZU9iamVjdFN0
b3JlKCduZXdfc3RvcmUnKSIpOwotICAgICAgICAgICAgdHJhbnNhY3Rpb24ub25jb21wbGV0ZSA9
IGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgICAgICBzaG91bGRCZVRydWUoInZlcnNpb25fY2hh
bmdlX2Nvbm5lY3Rpb24ub2JqZWN0U3RvcmVOYW1lcy5jb250YWlucygnbmV3X3N0b3JlJykiKTsK
LSAgICAgICAgICAgICAgICBzaG91bGRCZUZhbHNlKCJjb25uZWN0aW9uLm9iamVjdFN0b3JlTmFt
ZXMuY29udGFpbnMoJ25ld19zdG9yZScpIik7Ci0gICAgICAgICAgICAgICAgZXZhbEFuZExvZygi
dmVyc2lvbl9jaGFuZ2VfY29ubmVjdGlvbi5jbG9zZSgpIik7Ci0KLSAgICAgICAgICAgICAgICB0
ZXN0SURCRGF0YWJhc2VUcmFuc2FjdGlvbigpOwotICAgICAgICAgICAgfTsKKyAgICAgICAgdmFy
IHRyYW5zYWN0aW9uID0gcmVxdWVzdC50cmFuc2FjdGlvbjsKKyAgICAgICAgZXZhbEFuZExvZygi
dmVyc2lvbl9jaGFuZ2VfY29ubmVjdGlvbi5jcmVhdGVPYmplY3RTdG9yZSgnbmV3X3N0b3JlJyki
KTsKKyAgICAgICAgdHJhbnNhY3Rpb24ub25jb21wbGV0ZSA9IGZ1bmN0aW9uICgpIHsKKyAgICAg
ICAgICAgIHNob3VsZEJlVHJ1ZSgidmVyc2lvbl9jaGFuZ2VfY29ubmVjdGlvbi5vYmplY3RTdG9y
ZU5hbWVzLmNvbnRhaW5zKCduZXdfc3RvcmUnKSIpOworICAgICAgICAgICAgc2hvdWxkQmVGYWxz
ZSgiY29ubmVjdGlvbi5vYmplY3RTdG9yZU5hbWVzLmNvbnRhaW5zKCduZXdfc3RvcmUnKSIpOwog
ICAgICAgICB9OwogICAgIH07CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBmdW5jdGlvbigpIHsK
KyAgICAgICAgZXZhbEFuZExvZygidmVyc2lvbl9jaGFuZ2VfY29ubmVjdGlvbi5jbG9zZSgpIik7
CisgICAgICAgIHRlc3RJREJEYXRhYmFzZVRyYW5zYWN0aW9uKCk7CisgICAgfQogfQogCiBmdW5j
dGlvbiB0ZXN0SURCRGF0YWJhc2VUcmFuc2FjdGlvbigpCkBAIC0xMjAsMjUgKzk2LDIwIEBAIGZ1
bmN0aW9uIHRlc3RWZXJzaW9uQ2hhbmdlVHJhbnNhY3Rpb25TdGVwcygpCiAgICAgICAgIH0KICAg
ICAgICAgYnVzeSgpOwogCi0gICAgICAgIGV2YWxBbmRMb2coInJlcXVlc3QgPSBpbmRleGVkREIu
b3BlbihkYm5hbWUpIik7CisgICAgICAgIGV2YWxBbmRMb2coInJlcXVlc3QgPSBpbmRleGVkREIu
b3BlbihkYm5hbWUsIDMpIik7CiAgICAgICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRF
cnJvckNhbGxiYWNrOwotICAgICAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uKCkgewor
ICAgICAgICByZXF1ZXN0Lm9uYmxvY2tlZCA9IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIGRl
YnVnKCInYmxvY2tlZCcgZXZlbnQgZmlyZWQsIGxldHRpbmcgdHJhbnNhY3Rpb24gY29tcGxldGUg
YW5kIGNvbm5lY3Rpb24gY2xvc2UiKTsKKyAgICAgICAgICAgIGtlZXBUcmFuc2FjdGlvbkJ1c3kg
PSBmYWxzZTsKKyAgICAgICAgfTsKKyAgICAgICAgcmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQgPSBm
dW5jdGlvbigpIHsKICAgICAgICAgICAgIGV2YWxBbmRMb2coInZlcnNpb25fY2hhbmdlX2Nvbm5l
Y3Rpb24gPSByZXF1ZXN0LnJlc3VsdCIpOwotICAgICAgICAgICAgcmVxdWVzdCA9IGV2YWxBbmRM
b2coInZlcnNpb25fY2hhbmdlX2Nvbm5lY3Rpb24uc2V0VmVyc2lvbignMycpIik7Ci0gICAgICAg
ICAgICByZXF1ZXN0Lm9uYmxvY2tlZCA9IGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgICAgICBk
ZWJ1ZygiJ2Jsb2NrZWQnIGV2ZW50IGZpcmVkLCBsZXR0aW5nIHRyYW5zYWN0aW9uIGNvbXBsZXRl
IGFuZCBjb25uZWN0aW9uIGNsb3NlIik7Ci0gICAgICAgICAgICAgICAga2VlcFRyYW5zYWN0aW9u
QnVzeSA9IGZhbHNlOwotICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIHNob3VsZEJlRmFsc2Uo
InZlcnNpb25DaGFuZ2VXYXNGaXJlZCIpOwogICAgICAgICAgICAgcmVxdWVzdC5vbmVycm9yID0g
dW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci0gICAgICAgICAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9
IGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgICAgICBzaG91bGRCZUZhbHNlKCJ2ZXJzaW9uQ2hh
bmdlV2FzRmlyZWQiKTsKLSAgICAgICAgICAgICAgICB2YXIgdHJhbnNhY3Rpb24gPSByZXF1ZXN0
LnJlc3VsdDsKLSAgICAgICAgICAgICAgICB0cmFuc2FjdGlvbi5vbmNvbXBsZXRlID0gZnVuY3Rp
b24gKCkgewotICAgICAgICAgICAgICAgICAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygidmVyc2lv
bl9jaGFuZ2VfY29ubmVjdGlvbi5jbG9zZSgpIik7Ci0KLSAgICAgICAgICAgICAgICAgICAgdGVz
dERhdGFiYXNlRGVsZXRpb24oKTsKLSAgICAgICAgICAgICAgICB9OwotICAgICAgICAgICAgfTsK
KyAgICAgICAgfTsKKyAgICAgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBmdW5jdGlvbiAoKSB7Cisg
ICAgICAgICAgICBldmFsQW5kTG9nKCJ2ZXJzaW9uX2NoYW5nZV9jb25uZWN0aW9uLmNsb3NlKCki
KTsKKyAgICAgICAgICAgIHRlc3REYXRhYmFzZURlbGV0aW9uKCk7CiAgICAgICAgIH07CiAgICAg
fTsKIH0KQEAgLTE3OCw1ICsxNDksMyBAQCBmdW5jdGlvbiB0ZXN0RGF0YWJhc2VEZWxldGlvbigp
CiAgICAgICAgIH07CiAgICAgfTsKIH0KLQotdGVzdCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2RhdGFiYXNlLWRlbGV0ZXBlbmRpbmctZmxh
Zy5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9kYXRhYmFzZS1k
ZWxldGVwZW5kaW5nLWZsYWcuanMKaW5kZXggNzczN2IzOTZmOGY3YjViOGZkZjM2MTYyOWI1OGZi
NGQ3ZWFmYmRhNy4uMmM3MTM4ZTVlMmNlZGZjNDIyYjliMjFlYjMyZWE3MmUwZWY0OTkxNyAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2RhdGFiYXNl
LWRlbGV0ZXBlbmRpbmctZmxhZy5qcworKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9yZXNvdXJjZXMvZGF0YWJhc2UtZGVsZXRlcGVuZGluZy1mbGFnLmpzCkBAIC01LDcgKzUsNyBA
QCBpZiAodGhpcy5pbXBvcnRTY3JpcHRzKSB7CiAKIGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWRE
QiBJREJEYXRhYmFzZSBpbnRlcm5hbCBkZWxldGUgcGVuZGluZyBmbGFnIik7CiAKLWluZGV4ZWRE
QlRlc3QocHJlcGFyZURhdGFiYXNlLCB0ZXN0RGF0YWJhc2VEZWxldGUsIDUpOworaW5kZXhlZERC
VGVzdChwcmVwYXJlRGF0YWJhc2UsIHRlc3REYXRhYmFzZURlbGV0ZSwgeyJ2ZXJzaW9uIjogNX0p
OwogZnVuY3Rpb24gcHJlcGFyZURhdGFiYXNlKCkKIHsKICAgICBjb25uZWN0aW9uID0gZXZlbnQu
dGFyZ2V0LnJlc3VsdDsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L3Jlc291cmNlcy9kZWxldGUtY2xvc2VkLWRhdGFiYXNlLW9iamVjdC5qcyBiL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9kZWxldGUtY2xvc2VkLWRhdGFiYXNlLW9iamVj
dC5qcwppbmRleCA1ZDMyOWEyYjdhM2I3MGMwN2UxZmZmOGI2ZDZlYmExOGQyODQwM2I4Li43NWZl
NTAxNWE3MDExNWYzMDk0MTM4MjJkZDdkMmQ4M2NjZTY0YWQ4IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvZGVsZXRlLWNsb3NlZC1kYXRhYmFzZS1v
YmplY3QuanMKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2Rl
bGV0ZS1jbG9zZWQtZGF0YWJhc2Utb2JqZWN0LmpzCkBAIC01LDQ1ICs1LDI1IEBAIGlmICh0aGlz
LmltcG9ydFNjcmlwdHMpIHsKIAogZGVzY3JpcHRpb24oIkVuc3VyZSB0aGF0IElEQkRhdGFiYXNl
IG9iamVjdHMgYXJlIGRlbGV0ZWQgd2hlbiB0aGVyZSBhcmUgbm8gcmV0YWluaW5nIHBhdGhzIGxl
ZnQiKTsKIAotZnVuY3Rpb24gdGVzdCgpIHsKLSAgICByZW1vdmVWZW5kb3JQcmVmaXhlcygpOwot
ICAgIG9wZW5EQkNvbm5lY3Rpb24oKTsKLX0KLQotZnVuY3Rpb24gb3BlbkRCQ29ubmVjdGlvbigp
CitpbmRleGVkREJUZXN0KHByZXBhcmVEYXRhYmFzZSwgb3BlblN1Y2Nlc3MpOworZnVuY3Rpb24g
cHJlcGFyZURhdGFiYXNlKCkKIHsKLSAgICBldmFsQW5kTG9nKCJzZWxmLnN0YXRlID0gJ3N0YXJ0
aW5nJyIpOwotICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIub3BlbignZGVsZXRl
LWNsb3NlZC1kYXRhYmFzZS1vYmplY3QnKSIpOwotICAgIHJlcXVlc3Qub25zdWNjZXNzID0gb3Bl
blN1Y2Nlc3M7Ci0gICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7
CiB9CiAKIGZ1bmN0aW9uIG9wZW5TdWNjZXNzKCkKIHsKLSAgICBzZWxmLmRiID0gZXZhbEFuZExv
ZygiZGIgPSBldmVudC50YXJnZXQucmVzdWx0Iik7Ci0KLSAgICAvLyBPcGVuIGEgc2Vjb25kIGNv
bm5lY3Rpb24gdG8gdGhlIHNhbWUgZGF0YWJhc2UuCi0gICAgdmFyIHJlcXVlc3QyID0gZXZhbEFu
ZExvZygiaW5kZXhlZERCLm9wZW4oJ2RlbGV0ZS1jbG9zZWQtZGF0YWJhc2Utb2JqZWN0JykiKTsK
LSAgICByZXF1ZXN0Mi5vbnN1Y2Nlc3MgPSBvcGVuU3VjY2VzczI7Ci0gICAgcmVxdWVzdDIub25l
cnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotfQotCi1mdW5jdGlvbiBvcGVuU3VjY2Vz
czIoKQotewotICAgIGRlYnVnKCJTZWNvbmQgY29ubmVjdGlvbiBzdWNjZXNzZnVsbHkgZXN0YWJs
aXNoZWQuIik7CisgICAgZGVidWcoIkNvbm5lY3Rpb24gc3VjY2Vzc2Z1bGx5IGVzdGFibGlzaGVk
LiIpOwogICAgIC8vIEFmdGVyIGxlYXZpbmcgdGhpcyBmdW5jdGlvbiwgdGhlcmUgYXJlIG5vIHJl
bWFpbmluZyByZWZlcmVuY2VzIHRvIHRoZQotICAgIC8vIHNlY29uZCBjb25uZWN0aW9uLCBzbyBp
dCBzaG91bGQgZ2V0IGRlbGV0ZWQuCisgICAgLy8gZGIsIHNvIGl0IHNob3VsZCBnZXQgZGVsZXRl
ZC4KICAgICBzZXRUaW1lb3V0KHNldFZlcnNpb24sIDIpOwogfQogCiBmdW5jdGlvbiBzZXRWZXJz
aW9uKCkKIHsKICAgICBnYygpOwotICAgIGRlYnVnKCJjYWxsaW5nIHNldFZlcnNpb24oKSAtIGNh
bGxiYWNrIHNob3VsZCBydW4gaW1tZWRpYXRlbHkiKTsKLSAgICB2YXIgdmVyc2lvbkNoYW5nZVJl
cXVlc3QgPSBldmFsQW5kTG9nKCJkYi5zZXRWZXJzaW9uKCd2ZXJzaW9uIDEnKSIpOwotICAgIHZl
cnNpb25DaGFuZ2VSZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLSAg
ICB2ZXJzaW9uQ2hhbmdlUmVxdWVzdC5vbmJsb2NrZWQgPSB1bmV4cGVjdGVkQmxvY2tlZENhbGxi
YWNrOwotICAgIHZlcnNpb25DaGFuZ2VSZXF1ZXN0Lm9uc3VjY2VzcyA9IGZpbmlzaEpTVGVzdDsK
KyAgICBkZWJ1ZygiT3BlbiByZXF1ZXN0IHNob3VsZCBub3QgcmVjZWl2ZSBhIGJsb2NrZWQgZXZl
bnQ6Iik7CisgICAgdmFyIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIub3BlbihkYm5h
bWUsIDIpIik7CisgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7
CisgICAgcmVxdWVzdC5vbmJsb2NrZWQgPSB1bmV4cGVjdGVkQmxvY2tlZENhbGxiYWNrOworICAg
IHJlcXVlc3Qub25zdWNjZXNzID0gZmluaXNoSlNUZXN0OwogfQotCi10ZXN0KCk7ClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvcmVzb3VyY2VzL2RlbGV0ZWRhdGFiYXNlLWRlbGF5ZWQtYnktb3Blbi1hbmQtdmVyc2lv
bmNoYW5nZS5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9kZWxl
dGVkYXRhYmFzZS1kZWxheWVkLWJ5LW9wZW4tYW5kLXZlcnNpb25jaGFuZ2UuanMKaW5kZXggOGRk
OTZhZThlYTUzN2M4ZmY5NjlmNDY2N2VkMWMwNTY0N2I5MzkyNy4uMDYyNGViZjZlN2MyOTQ4OGJm
ZGYzMGFmOWEzM2IwZjU4ZjEyNTNkYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvcmVzb3VyY2VzL2RlbGV0ZWRhdGFiYXNlLWRlbGF5ZWQtYnktb3Blbi1hbmQtdmVy
c2lvbmNoYW5nZS5qcworKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJj
ZXMvZGVsZXRlZGF0YWJhc2UtZGVsYXllZC1ieS1vcGVuLWFuZC12ZXJzaW9uY2hhbmdlLmpzCkBA
IC01LDUzICs1LDM2IEBAIGlmICh0aGlzLmltcG9ydFNjcmlwdHMpIHsKIAogZGVzY3JpcHRpb24o
IlRlc3QgdGhhdCBkZWxldGVEYXRhYmFzZSBpcyBkZWxheWVkIGlmIGEgVkVSU0lPTl9DSEFOR0Ug
dHJhbnNhY3Rpb24gaXMgcnVubmluZyIpOwogCi1mdW5jdGlvbiB0ZXN0KCkgewotICAgIHJlbW92
ZVZlbmRvclByZWZpeGVzKCk7Ci0gICAgc2V0REJOYW1lRnJvbVBhdGgoKTsKIAotICAgIGV2YWxB
bmRMb2coInZlciA9IDEiKTsKK2luZGV4ZWREQlRlc3QocHJlcGFyZURhdGFiYXNlKTsKK2Z1bmN0
aW9uIHByZXBhcmVEYXRhYmFzZSgpCit7CiAgICAgZXZhbEFuZExvZygidmVyc2lvbkNoYW5nZUNv
bXBsZXRlID0gZmFsc2UiKTsKKyAgICBldmVudC50YXJnZXQudHJhbnNhY3Rpb24ub25hYm9ydCA9
IHVuZXhwZWN0ZWRBYm9ydENhbGxiYWNrOworICAgIGV2YWxBbmRMb2coImggPSBldmVudC50YXJn
ZXQucmVzdWx0Iik7CiAKLSAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLm9wZW4o
ZGJuYW1lKSIpOwotICAgIHJlcXVlc3Qub25ibG9ja2VkID0gdW5leHBlY3RlZEJsb2NrZWRDYWxs
YmFjazsKLSAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLSAg
ICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uIG9wZW5PblN1Y2Nlc3MoZXZ0KSB7CisgICAg
aC5vbnZlcnNpb25jaGFuZ2UgPSBmdW5jdGlvbiBvblZlcnNpb25DaGFuZ2UoZXZ0KSB7CiAgICAg
ICAgIHByZWFtYmxlKGV2dCk7Ci0gICAgICAgIGV2YWxBbmRMb2coImggPSBldmVudC50YXJnZXQu
cmVzdWx0Iik7Ci0KLSAgICAgICAgaC5vbnZlcnNpb25jaGFuZ2UgPSBmdW5jdGlvbiBvblZlcnNp
b25DaGFuZ2UoZXZ0KSB7Ci0gICAgICAgICAgICBwcmVhbWJsZShldnQpOwotICAgICAgICAgICAg
ZGVidWcoIm9sZCA9ICIgKyBKU09OLnN0cmluZ2lmeShldmVudC50YXJnZXQudmVyc2lvbikpOwot
ICAgICAgICAgICAgZGVidWcoIm5ldyA9ICIgKyBKU09OLnN0cmluZ2lmeShldmVudC52ZXJzaW9u
KSk7Ci0gICAgICAgIH07Ci0KLSAgICAgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImguc2V0VmVy
c2lvbihTdHJpbmcodmVyKyspKSIpOwotICAgICAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVj
dGVkRXJyb3JDYWxsYmFjazsKLSAgICAgICAgcmVxdWVzdC5vbmJsb2NrZWQgPSB1bmV4cGVjdGVk
QmxvY2tlZENhbGxiYWNrOwotICAgICAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uIHNl
dFZlcnNpb25PblN1Y2Nlc3MoZXZ0KSB7Ci0gICAgICAgICAgICBwcmVhbWJsZShldnQpOworICAg
ICAgICBkZWJ1Zygib2xkID0gIiArIEpTT04uc3RyaW5naWZ5KGV2ZW50LnRhcmdldC52ZXJzaW9u
KSk7CisgICAgICAgIGRlYnVnKCJuZXcgPSAiICsgSlNPTi5zdHJpbmdpZnkoZXZlbnQudmVyc2lv
bikpOworICAgIH07CiAKLSAgICAgICAgICAgIHRyYW5zYWN0aW9uID0gZXZlbnQudGFyZ2V0LnJl
c3VsdDsKLSAgICAgICAgICAgIHRyYW5zYWN0aW9uLm9uYWJvcnQgPSB1bmV4cGVjdGVkQWJvcnRD
YWxsYmFjazsKLSAgICAgICAgICAgIHRyYW5zYWN0aW9uLm9uY29tcGxldGUgPSBmdW5jdGlvbiB0
cmFuc2FjdGlvbk9uQ29tcGxldGUoZXZ0KSB7Ci0gICAgICAgICAgICAgICAgcHJlYW1ibGUoZXZ0
KTsKLSAgICAgICAgICAgICAgICBldmFsQW5kTG9nKCJ2ZXJzaW9uQ2hhbmdlQ29tcGxldGUgPSB0
cnVlIik7Ci0gICAgICAgICAgICB9OwotICAgICAgICB9OworICAgIHRyYW5zYWN0aW9uID0gZXZl
bnQudGFyZ2V0LnRyYW5zYWN0aW9uOworICAgIHRyYW5zYWN0aW9uLm9uY29tcGxldGUgPSBmdW5j
dGlvbiB0cmFuc2FjdGlvbk9uQ29tcGxldGUoZXZ0KSB7CisgICAgICAgIHByZWFtYmxlKGV2dCk7
CisgICAgICAgIGV2YWxBbmRMb2coInZlcnNpb25DaGFuZ2VDb21wbGV0ZSA9IHRydWUiKTsKKyAg
ICB9OwogCi0gICAgICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIuZGVsZXRlRGF0
YWJhc2UoZGJuYW1lKSIpOwotICAgICAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJy
b3JDYWxsYmFjazsKLSAgICAgICAgcmVxdWVzdC5vbmJsb2NrZWQgPSBmdW5jdGlvbiBkZWxldGVE
YXRhYmFzZU9uQmxvY2tlZChldnQpIHsKLSAgICAgICAgICAgIHByZWFtYmxlKGV2dCk7CisgICAg
cmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpIik7
CisgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CisgICAgcmVx
dWVzdC5vbmJsb2NrZWQgPSBmdW5jdGlvbiBkZWxldGVEYXRhYmFzZU9uQmxvY2tlZChldnQpIHsK
KyAgICAgICAgcHJlYW1ibGUoZXZ0KTsKIAotICAgICAgICAgICAgZXZhbEFuZExvZygiaC5jbG9z
ZSgpIik7Ci0gICAgICAgIH07Ci0gICAgICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24g
ZGVsZXRlRGF0YWJhc2VPblN1Y2Nlc3MoZXZ0KSB7Ci0gICAgICAgICAgICBwcmVhbWJsZShldnQp
OwotICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCJ2ZXJzaW9uQ2hhbmdlQ29tcGxldGUiKTsKLSAg
ICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwotICAgICAgICB9OworICAgICAgICBldmFsQW5kTG9n
KCJoLmNsb3NlKCkiKTsKKyAgICB9OworICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24g
ZGVsZXRlRGF0YWJhc2VPblN1Y2Nlc3MoZXZ0KSB7CisgICAgICAgIHByZWFtYmxlKGV2dCk7Cisg
ICAgICAgIHNob3VsZEJlVHJ1ZSgidmVyc2lvbkNoYW5nZUNvbXBsZXRlIik7CisgICAgICAgIGZp
bmlzaEpTVGVzdCgpOwogICAgIH07CiB9Ci0KLXRlc3QoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9kdXBsaWNhdGVzLmpzIGIvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2R1cGxpY2F0ZXMuanMKaW5kZXggYzQzN2Rm
NTA0NmQxZTExM2U3M2IyZWJlNDkzNTZlNDIyNTAxYzMwZC4uMjY1ZmFhYTY0YTgxMWNiZWZiNzk3
MzI4ZjEwNDVmMWI0NjgwMjY1NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvcmVzb3VyY2VzL2R1cGxpY2F0ZXMuanMKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvcmVzb3VyY2VzL2R1cGxpY2F0ZXMuanMKQEAgLTYsMzMgKzYsMTcgQEAgaWYgKHRo
aXMuaW1wb3J0U2NyaXB0cykgewogZGVzY3JpcHRpb24oIlZlcmlmeSB0aGF0IHlvdSBjYW4gcHV0
IHRoZSBzYW1lIGRhdGEgaW4gMiBkaWZmZXJlbnQgZGF0YWJhc2VzIHdpdGhvdXQgdW5pcXVlbmVz
cyBjb25zdHJhaW50cyBmaXJpbmcuIik7CiAKIHRlc3RDb3VudCA9IDA7Cit0ZXN0KCk7CiBmdW5j
dGlvbiB0ZXN0KCkKIHsKICAgICBpZiAodGVzdENvdW50KysgPT0gMCkKLSAgICAgICAgcmVxdWVz
dCA9IGV2YWxBbmRMb2coImluZGV4ZWREQi5vcGVuKCdkdXBsaWNhdGVzLTEnKSIpOworICAgICAg
ICBpbmRleGVkREJUZXN0KHByZXBhcmVEYXRhYmFzZSwgdGVzdCwgeydzdWZmaXgnOiAnLTEnfSk7
CiAgICAgZWxzZQotICAgICAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLm9wZW4o
J2R1cGxpY2F0ZXMtMicpIik7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBzZXRWZXJzaW9uOwot
ICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotfQotCi1mdW5j
dGlvbiBzZXRWZXJzaW9uKCkKLXsKLSAgICBkYiA9IGV2YWxBbmRMb2coImRiID0gZXZlbnQudGFy
Z2V0LnJlc3VsdCIpOwotCi0gICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImRiLnNldFZlcnNpb24o
J25ldyB2ZXJzaW9uJykiKTsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGRlbGV0ZUV4aXN0aW5n
OwotICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworICAgICAg
ICBpbmRleGVkREJUZXN0KHByZXBhcmVEYXRhYmFzZSwgZmluaXNoSlNUZXN0LCB7J3N1ZmZpeCc6
ICctMid9KTsKIH0KLQotZnVuY3Rpb24gZGVsZXRlRXhpc3RpbmcoKQorZnVuY3Rpb24gcHJlcGFy
ZURhdGFiYXNlKCkKIHsKLSAgICBkZWJ1Zygic2V0VmVyc2lvblN1Y2Nlc3MoKToiKTsKLSAgICBz
ZWxmLnRyYW5zID0gZXZhbEFuZExvZygidHJhbnMgPSBldmVudC50YXJnZXQucmVzdWx0Iik7Ci0g
ICAgc2hvdWxkQmVOb25OdWxsKCJ0cmFucyIpOwotICAgIHRyYW5zLm9uYWJvcnQgPSB1bmV4cGVj
dGVkQWJvcnRDYWxsYmFjazsKLQotICAgIGRlbGV0ZUFsbE9iamVjdFN0b3JlcyhkYik7CisgICAg
ZGIgPSBldmVudC50YXJnZXQucmVzdWx0OwogCiAgICAgc2VsZi5zdG9yZSA9IGV2YWxBbmRMb2co
ImRiLmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZU5hbWUnLCBudWxsKSIpOwogICAgIHNlbGYuaW5k
ZXhPYmplY3QgPSBldmFsQW5kTG9nKCJzdG9yZS5jcmVhdGVJbmRleCgnaW5kZXhOYW1lJywgJ3gn
KSIpOwpAQCAtMTU2LDExICsxNDAsNCBAQCBmdW5jdGlvbiBsYXN0KCkKIHsKICAgICBzaG91bGRC
ZU51bGwoImV2ZW50LnRhcmdldC5yZXN1bHQiKTsKIAotICAgIGlmICh0ZXN0Q291bnQgPT0gMSkK
LSAgICAgICAgdGVzdCgpOwotICAgIGVsc2UKLSAgICAgICAgZmluaXNoSlNUZXN0KCk7CiB9Ci0K
LXJlbW92ZVZlbmRvclByZWZpeGVzKCk7Ci10ZXN0KCk7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg
ZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2Vz
L3NoYXJlZC5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9zaGFy
ZWQuanMKaW5kZXggZDFhMDRiNzk0ZmY0MDhiNTllOGU4M2IzNzE5MDI0ZDhhZmQ0YWU2YS4uNDNh
MTAxYzBhNTBlZjUzNTRmOGQ1M2Y5ZGRjMzM2YWZkYWY2ODVlYSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL3NoYXJlZC5qcworKysgYi9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvc2hhcmVkLmpzCkBAIC0xMzAsOCArMTMw
LDExIEBAIGZ1bmN0aW9uIGRlbGV0ZUFsbE9iamVjdFN0b3JlcyhkYikKICAgICBkZWJ1ZygiRGVs
ZXRlZCBhbGwgb2JqZWN0IHN0b3Jlcy4iKTsKIH0KIAotZnVuY3Rpb24gc2V0REJOYW1lRnJvbVBh
dGgoKSB7Ci0gICAgZXZhbEFuZExvZygnZGJuYW1lID0gIicgKyBzZWxmLmxvY2F0aW9uLnBhdGhu
YW1lLnN1YnN0cmluZygxICsgc2VsZi5sb2NhdGlvbi5wYXRobmFtZS5sYXN0SW5kZXhPZigiLyIp
KSArICciJyk7CitmdW5jdGlvbiBzZXREQk5hbWVGcm9tUGF0aChzdWZmaXgpIHsKKyAgICB2YXIg
bmFtZSA9IHNlbGYubG9jYXRpb24ucGF0aG5hbWUuc3Vic3RyaW5nKDEgKyBzZWxmLmxvY2F0aW9u
LnBhdGhuYW1lLmxhc3RJbmRleE9mKCIvIikpOworICAgIGlmIChzdWZmaXgpCisgICAgICAgIG5h
bWUgKz0gc3VmZml4OworICAgIGV2YWxBbmRMb2coJ2RibmFtZSA9ICInICsgbmFtZSArICciJyk7
CiB9CiAKIGZ1bmN0aW9uIHByZWFtYmxlKGV2dCkKQEAgLTE3MywxOCArMTc2LDIyIEBAIGlmICgh
c2VsZi5ET01FeGNlcHRpb24pIHsKICAgICB9OwogfQogCi1mdW5jdGlvbiBpbmRleGVkREJUZXN0
KHVwZ3JhZGVDYWxsYmFjaywgb3B0aW9uYWxPcGVuQ2FsbGJhY2ssIG9wdGlvbmFsVmVyc2lvbikg
eworZnVuY3Rpb24gaW5kZXhlZERCVGVzdCh1cGdyYWRlQ2FsbGJhY2ssIG9wdGlvbmFsT3BlbkNh
bGxiYWNrLCBvcHRpb25hbFBhcmFtZXRlcnMpIHsKICAgICByZW1vdmVWZW5kb3JQcmVmaXhlcygp
OwotICAgIHNldERCTmFtZUZyb21QYXRoKCk7CisgICAgaWYgKG9wdGlvbmFsUGFyYW1ldGVycyAm
JiAnc3VmZml4JyBpbiBvcHRpb25hbFBhcmFtZXRlcnMpIHsKKyAgICAgICAgc2V0REJOYW1lRnJv
bVBhdGgob3B0aW9uYWxQYXJhbWV0ZXJzWydzdWZmaXgnXSk7CisgICAgfSBlbHNlIHsKKyAgICAg
ICAgc2V0REJOYW1lRnJvbVBhdGgoKTsKKyAgICB9CiAgICAgdmFyIGRlbGV0ZVJlcXVlc3QgPSBl
dmFsQW5kTG9nKCJpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKSIpOwogICAgIGRlbGV0
ZVJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwogICAgIGRlbGV0ZVJl
cXVlc3Qub25ibG9ja2VkID0gdW5leHBlY3RlZEJsb2NrZWRDYWxsYmFjazsKICAgICBkZWxldGVS
ZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uKCkgewogICAgICAgICB2YXIgb3BlblJlcXVlc3Q7
Ci0gICAgICAgIGlmIChvcHRpb25hbFZlcnNpb24pCi0gICAgICAgICAgb3BlblJlcXVlc3QgPSBl
dmFsQW5kTG9nKCJpbmRleGVkREIub3BlbihkYm5hbWUsICIgKyBvcHRpb25hbFZlcnNpb24gKyAi
KSIpOworICAgICAgICBpZiAob3B0aW9uYWxQYXJhbWV0ZXJzICYmICd2ZXJzaW9uJyBpbiBvcHRp
b25hbFBhcmFtZXRlcnMpCisgICAgICAgICAgICBvcGVuUmVxdWVzdCA9IGV2YWxBbmRMb2coImlu
ZGV4ZWREQi5vcGVuKGRibmFtZSwgIiArIG9wdGlvbmFsUGFyYW1ldGVyc1sndmVyc2lvbiddICsg
IikiKTsKICAgICAgICAgZWxzZQotICAgICAgICAgIG9wZW5SZXF1ZXN0ID0gZXZhbEFuZExvZygi
aW5kZXhlZERCLm9wZW4oZGJuYW1lKSIpOworICAgICAgICAgICAgb3BlblJlcXVlc3QgPSBldmFs
QW5kTG9nKCJpbmRleGVkREIub3BlbihkYm5hbWUpIik7CiAgICAgICAgIG9wZW5SZXF1ZXN0Lm9u
ZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKICAgICAgICAgb3BlblJlcXVlc3Qub251
cGdyYWRlbmVlZGVkID0gdXBncmFkZUNhbGxiYWNrOwogICAgICAgICBvcGVuUmVxdWVzdC5vbmJs
b2NrZWQgPSB1bmV4cGVjdGVkQmxvY2tlZENhbGxiYWNrOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173744</attachid>
            <date>2012-11-12 15:43:55 -0800</date>
            <delta_ts>2012-11-13 15:51:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101998-20121112154158.patch</filename>
            <type>text/plain</type>
            <size>31014</size>
            <attacher name="David Grogan">dgrogan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0MjUyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNmNiMTlhMjQzMzdkY2E5MDNkOTc1
NWQxOGNmNDlkYzU2ZmQ3NDk2OC4uMGQwYzBjMGFhMjc1YzZhMWNlZWNjNmU0ZGYyZDhhMjI3MThm
ZDU2YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM4IEBACiAyMDEyLTExLTEyICBEYXZpZCBHcm9nYW4gIDxk
Z3JvZ2FuQGNocm9taXVtLm9yZz4KIAorICAgICAgICBJbmRleGVkREI6IG5vbi10cml2aWFsIHRl
c3QgY29udmVyc2lvbiBiYXRjaCAyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMDE5OTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBZGRpdGlvbmFsIGluZm9ybWF0aW9uIG9mIHRoZSBjaGFuZ2Ugc3VjaCBh
cyBhcHByb2FjaCwgcmF0aW9uYWxlLiBQbGVhc2UgYWRkIHBlci1mdW5jdGlvbiBkZXNjcmlwdGlv
bnMgYmVsb3cgKE9PUFMhKS4KKworICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1v
dmVybG9hZHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2N1cnNv
ci1vdmVybG9hZHMuaHRtbDoKKyAgICAgICAgICBUcml2aWFsIGNvbnZlcnNpb24gdGhhdCBJIG1p
c3NlZCBsYXN0IHRpbWUgYXJvdW5kLgorCisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvZGF0
YWJhc2UtYmFzaWNzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9k
YXRhYmFzZS1jbG9zZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIv
ZGF0YWJhc2UtY2xvc2VwZW5kaW5nLWZsYWctZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0b3Jh
Z2UvaW5kZXhlZGRiL2RlbGV0ZS1jbG9zZWQtZGF0YWJhc2Utb2JqZWN0LWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvZGF0YWJhc2UtYmFzaWNzLmpz
OgorICAgICAgICAgIFJlbW92ZWQgdGVzdCB0aGF0IHNob3dzIGNhbGxpbmcgc2V0VmVyc2lvbiBp
bnNpZGUgYSB2ZXJzaW9uIGNoYW5nZQorICAgICAgICAgIHRyYW5zYWN0aW9uIGlzIGFuIGVycm9y
LiBSZXBsYWNlZCB3aXRoIHRlc3Qgc2hvd2luZyBzYW1lIGVycm9yIGZvciBhCisgICAgICAgICAg
Z2VuZXJpYyB0cmFuc2FjdGlvbi4KKworICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3Jlc291
cmNlcy9kYXRhYmFzZS1jbG9zZS5qczoKKyAgICAgICAgICBGb3JtZXJseSB1c2VkIGJvdGggdW5i
bG9ja2VkIHNldFZlcnNpb24gYW5kIGRlbGV0ZURhdGFiYXNlIHRvIHNpZ25hbAorICAgICAgICAg
IHRoYXQgYSBjb25uZWN0aW9uIHdhcyBjbG9zZWQsIG5vdyBqdXN0IHVzZWQgZGVsZXRlRGF0YWJh
c2UuCisKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvZGF0YWJhc2UtY2xv
c2VwZW5kaW5nLWZsYWcuanM6CisgICAgICAgICAgU3RyYWlnaHRmb3J3YXJkLCBpdCBqdXN0IGhh
cyBtdWx0aXBsZSBvcGVucy4KKworICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNl
cy9kZWxldGUtY2xvc2VkLWRhdGFiYXNlLW9iamVjdC5qczoKKyAgICAgICAgICBJbnN0ZWFkIG9m
IHVzaW5nIHNldFZlcnNpb24gcHJvY2Vzc2lvbiB0byBpbmRpY2F0ZSB0aGUgZGF0YWJhc2UKKyAg
ICAgICAgICBjbG9zZWQsIHVzZSBhbiBvcGVuLXdpdGgtdmVyc2lvbiBjYWxsLgorCisyMDEyLTEx
LTEyICBEYXZpZCBHcm9nYW4gIDxkZ3JvZ2FuQGNocm9taXVtLm9yZz4KKwogICAgICAgICBJbmRl
eGVkREI6IENvbnZlcnQgc29tZSBub24tc2ltcGxlIHRlc3RzIGZyb20gc2V0VmVyc2lvbiB0byB1
cGdyYWRlbmVlZGVkCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMDE5NTkKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
Y3Vyc29yLW92ZXJsb2Fkcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9jdXJzb3Itb3ZlcmxvYWRzLWV4cGVjdGVkLnR4dAppbmRleCBjNDgwYzRkMzgwODQ4MzA5
ZTU3YjY3NTI5MDM4NzdjN2ZhZTIxZDM1Li4zODgwOWQzY2RjMTgwODg2YjhlOGNjOGRiM2E1YzAx
NzA3Y2JiZDM5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJz
b3Itb3ZlcmxvYWRzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9jdXJzb3Itb3ZlcmxvYWRzLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDMgQEAKLUNPTlNP
TEUgTUVTU0FHRTogVGhlIHNldFZlcnNpb24oKSBtZXRob2QgaXMgbm9uLXN0YW5kYXJkIGFuZCB3
aWxsIGJlIHJlbW92ZWQuIFVzZSB0aGUgInVwZ3JhZGVuZWVkZWQiIGV2ZW50IGluc3RlYWQuCiBD
T05TT0xFIE1FU1NBR0U6IE51bWVyaWMgZGlyZWN0aW9uIHZhbHVlcyBhcmUgZGVwcmVjYXRlZCBp
biBvcGVuQ3Vyc29yIGFuZCBvcGVuS2V5Q3Vyc29yLiBVc2UgIm5leHQiLCAibmV4dHVuaXF1ZSIs
ICJwcmV2Iiwgb3IgInByZXZ1bmlxdWUiLgogQ09OU09MRSBNRVNTQUdFOiBOdW1lcmljIGRpcmVj
dGlvbiB2YWx1ZXMgYXJlIGRlcHJlY2F0ZWQgaW4gb3BlbkN1cnNvciBhbmQgb3BlbktleUN1cnNv
ci4gVXNlICJuZXh0IiwgIm5leHR1bmlxdWUiLCAicHJldiIsIG9yICJwcmV2dW5pcXVlIi4KIENP
TlNPTEUgTUVTU0FHRTogTnVtZXJpYyBkaXJlY3Rpb24gdmFsdWVzIGFyZSBkZXByZWNhdGVkIGlu
IG9wZW5DdXJzb3IgYW5kIG9wZW5LZXlDdXJzb3IuIFVzZSAibmV4dCIsICJuZXh0dW5pcXVlIiwg
InByZXYiLCBvciAicHJldnVuaXF1ZSIuCkBAIC0zMCwxMiArMjksOSBAQCBPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURQogCiBpbmRleGVkREIgPSBzZWxmLmluZGV4ZWREQiB8fCBzZWxmLndlYmtpdElu
ZGV4ZWREQiB8fCBzZWxmLm1vekluZGV4ZWREQiB8fCBzZWxmLm1zSW5kZXhlZERCIHx8IHNlbGYu
T0luZGV4ZWREQjsKIAotZGJuYW1lID0gJ2N1cnNvci1vdmVybG9hZHMnCitkYm5hbWUgPSAiY3Vy
c29yLW92ZXJsb2Fkcy5odG1sIgogaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkKIGlu
ZGV4ZWREQi5vcGVuKGRibmFtZSkKLWRiID0gcmVxdWVzdC5yZXN1bHQKLVBBU1MgZGIudmVyc2lv
biBpcyAxCi1kYi5zZXRWZXJzaW9uKCcxJykKIHN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUo
J3N0b3JlJykKIGluZGV4ID0gc3RvcmUuY3JlYXRlSW5kZXgoJ2luZGV4JywgJ3ZhbHVlJykKIHN0
b3JlLnB1dCh7dmFsdWU6IDB9LCAwKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvY3Vyc29yLW92ZXJsb2Fkcy5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvY3Vyc29yLW92ZXJsb2Fkcy5odG1sCmluZGV4IGI0M2EzMTA3NjI0MGM1YWJlMDAxNGNi
ZDBkOTlhYTEyMzNlNWFiY2YuLjc2NzRkYzI4OWRmMmQyNjA3Y2RlMDkzZjE2OGI0YjE1YzdkMDg4
MmUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1vdmVy
bG9hZHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3Itb3Zl
cmxvYWRzLmh0bWwKQEAgLTQsMzUgKzQsMTQgQEAKIDxzY3JpcHQ+CiBkZXNjcmlwdGlvbigiVmFs
aWRhdGUgdGhlIG92ZXJsb2FkcyBvZiBJREJPYmplY3RTdG9yZS5vcGVuQ3Vyc29yKCksIElEQklu
ZGV4Lm9wZW5DdXJzb3IoKSBhbmQgSURCSW5kZXgub3BlbktleUN1cnNvcigpLiIpOwogCi1mdW5j
dGlvbiB0ZXN0KCkKLXsKLSAgICByZW1vdmVWZW5kb3JQcmVmaXhlcygpOwotICAgIHByZXBhcmVE
YXRhYmFzZSgpOwotfQotCitpbmRleGVkREJUZXN0KHByZXBhcmVEYXRhYmFzZSwgdmVyaWZ5T3Zl
cmxvYWRzKTsKIGZ1bmN0aW9uIHByZXBhcmVEYXRhYmFzZSgpCiB7Ci0gICAgZXZhbEFuZExvZygi
ZGJuYW1lID0gJ2N1cnNvci1vdmVybG9hZHMnIik7Ci0gICAgcmVxdWVzdCA9IGV2YWxBbmRMb2co
ImluZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpIik7Ci0gICAgcmVxdWVzdC5vbmVycm9y
ID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBmdW5j
dGlvbihlKSB7Ci0gICAgICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIub3Blbihk
Ym5hbWUpIik7Ci0gICAgICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxi
YWNrOwotICAgICAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAg
ICAgIGV2YWxBbmRMb2coImRiID0gcmVxdWVzdC5yZXN1bHQiKTsKLSAgICAgICAgICAgIHNob3Vs
ZEJlKCJkYi52ZXJzaW9uIiwgJzEnKTsKLSAgICAgICAgICAgIHJlcXVlc3QgPSBldmFsQW5kTG9n
KCJkYi5zZXRWZXJzaW9uKCcxJykiKTsKLSAgICAgICAgICAgIHJlcXVlc3Qub25lcnJvciA9IHVu
ZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotICAgICAgICAgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBm
dW5jdGlvbihlKSB7Ci0gICAgICAgICAgICAgICAgdHJhbnMgPSByZXF1ZXN0LnJlc3VsdDsKLSAg
ICAgICAgICAgICAgICBldmFsQW5kTG9nKCJzdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdz
dG9yZScpIik7Ci0gICAgICAgICAgICAgICAgZXZhbEFuZExvZygiaW5kZXggPSBzdG9yZS5jcmVh
dGVJbmRleCgnaW5kZXgnLCAndmFsdWUnKSIpOwotICAgICAgICAgICAgICAgIGV2YWxBbmRMb2co
InN0b3JlLnB1dCh7dmFsdWU6IDB9LCAwKSIpOwotICAgICAgICAgICAgICAgIHRyYW5zLm9uY29t
cGxldGUgPSB2ZXJpZnlPdmVybG9hZHM7Ci0KLSAgICAgICAgICAgIH07Ci0gICAgICAgIH07Ci0g
ICAgfTsKKyAgICBkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CisgICAgZXZlbnQudGFyZ2V0LnRy
YW5zYWN0aW9uLm9uYWJvcnQgPSB1bmV4cGVjdGVkQWJvcnRDYWxsYmFjazsKKyAgICBldmFsQW5k
TG9nKCJzdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZScpIik7CisgICAgZXZhbEFu
ZExvZygiaW5kZXggPSBzdG9yZS5jcmVhdGVJbmRleCgnaW5kZXgnLCAndmFsdWUnKSIpOworICAg
IGV2YWxBbmRMb2coInN0b3JlLnB1dCh7dmFsdWU6IDB9LCAwKSIpOwogfQogCiBmdW5jdGlvbiB2
ZXJpZnlPdmVybG9hZHMoKQpAQCAtMTIzLDcgKzEwMiw1IEBAIGZ1bmN0aW9uIGNoZWNrQ3Vyc29y
RGlyZWN0aW9uKHN0YXRlbWVudCwgZGlyZWN0aW9uKQogICAgIH07CiB9CiAKLXRlc3QoKTsKLQog
PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL2RhdGFiYXNlLWJhc2ljcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9kYXRhYmFzZS1iYXNpY3MtZXhwZWN0ZWQudHh0CmluZGV4IDM0YjFkZTI5MTdmYzVm
YzYwZjViNTA1NzgzOTZlZjIyZjRlMDQ3NWYuLjM5NGM4NTliMDU4OGY4ODViZmRkY2MyNzFiM2Ri
YzBiYTViODk5NDAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2Rh
dGFiYXNlLWJhc2ljcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvZGF0YWJhc2UtYmFzaWNzLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDMgQEAKLUNPTlNP
TEUgTUVTU0FHRTogVGhlIHNldFZlcnNpb24oKSBtZXRob2QgaXMgbm9uLXN0YW5kYXJkIGFuZCB3
aWxsIGJlIHJlbW92ZWQuIFVzZSB0aGUgInVwZ3JhZGVuZWVkZWQiIGV2ZW50IGluc3RlYWQuCiBU
ZXN0IHRoZSBiYXNpY3Mgb2YgSW5kZXhlZERCJ3MgSURCRGF0YWJhc2UuCiAKIE9uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KQEAgLTYsMjAgKzUsMTYgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUK
IAogaW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwg
c2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7
CiAKLWluZGV4ZWREQi5vcGVuKCdkYXRhYmFzZS1iYXNpY3MnKQotZGIgPSBldmVudC50YXJnZXQu
cmVzdWx0Ci1kYi5zZXRWZXJzaW9uKCduZXcgdmVyc2lvbicpCi1EZWxldGVkIGFsbCBvYmplY3Qg
c3RvcmVzLgotc2V0VmVyc2lvblN1Y2Nlc3MoKToKLVRlc3Rpbmcgc2V0VmVyc2lvbi4KLXJlcXVl
c3QgPSBkYi5zZXRWZXJzaW9uKCJ2ZXJzaW9uIGEiKQotRXhwZWN0aW5nIGV4Y2VwdGlvbiBmcm9t
IGRiLnNldFZlcnNpb24oInZlcnNpb24gYiIpCitkYm5hbWUgPSAiZGF0YWJhc2UtYmFzaWNzLmh0
bWwiCitpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQoraW5kZXhlZERCLm9wZW4oZGJu
YW1lKQorVGVzdCB0aGF0IHlvdSBjYW4ndCBvcGVuIGEgdHJhbnNhY3Rpb24gd2hpbGUgaW4gYSB2
ZXJzaW9uY2hhbmdlIHRyYW5zYWN0aW9uCitFeHBlY3RpbmcgZXhjZXB0aW9uIGZyb20gZGIudHJh
bnNhY3Rpb24oImRvZXNudEV4aXN0IikKIFBBU1MgRXhjZXB0aW9uIHdhcyB0aHJvd24uCiBQQVNT
IGNvZGUgaXMgRE9NRXhjZXB0aW9uLklOVkFMSURfU1RBVEVfRVJSCiBQQVNTIGVuYW1lIGlzICdJ
bnZhbGlkU3RhdGVFcnJvcicKLWRiLnNldFZlcnNpb24oInZlcnNpb24gYiIpCi1QQVNTIGRiLnZl
cnNpb24gaXMgInZlcnNpb24gYiIKLVBBU1MgZGIubmFtZSBpcyAiZGF0YWJhc2UtYmFzaWNzIgor
UEFTUyBkYi52ZXJzaW9uIGlzIDEKK1BBU1MgZGIubmFtZSBpcyAiZGF0YWJhc2UtYmFzaWNzLmh0
bWwiCiBQQVNTIGRiLm9iamVjdFN0b3JlTmFtZXMgaXMgW10KIFBBU1MgZGIub2JqZWN0U3RvcmVO
YW1lcy5sZW5ndGggaXMgMAogUEFTUyBkYi5vYmplY3RTdG9yZU5hbWVzLmNvbnRhaW5zKCcnKSBp
cyBmYWxzZQpAQCAtMzEsMTggKzI2LDIwIEBAIFBBU1MgZGIub2JqZWN0U3RvcmVOYW1lcy5sZW5n
dGggaXMgMQogUEFTUyBkYi5vYmplY3RTdG9yZU5hbWVzLmNvbnRhaW5zKCcnKSBpcyBmYWxzZQog
UEFTUyBkYi5vYmplY3RTdG9yZU5hbWVzLmNvbnRhaW5zKCd0ZXN0NDU2JykgaXMgZmFsc2UKIFBB
U1MgZGIub2JqZWN0U3RvcmVOYW1lcy5jb250YWlucygndGVzdDEyMycpIGlzIHRydWUKLWRiLnNl
dFZlcnNpb24oInZlcnNpb24gYyIpCi1QQVNTIGRiLnZlcnNpb24gaXMgInZlcnNpb24gYyIKLVBB
U1MgZGIubmFtZSBpcyAiZGF0YWJhc2UtYmFzaWNzIgorZGIuY2xvc2UoKQorcmVxdWVzdCA9IGlu
ZGV4ZWREQi5vcGVuKGRibmFtZSwgMikKK2RiID0gZXZlbnQudGFyZ2V0LnJlc3VsdAorUEFTUyBk
Yi52ZXJzaW9uIGlzIDIKK1BBU1MgZGIubmFtZSBpcyAiZGF0YWJhc2UtYmFzaWNzLmh0bWwiCiBQ
QVNTIGRiLm9iamVjdFN0b3JlTmFtZXMgaXMgWyd0ZXN0MTIzJ10KIFBBU1MgZGIub2JqZWN0U3Rv
cmVOYW1lcy5sZW5ndGggaXMgMQogUEFTUyBkYi5vYmplY3RTdG9yZU5hbWVzLmNvbnRhaW5zKCcn
KSBpcyBmYWxzZQogUEFTUyBkYi5vYmplY3RTdG9yZU5hbWVzLmNvbnRhaW5zKCd0ZXN0NDU2Jykg
aXMgZmFsc2UKIFBBU1MgZGIub2JqZWN0U3RvcmVOYW1lcy5jb250YWlucygndGVzdDEyMycpIGlz
IHRydWUKIGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJ0ZXN0NDU2IikKLXNldFZlcnNpb25UcmFucyA9
IGV2ZW50LnRhcmdldC5yZXN1bHQKK3NldFZlcnNpb25UcmFucyA9IGV2ZW50LnRhcmdldC50cmFu
c2FjdGlvbgogUEFTUyBzZXRWZXJzaW9uVHJhbnMgaXMgbm9uLW51bGwuCi1QQVNTIGRiLnZlcnNp
b24gaXMgInZlcnNpb24gYiIKK1BBU1MgZGIudmVyc2lvbiBpcyAxCiBQQVNTIGRiLm9iamVjdFN0
b3JlTmFtZXMgaXMgWyd0ZXN0MTIzJ10KIFBBU1MgZGIub2JqZWN0U3RvcmVOYW1lcy5sZW5ndGgg
aXMgMQogUEFTUyBkYi5vYmplY3RTdG9yZU5hbWVzLmNvbnRhaW5zKCcnKSBpcyBmYWxzZQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZGF0YWJhc2UtY2xvc2UtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZGF0YWJhc2UtY2xvc2Ut
ZXhwZWN0ZWQudHh0CmluZGV4IDZiNGZiMGRmOWZkYjU3MDA0NGVjNDU2ZDJjN2JhYWZiNGU4N2Y4
YzUuLmEzMDc5ZmEyZTA1ZTEzMzBjZjBlODI2OTgwNzgxNTAzZGFjYTllMDYgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2RhdGFiYXNlLWNsb3NlLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9kYXRhYmFzZS1jbG9zZS1leHBl
Y3RlZC50eHQKQEAgLTEsNSArMSwzIEBACi1DT05TT0xFIE1FU1NBR0U6IFRoZSBzZXRWZXJzaW9u
KCkgbWV0aG9kIGlzIG5vbi1zdGFuZGFyZCBhbmQgd2lsbCBiZSByZW1vdmVkLiBVc2UgdGhlICJ1
cGdyYWRlbmVlZGVkIiBldmVudCBpbnN0ZWFkLgotQ09OU09MRSBNRVNTQUdFOiBUaGUgc2V0VmVy
c2lvbigpIG1ldGhvZCBpcyBub24tc3RhbmRhcmQgYW5kIHdpbGwgYmUgcmVtb3ZlZC4gVXNlIHRo
ZSAidXBncmFkZW5lZWRlZCIgZXZlbnQgaW5zdGVhZC4KIFRlc3QgSW5kZXhlZERCICdzdGVwcyBm
b3IgY2xvc2luZyBhIGRhdGFiYXNlIGNvbm5lY3Rpb24nCiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KQEAgLTcsMjEgKzUsMTMgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIAogaW5kZXhl
ZERCID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJ
bmRleGVkREIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CiAKLWRibmFt
ZSA9IHNlbGYubG9jYXRpb24ucGF0aG5hbWUKK2RibmFtZSA9ICJkYXRhYmFzZS1jbG9zZS5odG1s
IgogaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkKLQotb3BlbkNvbm5lY3Rpb24oKToK
LXJlcXVlc3QgPSBpbmRleGVkREIub3BlbihkYm5hbWUpCi1jb25uZWN0aW9uID0gcmVxdWVzdC5y
ZXN1bHQKLXJlcXVlc3QgPSBjb25uZWN0aW9uLnNldFZlcnNpb24oJzEnKQoraW5kZXhlZERCLm9w
ZW4oZGJuYW1lKQogc3RvcmUgPSBjb25uZWN0aW9uLmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZScp
CiBzdG9yZS5wdXQoJ3ZhbHVlMScsICdrZXkxJykKIHN0b3JlLnB1dCgndmFsdWUyJywgJ2tleTIn
KQogCi1vcGVuVmVyc2lvbkNoYW5nZUNvbm5lY3Rpb24oKToKLXJlcXVlc3QgPSBpbmRleGVkREIu
b3BlbihkYm5hbWUpCi12ZXJzaW9uX2NoYW5nZV9jb25uZWN0aW9uID0gcmVxdWVzdC5yZXN1bHQK
LQogdGVzdENsb3NlKCk6CiBDcmVhdGUgdHJhbnNhY3Rpb25zIHVzaW5nIGNvbm5lY3Rpb246CiB0
cmFuczEgPSBjb25uZWN0aW9uLnRyYW5zYWN0aW9uKCdzdG9yZScpCkBAIC00Myw5ICszMyw4IEBA
IFBBU1MgRXhjZXB0aW9uIHdhcyB0aHJvd24uCiBQQVNTIGNvZGUgaXMgRE9NRXhjZXB0aW9uLklO
VkFMSURfU1RBVEVfRVJSCiBQQVNTIGVuYW1lIGlzICdJbnZhbGlkU3RhdGVFcnJvcicKIAotTk9U
RTogT25jZSB0aGUgY29ubmVjdGlvbiBpcyBjbG9zZWQsIHRoaXMgY2FuIHVuYmxvY2sgdGhlIHN0
ZXBzIGZvciBydW5uaW5nIGEgInZlcnNpb25jaGFuZ2UiIHRyYW5zYWN0aW9uLCBhbmQgdGhlIHN0
ZXBzIGZvciBkZWxldGluZyBhIGRhdGFiYXNlLCB3aGljaCBib3RoIHdhaXQgZm9yIGNvbm5lY3Rp
b25zIHRvIGEgZ2l2ZW4gZGF0YWJhc2UgdG8gYmUgY2xvc2VkIGJlZm9yZSBjb250aW51aW5nLgor
Tk9URTogT25jZSB0aGUgY29ubmVjdGlvbiBpcyBjbG9zZWQsIHRoaXMgY2FuIHVuYmxvY2sgdGhl
IHN0ZXBzIGZvciBkZWxldGluZyBhIGRhdGFiYXNlLCB3aGljaCB3YWl0cyBmb3IgY29ubmVjdGlv
bnMgdG8gYSBnaXZlbiBkYXRhYmFzZSB0byBiZSBjbG9zZWQgYmVmb3JlIGNvbnRpbnVpbmcuCiAK
LXZlcnNpb25fY2hhbmdlX2Nvbm5lY3Rpb24uc2V0VmVyc2lvbignMicpCiBpbmRleGVkREIuZGVs
ZXRlRGF0YWJhc2UoZGJuYW1lKQogCiB0cmFuc2FjdGlvbiAjMSByZXF1ZXN0IHN1Y2Nlc3NmdWwK
QEAgLTU2LDEyICs0NSw3IEBAIHRyYW5zYWN0aW9uICMyIHJlcXVlc3Qgc3VjY2Vzc2Z1bAogUEFT
UyBldmVudC50YXJnZXQucmVzdWx0IGlzICJ2YWx1ZTIiCiBhd2FpdGluZ190cmFuc2FjdGlvbl9j
b3VudCAtPSAxCiAKLUFsbCB0cmFuc2FjdGlvbnMgY29tcGxldGVkIC0gdmVyc2lvbiBjaGFuZ2Vz
IC8gZGF0YWJhc2UgZGVsZXRlcyBzaG91bGQgbm93IGJlIHVuYmxvY2tlZC4KLQotdmVyc2lvbiBj
aGFuZ2UgdHJhbnNhY3Rpb24gdW5ibG9ja2VkCi1QQVNTIGF3YWl0aW5nX3RyYW5zYWN0aW9uX2Nv
dW50IGlzIDAKLVBBU1MgdmVyc2lvbl9jaGFuZ2VfY29ubmVjdGlvbi52ZXJzaW9uIGlzICIyIgot
dmVyc2lvbl9jaGFuZ2VfY29ubmVjdGlvbi5jbG9zZSgpCitBbGwgdHJhbnNhY3Rpb25zIGNvbXBs
ZXRlZCAtIGRhdGFiYXNlIGRlbGV0ZXMgc2hvdWxkIG5vdyBiZSB1bmJsb2NrZWQuCiAKIGRlbGV0
ZSBkYXRhYmFzZSB1bmJsb2NrZWQKIFBBU1MgYXdhaXRpbmdfdHJhbnNhY3Rpb25fY291bnQgaXMg
MApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZGF0YWJhc2UtY2xv
c2VwZW5kaW5nLWZsYWctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvZGF0YWJhc2UtY2xvc2VwZW5kaW5nLWZsYWctZXhwZWN0ZWQudHh0CmluZGV4IDY3ZmI1YTcw
ODZmOGExM2Y2M2I0ZDRkZDYzNGViZTYxMjJjOTRkYmQuLjg3ZjgyMjUzZTI1YzFiMTY4OTYwMTM4
MmZkM2JmMmJlZjBmOTQzYjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL2RhdGFiYXNlLWNsb3NlcGVuZGluZy1mbGFnLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9kYXRhYmFzZS1jbG9zZXBlbmRpbmctZmxhZy1leHBlY3Rl
ZC50eHQKQEAgLTEsNiArMSwzIEBACi1DT05TT0xFIE1FU1NBR0U6IFRoZSBzZXRWZXJzaW9uKCkg
bWV0aG9kIGlzIG5vbi1zdGFuZGFyZCBhbmQgd2lsbCBiZSByZW1vdmVkLiBVc2UgdGhlICJ1cGdy
YWRlbmVlZGVkIiBldmVudCBpbnN0ZWFkLgotQ09OU09MRSBNRVNTQUdFOiBUaGUgc2V0VmVyc2lv
bigpIG1ldGhvZCBpcyBub24tc3RhbmRhcmQgYW5kIHdpbGwgYmUgcmVtb3ZlZC4gVXNlIHRoZSAi
dXBncmFkZW5lZWRlZCIgZXZlbnQgaW5zdGVhZC4KLUNPTlNPTEUgTUVTU0FHRTogVGhlIHNldFZl
cnNpb24oKSBtZXRob2QgaXMgbm9uLXN0YW5kYXJkIGFuZCB3aWxsIGJlIHJlbW92ZWQuIFVzZSB0
aGUgInVwZ3JhZGVuZWVkZWQiIGV2ZW50IGluc3RlYWQuCiBUZXN0IEluZGV4ZWREQiBJREJEYXRh
YmFzZSBpbnRlcm5hbCBjbG9zZVBlbmRpbmcgZmxhZwogCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCkBAIC04LDEzICs1LDkgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIAogaW5kZXhlZERC
ID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRl
eGVkREIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CiAKLWRibmFtZSA9
IHNlbGYubG9jYXRpb24ucGF0aG5hbWUKK2RibmFtZSA9ICJkYXRhYmFzZS1jbG9zZXBlbmRpbmct
ZmxhZy5odG1sIgogaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkKLQotb3BlbkNvbm5l
Y3Rpb24oKToKLXJlcXVlc3QgPSBpbmRleGVkREIub3BlbihkYm5hbWUpCi1jb25uZWN0aW9uID0g
cmVxdWVzdC5yZXN1bHQKLXJlcXVlc3QgPSBjb25uZWN0aW9uLnNldFZlcnNpb24oJzEnKQoraW5k
ZXhlZERCLm9wZW4oZGJuYW1lKQogc3RvcmUgPSBjb25uZWN0aW9uLmNyZWF0ZU9iamVjdFN0b3Jl
KCdzdG9yZScpCiAKIEZpcnN0LCB2ZXJpZnkgdGhhdCB0aGUgZGF0YWJhc2UgY29ubmVjdGlvbiBp
cyBub3QgY2xvc2VkOgpAQCAtMzYsOSArMjksOCBAQCBQQVNTIGNvbm5lY3Rpb24ubmFtZSBpcyBk
Ym5hbWUKIAogSURCRGF0YWJhc2Uub2JqZWN0U3RvcmVOYW1lczoKICJPbmNlIHRoZSBjbG9zZVBl
bmRpbmcgZmxhZyBpcyBzZXQgb24gdGhlIGNvbm5lY3Rpb24sIHRoaXMgZnVuY3Rpb24gbXVzdCBy
ZXR1cm4gYSBzbmFwc2hvdCBvZiB0aGUgbGlzdCBvZiBuYW1lcyBvZiB0aGUgb2JqZWN0IHN0b3Jl
cyB0YWtlbiBhdCB0aGUgdGltZSB3aGVuIHRoZSBjbG9zZSBtZXRob2Qgd2FzIGNhbGxlZC4iCi1y
ZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lKQorcmVxdWVzdCA9IGluZGV4ZWREQi5vcGVu
KGRibmFtZSwgMikKIHZlcnNpb25fY2hhbmdlX2Nvbm5lY3Rpb24gPSByZXF1ZXN0LnJlc3VsdAot
dmVyc2lvbl9jaGFuZ2VfY29ubmVjdGlvbi5zZXRWZXJzaW9uKCcyJykKIHZlcnNpb25fY2hhbmdl
X2Nvbm5lY3Rpb24uY3JlYXRlT2JqZWN0U3RvcmUoJ25ld19zdG9yZScpCiBQQVNTIHZlcnNpb25f
Y2hhbmdlX2Nvbm5lY3Rpb24ub2JqZWN0U3RvcmVOYW1lcy5jb250YWlucygnbmV3X3N0b3JlJykg
aXMgdHJ1ZQogUEFTUyBjb25uZWN0aW9uLm9iamVjdFN0b3JlTmFtZXMuY29udGFpbnMoJ25ld19z
dG9yZScpIGlzIGZhbHNlCkBAIC02MCwxMCArNTIsOSBAQCBjb25uZWN0aW9uLm9udmVyc2lvbmNo
YW5nZSA9IGZ1bmN0aW9uICgpIHsgdmVyc2lvbkNoYW5nZVdhc0ZpcmVkID0gdHJ1ZTsgfQogdHJh
bnNhY3Rpb24gPSBjb25uZWN0aW9uLnRyYW5zYWN0aW9uKCdzdG9yZScpCiBjb25uZWN0aW9uLmNs
b3NlKCkKIGNsb3NlUGVuZGluZyBpcyBzZXQsIGJ1dCBhY3RpdmUgdHJhbnNhY3Rpb24gd2lsbCBr
ZWVwIGNvbm5lY3Rpb24gZnJvbSBjbG9zaW5nCi1yZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJu
YW1lKQotdmVyc2lvbl9jaGFuZ2VfY29ubmVjdGlvbiA9IHJlcXVlc3QucmVzdWx0Ci12ZXJzaW9u
X2NoYW5nZV9jb25uZWN0aW9uLnNldFZlcnNpb24oJzMnKQorcmVxdWVzdCA9IGluZGV4ZWREQi5v
cGVuKGRibmFtZSwgMykKICdibG9ja2VkJyBldmVudCBmaXJlZCwgbGV0dGluZyB0cmFuc2FjdGlv
biBjb21wbGV0ZSBhbmQgY29ubmVjdGlvbiBjbG9zZQordmVyc2lvbl9jaGFuZ2VfY29ubmVjdGlv
biA9IHJlcXVlc3QucmVzdWx0CiBQQVNTIHZlcnNpb25DaGFuZ2VXYXNGaXJlZCBpcyBmYWxzZQog
dmVyc2lvbl9jaGFuZ2VfY29ubmVjdGlvbi5jbG9zZSgpCiAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2RlbGV0ZS1jbG9zZWQtZGF0YWJhc2Utb2JqZWN0LWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2RlbGV0ZS1jbG9zZWQtZGF0
YWJhc2Utb2JqZWN0LWV4cGVjdGVkLnR4dAppbmRleCA2ZTMxODdkN2U2YWI3NzAzNzFiNjgyNzQ1
NTBmY2M0MDFjMTY3MTMyLi5jOTlhNTY3NmYwZTUyZTkzYjEwMTYwMDJmMGNlMjg1YzEyNjVjMDA2
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9kZWxldGUtY2xvc2Vk
LWRhdGFiYXNlLW9iamVjdC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvZGVsZXRlLWNsb3NlZC1kYXRhYmFzZS1vYmplY3QtZXhwZWN0ZWQudHh0CkBAIC0x
LDQgKzEsMyBAQAotQ09OU09MRSBNRVNTQUdFOiBUaGUgc2V0VmVyc2lvbigpIG1ldGhvZCBpcyBu
b24tc3RhbmRhcmQgYW5kIHdpbGwgYmUgcmVtb3ZlZC4gVXNlIHRoZSAidXBncmFkZW5lZWRlZCIg
ZXZlbnQgaW5zdGVhZC4KIEVuc3VyZSB0aGF0IElEQkRhdGFiYXNlIG9iamVjdHMgYXJlIGRlbGV0
ZWQgd2hlbiB0aGVyZSBhcmUgbm8gcmV0YWluaW5nIHBhdGhzIGxlZnQKIAogT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgpAQCAtNiwxMyArNSwxMiBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQog
CiBpbmRleGVkREIgPSBzZWxmLmluZGV4ZWREQiB8fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8fCBz
ZWxmLm1vekluZGV4ZWREQiB8fCBzZWxmLm1zSW5kZXhlZERCIHx8IHNlbGYuT0luZGV4ZWREQjsK
IAotc2VsZi5zdGF0ZSA9ICdzdGFydGluZycKLWluZGV4ZWREQi5vcGVuKCdkZWxldGUtY2xvc2Vk
LWRhdGFiYXNlLW9iamVjdCcpCi1kYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQKLWluZGV4ZWREQi5v
cGVuKCdkZWxldGUtY2xvc2VkLWRhdGFiYXNlLW9iamVjdCcpCi1TZWNvbmQgY29ubmVjdGlvbiBz
dWNjZXNzZnVsbHkgZXN0YWJsaXNoZWQuCi1jYWxsaW5nIHNldFZlcnNpb24oKSAtIGNhbGxiYWNr
IHNob3VsZCBydW4gaW1tZWRpYXRlbHkKLWRiLnNldFZlcnNpb24oJ3ZlcnNpb24gMScpCitkYm5h
bWUgPSAiZGVsZXRlLWNsb3NlZC1kYXRhYmFzZS1vYmplY3QuaHRtbCIKK2luZGV4ZWREQi5kZWxl
dGVEYXRhYmFzZShkYm5hbWUpCitpbmRleGVkREIub3BlbihkYm5hbWUpCitDb25uZWN0aW9uIHN1
Y2Nlc3NmdWxseSBlc3RhYmxpc2hlZC4KK09wZW4gcmVxdWVzdCBzaG91bGQgbm90IHJlY2VpdmUg
YSBibG9ja2VkIGV2ZW50OgoraW5kZXhlZERCLm9wZW4oZGJuYW1lLCAyKQogUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvZGF0YWJhc2UtYmFzaWNzLmpzIGIvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2RhdGFiYXNlLWJhc2ljcy5qcwpp
bmRleCAyNTFlNDU1MTAwM2JmNWVmNzAwMjdiMDQ4ZjhmNGZiMjcyZWFkNDQ2Li5jNmZmYjBhNjU3
ZjZkZDhiODkwY2JhYzcxNGY4Nzk1YzYzN2E2ZTllIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvZGF0YWJhc2UtYmFzaWNzLmpzCisrKyBiL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9kYXRhYmFzZS1iYXNpY3MuanMKQEAg
LTUsNTggKzUsMTYgQEAgaWYgKHRoaXMuaW1wb3J0U2NyaXB0cykgewogCiBkZXNjcmlwdGlvbigi
VGVzdCB0aGUgYmFzaWNzIG9mIEluZGV4ZWREQidzIElEQkRhdGFiYXNlLiIpOwogCi1mdW5jdGlv
biB0ZXN0KCkKK2luZGV4ZWREQlRlc3QocHJlcGFyZURhdGFiYXNlLCB0ZXN0U2V0VmVyc2lvbkFi
b3J0KTsKK2Z1bmN0aW9uIHByZXBhcmVEYXRhYmFzZSgpCiB7Ci0gICAgcmVtb3ZlVmVuZG9yUHJl
Zml4ZXMoKTsKKyAgICBkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CisgICAgZGVidWcoIlRlc3Qg
dGhhdCB5b3UgY2FuJ3Qgb3BlbiBhIHRyYW5zYWN0aW9uIHdoaWxlIGluIGEgdmVyc2lvbmNoYW5n
ZSB0cmFuc2FjdGlvbiIpOworICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oJ2RiLnRyYW5zYWN0
aW9uKCJkb2VzbnRFeGlzdCIpJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJET01FeGNl
cHRpb24uSU5WQUxJRF9TVEFURV9FUlIiLCAiJ0ludmFsaWRTdGF0ZUVycm9yJyIpOwogCi0gICAg
cmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4ZWREQi5vcGVuKCdkYXRhYmFzZS1iYXNpY3MnKSIp
OwotICAgIHJlcXVlc3Qub25zdWNjZXNzID0gb3BlblN1Y2Nlc3M7Ci0gICAgcmVxdWVzdC5vbmVy
cm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci19Ci0KLWZ1bmN0aW9uIG9wZW5TdWNjZXNz
KCkKLXsKLSAgICBzZWxmLmRiID0gZXZhbEFuZExvZygiZGIgPSBldmVudC50YXJnZXQucmVzdWx0
Iik7Ci0KLSAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiZGIuc2V0VmVyc2lvbignbmV3IHZlcnNp
b24nKSIpOwotICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24oKSB7Ci0gICAgICAgIGRl
bGV0ZUFsbE9iamVjdFN0b3JlcyhkYik7Ci0KLSAgICAgICAgdmFyIHRyYW5zYWN0aW9uID0gZXZl
bnQudGFyZ2V0LnJlc3VsdDsKLSAgICAgICAgdHJhbnNhY3Rpb24ub25jb21wbGV0ZSA9IHNldFZl
cnNpb25TdWNjZXNzOwotICAgICAgICB0cmFuc2FjdGlvbi5vbmFib3J0ID0gdW5leHBlY3RlZEVy
cm9yQ2FsbGJhY2s7Ci0gICAgfTsKLSAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJy
b3JDYWxsYmFjazsKLX0KLQotZnVuY3Rpb24gc2V0VmVyc2lvblN1Y2Nlc3MoKQotewotICAgIGRl
YnVnKCJzZXRWZXJzaW9uU3VjY2VzcygpOiIpOwotCi0gICAgZGVidWcoIlRlc3Rpbmcgc2V0VmVy
c2lvbi4iKTsKLSAgICBldmFsQW5kTG9nKCdyZXF1ZXN0ID0gZGIuc2V0VmVyc2lvbigidmVyc2lv
biBhIiknKTsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGV2ZW50KSB7Ci0KLSAg
ICAgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbignZGIuc2V0VmVyc2lvbigidmVyc2lvbiBiIikn
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJET01FeGNlcHRpb24uSU5WQUxJRF9T
VEFURV9FUlIiLCAiJ0ludmFsaWRTdGF0ZUVycm9yJyIpOwotICAgICAgICB2YXIgdHJhbnNhY3Rp
b24gPSBldmVudC50YXJnZXQucmVzdWx0OwotICAgICAgICB0cmFuc2FjdGlvbi5vbmNvbXBsZXRl
ID0gc2V0VmVyc2lvbkFnYWluOwotICAgICAgICB0cmFuc2FjdGlvbi5vbmFib3J0ID0gdW5leHBl
Y3RlZEVycm9yQ2FsbGJhY2s7Ci0gICAgfTsKLSAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVj
dGVkRXJyb3JDYWxsYmFjazsKLX0KLQotZnVuY3Rpb24gc2V0VmVyc2lvbkFnYWluKCkKLXsKLSAg
ICByZXF1ZXN0ID0gZXZhbEFuZExvZygnZGIuc2V0VmVyc2lvbigidmVyc2lvbiBiIiknKTsKLSAg
ICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGNyZWF0ZU9iamVjdFN0b3JlOwotICAgIHJlcXVlc3Qub25l
cnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotfQotCi1mdW5jdGlvbiBjcmVhdGVPYmpl
Y3RTdG9yZSgpCi17Ci0gICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJkYi52ZXJzaW9uIiwgInZl
cnNpb24gYiIpOwotICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZGIubmFtZSIsICJkYXRhYmFz
ZS1iYXNpY3MiKTsKKyAgICBzaG91bGRCZSgiZGIudmVyc2lvbiIsICIxIik7CisgICAgc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCJkYi5uYW1lIiwgZGJuYW1lKTsKICAgICBzaG91bGRCZSgiZGIub2Jq
ZWN0U3RvcmVOYW1lcyIsICJbXSIpOwogICAgIHNob3VsZEJlKCJkYi5vYmplY3RTdG9yZU5hbWVz
Lmxlbmd0aCIsICIwIik7CiAgICAgc2hvdWxkQmUoImRiLm9iamVjdFN0b3JlTmFtZXMuY29udGFp
bnMoJycpIiwgImZhbHNlIik7CkBAIC02NSwxMCArMjMsNiBAQCBmdW5jdGlvbiBjcmVhdGVPYmpl
Y3RTdG9yZSgpCiAKICAgICBvYmplY3RTdG9yZSA9IGV2YWxBbmRMb2coJ2RiLmNyZWF0ZU9iamVj
dFN0b3JlKCJ0ZXN0MTIzIiknKTsKICAgICBjaGVja09iamVjdFN0b3JlKCk7Ci0KLSAgICB2YXIg
dHJhbnNhY3Rpb24gPSBldmVudC50YXJnZXQucmVzdWx0OwotICAgIHRyYW5zYWN0aW9uLm9uY29t
cGxldGUgPSB0ZXN0U2V0VmVyc2lvbkFib3J0OwotICAgIHRyYW5zYWN0aW9uLm9uYWJvcnQgPSB1
bmV4cGVjdGVkQWJvcnRDYWxsYmFjazsKIH0KIAogZnVuY3Rpb24gY2hlY2tPYmplY3RTdG9yZSgp
CkBAIC04MywxOSArMzcsMjIgQEAgZnVuY3Rpb24gY2hlY2tPYmplY3RTdG9yZSgpCiAKIGZ1bmN0
aW9uIHRlc3RTZXRWZXJzaW9uQWJvcnQoKQogewotICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCdk
Yi5zZXRWZXJzaW9uKCJ2ZXJzaW9uIGMiKScpOwotICAgIHJlcXVlc3Qub25zdWNjZXNzID0gY3Jl
YXRlQW5vdGhlck9iamVjdFN0b3JlOworICAgIGV2YWxBbmRMb2coImRiLmNsb3NlKCkiKTsKKyAg
ICBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lLCAyKSIpOworICAg
IHJlcXVlc3Qub251cGdyYWRlbmVlZGVkID0gY3JlYXRlQW5vdGhlck9iamVjdFN0b3JlOworICAg
IHJlcXVlc3Qub25ibG9ja2VkID0gdW5leHBlY3RlZEJsb2NrZWRDYWxsYmFjazsKICAgICByZXF1
ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKIH0KIAogZnVuY3Rpb24gY3Jl
YXRlQW5vdGhlck9iamVjdFN0b3JlKCkKIHsKLSAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImRi
LnZlcnNpb24iLCAidmVyc2lvbiBjIik7Ci0gICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJkYi5u
YW1lIiwgImRhdGFiYXNlLWJhc2ljcyIpOworICAgIGV2YWxBbmRMb2coImRiID0gZXZlbnQudGFy
Z2V0LnJlc3VsdCIpOworICAgIHNob3VsZEJlKCJkYi52ZXJzaW9uIiwgIjIiKTsKKyAgICBzaG91
bGRCZUVxdWFsVG9TdHJpbmcoImRiLm5hbWUiLCBkYm5hbWUpOwogICAgIGNoZWNrT2JqZWN0U3Rv
cmUoKTsKIAogICAgIG9iamVjdFN0b3JlID0gZXZhbEFuZExvZygnZGIuY3JlYXRlT2JqZWN0U3Rv
cmUoInRlc3Q0NTYiKScpOwotICAgIHZhciBzZXRWZXJzaW9uVHJhbnMgPSBldmFsQW5kTG9nKCJz
ZXRWZXJzaW9uVHJhbnMgPSBldmVudC50YXJnZXQucmVzdWx0Iik7CisgICAgdmFyIHNldFZlcnNp
b25UcmFucyA9IGV2YWxBbmRMb2coInNldFZlcnNpb25UcmFucyA9IGV2ZW50LnRhcmdldC50cmFu
c2FjdGlvbiIpOwogICAgIHNob3VsZEJlTm9uTnVsbCgic2V0VmVyc2lvblRyYW5zIik7CiAgICAg
c2V0VmVyc2lvblRyYW5zLm9uY29tcGxldGUgPSB1bmV4cGVjdGVkQ29tcGxldGVDYWxsYmFjazsK
ICAgICBzZXRWZXJzaW9uVHJhbnMub25hYm9ydCA9IGNoZWNrTWV0YWRhdGE7CkBAIC0xMDQsNyAr
NjEsNyBAQCBmdW5jdGlvbiBjcmVhdGVBbm90aGVyT2JqZWN0U3RvcmUoKQogCiBmdW5jdGlvbiBj
aGVja01ldGFkYXRhKCkKIHsKLSAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImRiLnZlcnNpb24i
LCAidmVyc2lvbiBiIik7CisgICAgc2hvdWxkQmUoImRiLnZlcnNpb24iLCAiMSIpOwogICAgIGNo
ZWNrT2JqZWN0U3RvcmUoKTsKICAgICB0ZXN0Q2xvc2UoKTsKIH0KQEAgLTExOCw1ICs3NSwzIEBA
IGZ1bmN0aW9uIHRlc3RDbG9zZSgpCiAgICAgZXZhbEFuZExvZygiZGIuY2xvc2UoKSIpOwogICAg
IGZpbmlzaEpTVGVzdCgpOwogfQotCi10ZXN0KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvZGF0YWJhc2UtY2xvc2UuanMgYi9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvZGF0YWJhc2UtY2xvc2UuanMKaW5kZXggMWY1
OGY5ZTcwMGY0Nzk3ZDcxOGVmNjgyZDk3YzNjM2IzMzU5NTUzOS4uNjkxZTU1YmNmMWYxYjc4M2Q1
ZGM4YTU3YzZlYTY0M2YxODNkYjM1NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvcmVzb3VyY2VzL2RhdGFiYXNlLWNsb3NlLmpzCisrKyBiL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9kYXRhYmFzZS1jbG9zZS5qcwpAQCAtNSw0NyArNSwx
MyBAQCBpZiAodGhpcy5pbXBvcnRTY3JpcHRzKSB7CiAKIGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4
ZWREQiAnc3RlcHMgZm9yIGNsb3NpbmcgYSBkYXRhYmFzZSBjb25uZWN0aW9uJyIpOwogCi1mdW5j
dGlvbiB0ZXN0KCkKK2luZGV4ZWREQlRlc3QocHJlcGFyZURhdGFiYXNlLCB0ZXN0Q2xvc2UpOwor
ZnVuY3Rpb24gcHJlcGFyZURhdGFiYXNlKCkKIHsKLSAgICByZW1vdmVWZW5kb3JQcmVmaXhlcygp
OwotCi0gICAgZXZhbEFuZExvZygiZGJuYW1lID0gc2VsZi5sb2NhdGlvbi5wYXRobmFtZSIpOwot
ICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1l
KSIpOwotICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotICAg
IHJlcXVlc3Qub25zdWNjZXNzID0gb3BlbkNvbm5lY3Rpb247Ci19Ci0KLWZ1bmN0aW9uIG9wZW5D
b25uZWN0aW9uKCkKLXsKLSAgICBkZWJ1ZygiIik7Ci0gICAgZGVidWcoIm9wZW5Db25uZWN0aW9u
KCk6Iik7Ci0gICAgZXZhbEFuZExvZygicmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKGRibmFtZSki
KTsKLSAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLSAgICBy
ZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uKCkgewotICAgICAgICBldmFsQW5kTG9nKCJjb25u
ZWN0aW9uID0gcmVxdWVzdC5yZXN1bHQiKTsKLSAgICAgICAgZXZhbEFuZExvZygicmVxdWVzdCA9
IGNvbm5lY3Rpb24uc2V0VmVyc2lvbignMScpIik7Ci0gICAgICAgIHJlcXVlc3Qub25lcnJvciA9
IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotICAgICAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1
bmN0aW9uKCkgewotICAgICAgICAgICAgdHJhbnMgPSByZXF1ZXN0LnJlc3VsdDsKLSAgICAgICAg
ICAgIGV2YWxBbmRMb2coInN0b3JlID0gY29ubmVjdGlvbi5jcmVhdGVPYmplY3RTdG9yZSgnc3Rv
cmUnKSIpOwotICAgICAgICAgICAgZXZhbEFuZExvZygic3RvcmUucHV0KCd2YWx1ZTEnLCAna2V5
MScpIik7Ci0gICAgICAgICAgICBldmFsQW5kTG9nKCJzdG9yZS5wdXQoJ3ZhbHVlMicsICdrZXky
JykiKTsKLSAgICAgICAgICAgIHRyYW5zLm9uYWJvcnQgPSB1bmV4cGVjdGVkQWJvcnRDYWxsYmFj
azsKLSAgICAgICAgICAgIHRyYW5zLm9uY29tcGxldGUgPSBvcGVuVmVyc2lvbkNoYW5nZUNvbm5l
Y3Rpb247Ci0gICAgICAgIH07Ci0gICAgfTsKLX0KLQotZnVuY3Rpb24gb3BlblZlcnNpb25DaGFu
Z2VDb25uZWN0aW9uKCkKLXsKLSAgICBkZWJ1ZygiIik7Ci0gICAgZGVidWcoIm9wZW5WZXJzaW9u
Q2hhbmdlQ29ubmVjdGlvbigpOiIpOwotICAgIGV2YWxBbmRMb2coInJlcXVlc3QgPSBpbmRleGVk
REIub3BlbihkYm5hbWUpIik7Ci0gICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9y
Q2FsbGJhY2s7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBmdW5jdGlvbigpIHsKLSAgICAgICAg
ZXZhbEFuZExvZygidmVyc2lvbl9jaGFuZ2VfY29ubmVjdGlvbiA9IHJlcXVlc3QucmVzdWx0Iik7
Ci0gICAgICAgIHRlc3RDbG9zZSgpOwotICAgIH07CisgICAgY29ubmVjdGlvbiA9IGV2ZW50LnRh
cmdldC5yZXN1bHQ7CisgICAgZXZhbEFuZExvZygic3RvcmUgPSBjb25uZWN0aW9uLmNyZWF0ZU9i
amVjdFN0b3JlKCdzdG9yZScpIik7CisgICAgZXZhbEFuZExvZygic3RvcmUucHV0KCd2YWx1ZTEn
LCAna2V5MScpIik7CisgICAgZXZhbEFuZExvZygic3RvcmUucHV0KCd2YWx1ZTInLCAna2V5Micp
Iik7CiB9CiAKIGZ1bmN0aW9uIHRlc3RDbG9zZSgpCkBAIC03Myw3ICszOSw3IEBAIGZ1bmN0aW9u
IHRlc3RDbG9zZSgpCiAKICAgICAgICAgaWYgKGF3YWl0aW5nX3RyYW5zYWN0aW9uX2NvdW50ID09
IDApIHsKICAgICAgICAgICAgIGRlYnVnKCIiKTsKLSAgICAgICAgICAgIGRlYnVnKCJBbGwgdHJh
bnNhY3Rpb25zIGNvbXBsZXRlZCAtIHZlcnNpb24gY2hhbmdlcyAvIGRhdGFiYXNlIGRlbGV0ZXMg
c2hvdWxkIG5vdyBiZSB1bmJsb2NrZWQuIik7CisgICAgICAgICAgICBkZWJ1ZygiQWxsIHRyYW5z
YWN0aW9ucyBjb21wbGV0ZWQgLSBkYXRhYmFzZSBkZWxldGVzIHNob3VsZCBub3cgYmUgdW5ibG9j
a2VkLiIpOwogICAgICAgICB9CiAgICAgfQogICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJ0cmFu
czEub2JqZWN0U3RvcmUoJ3N0b3JlJykuZ2V0KCdrZXkxJykiKTsKQEAgLTEwMiwxOSArNjgsOSBA
QCBmdW5jdGlvbiB0ZXN0Q2xvc2UoKQogICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oInRyYW5z
MyA9IGNvbm5lY3Rpb24udHJhbnNhY3Rpb24oJ3N0b3JlJykiLCAiRE9NRXhjZXB0aW9uLklOVkFM
SURfU1RBVEVfRVJSIiwgIidJbnZhbGlkU3RhdGVFcnJvciciKTsKIAogICAgIGRlYnVnKCIiKTsK
LSAgICBkZWJ1ZygiTk9URTogT25jZSB0aGUgY29ubmVjdGlvbiBpcyBjbG9zZWQsIHRoaXMgY2Fu
IHVuYmxvY2sgdGhlIHN0ZXBzIGZvciBydW5uaW5nIGEgXCJ2ZXJzaW9uY2hhbmdlXCIgdHJhbnNh
Y3Rpb24sIGFuZCB0aGUgc3RlcHMgZm9yIGRlbGV0aW5nIGEgZGF0YWJhc2UsIHdoaWNoIGJvdGgg
d2FpdCBmb3IgY29ubmVjdGlvbnMgdG8gYSBnaXZlbiBkYXRhYmFzZSB0byBiZSBjbG9zZWQgYmVm
b3JlIGNvbnRpbnVpbmcuIik7CisgICAgZGVidWcoIk5PVEU6IE9uY2UgdGhlIGNvbm5lY3Rpb24g
aXMgY2xvc2VkLCB0aGlzIGNhbiB1bmJsb2NrIHRoZSBzdGVwcyBmb3IgZGVsZXRpbmcgYSBkYXRh
YmFzZSwgd2hpY2ggd2FpdHMgZm9yIGNvbm5lY3Rpb25zIHRvIGEgZ2l2ZW4gZGF0YWJhc2UgdG8g
YmUgY2xvc2VkIGJlZm9yZSBjb250aW51aW5nLiIpOwogICAgIGRlYnVnKCIiKTsKIAotICAgIHJl
cXVlc3QgPSBldmFsQW5kTG9nKCJ2ZXJzaW9uX2NoYW5nZV9jb25uZWN0aW9uLnNldFZlcnNpb24o
JzInKSIpOwotICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwot
ICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24oKSB7Ci0gICAgICAgIGRlYnVnKCIiKTsK
LSAgICAgICAgZGVidWcoInZlcnNpb24gY2hhbmdlIHRyYW5zYWN0aW9uIHVuYmxvY2tlZCIpOwot
ICAgICAgICBzaG91bGRCZSgiYXdhaXRpbmdfdHJhbnNhY3Rpb25fY291bnQiLCAiMCIpOwotICAg
ICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInZlcnNpb25fY2hhbmdlX2Nvbm5lY3Rpb24udmVy
c2lvbiIsICIyIik7Ci0gICAgICAgIGV2YWxBbmRMb2coInZlcnNpb25fY2hhbmdlX2Nvbm5lY3Rp
b24uY2xvc2UoKSIpOwotICAgIH07Ci0KICAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhl
ZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkiKTsKICAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4
cGVjdGVkRXJyb3JDYWxsYmFjazsKICAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uKCkg
ewpAQCAtMTI0LDUgKzgwLDMgQEAgZnVuY3Rpb24gdGVzdENsb3NlKCkKICAgICAgICAgZmluaXNo
SlNUZXN0KCk7CiAgICAgfTsKIH0KLQotdGVzdCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2RhdGFiYXNlLWNsb3NlcGVuZGluZy1mbGFnLmpz
IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2RhdGFiYXNlLWNsb3Nl
cGVuZGluZy1mbGFnLmpzCmluZGV4IDRiMTBiMDFjZDdlMDcxNDUzMjVlOTE5NWY0MGZkN2ZlMDU4
N2IwYjUuLjkxYzkwNGIwNTRhMDc2NTI2YzZlODg1MWUwZDkwZDdhM2MzMGYxYzAgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9kYXRhYmFzZS1jbG9z
ZXBlbmRpbmctZmxhZy5qcworKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNv
dXJjZXMvZGF0YWJhc2UtY2xvc2VwZW5kaW5nLWZsYWcuanMKQEAgLTUsMzMgKzUsMTIgQEAgaWYg
KHRoaXMuaW1wb3J0U2NyaXB0cykgewogCiBkZXNjcmlwdGlvbigiVGVzdCBJbmRleGVkREIgSURC
RGF0YWJhc2UgaW50ZXJuYWwgY2xvc2VQZW5kaW5nIGZsYWciKTsKIAotZnVuY3Rpb24gdGVzdCgp
CitpbmRleGVkREJUZXN0KHByZXBhcmVEYXRhYmFzZSwgdGVzdERhdGFiYXNlQ2xvc2luZ1N0ZXBz
KTsKK2Z1bmN0aW9uIHByZXBhcmVEYXRhYmFzZSgpCiB7Ci0gICAgcmVtb3ZlVmVuZG9yUHJlZml4
ZXMoKTsKLQotICAgIGV2YWxBbmRMb2coImRibmFtZSA9IHNlbGYubG9jYXRpb24ucGF0aG5hbWUi
KTsKLSAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRi
bmFtZSkiKTsKLSAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsK
LSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IG9wZW5Db25uZWN0aW9uOwotfQotCi1mdW5jdGlvbiBv
cGVuQ29ubmVjdGlvbigpCi17Ci0gICAgZGVidWcoIiIpOwotICAgIGRlYnVnKCJvcGVuQ29ubmVj
dGlvbigpOiIpOwotICAgIGV2YWxBbmRMb2coInJlcXVlc3QgPSBpbmRleGVkREIub3BlbihkYm5h
bWUpIik7Ci0gICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci0g
ICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBmdW5jdGlvbigpIHsKLSAgICAgICAgZXZhbEFuZExvZygi
Y29ubmVjdGlvbiA9IHJlcXVlc3QucmVzdWx0Iik7Ci0gICAgICAgIGV2YWxBbmRMb2coInJlcXVl
c3QgPSBjb25uZWN0aW9uLnNldFZlcnNpb24oJzEnKSIpOwotICAgICAgICByZXF1ZXN0Lm9uZXJy
b3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLSAgICAgICAgcmVxdWVzdC5vbnN1Y2Nlc3Mg
PSBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIHRyYW5zID0gcmVxdWVzdC5yZXN1bHQ7Ci0gICAg
ICAgICAgICBldmFsQW5kTG9nKCJzdG9yZSA9IGNvbm5lY3Rpb24uY3JlYXRlT2JqZWN0U3RvcmUo
J3N0b3JlJykiKTsKLSAgICAgICAgICAgIHRyYW5zLm9uYWJvcnQgPSB1bmV4cGVjdGVkQWJvcnRD
YWxsYmFjazsKLSAgICAgICAgICAgIHRyYW5zLm9uY29tcGxldGUgPSB0ZXN0RGF0YWJhc2VDbG9z
aW5nU3RlcHM7Ci0gICAgICAgIH07Ci0gICAgfTsKKyAgICBjb25uZWN0aW9uID0gZXZlbnQudGFy
Z2V0LnJlc3VsdDsKKyAgICBldmVudC50YXJnZXQudHJhbnNhY3Rpb24ub25hYm9ydCA9IHVuZXhw
ZWN0ZWRBYm9ydENhbGxiYWNrOworICAgIGV2YWxBbmRMb2coInN0b3JlID0gY29ubmVjdGlvbi5j
cmVhdGVPYmplY3RTdG9yZSgnc3RvcmUnKSIpOwogfQogCiBmdW5jdGlvbiB0ZXN0RGF0YWJhc2VD
bG9zaW5nU3RlcHMoKQpAQCAtNjYsMjUgKzQ1LDIyIEBAIGZ1bmN0aW9uIHRlc3RJREJEYXRhYmFz
ZU9iamVjdFN0b3JlTmFtZXMoKQogICAgIGRlYnVnKCJJREJEYXRhYmFzZS5vYmplY3RTdG9yZU5h
bWVzOiIpOwogICAgIGRlYnVnKCJcIk9uY2UgdGhlIGNsb3NlUGVuZGluZyBmbGFnIGlzIHNldCBv
biB0aGUgY29ubmVjdGlvbiwgdGhpcyBmdW5jdGlvbiBtdXN0IHJldHVybiBhIHNuYXBzaG90IG9m
IHRoZSBsaXN0IG9mIG5hbWVzIG9mIHRoZSBvYmplY3Qgc3RvcmVzIHRha2VuIGF0IHRoZSB0aW1l
IHdoZW4gdGhlIGNsb3NlIG1ldGhvZCB3YXMgY2FsbGVkLlwiIik7CiAKLSAgICBldmFsQW5kTG9n
KCJyZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lKSIpOworICAgIGV2YWxBbmRMb2coInJl
cXVlc3QgPSBpbmRleGVkREIub3BlbihkYm5hbWUsIDIpIik7CisgICAgcmVxdWVzdC5vbmJsb2Nr
ZWQgPSB1bmV4cGVjdGVkQmxvY2tlZENhbGxiYWNrOwogICAgIHJlcXVlc3Qub25lcnJvciA9IHVu
ZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24o
KSB7CisgICAgcmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAg
IGV2YWxBbmRMb2coInZlcnNpb25fY2hhbmdlX2Nvbm5lY3Rpb24gPSByZXF1ZXN0LnJlc3VsdCIp
OwotICAgICAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygidmVyc2lvbl9jaGFuZ2VfY29ubmVjdGlv
bi5zZXRWZXJzaW9uKCcyJykiKTsKLSAgICAgICAgLy8gRklYTUU6IFNob3VsZCB2ZXJpZnkgJ2Js
b2NrZWQnIG5vdCBmaXJlZC4gaHR0cDovL3dlYmtpdC5vcmcvYi83MTEzMAotICAgICAgICByZXF1
ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLSAgICAgICAgcmVxdWVzdC5v
bnN1Y2Nlc3MgPSBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICB2YXIgdHJhbnNhY3Rpb24gPSBy
ZXF1ZXN0LnJlc3VsdDsKLSAgICAgICAgICAgIGV2YWxBbmRMb2coInZlcnNpb25fY2hhbmdlX2Nv
bm5lY3Rpb24uY3JlYXRlT2JqZWN0U3RvcmUoJ25ld19zdG9yZScpIik7Ci0gICAgICAgICAgICB0
cmFuc2FjdGlvbi5vbmNvbXBsZXRlID0gZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgICAgIHNo
b3VsZEJlVHJ1ZSgidmVyc2lvbl9jaGFuZ2VfY29ubmVjdGlvbi5vYmplY3RTdG9yZU5hbWVzLmNv
bnRhaW5zKCduZXdfc3RvcmUnKSIpOwotICAgICAgICAgICAgICAgIHNob3VsZEJlRmFsc2UoImNv
bm5lY3Rpb24ub2JqZWN0U3RvcmVOYW1lcy5jb250YWlucygnbmV3X3N0b3JlJykiKTsKLSAgICAg
ICAgICAgICAgICBldmFsQW5kTG9nKCJ2ZXJzaW9uX2NoYW5nZV9jb25uZWN0aW9uLmNsb3NlKCki
KTsKLQotICAgICAgICAgICAgICAgIHRlc3RJREJEYXRhYmFzZVRyYW5zYWN0aW9uKCk7Ci0gICAg
ICAgICAgICB9OworICAgICAgICB2YXIgdHJhbnNhY3Rpb24gPSByZXF1ZXN0LnRyYW5zYWN0aW9u
OworICAgICAgICBldmFsQW5kTG9nKCJ2ZXJzaW9uX2NoYW5nZV9jb25uZWN0aW9uLmNyZWF0ZU9i
amVjdFN0b3JlKCduZXdfc3RvcmUnKSIpOworICAgICAgICB0cmFuc2FjdGlvbi5vbmNvbXBsZXRl
ID0gZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCJ2ZXJzaW9uX2NoYW5n
ZV9jb25uZWN0aW9uLm9iamVjdFN0b3JlTmFtZXMuY29udGFpbnMoJ25ld19zdG9yZScpIik7Cisg
ICAgICAgICAgICBzaG91bGRCZUZhbHNlKCJjb25uZWN0aW9uLm9iamVjdFN0b3JlTmFtZXMuY29u
dGFpbnMoJ25ld19zdG9yZScpIik7CiAgICAgICAgIH07CiAgICAgfTsKKyAgICByZXF1ZXN0Lm9u
c3VjY2VzcyA9IGZ1bmN0aW9uKCkgeworICAgICAgICBldmFsQW5kTG9nKCJ2ZXJzaW9uX2NoYW5n
ZV9jb25uZWN0aW9uLmNsb3NlKCkiKTsKKyAgICAgICAgdGVzdElEQkRhdGFiYXNlVHJhbnNhY3Rp
b24oKTsKKyAgICB9CiB9CiAKIGZ1bmN0aW9uIHRlc3RJREJEYXRhYmFzZVRyYW5zYWN0aW9uKCkK
QEAgLTEyMCwyNSArOTYsMjAgQEAgZnVuY3Rpb24gdGVzdFZlcnNpb25DaGFuZ2VUcmFuc2FjdGlv
blN0ZXBzKCkKICAgICAgICAgfQogICAgICAgICBidXN5KCk7CiAKLSAgICAgICAgZXZhbEFuZExv
ZygicmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKGRibmFtZSkiKTsKKyAgICAgICAgZXZhbEFuZExv
ZygicmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKGRibmFtZSwgMykiKTsKICAgICAgICAgcmVxdWVz
dC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci0gICAgICAgIHJlcXVlc3Qub25z
dWNjZXNzID0gZnVuY3Rpb24oKSB7CisgICAgICAgIHJlcXVlc3Qub25ibG9ja2VkID0gZnVuY3Rp
b24gKCkgeworICAgICAgICAgICAgZGVidWcoIidibG9ja2VkJyBldmVudCBmaXJlZCwgbGV0dGlu
ZyB0cmFuc2FjdGlvbiBjb21wbGV0ZSBhbmQgY29ubmVjdGlvbiBjbG9zZSIpOworICAgICAgICAg
ICAga2VlcFRyYW5zYWN0aW9uQnVzeSA9IGZhbHNlOworICAgICAgICB9OworICAgICAgICByZXF1
ZXN0Lm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgZXZhbEFuZExv
ZygidmVyc2lvbl9jaGFuZ2VfY29ubmVjdGlvbiA9IHJlcXVlc3QucmVzdWx0Iik7Ci0gICAgICAg
ICAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygidmVyc2lvbl9jaGFuZ2VfY29ubmVjdGlvbi5zZXRW
ZXJzaW9uKCczJykiKTsKLSAgICAgICAgICAgIHJlcXVlc3Qub25ibG9ja2VkID0gZnVuY3Rpb24g
KCkgewotICAgICAgICAgICAgICAgIGRlYnVnKCInYmxvY2tlZCcgZXZlbnQgZmlyZWQsIGxldHRp
bmcgdHJhbnNhY3Rpb24gY29tcGxldGUgYW5kIGNvbm5lY3Rpb24gY2xvc2UiKTsKLSAgICAgICAg
ICAgICAgICBrZWVwVHJhbnNhY3Rpb25CdXN5ID0gZmFsc2U7Ci0gICAgICAgICAgICB9OworICAg
ICAgICAgICAgc2hvdWxkQmVGYWxzZSgidmVyc2lvbkNoYW5nZVdhc0ZpcmVkIik7CiAgICAgICAg
ICAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLSAgICAgICAg
ICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgICAgIHNo
b3VsZEJlRmFsc2UoInZlcnNpb25DaGFuZ2VXYXNGaXJlZCIpOwotICAgICAgICAgICAgICAgIHZh
ciB0cmFuc2FjdGlvbiA9IHJlcXVlc3QucmVzdWx0OwotICAgICAgICAgICAgICAgIHRyYW5zYWN0
aW9uLm9uY29tcGxldGUgPSBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICAgICAgICAgIHJlcXVl
c3QgPSBldmFsQW5kTG9nKCJ2ZXJzaW9uX2NoYW5nZV9jb25uZWN0aW9uLmNsb3NlKCkiKTsKLQot
ICAgICAgICAgICAgICAgICAgICB0ZXN0RGF0YWJhc2VEZWxldGlvbigpOwotICAgICAgICAgICAg
ICAgIH07Ci0gICAgICAgICAgICB9OworICAgICAgICB9OworICAgICAgICByZXF1ZXN0Lm9uc3Vj
Y2VzcyA9IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIGV2YWxBbmRMb2coInZlcnNpb25fY2hh
bmdlX2Nvbm5lY3Rpb24uY2xvc2UoKSIpOworICAgICAgICAgICAgdGVzdERhdGFiYXNlRGVsZXRp
b24oKTsKICAgICAgICAgfTsKICAgICB9OwogfQpAQCAtMTc4LDUgKzE0OSwzIEBAIGZ1bmN0aW9u
IHRlc3REYXRhYmFzZURlbGV0aW9uKCkKICAgICAgICAgfTsKICAgICB9OwogfQotCi10ZXN0KCk7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvZGVs
ZXRlLWNsb3NlZC1kYXRhYmFzZS1vYmplY3QuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9yZXNvdXJjZXMvZGVsZXRlLWNsb3NlZC1kYXRhYmFzZS1vYmplY3QuanMKaW5kZXggNWQz
MjlhMmI3YTNiNzBjMDdlMWZmZjhiNmQ2ZWJhMThkMjg0MDNiOC4uNzVmZTUwMTVhNzAxMTVmMzA5
NDEzODIyZGQ3ZDJkODNjY2U2NGFkOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvcmVzb3VyY2VzL2RlbGV0ZS1jbG9zZWQtZGF0YWJhc2Utb2JqZWN0LmpzCisrKyBi
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9kZWxldGUtY2xvc2VkLWRh
dGFiYXNlLW9iamVjdC5qcwpAQCAtNSw0NSArNSwyNSBAQCBpZiAodGhpcy5pbXBvcnRTY3JpcHRz
KSB7CiAKIGRlc2NyaXB0aW9uKCJFbnN1cmUgdGhhdCBJREJEYXRhYmFzZSBvYmplY3RzIGFyZSBk
ZWxldGVkIHdoZW4gdGhlcmUgYXJlIG5vIHJldGFpbmluZyBwYXRocyBsZWZ0Iik7CiAKLWZ1bmN0
aW9uIHRlc3QoKSB7Ci0gICAgcmVtb3ZlVmVuZG9yUHJlZml4ZXMoKTsKLSAgICBvcGVuREJDb25u
ZWN0aW9uKCk7Ci19Ci0KLWZ1bmN0aW9uIG9wZW5EQkNvbm5lY3Rpb24oKQoraW5kZXhlZERCVGVz
dChwcmVwYXJlRGF0YWJhc2UsIG9wZW5TdWNjZXNzKTsKK2Z1bmN0aW9uIHByZXBhcmVEYXRhYmFz
ZSgpCiB7Ci0gICAgZXZhbEFuZExvZygic2VsZi5zdGF0ZSA9ICdzdGFydGluZyciKTsKLSAgICBy
ZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLm9wZW4oJ2RlbGV0ZS1jbG9zZWQtZGF0YWJh
c2Utb2JqZWN0JykiKTsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IG9wZW5TdWNjZXNzOwotICAg
IHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwogfQogCiBmdW5jdGlv
biBvcGVuU3VjY2VzcygpCiB7Ci0gICAgc2VsZi5kYiA9IGV2YWxBbmRMb2coImRiID0gZXZlbnQu
dGFyZ2V0LnJlc3VsdCIpOwotCi0gICAgLy8gT3BlbiBhIHNlY29uZCBjb25uZWN0aW9uIHRvIHRo
ZSBzYW1lIGRhdGFiYXNlLgotICAgIHZhciByZXF1ZXN0MiA9IGV2YWxBbmRMb2coImluZGV4ZWRE
Qi5vcGVuKCdkZWxldGUtY2xvc2VkLWRhdGFiYXNlLW9iamVjdCcpIik7Ci0gICAgcmVxdWVzdDIu
b25zdWNjZXNzID0gb3BlblN1Y2Nlc3MyOwotICAgIHJlcXVlc3QyLm9uZXJyb3IgPSB1bmV4cGVj
dGVkRXJyb3JDYWxsYmFjazsKLX0KLQotZnVuY3Rpb24gb3BlblN1Y2Nlc3MyKCkKLXsKLSAgICBk
ZWJ1ZygiU2Vjb25kIGNvbm5lY3Rpb24gc3VjY2Vzc2Z1bGx5IGVzdGFibGlzaGVkLiIpOworICAg
IGRlYnVnKCJDb25uZWN0aW9uIHN1Y2Nlc3NmdWxseSBlc3RhYmxpc2hlZC4iKTsKICAgICAvLyBB
ZnRlciBsZWF2aW5nIHRoaXMgZnVuY3Rpb24sIHRoZXJlIGFyZSBubyByZW1haW5pbmcgcmVmZXJl
bmNlcyB0byB0aGUKLSAgICAvLyBzZWNvbmQgY29ubmVjdGlvbiwgc28gaXQgc2hvdWxkIGdldCBk
ZWxldGVkLgorICAgIC8vIGRiLCBzbyBpdCBzaG91bGQgZ2V0IGRlbGV0ZWQuCiAgICAgc2V0VGlt
ZW91dChzZXRWZXJzaW9uLCAyKTsKIH0KIAogZnVuY3Rpb24gc2V0VmVyc2lvbigpCiB7CiAgICAg
Z2MoKTsKLSAgICBkZWJ1ZygiY2FsbGluZyBzZXRWZXJzaW9uKCkgLSBjYWxsYmFjayBzaG91bGQg
cnVuIGltbWVkaWF0ZWx5Iik7Ci0gICAgdmFyIHZlcnNpb25DaGFuZ2VSZXF1ZXN0ID0gZXZhbEFu
ZExvZygiZGIuc2V0VmVyc2lvbigndmVyc2lvbiAxJykiKTsKLSAgICB2ZXJzaW9uQ2hhbmdlUmVx
dWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci0gICAgdmVyc2lvbkNoYW5n
ZVJlcXVlc3Qub25ibG9ja2VkID0gdW5leHBlY3RlZEJsb2NrZWRDYWxsYmFjazsKLSAgICB2ZXJz
aW9uQ2hhbmdlUmVxdWVzdC5vbnN1Y2Nlc3MgPSBmaW5pc2hKU1Rlc3Q7CisgICAgZGVidWcoIk9w
ZW4gcmVxdWVzdCBzaG91bGQgbm90IHJlY2VpdmUgYSBibG9ja2VkIGV2ZW50OiIpOworICAgIHZh
ciByZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLm9wZW4oZGJuYW1lLCAyKSIpOworICAg
IHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworICAgIHJlcXVlc3Qu
b25ibG9ja2VkID0gdW5leHBlY3RlZEJsb2NrZWRDYWxsYmFjazsKKyAgICByZXF1ZXN0Lm9uc3Vj
Y2VzcyA9IGZpbmlzaEpTVGVzdDsKIH0KLQotdGVzdCgpOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9m
IGZpbGUK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>174016</attachid>
            <date>2012-11-13 15:51:29 -0800</date>
            <delta_ts>2012-11-13 21:04:23 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101998-20121113154930.patch</filename>
            <type>text/plain</type>
            <size>26878</size>
            <attacher name="David Grogan">dgrogan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0NDM4CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYTQxYTE5NDUyMjI4MThhZjRkYjhk
NTQzNDliMzY3MDIxOGU2MzU5Yi4uYmZlMzA2ZTdlNTIxOTJlYzliZTRlMzc2MTVkM2Y5NzZiYTM3
MGYxMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDEyLTExLTEyICBEYXZpZCBHcm9nYW4gIDxk
Z3JvZ2FuQGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IG5vbi10cml2aWFsIHRl
c3QgY29udmVyc2lvbiBiYXRjaCAyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMDE5OTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1vdmVybG9hZHMtZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1vdmVybG9hZHMuaHRt
bDoKKyAgICAgICAgICBUcml2aWFsIGNvbnZlcnNpb24gdGhhdCBJIG1pc3NlZCBsYXN0IHRpbWUg
YXJvdW5kLgorCisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvZGF0YWJhc2UtYmFzaWNzLWV4
cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9kYXRhYmFzZS1jbG9zZS1l
eHBlY3RlZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvZGF0YWJhc2UtY2xvc2Vw
ZW5kaW5nLWZsYWctZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2Rl
bGV0ZS1jbG9zZWQtZGF0YWJhc2Utb2JqZWN0LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdG9y
YWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvZGF0YWJhc2UtYmFzaWNzLmpzOgorICAgICAgICAgIFJl
bW92ZWQgdGVzdCB0aGF0IHNob3dzIGNhbGxpbmcgc2V0VmVyc2lvbiBpbnNpZGUgYSB2ZXJzaW9u
IGNoYW5nZQorICAgICAgICAgIHRyYW5zYWN0aW9uIGlzIGFuIGVycm9yLiBSZXBsYWNlZCB3aXRo
IHRlc3Qgc2hvd2luZyBzYW1lIGVycm9yIGZvciBhCisgICAgICAgICAgZ2VuZXJpYyB0cmFuc2Fj
dGlvbi4KKworICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9kYXRhYmFzZS1j
bG9zZS5qczoKKyAgICAgICAgICBGb3JtZXJseSB1c2VkIGJvdGggdW5ibG9ja2VkIHNldFZlcnNp
b24gYW5kIGRlbGV0ZURhdGFiYXNlIHRvIHNpZ25hbAorICAgICAgICAgIHRoYXQgYSBjb25uZWN0
aW9uIHdhcyBjbG9zZWQsIG5vdyBqdXN0IHVzZWQgZGVsZXRlRGF0YWJhc2UuCisKKyAgICAgICAg
KiBzdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvZGF0YWJhc2UtY2xvc2VwZW5kaW5nLWZsYWcu
anM6CisgICAgICAgICAgU3RyYWlnaHRmb3J3YXJkLCBpdCBqdXN0IGhhcyBtdWx0aXBsZSBvcGVu
cy4KKwogMjAxMi0xMS0xMyAgRXJpayBBcnZpZHNzb24gIDxhcnZAY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIFVwZGF0ZSBET01FeGNlcHRpb24gbmFtZTogSGllcmFyY2h5UmVxdWVzdEVycm9yCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3Itb3ZlcmxvYWRz
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1vdmVy
bG9hZHMtZXhwZWN0ZWQudHh0CmluZGV4IGM0ODBjNGQzODA4NDgzMDllNTdiNjc1MjkwMzg3N2M3
ZmFlMjFkMzUuLjM4ODA5ZDNjZGMxODA4ODZiOGU4Y2M4ZGIzYTVjMDE3MDdjYmJkMzkgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1vdmVybG9hZHMtZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1vdmVy
bG9hZHMtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsMyBAQAotQ09OU09MRSBNRVNTQUdFOiBUaGUg
c2V0VmVyc2lvbigpIG1ldGhvZCBpcyBub24tc3RhbmRhcmQgYW5kIHdpbGwgYmUgcmVtb3ZlZC4g
VXNlIHRoZSAidXBncmFkZW5lZWRlZCIgZXZlbnQgaW5zdGVhZC4KIENPTlNPTEUgTUVTU0FHRTog
TnVtZXJpYyBkaXJlY3Rpb24gdmFsdWVzIGFyZSBkZXByZWNhdGVkIGluIG9wZW5DdXJzb3IgYW5k
IG9wZW5LZXlDdXJzb3IuIFVzZSAibmV4dCIsICJuZXh0dW5pcXVlIiwgInByZXYiLCBvciAicHJl
dnVuaXF1ZSIuCiBDT05TT0xFIE1FU1NBR0U6IE51bWVyaWMgZGlyZWN0aW9uIHZhbHVlcyBhcmUg
ZGVwcmVjYXRlZCBpbiBvcGVuQ3Vyc29yIGFuZCBvcGVuS2V5Q3Vyc29yLiBVc2UgIm5leHQiLCAi
bmV4dHVuaXF1ZSIsICJwcmV2Iiwgb3IgInByZXZ1bmlxdWUiLgogQ09OU09MRSBNRVNTQUdFOiBO
dW1lcmljIGRpcmVjdGlvbiB2YWx1ZXMgYXJlIGRlcHJlY2F0ZWQgaW4gb3BlbkN1cnNvciBhbmQg
b3BlbktleUN1cnNvci4gVXNlICJuZXh0IiwgIm5leHR1bmlxdWUiLCAicHJldiIsIG9yICJwcmV2
dW5pcXVlIi4KQEAgLTMwLDEyICsyOSw5IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiAKIGlu
ZGV4ZWREQiA9IHNlbGYuaW5kZXhlZERCIHx8IHNlbGYud2Via2l0SW5kZXhlZERCIHx8IHNlbGYu
bW96SW5kZXhlZERCIHx8IHNlbGYubXNJbmRleGVkREIgfHwgc2VsZi5PSW5kZXhlZERCOwogCi1k
Ym5hbWUgPSAnY3Vyc29yLW92ZXJsb2FkcycKK2RibmFtZSA9ICJjdXJzb3Itb3ZlcmxvYWRzLmh0
bWwiCiBpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQogaW5kZXhlZERCLm9wZW4oZGJu
YW1lKQotZGIgPSByZXF1ZXN0LnJlc3VsdAotUEFTUyBkYi52ZXJzaW9uIGlzIDEKLWRiLnNldFZl
cnNpb24oJzEnKQogc3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgnc3RvcmUnKQogaW5kZXgg
PSBzdG9yZS5jcmVhdGVJbmRleCgnaW5kZXgnLCAndmFsdWUnKQogc3RvcmUucHV0KHt2YWx1ZTog
MH0sIDApCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3It
b3ZlcmxvYWRzLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3Itb3Zl
cmxvYWRzLmh0bWwKaW5kZXggYjQzYTMxMDc2MjQwYzVhYmUwMDE0Y2JkMGQ5OWFhMTIzM2U1YWJj
Zi4uNzY3NGRjMjg5ZGYyZDI2MDdjZGUwOTNmMTY4YjRiMTVjN2QwODgyZSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLW92ZXJsb2Fkcy5odG1sCisrKyBi
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1vdmVybG9hZHMuaHRtbApAQCAt
NCwzNSArNCwxNCBAQAogPHNjcmlwdD4KIGRlc2NyaXB0aW9uKCJWYWxpZGF0ZSB0aGUgb3Zlcmxv
YWRzIG9mIElEQk9iamVjdFN0b3JlLm9wZW5DdXJzb3IoKSwgSURCSW5kZXgub3BlbkN1cnNvcigp
IGFuZCBJREJJbmRleC5vcGVuS2V5Q3Vyc29yKCkuIik7CiAKLWZ1bmN0aW9uIHRlc3QoKQotewot
ICAgIHJlbW92ZVZlbmRvclByZWZpeGVzKCk7Ci0gICAgcHJlcGFyZURhdGFiYXNlKCk7Ci19Ci0K
K2luZGV4ZWREQlRlc3QocHJlcGFyZURhdGFiYXNlLCB2ZXJpZnlPdmVybG9hZHMpOwogZnVuY3Rp
b24gcHJlcGFyZURhdGFiYXNlKCkKIHsKLSAgICBldmFsQW5kTG9nKCJkYm5hbWUgPSAnY3Vyc29y
LW92ZXJsb2FkcyciKTsKLSAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLmRlbGV0
ZURhdGFiYXNlKGRibmFtZSkiKTsKLSAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJy
b3JDYWxsYmFjazsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKLSAgICAg
ICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4ZWREQi5vcGVuKGRibmFtZSkiKTsKLSAgICAg
ICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci0gICAgICAgIHJl
cXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgZXZhbEFuZExvZygi
ZGIgPSByZXF1ZXN0LnJlc3VsdCIpOwotICAgICAgICAgICAgc2hvdWxkQmUoImRiLnZlcnNpb24i
LCAnMScpOwotICAgICAgICAgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImRiLnNldFZlcnNpb24o
JzEnKSIpOwotICAgICAgICAgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2Fs
bGJhY2s7Ci0gICAgICAgICAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKLSAg
ICAgICAgICAgICAgICB0cmFucyA9IHJlcXVlc3QucmVzdWx0OwotICAgICAgICAgICAgICAgIGV2
YWxBbmRMb2coInN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3JlJykiKTsKLSAgICAg
ICAgICAgICAgICBldmFsQW5kTG9nKCJpbmRleCA9IHN0b3JlLmNyZWF0ZUluZGV4KCdpbmRleCcs
ICd2YWx1ZScpIik7Ci0gICAgICAgICAgICAgICAgZXZhbEFuZExvZygic3RvcmUucHV0KHt2YWx1
ZTogMH0sIDApIik7Ci0gICAgICAgICAgICAgICAgdHJhbnMub25jb21wbGV0ZSA9IHZlcmlmeU92
ZXJsb2FkczsKLQotICAgICAgICAgICAgfTsKLSAgICAgICAgfTsKLSAgICB9OworICAgIGRiID0g
ZXZlbnQudGFyZ2V0LnJlc3VsdDsKKyAgICBldmVudC50YXJnZXQudHJhbnNhY3Rpb24ub25hYm9y
dCA9IHVuZXhwZWN0ZWRBYm9ydENhbGxiYWNrOworICAgIGV2YWxBbmRMb2coInN0b3JlID0gZGIu
Y3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3JlJykiKTsKKyAgICBldmFsQW5kTG9nKCJpbmRleCA9IHN0
b3JlLmNyZWF0ZUluZGV4KCdpbmRleCcsICd2YWx1ZScpIik7CisgICAgZXZhbEFuZExvZygic3Rv
cmUucHV0KHt2YWx1ZTogMH0sIDApIik7CiB9CiAKIGZ1bmN0aW9uIHZlcmlmeU92ZXJsb2Fkcygp
CkBAIC0xMjMsNyArMTAyLDUgQEAgZnVuY3Rpb24gY2hlY2tDdXJzb3JEaXJlY3Rpb24oc3RhdGVt
ZW50LCBkaXJlY3Rpb24pCiAgICAgfTsKIH0KIAotdGVzdCgpOwotCiA8L3NjcmlwdD4KIDxzY3Jp
cHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZGF0YWJhc2UtYmFz
aWNzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2RhdGFiYXNl
LWJhc2ljcy1leHBlY3RlZC50eHQKaW5kZXggMzRiMWRlMjkxN2ZjNWZjNjBmNWI1MDU3ODM5NmVm
MjJmNGUwNDc1Zi4uZTllYWJiMTJjZWNkNmMzOTk4MzI4YThmOGU2OWE5ZjlhOGM2NmUyMiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZGF0YWJhc2UtYmFzaWNzLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9kYXRhYmFzZS1i
YXNpY3MtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsMyBAQAotQ09OU09MRSBNRVNTQUdFOiBUaGUg
c2V0VmVyc2lvbigpIG1ldGhvZCBpcyBub24tc3RhbmRhcmQgYW5kIHdpbGwgYmUgcmVtb3ZlZC4g
VXNlIHRoZSAidXBncmFkZW5lZWRlZCIgZXZlbnQgaW5zdGVhZC4KIFRlc3QgdGhlIGJhc2ljcyBv
ZiBJbmRleGVkREIncyBJREJEYXRhYmFzZS4KIAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgpA
QCAtNiwyMCArNSwxNiBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogCiBpbmRleGVkREIgPSBz
ZWxmLmluZGV4ZWREQiB8fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8fCBzZWxmLm1vekluZGV4ZWRE
QiB8fCBzZWxmLm1zSW5kZXhlZERCIHx8IHNlbGYuT0luZGV4ZWREQjsKIAotaW5kZXhlZERCLm9w
ZW4oJ2RhdGFiYXNlLWJhc2ljcycpCi1kYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQKLWRiLnNldFZl
cnNpb24oJ25ldyB2ZXJzaW9uJykKLURlbGV0ZWQgYWxsIG9iamVjdCBzdG9yZXMuCi1zZXRWZXJz
aW9uU3VjY2VzcygpOgotVGVzdGluZyBzZXRWZXJzaW9uLgotcmVxdWVzdCA9IGRiLnNldFZlcnNp
b24oInZlcnNpb24gYSIpCi1FeHBlY3RpbmcgZXhjZXB0aW9uIGZyb20gZGIuc2V0VmVyc2lvbigi
dmVyc2lvbiBiIikKK2RibmFtZSA9ICJkYXRhYmFzZS1iYXNpY3MuaHRtbCIKK2luZGV4ZWREQi5k
ZWxldGVEYXRhYmFzZShkYm5hbWUpCitpbmRleGVkREIub3BlbihkYm5hbWUpCitUZXN0IHRoYXQg
eW91IGNhbid0IG9wZW4gYSB0cmFuc2FjdGlvbiB3aGlsZSBpbiBhIHZlcnNpb25jaGFuZ2UgdHJh
bnNhY3Rpb24KK0V4cGVjdGluZyBleGNlcHRpb24gZnJvbSBkYi50cmFuc2FjdGlvbigiZG9lc250
RXhpc3QiKQogUEFTUyBFeGNlcHRpb24gd2FzIHRocm93bi4KIFBBU1MgY29kZSBpcyBET01FeGNl
cHRpb24uSU5WQUxJRF9TVEFURV9FUlIKIFBBU1MgZW5hbWUgaXMgJ0ludmFsaWRTdGF0ZUVycm9y
JwotZGIuc2V0VmVyc2lvbigidmVyc2lvbiBiIikKLVBBU1MgZGIudmVyc2lvbiBpcyAidmVyc2lv
biBiIgotUEFTUyBkYi5uYW1lIGlzICJkYXRhYmFzZS1iYXNpY3MiCitQQVNTIGRiLnZlcnNpb24g
aXMgMQorUEFTUyBkYi5uYW1lIGlzICJkYXRhYmFzZS1iYXNpY3MuaHRtbCIKIFBBU1MgZGIub2Jq
ZWN0U3RvcmVOYW1lcyBpcyBbXQogUEFTUyBkYi5vYmplY3RTdG9yZU5hbWVzLmxlbmd0aCBpcyAw
CiBQQVNTIGRiLm9iamVjdFN0b3JlTmFtZXMuY29udGFpbnMoJycpIGlzIGZhbHNlCkBAIC0zMSwx
OCArMjYsMjEgQEAgUEFTUyBkYi5vYmplY3RTdG9yZU5hbWVzLmxlbmd0aCBpcyAxCiBQQVNTIGRi
Lm9iamVjdFN0b3JlTmFtZXMuY29udGFpbnMoJycpIGlzIGZhbHNlCiBQQVNTIGRiLm9iamVjdFN0
b3JlTmFtZXMuY29udGFpbnMoJ3Rlc3Q0NTYnKSBpcyBmYWxzZQogUEFTUyBkYi5vYmplY3RTdG9y
ZU5hbWVzLmNvbnRhaW5zKCd0ZXN0MTIzJykgaXMgdHJ1ZQotZGIuc2V0VmVyc2lvbigidmVyc2lv
biBjIikKLVBBU1MgZGIudmVyc2lvbiBpcyAidmVyc2lvbiBjIgotUEFTUyBkYi5uYW1lIGlzICJk
YXRhYmFzZS1iYXNpY3MiCitkYi5jbG9zZSgpCityZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJu
YW1lLCAyKQorZGIgPSBldmVudC50YXJnZXQucmVzdWx0CitQQVNTIGRiLnZlcnNpb24gaXMgMgor
UEFTUyBkYi5uYW1lIGlzICJkYXRhYmFzZS1iYXNpY3MuaHRtbCIKIFBBU1MgZGIub2JqZWN0U3Rv
cmVOYW1lcyBpcyBbJ3Rlc3QxMjMnXQogUEFTUyBkYi5vYmplY3RTdG9yZU5hbWVzLmxlbmd0aCBp
cyAxCiBQQVNTIGRiLm9iamVjdFN0b3JlTmFtZXMuY29udGFpbnMoJycpIGlzIGZhbHNlCiBQQVNT
IGRiLm9iamVjdFN0b3JlTmFtZXMuY29udGFpbnMoJ3Rlc3Q0NTYnKSBpcyBmYWxzZQogUEFTUyBk
Yi5vYmplY3RTdG9yZU5hbWVzLmNvbnRhaW5zKCd0ZXN0MTIzJykgaXMgdHJ1ZQogZGIuY3JlYXRl
T2JqZWN0U3RvcmUoInRlc3Q0NTYiKQotc2V0VmVyc2lvblRyYW5zID0gZXZlbnQudGFyZ2V0LnJl
c3VsdAorc2V0VmVyc2lvblRyYW5zID0gZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uCiBQQVNTIHNl
dFZlcnNpb25UcmFucyBpcyBub24tbnVsbC4KLVBBU1MgZGIudmVyc2lvbiBpcyAidmVyc2lvbiBi
Igorc2V0VmVyc2lvblRyYW5zLmFib3J0KCkKK1BBU1MgZGIudmVyc2lvbiBpcyAxCiBQQVNTIGRi
Lm9iamVjdFN0b3JlTmFtZXMgaXMgWyd0ZXN0MTIzJ10KIFBBU1MgZGIub2JqZWN0U3RvcmVOYW1l
cy5sZW5ndGggaXMgMQogUEFTUyBkYi5vYmplY3RTdG9yZU5hbWVzLmNvbnRhaW5zKCcnKSBpcyBm
YWxzZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZGF0YWJhc2Ut
Y2xvc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZGF0YWJh
c2UtY2xvc2UtZXhwZWN0ZWQudHh0CmluZGV4IDZiNGZiMGRmOWZkYjU3MDA0NGVjNDU2ZDJjN2Jh
YWZiNGU4N2Y4YzUuLmEzMDc5ZmEyZTA1ZTEzMzBjZjBlODI2OTgwNzgxNTAzZGFjYTllMDYgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2RhdGFiYXNlLWNsb3NlLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9kYXRhYmFzZS1j
bG9zZS1leHBlY3RlZC50eHQKQEAgLTEsNSArMSwzIEBACi1DT05TT0xFIE1FU1NBR0U6IFRoZSBz
ZXRWZXJzaW9uKCkgbWV0aG9kIGlzIG5vbi1zdGFuZGFyZCBhbmQgd2lsbCBiZSByZW1vdmVkLiBV
c2UgdGhlICJ1cGdyYWRlbmVlZGVkIiBldmVudCBpbnN0ZWFkLgotQ09OU09MRSBNRVNTQUdFOiBU
aGUgc2V0VmVyc2lvbigpIG1ldGhvZCBpcyBub24tc3RhbmRhcmQgYW5kIHdpbGwgYmUgcmVtb3Zl
ZC4gVXNlIHRoZSAidXBncmFkZW5lZWRlZCIgZXZlbnQgaW5zdGVhZC4KIFRlc3QgSW5kZXhlZERC
ICdzdGVwcyBmb3IgY2xvc2luZyBhIGRhdGFiYXNlIGNvbm5lY3Rpb24nCiAKIE9uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KQEAgLTcsMjEgKzUsMTMgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUK
IAogaW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwg
c2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7
CiAKLWRibmFtZSA9IHNlbGYubG9jYXRpb24ucGF0aG5hbWUKK2RibmFtZSA9ICJkYXRhYmFzZS1j
bG9zZS5odG1sIgogaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkKLQotb3BlbkNvbm5l
Y3Rpb24oKToKLXJlcXVlc3QgPSBpbmRleGVkREIub3BlbihkYm5hbWUpCi1jb25uZWN0aW9uID0g
cmVxdWVzdC5yZXN1bHQKLXJlcXVlc3QgPSBjb25uZWN0aW9uLnNldFZlcnNpb24oJzEnKQoraW5k
ZXhlZERCLm9wZW4oZGJuYW1lKQogc3RvcmUgPSBjb25uZWN0aW9uLmNyZWF0ZU9iamVjdFN0b3Jl
KCdzdG9yZScpCiBzdG9yZS5wdXQoJ3ZhbHVlMScsICdrZXkxJykKIHN0b3JlLnB1dCgndmFsdWUy
JywgJ2tleTInKQogCi1vcGVuVmVyc2lvbkNoYW5nZUNvbm5lY3Rpb24oKToKLXJlcXVlc3QgPSBp
bmRleGVkREIub3BlbihkYm5hbWUpCi12ZXJzaW9uX2NoYW5nZV9jb25uZWN0aW9uID0gcmVxdWVz
dC5yZXN1bHQKLQogdGVzdENsb3NlKCk6CiBDcmVhdGUgdHJhbnNhY3Rpb25zIHVzaW5nIGNvbm5l
Y3Rpb246CiB0cmFuczEgPSBjb25uZWN0aW9uLnRyYW5zYWN0aW9uKCdzdG9yZScpCkBAIC00Myw5
ICszMyw4IEBAIFBBU1MgRXhjZXB0aW9uIHdhcyB0aHJvd24uCiBQQVNTIGNvZGUgaXMgRE9NRXhj
ZXB0aW9uLklOVkFMSURfU1RBVEVfRVJSCiBQQVNTIGVuYW1lIGlzICdJbnZhbGlkU3RhdGVFcnJv
cicKIAotTk9URTogT25jZSB0aGUgY29ubmVjdGlvbiBpcyBjbG9zZWQsIHRoaXMgY2FuIHVuYmxv
Y2sgdGhlIHN0ZXBzIGZvciBydW5uaW5nIGEgInZlcnNpb25jaGFuZ2UiIHRyYW5zYWN0aW9uLCBh
bmQgdGhlIHN0ZXBzIGZvciBkZWxldGluZyBhIGRhdGFiYXNlLCB3aGljaCBib3RoIHdhaXQgZm9y
IGNvbm5lY3Rpb25zIHRvIGEgZ2l2ZW4gZGF0YWJhc2UgdG8gYmUgY2xvc2VkIGJlZm9yZSBjb250
aW51aW5nLgorTk9URTogT25jZSB0aGUgY29ubmVjdGlvbiBpcyBjbG9zZWQsIHRoaXMgY2FuIHVu
YmxvY2sgdGhlIHN0ZXBzIGZvciBkZWxldGluZyBhIGRhdGFiYXNlLCB3aGljaCB3YWl0cyBmb3Ig
Y29ubmVjdGlvbnMgdG8gYSBnaXZlbiBkYXRhYmFzZSB0byBiZSBjbG9zZWQgYmVmb3JlIGNvbnRp
bnVpbmcuCiAKLXZlcnNpb25fY2hhbmdlX2Nvbm5lY3Rpb24uc2V0VmVyc2lvbignMicpCiBpbmRl
eGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKQogCiB0cmFuc2FjdGlvbiAjMSByZXF1ZXN0IHN1
Y2Nlc3NmdWwKQEAgLTU2LDEyICs0NSw3IEBAIHRyYW5zYWN0aW9uICMyIHJlcXVlc3Qgc3VjY2Vz
c2Z1bAogUEFTUyBldmVudC50YXJnZXQucmVzdWx0IGlzICJ2YWx1ZTIiCiBhd2FpdGluZ190cmFu
c2FjdGlvbl9jb3VudCAtPSAxCiAKLUFsbCB0cmFuc2FjdGlvbnMgY29tcGxldGVkIC0gdmVyc2lv
biBjaGFuZ2VzIC8gZGF0YWJhc2UgZGVsZXRlcyBzaG91bGQgbm93IGJlIHVuYmxvY2tlZC4KLQot
dmVyc2lvbiBjaGFuZ2UgdHJhbnNhY3Rpb24gdW5ibG9ja2VkCi1QQVNTIGF3YWl0aW5nX3RyYW5z
YWN0aW9uX2NvdW50IGlzIDAKLVBBU1MgdmVyc2lvbl9jaGFuZ2VfY29ubmVjdGlvbi52ZXJzaW9u
IGlzICIyIgotdmVyc2lvbl9jaGFuZ2VfY29ubmVjdGlvbi5jbG9zZSgpCitBbGwgdHJhbnNhY3Rp
b25zIGNvbXBsZXRlZCAtIGRhdGFiYXNlIGRlbGV0ZXMgc2hvdWxkIG5vdyBiZSB1bmJsb2NrZWQu
CiAKIGRlbGV0ZSBkYXRhYmFzZSB1bmJsb2NrZWQKIFBBU1MgYXdhaXRpbmdfdHJhbnNhY3Rpb25f
Y291bnQgaXMgMApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZGF0
YWJhc2UtY2xvc2VwZW5kaW5nLWZsYWctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvZGF0YWJhc2UtY2xvc2VwZW5kaW5nLWZsYWctZXhwZWN0ZWQudHh0CmluZGV4
IDY3ZmI1YTcwODZmOGExM2Y2M2I0ZDRkZDYzNGViZTYxMjJjOTRkYmQuLjg3ZjgyMjUzZTI1YzFi
MTY4OTYwMTM4MmZkM2JmMmJlZjBmOTQzYjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL2RhdGFiYXNlLWNsb3NlcGVuZGluZy1mbGFnLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9kYXRhYmFzZS1jbG9zZXBlbmRpbmctZmxh
Zy1leHBlY3RlZC50eHQKQEAgLTEsNiArMSwzIEBACi1DT05TT0xFIE1FU1NBR0U6IFRoZSBzZXRW
ZXJzaW9uKCkgbWV0aG9kIGlzIG5vbi1zdGFuZGFyZCBhbmQgd2lsbCBiZSByZW1vdmVkLiBVc2Ug
dGhlICJ1cGdyYWRlbmVlZGVkIiBldmVudCBpbnN0ZWFkLgotQ09OU09MRSBNRVNTQUdFOiBUaGUg
c2V0VmVyc2lvbigpIG1ldGhvZCBpcyBub24tc3RhbmRhcmQgYW5kIHdpbGwgYmUgcmVtb3ZlZC4g
VXNlIHRoZSAidXBncmFkZW5lZWRlZCIgZXZlbnQgaW5zdGVhZC4KLUNPTlNPTEUgTUVTU0FHRTog
VGhlIHNldFZlcnNpb24oKSBtZXRob2QgaXMgbm9uLXN0YW5kYXJkIGFuZCB3aWxsIGJlIHJlbW92
ZWQuIFVzZSB0aGUgInVwZ3JhZGVuZWVkZWQiIGV2ZW50IGluc3RlYWQuCiBUZXN0IEluZGV4ZWRE
QiBJREJEYXRhYmFzZSBpbnRlcm5hbCBjbG9zZVBlbmRpbmcgZmxhZwogCiBPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCkBAIC04LDEzICs1LDkgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIAog
aW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJraXRJbmRleGVkREIgfHwgc2Vs
Zi5tb3pJbmRleGVkREIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLk9JbmRleGVkREI7CiAK
LWRibmFtZSA9IHNlbGYubG9jYXRpb24ucGF0aG5hbWUKK2RibmFtZSA9ICJkYXRhYmFzZS1jbG9z
ZXBlbmRpbmctZmxhZy5odG1sIgogaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkKLQot
b3BlbkNvbm5lY3Rpb24oKToKLXJlcXVlc3QgPSBpbmRleGVkREIub3BlbihkYm5hbWUpCi1jb25u
ZWN0aW9uID0gcmVxdWVzdC5yZXN1bHQKLXJlcXVlc3QgPSBjb25uZWN0aW9uLnNldFZlcnNpb24o
JzEnKQoraW5kZXhlZERCLm9wZW4oZGJuYW1lKQogc3RvcmUgPSBjb25uZWN0aW9uLmNyZWF0ZU9i
amVjdFN0b3JlKCdzdG9yZScpCiAKIEZpcnN0LCB2ZXJpZnkgdGhhdCB0aGUgZGF0YWJhc2UgY29u
bmVjdGlvbiBpcyBub3QgY2xvc2VkOgpAQCAtMzYsOSArMjksOCBAQCBQQVNTIGNvbm5lY3Rpb24u
bmFtZSBpcyBkYm5hbWUKIAogSURCRGF0YWJhc2Uub2JqZWN0U3RvcmVOYW1lczoKICJPbmNlIHRo
ZSBjbG9zZVBlbmRpbmcgZmxhZyBpcyBzZXQgb24gdGhlIGNvbm5lY3Rpb24sIHRoaXMgZnVuY3Rp
b24gbXVzdCByZXR1cm4gYSBzbmFwc2hvdCBvZiB0aGUgbGlzdCBvZiBuYW1lcyBvZiB0aGUgb2Jq
ZWN0IHN0b3JlcyB0YWtlbiBhdCB0aGUgdGltZSB3aGVuIHRoZSBjbG9zZSBtZXRob2Qgd2FzIGNh
bGxlZC4iCi1yZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oZGJuYW1lKQorcmVxdWVzdCA9IGluZGV4
ZWREQi5vcGVuKGRibmFtZSwgMikKIHZlcnNpb25fY2hhbmdlX2Nvbm5lY3Rpb24gPSByZXF1ZXN0
LnJlc3VsdAotdmVyc2lvbl9jaGFuZ2VfY29ubmVjdGlvbi5zZXRWZXJzaW9uKCcyJykKIHZlcnNp
b25fY2hhbmdlX2Nvbm5lY3Rpb24uY3JlYXRlT2JqZWN0U3RvcmUoJ25ld19zdG9yZScpCiBQQVNT
IHZlcnNpb25fY2hhbmdlX2Nvbm5lY3Rpb24ub2JqZWN0U3RvcmVOYW1lcy5jb250YWlucygnbmV3
X3N0b3JlJykgaXMgdHJ1ZQogUEFTUyBjb25uZWN0aW9uLm9iamVjdFN0b3JlTmFtZXMuY29udGFp
bnMoJ25ld19zdG9yZScpIGlzIGZhbHNlCkBAIC02MCwxMCArNTIsOSBAQCBjb25uZWN0aW9uLm9u
dmVyc2lvbmNoYW5nZSA9IGZ1bmN0aW9uICgpIHsgdmVyc2lvbkNoYW5nZVdhc0ZpcmVkID0gdHJ1
ZTsgfQogdHJhbnNhY3Rpb24gPSBjb25uZWN0aW9uLnRyYW5zYWN0aW9uKCdzdG9yZScpCiBjb25u
ZWN0aW9uLmNsb3NlKCkKIGNsb3NlUGVuZGluZyBpcyBzZXQsIGJ1dCBhY3RpdmUgdHJhbnNhY3Rp
b24gd2lsbCBrZWVwIGNvbm5lY3Rpb24gZnJvbSBjbG9zaW5nCi1yZXF1ZXN0ID0gaW5kZXhlZERC
Lm9wZW4oZGJuYW1lKQotdmVyc2lvbl9jaGFuZ2VfY29ubmVjdGlvbiA9IHJlcXVlc3QucmVzdWx0
Ci12ZXJzaW9uX2NoYW5nZV9jb25uZWN0aW9uLnNldFZlcnNpb24oJzMnKQorcmVxdWVzdCA9IGlu
ZGV4ZWREQi5vcGVuKGRibmFtZSwgMykKICdibG9ja2VkJyBldmVudCBmaXJlZCwgbGV0dGluZyB0
cmFuc2FjdGlvbiBjb21wbGV0ZSBhbmQgY29ubmVjdGlvbiBjbG9zZQordmVyc2lvbl9jaGFuZ2Vf
Y29ubmVjdGlvbiA9IHJlcXVlc3QucmVzdWx0CiBQQVNTIHZlcnNpb25DaGFuZ2VXYXNGaXJlZCBp
cyBmYWxzZQogdmVyc2lvbl9jaGFuZ2VfY29ubmVjdGlvbi5jbG9zZSgpCiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9kYXRhYmFzZS1iYXNpY3Mu
anMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvZGF0YWJhc2UtYmFz
aWNzLmpzCmluZGV4IDI1MWU0NTUxMDAzYmY1ZWY3MDAyN2IwNDhmOGY0ZmIyNzJlYWQ0NDYuLmNj
YjU3NWFjNGMyYzIyY2Y0N2EyNDZkMmFiMDk1NTUzODRmYjkxZDkgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9kYXRhYmFzZS1iYXNpY3MuanMKKysr
IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2RhdGFiYXNlLWJhc2lj
cy5qcwpAQCAtNSw1OCArNSwxNiBAQCBpZiAodGhpcy5pbXBvcnRTY3JpcHRzKSB7CiAKIGRlc2Ny
aXB0aW9uKCJUZXN0IHRoZSBiYXNpY3Mgb2YgSW5kZXhlZERCJ3MgSURCRGF0YWJhc2UuIik7CiAK
LWZ1bmN0aW9uIHRlc3QoKQoraW5kZXhlZERCVGVzdChwcmVwYXJlRGF0YWJhc2UsIHRlc3RTZXRW
ZXJzaW9uQWJvcnQpOworZnVuY3Rpb24gcHJlcGFyZURhdGFiYXNlKCkKIHsKLSAgICByZW1vdmVW
ZW5kb3JQcmVmaXhlcygpOworICAgIGRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKKyAgICBkZWJ1
ZygiVGVzdCB0aGF0IHlvdSBjYW4ndCBvcGVuIGEgdHJhbnNhY3Rpb24gd2hpbGUgaW4gYSB2ZXJz
aW9uY2hhbmdlIHRyYW5zYWN0aW9uIik7CisgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbignZGIu
dHJhbnNhY3Rpb24oImRvZXNudEV4aXN0IiknLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
IkRPTUV4Y2VwdGlvbi5JTlZBTElEX1NUQVRFX0VSUiIsICInSW52YWxpZFN0YXRlRXJyb3InIik7
CiAKLSAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLm9wZW4oJ2RhdGFiYXNlLWJh
c2ljcycpIik7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBvcGVuU3VjY2VzczsKLSAgICByZXF1
ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLX0KLQotZnVuY3Rpb24gb3Bl
blN1Y2Nlc3MoKQotewotICAgIHNlbGYuZGIgPSBldmFsQW5kTG9nKCJkYiA9IGV2ZW50LnRhcmdl
dC5yZXN1bHQiKTsKLQotICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJkYi5zZXRWZXJzaW9uKCdu
ZXcgdmVyc2lvbicpIik7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBmdW5jdGlvbigpIHsKLSAg
ICAgICAgZGVsZXRlQWxsT2JqZWN0U3RvcmVzKGRiKTsKLQotICAgICAgICB2YXIgdHJhbnNhY3Rp
b24gPSBldmVudC50YXJnZXQucmVzdWx0OwotICAgICAgICB0cmFuc2FjdGlvbi5vbmNvbXBsZXRl
ID0gc2V0VmVyc2lvblN1Y2Nlc3M7Ci0gICAgICAgIHRyYW5zYWN0aW9uLm9uYWJvcnQgPSB1bmV4
cGVjdGVkRXJyb3JDYWxsYmFjazsKLSAgICB9OwotICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhw
ZWN0ZWRFcnJvckNhbGxiYWNrOwotfQotCi1mdW5jdGlvbiBzZXRWZXJzaW9uU3VjY2VzcygpCi17
Ci0gICAgZGVidWcoInNldFZlcnNpb25TdWNjZXNzKCk6Iik7Ci0KLSAgICBkZWJ1ZygiVGVzdGlu
ZyBzZXRWZXJzaW9uLiIpOwotICAgIGV2YWxBbmRMb2coJ3JlcXVlc3QgPSBkYi5zZXRWZXJzaW9u
KCJ2ZXJzaW9uIGEiKScpOwotICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24oZXZlbnQp
IHsKLQotICAgICAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCdkYi5zZXRWZXJzaW9uKCJ2ZXJz
aW9uIGIiKScsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkRPTUV4Y2VwdGlvbi5J
TlZBTElEX1NUQVRFX0VSUiIsICInSW52YWxpZFN0YXRlRXJyb3InIik7Ci0gICAgICAgIHZhciB0
cmFuc2FjdGlvbiA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7Ci0gICAgICAgIHRyYW5zYWN0aW9uLm9u
Y29tcGxldGUgPSBzZXRWZXJzaW9uQWdhaW47Ci0gICAgICAgIHRyYW5zYWN0aW9uLm9uYWJvcnQg
PSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLSAgICB9OwotICAgIHJlcXVlc3Qub25lcnJvciA9
IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotfQotCi1mdW5jdGlvbiBzZXRWZXJzaW9uQWdhaW4o
KQotewotICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCdkYi5zZXRWZXJzaW9uKCJ2ZXJzaW9uIGIi
KScpOwotICAgIHJlcXVlc3Qub25zdWNjZXNzID0gY3JlYXRlT2JqZWN0U3RvcmU7Ci0gICAgcmVx
dWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci19Ci0KLWZ1bmN0aW9uIGNy
ZWF0ZU9iamVjdFN0b3JlKCkKLXsKLSAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImRiLnZlcnNp
b24iLCAidmVyc2lvbiBiIik7Ci0gICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJkYi5uYW1lIiwg
ImRhdGFiYXNlLWJhc2ljcyIpOworICAgIHNob3VsZEJlKCJkYi52ZXJzaW9uIiwgIjEiKTsKKyAg
ICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImRiLm5hbWUiLCBkYm5hbWUpOwogICAgIHNob3VsZEJl
KCJkYi5vYmplY3RTdG9yZU5hbWVzIiwgIltdIik7CiAgICAgc2hvdWxkQmUoImRiLm9iamVjdFN0
b3JlTmFtZXMubGVuZ3RoIiwgIjAiKTsKICAgICBzaG91bGRCZSgiZGIub2JqZWN0U3RvcmVOYW1l
cy5jb250YWlucygnJykiLCAiZmFsc2UiKTsKQEAgLTY1LDEwICsyMyw2IEBAIGZ1bmN0aW9uIGNy
ZWF0ZU9iamVjdFN0b3JlKCkKIAogICAgIG9iamVjdFN0b3JlID0gZXZhbEFuZExvZygnZGIuY3Jl
YXRlT2JqZWN0U3RvcmUoInRlc3QxMjMiKScpOwogICAgIGNoZWNrT2JqZWN0U3RvcmUoKTsKLQot
ICAgIHZhciB0cmFuc2FjdGlvbiA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7Ci0gICAgdHJhbnNhY3Rp
b24ub25jb21wbGV0ZSA9IHRlc3RTZXRWZXJzaW9uQWJvcnQ7Ci0gICAgdHJhbnNhY3Rpb24ub25h
Ym9ydCA9IHVuZXhwZWN0ZWRBYm9ydENhbGxiYWNrOwogfQogCiBmdW5jdGlvbiBjaGVja09iamVj
dFN0b3JlKCkKQEAgLTgzLDI4ICszNywzMSBAQCBmdW5jdGlvbiBjaGVja09iamVjdFN0b3JlKCkK
IAogZnVuY3Rpb24gdGVzdFNldFZlcnNpb25BYm9ydCgpCiB7Ci0gICAgcmVxdWVzdCA9IGV2YWxB
bmRMb2coJ2RiLnNldFZlcnNpb24oInZlcnNpb24gYyIpJyk7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nl
c3MgPSBjcmVhdGVBbm90aGVyT2JqZWN0U3RvcmU7CisgICAgZXZhbEFuZExvZygiZGIuY2xvc2Uo
KSIpOworICAgIGV2YWxBbmRMb2coInJlcXVlc3QgPSBpbmRleGVkREIub3BlbihkYm5hbWUsIDIp
Iik7CisgICAgcmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQgPSBjcmVhdGVBbm90aGVyT2JqZWN0U3Rv
cmU7CisgICAgcmVxdWVzdC5vbmJsb2NrZWQgPSB1bmV4cGVjdGVkQmxvY2tlZENhbGxiYWNrOwog
ICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwogfQogCiBmdW5j
dGlvbiBjcmVhdGVBbm90aGVyT2JqZWN0U3RvcmUoKQogewotICAgIHNob3VsZEJlRXF1YWxUb1N0
cmluZygiZGIudmVyc2lvbiIsICJ2ZXJzaW9uIGMiKTsKLSAgICBzaG91bGRCZUVxdWFsVG9TdHJp
bmcoImRiLm5hbWUiLCAiZGF0YWJhc2UtYmFzaWNzIik7CisgICAgZXZhbEFuZExvZygiZGIgPSBl
dmVudC50YXJnZXQucmVzdWx0Iik7CisgICAgc2hvdWxkQmUoImRiLnZlcnNpb24iLCAiMiIpOwor
ICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZGIubmFtZSIsIGRibmFtZSk7CiAgICAgY2hlY2tP
YmplY3RTdG9yZSgpOwogCiAgICAgb2JqZWN0U3RvcmUgPSBldmFsQW5kTG9nKCdkYi5jcmVhdGVP
YmplY3RTdG9yZSgidGVzdDQ1NiIpJyk7Ci0gICAgdmFyIHNldFZlcnNpb25UcmFucyA9IGV2YWxB
bmRMb2coInNldFZlcnNpb25UcmFucyA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKKyAgICB2YXIg
c2V0VmVyc2lvblRyYW5zID0gZXZhbEFuZExvZygic2V0VmVyc2lvblRyYW5zID0gZXZlbnQudGFy
Z2V0LnRyYW5zYWN0aW9uIik7CiAgICAgc2hvdWxkQmVOb25OdWxsKCJzZXRWZXJzaW9uVHJhbnMi
KTsKICAgICBzZXRWZXJzaW9uVHJhbnMub25jb21wbGV0ZSA9IHVuZXhwZWN0ZWRDb21wbGV0ZUNh
bGxiYWNrOwogICAgIHNldFZlcnNpb25UcmFucy5vbmFib3J0ID0gY2hlY2tNZXRhZGF0YTsKLSAg
ICBzZXRWZXJzaW9uVHJhbnMuYWJvcnQoKTsKKyAgICBldmFsQW5kTG9nKCJzZXRWZXJzaW9uVHJh
bnMuYWJvcnQoKSIpOwogfQogCiBmdW5jdGlvbiBjaGVja01ldGFkYXRhKCkKIHsKLSAgICBzaG91
bGRCZUVxdWFsVG9TdHJpbmcoImRiLnZlcnNpb24iLCAidmVyc2lvbiBiIik7CisgICAgc2hvdWxk
QmUoImRiLnZlcnNpb24iLCAiMSIpOwogICAgIGNoZWNrT2JqZWN0U3RvcmUoKTsKICAgICB0ZXN0
Q2xvc2UoKTsKIH0KQEAgLTExOCw1ICs3NSwzIEBAIGZ1bmN0aW9uIHRlc3RDbG9zZSgpCiAgICAg
ZXZhbEFuZExvZygiZGIuY2xvc2UoKSIpOwogICAgIGZpbmlzaEpTVGVzdCgpOwogfQotCi10ZXN0
KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMv
ZGF0YWJhc2UtY2xvc2UuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJj
ZXMvZGF0YWJhc2UtY2xvc2UuanMKaW5kZXggMWY1OGY5ZTcwMGY0Nzk3ZDcxOGVmNjgyZDk3YzNj
M2IzMzU5NTUzOS4uNjkxZTU1YmNmMWYxYjc4M2Q1ZGM4YTU3YzZlYTY0M2YxODNkYjM1NiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2RhdGFiYXNl
LWNsb3NlLmpzCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9k
YXRhYmFzZS1jbG9zZS5qcwpAQCAtNSw0NyArNSwxMyBAQCBpZiAodGhpcy5pbXBvcnRTY3JpcHRz
KSB7CiAKIGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQiAnc3RlcHMgZm9yIGNsb3NpbmcgYSBk
YXRhYmFzZSBjb25uZWN0aW9uJyIpOwogCi1mdW5jdGlvbiB0ZXN0KCkKK2luZGV4ZWREQlRlc3Qo
cHJlcGFyZURhdGFiYXNlLCB0ZXN0Q2xvc2UpOworZnVuY3Rpb24gcHJlcGFyZURhdGFiYXNlKCkK
IHsKLSAgICByZW1vdmVWZW5kb3JQcmVmaXhlcygpOwotCi0gICAgZXZhbEFuZExvZygiZGJuYW1l
ID0gc2VsZi5sb2NhdGlvbi5wYXRobmFtZSIpOwotICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJp
bmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJuYW1lKSIpOwotICAgIHJlcXVlc3Qub25lcnJvciA9
IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotICAgIHJlcXVlc3Qub25zdWNjZXNzID0gb3BlbkNv
bm5lY3Rpb247Ci19Ci0KLWZ1bmN0aW9uIG9wZW5Db25uZWN0aW9uKCkKLXsKLSAgICBkZWJ1Zygi
Iik7Ci0gICAgZGVidWcoIm9wZW5Db25uZWN0aW9uKCk6Iik7Ci0gICAgZXZhbEFuZExvZygicmVx
dWVzdCA9IGluZGV4ZWREQi5vcGVuKGRibmFtZSkiKTsKLSAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1
bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9u
KCkgewotICAgICAgICBldmFsQW5kTG9nKCJjb25uZWN0aW9uID0gcmVxdWVzdC5yZXN1bHQiKTsK
LSAgICAgICAgZXZhbEFuZExvZygicmVxdWVzdCA9IGNvbm5lY3Rpb24uc2V0VmVyc2lvbignMScp
Iik7Ci0gICAgICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwot
ICAgICAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgdHJh
bnMgPSByZXF1ZXN0LnJlc3VsdDsKLSAgICAgICAgICAgIGV2YWxBbmRMb2coInN0b3JlID0gY29u
bmVjdGlvbi5jcmVhdGVPYmplY3RTdG9yZSgnc3RvcmUnKSIpOwotICAgICAgICAgICAgZXZhbEFu
ZExvZygic3RvcmUucHV0KCd2YWx1ZTEnLCAna2V5MScpIik7Ci0gICAgICAgICAgICBldmFsQW5k
TG9nKCJzdG9yZS5wdXQoJ3ZhbHVlMicsICdrZXkyJykiKTsKLSAgICAgICAgICAgIHRyYW5zLm9u
YWJvcnQgPSB1bmV4cGVjdGVkQWJvcnRDYWxsYmFjazsKLSAgICAgICAgICAgIHRyYW5zLm9uY29t
cGxldGUgPSBvcGVuVmVyc2lvbkNoYW5nZUNvbm5lY3Rpb247Ci0gICAgICAgIH07Ci0gICAgfTsK
LX0KLQotZnVuY3Rpb24gb3BlblZlcnNpb25DaGFuZ2VDb25uZWN0aW9uKCkKLXsKLSAgICBkZWJ1
ZygiIik7Ci0gICAgZGVidWcoIm9wZW5WZXJzaW9uQ2hhbmdlQ29ubmVjdGlvbigpOiIpOwotICAg
IGV2YWxBbmRMb2coInJlcXVlc3QgPSBpbmRleGVkREIub3BlbihkYm5hbWUpIik7Ci0gICAgcmVx
dWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci0gICAgcmVxdWVzdC5vbnN1
Y2Nlc3MgPSBmdW5jdGlvbigpIHsKLSAgICAgICAgZXZhbEFuZExvZygidmVyc2lvbl9jaGFuZ2Vf
Y29ubmVjdGlvbiA9IHJlcXVlc3QucmVzdWx0Iik7Ci0gICAgICAgIHRlc3RDbG9zZSgpOwotICAg
IH07CisgICAgY29ubmVjdGlvbiA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CisgICAgZXZhbEFuZExv
Zygic3RvcmUgPSBjb25uZWN0aW9uLmNyZWF0ZU9iamVjdFN0b3JlKCdzdG9yZScpIik7CisgICAg
ZXZhbEFuZExvZygic3RvcmUucHV0KCd2YWx1ZTEnLCAna2V5MScpIik7CisgICAgZXZhbEFuZExv
Zygic3RvcmUucHV0KCd2YWx1ZTInLCAna2V5MicpIik7CiB9CiAKIGZ1bmN0aW9uIHRlc3RDbG9z
ZSgpCkBAIC03Myw3ICszOSw3IEBAIGZ1bmN0aW9uIHRlc3RDbG9zZSgpCiAKICAgICAgICAgaWYg
KGF3YWl0aW5nX3RyYW5zYWN0aW9uX2NvdW50ID09IDApIHsKICAgICAgICAgICAgIGRlYnVnKCIi
KTsKLSAgICAgICAgICAgIGRlYnVnKCJBbGwgdHJhbnNhY3Rpb25zIGNvbXBsZXRlZCAtIHZlcnNp
b24gY2hhbmdlcyAvIGRhdGFiYXNlIGRlbGV0ZXMgc2hvdWxkIG5vdyBiZSB1bmJsb2NrZWQuIik7
CisgICAgICAgICAgICBkZWJ1ZygiQWxsIHRyYW5zYWN0aW9ucyBjb21wbGV0ZWQgLSBkYXRhYmFz
ZSBkZWxldGVzIHNob3VsZCBub3cgYmUgdW5ibG9ja2VkLiIpOwogICAgICAgICB9CiAgICAgfQog
ICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJ0cmFuczEub2JqZWN0U3RvcmUoJ3N0b3JlJykuZ2V0
KCdrZXkxJykiKTsKQEAgLTEwMiwxOSArNjgsOSBAQCBmdW5jdGlvbiB0ZXN0Q2xvc2UoKQogICAg
IGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oInRyYW5zMyA9IGNvbm5lY3Rpb24udHJhbnNhY3Rpb24o
J3N0b3JlJykiLCAiRE9NRXhjZXB0aW9uLklOVkFMSURfU1RBVEVfRVJSIiwgIidJbnZhbGlkU3Rh
dGVFcnJvciciKTsKIAogICAgIGRlYnVnKCIiKTsKLSAgICBkZWJ1ZygiTk9URTogT25jZSB0aGUg
Y29ubmVjdGlvbiBpcyBjbG9zZWQsIHRoaXMgY2FuIHVuYmxvY2sgdGhlIHN0ZXBzIGZvciBydW5u
aW5nIGEgXCJ2ZXJzaW9uY2hhbmdlXCIgdHJhbnNhY3Rpb24sIGFuZCB0aGUgc3RlcHMgZm9yIGRl
bGV0aW5nIGEgZGF0YWJhc2UsIHdoaWNoIGJvdGggd2FpdCBmb3IgY29ubmVjdGlvbnMgdG8gYSBn
aXZlbiBkYXRhYmFzZSB0byBiZSBjbG9zZWQgYmVmb3JlIGNvbnRpbnVpbmcuIik7CisgICAgZGVi
dWcoIk5PVEU6IE9uY2UgdGhlIGNvbm5lY3Rpb24gaXMgY2xvc2VkLCB0aGlzIGNhbiB1bmJsb2Nr
IHRoZSBzdGVwcyBmb3IgZGVsZXRpbmcgYSBkYXRhYmFzZSwgd2hpY2ggd2FpdHMgZm9yIGNvbm5l
Y3Rpb25zIHRvIGEgZ2l2ZW4gZGF0YWJhc2UgdG8gYmUgY2xvc2VkIGJlZm9yZSBjb250aW51aW5n
LiIpOwogICAgIGRlYnVnKCIiKTsKIAotICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJ2ZXJzaW9u
X2NoYW5nZV9jb25uZWN0aW9uLnNldFZlcnNpb24oJzInKSIpOwotICAgIHJlcXVlc3Qub25lcnJv
ciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZnVu
Y3Rpb24oKSB7Ci0gICAgICAgIGRlYnVnKCIiKTsKLSAgICAgICAgZGVidWcoInZlcnNpb24gY2hh
bmdlIHRyYW5zYWN0aW9uIHVuYmxvY2tlZCIpOwotICAgICAgICBzaG91bGRCZSgiYXdhaXRpbmdf
dHJhbnNhY3Rpb25fY291bnQiLCAiMCIpOwotICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmco
InZlcnNpb25fY2hhbmdlX2Nvbm5lY3Rpb24udmVyc2lvbiIsICIyIik7Ci0gICAgICAgIGV2YWxB
bmRMb2coInZlcnNpb25fY2hhbmdlX2Nvbm5lY3Rpb24uY2xvc2UoKSIpOwotICAgIH07Ci0KICAg
ICByZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSki
KTsKICAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKICAgICBy
ZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uKCkgewpAQCAtMTI0LDUgKzgwLDMgQEAgZnVuY3Rp
b24gdGVzdENsb3NlKCkKICAgICAgICAgZmluaXNoSlNUZXN0KCk7CiAgICAgfTsKIH0KLQotdGVz
dCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2Vz
L2RhdGFiYXNlLWNsb3NlcGVuZGluZy1mbGFnLmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvcmVzb3VyY2VzL2RhdGFiYXNlLWNsb3NlcGVuZGluZy1mbGFnLmpzCmluZGV4IDRiMTBi
MDFjZDdlMDcxNDUzMjVlOTE5NWY0MGZkN2ZlMDU4N2IwYjUuLjkxYzkwNGIwNTRhMDc2NTI2YzZl
ODg1MWUwZDkwZDdhM2MzMGYxYzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL3Jlc291cmNlcy9kYXRhYmFzZS1jbG9zZXBlbmRpbmctZmxhZy5qcworKysgYi9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvZGF0YWJhc2UtY2xvc2VwZW5kaW5n
LWZsYWcuanMKQEAgLTUsMzMgKzUsMTIgQEAgaWYgKHRoaXMuaW1wb3J0U2NyaXB0cykgewogCiBk
ZXNjcmlwdGlvbigiVGVzdCBJbmRleGVkREIgSURCRGF0YWJhc2UgaW50ZXJuYWwgY2xvc2VQZW5k
aW5nIGZsYWciKTsKIAotZnVuY3Rpb24gdGVzdCgpCitpbmRleGVkREJUZXN0KHByZXBhcmVEYXRh
YmFzZSwgdGVzdERhdGFiYXNlQ2xvc2luZ1N0ZXBzKTsKK2Z1bmN0aW9uIHByZXBhcmVEYXRhYmFz
ZSgpCiB7Ci0gICAgcmVtb3ZlVmVuZG9yUHJlZml4ZXMoKTsKLQotICAgIGV2YWxBbmRMb2coImRi
bmFtZSA9IHNlbGYubG9jYXRpb24ucGF0aG5hbWUiKTsKLSAgICByZXF1ZXN0ID0gZXZhbEFuZExv
ZygiaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSkiKTsKLSAgICByZXF1ZXN0Lm9uZXJy
b3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IG9w
ZW5Db25uZWN0aW9uOwotfQotCi1mdW5jdGlvbiBvcGVuQ29ubmVjdGlvbigpCi17Ci0gICAgZGVi
dWcoIiIpOwotICAgIGRlYnVnKCJvcGVuQ29ubmVjdGlvbigpOiIpOwotICAgIGV2YWxBbmRMb2co
InJlcXVlc3QgPSBpbmRleGVkREIub3BlbihkYm5hbWUpIik7Ci0gICAgcmVxdWVzdC5vbmVycm9y
ID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBmdW5j
dGlvbigpIHsKLSAgICAgICAgZXZhbEFuZExvZygiY29ubmVjdGlvbiA9IHJlcXVlc3QucmVzdWx0
Iik7Ci0gICAgICAgIGV2YWxBbmRMb2coInJlcXVlc3QgPSBjb25uZWN0aW9uLnNldFZlcnNpb24o
JzEnKSIpOwotICAgICAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFj
azsKLSAgICAgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBmdW5jdGlvbigpIHsKLSAgICAgICAgICAg
IHRyYW5zID0gcmVxdWVzdC5yZXN1bHQ7Ci0gICAgICAgICAgICBldmFsQW5kTG9nKCJzdG9yZSA9
IGNvbm5lY3Rpb24uY3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3JlJykiKTsKLSAgICAgICAgICAgIHRy
YW5zLm9uYWJvcnQgPSB1bmV4cGVjdGVkQWJvcnRDYWxsYmFjazsKLSAgICAgICAgICAgIHRyYW5z
Lm9uY29tcGxldGUgPSB0ZXN0RGF0YWJhc2VDbG9zaW5nU3RlcHM7Ci0gICAgICAgIH07Ci0gICAg
fTsKKyAgICBjb25uZWN0aW9uID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKKyAgICBldmVudC50YXJn
ZXQudHJhbnNhY3Rpb24ub25hYm9ydCA9IHVuZXhwZWN0ZWRBYm9ydENhbGxiYWNrOworICAgIGV2
YWxBbmRMb2coInN0b3JlID0gY29ubmVjdGlvbi5jcmVhdGVPYmplY3RTdG9yZSgnc3RvcmUnKSIp
OwogfQogCiBmdW5jdGlvbiB0ZXN0RGF0YWJhc2VDbG9zaW5nU3RlcHMoKQpAQCAtNjYsMjUgKzQ1
LDIyIEBAIGZ1bmN0aW9uIHRlc3RJREJEYXRhYmFzZU9iamVjdFN0b3JlTmFtZXMoKQogICAgIGRl
YnVnKCJJREJEYXRhYmFzZS5vYmplY3RTdG9yZU5hbWVzOiIpOwogICAgIGRlYnVnKCJcIk9uY2Ug
dGhlIGNsb3NlUGVuZGluZyBmbGFnIGlzIHNldCBvbiB0aGUgY29ubmVjdGlvbiwgdGhpcyBmdW5j
dGlvbiBtdXN0IHJldHVybiBhIHNuYXBzaG90IG9mIHRoZSBsaXN0IG9mIG5hbWVzIG9mIHRoZSBv
YmplY3Qgc3RvcmVzIHRha2VuIGF0IHRoZSB0aW1lIHdoZW4gdGhlIGNsb3NlIG1ldGhvZCB3YXMg
Y2FsbGVkLlwiIik7CiAKLSAgICBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4o
ZGJuYW1lKSIpOworICAgIGV2YWxBbmRMb2coInJlcXVlc3QgPSBpbmRleGVkREIub3BlbihkYm5h
bWUsIDIpIik7CisgICAgcmVxdWVzdC5vbmJsb2NrZWQgPSB1bmV4cGVjdGVkQmxvY2tlZENhbGxi
YWNrOwogICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotICAg
IHJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24oKSB7CisgICAgcmVxdWVzdC5vbnVwZ3JhZGVu
ZWVkZWQgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgIGV2YWxBbmRMb2coInZlcnNpb25fY2hhbmdl
X2Nvbm5lY3Rpb24gPSByZXF1ZXN0LnJlc3VsdCIpOwotICAgICAgICByZXF1ZXN0ID0gZXZhbEFu
ZExvZygidmVyc2lvbl9jaGFuZ2VfY29ubmVjdGlvbi5zZXRWZXJzaW9uKCcyJykiKTsKLSAgICAg
ICAgLy8gRklYTUU6IFNob3VsZCB2ZXJpZnkgJ2Jsb2NrZWQnIG5vdCBmaXJlZC4gaHR0cDovL3dl
YmtpdC5vcmcvYi83MTEzMAotICAgICAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJy
b3JDYWxsYmFjazsKLSAgICAgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBmdW5jdGlvbiAoKSB7Ci0g
ICAgICAgICAgICB2YXIgdHJhbnNhY3Rpb24gPSByZXF1ZXN0LnJlc3VsdDsKLSAgICAgICAgICAg
IGV2YWxBbmRMb2coInZlcnNpb25fY2hhbmdlX2Nvbm5lY3Rpb24uY3JlYXRlT2JqZWN0U3RvcmUo
J25ld19zdG9yZScpIik7Ci0gICAgICAgICAgICB0cmFuc2FjdGlvbi5vbmNvbXBsZXRlID0gZnVu
Y3Rpb24gKCkgewotICAgICAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgidmVyc2lvbl9jaGFuZ2Vf
Y29ubmVjdGlvbi5vYmplY3RTdG9yZU5hbWVzLmNvbnRhaW5zKCduZXdfc3RvcmUnKSIpOwotICAg
ICAgICAgICAgICAgIHNob3VsZEJlRmFsc2UoImNvbm5lY3Rpb24ub2JqZWN0U3RvcmVOYW1lcy5j
b250YWlucygnbmV3X3N0b3JlJykiKTsKLSAgICAgICAgICAgICAgICBldmFsQW5kTG9nKCJ2ZXJz
aW9uX2NoYW5nZV9jb25uZWN0aW9uLmNsb3NlKCkiKTsKLQotICAgICAgICAgICAgICAgIHRlc3RJ
REJEYXRhYmFzZVRyYW5zYWN0aW9uKCk7Ci0gICAgICAgICAgICB9OworICAgICAgICB2YXIgdHJh
bnNhY3Rpb24gPSByZXF1ZXN0LnRyYW5zYWN0aW9uOworICAgICAgICBldmFsQW5kTG9nKCJ2ZXJz
aW9uX2NoYW5nZV9jb25uZWN0aW9uLmNyZWF0ZU9iamVjdFN0b3JlKCduZXdfc3RvcmUnKSIpOwor
ICAgICAgICB0cmFuc2FjdGlvbi5vbmNvbXBsZXRlID0gZnVuY3Rpb24gKCkgeworICAgICAgICAg
ICAgc2hvdWxkQmVUcnVlKCJ2ZXJzaW9uX2NoYW5nZV9jb25uZWN0aW9uLm9iamVjdFN0b3JlTmFt
ZXMuY29udGFpbnMoJ25ld19zdG9yZScpIik7CisgICAgICAgICAgICBzaG91bGRCZUZhbHNlKCJj
b25uZWN0aW9uLm9iamVjdFN0b3JlTmFtZXMuY29udGFpbnMoJ25ld19zdG9yZScpIik7CiAgICAg
ICAgIH07CiAgICAgfTsKKyAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uKCkgeworICAg
ICAgICBldmFsQW5kTG9nKCJ2ZXJzaW9uX2NoYW5nZV9jb25uZWN0aW9uLmNsb3NlKCkiKTsKKyAg
ICAgICAgdGVzdElEQkRhdGFiYXNlVHJhbnNhY3Rpb24oKTsKKyAgICB9CiB9CiAKIGZ1bmN0aW9u
IHRlc3RJREJEYXRhYmFzZVRyYW5zYWN0aW9uKCkKQEAgLTEyMCwyNSArOTYsMjAgQEAgZnVuY3Rp
b24gdGVzdFZlcnNpb25DaGFuZ2VUcmFuc2FjdGlvblN0ZXBzKCkKICAgICAgICAgfQogICAgICAg
ICBidXN5KCk7CiAKLSAgICAgICAgZXZhbEFuZExvZygicmVxdWVzdCA9IGluZGV4ZWREQi5vcGVu
KGRibmFtZSkiKTsKKyAgICAgICAgZXZhbEFuZExvZygicmVxdWVzdCA9IGluZGV4ZWREQi5vcGVu
KGRibmFtZSwgMykiKTsKICAgICAgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9y
Q2FsbGJhY2s7Ci0gICAgICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24oKSB7CisgICAg
ICAgIHJlcXVlc3Qub25ibG9ja2VkID0gZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgZGVidWco
IidibG9ja2VkJyBldmVudCBmaXJlZCwgbGV0dGluZyB0cmFuc2FjdGlvbiBjb21wbGV0ZSBhbmQg
Y29ubmVjdGlvbiBjbG9zZSIpOworICAgICAgICAgICAga2VlcFRyYW5zYWN0aW9uQnVzeSA9IGZh
bHNlOworICAgICAgICB9OworICAgICAgICByZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0
aW9uKCkgewogICAgICAgICAgICAgZXZhbEFuZExvZygidmVyc2lvbl9jaGFuZ2VfY29ubmVjdGlv
biA9IHJlcXVlc3QucmVzdWx0Iik7Ci0gICAgICAgICAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygi
dmVyc2lvbl9jaGFuZ2VfY29ubmVjdGlvbi5zZXRWZXJzaW9uKCczJykiKTsKLSAgICAgICAgICAg
IHJlcXVlc3Qub25ibG9ja2VkID0gZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgICAgIGRlYnVn
KCInYmxvY2tlZCcgZXZlbnQgZmlyZWQsIGxldHRpbmcgdHJhbnNhY3Rpb24gY29tcGxldGUgYW5k
IGNvbm5lY3Rpb24gY2xvc2UiKTsKLSAgICAgICAgICAgICAgICBrZWVwVHJhbnNhY3Rpb25CdXN5
ID0gZmFsc2U7Ci0gICAgICAgICAgICB9OworICAgICAgICAgICAgc2hvdWxkQmVGYWxzZSgidmVy
c2lvbkNoYW5nZVdhc0ZpcmVkIik7CiAgICAgICAgICAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4
cGVjdGVkRXJyb3JDYWxsYmFjazsKLSAgICAgICAgICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZnVu
Y3Rpb24gKCkgewotICAgICAgICAgICAgICAgIHNob3VsZEJlRmFsc2UoInZlcnNpb25DaGFuZ2VX
YXNGaXJlZCIpOwotICAgICAgICAgICAgICAgIHZhciB0cmFuc2FjdGlvbiA9IHJlcXVlc3QucmVz
dWx0OwotICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uLm9uY29tcGxldGUgPSBmdW5jdGlvbiAo
KSB7Ci0gICAgICAgICAgICAgICAgICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJ2ZXJzaW9uX2No
YW5nZV9jb25uZWN0aW9uLmNsb3NlKCkiKTsKLQotICAgICAgICAgICAgICAgICAgICB0ZXN0RGF0
YWJhc2VEZWxldGlvbigpOwotICAgICAgICAgICAgICAgIH07Ci0gICAgICAgICAgICB9OworICAg
ICAgICB9OworICAgICAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uICgpIHsKKyAgICAg
ICAgICAgIGV2YWxBbmRMb2coInZlcnNpb25fY2hhbmdlX2Nvbm5lY3Rpb24uY2xvc2UoKSIpOwor
ICAgICAgICAgICAgdGVzdERhdGFiYXNlRGVsZXRpb24oKTsKICAgICAgICAgfTsKICAgICB9Owog
fQpAQCAtMTc4LDUgKzE0OSwzIEBAIGZ1bmN0aW9uIHRlc3REYXRhYmFzZURlbGV0aW9uKCkKICAg
ICAgICAgfTsKICAgICB9OwogfQotCi10ZXN0KCk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>