<?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>212661</bug_id>
          
          <creation_ts>2020-06-02 14:11:10 -0700</creation_ts>
          <short_desc>Layout tests outside of the WPT import should not use resources from it</short_desc>
          <delta_ts>2020-06-10 08:36:17 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=212613</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Alberto Lopez Perez">clopez</reporter>
          <assigned_to name="Carlos Alberto Lopez Perez">clopez</assigned_to>
          <cc>cdumez</cc>
    
    <cc>dbarton</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fred.wang</cc>
    
    <cc>koivisto</cc>
    
    <cc>rniwa</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1658446</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2020-06-02 14:11:10 -0700</bug_when>
    <thetext>I noticed meanwhile working on bug 212613 that the update of the WPT imported canvas tests was breaking tests in the directory canvas/philip/tests/

This is because some of this tests are using scripts from the directory of imported WPT tests.
Checking in more detail I see more tests doing things like this (for example some MathML tests trying to use fonts from the imported WPT tests) and tests in fast/css and fast/custom-elements trying also to use scripts.


This is major issue (IMHO) because updating the imported WPT tests and resources shouldn&apos;t break tests outside of the imported WPT Tests.

Let&apos;s try to copy the needed resources for this tests so they can work on their own without depending on a specific version of the imported WPT resources.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1658459</commentid>
    <comment_count>1</comment_count>
      <attachid>400858</attachid>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2020-06-02 15:00:35 -0700</bug_when>
    <thetext>Created attachment 400858
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1660142</commentid>
    <comment_count>2</comment_count>
      <attachid>400858</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-06-08 01:10:25 -0700</bug_when>
    <thetext>Comment on attachment 400858
Patch

Do we know if these tests should be upstreamed to WPT or already have equivalent WPT tests?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1660269</commentid>
    <comment_count>3</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-06-08 11:11:43 -0700</bug_when>
    <thetext>&quot;try resources&quot; ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1661130</commentid>
    <comment_count>4</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2020-06-10 04:23:17 -0700</bug_when>
    <thetext>(In reply to youenn fablet from comment #2)
&gt; Comment on attachment 400858 [details]
&gt; Patch
&gt; 
&gt; Do we know if these tests should be upstreamed to WPT or already have
&gt; equivalent WPT tests?

I have checked, this is what I found:

&gt; canvas/philip/tests/2d.drawImage.incomplete.emptysrc.html
&gt; canvas/philip/tests/2d.drawImage.incomplete.nosrc.html
&gt; canvas/philip/tests/2d.drawImage.incomplete.removedsrc.html
&gt; canvas/philip/tests/2d.pattern.image.incomplete.emptysrc.html
&gt; canvas/philip/tests/2d.pattern.image.incomplete.removedsrc.html

^^ All of this are duplicated and can be removed in favor of the ones inside LayoutTests/imported/w3c/web-platform-tests/html/canvas/element

&gt; fast/css/shadow-parts/exportparts-syntax.html
&gt; fast/css/shadow-parts/invalidation-class-before-after.html
&gt; fast/css/shadow-parts/invalidation-class-descendant-combinator-export.html
&gt; fast/css/shadow-parts/invalidation-class-descendant-combinator.html
&gt; fast/css/shadow-parts/invalidation-class-sibling-combinator-export.html
&gt; fast/css/shadow-parts/invalidation-class-sibling-combinator.html

^^ I couldn&apos;t find duplicates for this tests in WPT. And according to git log, all of them were added by Antti (cc&apos;ing). Maybe this ones can be upstreamed to WPT.


&gt; fast/custom-elements/enqueue-custom-element-callback-reactions-inside-another-callback.html
&gt; fast/custom-elements/perform-microtask-checkpoint-before-construction.html
&gt; fast/custom-elements/throw-on-dynamic-markup-insertion-counter-construct.html
&gt; fast/custom-elements/throw-on-dynamic-markup-insertion-counter-reactions.html

^^ This 4 are upstreamed in WPT, but we still have not re-imported the WPT ones back. So we can&apos;t still de-duplicate them.

&gt; fast/custom-elements/DOMImplementation-createDocument.html
&gt; fast/custom-elements/adopting-from-frameless-document.html
&gt; fast/custom-elements/disconnected-callback-in-detached-iframe.html
&gt; fast/custom-elements/document-createElementNS.html
&gt; fast/custom-elements/reactions-for-webkit-extensions.html

^^ I couldn&apos;t find this on WPT. Maybe some of them can be upstreamed


&gt; fast/images/sizes-dynamic-001.html
&gt; fast/images/sizes-dynamic-002.html

^^ This two ones are upstreamed to WPT, and we have reimported them back. But the WPT version of this tests its not working for us due to we still don&apos;t support reftest-wait. See bug 186045

&gt; fast/shadow-dom/capturing-and-bubbling-event-listeners-across-shadow-trees.html

^ This one its upsteamed to WPT and we have re-imported it back already. We can de-duplicate it.

&gt; mathml/non-core/frac-linethickness-001.html
&gt; mathml/non-core/frac-linethickness-002.html
&gt; mathml/non-core/lengths-1.html
&gt; mathml/non-core/lengths-2.html
&gt; mathml/non-core/lengths-3.html

^ I understand this are upstreamed to WPT but we want to keep the older version for WebKit. See r249713

&gt; mathml/presentation/radical-bar-visibility.html

^ This one its not upstreamed to WPT, it was added in r193743 ... not sure if it makes sense to do it or not. CC&apos;ed Fred.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1661136</commentid>
    <comment_count>5</comment_count>
      <attachid>401534</attachid>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2020-06-10 04:44:20 -0700</bug_when>
    <thetext>Created attachment 401534
Patch

Updated patch (for landing) de-duplicating fast/shadow-dom/capturing-and-bubbling-event-listeners-across-shadow-trees.html and canvas/philip/tests/*</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1661170</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-06-10 08:35:29 -0700</bug_when>
    <thetext>Committed r262840: &lt;https://trac.webkit.org/changeset/262840&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 401534.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1661171</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-06-10 08:36:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/64210417&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>400858</attachid>
            <date>2020-06-02 15:00:35 -0700</date>
            <delta_ts>2020-06-10 04:44:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-212661-20200603000033.patch</filename>
            <type>text/plain</type>
            <size>87484</size>
            <attacher name="Carlos Alberto Lopez Perez">clopez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYyNDM4CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZGU0YTU4MGMyOGViYjU0NjRjNjAy
Mzc4ODQ2NTU0NjNiZDhmNGY2OS4uZmQwNGRiMzRmMjJiMDA4YzI2OWY3MmNhZTM4ZjkxMzhmZTA0
Mzk2MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0OSBAQAorMjAyMC0wNi0wMiAgQ2FybG9zIEFsYmVydG8g
TG9wZXogUGVyZXogIDxjbG9wZXpAaWdhbGlhLmNvbT4KKworICAgICAgICBTb21lIChub24gaW1w
b3J0ZWQpIGxheW91dCB0ZXN0cyB0cnkgcmVzb3VyY2VzIGZyb20gV1BUIGltcG9ydGVkIHRlc3Rz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTI2NjEK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTb21lIGxh
eW91dCB0ZXN0cyB3ZXJlIHVzaW5nIHJlc291cmNlIGZpbGVzIGZyb20gdGhlIGltcG9ydGVkIFdQ
VCB0ZXN0cy4KKyAgICAgICAgVGhpcyBpcyBhbiBpc3N1ZSBiZWNhdXNlIHVwZGF0aW5nIHRoZSBX
UFQgdGVzdHMgbWF5IGJyZWFrIHRoaXMgdGVzdHMgaW4KKyAgICAgICAgdGhlIGZ1dHVyZS4KKyAg
ICAgICAgVG8gZml4IHRoaXMsIHRoZSB1c2VkIHJlc291cmNlIGZpbGVzIGFyZSBjb3BpZWQgaW5z
aWRlIHRoZSBtYWluIGZvbGRlcgorICAgICAgICBvZiBlYWNoIHRlc3QsIHRoZSB0ZXN0cyBtb2Rp
ZmllZCB0byB1c2UgdGhlbS4KKworICAgICAgICAqIGNhbnZhcy9waGlsaXAvY2FudmFzLXRlc3Rz
X3dwdDIwMTkuY3NzOiBBZGRlZC4KKyAgICAgICAgKGh0bWwuZmFpbCk6CisgICAgICAgIChodG1s
LnBhc3MpOgorICAgICAgICAoaHRtbC5uZWVkc19jaGVjayk6CisgICAgICAgIChib2R5KToKKyAg
ICAgICAgKGE6bGluayk6CisgICAgICAgIChhOnZpc2l0ZWQpOgorICAgICAgICAoYm9keS5mcmFt
ZWQpOgorICAgICAgICAoaDEpOgorICAgICAgICAocCk6CisgICAgICAgIChwLm5vdGVzKToKKyAg
ICAgICAgKHVsKToKKyAgICAgICAgKC5yZWZzKToKKyAgICAgICAgKC5yZWZzIHVsKToKKyAgICAg
ICAgKC5yZWZzIGxpKToKKyAgICAgICAgKGNhbnZhcyk6CisgICAgICAgIChpbWcuZXhwZWN0ZWQp
OgorICAgICAgICAoaWZyYW1lKToKKyAgICAgICAgKC5vdXRwdXQpOgorICAgICAgICAoLnNob3df
b3V0cHV0IC5vdXRwdXQsIC5uZWVkc19jaGVjayAub3V0cHV0KToKKyAgICAgICAgKC5zaG93X291
dHB1dCAjc2hvd19vdXRwdXQpOgorICAgICAgICAoLnJlc291cmNlKToKKyAgICAgICAgKC5mYWxs
YmFjayk6CisgICAgICAgIChodG1sLm1pbmltYWwgYm9keSk6CisgICAgICAgIChodG1sLmZhaWwu
bWluaW1hbCk6CisgICAgICAgIChodG1sLnBhc3MubWluaW1hbCk6CisgICAgICAgIChodG1sLm5l
ZWRzX2NoZWNrLm1pbmltYWwpOgorICAgICAgICAoLm1pbmltYWwgI2QpOgorICAgICAgICAoLm1p
bmltYWwgLmV4cGVjdGVkdGV4dCk6CisgICAgICAgICgjcGFzc3RleHQsICNmYWlsdGV4dCk6Cisg
ICAgICAgICgubWluaW1hbC5wYXNzICNwYXNzdGV4dCwgLm1pbmltYWwuZmFpbCAjZmFpbHRleHQp
OgorICAgICAgICAqIGNhbnZhcy9waGlsaXAvY2FudmFzLXRlc3RzX3dwdDIwMTkuanM6IEFkZGVk
LgorICAgICAgICAoX3ZhbFRvU3RyaW5nKToKKyAgICAgICAgKF9hc3NlcnQpOgorICAgICAgICAo
X2Fzc2VydFNhbWUpOgorICAgICAgICAoX2Fzc2VydERpZmZlcmVudCk6CisgICAgICAgIChfZ2V0
UGl4ZWwpOgorICAgICAgICAoX2Fzc2VydFBpeGVsKToKKyAgICAgICAgKF9hc3NlcnRQaXhlbEFw
cHJveCk6CisgICAgICAgIChkZWZlclRlc3QpOgorICAgICAgICAoX2FkZFRlc3QpOgorICAgICAg
ICAodGVzdENvbG9yKToKKyAgICAgICAgKGFkZENyb3NzT3JpZ2luWWVsbG93SW1hZ2UpOgorICAg
ICAgICAoYWRkQ3Jvc3NPcmlnaW5SZWRpcmVjdFllbGxvd0ltYWdlKToKKyAgICAgICAgKG1ha2VJ
bWFnZSk6CisgICAgICAgIChmb3JFYWNoQ2FudmFzU291cmNlKToKKyAgICAgICAgKiBjYW52YXMv
cGhpbGlwL3Rlc3RzLzJkLmRyYXdJbWFnZS5pbmNvbXBsZXRlLmVtcHR5c3JjLmh0bWw6CisgICAg
ICAgICogY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5kcmF3SW1hZ2UuaW5jb21wbGV0ZS5ub3NyYy5o
dG1sOgorICAgICAgICAqIGNhbnZhcy9waGlsaXAvdGVzdHMvMmQuZHJhd0ltYWdlLmluY29tcGxl
dGUucmVtb3ZlZHNyYy5odG1sOgorICAgICAgICAqIGNhbnZhcy9waGlsaXAvdGVzdHMvMmQucGF0
dGVybi5pbWFnZS5pbmNvbXBsZXRlLmVtcHR5c3JjLmh0bWw6CisgICAgICAgICogY2FudmFzL3Bo
aWxpcC90ZXN0cy8yZC5wYXR0ZXJuLmltYWdlLmluY29tcGxldGUucmVtb3ZlZHNyYy5odG1sOgor
ICAgICAgICAqIGZhc3QvY3NzL3Jlc291cmNlcy9zaGFkb3ctaGVscGVyLmpzOiBBZGRlZC4KKyAg
ICAgICAgKGdldEVsZW1lbnRCeVNoYWRvd0lkcyk6CisgICAgICAgIChjZUNsYXNzLik6CisgICAg
ICAgIChpbnN0YWxsQ3VzdG9tRWxlbWVudCk6CisgICAgICAgICogZmFzdC9jc3Mvc2hhZG93LXBh
cnRzL2V4cG9ydHBhcnRzLXN5bnRheC5odG1sOgorICAgICAgICAqIGZhc3QvY3NzL3NoYWRvdy1w
YXJ0cy9pbnZhbGlkYXRpb24tY2xhc3MtYmVmb3JlLWFmdGVyLmh0bWw6CisgICAgICAgICogZmFz
dC9jc3Mvc2hhZG93LXBhcnRzL2ludmFsaWRhdGlvbi1jbGFzcy1kZXNjZW5kYW50LWNvbWJpbmF0
b3ItZXhwb3J0Lmh0bWw6CisgICAgICAgICogZmFzdC9jc3Mvc2hhZG93LXBhcnRzL2ludmFsaWRh
dGlvbi1jbGFzcy1kZXNjZW5kYW50LWNvbWJpbmF0b3IuaHRtbDoKKyAgICAgICAgKiBmYXN0L2Nz
cy9zaGFkb3ctcGFydHMvaW52YWxpZGF0aW9uLWNsYXNzLXNpYmxpbmctY29tYmluYXRvci1leHBv
cnQuaHRtbDoKKyAgICAgICAgKiBmYXN0L2Nzcy9zaGFkb3ctcGFydHMvaW52YWxpZGF0aW9uLWNs
YXNzLXNpYmxpbmctY29tYmluYXRvci5odG1sOgorICAgICAgICAqIGZhc3QvY3VzdG9tLWVsZW1l
bnRzL0RPTUltcGxlbWVudGF0aW9uLWNyZWF0ZURvY3VtZW50Lmh0bWw6CisgICAgICAgICogZmFz
dC9jdXN0b20tZWxlbWVudHMvYWRvcHRpbmctZnJvbS1mcmFtZWxlc3MtZG9jdW1lbnQuaHRtbDoK
KyAgICAgICAgKiBmYXN0L2N1c3RvbS1lbGVtZW50cy9kaXNjb25uZWN0ZWQtY2FsbGJhY2staW4t
ZGV0YWNoZWQtaWZyYW1lLmh0bWw6CisgICAgICAgICogZmFzdC9jdXN0b20tZWxlbWVudHMvZG9j
dW1lbnQtY3JlYXRlRWxlbWVudE5TLmh0bWw6CisgICAgICAgICogZmFzdC9jdXN0b20tZWxlbWVu
dHMvZW5xdWV1ZS1jdXN0b20tZWxlbWVudC1jYWxsYmFjay1yZWFjdGlvbnMtaW5zaWRlLWFub3Ro
ZXItY2FsbGJhY2suaHRtbDoKKyAgICAgICAgKiBmYXN0L2N1c3RvbS1lbGVtZW50cy9wZXJmb3Jt
LW1pY3JvdGFzay1jaGVja3BvaW50LWJlZm9yZS1jb25zdHJ1Y3Rpb24uaHRtbDoKKyAgICAgICAg
KiBmYXN0L2N1c3RvbS1lbGVtZW50cy9yZWFjdGlvbnMtZm9yLXdlYmtpdC1leHRlbnNpb25zLmh0
bWw6CisgICAgICAgICogZmFzdC9jdXN0b20tZWxlbWVudHMvcmVzb3VyY2VzL2N1c3RvbS1lbGVt
ZW50cy1oZWxwZXJzLmpzOiBBZGRlZC4KKyAgICAgICAgKGNyZWF0ZV93aW5kb3dfaW5fdGVzdCk6
CisgICAgICAgICh0ZXN0X3dpdGhfd2luZG93KToKKyAgICAgICAgKHByb3RvdHlwZS5hdHRyaWJ1
dGVDaGFuZ2VkQ2FsbGJhY2spOgorICAgICAgICAocHJvdG90eXBlLmNvbm5lY3RlZENhbGxiYWNr
KToKKyAgICAgICAgKHByb3RvdHlwZS5kaXNjb25uZWN0ZWRDYWxsYmFjayk6CisgICAgICAgIChw
cm90b3R5cGUuYWRvcHRlZENhbGxiYWNrKToKKyAgICAgICAgKHJldHVybi50YWtlTG9nKToKKyAg
ICAgICAgKGNyZWF0ZV9jb25zdHJ1Y3Rvcl9sb2cpOgorICAgICAgICAoYXNzZXJ0X2NvbnN0cnVj
dG9yX2xvZ19lbnRyeSk6CisgICAgICAgIChjcmVhdGVfY29ubmVjdGVkX2NhbGxiYWNrX2xvZyk6
CisgICAgICAgIChhc3NlcnRfY29ubmVjdGVkX2xvZ19lbnRyeSk6CisgICAgICAgIChjcmVhdGVf
ZGlzY29ubmVjdGVkX2NhbGxiYWNrX2xvZyk6CisgICAgICAgIChhc3NlcnRfZGlzY29ubmVjdGVk
X2xvZ19lbnRyeSk6CisgICAgICAgIChhc3NlcnRfYWRvcHRlZF9sb2dfZW50cnkpOgorICAgICAg
ICAoY3JlYXRlX2Fkb3B0ZWRfY2FsbGJhY2tfbG9nKToKKyAgICAgICAgKGNyZWF0ZV9hdHRyaWJ1
dGVfY2hhbmdlZF9jYWxsYmFja19sb2cpOgorICAgICAgICAoYXNzZXJ0X2F0dHJpYnV0ZV9sb2df
ZW50cnkpOgorICAgICAgICAoZGVmaW5lX25ld19jdXN0b21fZWxlbWVudC5DdXN0b21FbGVtZW50
KToKKyAgICAgICAgKGRlZmluZV9uZXdfY3VzdG9tX2VsZW1lbnQuQ3VzdG9tRWxlbWVudC5wcm90
b3R5cGUuYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrKToKKyAgICAgICAgKGRlZmluZV9uZXdfY3Vz
dG9tX2VsZW1lbnQuQ3VzdG9tRWxlbWVudC5wcm90b3R5cGUuY29ubmVjdGVkQ2FsbGJhY2spOgor
ICAgICAgICAoZGVmaW5lX25ld19jdXN0b21fZWxlbWVudC5DdXN0b21FbGVtZW50LnByb3RvdHlw
ZS5kaXNjb25uZWN0ZWRDYWxsYmFjayk6CisgICAgICAgIChkZWZpbmVfbmV3X2N1c3RvbV9lbGVt
ZW50LkN1c3RvbUVsZW1lbnQucHJvdG90eXBlLmFkb3B0ZWRDYWxsYmFjayk6CisgICAgICAgIChk
ZWZpbmVfbmV3X2N1c3RvbV9lbGVtZW50LnJldHVybi50YWtlTG9nKToKKyAgICAgICAgKEN1c3Rv
bUVsZW1lbnQpOgorICAgICAgICAoQ3VzdG9tRWxlbWVudC5wcm90b3R5cGUuYXR0cmlidXRlQ2hh
bmdlZENhbGxiYWNrKToKKyAgICAgICAgKEN1c3RvbUVsZW1lbnQucHJvdG90eXBlLmNvbm5lY3Rl
ZENhbGxiYWNrKToKKyAgICAgICAgKEN1c3RvbUVsZW1lbnQucHJvdG90eXBlLmRpc2Nvbm5lY3Rl
ZENhbGxiYWNrKToKKyAgICAgICAgKEN1c3RvbUVsZW1lbnQucHJvdG90eXBlLmFkb3B0ZWRDYWxs
YmFjayk6CisgICAgICAgICogZmFzdC9jdXN0b20tZWxlbWVudHMvcmVzb3VyY2VzL3JlYWN0aW9u
cy5qczogQWRkZWQuCisgICAgICAgICh0ZXN0Tm9kZUNvbm5lY3Rvcik6CisgICAgICAgICh0ZXN0
Tm9kZURpc2Nvbm5lY3Rvcik6CisgICAgICAgICh0ZXN0SW5zZXJ0aW5nTWFya3VwKToKKyAgICAg
ICAgKHRlc3RQYXJzaW5nTWFya3VwKToKKyAgICAgICAgKHByb3RvdHlwZS50ZXN0KToKKyAgICAg
ICAgKHRlc3RSZWZsZWN0Qm9vbGVhbkF0dHJpYnV0ZSk6CisgICAgICAgICh0ZXN0QXR0cmlidXRl
QWRkZXIpOgorICAgICAgICAqIGZhc3QvY3VzdG9tLWVsZW1lbnRzL3Rocm93LW9uLWR5bmFtaWMt
bWFya3VwLWluc2VydGlvbi1jb3VudGVyLWNvbnN0cnVjdC5odG1sOgorICAgICAgICAqIGZhc3Qv
Y3VzdG9tLWVsZW1lbnRzL3Rocm93LW9uLWR5bmFtaWMtbWFya3VwLWluc2VydGlvbi1jb3VudGVy
LXJlYWN0aW9ucy5odG1sOgorICAgICAgICAqIGZhc3QvaW1hZ2VzL3Jlc291cmNlcy9ncmVlbi0y
NTZ4MjU2LnBuZzogQWRkZWQuCisgICAgICAgICogZmFzdC9pbWFnZXMvc2l6ZXMtZHluYW1pYy0w
MDEtZXhwZWN0ZWQuaHRtbDoKKyAgICAgICAgKiBmYXN0L2ltYWdlcy9zaXplcy1keW5hbWljLTAw
MS5odG1sOgorICAgICAgICAqIGZhc3QvaW1hZ2VzL3NpemVzLWR5bmFtaWMtMDAyLWV4cGVjdGVk
Lmh0bWw6CisgICAgICAgICogZmFzdC9pbWFnZXMvc2l6ZXMtZHluYW1pYy0wMDIuaHRtbDoKKyAg
ICAgICAgKiBmYXN0L3NoYWRvdy1kb20vY2FwdHVyaW5nLWFuZC1idWJibGluZy1ldmVudC1saXN0
ZW5lcnMtYWNyb3NzLXNoYWRvdy10cmVlcy5odG1sOgorICAgICAgICAqIGZhc3Qvc2hhZG93LWRv
bS9yZXNvdXJjZXMvc2hhZG93LWRvbS5qczogQWRkZWQuCisgICAgICAgIChyZW1vdmVXaGl0ZVNw
YWNlT25seVRleHROb2Rlcyk6CisgICAgICAgIChjcmVhdGVUZXN0VHJlZSk6CisgICAgICAgIChj
cmVhdGVUZXN0VHJlZS53YWxrKToKKyAgICAgICAgKGxhYmVsRm9yKToKKyAgICAgICAgKGRpc3Bh
dGNoRXZlbnRXaXRoTG9nKToKKyAgICAgICAgKGRpc3BhdGNoVUFFdmVudFdpdGhMb2cpOgorICAg
ICAgICAoYXNzZXJ0X2V2ZW50X3BhdGhfZXF1YWxzKToKKyAgICAgICAgKiBtYXRobWwvbm9uLWNv
cmUvZnJhYy1saW5ldGhpY2tuZXNzLTAwMS1leHBlY3RlZC5odG1sOgorICAgICAgICAqIG1hdGht
bC9ub24tY29yZS9mcmFjLWxpbmV0aGlja25lc3MtMDAxLmh0bWw6CisgICAgICAgICogbWF0aG1s
L25vbi1jb3JlL2ZyYWMtbGluZXRoaWNrbmVzcy0wMDItZXhwZWN0ZWQuaHRtbDoKKyAgICAgICAg
KiBtYXRobWwvbm9uLWNvcmUvZnJhYy1saW5ldGhpY2tuZXNzLTAwMi5odG1sOgorICAgICAgICAq
IG1hdGhtbC9ub24tY29yZS9sZW5ndGhzLTEuaHRtbDoKKyAgICAgICAgKiBtYXRobWwvbm9uLWNv
cmUvbGVuZ3Rocy0yLmh0bWw6CisgICAgICAgICogbWF0aG1sL25vbi1jb3JlL2xlbmd0aHMtMy5o
dG1sOgorICAgICAgICAqIG1hdGhtbC9wcmVzZW50YXRpb24vcmFkaWNhbC1iYXItdmlzaWJpbGl0
eS5odG1sOgorICAgICAgICAqIG1hdGhtbC9yZXNvdXJjZXMvZnJhY3Rpb24tcnVsZXRoaWNrbmVz
czEwMDAwLndvZmY6IEFkZGVkLgorICAgICAgICAqIG1hdGhtbC9yZXNvdXJjZXMvcmFkaWNhbC1k
ZWdyZWVib3R0b21yYWlzZXBlcmNlbnQyNS1ydWxldGhpY2tuZXNzMTAwMC53b2ZmOiBBZGRlZC4K
KyAgICAgICAgKiBtYXRobWwvcmVzb3VyY2VzL3hoZWlnaHQ1MDAud29mZjogQWRkZWQuCisKIDIw
MjAtMDYtMDIgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAg
ICAgWyBtYWNPUyBdIHNjcm9sbGluZ2Nvb3JkaW5hdG9yL21hYy9sYXRjaGluZy9ob3Jpem9udGFs
LW92ZXJmbG93LWJhY2stc3dpcGUuaHRtbCBpcyBmbGFreSB0aW1pbmcgb3V0CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9jYW52YXMvcGhpbGlwL2NhbnZhcy10ZXN0c193cHQyMDE5LmNzcyBiL0xh
eW91dFRlc3RzL2NhbnZhcy9waGlsaXAvY2FudmFzLXRlc3RzX3dwdDIwMTkuY3NzCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjkwNjU2MDg1MmQwMzAxNWQ3YTZhNjEyZjdiYjhlMTY0ZTczM2UxMmMKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9jYW52YXMvcGhpbGlwL2NhbnZhcy10ZXN0c193cHQyMDE5LmNz
cwpAQCAtMCwwICsxLDEzNCBAQAoraHRtbC5mYWlsIHsKKyAgICBiYWNrZ3JvdW5kOiAjZjY2Owor
fQoraHRtbC5wYXNzIHsKKyAgICBiYWNrZ3JvdW5kOiAjNmY2OworfQoraHRtbC5uZWVkc19jaGVj
ayB7CisgICAgYmFja2dyb3VuZDogIzk5ZjsKK30KKworYm9keSB7CisgICAgZm9udC1zaXplOiBz
bWFsbDsKKyAgICBmb250LWZhbWlseTogc2Fucy1zZXJpZjsKKyAgICBjb2xvcjogYmxhY2s7Cit9
CisKK2E6bGluayB7CisgICAgY29sb3I6ICMwMGM7Cit9CithOnZpc2l0ZWQgeworICAgIGNvbG9y
OiAjODA4OworfQorCitib2R5LmZyYW1lZCB7CisgICAgZm9udC1zaXplOiB4LXNtYWxsOworfQor
CitoMSB7CisgICAgZm9udC1zaXplOiBsYXJnZXI7CisgICAgbWFyZ2luOiAwOworICAgIHBhZGRp
bmctbGVmdDogMC41ZW07CisgICAgdGV4dC1pbmRlbnQ6IC0wLjVlbTsKK30KKworcCB7CisgICAg
bWFyZ2luOiAwOworfQorCitwLm5vdGVzIHsKKyAgICBtYXJnaW4tYm90dG9tOiAwLjVlbTsKKyAg
ICBmb250LXN0eWxlOiBpdGFsaWM7Cit9CisKK3VsIHsKKyAgICBtYXJnaW46IDA7CisgICAgbWFy
Z2luLWJvdHRvbTogMC41ZW07CisgICAgcGFkZGluZzogMDsKKyAgICBwYWRkaW5nLWxlZnQ6IDFl
bTsKK30KKworLnJlZnMgeworICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKKyAgICBtYXJnaW4tYm90
dG9tOiAwLjVlbTsKK30KKworLnJlZnMgdWwgeworICAgIGRpc3BsYXk6IGlubGluZTsKKyAgICBt
YXJnaW46IDA7CisgICAgcGFkZGluZzogMDsKK30KKworLnJlZnMgbGkgeworICAgIGRpc3BsYXk6
IGlubGluZTsKKyAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7CisgICAgbWFyZ2luOiAwOworICAg
IHBhZGRpbmc6IDA7Cit9CisKK2NhbnZhcyB7CisgICAgZGlzcGxheTogbm9uZTsKKyAgICB2aXNp
YmlsaXR5OiBoaWRkZW47CisgICAgYm9yZGVyOiAycHggI2YwZiBzb2xpZDsKKyAgICBiYWNrZ3Jv
dW5kOiB1cmwoaW1hZ2VzL2JhY2tncm91bmQucG5nKTsKK30KKworaW1nLmV4cGVjdGVkIHsKKyAg
ICBkaXNwbGF5OiBub25lOworICAgIGJvcmRlcjogMnB4ICNmMGYgc29saWQ7CisgICAgYmFja2dy
b3VuZDogdXJsKGltYWdlcy9iYWNrZ3JvdW5kLnBuZyk7Cit9CisKK2lmcmFtZSB7CisgICAgYm9y
ZGVyOiAycHggI2YwZiBzb2xpZDsKK30KKworLm91dHB1dCB7CisgICAgZGlzcGxheTogbm9uZTsK
K30KKworLnNob3dfb3V0cHV0IC5vdXRwdXQsIC5uZWVkc19jaGVjayAub3V0cHV0ICB7CisgICAg
ZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsKKyAgICB2aXNpYmlsaXR5OiB2aXNpYmxlICFpbXBv
cnRhbnQ7Cit9CisKKy5zaG93X291dHB1dCAjc2hvd19vdXRwdXQgeworICAgIGRpc3BsYXk6IG5v
bmU7Cit9CisKKy5yZXNvdXJjZSB7CisgICAgdmlzaWJpbGl0eTogaGlkZGVuOworICAgIGhlaWdo
dDogMDsKK30KKworLmZhbGxiYWNrIHsKKyAgICBmb250LXNpemU6IDJlbTsKKyAgICBmb250LXdl
aWdodDogYm9sZDsKKyAgICBjb2xvcjogI2EwMDsKK30KKworCitodG1sLm1pbmltYWwgYm9keSB7
CisgICAgY29sb3I6IHdoaXRlOworfQoraHRtbC5mYWlsLm1pbmltYWwgeworICAgIGJhY2tncm91
bmQ6ICNmMDA7Cit9CitodG1sLnBhc3MubWluaW1hbCB7CisgICAgYmFja2dyb3VuZDogIzA4MDsK
K30KK2h0bWwubmVlZHNfY2hlY2subWluaW1hbCB7CisgICAgYmFja2dyb3VuZDogIzAwODsKK30K
Ky5taW5pbWFsICNkIHsKKyAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7Cit9CisubWluaW1h
bCAuZXhwZWN0ZWR0ZXh0IHsKKyAgICB2aXNpYmlsaXR5OiBoaWRkZW4gIWltcG9ydGFudDsKK30K
KyNwYXNzdGV4dCwgI2ZhaWx0ZXh0IHsKKyAgICBkaXNwbGF5OiBub25lOworfQorLm1pbmltYWwu
cGFzcyAjcGFzc3RleHQsIC5taW5pbWFsLmZhaWwgI2ZhaWx0ZXh0IHsKKyAgICBkaXNwbGF5OiBi
bG9jazsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NhbnZhcy9waGlsaXAvY2FudmFzLXRl
c3RzX3dwdDIwMTkuanMgYi9MYXlvdXRUZXN0cy9jYW52YXMvcGhpbGlwL2NhbnZhcy10ZXN0c193
cHQyMDE5LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc2MzEzYmM4ZmJhYzI3NjcyMTI4YjU2Y2IzMzI3ZmVhZjk1
MTY0ZTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jYW52YXMvcGhpbGlwL2NhbnZh
cy10ZXN0c193cHQyMDE5LmpzCkBAIC0wLDAgKzEsMjAwIEBACitmdW5jdGlvbiBfdmFsVG9TdHJp
bmcodmFsKQoreworICAgIGlmICh2YWwgPT09IHVuZGVmaW5lZCB8fCB2YWwgPT09IG51bGwpCisg
ICAgICAgIHJldHVybiAnWycgKyB0eXBlb2YodmFsKSArICddJzsKKyAgICByZXR1cm4gdmFsLnRv
U3RyaW5nKCkgKyAnWycgKyB0eXBlb2YodmFsKSArICddJzsKK30KKworZnVuY3Rpb24gX2Fzc2Vy
dChjb25kLCB0ZXh0KQoreworICAgIGFzc2VydF90cnVlKCEhY29uZCwgdGV4dCk7Cit9CisKK2Z1
bmN0aW9uIF9hc3NlcnRTYW1lKGEsIGIsIHRleHRfYSwgdGV4dF9iKQoreworICAgIHZhciBtc2cg
PSB0ZXh0X2EgKyAnID09PSAnICsgdGV4dF9iICsgJyAoZ290ICcgKyBfdmFsVG9TdHJpbmcoYSkg
KworICAgICAgICAgICAgICAnLCBleHBlY3RlZCAnICsgX3ZhbFRvU3RyaW5nKGIpICsgJyknOwor
ICAgIGFzc2VydF9lcXVhbHMoYSwgYiwgbXNnKTsKK30KKworZnVuY3Rpb24gX2Fzc2VydERpZmZl
cmVudChhLCBiLCB0ZXh0X2EsIHRleHRfYikKK3sKKyAgICB2YXIgbXNnID0gdGV4dF9hICsgJyAh
PT0gJyArIHRleHRfYiArICcgKGdvdCAnICsgX3ZhbFRvU3RyaW5nKGEpICsKKyAgICAgICAgICAg
ICAgJywgZXhwZWN0ZWQgbm90ICcgKyBfdmFsVG9TdHJpbmcoYikgKyAnKSc7CisgICAgYXNzZXJ0
X25vdF9lcXVhbHMoYSwgYiwgbXNnKTsKK30KKworCitmdW5jdGlvbiBfZ2V0UGl4ZWwoY2FudmFz
LCB4LHkpCit7CisgICAgdmFyIGN0eCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpOworICAgIHZh
ciBpbWdkYXRhID0gY3R4LmdldEltYWdlRGF0YSh4LCB5LCAxLCAxKTsKKyAgICByZXR1cm4gWyBp
bWdkYXRhLmRhdGFbMF0sIGltZ2RhdGEuZGF0YVsxXSwgaW1nZGF0YS5kYXRhWzJdLCBpbWdkYXRh
LmRhdGFbM10gXTsKK30KKworZnVuY3Rpb24gX2Fzc2VydFBpeGVsKGNhbnZhcywgeCx5LCByLGcs
YixhLCBwb3MsIGNvbG91cikKK3sKKyAgICB2YXIgYyA9IF9nZXRQaXhlbChjYW52YXMsIHgseSk7
CisgICAgYXNzZXJ0X2VxdWFscyhjWzBdLCByLCAnUmVkIGNoYW5uZWwgb2YgdGhlIHBpeGVsIGF0
ICgnICsgeCArICcsICcgKyB5ICsgJyknKTsKKyAgICBhc3NlcnRfZXF1YWxzKGNbMV0sIGcsICdH
cmVlbiBjaGFubmVsIG9mIHRoZSBwaXhlbCBhdCAoJyArIHggKyAnLCAnICsgeSArICcpJyk7Cisg
ICAgYXNzZXJ0X2VxdWFscyhjWzJdLCBiLCAnQmx1ZSBjaGFubmVsIG9mIHRoZSBwaXhlbCBhdCAo
JyArIHggKyAnLCAnICsgeSArICcpJyk7CisgICAgYXNzZXJ0X2VxdWFscyhjWzNdLCBhLCAnQWxw
aGEgY2hhbm5lbCBvZiB0aGUgcGl4ZWwgYXQgKCcgKyB4ICsgJywgJyArIHkgKyAnKScpOworfQor
CitmdW5jdGlvbiBfYXNzZXJ0UGl4ZWxBcHByb3goY2FudmFzLCB4LHksIHIsZyxiLGEsIHBvcywg
Y29sb3VyLCB0b2xlcmFuY2UpCit7CisgICAgdmFyIGMgPSBfZ2V0UGl4ZWwoY2FudmFzLCB4LHkp
OworICAgIGFzc2VydF9hcHByb3hfZXF1YWxzKGNbMF0sIHIsIHRvbGVyYW5jZSwgJ1JlZCBjaGFu
bmVsIG9mIHRoZSBwaXhlbCBhdCAoJyArIHggKyAnLCAnICsgeSArICcpJyk7CisgICAgYXNzZXJ0
X2FwcHJveF9lcXVhbHMoY1sxXSwgZywgdG9sZXJhbmNlLCAnR3JlZW4gY2hhbm5lbCBvZiB0aGUg
cGl4ZWwgYXQgKCcgKyB4ICsgJywgJyArIHkgKyAnKScpOworICAgIGFzc2VydF9hcHByb3hfZXF1
YWxzKGNbMl0sIGIsIHRvbGVyYW5jZSwgJ0JsdWUgY2hhbm5lbCBvZiB0aGUgcGl4ZWwgYXQgKCcg
KyB4ICsgJywgJyArIHkgKyAnKScpOworICAgIGFzc2VydF9hcHByb3hfZXF1YWxzKGNbM10sIGEs
IHRvbGVyYW5jZSwgJ0FscGhhIGNoYW5uZWwgb2YgdGhlIHBpeGVsIGF0ICgnICsgeCArICcsICcg
KyB5ICsgJyknKTsKK30KKworbGV0IF9kZWZlcnJlZCA9IGZhbHNlOworCitmdW5jdGlvbiBkZWZl
clRlc3QoKSB7CisgIF9kZWZlcnJlZCA9IHRydWU7Cit9CisKK2Z1bmN0aW9uIF9hZGRUZXN0KHRl
c3RGbikKK3sKKyAgICBvbl9ldmVudCh3aW5kb3csICJsb2FkIiwgZnVuY3Rpb24oKQorICAgIHsK
KyAgICAgICAgdC5zdGVwKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdmFyIGNhbnZhcyA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdjJyk7CisgICAgICAgICAgICB2YXIgY3R4ID0gY2FudmFz
LmdldENvbnRleHQoJzJkJyk7CisgICAgICAgICAgICB0LnN0ZXAodGVzdEZuLCB3aW5kb3csIGNh
bnZhcywgY3R4KTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgaWYgKCFfZGVmZXJyZWQpIHsKKyAg
ICAgICAgICAgIHQuZG9uZSgpOworICAgICAgICB9CisgICAgfSk7Cit9CisKK2Z1bmN0aW9uIF9h
c3NlcnRHcmVlbihjdHgsIGNhbnZhc1dpZHRoLCBjYW52YXNIZWlnaHQpCit7CisgICAgdmFyIHRl
c3RDb2xvciA9IGZ1bmN0aW9uKGQsIGlkeCwgZXhwZWN0ZWQpIHsKKyAgICAgICAgYXNzZXJ0X2Vx
dWFscyhkW2lkeF0sIGV4cGVjdGVkLCAiZFsiICsgaWR4ICsgIl0iLCBTdHJpbmcoZXhwZWN0ZWQp
KTsKKyAgICB9OworICAgIHZhciBpbWFnZWRhdGEgPSBjdHguZ2V0SW1hZ2VEYXRhKDAsIDAsIGNh
bnZhc1dpZHRoLCBjYW52YXNIZWlnaHQpOworICAgIHZhciB3ID0gaW1hZ2VkYXRhLndpZHRoLCBo
ID0gaW1hZ2VkYXRhLmhlaWdodCwgZCA9IGltYWdlZGF0YS5kYXRhOworICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgaDsgKytpKSB7CisgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgdzsgKytqKSB7
CisgICAgICAgICAgICB0ZXN0Q29sb3IoZCwgNCAqICh3ICogaSArIGopICsgMCwgMCk7CisgICAg
ICAgICAgICB0ZXN0Q29sb3IoZCwgNCAqICh3ICogaSArIGopICsgMSwgMjU1KTsKKyAgICAgICAg
ICAgIHRlc3RDb2xvcihkLCA0ICogKHcgKiBpICsgaikgKyAyLCAwKTsKKyAgICAgICAgICAgIHRl
c3RDb2xvcihkLCA0ICogKHcgKiBpICsgaikgKyAzLCAyNTUpOworICAgICAgICB9CisgICAgfQor
fQorCitmdW5jdGlvbiBhZGRDcm9zc09yaWdpblllbGxvd0ltYWdlKCkKK3sKKyAgICB2YXIgaW1n
ID0gbmV3IEltYWdlKCk7CisgICAgaW1nLmlkID0gInllbGxvdy5wbmciOworICAgIGltZy5jbGFz
c05hbWUgPSAicmVzb3VyY2UiOworICAgIGltZy5zcmMgPSBnZXRfaG9zdF9pbmZvKCkuSFRUUF9S
RU1PVEVfT1JJR0lOICsgIi9pbWFnZXMveWVsbG93LnBuZyI7CisgICAgZG9jdW1lbnQuYm9keS5h
cHBlbmRDaGlsZChpbWcpOworfQorCitmdW5jdGlvbiBhZGRDcm9zc09yaWdpblJlZGlyZWN0WWVs
bG93SW1hZ2UoKQoreworICAgIHZhciBpbWcgPSBuZXcgSW1hZ2UoKTsKKyAgICBpbWcuaWQgPSAi
eWVsbG93LnBuZyI7CisgICAgaW1nLmNsYXNzTmFtZSA9ICJyZXNvdXJjZSI7CisgICAgaW1nLnNy
YyA9IGdldF9ob3N0X2luZm8oKS5IVFRQX09SSUdJTiArICIvY29tbW9uL3JlZGlyZWN0LnB5P2xv
Y2F0aW9uPSIgKworICAgICAgICBnZXRfaG9zdF9pbmZvKCkuSFRUUF9SRU1PVEVfT1JJR0lOICsg
Ii9pbWFnZXMveWVsbG93LnBuZyI7CisgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpbWcp
OworfQorCitmdW5jdGlvbiBmb3JFYWNoQ2FudmFzU291cmNlKGNyb3NzT3JpZ2luVXJsLCBzYW1l
T3JpZ2luVXJsLCBjYWxsYmFjaykgeworICBmdW5jdGlvbiBtYWtlSW1hZ2UoKSB7CisgICAgcmV0
dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsKKyAgICAgIGNvbnN0IGltYWdl
ID0gbmV3IEltYWdlKCk7CisgICAgICBpbWFnZS5vbmxvYWQgPSAoKSA9PiByZXNvbHZlKGltYWdl
KTsKKyAgICAgIGltYWdlLm9uZXJyb3IgPSByZWplY3Q7CisgICAgICBpbWFnZS5zcmMgPSBjcm9z
c09yaWdpblVybCArICIvaW1hZ2VzL3JlZC5wbmciOworICAgIH0pOworICB9CisKKyAgY29uc3Qg
YXJndW1lbnRzID0gWworICAgIHsKKyAgICAgIG5hbWU6ICJjcm9zcy1vcmlnaW4gSFRNTEltYWdl
RWxlbWVudCIsCisgICAgICBmYWN0b3J5OiBtYWtlSW1hZ2UsCisgICAgfSwKKworICAgIHsKKyAg
ICAgIG5hbWU6ICJjcm9zcy1vcmlnaW4gU1ZHSW1hZ2VFbGVtZW50IiwKKyAgICAgIGZhY3Rvcnk6
ICgpID0+IHsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+
IHsKKyAgICAgICAgICBjb25zdCBpbWFnZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygiaHR0
cDovL3d3dy53My5vcmcvMjAwMC9zdmciLCAiaW1hZ2UiKTsKKyAgICAgICAgICBpbWFnZS5vbmxv
YWQgPSAoKSA9PiByZXNvbHZlKGltYWdlKTsKKyAgICAgICAgICBpbWFnZS5vbmVycm9yID0gcmVq
ZWN0OworICAgICAgICAgIGltYWdlLnNldEF0dHJpYnV0ZSgiZXh0ZXJuYWxSZXNvdXJjZXNSZXF1
aXJlZCIsICJ0cnVlIik7CisgICAgICAgICAgaW1hZ2Uuc2V0QXR0cmlidXRlTlMoImh0dHA6Ly93
d3cudzMub3JnLzE5OTkveGxpbmsiLCAneGxpbms6aHJlZicsIGNyb3NzT3JpZ2luVXJsICsgIi9p
bWFnZXMvcmVkLnBuZyIpOworICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaW1h
Z2UpOworICAgICAgICB9KTsKKyAgICAgIH0sCisgICAgfSwKKworICAgIHsKKyAgICAgIG5hbWU6
ICJjcm9zcy1vcmlnaW4gSFRNTFZpZGVvRWxlbWVudCIsCisgICAgICBmYWN0b3J5OiAoKSA9PiB7
CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7CisgICAg
ICAgICAgY29uc3QgdmlkZW8gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ2aWRlbyIpOworICAg
ICAgICAgIHZpZGVvLm9uY2FucGxheXRocm91Z2ggPSAoKSA9PiByZXNvbHZlKHZpZGVvKTsKKyAg
ICAgICAgICB2aWRlby5vbmVycm9yID0gcmVqZWN0OworICAgICAgICAgIHZpZGVvLnNyYyA9IGdl
dFZpZGVvVVJJKGNyb3NzT3JpZ2luVXJsICsgIi9tZWRpYS9tb3ZpZV8zMDAiKTsKKyAgICAgICAg
fSk7CisgICAgICB9LAorICAgIH0sCisKKyAgICB7CisgICAgICBuYW1lOiAicmVkaXJlY3RlZCB0
byBjcm9zcy1vcmlnaW4gSFRNTFZpZGVvRWxlbWVudCIsCisgICAgICBmYWN0b3J5OiAoKSA9PiB7
CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7CisgICAg
ICAgICAgY29uc3QgdmlkZW8gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ2aWRlbyIpOworICAg
ICAgICAgIHZpZGVvLm9uY2FucGxheXRocm91Z2ggPSAoKSA9PiByZXNvbHZlKHZpZGVvKTsKKyAg
ICAgICAgICB2aWRlby5vbmVycm9yID0gcmVqZWN0OworICAgICAgICAgIHZpZGVvLnNyYyA9ICIv
Y29tbW9uL3JlZGlyZWN0LnB5P2xvY2F0aW9uPSIgKyBnZXRWaWRlb1VSSShjcm9zc09yaWdpblVy
bCArICIvbWVkaWEvbW92aWVfMzAwIik7CisgICAgICAgIH0pOworICAgICAgfSwKKyAgICB9LAor
CisgICAgeworICAgICAgbmFtZTogInJlZGlyZWN0ZWQgdG8gc2FtZS1vcmlnaW4gSFRNTFZpZGVv
RWxlbWVudCIsCisgICAgICBmYWN0b3J5OiAoKSA9PiB7CisgICAgICAgIHJldHVybiBuZXcgUHJv
bWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7CisgICAgICAgICAgY29uc3QgdmlkZW8gPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJ2aWRlbyIpOworICAgICAgICAgIHZpZGVvLm9uY2FucGxheXRo
cm91Z2ggPSAoKSA9PiByZXNvbHZlKHZpZGVvKTsKKyAgICAgICAgICB2aWRlby5vbmVycm9yID0g
cmVqZWN0OworICAgICAgICAgIHZpZGVvLnNyYyA9IGNyb3NzT3JpZ2luVXJsICsgIi9jb21tb24v
cmVkaXJlY3QucHk/bG9jYXRpb249IiArIGdldFZpZGVvVVJJKHNhbWVPcmlnaW5VcmwgKyAiL21l
ZGlhL21vdmllXzMwMCIpOworICAgICAgICB9KTsKKyAgICAgIH0sCisgICAgfSwKKworICAgIHsK
KyAgICAgIG5hbWU6ICJ1bmNsZWFuIEhUTUxDYW52YXNFbGVtZW50IiwKKyAgICAgIGZhY3Rvcnk6
ICgpID0+IHsKKyAgICAgICAgcmV0dXJuIG1ha2VJbWFnZSgpLnRoZW4oaW1hZ2UgPT4geworICAg
ICAgICAgIGNvbnN0IGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpOwor
ICAgICAgICAgIGNvbnN0IGNvbnRleHQgPSBjYW52YXMuZ2V0Q29udGV4dCgiMmQiKTsKKyAgICAg
ICAgICBjb250ZXh0LmRyYXdJbWFnZShpbWFnZSwgMCwgMCk7CisgICAgICAgICAgcmV0dXJuIGNh
bnZhczsKKyAgICAgICAgfSk7CisgICAgICB9LAorICAgIH0sCisKKyAgICB7CisgICAgICBuYW1l
OiAidW5jbGVhbiBJbWFnZUJpdG1hcCIsCisgICAgICBmYWN0b3J5OiAoKSA9PiB7CisgICAgICAg
IHJldHVybiBtYWtlSW1hZ2UoKS50aGVuKGNyZWF0ZUltYWdlQml0bWFwKTsKKyAgICAgIH0sCisg
ICAgfSwKKyAgXTsKKworICBmb3IgKGxldCB7IG5hbWUsIGZhY3RvcnkgfSBvZiBhcmd1bWVudHMp
IHsKKyAgICBjYWxsYmFjayhuYW1lLCBmYWN0b3J5KTsKKyAgfQorfQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5kcmF3SW1hZ2UuaW5jb21wbGV0ZS5lbXB0
eXNyYy5odG1sIGIvTGF5b3V0VGVzdHMvY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5kcmF3SW1hZ2Uu
aW5jb21wbGV0ZS5lbXB0eXNyYy5odG1sCmluZGV4IGEwNTZkYjczN2NkNDMxYTU1OGQxOGVlYWE4
MDQ1NmE5ZDc2YzAzZmMuLmYzMThlYTIyMDRiOTg0ZDA0ZWRjNGU0YTUwNWIzNGJkNzZiOTkzNWQg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2NhbnZhcy9waGlsaXAvdGVzdHMvMmQuZHJhd0ltYWdl
LmluY29tcGxldGUuZW1wdHlzcmMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9jYW52YXMvcGhpbGlw
L3Rlc3RzLzJkLmRyYXdJbWFnZS5pbmNvbXBsZXRlLmVtcHR5c3JjLmh0bWwKQEAgLTMsOCArMyw4
IEBACiA8dGl0bGU+Q2FudmFzIHRlc3Q6IDJkLmRyYXdJbWFnZS5pbmNvbXBsZXRlLmVtcHR5c3Jj
PC90aXRsZT4KIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMi
Pjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3Jl
cG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy8yZGNvbnRleHQvcmVzb3VyY2VzL2NhbnZhcy10ZXN0cy5qcyI+PC9z
Y3JpcHQ+Ci08bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uLy4uL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvMmRjb250ZXh0L3Jlc291cmNlcy9jYW52YXMtdGVzdHMuY3Nz
Ij4KKzxzY3JpcHQgc3JjPSIuLi9jYW52YXMtdGVzdHNfd3B0MjAxOS5qcyI+PC9zY3JpcHQ+Cis8
bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uL2NhbnZhcy10ZXN0c193cHQyMDE5LmNzcyI+
CiA8Ym9keSBjbGFzcz0ic2hvd19vdXRwdXQiPgogCiA8aDE+MmQuZHJhd0ltYWdlLmluY29tcGxl
dGUuZW1wdHlzcmM8L2gxPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY2FudmFzL3BoaWxpcC90
ZXN0cy8yZC5kcmF3SW1hZ2UuaW5jb21wbGV0ZS5ub3NyYy5odG1sIGIvTGF5b3V0VGVzdHMvY2Fu
dmFzL3BoaWxpcC90ZXN0cy8yZC5kcmF3SW1hZ2UuaW5jb21wbGV0ZS5ub3NyYy5odG1sCmluZGV4
IGYxYWVjYmYxNTM1NTA5ZDdmYTQzZjE5MTkwOGVjYjE3Zjk4NDE5NWIuLjA0NTY0Y2JjMzU1ZWFl
M2Q0MzU0NzNlOGQxNmNjZDUwZmZiZTA5MTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2NhbnZh
cy9waGlsaXAvdGVzdHMvMmQuZHJhd0ltYWdlLmluY29tcGxldGUubm9zcmMuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLmRyYXdJbWFnZS5pbmNvbXBsZXRlLm5v
c3JjLmh0bWwKQEAgLTMsOCArMyw4IEBACiA8dGl0bGU+Q2FudmFzIHRlc3Q6IDJkLmRyYXdJbWFn
ZS5pbmNvbXBsZXRlLm5vc3JjPC90aXRsZT4KIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291
cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4v
Li4vaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy8yZGNvbnRleHQvcmVzb3VyY2VzL2Nh
bnZhcy10ZXN0cy5qcyI+PC9zY3JpcHQ+Ci08bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4u
Ly4uLy4uL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvMmRjb250ZXh0L3Jlc291cmNl
cy9jYW52YXMtdGVzdHMuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi9jYW52YXMtdGVzdHNfd3B0MjAx
OS5qcyI+PC9zY3JpcHQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uL2NhbnZhcy10
ZXN0c193cHQyMDE5LmNzcyI+CiA8Ym9keSBjbGFzcz0ic2hvd19vdXRwdXQiPgogCiA8aDE+MmQu
ZHJhd0ltYWdlLmluY29tcGxldGUubm9zcmM8L2gxPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Y2FudmFzL3BoaWxpcC90ZXN0cy8yZC5kcmF3SW1hZ2UuaW5jb21wbGV0ZS5yZW1vdmVkc3JjLmh0
bWwgYi9MYXlvdXRUZXN0cy9jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLmRyYXdJbWFnZS5pbmNvbXBs
ZXRlLnJlbW92ZWRzcmMuaHRtbAppbmRleCBmMDBjZDk3NmQxZThkZjM2ZDQyN2JmNDgyZDllMDRm
NWVkYmMwMjY4Li40NmFjYzZkZjcyYWYwMTViN2NhMmMzOGUyYzlhOTczZDE0MDVjMzAxIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLmRyYXdJbWFnZS5pbmNv
bXBsZXRlLnJlbW92ZWRzcmMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9jYW52YXMvcGhpbGlwL3Rl
c3RzLzJkLmRyYXdJbWFnZS5pbmNvbXBsZXRlLnJlbW92ZWRzcmMuaHRtbApAQCAtMyw4ICszLDgg
QEAKIDx0aXRsZT5DYW52YXMgdGVzdDogMmQuZHJhd0ltYWdlLmluY29tcGxldGUucmVtb3ZlZHNy
YzwvdGl0bGU+CiA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpz
Ij48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3Ny
ZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvMmRjb250ZXh0L3Jlc291cmNlcy9jYW52YXMtdGVzdHMuanMiPjwv
c2NyaXB0PgotPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi8uLi9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzLzJkY29udGV4dC9yZXNvdXJjZXMvY2FudmFzLXRlc3RzLmNz
cyI+Cis8c2NyaXB0IHNyYz0iLi4vY2FudmFzLXRlc3RzX3dwdDIwMTkuanMiPjwvc2NyaXB0Pgor
PGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi9jYW52YXMtdGVzdHNfd3B0MjAxOS5jc3Mi
PgogPGJvZHkgY2xhc3M9InNob3dfb3V0cHV0Ij4KIAogPGgxPjJkLmRyYXdJbWFnZS5pbmNvbXBs
ZXRlLnJlbW92ZWRzcmM8L2gxPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY2FudmFzL3BoaWxp
cC90ZXN0cy8yZC5wYXR0ZXJuLmltYWdlLmluY29tcGxldGUuZW1wdHlzcmMuaHRtbCBiL0xheW91
dFRlc3RzL2NhbnZhcy9waGlsaXAvdGVzdHMvMmQucGF0dGVybi5pbWFnZS5pbmNvbXBsZXRlLmVt
cHR5c3JjLmh0bWwKaW5kZXggNmQ4NjlmYjQxNzg3N2U4YzVlZGE4MDc3N2NiNWNjZjExODRjNzZm
Mi4uZDgxZDU2NDAyNTlmNjMzODM4MzcyZDBhMDNiZDBhM2IzODFmZTVkMCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5wYXR0ZXJuLmltYWdlLmluY29tcGxl
dGUuZW1wdHlzcmMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9jYW52YXMvcGhpbGlwL3Rlc3RzLzJk
LnBhdHRlcm4uaW1hZ2UuaW5jb21wbGV0ZS5lbXB0eXNyYy5odG1sCkBAIC0zLDggKzMsOCBAQAog
PHRpdGxlPkNhbnZhcyB0ZXN0OiAyZC5wYXR0ZXJuLmltYWdlLmluY29tcGxldGUuZW1wdHlzcmM8
L3RpdGxlPgogPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+
PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzLzJkY29udGV4dC9yZXNvdXJjZXMvY2FudmFzLXRlc3RzLmpzIj48L3Nj
cmlwdD4KLTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4vaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy8yZGNvbnRleHQvcmVzb3VyY2VzL2NhbnZhcy10ZXN0cy5jc3Mi
PgorPHNjcmlwdCBzcmM9Ii4uL2NhbnZhcy10ZXN0c193cHQyMDE5LmpzIj48L3NjcmlwdD4KKzxs
aW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vY2FudmFzLXRlc3RzX3dwdDIwMTkuY3NzIj4K
IDxib2R5IGNsYXNzPSJzaG93X291dHB1dCI+CiAKIDxoMT4yZC5wYXR0ZXJuLmltYWdlLmluY29t
cGxldGUuZW1wdHlzcmM8L2gxPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY2FudmFzL3BoaWxp
cC90ZXN0cy8yZC5wYXR0ZXJuLmltYWdlLmluY29tcGxldGUucmVtb3ZlZHNyYy5odG1sIGIvTGF5
b3V0VGVzdHMvY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5wYXR0ZXJuLmltYWdlLmluY29tcGxldGUu
cmVtb3ZlZHNyYy5odG1sCmluZGV4IDYxNjg5YzkyOWQ4M2E3ZTJlZTNjYWY2MzcyN2NmYWViYzU4
NTljNzIuLjkzOTM4YzhhMTY4YzFhNmY1MmJkNjJmZmNhMDU4MzU2ZmE2YWNmN2UgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2NhbnZhcy9waGlsaXAvdGVzdHMvMmQucGF0dGVybi5pbWFnZS5pbmNv
bXBsZXRlLnJlbW92ZWRzcmMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9jYW52YXMvcGhpbGlwL3Rl
c3RzLzJkLnBhdHRlcm4uaW1hZ2UuaW5jb21wbGV0ZS5yZW1vdmVkc3JjLmh0bWwKQEAgLTMsOCAr
Myw4IEBACiA8dGl0bGU+Q2FudmFzIHRlc3Q6IDJkLnBhdHRlcm4uaW1hZ2UuaW5jb21wbGV0ZS5y
ZW1vdmVkc3JjPC90aXRsZT4KIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhh
cm5lc3MuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0
aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy8yZGNvbnRleHQvcmVzb3VyY2VzL2NhbnZhcy10ZXN0
cy5qcyI+PC9zY3JpcHQ+Ci08bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uLy4uL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvMmRjb250ZXh0L3Jlc291cmNlcy9jYW52YXMt
dGVzdHMuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi9jYW52YXMtdGVzdHNfd3B0MjAxOS5qcyI+PC9z
Y3JpcHQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uL2NhbnZhcy10ZXN0c193cHQy
MDE5LmNzcyI+CiA8Ym9keSBjbGFzcz0ic2hvd19vdXRwdXQiPgogCiA8aDE+MmQucGF0dGVybi5p
bWFnZS5pbmNvbXBsZXRlLnJlbW92ZWRzcmM8L2gxPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9jc3MvcmVzb3VyY2VzL3NoYWRvdy1oZWxwZXIuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2Nz
cy9yZXNvdXJjZXMvc2hhZG93LWhlbHBlci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NGFjY2Q2YjFmOWIwOTVm
ZGEwMDc5ZjdiODZiODY2ZDg4ZmZlZTAxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9jc3MvcmVzb3VyY2VzL3NoYWRvdy1oZWxwZXIuanMKQEAgLTAsMCArMSwzMyBAQAorLy8g
VGFrZXMgYSByb290IGVsZW1lbnQgYW5kIGEgbGlzdCBvZiBpZHMgb2Ygc2hhZG93IGhvc3QgZWxl
bWVudHMuIEVhY2ggaWQgcmVmZXJzIHRvIGEgc2hhZG93IGhvc3QKKy8vIGluc2lkZSB0aGUgcHJl
dmlvdXMgaWQncyBzaGFkb3cgdHJlZS4KK2Z1bmN0aW9uIGdldEVsZW1lbnRCeVNoYWRvd0lkcyhy
b290LCBpZHMpIHsKKyAgZm9yICh2YXIgaSA9IDA7IDtpKyspIHsKKyAgICB2YXIgaG9zdCA9IHJv
b3QuZ2V0RWxlbWVudEJ5SWQoaWRzW2ldKTsKKyAgICBpZiAoaG9zdCA9PSBudWxsKSB7CisgICAg
ICB0aHJvdyAiTm8gZWxlbWVudCBmb3VuZDogaT0iICsgaSArICIgaWQ9IiArIGlkc1tpXSArICIu
IFJvb3Qgd2FzICIgKyByb290OworICAgIH0KKyAgICBpZiAoaSA9PSBpZHMubGVuZ3RoIC0gMSkg
eworICAgICAgcmV0dXJuIGhvc3Q7CisgICAgfQorICAgIHJvb3QgPSBob3N0LnNoYWRvd1Jvb3Q7
CisgICAgaWYgKHJvb3QgPT0gbnVsbCkgeworICAgICAgdGhyb3cgIk5vIHNoYWRvd1Jvb3QgZm91
bmQ6IGk9IiArIGkgKyAiIGlkPSIgKyBpZHNbaV0gKyAiLiBIb3N0IHdhcyAiICsgaG9zdDsKKyAg
ICB9CisgIH0KK30KKworLy8gSW5zdGFsbHMgYSBtaW5pbmFsIGN1c3RvbSBlbGVtZW50IGJhc2Vk
IG9uIHRoaXMgdGVtcGxhdGUuCitmdW5jdGlvbiBpbnN0YWxsQ3VzdG9tRWxlbWVudChlbGVtZW50
X25hbWUsIHRlbXBsYXRlX2lkKSB7CisgIGNlQ2xhc3MgPSBjbGFzcyBleHRlbmRzIEhUTUxFbGVt
ZW50IHsKKyAgICBjb25zdHJ1Y3RvcigpIHsKKyAgICAgIHN1cGVyKCk7CisgICAgICB2YXIgdGVt
cGxhdGUgPSBkb2N1bWVudAorICAgICAgICAuZ2V0RWxlbWVudEJ5SWQodGVtcGxhdGVfaWQpCisg
ICAgICAgIC5jb250ZW50OworICAgICAgdGhpcworICAgICAgICAuYXR0YWNoU2hhZG93KHttb2Rl
OiAnb3Blbid9KQorICAgICAgICAuYXBwZW5kQ2hpbGQodGVtcGxhdGUuY2xvbmVOb2RlKHRydWUp
KTsKKyAgICB9CisgIH07CisgIHdpbmRvdy5jdXN0b21FbGVtZW50cy5kZWZpbmUoZWxlbWVudF9u
YW1lLCBjZUNsYXNzKTsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL3NoYWRv
dy1wYXJ0cy9leHBvcnRwYXJ0cy1zeW50YXguaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL3No
YWRvdy1wYXJ0cy9leHBvcnRwYXJ0cy1zeW50YXguaHRtbAppbmRleCAwMTM0NWQ0YzU0MzYyNmEw
OGFhMjY0ZTM4ODhmODJhMWU2YmU1NWUwLi42YWNjZGUyYjE1Mzg2ODRjOTVkMjAxMTBkMDkwZjgy
ZGExYjAyNzUyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9zaGFkb3ctcGFydHMv
ZXhwb3J0cGFydHMtc3ludGF4Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3Mvc2hhZG93
LXBhcnRzL2V4cG9ydHBhcnRzLXN5bnRheC5odG1sCkBAIC02LDcgKzYsNyBAQAogICAgIDxsaW5r
IGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3Mtc2hhZG93LXBhcnRzLyIgcmVsPSJo
ZWxwIj4KICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpz
Ij48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNoYWRvdy1wYXJ0cy9zdXBwb3J0L3No
YWRvdy1oZWxwZXIuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMv
c2hhZG93LWhlbHBlci5qcyI+PC9zY3JpcHQ+CiAgIDwvaGVhZD4KICAgPGJvZHk+CiAgICAgPHN0
eWxlPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3Mvc2hhZG93LXBhcnRzL2ludmFs
aWRhdGlvbi1jbGFzcy1iZWZvcmUtYWZ0ZXIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL3No
YWRvdy1wYXJ0cy9pbnZhbGlkYXRpb24tY2xhc3MtYmVmb3JlLWFmdGVyLmh0bWwKaW5kZXggMzJi
NTZjZGQxODhkN2FlODE2ODYyOTdlYTY5ZDZjMGMwOGI5YzIzMy4uMGQwZTRhYmUzN2UxMTdlODA4
YTM0ZTQ3MzgyMjQwMmI3ZDcwMTA4ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9jc3Mv
c2hhZG93LXBhcnRzL2ludmFsaWRhdGlvbi1jbGFzcy1iZWZvcmUtYWZ0ZXIuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2Nzcy9zaGFkb3ctcGFydHMvaW52YWxpZGF0aW9uLWNsYXNzLWJlZm9y
ZS1hZnRlci5odG1sCkBAIC02LDcgKzYsNyBAQAogICAgIDxsaW5rIGhyZWY9Imh0dHBzOi8vZHJh
ZnRzLmNzc3dnLm9yZy9jc3Mtc2hhZG93LXBhcnRzLyIgcmVsPSJoZWxwIj4KICAgICA8c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KICAgICA8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Nj
cmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3NzLXNoYWRvdy1wYXJ0cy9zdXBwb3J0L3NoYWRvdy1oZWxwZXIuanMiPjwv
c2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvc2hhZG93LWhlbHBlci5qcyI+
PC9zY3JpcHQ+CiAgIDwvaGVhZD4KICAgPGJvZHk+CiAgICAgPHN0eWxlPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9jc3Mvc2hhZG93LXBhcnRzL2ludmFsaWRhdGlvbi1jbGFzcy1kZXNj
ZW5kYW50LWNvbWJpbmF0b3ItZXhwb3J0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9zaGFk
b3ctcGFydHMvaW52YWxpZGF0aW9uLWNsYXNzLWRlc2NlbmRhbnQtY29tYmluYXRvci1leHBvcnQu
aHRtbAppbmRleCBjOWQ4YTU5MmI5YWYwYTM2ZWFkOWM1MmYwMzRkZGEwODNjMGQ0ZmM2Li42ZDE0
OTk2ZGY5NzFhNmVmZWJlYTFlMDlhNzJhMTNhZWEwYmE2NGU2IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L2Nzcy9zaGFkb3ctcGFydHMvaW52YWxpZGF0aW9uLWNsYXNzLWRlc2NlbmRhbnQt
Y29tYmluYXRvci1leHBvcnQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9zaGFkb3ct
cGFydHMvaW52YWxpZGF0aW9uLWNsYXNzLWRlc2NlbmRhbnQtY29tYmluYXRvci1leHBvcnQuaHRt
bApAQCAtNiw3ICs2LDcgQEAKICAgICA8bGluayBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5v
cmcvY3NzLXNoYWRvdy1wYXJ0cy8iIHJlbD0iaGVscCI+CiAgICAgPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci0gICAg
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzcy1zaGFkb3ctcGFydHMvc3VwcG9ydC9zaGFkb3ctaGVscGVyLmpzIj48L3NjcmlwdD4KKyAg
ICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3NoYWRvdy1oZWxwZXIuanMiPjwvc2NyaXB0Pgog
ICA8L2hlYWQ+CiAgIDxib2R5PgogICAgIDxzdHlsZT4uYW5jZXN0b3IgI2MtZS1vdXRlcjo6cGFy
dChwYXJ0LWZvcndhcmRlZCkgeyBjb2xvcjogZ3JlZW47IH08L3N0eWxlPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9jc3Mvc2hhZG93LXBhcnRzL2ludmFsaWRhdGlvbi1jbGFzcy1kZXNj
ZW5kYW50LWNvbWJpbmF0b3IuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL3NoYWRvdy1wYXJ0
cy9pbnZhbGlkYXRpb24tY2xhc3MtZGVzY2VuZGFudC1jb21iaW5hdG9yLmh0bWwKaW5kZXggMzll
ZTc4MGUwYzBhNjAyYzM5MGNkNmFhZGRiOWNlYzMwN2ZlYTdkNy4uOThmMzI2N2JkNWQwNjMwMzJm
OTBmOWQzOGIzMzk5NjE5ZjkzNTIzYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9jc3Mv
c2hhZG93LXBhcnRzL2ludmFsaWRhdGlvbi1jbGFzcy1kZXNjZW5kYW50LWNvbWJpbmF0b3IuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9zaGFkb3ctcGFydHMvaW52YWxpZGF0aW9uLWNs
YXNzLWRlc2NlbmRhbnQtY29tYmluYXRvci5odG1sCkBAIC02LDcgKzYsNyBAQAogICAgIDxsaW5r
IGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3Mtc2hhZG93LXBhcnRzLyIgcmVsPSJo
ZWxwIj4KICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpz
Ij48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNoYWRvdy1wYXJ0cy9zdXBwb3J0L3No
YWRvdy1oZWxwZXIuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMv
c2hhZG93LWhlbHBlci5qcyI+PC9zY3JpcHQ+CiAgIDwvaGVhZD4KICAgPGJvZHk+CiAgICAgPHN0
eWxlPi5hbmNlc3RvciAjYy1lOjpwYXJ0KHBhcnRwKSB7IGNvbG9yOiBncmVlbjsgfTwvc3R5bGU+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9zaGFkb3ctcGFydHMvaW52YWxpZGF0
aW9uLWNsYXNzLXNpYmxpbmctY29tYmluYXRvci1leHBvcnQuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvY3NzL3NoYWRvdy1wYXJ0cy9pbnZhbGlkYXRpb24tY2xhc3Mtc2libGluZy1jb21iaW5hdG9y
LWV4cG9ydC5odG1sCmluZGV4IDI2M2ZkMDllM2FiYjVlNTExZDQ5ZjM4NGMzMTdlZmZhYzU4Y2E2
NWUuLmI0NTliOWQ4YWZmODRhMjhmMjJhNDc3NDBkZGRmMjEyNjExYjYzYmQgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2Zhc3QvY3NzL3NoYWRvdy1wYXJ0cy9pbnZhbGlkYXRpb24tY2xhc3Mtc2li
bGluZy1jb21iaW5hdG9yLWV4cG9ydC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL3No
YWRvdy1wYXJ0cy9pbnZhbGlkYXRpb24tY2xhc3Mtc2libGluZy1jb21iaW5hdG9yLWV4cG9ydC5o
dG1sCkBAIC02LDcgKzYsNyBAQAogICAgIDxsaW5rIGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dn
Lm9yZy9jc3Mtc2hhZG93LXBhcnRzLyIgcmVsPSJoZWxwIj4KICAgICA8c2NyaXB0IHNyYz0iLi4v
Li4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLSAg
ICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3NzLXNoYWRvdy1wYXJ0cy9zdXBwb3J0L3NoYWRvdy1oZWxwZXIuanMiPjwvc2NyaXB0Pgor
ICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvc2hhZG93LWhlbHBlci5qcyI+PC9zY3JpcHQ+
CiAgIDwvaGVhZD4KICAgPGJvZHk+CiAgICAgPHN0eWxlPi5zaWJsaW5nIH4gI2MtZS1vdXRlcjo6
cGFydChwYXJ0LWZvcndhcmRlZCkgeyBjb2xvcjogZ3JlZW47IH08L3N0eWxlPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3Mvc2hhZG93LXBhcnRzL2ludmFsaWRhdGlvbi1jbGFzcy1z
aWJsaW5nLWNvbWJpbmF0b3IuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL3NoYWRvdy1wYXJ0
cy9pbnZhbGlkYXRpb24tY2xhc3Mtc2libGluZy1jb21iaW5hdG9yLmh0bWwKaW5kZXggYzRmNjdl
N2NhNTk5NzkxZTI3MGI4NzQ0MjlmYjAyYmNjM2NhNmRhNS4uYzBiZGM1ZGNlMGRhN2IyNjEwZjBm
ZTEwOGQ1Yzc1NjBjZDgwYWI1OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9jc3Mvc2hh
ZG93LXBhcnRzL2ludmFsaWRhdGlvbi1jbGFzcy1zaWJsaW5nLWNvbWJpbmF0b3IuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9zaGFkb3ctcGFydHMvaW52YWxpZGF0aW9uLWNsYXNzLXNp
YmxpbmctY29tYmluYXRvci5odG1sCkBAIC02LDcgKzYsNyBAQAogICAgIDxsaW5rIGhyZWY9Imh0
dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3Mtc2hhZG93LXBhcnRzLyIgcmVsPSJoZWxwIj4KICAg
ICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Njcmlw
dD4KICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0
LmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNoYWRvdy1wYXJ0cy9zdXBwb3J0L3NoYWRvdy1oZWxw
ZXIuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvc2hhZG93LWhl
bHBlci5qcyI+PC9zY3JpcHQ+CiAgIDwvaGVhZD4KICAgPGJvZHk+CiAgICAgPHN0eWxlPi5zaWJs
aW5nIH4gI2MtZTo6cGFydChwYXJ0cCkgeyBjb2xvcjogZ3JlZW47IH08L3N0eWxlPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jdXN0b20tZWxlbWVudHMvRE9NSW1wbGVtZW50YXRpb24t
Y3JlYXRlRG9jdW1lbnQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL0RP
TUltcGxlbWVudGF0aW9uLWNyZWF0ZURvY3VtZW50Lmh0bWwKaW5kZXggZjZlNGUzMGRlYjk3YTE4
ZTNjNzk2MDViOWE1MWYyMGUxODNhM2RhYS4uNTAxZGZkY2M3OGE5YjVlZGZmOTA2YTkzYzZjNDcx
N2U5ODAyNmVlYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9jdXN0b20tZWxlbWVudHMv
RE9NSW1wbGVtZW50YXRpb24tY3JlYXRlRG9jdW1lbnQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2N1c3RvbS1lbGVtZW50cy9ET01JbXBsZW1lbnRhdGlvbi1jcmVhdGVEb2N1bWVudC5odG1s
CkBAIC04LDcgKzgsNyBAQAogPGxpbmsgcmVsPSJoZWxwIiBjb250ZW50PSJodHRwczovL2h0bWwu
c3BlYy53aGF0d2cub3JnLyNsb29rLXVwLWEtY3VzdG9tLWVsZW1lbnQtZGVmaW5pdGlvbiI+CiA8
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KIDxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Vz
dG9tLWVsZW1lbnRzL3Jlc291cmNlcy9jdXN0b20tZWxlbWVudHMtaGVscGVycy5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2N1c3RvbS1lbGVtZW50cy1oZWxwZXJzLmpzIj48
L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5PgogPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL2Fkb3B0aW5nLWZyb20tZnJhbWVs
ZXNzLWRvY3VtZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2N1c3RvbS1lbGVtZW50cy9hZG9w
dGluZy1mcm9tLWZyYW1lbGVzcy1kb2N1bWVudC5odG1sCmluZGV4IGQ0N2VhZTljYWIyMzY3ZWFh
NDE5YTBlNGNjYzA2ZmM3YjAwNjNiYmEuLmM1M2IzOTA0OTIxY2ViMTEzYzM2NDY2ZDlmNzhkN2Zl
YWY4NDY3ODcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL2Fk
b3B0aW5nLWZyb20tZnJhbWVsZXNzLWRvY3VtZW50Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9jdXN0b20tZWxlbWVudHMvYWRvcHRpbmctZnJvbS1mcmFtZWxlc3MtZG9jdW1lbnQuaHRtbApA
QCAtMTAsNyArMTAsNyBAQAogPG1ldGEgbmFtZT0iaGVscCIgY29udGVudD0iaHR0cHM6Ly9odG1s
LnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvc2NyaXB0aW5nLmh0bWwjY29uY2VwdC10cnktdXBn
cmFkZSI+CiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Nj
cmlwdD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3VzdG9tLWVsZW1lbnRzL3Jlc291cmNlcy9jdXN0b20tZWxlbWVudHMtaGVscGVycy5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2N1c3RvbS1lbGVtZW50cy1oZWxw
ZXJzLmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5PgogPGRpdiBpZD0ibG9nIj48L2Rpdj4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL2Rpc2Nvbm5lY3Rl
ZC1jYWxsYmFjay1pbi1kZXRhY2hlZC1pZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3Vz
dG9tLWVsZW1lbnRzL2Rpc2Nvbm5lY3RlZC1jYWxsYmFjay1pbi1kZXRhY2hlZC1pZnJhbWUuaHRt
bAppbmRleCBjMGNlODU3YWQ3NmY1ZWFlMjVkMjE4OGFjODU2OTFkM2M4MDVkNDViLi4yZjhmYzFk
NTQ5MGI1M2FhNjA1ZjdiNmIxZjEwMjIxODRkMGVlZjhjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L2N1c3RvbS1lbGVtZW50cy9kaXNjb25uZWN0ZWQtY2FsbGJhY2staW4tZGV0YWNoZWQt
aWZyYW1lLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jdXN0b20tZWxlbWVudHMvZGlzY29u
bmVjdGVkLWNhbGxiYWNrLWluLWRldGFjaGVkLWlmcmFtZS5odG1sCkBAIC03LDggKzcsOCBAQAog
PG1ldGEgbmFtZT0iaGVscCIgY29udGVudD0iaHR0cHM6Ly9kb20uc3BlYy53aGF0d2cub3JnLyNj
b25jZXB0LW5vZGUtcmVtb3ZlIj4KIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhh
cm5lc3MuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFy
bmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvcmVzb3VyY2VzL2N1c3RvbS1lbGVt
ZW50cy1oZWxwZXJzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9yZWFjdGlvbnMvcmVzb3VyY2Vz
L3JlYWN0aW9ucy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2N1c3RvbS1l
bGVtZW50cy1oZWxwZXJzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVh
Y3Rpb25zLmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5PgogPGRpdiBpZD0ibG9nIj48L2Rp
dj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL2RvY3VtZW50
LWNyZWF0ZUVsZW1lbnROUy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jdXN0b20tZWxlbWVudHMv
ZG9jdW1lbnQtY3JlYXRlRWxlbWVudE5TLmh0bWwKaW5kZXggMzY5M2ExMGVlNzEyOTY3NzY0YWQ1
ODk0NGMwNGIwM2EwMzY2OGUzZi4uOTA2NjAyNTkxZDBiNmRkYmJlZWQwN2RmMzk3MDM3NWIzOWQ1
ZjQ5YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9jdXN0b20tZWxlbWVudHMvZG9jdW1l
bnQtY3JlYXRlRWxlbWVudE5TLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jdXN0b20tZWxl
bWVudHMvZG9jdW1lbnQtY3JlYXRlRWxlbWVudE5TLmh0bWwKQEAgLTgsNyArOCw3IEBACiA8bGlu
ayByZWw9ImhlbHAiIGNvbnRlbnQ9Imh0dHBzOi8vZG9tLnNwZWMud2hhdHdnLm9yZy8jY29uY2Vw
dC1jcmVhdGUtZWxlbWVudCI+CiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5l
c3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL3Jlc291cmNlcy9jdXN0b20tZWxlbWVu
dHMtaGVscGVycy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2N1c3RvbS1l
bGVtZW50cy1oZWxwZXJzLmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5PgogPGRpdiBpZD0i
bG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRz
L2VucXVldWUtY3VzdG9tLWVsZW1lbnQtY2FsbGJhY2stcmVhY3Rpb25zLWluc2lkZS1hbm90aGVy
LWNhbGxiYWNrLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2N1c3RvbS1lbGVtZW50cy9lbnF1ZXVl
LWN1c3RvbS1lbGVtZW50LWNhbGxiYWNrLXJlYWN0aW9ucy1pbnNpZGUtYW5vdGhlci1jYWxsYmFj
ay5odG1sCmluZGV4IDIxZDY2ZmVhZWVjNTY1Y2M3ZTUyYjQxOTZhYWRiYzFjNzdkMzY5OWUuLjY5
YTFmZDdjZGUwOWI3OTQ5N2FiYmFkMTE0YmIyNDg2Njc3MGZiMDYgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL2VucXVldWUtY3VzdG9tLWVsZW1lbnQtY2FsbGJh
Y2stcmVhY3Rpb25zLWluc2lkZS1hbm90aGVyLWNhbGxiYWNrLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9jdXN0b20tZWxlbWVudHMvZW5xdWV1ZS1jdXN0b20tZWxlbWVudC1jYWxsYmFjay1y
ZWFjdGlvbnMtaW5zaWRlLWFub3RoZXItY2FsbGJhY2suaHRtbApAQCAtOCw3ICs4LDcgQEAKIDxs
aW5rIHJlbD0iaGVscCIgY29udGVudD0iaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWJjb21wb25l
bnRzL2lzc3Vlcy83NjAiPgogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVz
cy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
cmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9yZXNvdXJjZXMvY3VzdG9tLWVsZW1lbnRz
LWhlbHBlcnMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9jdXN0b20tZWxl
bWVudHMtaGVscGVycy5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keT4KIDxzY3JpcHQ+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2N1c3RvbS1lbGVtZW50cy9wZXJmb3JtLW1pY3Jv
dGFzay1jaGVja3BvaW50LWJlZm9yZS1jb25zdHJ1Y3Rpb24uaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvY3VzdG9tLWVsZW1lbnRzL3BlcmZvcm0tbWljcm90YXNrLWNoZWNrcG9pbnQtYmVmb3JlLWNv
bnN0cnVjdGlvbi5odG1sCmluZGV4IGYxMTdjODhjYjgyMzcyYzJhMGJmNjc5ODZjNDMxNzI3ZDVi
NjRjZDEuLjhjNzBhZDk5Zjk3YzVmZDVlYWZhZWQxMmNjNzgzMWY3NGM2NWEyMTAgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL3BlcmZvcm0tbWljcm90YXNrLWNo
ZWNrcG9pbnQtYmVmb3JlLWNvbnN0cnVjdGlvbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
Y3VzdG9tLWVsZW1lbnRzL3BlcmZvcm0tbWljcm90YXNrLWNoZWNrcG9pbnQtYmVmb3JlLWNvbnN0
cnVjdGlvbi5odG1sCkBAIC05LDcgKzksNyBAQAogPG1ldGEgbmFtZT0iaGVscCIgY29udGVudD0i
aHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2UvcGFyc2luZy5odG1sI2Fkb3B0
aW9uLWFnZW5jeS1hbGdvcml0aG0iPgogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0
aGFybmVzcy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9yZXNvdXJjZXMvY3VzdG9tLWVs
ZW1lbnRzLWhlbHBlcnMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9jdXN0
b20tZWxlbWVudHMtaGVscGVycy5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keT4KIDxkaXYg
aWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2N1c3RvbS1lbGVt
ZW50cy9yZWFjdGlvbnMtZm9yLXdlYmtpdC1leHRlbnNpb25zLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L2N1c3RvbS1lbGVtZW50cy9yZWFjdGlvbnMtZm9yLXdlYmtpdC1leHRlbnNpb25zLmh0bWwK
aW5kZXggZTIwMGM0YzdhYTA4MmFlM2JlZDM2YmViOWZlMmIwYmY0NDc2ZmUwZi4uNmQwNzZiMmVk
MGNmMDI5NWU1ZTEzMDVkYmRmODI4OGUyMDE1OWY0MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9jdXN0b20tZWxlbWVudHMvcmVhY3Rpb25zLWZvci13ZWJraXQtZXh0ZW5zaW9ucy5odG1s
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL3JlYWN0aW9ucy1mb3Itd2Vi
a2l0LWV4dGVuc2lvbnMuaHRtbApAQCAtNyw4ICs3LDggQEAKIDxtZXRhIG5hbWU9ImhlbHAiIGNv
bnRlbnQ9Imh0dHBzOi8vZG9tLnNwZWMud2hhdHdnLm9yZy8jbm9kZSI+CiA8c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9Ii4uLy4uL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRz
L3Jlc291cmNlcy9jdXN0b20tZWxlbWVudHMtaGVscGVycy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0iLi4vLi4vaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVu
dHMvcmVhY3Rpb25zL3Jlc291cmNlcy9yZWFjdGlvbnMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9InJlc291cmNlcy9jdXN0b20tZWxlbWVudHMtaGVscGVycy5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL3JlYWN0aW9ucy5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9k
eT4KIDxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2N1
c3RvbS1lbGVtZW50cy9yZXNvdXJjZXMvY3VzdG9tLWVsZW1lbnRzLWhlbHBlcnMuanMgYi9MYXlv
dXRUZXN0cy9mYXN0L2N1c3RvbS1lbGVtZW50cy9yZXNvdXJjZXMvY3VzdG9tLWVsZW1lbnRzLWhl
bHBlcnMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNmY3M2ZlMjBkMGZiZjI1ZWVkMmZiZmVjNTMwZmI1MTZlODNj
YzIxNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRz
L3Jlc291cmNlcy9jdXN0b20tZWxlbWVudHMtaGVscGVycy5qcwpAQCAtMCwwICsxLDI2MiBAQAor
ZnVuY3Rpb24gY3JlYXRlX3dpbmRvd19pbl90ZXN0KHQsIHNyY2RvYykgeworICBsZXQgcCA9IG5l
dyBQcm9taXNlKChyZXNvbHZlKSA9PiB7CisgICAgbGV0IGYgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCdpZnJhbWUnKTsKKyAgICBmLnNyY2RvYyA9IHNyY2RvYyA/IHNyY2RvYyA6ICcnOworICAg
IGYub25sb2FkID0gKGV2ZW50KSA9PiB7CisgICAgICBsZXQgdyA9IGYuY29udGVudFdpbmRvdzsK
KyAgICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gZi5yZW1vdmUoKSk7CisgICAgICByZXNvbHZlKHcp
OworICAgIH07CisgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChmKTsKKyAgfSk7CisgIHJl
dHVybiBwOworfQorCitmdW5jdGlvbiB0ZXN0X3dpdGhfd2luZG93KGYsIG5hbWUsIHNyY2RvYykg
eworICBwcm9taXNlX3Rlc3QoKHQpID0+IHsKKyAgICByZXR1cm4gY3JlYXRlX3dpbmRvd19pbl90
ZXN0KHQsIHNyY2RvYykKKyAgICAudGhlbigodykgPT4geworICAgICAgZih3LCB3LmRvY3VtZW50
KTsKKyAgICB9KTsKKyAgfSwgbmFtZSk7Cit9CisKK2Z1bmN0aW9uIGRlZmluZV9jdXN0b21fZWxl
bWVudF9pbl93aW5kb3cod2luZG93LCBuYW1lLCBvYnNlcnZlZEF0dHJpYnV0ZXMpIHsKKyAgICBs
ZXQgbG9nID0gW107CisKKyAgICBjbGFzcyBDdXN0b21FbGVtZW50IGV4dGVuZHMgd2luZG93LkhU
TUxFbGVtZW50IHsKKyAgICAgICAgY29uc3RydWN0b3IoKSB7CisgICAgICAgICAgICBzdXBlcigp
OworICAgICAgICAgICAgbG9nLnB1c2goY3JlYXRlX2NvbnN0cnVjdG9yX2xvZyh0aGlzKSk7Cisg
ICAgICAgIH0KKyAgICAgICAgYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrKC4uLmFyZ3MpIHsKKyAg
ICAgICAgICAgIGxvZy5wdXNoKGNyZWF0ZV9hdHRyaWJ1dGVfY2hhbmdlZF9jYWxsYmFja19sb2co
dGhpcywgLi4uYXJncykpOworICAgICAgICB9CisgICAgICAgIGNvbm5lY3RlZENhbGxiYWNrKCkg
eyBsb2cucHVzaChjcmVhdGVfY29ubmVjdGVkX2NhbGxiYWNrX2xvZyh0aGlzKSk7IH0KKyAgICAg
ICAgZGlzY29ubmVjdGVkQ2FsbGJhY2soKSB7IGxvZy5wdXNoKGNyZWF0ZV9kaXNjb25uZWN0ZWRf
Y2FsbGJhY2tfbG9nKHRoaXMpKTsgfQorICAgICAgICBhZG9wdGVkQ2FsbGJhY2sob2xkRG9jdW1l
bnQsIG5ld0RvY3VtZW50KSB7IGxvZy5wdXNoKHt0eXBlOiAnYWRvcHRlZCcsIGVsZW1lbnQ6IHRo
aXMsIG9sZERvY3VtZW50OiBvbGREb2N1bWVudCwgbmV3RG9jdW1lbnQ6IG5ld0RvY3VtZW50fSk7
IH0KKyAgICB9CisgICAgQ3VzdG9tRWxlbWVudC5vYnNlcnZlZEF0dHJpYnV0ZXMgPSBvYnNlcnZl
ZEF0dHJpYnV0ZXM7CisKKyAgICB3aW5kb3cuY3VzdG9tRWxlbWVudHMuZGVmaW5lKG5hbWUsIEN1
c3RvbUVsZW1lbnQpOworCisgICAgcmV0dXJuIHsKKyAgICAgICAgbmFtZTogbmFtZSwKKyAgICAg
ICAgY2xhc3M6IEN1c3RvbUVsZW1lbnQsCisgICAgICAgIHRha2VMb2c6IGZ1bmN0aW9uICgpIHsK
KyAgICAgICAgICAgIGxldCBjdXJyZW50TG9nID0gbG9nOyBsb2cgPSBbXTsKKyAgICAgICAgICAg
IGN1cnJlbnRMb2cudHlwZXMgPSAoKSA9PiBjdXJyZW50TG9nLm1hcCgoZW50cnkpID0+IGVudHJ5
LnR5cGUpOworICAgICAgICAgICAgY3VycmVudExvZy5sYXN0ID0gKCkgPT4gY3VycmVudExvZ1tj
dXJyZW50TG9nLmxlbmd0aCAtIDFdOworICAgICAgICAgICAgcmV0dXJuIGN1cnJlbnRMb2c7Cisg
ICAgICAgIH0KKyAgICB9OworfQorCitmdW5jdGlvbiBjcmVhdGVfY29uc3RydWN0b3JfbG9nKGVs
ZW1lbnQpIHsKKyAgICByZXR1cm4ge3R5cGU6ICdjb25zdHJ1Y3RlZCcsIGVsZW1lbnQ6IGVsZW1l
bnR9OworfQorCitmdW5jdGlvbiBhc3NlcnRfY29uc3RydWN0b3JfbG9nX2VudHJ5KGxvZywgZWxl
bWVudCkgeworICAgIGFzc2VydF9lcXVhbHMobG9nLnR5cGUsICdjb25zdHJ1Y3RlZCcpOworICAg
IGFzc2VydF9lcXVhbHMobG9nLmVsZW1lbnQsIGVsZW1lbnQpOworfQorCitmdW5jdGlvbiBjcmVh
dGVfY29ubmVjdGVkX2NhbGxiYWNrX2xvZyhlbGVtZW50KSB7CisgICAgcmV0dXJuIHt0eXBlOiAn
Y29ubmVjdGVkJywgZWxlbWVudDogZWxlbWVudH07Cit9CisKK2Z1bmN0aW9uIGFzc2VydF9jb25u
ZWN0ZWRfbG9nX2VudHJ5KGxvZywgZWxlbWVudCkgeworICAgIGFzc2VydF9lcXVhbHMobG9nLnR5
cGUsICdjb25uZWN0ZWQnKTsKKyAgICBhc3NlcnRfZXF1YWxzKGxvZy5lbGVtZW50LCBlbGVtZW50
KTsKK30KKworZnVuY3Rpb24gY3JlYXRlX2Rpc2Nvbm5lY3RlZF9jYWxsYmFja19sb2coZWxlbWVu
dCkgeworICAgIHJldHVybiB7dHlwZTogJ2Rpc2Nvbm5lY3RlZCcsIGVsZW1lbnQ6IGVsZW1lbnR9
OworfQorCitmdW5jdGlvbiBhc3NlcnRfZGlzY29ubmVjdGVkX2xvZ19lbnRyeShsb2csIGVsZW1l
bnQpIHsKKyAgICBhc3NlcnRfZXF1YWxzKGxvZy50eXBlLCAnZGlzY29ubmVjdGVkJyk7CisgICAg
YXNzZXJ0X2VxdWFscyhsb2cuZWxlbWVudCwgZWxlbWVudCk7Cit9CisKK2Z1bmN0aW9uIGFzc2Vy
dF9hZG9wdGVkX2xvZ19lbnRyeShsb2csIGVsZW1lbnQpIHsKKyAgICBhc3NlcnRfZXF1YWxzKGxv
Zy50eXBlLCAnYWRvcHRlZCcpOworICAgIGFzc2VydF9lcXVhbHMobG9nLmVsZW1lbnQsIGVsZW1l
bnQpOworfQorCitmdW5jdGlvbiBjcmVhdGVfYWRvcHRlZF9jYWxsYmFja19sb2coZWxlbWVudCkg
eworICAgIHJldHVybiB7dHlwZTogJ2Fkb3B0ZWQnLCBlbGVtZW50OiBlbGVtZW50fTsKK30KKwor
ZnVuY3Rpb24gY3JlYXRlX2F0dHJpYnV0ZV9jaGFuZ2VkX2NhbGxiYWNrX2xvZyhlbGVtZW50LCBu
YW1lLCBvbGRWYWx1ZSwgbmV3VmFsdWUsIG5hbWVzcGFjZSkgeworICAgIHJldHVybiB7CisgICAg
ICAgIHR5cGU6ICdhdHRyaWJ1dGVDaGFuZ2VkJywKKyAgICAgICAgZWxlbWVudDogZWxlbWVudCwK
KyAgICAgICAgbmFtZTogbmFtZSwKKyAgICAgICAgbmFtZXNwYWNlOiBuYW1lc3BhY2UsCisgICAg
ICAgIG9sZFZhbHVlOiBvbGRWYWx1ZSwKKyAgICAgICAgbmV3VmFsdWU6IG5ld1ZhbHVlLAorICAg
ICAgICBhY3R1YWxWYWx1ZTogZWxlbWVudC5nZXRBdHRyaWJ1dGVOUyhuYW1lc3BhY2UsIG5hbWUp
CisgICAgfTsKK30KKworZnVuY3Rpb24gYXNzZXJ0X2F0dHJpYnV0ZV9sb2dfZW50cnkobG9nLCBl
eHBlY3RlZCkgeworICAgIGFzc2VydF9lcXVhbHMobG9nLnR5cGUsICdhdHRyaWJ1dGVDaGFuZ2Vk
Jyk7CisgICAgYXNzZXJ0X2VxdWFscyhsb2cubmFtZSwgZXhwZWN0ZWQubmFtZSk7CisgICAgYXNz
ZXJ0X2VxdWFscyhsb2cub2xkVmFsdWUsIGV4cGVjdGVkLm9sZFZhbHVlKTsKKyAgICBhc3NlcnRf
ZXF1YWxzKGxvZy5uZXdWYWx1ZSwgZXhwZWN0ZWQubmV3VmFsdWUpOworICAgIGFzc2VydF9lcXVh
bHMobG9nLmFjdHVhbFZhbHVlLCBleHBlY3RlZC5uZXdWYWx1ZSk7CisgICAgYXNzZXJ0X2VxdWFs
cyhsb2cubmFtZXNwYWNlLCBleHBlY3RlZC5uYW1lc3BhY2UpOworfQorCisKK2Z1bmN0aW9uIGRl
ZmluZV9uZXdfY3VzdG9tX2VsZW1lbnQob2JzZXJ2ZWRBdHRyaWJ1dGVzKSB7CisgICAgbGV0IGxv
ZyA9IFtdOworICAgIGxldCBuYW1lID0gJ2N1c3RvbS1lbGVtZW50LScgKyBkZWZpbmVfbmV3X2N1
c3RvbV9lbGVtZW50Ll9lbGVtZW50X251bWJlcisrOworCisgICAgY2xhc3MgQ3VzdG9tRWxlbWVu
dCBleHRlbmRzIEhUTUxFbGVtZW50IHsKKyAgICAgICAgY29uc3RydWN0b3IoKSB7CisgICAgICAg
ICAgICBzdXBlcigpOworICAgICAgICAgICAgbG9nLnB1c2goe3R5cGU6ICdjb25zdHJ1Y3RlZCcs
IGVsZW1lbnQ6IHRoaXN9KTsKKyAgICAgICAgfQorICAgICAgICBhdHRyaWJ1dGVDaGFuZ2VkQ2Fs
bGJhY2soLi4uYXJncykgeworICAgICAgICAgICAgbG9nLnB1c2goY3JlYXRlX2F0dHJpYnV0ZV9j
aGFuZ2VkX2NhbGxiYWNrX2xvZyh0aGlzLCAuLi5hcmdzKSk7CisgICAgICAgIH0KKyAgICAgICAg
Y29ubmVjdGVkQ2FsbGJhY2soKSB7IGxvZy5wdXNoKHt0eXBlOiAnY29ubmVjdGVkJywgZWxlbWVu
dDogdGhpc30pOyB9CisgICAgICAgIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCkgeyBsb2cucHVzaCh7
dHlwZTogJ2Rpc2Nvbm5lY3RlZCcsIGVsZW1lbnQ6IHRoaXN9KTsgfQorICAgICAgICBhZG9wdGVk
Q2FsbGJhY2sob2xkRG9jdW1lbnQsIG5ld0RvY3VtZW50KSB7IGxvZy5wdXNoKHt0eXBlOiAnYWRv
cHRlZCcsIGVsZW1lbnQ6IHRoaXMsIG9sZERvY3VtZW50OiBvbGREb2N1bWVudCwgbmV3RG9jdW1l
bnQ6IG5ld0RvY3VtZW50fSk7IH0KKyAgICB9CisgICAgQ3VzdG9tRWxlbWVudC5vYnNlcnZlZEF0
dHJpYnV0ZXMgPSBvYnNlcnZlZEF0dHJpYnV0ZXM7CisKKyAgICBjdXN0b21FbGVtZW50cy5kZWZp
bmUobmFtZSwgQ3VzdG9tRWxlbWVudCk7CisKKyAgICByZXR1cm4geworICAgICAgICBuYW1lOiBu
YW1lLAorICAgICAgICBjbGFzczogQ3VzdG9tRWxlbWVudCwKKyAgICAgICAgdGFrZUxvZzogZnVu
Y3Rpb24gKCkgeworICAgICAgICAgICAgbGV0IGN1cnJlbnRMb2cgPSBsb2c7IGxvZyA9IFtdOwor
ICAgICAgICAgICAgY3VycmVudExvZy50eXBlcyA9ICgpID0+IGN1cnJlbnRMb2cubWFwKChlbnRy
eSkgPT4gZW50cnkudHlwZSk7CisgICAgICAgICAgICBjdXJyZW50TG9nLmxhc3QgPSAoKSA9PiBj
dXJyZW50TG9nW2N1cnJlbnRMb2cubGVuZ3RoIC0gMV07CisgICAgICAgICAgICByZXR1cm4gY3Vy
cmVudExvZzsKKyAgICAgICAgfQorICAgIH07Cit9CitkZWZpbmVfbmV3X2N1c3RvbV9lbGVtZW50
Ll9lbGVtZW50X251bWJlciA9IDE7CisKK2Z1bmN0aW9uIGRlZmluZV9idWlsZF9pbl9jdXN0b21f
ZWxlbWVudChvYnNlcnZlZEF0dHJpYnV0ZXMsIGV4dGVuZGVkRWxlbWVudCwgZXh0ZW5kc09wdGlv
bikgeworICAgIGxldCBsb2cgPSBbXTsKKyAgICBsZXQgbmFtZSA9ICdjdXN0b20tZWxlbWVudC0n
ICsgZGVmaW5lX2J1aWxkX2luX2N1c3RvbV9lbGVtZW50Ll9lbGVtZW50X251bWJlcisrOworCisg
ICAgY2xhc3MgQ3VzdG9tRWxlbWVudCBleHRlbmRzIGV4dGVuZGVkRWxlbWVudCB7CisgICAgICAg
IGNvbnN0cnVjdG9yKCkgeworICAgICAgICAgICAgc3VwZXIoKTsKKyAgICAgICAgICAgIGxvZy5w
dXNoKHt0eXBlOiAnY29uc3RydWN0ZWQnLCBlbGVtZW50OiB0aGlzfSk7CisgICAgICAgIH0KKyAg
ICAgICAgYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrKC4uLmFyZ3MpIHsKKyAgICAgICAgICAgIGxv
Zy5wdXNoKGNyZWF0ZV9hdHRyaWJ1dGVfY2hhbmdlZF9jYWxsYmFja19sb2codGhpcywgLi4uYXJn
cykpOworICAgICAgICB9CisgICAgICAgIGNvbm5lY3RlZENhbGxiYWNrKCkgeyBsb2cucHVzaCh7
dHlwZTogJ2Nvbm5lY3RlZCcsIGVsZW1lbnQ6IHRoaXN9KTsgfQorICAgICAgICBkaXNjb25uZWN0
ZWRDYWxsYmFjaygpIHsgbG9nLnB1c2goe3R5cGU6ICdkaXNjb25uZWN0ZWQnLCBlbGVtZW50OiB0
aGlzfSk7IH0KKyAgICAgICAgYWRvcHRlZENhbGxiYWNrKG9sZERvY3VtZW50LCBuZXdEb2N1bWVu
dCkgeyBsb2cucHVzaCh7dHlwZTogJ2Fkb3B0ZWQnLCBlbGVtZW50OiB0aGlzLCBvbGREb2N1bWVu
dDogb2xkRG9jdW1lbnQsIG5ld0RvY3VtZW50OiBuZXdEb2N1bWVudH0pOyB9CisgICAgfQorICAg
IEN1c3RvbUVsZW1lbnQub2JzZXJ2ZWRBdHRyaWJ1dGVzID0gb2JzZXJ2ZWRBdHRyaWJ1dGVzOwor
ICAgIGN1c3RvbUVsZW1lbnRzLmRlZmluZShuYW1lLCBDdXN0b21FbGVtZW50LCB7IGV4dGVuZHM6
IGV4dGVuZHNPcHRpb259KTsKKworICAgIHJldHVybiB7CisgICAgICAgIG5hbWU6IG5hbWUsCisg
ICAgICAgIGNsYXNzOiBDdXN0b21FbGVtZW50LAorICAgICAgICB0YWtlTG9nOiBmdW5jdGlvbiAo
KSB7CisgICAgICAgICAgICBsZXQgY3VycmVudExvZyA9IGxvZzsgbG9nID0gW107CisgICAgICAg
ICAgICBjdXJyZW50TG9nLnR5cGVzID0gKCkgPT4gY3VycmVudExvZy5tYXAoKGVudHJ5KSA9PiBl
bnRyeS50eXBlKTsKKyAgICAgICAgICAgIGN1cnJlbnRMb2cubGFzdCA9ICgpID0+IGN1cnJlbnRM
b2dbY3VycmVudExvZy5sZW5ndGggLSAxXTsKKyAgICAgICAgICAgIHJldHVybiBjdXJyZW50TG9n
OworICAgICAgICB9CisgICAgfTsKK30KK2RlZmluZV9idWlsZF9pbl9jdXN0b21fZWxlbWVudC5f
ZWxlbWVudF9udW1iZXIgPSAxOworCitmdW5jdGlvbiBkb2N1bWVudF90eXBlcygpIHsKKyAgICBy
ZXR1cm4gWworICAgICAgICB7CisgICAgICAgICAgICBuYW1lOiAndGhlIGRvY3VtZW50JywKKyAg
ICAgICAgICAgIGNyZWF0ZTogZnVuY3Rpb24gKCkgeyByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGRv
Y3VtZW50KTsgfSwKKyAgICAgICAgICAgIGlzT3duZXI6IHRydWUsCisgICAgICAgICAgICBoYXNC
cm93c2luZ0NvbnRleHQ6IHRydWUsCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAg
IG5hbWU6ICd0aGUgZG9jdW1lbnQgb2YgdGhlIHRlbXBsYXRlIGVsZW1lbnRzJywKKyAgICAgICAg
ICAgIGNyZWF0ZTogZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAgIHJldHVybiBuZXcgUHJv
bWlzZShmdW5jdGlvbiAocmVzb2x2ZSkgeworICAgICAgICAgICAgICAgICAgICB2YXIgdGVtcGxh
dGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoJ2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0
bWwnLCAndGVtcGxhdGUnKTsKKyAgICAgICAgICAgICAgICAgICAgdmFyIGRvYyA9IHRlbXBsYXRl
LmNvbnRlbnQub3duZXJEb2N1bWVudDsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFkb2MuZG9j
dW1lbnRFbGVtZW50KQorICAgICAgICAgICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKGRv
Yy5jcmVhdGVFbGVtZW50KCdodG1sJykpOworICAgICAgICAgICAgICAgICAgICByZXNvbHZlKGRv
Yyk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgaGFz
QnJvd3NpbmdDb250ZXh0OiBmYWxzZSwKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAg
ICAgbmFtZTogJ2EgbmV3IGRvY3VtZW50JywKKyAgICAgICAgICAgIGNyZWF0ZTogZnVuY3Rpb24g
KCkgeworICAgICAgICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2
ZSkgeworICAgICAgICAgICAgICAgICAgICB2YXIgZG9jID0gbmV3IERvY3VtZW50KCk7CisgICAg
ICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZChkb2MuY3JlYXRlRWxlbWVudCgnaHRtbCcp
KTsKKyAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShkb2MpOworICAgICAgICAgICAgICAgIH0p
OworICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIGhhc0Jyb3dzaW5nQ29udGV4dDogZmFsc2Us
CisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgIG5hbWU6ICdhIGNsb25lZCBkb2N1
bWVudCcsCisgICAgICAgICAgICBjcmVhdGU6IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAg
ICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUpIHsKKyAgICAgICAgICAgICAg
ICAgICAgdmFyIGRvYyA9IGRvY3VtZW50LmNsb25lTm9kZShmYWxzZSk7CisgICAgICAgICAgICAg
ICAgICAgIGRvYy5hcHBlbmRDaGlsZChkb2MuY3JlYXRlRWxlbWVudCgnaHRtbCcpKTsKKyAgICAg
ICAgICAgICAgICAgICAgcmVzb2x2ZShkb2MpOworICAgICAgICAgICAgICAgIH0pOworICAgICAg
ICAgICAgfSwKKyAgICAgICAgICAgIGhhc0Jyb3dzaW5nQ29udGV4dDogZmFsc2UsCisgICAgICAg
IH0sCisgICAgICAgIHsKKyAgICAgICAgICAgIG5hbWU6ICdhIGRvY3VtZW50IGNyZWF0ZWQgYnkg
Y3JlYXRlSFRNTERvY3VtZW50JywKKyAgICAgICAgICAgIGNyZWF0ZTogZnVuY3Rpb24gKCkgewor
ICAgICAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoZG9jdW1lbnQuaW1wbGVtZW50
YXRpb24uY3JlYXRlSFRNTERvY3VtZW50KCkpOworICAgICAgICAgICAgfSwKKyAgICAgICAgICAg
IGhhc0Jyb3dzaW5nQ29udGV4dDogZmFsc2UsCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAg
ICAgICAgIG5hbWU6ICdhbiBIVE1MIGRvY3VtZW50IGNyZWF0ZWQgYnkgY3JlYXRlRG9jdW1lbnQn
LAorICAgICAgICAgICAgY3JlYXRlOiBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgcmV0
dXJuIFByb21pc2UucmVzb2x2ZShkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVEb2N1bWVu
dCgnaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcsICdodG1sJywgbnVsbCkpOworICAgICAg
ICAgICAgfSwKKyAgICAgICAgICAgIGhhc0Jyb3dzaW5nQ29udGV4dDogZmFsc2UsCisgICAgICAg
IH0sCisgICAgICAgIHsKKyAgICAgICAgICAgIG5hbWU6ICd0aGUgZG9jdW1lbnQgb2YgYW4gaWZy
YW1lJywKKyAgICAgICAgICAgIGNyZWF0ZTogZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAg
IHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7CisgICAgICAg
ICAgICAgICAgICAgIHZhciBpZnJhbWUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpZnJhbWUn
KTsKKyAgICAgICAgICAgICAgICAgICAgaWZyYW1lLm9ubG9hZCA9IGZ1bmN0aW9uICgpIHsgcmVz
b2x2ZShpZnJhbWUuY29udGVudERvY3VtZW50KTsgfQorICAgICAgICAgICAgICAgICAgICBpZnJh
bWUub25lcnJvciA9IGZ1bmN0aW9uICgpIHsgcmVqZWN0KCdGYWlsZWQgdG8gbG9hZCBhbiBlbXB0
eSBpZnJhbWUnKTsgfQorICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENo
aWxkKGlmcmFtZSk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9LAorICAgICAg
ICAgICAgaGFzQnJvd3NpbmdDb250ZXh0OiB0cnVlLAorICAgICAgICB9LAorICAgICAgICB7Cisg
ICAgICAgICAgICBuYW1lOiAnYW4gSFRNTCBkb2N1bWVudCBmZXRjaGVkIGJ5IFhIUicsCisgICAg
ICAgICAgICBjcmVhdGU6IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3
IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkgeworICAgICAgICAgICAgICAgICAg
ICB2YXIgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7CisgICAgICAgICAgICAgICAgICAgIHho
ci5vcGVuKCdHRVQnLCAncmVzb3VyY2VzL2VtcHR5LWh0bWwtZG9jdW1lbnQuaHRtbCcpOworICAg
ICAgICAgICAgICAgICAgICB4aHIub3ZlcnJpZGVNaW1lVHlwZSgndGV4dC94bWwnKTsKKyAgICAg
ICAgICAgICAgICAgICAgeGhyLm9ubG9hZCA9IGZ1bmN0aW9uICgpIHsgcmVzb2x2ZSh4aHIucmVz
cG9uc2VYTUwpOyB9CisgICAgICAgICAgICAgICAgICAgIHhoci5vbmVycm9yID0gZnVuY3Rpb24g
KCkgeyByZWplY3QoJ0ZhaWxlZCB0byBmZXRjaCB0aGUgZG9jdW1lbnQnKTsgfQorICAgICAgICAg
ICAgICAgICAgICB4aHIuc2VuZCgpOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAg
fSwKKyAgICAgICAgICAgIGhhc0Jyb3dzaW5nQ29udGV4dDogZmFsc2UsCisgICAgICAgIH0KKyAg
ICBdOworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jdXN0b20tZWxlbWVudHMvcmVz
b3VyY2VzL3JlYWN0aW9ucy5qcyBiL0xheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL3Jl
c291cmNlcy9yZWFjdGlvbnMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDNjZTRmZDdhZDgzZWM0MDY2YWJmZmEy
OGIzNTgxZjE2ODVkMWY5MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3Vz
dG9tLWVsZW1lbnRzL3Jlc291cmNlcy9yZWFjdGlvbnMuanMKQEAgLTAsMCArMSwzNjEgQEAKKwor
bGV0IHRlc3ROdW1iZXIgPSAxOworCitmdW5jdGlvbiB0ZXN0Tm9kZUNvbm5lY3Rvcih0ZXN0RnVu
Y3Rpb24sIG5hbWUpIHsKKyAgICBsZXQgY29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgnZGl2Jyk7CisgICAgY29udGFpbmVyLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoJ2RpdicpKTsKKyAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGNvbnRhaW5lcik7CisK
KyAgICB0ZXN0KGZ1bmN0aW9uICgpIHsKKyAgICAgICAgdmFyIGVsZW1lbnQgPSBkZWZpbmVfbmV3
X2N1c3RvbV9lbGVtZW50KCk7CisgICAgICAgIHZhciBpbnN0YW5jZSA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoZWxlbWVudC5uYW1lKTsKKyAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhlbGVt
ZW50LnRha2VMb2coKS50eXBlcygpLCBbJ2NvbnN0cnVjdGVkJ10pOworICAgICAgICB0ZXN0RnVu
Y3Rpb24oY29udGFpbmVyLCBpbnN0YW5jZSk7CisgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMo
ZWxlbWVudC50YWtlTG9nKCkudHlwZXMoKSwgWydjb25uZWN0ZWQnXSk7CisgICAgfSwgbmFtZSAr
ICcgbXVzdCBlbnF1ZXVlIGEgY29ubmVjdGVkIHJlYWN0aW9uJyk7CisKKyAgICB0ZXN0KGZ1bmN0
aW9uICgpIHsKKyAgICAgICAgdmFyIGVsZW1lbnQgPSBkZWZpbmVfbmV3X2N1c3RvbV9lbGVtZW50
KCk7CisgICAgICAgIHZhciBpbnN0YW5jZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoZWxlbWVu
dC5uYW1lKTsKKyAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhlbGVtZW50LnRha2VMb2coKS50
eXBlcygpLCBbJ2NvbnN0cnVjdGVkJ10pOworICAgICAgICB2YXIgbmV3RG9jID0gZG9jdW1lbnQu
aW1wbGVtZW50YXRpb24uY3JlYXRlSFRNTERvY3VtZW50KCk7CisgICAgICAgIHRlc3RGdW5jdGlv
bihjb250YWluZXIsIGluc3RhbmNlKTsKKyAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhlbGVt
ZW50LnRha2VMb2coKS50eXBlcygpLCBbJ2Nvbm5lY3RlZCddKTsKKyAgICAgICAgdGVzdEZ1bmN0
aW9uKG5ld0RvYy5kb2N1bWVudEVsZW1lbnQsIGluc3RhbmNlKTsKKyAgICAgICAgYXNzZXJ0X2Fy
cmF5X2VxdWFscyhlbGVtZW50LnRha2VMb2coKS50eXBlcygpLCBbJ2Rpc2Nvbm5lY3RlZCcsICdh
ZG9wdGVkJywgJ2Nvbm5lY3RlZCddKTsKKyAgICB9LCBuYW1lICsgJyBtdXN0IGVucXVldWUgYSBk
aXNjb25uZWN0ZWQgcmVhY3Rpb24sIGFuIGFkb3B0ZWQgcmVhY3Rpb24sIGFuZCBhIGNvbm5lY3Rl
ZCByZWFjdGlvbiB3aGVuIHRoZSBjdXN0b20gZWxlbWVudCB3YXMgaW4gYW5vdGhlciBkb2N1bWVu
dCcpOworCisgICAgY29udGFpbmVyLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoY29udGFpbmVyKTsK
K30KKworZnVuY3Rpb24gdGVzdE5vZGVEaXNjb25uZWN0b3IodGVzdEZ1bmN0aW9uLCBuYW1lKSB7
CisgICAgbGV0IGNvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAg
IGNvbnRhaW5lci5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSk7Cisg
ICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChjb250YWluZXIpOworIAorICAgIHRlc3QoZnVu
Y3Rpb24gKCkgeworICAgICAgICB2YXIgZWxlbWVudCA9IGRlZmluZV9uZXdfY3VzdG9tX2VsZW1l
bnQoKTsKKyAgICAgICAgdmFyIGluc3RhbmNlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChlbGVt
ZW50Lm5hbWUpOworICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGVsZW1lbnQudGFrZUxvZygp
LnR5cGVzKCksIFsnY29uc3RydWN0ZWQnXSk7CisgICAgICAgIGNvbnRhaW5lci5hcHBlbmRDaGls
ZChpbnN0YW5jZSk7CisgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoZWxlbWVudC50YWtlTG9n
KCkudHlwZXMoKSwgWydjb25uZWN0ZWQnXSk7CisgICAgICAgIHRlc3RGdW5jdGlvbihpbnN0YW5j
ZSwgd2luZG93KTsKKyAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhlbGVtZW50LnRha2VMb2co
KS50eXBlcygpLCBbJ2Rpc2Nvbm5lY3RlZCddKTsKKyAgICB9LCBuYW1lICsgJyBtdXN0IGVucXVl
dWUgYSBkaXNjb25uZWN0ZWQgcmVhY3Rpb24nKTsKKworICAgIGNvbnRhaW5lci5wYXJlbnROb2Rl
LnJlbW92ZUNoaWxkKGNvbnRhaW5lcik7Cit9CisKK2Z1bmN0aW9uIHRlc3RJbnNlcnRpbmdNYXJr
dXAodGVzdEZ1bmN0aW9uLCBuYW1lKSB7CisgICAgbGV0IGNvbnRhaW5lciA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZChkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCdkaXYnKSk7CisgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChjb250
YWluZXIpOworCisgICAgdGVzdChmdW5jdGlvbiAoKSB7CisgICAgICAgIHZhciBlbGVtZW50ID0g
ZGVmaW5lX25ld19jdXN0b21fZWxlbWVudCgpOworICAgICAgICB0ZXN0RnVuY3Rpb24oY29udGFp
bmVyLCBgPCR7ZWxlbWVudC5uYW1lfT48LyR7ZWxlbWVudC5uYW1lfT5gKTsKKyAgICAgICAgYXNz
ZXJ0X2FycmF5X2VxdWFscyhlbGVtZW50LnRha2VMb2coKS50eXBlcygpLCBbJ2NvbnN0cnVjdGVk
JywgJ2Nvbm5lY3RlZCddKTsKKyAgICB9LCBuYW1lICsgJyBtdXN0IGVucXVldWUgYSBjb25uZWN0
ZWQgcmVhY3Rpb24gZm9yIGEgbmV3bHkgY29uc3RydWN0ZWQgY3VzdG9tIGVsZW1lbnQnKTsKKwor
ICAgIHRlc3QoZnVuY3Rpb24gKCkgeworICAgICAgICB2YXIgZWxlbWVudCA9IGRlZmluZV9uZXdf
Y3VzdG9tX2VsZW1lbnQoWyd0aXRsZSddKTsKKyAgICAgICAgdGVzdEZ1bmN0aW9uKGNvbnRhaW5l
ciwgYDwke2VsZW1lbnQubmFtZX0gaWQ9ImhlbGxvIiB0aXRsZT0iaGkiPjwvJHtlbGVtZW50Lm5h
bWV9PmApOworICAgICAgICB2YXIgbG9nRW50cmllcyA9IGVsZW1lbnQudGFrZUxvZygpOworICAg
ICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ0VudHJpZXMudHlwZXMoKSwgWydjb25zdHJ1Y3Rl
ZCcsICdhdHRyaWJ1dGVDaGFuZ2VkJywgJ2Nvbm5lY3RlZCddKTsKKyAgICAgICAgYXNzZXJ0X2F0
dHJpYnV0ZV9sb2dfZW50cnkobG9nRW50cmllc1sxXSwge25hbWU6ICd0aXRsZScsIG9sZFZhbHVl
OiBudWxsLCBuZXdWYWx1ZTogJ2hpJywgbmFtZXNwYWNlOiBudWxsfSk7CisgICAgfSwgbmFtZSAr
ICcgbXVzdCBlbnF1ZXVlIGEgYXR0cmlidXRlQ2hhbmdlZCByZWFjdGlvbiBmb3IgYSBuZXdseSBj
b25zdHJ1Y3RlZCBjdXN0b20gZWxlbWVudCcpOworCisgICAgY29udGFpbmVyLnBhcmVudE5vZGUu
cmVtb3ZlQ2hpbGQoY29udGFpbmVyKTsKK30KKworZnVuY3Rpb24gdGVzdFBhcnNpbmdNYXJrdXAo
dGVzdEZ1bmN0aW9uLCBuYW1lKSB7CisgICAgdGVzdChmdW5jdGlvbiAoKSB7CisgICAgICAgIHZh
ciBlbGVtZW50ID0gZGVmaW5lX25ld19jdXN0b21fZWxlbWVudChbJ2lkJ10pOworICAgICAgICBh
c3NlcnRfYXJyYXlfZXF1YWxzKGVsZW1lbnQudGFrZUxvZygpLnR5cGVzKCksIFtdKTsKKyAgICAg
ICAgdmFyIGluc3RhbmNlID0gdGVzdEZ1bmN0aW9uKGRvY3VtZW50LCBgPCR7ZWxlbWVudC5uYW1l
fSBpZD0iaGVsbG8iIGNsYXNzPSJmb28iPjwvJHtlbGVtZW50Lm5hbWV9PmApOworICAgICAgICBh
c3NlcnRfZXF1YWxzKE9iamVjdC5nZXRQcm90b3R5cGVPZihpbnN0YW5jZS5xdWVyeVNlbGVjdG9y
KGVsZW1lbnQubmFtZSkpLCBlbGVtZW50LmNsYXNzLnByb3RvdHlwZSk7CisgICAgICAgIHZhciBs
b2dFbnRyaWVzID0gZWxlbWVudC50YWtlTG9nKCk7CisgICAgICAgIGFzc2VydF9hcnJheV9lcXVh
bHMobG9nRW50cmllcy50eXBlcygpLCBbJ2NvbnN0cnVjdGVkJywgJ2F0dHJpYnV0ZUNoYW5nZWQn
XSk7CisgICAgICAgIGFzc2VydF9hdHRyaWJ1dGVfbG9nX2VudHJ5KGxvZ0VudHJpZXNbMV0sIHtu
YW1lOiAnaWQnLCBvbGRWYWx1ZTogbnVsbCwgbmV3VmFsdWU6ICdoZWxsbycsIG5hbWVzcGFjZTog
bnVsbH0pOworICAgIH0sIG5hbWUgKyAnIG11c3QgY29uc3RydWN0IGEgY3VzdG9tIGVsZW1lbnQn
KTsKK30KKworZnVuY3Rpb24gdGVzdENsb25lcih0ZXN0RnVuY3Rpb24sIG5hbWUpIHsKKyAgICBs
ZXQgY29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgY29udGFp
bmVyLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpKTsKKyAgICBkb2N1
bWVudC5ib2R5LmFwcGVuZENoaWxkKGNvbnRhaW5lcik7CisKKyAgICB0ZXN0KGZ1bmN0aW9uICgp
IHsKKyAgICAgICAgdmFyIGVsZW1lbnQgPSBkZWZpbmVfbmV3X2N1c3RvbV9lbGVtZW50KFsnaWQn
XSk7CisgICAgICAgIHZhciBpbnN0YW5jZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoZWxlbWVu
dC5uYW1lKTsKKyAgICAgICAgY29udGFpbmVyLmFwcGVuZENoaWxkKGluc3RhbmNlKTsKKworICAg
ICAgICBpbnN0YW5jZS5zZXRBdHRyaWJ1dGUoJ2lkJywgJ2ZvbycpOworICAgICAgICBhc3NlcnRf
YXJyYXlfZXF1YWxzKGVsZW1lbnQudGFrZUxvZygpLnR5cGVzKCksIFsnY29uc3RydWN0ZWQnLCAn
Y29ubmVjdGVkJywgJ2F0dHJpYnV0ZUNoYW5nZWQnXSk7CisgICAgICAgIHZhciBuZXdJbnN0YW5j
ZSA9IHRlc3RGdW5jdGlvbihpbnN0YW5jZSk7CisgICAgICAgIHZhciBsb2dFbnRyaWVzID0gZWxl
bWVudC50YWtlTG9nKCk7CisgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMobG9nRW50cmllcy50
eXBlcygpLCBbJ2NvbnN0cnVjdGVkJywgJ2F0dHJpYnV0ZUNoYW5nZWQnXSk7CisgICAgICAgIGFz
c2VydF9hdHRyaWJ1dGVfbG9nX2VudHJ5KGxvZ0VudHJpZXMubGFzdCgpLCB7bmFtZTogJ2lkJywg
b2xkVmFsdWU6IG51bGwsIG5ld1ZhbHVlOiAnZm9vJywgbmFtZXNwYWNlOiBudWxsfSk7CisgICAg
fSwgbmFtZSArICcgbXVzdCBlbnF1ZXVlIGFuIGF0dHJpYnV0ZUNoYW5nZWQgcmVhY3Rpb24gd2hl
biBjbG9uaW5nIGFuIGVsZW1lbnQgd2l0aCBhbiBvYnNlcnZlZCBhdHRyaWJ1dGUnKTsKKworICAg
IHRlc3QoZnVuY3Rpb24gKCkgeworICAgICAgICB2YXIgZWxlbWVudCA9IGRlZmluZV9uZXdfY3Vz
dG9tX2VsZW1lbnQoWydpZCddKTsKKyAgICAgICAgdmFyIGluc3RhbmNlID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudChlbGVtZW50Lm5hbWUpOworICAgICAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQo
aW5zdGFuY2UpOworCisgICAgICAgIGluc3RhbmNlLnNldEF0dHJpYnV0ZSgnbGFuZycsICdlbicp
OworICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGVsZW1lbnQudGFrZUxvZygpLnR5cGVzKCks
IFsnY29uc3RydWN0ZWQnLCAnY29ubmVjdGVkJ10pOworICAgICAgICB2YXIgbmV3SW5zdGFuY2Ug
PSB0ZXN0RnVuY3Rpb24oaW5zdGFuY2UpOworICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGVs
ZW1lbnQudGFrZUxvZygpLnR5cGVzKCksIFsnY29uc3RydWN0ZWQnXSk7CisgICAgfSwgbmFtZSAr
ICcgbXVzdCBub3QgZW5xdWV1ZSBhbiBhdHRyaWJ1dGVDaGFuZ2VkIHJlYWN0aW9uIHdoZW4gY2xv
bmluZyBhbiBlbGVtZW50IHdpdGggYW4gdW5vYnNlcnZlZCBhdHRyaWJ1dGUnKTsKKworICAgIHRl
c3QoZnVuY3Rpb24gKCkgeworICAgICAgICB2YXIgZWxlbWVudCA9IGRlZmluZV9uZXdfY3VzdG9t
X2VsZW1lbnQoWyd0aXRsZScsICdjbGFzcyddKTsKKyAgICAgICAgdmFyIGluc3RhbmNlID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudChlbGVtZW50Lm5hbWUpOworICAgICAgICBjb250YWluZXIuYXBw
ZW5kQ2hpbGQoaW5zdGFuY2UpOworCisgICAgICAgIGluc3RhbmNlLnNldEF0dHJpYnV0ZSgnbGFu
ZycsICdlbicpOworICAgICAgICBpbnN0YW5jZS5jbGFzc05hbWUgPSAnZm9vJzsKKyAgICAgICAg
aW5zdGFuY2Uuc2V0QXR0cmlidXRlKCd0aXRsZScsICdoZWxsbyB3b3JsZCcpOworICAgICAgICBh
c3NlcnRfYXJyYXlfZXF1YWxzKGVsZW1lbnQudGFrZUxvZygpLnR5cGVzKCksIFsnY29uc3RydWN0
ZWQnLCAnY29ubmVjdGVkJywgJ2F0dHJpYnV0ZUNoYW5nZWQnLCAnYXR0cmlidXRlQ2hhbmdlZCdd
KTsKKyAgICAgICAgdmFyIG5ld0luc3RhbmNlID0gdGVzdEZ1bmN0aW9uKGluc3RhbmNlKTsKKyAg
ICAgICAgdmFyIGxvZ0VudHJpZXMgPSBlbGVtZW50LnRha2VMb2coKTsKKyAgICAgICAgYXNzZXJ0
X2FycmF5X2VxdWFscyhsb2dFbnRyaWVzLnR5cGVzKCksIFsnY29uc3RydWN0ZWQnLCAnYXR0cmli
dXRlQ2hhbmdlZCcsICdhdHRyaWJ1dGVDaGFuZ2VkJ10pOworICAgICAgICBhc3NlcnRfYXR0cmli
dXRlX2xvZ19lbnRyeShsb2dFbnRyaWVzWzFdLCB7bmFtZTogJ2NsYXNzJywgb2xkVmFsdWU6IG51
bGwsIG5ld1ZhbHVlOiAnZm9vJywgbmFtZXNwYWNlOiBudWxsfSk7CisgICAgICAgIGFzc2VydF9h
dHRyaWJ1dGVfbG9nX2VudHJ5KGxvZ0VudHJpZXNbMl0sIHtuYW1lOiAndGl0bGUnLCBvbGRWYWx1
ZTogbnVsbCwgbmV3VmFsdWU6ICdoZWxsbyB3b3JsZCcsIG5hbWVzcGFjZTogbnVsbH0pOworICAg
IH0sIG5hbWUgKyAnIG11c3QgZW5xdWV1ZSBhbiBhdHRyaWJ1dGVDaGFuZ2VkIHJlYWN0aW9uIHdo
ZW4gY2xvbmluZyBhbiBlbGVtZW50IG9ubHkgZm9yIG9ic2VydmVkIGF0dHJpYnV0ZXMnKTsKK30K
KworZnVuY3Rpb24gdGVzdFJlZmxlY3RBdHRyaWJ1dGVXaXRoQ29udGVudFZhbHVlcyhqc0F0dHJp
YnV0ZU5hbWUsIGNvbnRlbnRBdHRyaWJ1dGVOYW1lLCB2YWxpZFZhbHVlMSwgY29udGVudFZhbHVl
MSwgdmFsaWRWYWx1ZTIsIGNvbnRlbnRWYWx1ZTIsIG5hbWUpIHsKKyAgICB0ZXN0KGZ1bmN0aW9u
ICgpIHsKKyAgICAgICAgdmFyIGVsZW1lbnQgPSBkZWZpbmVfbmV3X2N1c3RvbV9lbGVtZW50KFtj
b250ZW50QXR0cmlidXRlTmFtZV0pOworICAgICAgICB2YXIgaW5zdGFuY2UgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KGVsZW1lbnQubmFtZSk7CisgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMo
ZWxlbWVudC50YWtlTG9nKCkudHlwZXMoKSwgWydjb25zdHJ1Y3RlZCddKTsKKyAgICAgICAgaW5z
dGFuY2VbanNBdHRyaWJ1dGVOYW1lXSA9IHZhbGlkVmFsdWUxOworICAgICAgICB2YXIgbG9nRW50
cmllcyA9IGVsZW1lbnQudGFrZUxvZygpOworICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxv
Z0VudHJpZXMudHlwZXMoKSwgWydhdHRyaWJ1dGVDaGFuZ2VkJ10pOworCisgICAgICAgIGFzc2Vy
dF9hdHRyaWJ1dGVfbG9nX2VudHJ5KGxvZ0VudHJpZXMubGFzdCgpLCB7bmFtZTogY29udGVudEF0
dHJpYnV0ZU5hbWUsIG9sZFZhbHVlOiBudWxsLCBuZXdWYWx1ZTogY29udGVudFZhbHVlMSwgbmFt
ZXNwYWNlOiBudWxsfSk7CisgICAgfSwgbmFtZSArICcgbXVzdCBlbnF1ZXVlIGFuIGF0dHJpYnV0
ZUNoYW5nZWQgcmVhY3Rpb24gd2hlbiBhZGRpbmcgJyArIGNvbnRlbnRBdHRyaWJ1dGVOYW1lICsg
JyBjb250ZW50IGF0dHJpYnV0ZScpOworCisgICAgdGVzdChmdW5jdGlvbiAoKSB7CisgICAgICAg
IHZhciBlbGVtZW50ID0gZGVmaW5lX25ld19jdXN0b21fZWxlbWVudChbY29udGVudEF0dHJpYnV0
ZU5hbWVdKTsKKyAgICAgICAgdmFyIGluc3RhbmNlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChl
bGVtZW50Lm5hbWUpOworICAgICAgICBpbnN0YW5jZVtqc0F0dHJpYnV0ZU5hbWVdID0gdmFsaWRW
YWx1ZTE7CisgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoZWxlbWVudC50YWtlTG9nKCkudHlw
ZXMoKSwgWydjb25zdHJ1Y3RlZCcsICdhdHRyaWJ1dGVDaGFuZ2VkJ10pOworICAgICAgICBpbnN0
YW5jZVtqc0F0dHJpYnV0ZU5hbWVdID0gdmFsaWRWYWx1ZTI7CisgICAgICAgIHZhciBsb2dFbnRy
aWVzID0gZWxlbWVudC50YWtlTG9nKCk7CisgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMobG9n
RW50cmllcy50eXBlcygpLCBbJ2F0dHJpYnV0ZUNoYW5nZWQnXSk7CisgICAgICAgIGFzc2VydF9h
dHRyaWJ1dGVfbG9nX2VudHJ5KGxvZ0VudHJpZXMubGFzdCgpLCB7bmFtZTogY29udGVudEF0dHJp
YnV0ZU5hbWUsIG9sZFZhbHVlOiBjb250ZW50VmFsdWUxLCBuZXdWYWx1ZTogY29udGVudFZhbHVl
MiwgbmFtZXNwYWNlOiBudWxsfSk7CisgICAgfSwgbmFtZSArICcgbXVzdCBlbnF1ZXVlIGFuIGF0
dHJpYnV0ZUNoYW5nZWQgcmVhY3Rpb24gd2hlbiByZXBsYWNpbmcgYW4gZXhpc3RpbmcgYXR0cmli
dXRlJyk7Cit9CisKK2Z1bmN0aW9uIHRlc3RSZWZsZWN0QXR0cmlidXRlKGpzQXR0cmlidXRlTmFt
ZSwgY29udGVudEF0dHJpYnV0ZU5hbWUsIHZhbGlkVmFsdWUxLCB2YWxpZFZhbHVlMiwgbmFtZSkg
eworICAgIHRlc3RSZWZsZWN0QXR0cmlidXRlV2l0aENvbnRlbnRWYWx1ZXMoanNBdHRyaWJ1dGVO
YW1lLCBjb250ZW50QXR0cmlidXRlTmFtZSwgdmFsaWRWYWx1ZTEsIHZhbGlkVmFsdWUxLCB2YWxp
ZFZhbHVlMiwgdmFsaWRWYWx1ZTIsIG5hbWUpOworfQorCitmdW5jdGlvbiB0ZXN0UmVmbGVjdEJv
b2xlYW5BdHRyaWJ1dGUoanNBdHRyaWJ1dGVOYW1lLCBjb250ZW50QXR0cmlidXRlTmFtZSwgbmFt
ZSkgeworICAgIHRlc3RSZWZsZWN0QXR0cmlidXRlV2l0aENvbnRlbnRWYWx1ZXMoanNBdHRyaWJ1
dGVOYW1lLCBjb250ZW50QXR0cmlidXRlTmFtZSwgdHJ1ZSwgJycsIGZhbHNlLCBudWxsLCBuYW1l
KTsKK30KKworZnVuY3Rpb24gdGVzdEF0dHJpYnV0ZUFkZGVyKHRlc3RGdW5jdGlvbiwgbmFtZSkg
eworICAgIHRlc3QoZnVuY3Rpb24gKCkgeworICAgICAgICB2YXIgZWxlbWVudCA9IGRlZmluZV9u
ZXdfY3VzdG9tX2VsZW1lbnQoWydpZCddKTsKKyAgICAgICAgdmFyIGluc3RhbmNlID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudChlbGVtZW50Lm5hbWUpOworICAgICAgICBhc3NlcnRfYXJyYXlfZXF1
YWxzKGVsZW1lbnQudGFrZUxvZygpLnR5cGVzKCksIFsnY29uc3RydWN0ZWQnXSk7CisgICAgICAg
IHRlc3RGdW5jdGlvbihpbnN0YW5jZSwgJ2lkJywgJ2ZvbycpOworICAgICAgICB2YXIgbG9nRW50
cmllcyA9IGVsZW1lbnQudGFrZUxvZygpOworICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxv
Z0VudHJpZXMudHlwZXMoKSwgWydhdHRyaWJ1dGVDaGFuZ2VkJ10pOworICAgICAgICBhc3NlcnRf
YXR0cmlidXRlX2xvZ19lbnRyeShsb2dFbnRyaWVzLmxhc3QoKSwge25hbWU6ICdpZCcsIG9sZFZh
bHVlOiBudWxsLCBuZXdWYWx1ZTogJ2ZvbycsIG5hbWVzcGFjZTogbnVsbH0pOworICAgIH0sIG5h
bWUgKyAnIG11c3QgZW5xdWV1ZSBhbiBhdHRyaWJ1dGVDaGFuZ2VkIHJlYWN0aW9uIHdoZW4gYWRk
aW5nIGFuIGF0dHJpYnV0ZScpOworCisgICAgdGVzdChmdW5jdGlvbiAoKSB7CisgICAgICAgIHZh
ciBlbGVtZW50ID0gZGVmaW5lX25ld19jdXN0b21fZWxlbWVudChbJ2NsYXNzJ10pOworICAgICAg
ICB2YXIgaW5zdGFuY2UgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KGVsZW1lbnQubmFtZSk7Cisg
ICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoZWxlbWVudC50YWtlTG9nKCkudHlwZXMoKSwgWydj
b25zdHJ1Y3RlZCddKTsKKyAgICAgICAgdGVzdEZ1bmN0aW9uKGluc3RhbmNlLCAnZGF0YS1sYW5n
JywgJ2VuJyk7CisgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoZWxlbWVudC50YWtlTG9nKCku
dHlwZXMoKSwgW10pOworICAgIH0sIG5hbWUgKyAnIG11c3Qgbm90IGVucXVldWUgYW4gYXR0cmli
dXRlQ2hhbmdlZCByZWFjdGlvbiB3aGVuIGFkZGluZyBhbiB1bm9ic2VydmVkIGF0dHJpYnV0ZScp
OworCisgICAgdGVzdChmdW5jdGlvbiAoKSB7CisgICAgICAgIHZhciBlbGVtZW50ID0gZGVmaW5l
X25ld19jdXN0b21fZWxlbWVudChbJ3RpdGxlJ10pOworICAgICAgICB2YXIgaW5zdGFuY2UgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KGVsZW1lbnQubmFtZSk7CisgICAgICAgIGluc3RhbmNlLnNl
dEF0dHJpYnV0ZSgndGl0bGUnLCAnaGVsbG8nKTsKKyAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFs
cyhlbGVtZW50LnRha2VMb2coKS50eXBlcygpLCBbJ2NvbnN0cnVjdGVkJywgJ2F0dHJpYnV0ZUNo
YW5nZWQnXSk7CisgICAgICAgIHRlc3RGdW5jdGlvbihpbnN0YW5jZSwgJ3RpdGxlJywgJ3dvcmxk
Jyk7CisgICAgICAgIHZhciBsb2dFbnRyaWVzID0gZWxlbWVudC50YWtlTG9nKCk7CisgICAgICAg
IGFzc2VydF9hcnJheV9lcXVhbHMobG9nRW50cmllcy50eXBlcygpLCBbJ2F0dHJpYnV0ZUNoYW5n
ZWQnXSk7CisgICAgICAgIGFzc2VydF9hdHRyaWJ1dGVfbG9nX2VudHJ5KGxvZ0VudHJpZXMubGFz
dCgpLCB7bmFtZTogJ3RpdGxlJywgb2xkVmFsdWU6ICdoZWxsbycsIG5ld1ZhbHVlOiAnd29ybGQn
LCBuYW1lc3BhY2U6IG51bGx9KTsKKyAgICB9LCBuYW1lICsgJyBtdXN0IGVucXVldWUgYW4gYXR0
cmlidXRlQ2hhbmdlZCByZWFjdGlvbiB3aGVuIHJlcGxhY2luZyBhbiBleGlzdGluZyBhdHRyaWJ1
dGUnKTsKKworICAgIHRlc3QoZnVuY3Rpb24gKCkgeworICAgICAgICB2YXIgZWxlbWVudCA9IGRl
ZmluZV9uZXdfY3VzdG9tX2VsZW1lbnQoW10pOworICAgICAgICB2YXIgaW5zdGFuY2UgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KGVsZW1lbnQubmFtZSk7CisgICAgICAgIGluc3RhbmNlLnNldEF0
dHJpYnV0ZSgnZGF0YS1sYW5nJywgJ3poJyk7CisgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMo
ZWxlbWVudC50YWtlTG9nKCkudHlwZXMoKSwgWydjb25zdHJ1Y3RlZCddKTsKKyAgICAgICAgdGVz
dEZ1bmN0aW9uKGluc3RhbmNlLCAnZGF0YS1sYW5nJywgJ2VuJyk7CisgICAgICAgIGFzc2VydF9h
cnJheV9lcXVhbHMoZWxlbWVudC50YWtlTG9nKCkudHlwZXMoKSwgW10pOworICAgIH0sIG5hbWUg
KyAnIG11c3QgZW5xdWV1ZSBhbiBhdHRyaWJ1dGVDaGFuZ2VkIHJlYWN0aW9uIHdoZW4gcmVwbGFj
aW5nIGFuIGV4aXN0aW5nIHVub2JzZXJ2ZWQgYXR0cmlidXRlJyk7Cit9CisKK2Z1bmN0aW9uIHRl
c3RBdHRyaWJ1dGVNdXRhdG9yKHRlc3RGdW5jdGlvbiwgbmFtZSkgeworICAgIHRlc3QoZnVuY3Rp
b24gKCkgeworICAgICAgICB2YXIgZWxlbWVudCA9IGRlZmluZV9uZXdfY3VzdG9tX2VsZW1lbnQo
Wyd0aXRsZSddKTsKKyAgICAgICAgdmFyIGluc3RhbmNlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dChlbGVtZW50Lm5hbWUpOworICAgICAgICBpbnN0YW5jZS5zZXRBdHRyaWJ1dGUoJ3RpdGxlJywg
J2hlbGxvJyk7CisgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoZWxlbWVudC50YWtlTG9nKCku
dHlwZXMoKSwgWydjb25zdHJ1Y3RlZCcsICdhdHRyaWJ1dGVDaGFuZ2VkJ10pOworICAgICAgICB0
ZXN0RnVuY3Rpb24oaW5zdGFuY2UsICd0aXRsZScsICd3b3JsZCcpOworICAgICAgICB2YXIgbG9n
RW50cmllcyA9IGVsZW1lbnQudGFrZUxvZygpOworICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxz
KGxvZ0VudHJpZXMudHlwZXMoKSwgWydhdHRyaWJ1dGVDaGFuZ2VkJ10pOworICAgICAgICBhc3Nl
cnRfYXR0cmlidXRlX2xvZ19lbnRyeShsb2dFbnRyaWVzLmxhc3QoKSwge25hbWU6ICd0aXRsZScs
IG9sZFZhbHVlOiAnaGVsbG8nLCBuZXdWYWx1ZTogJ3dvcmxkJywgbmFtZXNwYWNlOiBudWxsfSk7
CisgICAgfSwgbmFtZSArICcgbXVzdCBlbnF1ZXVlIGFuIGF0dHJpYnV0ZUNoYW5nZWQgcmVhY3Rp
b24gd2hlbiByZXBsYWNpbmcgYW4gZXhpc3RpbmcgYXR0cmlidXRlJyk7CisKKyAgICB0ZXN0KGZ1
bmN0aW9uICgpIHsKKyAgICAgICAgdmFyIGVsZW1lbnQgPSBkZWZpbmVfbmV3X2N1c3RvbV9lbGVt
ZW50KFsnY2xhc3MnXSk7CisgICAgICAgIHZhciBpbnN0YW5jZSA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoZWxlbWVudC5uYW1lKTsKKyAgICAgICAgaW5zdGFuY2Uuc2V0QXR0cmlidXRlKCdkYXRh
LWxhbmcnLCAnemgnKTsKKyAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhlbGVtZW50LnRha2VM
b2coKS50eXBlcygpLCBbJ2NvbnN0cnVjdGVkJ10pOworICAgICAgICB0ZXN0RnVuY3Rpb24oaW5z
dGFuY2UsICdkYXRhLWxhbmcnLCAnZW4nKTsKKyAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhl
bGVtZW50LnRha2VMb2coKS50eXBlcygpLCBbXSk7CisgICAgfSwgbmFtZSArICcgbXVzdCBub3Qg
ZW5xdWV1ZSBhbiBhdHRyaWJ1dGVDaGFuZ2VkIHJlYWN0aW9uIHdoZW4gcmVwbGFjaW5nIGFuIGV4
aXN0aW5nIHVub2JzZXJ2ZWQgYXR0cmlidXRlJyk7Cit9CisKK2Z1bmN0aW9uIHRlc3RBdHRyaWJ1
dGVSZW1vdmVyKHRlc3RGdW5jdGlvbiwgbmFtZSwgb3B0aW9ucykgeworICAgIGlmIChvcHRpb25z
ICYmICFvcHRpb25zLm9ubHlFeGlzdGluZ0F0dHJpYnV0ZSkgeworICAgICAgICB0ZXN0KGZ1bmN0
aW9uICgpIHsKKyAgICAgICAgICAgIHZhciBlbGVtZW50ID0gZGVmaW5lX25ld19jdXN0b21fZWxl
bWVudChbJ3RpdGxlJ10pOworICAgICAgICAgICAgdmFyIGluc3RhbmNlID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudChlbGVtZW50Lm5hbWUpOworICAgICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFs
cyhlbGVtZW50LnRha2VMb2coKS50eXBlcygpLCBbJ2NvbnN0cnVjdGVkJ10pOworICAgICAgICAg
ICAgdGVzdEZ1bmN0aW9uKGluc3RhbmNlLCAndGl0bGUnKTsKKyAgICAgICAgICAgIGFzc2VydF9h
cnJheV9lcXVhbHMoZWxlbWVudC50YWtlTG9nKCkudHlwZXMoKSwgW10pOworICAgICAgICB9LCBu
YW1lICsgJyBtdXN0IG5vdCBlbnF1ZXVlIGFuIGF0dHJpYnV0ZUNoYW5nZWQgcmVhY3Rpb24gd2hl
biByZW1vdmluZyBhbiBhdHRyaWJ1dGUgdGhhdCBkb2VzIG5vdCBleGlzdCcpOworICAgIH0KKwor
ICAgIHRlc3QoZnVuY3Rpb24gKCkgeworICAgICAgICB2YXIgZWxlbWVudCA9IGRlZmluZV9uZXdf
Y3VzdG9tX2VsZW1lbnQoW10pOworICAgICAgICB2YXIgaW5zdGFuY2UgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KGVsZW1lbnQubmFtZSk7CisgICAgICAgIGluc3RhbmNlLnNldEF0dHJpYnV0ZSgn
ZGF0YS1sYW5nJywgJ2hlbGxvJyk7CisgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoZWxlbWVu
dC50YWtlTG9nKCkudHlwZXMoKSwgWydjb25zdHJ1Y3RlZCddKTsKKyAgICAgICAgdGVzdEZ1bmN0
aW9uKGluc3RhbmNlLCAnZGF0YS1sYW5nJyk7CisgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMo
ZWxlbWVudC50YWtlTG9nKCkudHlwZXMoKSwgW10pOworICAgIH0sIG5hbWUgKyAnIG11c3Qgbm90
IGVucXVldWUgYW4gYXR0cmlidXRlQ2hhbmdlZCByZWFjdGlvbiB3aGVuIHJlbW92aW5nIGFuIHVu
b2JzZXJ2ZWQgYXR0cmlidXRlJyk7CisKKyAgICB0ZXN0KGZ1bmN0aW9uICgpIHsKKyAgICAgICAg
dmFyIGVsZW1lbnQgPSBkZWZpbmVfbmV3X2N1c3RvbV9lbGVtZW50KFsndGl0bGUnXSk7CisgICAg
ICAgIHZhciBpbnN0YW5jZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoZWxlbWVudC5uYW1lKTsK
KyAgICAgICAgaW5zdGFuY2Uuc2V0QXR0cmlidXRlKCd0aXRsZScsICdoZWxsbycpOworICAgICAg
ICBhc3NlcnRfYXJyYXlfZXF1YWxzKGVsZW1lbnQudGFrZUxvZygpLnR5cGVzKCksIFsnY29uc3Ry
dWN0ZWQnLCAnYXR0cmlidXRlQ2hhbmdlZCddKTsKKyAgICAgICAgdGVzdEZ1bmN0aW9uKGluc3Rh
bmNlLCAndGl0bGUnKTsKKyAgICAgICAgdmFyIGxvZ0VudHJpZXMgPSBlbGVtZW50LnRha2VMb2co
KTsKKyAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2dFbnRyaWVzLnR5cGVzKCksIFsnYXR0
cmlidXRlQ2hhbmdlZCddKTsKKyAgICAgICAgYXNzZXJ0X2F0dHJpYnV0ZV9sb2dfZW50cnkobG9n
RW50cmllcy5sYXN0KCksIHtuYW1lOiAndGl0bGUnLCBvbGRWYWx1ZTogJ2hlbGxvJywgbmV3VmFs
dWU6IG51bGwsIG5hbWVzcGFjZTogbnVsbH0pOworICAgIH0sIG5hbWUgKyAnIG11c3QgZW5xdWV1
ZSBhbiBhdHRyaWJ1dGVDaGFuZ2VkIHJlYWN0aW9uIHdoZW4gcmVtb3ZpbmcgYW4gZXhpc3Rpbmcg
YXR0cmlidXRlJyk7CisKKyAgICB0ZXN0KGZ1bmN0aW9uICgpIHsKKyAgICAgICAgdmFyIGVsZW1l
bnQgPSBkZWZpbmVfbmV3X2N1c3RvbV9lbGVtZW50KFtdKTsKKyAgICAgICAgdmFyIGluc3RhbmNl
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChlbGVtZW50Lm5hbWUpOworICAgICAgICBpbnN0YW5j
ZS5zZXRBdHRyaWJ1dGUoJ2RhdGEtbGFuZycsICdqYScpOworICAgICAgICBhc3NlcnRfYXJyYXlf
ZXF1YWxzKGVsZW1lbnQudGFrZUxvZygpLnR5cGVzKCksIFsnY29uc3RydWN0ZWQnXSk7CisgICAg
ICAgIHRlc3RGdW5jdGlvbihpbnN0YW5jZSwgJ2RhdGEtbGFuZycpOworICAgICAgICBhc3NlcnRf
YXJyYXlfZXF1YWxzKGVsZW1lbnQudGFrZUxvZygpLnR5cGVzKCksIFtdKTsKKyAgICB9LCBuYW1l
ICsgJyBtdXN0IG5vdCBlbnF1ZXVlIGFuIGF0dHJpYnV0ZUNoYW5nZWQgcmVhY3Rpb24gd2hlbiBy
ZW1vdmluZyBhbiBleGlzdGluZyB1bm9ic2VydmVkIGF0dHJpYnV0ZScpOworfQorCitmdW5jdGlv
biB0ZXN0X211dGF0aW5nX3N0eWxlX3Byb3BlcnR5X3ZhbHVlKHRlc3RGdW5jdGlvbiwgbmFtZSwg
b3B0aW9ucykgeworICAgIGNvbnN0IHByb3BlcnR5TmFtZSA9IChvcHRpb25zIHx8IHt9KS5wcm9w
ZXJ0eU5hbWUgfHwgJ2NvbG9yJzsKKyAgICBjb25zdCBpZGxOYW1lID0gKG9wdGlvbnMgfHwge30p
LmlkbE5hbWUgfHwgJ2NvbG9yJzsKKyAgICBjb25zdCB2YWx1ZTEgPSAob3B0aW9ucyB8fCB7fSku
dmFsdWUxIHx8ICdibHVlJzsKKyAgICBjb25zdCBydWxlMSA9IGAke3Byb3BlcnR5TmFtZX06ICR7
dmFsdWUxfTtgOworICAgIGNvbnN0IHZhbHVlMiA9IChvcHRpb25zIHx8IHt9KS52YWx1ZTIgfHwg
J3JlZCc7CisgICAgY29uc3QgcnVsZTIgPSBgJHtwcm9wZXJ0eU5hbWV9OiAke3ZhbHVlMn07YDsK
KworICAgIHRlc3QoZnVuY3Rpb24gKCkgeworICAgICAgICB2YXIgZWxlbWVudCA9IGRlZmluZV9u
ZXdfY3VzdG9tX2VsZW1lbnQoWydzdHlsZSddKTsKKyAgICAgICAgdmFyIGluc3RhbmNlID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudChlbGVtZW50Lm5hbWUpOworICAgICAgICBhc3NlcnRfYXJyYXlf
ZXF1YWxzKGVsZW1lbnQudGFrZUxvZygpLnR5cGVzKCksIFsnY29uc3RydWN0ZWQnXSk7CisgICAg
ICAgIHRlc3RGdW5jdGlvbihpbnN0YW5jZSwgcHJvcGVydHlOYW1lLCBpZGxOYW1lLCB2YWx1ZTEp
OworICAgICAgICBhc3NlcnRfZXF1YWxzKGluc3RhbmNlLmdldEF0dHJpYnV0ZSgnc3R5bGUnKSwg
cnVsZTEpOworICAgICAgICB2YXIgbG9nRW50cmllcyA9IGVsZW1lbnQudGFrZUxvZygpOworICAg
ICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ0VudHJpZXMudHlwZXMoKSwgWydhdHRyaWJ1dGVD
aGFuZ2VkJ10pOworICAgICAgICBhc3NlcnRfYXR0cmlidXRlX2xvZ19lbnRyeShsb2dFbnRyaWVz
Lmxhc3QoKSwge25hbWU6ICdzdHlsZScsIG9sZFZhbHVlOiBudWxsLCBuZXdWYWx1ZTogcnVsZTEs
IG5hbWVzcGFjZTogbnVsbH0pOworICAgIH0sIG5hbWUgKyAnIG11c3QgZW5xdWV1ZSBhbiBhdHRy
aWJ1dGVDaGFuZ2VkIHJlYWN0aW9uIHdoZW4gaXQgYWRkcyB0aGUgb2JzZXJ2ZWQgc3R5bGUgYXR0
cmlidXRlJyk7CisKKyAgICB0ZXN0KGZ1bmN0aW9uICgpIHsKKyAgICAgICAgdmFyIGVsZW1lbnQg
PSBkZWZpbmVfbmV3X2N1c3RvbV9lbGVtZW50KFsndGl0bGUnXSk7CisgICAgICAgIHZhciBpbnN0
YW5jZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoZWxlbWVudC5uYW1lKTsKKyAgICAgICAgYXNz
ZXJ0X2FycmF5X2VxdWFscyhlbGVtZW50LnRha2VMb2coKS50eXBlcygpLCBbJ2NvbnN0cnVjdGVk
J10pOworICAgICAgICB0ZXN0RnVuY3Rpb24oaW5zdGFuY2UsIHByb3BlcnR5TmFtZSwgaWRsTmFt
ZSwgdmFsdWUxKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhpbnN0YW5jZS5nZXRBdHRyaWJ1dGUo
J3N0eWxlJyksIHJ1bGUxKTsKKyAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhlbGVtZW50LnRh
a2VMb2coKS50eXBlcygpLCBbXSk7CisgICAgfSwgbmFtZSArICcgbXVzdCBub3QgZW5xdWV1ZSBh
biBhdHRyaWJ1dGVDaGFuZ2VkIHJlYWN0aW9uIHdoZW4gaXQgYWRkcyB0aGUgc3R5bGUgYXR0cmli
dXRlIGJ1dCB0aGUgc3R5bGUgYXR0cmlidXRlIGlzIG5vdCBvYnNlcnZlZCcpOworCisgICAgdGVz
dChmdW5jdGlvbiAoKSB7CisgICAgICAgIHZhciBlbGVtZW50ID0gZGVmaW5lX25ld19jdXN0b21f
ZWxlbWVudChbJ3N0eWxlJ10pOworICAgICAgICB2YXIgaW5zdGFuY2UgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KGVsZW1lbnQubmFtZSk7CisgICAgICAgIHRlc3RGdW5jdGlvbihpbnN0YW5jZSwg
cHJvcGVydHlOYW1lLCBpZGxOYW1lLCB2YWx1ZTEpOworICAgICAgICBhc3NlcnRfYXJyYXlfZXF1
YWxzKGVsZW1lbnQudGFrZUxvZygpLnR5cGVzKCksIFsnY29uc3RydWN0ZWQnLCAnYXR0cmlidXRl
Q2hhbmdlZCddKTsKKyAgICAgICAgdGVzdEZ1bmN0aW9uKGluc3RhbmNlLCBwcm9wZXJ0eU5hbWUs
IGlkbE5hbWUsIHZhbHVlMik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoaW5zdGFuY2UuZ2V0QXR0
cmlidXRlKCdzdHlsZScpLCBydWxlMik7CisgICAgICAgIHZhciBsb2dFbnRyaWVzID0gZWxlbWVu
dC50YWtlTG9nKCk7CisgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMobG9nRW50cmllcy50eXBl
cygpLCBbJ2F0dHJpYnV0ZUNoYW5nZWQnXSk7CisgICAgICAgIGFzc2VydF9hdHRyaWJ1dGVfbG9n
X2VudHJ5KGxvZ0VudHJpZXMubGFzdCgpLCB7bmFtZTogJ3N0eWxlJywgb2xkVmFsdWU6IHJ1bGUx
LCBuZXdWYWx1ZTogcnVsZTIsIG5hbWVzcGFjZTogbnVsbH0pOworICAgIH0sIG5hbWUgKyAnIG11
c3QgZW5xdWV1ZSBhbiBhdHRyaWJ1dGVDaGFuZ2VkIHJlYWN0aW9uIHdoZW4gaXQgbXV0YXRlcyB0
aGUgb2JzZXJ2ZWQgc3R5bGUgYXR0cmlidXRlJyk7CisKKyAgICB0ZXN0KGZ1bmN0aW9uICgpIHsK
KyAgICAgICAgdmFyIGVsZW1lbnQgPSBkZWZpbmVfbmV3X2N1c3RvbV9lbGVtZW50KFtdKTsKKyAg
ICAgICAgdmFyIGluc3RhbmNlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChlbGVtZW50Lm5hbWUp
OworICAgICAgICB0ZXN0RnVuY3Rpb24oaW5zdGFuY2UsIHByb3BlcnR5TmFtZSwgaWRsTmFtZSwg
dmFsdWUxKTsKKyAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhlbGVtZW50LnRha2VMb2coKS50
eXBlcygpLCBbJ2NvbnN0cnVjdGVkJ10pOworICAgICAgICB0ZXN0RnVuY3Rpb24oaW5zdGFuY2Us
IHByb3BlcnR5TmFtZSwgaWRsTmFtZSwgdmFsdWUyKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhp
bnN0YW5jZS5nZXRBdHRyaWJ1dGUoJ3N0eWxlJyksIHJ1bGUyKTsKKyAgICAgICAgYXNzZXJ0X2Fy
cmF5X2VxdWFscyhlbGVtZW50LnRha2VMb2coKS50eXBlcygpLCBbXSk7CisgICAgfSwgbmFtZSAr
ICcgbXVzdCBub3QgZW5xdWV1ZSBhbiBhdHRyaWJ1dGVDaGFuZ2VkIHJlYWN0aW9uIHdoZW4gaXQg
bXV0YXRlcyB0aGUgc3R5bGUgYXR0cmlidXRlIGJ1dCB0aGUgc3R5bGUgYXR0cmlidXRlIGlzIG5v
dCBvYnNlcnZlZCcpOworfQorCitmdW5jdGlvbiB0ZXN0X3JlbW92aW5nX3N0eWxlX3Byb3BlcnR5
X3ZhbHVlKHRlc3RGdW5jdGlvbiwgbmFtZSkgeworICAgIHRlc3QoZnVuY3Rpb24gKCkgeworICAg
ICAgICB2YXIgZWxlbWVudCA9IGRlZmluZV9uZXdfY3VzdG9tX2VsZW1lbnQoWydzdHlsZSddKTsK
KyAgICAgICAgdmFyIGluc3RhbmNlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChlbGVtZW50Lm5h
bWUpOworICAgICAgICBpbnN0YW5jZS5zZXRBdHRyaWJ1dGUoJ3N0eWxlJywgJ2NvbG9yOiByZWQ7
IGRpc3BsYXk6IG5vbmU7Jyk7CisgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoZWxlbWVudC50
YWtlTG9nKCkudHlwZXMoKSwgWydjb25zdHJ1Y3RlZCcsICdhdHRyaWJ1dGVDaGFuZ2VkJ10pOwor
ICAgICAgICB0ZXN0RnVuY3Rpb24oaW5zdGFuY2UsICdjb2xvcicsICdjb2xvcicpOworICAgICAg
ICBhc3NlcnRfZXF1YWxzKGluc3RhbmNlLmdldEF0dHJpYnV0ZSgnc3R5bGUnKSwgJ2Rpc3BsYXk6
IG5vbmU7Jyk7IC8vIERvbid0IG1ha2UgdGhpcyBlbXB0eSBzaW5jZSBicm93c2VyIGJlaGF2aW9y
cyBhcmUgaW5jb25zaXN0ZW50IG5vdy4KKyAgICAgICAgdmFyIGxvZ0VudHJpZXMgPSBlbGVtZW50
LnRha2VMb2coKTsKKyAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2dFbnRyaWVzLnR5cGVz
KCksIFsnYXR0cmlidXRlQ2hhbmdlZCddKTsKKyAgICAgICAgYXNzZXJ0X2F0dHJpYnV0ZV9sb2df
ZW50cnkobG9nRW50cmllcy5sYXN0KCksIHtuYW1lOiAnc3R5bGUnLCBvbGRWYWx1ZTogJ2NvbG9y
OiByZWQ7IGRpc3BsYXk6IG5vbmU7JywgbmV3VmFsdWU6ICdkaXNwbGF5OiBub25lOycsIG5hbWVz
cGFjZTogbnVsbH0pOworICAgIH0sIG5hbWUgKyAnIG11c3QgZW5xdWV1ZSBhbiBhdHRyaWJ1dGVD
aGFuZ2VkIHJlYWN0aW9uIHdoZW4gaXQgcmVtb3ZlcyBhIHByb3BlcnR5IGZyb20gdGhlIG9ic2Vy
dmVkIHN0eWxlIGF0dHJpYnV0ZScpOworCisgICAgdGVzdChmdW5jdGlvbiAoKSB7CisgICAgICAg
IHZhciBlbGVtZW50ID0gZGVmaW5lX25ld19jdXN0b21fZWxlbWVudChbJ2NsYXNzJ10pOworICAg
ICAgICB2YXIgaW5zdGFuY2UgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KGVsZW1lbnQubmFtZSk7
CisgICAgICAgIGluc3RhbmNlLnNldEF0dHJpYnV0ZSgnc3R5bGUnLCAnY29sb3I6IHJlZDsgZGlz
cGxheTogbm9uZTsnKTsKKyAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhlbGVtZW50LnRha2VM
b2coKS50eXBlcygpLCBbJ2NvbnN0cnVjdGVkJ10pOworICAgICAgICB0ZXN0RnVuY3Rpb24oaW5z
dGFuY2UsICdjb2xvcicsICdjb2xvcicpOworICAgICAgICBhc3NlcnRfZXF1YWxzKGluc3RhbmNl
LmdldEF0dHJpYnV0ZSgnc3R5bGUnKSwgJ2Rpc3BsYXk6IG5vbmU7Jyk7IC8vIERvbid0IG1ha2Ug
dGhpcyBlbXB0eSBzaW5jZSBicm93c2VyIGJlaGF2aW9ycyBhcmUgaW5jb25zaXN0ZW50IG5vdy4K
KyAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhlbGVtZW50LnRha2VMb2coKS50eXBlcygpLCBb
XSk7CisgICAgfSwgbmFtZSArICcgbXVzdCBub3QgZW5xdWV1ZSBhbiBhdHRyaWJ1dGVDaGFuZ2Vk
IHJlYWN0aW9uIHdoZW4gaXQgcmVtb3ZlcyBhIHByb3BlcnR5IGZyb20gdGhlIHN0eWxlIGF0dHJp
YnV0ZSBidXQgdGhlIHN0eWxlIGF0dHJpYnV0ZSBpcyBub3Qgb2JzZXJ2ZWQnKTsKK30KKworZnVu
Y3Rpb24gdGVzdF9tdXRhdGluZ19zdHlsZV9wcm9wZXJ0eV9wcmlvcml0eSh0ZXN0RnVuY3Rpb24s
IG5hbWUpIHsKKyAgICB0ZXN0KGZ1bmN0aW9uICgpIHsKKyAgICAgICAgdmFyIGVsZW1lbnQgPSBk
ZWZpbmVfbmV3X2N1c3RvbV9lbGVtZW50KFsnc3R5bGUnXSk7CisgICAgICAgIHZhciBpbnN0YW5j
ZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoZWxlbWVudC5uYW1lKTsKKyAgICAgICAgaW5zdGFu
Y2Uuc2V0QXR0cmlidXRlKCdzdHlsZScsICdjb2xvcjogcmVkJyk7CisgICAgICAgIGFzc2VydF9h
cnJheV9lcXVhbHMoZWxlbWVudC50YWtlTG9nKCkudHlwZXMoKSwgWydjb25zdHJ1Y3RlZCcsICdh
dHRyaWJ1dGVDaGFuZ2VkJ10pOworICAgICAgICB0ZXN0RnVuY3Rpb24oaW5zdGFuY2UsICdjb2xv
cicsICdjb2xvcicsIHRydWUpOworICAgICAgICBhc3NlcnRfZXF1YWxzKGluc3RhbmNlLmdldEF0
dHJpYnV0ZSgnc3R5bGUnKSwgJ2NvbG9yOiByZWQgIWltcG9ydGFudDsnKTsKKyAgICAgICAgdmFy
IGxvZ0VudHJpZXMgPSBlbGVtZW50LnRha2VMb2coKTsKKyAgICAgICAgYXNzZXJ0X2FycmF5X2Vx
dWFscyhsb2dFbnRyaWVzLnR5cGVzKCksIFsnYXR0cmlidXRlQ2hhbmdlZCddKTsKKyAgICAgICAg
YXNzZXJ0X2F0dHJpYnV0ZV9sb2dfZW50cnkobG9nRW50cmllcy5sYXN0KCksIHtuYW1lOiAnc3R5
bGUnLCBvbGRWYWx1ZTogJ2NvbG9yOiByZWQnLCBuZXdWYWx1ZTogJ2NvbG9yOiByZWQgIWltcG9y
dGFudDsnLCBuYW1lc3BhY2U6IG51bGx9KTsKKyAgICB9LCBuYW1lICsgJyBtdXN0IGVucXVldWUg
YW4gYXR0cmlidXRlQ2hhbmdlZCByZWFjdGlvbiB3aGVuIGl0IG1ha2VzIGEgcHJvcGVydHkgaW1w
b3J0YW50IGFuZCB0aGUgc3R5bGUgYXR0cmlidXRlIGlzIG9ic2VydmVkJyk7CisKKyAgICB0ZXN0
KGZ1bmN0aW9uICgpIHsKKyAgICAgICAgdmFyIGVsZW1lbnQgPSBkZWZpbmVfbmV3X2N1c3RvbV9l
bGVtZW50KFsnaWQnXSk7CisgICAgICAgIHZhciBpbnN0YW5jZSA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoZWxlbWVudC5uYW1lKTsKKyAgICAgICAgaW5zdGFuY2Uuc2V0QXR0cmlidXRlKCdzdHls
ZScsICdjb2xvcjogcmVkJyk7CisgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoZWxlbWVudC50
YWtlTG9nKCkudHlwZXMoKSwgWydjb25zdHJ1Y3RlZCddKTsKKyAgICAgICAgdGVzdEZ1bmN0aW9u
KGluc3RhbmNlLCAnY29sb3InLCAnY29sb3InLCB0cnVlKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFs
cyhpbnN0YW5jZS5nZXRBdHRyaWJ1dGUoJ3N0eWxlJyksICdjb2xvcjogcmVkICFpbXBvcnRhbnQ7
Jyk7CisgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoZWxlbWVudC50YWtlTG9nKCkudHlwZXMo
KSwgW10pOworICAgIH0sIG5hbWUgKyAnIG11c3QgZW5xdWV1ZSBhbiBhdHRyaWJ1dGVDaGFuZ2Vk
IHJlYWN0aW9uIHdoZW4gaXQgbWFrZXMgYSBwcm9wZXJ0eSBpbXBvcnRhbnQgYnV0IHRoZSBzdHls
ZSBhdHRyaWJ1dGUgaXMgbm90IG9ic2VydmVkJyk7Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2N1c3RvbS1lbGVtZW50cy90aHJvdy1vbi1keW5hbWljLW1hcmt1cC1pbnNlcnRpb24t
Y291bnRlci1jb25zdHJ1Y3QuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRz
L3Rocm93LW9uLWR5bmFtaWMtbWFya3VwLWluc2VydGlvbi1jb3VudGVyLWNvbnN0cnVjdC5odG1s
CmluZGV4IGFhNGM3YjBkYmZlNmQxM2U0ZjAzNDQ5ODYyYzE3NDE0Nzc3NjAzM2MuLjZmM2JhZTgz
ZjJlZGJjODA1MDEyNDFjY2ZlM2ZkN2U3OTI0OWQyYjEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvY3VzdG9tLWVsZW1lbnRzL3Rocm93LW9uLWR5bmFtaWMtbWFya3VwLWluc2VydGlvbi1j
b3VudGVyLWNvbnN0cnVjdC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1l
bnRzL3Rocm93LW9uLWR5bmFtaWMtbWFya3VwLWluc2VydGlvbi1jb3VudGVyLWNvbnN0cnVjdC5o
dG1sCkBAIC04LDcgKzgsNyBAQAogPG1ldGEgbmFtZT0iaGVscCIgY29udGVudD0iaHR0cHM6Ly9o
dG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2UvZHluYW1pYy1tYXJrdXAtaW5zZXJ0aW9uLmh0
bWwjdGhyb3ctb24tZHluYW1pYy1tYXJrdXAtaW5zZXJ0aW9uLWNvdW50ZXIiPgogPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3Jp
cHQgc3JjPSIuLi8uLi9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVt
ZW50cy9yZXNvdXJjZXMvY3VzdG9tLWVsZW1lbnRzLWhlbHBlcnMuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9InJlc291cmNlcy9jdXN0b20tZWxlbWVudHMtaGVscGVycy5qcyI+PC9zY3JpcHQ+
CiA8L2hlYWQ+CiA8Ym9keT4KIDxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2N1c3RvbS1lbGVtZW50cy90aHJvdy1vbi1keW5hbWljLW1hcmt1cC1pbnNl
cnRpb24tY291bnRlci1yZWFjdGlvbnMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVs
ZW1lbnRzL3Rocm93LW9uLWR5bmFtaWMtbWFya3VwLWluc2VydGlvbi1jb3VudGVyLXJlYWN0aW9u
cy5odG1sCmluZGV4IGM2Y2Q3YzYwZTcwNTM0YjVhYTQ5OTdiM2Y2ZWNlNTU3YTRiY2M4MTguLjA2
ZmVlZjY4MmUwY2I4M2RiYWMyMGNiYTY2MjYwYzQxNjc0YjBlMTcgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL3Rocm93LW9uLWR5bmFtaWMtbWFya3VwLWluc2Vy
dGlvbi1jb3VudGVyLXJlYWN0aW9ucy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3VzdG9t
LWVsZW1lbnRzL3Rocm93LW9uLWR5bmFtaWMtbWFya3VwLWluc2VydGlvbi1jb3VudGVyLXJlYWN0
aW9ucy5odG1sCkBAIC04LDcgKzgsNyBAQAogPG1ldGEgbmFtZT0iaGVscCIgY29udGVudD0iaHR0
cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2UvZHluYW1pYy1tYXJrdXAtaW5zZXJ0
aW9uLmh0bWwjdGhyb3ctb24tZHluYW1pYy1tYXJrdXAtaW5zZXJ0aW9uLWNvdW50ZXIiPgogPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CiA8c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSIuLi8uLi9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3Rv
bS1lbGVtZW50cy9yZXNvdXJjZXMvY3VzdG9tLWVsZW1lbnRzLWhlbHBlcnMuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9jdXN0b20tZWxlbWVudHMtaGVscGVycy5qcyI+PC9z
Y3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keT4KIDxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9yZXNvdXJjZXMvZ3JlZW4tMjU2eDI1Ni5wbmcgYi9M
YXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9yZXNvdXJjZXMvZ3JlZW4tMjU2eDI1Ni5wbmcKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYjA2OTQ1YzMxMDE2MjA4OTUxMTkyMzIyYTQ0OGQyZjM0YWNjNDdhYgpHSVQgYmluYXJ5
IHBhdGNoCmxpdGVyYWwgMTAzCnpjbWVBU0BOPyhvbEh5YHVWQnEhaWEweX55VTw1SzU4NW8mP1JO
NVhaUlVwTTI7MWxBP0BTbmpYPyFYRWxTS2lhYgp1RntDMnk/RXl3a0FuJWFEQDh4RjQ2UWdCLVkh
RW9XczBoXkdvWFk8TSNQZjlaYjZNdzwmOyRTa21LSj5nCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEK
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9zaXplcy1keW5hbWljLTAwMS1l
eHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvc2l6ZXMtZHluYW1pYy0wMDEt
ZXhwZWN0ZWQuaHRtbAppbmRleCA5Mjc5YzgyMTBjNThiZTE5NmMzNzk1YjJiYzBmMjhiMTQ4ZjFm
NTEyLi44Y2RhNzE1ZGE3ZjBmM2Y1NTQyZmJmNDk3NmUwNzcwZDljZjhmYTY1IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9zaXplcy1keW5hbWljLTAwMS1leHBlY3RlZC5odG1s
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3NpemVzLWR5bmFtaWMtMDAxLWV4cGVjdGVk
Lmh0bWwKQEAgLTEsNCArMSw0IEBACiA8IWRvY3R5cGUgaHRtbD4KIDx0aXRsZT5UZXN0IHJlZmVy
ZW5jZTwvdGl0bGU+CiA8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkVtaWxpbyBDb2JvcyDDgWx2
YXJleiIgaHJlZj0ibWFpbHRvOmVtaWxpb0BjcmlzYWwuaW8iPgotPGlmcmFtZSB3aWR0aD0iNTAw
IiBoZWlnaHQ9IjUwMCIgc3JjZG9jPSc8IWRvY3R5cGUgaHRtbD48aW1nIGFsdD0iRkFJTCIgc3Jj
c2V0PSIuLi8uLi9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ltYWdlcy9ncmVlbi0y
NTZ4MjU2LnBuZyAxMDB3IiBzdHlsZT0ibWF4LXdpZHRoOiAxMDAlIiBzaXplcz0iMTBweCI+Jz48
L2lmcmFtZT4KKzxpZnJhbWUgd2lkdGg9IjUwMCIgaGVpZ2h0PSI1MDAiIHNyY2RvYz0nPCFkb2N0
eXBlIGh0bWw+PGltZyBhbHQ9IkZBSUwiIHNyY3NldD0icmVzb3VyY2VzL2dyZWVuLTI1NngyNTYu
cG5nIDEwMHciIHN0eWxlPSJtYXgtd2lkdGg6IDEwMCUiIHNpemVzPSIxMHB4Ij4nPjwvaWZyYW1l
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvc2l6ZXMtZHluYW1pYy0wMDEu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3NpemVzLWR5bmFtaWMtMDAxLmh0bWwKaW5k
ZXggZDFkOTIzODk1MTU2YTBiOWVjYjQxYjcyOTc5YTQ1NmY2ODM0ZjE4Yi4uODM3YzMwYTY3ZmQ0
NjdkMjdmMWM0YmVkMmQxZmJjYWRmZjE4YzYzMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFz
dC9pbWFnZXMvc2l6ZXMtZHluYW1pYy0wMDEuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2lt
YWdlcy9zaXplcy1keW5hbWljLTAwMS5odG1sCkBAIC0yNSw0ICsyNSw0IEBAIGZ1bmN0aW9uIGZy
YW1lTG9hZGVkKGZyYW1lKSB7CiAgIH0sIDApOwogfQogPC9zY3JpcHQ+Ci08aWZyYW1lIG9ubG9h
ZD0iZnJhbWVMb2FkZWQodGhpcykiIHdpZHRoPSIyMDAiIGhlaWdodD0iNTAwIiBzcmNkb2M9Jzwh
ZG9jdHlwZSBodG1sPjxpbWcgc3Jjc2V0PSIuLi8uLi9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ltYWdlcy9ncmVlbi0yNTZ4MjU2LnBuZyAxMDB3IiBzdHlsZT0ibWF4LXdpZHRoOiAx
MDAlIiBzaXplcz0iKG1pbi13aWR0aDogNDAwcHgpIDEwcHgsIDIwcHgiPic+PC9pZnJhbWU+Cis8
aWZyYW1lIG9ubG9hZD0iZnJhbWVMb2FkZWQodGhpcykiIHdpZHRoPSIyMDAiIGhlaWdodD0iNTAw
IiBzcmNkb2M9JzwhZG9jdHlwZSBodG1sPjxpbWcgc3Jjc2V0PSJyZXNvdXJjZXMvZ3JlZW4tMjU2
eDI1Ni5wbmcgMTAwdyIgc3R5bGU9Im1heC13aWR0aDogMTAwJSIgc2l6ZXM9IihtaW4td2lkdGg6
IDQwMHB4KSAxMHB4LCAyMHB4Ij4nPjwvaWZyYW1lPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9pbWFnZXMvc2l6ZXMtZHluYW1pYy0wMDItZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvaW1hZ2VzL3NpemVzLWR5bmFtaWMtMDAyLWV4cGVjdGVkLmh0bWwKaW5kZXggOTI3OWM4
MjEwYzU4YmUxOTZjMzc5NWIyYmMwZjI4YjE0OGYxZjUxMi4uOGNkYTcxNWRhN2YwZjNmNTU0MmZi
ZjQ5NzZlMDc3MGQ5Y2Y4ZmE2NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMv
c2l6ZXMtZHluYW1pYy0wMDItZXhwZWN0ZWQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2lt
YWdlcy9zaXplcy1keW5hbWljLTAwMi1leHBlY3RlZC5odG1sCkBAIC0xLDQgKzEsNCBAQAogPCFk
b2N0eXBlIGh0bWw+CiA8dGl0bGU+VGVzdCByZWZlcmVuY2U8L3RpdGxlPgogPGxpbmsgcmVsPSJh
dXRob3IiIHRpdGxlPSJFbWlsaW8gQ29ib3Mgw4FsdmFyZXoiIGhyZWY9Im1haWx0bzplbWlsaW9A
Y3Jpc2FsLmlvIj4KLTxpZnJhbWUgd2lkdGg9IjUwMCIgaGVpZ2h0PSI1MDAiIHNyY2RvYz0nPCFk
b2N0eXBlIGh0bWw+PGltZyBhbHQ9IkZBSUwiIHNyY3NldD0iLi4vLi4vaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9pbWFnZXMvZ3JlZW4tMjU2eDI1Ni5wbmcgMTAwdyIgc3R5bGU9Im1h
eC13aWR0aDogMTAwJSIgc2l6ZXM9IjEwcHgiPic+PC9pZnJhbWU+Cis8aWZyYW1lIHdpZHRoPSI1
MDAiIGhlaWdodD0iNTAwIiBzcmNkb2M9JzwhZG9jdHlwZSBodG1sPjxpbWcgYWx0PSJGQUlMIiBz
cmNzZXQ9InJlc291cmNlcy9ncmVlbi0yNTZ4MjU2LnBuZyAxMDB3IiBzdHlsZT0ibWF4LXdpZHRo
OiAxMDAlIiBzaXplcz0iMTBweCI+Jz48L2lmcmFtZT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvaW1hZ2VzL3NpemVzLWR5bmFtaWMtMDAyLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2lt
YWdlcy9zaXplcy1keW5hbWljLTAwMi5odG1sCmluZGV4IDVlNTdmMTY2MWM5Y2M4MDExMjhkNGM5
NTQwOWMzNGUwMThmZTc4NDAuLjA4ZDczODEwZGRkZTE3NTMyZjE4OGNkZGQ1OTYzOGJlZWMwN2M1
ZTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3NpemVzLWR5bmFtaWMtMDAy
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvc2l6ZXMtZHluYW1pYy0wMDIuaHRt
bApAQCAtMTUsNyArMTUsNyBAQCBmdW5jdGlvbiBmcmFtZUxvYWRlZChmcmFtZSkgewogICBsZXQg
c2hhZG93ID0gZG9jLmdldEVsZW1lbnRCeUlkKCJob3N0IikuYXR0YWNoU2hhZG93KHsgbW9kZTog
Im9wZW4iIH0pOwogCiAgIGxldCBpbWcgPSBkb2MuY3JlYXRlRWxlbWVudCgiaW1nIik7Ci0gIGlt
Zy5zcmNzZXQgPSAiLi4vLi4vaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbWFnZXMv
Z3JlZW4tMjU2eDI1Ni5wbmcgMTAwdyI7CisgIGltZy5zcmNzZXQgPSAicmVzb3VyY2VzL2dyZWVu
LTI1NngyNTYucG5nIDEwMHciOwogICBpbWcuc3R5bGUubWF4V2lkdGggPSAiMTAwJSI7CiAgIGlt
Zy5zZXRBdHRyaWJ1dGUoInNpemVzIiwgIihtaW4td2lkdGg6IDQwMHB4KSAxMHB4LCAyMHB4Iik7
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2hhZG93LWRvbS9jYXB0dXJpbmctYW5k
LWJ1YmJsaW5nLWV2ZW50LWxpc3RlbmVycy1hY3Jvc3Mtc2hhZG93LXRyZWVzLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L3NoYWRvdy1kb20vY2FwdHVyaW5nLWFuZC1idWJibGluZy1ldmVudC1saXN0
ZW5lcnMtYWNyb3NzLXNoYWRvdy10cmVlcy5odG1sCmluZGV4IGM2MDBhZTFjMzFlNGQwNzdlOTlm
NTRlNTVmZjdhNGZmMmQ5MTNkYmYuLmUxNTI1YTU4NjRmOTZiYzdhNjQyNzZjODA1YzMyYmU2NTk2
MjhlOWQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qvc2hhZG93LWRvbS9jYXB0dXJpbmct
YW5kLWJ1YmJsaW5nLWV2ZW50LWxpc3RlbmVycy1hY3Jvc3Mtc2hhZG93LXRyZWVzLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9zaGFkb3ctZG9tL2NhcHR1cmluZy1hbmQtYnViYmxpbmctZXZl
bnQtbGlzdGVuZXJzLWFjcm9zcy1zaGFkb3ctdHJlZXMuaHRtbApAQCAtNSw3ICs1LDcgQEAKIDxt
ZXRhIG5hbWU9ImF1dGhvciIgdGl0bGU9IlJ5b3N1a2UgTml3YSIgaHJlZj0ibWFpbHRvOnJuaXdh
QHdlYmtpdC5vcmciPgogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5q
cyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NoYWRvdy1kb20vcmVzb3VyY2VzL3NoYWRvdy1kb20uanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFkb3ctZG9tLmpzIj48L3NjcmlwdD4KIDxzY3Jp
cHQ+CiAKIGZ1bmN0aW9uIGF0dGFjaEV2ZW50TGlzdGVuZXJzKGV2ZW50VHlwZSwgdHJlZSkgewpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zaGFkb3ctZG9tL3Jlc291cmNlcy9zaGFkb3ct
ZG9tLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9zaGFkb3ctZG9tL3Jlc291cmNlcy9zaGFkb3ctZG9t
LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjgxYjlhM2Q0ZmFlMjI2ZWQ0NjA1ODNjYjk0YTI0NDNjODA3ZTNjZTAK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3NoYWRvdy1kb20vcmVzb3VyY2Vz
L3NoYWRvdy1kb20uanMKQEAgLTAsMCArMSwxNTUgQEAKK2Z1bmN0aW9uIHJlbW92ZVdoaXRlU3Bh
Y2VPbmx5VGV4dE5vZGVzKG5vZGUpCit7CisgIGZvciAodmFyIGkgPSAwOyBpIDwgbm9kZS5jaGls
ZE5vZGVzLmxlbmd0aDsgaSsrKSB7CisgICAgdmFyIGNoaWxkID0gbm9kZS5jaGlsZE5vZGVzW2ld
OworICAgIGlmIChjaGlsZC5ub2RlVHlwZSA9PT0gTm9kZS5URVhUX05PREUgJiYgY2hpbGQubm9k
ZVZhbHVlLnRyaW0oKS5sZW5ndGggPT0gMCkgeworICAgICAgbm9kZS5yZW1vdmVDaGlsZChjaGls
ZCk7CisgICAgICBpLS07CisgICAgfSBlbHNlIGlmIChjaGlsZC5ub2RlVHlwZSA9PT0gTm9kZS5F
TEVNRU5UX05PREUgfHwgY2hpbGQubm9kZVR5cGUgPT09IE5vZGUuRE9DVU1FTlRfRlJBR01FTlRf
Tk9ERSkgeworICAgICAgcmVtb3ZlV2hpdGVTcGFjZU9ubHlUZXh0Tm9kZXMoY2hpbGQpOworICAg
IH0KKyAgfQorICBpZiAobm9kZS5zaGFkb3dSb290KSB7CisgICAgcmVtb3ZlV2hpdGVTcGFjZU9u
bHlUZXh0Tm9kZXMobm9kZS5zaGFkb3dSb290KTsKKyAgfQorfQorCitmdW5jdGlvbiBjcmVhdGVU
ZXN0VHJlZShub2RlKSB7CisKKyAgbGV0IGlkcyA9IHt9OworCisgIGZ1bmN0aW9uIGF0dGFjaFNo
YWRvd0Zyb21UZW1wbGF0ZSh0ZW1wbGF0ZSkgeworICAgIGxldCBwYXJlbnQgPSB0ZW1wbGF0ZS5w
YXJlbnROb2RlOworICAgIHBhcmVudC5yZW1vdmVDaGlsZCh0ZW1wbGF0ZSk7CisgICAgbGV0IHNo
YWRvd1Jvb3QgPSBwYXJlbnQuYXR0YWNoU2hhZG93KHttb2RlOiB0ZW1wbGF0ZS5nZXRBdHRyaWJ1
dGUoJ2RhdGEtbW9kZScpfSk7CisgICAgbGV0IGlkID0gdGVtcGxhdGUuaWQ7CisgICAgaWYgKGlk
KSB7CisgICAgICBzaGFkb3dSb290LmlkID0gaWQ7CisgICAgICBpZHNbaWRdID0gc2hhZG93Um9v
dDsKKyAgICB9CisgICAgc2hhZG93Um9vdC5hcHBlbmRDaGlsZChkb2N1bWVudC5pbXBvcnROb2Rl
KHRlbXBsYXRlLmNvbnRlbnQsIHRydWUpKTsKKyAgICByZXR1cm4gc2hhZG93Um9vdDsKKyAgfQor
CisgIGZ1bmN0aW9uIHdhbGsocm9vdCkgeworICAgIGlmIChyb290LmlkKSB7CisgICAgICBpZHNb
cm9vdC5pZF0gPSByb290OworICAgIH0KKyAgICBmb3IgKGxldCBlIG9mIEFycmF5LmZyb20ocm9v
dC5xdWVyeVNlbGVjdG9yQWxsKCdbaWRdJykpKSB7CisgICAgICBpZHNbZS5pZF0gPSBlOworICAg
IH0KKyAgICBmb3IgKGxldCBlIG9mIEFycmF5LmZyb20ocm9vdC5xdWVyeVNlbGVjdG9yQWxsKCd0
ZW1wbGF0ZScpKSkgeworICAgICAgd2FsayhhdHRhY2hTaGFkb3dGcm9tVGVtcGxhdGUoZSkpOwor
ICAgIH0KKyAgfQorCisgIHdhbGsobm9kZS5jbG9uZU5vZGUodHJ1ZSkpOworICByZXR1cm4gaWRz
OworfQorCisvLyBUT0RPOiBSZWZhY3RvciB0aGlzIHNvIHRoYXQgb25seSBpbnRlcmVzdGVkIHJl
c3VsdHMgYXJlIHJlY29yZGVkLgorLy8gQ2FsbGVycyBvZiB0aGlzIGZ1bmN0aW9uIHdvdWxkIG5v
dCBiZSBpbnRlcmVzdGVkIGluIGV2ZXJ5IHJlc3VsdHMuCitmdW5jdGlvbiBkaXNwYXRjaEV2ZW50
V2l0aExvZyhub2RlcywgdGFyZ2V0LCBldmVudCwgb3B0aW9ucykgeworCisgIGZ1bmN0aW9uIGxh
YmVsRm9yKGUpIHsKKyAgICByZXR1cm4gZS5pZCB8fCBlLnRhZ05hbWU7CisgIH0KKworICBsZXQg
bG9nID0gW107CisgIGxldCBhdHRhY2hlZE5vZGVzID0gW107CisgIGZvciAobGV0IGxhYmVsIGlu
IG5vZGVzKSB7CisgICAgbGV0IHN0YXJ0aW5nTm9kZSA9IG5vZGVzW2xhYmVsXTsKKyAgICBmb3Ig
KGxldCBub2RlID0gc3RhcnRpbmdOb2RlOyBub2RlOyBub2RlID0gbm9kZS5wYXJlbnROb2RlKSB7
CisgICAgICBpZiAoYXR0YWNoZWROb2Rlcy5pbmRleE9mKG5vZGUpID49IDApCisgICAgICAgIGNv
bnRpbnVlOworICAgICAgbGV0IGlkID0gbm9kZS5pZDsKKyAgICAgIGlmICghaWQpCisgICAgICAg
IGNvbnRpbnVlOworICAgICAgYXR0YWNoZWROb2Rlcy5wdXNoKG5vZGUpOworICAgICAgaWYgKG9w
dGlvbnMgJiYgb3B0aW9ucy5jYXB0dXJlKSB7CisgICAgICAgIC8vIFJlY29yZCBbY3VycmVudFRh
cmdldCwgdGFyZ2V0LCByZWxhdGVkVGFyZ2V0LCBjb21wb3NlZFBhdGgoKSwgJ2NhcHR1cmUnIHwg
J25vbi1jYXB0dXJlJ10KKyAgICAgICAgLy8gVE9ETzogU3VwcG9ydCByZWdpc3RlcmluZyBsaXN0
ZW5lcnMgaW4gZGlmZmVyZW50IG9yZGVycy4KKyAgICAgICAgLy8gZS5nLiBSZWdpc3RlciBhIG5v
bi1jYXB0dXJlIGxpc3RlbmVyIGF0IGZpcnN0LCB0aGVuIHJlZ2lzdGVyIGEgY2FwdHVyZSBsaXN0
ZW5lci4KKyAgICAgICAgbm9kZS5hZGRFdmVudExpc3RlbmVyKGV2ZW50LnR5cGUsIChlKSA9PiB7
CisgICAgICAgICAgbG9nLnB1c2goW2lkLAorICAgICAgICAgICAgICAgICAgICBsYWJlbEZvcihl
LnRhcmdldCksCisgICAgICAgICAgICAgICAgICAgIGUucmVsYXRlZFRhcmdldCA/IGxhYmVsRm9y
KGUucmVsYXRlZFRhcmdldCkgOiBudWxsLAorICAgICAgICAgICAgICAgICAgICBlLmNvbXBvc2Vk
UGF0aCgpLm1hcCgobikgPT4geworICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBsYWJlbEZv
cihuKTsKKyAgICAgICAgICAgICAgICAgICAgfSksCisgICAgICAgICAgICAgICAgICAgICdjYXB0
dXJlJ10pOworICAgICAgICB9LCB0cnVlKTsKKyAgICAgICAgbm9kZS5hZGRFdmVudExpc3RlbmVy
KGV2ZW50LnR5cGUsIChlKSA9PiB7CisgICAgICAgICAgbG9nLnB1c2goW2lkLAorICAgICAgICAg
ICAgICAgICAgICBsYWJlbEZvcihlLnRhcmdldCksCisgICAgICAgICAgICAgICAgICAgIGUucmVs
YXRlZFRhcmdldCA/IGxhYmVsRm9yKGUucmVsYXRlZFRhcmdldCkgOiBudWxsLAorICAgICAgICAg
ICAgICAgICAgICBlLmNvbXBvc2VkUGF0aCgpLm1hcCgobikgPT4geworICAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBsYWJlbEZvcihuKTsKKyAgICAgICAgICAgICAgICAgICAgfSksCisgICAg
ICAgICAgICAgICAgICAgICdub24tY2FwdHVyZSddKTsKKyAgICAgICAgfSk7CisgICAgICB9IGVs
c2UgeworICAgICAgICAvLyBSZWNvcmQgW2N1cnJlbnRUYXJnZXQsIHRhcmdldCwgcmVsYXRlZFRh
cmdldCwgY29tcG9zZWRQYXRoKCldCisgICAgICAgIG5vZGUuYWRkRXZlbnRMaXN0ZW5lcihldmVu
dC50eXBlLCAoZSkgPT4geworICAgICAgICAgIGxvZy5wdXNoKFtpZCwKKyAgICAgICAgICAgICAg
ICAgICAgbGFiZWxGb3IoZS50YXJnZXQpLAorICAgICAgICAgICAgICAgICAgICBlLnJlbGF0ZWRU
YXJnZXQgPyBsYWJlbEZvcihlLnJlbGF0ZWRUYXJnZXQpIDogbnVsbCwKKyAgICAgICAgICAgICAg
ICAgICAgZS5jb21wb3NlZFBhdGgoKS5tYXAoKG4pID0+IHsKKyAgICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gbGFiZWxGb3Iobik7CisgICAgICAgICAgICAgICAgICAgIH0pXQorICAgICAgICAg
ICAgICAgICAgKTsKKyAgICAgICAgfSk7CisgICAgICB9CisgICAgfQorICB9CisgIHRhcmdldC5k
aXNwYXRjaEV2ZW50KGV2ZW50KTsKKyAgcmV0dXJuIGxvZzsKK30KKworLy8gVE9ETyhoYXlhdG8p
OiBNZXJnZSB0aGlzIGludG8gZGlzcGF0Y2hFdmVudFdpdGhMb2cKK2Z1bmN0aW9uIGRpc3BhdGNo
VUFFdmVudFdpdGhMb2cobm9kZXMsIHRhcmdldCwgZXZlbnRUeXBlLCBjYWxsYmFjaykgeworCisg
IGZ1bmN0aW9uIGxhYmVsRm9yKGUpIHsKKyAgICByZXR1cm4gZS5pZCB8fCBlLnRhZ05hbWU7Cisg
IH0KKworICBsZXQgbG9nID0gW107CisgIGxldCBhdHRhY2hlZE5vZGVzID0gW107CisgIGZvciAo
bGV0IGxhYmVsIGluIG5vZGVzKSB7CisgICAgbGV0IHN0YXJ0aW5nTm9kZSA9IG5vZGVzW2xhYmVs
XTsKKyAgICBmb3IgKGxldCBub2RlID0gc3RhcnRpbmdOb2RlOyBub2RlOyBub2RlID0gbm9kZS5w
YXJlbnROb2RlKSB7CisgICAgICBpZiAoYXR0YWNoZWROb2Rlcy5pbmRleE9mKG5vZGUpID49IDAp
CisgICAgICAgIGNvbnRpbnVlOworICAgICAgbGV0IGlkID0gbm9kZS5pZDsKKyAgICAgIGlmICgh
aWQpCisgICAgICAgIGNvbnRpbnVlOworICAgICAgYXR0YWNoZWROb2Rlcy5wdXNoKG5vZGUpOwor
ICAgICAgbm9kZS5hZGRFdmVudExpc3RlbmVyKGV2ZW50VHlwZSwgKGUpID0+IHsKKyAgICAgICAg
Ly8gUmVjb3JkIFtjdXJyZW50VGFyZ2V0LCB0YXJnZXQsIHJlbGF0ZWRUYXJnZXQsIGNvbXBvc2Vk
UGF0aCgpXQorICAgICAgICBsb2cucHVzaChbaWQsCisgICAgICAgICAgICAgICAgICBsYWJlbEZv
cihlLnRhcmdldCksCisgICAgICAgICAgICAgICAgICBlLnJlbGF0ZWRUYXJnZXQgPyBsYWJlbEZv
cihlLnJlbGF0ZWRUYXJnZXQpIDogbnVsbCwKKyAgICAgICAgICAgICAgICAgIGUuY29tcG9zZWRQ
YXRoKCkubWFwKChuKSA9PiB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBsYWJlbEZvcihu
KTsKKyAgICAgICAgICAgICAgICAgIH0pXSk7CisgICAgICB9KTsKKyAgICB9CisgIH0KKyAgY2Fs
bGJhY2sodGFyZ2V0KTsKKyAgcmV0dXJuIGxvZzsKK30KKworLy8gVGhpcyBmdW5jdGlvbiBhc3N1
bWVzIHRoYXQgdGVzdGhhcm5lc3MuanMgaXMgYXZhaWxhYmxlLgorZnVuY3Rpb24gYXNzZXJ0X2V2
ZW50X3BhdGhfZXF1YWxzKGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAgYXNzZXJ0X2VxdWFscyhhY3R1
YWwubGVuZ3RoLCBleHBlY3RlZC5sZW5ndGgpOworICBmb3IgKGxldCBpID0gMDsgaSA8IGFjdHVh
bC5sZW5ndGg7ICsraSkgeworICAgIGFzc2VydF9lcXVhbHMoYWN0dWFsW2ldLmxlbmd0aCwgZXhw
ZWN0ZWRbaV0ubGVuZ3RoKTsKKyAgICBhc3NlcnRfZXF1YWxzKGFjdHVhbFtpXVswXSwgZXhwZWN0
ZWRbaV1bMF0sICdjdXJyZW50VGFyZ2V0IGF0ICcgKyBpICsgJyBzaG91bGQgYmUgc2FtZScpOwor
ICAgIGFzc2VydF9lcXVhbHMoYWN0dWFsW2ldWzFdLCBleHBlY3RlZFtpXVsxXSwgJ3RhcmdldCBh
dCAnICsgaSArICcgc2hvdWxkIGJlIHNhbWUnKTsKKyAgICBhc3NlcnRfZXF1YWxzKGFjdHVhbFtp
XVsyXSwgZXhwZWN0ZWRbaV1bMl0sICdyZWxhdGVkVGFyZ2V0IGF0ICcgKyBpICsgJyBzaG91bGQg
YmUgc2FtZScpOworICAgIGFzc2VydF9hcnJheV9lcXVhbHMoYWN0dWFsW2ldWzNdLCBleHBlY3Rl
ZFtpXVszXSwgJ2NvbXBvc2VkUGF0aCBhdCAnICsgaSArICcgc2hvdWxkIGJlIHNhbWUnKTsKKyAg
ICBpZiAoYWN0dWFsW2ldWzRdKSB7CisgICAgICBhc3NlcnRfZXF1YWxzKGFjdHVhbFtpXVs0XSwg
ZXhwZWN0ZWRbaV1bNF0sICdsaXN0ZW5lciB0eXBlIHNob3VsZCBiZSBzYW1lIGF0ICcgKyBpKTsK
KyAgICB9CisgIH0KK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21hdGhtbC9ub24tY29yZS9m
cmFjLWxpbmV0aGlja25lc3MtMDAxLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9tYXRobWwv
bm9uLWNvcmUvZnJhYy1saW5ldGhpY2tuZXNzLTAwMS1leHBlY3RlZC5odG1sCmluZGV4IGVjN2Ez
MGRlOTVlMjA2NDU0Y2Q5MmQyOTYzM2I0NDU1Nzc0ZGUzMzIuLmI5Y2RiNzYxMTJhMjY3YWUwOTk0
ZjU4MzVlNWZkNmE3YzFlNjE3MTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL21hdGhtbC9ub24t
Y29yZS9mcmFjLWxpbmV0aGlja25lc3MtMDAxLWV4cGVjdGVkLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvbWF0aG1sL25vbi1jb3JlL2ZyYWMtbGluZXRoaWNrbmVzcy0wMDEtZXhwZWN0ZWQuaHRtbApA
QCAtNiw3ICs2LDcgQEAKICAgICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgogICAgICAgQGZvbnQt
ZmFjZSB7CiAgICAgICAgIGZvbnQtZmFtaWx5OiBUZXN0Rm9udDsKLSAgICAgICAgc3JjOiB1cmwo
Ii4uLy4uL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZm9udHMvbWF0aC9mcmFjdGlv
bi1ydWxldGhpY2tuZXNzMTAwMDAud29mZiIpOworICAgICAgICBzcmM6IHVybCgiLi4vcmVzb3Vy
Y2VzL2ZyYWN0aW9uLXJ1bGV0aGlja25lc3MxMDAwMC53b2ZmIik7CiAgICAgICB9CiAgICAgICBt
YXRoIHsKICAgICAgICAgLyogRnJhY3Rpb25SdWxlVGhpY2tuZXNzID0gMTAwMDAgKiAxIC8gMTAw
MCA9IDEwcHg7ICovCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tYXRobWwvbm9uLWNvcmUvZnJh
Yy1saW5ldGhpY2tuZXNzLTAwMS5odG1sIGIvTGF5b3V0VGVzdHMvbWF0aG1sL25vbi1jb3JlL2Zy
YWMtbGluZXRoaWNrbmVzcy0wMDEuaHRtbAppbmRleCA5YjEwNjdjZGExYzk0ZDFmYmMyZDRkYzg0
MjU5YzY1N2VmZjBlNmMyLi4xZTQyYmYzYjI0ZjgzYTcyZTdlYjNjZGIyNzQyMTViNjE2YjE1NjM4
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tYXRobWwvbm9uLWNvcmUvZnJhYy1saW5ldGhpY2tu
ZXNzLTAwMS5odG1sCisrKyBiL0xheW91dFRlc3RzL21hdGhtbC9ub24tY29yZS9mcmFjLWxpbmV0
aGlja25lc3MtMDAxLmh0bWwKQEAgLTgsNyArOCw3IEBACiAgICAgPHN0eWxlIHR5cGU9InRleHQv
Y3NzIj4KICAgICAgIEBmb250LWZhY2UgewogICAgICAgICBmb250LWZhbWlseTogVGVzdEZvbnQ7
Ci0gICAgICAgIHNyYzogdXJsKCIuLi8uLi9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZvbnRzL21hdGgvZnJhY3Rpb24tcnVsZXRoaWNrbmVzczEwMDAwLndvZmYiKTsKKyAgICAgICAg
c3JjOiB1cmwoIi4uL3Jlc291cmNlcy9mcmFjdGlvbi1ydWxldGhpY2tuZXNzMTAwMDAud29mZiIp
OwogICAgICAgfQogICAgICAgbWF0aCB7CiAgICAgICAgIC8qIEZyYWN0aW9uUnVsZVRoaWNrbmVz
cyA9IDEwMDAwICogMSAvIDEwMDAgPSAxMHB4OyAqLwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
bWF0aG1sL25vbi1jb3JlL2ZyYWMtbGluZXRoaWNrbmVzcy0wMDItZXhwZWN0ZWQuaHRtbCBiL0xh
eW91dFRlc3RzL21hdGhtbC9ub24tY29yZS9mcmFjLWxpbmV0aGlja25lc3MtMDAyLWV4cGVjdGVk
Lmh0bWwKaW5kZXggMWNjOTc5MTQyNDA1N2FmNWUxMjk1NmIzNWM1MjAzYTMwYjZiZmUyZC4uNmIy
ZWIzYTU2MDc3MjM2MWJkMmIyYmI4OTVlNDI0OGViNGUwMThmMyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvbWF0aG1sL25vbi1jb3JlL2ZyYWMtbGluZXRoaWNrbmVzcy0wMDItZXhwZWN0ZWQuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9tYXRobWwvbm9uLWNvcmUvZnJhYy1saW5ldGhpY2tuZXNzLTAw
Mi1leHBlY3RlZC5odG1sCkBAIC02LDcgKzYsNyBAQAogICAgIDxzdHlsZSB0eXBlPSJ0ZXh0L2Nz
cyI+CiAgICAgICBAZm9udC1mYWNlIHsKICAgICAgICAgZm9udC1mYW1pbHk6IFRlc3RGb250Owot
ICAgICAgICBzcmM6IHVybCgiLi4vLi4vaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
b250cy9tYXRoL2ZyYWN0aW9uLXJ1bGV0aGlja25lc3MxMDAwMC53b2ZmIik7CisgICAgICAgIHNy
YzogdXJsKCIuLi9yZXNvdXJjZXMvZnJhY3Rpb24tcnVsZXRoaWNrbmVzczEwMDAwLndvZmYiKTsK
ICAgICAgIH0KICAgICAgIG1hdGggewogICAgICAgICAvKiBGcmFjdGlvblJ1bGVUaGlja25lc3Mg
PSAxMDAwMCAqIDEgLyAxMDAwID0gMTBweDsgKi8KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21h
dGhtbC9ub24tY29yZS9mcmFjLWxpbmV0aGlja25lc3MtMDAyLmh0bWwgYi9MYXlvdXRUZXN0cy9t
YXRobWwvbm9uLWNvcmUvZnJhYy1saW5ldGhpY2tuZXNzLTAwMi5odG1sCmluZGV4IDBlYzY0MjMy
ZjFlMjYxZmE1ZThhYTI1N2E2Yjg2YzA5MTRlMDY2MzguLjYyMjAwMjc0YzIwM2ZlOGZiNTE1MTQz
NmE0YzAyZmVlMTJhYzQ4NjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL21hdGhtbC9ub24tY29y
ZS9mcmFjLWxpbmV0aGlja25lc3MtMDAyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvbWF0aG1sL25v
bi1jb3JlL2ZyYWMtbGluZXRoaWNrbmVzcy0wMDIuaHRtbApAQCAtOCw3ICs4LDcgQEAKICAgICA8
c3R5bGUgdHlwZT0idGV4dC9jc3MiPgogICAgICAgQGZvbnQtZmFjZSB7CiAgICAgICAgIGZvbnQt
ZmFtaWx5OiBUZXN0Rm9udDsKLSAgICAgICAgc3JjOiB1cmwoIi4uLy4uL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZm9udHMvbWF0aC9mcmFjdGlvbi1ydWxldGhpY2tuZXNzMTAwMDAu
d29mZiIpOworICAgICAgICBzcmM6IHVybCgiLi4vcmVzb3VyY2VzL2ZyYWN0aW9uLXJ1bGV0aGlj
a25lc3MxMDAwMC53b2ZmIik7CiAgICAgICB9CiAgICAgICBtYXRoIHsKICAgICAgICAgLyogRnJh
Y3Rpb25SdWxlVGhpY2tuZXNzID0gMTAwMDAgKiAxIC8gMTAwMCA9IDEwcHg7ICovCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9tYXRobWwvbm9uLWNvcmUvbGVuZ3Rocy0xLmh0bWwgYi9MYXlvdXRU
ZXN0cy9tYXRobWwvbm9uLWNvcmUvbGVuZ3Rocy0xLmh0bWwKaW5kZXggZGFhZDU2YmEzMDg4Yjg0
MmU1NTM0YTFjODNmYzA1YWMxOTZlYTYxOS4uYjM1YjU0YjZkZWYyYTEwN2EyMjk5Y2NmNzBlYjU5
Nzg5MzAxZmE5MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvbWF0aG1sL25vbi1jb3JlL2xlbmd0
aHMtMS5odG1sCisrKyBiL0xheW91dFRlc3RzL21hdGhtbC9ub24tY29yZS9sZW5ndGhzLTEuaHRt
bApAQCAtOCw3ICs4LDcgQEAKIDxzdHlsZT4KICAgQGZvbnQtZmFjZSB7CiAgICAgZm9udC1mYW1p
bHk6IFRlc3RGb250OwotICAgIHNyYzogdXJsKCIuLi8uLi9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZvbnRzL21hdGgveGhlaWdodDUwMC53b2ZmIik7CisgICAgc3JjOiB1cmwoIi4u
L3Jlc291cmNlcy94aGVpZ2h0NTAwLndvZmYiKTsKICAgfQogICBzcGFuLCBtYXRoIHsKICAgICBm
b250LWZhbWlseTogVGVzdEZvbnQ7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tYXRobWwvbm9u
LWNvcmUvbGVuZ3Rocy0yLmh0bWwgYi9MYXlvdXRUZXN0cy9tYXRobWwvbm9uLWNvcmUvbGVuZ3Ro
cy0yLmh0bWwKaW5kZXggM2QwYjNiN2E2MzdhODYxY2EwMWNmNDdjZTI1NDM0ZmYxZTNiNGNjMy4u
Yjc0OTIzYjU3NGU0MTY3OWFmNjkzMTA2ZDYxZDBiNzRlMmJmYTAwYyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvbWF0aG1sL25vbi1jb3JlL2xlbmd0aHMtMi5odG1sCisrKyBiL0xheW91dFRlc3Rz
L21hdGhtbC9ub24tY29yZS9sZW5ndGhzLTIuaHRtbApAQCAtOCw3ICs4LDcgQEAKIDxzdHlsZT4K
ICAgQGZvbnQtZmFjZSB7CiAgICAgZm9udC1mYW1pbHk6IFRlc3RGb250OwotICAgIHNyYzogdXJs
KCIuLi8uLi9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZvbnRzL21hdGgveGhlaWdo
dDUwMC53b2ZmIik7CisgICAgc3JjOiB1cmwoIi4uL3Jlc291cmNlcy94aGVpZ2h0NTAwLndvZmYi
KTsKICAgfQogICBtcGFkZGVkIHsKICAgICBmb250LWZhbWlseTogVGVzdEZvbnQ7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9tYXRobWwvbm9uLWNvcmUvbGVuZ3Rocy0zLmh0bWwgYi9MYXlvdXRU
ZXN0cy9tYXRobWwvbm9uLWNvcmUvbGVuZ3Rocy0zLmh0bWwKaW5kZXggMzExNjQ3YzM0Y2E0YzYx
ZTNlOTFlMTEwOGRkZjM4MWQyNWFkYTdmMC4uNTg5N2E2MTg2NDIwNGExN2I5NzExYzgwN2VmMzQ2
YTIyMzAxNmJmZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvbWF0aG1sL25vbi1jb3JlL2xlbmd0
aHMtMy5odG1sCisrKyBiL0xheW91dFRlc3RzL21hdGhtbC9ub24tY29yZS9sZW5ndGhzLTMuaHRt
bApAQCAtOSw3ICs5LDcgQEAKIDxzdHlsZT4KICAgQGZvbnQtZmFjZSB7CiAgICAgZm9udC1mYW1p
bHk6IFRlc3RGb250OwotICAgIHNyYzogdXJsKCIuLi8uLi9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZvbnRzL21hdGgveGhlaWdodDUwMC53b2ZmIik7CisgICAgc3JjOiB1cmwoIi4u
L3Jlc291cmNlcy94aGVpZ2h0NTAwLndvZmYiKTsKICAgfQogICBtYXRoIHsKICAgICBmb250LWZh
bWlseTogVGVzdEZvbnQ7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tYXRobWwvcHJlc2VudGF0
aW9uL3JhZGljYWwtYmFyLXZpc2liaWxpdHkuaHRtbCBiL0xheW91dFRlc3RzL21hdGhtbC9wcmVz
ZW50YXRpb24vcmFkaWNhbC1iYXItdmlzaWJpbGl0eS5odG1sCmluZGV4IDNlYTMwNjZiNGUxOTE3
MTZiNjkxMGZlYTg0ZTY5MGQ2MTJiMWI5NTguLjAxZWY1NjYyMTc1MTJiM2E5NTZhN2E3N2YxYmI3
OTAyN2IxNWEwNTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL21hdGhtbC9wcmVzZW50YXRpb24v
cmFkaWNhbC1iYXItdmlzaWJpbGl0eS5odG1sCisrKyBiL0xheW91dFRlc3RzL21hdGhtbC9wcmVz
ZW50YXRpb24vcmFkaWNhbC1iYXItdmlzaWJpbGl0eS5odG1sCkBAIC02LDcgKzYsNyBAQAogICAg
IDxzdHlsZT4KICAgICAgIEBmb250LWZhY2UgewogICAgICAgICBmb250LWZhbWlseTogVGVzdEZv
bnQ7Ci0gICAgICAgIHNyYzogdXJsKCIuLi8uLi9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZvbnRzL21hdGgvcmFkaWNhbC1kZWdyZWVib3R0b21yYWlzZXBlcmNlbnQyNS1ydWxldGhp
Y2tuZXNzMTAwMC53b2ZmIik7CisgICAgICAgIHNyYzogdXJsKCIuLi9yZXNvdXJjZXMvcmFkaWNh
bC1kZWdyZWVib3R0b21yYWlzZXBlcmNlbnQyNS1ydWxldGhpY2tuZXNzMTAwMC53b2ZmIik7CiAg
ICAgICB9CiAgICAgICBtYXRoLCBtc3FydCB7CiAgICAgICAgIC8qIFRlc3RGb250IGhhcwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWF0aG1sL3Jlc291cmNlcy9mcmFjdGlvbi1ydWxldGhpY2tu
ZXNzMTAwMDAud29mZiBiL0xheW91dFRlc3RzL21hdGhtbC9yZXNvdXJjZXMvZnJhY3Rpb24tcnVs
ZXRoaWNrbmVzczEwMDAwLndvZmYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWM2OWYyNDI0ZjI3Y2MyNmY3MTNlYzQ2
ZGM1ZTMyMjk2NTJjNmI0ZQpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMTE2MAp6Y21YVC1jWFJV
KDNHcnVPVkNpN3NXJmk/Pzc2d0tUalJ+Q0grIVBvWG1gIzgoMlo4dipfb2NobnkxOWs7MD55cCsK
emBCRmVFUXlzVCltIzxAcDJoY25iQVV+NlZmaVolSyYzTDFLdSlZejk0SFVCaDtzbGBeMCRqPHRp
M0pQe09pekcoCnpiRCozUDEyNk5qak1UJndBZSNkeXJVa0BpPj1+IV5Ha302WEZfNjY9SjUqUmdu
T3xxKm1RKD1rWGFNcC1ZQnxfMQp6RmZpbU1Sc2hYbzM7Xj1rej9kbjNBdWxtRTYofXxaaTJaPT5H
PEtUMW9VMChleENGP1MwamQhTFZ1azswNDh8MzYKemtgcSFBNSpRdnktbnEyPUB6MzBTTWdfK0U4
TStLJjAhdT8obW8wMilac2NAZldPJUV9X0t8QEJzPCFVbmZkZG5tCnopZl5pcEdLdn43R1Q3QGR4
ZFRtTzA5d3hrUUlsQUEoNHcoJVlHZFFmX002UihqZnQhK1grO1NlKG9DMnlAdk5Eewp6VntxVV4x
RH0rSGg9ajxEYyFvJHppTDNAQW8qc3NiU35qNWhUUE4oekkmMmApK0NOQUJNVWRCWm8kP0d0TnRx
PXEKekp9MVNQQil2QUpuWShxbUkhIXJzWUNgeV8zJiZxSG0lS0NIdlVsMjV6b2s+MGJiOVBPcFdt
QCh4TChvYkBjQ31DCnpWQn5gSzt3TFFJRTR1Ri1ZT2QoSTxMMUF8P2NEPmxnKHFVYTJwI3NpeGJN
O0I8YnRhQDZBcnJpNnxfJTNwKTIhMgp6YUEmWDI5T1pJe040Nz1jayY2dFBRe1Ekam1kRlY+KU9e
OWNrQDNCPGhzSFVGMiZMIUtDdypzfnppZFRDV1oyQXQKensyQVg1b1JSWjhtKmVJQ0hfMVZIckJU
JGdlS0MzJlFLOCFtY0E4STElfDE3RV5ZXyEhS21Ge0dFamZ8IUJsWXhsCnp0MHdfNWorLX0+UlIq
JHErJH4mUW83d2Q/RV9+e3dLTShULT54fEFoYksxUz5WXylFVytqKkw+K01vYUhaeVp9fgp6a1hC
bmV5UktpVGM9enw+KkppV2FvSVFucUUhQ3xIZUg/T2ZpYD4pSFhXTnFZQ2Y1cDJZO3RiPkhyczUm
ckZCV2gKem8tNWwqSjtnTzIzKEUtMWtjN2xWTFBBPFlmK1UrOG80XkxmUFo5QGYjTW9GQiZOOChx
Pl50PVR6cmQmZSZNVW13CnorfDFZe2d3KypQPzV7OH5MPypJYjJGRyg2TC1ZVCRKWj10TTZCJjZL
NyZKbHxjWUA3Sk5rfmpnTkoqTEVzcU4qWAp6Y2s7fm4lZXE9O0ojfGw+QEh1elJUVVhEX2duXjA4
TyR9KDxUbHFnY19EZHd8UFo8MjJrb3ImWTtIQVRkWn03NkwKekcyKkhJbkpPV3trfE0jIWFtdHxK
Z3V4enhxeSlDaWZhSFJkaj4yPkxEfEFsem9ZeDR2O0JoVSl6e3RRUF89QiZgCnokcSEheDN2fjMo
YEplTSl4IUhMPHVqVSpSbE4rMHdvMTV5PmNZRSNxLWxwRSF7ciZtMHk9U1ZBKV9NTjlAPn43agp6
dyhzWlZGVWx7ayVsbGN9SE1qcUxjKDJGeTQwQz5RaEM5RH4malY4X0M9RGtocSVic3tSKGtiUTth
QXRIKW1sQWwKejM8aD5BdGBJcTNVVS1tSGFiVSU5ZmRkSkx0SiloKTNZZmdJZyUqfWNGKjdJMmR+
e3BRb25ZUjRrZlVxaiY1Umo9CnpReUwkPjReX0NgKjRYVUc8RlQzeyhgXkgxUGVSQTNWOCRkbEhi
cGowSHBAQlo4ZHIhZ3Rfb24+e051bmdDem5KTQpSQXJeKypYPFV6aT9xR2ZhITJyUiF1UUM3dAoK
bGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWF0aG1sL3Jl
c291cmNlcy9yYWRpY2FsLWRlZ3JlZWJvdHRvbXJhaXNlcGVyY2VudDI1LXJ1bGV0aGlja25lc3Mx
MDAwLndvZmYgYi9MYXlvdXRUZXN0cy9tYXRobWwvcmVzb3VyY2VzL3JhZGljYWwtZGVncmVlYm90
dG9tcmFpc2VwZXJjZW50MjUtcnVsZXRoaWNrbmVzczEwMDAud29mZgpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NDAx
MDcwZDQ0ZmVkOGQyN2M2ODhhOTMxZDI3N2JjZTJlZjcxNTE3CkdJVCBiaW5hcnkgcGF0Y2gKbGl0
ZXJhbCAxNDAwCnpjbVpYVWRvK30zOUxKeVduaW07MG5BT09mbnV5Yj9PZkNfdmE7WkA/RV5DTk4t
V2tseVg1RUgkP2J3LT0lTlFEJAp6KitVXm9RNSREZGlpRFhgTWtyQ08qX0tqNW9NU1ZiVHNRbCRt
dyl6bSZnWjwoX3hwYSZAQTx2ZzFUUSs+aV49bz8KejBHfGw3MFc1NzJ6XnhxclUjQGdJNiN5Zz8w
Mn5kezsqKTFCcHdwUVEwTXJ7YGRJTi0jNjdJcmdJNVE3ST8qLUlfCnpGZWtEJUY7NGRLckNHdUNh
cCpaZ0Zuekw+ZFBvRS04dXJAYHdKU1g1ekpLZWBBVE52KzNmRyNAdncreFkyWmJsXwp6cGI1UipQ
X09LPE1iaTxQOzY9bkcha0t3YzZJYW1hMFUmfnYyPmFvZlBAfTckLVhNfHs1ZUJeeU5HX2JJPURi
OzYKelNhZWl1OU5aVVhmZFBjTm9EUXJMT0cyPHYzPEs9dW9sbGloT1Nadj00YUxGVzBKKVlvPnU9
b0dNVm5nPnpGdiEoCno1IVY1b0ImfHBRez5pN3hXaWtuMz1LTVYhV3k7aW5jUjIjRDUmLVlqMzA1
KyFSUVliOVAlMERfWERIS3pMS2dsRQp6aG1aWmp1fGF3WEglYlVRV3R3ZWszNXMlfHYtMlUqSllG
SkF0Mz1nRTAqTmsyJFZRSlJtVVFRUG9pd3J9SiNIPEkKekF0KHorKEJJVmMjKV9VfTdsP0lRQ3s0
c3JuOGhpbD03eDBkeFh+fGY9ViNTNlAyIVJ6V3RUS00+ZlJgZjdmRENJCnpWYjclSTVBSmh4MWUt
cVRZdnNOJUhPU0shUHduQjB5Z0Y/OD5GcU5YRCk0QDBtJiROMlhJKStmbmNHQGpPbkJQMwp6SylJ
M1oqJntwUEljM19JU3UqNk5hI1I3diFWWi1vXkMhMkI2Jik+WEcjZmNGXzZUIzArUExPT2JxcGkw
TGghaW8Kel9XbmwmPjNzUTFNfkFmQEpNPSY2R356aipLZlVYXkl5SFgxI1hzeSkpeWNxbFBOVm0x
NUk1WDZEZGdHK0A3N2ZZCnpxdFZzVmZGNTZoLTxHVlI3JVl9XiQhPGojcXkxdGRsbDw4KCtjTE9F
SnJ2aHg+cHY4cXhvPmw4UXNhMk4/R04+eAp6enQrVlZaPH1aeVhuR1JJQ20hKmI9c1l4OG1oakhW
SHxwMyZoYWw0SjFANmNEdzQ5e3NZd0xPfkgqNVcyU3omVmEKeipxN3k+TWVWIXxifXVHcFJkO0o7
enUhclg5SDJBcCYwb3xrVHVBT2F7QVQhYFZsbSErZWxUJjN7OWdZal5NPjliCnpwV0dgQzNMMGA1
d0lZe3UzJElIVGE9cmomJWl7M2cmbTYtejA/WkpscXJfO09pWXp+NmZhKn1ZKE1tKFpBfkxENAp6
XjJAU0BOPE9va2tyMz9rNjJYfW1BKmEoMlYqVnl8TDYlLU9tQENqU1RZWWFoQVpAdnVLejk9NTtk
QjdsPlc2RHcKej4wSyZtXjtCfnZLSVhudkhfQG90RkpiRkBNTnxxWFZ9Vk10d293eDNvYkgjUSEt
QGZSZz5yRDtzSD1DdDkzYV4pCnpzeGtMSXQ9cnR6KUUzfXZSWGxHdFooMHo9QXJjVmNiRGRfMz4x
Tmh0a0NlPzxXXnRvKCpSaCtLeCE7WlQ9fChsPgp6THxhd2ZmM19zZ3IyQk5uUC1GekVqVEFwbGwk
UUZxMV5RWDxKdUQ4e2stMk5ZSU4rfFAldEFpeHNPRVAlSTgwR3gKentvNERDNi04eiQ5LTRtVXo8
emRIPmJeJk1ZWFZ5JCl0JEtieCstLWJhIS13UilCQ0JeKE5gXl4zS0A0SlNJI1NfCnp2QWJ1Wil3
Y2ZCQmZDPT5seV81RURZMTUkU0kmREJAK31KajE3RnIzaTFxOTJfKXUzZGxDOSpJKFdMb3EqdGcz
NQp6OSt6eVhMVkVTd3ZTOWVmU0JIakROKDFAfGN7ZXY1VmFLezxaKDthbXlZen0kcXFkZnJ0bG1j
cTNrOWI7am1QSnkKejMhP1phUSF4dGM5UG5CSGVWY0ZEaUwmWjtxNn5ZT29GVE17UiZ4KjZ5QTsw
eEt8KDBIPDZgUGJ4czVtezZjejBqCno+KV5YK0p6ZT5zWiFzZCRZd21QamNsIWcpXnkrV0VxSz5l
TFl6WmNMX3xaSm1UXkhTI3o3c1gwZFZ1UHE4V3Q4MAp6V2U7UitPWm1kJEthQ09YU3g/bWUlaF9t
cUJCdTVQMzJKWGZoN1hSY0AxcGg3MVJzalokKHAhanZFQz4kMkxDdmEKR2Y5byRZOzR3Sj4KCmxp
dGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21hdGhtbC9yZXNv
dXJjZXMveGhlaWdodDUwMC53b2ZmIGIvTGF5b3V0VGVzdHMvbWF0aG1sL3Jlc291cmNlcy94aGVp
Z2h0NTAwLndvZmYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzZhMzdkYTllNDA5MmEwMDU0MzIwNTc0OTc2MjE2ZTg3
Yzc0NjJhMwpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMTA0OAp6Y21YVC1jWFJVKDNHcnVPVjNB
PHBWZ0xkKjYkVkJTalJ+Q0grIVBvWG17b3U+WE1wJklsJD9mI25fR3g0UTB4UGMKekY5cE9oKWo4
cjh7PXhjMjM9RTdPSyl3U0lDa1dqVDNRTnZTRU1RPEBJcylYbzBfRDZJOTx3JU5xJFp7U2BDb3Vv
Cno0fldnVTxCUyQmMDBue2FBVWk8anNjX2dienN8QGxzUXxpPDJnbkR4a2M8NVMxNEN8TjE8Klcz
Mk95c2ZqRnwlJQp6QClDMVhmbnBzJVl5LTUqJkFOVHd7RFM9QTV9XkEpZGN9WlA7ZVEqMGFtQWVF
Z3BgQj9oRFdWVVROT1k0Rl5pWW4KekYqQmFRUmJwTDZlU01SVUAmMUhBT2lMXnpXO29hfGNuRVh2
V01GYCp1UkQwKXp5eE1CI35lNGRrT00zWDBTbE9jCnp6R1BxczAyJldibFVSNHFxT295bVc4PSpC
bzZVYGxpTDVQWU1GfF95T3FlaDZ0ZUx9T2FOdEEocE9sMSVnd345Qgp6aERnZzNTcllwaEk5VX1e
U1F4NT4qP2xZS15pRFlLYj1YMHE/Zio7UEglPjhNN307RU0jQzQ0dXJgP0tPbldESW8KelRse1hq
Jn00Xn5RI2B4QUAhcnwtTmljP01VeE45K25MV0QlT2BNPEFKZys7KVV+IW44PDwpemtpUnExY15L
OHV2CnpuI3xBcCN5b3RudnZ1OCRaK0RMRXRvVSRlO29zSllpJVB4VFVQfSR0eHpQT2VQUXZ+MF5T
Klo7LVl3Pn5FcXU2Pgp6UzJORzFKZnI+eTZQdlk2Z3NPV05rRStWQWgtMyN6MmdoV21ENVlpVWkr
ZmdfNGc0VkNfVm5EbSQ9ZVNjZGMkWXQKenpkN2pKYiFKSG8rbGktbG9TOE9waihCVjJeVExfWlpN
R1p6S0hiZWRCaUQ2SVhRazJjdHtWVUhFP1lDNXlwP0olCno+eDZ9IXR9aVJPV1RhSDYrJjRxZEBi
VWxYaHFvM1I5LVhsTChjaTVpUE1kWHxsUHxsbERYWFNgTkB2bGt2YnZITAp6QCVCVDFWfFlwUUs5
OWVBbXNtNSpCVyMoJUkoMnZLNClOKzJkSHB+M3Yje3VeczltNz1Oa35YKk5SVlc2Vi1xTX4Kensz
TE8oTXZSU0Q7Vmp6e055ITxZNWRaZ3x7bk5vT3xKKG9YVWh0fjFWUFlAaSFHbncoQ25zfnkkVmt5
ISQtclJpCnojaEM8Kk5zdXtkNDkpK35eMCt5NE89UlJ7VjkqRjxndjVWSkxTa1k8TzNJVVVDcF55
am9ZeWNrSEFxTkVObEhrJAp6QGJ9PlA1Ni1oYncpMCUoazk7T0NxK0BILWJOQkI0dGgkbTdyd3FQ
KUlCajZTYWwqaHlXSj08TCQleilLTS1LMkAKelQ2OFNvSypHfkdAZDElNk14S3Qhay0tTn45SnRf
ZigwcnJIO3BeQFBIfTBeb3c9fnxVVnI8VyFDXj4xWCEre2U1CnpDbDghQ3YwX1Fpb3hSX1d1aVY+
SHtyJXNhUDE3c2EtX1ktelUtZSgqIzx6YnptNDd8SGEkZExJWnt6Mld4KkVTUAp6MkE7Y2RtWnw5
U2VrcnFrQHVvXzU3dX4mVVo/KV5AdUY0JEBVLWpLZkFZcWxsJn4jZXEpbFk/QVVFald8OCVReFkK
UEIoTkk7bGtwMSgyQm01TVVyTFdqCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>401534</attachid>
            <date>2020-06-10 04:44:20 -0700</date>
            <delta_ts>2020-06-10 08:35:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-212661-20200610134419.patch</filename>
            <type>text/plain</type>
            <size>89114</size>
            <attacher name="Carlos Alberto Lopez Perez">clopez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYyODM2CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYTU5MzRjM2FhZDFjYTZlMmNhMDg4
ZmI1NGFkM2MxNDkyMTlhMmYwMS4uZjE3NWRmMWEyNThmYzFjMDAxYTE2ZDlhZWJjZWM3ZTBjM2I4
MGExZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDExMCBAQAorMjAyMC0wNi0xMCAgQ2FybG9zIEFsYmVydG8g
TG9wZXogUGVyZXogIDxjbG9wZXpAaWdhbGlhLmNvbT4KKworICAgICAgICBMYXlvdXQgdGVzdHMg
b3V0c2lkZSBvZiB0aGUgV1BUIGltcG9ydCBzaG91bGQgbm90IHVzZSByZXNvdXJjZXMgZnJvbSBp
dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEyNjYx
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5uIEZhYmxldC4KKworICAgICAgICBTb21lIGxh
eW91dCB0ZXN0cyB3ZXJlIHVzaW5nIHJlc291cmNlIGZpbGVzIGZyb20gdGhlIGltcG9ydGVkIFdQ
VCB0ZXN0cy4KKyAgICAgICAgVGhpcyBpcyBhbiBpc3N1ZSBiZWNhdXNlIHVwZGF0aW5nIHRoZSBX
UFQgdGVzdHMgbWF5IGJyZWFrIHRoaXMgdGVzdHMgaW4gdGhlIGZ1dHVyZS4KKworICAgICAgICBU
byBmaXggdGhpcyB0aGUgdXNlZCByZXNvdXJjZSBmaWxlcyBhcmUgY29waWVkIGluc2lkZSB0aGUg
bWFpbiBmb2xkZXIgb2YgZWFjaCB0ZXN0CisgICAgICAgIGFuZCB0aGUgdGVzdHMgbW9kaWZpZWQg
dG8gdXNlIHRoZW0uCisKKyAgICAgICAgT24gdG9wIG9mIHRoYXQsIHNvbWUgdGVzdHMgYXJlIGRl
LWR1cGxpY2F0ZXMgKGluIGZhdm9yIG9mIHRoZSBXUFQgdmVyc2lvbnMsIHdoaWNoIGFyZSB0aGUg
c2FtZSkuCisgICAgICAgIFRoaXMgaXMgdGhlIGxpc3Qgb2YgdGVzdHMgZGUtZHVwbGljYXRlZDoK
KyAgICAgICAgY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5kcmF3SW1hZ2UuaW5jb21wbGV0ZS5lbXB0
eXNyYy5odG1sIC0+IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9jYW52YXMv
ZWxlbWVudC9kcmF3aW5nLWltYWdlcy10by10aGUtY2FudmFzLzJkLmRyYXdJbWFnZS5pbmNvbXBs
ZXRlLmVtcHR5c3JjLmh0bWwKKyAgICAgICAgY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5kcmF3SW1h
Z2UuaW5jb21wbGV0ZS5ub3NyYy5odG1sIC0+IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvaHRtbC9jYW52YXMvZWxlbWVudC9kcmF3aW5nLWltYWdlcy10by10aGUtY2FudmFzLzJkLmRy
YXdJbWFnZS5pbmNvbXBsZXRlLm5vc3JjLmh0bWwKKyAgICAgICAgY2FudmFzL3BoaWxpcC90ZXN0
cy8yZC5kcmF3SW1hZ2UuaW5jb21wbGV0ZS5yZW1vdmVkc3JjLmh0bWwgLT4gaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9lbGVtZW50L2RyYXdpbmctaW1hZ2VzLXRv
LXRoZS1jYW52YXMvMmQuZHJhd0ltYWdlLmluY29tcGxldGUucmVtb3ZlZHNyYy5odG1sCisgICAg
ICAgIGNhbnZhcy9waGlsaXAvdGVzdHMvMmQucGF0dGVybi5pbWFnZS5pbmNvbXBsZXRlLmVtcHR5
c3JjLmh0bWwgLT4gaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9l
bGVtZW50L2ZpbGwtYW5kLXN0cm9rZS1zdHlsZXMvMmQucGF0dGVybi5pbWFnZS5pbmNvbXBsZXRl
LmVtcHR5c3JjLmh0bWwKKyAgICAgICAgY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5wYXR0ZXJuLmlt
YWdlLmluY29tcGxldGUucmVtb3ZlZHNyYy5odG1sIC0+IGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaHRtbC9jYW52YXMvZWxlbWVudC9maWxsLWFuZC1zdHJva2Utc3R5bGVzLzJkLnBh
dHRlcm4uaW1hZ2UuaW5jb21wbGV0ZS5yZW1vdmVkc3JjLmh0bWwKKyAgICAgICAgZmFzdC9zaGFk
b3ctZG9tL2NhcHR1cmluZy1hbmQtYnViYmxpbmctZXZlbnQtbGlzdGVuZXJzLWFjcm9zcy1zaGFk
b3ctdHJlZXMuaHRtbCAtPiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NoYWRvdy1k
b20vY2FwdHVyaW5nLWFuZC1idWJibGluZy1ldmVudC1saXN0ZW5lcnMtYWNyb3NzLXNoYWRvdy10
cmVlcy5odG1sCisKKyAgICAgICAgKiBjYW52YXMvcGhpbGlwL3Rlc3RzLzJkLmRyYXdJbWFnZS5p
bmNvbXBsZXRlLmVtcHR5c3JjLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBjYW52
YXMvcGhpbGlwL3Rlc3RzLzJkLmRyYXdJbWFnZS5pbmNvbXBsZXRlLmVtcHR5c3JjLmh0bWw6IFJl
bW92ZWQuCisgICAgICAgICogY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5kcmF3SW1hZ2UuaW5jb21w
bGV0ZS5ub3NyYy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogY2FudmFzL3BoaWxp
cC90ZXN0cy8yZC5kcmF3SW1hZ2UuaW5jb21wbGV0ZS5ub3NyYy5odG1sOiBSZW1vdmVkLgorICAg
ICAgICAqIGNhbnZhcy9waGlsaXAvdGVzdHMvMmQuZHJhd0ltYWdlLmluY29tcGxldGUucmVtb3Zl
ZHNyYy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogY2FudmFzL3BoaWxpcC90ZXN0
cy8yZC5kcmF3SW1hZ2UuaW5jb21wbGV0ZS5yZW1vdmVkc3JjLmh0bWw6IFJlbW92ZWQuCisgICAg
ICAgICogY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5wYXR0ZXJuLmltYWdlLmluY29tcGxldGUuZW1w
dHlzcmMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGNhbnZhcy9waGlsaXAvdGVz
dHMvMmQucGF0dGVybi5pbWFnZS5pbmNvbXBsZXRlLmVtcHR5c3JjLmh0bWw6IFJlbW92ZWQuCisg
ICAgICAgICogY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5wYXR0ZXJuLmltYWdlLmluY29tcGxldGUu
cmVtb3ZlZHNyYy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogY2FudmFzL3BoaWxp
cC90ZXN0cy8yZC5wYXR0ZXJuLmltYWdlLmluY29tcGxldGUucmVtb3ZlZHNyYy5odG1sOiBSZW1v
dmVkLgorICAgICAgICAqIGZhc3QvY3NzL3Jlc291cmNlcy9zaGFkb3ctaGVscGVyLmpzOiBBZGRl
ZC4KKyAgICAgICAgKGdldEVsZW1lbnRCeVNoYWRvd0lkcyk6CisgICAgICAgIChjZUNsYXNzLik6
CisgICAgICAgIChpbnN0YWxsQ3VzdG9tRWxlbWVudCk6CisgICAgICAgICogZmFzdC9jc3Mvc2hh
ZG93LXBhcnRzL2V4cG9ydHBhcnRzLXN5bnRheC5odG1sOgorICAgICAgICAqIGZhc3QvY3NzL3No
YWRvdy1wYXJ0cy9pbnZhbGlkYXRpb24tY2xhc3MtYmVmb3JlLWFmdGVyLmh0bWw6CisgICAgICAg
ICogZmFzdC9jc3Mvc2hhZG93LXBhcnRzL2ludmFsaWRhdGlvbi1jbGFzcy1kZXNjZW5kYW50LWNv
bWJpbmF0b3ItZXhwb3J0Lmh0bWw6CisgICAgICAgICogZmFzdC9jc3Mvc2hhZG93LXBhcnRzL2lu
dmFsaWRhdGlvbi1jbGFzcy1kZXNjZW5kYW50LWNvbWJpbmF0b3IuaHRtbDoKKyAgICAgICAgKiBm
YXN0L2Nzcy9zaGFkb3ctcGFydHMvaW52YWxpZGF0aW9uLWNsYXNzLXNpYmxpbmctY29tYmluYXRv
ci1leHBvcnQuaHRtbDoKKyAgICAgICAgKiBmYXN0L2Nzcy9zaGFkb3ctcGFydHMvaW52YWxpZGF0
aW9uLWNsYXNzLXNpYmxpbmctY29tYmluYXRvci5odG1sOgorICAgICAgICAqIGZhc3QvY3VzdG9t
LWVsZW1lbnRzL0RPTUltcGxlbWVudGF0aW9uLWNyZWF0ZURvY3VtZW50Lmh0bWw6CisgICAgICAg
ICogZmFzdC9jdXN0b20tZWxlbWVudHMvYWRvcHRpbmctZnJvbS1mcmFtZWxlc3MtZG9jdW1lbnQu
aHRtbDoKKyAgICAgICAgKiBmYXN0L2N1c3RvbS1lbGVtZW50cy9kaXNjb25uZWN0ZWQtY2FsbGJh
Y2staW4tZGV0YWNoZWQtaWZyYW1lLmh0bWw6CisgICAgICAgICogZmFzdC9jdXN0b20tZWxlbWVu
dHMvZG9jdW1lbnQtY3JlYXRlRWxlbWVudE5TLmh0bWw6CisgICAgICAgICogZmFzdC9jdXN0b20t
ZWxlbWVudHMvZW5xdWV1ZS1jdXN0b20tZWxlbWVudC1jYWxsYmFjay1yZWFjdGlvbnMtaW5zaWRl
LWFub3RoZXItY2FsbGJhY2suaHRtbDoKKyAgICAgICAgKiBmYXN0L2N1c3RvbS1lbGVtZW50cy9w
ZXJmb3JtLW1pY3JvdGFzay1jaGVja3BvaW50LWJlZm9yZS1jb25zdHJ1Y3Rpb24uaHRtbDoKKyAg
ICAgICAgKiBmYXN0L2N1c3RvbS1lbGVtZW50cy9yZWFjdGlvbnMtZm9yLXdlYmtpdC1leHRlbnNp
b25zLmh0bWw6CisgICAgICAgICogZmFzdC9jdXN0b20tZWxlbWVudHMvcmVzb3VyY2VzL2N1c3Rv
bS1lbGVtZW50cy1oZWxwZXJzLmpzOiBBZGRlZC4KKyAgICAgICAgKGNyZWF0ZV93aW5kb3dfaW5f
dGVzdCk6CisgICAgICAgICh0ZXN0X3dpdGhfd2luZG93KToKKyAgICAgICAgKHByb3RvdHlwZS5h
dHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2spOgorICAgICAgICAocHJvdG90eXBlLmNvbm5lY3RlZENh
bGxiYWNrKToKKyAgICAgICAgKHByb3RvdHlwZS5kaXNjb25uZWN0ZWRDYWxsYmFjayk6CisgICAg
ICAgIChwcm90b3R5cGUuYWRvcHRlZENhbGxiYWNrKToKKyAgICAgICAgKHJldHVybi50YWtlTG9n
KToKKyAgICAgICAgKGNyZWF0ZV9jb25zdHJ1Y3Rvcl9sb2cpOgorICAgICAgICAoYXNzZXJ0X2Nv
bnN0cnVjdG9yX2xvZ19lbnRyeSk6CisgICAgICAgIChjcmVhdGVfY29ubmVjdGVkX2NhbGxiYWNr
X2xvZyk6CisgICAgICAgIChhc3NlcnRfY29ubmVjdGVkX2xvZ19lbnRyeSk6CisgICAgICAgIChj
cmVhdGVfZGlzY29ubmVjdGVkX2NhbGxiYWNrX2xvZyk6CisgICAgICAgIChhc3NlcnRfZGlzY29u
bmVjdGVkX2xvZ19lbnRyeSk6CisgICAgICAgIChhc3NlcnRfYWRvcHRlZF9sb2dfZW50cnkpOgor
ICAgICAgICAoY3JlYXRlX2Fkb3B0ZWRfY2FsbGJhY2tfbG9nKToKKyAgICAgICAgKGNyZWF0ZV9h
dHRyaWJ1dGVfY2hhbmdlZF9jYWxsYmFja19sb2cpOgorICAgICAgICAoYXNzZXJ0X2F0dHJpYnV0
ZV9sb2dfZW50cnkpOgorICAgICAgICAoZGVmaW5lX25ld19jdXN0b21fZWxlbWVudC5DdXN0b21F
bGVtZW50KToKKyAgICAgICAgKGRlZmluZV9uZXdfY3VzdG9tX2VsZW1lbnQuQ3VzdG9tRWxlbWVu
dC5wcm90b3R5cGUuYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrKToKKyAgICAgICAgKGRlZmluZV9u
ZXdfY3VzdG9tX2VsZW1lbnQuQ3VzdG9tRWxlbWVudC5wcm90b3R5cGUuY29ubmVjdGVkQ2FsbGJh
Y2spOgorICAgICAgICAoZGVmaW5lX25ld19jdXN0b21fZWxlbWVudC5DdXN0b21FbGVtZW50LnBy
b3RvdHlwZS5kaXNjb25uZWN0ZWRDYWxsYmFjayk6CisgICAgICAgIChkZWZpbmVfbmV3X2N1c3Rv
bV9lbGVtZW50LkN1c3RvbUVsZW1lbnQucHJvdG90eXBlLmFkb3B0ZWRDYWxsYmFjayk6CisgICAg
ICAgIChkZWZpbmVfbmV3X2N1c3RvbV9lbGVtZW50LnJldHVybi50YWtlTG9nKToKKyAgICAgICAg
KEN1c3RvbUVsZW1lbnQpOgorICAgICAgICAoQ3VzdG9tRWxlbWVudC5wcm90b3R5cGUuYXR0cmli
dXRlQ2hhbmdlZENhbGxiYWNrKToKKyAgICAgICAgKEN1c3RvbUVsZW1lbnQucHJvdG90eXBlLmNv
bm5lY3RlZENhbGxiYWNrKToKKyAgICAgICAgKEN1c3RvbUVsZW1lbnQucHJvdG90eXBlLmRpc2Nv
bm5lY3RlZENhbGxiYWNrKToKKyAgICAgICAgKEN1c3RvbUVsZW1lbnQucHJvdG90eXBlLmFkb3B0
ZWRDYWxsYmFjayk6CisgICAgICAgICogZmFzdC9jdXN0b20tZWxlbWVudHMvcmVzb3VyY2VzL3Jl
YWN0aW9ucy5qczogQWRkZWQuCisgICAgICAgICh0ZXN0Tm9kZUNvbm5lY3Rvcik6CisgICAgICAg
ICh0ZXN0Tm9kZURpc2Nvbm5lY3Rvcik6CisgICAgICAgICh0ZXN0SW5zZXJ0aW5nTWFya3VwKToK
KyAgICAgICAgKHRlc3RQYXJzaW5nTWFya3VwKToKKyAgICAgICAgKHByb3RvdHlwZS50ZXN0KToK
KyAgICAgICAgKHRlc3RSZWZsZWN0Qm9vbGVhbkF0dHJpYnV0ZSk6CisgICAgICAgICh0ZXN0QXR0
cmlidXRlQWRkZXIpOgorICAgICAgICAqIGZhc3QvY3VzdG9tLWVsZW1lbnRzL3Rocm93LW9uLWR5
bmFtaWMtbWFya3VwLWluc2VydGlvbi1jb3VudGVyLWNvbnN0cnVjdC5odG1sOgorICAgICAgICAq
IGZhc3QvY3VzdG9tLWVsZW1lbnRzL3Rocm93LW9uLWR5bmFtaWMtbWFya3VwLWluc2VydGlvbi1j
b3VudGVyLXJlYWN0aW9ucy5odG1sOgorICAgICAgICAqIGZhc3QvaW1hZ2VzL3Jlc291cmNlcy9n
cmVlbi0yNTZ4MjU2LnBuZzogQWRkZWQuCisgICAgICAgICogZmFzdC9pbWFnZXMvc2l6ZXMtZHlu
YW1pYy0wMDEtZXhwZWN0ZWQuaHRtbDoKKyAgICAgICAgKiBmYXN0L2ltYWdlcy9zaXplcy1keW5h
bWljLTAwMS5odG1sOgorICAgICAgICAqIGZhc3QvaW1hZ2VzL3NpemVzLWR5bmFtaWMtMDAyLWV4
cGVjdGVkLmh0bWw6CisgICAgICAgICogZmFzdC9pbWFnZXMvc2l6ZXMtZHluYW1pYy0wMDIuaHRt
bDoKKyAgICAgICAgKiBmYXN0L3NoYWRvdy1kb20vY2FwdHVyaW5nLWFuZC1idWJibGluZy1ldmVu
dC1saXN0ZW5lcnMtYWNyb3NzLXNoYWRvdy10cmVlcy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisg
ICAgICAgICogZmFzdC9zaGFkb3ctZG9tL2NhcHR1cmluZy1hbmQtYnViYmxpbmctZXZlbnQtbGlz
dGVuZXJzLWFjcm9zcy1zaGFkb3ctdHJlZXMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBtYXRo
bWwvbm9uLWNvcmUvZnJhYy1saW5ldGhpY2tuZXNzLTAwMS1leHBlY3RlZC5odG1sOgorICAgICAg
ICAqIG1hdGhtbC9ub24tY29yZS9mcmFjLWxpbmV0aGlja25lc3MtMDAxLmh0bWw6CisgICAgICAg
ICogbWF0aG1sL25vbi1jb3JlL2ZyYWMtbGluZXRoaWNrbmVzcy0wMDItZXhwZWN0ZWQuaHRtbDoK
KyAgICAgICAgKiBtYXRobWwvbm9uLWNvcmUvZnJhYy1saW5ldGhpY2tuZXNzLTAwMi5odG1sOgor
ICAgICAgICAqIG1hdGhtbC9ub24tY29yZS9sZW5ndGhzLTEuaHRtbDoKKyAgICAgICAgKiBtYXRo
bWwvbm9uLWNvcmUvbGVuZ3Rocy0yLmh0bWw6CisgICAgICAgICogbWF0aG1sL25vbi1jb3JlL2xl
bmd0aHMtMy5odG1sOgorICAgICAgICAqIG1hdGhtbC9wcmVzZW50YXRpb24vcmFkaWNhbC1iYXIt
dmlzaWJpbGl0eS5odG1sOgorICAgICAgICAqIG1hdGhtbC9yZXNvdXJjZXMvZnJhY3Rpb24tcnVs
ZXRoaWNrbmVzczEwMDAwLndvZmY6IEFkZGVkLgorICAgICAgICAqIG1hdGhtbC9yZXNvdXJjZXMv
cmFkaWNhbC1kZWdyZWVib3R0b21yYWlzZXBlcmNlbnQyNS1ydWxldGhpY2tuZXNzMTAwMC53b2Zm
OiBBZGRlZC4KKyAgICAgICAgKiBtYXRobWwvcmVzb3VyY2VzL3hoZWlnaHQ1MDAud29mZjogQWRk
ZWQuCisKIDIwMjAtMDYtMTAgIERpZWdvIFBpbm8gR2FyY2lhICA8ZHBpbm9AaWdhbGlhLmNvbT4K
IAogICAgICAgICBbR1RLXVtXUEVdIEdhcmRlbmluZywgdXBkYXRlIGV4cGVjdGF0aW9ucyBhZnRl
ciByMjYyODM0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jYW52YXMvcGhpbGlwL3Rlc3RzLzJk
LmRyYXdJbWFnZS5pbmNvbXBsZXRlLmVtcHR5c3JjLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2NhbnZhcy9waGlsaXAvdGVzdHMvMmQuZHJhd0ltYWdlLmluY29tcGxldGUuZW1wdHlzcmMtZXhw
ZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4M2ZlZDk3ZmYwMTdmYmNk
YTY3NDc5MDBkYTMwZDcyMDM4NTBmYTZhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2NhbnZhcy9waGlsaXAvdGVzdHMvMmQuZHJhd0lt
YWdlLmluY29tcGxldGUuZW1wdHlzcmMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEs
NyArMCwwIEBACi0yZC5kcmF3SW1hZ2UuaW5jb21wbGV0ZS5lbXB0eXNyYwotQWN0dWFsIG91dHB1
dDoKLUV4cGVjdGVkIG91dHB1dDoKLQotCi1QQVNTIENhbnZhcyB0ZXN0OiAyZC5kcmF3SW1hZ2Uu
aW5jb21wbGV0ZS5lbXB0eXNyYyAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY2FudmFzL3Bo
aWxpcC90ZXN0cy8yZC5kcmF3SW1hZ2UuaW5jb21wbGV0ZS5lbXB0eXNyYy5odG1sIGIvTGF5b3V0
VGVzdHMvY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5kcmF3SW1hZ2UuaW5jb21wbGV0ZS5lbXB0eXNy
Yy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhY2I3ZDU4ZmY5NTNkOGE5OTlj
NzAzZTc2YWVmMDQxZTBlMzVhZjdjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2NhbnZhcy9waGlsaXAvdGVzdHMvMmQuZHJhd0ltYWdl
LmluY29tcGxldGUuZW1wdHlzcmMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDMzICswLDAgQEAK
LTwhRE9DVFlQRSBodG1sPgotPCEtLSBETyBOT1QgRURJVCEgVGhpcyB0ZXN0IGhhcyBiZWVuIGdl
bmVyYXRlZCBieSB0b29scy9nZW50ZXN0LnB5LiAtLT4KLTx0aXRsZT5DYW52YXMgdGVzdDogMmQu
ZHJhd0ltYWdlLmluY29tcGxldGUuZW1wdHlzcmM8L3RpdGxlPgotPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4v
Li4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFz
L3Jlc291cmNlcy9jYW52YXMtdGVzdHMuanMiPjwvc2NyaXB0PgotPGxpbmsgcmVsPSJzdHlsZXNo
ZWV0IiBocmVmPSIuLi8uLi8uLi9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
Y2FudmFzL3Jlc291cmNlcy9jYW52YXMtdGVzdHMuY3NzIj4KLTxib2R5IGNsYXNzPSJzaG93X291
dHB1dCI+Ci0KLTxoMT4yZC5kcmF3SW1hZ2UuaW5jb21wbGV0ZS5lbXB0eXNyYzwvaDE+Ci08cCBj
bGFzcz0iZGVzYyI+PC9wPgotCi0KLTxwIGNsYXNzPSJvdXRwdXQiPkFjdHVhbCBvdXRwdXQ6PC9w
PgotPGNhbnZhcyBpZD0iYyIgY2xhc3M9Im91dHB1dCIgd2lkdGg9IjEwMCIgaGVpZ2h0PSI1MCI+
PHAgY2xhc3M9ImZhbGxiYWNrIj5GQUlMIChmYWxsYmFjayBjb250ZW50KTwvcD48L2NhbnZhcz4K
LTxwIGNsYXNzPSJvdXRwdXQgZXhwZWN0ZWR0ZXh0Ij5FeHBlY3RlZCBvdXRwdXQ6PHA+PGltZyBz
cmM9Ii9pbWFnZXMvZ3JlZW4tMTAweDUwLnBuZyIgY2xhc3M9Im91dHB1dCBleHBlY3RlZCIgaWQ9
ImV4cGVjdGVkIiBhbHQ9IiI+Ci08dWwgaWQ9ImQiPjwvdWw+Ci08c2NyaXB0PgotdmFyIHQgPSBh
c3luY190ZXN0KCIiKTsKLV9hZGRUZXN0KGZ1bmN0aW9uKGNhbnZhcywgY3R4KSB7Ci0KLWN0eC5m
aWxsU3R5bGUgPSAnIzBmMCc7Ci1jdHguZmlsbFJlY3QoMCwgMCwgMTAwLCA1MCk7Ci12YXIgaW1n
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3JlZC5wbmcnKTsKLWltZy5zcmMgPSAiIjsKLWN0
eC5kcmF3SW1hZ2UoaW1nLCAwLCAwKTsKLV9hc3NlcnRQaXhlbEFwcHJveChjYW52YXMsIDUwLDI1
LCAwLDI1NSwwLDI1NSwgIjUwLDI1IiwgIjAsMjU1LDAsMjU1IiwgMik7Ci0KLQotfSk7Ci08L3Nj
cmlwdD4KLTxpbWcgc3JjPSIvaW1hZ2VzL3JlZC5wbmciIGlkPSJyZWQucG5nIiBjbGFzcz0icmVz
b3VyY2UiPgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jYW52YXMvcGhpbGlwL3Rlc3RzLzJk
LmRyYXdJbWFnZS5pbmNvbXBsZXRlLm5vc3JjLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Nh
bnZhcy9waGlsaXAvdGVzdHMvMmQuZHJhd0ltYWdlLmluY29tcGxldGUubm9zcmMtZXhwZWN0ZWQu
dHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhYWVjNTM5ZWM2NjVmZWQ3NGMzMzk2
Zjg3NTk2YmQ0YTkyZTg4Yjk4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2NhbnZhcy9waGlsaXAvdGVzdHMvMmQuZHJhd0ltYWdlLmlu
Y29tcGxldGUubm9zcmMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNyArMCwwIEBA
Ci0yZC5kcmF3SW1hZ2UuaW5jb21wbGV0ZS5ub3NyYwotQWN0dWFsIG91dHB1dDoKLUV4cGVjdGVk
IG91dHB1dDoKLQotCi1QQVNTIENhbnZhcyB0ZXN0OiAyZC5kcmF3SW1hZ2UuaW5jb21wbGV0ZS5u
b3NyYyAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5k
cmF3SW1hZ2UuaW5jb21wbGV0ZS5ub3NyYy5odG1sIGIvTGF5b3V0VGVzdHMvY2FudmFzL3BoaWxp
cC90ZXN0cy8yZC5kcmF3SW1hZ2UuaW5jb21wbGV0ZS5ub3NyYy5odG1sCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBlMDE2MWUxNmU2YTI3YjRhMmZlYjc3ZmZmNjhjNzNjN2U3YWRjNzgy
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2NhbnZhcy9waGlsaXAvdGVzdHMvMmQuZHJhd0ltYWdlLmluY29tcGxldGUubm9zcmMuaHRt
bAorKysgL2Rldi9udWxsCkBAIC0xLDMxICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLSBE
TyBOT1QgRURJVCEgVGhpcyB0ZXN0IGhhcyBiZWVuIGdlbmVyYXRlZCBieSB0b29scy9nZW50ZXN0
LnB5LiAtLT4KLTx0aXRsZT5DYW52YXMgdGVzdDogMmQuZHJhd0ltYWdlLmluY29tcGxldGUubm9z
cmM8L3RpdGxlPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
cmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL3Jlc291cmNlcy9jYW52YXMtdGVzdHMuanMi
Pjwvc2NyaXB0PgotPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi8uLi9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY2FudmFzL3Jlc291cmNlcy9jYW52YXMtdGVz
dHMuY3NzIj4KLTxib2R5IGNsYXNzPSJzaG93X291dHB1dCI+Ci0KLTxoMT4yZC5kcmF3SW1hZ2Uu
aW5jb21wbGV0ZS5ub3NyYzwvaDE+Ci08cCBjbGFzcz0iZGVzYyI+PC9wPgotCi0KLTxwIGNsYXNz
PSJvdXRwdXQiPkFjdHVhbCBvdXRwdXQ6PC9wPgotPGNhbnZhcyBpZD0iYyIgY2xhc3M9Im91dHB1
dCIgd2lkdGg9IjEwMCIgaGVpZ2h0PSI1MCI+PHAgY2xhc3M9ImZhbGxiYWNrIj5GQUlMIChmYWxs
YmFjayBjb250ZW50KTwvcD48L2NhbnZhcz4KLTxwIGNsYXNzPSJvdXRwdXQgZXhwZWN0ZWR0ZXh0
Ij5FeHBlY3RlZCBvdXRwdXQ6PHA+PGltZyBzcmM9Ii9pbWFnZXMvZ3JlZW4tMTAweDUwLnBuZyIg
Y2xhc3M9Im91dHB1dCBleHBlY3RlZCIgaWQ9ImV4cGVjdGVkIiBhbHQ9IiI+Ci08dWwgaWQ9ImQi
PjwvdWw+Ci08c2NyaXB0PgotdmFyIHQgPSBhc3luY190ZXN0KCIiKTsKLV9hZGRUZXN0KGZ1bmN0
aW9uKGNhbnZhcywgY3R4KSB7Ci0KLWN0eC5maWxsU3R5bGUgPSAnIzBmMCc7Ci1jdHguZmlsbFJl
Y3QoMCwgMCwgMTAwLCA1MCk7Ci12YXIgaW1nID0gbmV3IEltYWdlKCk7Ci1jdHguZHJhd0ltYWdl
KGltZywgMCwgMCk7Ci1fYXNzZXJ0UGl4ZWxBcHByb3goY2FudmFzLCA1MCwyNSwgMCwyNTUsMCwy
NTUsICI1MCwyNSIsICIwLDI1NSwwLDI1NSIsIDIpOwotCi0KLX0pOwotPC9zY3JpcHQ+Ci0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2NhbnZhcy9waGlsaXAvdGVzdHMvMmQuZHJhd0ltYWdlLmlu
Y29tcGxldGUucmVtb3ZlZHNyYy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jYW52YXMvcGhp
bGlwL3Rlc3RzLzJkLmRyYXdJbWFnZS5pbmNvbXBsZXRlLnJlbW92ZWRzcmMtZXhwZWN0ZWQudHh0
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjZWQ2ZWFiYjc3OWZhMjdmYjFjN2ZiNTU1
NWM0NDE1MWI3NzIwNDgyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2NhbnZhcy9waGlsaXAvdGVzdHMvMmQuZHJhd0ltYWdlLmluY29t
cGxldGUucmVtb3ZlZHNyYy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw3ICswLDAg
QEAKLTJkLmRyYXdJbWFnZS5pbmNvbXBsZXRlLnJlbW92ZWRzcmMKLUFjdHVhbCBvdXRwdXQ6Ci1F
eHBlY3RlZCBvdXRwdXQ6Ci0KLQotUEFTUyBDYW52YXMgdGVzdDogMmQuZHJhd0ltYWdlLmluY29t
cGxldGUucmVtb3ZlZHNyYyAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY2FudmFzL3BoaWxp
cC90ZXN0cy8yZC5kcmF3SW1hZ2UuaW5jb21wbGV0ZS5yZW1vdmVkc3JjLmh0bWwgYi9MYXlvdXRU
ZXN0cy9jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLmRyYXdJbWFnZS5pbmNvbXBsZXRlLnJlbW92ZWRz
cmMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmYzOWExNTBmNWMzYmI4MDM3
Yzk3NWZkNjFhMGY3OTJmOWVjYzRmZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLmRyYXdJbWFn
ZS5pbmNvbXBsZXRlLnJlbW92ZWRzcmMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDMzICswLDAg
QEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLSBETyBOT1QgRURJVCEgVGhpcyB0ZXN0IGhhcyBiZWVu
IGdlbmVyYXRlZCBieSB0b29scy9nZW50ZXN0LnB5LiAtLT4KLTx0aXRsZT5DYW52YXMgdGVzdDog
MmQuZHJhd0ltYWdlLmluY29tcGxldGUucmVtb3ZlZHNyYzwvdGl0bGU+Ci08c2NyaXB0IHNyYz0i
Li4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9j
YW52YXMvcmVzb3VyY2VzL2NhbnZhcy10ZXN0cy5qcyI+PC9zY3JpcHQ+Ci08bGluayByZWw9InN0
eWxlc2hlZXQiIGhyZWY9Ii4uLy4uLy4uL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbC9jYW52YXMvcmVzb3VyY2VzL2NhbnZhcy10ZXN0cy5jc3MiPgotPGJvZHkgY2xhc3M9InNo
b3dfb3V0cHV0Ij4KLQotPGgxPjJkLmRyYXdJbWFnZS5pbmNvbXBsZXRlLnJlbW92ZWRzcmM8L2gx
PgotPHAgY2xhc3M9ImRlc2MiPjwvcD4KLQotCi08cCBjbGFzcz0ib3V0cHV0Ij5BY3R1YWwgb3V0
cHV0OjwvcD4KLTxjYW52YXMgaWQ9ImMiIGNsYXNzPSJvdXRwdXQiIHdpZHRoPSIxMDAiIGhlaWdo
dD0iNTAiPjxwIGNsYXNzPSJmYWxsYmFjayI+RkFJTCAoZmFsbGJhY2sgY29udGVudCk8L3A+PC9j
YW52YXM+Ci08cCBjbGFzcz0ib3V0cHV0IGV4cGVjdGVkdGV4dCI+RXhwZWN0ZWQgb3V0cHV0Ojxw
PjxpbWcgc3JjPSIvaW1hZ2VzL2dyZWVuLTEwMHg1MC5wbmciIGNsYXNzPSJvdXRwdXQgZXhwZWN0
ZWQiIGlkPSJleHBlY3RlZCIgYWx0PSIiPgotPHVsIGlkPSJkIj48L3VsPgotPHNjcmlwdD4KLXZh
ciB0ID0gYXN5bmNfdGVzdCgiIik7Ci1fYWRkVGVzdChmdW5jdGlvbihjYW52YXMsIGN0eCkgewot
Ci1jdHguZmlsbFN0eWxlID0gJyMwZjAnOwotY3R4LmZpbGxSZWN0KDAsIDAsIDEwMCwgNTApOwot
dmFyIGltZyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZWQucG5nJyk7Ci1pbWcucmVtb3Zl
QXR0cmlidXRlKCdzcmMnKTsKLWN0eC5kcmF3SW1hZ2UoaW1nLCAwLCAwKTsKLV9hc3NlcnRQaXhl
bEFwcHJveChjYW52YXMsIDUwLDI1LCAwLDI1NSwwLDI1NSwgIjUwLDI1IiwgIjAsMjU1LDAsMjU1
IiwgMik7Ci0KLQotfSk7Ci08L3NjcmlwdD4KLTxpbWcgc3JjPSIvaW1hZ2VzL3JlZC5wbmciIGlk
PSJyZWQucG5nIiBjbGFzcz0icmVzb3VyY2UiPgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9j
YW52YXMvcGhpbGlwL3Rlc3RzLzJkLnBhdHRlcm4uaW1hZ2UuaW5jb21wbGV0ZS5lbXB0eXNyYy1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnBhdHRlcm4u
aW1hZ2UuaW5jb21wbGV0ZS5lbXB0eXNyYy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDk2MGQ3YTRjM2RmOGJhYzYwMzIzMGM5OTZkY2ZjMGViNDZjODg2OTEuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
Y2FudmFzL3BoaWxpcC90ZXN0cy8yZC5wYXR0ZXJuLmltYWdlLmluY29tcGxldGUuZW1wdHlzcmMt
ZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNSArMCwwIEBACi0yZC5wYXR0ZXJuLmlt
YWdlLmluY29tcGxldGUuZW1wdHlzcmMKLUFjdHVhbCBvdXRwdXQ6Ci0KLVBBU1MgQ2FudmFzIHRl
c3Q6IDJkLnBhdHRlcm4uaW1hZ2UuaW5jb21wbGV0ZS5lbXB0eXNyYyAKLQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5wYXR0ZXJuLmltYWdlLmluY29tcGxl
dGUuZW1wdHlzcmMuaHRtbCBiL0xheW91dFRlc3RzL2NhbnZhcy9waGlsaXAvdGVzdHMvMmQucGF0
dGVybi5pbWFnZS5pbmNvbXBsZXRlLmVtcHR5c3JjLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGJiNjU3ZWQ2MjBmOGVhMDJiNjgzMzQ3OTUyOTEzMWVmZjVkNThkMTcuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvY2Fu
dmFzL3BoaWxpcC90ZXN0cy8yZC5wYXR0ZXJuLmltYWdlLmluY29tcGxldGUuZW1wdHlzcmMuaHRt
bAorKysgL2Rldi9udWxsCkBAIC0xLDMwICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPCEtLSBE
TyBOT1QgRURJVCEgVGhpcyB0ZXN0IGhhcyBiZWVuIGdlbmVyYXRlZCBieSB0b29scy9nZW50ZXN0
LnB5LiAtLT4KLTx0aXRsZT5DYW52YXMgdGVzdDogMmQucGF0dGVybi5pbWFnZS5pbmNvbXBsZXRl
LmVtcHR5c3JjPC90aXRsZT4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhh
cm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0
aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9yZXNvdXJjZXMvY2FudmFzLXRl
c3RzLmpzIj48L3NjcmlwdD4KLTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4v
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9yZXNvdXJjZXMvY2Fu
dmFzLXRlc3RzLmNzcyI+Ci08Ym9keSBjbGFzcz0ic2hvd19vdXRwdXQiPgotCi08aDE+MmQucGF0
dGVybi5pbWFnZS5pbmNvbXBsZXRlLmVtcHR5c3JjPC9oMT4KLTxwIGNsYXNzPSJkZXNjIj48L3A+
Ci0KLQotPHAgY2xhc3M9Im91dHB1dCI+QWN0dWFsIG91dHB1dDo8L3A+Ci08Y2FudmFzIGlkPSJj
IiBjbGFzcz0ib3V0cHV0IiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjUwIj48cCBjbGFzcz0iZmFsbGJh
Y2siPkZBSUwgKGZhbGxiYWNrIGNvbnRlbnQpPC9wPjwvY2FudmFzPgotCi08dWwgaWQ9ImQiPjwv
dWw+Ci08c2NyaXB0PgotdmFyIHQgPSBhc3luY190ZXN0KCIiKTsKLV9hZGRUZXN0KGZ1bmN0aW9u
KGNhbnZhcywgY3R4KSB7Ci0KLXZhciBpbWcgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVk
LnBuZycpOwotaW1nLnNyYyA9ICIiOwotX2Fzc2VydFNhbWUoY3R4LmNyZWF0ZVBhdHRlcm4oaW1n
LCAncmVwZWF0JyksIG51bGwsICJjdHguY3JlYXRlUGF0dGVybihpbWcsICdyZXBlYXQnKSIsICJu
dWxsIik7Ci0KLQotfSk7Ci08L3NjcmlwdD4KLTxpbWcgc3JjPSIvaW1hZ2VzL3JlZC5wbmciIGlk
PSJyZWQucG5nIiBjbGFzcz0icmVzb3VyY2UiPgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9j
YW52YXMvcGhpbGlwL3Rlc3RzLzJkLnBhdHRlcm4uaW1hZ2UuaW5jb21wbGV0ZS5yZW1vdmVkc3Jj
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2NhbnZhcy9waGlsaXAvdGVzdHMvMmQucGF0dGVy
bi5pbWFnZS5pbmNvbXBsZXRlLnJlbW92ZWRzcmMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA1YTQ4Zjc5ZWJmZjlkZmM2OTc3MWY4NjNlMTYyYjg2YjM3ZjI3ODBh
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2NhbnZhcy9waGlsaXAvdGVzdHMvMmQucGF0dGVybi5pbWFnZS5pbmNvbXBsZXRlLnJlbW92
ZWRzcmMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNSArMCwwIEBACi0yZC5wYXR0
ZXJuLmltYWdlLmluY29tcGxldGUucmVtb3ZlZHNyYwotQWN0dWFsIG91dHB1dDoKLQotUEFTUyBD
YW52YXMgdGVzdDogMmQucGF0dGVybi5pbWFnZS5pbmNvbXBsZXRlLnJlbW92ZWRzcmMgCi0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2NhbnZhcy9waGlsaXAvdGVzdHMvMmQucGF0dGVybi5pbWFn
ZS5pbmNvbXBsZXRlLnJlbW92ZWRzcmMuaHRtbCBiL0xheW91dFRlc3RzL2NhbnZhcy9waGlsaXAv
dGVzdHMvMmQucGF0dGVybi5pbWFnZS5pbmNvbXBsZXRlLnJlbW92ZWRzcmMuaHRtbApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzViZjA3NmRhNTkyNzVkMzY1NGM1OTg3YjczNWUzNDQ0
Y2FkMGYzNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnBhdHRlcm4uaW1hZ2UuaW5jb21wbGV0
ZS5yZW1vdmVkc3JjLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzMCArMCwwIEBACi08IURPQ1RZ
UEUgaHRtbD4KLTwhLS0gRE8gTk9UIEVESVQhIFRoaXMgdGVzdCBoYXMgYmVlbiBnZW5lcmF0ZWQg
YnkgdG9vbHMvZ2VudGVzdC5weS4gLS0+Ci08dGl0bGU+Q2FudmFzIHRlc3Q6IDJkLnBhdHRlcm4u
aW1hZ2UuaW5jb21wbGV0ZS5yZW1vdmVkc3JjPC90aXRsZT4KLTxzY3JpcHQgc3JjPSIuLi8uLi8u
Li9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9y
ZXNvdXJjZXMvY2FudmFzLXRlc3RzLmpzIj48L3NjcmlwdD4KLTxsaW5rIHJlbD0ic3R5bGVzaGVl
dCIgaHJlZj0iLi4vLi4vLi4vaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nh
bnZhcy9yZXNvdXJjZXMvY2FudmFzLXRlc3RzLmNzcyI+Ci08Ym9keSBjbGFzcz0ic2hvd19vdXRw
dXQiPgotCi08aDE+MmQucGF0dGVybi5pbWFnZS5pbmNvbXBsZXRlLnJlbW92ZWRzcmM8L2gxPgot
PHAgY2xhc3M9ImRlc2MiPjwvcD4KLQotCi08cCBjbGFzcz0ib3V0cHV0Ij5BY3R1YWwgb3V0cHV0
OjwvcD4KLTxjYW52YXMgaWQ9ImMiIGNsYXNzPSJvdXRwdXQiIHdpZHRoPSIxMDAiIGhlaWdodD0i
NTAiPjxwIGNsYXNzPSJmYWxsYmFjayI+RkFJTCAoZmFsbGJhY2sgY29udGVudCk8L3A+PC9jYW52
YXM+Ci0KLTx1bCBpZD0iZCI+PC91bD4KLTxzY3JpcHQ+Ci12YXIgdCA9IGFzeW5jX3Rlc3QoIiIp
OwotX2FkZFRlc3QoZnVuY3Rpb24oY2FudmFzLCBjdHgpIHsKLQotdmFyIGltZyA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdyZWQucG5nJyk7Ci1pbWcucmVtb3ZlQXR0cmlidXRlKCdzcmMnKTsK
LV9hc3NlcnRTYW1lKGN0eC5jcmVhdGVQYXR0ZXJuKGltZywgJ3JlcGVhdCcpLCBudWxsLCAiY3R4
LmNyZWF0ZVBhdHRlcm4oaW1nLCAncmVwZWF0JykiLCAibnVsbCIpOwotCi0KLX0pOwotPC9zY3Jp
cHQ+Ci08aW1nIHNyYz0iL2ltYWdlcy9yZWQucG5nIiBpZD0icmVkLnBuZyIgY2xhc3M9InJlc291
cmNlIj4KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvcmVzb3VyY2VzL3NoYWRv
dy1oZWxwZXIuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9yZXNvdXJjZXMvc2hhZG93LWhlbHBl
ci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi45NGFjY2Q2YjFmOWIwOTVmZGEwMDc5ZjdiODZiODY2ZDg4ZmZlZTAx
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvcmVzb3VyY2VzL3NoYWRv
dy1oZWxwZXIuanMKQEAgLTAsMCArMSwzMyBAQAorLy8gVGFrZXMgYSByb290IGVsZW1lbnQgYW5k
IGEgbGlzdCBvZiBpZHMgb2Ygc2hhZG93IGhvc3QgZWxlbWVudHMuIEVhY2ggaWQgcmVmZXJzIHRv
IGEgc2hhZG93IGhvc3QKKy8vIGluc2lkZSB0aGUgcHJldmlvdXMgaWQncyBzaGFkb3cgdHJlZS4K
K2Z1bmN0aW9uIGdldEVsZW1lbnRCeVNoYWRvd0lkcyhyb290LCBpZHMpIHsKKyAgZm9yICh2YXIg
aSA9IDA7IDtpKyspIHsKKyAgICB2YXIgaG9zdCA9IHJvb3QuZ2V0RWxlbWVudEJ5SWQoaWRzW2ld
KTsKKyAgICBpZiAoaG9zdCA9PSBudWxsKSB7CisgICAgICB0aHJvdyAiTm8gZWxlbWVudCBmb3Vu
ZDogaT0iICsgaSArICIgaWQ9IiArIGlkc1tpXSArICIuIFJvb3Qgd2FzICIgKyByb290OworICAg
IH0KKyAgICBpZiAoaSA9PSBpZHMubGVuZ3RoIC0gMSkgeworICAgICAgcmV0dXJuIGhvc3Q7Cisg
ICAgfQorICAgIHJvb3QgPSBob3N0LnNoYWRvd1Jvb3Q7CisgICAgaWYgKHJvb3QgPT0gbnVsbCkg
eworICAgICAgdGhyb3cgIk5vIHNoYWRvd1Jvb3QgZm91bmQ6IGk9IiArIGkgKyAiIGlkPSIgKyBp
ZHNbaV0gKyAiLiBIb3N0IHdhcyAiICsgaG9zdDsKKyAgICB9CisgIH0KK30KKworLy8gSW5zdGFs
bHMgYSBtaW5pbmFsIGN1c3RvbSBlbGVtZW50IGJhc2VkIG9uIHRoaXMgdGVtcGxhdGUuCitmdW5j
dGlvbiBpbnN0YWxsQ3VzdG9tRWxlbWVudChlbGVtZW50X25hbWUsIHRlbXBsYXRlX2lkKSB7Cisg
IGNlQ2xhc3MgPSBjbGFzcyBleHRlbmRzIEhUTUxFbGVtZW50IHsKKyAgICBjb25zdHJ1Y3Rvcigp
IHsKKyAgICAgIHN1cGVyKCk7CisgICAgICB2YXIgdGVtcGxhdGUgPSBkb2N1bWVudAorICAgICAg
ICAuZ2V0RWxlbWVudEJ5SWQodGVtcGxhdGVfaWQpCisgICAgICAgIC5jb250ZW50OworICAgICAg
dGhpcworICAgICAgICAuYXR0YWNoU2hhZG93KHttb2RlOiAnb3Blbid9KQorICAgICAgICAuYXBw
ZW5kQ2hpbGQodGVtcGxhdGUuY2xvbmVOb2RlKHRydWUpKTsKKyAgICB9CisgIH07CisgIHdpbmRv
dy5jdXN0b21FbGVtZW50cy5kZWZpbmUoZWxlbWVudF9uYW1lLCBjZUNsYXNzKTsKK30KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL3NoYWRvdy1wYXJ0cy9leHBvcnRwYXJ0cy1zeW50
YXguaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL3NoYWRvdy1wYXJ0cy9leHBvcnRwYXJ0cy1z
eW50YXguaHRtbAppbmRleCAwMTM0NWQ0YzU0MzYyNmEwOGFhMjY0ZTM4ODhmODJhMWU2YmU1NWUw
Li42YWNjZGUyYjE1Mzg2ODRjOTVkMjAxMTBkMDkwZjgyZGExYjAyNzUyIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L2Nzcy9zaGFkb3ctcGFydHMvZXhwb3J0cGFydHMtc3ludGF4Lmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3Mvc2hhZG93LXBhcnRzL2V4cG9ydHBhcnRzLXN5bnRh
eC5odG1sCkBAIC02LDcgKzYsNyBAQAogICAgIDxsaW5rIGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNz
c3dnLm9yZy9jc3Mtc2hhZG93LXBhcnRzLyIgcmVsPSJoZWxwIj4KICAgICA8c2NyaXB0IHNyYz0i
Li4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4K
LSAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3NzLXNoYWRvdy1wYXJ0cy9zdXBwb3J0L3NoYWRvdy1oZWxwZXIuanMiPjwvc2NyaXB0
PgorICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvc2hhZG93LWhlbHBlci5qcyI+PC9zY3Jp
cHQ+CiAgIDwvaGVhZD4KICAgPGJvZHk+CiAgICAgPHN0eWxlPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9jc3Mvc2hhZG93LXBhcnRzL2ludmFsaWRhdGlvbi1jbGFzcy1iZWZvcmUtYWZ0
ZXIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL3NoYWRvdy1wYXJ0cy9pbnZhbGlkYXRpb24t
Y2xhc3MtYmVmb3JlLWFmdGVyLmh0bWwKaW5kZXggMzJiNTZjZGQxODhkN2FlODE2ODYyOTdlYTY5
ZDZjMGMwOGI5YzIzMy4uMGQwZTRhYmUzN2UxMTdlODA4YTM0ZTQ3MzgyMjQwMmI3ZDcwMTA4ZSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9jc3Mvc2hhZG93LXBhcnRzL2ludmFsaWRhdGlv
bi1jbGFzcy1iZWZvcmUtYWZ0ZXIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9zaGFk
b3ctcGFydHMvaW52YWxpZGF0aW9uLWNsYXNzLWJlZm9yZS1hZnRlci5odG1sCkBAIC02LDcgKzYs
NyBAQAogICAgIDxsaW5rIGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3Mtc2hhZG93
LXBhcnRzLyIgcmVsPSJoZWxwIj4KICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0i
Li4vLi4vLi4vaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNoYWRvdy1w
YXJ0cy9zdXBwb3J0L3NoYWRvdy1oZWxwZXIuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3Jj
PSIuLi9yZXNvdXJjZXMvc2hhZG93LWhlbHBlci5qcyI+PC9zY3JpcHQ+CiAgIDwvaGVhZD4KICAg
PGJvZHk+CiAgICAgPHN0eWxlPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3Mvc2hh
ZG93LXBhcnRzL2ludmFsaWRhdGlvbi1jbGFzcy1kZXNjZW5kYW50LWNvbWJpbmF0b3ItZXhwb3J0
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9zaGFkb3ctcGFydHMvaW52YWxpZGF0aW9uLWNs
YXNzLWRlc2NlbmRhbnQtY29tYmluYXRvci1leHBvcnQuaHRtbAppbmRleCBjOWQ4YTU5MmI5YWYw
YTM2ZWFkOWM1MmYwMzRkZGEwODNjMGQ0ZmM2Li42ZDE0OTk2ZGY5NzFhNmVmZWJlYTFlMDlhNzJh
MTNhZWEwYmE2NGU2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9zaGFkb3ctcGFy
dHMvaW52YWxpZGF0aW9uLWNsYXNzLWRlc2NlbmRhbnQtY29tYmluYXRvci1leHBvcnQuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9zaGFkb3ctcGFydHMvaW52YWxpZGF0aW9uLWNsYXNz
LWRlc2NlbmRhbnQtY29tYmluYXRvci1leHBvcnQuaHRtbApAQCAtNiw3ICs2LDcgQEAKICAgICA8
bGluayBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3NzLXNoYWRvdy1wYXJ0cy8iIHJl
bD0iaGVscCI+CiAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVz
cy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0
aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zaGFkb3ctcGFydHMvc3VwcG9y
dC9zaGFkb3ctaGVscGVyLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3Vy
Y2VzL3NoYWRvdy1oZWxwZXIuanMiPjwvc2NyaXB0PgogICA8L2hlYWQ+CiAgIDxib2R5PgogICAg
IDxzdHlsZT4uYW5jZXN0b3IgI2MtZS1vdXRlcjo6cGFydChwYXJ0LWZvcndhcmRlZCkgeyBjb2xv
cjogZ3JlZW47IH08L3N0eWxlPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3Mvc2hh
ZG93LXBhcnRzL2ludmFsaWRhdGlvbi1jbGFzcy1kZXNjZW5kYW50LWNvbWJpbmF0b3IuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvY3NzL3NoYWRvdy1wYXJ0cy9pbnZhbGlkYXRpb24tY2xhc3MtZGVz
Y2VuZGFudC1jb21iaW5hdG9yLmh0bWwKaW5kZXggMzllZTc4MGUwYzBhNjAyYzM5MGNkNmFhZGRi
OWNlYzMwN2ZlYTdkNy4uOThmMzI2N2JkNWQwNjMwMzJmOTBmOWQzOGIzMzk5NjE5ZjkzNTIzYyAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9jc3Mvc2hhZG93LXBhcnRzL2ludmFsaWRhdGlv
bi1jbGFzcy1kZXNjZW5kYW50LWNvbWJpbmF0b3IuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2Nzcy9zaGFkb3ctcGFydHMvaW52YWxpZGF0aW9uLWNsYXNzLWRlc2NlbmRhbnQtY29tYmluYXRv
ci5odG1sCkBAIC02LDcgKzYsNyBAQAogICAgIDxsaW5rIGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNz
c3dnLm9yZy9jc3Mtc2hhZG93LXBhcnRzLyIgcmVsPSJoZWxwIj4KICAgICA8c2NyaXB0IHNyYz0i
Li4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4K
LSAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3NzLXNoYWRvdy1wYXJ0cy9zdXBwb3J0L3NoYWRvdy1oZWxwZXIuanMiPjwvc2NyaXB0
PgorICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvc2hhZG93LWhlbHBlci5qcyI+PC9zY3Jp
cHQ+CiAgIDwvaGVhZD4KICAgPGJvZHk+CiAgICAgPHN0eWxlPi5hbmNlc3RvciAjYy1lOjpwYXJ0
KHBhcnRwKSB7IGNvbG9yOiBncmVlbjsgfTwvc3R5bGU+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2Nzcy9zaGFkb3ctcGFydHMvaW52YWxpZGF0aW9uLWNsYXNzLXNpYmxpbmctY29tYmlu
YXRvci1leHBvcnQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL3NoYWRvdy1wYXJ0cy9pbnZh
bGlkYXRpb24tY2xhc3Mtc2libGluZy1jb21iaW5hdG9yLWV4cG9ydC5odG1sCmluZGV4IDI2M2Zk
MDllM2FiYjVlNTExZDQ5ZjM4NGMzMTdlZmZhYzU4Y2E2NWUuLmI0NTliOWQ4YWZmODRhMjhmMjJh
NDc3NDBkZGRmMjEyNjExYjYzYmQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL3No
YWRvdy1wYXJ0cy9pbnZhbGlkYXRpb24tY2xhc3Mtc2libGluZy1jb21iaW5hdG9yLWV4cG9ydC5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL3NoYWRvdy1wYXJ0cy9pbnZhbGlkYXRpb24t
Y2xhc3Mtc2libGluZy1jb21iaW5hdG9yLWV4cG9ydC5odG1sCkBAIC02LDcgKzYsNyBAQAogICAg
IDxsaW5rIGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3Mtc2hhZG93LXBhcnRzLyIg
cmVsPSJoZWxwIj4KICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4v
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNoYWRvdy1wYXJ0cy9zdXBw
b3J0L3NoYWRvdy1oZWxwZXIuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNv
dXJjZXMvc2hhZG93LWhlbHBlci5qcyI+PC9zY3JpcHQ+CiAgIDwvaGVhZD4KICAgPGJvZHk+CiAg
ICAgPHN0eWxlPi5zaWJsaW5nIH4gI2MtZS1vdXRlcjo6cGFydChwYXJ0LWZvcndhcmRlZCkgeyBj
b2xvcjogZ3JlZW47IH08L3N0eWxlPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3Mv
c2hhZG93LXBhcnRzL2ludmFsaWRhdGlvbi1jbGFzcy1zaWJsaW5nLWNvbWJpbmF0b3IuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvY3NzL3NoYWRvdy1wYXJ0cy9pbnZhbGlkYXRpb24tY2xhc3Mtc2li
bGluZy1jb21iaW5hdG9yLmh0bWwKaW5kZXggYzRmNjdlN2NhNTk5NzkxZTI3MGI4NzQ0MjlmYjAy
YmNjM2NhNmRhNS4uYzBiZGM1ZGNlMGRhN2IyNjEwZjBmZTEwOGQ1Yzc1NjBjZDgwYWI1OSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9jc3Mvc2hhZG93LXBhcnRzL2ludmFsaWRhdGlvbi1j
bGFzcy1zaWJsaW5nLWNvbWJpbmF0b3IuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9z
aGFkb3ctcGFydHMvaW52YWxpZGF0aW9uLWNsYXNzLXNpYmxpbmctY29tYmluYXRvci5odG1sCkBA
IC02LDcgKzYsNyBAQAogICAgIDxsaW5rIGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9j
c3Mtc2hhZG93LXBhcnRzLyIgcmVsPSJoZWxwIj4KICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iLi4v
Li4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLSAgICA8c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
LXNoYWRvdy1wYXJ0cy9zdXBwb3J0L3NoYWRvdy1oZWxwZXIuanMiPjwvc2NyaXB0PgorICAgIDxz
Y3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvc2hhZG93LWhlbHBlci5qcyI+PC9zY3JpcHQ+CiAgIDwv
aGVhZD4KICAgPGJvZHk+CiAgICAgPHN0eWxlPi5zaWJsaW5nIH4gI2MtZTo6cGFydChwYXJ0cCkg
eyBjb2xvcjogZ3JlZW47IH08L3N0eWxlPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9j
dXN0b20tZWxlbWVudHMvRE9NSW1wbGVtZW50YXRpb24tY3JlYXRlRG9jdW1lbnQuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL0RPTUltcGxlbWVudGF0aW9uLWNyZWF0ZURv
Y3VtZW50Lmh0bWwKaW5kZXggZjZlNGUzMGRlYjk3YTE4ZTNjNzk2MDViOWE1MWYyMGUxODNhM2Rh
YS4uNTAxZGZkY2M3OGE5YjVlZGZmOTA2YTkzYzZjNDcxN2U5ODAyNmVlYyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9jdXN0b20tZWxlbWVudHMvRE9NSW1wbGVtZW50YXRpb24tY3JlYXRl
RG9jdW1lbnQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2N1c3RvbS1lbGVtZW50cy9ET01J
bXBsZW1lbnRhdGlvbi1jcmVhdGVEb2N1bWVudC5odG1sCkBAIC04LDcgKzgsNyBAQAogPGxpbmsg
cmVsPSJoZWxwIiBjb250ZW50PSJodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnLyNsb29rLXVw
LWEtY3VzdG9tLWVsZW1lbnQtZGVmaW5pdGlvbiI+CiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL3Jlc291cmNlcy9j
dXN0b20tZWxlbWVudHMtaGVscGVycy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL2N1c3RvbS1lbGVtZW50cy1oZWxwZXJzLmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5
PgogPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3Vz
dG9tLWVsZW1lbnRzL2Fkb3B0aW5nLWZyb20tZnJhbWVsZXNzLWRvY3VtZW50Lmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L2N1c3RvbS1lbGVtZW50cy9hZG9wdGluZy1mcm9tLWZyYW1lbGVzcy1kb2N1
bWVudC5odG1sCmluZGV4IGQ0N2VhZTljYWIyMzY3ZWFhNDE5YTBlNGNjYzA2ZmM3YjAwNjNiYmEu
LmM1M2IzOTA0OTIxY2ViMTEzYzM2NDY2ZDlmNzhkN2ZlYWY4NDY3ODcgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL2Fkb3B0aW5nLWZyb20tZnJhbWVsZXNzLWRv
Y3VtZW50Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jdXN0b20tZWxlbWVudHMvYWRvcHRp
bmctZnJvbS1mcmFtZWxlc3MtZG9jdW1lbnQuaHRtbApAQCAtMTAsNyArMTAsNyBAQAogPG1ldGEg
bmFtZT0iaGVscCIgY29udGVudD0iaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBh
Z2Uvc2NyaXB0aW5nLmh0bWwjY29uY2VwdC10cnktdXBncmFkZSI+CiA8c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9
Ii4uLy4uL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL3Jl
c291cmNlcy9jdXN0b20tZWxlbWVudHMtaGVscGVycy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL2N1c3RvbS1lbGVtZW50cy1oZWxwZXJzLmpzIj48L3NjcmlwdD4KIDwvaGVh
ZD4KIDxib2R5PgogPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvY3VzdG9tLWVsZW1lbnRzL2Rpc2Nvbm5lY3RlZC1jYWxsYmFjay1pbi1kZXRhY2hlZC1p
ZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL2Rpc2Nvbm5lY3Rl
ZC1jYWxsYmFjay1pbi1kZXRhY2hlZC1pZnJhbWUuaHRtbAppbmRleCBjMGNlODU3YWQ3NmY1ZWFl
MjVkMjE4OGFjODU2OTFkM2M4MDVkNDViLi4yZjhmYzFkNTQ5MGI1M2FhNjA1ZjdiNmIxZjEwMjIx
ODRkMGVlZjhjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2N1c3RvbS1lbGVtZW50cy9k
aXNjb25uZWN0ZWQtY2FsbGJhY2staW4tZGV0YWNoZWQtaWZyYW1lLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9jdXN0b20tZWxlbWVudHMvZGlzY29ubmVjdGVkLWNhbGxiYWNrLWluLWRldGFj
aGVkLWlmcmFtZS5odG1sCkBAIC03LDggKzcsOCBAQAogPG1ldGEgbmFtZT0iaGVscCIgY29udGVu
dD0iaHR0cHM6Ly9kb20uc3BlYy53aGF0d2cub3JnLyNjb25jZXB0LW5vZGUtcmVtb3ZlIj4KIDxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgogPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz0iLi4vLi4vaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0
b20tZWxlbWVudHMvcmVzb3VyY2VzL2N1c3RvbS1lbGVtZW50cy1oZWxwZXJzLmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1
c3RvbS1lbGVtZW50cy9yZWFjdGlvbnMvcmVzb3VyY2VzL3JlYWN0aW9ucy5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2N1c3RvbS1lbGVtZW50cy1oZWxwZXJzLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcmVhY3Rpb25zLmpzIj48L3NjcmlwdD4KIDwv
aGVhZD4KIDxib2R5PgogPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL2RvY3VtZW50LWNyZWF0ZUVsZW1lbnROUy5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9jdXN0b20tZWxlbWVudHMvZG9jdW1lbnQtY3JlYXRlRWxlbWVudE5T
Lmh0bWwKaW5kZXggMzY5M2ExMGVlNzEyOTY3NzY0YWQ1ODk0NGMwNGIwM2EwMzY2OGUzZi4uOTA2
NjAyNTkxZDBiNmRkYmJlZWQwN2RmMzk3MDM3NWIzOWQ1ZjQ5YyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9jdXN0b20tZWxlbWVudHMvZG9jdW1lbnQtY3JlYXRlRWxlbWVudE5TLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jdXN0b20tZWxlbWVudHMvZG9jdW1lbnQtY3JlYXRlRWxl
bWVudE5TLmh0bWwKQEAgLTgsNyArOCw3IEBACiA8bGluayByZWw9ImhlbHAiIGNvbnRlbnQ9Imh0
dHBzOi8vZG9tLnNwZWMud2hhdHdnLm9yZy8jY29uY2VwdC1jcmVhdGUtZWxlbWVudCI+CiA8c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KIDxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdCBzcmM9Ii4uLy4uL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9t
LWVsZW1lbnRzL3Jlc291cmNlcy9jdXN0b20tZWxlbWVudHMtaGVscGVycy5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2N1c3RvbS1lbGVtZW50cy1oZWxwZXJzLmpzIj48L3Nj
cmlwdD4KIDwvaGVhZD4KIDxib2R5PgogPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL2VucXVldWUtY3VzdG9tLWVsZW1lbnQt
Y2FsbGJhY2stcmVhY3Rpb25zLWluc2lkZS1hbm90aGVyLWNhbGxiYWNrLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L2N1c3RvbS1lbGVtZW50cy9lbnF1ZXVlLWN1c3RvbS1lbGVtZW50LWNhbGxiYWNr
LXJlYWN0aW9ucy1pbnNpZGUtYW5vdGhlci1jYWxsYmFjay5odG1sCmluZGV4IDIxZDY2ZmVhZWVj
NTY1Y2M3ZTUyYjQxOTZhYWRiYzFjNzdkMzY5OWUuLjY5YTFmZDdjZGUwOWI3OTQ5N2FiYmFkMTE0
YmIyNDg2Njc3MGZiMDYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1l
bnRzL2VucXVldWUtY3VzdG9tLWVsZW1lbnQtY2FsbGJhY2stcmVhY3Rpb25zLWluc2lkZS1hbm90
aGVyLWNhbGxiYWNrLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jdXN0b20tZWxlbWVudHMv
ZW5xdWV1ZS1jdXN0b20tZWxlbWVudC1jYWxsYmFjay1yZWFjdGlvbnMtaW5zaWRlLWFub3RoZXIt
Y2FsbGJhY2suaHRtbApAQCAtOCw3ICs4LDcgQEAKIDxsaW5rIHJlbD0iaGVscCIgY29udGVudD0i
aHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWJjb21wb25lbnRzL2lzc3Vlcy83NjAiPgogPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSIuLi8uLi9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1l
bGVtZW50cy9yZXNvdXJjZXMvY3VzdG9tLWVsZW1lbnRzLWhlbHBlcnMuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9InJlc291cmNlcy9jdXN0b20tZWxlbWVudHMtaGVscGVycy5qcyI+PC9zY3Jp
cHQ+CiA8L2hlYWQ+CiA8Ym9keT4KIDxzY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2N1c3RvbS1lbGVtZW50cy9wZXJmb3JtLW1pY3JvdGFzay1jaGVja3BvaW50LWJlZm9yZS1j
b25zdHJ1Y3Rpb24uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL3BlcmZv
cm0tbWljcm90YXNrLWNoZWNrcG9pbnQtYmVmb3JlLWNvbnN0cnVjdGlvbi5odG1sCmluZGV4IGYx
MTdjODhjYjgyMzcyYzJhMGJmNjc5ODZjNDMxNzI3ZDViNjRjZDEuLjhjNzBhZDk5Zjk3YzVmZDVl
YWZhZWQxMmNjNzgzMWY3NGM2NWEyMTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY3Vz
dG9tLWVsZW1lbnRzL3BlcmZvcm0tbWljcm90YXNrLWNoZWNrcG9pbnQtYmVmb3JlLWNvbnN0cnVj
dGlvbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL3BlcmZvcm0t
bWljcm90YXNrLWNoZWNrcG9pbnQtYmVmb3JlLWNvbnN0cnVjdGlvbi5odG1sCkBAIC05LDcgKzks
NyBAQAogPG1ldGEgbmFtZT0iaGVscCIgY29udGVudD0iaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdn
Lm9yZy9tdWx0aXBhZ2UvcGFyc2luZy5odG1sI2Fkb3B0aW9uLWFnZW5jeS1hbGdvcml0aG0iPgog
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CiA8
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1
c3RvbS1lbGVtZW50cy9yZXNvdXJjZXMvY3VzdG9tLWVsZW1lbnRzLWhlbHBlcnMuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9jdXN0b20tZWxlbWVudHMtaGVscGVycy5qcyI+
PC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keT4KIDxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2N1c3RvbS1lbGVtZW50cy9yZWFjdGlvbnMtZm9yLXdlYmtp
dC1leHRlbnNpb25zLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2N1c3RvbS1lbGVtZW50cy9yZWFj
dGlvbnMtZm9yLXdlYmtpdC1leHRlbnNpb25zLmh0bWwKaW5kZXggZTIwMGM0YzdhYTA4MmFlM2Jl
ZDM2YmViOWZlMmIwYmY0NDc2ZmUwZi4uNmQwNzZiMmVkMGNmMDI5NWU1ZTEzMDVkYmRmODI4OGUy
MDE1OWY0MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9jdXN0b20tZWxlbWVudHMvcmVh
Y3Rpb25zLWZvci13ZWJraXQtZXh0ZW5zaW9ucy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
Y3VzdG9tLWVsZW1lbnRzL3JlYWN0aW9ucy1mb3Itd2Via2l0LWV4dGVuc2lvbnMuaHRtbApAQCAt
Nyw4ICs3LDggQEAKIDxtZXRhIG5hbWU9ImhlbHAiIGNvbnRlbnQ9Imh0dHBzOi8vZG9tLnNwZWMu
d2hhdHdnLm9yZy8jbm9kZSI+CiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5l
c3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3VzdG9tLWVsZW1lbnRzL3Jlc291cmNlcy9jdXN0b20tZWxlbWVu
dHMtaGVscGVycy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jdXN0b20tZWxlbWVudHMvcmVhY3Rpb25zL3Jlc291cmNlcy9y
ZWFjdGlvbnMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9jdXN0b20tZWxl
bWVudHMtaGVscGVycy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlYWN0
aW9ucy5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keT4KIDxkaXYgaWQ9ImxvZyI+PC9kaXY+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2N1c3RvbS1lbGVtZW50cy9yZXNvdXJjZXMv
Y3VzdG9tLWVsZW1lbnRzLWhlbHBlcnMuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2N1c3RvbS1lbGVt
ZW50cy9yZXNvdXJjZXMvY3VzdG9tLWVsZW1lbnRzLWhlbHBlcnMuanMKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmY3
M2ZlMjBkMGZiZjI1ZWVkMmZiZmVjNTMwZmI1MTZlODNjYzIxNAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL3Jlc291cmNlcy9jdXN0b20tZWxlbWVu
dHMtaGVscGVycy5qcwpAQCAtMCwwICsxLDI2MiBAQAorZnVuY3Rpb24gY3JlYXRlX3dpbmRvd19p
bl90ZXN0KHQsIHNyY2RvYykgeworICBsZXQgcCA9IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7
CisgICAgbGV0IGYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpZnJhbWUnKTsKKyAgICBmLnNy
Y2RvYyA9IHNyY2RvYyA/IHNyY2RvYyA6ICcnOworICAgIGYub25sb2FkID0gKGV2ZW50KSA9PiB7
CisgICAgICBsZXQgdyA9IGYuY29udGVudFdpbmRvdzsKKyAgICAgIHQuYWRkX2NsZWFudXAoKCkg
PT4gZi5yZW1vdmUoKSk7CisgICAgICByZXNvbHZlKHcpOworICAgIH07CisgICAgZG9jdW1lbnQu
Ym9keS5hcHBlbmRDaGlsZChmKTsKKyAgfSk7CisgIHJldHVybiBwOworfQorCitmdW5jdGlvbiB0
ZXN0X3dpdGhfd2luZG93KGYsIG5hbWUsIHNyY2RvYykgeworICBwcm9taXNlX3Rlc3QoKHQpID0+
IHsKKyAgICByZXR1cm4gY3JlYXRlX3dpbmRvd19pbl90ZXN0KHQsIHNyY2RvYykKKyAgICAudGhl
bigodykgPT4geworICAgICAgZih3LCB3LmRvY3VtZW50KTsKKyAgICB9KTsKKyAgfSwgbmFtZSk7
Cit9CisKK2Z1bmN0aW9uIGRlZmluZV9jdXN0b21fZWxlbWVudF9pbl93aW5kb3cod2luZG93LCBu
YW1lLCBvYnNlcnZlZEF0dHJpYnV0ZXMpIHsKKyAgICBsZXQgbG9nID0gW107CisKKyAgICBjbGFz
cyBDdXN0b21FbGVtZW50IGV4dGVuZHMgd2luZG93LkhUTUxFbGVtZW50IHsKKyAgICAgICAgY29u
c3RydWN0b3IoKSB7CisgICAgICAgICAgICBzdXBlcigpOworICAgICAgICAgICAgbG9nLnB1c2go
Y3JlYXRlX2NvbnN0cnVjdG9yX2xvZyh0aGlzKSk7CisgICAgICAgIH0KKyAgICAgICAgYXR0cmli
dXRlQ2hhbmdlZENhbGxiYWNrKC4uLmFyZ3MpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKGNyZWF0
ZV9hdHRyaWJ1dGVfY2hhbmdlZF9jYWxsYmFja19sb2codGhpcywgLi4uYXJncykpOworICAgICAg
ICB9CisgICAgICAgIGNvbm5lY3RlZENhbGxiYWNrKCkgeyBsb2cucHVzaChjcmVhdGVfY29ubmVj
dGVkX2NhbGxiYWNrX2xvZyh0aGlzKSk7IH0KKyAgICAgICAgZGlzY29ubmVjdGVkQ2FsbGJhY2so
KSB7IGxvZy5wdXNoKGNyZWF0ZV9kaXNjb25uZWN0ZWRfY2FsbGJhY2tfbG9nKHRoaXMpKTsgfQor
ICAgICAgICBhZG9wdGVkQ2FsbGJhY2sob2xkRG9jdW1lbnQsIG5ld0RvY3VtZW50KSB7IGxvZy5w
dXNoKHt0eXBlOiAnYWRvcHRlZCcsIGVsZW1lbnQ6IHRoaXMsIG9sZERvY3VtZW50OiBvbGREb2N1
bWVudCwgbmV3RG9jdW1lbnQ6IG5ld0RvY3VtZW50fSk7IH0KKyAgICB9CisgICAgQ3VzdG9tRWxl
bWVudC5vYnNlcnZlZEF0dHJpYnV0ZXMgPSBvYnNlcnZlZEF0dHJpYnV0ZXM7CisKKyAgICB3aW5k
b3cuY3VzdG9tRWxlbWVudHMuZGVmaW5lKG5hbWUsIEN1c3RvbUVsZW1lbnQpOworCisgICAgcmV0
dXJuIHsKKyAgICAgICAgbmFtZTogbmFtZSwKKyAgICAgICAgY2xhc3M6IEN1c3RvbUVsZW1lbnQs
CisgICAgICAgIHRha2VMb2c6IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIGxldCBjdXJyZW50
TG9nID0gbG9nOyBsb2cgPSBbXTsKKyAgICAgICAgICAgIGN1cnJlbnRMb2cudHlwZXMgPSAoKSA9
PiBjdXJyZW50TG9nLm1hcCgoZW50cnkpID0+IGVudHJ5LnR5cGUpOworICAgICAgICAgICAgY3Vy
cmVudExvZy5sYXN0ID0gKCkgPT4gY3VycmVudExvZ1tjdXJyZW50TG9nLmxlbmd0aCAtIDFdOwor
ICAgICAgICAgICAgcmV0dXJuIGN1cnJlbnRMb2c7CisgICAgICAgIH0KKyAgICB9OworfQorCitm
dW5jdGlvbiBjcmVhdGVfY29uc3RydWN0b3JfbG9nKGVsZW1lbnQpIHsKKyAgICByZXR1cm4ge3R5
cGU6ICdjb25zdHJ1Y3RlZCcsIGVsZW1lbnQ6IGVsZW1lbnR9OworfQorCitmdW5jdGlvbiBhc3Nl
cnRfY29uc3RydWN0b3JfbG9nX2VudHJ5KGxvZywgZWxlbWVudCkgeworICAgIGFzc2VydF9lcXVh
bHMobG9nLnR5cGUsICdjb25zdHJ1Y3RlZCcpOworICAgIGFzc2VydF9lcXVhbHMobG9nLmVsZW1l
bnQsIGVsZW1lbnQpOworfQorCitmdW5jdGlvbiBjcmVhdGVfY29ubmVjdGVkX2NhbGxiYWNrX2xv
ZyhlbGVtZW50KSB7CisgICAgcmV0dXJuIHt0eXBlOiAnY29ubmVjdGVkJywgZWxlbWVudDogZWxl
bWVudH07Cit9CisKK2Z1bmN0aW9uIGFzc2VydF9jb25uZWN0ZWRfbG9nX2VudHJ5KGxvZywgZWxl
bWVudCkgeworICAgIGFzc2VydF9lcXVhbHMobG9nLnR5cGUsICdjb25uZWN0ZWQnKTsKKyAgICBh
c3NlcnRfZXF1YWxzKGxvZy5lbGVtZW50LCBlbGVtZW50KTsKK30KKworZnVuY3Rpb24gY3JlYXRl
X2Rpc2Nvbm5lY3RlZF9jYWxsYmFja19sb2coZWxlbWVudCkgeworICAgIHJldHVybiB7dHlwZTog
J2Rpc2Nvbm5lY3RlZCcsIGVsZW1lbnQ6IGVsZW1lbnR9OworfQorCitmdW5jdGlvbiBhc3NlcnRf
ZGlzY29ubmVjdGVkX2xvZ19lbnRyeShsb2csIGVsZW1lbnQpIHsKKyAgICBhc3NlcnRfZXF1YWxz
KGxvZy50eXBlLCAnZGlzY29ubmVjdGVkJyk7CisgICAgYXNzZXJ0X2VxdWFscyhsb2cuZWxlbWVu
dCwgZWxlbWVudCk7Cit9CisKK2Z1bmN0aW9uIGFzc2VydF9hZG9wdGVkX2xvZ19lbnRyeShsb2cs
IGVsZW1lbnQpIHsKKyAgICBhc3NlcnRfZXF1YWxzKGxvZy50eXBlLCAnYWRvcHRlZCcpOworICAg
IGFzc2VydF9lcXVhbHMobG9nLmVsZW1lbnQsIGVsZW1lbnQpOworfQorCitmdW5jdGlvbiBjcmVh
dGVfYWRvcHRlZF9jYWxsYmFja19sb2coZWxlbWVudCkgeworICAgIHJldHVybiB7dHlwZTogJ2Fk
b3B0ZWQnLCBlbGVtZW50OiBlbGVtZW50fTsKK30KKworZnVuY3Rpb24gY3JlYXRlX2F0dHJpYnV0
ZV9jaGFuZ2VkX2NhbGxiYWNrX2xvZyhlbGVtZW50LCBuYW1lLCBvbGRWYWx1ZSwgbmV3VmFsdWUs
IG5hbWVzcGFjZSkgeworICAgIHJldHVybiB7CisgICAgICAgIHR5cGU6ICdhdHRyaWJ1dGVDaGFu
Z2VkJywKKyAgICAgICAgZWxlbWVudDogZWxlbWVudCwKKyAgICAgICAgbmFtZTogbmFtZSwKKyAg
ICAgICAgbmFtZXNwYWNlOiBuYW1lc3BhY2UsCisgICAgICAgIG9sZFZhbHVlOiBvbGRWYWx1ZSwK
KyAgICAgICAgbmV3VmFsdWU6IG5ld1ZhbHVlLAorICAgICAgICBhY3R1YWxWYWx1ZTogZWxlbWVu
dC5nZXRBdHRyaWJ1dGVOUyhuYW1lc3BhY2UsIG5hbWUpCisgICAgfTsKK30KKworZnVuY3Rpb24g
YXNzZXJ0X2F0dHJpYnV0ZV9sb2dfZW50cnkobG9nLCBleHBlY3RlZCkgeworICAgIGFzc2VydF9l
cXVhbHMobG9nLnR5cGUsICdhdHRyaWJ1dGVDaGFuZ2VkJyk7CisgICAgYXNzZXJ0X2VxdWFscyhs
b2cubmFtZSwgZXhwZWN0ZWQubmFtZSk7CisgICAgYXNzZXJ0X2VxdWFscyhsb2cub2xkVmFsdWUs
IGV4cGVjdGVkLm9sZFZhbHVlKTsKKyAgICBhc3NlcnRfZXF1YWxzKGxvZy5uZXdWYWx1ZSwgZXhw
ZWN0ZWQubmV3VmFsdWUpOworICAgIGFzc2VydF9lcXVhbHMobG9nLmFjdHVhbFZhbHVlLCBleHBl
Y3RlZC5uZXdWYWx1ZSk7CisgICAgYXNzZXJ0X2VxdWFscyhsb2cubmFtZXNwYWNlLCBleHBlY3Rl
ZC5uYW1lc3BhY2UpOworfQorCisKK2Z1bmN0aW9uIGRlZmluZV9uZXdfY3VzdG9tX2VsZW1lbnQo
b2JzZXJ2ZWRBdHRyaWJ1dGVzKSB7CisgICAgbGV0IGxvZyA9IFtdOworICAgIGxldCBuYW1lID0g
J2N1c3RvbS1lbGVtZW50LScgKyBkZWZpbmVfbmV3X2N1c3RvbV9lbGVtZW50Ll9lbGVtZW50X251
bWJlcisrOworCisgICAgY2xhc3MgQ3VzdG9tRWxlbWVudCBleHRlbmRzIEhUTUxFbGVtZW50IHsK
KyAgICAgICAgY29uc3RydWN0b3IoKSB7CisgICAgICAgICAgICBzdXBlcigpOworICAgICAgICAg
ICAgbG9nLnB1c2goe3R5cGU6ICdjb25zdHJ1Y3RlZCcsIGVsZW1lbnQ6IHRoaXN9KTsKKyAgICAg
ICAgfQorICAgICAgICBhdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2soLi4uYXJncykgeworICAgICAg
ICAgICAgbG9nLnB1c2goY3JlYXRlX2F0dHJpYnV0ZV9jaGFuZ2VkX2NhbGxiYWNrX2xvZyh0aGlz
LCAuLi5hcmdzKSk7CisgICAgICAgIH0KKyAgICAgICAgY29ubmVjdGVkQ2FsbGJhY2soKSB7IGxv
Zy5wdXNoKHt0eXBlOiAnY29ubmVjdGVkJywgZWxlbWVudDogdGhpc30pOyB9CisgICAgICAgIGRp
c2Nvbm5lY3RlZENhbGxiYWNrKCkgeyBsb2cucHVzaCh7dHlwZTogJ2Rpc2Nvbm5lY3RlZCcsIGVs
ZW1lbnQ6IHRoaXN9KTsgfQorICAgICAgICBhZG9wdGVkQ2FsbGJhY2sob2xkRG9jdW1lbnQsIG5l
d0RvY3VtZW50KSB7IGxvZy5wdXNoKHt0eXBlOiAnYWRvcHRlZCcsIGVsZW1lbnQ6IHRoaXMsIG9s
ZERvY3VtZW50OiBvbGREb2N1bWVudCwgbmV3RG9jdW1lbnQ6IG5ld0RvY3VtZW50fSk7IH0KKyAg
ICB9CisgICAgQ3VzdG9tRWxlbWVudC5vYnNlcnZlZEF0dHJpYnV0ZXMgPSBvYnNlcnZlZEF0dHJp
YnV0ZXM7CisKKyAgICBjdXN0b21FbGVtZW50cy5kZWZpbmUobmFtZSwgQ3VzdG9tRWxlbWVudCk7
CisKKyAgICByZXR1cm4geworICAgICAgICBuYW1lOiBuYW1lLAorICAgICAgICBjbGFzczogQ3Vz
dG9tRWxlbWVudCwKKyAgICAgICAgdGFrZUxvZzogZnVuY3Rpb24gKCkgeworICAgICAgICAgICAg
bGV0IGN1cnJlbnRMb2cgPSBsb2c7IGxvZyA9IFtdOworICAgICAgICAgICAgY3VycmVudExvZy50
eXBlcyA9ICgpID0+IGN1cnJlbnRMb2cubWFwKChlbnRyeSkgPT4gZW50cnkudHlwZSk7CisgICAg
ICAgICAgICBjdXJyZW50TG9nLmxhc3QgPSAoKSA9PiBjdXJyZW50TG9nW2N1cnJlbnRMb2cubGVu
Z3RoIC0gMV07CisgICAgICAgICAgICByZXR1cm4gY3VycmVudExvZzsKKyAgICAgICAgfQorICAg
IH07Cit9CitkZWZpbmVfbmV3X2N1c3RvbV9lbGVtZW50Ll9lbGVtZW50X251bWJlciA9IDE7CisK
K2Z1bmN0aW9uIGRlZmluZV9idWlsZF9pbl9jdXN0b21fZWxlbWVudChvYnNlcnZlZEF0dHJpYnV0
ZXMsIGV4dGVuZGVkRWxlbWVudCwgZXh0ZW5kc09wdGlvbikgeworICAgIGxldCBsb2cgPSBbXTsK
KyAgICBsZXQgbmFtZSA9ICdjdXN0b20tZWxlbWVudC0nICsgZGVmaW5lX2J1aWxkX2luX2N1c3Rv
bV9lbGVtZW50Ll9lbGVtZW50X251bWJlcisrOworCisgICAgY2xhc3MgQ3VzdG9tRWxlbWVudCBl
eHRlbmRzIGV4dGVuZGVkRWxlbWVudCB7CisgICAgICAgIGNvbnN0cnVjdG9yKCkgeworICAgICAg
ICAgICAgc3VwZXIoKTsKKyAgICAgICAgICAgIGxvZy5wdXNoKHt0eXBlOiAnY29uc3RydWN0ZWQn
LCBlbGVtZW50OiB0aGlzfSk7CisgICAgICAgIH0KKyAgICAgICAgYXR0cmlidXRlQ2hhbmdlZENh
bGxiYWNrKC4uLmFyZ3MpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKGNyZWF0ZV9hdHRyaWJ1dGVf
Y2hhbmdlZF9jYWxsYmFja19sb2codGhpcywgLi4uYXJncykpOworICAgICAgICB9CisgICAgICAg
IGNvbm5lY3RlZENhbGxiYWNrKCkgeyBsb2cucHVzaCh7dHlwZTogJ2Nvbm5lY3RlZCcsIGVsZW1l
bnQ6IHRoaXN9KTsgfQorICAgICAgICBkaXNjb25uZWN0ZWRDYWxsYmFjaygpIHsgbG9nLnB1c2go
e3R5cGU6ICdkaXNjb25uZWN0ZWQnLCBlbGVtZW50OiB0aGlzfSk7IH0KKyAgICAgICAgYWRvcHRl
ZENhbGxiYWNrKG9sZERvY3VtZW50LCBuZXdEb2N1bWVudCkgeyBsb2cucHVzaCh7dHlwZTogJ2Fk
b3B0ZWQnLCBlbGVtZW50OiB0aGlzLCBvbGREb2N1bWVudDogb2xkRG9jdW1lbnQsIG5ld0RvY3Vt
ZW50OiBuZXdEb2N1bWVudH0pOyB9CisgICAgfQorICAgIEN1c3RvbUVsZW1lbnQub2JzZXJ2ZWRB
dHRyaWJ1dGVzID0gb2JzZXJ2ZWRBdHRyaWJ1dGVzOworICAgIGN1c3RvbUVsZW1lbnRzLmRlZmlu
ZShuYW1lLCBDdXN0b21FbGVtZW50LCB7IGV4dGVuZHM6IGV4dGVuZHNPcHRpb259KTsKKworICAg
IHJldHVybiB7CisgICAgICAgIG5hbWU6IG5hbWUsCisgICAgICAgIGNsYXNzOiBDdXN0b21FbGVt
ZW50LAorICAgICAgICB0YWtlTG9nOiBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICBsZXQgY3Vy
cmVudExvZyA9IGxvZzsgbG9nID0gW107CisgICAgICAgICAgICBjdXJyZW50TG9nLnR5cGVzID0g
KCkgPT4gY3VycmVudExvZy5tYXAoKGVudHJ5KSA9PiBlbnRyeS50eXBlKTsKKyAgICAgICAgICAg
IGN1cnJlbnRMb2cubGFzdCA9ICgpID0+IGN1cnJlbnRMb2dbY3VycmVudExvZy5sZW5ndGggLSAx
XTsKKyAgICAgICAgICAgIHJldHVybiBjdXJyZW50TG9nOworICAgICAgICB9CisgICAgfTsKK30K
K2RlZmluZV9idWlsZF9pbl9jdXN0b21fZWxlbWVudC5fZWxlbWVudF9udW1iZXIgPSAxOworCitm
dW5jdGlvbiBkb2N1bWVudF90eXBlcygpIHsKKyAgICByZXR1cm4gWworICAgICAgICB7CisgICAg
ICAgICAgICBuYW1lOiAndGhlIGRvY3VtZW50JywKKyAgICAgICAgICAgIGNyZWF0ZTogZnVuY3Rp
b24gKCkgeyByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGRvY3VtZW50KTsgfSwKKyAgICAgICAgICAg
IGlzT3duZXI6IHRydWUsCisgICAgICAgICAgICBoYXNCcm93c2luZ0NvbnRleHQ6IHRydWUsCisg
ICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgIG5hbWU6ICd0aGUgZG9jdW1lbnQgb2Yg
dGhlIHRlbXBsYXRlIGVsZW1lbnRzJywKKyAgICAgICAgICAgIGNyZWF0ZTogZnVuY3Rpb24gKCkg
eworICAgICAgICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSkg
eworICAgICAgICAgICAgICAgICAgICB2YXIgdGVtcGxhdGUgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50TlMoJ2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnLCAndGVtcGxhdGUnKTsKKyAgICAg
ICAgICAgICAgICAgICAgdmFyIGRvYyA9IHRlbXBsYXRlLmNvbnRlbnQub3duZXJEb2N1bWVudDsK
KyAgICAgICAgICAgICAgICAgICAgaWYgKCFkb2MuZG9jdW1lbnRFbGVtZW50KQorICAgICAgICAg
ICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKGRvYy5jcmVhdGVFbGVtZW50KCdodG1sJykp
OworICAgICAgICAgICAgICAgICAgICByZXNvbHZlKGRvYyk7CisgICAgICAgICAgICAgICAgfSk7
CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgaGFzQnJvd3NpbmdDb250ZXh0OiBmYWxzZSwK
KyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgbmFtZTogJ2EgbmV3IGRvY3VtZW50
JywKKyAgICAgICAgICAgIGNyZWF0ZTogZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAgIHJl
dHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSkgeworICAgICAgICAgICAgICAgICAg
ICB2YXIgZG9jID0gbmV3IERvY3VtZW50KCk7CisgICAgICAgICAgICAgICAgICAgIGRvYy5hcHBl
bmRDaGlsZChkb2MuY3JlYXRlRWxlbWVudCgnaHRtbCcpKTsKKyAgICAgICAgICAgICAgICAgICAg
cmVzb2x2ZShkb2MpOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfSwKKyAgICAg
ICAgICAgIGhhc0Jyb3dzaW5nQ29udGV4dDogZmFsc2UsCisgICAgICAgIH0sCisgICAgICAgIHsK
KyAgICAgICAgICAgIG5hbWU6ICdhIGNsb25lZCBkb2N1bWVudCcsCisgICAgICAgICAgICBjcmVh
dGU6IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVu
Y3Rpb24gKHJlc29sdmUpIHsKKyAgICAgICAgICAgICAgICAgICAgdmFyIGRvYyA9IGRvY3VtZW50
LmNsb25lTm9kZShmYWxzZSk7CisgICAgICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZChk
b2MuY3JlYXRlRWxlbWVudCgnaHRtbCcpKTsKKyAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShk
b2MpOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIGhh
c0Jyb3dzaW5nQ29udGV4dDogZmFsc2UsCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAg
ICAgIG5hbWU6ICdhIGRvY3VtZW50IGNyZWF0ZWQgYnkgY3JlYXRlSFRNTERvY3VtZW50JywKKyAg
ICAgICAgICAgIGNyZWF0ZTogZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAgIHJldHVybiBQ
cm9taXNlLnJlc29sdmUoZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlSFRNTERvY3VtZW50
KCkpOworICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIGhhc0Jyb3dzaW5nQ29udGV4dDogZmFs
c2UsCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgIG5hbWU6ICdhbiBIVE1MIGRv
Y3VtZW50IGNyZWF0ZWQgYnkgY3JlYXRlRG9jdW1lbnQnLAorICAgICAgICAgICAgY3JlYXRlOiBm
dW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShkb2N1
bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVEb2N1bWVudCgnaHR0cDovL3d3dy53My5vcmcvMTk5
OS94aHRtbCcsICdodG1sJywgbnVsbCkpOworICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIGhh
c0Jyb3dzaW5nQ29udGV4dDogZmFsc2UsCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAg
ICAgIG5hbWU6ICd0aGUgZG9jdW1lbnQgb2YgYW4gaWZyYW1lJywKKyAgICAgICAgICAgIGNyZWF0
ZTogZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5j
dGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7CisgICAgICAgICAgICAgICAgICAgIHZhciBpZnJhbWUg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpZnJhbWUnKTsKKyAgICAgICAgICAgICAgICAgICAg
aWZyYW1lLm9ubG9hZCA9IGZ1bmN0aW9uICgpIHsgcmVzb2x2ZShpZnJhbWUuY29udGVudERvY3Vt
ZW50KTsgfQorICAgICAgICAgICAgICAgICAgICBpZnJhbWUub25lcnJvciA9IGZ1bmN0aW9uICgp
IHsgcmVqZWN0KCdGYWlsZWQgdG8gbG9hZCBhbiBlbXB0eSBpZnJhbWUnKTsgfQorICAgICAgICAg
ICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGlmcmFtZSk7CisgICAgICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgaGFzQnJvd3NpbmdDb250ZXh0
OiB0cnVlLAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICBuYW1lOiAnYW4gSFRN
TCBkb2N1bWVudCBmZXRjaGVkIGJ5IFhIUicsCisgICAgICAgICAgICBjcmVhdGU6IGZ1bmN0aW9u
ICgpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29s
dmUsIHJlamVjdCkgeworICAgICAgICAgICAgICAgICAgICB2YXIgeGhyID0gbmV3IFhNTEh0dHBS
ZXF1ZXN0KCk7CisgICAgICAgICAgICAgICAgICAgIHhoci5vcGVuKCdHRVQnLCAncmVzb3VyY2Vz
L2VtcHR5LWh0bWwtZG9jdW1lbnQuaHRtbCcpOworICAgICAgICAgICAgICAgICAgICB4aHIub3Zl
cnJpZGVNaW1lVHlwZSgndGV4dC94bWwnKTsKKyAgICAgICAgICAgICAgICAgICAgeGhyLm9ubG9h
ZCA9IGZ1bmN0aW9uICgpIHsgcmVzb2x2ZSh4aHIucmVzcG9uc2VYTUwpOyB9CisgICAgICAgICAg
ICAgICAgICAgIHhoci5vbmVycm9yID0gZnVuY3Rpb24gKCkgeyByZWplY3QoJ0ZhaWxlZCB0byBm
ZXRjaCB0aGUgZG9jdW1lbnQnKTsgfQorICAgICAgICAgICAgICAgICAgICB4aHIuc2VuZCgpOwor
ICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIGhhc0Jyb3dz
aW5nQ29udGV4dDogZmFsc2UsCisgICAgICAgIH0KKyAgICBdOworfQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9jdXN0b20tZWxlbWVudHMvcmVzb3VyY2VzL3JlYWN0aW9ucy5qcyBiL0xh
eW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL3Jlc291cmNlcy9yZWFjdGlvbnMuanMKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNDNjZTRmZDdhZDgzZWM0MDY2YWJmZmEyOGIzNTgxZjE2ODVkMWY5MwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL3Jlc291cmNlcy9y
ZWFjdGlvbnMuanMKQEAgLTAsMCArMSwzNjEgQEAKKworbGV0IHRlc3ROdW1iZXIgPSAxOworCitm
dW5jdGlvbiB0ZXN0Tm9kZUNvbm5lY3Rvcih0ZXN0RnVuY3Rpb24sIG5hbWUpIHsKKyAgICBsZXQg
Y29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgY29udGFpbmVy
LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpKTsKKyAgICBkb2N1bWVu
dC5ib2R5LmFwcGVuZENoaWxkKGNvbnRhaW5lcik7CisKKyAgICB0ZXN0KGZ1bmN0aW9uICgpIHsK
KyAgICAgICAgdmFyIGVsZW1lbnQgPSBkZWZpbmVfbmV3X2N1c3RvbV9lbGVtZW50KCk7CisgICAg
ICAgIHZhciBpbnN0YW5jZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoZWxlbWVudC5uYW1lKTsK
KyAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhlbGVtZW50LnRha2VMb2coKS50eXBlcygpLCBb
J2NvbnN0cnVjdGVkJ10pOworICAgICAgICB0ZXN0RnVuY3Rpb24oY29udGFpbmVyLCBpbnN0YW5j
ZSk7CisgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoZWxlbWVudC50YWtlTG9nKCkudHlwZXMo
KSwgWydjb25uZWN0ZWQnXSk7CisgICAgfSwgbmFtZSArICcgbXVzdCBlbnF1ZXVlIGEgY29ubmVj
dGVkIHJlYWN0aW9uJyk7CisKKyAgICB0ZXN0KGZ1bmN0aW9uICgpIHsKKyAgICAgICAgdmFyIGVs
ZW1lbnQgPSBkZWZpbmVfbmV3X2N1c3RvbV9lbGVtZW50KCk7CisgICAgICAgIHZhciBpbnN0YW5j
ZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoZWxlbWVudC5uYW1lKTsKKyAgICAgICAgYXNzZXJ0
X2FycmF5X2VxdWFscyhlbGVtZW50LnRha2VMb2coKS50eXBlcygpLCBbJ2NvbnN0cnVjdGVkJ10p
OworICAgICAgICB2YXIgbmV3RG9jID0gZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlSFRN
TERvY3VtZW50KCk7CisgICAgICAgIHRlc3RGdW5jdGlvbihjb250YWluZXIsIGluc3RhbmNlKTsK
KyAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhlbGVtZW50LnRha2VMb2coKS50eXBlcygpLCBb
J2Nvbm5lY3RlZCddKTsKKyAgICAgICAgdGVzdEZ1bmN0aW9uKG5ld0RvYy5kb2N1bWVudEVsZW1l
bnQsIGluc3RhbmNlKTsKKyAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhlbGVtZW50LnRha2VM
b2coKS50eXBlcygpLCBbJ2Rpc2Nvbm5lY3RlZCcsICdhZG9wdGVkJywgJ2Nvbm5lY3RlZCddKTsK
KyAgICB9LCBuYW1lICsgJyBtdXN0IGVucXVldWUgYSBkaXNjb25uZWN0ZWQgcmVhY3Rpb24sIGFu
IGFkb3B0ZWQgcmVhY3Rpb24sIGFuZCBhIGNvbm5lY3RlZCByZWFjdGlvbiB3aGVuIHRoZSBjdXN0
b20gZWxlbWVudCB3YXMgaW4gYW5vdGhlciBkb2N1bWVudCcpOworCisgICAgY29udGFpbmVyLnBh
cmVudE5vZGUucmVtb3ZlQ2hpbGQoY29udGFpbmVyKTsKK30KKworZnVuY3Rpb24gdGVzdE5vZGVE
aXNjb25uZWN0b3IodGVzdEZ1bmN0aW9uLCBuYW1lKSB7CisgICAgbGV0IGNvbnRhaW5lciA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZChk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSk7CisgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRD
aGlsZChjb250YWluZXIpOworIAorICAgIHRlc3QoZnVuY3Rpb24gKCkgeworICAgICAgICB2YXIg
ZWxlbWVudCA9IGRlZmluZV9uZXdfY3VzdG9tX2VsZW1lbnQoKTsKKyAgICAgICAgdmFyIGluc3Rh
bmNlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChlbGVtZW50Lm5hbWUpOworICAgICAgICBhc3Nl
cnRfYXJyYXlfZXF1YWxzKGVsZW1lbnQudGFrZUxvZygpLnR5cGVzKCksIFsnY29uc3RydWN0ZWQn
XSk7CisgICAgICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZChpbnN0YW5jZSk7CisgICAgICAgIGFz
c2VydF9hcnJheV9lcXVhbHMoZWxlbWVudC50YWtlTG9nKCkudHlwZXMoKSwgWydjb25uZWN0ZWQn
XSk7CisgICAgICAgIHRlc3RGdW5jdGlvbihpbnN0YW5jZSwgd2luZG93KTsKKyAgICAgICAgYXNz
ZXJ0X2FycmF5X2VxdWFscyhlbGVtZW50LnRha2VMb2coKS50eXBlcygpLCBbJ2Rpc2Nvbm5lY3Rl
ZCddKTsKKyAgICB9LCBuYW1lICsgJyBtdXN0IGVucXVldWUgYSBkaXNjb25uZWN0ZWQgcmVhY3Rp
b24nKTsKKworICAgIGNvbnRhaW5lci5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGNvbnRhaW5lcik7
Cit9CisKK2Z1bmN0aW9uIHRlc3RJbnNlcnRpbmdNYXJrdXAodGVzdEZ1bmN0aW9uLCBuYW1lKSB7
CisgICAgbGV0IGNvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAg
IGNvbnRhaW5lci5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSk7Cisg
ICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChjb250YWluZXIpOworCisgICAgdGVzdChmdW5j
dGlvbiAoKSB7CisgICAgICAgIHZhciBlbGVtZW50ID0gZGVmaW5lX25ld19jdXN0b21fZWxlbWVu
dCgpOworICAgICAgICB0ZXN0RnVuY3Rpb24oY29udGFpbmVyLCBgPCR7ZWxlbWVudC5uYW1lfT48
LyR7ZWxlbWVudC5uYW1lfT5gKTsKKyAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhlbGVtZW50
LnRha2VMb2coKS50eXBlcygpLCBbJ2NvbnN0cnVjdGVkJywgJ2Nvbm5lY3RlZCddKTsKKyAgICB9
LCBuYW1lICsgJyBtdXN0IGVucXVldWUgYSBjb25uZWN0ZWQgcmVhY3Rpb24gZm9yIGEgbmV3bHkg
Y29uc3RydWN0ZWQgY3VzdG9tIGVsZW1lbnQnKTsKKworICAgIHRlc3QoZnVuY3Rpb24gKCkgewor
ICAgICAgICB2YXIgZWxlbWVudCA9IGRlZmluZV9uZXdfY3VzdG9tX2VsZW1lbnQoWyd0aXRsZSdd
KTsKKyAgICAgICAgdGVzdEZ1bmN0aW9uKGNvbnRhaW5lciwgYDwke2VsZW1lbnQubmFtZX0gaWQ9
ImhlbGxvIiB0aXRsZT0iaGkiPjwvJHtlbGVtZW50Lm5hbWV9PmApOworICAgICAgICB2YXIgbG9n
RW50cmllcyA9IGVsZW1lbnQudGFrZUxvZygpOworICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxz
KGxvZ0VudHJpZXMudHlwZXMoKSwgWydjb25zdHJ1Y3RlZCcsICdhdHRyaWJ1dGVDaGFuZ2VkJywg
J2Nvbm5lY3RlZCddKTsKKyAgICAgICAgYXNzZXJ0X2F0dHJpYnV0ZV9sb2dfZW50cnkobG9nRW50
cmllc1sxXSwge25hbWU6ICd0aXRsZScsIG9sZFZhbHVlOiBudWxsLCBuZXdWYWx1ZTogJ2hpJywg
bmFtZXNwYWNlOiBudWxsfSk7CisgICAgfSwgbmFtZSArICcgbXVzdCBlbnF1ZXVlIGEgYXR0cmli
dXRlQ2hhbmdlZCByZWFjdGlvbiBmb3IgYSBuZXdseSBjb25zdHJ1Y3RlZCBjdXN0b20gZWxlbWVu
dCcpOworCisgICAgY29udGFpbmVyLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoY29udGFpbmVyKTsK
K30KKworZnVuY3Rpb24gdGVzdFBhcnNpbmdNYXJrdXAodGVzdEZ1bmN0aW9uLCBuYW1lKSB7Cisg
ICAgdGVzdChmdW5jdGlvbiAoKSB7CisgICAgICAgIHZhciBlbGVtZW50ID0gZGVmaW5lX25ld19j
dXN0b21fZWxlbWVudChbJ2lkJ10pOworICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGVsZW1l
bnQudGFrZUxvZygpLnR5cGVzKCksIFtdKTsKKyAgICAgICAgdmFyIGluc3RhbmNlID0gdGVzdEZ1
bmN0aW9uKGRvY3VtZW50LCBgPCR7ZWxlbWVudC5uYW1lfSBpZD0iaGVsbG8iIGNsYXNzPSJmb28i
PjwvJHtlbGVtZW50Lm5hbWV9PmApOworICAgICAgICBhc3NlcnRfZXF1YWxzKE9iamVjdC5nZXRQ
cm90b3R5cGVPZihpbnN0YW5jZS5xdWVyeVNlbGVjdG9yKGVsZW1lbnQubmFtZSkpLCBlbGVtZW50
LmNsYXNzLnByb3RvdHlwZSk7CisgICAgICAgIHZhciBsb2dFbnRyaWVzID0gZWxlbWVudC50YWtl
TG9nKCk7CisgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMobG9nRW50cmllcy50eXBlcygpLCBb
J2NvbnN0cnVjdGVkJywgJ2F0dHJpYnV0ZUNoYW5nZWQnXSk7CisgICAgICAgIGFzc2VydF9hdHRy
aWJ1dGVfbG9nX2VudHJ5KGxvZ0VudHJpZXNbMV0sIHtuYW1lOiAnaWQnLCBvbGRWYWx1ZTogbnVs
bCwgbmV3VmFsdWU6ICdoZWxsbycsIG5hbWVzcGFjZTogbnVsbH0pOworICAgIH0sIG5hbWUgKyAn
IG11c3QgY29uc3RydWN0IGEgY3VzdG9tIGVsZW1lbnQnKTsKK30KKworZnVuY3Rpb24gdGVzdENs
b25lcih0ZXN0RnVuY3Rpb24sIG5hbWUpIHsKKyAgICBsZXQgY29udGFpbmVyID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgY29udGFpbmVyLmFwcGVuZENoaWxkKGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoJ2RpdicpKTsKKyAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGNv
bnRhaW5lcik7CisKKyAgICB0ZXN0KGZ1bmN0aW9uICgpIHsKKyAgICAgICAgdmFyIGVsZW1lbnQg
PSBkZWZpbmVfbmV3X2N1c3RvbV9lbGVtZW50KFsnaWQnXSk7CisgICAgICAgIHZhciBpbnN0YW5j
ZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoZWxlbWVudC5uYW1lKTsKKyAgICAgICAgY29udGFp
bmVyLmFwcGVuZENoaWxkKGluc3RhbmNlKTsKKworICAgICAgICBpbnN0YW5jZS5zZXRBdHRyaWJ1
dGUoJ2lkJywgJ2ZvbycpOworICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGVsZW1lbnQudGFr
ZUxvZygpLnR5cGVzKCksIFsnY29uc3RydWN0ZWQnLCAnY29ubmVjdGVkJywgJ2F0dHJpYnV0ZUNo
YW5nZWQnXSk7CisgICAgICAgIHZhciBuZXdJbnN0YW5jZSA9IHRlc3RGdW5jdGlvbihpbnN0YW5j
ZSk7CisgICAgICAgIHZhciBsb2dFbnRyaWVzID0gZWxlbWVudC50YWtlTG9nKCk7CisgICAgICAg
IGFzc2VydF9hcnJheV9lcXVhbHMobG9nRW50cmllcy50eXBlcygpLCBbJ2NvbnN0cnVjdGVkJywg
J2F0dHJpYnV0ZUNoYW5nZWQnXSk7CisgICAgICAgIGFzc2VydF9hdHRyaWJ1dGVfbG9nX2VudHJ5
KGxvZ0VudHJpZXMubGFzdCgpLCB7bmFtZTogJ2lkJywgb2xkVmFsdWU6IG51bGwsIG5ld1ZhbHVl
OiAnZm9vJywgbmFtZXNwYWNlOiBudWxsfSk7CisgICAgfSwgbmFtZSArICcgbXVzdCBlbnF1ZXVl
IGFuIGF0dHJpYnV0ZUNoYW5nZWQgcmVhY3Rpb24gd2hlbiBjbG9uaW5nIGFuIGVsZW1lbnQgd2l0
aCBhbiBvYnNlcnZlZCBhdHRyaWJ1dGUnKTsKKworICAgIHRlc3QoZnVuY3Rpb24gKCkgeworICAg
ICAgICB2YXIgZWxlbWVudCA9IGRlZmluZV9uZXdfY3VzdG9tX2VsZW1lbnQoWydpZCddKTsKKyAg
ICAgICAgdmFyIGluc3RhbmNlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChlbGVtZW50Lm5hbWUp
OworICAgICAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQoaW5zdGFuY2UpOworCisgICAgICAgIGlu
c3RhbmNlLnNldEF0dHJpYnV0ZSgnbGFuZycsICdlbicpOworICAgICAgICBhc3NlcnRfYXJyYXlf
ZXF1YWxzKGVsZW1lbnQudGFrZUxvZygpLnR5cGVzKCksIFsnY29uc3RydWN0ZWQnLCAnY29ubmVj
dGVkJ10pOworICAgICAgICB2YXIgbmV3SW5zdGFuY2UgPSB0ZXN0RnVuY3Rpb24oaW5zdGFuY2Up
OworICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGVsZW1lbnQudGFrZUxvZygpLnR5cGVzKCks
IFsnY29uc3RydWN0ZWQnXSk7CisgICAgfSwgbmFtZSArICcgbXVzdCBub3QgZW5xdWV1ZSBhbiBh
dHRyaWJ1dGVDaGFuZ2VkIHJlYWN0aW9uIHdoZW4gY2xvbmluZyBhbiBlbGVtZW50IHdpdGggYW4g
dW5vYnNlcnZlZCBhdHRyaWJ1dGUnKTsKKworICAgIHRlc3QoZnVuY3Rpb24gKCkgeworICAgICAg
ICB2YXIgZWxlbWVudCA9IGRlZmluZV9uZXdfY3VzdG9tX2VsZW1lbnQoWyd0aXRsZScsICdjbGFz
cyddKTsKKyAgICAgICAgdmFyIGluc3RhbmNlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChlbGVt
ZW50Lm5hbWUpOworICAgICAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQoaW5zdGFuY2UpOworCisg
ICAgICAgIGluc3RhbmNlLnNldEF0dHJpYnV0ZSgnbGFuZycsICdlbicpOworICAgICAgICBpbnN0
YW5jZS5jbGFzc05hbWUgPSAnZm9vJzsKKyAgICAgICAgaW5zdGFuY2Uuc2V0QXR0cmlidXRlKCd0
aXRsZScsICdoZWxsbyB3b3JsZCcpOworICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGVsZW1l
bnQudGFrZUxvZygpLnR5cGVzKCksIFsnY29uc3RydWN0ZWQnLCAnY29ubmVjdGVkJywgJ2F0dHJp
YnV0ZUNoYW5nZWQnLCAnYXR0cmlidXRlQ2hhbmdlZCddKTsKKyAgICAgICAgdmFyIG5ld0luc3Rh
bmNlID0gdGVzdEZ1bmN0aW9uKGluc3RhbmNlKTsKKyAgICAgICAgdmFyIGxvZ0VudHJpZXMgPSBl
bGVtZW50LnRha2VMb2coKTsKKyAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2dFbnRyaWVz
LnR5cGVzKCksIFsnY29uc3RydWN0ZWQnLCAnYXR0cmlidXRlQ2hhbmdlZCcsICdhdHRyaWJ1dGVD
aGFuZ2VkJ10pOworICAgICAgICBhc3NlcnRfYXR0cmlidXRlX2xvZ19lbnRyeShsb2dFbnRyaWVz
WzFdLCB7bmFtZTogJ2NsYXNzJywgb2xkVmFsdWU6IG51bGwsIG5ld1ZhbHVlOiAnZm9vJywgbmFt
ZXNwYWNlOiBudWxsfSk7CisgICAgICAgIGFzc2VydF9hdHRyaWJ1dGVfbG9nX2VudHJ5KGxvZ0Vu
dHJpZXNbMl0sIHtuYW1lOiAndGl0bGUnLCBvbGRWYWx1ZTogbnVsbCwgbmV3VmFsdWU6ICdoZWxs
byB3b3JsZCcsIG5hbWVzcGFjZTogbnVsbH0pOworICAgIH0sIG5hbWUgKyAnIG11c3QgZW5xdWV1
ZSBhbiBhdHRyaWJ1dGVDaGFuZ2VkIHJlYWN0aW9uIHdoZW4gY2xvbmluZyBhbiBlbGVtZW50IG9u
bHkgZm9yIG9ic2VydmVkIGF0dHJpYnV0ZXMnKTsKK30KKworZnVuY3Rpb24gdGVzdFJlZmxlY3RB
dHRyaWJ1dGVXaXRoQ29udGVudFZhbHVlcyhqc0F0dHJpYnV0ZU5hbWUsIGNvbnRlbnRBdHRyaWJ1
dGVOYW1lLCB2YWxpZFZhbHVlMSwgY29udGVudFZhbHVlMSwgdmFsaWRWYWx1ZTIsIGNvbnRlbnRW
YWx1ZTIsIG5hbWUpIHsKKyAgICB0ZXN0KGZ1bmN0aW9uICgpIHsKKyAgICAgICAgdmFyIGVsZW1l
bnQgPSBkZWZpbmVfbmV3X2N1c3RvbV9lbGVtZW50KFtjb250ZW50QXR0cmlidXRlTmFtZV0pOwor
ICAgICAgICB2YXIgaW5zdGFuY2UgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KGVsZW1lbnQubmFt
ZSk7CisgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoZWxlbWVudC50YWtlTG9nKCkudHlwZXMo
KSwgWydjb25zdHJ1Y3RlZCddKTsKKyAgICAgICAgaW5zdGFuY2VbanNBdHRyaWJ1dGVOYW1lXSA9
IHZhbGlkVmFsdWUxOworICAgICAgICB2YXIgbG9nRW50cmllcyA9IGVsZW1lbnQudGFrZUxvZygp
OworICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ0VudHJpZXMudHlwZXMoKSwgWydhdHRy
aWJ1dGVDaGFuZ2VkJ10pOworCisgICAgICAgIGFzc2VydF9hdHRyaWJ1dGVfbG9nX2VudHJ5KGxv
Z0VudHJpZXMubGFzdCgpLCB7bmFtZTogY29udGVudEF0dHJpYnV0ZU5hbWUsIG9sZFZhbHVlOiBu
dWxsLCBuZXdWYWx1ZTogY29udGVudFZhbHVlMSwgbmFtZXNwYWNlOiBudWxsfSk7CisgICAgfSwg
bmFtZSArICcgbXVzdCBlbnF1ZXVlIGFuIGF0dHJpYnV0ZUNoYW5nZWQgcmVhY3Rpb24gd2hlbiBh
ZGRpbmcgJyArIGNvbnRlbnRBdHRyaWJ1dGVOYW1lICsgJyBjb250ZW50IGF0dHJpYnV0ZScpOwor
CisgICAgdGVzdChmdW5jdGlvbiAoKSB7CisgICAgICAgIHZhciBlbGVtZW50ID0gZGVmaW5lX25l
d19jdXN0b21fZWxlbWVudChbY29udGVudEF0dHJpYnV0ZU5hbWVdKTsKKyAgICAgICAgdmFyIGlu
c3RhbmNlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChlbGVtZW50Lm5hbWUpOworICAgICAgICBp
bnN0YW5jZVtqc0F0dHJpYnV0ZU5hbWVdID0gdmFsaWRWYWx1ZTE7CisgICAgICAgIGFzc2VydF9h
cnJheV9lcXVhbHMoZWxlbWVudC50YWtlTG9nKCkudHlwZXMoKSwgWydjb25zdHJ1Y3RlZCcsICdh
dHRyaWJ1dGVDaGFuZ2VkJ10pOworICAgICAgICBpbnN0YW5jZVtqc0F0dHJpYnV0ZU5hbWVdID0g
dmFsaWRWYWx1ZTI7CisgICAgICAgIHZhciBsb2dFbnRyaWVzID0gZWxlbWVudC50YWtlTG9nKCk7
CisgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMobG9nRW50cmllcy50eXBlcygpLCBbJ2F0dHJp
YnV0ZUNoYW5nZWQnXSk7CisgICAgICAgIGFzc2VydF9hdHRyaWJ1dGVfbG9nX2VudHJ5KGxvZ0Vu
dHJpZXMubGFzdCgpLCB7bmFtZTogY29udGVudEF0dHJpYnV0ZU5hbWUsIG9sZFZhbHVlOiBjb250
ZW50VmFsdWUxLCBuZXdWYWx1ZTogY29udGVudFZhbHVlMiwgbmFtZXNwYWNlOiBudWxsfSk7Cisg
ICAgfSwgbmFtZSArICcgbXVzdCBlbnF1ZXVlIGFuIGF0dHJpYnV0ZUNoYW5nZWQgcmVhY3Rpb24g
d2hlbiByZXBsYWNpbmcgYW4gZXhpc3RpbmcgYXR0cmlidXRlJyk7Cit9CisKK2Z1bmN0aW9uIHRl
c3RSZWZsZWN0QXR0cmlidXRlKGpzQXR0cmlidXRlTmFtZSwgY29udGVudEF0dHJpYnV0ZU5hbWUs
IHZhbGlkVmFsdWUxLCB2YWxpZFZhbHVlMiwgbmFtZSkgeworICAgIHRlc3RSZWZsZWN0QXR0cmli
dXRlV2l0aENvbnRlbnRWYWx1ZXMoanNBdHRyaWJ1dGVOYW1lLCBjb250ZW50QXR0cmlidXRlTmFt
ZSwgdmFsaWRWYWx1ZTEsIHZhbGlkVmFsdWUxLCB2YWxpZFZhbHVlMiwgdmFsaWRWYWx1ZTIsIG5h
bWUpOworfQorCitmdW5jdGlvbiB0ZXN0UmVmbGVjdEJvb2xlYW5BdHRyaWJ1dGUoanNBdHRyaWJ1
dGVOYW1lLCBjb250ZW50QXR0cmlidXRlTmFtZSwgbmFtZSkgeworICAgIHRlc3RSZWZsZWN0QXR0
cmlidXRlV2l0aENvbnRlbnRWYWx1ZXMoanNBdHRyaWJ1dGVOYW1lLCBjb250ZW50QXR0cmlidXRl
TmFtZSwgdHJ1ZSwgJycsIGZhbHNlLCBudWxsLCBuYW1lKTsKK30KKworZnVuY3Rpb24gdGVzdEF0
dHJpYnV0ZUFkZGVyKHRlc3RGdW5jdGlvbiwgbmFtZSkgeworICAgIHRlc3QoZnVuY3Rpb24gKCkg
eworICAgICAgICB2YXIgZWxlbWVudCA9IGRlZmluZV9uZXdfY3VzdG9tX2VsZW1lbnQoWydpZCdd
KTsKKyAgICAgICAgdmFyIGluc3RhbmNlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChlbGVtZW50
Lm5hbWUpOworICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGVsZW1lbnQudGFrZUxvZygpLnR5
cGVzKCksIFsnY29uc3RydWN0ZWQnXSk7CisgICAgICAgIHRlc3RGdW5jdGlvbihpbnN0YW5jZSwg
J2lkJywgJ2ZvbycpOworICAgICAgICB2YXIgbG9nRW50cmllcyA9IGVsZW1lbnQudGFrZUxvZygp
OworICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ0VudHJpZXMudHlwZXMoKSwgWydhdHRy
aWJ1dGVDaGFuZ2VkJ10pOworICAgICAgICBhc3NlcnRfYXR0cmlidXRlX2xvZ19lbnRyeShsb2dF
bnRyaWVzLmxhc3QoKSwge25hbWU6ICdpZCcsIG9sZFZhbHVlOiBudWxsLCBuZXdWYWx1ZTogJ2Zv
bycsIG5hbWVzcGFjZTogbnVsbH0pOworICAgIH0sIG5hbWUgKyAnIG11c3QgZW5xdWV1ZSBhbiBh
dHRyaWJ1dGVDaGFuZ2VkIHJlYWN0aW9uIHdoZW4gYWRkaW5nIGFuIGF0dHJpYnV0ZScpOworCisg
ICAgdGVzdChmdW5jdGlvbiAoKSB7CisgICAgICAgIHZhciBlbGVtZW50ID0gZGVmaW5lX25ld19j
dXN0b21fZWxlbWVudChbJ2NsYXNzJ10pOworICAgICAgICB2YXIgaW5zdGFuY2UgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KGVsZW1lbnQubmFtZSk7CisgICAgICAgIGFzc2VydF9hcnJheV9lcXVh
bHMoZWxlbWVudC50YWtlTG9nKCkudHlwZXMoKSwgWydjb25zdHJ1Y3RlZCddKTsKKyAgICAgICAg
dGVzdEZ1bmN0aW9uKGluc3RhbmNlLCAnZGF0YS1sYW5nJywgJ2VuJyk7CisgICAgICAgIGFzc2Vy
dF9hcnJheV9lcXVhbHMoZWxlbWVudC50YWtlTG9nKCkudHlwZXMoKSwgW10pOworICAgIH0sIG5h
bWUgKyAnIG11c3Qgbm90IGVucXVldWUgYW4gYXR0cmlidXRlQ2hhbmdlZCByZWFjdGlvbiB3aGVu
IGFkZGluZyBhbiB1bm9ic2VydmVkIGF0dHJpYnV0ZScpOworCisgICAgdGVzdChmdW5jdGlvbiAo
KSB7CisgICAgICAgIHZhciBlbGVtZW50ID0gZGVmaW5lX25ld19jdXN0b21fZWxlbWVudChbJ3Rp
dGxlJ10pOworICAgICAgICB2YXIgaW5zdGFuY2UgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KGVs
ZW1lbnQubmFtZSk7CisgICAgICAgIGluc3RhbmNlLnNldEF0dHJpYnV0ZSgndGl0bGUnLCAnaGVs
bG8nKTsKKyAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhlbGVtZW50LnRha2VMb2coKS50eXBl
cygpLCBbJ2NvbnN0cnVjdGVkJywgJ2F0dHJpYnV0ZUNoYW5nZWQnXSk7CisgICAgICAgIHRlc3RG
dW5jdGlvbihpbnN0YW5jZSwgJ3RpdGxlJywgJ3dvcmxkJyk7CisgICAgICAgIHZhciBsb2dFbnRy
aWVzID0gZWxlbWVudC50YWtlTG9nKCk7CisgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMobG9n
RW50cmllcy50eXBlcygpLCBbJ2F0dHJpYnV0ZUNoYW5nZWQnXSk7CisgICAgICAgIGFzc2VydF9h
dHRyaWJ1dGVfbG9nX2VudHJ5KGxvZ0VudHJpZXMubGFzdCgpLCB7bmFtZTogJ3RpdGxlJywgb2xk
VmFsdWU6ICdoZWxsbycsIG5ld1ZhbHVlOiAnd29ybGQnLCBuYW1lc3BhY2U6IG51bGx9KTsKKyAg
ICB9LCBuYW1lICsgJyBtdXN0IGVucXVldWUgYW4gYXR0cmlidXRlQ2hhbmdlZCByZWFjdGlvbiB3
aGVuIHJlcGxhY2luZyBhbiBleGlzdGluZyBhdHRyaWJ1dGUnKTsKKworICAgIHRlc3QoZnVuY3Rp
b24gKCkgeworICAgICAgICB2YXIgZWxlbWVudCA9IGRlZmluZV9uZXdfY3VzdG9tX2VsZW1lbnQo
W10pOworICAgICAgICB2YXIgaW5zdGFuY2UgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KGVsZW1l
bnQubmFtZSk7CisgICAgICAgIGluc3RhbmNlLnNldEF0dHJpYnV0ZSgnZGF0YS1sYW5nJywgJ3po
Jyk7CisgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoZWxlbWVudC50YWtlTG9nKCkudHlwZXMo
KSwgWydjb25zdHJ1Y3RlZCddKTsKKyAgICAgICAgdGVzdEZ1bmN0aW9uKGluc3RhbmNlLCAnZGF0
YS1sYW5nJywgJ2VuJyk7CisgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoZWxlbWVudC50YWtl
TG9nKCkudHlwZXMoKSwgW10pOworICAgIH0sIG5hbWUgKyAnIG11c3QgZW5xdWV1ZSBhbiBhdHRy
aWJ1dGVDaGFuZ2VkIHJlYWN0aW9uIHdoZW4gcmVwbGFjaW5nIGFuIGV4aXN0aW5nIHVub2JzZXJ2
ZWQgYXR0cmlidXRlJyk7Cit9CisKK2Z1bmN0aW9uIHRlc3RBdHRyaWJ1dGVNdXRhdG9yKHRlc3RG
dW5jdGlvbiwgbmFtZSkgeworICAgIHRlc3QoZnVuY3Rpb24gKCkgeworICAgICAgICB2YXIgZWxl
bWVudCA9IGRlZmluZV9uZXdfY3VzdG9tX2VsZW1lbnQoWyd0aXRsZSddKTsKKyAgICAgICAgdmFy
IGluc3RhbmNlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChlbGVtZW50Lm5hbWUpOworICAgICAg
ICBpbnN0YW5jZS5zZXRBdHRyaWJ1dGUoJ3RpdGxlJywgJ2hlbGxvJyk7CisgICAgICAgIGFzc2Vy
dF9hcnJheV9lcXVhbHMoZWxlbWVudC50YWtlTG9nKCkudHlwZXMoKSwgWydjb25zdHJ1Y3RlZCcs
ICdhdHRyaWJ1dGVDaGFuZ2VkJ10pOworICAgICAgICB0ZXN0RnVuY3Rpb24oaW5zdGFuY2UsICd0
aXRsZScsICd3b3JsZCcpOworICAgICAgICB2YXIgbG9nRW50cmllcyA9IGVsZW1lbnQudGFrZUxv
ZygpOworICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGxvZ0VudHJpZXMudHlwZXMoKSwgWydh
dHRyaWJ1dGVDaGFuZ2VkJ10pOworICAgICAgICBhc3NlcnRfYXR0cmlidXRlX2xvZ19lbnRyeShs
b2dFbnRyaWVzLmxhc3QoKSwge25hbWU6ICd0aXRsZScsIG9sZFZhbHVlOiAnaGVsbG8nLCBuZXdW
YWx1ZTogJ3dvcmxkJywgbmFtZXNwYWNlOiBudWxsfSk7CisgICAgfSwgbmFtZSArICcgbXVzdCBl
bnF1ZXVlIGFuIGF0dHJpYnV0ZUNoYW5nZWQgcmVhY3Rpb24gd2hlbiByZXBsYWNpbmcgYW4gZXhp
c3RpbmcgYXR0cmlidXRlJyk7CisKKyAgICB0ZXN0KGZ1bmN0aW9uICgpIHsKKyAgICAgICAgdmFy
IGVsZW1lbnQgPSBkZWZpbmVfbmV3X2N1c3RvbV9lbGVtZW50KFsnY2xhc3MnXSk7CisgICAgICAg
IHZhciBpbnN0YW5jZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoZWxlbWVudC5uYW1lKTsKKyAg
ICAgICAgaW5zdGFuY2Uuc2V0QXR0cmlidXRlKCdkYXRhLWxhbmcnLCAnemgnKTsKKyAgICAgICAg
YXNzZXJ0X2FycmF5X2VxdWFscyhlbGVtZW50LnRha2VMb2coKS50eXBlcygpLCBbJ2NvbnN0cnVj
dGVkJ10pOworICAgICAgICB0ZXN0RnVuY3Rpb24oaW5zdGFuY2UsICdkYXRhLWxhbmcnLCAnZW4n
KTsKKyAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhlbGVtZW50LnRha2VMb2coKS50eXBlcygp
LCBbXSk7CisgICAgfSwgbmFtZSArICcgbXVzdCBub3QgZW5xdWV1ZSBhbiBhdHRyaWJ1dGVDaGFu
Z2VkIHJlYWN0aW9uIHdoZW4gcmVwbGFjaW5nIGFuIGV4aXN0aW5nIHVub2JzZXJ2ZWQgYXR0cmli
dXRlJyk7Cit9CisKK2Z1bmN0aW9uIHRlc3RBdHRyaWJ1dGVSZW1vdmVyKHRlc3RGdW5jdGlvbiwg
bmFtZSwgb3B0aW9ucykgeworICAgIGlmIChvcHRpb25zICYmICFvcHRpb25zLm9ubHlFeGlzdGlu
Z0F0dHJpYnV0ZSkgeworICAgICAgICB0ZXN0KGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHZh
ciBlbGVtZW50ID0gZGVmaW5lX25ld19jdXN0b21fZWxlbWVudChbJ3RpdGxlJ10pOworICAgICAg
ICAgICAgdmFyIGluc3RhbmNlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChlbGVtZW50Lm5hbWUp
OworICAgICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhlbGVtZW50LnRha2VMb2coKS50eXBl
cygpLCBbJ2NvbnN0cnVjdGVkJ10pOworICAgICAgICAgICAgdGVzdEZ1bmN0aW9uKGluc3RhbmNl
LCAndGl0bGUnKTsKKyAgICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoZWxlbWVudC50YWtl
TG9nKCkudHlwZXMoKSwgW10pOworICAgICAgICB9LCBuYW1lICsgJyBtdXN0IG5vdCBlbnF1ZXVl
IGFuIGF0dHJpYnV0ZUNoYW5nZWQgcmVhY3Rpb24gd2hlbiByZW1vdmluZyBhbiBhdHRyaWJ1dGUg
dGhhdCBkb2VzIG5vdCBleGlzdCcpOworICAgIH0KKworICAgIHRlc3QoZnVuY3Rpb24gKCkgewor
ICAgICAgICB2YXIgZWxlbWVudCA9IGRlZmluZV9uZXdfY3VzdG9tX2VsZW1lbnQoW10pOworICAg
ICAgICB2YXIgaW5zdGFuY2UgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KGVsZW1lbnQubmFtZSk7
CisgICAgICAgIGluc3RhbmNlLnNldEF0dHJpYnV0ZSgnZGF0YS1sYW5nJywgJ2hlbGxvJyk7Cisg
ICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoZWxlbWVudC50YWtlTG9nKCkudHlwZXMoKSwgWydj
b25zdHJ1Y3RlZCddKTsKKyAgICAgICAgdGVzdEZ1bmN0aW9uKGluc3RhbmNlLCAnZGF0YS1sYW5n
Jyk7CisgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoZWxlbWVudC50YWtlTG9nKCkudHlwZXMo
KSwgW10pOworICAgIH0sIG5hbWUgKyAnIG11c3Qgbm90IGVucXVldWUgYW4gYXR0cmlidXRlQ2hh
bmdlZCByZWFjdGlvbiB3aGVuIHJlbW92aW5nIGFuIHVub2JzZXJ2ZWQgYXR0cmlidXRlJyk7CisK
KyAgICB0ZXN0KGZ1bmN0aW9uICgpIHsKKyAgICAgICAgdmFyIGVsZW1lbnQgPSBkZWZpbmVfbmV3
X2N1c3RvbV9lbGVtZW50KFsndGl0bGUnXSk7CisgICAgICAgIHZhciBpbnN0YW5jZSA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoZWxlbWVudC5uYW1lKTsKKyAgICAgICAgaW5zdGFuY2Uuc2V0QXR0
cmlidXRlKCd0aXRsZScsICdoZWxsbycpOworICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGVs
ZW1lbnQudGFrZUxvZygpLnR5cGVzKCksIFsnY29uc3RydWN0ZWQnLCAnYXR0cmlidXRlQ2hhbmdl
ZCddKTsKKyAgICAgICAgdGVzdEZ1bmN0aW9uKGluc3RhbmNlLCAndGl0bGUnKTsKKyAgICAgICAg
dmFyIGxvZ0VudHJpZXMgPSBlbGVtZW50LnRha2VMb2coKTsKKyAgICAgICAgYXNzZXJ0X2FycmF5
X2VxdWFscyhsb2dFbnRyaWVzLnR5cGVzKCksIFsnYXR0cmlidXRlQ2hhbmdlZCddKTsKKyAgICAg
ICAgYXNzZXJ0X2F0dHJpYnV0ZV9sb2dfZW50cnkobG9nRW50cmllcy5sYXN0KCksIHtuYW1lOiAn
dGl0bGUnLCBvbGRWYWx1ZTogJ2hlbGxvJywgbmV3VmFsdWU6IG51bGwsIG5hbWVzcGFjZTogbnVs
bH0pOworICAgIH0sIG5hbWUgKyAnIG11c3QgZW5xdWV1ZSBhbiBhdHRyaWJ1dGVDaGFuZ2VkIHJl
YWN0aW9uIHdoZW4gcmVtb3ZpbmcgYW4gZXhpc3RpbmcgYXR0cmlidXRlJyk7CisKKyAgICB0ZXN0
KGZ1bmN0aW9uICgpIHsKKyAgICAgICAgdmFyIGVsZW1lbnQgPSBkZWZpbmVfbmV3X2N1c3RvbV9l
bGVtZW50KFtdKTsKKyAgICAgICAgdmFyIGluc3RhbmNlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dChlbGVtZW50Lm5hbWUpOworICAgICAgICBpbnN0YW5jZS5zZXRBdHRyaWJ1dGUoJ2RhdGEtbGFu
ZycsICdqYScpOworICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGVsZW1lbnQudGFrZUxvZygp
LnR5cGVzKCksIFsnY29uc3RydWN0ZWQnXSk7CisgICAgICAgIHRlc3RGdW5jdGlvbihpbnN0YW5j
ZSwgJ2RhdGEtbGFuZycpOworICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGVsZW1lbnQudGFr
ZUxvZygpLnR5cGVzKCksIFtdKTsKKyAgICB9LCBuYW1lICsgJyBtdXN0IG5vdCBlbnF1ZXVlIGFu
IGF0dHJpYnV0ZUNoYW5nZWQgcmVhY3Rpb24gd2hlbiByZW1vdmluZyBhbiBleGlzdGluZyB1bm9i
c2VydmVkIGF0dHJpYnV0ZScpOworfQorCitmdW5jdGlvbiB0ZXN0X211dGF0aW5nX3N0eWxlX3By
b3BlcnR5X3ZhbHVlKHRlc3RGdW5jdGlvbiwgbmFtZSwgb3B0aW9ucykgeworICAgIGNvbnN0IHBy
b3BlcnR5TmFtZSA9IChvcHRpb25zIHx8IHt9KS5wcm9wZXJ0eU5hbWUgfHwgJ2NvbG9yJzsKKyAg
ICBjb25zdCBpZGxOYW1lID0gKG9wdGlvbnMgfHwge30pLmlkbE5hbWUgfHwgJ2NvbG9yJzsKKyAg
ICBjb25zdCB2YWx1ZTEgPSAob3B0aW9ucyB8fCB7fSkudmFsdWUxIHx8ICdibHVlJzsKKyAgICBj
b25zdCBydWxlMSA9IGAke3Byb3BlcnR5TmFtZX06ICR7dmFsdWUxfTtgOworICAgIGNvbnN0IHZh
bHVlMiA9IChvcHRpb25zIHx8IHt9KS52YWx1ZTIgfHwgJ3JlZCc7CisgICAgY29uc3QgcnVsZTIg
PSBgJHtwcm9wZXJ0eU5hbWV9OiAke3ZhbHVlMn07YDsKKworICAgIHRlc3QoZnVuY3Rpb24gKCkg
eworICAgICAgICB2YXIgZWxlbWVudCA9IGRlZmluZV9uZXdfY3VzdG9tX2VsZW1lbnQoWydzdHls
ZSddKTsKKyAgICAgICAgdmFyIGluc3RhbmNlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChlbGVt
ZW50Lm5hbWUpOworICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGVsZW1lbnQudGFrZUxvZygp
LnR5cGVzKCksIFsnY29uc3RydWN0ZWQnXSk7CisgICAgICAgIHRlc3RGdW5jdGlvbihpbnN0YW5j
ZSwgcHJvcGVydHlOYW1lLCBpZGxOYW1lLCB2YWx1ZTEpOworICAgICAgICBhc3NlcnRfZXF1YWxz
KGluc3RhbmNlLmdldEF0dHJpYnV0ZSgnc3R5bGUnKSwgcnVsZTEpOworICAgICAgICB2YXIgbG9n
RW50cmllcyA9IGVsZW1lbnQudGFrZUxvZygpOworICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxz
KGxvZ0VudHJpZXMudHlwZXMoKSwgWydhdHRyaWJ1dGVDaGFuZ2VkJ10pOworICAgICAgICBhc3Nl
cnRfYXR0cmlidXRlX2xvZ19lbnRyeShsb2dFbnRyaWVzLmxhc3QoKSwge25hbWU6ICdzdHlsZScs
IG9sZFZhbHVlOiBudWxsLCBuZXdWYWx1ZTogcnVsZTEsIG5hbWVzcGFjZTogbnVsbH0pOworICAg
IH0sIG5hbWUgKyAnIG11c3QgZW5xdWV1ZSBhbiBhdHRyaWJ1dGVDaGFuZ2VkIHJlYWN0aW9uIHdo
ZW4gaXQgYWRkcyB0aGUgb2JzZXJ2ZWQgc3R5bGUgYXR0cmlidXRlJyk7CisKKyAgICB0ZXN0KGZ1
bmN0aW9uICgpIHsKKyAgICAgICAgdmFyIGVsZW1lbnQgPSBkZWZpbmVfbmV3X2N1c3RvbV9lbGVt
ZW50KFsndGl0bGUnXSk7CisgICAgICAgIHZhciBpbnN0YW5jZSA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoZWxlbWVudC5uYW1lKTsKKyAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhlbGVtZW50
LnRha2VMb2coKS50eXBlcygpLCBbJ2NvbnN0cnVjdGVkJ10pOworICAgICAgICB0ZXN0RnVuY3Rp
b24oaW5zdGFuY2UsIHByb3BlcnR5TmFtZSwgaWRsTmFtZSwgdmFsdWUxKTsKKyAgICAgICAgYXNz
ZXJ0X2VxdWFscyhpbnN0YW5jZS5nZXRBdHRyaWJ1dGUoJ3N0eWxlJyksIHJ1bGUxKTsKKyAgICAg
ICAgYXNzZXJ0X2FycmF5X2VxdWFscyhlbGVtZW50LnRha2VMb2coKS50eXBlcygpLCBbXSk7Cisg
ICAgfSwgbmFtZSArICcgbXVzdCBub3QgZW5xdWV1ZSBhbiBhdHRyaWJ1dGVDaGFuZ2VkIHJlYWN0
aW9uIHdoZW4gaXQgYWRkcyB0aGUgc3R5bGUgYXR0cmlidXRlIGJ1dCB0aGUgc3R5bGUgYXR0cmli
dXRlIGlzIG5vdCBvYnNlcnZlZCcpOworCisgICAgdGVzdChmdW5jdGlvbiAoKSB7CisgICAgICAg
IHZhciBlbGVtZW50ID0gZGVmaW5lX25ld19jdXN0b21fZWxlbWVudChbJ3N0eWxlJ10pOworICAg
ICAgICB2YXIgaW5zdGFuY2UgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KGVsZW1lbnQubmFtZSk7
CisgICAgICAgIHRlc3RGdW5jdGlvbihpbnN0YW5jZSwgcHJvcGVydHlOYW1lLCBpZGxOYW1lLCB2
YWx1ZTEpOworICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGVsZW1lbnQudGFrZUxvZygpLnR5
cGVzKCksIFsnY29uc3RydWN0ZWQnLCAnYXR0cmlidXRlQ2hhbmdlZCddKTsKKyAgICAgICAgdGVz
dEZ1bmN0aW9uKGluc3RhbmNlLCBwcm9wZXJ0eU5hbWUsIGlkbE5hbWUsIHZhbHVlMik7CisgICAg
ICAgIGFzc2VydF9lcXVhbHMoaW5zdGFuY2UuZ2V0QXR0cmlidXRlKCdzdHlsZScpLCBydWxlMik7
CisgICAgICAgIHZhciBsb2dFbnRyaWVzID0gZWxlbWVudC50YWtlTG9nKCk7CisgICAgICAgIGFz
c2VydF9hcnJheV9lcXVhbHMobG9nRW50cmllcy50eXBlcygpLCBbJ2F0dHJpYnV0ZUNoYW5nZWQn
XSk7CisgICAgICAgIGFzc2VydF9hdHRyaWJ1dGVfbG9nX2VudHJ5KGxvZ0VudHJpZXMubGFzdCgp
LCB7bmFtZTogJ3N0eWxlJywgb2xkVmFsdWU6IHJ1bGUxLCBuZXdWYWx1ZTogcnVsZTIsIG5hbWVz
cGFjZTogbnVsbH0pOworICAgIH0sIG5hbWUgKyAnIG11c3QgZW5xdWV1ZSBhbiBhdHRyaWJ1dGVD
aGFuZ2VkIHJlYWN0aW9uIHdoZW4gaXQgbXV0YXRlcyB0aGUgb2JzZXJ2ZWQgc3R5bGUgYXR0cmli
dXRlJyk7CisKKyAgICB0ZXN0KGZ1bmN0aW9uICgpIHsKKyAgICAgICAgdmFyIGVsZW1lbnQgPSBk
ZWZpbmVfbmV3X2N1c3RvbV9lbGVtZW50KFtdKTsKKyAgICAgICAgdmFyIGluc3RhbmNlID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudChlbGVtZW50Lm5hbWUpOworICAgICAgICB0ZXN0RnVuY3Rpb24o
aW5zdGFuY2UsIHByb3BlcnR5TmFtZSwgaWRsTmFtZSwgdmFsdWUxKTsKKyAgICAgICAgYXNzZXJ0
X2FycmF5X2VxdWFscyhlbGVtZW50LnRha2VMb2coKS50eXBlcygpLCBbJ2NvbnN0cnVjdGVkJ10p
OworICAgICAgICB0ZXN0RnVuY3Rpb24oaW5zdGFuY2UsIHByb3BlcnR5TmFtZSwgaWRsTmFtZSwg
dmFsdWUyKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhpbnN0YW5jZS5nZXRBdHRyaWJ1dGUoJ3N0
eWxlJyksIHJ1bGUyKTsKKyAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhlbGVtZW50LnRha2VM
b2coKS50eXBlcygpLCBbXSk7CisgICAgfSwgbmFtZSArICcgbXVzdCBub3QgZW5xdWV1ZSBhbiBh
dHRyaWJ1dGVDaGFuZ2VkIHJlYWN0aW9uIHdoZW4gaXQgbXV0YXRlcyB0aGUgc3R5bGUgYXR0cmli
dXRlIGJ1dCB0aGUgc3R5bGUgYXR0cmlidXRlIGlzIG5vdCBvYnNlcnZlZCcpOworfQorCitmdW5j
dGlvbiB0ZXN0X3JlbW92aW5nX3N0eWxlX3Byb3BlcnR5X3ZhbHVlKHRlc3RGdW5jdGlvbiwgbmFt
ZSkgeworICAgIHRlc3QoZnVuY3Rpb24gKCkgeworICAgICAgICB2YXIgZWxlbWVudCA9IGRlZmlu
ZV9uZXdfY3VzdG9tX2VsZW1lbnQoWydzdHlsZSddKTsKKyAgICAgICAgdmFyIGluc3RhbmNlID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChlbGVtZW50Lm5hbWUpOworICAgICAgICBpbnN0YW5jZS5z
ZXRBdHRyaWJ1dGUoJ3N0eWxlJywgJ2NvbG9yOiByZWQ7IGRpc3BsYXk6IG5vbmU7Jyk7CisgICAg
ICAgIGFzc2VydF9hcnJheV9lcXVhbHMoZWxlbWVudC50YWtlTG9nKCkudHlwZXMoKSwgWydjb25z
dHJ1Y3RlZCcsICdhdHRyaWJ1dGVDaGFuZ2VkJ10pOworICAgICAgICB0ZXN0RnVuY3Rpb24oaW5z
dGFuY2UsICdjb2xvcicsICdjb2xvcicpOworICAgICAgICBhc3NlcnRfZXF1YWxzKGluc3RhbmNl
LmdldEF0dHJpYnV0ZSgnc3R5bGUnKSwgJ2Rpc3BsYXk6IG5vbmU7Jyk7IC8vIERvbid0IG1ha2Ug
dGhpcyBlbXB0eSBzaW5jZSBicm93c2VyIGJlaGF2aW9ycyBhcmUgaW5jb25zaXN0ZW50IG5vdy4K
KyAgICAgICAgdmFyIGxvZ0VudHJpZXMgPSBlbGVtZW50LnRha2VMb2coKTsKKyAgICAgICAgYXNz
ZXJ0X2FycmF5X2VxdWFscyhsb2dFbnRyaWVzLnR5cGVzKCksIFsnYXR0cmlidXRlQ2hhbmdlZCdd
KTsKKyAgICAgICAgYXNzZXJ0X2F0dHJpYnV0ZV9sb2dfZW50cnkobG9nRW50cmllcy5sYXN0KCks
IHtuYW1lOiAnc3R5bGUnLCBvbGRWYWx1ZTogJ2NvbG9yOiByZWQ7IGRpc3BsYXk6IG5vbmU7Jywg
bmV3VmFsdWU6ICdkaXNwbGF5OiBub25lOycsIG5hbWVzcGFjZTogbnVsbH0pOworICAgIH0sIG5h
bWUgKyAnIG11c3QgZW5xdWV1ZSBhbiBhdHRyaWJ1dGVDaGFuZ2VkIHJlYWN0aW9uIHdoZW4gaXQg
cmVtb3ZlcyBhIHByb3BlcnR5IGZyb20gdGhlIG9ic2VydmVkIHN0eWxlIGF0dHJpYnV0ZScpOwor
CisgICAgdGVzdChmdW5jdGlvbiAoKSB7CisgICAgICAgIHZhciBlbGVtZW50ID0gZGVmaW5lX25l
d19jdXN0b21fZWxlbWVudChbJ2NsYXNzJ10pOworICAgICAgICB2YXIgaW5zdGFuY2UgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KGVsZW1lbnQubmFtZSk7CisgICAgICAgIGluc3RhbmNlLnNldEF0
dHJpYnV0ZSgnc3R5bGUnLCAnY29sb3I6IHJlZDsgZGlzcGxheTogbm9uZTsnKTsKKyAgICAgICAg
YXNzZXJ0X2FycmF5X2VxdWFscyhlbGVtZW50LnRha2VMb2coKS50eXBlcygpLCBbJ2NvbnN0cnVj
dGVkJ10pOworICAgICAgICB0ZXN0RnVuY3Rpb24oaW5zdGFuY2UsICdjb2xvcicsICdjb2xvcicp
OworICAgICAgICBhc3NlcnRfZXF1YWxzKGluc3RhbmNlLmdldEF0dHJpYnV0ZSgnc3R5bGUnKSwg
J2Rpc3BsYXk6IG5vbmU7Jyk7IC8vIERvbid0IG1ha2UgdGhpcyBlbXB0eSBzaW5jZSBicm93c2Vy
IGJlaGF2aW9ycyBhcmUgaW5jb25zaXN0ZW50IG5vdy4KKyAgICAgICAgYXNzZXJ0X2FycmF5X2Vx
dWFscyhlbGVtZW50LnRha2VMb2coKS50eXBlcygpLCBbXSk7CisgICAgfSwgbmFtZSArICcgbXVz
dCBub3QgZW5xdWV1ZSBhbiBhdHRyaWJ1dGVDaGFuZ2VkIHJlYWN0aW9uIHdoZW4gaXQgcmVtb3Zl
cyBhIHByb3BlcnR5IGZyb20gdGhlIHN0eWxlIGF0dHJpYnV0ZSBidXQgdGhlIHN0eWxlIGF0dHJp
YnV0ZSBpcyBub3Qgb2JzZXJ2ZWQnKTsKK30KKworZnVuY3Rpb24gdGVzdF9tdXRhdGluZ19zdHls
ZV9wcm9wZXJ0eV9wcmlvcml0eSh0ZXN0RnVuY3Rpb24sIG5hbWUpIHsKKyAgICB0ZXN0KGZ1bmN0
aW9uICgpIHsKKyAgICAgICAgdmFyIGVsZW1lbnQgPSBkZWZpbmVfbmV3X2N1c3RvbV9lbGVtZW50
KFsnc3R5bGUnXSk7CisgICAgICAgIHZhciBpbnN0YW5jZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoZWxlbWVudC5uYW1lKTsKKyAgICAgICAgaW5zdGFuY2Uuc2V0QXR0cmlidXRlKCdzdHlsZScs
ICdjb2xvcjogcmVkJyk7CisgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoZWxlbWVudC50YWtl
TG9nKCkudHlwZXMoKSwgWydjb25zdHJ1Y3RlZCcsICdhdHRyaWJ1dGVDaGFuZ2VkJ10pOworICAg
ICAgICB0ZXN0RnVuY3Rpb24oaW5zdGFuY2UsICdjb2xvcicsICdjb2xvcicsIHRydWUpOworICAg
ICAgICBhc3NlcnRfZXF1YWxzKGluc3RhbmNlLmdldEF0dHJpYnV0ZSgnc3R5bGUnKSwgJ2NvbG9y
OiByZWQgIWltcG9ydGFudDsnKTsKKyAgICAgICAgdmFyIGxvZ0VudHJpZXMgPSBlbGVtZW50LnRh
a2VMb2coKTsKKyAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhsb2dFbnRyaWVzLnR5cGVzKCks
IFsnYXR0cmlidXRlQ2hhbmdlZCddKTsKKyAgICAgICAgYXNzZXJ0X2F0dHJpYnV0ZV9sb2dfZW50
cnkobG9nRW50cmllcy5sYXN0KCksIHtuYW1lOiAnc3R5bGUnLCBvbGRWYWx1ZTogJ2NvbG9yOiBy
ZWQnLCBuZXdWYWx1ZTogJ2NvbG9yOiByZWQgIWltcG9ydGFudDsnLCBuYW1lc3BhY2U6IG51bGx9
KTsKKyAgICB9LCBuYW1lICsgJyBtdXN0IGVucXVldWUgYW4gYXR0cmlidXRlQ2hhbmdlZCByZWFj
dGlvbiB3aGVuIGl0IG1ha2VzIGEgcHJvcGVydHkgaW1wb3J0YW50IGFuZCB0aGUgc3R5bGUgYXR0
cmlidXRlIGlzIG9ic2VydmVkJyk7CisKKyAgICB0ZXN0KGZ1bmN0aW9uICgpIHsKKyAgICAgICAg
dmFyIGVsZW1lbnQgPSBkZWZpbmVfbmV3X2N1c3RvbV9lbGVtZW50KFsnaWQnXSk7CisgICAgICAg
IHZhciBpbnN0YW5jZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoZWxlbWVudC5uYW1lKTsKKyAg
ICAgICAgaW5zdGFuY2Uuc2V0QXR0cmlidXRlKCdzdHlsZScsICdjb2xvcjogcmVkJyk7CisgICAg
ICAgIGFzc2VydF9hcnJheV9lcXVhbHMoZWxlbWVudC50YWtlTG9nKCkudHlwZXMoKSwgWydjb25z
dHJ1Y3RlZCddKTsKKyAgICAgICAgdGVzdEZ1bmN0aW9uKGluc3RhbmNlLCAnY29sb3InLCAnY29s
b3InLCB0cnVlKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhpbnN0YW5jZS5nZXRBdHRyaWJ1dGUo
J3N0eWxlJyksICdjb2xvcjogcmVkICFpbXBvcnRhbnQ7Jyk7CisgICAgICAgIGFzc2VydF9hcnJh
eV9lcXVhbHMoZWxlbWVudC50YWtlTG9nKCkudHlwZXMoKSwgW10pOworICAgIH0sIG5hbWUgKyAn
IG11c3QgZW5xdWV1ZSBhbiBhdHRyaWJ1dGVDaGFuZ2VkIHJlYWN0aW9uIHdoZW4gaXQgbWFrZXMg
YSBwcm9wZXJ0eSBpbXBvcnRhbnQgYnV0IHRoZSBzdHlsZSBhdHRyaWJ1dGUgaXMgbm90IG9ic2Vy
dmVkJyk7Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2N1c3RvbS1lbGVtZW50cy90
aHJvdy1vbi1keW5hbWljLW1hcmt1cC1pbnNlcnRpb24tY291bnRlci1jb25zdHJ1Y3QuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL3Rocm93LW9uLWR5bmFtaWMtbWFya3Vw
LWluc2VydGlvbi1jb3VudGVyLWNvbnN0cnVjdC5odG1sCmluZGV4IGFhNGM3YjBkYmZlNmQxM2U0
ZjAzNDQ5ODYyYzE3NDE0Nzc3NjAzM2MuLjZmM2JhZTgzZjJlZGJjODA1MDEyNDFjY2ZlM2ZkN2U3
OTI0OWQyYjEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL3Ro
cm93LW9uLWR5bmFtaWMtbWFya3VwLWluc2VydGlvbi1jb3VudGVyLWNvbnN0cnVjdC5odG1sCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL3Rocm93LW9uLWR5bmFtaWMtbWFy
a3VwLWluc2VydGlvbi1jb3VudGVyLWNvbnN0cnVjdC5odG1sCkBAIC04LDcgKzgsNyBAQAogPG1l
dGEgbmFtZT0iaGVscCIgY29udGVudD0iaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0
aXBhZ2UvZHluYW1pYy1tYXJrdXAtaW5zZXJ0aW9uLmh0bWwjdGhyb3ctb24tZHluYW1pYy1tYXJr
dXAtaW5zZXJ0aW9uLWNvdW50ZXIiPgogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0
aGFybmVzcy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9yZXNvdXJjZXMvY3VzdG9tLWVs
ZW1lbnRzLWhlbHBlcnMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9jdXN0
b20tZWxlbWVudHMtaGVscGVycy5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keT4KIDxkaXYg
aWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2N1c3RvbS1lbGVt
ZW50cy90aHJvdy1vbi1keW5hbWljLW1hcmt1cC1pbnNlcnRpb24tY291bnRlci1yZWFjdGlvbnMu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL3Rocm93LW9uLWR5bmFtaWMt
bWFya3VwLWluc2VydGlvbi1jb3VudGVyLXJlYWN0aW9ucy5odG1sCmluZGV4IGM2Y2Q3YzYwZTcw
NTM0YjVhYTQ5OTdiM2Y2ZWNlNTU3YTRiY2M4MTguLjA2ZmVlZjY4MmUwY2I4M2RiYWMyMGNiYTY2
MjYwYzQxNjc0YjBlMTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1l
bnRzL3Rocm93LW9uLWR5bmFtaWMtbWFya3VwLWluc2VydGlvbi1jb3VudGVyLXJlYWN0aW9ucy5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL3Rocm93LW9uLWR5bmFt
aWMtbWFya3VwLWluc2VydGlvbi1jb3VudGVyLXJlYWN0aW9ucy5odG1sCkBAIC04LDcgKzgsNyBA
QAogPG1ldGEgbmFtZT0iaGVscCIgY29udGVudD0iaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9y
Zy9tdWx0aXBhZ2UvZHluYW1pYy1tYXJrdXAtaW5zZXJ0aW9uLmh0bWwjdGhyb3ctb24tZHluYW1p
Yy1tYXJrdXAtaW5zZXJ0aW9uLWNvdW50ZXIiPgogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2N1c3RvbS1lbGVtZW50cy9yZXNvdXJjZXMvY3Vz
dG9tLWVsZW1lbnRzLWhlbHBlcnMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNl
cy9jdXN0b20tZWxlbWVudHMtaGVscGVycy5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keT4K
IDxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdl
cy9yZXNvdXJjZXMvZ3JlZW4tMjU2eDI1Ni5wbmcgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9y
ZXNvdXJjZXMvZ3JlZW4tMjU2eDI1Ni5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjA2OTQ1YzMxMDE2MjA4OTUx
MTkyMzIyYTQ0OGQyZjM0YWNjNDdhYgpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMTAzCnpjbWVB
U0BOPyhvbEh5YHVWQnEhaWEweX55VTw1SzU4NW8mP1JONVhaUlVwTTI7MWxBP0BTbmpYPyFYRWxT
S2lhYgp1RntDMnk/RXl3a0FuJWFEQDh4RjQ2UWdCLVkhRW9XczBoXkdvWFk8TSNQZjlaYjZNdzwm
OyRTa21LSj5nCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2ltYWdlcy9zaXplcy1keW5hbWljLTAwMS1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9pbWFnZXMvc2l6ZXMtZHluYW1pYy0wMDEtZXhwZWN0ZWQuaHRtbAppbmRleCA5Mjc5
YzgyMTBjNThiZTE5NmMzNzk1YjJiYzBmMjhiMTQ4ZjFmNTEyLi44Y2RhNzE1ZGE3ZjBmM2Y1NTQy
ZmJmNDk3NmUwNzcwZDljZjhmYTY1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdl
cy9zaXplcy1keW5hbWljLTAwMS1leHBlY3RlZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
aW1hZ2VzL3NpemVzLWR5bmFtaWMtMDAxLWV4cGVjdGVkLmh0bWwKQEAgLTEsNCArMSw0IEBACiA8
IWRvY3R5cGUgaHRtbD4KIDx0aXRsZT5UZXN0IHJlZmVyZW5jZTwvdGl0bGU+CiA8bGluayByZWw9
ImF1dGhvciIgdGl0bGU9IkVtaWxpbyBDb2JvcyDDgWx2YXJleiIgaHJlZj0ibWFpbHRvOmVtaWxp
b0BjcmlzYWwuaW8iPgotPGlmcmFtZSB3aWR0aD0iNTAwIiBoZWlnaHQ9IjUwMCIgc3JjZG9jPSc8
IWRvY3R5cGUgaHRtbD48aW1nIGFsdD0iRkFJTCIgc3Jjc2V0PSIuLi8uLi9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ltYWdlcy9ncmVlbi0yNTZ4MjU2LnBuZyAxMDB3IiBzdHlsZT0i
bWF4LXdpZHRoOiAxMDAlIiBzaXplcz0iMTBweCI+Jz48L2lmcmFtZT4KKzxpZnJhbWUgd2lkdGg9
IjUwMCIgaGVpZ2h0PSI1MDAiIHNyY2RvYz0nPCFkb2N0eXBlIGh0bWw+PGltZyBhbHQ9IkZBSUwi
IHNyY3NldD0icmVzb3VyY2VzL2dyZWVuLTI1NngyNTYucG5nIDEwMHciIHN0eWxlPSJtYXgtd2lk
dGg6IDEwMCUiIHNpemVzPSIxMHB4Ij4nPjwvaWZyYW1lPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9pbWFnZXMvc2l6ZXMtZHluYW1pYy0wMDEuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
aW1hZ2VzL3NpemVzLWR5bmFtaWMtMDAxLmh0bWwKaW5kZXggZDFkOTIzODk1MTU2YTBiOWVjYjQx
YjcyOTc5YTQ1NmY2ODM0ZjE4Yi4uODM3YzMwYTY3ZmQ0NjdkMjdmMWM0YmVkMmQxZmJjYWRmZjE4
YzYzMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvc2l6ZXMtZHluYW1pYy0w
MDEuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9zaXplcy1keW5hbWljLTAwMS5o
dG1sCkBAIC0yNSw0ICsyNSw0IEBAIGZ1bmN0aW9uIGZyYW1lTG9hZGVkKGZyYW1lKSB7CiAgIH0s
IDApOwogfQogPC9zY3JpcHQ+Ci08aWZyYW1lIG9ubG9hZD0iZnJhbWVMb2FkZWQodGhpcykiIHdp
ZHRoPSIyMDAiIGhlaWdodD0iNTAwIiBzcmNkb2M9JzwhZG9jdHlwZSBodG1sPjxpbWcgc3Jjc2V0
PSIuLi8uLi9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ltYWdlcy9ncmVlbi0yNTZ4
MjU2LnBuZyAxMDB3IiBzdHlsZT0ibWF4LXdpZHRoOiAxMDAlIiBzaXplcz0iKG1pbi13aWR0aDog
NDAwcHgpIDEwcHgsIDIwcHgiPic+PC9pZnJhbWU+Cis8aWZyYW1lIG9ubG9hZD0iZnJhbWVMb2Fk
ZWQodGhpcykiIHdpZHRoPSIyMDAiIGhlaWdodD0iNTAwIiBzcmNkb2M9JzwhZG9jdHlwZSBodG1s
PjxpbWcgc3Jjc2V0PSJyZXNvdXJjZXMvZ3JlZW4tMjU2eDI1Ni5wbmcgMTAwdyIgc3R5bGU9Im1h
eC13aWR0aDogMTAwJSIgc2l6ZXM9IihtaW4td2lkdGg6IDQwMHB4KSAxMHB4LCAyMHB4Ij4nPjwv
aWZyYW1lPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvc2l6ZXMtZHluYW1p
Yy0wMDItZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3NpemVzLWR5bmFt
aWMtMDAyLWV4cGVjdGVkLmh0bWwKaW5kZXggOTI3OWM4MjEwYzU4YmUxOTZjMzc5NWIyYmMwZjI4
YjE0OGYxZjUxMi4uOGNkYTcxNWRhN2YwZjNmNTU0MmZiZjQ5NzZlMDc3MGQ5Y2Y4ZmE2NSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvc2l6ZXMtZHluYW1pYy0wMDItZXhwZWN0
ZWQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9zaXplcy1keW5hbWljLTAwMi1l
eHBlY3RlZC5odG1sCkBAIC0xLDQgKzEsNCBAQAogPCFkb2N0eXBlIGh0bWw+CiA8dGl0bGU+VGVz
dCByZWZlcmVuY2U8L3RpdGxlPgogPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJFbWlsaW8gQ29i
b3Mgw4FsdmFyZXoiIGhyZWY9Im1haWx0bzplbWlsaW9AY3Jpc2FsLmlvIj4KLTxpZnJhbWUgd2lk
dGg9IjUwMCIgaGVpZ2h0PSI1MDAiIHNyY2RvYz0nPCFkb2N0eXBlIGh0bWw+PGltZyBhbHQ9IkZB
SUwiIHNyY3NldD0iLi4vLi4vaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbWFnZXMv
Z3JlZW4tMjU2eDI1Ni5wbmcgMTAwdyIgc3R5bGU9Im1heC13aWR0aDogMTAwJSIgc2l6ZXM9IjEw
cHgiPic+PC9pZnJhbWU+Cis8aWZyYW1lIHdpZHRoPSI1MDAiIGhlaWdodD0iNTAwIiBzcmNkb2M9
JzwhZG9jdHlwZSBodG1sPjxpbWcgYWx0PSJGQUlMIiBzcmNzZXQ9InJlc291cmNlcy9ncmVlbi0y
NTZ4MjU2LnBuZyAxMDB3IiBzdHlsZT0ibWF4LXdpZHRoOiAxMDAlIiBzaXplcz0iMTBweCI+Jz48
L2lmcmFtZT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3NpemVzLWR5bmFt
aWMtMDAyLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9zaXplcy1keW5hbWljLTAwMi5o
dG1sCmluZGV4IDVlNTdmMTY2MWM5Y2M4MDExMjhkNGM5NTQwOWMzNGUwMThmZTc4NDAuLjA4ZDcz
ODEwZGRkZTE3NTMyZjE4OGNkZGQ1OTYzOGJlZWMwN2M1ZTggMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvaW1hZ2VzL3NpemVzLWR5bmFtaWMtMDAyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9pbWFnZXMvc2l6ZXMtZHluYW1pYy0wMDIuaHRtbApAQCAtMTUsNyArMTUsNyBAQCBmdW5j
dGlvbiBmcmFtZUxvYWRlZChmcmFtZSkgewogICBsZXQgc2hhZG93ID0gZG9jLmdldEVsZW1lbnRC
eUlkKCJob3N0IikuYXR0YWNoU2hhZG93KHsgbW9kZTogIm9wZW4iIH0pOwogCiAgIGxldCBpbWcg
PSBkb2MuY3JlYXRlRWxlbWVudCgiaW1nIik7Ci0gIGltZy5zcmNzZXQgPSAiLi4vLi4vaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pbWFnZXMvZ3JlZW4tMjU2eDI1Ni5wbmcgMTAwdyI7
CisgIGltZy5zcmNzZXQgPSAicmVzb3VyY2VzL2dyZWVuLTI1NngyNTYucG5nIDEwMHciOwogICBp
bWcuc3R5bGUubWF4V2lkdGggPSAiMTAwJSI7CiAgIGltZy5zZXRBdHRyaWJ1dGUoInNpemVzIiwg
IihtaW4td2lkdGg6IDQwMHB4KSAxMHB4LCAyMHB4Iik7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3Qvc2hhZG93LWRvbS9jYXB0dXJpbmctYW5kLWJ1YmJsaW5nLWV2ZW50LWxpc3RlbmVy
cy1hY3Jvc3Mtc2hhZG93LXRyZWVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvc2hh
ZG93LWRvbS9jYXB0dXJpbmctYW5kLWJ1YmJsaW5nLWV2ZW50LWxpc3RlbmVycy1hY3Jvc3Mtc2hh
ZG93LXRyZWVzLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzVm
MTIwYTZiMTdiZmI1MGNjNjJiNmRhOTc0NGY0YWUyYWY2ZjRhOC4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3NoYWRvdy1kb20v
Y2FwdHVyaW5nLWFuZC1idWJibGluZy1ldmVudC1saXN0ZW5lcnMtYWNyb3NzLXNoYWRvdy10cmVl
cy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw3ICswLDAgQEAKLQotUEFTUyBDYXB0
dXJpbmcgZXZlbnQgbGlzdGVuZXJzIHNob3VsZCBiZSBpbnZva2VkIGJlZm9yZSBidWJibGluZyBl
dmVudCBsaXN0ZW5lcnMgb24gdGhlIHRhcmdldCB3aXRob3V0IHNoYWRvdyB0cmVlcyAKLVBBU1Mg
Q2FwdHVyaW5nIGV2ZW50IGxpc3RlbmVycyBzaG91bGQgYmUgaW52b2tlZCBiZWZvcmUgYnViYmxp
bmcgZXZlbnQgbGlzdGVuZXJzIHdoZW4gYW4gZXZlbnQgaXMgZGlzcGF0Y2hlZCBpbnNpZGUgYSBz
aGFkb3cgdHJlZSAKLVBBU1MgQ2FwdHVyaW5nIGV2ZW50IGxpc3RlbmVycyBzaG91bGQgYmUgaW52
b2tlZCBiZWZvcmUgYnViYmxpbmcgZXZlbnQgbGlzdGVuZXJzIHdoZW4gYW4gZXZlbnQgaXMgZGlz
cGF0Y2hlZCBpbnNpZGUgYSBkb3VibHkgbmVzdGVkIHNoYWRvdyB0cmVlIAotUEFTUyBDYXB0dXJp
bmcgZXZlbnQgbGlzdGVuZXJzIHNob3VsZCBiZSBpbnZva2VkIGJlZm9yZSBidWJibGluZyBldmVu
dCBsaXN0ZW5lcnMgd2hlbiBhbiBldmVudCBpcyBkaXNwYXRjaGVkIHZpYSBhIHNsb3QgCi1QQVNT
IENhcHR1cmluZyBldmVudCBsaXN0ZW5lcnMgc2hvdWxkIGJlIGludm9rZWQgYmVmb3JlIGJ1YmJs
aW5nIGV2ZW50IGxpc3RlbmVycyB3aGVuIGFuIGV2ZW50IGlzIGRpc3BhdGNoZWQgaW5zaWRlIGEg
c2hhZG93IHRyZWUgd2hpY2ggcGFzc2VzIHRocm91Z2ggYW5vdGhlciBzaGFkb3cgdHJlZSAKLQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zaGFkb3ctZG9tL2NhcHR1cmluZy1hbmQtYnVi
YmxpbmctZXZlbnQtbGlzdGVuZXJzLWFjcm9zcy1zaGFkb3ctdHJlZXMuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3Qvc2hhZG93LWRvbS9jYXB0dXJpbmctYW5kLWJ1YmJsaW5nLWV2ZW50LWxpc3RlbmVy
cy1hY3Jvc3Mtc2hhZG93LXRyZWVzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGM2MDBhZTFjMzFlNGQwNzdlOTlmNTRlNTVmZjdhNGZmMmQ5MTNkYmYuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9zaGFkb3ct
ZG9tL2NhcHR1cmluZy1hbmQtYnViYmxpbmctZXZlbnQtbGlzdGVuZXJzLWFjcm9zcy1zaGFkb3ct
dHJlZXMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDE5MSArMCwwIEBACi08IURPQ1RZUEUgaHRt
bD4KLTxodG1sPgotPGhlYWQ+Ci08dGl0bGU+U2hhZG93IERPTTogQ2FwdHVyaW5nIGV2ZW50IGxp
c3RlbmVycyBzaG91bGQgYmUgaW52b2tlZCBiZWZvcmUgYnViYmxpbmcgZXZlbnQgbGlzdGVuZXJz
PC90aXRsZT4KLTxtZXRhIG5hbWU9ImF1dGhvciIgdGl0bGU9IlJ5b3N1a2UgTml3YSIgaHJlZj0i
bWFpbHRvOnJuaXdhQHdlYmtpdC5vcmciPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90
ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NoYWRvdy1kb20vcmVzb3VyY2VzL3NoYWRvdy1kb20u
anMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLQotZnVuY3Rpb24gYXR0YWNoRXZlbnRMaXN0ZW5lcnMo
ZXZlbnRUeXBlLCB0cmVlKSB7Ci0gICAgY29uc3QgZXZlbnRMb2dzID0gW107Ci0gICAgY29uc3Qg
bWFrZUNvbXBvc2VkUGF0aFJlc3VsdCA9IChldmVudCkgPT4gZXZlbnQuY29tcG9zZWRQYXRoKCku
bWFwKChub2RlKSA9PiBub2RlLmlkKQotICAgIGZvciAoY29uc3QgaWQgaW4gdHJlZSkgewotICAg
ICAgICBjb25zdCBub2RlID0gdHJlZVtpZF07Ci0gICAgICAgIG5vZGUuYWRkRXZlbnRMaXN0ZW5l
cihldmVudFR5cGUsIGV2ZW50ID0+IGV2ZW50TG9ncy5wdXNoKAotICAgICAgICAgICAgWydidWJi
bGluZycsIGV2ZW50LmV2ZW50UGhhc2UsIGV2ZW50LnRhcmdldC5pZCwgZXZlbnQuY3VycmVudFRh
cmdldC5pZCwgbWFrZUNvbXBvc2VkUGF0aFJlc3VsdChldmVudCldKSwge2NhcHR1cmU6IGZhbHNl
fSk7Ci0gICAgICAgIG5vZGUuYWRkRXZlbnRMaXN0ZW5lcihldmVudFR5cGUsIGV2ZW50ID0+IGV2
ZW50TG9ncy5wdXNoKAotICAgICAgICAgICAgWydjYXB0dXJpbmcnLCBldmVudC5ldmVudFBoYXNl
LCBldmVudC50YXJnZXQuaWQsIGV2ZW50LmN1cnJlbnRUYXJnZXQuaWQsIG1ha2VDb21wb3NlZFBh
dGhSZXN1bHQoZXZlbnQpXSksIHtjYXB0dXJlOiB0cnVlfSk7Ci0gICAgfQotICAgIHJldHVybiBl
dmVudExvZ3M7Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci0KLTxkaXYgaWQ9InRl
c3QxIj4KLSAgICA8ZGl2IGlkPSJwYXJlbnQiPgotICAgICAgICA8ZGl2IGlkPSJ0YXJnZXQiPjwv
ZGl2PgotICAgIDwvZGl2PgotPC9kaXY+Ci08c2NyaXB0PgotdGVzdCgoKSA9PiB7Ci0gICAgY29u
c3QgdHJlZSA9IGNyZWF0ZVRlc3RUcmVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0MScp
KTsKLSAgICBjb25zdCBsb2dzID0gYXR0YWNoRXZlbnRMaXN0ZW5lcnMoJ215LWV2ZW50JywgdHJl
ZSk7Ci0gICAgdHJlZS50YXJnZXQuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ215LWV2ZW50Jywg
eyBidWJibGVzOiB0cnVlLCBjb21wb3NlZDogdHJ1ZSB9KSk7Ci0KLSAgICBjb25zdCBjb21wb3Nl
ZFBhdGggPSBbJ3RhcmdldCcsICdwYXJlbnQnLCAndGVzdDEnXTsKLSAgICBhc3NlcnRfb2JqZWN0
X2VxdWFscyhsb2dzLCBbCi0gICAgICAgIFsnY2FwdHVyaW5nJywgRXZlbnQuQ0FQVFVSSU5HX1BI
QVNFLCAndGFyZ2V0JywgJ3Rlc3QxJywgY29tcG9zZWRQYXRoXSwKLSAgICAgICAgWydjYXB0dXJp
bmcnLCBFdmVudC5DQVBUVVJJTkdfUEhBU0UsICd0YXJnZXQnLCAncGFyZW50JywgY29tcG9zZWRQ
YXRoXSwKLSAgICAgICAgWydjYXB0dXJpbmcnLCBFdmVudC5BVF9UQVJHRVQsICd0YXJnZXQnLCAn
dGFyZ2V0JywgY29tcG9zZWRQYXRoXSwKLSAgICAgICAgWydidWJibGluZycsIEV2ZW50LkFUX1RB
UkdFVCwgJ3RhcmdldCcsICd0YXJnZXQnLCBjb21wb3NlZFBhdGhdLAotICAgICAgICBbJ2J1YmJs
aW5nJywgRXZlbnQuQlVCQkxJTkdfUEhBU0UsICd0YXJnZXQnLCAncGFyZW50JywgY29tcG9zZWRQ
YXRoXSwKLSAgICAgICAgWydidWJibGluZycsIEV2ZW50LkJVQkJMSU5HX1BIQVNFLCAndGFyZ2V0
JywgJ3Rlc3QxJywgY29tcG9zZWRQYXRoXSwKLSAgICBdKTsKLX0sICdDYXB0dXJpbmcgZXZlbnQg
bGlzdGVuZXJzIHNob3VsZCBiZSBpbnZva2VkIGJlZm9yZSBidWJibGluZyBldmVudCBsaXN0ZW5l
cnMgb24gdGhlIHRhcmdldCB3aXRob3V0IHNoYWRvdyB0cmVlcycpOwotPC9zY3JpcHQ+Ci0KLTxk
aXYgaWQ9InRlc3QyIj4KLSAgICA8ZGl2IGlkPSJob3N0Ij4KLSAgICAgICAgPHRlbXBsYXRlIGlk
PSJzaGFkb3dSb290IiBkYXRhLW1vZGU9ImNsb3NlZCI+Ci0gICAgICAgICAgICA8ZGl2IGlkPSJ0
YXJnZXQiPjwvZGl2PgotICAgICAgICA8L3RlbXBsYXRlPgotICAgIDwvZGl2PgotPC9kaXY+Ci08
c2NyaXB0PgotdGVzdCgoKSA9PiB7Ci0gICAgY29uc3QgdHJlZSA9IGNyZWF0ZVRlc3RUcmVlKGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0MicpKTsKLSAgICBjb25zdCBsb2dzID0gYXR0YWNo
RXZlbnRMaXN0ZW5lcnMoJ215LWV2ZW50JywgdHJlZSk7Ci0gICAgdHJlZS50YXJnZXQuZGlzcGF0
Y2hFdmVudChuZXcgRXZlbnQoJ215LWV2ZW50JywgeyBidWJibGVzOiB0cnVlLCBjb21wb3NlZDog
dHJ1ZSB9KSk7Ci0KLSAgICBjb25zdCBpbm5lckNvbXBvc2VkUGF0aCA9IFsndGFyZ2V0JywgJ3No
YWRvd1Jvb3QnLCAnaG9zdCcsICd0ZXN0MiddOwotICAgIGNvbnN0IG91dGVyQ29tcG9zZWRQYXRo
ID0gWydob3N0JywgJ3Rlc3QyJ107Ci0gICAgYXNzZXJ0X29iamVjdF9lcXVhbHMobG9ncywgWwot
ICAgICAgICBbJ2NhcHR1cmluZycsIEV2ZW50LkNBUFRVUklOR19QSEFTRSwgJ2hvc3QnLCAndGVz
dDInLCBvdXRlckNvbXBvc2VkUGF0aF0sCi0gICAgICAgIFsnY2FwdHVyaW5nJywgRXZlbnQuQVRf
VEFSR0VULCAnaG9zdCcsICdob3N0Jywgb3V0ZXJDb21wb3NlZFBhdGhdLAotICAgICAgICBbJ2Nh
cHR1cmluZycsIEV2ZW50LkNBUFRVUklOR19QSEFTRSwgJ3RhcmdldCcsICdzaGFkb3dSb290Jywg
aW5uZXJDb21wb3NlZFBhdGhdLAotICAgICAgICBbJ2NhcHR1cmluZycsIEV2ZW50LkFUX1RBUkdF
VCwgJ3RhcmdldCcsICd0YXJnZXQnLCBpbm5lckNvbXBvc2VkUGF0aF0sCi0gICAgICAgIFsnYnVi
YmxpbmcnLCBFdmVudC5BVF9UQVJHRVQsICd0YXJnZXQnLCAndGFyZ2V0JywgaW5uZXJDb21wb3Nl
ZFBhdGhdLAotICAgICAgICBbJ2J1YmJsaW5nJywgRXZlbnQuQlVCQkxJTkdfUEhBU0UsICd0YXJn
ZXQnLCAnc2hhZG93Um9vdCcsIGlubmVyQ29tcG9zZWRQYXRoXSwKLSAgICAgICAgWydidWJibGlu
ZycsIEV2ZW50LkFUX1RBUkdFVCwgJ2hvc3QnLCAnaG9zdCcsIG91dGVyQ29tcG9zZWRQYXRoXSwK
LSAgICAgICAgWydidWJibGluZycsIEV2ZW50LkJVQkJMSU5HX1BIQVNFLCAnaG9zdCcsICd0ZXN0
MicsIG91dGVyQ29tcG9zZWRQYXRoXSwKLSAgICBdKTsKLX0sICdDYXB0dXJpbmcgZXZlbnQgbGlz
dGVuZXJzIHNob3VsZCBiZSBpbnZva2VkIGJlZm9yZSBidWJibGluZyBldmVudCBsaXN0ZW5lcnMg
d2hlbiBhbiBldmVudCBpcyBkaXNwYXRjaGVkIGluc2lkZSBhIHNoYWRvdyB0cmVlJyk7Ci08L3Nj
cmlwdD4KLQotPGRpdiBpZD0idGVzdDMiPgotICAgIDxkaXYgaWQ9Im91dGVySG9zdCI+Ci0gICAg
ICAgIDx0ZW1wbGF0ZSBpZD0ib3V0ZXJTaGFkb3dSb290IiBkYXRhLW1vZGU9ImNsb3NlZCI+Ci0g
ICAgICAgICAgICA8ZGl2IGlkPSJpbm5lckhvc3QiPgotICAgICAgICAgICAgICAgIDx0ZW1wbGF0
ZSBpZD0iaW5uZXJTaGFkb3dSb290IiBkYXRhLW1vZGU9ImNsb3NlZCI+Ci0gICAgICAgICAgICAg
ICAgICAgIDxkaXYgaWQ9InRhcmdldCI+PC9kaXY+Ci0gICAgICAgICAgICAgICAgPC90ZW1wbGF0
ZT4KLSAgICAgICAgICAgIDwvZGl2PgotICAgICAgICA8L3RlbXBsYXRlPgotICAgIDwvZGl2Pgot
PC9kaXY+Ci08c2NyaXB0PgotdGVzdCgoKSA9PiB7Ci0gICAgY29uc3QgdHJlZSA9IGNyZWF0ZVRl
c3RUcmVlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0MycpKTsKLSAgICBjb25zdCBsb2dz
ID0gYXR0YWNoRXZlbnRMaXN0ZW5lcnMoJ215LWV2ZW50JywgdHJlZSk7Ci0gICAgdHJlZS50YXJn
ZXQuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ215LWV2ZW50JywgeyBidWJibGVzOiB0cnVlLCBj
b21wb3NlZDogdHJ1ZSB9KSk7Ci0KLSAgICBjb25zdCBpbm5lclNoYWRvd0NvbXBvc2VkUGF0aCA9
IFsndGFyZ2V0JywgJ2lubmVyU2hhZG93Um9vdCcsICdpbm5lckhvc3QnLCAnb3V0ZXJTaGFkb3dS
b290JywgJ291dGVySG9zdCcsICd0ZXN0MyddOwotICAgIGNvbnN0IG91dGVyU2hhZG93Q29tcG9z
ZWRQYXRoID0gWydpbm5lckhvc3QnLCAnb3V0ZXJTaGFkb3dSb290JywgJ291dGVySG9zdCcsICd0
ZXN0MyddOwotICAgIGNvbnN0IG91dGVyQ29tcG9zZWRQYXRoID0gWydvdXRlckhvc3QnLCAndGVz
dDMnXTsKLSAgICBhc3NlcnRfb2JqZWN0X2VxdWFscyhsb2dzLCBbCi0gICAgICAgIFsnY2FwdHVy
aW5nJywgRXZlbnQuQ0FQVFVSSU5HX1BIQVNFLCAnb3V0ZXJIb3N0JywgJ3Rlc3QzJywgb3V0ZXJD
b21wb3NlZFBhdGhdLAotICAgICAgICBbJ2NhcHR1cmluZycsIEV2ZW50LkFUX1RBUkdFVCwgJ291
dGVySG9zdCcsICdvdXRlckhvc3QnLCBvdXRlckNvbXBvc2VkUGF0aF0sCi0gICAgICAgIFsnY2Fw
dHVyaW5nJywgRXZlbnQuQ0FQVFVSSU5HX1BIQVNFLCAnaW5uZXJIb3N0JywgJ291dGVyU2hhZG93
Um9vdCcsIG91dGVyU2hhZG93Q29tcG9zZWRQYXRoXSwKLSAgICAgICAgWydjYXB0dXJpbmcnLCBF
dmVudC5BVF9UQVJHRVQsICdpbm5lckhvc3QnLCAnaW5uZXJIb3N0Jywgb3V0ZXJTaGFkb3dDb21w
b3NlZFBhdGhdLAotICAgICAgICBbJ2NhcHR1cmluZycsIEV2ZW50LkNBUFRVUklOR19QSEFTRSwg
J3RhcmdldCcsICdpbm5lclNoYWRvd1Jvb3QnLCBpbm5lclNoYWRvd0NvbXBvc2VkUGF0aF0sCi0g
ICAgICAgIFsnY2FwdHVyaW5nJywgRXZlbnQuQVRfVEFSR0VULCAndGFyZ2V0JywgJ3RhcmdldCcs
IGlubmVyU2hhZG93Q29tcG9zZWRQYXRoXSwKLQotICAgICAgICBbJ2J1YmJsaW5nJywgRXZlbnQu
QVRfVEFSR0VULCAndGFyZ2V0JywgJ3RhcmdldCcsIGlubmVyU2hhZG93Q29tcG9zZWRQYXRoXSwK
LSAgICAgICAgWydidWJibGluZycsIEV2ZW50LkJVQkJMSU5HX1BIQVNFLCAndGFyZ2V0JywgJ2lu
bmVyU2hhZG93Um9vdCcsIGlubmVyU2hhZG93Q29tcG9zZWRQYXRoXSwKLSAgICAgICAgWydidWJi
bGluZycsIEV2ZW50LkFUX1RBUkdFVCwgJ2lubmVySG9zdCcsICdpbm5lckhvc3QnLCBvdXRlclNo
YWRvd0NvbXBvc2VkUGF0aF0sCi0gICAgICAgIFsnYnViYmxpbmcnLCBFdmVudC5CVUJCTElOR19Q
SEFTRSwgJ2lubmVySG9zdCcsICdvdXRlclNoYWRvd1Jvb3QnLCBvdXRlclNoYWRvd0NvbXBvc2Vk
UGF0aF0sCi0gICAgICAgIFsnYnViYmxpbmcnLCBFdmVudC5BVF9UQVJHRVQsICdvdXRlckhvc3Qn
LCAnb3V0ZXJIb3N0Jywgb3V0ZXJDb21wb3NlZFBhdGhdLAotICAgICAgICBbJ2J1YmJsaW5nJywg
RXZlbnQuQlVCQkxJTkdfUEhBU0UsICdvdXRlckhvc3QnLCAndGVzdDMnLCBvdXRlckNvbXBvc2Vk
UGF0aF0sCi0gICAgXSk7Ci19LCAnQ2FwdHVyaW5nIGV2ZW50IGxpc3RlbmVycyBzaG91bGQgYmUg
aW52b2tlZCBiZWZvcmUgYnViYmxpbmcgZXZlbnQgbGlzdGVuZXJzIHdoZW4gYW4gZXZlbnQgaXMg
ZGlzcGF0Y2hlZCBpbnNpZGUgYSBkb3VibHkgbmVzdGVkIHNoYWRvdyB0cmVlJyk7Ci08L3Njcmlw
dD4KLQotPGRpdiBpZD0idGVzdDQiPgotICAgIDxkaXYgaWQ9Imhvc3QiPgotICAgICAgICA8dGVt
cGxhdGUgaWQ9InNoYWRvd1Jvb3QiIGRhdGEtbW9kZT0iY2xvc2VkIj4KLSAgICAgICAgICAgIDxz
bG90IGlkPSJzbG90Ij48L3Nsb3Q+Ci0gICAgICAgIDwvdGVtcGxhdGU+Ci0gICAgICAgIDxkaXYg
aWQ9InRhcmdldCI+PC9kaXY+Ci0gICAgPC9kaXY+Ci08L2Rpdj4KLTxzY3JpcHQ+Ci10ZXN0KCgp
ID0+IHsKLSAgICBjb25zdCB0cmVlID0gY3JlYXRlVGVzdFRyZWUoZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ3Rlc3Q0JykpOwotICAgIGNvbnN0IGxvZ3MgPSBhdHRhY2hFdmVudExpc3RlbmVycygn
bXktZXZlbnQnLCB0cmVlKTsKLSAgICB0cmVlLnRhcmdldC5kaXNwYXRjaEV2ZW50KG5ldyBFdmVu
dCgnbXktZXZlbnQnLCB7IGJ1YmJsZXM6IHRydWUsIGNvbXBvc2VkOiB0cnVlIH0pKTsKLQotICAg
IGNvbnN0IGlubmVyQ29tcG9zZWRQYXRoID0gWyd0YXJnZXQnLCAnc2xvdCcsICdzaGFkb3dSb290
JywgJ2hvc3QnLCAndGVzdDQnXTsKLSAgICBjb25zdCBvdXRlckNvbXBvc2VkUGF0aCA9IFsndGFy
Z2V0JywgJ2hvc3QnLCAndGVzdDQnXTsKLSAgICBhc3NlcnRfb2JqZWN0X2VxdWFscyhsb2dzLCBb
Ci0gICAgICAgIFsnY2FwdHVyaW5nJywgRXZlbnQuQ0FQVFVSSU5HX1BIQVNFLCAndGFyZ2V0Jywg
J3Rlc3Q0Jywgb3V0ZXJDb21wb3NlZFBhdGhdLAotICAgICAgICBbJ2NhcHR1cmluZycsIEV2ZW50
LkNBUFRVUklOR19QSEFTRSwgJ3RhcmdldCcsICdob3N0Jywgb3V0ZXJDb21wb3NlZFBhdGhdLAot
ICAgICAgICBbJ2NhcHR1cmluZycsIEV2ZW50LkNBUFRVUklOR19QSEFTRSwgJ3RhcmdldCcsICdz
aGFkb3dSb290JywgaW5uZXJDb21wb3NlZFBhdGhdLAotICAgICAgICBbJ2NhcHR1cmluZycsIEV2
ZW50LkNBUFRVUklOR19QSEFTRSwgJ3RhcmdldCcsICdzbG90JywgaW5uZXJDb21wb3NlZFBhdGhd
LAotICAgICAgICBbJ2NhcHR1cmluZycsIEV2ZW50LkFUX1RBUkdFVCwgJ3RhcmdldCcsICd0YXJn
ZXQnLCBvdXRlckNvbXBvc2VkUGF0aF0sCi0KLSAgICAgICAgWydidWJibGluZycsIEV2ZW50LkFU
X1RBUkdFVCwgJ3RhcmdldCcsICd0YXJnZXQnLCBvdXRlckNvbXBvc2VkUGF0aF0sCi0gICAgICAg
IFsnYnViYmxpbmcnLCBFdmVudC5CVUJCTElOR19QSEFTRSwgJ3RhcmdldCcsICdzbG90JywgaW5u
ZXJDb21wb3NlZFBhdGhdLAotICAgICAgICBbJ2J1YmJsaW5nJywgRXZlbnQuQlVCQkxJTkdfUEhB
U0UsICd0YXJnZXQnLCAnc2hhZG93Um9vdCcsIGlubmVyQ29tcG9zZWRQYXRoXSwKLSAgICAgICAg
WydidWJibGluZycsIEV2ZW50LkJVQkJMSU5HX1BIQVNFLCAndGFyZ2V0JywgJ2hvc3QnLCBvdXRl
ckNvbXBvc2VkUGF0aF0sCi0gICAgICAgIFsnYnViYmxpbmcnLCBFdmVudC5CVUJCTElOR19QSEFT
RSwgJ3RhcmdldCcsICd0ZXN0NCcsIG91dGVyQ29tcG9zZWRQYXRoXSwKLSAgICBdKTsKLX0sICdD
YXB0dXJpbmcgZXZlbnQgbGlzdGVuZXJzIHNob3VsZCBiZSBpbnZva2VkIGJlZm9yZSBidWJibGlu
ZyBldmVudCBsaXN0ZW5lcnMgd2hlbiBhbiBldmVudCBpcyBkaXNwYXRjaGVkIHZpYSBhIHNsb3Qn
KTsKLTwvc2NyaXB0PgotCi08ZGl2IGlkPSJ0ZXN0NSI+Ci0gICAgPGRpdiBpZD0idXBwZXJIb3N0
Ij4KLSAgICAgICAgPHRlbXBsYXRlIGlkPSJ1cHBlclNoYWRvd1Jvb3QiIGRhdGEtbW9kZT0iY2xv
c2VkIj4KLSAgICAgICAgICAgIDxzbG90IGlkPSJ1cHBlclNsb3QiPjwvc2xvdD4KLSAgICAgICAg
PC90ZW1wbGF0ZT4KLSAgICAgICAgPGRpdiBpZD0ibG93ZXJIb3N0Ij4KLSAgICAgICAgICAgIDx0
ZW1wbGF0ZSBpZD0ibG93ZXJTaGFkb3dSb290IiBkYXRhLW1vZGU9ImNsb3NlZCI+Ci0gICAgICAg
ICAgICAgICAgPGRpdiBpZD0idGFyZ2V0Ij48L2Rpdj4KLSAgICAgICAgICAgIDwvdGVtcGxhdGU+
Ci0gICAgICAgIDwvZGl2PgotICAgIDwvZGl2PgotPC9kaXY+Ci08c2NyaXB0PgotdGVzdCgoKSA9
PiB7Ci0gICAgY29uc3QgdHJlZSA9IGNyZWF0ZVRlc3RUcmVlKGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCd0ZXN0NScpKTsKLSAgICBjb25zdCBsb2dzID0gYXR0YWNoRXZlbnRMaXN0ZW5lcnMoJ215
LWV2ZW50JywgdHJlZSk7Ci0gICAgdHJlZS50YXJnZXQuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQo
J215LWV2ZW50JywgeyBidWJibGVzOiB0cnVlLCBjb21wb3NlZDogdHJ1ZSB9KSk7Ci0KLSAgICBj
b25zdCBsb3dlckNvbXBvc2VkUGF0aCA9IFsndGFyZ2V0JywgJ2xvd2VyU2hhZG93Um9vdCcsICds
b3dlckhvc3QnLCAndXBwZXJIb3N0JywgJ3Rlc3Q1J107Ci0gICAgY29uc3QgdXBwZXJDb21wb3Nl
ZFBhdGggPSBbJ2xvd2VySG9zdCcsICd1cHBlclNsb3QnLCAndXBwZXJTaGFkb3dSb290JywgJ3Vw
cGVySG9zdCcsICd0ZXN0NSddOwotICAgIGNvbnN0IG91dGVyQ29tcG9zZWRQYXRoID0gWydsb3dl
ckhvc3QnLCAndXBwZXJIb3N0JywgJ3Rlc3Q1J107Ci0gICAgYXNzZXJ0X29iamVjdF9lcXVhbHMo
bG9ncywgWwotICAgICAgICBbJ2NhcHR1cmluZycsIEV2ZW50LkNBUFRVUklOR19QSEFTRSwgJ2xv
d2VySG9zdCcsICd0ZXN0NScsIG91dGVyQ29tcG9zZWRQYXRoXSwKLSAgICAgICAgWydjYXB0dXJp
bmcnLCBFdmVudC5DQVBUVVJJTkdfUEhBU0UsICdsb3dlckhvc3QnLCAndXBwZXJIb3N0Jywgb3V0
ZXJDb21wb3NlZFBhdGhdLAotICAgICAgICBbJ2NhcHR1cmluZycsIEV2ZW50LkNBUFRVUklOR19Q
SEFTRSwgJ2xvd2VySG9zdCcsICd1cHBlclNoYWRvd1Jvb3QnLCB1cHBlckNvbXBvc2VkUGF0aF0s
Ci0gICAgICAgIFsnY2FwdHVyaW5nJywgRXZlbnQuQ0FQVFVSSU5HX1BIQVNFLCAnbG93ZXJIb3N0
JywgJ3VwcGVyU2xvdCcsIHVwcGVyQ29tcG9zZWRQYXRoXSwKLSAgICAgICAgWydjYXB0dXJpbmcn
LCBFdmVudC5BVF9UQVJHRVQsICdsb3dlckhvc3QnLCAnbG93ZXJIb3N0Jywgb3V0ZXJDb21wb3Nl
ZFBhdGhdLAotICAgICAgICBbJ2NhcHR1cmluZycsIEV2ZW50LkNBUFRVUklOR19QSEFTRSwgJ3Rh
cmdldCcsICdsb3dlclNoYWRvd1Jvb3QnLCBsb3dlckNvbXBvc2VkUGF0aF0sCi0gICAgICAgIFsn
Y2FwdHVyaW5nJywgRXZlbnQuQVRfVEFSR0VULCAndGFyZ2V0JywgJ3RhcmdldCcsIGxvd2VyQ29t
cG9zZWRQYXRoXSwKLQotICAgICAgICBbJ2J1YmJsaW5nJywgRXZlbnQuQVRfVEFSR0VULCAndGFy
Z2V0JywgJ3RhcmdldCcsIGxvd2VyQ29tcG9zZWRQYXRoXSwKLSAgICAgICAgWydidWJibGluZycs
IEV2ZW50LkJVQkJMSU5HX1BIQVNFLCAndGFyZ2V0JywgJ2xvd2VyU2hhZG93Um9vdCcsIGxvd2Vy
Q29tcG9zZWRQYXRoXSwKLSAgICAgICAgWydidWJibGluZycsIEV2ZW50LkFUX1RBUkdFVCwgJ2xv
d2VySG9zdCcsICdsb3dlckhvc3QnLCBvdXRlckNvbXBvc2VkUGF0aF0sCi0gICAgICAgIFsnYnVi
YmxpbmcnLCBFdmVudC5CVUJCTElOR19QSEFTRSwgJ2xvd2VySG9zdCcsICd1cHBlclNsb3QnLCB1
cHBlckNvbXBvc2VkUGF0aF0sCi0gICAgICAgIFsnYnViYmxpbmcnLCBFdmVudC5CVUJCTElOR19Q
SEFTRSwgJ2xvd2VySG9zdCcsICd1cHBlclNoYWRvd1Jvb3QnLCB1cHBlckNvbXBvc2VkUGF0aF0s
Ci0gICAgICAgIFsnYnViYmxpbmcnLCBFdmVudC5CVUJCTElOR19QSEFTRSwgJ2xvd2VySG9zdCcs
ICd1cHBlckhvc3QnLCBvdXRlckNvbXBvc2VkUGF0aF0sCi0gICAgICAgIFsnYnViYmxpbmcnLCBF
dmVudC5CVUJCTElOR19QSEFTRSwgJ2xvd2VySG9zdCcsICd0ZXN0NScsIG91dGVyQ29tcG9zZWRQ
YXRoXSwKLSAgICBdKTsKLX0sICdDYXB0dXJpbmcgZXZlbnQgbGlzdGVuZXJzIHNob3VsZCBiZSBp
bnZva2VkIGJlZm9yZSBidWJibGluZyBldmVudCBsaXN0ZW5lcnMgd2hlbiBhbiBldmVudCBpcyBk
aXNwYXRjaGVkIGluc2lkZSBhIHNoYWRvdyB0cmVlIHdoaWNoIHBhc3NlcyB0aHJvdWdoIGFub3Ro
ZXIgc2hhZG93IHRyZWUnKTsKLTwvc2NyaXB0PgotCi08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9tYXRobWwvbm9uLWNvcmUvZnJhYy1saW5ldGhpY2tuZXNzLTAwMS1l
eHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvbWF0aG1sL25vbi1jb3JlL2ZyYWMtbGluZXRoaWNr
bmVzcy0wMDEtZXhwZWN0ZWQuaHRtbAppbmRleCBlYzdhMzBkZTk1ZTIwNjQ1NGNkOTJkMjk2MzNi
NDQ1NTc3NGRlMzMyLi5iOWNkYjc2MTEyYTI2N2FlMDk5NGY1ODM1ZTVmZDZhN2MxZTYxNzE5IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tYXRobWwvbm9uLWNvcmUvZnJhYy1saW5ldGhpY2tuZXNz
LTAwMS1leHBlY3RlZC5odG1sCisrKyBiL0xheW91dFRlc3RzL21hdGhtbC9ub24tY29yZS9mcmFj
LWxpbmV0aGlja25lc3MtMDAxLWV4cGVjdGVkLmh0bWwKQEAgLTYsNyArNiw3IEBACiAgICAgPHN0
eWxlIHR5cGU9InRleHQvY3NzIj4KICAgICAgIEBmb250LWZhY2UgewogICAgICAgICBmb250LWZh
bWlseTogVGVzdEZvbnQ7Ci0gICAgICAgIHNyYzogdXJsKCIuLi8uLi9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZvbnRzL21hdGgvZnJhY3Rpb24tcnVsZXRoaWNrbmVzczEwMDAwLndv
ZmYiKTsKKyAgICAgICAgc3JjOiB1cmwoIi4uL3Jlc291cmNlcy9mcmFjdGlvbi1ydWxldGhpY2tu
ZXNzMTAwMDAud29mZiIpOwogICAgICAgfQogICAgICAgbWF0aCB7CiAgICAgICAgIC8qIEZyYWN0
aW9uUnVsZVRoaWNrbmVzcyA9IDEwMDAwICogMSAvIDEwMDAgPSAxMHB4OyAqLwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvbWF0aG1sL25vbi1jb3JlL2ZyYWMtbGluZXRoaWNrbmVzcy0wMDEuaHRt
bCBiL0xheW91dFRlc3RzL21hdGhtbC9ub24tY29yZS9mcmFjLWxpbmV0aGlja25lc3MtMDAxLmh0
bWwKaW5kZXggOWIxMDY3Y2RhMWM5NGQxZmJjMmQ0ZGM4NDI1OWM2NTdlZmYwZTZjMi4uMWU0MmJm
M2IyNGY4M2E3MmU3ZWIzY2RiMjc0MjE1YjYxNmIxNTYzOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvbWF0aG1sL25vbi1jb3JlL2ZyYWMtbGluZXRoaWNrbmVzcy0wMDEuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9tYXRobWwvbm9uLWNvcmUvZnJhYy1saW5ldGhpY2tuZXNzLTAwMS5odG1sCkBAIC04
LDcgKzgsNyBAQAogICAgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CiAgICAgICBAZm9udC1mYWNl
IHsKICAgICAgICAgZm9udC1mYW1pbHk6IFRlc3RGb250OwotICAgICAgICBzcmM6IHVybCgiLi4v
Li4vaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mb250cy9tYXRoL2ZyYWN0aW9uLXJ1
bGV0aGlja25lc3MxMDAwMC53b2ZmIik7CisgICAgICAgIHNyYzogdXJsKCIuLi9yZXNvdXJjZXMv
ZnJhY3Rpb24tcnVsZXRoaWNrbmVzczEwMDAwLndvZmYiKTsKICAgICAgIH0KICAgICAgIG1hdGgg
ewogICAgICAgICAvKiBGcmFjdGlvblJ1bGVUaGlja25lc3MgPSAxMDAwMCAqIDEgLyAxMDAwID0g
MTBweDsgKi8KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21hdGhtbC9ub24tY29yZS9mcmFjLWxp
bmV0aGlja25lc3MtMDAyLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9tYXRobWwvbm9uLWNv
cmUvZnJhYy1saW5ldGhpY2tuZXNzLTAwMi1leHBlY3RlZC5odG1sCmluZGV4IDFjYzk3OTE0MjQw
NTdhZjVlMTI5NTZiMzVjNTIwM2EzMGI2YmZlMmQuLjZiMmViM2E1NjA3NzIzNjFiZDJiMmJiODk1
ZTQyNDhlYjRlMDE4ZjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL21hdGhtbC9ub24tY29yZS9m
cmFjLWxpbmV0aGlja25lc3MtMDAyLWV4cGVjdGVkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvbWF0
aG1sL25vbi1jb3JlL2ZyYWMtbGluZXRoaWNrbmVzcy0wMDItZXhwZWN0ZWQuaHRtbApAQCAtNiw3
ICs2LDcgQEAKICAgICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgogICAgICAgQGZvbnQtZmFjZSB7
CiAgICAgICAgIGZvbnQtZmFtaWx5OiBUZXN0Rm9udDsKLSAgICAgICAgc3JjOiB1cmwoIi4uLy4u
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZm9udHMvbWF0aC9mcmFjdGlvbi1ydWxl
dGhpY2tuZXNzMTAwMDAud29mZiIpOworICAgICAgICBzcmM6IHVybCgiLi4vcmVzb3VyY2VzL2Zy
YWN0aW9uLXJ1bGV0aGlja25lc3MxMDAwMC53b2ZmIik7CiAgICAgICB9CiAgICAgICBtYXRoIHsK
ICAgICAgICAgLyogRnJhY3Rpb25SdWxlVGhpY2tuZXNzID0gMTAwMDAgKiAxIC8gMTAwMCA9IDEw
cHg7ICovCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tYXRobWwvbm9uLWNvcmUvZnJhYy1saW5l
dGhpY2tuZXNzLTAwMi5odG1sIGIvTGF5b3V0VGVzdHMvbWF0aG1sL25vbi1jb3JlL2ZyYWMtbGlu
ZXRoaWNrbmVzcy0wMDIuaHRtbAppbmRleCAwZWM2NDIzMmYxZTI2MWZhNWU4YWEyNTdhNmI4NmMw
OTE0ZTA2NjM4Li42MjIwMDI3NGMyMDNmZThmYjUxNTE0MzZhNGMwMmZlZTEyYWM0ODYzIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9tYXRobWwvbm9uLWNvcmUvZnJhYy1saW5ldGhpY2tuZXNzLTAw
Mi5odG1sCisrKyBiL0xheW91dFRlc3RzL21hdGhtbC9ub24tY29yZS9mcmFjLWxpbmV0aGlja25l
c3MtMDAyLmh0bWwKQEAgLTgsNyArOCw3IEBACiAgICAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4K
ICAgICAgIEBmb250LWZhY2UgewogICAgICAgICBmb250LWZhbWlseTogVGVzdEZvbnQ7Ci0gICAg
ICAgIHNyYzogdXJsKCIuLi8uLi9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZvbnRz
L21hdGgvZnJhY3Rpb24tcnVsZXRoaWNrbmVzczEwMDAwLndvZmYiKTsKKyAgICAgICAgc3JjOiB1
cmwoIi4uL3Jlc291cmNlcy9mcmFjdGlvbi1ydWxldGhpY2tuZXNzMTAwMDAud29mZiIpOwogICAg
ICAgfQogICAgICAgbWF0aCB7CiAgICAgICAgIC8qIEZyYWN0aW9uUnVsZVRoaWNrbmVzcyA9IDEw
MDAwICogMSAvIDEwMDAgPSAxMHB4OyAqLwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWF0aG1s
L25vbi1jb3JlL2xlbmd0aHMtMS5odG1sIGIvTGF5b3V0VGVzdHMvbWF0aG1sL25vbi1jb3JlL2xl
bmd0aHMtMS5odG1sCmluZGV4IGRhYWQ1NmJhMzA4OGI4NDJlNTUzNGExYzgzZmMwNWFjMTk2ZWE2
MTkuLmIzNWI1NGI2ZGVmMmExMDdhMjI5OWNjZjcwZWI1OTc4OTMwMWZhOTMgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL21hdGhtbC9ub24tY29yZS9sZW5ndGhzLTEuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9tYXRobWwvbm9uLWNvcmUvbGVuZ3Rocy0xLmh0bWwKQEAgLTgsNyArOCw3IEBACiA8c3R5
bGU+CiAgIEBmb250LWZhY2UgewogICAgIGZvbnQtZmFtaWx5OiBUZXN0Rm9udDsKLSAgICBzcmM6
IHVybCgiLi4vLi4vaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mb250cy9tYXRoL3ho
ZWlnaHQ1MDAud29mZiIpOworICAgIHNyYzogdXJsKCIuLi9yZXNvdXJjZXMveGhlaWdodDUwMC53
b2ZmIik7CiAgIH0KICAgc3BhbiwgbWF0aCB7CiAgICAgZm9udC1mYW1pbHk6IFRlc3RGb250Owpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWF0aG1sL25vbi1jb3JlL2xlbmd0aHMtMi5odG1sIGIv
TGF5b3V0VGVzdHMvbWF0aG1sL25vbi1jb3JlL2xlbmd0aHMtMi5odG1sCmluZGV4IDNkMGIzYjdh
NjM3YTg2MWNhMDFjZjQ3Y2UyNTQzNGZmMWUzYjRjYzMuLmI3NDkyM2I1NzRlNDE2NzlhZjY5MzEw
NmQ2MWQwYjc0ZTJiZmEwMGMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL21hdGhtbC9ub24tY29y
ZS9sZW5ndGhzLTIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9tYXRobWwvbm9uLWNvcmUvbGVuZ3Ro
cy0yLmh0bWwKQEAgLTgsNyArOCw3IEBACiA8c3R5bGU+CiAgIEBmb250LWZhY2UgewogICAgIGZv
bnQtZmFtaWx5OiBUZXN0Rm9udDsKLSAgICBzcmM6IHVybCgiLi4vLi4vaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9mb250cy9tYXRoL3hoZWlnaHQ1MDAud29mZiIpOworICAgIHNyYzog
dXJsKCIuLi9yZXNvdXJjZXMveGhlaWdodDUwMC53b2ZmIik7CiAgIH0KICAgbXBhZGRlZCB7CiAg
ICAgZm9udC1mYW1pbHk6IFRlc3RGb250OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWF0aG1s
L25vbi1jb3JlL2xlbmd0aHMtMy5odG1sIGIvTGF5b3V0VGVzdHMvbWF0aG1sL25vbi1jb3JlL2xl
bmd0aHMtMy5odG1sCmluZGV4IDMxMTY0N2MzNGNhNGM2MWUzZTkxZTExMDhkZGYzODFkMjVhZGE3
ZjAuLjU4OTdhNjE4NjQyMDRhMTdiOTcxMWM4MDdlZjM0NmEyMjMwMTZiZmYgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL21hdGhtbC9ub24tY29yZS9sZW5ndGhzLTMuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9tYXRobWwvbm9uLWNvcmUvbGVuZ3Rocy0zLmh0bWwKQEAgLTksNyArOSw3IEBACiA8c3R5
bGU+CiAgIEBmb250LWZhY2UgewogICAgIGZvbnQtZmFtaWx5OiBUZXN0Rm9udDsKLSAgICBzcmM6
IHVybCgiLi4vLi4vaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mb250cy9tYXRoL3ho
ZWlnaHQ1MDAud29mZiIpOworICAgIHNyYzogdXJsKCIuLi9yZXNvdXJjZXMveGhlaWdodDUwMC53
b2ZmIik7CiAgIH0KICAgbWF0aCB7CiAgICAgZm9udC1mYW1pbHk6IFRlc3RGb250OwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvbWF0aG1sL3ByZXNlbnRhdGlvbi9yYWRpY2FsLWJhci12aXNpYmls
aXR5Lmh0bWwgYi9MYXlvdXRUZXN0cy9tYXRobWwvcHJlc2VudGF0aW9uL3JhZGljYWwtYmFyLXZp
c2liaWxpdHkuaHRtbAppbmRleCAzZWEzMDY2YjRlMTkxNzE2YjY5MTBmZWE4NGU2OTBkNjEyYjFi
OTU4Li4wMWVmNTY2MjE3NTEyYjNhOTU2YTdhNzdmMWJiNzkwMjdiMTVhMDUxIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9tYXRobWwvcHJlc2VudGF0aW9uL3JhZGljYWwtYmFyLXZpc2liaWxpdHku
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9tYXRobWwvcHJlc2VudGF0aW9uL3JhZGljYWwtYmFyLXZp
c2liaWxpdHkuaHRtbApAQCAtNiw3ICs2LDcgQEAKICAgICA8c3R5bGU+CiAgICAgICBAZm9udC1m
YWNlIHsKICAgICAgICAgZm9udC1mYW1pbHk6IFRlc3RGb250OwotICAgICAgICBzcmM6IHVybCgi
Li4vLi4vaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mb250cy9tYXRoL3JhZGljYWwt
ZGVncmVlYm90dG9tcmFpc2VwZXJjZW50MjUtcnVsZXRoaWNrbmVzczEwMDAud29mZiIpOworICAg
ICAgICBzcmM6IHVybCgiLi4vcmVzb3VyY2VzL3JhZGljYWwtZGVncmVlYm90dG9tcmFpc2VwZXJj
ZW50MjUtcnVsZXRoaWNrbmVzczEwMDAud29mZiIpOwogICAgICAgfQogICAgICAgbWF0aCwgbXNx
cnQgewogICAgICAgICAvKiBUZXN0Rm9udCBoYXMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21h
dGhtbC9yZXNvdXJjZXMvZnJhY3Rpb24tcnVsZXRoaWNrbmVzczEwMDAwLndvZmYgYi9MYXlvdXRU
ZXN0cy9tYXRobWwvcmVzb3VyY2VzL2ZyYWN0aW9uLXJ1bGV0aGlja25lc3MxMDAwMC53b2ZmCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmVjNjlmMjQyNGYyN2NjMjZmNzEzZWM0NmRjNWUzMjI5NjUyYzZiNGUKR0lUIGJp
bmFyeSBwYXRjaApsaXRlcmFsIDExNjAKemNtWFQtY1hSVSgzR3J1T1ZDaTdzVyZpPz83NndLVGpS
fkNIKyFQb1htYCM4KDJaOHYqX29jaG55MTlrOzA+eXArCnpgQkZlRVF5c1QpbSM8QHAyaGNuYkFV
fjZWZmlaJUsmM0wxS3UpWXo5NEhVQmg7c2xgXjAkajx0aTNKUHtPaXpHKAp6YkQqM1AxMjZOampN
VCZ3QWUjZHlyVWtAaT49fiFeR2t9NlhGXzY2PUo1KlJnbk98cSptUSg9a1hhTXAtWUJ8XzEKekZm
aW1NUnNoWG8zO149a3o/ZG4zQXVsbUU2KH18WmkyWj0+RzxLVDFvVTAoZXhDRj9TMGpkIUxWdWs7
MDQ4fDM2CnprYHEhQTUqUXZ5LW5xMj1AejMwU01nXytFOE0rSyYwIXU/KG1vMDIpWnNjQGZXTyVF
fV9LfEBCczwhVW5mZGRubQp6KWZeaXBHS3Z+N0dUN0BkeGRUbU8wOXd4a1FJbEFBKDR3KCVZR2RR
Zl9NNlIoamZ0IStYKztTZShvQzJ5QHZORHsKelZ7cVVeMUR9K0hoPWo8RGMhbyR6aUwzQEFvKnNz
YlN+ajVoVFBOKHpJJjJgKStDTkFCTVVkQlpvJD9HdE50cT1xCnpKfTFTUEIpdkFKblkocW1JISFy
c1lDYHlfMyYmcUhtJUtDSHZVbDI1em9rPjBiYjlQT3BXbUAoeEwob2JAY0N9Qwp6VkJ+YEs7d0xR
SUU0dUYtWU9kKEk8TDFBfD9jRD5sZyhxVWEycCNzaXhiTTtCPGJ0YUA2QXJyaTZ8XyUzcCkyITIK
emFBJlgyOU9aSXtONDc9Y2smNnRQUXtRJGptZEZWPilPXjlja0AzQjxoc0hVRjImTCFLQ3cqc356
aWRUQ1daMkF0Cnp7MkFYNW9SUlo4bSplSUNIXzFWSHJCVCRnZUtDMyZRSzghbWNBOEkxJXwxN0Ve
WV8hIUttRntHRWpmfCFCbFl4bAp6dDB3XzVqKy19PlJSKiRxKyR+JlFvN3dkP0Vffnt3S00oVC0+
eHxBaGJLMVM+Vl8pRVcraipMPitNb2FIWnlafX4KemtYQm5leVJLaVRjPXp8PipKaVdhb0lRbnFF
IUN8SGVIP09maWA+KUhYV05xWUNmNXAyWTt0Yj5IcnM1JnJGQldoCnpvLTVsKko7Z08yMyhFLTFr
YzdsVkxQQTxZZitVKzhvNF5MZlBaOUBmI01vRkImTjgocT5edD1UenJkJmUmTVVtdwp6K3wxWXtn
dysqUD81ezh+TD8qSWIyRkcoNkwtWVQkSlo9dE02QiY2SzcmSmx8Y1lAN0pOa35qZ05KKkxFc3FO
KlgKemNrO35uJWVxPTtKI3xsPkBIdXpSVFVYRF9nbl4wOE8kfSg8VGxxZ2NfRGR3fFBaPDIya29y
Jlk7SEFUZFp9NzZMCnpHMipISW5KT1d7a3xNIyFhbXR8Smd1eHp4cXkpQ2lmYUhSZGo+Mj5MRHxB
bHpvWXg0djtCaFUpent0UVBfPUImYAp6JHEhIXgzdn4zKGBKZU0peCFITDx1alUqUmxOKzB3bzE1
eT5jWUUjcS1scEUhe3ImbTB5PVNWQSlfTU45QD5+N2oKencoc1pWRlVse2slbGxjfUhNanFMYygy
Rnk0MEM+UWhDOUR+JmpWOF9DPURraHElYnN7UihrYlE7YUF0SCltbEFsCnozPGg+QXRgSXEzVVUt
bUhhYlUlOWZkZEpMdEopaCkzWWZnSWclKn1jRio3STJkfntwUW9uWVI0a2ZVcWomNVJqPQp6UXlM
JD40Xl9DYCo0WFVHPEZUM3soYF5IMVBlUkEzVjgkZGxIYnBqMEhwQEJaOGRyIWd0X29uPntOdW5n
Q3puSk0KUkFyXisqWDxVemk/cUdmYSEyclIhdVFDN3QKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21hdGhtbC9yZXNvdXJjZXMvcmFkaWNhbC1kZWdyZWVi
b3R0b21yYWlzZXBlcmNlbnQyNS1ydWxldGhpY2tuZXNzMTAwMC53b2ZmIGIvTGF5b3V0VGVzdHMv
bWF0aG1sL3Jlc291cmNlcy9yYWRpY2FsLWRlZ3JlZWJvdHRvbXJhaXNlcGVyY2VudDI1LXJ1bGV0
aGlja25lc3MxMDAwLndvZmYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjQwMTA3MGQ0NGZlZDhkMjdjNjg4YTkzMWQy
NzdiY2UyZWY3MTUxNwpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMTQwMAp6Y21aWFVkbyt9MzlM
SnlXbmltOzBuQU9PZm51eWI/T2ZDX3ZhO1pAP0VeQ05OLVdrbHlYNUVIJD9idy09JU5RRCQKeior
VV5vUTUkRGRpaURYYE1rckNPKl9LajVvTVNWYlRzUWwkbXcpem0mZ1o8KF94cGEmQEE8dmcxVFEr
PmlePW8/CnowR3xsNzBXNTcyel54cXJVI0BnSTYjeWc/MDJ+ZHs7KikxQnB3cFFRME1ye2BkSU4t
IzY3SXJnSTVRN0k/Ki1JXwp6RmVrRCVGOzRkS3JDR3VDYXAqWmdGbnpMPmRQb0UtOHVyQGB3SlNY
NXpKS2VgQVROdiszZkcjQHZ3K3hZMlpibF8KenBiNVIqUF9PSzxNYmk8UDs2PW5HIWtLd2M2SWFt
YTBVJn52Mj5hb2ZQQH03JC1YTXx7NWVCXnlOR19iST1EYjs2CnpTYWVpdTlOWlVYZmRQY05vRFFy
TE9HMjx2MzxLPXVvbGxpaE9TWnY9NGFMRlcwSilZbz51PW9HTVZuZz56RnYhKAp6NSFWNW9CJnxw
UXs+aTd4V2lrbjM9S01WIVd5O2luY1IyI0Q1Ji1ZajMwNSshUlFZYjlQJTBEX1hESEt6TEtnbEUK
emhtWlpqdXxhd1hIJWJVUVd0d2VrMzVzJXx2LTJVKkpZRkpBdDM9Z0UwKk5rMiRWUUpSbVVRUVBv
aXdyfUojSDxJCnpBdCh6KyhCSVZjIylfVX03bD9JUUN7NHNybjhoaWw9N3gwZHhYfnxmPVYjUzZQ
MiFSeld0VEtNPmZSYGY3ZkRDSQp6VmI3JUk1QUpoeDFlLXFUWXZzTiVIT1NLIVB3bkIweWdGPzg+
RnFOWEQpNEAwbSYkTjJYSSkrZm5jR0BqT25CUDMKekspSTNaKiZ7cFBJYzNfSVN1KjZOYSNSN3Yh
Vlotb15DITJCNiYpPlhHI2ZjRl82VCMwK1BMT09icXBpMExoIWlvCnpfV25sJj4zc1ExTX5BZkBK
TT0mNkd+emoqS2ZVWF5JeUhYMSNYc3kpKXljcWxQTlZtMTVJNVg2RGRnRytANzdmWQp6cXRWc1Zm
RjU2aC08R1ZSNyVZfV4kITxqI3F5MXRkbGw8OCgrY0xPRUpydmh4PnB2OHF4bz5sOFFzYTJOP0dO
PngKenp0K1ZWWjx9WnlYbkdSSUNtISpiPXNZeDhtaGpIVkh8cDMmaGFsNEoxQDZjRHc0OXtzWXdM
T35IKjVXMlN6JlZhCnoqcTd5Pk1lViF8Yn11R3BSZDtKO3p1IXJYOUgyQXAmMG98a1R1QU9he0FU
IWBWbG0hK2VsVCYzezlnWWpeTT45Ygp6cFdHYEMzTDBgNXdJWXt1MyRJSFRhPXJqJiVpezNnJm02
LXowP1pKbHFyXztPaVl6fjZmYSp9WShNbShaQX5MRDQKel4yQFNATjxPb2trcjM/azYyWH1tQSph
KDJWKlZ5fEw2JS1PbUBDalNUWVlhaEFaQHZ1S3o5PTU7ZEI3bD5XNkR3Cno+MEsmbV47Qn52S0lY
bnZIX0BvdEZKYkZATU58cVhWfVZNdHdvd3gzb2JII1EhLUBmUmc+ckQ7c0g9Q3Q5M2FeKQp6c3hr
TEl0PXJ0eilFM312UlhsR3RaKDB6PUFyY1ZjYkRkXzM+MU5odGtDZT88V150bygqUmgrS3ghO1pU
PXwobD4Kekx8YXdmZjNfc2dyMkJOblAtRnpFalRBcGxsJFFGcTFeUVg8SnVEOHtrLTJOWUlOK3xQ
JXRBaXhzT0VQJUk4MEd4Cnp7bzREQzYtOHokOS00bVV6PHpkSD5iXiZNWVhWeSQpdCRLYngrLS1i
YSEtd1IpQkNCXihOYF5eM0tANEpTSSNTXwp6dkFidVopd2NmQkJmQz0+bHlfNUVEWTE1JFNJJkRC
QCt9SmoxN0ZyM2kxcTkyXyl1M2RsQzkqSShXTG9xKnRnMzUKejkrenlYTFZFU3d2UzllZlNCSGpE
TigxQHxje2V2NVZhS3s8Wig7YW15WXp9JHFxZGZydGxtY3EzazliO2ptUEp5CnozIT9aYVEheHRj
OVBuQkhlVmNGRGlMJlo7cTZ+WU9vRlRNe1ImeCo2eUE7MHhLfCgwSDw2YFBieHM1bXs2Y3owagp6
PileWCtKemU+c1ohc2QkWXdtUGpjbCFnKV55K1dFcUs+ZUxZelpjTF98WkptVF5IUyN6N3NYMGRW
dVBxOFd0ODAKeldlO1IrT1ptZCRLYUNPWFN4P21lJWhfbXFCQnU1UDMySlhmaDdYUmNAMXBoNzFS
c2paJChwIWp2RUM+JDJMQ3ZhCkdmOW8kWTs0d0o+CgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tYXRobWwvcmVzb3VyY2VzL3hoZWlnaHQ1MDAud29mZiBi
L0xheW91dFRlc3RzL21hdGhtbC9yZXNvdXJjZXMveGhlaWdodDUwMC53b2ZmCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
Ljc2YTM3ZGE5ZTQwOTJhMDA1NDMyMDU3NDk3NjIxNmU4N2M3NDYyYTMKR0lUIGJpbmFyeSBwYXRj
aApsaXRlcmFsIDEwNDgKemNtWFQtY1hSVSgzR3J1T1YzQTxwVmdMZCo2JFZCU2pSfkNIKyFQb1ht
e291PlhNcCZJbCQ/ZiNuX0d4NFEweFBjCnpGOXBPaClqOHI4ez14YzIzPUU3T0spd1NJQ2tXalQz
UU52U0VNUTxASXMpWG8wX0Q2STk8dyVOcSRae1NgQ291bwp6NH5XZ1U8QlMkJjAwbnthQVVpPGpz
Y19nYnpzfEBsc1F8aTwyZ25EeGtjPDVTMTRDfE4xPCpXMzJPeXNmakZ8JSUKekApQzFYZm5wcyVZ
eS01KiZBTlR3e0RTPUE1fV5BKWRjfVpQO2VRKjBhbUFlRWdwYEI/aERXVlVUTk9ZNEZeaVluCnpG
KkJhUVJicEw2ZVNNUlVAJjFIQU9pTF56VztvYXxjbkVYdldNRmAqdVJEMCl6eXhNQiN+ZTRka09N
M1gwU2xPYwp6ekdQcXMwMiZXYmxVUjRxcU9veW1XOD0qQm82VWBsaUw1UFlNRnxfeU9xZWg2dGVM
fU9hTnRBKHBPbDElZ3d+OUIKemhEZ2czU3JZcGhJOVV9XlNReDU+Kj9sWUteaURZS2I9WDBxP2Yq
O1BIJT44TTd9O0VNI0M0NHVyYD9LT25XRElvCnpUbHtYaiZ9NF5+USNgeEFAIXJ8LU5pYz9NVXhO
OStuTFdEJU9gTTxBSmcrOylVfiFuODw8KXpraVJxMWNeSzh1dgp6biN8QXAjeW90bnZ2dTgkWitE
TEV0b1UkZTtvc0pZaSVQeFRVUH0kdHh6UE9lUFF2fjBeUypaOy1Zdz5+RXF1Nj4KelMyTkcxSmZy
Pnk2UHZZNmdzT1dOa0UrVkFoLTMjejJnaFdtRDVZaVVpK2ZnXzRnNFZDX1ZuRG0kPWVTY2RjJFl0
Cnp6ZDdqSmIhSkhvK2xpLWxvUzhPcGooQlYyXlRMX1paTUdaektIYmVkQmlENklYUWsyY3R7VlVI
RT9ZQzV5cD9KJQp6Png2fSF0fWlST1dUYUg2KyY0cWRAYlVsWGhxbzNSOS1YbEwoY2k1aVBNZFh8
bFB8bGxEWFhTYE5AdmxrdmJ2SEwKekAlQlQxVnxZcFFLOTllQW1zbTUqQlcjKCVJKDJ2SzQpTisy
ZEhwfjN2I3t1XnM5bTc9Tmt+WCpOUlZXNlYtcU1+Cnp7M0xPKE12UlNEO1ZqentOeSE8WTVkWmd8
e25Ob098SihvWFVodH4xVlBZQGkhR253KENuc355JFZreSEkLXJSaQp6I2hDPCpOc3V7ZDQ5KSt+
XjAreTRPPVJSe1Y5KkY8Z3Y1VkpMU2tZPE8zSVVVQ3BeeWpvWXlja0hBcU5FTmxIayQKekBifT5Q
NTYtaGJ3KTAlKGs5O09DcStASC1iTkJCNHRoJG03cndxUClJQmo2U2FsKmh5V0o9PEwkJXopS00t
SzJACnpUNjhTb0sqR35HQGQxJTZNeEt0IWstLU5+OUp0X2YoMHJySDtwXkBQSH0wXm93PX58VVZy
PFchQ14+MVghK3tlNQp6Q2w4IUN2MF9RaW94Ul9XdWlWPkh7ciVzYVAxN3NhLV9ZLXpVLWUoKiM8
emJ6bTQ3fEhhJGRMSVp7ejJXeCpFU1AKejJBO2NkbVp8OVNla3Jxa0B1b181N3V+JlVaPyleQHVG
NCRAVS1qS2ZBWXFsbCZ+I2VxKWxZP0FVRWpXfDglUXhZClBCKE5JO2xrcDEoMkJtNU1VckxXagoK
bGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>