<?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>16762</bug_id>
          
          <creation_ts>2008-01-05 23:11:32 -0800</creation_ts>
          <short_desc>Shift-clicking on &quot;Acid3&quot; to see failure results shows blank white page</short_desc>
          <delta_ts>2008-01-06 00:21:34 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>DUPLICATE</resolution>
          <dup_id>8961</dup_id>
          
          <bug_file_loc>http://www.hixie.ch/tests/evil/acid/003/NOT_READY_PLEASE_DO_NOT_USE.html</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>NeedsReduction</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ian</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>66351</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2008-01-05 23:11:32 -0800</bug_when>
    <thetext>Shift-clicking on &quot;Acid3&quot; to see failure results shows blank white page

Shift-clicking on Acid3 is supposed to list the failures, not just show a white page.  We&apos;re doing something wrong here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>66352</commentid>
    <comment_count>1</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2008-01-05 23:12:50 -0800</bug_when>
    <thetext>  function report(event) {
    if (event.shiftKey)
       document.write(&apos;&lt;pre&gt;Failed &apos; + (tests.length - score) + &apos; of &apos; + tests.length + &apos; tests.\n&apos; + log);
    else
       alert(&apos;Failed &apos; + (tests.length - score) + &apos; test&apos; + (score == 1 ? &apos;&apos; : &apos;s&apos;) + &apos;.\n&apos; + log)
  }

That&apos;s the code which must be failing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>66353</commentid>
    <comment_count>2</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2008-01-05 23:13:52 -0800</bug_when>
    <thetext>I bet it&apos;s an unterminated &lt;pre&gt; tag which we&apos;re tripping over.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>66354</commentid>
    <comment_count>3</comment_count>
      <attachid>18295</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2008-01-05 23:17:00 -0800</bug_when>
    <thetext>Created attachment 18295
current Acid3 test (Hixie plans to work around this bug)

Hixie plans to work around this bug, since he didn&apos;t intend to hit it.  So I&apos;ve attached the current version of the Acid3 test in case he&apos;s successful in working around the bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>66359</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2008-01-06 00:21:34 -0800</bug_when>
    <thetext>

*** This bug has been marked as a duplicate of 8961 ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>18295</attachid>
            <date>2008-01-05 23:17:00 -0800</date>
            <delta_ts>2008-01-05 23:17:00 -0800</delta_ts>
            <desc>current Acid3 test (Hixie plans to work around this bug)</desc>
            <filename>NOT_READY_PLEASE_DO_NOT_USE.html</filename>
            <type>text/html</type>
            <size>102182</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMC8vRU4iPgo8aHRtbD4K
IDx0aXRsZT5UaGUgQWNpZDMgVGVzdDwvdGl0bGU+CiA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCI+CiAgdmFyIHN0YXJ0VGltZSA9IG5ldyBEYXRlKCk7CiA8L3NjcmlwdD4KIDxzdHlsZSB0
eXBlPSJ0ZXh0L2NzcyI+CiAgLyogc2V0IHNvbWUgYmFzaWMgc3R5bGVzIHNvIHRoYXQgd2UgY2Fu
IGdldCByZWxpYWJseSBleGFjdCByZXN1bHRzICovCiAgKiB7IG1hcmdpbjogMDsgcGFkZGluZzog
MDsgYm9yZGVyOiAxcHggc2lsdmVyOyBib3JkZXItc3BhY2luZzogMDsgZm9udDogaW5oZXJpdDsg
bGluZS1oZWlnaHQ6IDEuMjsgY29sb3I6IGluaGVyaXQ7IGJhY2tncm91bmQ6IHRyYW5zcGFyZW50
OyB9CiAgOmxpbmssIDp2aXNpdGVkIHsgY29sb3I6IGJsdWU7IH0KCiAgLyogaGVhZGVyIGFuZCBn
ZW5lcmFsIGxheW91dCAqLwogIGh0bWwgeyBmb250OiAyMHB4IEFyaWFsLCBzYW5zLXNlcmlmOyBi
b3JkZXI6IDJjbSBzb2xpZCBncmF5OyB3aWR0aDogMzJlbTsgbWFyZ2luOiAxZW07IH0KICA6cm9v
dCB7IGJhY2tncm91bmQ6IHNpbHZlcjsgY29sb3I6IGJsYWNrOyBib3JkZXItd2lkdGg6IDAgMC4y
ZW0gMC4yZW0gMDsgfSAvKiBsZWZ0IGFuZCB0b3AgY29udGVudCBlZGdlczogMSoyMHB4ID0gMjBw
eCAqLwogIGJvZHkgeyBwYWRkaW5nOiAyZW07IGJhY2tncm91bmQ6IHdoaXRlOyBib3JkZXI6IHNv
bGlkIDFweCBibGFjazsgbWFyZ2luOiAtMC4yZW0gMCAwIC0wLjJlbTsgfSAvKiBsZWZ0IGFuZCB0
b3AgY29udGVudCBlZGdlczogMjBweC0wLjIqMjBweCsxcHgrMioyMHB4ID0gNTdweCAqLwogIGgx
OmZpcnN0LWNoaWxkIHsgZm9udC1zaXplOiA1ZW07IGZvbnQtd2VpZ2h0OiBib2xkZXI7IG1hcmdp
bi1ib3R0b206IC0wLjRlbTsgdGV4dC1zaGFkb3c6IHJnYmEoMTkyLCAxOTIsIDE5MiwgMS4wKSAz
cHggM3B4OyB9IC8qIChsZWZ0OjU3cHgsIHRvcDo1N3B4KSAqLwogICNyZXN1bHQgeyBmb250LXdl
aWdodDogYm9sZGVyOyB3aWR0aDogNS4yZW07IHRleHQtYWxpZ246IHJpZ2h0OyB9CiAgI3Jlc3Vs
dCB7IGZvbnQtc2l6ZTogNWVtOyBtYXJnaW46IC0yLjdlbSAwIDA7IH0gLyogKHJpZ2h0OjU3cHgr
NS4yKjUqMjBweCA9IDU3N3B4LCB0b3A6NTdweCsxLjIqNSoyMHB4LTAuNCo1KjIwcHgrMTY3cHgr
MTUwcHgtMi43KjUqMjBweCA9IDE3OXB4KSAqLwogIC5oaWRkZW4geyB2aXNpYmlsaXR5OiBoaWRk
ZW47IH0KICAjcGVyY2VudCB7IGNvbG9yOiByZWQ7IGNvbG9yOiBoc2xhKDAsIDAlLCAwJSwgMS4w
KTsgfQogICNpbnN0cnVjdGlvbnMgeyBtYXJnaW4tdG9wOiAyLjYyNWVtOyBmb250LXNpemU6IDAu
OGVtOyBjb2xvcjogZ3JheTsgY29sb3I6IC1hY2lkMy1ib2d1czsgaGVpZ2h0OiA0LjE3NWVtOyB9
IC8qIChsZWZ0OjU3cHgsIHRvcDoxNzlweCsxLjIqNSoyMHB4KzIuNjI1KjAuOCoyMHB4ID0gMzQx
cHgpICovCiAgaWZyYW1lIHsgZmxvYXQ6IGxlZnQ7IGhlaWdodDogMDsgd2lkdGg6IDA7IH0gLyog
aGlkZSBpZnJhbWVzIGJ1dCBkb24ndCBtYWtlIHRoZW0gZGlzcGxheTogbm9uZSAqLwogIG9iamVj
dCB7IHBvc2l0aW9uOiBmaXhlZDsgbGVmdDogMTMwLjVweDsgdG9wOiA4NC4zcHg7IGJhY2tncm91
bmQ6IHRyYW5zcGFyZW50OyB9IC8qIHNob3cgb2JqZWN0cyBpZiB0aGV5IGhhdmUgY29udGVudCAq
LwoKICAvKiBzZXQgdGhlIGxpbmUgaGVpZ2h0IG9mIHRoZSBsaW5lIG9mIGNvbG91cmVkIGJveGVz
IHNvIHdlIGNhbiBhZGQgdGhlbSB3aXRob3V0IHRoZSBsYXlvdXQgY2hhbmdpbmcgaGVpZ2h0ICov
CiAgLmJ1Y2tldHMgeyBmb250OiAwLzAgQWhlbTsgfSAvKiBBaGVtIGlzbid0IHN0cmljdGx5IHJl
cXVpcmVkLCBpdCBqdXN0IGhlbHBzIG1ha2Ugc3VyZSBjcmF6eSBmb250cyBkb24ndCBhZmZlY3Qg
dGhlIHRlc3QuIFNvIGRvZXMgdGhlICcwJy4gKi8KICAuYnVja2V0cyB7IHBhZGRpbmc6IDAgMCAx
NTBweCAzcHg7IH0KCiAgLyogdGhlIG5leHQgdHdvIHJ1bGVzIGdpdmUgdGhlIHNpeCBjb2xvdXJl
ZCBibG9ja3MgdGhlaXIgZGVmYXVsdCBzdHlsZXMgKHRoZXkgbWF0Y2ggdGhlIHNhbWUgZWxlbWVu
dHMpOyB0aGUgdGhpcmQgaGlkZXMgdGhlbSAqLwogIDpmaXJzdC1jaGlsZCArICogLmJ1Y2tldHMg
cCB7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgdmVydGljYWwtYWxpZ246IDJlbTsgYm9yZGVyOiAy
ZW0gZG90dGVkIHJlZDsgcGFkZGluZzogMS4wZW0gMS4zZW07IH0KICAqICsgKiA+ICogPiBwIHsg
bWFyZ2luOiAwIDAuMmVtOyBib3JkZXI6IDFweCBzb2xpZCAhIGltcG9ydGFudDsgfQogIC56IHsg
dmlzaWJpbGl0eTogaGlkZGVuOyB9IC8qIG9ubHkgbWF0Y2hlcyB0aGUgYnVja2V0cyB3aXRoIG5v
IHNjb3JlICovCgogIC8qIHNpemVzIGZvciB0aGUgc2l4IGJ1Y2tldHMgKi8KICAjYnVja2V0MSB7
IGZvbnQtc2l6ZTogMjBweDsgfQogICNidWNrZXQyIHsgZm9udC1zaXplOiAyNHB4OyB9CiAgI2J1
Y2tldDMgeyBmb250LXNpemU6IDI4cHg7IH0KICAjYnVja2V0NCB7IGZvbnQtc2l6ZTogMzJweDsg
fQogICNidWNrZXQ1IHsgZm9udC1zaXplOiAzNnB4OyB9CiAgI2J1Y2tldDYgeyBmb250LXNpemU6
IDQwcHg7IH0KCiAgLyogY29sb3VycyBmb3IgdGhlbSAqLwogIC56LCAuelAsIC56UFAsIC56UFBQ
LCAuelBQUFAsIC56UFBQUFAgeyBiYWNrZ3JvdW5kOiBibGFjazsgfQogIC56UFBQUFBQLCAuelBQ
UFBQUFAsIC56UFBQUFBQUFAsIC56UFBQUFBQUFAsIC56UFBQUFBQUFBQLAogIC56UFBQUFBQUFBQ
UCB7IGJhY2tncm91bmQ6IGdyZXk7IH0KICAuelBQUFBQUFBQUFBQLCAuelBQUFBQUFBQUFBQUCwg
LnpQUFBQUFBQUFBQUFBQLAogIC56UFBQUFBQUFBQUFBQUFAsIC56UFBQUFBQUFBQUFBQUFBQIHsg
YmFja2dyb3VuZDogc2lsdmVyOyB9CiAgI2J1Y2tldDEuelBQUFBQUFBQUFBQUFBQUFAgeyBiYWNr
Z3JvdW5kOiByZWQ7IH0KICAjYnVja2V0Mi56UFBQUFBQUFBQUFBQUFBQUCB7IGJhY2tncm91bmQ6
IG9yYW5nZTsgfQogICNidWNrZXQzLnpQUFBQUFBQUFBQUFBQUFBQIHsgYmFja2dyb3VuZDogeWVs
bG93OyB9CiAgI2J1Y2tldDQuelBQUFBQUFBQUFBQUFBQUFAgeyBiYWNrZ3JvdW5kOiBsaW1lOyB9
CiAgI2J1Y2tldDUuelBQUFBQUFBQUFBQUFBQUFAgeyBiYWNrZ3JvdW5kOiBibHVlOyB9CiAgI2J1
Y2tldDYuelBQUFBQUFBQUFBQUFBQUFAgeyBiYWNrZ3JvdW5kOiBwdXJwbGU7IH0KCiAgLyogVGhl
IGxpbmUtaGVpZ2h0IGZvciB0aGUgLmJ1Y2tldCBkaXYgaXMgd29ya2VkIG91dCBhcyBmb2xsb3dz
OgogICAqCiAgICogVGhlIGRpdi5idWNrZXQgZWxlbWVudCBoYXMgYSBsaW5lIGJveCB3aXRoIGEg
ZmV3CiAgICogaW5saW5lLWJsb2Nrcy4gRWFjaCBpbmxpbmUtYmxvY2sgY29uc2lzdHMgb2Y6CiAg
ICoKICAgKiAgICAgMi4wZW0gdmVydGljYWwtYWxpZ24gZnJvbSBiYXNlbGluZSB0byBib3R0b20g
b2YgaW5saW5lLWJsb2NrCiAgICogICAgIDFweCBib3R0b20gYm9yZGVyCiAgICogICAgIDEuMGVt
IGJvdHRvbSBwYWRkaW5nCiAgICogICAgIDEuMGVtIHRvcCBwYWRkaW5nCiAgICogICAgIDFweCB0
b3AgYm9yZGVyCiAgICoKICAgKiBUaGUgYmlnZ2VzdCBpbmxpbmUtYmxvY2sgaGFzIGZvbnQtc2l6
ZTogNDBweC4KICAgKgogICAqIFRodXMgdGhlIGRpc3RhbmNlIGZyb20gdGhlIGJhc2VsaW5lIHRv
IHRoZSB0b3Agb2YgdGhlIGJpZ2dlc3QKICAgKiBpbmxpbmUtYmxvY2sgaXMgKDJlbSsxZW0rMWVt
KSoyZW0qMjBweCsycHggPSAxNjJweC4KICAgKgogICAqIFRoZSBsaW5lIGJveCBpdHNlbGYgaGFz
IG5vIG90aGVyIGNvbnRlbnRzLCBhbmQgaXRzIHN0cnV0IGhhcyB6ZXJvCiAgICogaGVpZ2h0IGFu
ZCB0aGVyZSBpcyBubyBoYWxmLWxlYWRpbmcsIHNvIHRoZSBoZWlnaHQgb2YgdGhlCiAgICogZGl2
LmJ1Y2tldCBpcyAxNjJweC4KICAgKgogICAqIChXaHkgdXNlIGxpbmUtaGVpZ2h0OjAgYW5kIGZv
bnQtc2l6ZTowPyBXZWxsOgogICAqCiAgICogVGhlIGRpdi5idWNrZXQgbGluZSBib3ggd291bGQg
aGF2ZSBhIGhlaWdodCB0aGF0IGlzIHRoZSBtYXhpbXVtCiAgICogb2YgdGhlIGZvbGxvd2luZyB0
d28gc3VtczoKICAgKgogICAqICAxOiBoYWxmLWxlYWRpbmcgKyBmb250IGRlc2NlbnQgYXQgMWVt
ICsgZm9udCBhc2NlbnQgYXQgMWVtICsgaGFsZi1sZWFkaW5nCiAgICogIDI6IGhhbGYtbGVhZGlu
ZyArIGZvbnQgZGVzY2VudCBhdCAxZW0gKyAxNjJweCAKICAgKgogICAqIE5vdyB0aGUgaGFsZi1s
ZWFkaW5nIGlzIChsaW5lLWhlaWdodCAtIChmb250LWFzY2VudCArIGZvbnQtZGVzY2VudCkpLzIs
IHNvIHRoYXQgaXMgcmVhbGx5OgogICAqCiAgICogIDE6IChsaW5lLWhlaWdodCAtIChmb250LWFz
Y2VudCArIGZvbnQtZGVzY2VudCkpLzIgKyBmb250IGRlc2NlbnQgKyBmb250IGFzY2VudCArIChs
aW5lLWhlaWdodCAtIChmb250LWFzY2VudCArIGZvbnQtZGVzY2VudCkpLzIKICAgKiAgMjogKGxp
bmUtaGVpZ2h0IC0gKGZvbnQtYXNjZW50ICsgZm9udC1kZXNjZW50KSkvMiArIGZvbnQgZGVzY2Vu
dCArIDE2MnB4CiAgICoKICAgKiBXaGljaCBzaW1wbGlmeSB0bzoKICAgKgogICAqICAxOiBsaW5l
LWhlaWdodAogICAqICAyOiBsaW5lLWhlaWdodC8yICsgKGZvbnQgZGVzY2VudCAtIGZvbnQtYXNj
ZW50KS8yICsgMTYycHgKICAgKgogICAqIFNvIGlmIHRoZSBmb2xsb3dpbmcgZXhwcmVzc2lvbiBp
cyB0cnVlOgogICAqCiAgICogICAgbGluZS1oZWlnaHQgPiBsaW5lLWhlaWdodC8yICsgKGZvbnQg
ZGVzY2VudCAtIGZvbnQtYXNjZW50KS8yICsgMTYycHgKICAgKgogICAqIFRoYXQgaXMsIGlmIHRo
aXMgaXMgdHJ1ZToKICAgKgogICAqICAgIGxpbmUtaGVpZ2h0ID4gZm9udCBkZXNjZW50IC0gZm9u
dC1hc2NlbnQgKyAzMjRweAogICAqCiAgICogLi4udGhlbiB0aGUgbGluZS1oZWlnaHQgbWF0dGVy
cywgb3RoZXJ3aXNlIHRoZSBmb250IGRvZXMuIE5vdGUKICAgKiB0aGF0IGZvbnQgZGVzY2VudCAt
IGZvbnQtYXNjZW50IHdpbGwgYmUgaW4gdGhlIHJlZ2lvbiBvZgogICAqIDEwcHgtMzBweCAod2l0
aCBBaGVtLCBleGFjdGx5IDEycHgpLiBIb3dldmVyLCBpZiB3ZSBtYWtlIHRoZQogICAqIGxpbmUt
aGVpZ2h0IGJpZywgdGhlbiB0aGUgX3Bvc2l0aW9uaW5nXyBvZiB0aGUgaW5saW5lLWJsb2NrcyB3
aWxsCiAgICogZGVwZW5kIG9uIHRoZSBmb250IGRlc2NlbnQsIHNpbmNlIHRoYXQgaXMgd2hhdCB3
aWxsIGRlY2lkZSB0aGUKICAgKiBkaXN0YW5jZSBmcm9tIHRoZSBib3R0b20gb2YgdGhlIGxpbmUg
Ym94IHRvIHRoZSBiYXNlbGluZSBvZiB0aGUKICAgKiBibG9jayAoc2luY2UgdGhlIGJhc2VsaW5l
IGlzIHNldCBieSB0aGUgc3RydXQpLgogICAqCiAgICogSG93ZXZlciwgaW4gQWNpZDIgYSBkZXBl
bmRlbmN5IG9uIHRoZSBmb250IG1ldHJpY3Mgd2FzIGludHJvZHVjZWQKICAgKiBhbmQgdGhpcyBj
YXVzZWQgYWxsIGtpbmRzIG9mIHByb2JsZW1zLiBBbmQgd2UgY2FuJ3QgcmVxdWlyZSBBaGVtCiAg
ICogaW4gdGhlIEFjaWQgdGVzdHMsIHNpbmNlIGl0J3MgdW5saWtlbHkgbW9zdCBwZW9wbGUgd2ls
bCBoYXZlIGl0CiAgICogaW5zdGFsbGVkLgogICAqCiAgICogV2hhdCB3ZSB3YW50IGlzIGZvciB0
aGUgZm9udCB0byBub3QgbWF0dGVyLCBhbmQgdGhlIGJhc2VsaW5lIHRvCiAgICogYmUgYXMgaGln
aCBhcyBwb3NzaWJsZS4gV2UgY2FuIGRvIHRoYXQgYnkgc2F5aW5nIHRoYXQgdGhlIGZvbnQKICAg
KiBhbmQgdGhlIGxpbmUtaGVpZ2h0IGFyZSB6ZXJvLgogICAqCiAgICogT25lIHdvcmQgb2Ygd2Fy
bmluZy4gSWYgeW91ciBicm93c2VyIGhhcyBhIG1pbmltdW0gZm9udCBzaXplIGZlYXR1cmUKICAg
KiB0aGF0IGZvcmNlcyBmb250IHNpemVzIHVwIGV2ZW4gd2hlbiB0aGVyZSBpcyBubyB0ZXh0LCB5
b3Ugd2lsbCBuZWVkCiAgICogdG8gZGlzYWJsZSBpdCBiZWZvcmUgcnVubmluZyB0aGlzIHRlc3Qu
CiAgICoKICAgKi8KCiAgLyogcnVsZXMgc3BlY2lmaWMgdG8gdGhlIHRlc3RzIGJlbG93ICovCiAg
I2luc3RydWN0aW9uczpsYXN0LWNoaWxkIHsgd2hpdGUtc3BhY2U6IHByZS13cmFwOyB3aGl0ZS1z
cGFjZTogeC1ib2d1czsgfQogICNcIHsgY29sb3I6IHRyYW5zcGFyZW50OyBjb2xvcjogaHNsYSgw
LCAwLCAwLCAxKTsgcG9zaXRpb246IGZpeGVkOyB0b3A6IDEwcHg7IGxlZnQ6IDEwcHg7IGZvbnQ6
IDQwcHggc2Fucy1zZXJpZjsgfQoKIDwvc3R5bGU+CiA8bGluayByZWw9InN0eWxlc2hlZXQiIGhy
ZWY9ImVtcHR5LmNzcyI+PCEtLSB0ZXh0L2h0bWwgZmlsZSAoc2hvdWxkIGJlIGlnbm9yZWQsIDxo
MT4gd2lsbCBnbyByZWQgaWYgaXQgaXNuJ3QpIC0tPgoKIDwhLS0gdGhlIG5leHQgZml2ZSBzY3Jp
cHQgYmxvY2tzIGFyZSBwYXJ0IG9mIHRlc3QgMyAtLT4KIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZh
c2NyaXB0Ij4KICB2YXIgZDEgPSAiZmFpbCI7CiAgdmFyIGQyID0gImZhaWwiOwogIHZhciBkMyA9
ICJmYWlsIjsKICB2YXIgZDQgPSAiZmFpbCI7CiAgdmFyIGQ1ID0gImZhaWwiOwogPC9zY3JpcHQ+
CiA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJkYXRhOnRleHQvamF2YXNjcmlw
dCxkMSUyMCUzRCUyMCdvbmUnJTNCIj48L3NjcmlwdD4KIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZh
c2NyaXB0IiBzcmM9ImRhdGE6dGV4dC9qYXZhc2NyaXB0O2Jhc2U2NCxaRElnUFNBbmRIZHZKenMl
M0QiPjwvc2NyaXB0PgogPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iZGF0YTp0
ZXh0L2phdmFzY3JpcHQ7YmFzZTY0LCU1YSU0NCU0ZCU2NyU1MCU1MyU0MSU2ZSU2NCU0NyU2OCU3
OSU1YSU1NyU1NSU2ZSU0ZiU3NyUzRCUzRCI+PC9zY3JpcHQ+CiA8c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCIgc3JjPSJkYXRhOnRleHQvamF2YXNjcmlwdDtiYXNlNjQsJTIwWkQlMjBRZyUw
RCUwQVBTJTIwQW4lMjBabTkxY2ljJTBEJTBBJTIwNyUyMCI+PC9zY3JpcHQ+CiA8c2NyaXB0IHR5
cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJkYXRhOnRleHQvamF2YXNjcmlwdCxkNSUyMCUzRCUy
MCdmaXZlXHUwMDI3cyclM0IiPjwvc2NyaXB0PgoKIDwhLS0gbWFpbiB0ZXN0IGJvZHkgLS0+CiA8
c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CiAgdmFyIG5vdGlmaWNhdGlvbnMgPSB7fTsK
ICBmdW5jdGlvbiBub3RpZnkoZmlsZSkgewogICAgLy8gdXNlZCBpbiBjcm9zcy1maWxlIHRlc3Rz
CiAgICBub3RpZmljYXRpb25zW2ZpbGVdID0gMTsKICB9CiAgZnVuY3Rpb24gZmFpbChtZXNzYWdl
KSB7CiAgICB0aHJvdyB7IG1lc3NhZ2U6IG1lc3NhZ2UgfTsKICB9CiAgZnVuY3Rpb24gYXNzZXJ0
KGNvbmRpdGlvbiwgbWVzc2FnZSkgewogICAgaWYgKCFjb25kaXRpb24pCiAgICAgIGZhaWwobWVz
c2FnZSk7CiAgfQogIGZ1bmN0aW9uIGdldFRlc3REb2N1bWVudCgpIHsKICAgIHZhciBpZnJhbWUg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2VsZWN0b3JzIik7CiAgICB2YXIgZG9jID0gaWZy
YW1lLmNvbnRlbnREb2N1bWVudDsKICAgIGZvciAodmFyIGkgPSBkb2MuZG9jdW1lbnRFbGVtZW50
LmNoaWxkTm9kZXMubGVuZ3RoLTE7IGkgPj0gMDsgaSAtPSAxKQogICAgICBkb2MuZG9jdW1lbnRF
bGVtZW50LnJlbW92ZUNoaWxkKGRvYy5kb2N1bWVudEVsZW1lbnQuY2hpbGROb2Rlc1tpXSk7CiAg
ICBkb2MuZG9jdW1lbnRFbGVtZW50LmFwcGVuZENoaWxkKGRvYy5jcmVhdGVFbGVtZW50KCdoZWFk
JykpOwogICAgZG9jLmRvY3VtZW50RWxlbWVudC5maXJzdENoaWxkLmFwcGVuZENoaWxkKGRvYy5j
cmVhdGVFbGVtZW50KCd0aXRsZScpKTsKICAgIGRvYy5kb2N1bWVudEVsZW1lbnQuYXBwZW5kQ2hp
bGQoZG9jLmNyZWF0ZUVsZW1lbnQoJ2JvZHknKSk7CiAgICByZXR1cm4gZG9jOwogIH0KICBmdW5j
dGlvbiBzZWxlY3RvclRlc3QodGVzdGVyKSB7CiAgICB2YXIgZG9jID0gZ2V0VGVzdERvY3VtZW50
KCk7CiAgICB2YXIgc3R5bGUgPSBkb2MuY3JlYXRlRWxlbWVudCgnc3R5bGUnKTsKICAgIHN0eWxl
LmFwcGVuZENoaWxkKGRvYy5jcmVhdGVUZXh0Tm9kZSgiKiB7IHotaW5kZXg6IDA7IHBvc2l0aW9u
OiBhYnNvbHV0ZTsgfVxuIikpOwogICAgZG9jLmRvY3VtZW50RWxlbWVudC5maXJzdENoaWxkLmFw
cGVuZENoaWxkKHN0eWxlKTsKICAgIHZhciBydWxlQ291bnQgPSAwOwogICAgdGVzdGVyKGRvYywg
ZnVuY3Rpb24gKHNlbGVjdG9yKSB7CiAgICAgICAgcnVsZUNvdW50ICs9IDE7CiAgICAgICAgc3R5
bGUuYXBwZW5kQ2hpbGQoZG9jLmNyZWF0ZVRleHROb2RlKHNlbGVjdG9yICsgIiB7IHotaW5kZXg6
ICIgKyBydWxlQ291bnQgKyAiOyB9XG4iKSk7CiAgICAgICAgcmV0dXJuIHJ1bGVDb3VudDsKICAg
ICAgfSwgZnVuY3Rpb24obm9kZSwgcnVsZSwgbWVzc2FnZSkgewogICAgICAgIHZhciB2YWx1ZSA9
IGRvYy5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlKG5vZGUsICIiKS56SW5kZXg7CiAgICAg
ICAgYXNzZXJ0KHZhbHVlICE9ICdhdXRvJywgInVuZGVybHlpbmcgcHJvYmxlbXMgcHJldmVudCB0
aGlzIHRlc3QgZnJvbSBydW5uaW5nIHByb3Blcmx5Iik7CiAgICAgICAgYXNzZXJ0KHZhbHVlID09
IHJ1bGUsICJleHBlY3RlZCAiICsgcnVsZSArICIsIGdvdCAiICsgdmFsdWUgKyAiIC0gIiArIG1l
c3NhZ2UpOwogICAgfSk7CiAgfQogIHZhciB0ZXN0cyA9IFsKCiAgICAvLyB0aGVyZSBhcmUgNiBi
dWNrZXRzIHdpdGggMTYgdGVzdHMgZWFjaCwgcGx1cyBmb3VyIHNwZWNpYWwgdGVzdHMgKDAsIDk3
LCA5OCwgYW5kIDk5KS4KCiAgICAvLyBSZW1vdmUgdGhlICJKUyByZXF1aXJlZCIgbWVzc2FnZQog
ICAgZnVuY3Rpb24gKCkgewogICAgICAvLyB0ZXN0IDA6IHdoZXRoZXIgcmVtb3ZpbmcgYW4gZWxl
bWVudCB0aGF0IGlzIHRoZSBsYXN0IGNoaWxkIGNvcnJlY3RseSByZWNvbXB1dGVzIHN0eWxlcyBm
b3IgdGhlIG5ldyBsYXN0IGNoaWxkCiAgICAgIC8vIGFsc28gdGVzdHMgc3VwcG9ydCBmb3IgZ2V0
Q29tcHV0ZWRTdHlsZSwgOmxhc3QtY2hpbGQsIHByZS13cmFwCiAgICAgIHZhciBsYXN0ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3JlbW92ZS1sYXN0LWNoaWxkLXRlc3QnKTsKICAgICAgdmFy
IHBlbnVsdGltYXRlID0gbGFzdC5wcmV2aW91c1NpYmxpbmc7IC8vIHRoaXMgc2hvdWxkIGJlIHRo
ZSB3aGl0ZXNwYWNlIG5vZGUKICAgICAgcGVudWx0aW1hdGUgPSBwZW51bHRpbWF0ZS5wcmV2aW91
c1NpYmxpbmc7IC8vIHRoaXMgc2hvdWxkIG5vdyBiZSB0aGUgYWN0dWFsIHBlbnVsdGltYXRlIGVs
ZW1lbnQKICAgICAgbGFzdC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGxhc3QpOwogICAgICBhc3Nl
cnQoZG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZShwZW51bHRpbWF0ZSwgJycp
LndoaXRlU3BhY2UgPT0gJ3ByZS13cmFwJywgImZvdW5kIHVuZXhwZWN0ZWQgY29tcHV0ZWQgc3R5
bGUiKTsKICAgICAgcmV0dXJuIDc7CiAgICB9LAoKICAgIC8vIGJ1Y2tldCAxOiBIVFRQIGFuZCBV
UklzLCBET00gVHJhdmVyc2FsLCBET00gUmFuZ2UKICAgIC8vIEhUVFAgYW5kIFVSSXMKICAgIGZ1
bmN0aW9uICgpIHsKICAgICAgLy8gdGVzdCAxOiBIVFRQIC0gQ29udGVudC1UeXBlOiBpbWFnZS9w
bmcKICAgICAgYXNzZXJ0KCFub3RpZmljYXRpb25zWydlbXB0eS5wbmcnXSwgInByaXZpbGVnZSBl
c2NhbGF0aW9uIHNlY3VyaXR5IGJ1ZzogUE5HIHJhbiBzY3JpcHQiKTsKICAgICAgdmFyIGlmcmFt
ZSA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdpZnJhbWUnKVswXTsKICAgICAgYXNz
ZXJ0KGlmcmFtZSwgIm5vIDxpZnJhbWU+IHN1cHBvcnQiKTsKICAgICAgaWYgKGlmcmFtZSAmJiBp
ZnJhbWUuY29udGVudERvY3VtZW50KSB7CiAgICAgICAgdmFyIHBzID0gaWZyYW1lLmNvbnRlbnRE
b2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgncCcpOwogICAgICAgIGlmIChwcy5sZW5ndGgg
PiAwKSB7CiAgICAgICAgICBpZiAocHNbMF0uZmlyc3RDaGlsZCAmJiBwc1swXS5maXJzdENoaWxk
LmRhdGEgJiYgcHNbMF0uZmlyc3RDaGlsZC5kYXRhID09ICdGQUlMJykKICAgICAgICAgICAgZmFp
bCgiUE5HIHdhcyBwYXJzZWQgYXMgSFRNTC4iKTsKICAgICAgICB9CiAgICAgIH0KICAgICAgcmV0
dXJuIDE7CiAgICB9LAogICAgZnVuY3Rpb24gKCkgewogICAgICAvLyB0ZXN0IDI6IEhUVFAgLSBD
b250ZW50LVR5cGU6IHRleHQvcGxhaW4KICAgICAgYXNzZXJ0KCFub3RpZmljYXRpb25zWydlbXB0
eS50eHQnXSwgInByaXZpbGVnZSBlc2NhbGF0aW9uIHNlY3VyaXR5IGJ1ZzogdGV4dCBmaWxlIHJh
biBzY3JpcHQiKTsKICAgICAgdmFyIGlmcmFtZSA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdO
YW1lKCdpZnJhbWUnKVsxXTsKICAgICAgYXNzZXJ0KGlmcmFtZSwgIm5vIDxpZnJhbWU+IHN1cHBv
cnQiKTsKICAgICAgaWYgKGlmcmFtZSAmJiBpZnJhbWUuY29udGVudERvY3VtZW50KSB7CiAgICAg
ICAgdmFyIHBzID0gaWZyYW1lLmNvbnRlbnREb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgn
cCcpOwogICAgICAgIGlmIChwcy5sZW5ndGggPiAwKSB7CiAgICAgICAgICBpZiAocHNbMF0uZmly
c3RDaGlsZCAmJiBwc1swXS5maXJzdENoaWxkLmRhdGEgJiYgcHNbMF0uZmlyc3RDaGlsZC5kYXRh
ID09ICdGQUlMJykKICAgICAgICAgICAgZmFpbCgidGV4dC9wbGFpbiBmaWxlIHdhcyBwYXJzZWQg
YXMgSFRNTCIpOwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gMTsKICAgIH0sCiAgICBm
dW5jdGlvbiAoKSB7CiAgICAgIC8vIHRlc3QgMzogPG9iamVjdD4gaGFuZGxpbmcgYW5kIEhUVFAg
c3RhdHVzIGNvZGVzCiAgICAgIHZhciBvQyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ29iamVj
dCcpOwogICAgICBvQy5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiRkFJTCIp
KTsKICAgICAgdmFyIG9CID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnb2JqZWN0Jyk7CiAgICAg
IHZhciBvQSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ29iamVjdCcpOwogICAgICBvQS5kYXRh
ID0gInN1cHBvcnQtYS5wbmciOwogICAgICBvQi5kYXRhID0gInN1cHBvcnQtYi5wbmciOwogICAg
ICBvQi5hcHBlbmRDaGlsZChvQyk7CiAgICAgIG9DLmRhdGEgPSAic3VwcG9ydC1jLnBuZyI7CiAg
ICAgIG9BLmFwcGVuZENoaWxkKG9CKTsKICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05h
bWUoIm1hcCIpWzBdLmFwcGVuZENoaWxkKG9BKTsKICAgICAgLy8gYXNzdW1pbmcgdGhlIGFib3Zl
IGRpZG4ndCByYWlzZSBhbnkgZXhjZXB0aW9ucywgdGhpcyB0ZXN0IGhhcyBwYXNzZWQKICAgICAg
Ly8gKHRoZSByZWFsIHRlc3QgaXMgd2hldGhlciB0aGUgcmVuZGVyaW5nIGlzIGNvcnJlY3QpCiAg
ICAgIHJldHVybiAxOwogICAgfSwKICAgIGZ1bmN0aW9uICgpIHsKICAgICAgLy8gdGVzdCA0OiBk
YXRhOiBVUkkgcGFyc2luZwogICAgICBhc3NlcnQoZDEgPT0gIm9uZSIsICJkYXRhOiBmYWlsZWQg
YXMgZXNjYXBlZCIpOwogICAgICBhc3NlcnQoZDIgPT0gInR3byIsICJkYXRhOiBmYWlsZWQgYXMg
YmFzZTY0Iik7CiAgICAgIGFzc2VydChkMyA9PSAidGhyZWUiLCAiZGF0YTogZmFpbGVkIGFzIGJh
c2U2NCBlc2NhcGVkIik7CiAgICAgIGFzc2VydChkNCA9PSAiZm91ciIsICJkYXRhOiBmYWlsZWQg
YXMgYmFzZTY0IHdpdGggc3BhY2VzIik7CiAgICAgIGFzc2VydChkNSA9PSAiZml2ZSdzIiwgImRh
dGE6IGZhaWxlZCB3aXRoIGJhY2tzbGFzaCIpOwogICAgICByZXR1cm4gMTsKICAgIH0sCgogICAg
Ly8gRE9NIFRyYXZlcnNhbAogICAgZnVuY3Rpb24gKCkgewogICAgICAvLyB0ZXN0IDU6IE5vZGVG
aWx0ZXJzIGFuZCBFeGNlcHRpb25zCiAgICAgIHZhciBkb2MgPSBnZXRUZXN0RG9jdW1lbnQoKTsK
ICAgICAgdmFyIGl0ZXJhdGlvbiA9IDA7CiAgICAgIHZhciBleGNlcHRpb24gPSAiUm9zZXMiOwog
ICAgICB2YXIgdGVzdCA9IGZ1bmN0aW9uKG5vZGUpIHsKICAgICAgICBpdGVyYXRpb24gKz0gMTsK
ICAgICAgICBzd2l0Y2ggKGl0ZXJhdGlvbikgewogICAgICAgICAgY2FzZSAxLCAzLCA0LCA2LCA3
LCA4LCA5LCAxMjogdGhyb3cgZXhjZXB0aW9uOwogICAgICAgICAgY2FzZSAyLCA1LCAxMCwgMTE6
IHJldHVybiB0cnVlOwogICAgICAgICAgZGVmYXVsdDogdGhyb3cgMDsKICAgICAgICB9OwogICAg
ICB9OwogICAgICB2YXIgY2hlY2sgPSBmdW5jdGlvbihvLCBtZXRob2QpIHsKICAgICAgICB2YXIg
b2sgPSBmYWxzZTsKICAgICAgICB0cnkgewogICAgICAgICAgb1ttZXRob2RdKCk7CiAgICAgICAg
fSBjYXRjaCAoZSkgewogICAgICAgICAgaWYgKGUgPT09IGV4Y2VwdGlvbikKICAgICAgICAgICAg
b2sgPSB0cnVlOwogICAgICAgIH0KICAgICAgICBhc3NlcnQob2ssICJtZXRob2QgIiArIG8gKyAi
LiIgKyBtZXRob2QgKyAiKCkgZGlkbid0IGZvcndhcmQgZXhjZXB0aW9uIik7CiAgICAgIH07CiAg
ICAgIHZhciBpID0gZG9jLmNyZWF0ZU5vZGVJdGVyYXRvcihkb2MuZG9jdW1lbnRFbGVtZW50LCAw
eEZGRkZGRkZGLCB0ZXN0LCB0cnVlKTsKICAgICAgY2hlY2soaSwgIm5leHROb2RlIik7IC8vIDEK
ICAgICAgYXNzZXJ0KGkubmV4dE5vZGUoKSA9PSBkb2MuZG9jdW1lbnRFbGVtZW50LCAiaS5uZXh0
Tm9kZSgpIGRpZG4ndCByZXR1cm4gdGhlIHJpZ2h0IG5vZGUiKTsgLy8gMgogICAgICBjaGVjayhp
LCAicHJldmlvdXNOb2RlIik7IC8vIDMKICAgICAgdmFyIHcgPSBkb2N1bWVudC5jcmVhdGVUcmVl
V2Fsa2VyKGRvYy5kb2N1bWVudEVsZW1lbnQsIDB4RkZGRkZGRkYsIHRlc3QsIHRydWUpOwogICAg
ICBjaGVjayh3LCAibmV4dE5vZGUiKTsgLy8gNAogICAgICBhc3NlcnQody5uZXh0Tm9kZSgpID09
IGRvYy5kb2N1bWVudEVsZW1lbnQuZmlyc3RDaGlsZCwgIncubmV4dE5vZGUoKSBkaWRuJ3QgcmV0
dXJuIHRoZSByaWdodCBub2RlIik7IC8vIDUKICAgICAgY2hlY2sodywgInByZXZpb3VzTm9kZSIp
OyAvLyA2CiAgICAgIGNoZWNrKHcsICJmaXJzdENoaWxkIik7IC8vIDcKICAgICAgY2hlY2sodywg
Imxhc3RDaGlsZCIpOyAvLyA4CiAgICAgIGNoZWNrKHcsICJuZXh0U2libGluZyIpOyAvLyA5CiAg
ICAgIGFzc2VydCh3LnByZXZpb3VzU2libGluZygpID09IG51bGwsICJ3LnByZXZpb3VzU2libGlu
ZygpIGRpZG4ndCByZXR1cm4gdGhlIHJpZ2h0IG5vZGUiKTsgLy8gMTAKICAgICAgYXNzZXJ0KHcu
bmV4dFNpYmxpbmcoKSA9PSBudWxsLCAidy5uZXh0U2libGluZygpIGRpZG4ndCByZXR1cm4gdGhl
IHJpZ2h0IG5vZGUiKTsgLy8gMTEKICAgICAgY2hlY2sodywgInByZXZpb3VzU2libGluZyIpOyAv
LyAxMgogICAgICByZXR1cm4gMTsKICAgIH0sCiAgICBmdW5jdGlvbiAoKSB7CiAgICAgIC8vIHRl
c3QgNjogUmVtb3Zpbmcgbm9kZXMgZHVyaW5nIGl0ZXJhdGlvbgogICAgICB2YXIgY291bnQgPSAw
OwogICAgICB2YXIgZXhwZWN0ID0gZnVuY3Rpb24obiwgbm9kZTEsIG5vZGUyKSB7CiAgICAgICAg
Y291bnQgKz0gMTsKICAgICAgICBhc3NlcnQobiA9PSBjb3VudCwgInJlYWNoZWQgZXhwZWN0YXRp
b24gIiArIG4gKyAiIHdoZW4gZXhwZWN0aW5nIGV4cGVjdGF0aW9uICIgKyBjb3VudCk7CiAgICAg
ICAgYXNzZXJ0KG5vZGUxID09IG5vZGUyLCAiZXhwZWN0YXRpb24gIiArIGNvdW50ICsgIiBmYWls
ZWQiKTsKICAgICAgfTsKICAgICAgdmFyIGRvYyA9IGdldFRlc3REb2N1bWVudCgpOwogICAgICB2
YXIgdDEgPSBkb2MuYm9keS5hcHBlbmRDaGlsZChkb2MuY3JlYXRlRWxlbWVudCgndDEnKSk7CiAg
ICAgIHZhciB0MiA9IGRvYy5ib2R5LmFwcGVuZENoaWxkKGRvYy5jcmVhdGVFbGVtZW50KCd0Micp
KTsKICAgICAgdmFyIHQzID0gZG9jLmJvZHkuYXBwZW5kQ2hpbGQoZG9jLmNyZWF0ZUVsZW1lbnQo
J3QzJykpOwogICAgICB2YXIgdDQgPSBkb2MuYm9keS5hcHBlbmRDaGlsZChkb2MuY3JlYXRlRWxl
bWVudCgndDQnKSk7CiAgICAgIHZhciBjYWxsQ291bnQgPSAwOwogICAgICB2YXIgZmlsdGVyRnVu
Y3Rpb25zID0gWwogICAgICAgIGZ1bmN0aW9uIChub2RlKSB7IGV4cGVjdCgxLCBub2RlLCBkb2Mu
Ym9keSk7IHJldHVybiB0cnVlOyB9LCAvLyBmaWx0ZXIgMAogICAgICAgIGZ1bmN0aW9uIChub2Rl
KSB7IGV4cGVjdCgzLCBub2RlLCB0MSk7IHJldHVybiB0cnVlOyB9LCAvLyBmaWx0ZXIgMQogICAg
ICAgIGZ1bmN0aW9uIChub2RlKSB7IGV4cGVjdCg1LCBub2RlLCB0Mik7IHJldHVybiB0cnVlOyB9
LCAvLyBmaWx0ZXIgMgogICAgICAgIGZ1bmN0aW9uIChub2RlKSB7IGV4cGVjdCg3LCBub2RlLCB0
Myk7IGRvYy5ib2R5LnJlbW92ZUNoaWxkKHQ0KTsgcmV0dXJuIHRydWU7IH0sIC8vIGZpbHRlciAz
CiAgICAgICAgZnVuY3Rpb24gKG5vZGUpIHsgZXhwZWN0KDksIG5vZGUsIHQzKTsgZG9jLmJvZHku
YXBwZW5kQ2hpbGQodDQpOyByZXR1cm4gdHJ1ZTsgfSwgLy8gZmlsdGVyIDQKICAgICAgICBmdW5j
dGlvbiAobm9kZSkgeyBleHBlY3QoMTEsIG5vZGUsIHQ0KTsgcmV0dXJuIHRydWU7IH0sIC8vIGZp
bHRlciA1CiAgICAgICAgZnVuY3Rpb24gKG5vZGUpIHsgZXhwZWN0KDEzLCBub2RlLCB0NCk7IGRv
Yy5ib2R5LnJlbW92ZUNoaWxkKHQ0KTsgcmV0dXJuIGZhbHNlOyB9LCAvLyBmaWx0ZXIgNgogICAg
ICAgIGZ1bmN0aW9uIChub2RlKSB7IGV4cGVjdCgxNCwgbm9kZSwgdDMpOyByZXR1cm4gdHJ1ZTsg
fSwgLy8gZmlsdGVyIDcKICAgICAgICBmdW5jdGlvbiAobm9kZSkgeyBleHBlY3QoMTYsIG5vZGUs
IHQyKTsgZG9jLmJvZHkucmVtb3ZlQ2hpbGQodDIpOyByZXR1cm4gdHJ1ZTsgfSwgLy8gZmlsdGVy
IDgKICAgICAgICBmdW5jdGlvbiAobm9kZSkgeyBleHBlY3QoMTgsIG5vZGUsIHQxKTsgcmV0dXJu
IHRydWU7IH0sIC8vIGZpbHRlciA5CiAgICAgIF07CiAgICAgIHZhciBpID0gZG9jLmNyZWF0ZU5v
ZGVJdGVyYXRvcihkb2MuZG9jdW1lbnRFbGVtZW50Lmxhc3RDaGlsZCwgMHhGRkZGRkZGRiwgZnVu
Y3Rpb24gKG5vZGUpIHsgcmV0dXJuIGZpbHRlckZ1bmN0aW9uc1tjYWxsQ291bnQrK10obm9kZSk7
IH0sIHRydWUpOwogICAgICAvLyAqIEIgMSAyIDMgNAogICAgICBleHBlY3QoMiwgaS5uZXh0Tm9k
ZSgpLCBkb2MuYm9keSk7IC8vIGZpbHRlciAwCiAgICAgIC8vIFtCXSAqIDEgMiAzIDQgICAgIAog
ICAgICBleHBlY3QoNCwgaS5uZXh0Tm9kZSgpLCB0MSk7IC8vIGZpbHRlciAxCiAgICAgIC8vIEIg
WzFdICogMiAzIDQKICAgICAgZXhwZWN0KDYsIGkubmV4dE5vZGUoKSwgdDIpOyAvLyBmaWx0ZXIg
MgogICAgICAvLyBCIDEgWzJdICogMyA0CiAgICAgIGV4cGVjdCg4LCBpLm5leHROb2RlKCksIHQz
KTsgLy8gZmlsdGVyIDMKICAgICAgLy8gQiAxIDIgWzNdICoKICAgICAgZXhwZWN0KDEwLCBpLm5l
eHROb2RlKCksIHQzKTsgLy8gZmlsdGVyIDQKICAgICAgLy8gQiAxIDIgWzNdICogNAogICAgICBl
eHBlY3QoMTIsIGkubmV4dE5vZGUoKSwgdDQpOyAvLyBmaWx0ZXIgNQogICAgICAvLyBCIDEgMiAz
IFs0XSAqCiAgICAgIGV4cGVjdCgxNSwgaS5wcmV2aW91c05vZGUoKSwgdDQpOyAvLyBmaWx0ZXJz
IDYsIDcKICAgICAgICAvLyBCIDEgMiAzICogKDQpIC8vIGZpbHRlciA2CiAgICAgICAgLy8gQiAx
IDIgWzNdICogICAvLyBiZXR3ZWVuIDYgYW5kIDcKICAgICAgICAvLyBCIDEgMiAqICgzKSAgIC8v
IGZpbHRlciA3CiAgICAgIC8vIEIgMSAyICogWzNdCiAgICAgIGV4cGVjdCgxNywgaS5wcmV2aW91
c05vZGUoKSwgdDIpOyAvLyBmaWx0ZXIgOAogICAgICAgIC8vIEIgMSAqICgyKSAzCiAgICAgIC8v
IEIgKiBbMV0gMwogICAgICBleHBlY3QoMTksIGkucHJldmlvdXNOb2RlKCksIHQxKTsgLy8gZmls
dGVyIDkKICAgICAgcmV0dXJuIDE7CiAgICB9LAogICAgZnVuY3Rpb24gKCkgewogICAgICAvLyB0
ZXN0IDc6IHRoZSBpbmZpbml0ZSBpdGVyYXRvcgogICAgICB2YXIgZG9jID0gZ2V0VGVzdERvY3Vt
ZW50KCk7CiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgNTsgaSArPSAxKSB7CiAgICAgICAgZG9j
LmJvZHkuYXBwZW5kQ2hpbGQoZG9jLmNyZWF0ZUVsZW1lbnQoJ3NlY3Rpb24nKSk7CiAgICAgICAg
ZG9jLmJvZHkubGFzdENoaWxkLnRpdGxlID0gaTsKICAgICAgfQogICAgICB2YXIgY291bnQgPSAw
OwogICAgICB2YXIgdGVzdCA9IGZ1bmN0aW9uKCkgewogICAgICAgIGlmIChjb3VudCA+IDMgJiYg
Y291bnQgPCAxMikgewogICAgICAgICAgZG9jLmJvZHkuYXBwZW5kQ2hpbGQoZG9jLmJvZHkuZmly
c3RDaGlsZCk7CiAgICAgICAgfQogICAgICAgIGNvdW50ICs9IDE7CiAgICAgICAgcmV0dXJuIGNv
dW50ICUgMiA9PSAwOwogICAgICB9OwogICAgICB2YXIgaSA9IGRvYy5jcmVhdGVOb2RlSXRlcmF0
b3IoZG9jLmJvZHksIDB4RkZGRkZGRkYsIHRlc3QsIHRydWUpOwogICAgICBhc3NlcnQoaS5uZXh0
Tm9kZSgpLnRpdGxlID09ICIwIiwgImZhaWx1cmUgMSIpOwogICAgICBhc3NlcnQoaS5uZXh0Tm9k
ZSgpLnRpdGxlID09ICIyIiwgImZhaWx1cmUgMiIpOwogICAgICBhc3NlcnQoaS5uZXh0Tm9kZSgp
LnRpdGxlID09ICI0IiwgImZhaWx1cmUgMyIpOwogICAgICBhc3NlcnQoaS5uZXh0Tm9kZSgpLnRp
dGxlID09ICIxIiwgImZhaWx1cmUgNCIpOwogICAgICBhc3NlcnQoaS5uZXh0Tm9kZSgpLnRpdGxl
ID09ICIzIiwgImZhaWx1cmUgNSIpOwogICAgICBhc3NlcnQoaS5uZXh0Tm9kZSgpLnRpdGxlID09
ICIwIiwgImZhaWx1cmUgNiIpOwogICAgICBhc3NlcnQoaS5uZXh0Tm9kZSgpLnRpdGxlID09ICIy
IiwgImZhaWx1cmUgNyIpOwogICAgICBhc3NlcnQoaS5uZXh0Tm9kZSgpID09IG51bGwsICJmYWls
dXJlIDgiKTsKICAgICAgcmV0dXJuIDE7CiAgICB9LAogICAgZnVuY3Rpb24gKCkgewogICAgICAv
LyB0ZXN0IDg6IGlnbm9yaW5nIHdoaXRlc3BhY2UgdGV4dCBub2RlcyB3aXRoIG5vZGUgaXRlcmF0
b3JzCiAgICAgIHZhciBjb3VudCA9IDA7CiAgICAgIHZhciBleHBlY3QgPSBmdW5jdGlvbihub2Rl
MSwgbm9kZTIpIHsKICAgICAgICBjb3VudCArPSAxOwogICAgICAgIGFzc2VydChub2RlMSA9PSBu
b2RlMiwgImV4cGVjdGF0aW9uICIgKyBjb3VudCArICIgZmFpbGVkIik7CiAgICAgIH07CiAgICAg
IHZhciBhbGxCdXRXUyA9IGZ1bmN0aW9uIChub2RlKSB7CiAgICAgICAgaWYgKG5vZGUubm9kZVR5
cGUgPT0gMyAmJiBub2RlLmRhdGEubWF0Y2goL15ccyokLykpCiAgICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgIH07CiAgICAgIHZhciBpID0gZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3VtZW50LmJvZHksIDB4MDEgfCAweDA0IHwgMHgwOCB8IDB4
MTAgfCAweDIwLCBhbGxCdXRXUywgdHJ1ZSk7CiAgICAgIC8vIG5vdyB3YWxrIHRoZSBkb2N1bWVu
dCBib2R5IGFuZCBtYWtlIHN1cmUgZXZlcnl0aGluZyBpcyBpbiB0aGUgcmlnaHQgcGxhY2UKICAg
ICAgZXhwZWN0KGkubmV4dE5vZGUoKSwgZG9jdW1lbnQuYm9keSk7IC8vIDEKICAgICAgZXhwZWN0
KGkubmV4dE5vZGUoKSwgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2gxJylbMF0pOwog
ICAgICBleHBlY3QoaS5uZXh0Tm9kZSgpLCBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgn
aDEnKVswXS5maXJzdENoaWxkKTsKICAgICAgZXhwZWN0KGkubmV4dE5vZGUoKSwgZG9jdW1lbnQu
Z2V0RWxlbWVudHNCeVRhZ05hbWUoJ2RpdicpWzBdKTsKICAgICAgZXhwZWN0KGkubmV4dE5vZGUo
KSwgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2J1Y2tldDEnKSk7CiAgICAgIGV4cGVjdChpLm5l
eHROb2RlKCksIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdidWNrZXQyJykpOwogICAgICBleHBl
Y3QoaS5uZXh0Tm9kZSgpLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYnVja2V0MycpKTsKICAg
ICAgZXhwZWN0KGkubmV4dE5vZGUoKSwgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2J1Y2tldDQn
KSk7CiAgICAgIGV4cGVjdChpLm5leHROb2RlKCksIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdi
dWNrZXQ1JykpOwogICAgICBleHBlY3QoaS5uZXh0Tm9kZSgpLCBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnYnVja2V0NicpKTsgLy8gMTAKICAgICAgZXhwZWN0KGkubmV4dE5vZGUoKSwgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdCcpKTsKICAgICAgZXhwZWN0KGkubmV4dE5vZGUoKSwg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Njb3JlJykpOwogICAgICBleHBlY3QoaS5uZXh0Tm9k
ZSgpLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2NvcmUnKS5maXJzdENoaWxkKTsKICAgICAg
ZXhwZWN0KGkubmV4dE5vZGUoKSwgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3BlcmNlbnQnKSk7
CiAgICAgIGV4cGVjdChpLm5leHROb2RlKCksIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwZXJj
ZW50JykuZmlyc3RDaGlsZCk7CiAgICAgIGV4cGVjdChpLm5leHROb2RlKCksIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdwZXJjZW50JykubmV4dFNpYmxpbmcpOwogICAgICBleHBlY3QoaS5uZXh0
Tm9kZSgpLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGVyY2VudCcpLm5leHRTaWJsaW5nLmZp
cnN0Q2hpbGQpOwogICAgICBleHBlY3QoaS5uZXh0Tm9kZSgpLCBkb2N1bWVudC5nZXRFbGVtZW50
c0J5VGFnTmFtZSgnbWFwJylbMF0pOwogICAgICBleHBlY3QoaS5uZXh0Tm9kZSgpLCBkb2N1bWVu
dC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnYXJlYScpWzBdKTsKICAgICAgZXhwZWN0KGkubmV4dE5v
ZGUoKSwgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2lmcmFtZScpWzBdKTsgLy8gMjAK
ICAgICAgZXhwZWN0KGkubmV4dE5vZGUoKSwgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUo
J2lmcmFtZScpWzBdLmZpcnN0Q2hpbGQpOwogICAgICBleHBlY3QoaS5uZXh0Tm9kZSgpLCBkb2N1
bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaWZyYW1lJylbMV0pOwogICAgICBleHBlY3QoaS5u
ZXh0Tm9kZSgpLCBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaWZyYW1lJylbMV0uZmly
c3RDaGlsZCk7CiAgICAgIGV4cGVjdChpLm5leHROb2RlKCksIGRvY3VtZW50LmdldEVsZW1lbnRz
QnlUYWdOYW1lKCdpZnJhbWUnKVsyXSk7CiAgICAgIGV4cGVjdChpLm5leHROb2RlKCksIGRvY3Vt
ZW50LmZvcm1zWzBdKTsKICAgICAgZXhwZWN0KGkubmV4dE5vZGUoKSwgZG9jdW1lbnQuZm9ybXMu
Zm9ybS5lbGVtZW50c1swXSk7CiAgICAgIGV4cGVjdChpLm5leHROb2RlKCksIGRvY3VtZW50Lmdl
dEVsZW1lbnRzQnlUYWdOYW1lKCd0YWJsZScpWzBdKTsKICAgICAgZXhwZWN0KGkubmV4dE5vZGUo
KSwgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3Rib2R5JylbMF0pOwogICAgICBleHBl
Y3QoaS5uZXh0Tm9kZSgpLCBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgndHInKVswXSk7
CiAgICAgIGV4cGVjdChpLm5leHROb2RlKCksIGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1l
KCd0ZCcpWzBdKTsKICAgICAgZXhwZWN0KGkubmV4dE5vZGUoKSwgZG9jdW1lbnQuZ2V0RWxlbWVu
dHNCeVRhZ05hbWUoJ3RkJylbMF0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3AnKVswXSk7CiAgICAg
IGV4cGVjdChpLm5leHROb2RlKCksIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnN0cnVjdGlv
bnMnKSk7CiAgICAgIGV4cGVjdChpLm5leHROb2RlKCksIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdpbnN0cnVjdGlvbnMnKS5maXJzdENoaWxkKTsKICAgICAgZXhwZWN0KGkubmV4dE5vZGUoKSwg
ZG9jdW1lbnQubGlua3NbMF0pOwogICAgICBleHBlY3QoaS5uZXh0Tm9kZSgpLCBkb2N1bWVudC5s
aW5rc1swXS5maXJzdENoaWxkKTsKICAgICAgZXhwZWN0KGkubmV4dE5vZGUoKSwgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ2luc3RydWN0aW9ucycpLmxhc3RDaGlsZCk7CiAgICAgIGV4cGVjdChp
Lm5leHROb2RlKCksIG51bGwpOwogICAgICAvLyB3YWxrIGl0IGJhY2t3YXJkcyBmb3IgZ29vZCBt
ZWFzdXJlCiAgICAgIGV4cGVjdChpLnByZXZpb3VzTm9kZSgpLCBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnaW5zdHJ1Y3Rpb25zJykubGFzdENoaWxkKTsKICAgICAgZXhwZWN0KGkucHJldmlvdXNO
b2RlKCksIGRvY3VtZW50LmxpbmtzWzBdLmZpcnN0Q2hpbGQpOwogICAgICBleHBlY3QoaS5wcmV2
aW91c05vZGUoKSwgZG9jdW1lbnQubGlua3NbMF0pOwogICAgICBleHBlY3QoaS5wcmV2aW91c05v
ZGUoKSwgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2luc3RydWN0aW9ucycpLmZpcnN0Q2hpbGQp
OwogICAgICBleHBlY3QoaS5wcmV2aW91c05vZGUoKSwgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J2luc3RydWN0aW9ucycpKTsKICAgICAgZXhwZWN0KGkucHJldmlvdXNOb2RlKCksIGRvY3VtZW50
LmdldEVsZW1lbnRzQnlUYWdOYW1lKCd0ZCcpWzBdLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdwJylb
MF0pOwogICAgICBleHBlY3QoaS5wcmV2aW91c05vZGUoKSwgZG9jdW1lbnQuZ2V0RWxlbWVudHNC
eVRhZ05hbWUoJ3RkJylbMF0pOwogICAgICBleHBlY3QoaS5wcmV2aW91c05vZGUoKSwgZG9jdW1l
bnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3RyJylbMF0pOwogICAgICBleHBlY3QoaS5wcmV2aW91
c05vZGUoKSwgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3Rib2R5JylbMF0pOwogICAg
ICBleHBlY3QoaS5wcmV2aW91c05vZGUoKSwgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUo
J3RhYmxlJylbMF0pOwogICAgICBleHBlY3QoaS5wcmV2aW91c05vZGUoKSwgZG9jdW1lbnQuZm9y
bXMuZm9ybS5lbGVtZW50c1swXSk7CiAgICAgIGV4cGVjdChpLnByZXZpb3VzTm9kZSgpLCBkb2N1
bWVudC5mb3Jtc1swXSk7CiAgICAgIGV4cGVjdChpLnByZXZpb3VzTm9kZSgpLCBkb2N1bWVudC5n
ZXRFbGVtZW50c0J5VGFnTmFtZSgnaWZyYW1lJylbMl0pOwogICAgICBleHBlY3QoaS5wcmV2aW91
c05vZGUoKSwgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2lmcmFtZScpWzFdLmZpcnN0
Q2hpbGQpOwogICAgICBleHBlY3QoaS5wcmV2aW91c05vZGUoKSwgZG9jdW1lbnQuZ2V0RWxlbWVu
dHNCeVRhZ05hbWUoJ2lmcmFtZScpWzFdKTsKICAgICAgZXhwZWN0KGkucHJldmlvdXNOb2RlKCks
IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdpZnJhbWUnKVswXS5maXJzdENoaWxkKTsK
ICAgICAgZXhwZWN0KGkucHJldmlvdXNOb2RlKCksIGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdO
YW1lKCdpZnJhbWUnKVswXSk7IC8vIDIwCiAgICAgIGV4cGVjdChpLnByZXZpb3VzTm9kZSgpLCBk
b2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnYXJlYScpWzBdKTsKICAgICAgZXhwZWN0KGku
cHJldmlvdXNOb2RlKCksIGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdtYXAnKVswXSk7
CiAgICAgIGV4cGVjdChpLnByZXZpb3VzTm9kZSgpLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
cGVyY2VudCcpLm5leHRTaWJsaW5nLmZpcnN0Q2hpbGQpOwogICAgICBleHBlY3QoaS5wcmV2aW91
c05vZGUoKSwgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3BlcmNlbnQnKS5uZXh0U2libGluZyk7
CiAgICAgIGV4cGVjdChpLnByZXZpb3VzTm9kZSgpLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
cGVyY2VudCcpLmZpcnN0Q2hpbGQpOwogICAgICBleHBlY3QoaS5wcmV2aW91c05vZGUoKSwgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3BlcmNlbnQnKSk7CiAgICAgIGV4cGVjdChpLnByZXZpb3Vz
Tm9kZSgpLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2NvcmUnKS5maXJzdENoaWxkKTsKICAg
ICAgZXhwZWN0KGkucHJldmlvdXNOb2RlKCksIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzY29y
ZScpKTsKICAgICAgZXhwZWN0KGkucHJldmlvdXNOb2RlKCksIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdyZXN1bHQnKSk7CiAgICAgIGV4cGVjdChpLnByZXZpb3VzTm9kZSgpLCBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnYnVja2V0NicpKTsKICAgICAgZXhwZWN0KGkucHJldmlvdXNOb2RlKCks
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdidWNrZXQ1JykpOwogICAgICBleHBlY3QoaS5wcmV2
aW91c05vZGUoKSwgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2J1Y2tldDQnKSk7CiAgICAgIGV4
cGVjdChpLnByZXZpb3VzTm9kZSgpLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYnVja2V0Mycp
KTsKICAgICAgZXhwZWN0KGkucHJldmlvdXNOb2RlKCksIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdidWNrZXQyJykpOwogICAgICBleHBlY3QoaS5wcmV2aW91c05vZGUoKSwgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ2J1Y2tldDEnKSk7CiAgICAgIGV4cGVjdChpLnByZXZpb3VzTm9kZSgpLCBk
b2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnZGl2JylbMF0pOwogICAgICBleHBlY3QoaS5w
cmV2aW91c05vZGUoKSwgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2gxJylbMF0uZmly
c3RDaGlsZCk7CiAgICAgIGV4cGVjdChpLnByZXZpb3VzTm9kZSgpLCBkb2N1bWVudC5nZXRFbGVt
ZW50c0J5VGFnTmFtZSgnaDEnKVswXSk7CiAgICAgIGV4cGVjdChpLnByZXZpb3VzTm9kZSgpLCBk
b2N1bWVudC5ib2R5KTsKICAgICAgZXhwZWN0KGkucHJldmlvdXNOb2RlKCksIG51bGwpOwogICAg
ICByZXR1cm4gMTsKICAgIH0sCiAgICBmdW5jdGlvbiAoKSB7CiAgICAgIC8vIHRlc3QgOTogaWdu
b3Jpbmcgd2hpdGVzcGFjZSB0ZXh0IG5vZGVzIHdpdGggdHJlZSB3YWxrZXJzCiAgICAgIHZhciBj
b3VudCA9IDA7CiAgICAgIHZhciBleHBlY3QgPSBmdW5jdGlvbihub2RlMSwgbm9kZTIpIHsKICAg
ICAgICBjb3VudCArPSAxOwogICAgICAgIGFzc2VydChub2RlMSA9PSBub2RlMiwgImV4cGVjdGF0
aW9uICIgKyBjb3VudCArICIgZmFpbGVkIik7CiAgICAgIH07CiAgICAgIHZhciBhbGxCdXRXUyA9
IGZ1bmN0aW9uIChub2RlKSB7CiAgICAgICAgaWYgKG5vZGUubm9kZVR5cGUgPT0gMyAmJiBub2Rl
LmRhdGEubWF0Y2goL15ccyokLykpCiAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgcmV0
dXJuIHRydWU7CiAgICAgIH07CiAgICAgIHZhciB3ID0gZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtl
cihkb2N1bWVudC5ib2R5LCAweDAxIHwgMHgwNCB8IDB4MDggfCAweDEwIHwgMHgyMCwgYWxsQnV0
V1MsIHRydWUpOwogICAgICBleHBlY3Qody5jdXJyZW50Tm9kZSwgZG9jdW1lbnQuYm9keSk7CiAg
ICAgIGV4cGVjdCh3LnBhcmVudE5vZGUoKSwgbnVsbCk7CiAgICAgIGV4cGVjdCh3LmN1cnJlbnRO
b2RlLCBkb2N1bWVudC5ib2R5KTsKICAgICAgZXhwZWN0KHcuZmlyc3RDaGlsZCgpLCBkb2N1bWVu
dC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaDEnKVswXSk7CiAgICAgIGV4cGVjdCh3LmZpcnN0Q2hp
bGQoKS5ub2RlVHlwZSwgMyk7CiAgICAgIGV4cGVjdCh3LnBhcmVudE5vZGUoKSwgZG9jdW1lbnQu
Z2V0RWxlbWVudHNCeVRhZ05hbWUoJ2gxJylbMF0pOwogICAgICBleHBlY3Qody5uZXh0U2libGlu
ZygpLnByZXZpb3VzU2libGluZy5ub2RlVHlwZSwgMyk7CiAgICAgIGV4cGVjdCh3Lm5leHRTaWJs
aW5nKCksIGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdwJylbNl0pOwogICAgICBleHBl
Y3Qody5uZXh0U2libGluZygpLCBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnbWFwJylb
MF0pOwogICAgICBleHBlY3Qody5sYXN0Q2hpbGQoKSwgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRh
Z05hbWUoJ3RhYmxlJylbMF0pOwogICAgICBleHBlY3Qody5sYXN0Q2hpbGQoKSwgZG9jdW1lbnQu
Z2V0RWxlbWVudHNCeVRhZ05hbWUoJ3Rib2R5JylbMF0pOwogICAgICBleHBlY3Qody5uZXh0Tm9k
ZSgpLCBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgndHInKVswXSk7CiAgICAgIGV4cGVj
dCh3Lm5leHROb2RlKCksIGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCd0ZCcpWzBdKTsK
ICAgICAgZXhwZWN0KHcubmV4dE5vZGUoKSwgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUo
J3AnKVs3XSk7CiAgICAgIGV4cGVjdCh3Lm5leHROb2RlKCksIGRvY3VtZW50LmdldEVsZW1lbnRz
QnlUYWdOYW1lKCdwJylbOF0pOwogICAgICBleHBlY3Qody5wcmV2aW91c1NpYmxpbmcoKSwgZG9j
dW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ21hcCcpWzBdKTsKICAgICAgZXhwZWN0KHcucHJl
dmlvdXNOb2RlKCksIGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdwJylbNl0pOwogICAg
ICBleHBlY3Qody5wYXJlbnROb2RlKCksIGRvY3VtZW50LmJvZHkpOwogICAgICBleHBlY3Qody5s
YXN0Q2hpbGQoKS5pZCwgImluc3RydWN0aW9ucyIpOwogICAgICBleHBlY3Qody5sYXN0Q2hpbGQo
KS5kYXRhLnN1YnN0cigwLDEpLCAiLiIpOwogICAgICBleHBlY3Qody5wcmV2aW91c05vZGUoKSwg
ZG9jdW1lbnQubGlua3NbMF0uZmlyc3RDaGlsZCk7CiAgICAgIHJldHVybiAxOwogICAgfSwKICAg
IGZ1bmN0aW9uICgpIHsKICAgICAgLy8gdGVzdCAxMDogd2Fsa2luZyBvdXRzaWRlIGEgdHJlZQog
ICAgICB2YXIgZG9jID0gZ2V0VGVzdERvY3VtZW50KCk7CiAgICAgIHZhciBwID0gZG9jLmNyZWF0
ZUVsZW1lbnQoJ3AnKTsKICAgICAgZG9jLmJvZHkuYXBwZW5kQ2hpbGQocCk7CiAgICAgIHZhciBi
ID0gZG9jLmJvZHk7CiAgICAgIHZhciB3ID0gZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihiLCAw
eEZGRkZGRkZGLCBudWxsLCB0cnVlKTsKICAgICAgYXNzZXJ0KHcuY3VycmVudE5vZGUgPT0gYiwg
ImJhc2ljIHVzZSBvZiBUcmVlV2Fsa2VyIGZhaWxlZDogY3VycmVudE5vZGUiKTsKICAgICAgYXNz
ZXJ0KHcubGFzdENoaWxkKCkgPT0gcCwgImJhc2ljIHVzZSBvZiBUcmVlV2Fsa2VyIGZhaWxlZDog
bGFzdENoaWxkKCkiKTsKICAgICAgYXNzZXJ0KHcucHJldmlvdXNOb2RlKCkgPT0gYiwgImJhc2lj
IHVzZSBvZiBUcmVlV2Fsa2VyIGZhaWxlZDogcHJldmlvdXNOb2RlKCkiKTsKICAgICAgZG9jLmRv
Y3VtZW50RWxlbWVudC5yZW1vdmVDaGlsZChiKTsKICAgICAgYXNzZXJ0KHcubGFzdENoaWxkKCkg
PT0gcCwgIlRyZWVXYWxrZXIgZmFpbGVkIGFmdGVyIHJlbW92aW5nIHRoZSBjdXJyZW50IG5vZGUg
ZnJvbSB0aGUgdHJlZSIpOwogICAgICBhc3NlcnQody5uZXh0Tm9kZSgpID09IG51bGwsICJmYWls
ZWQgdG8gd2FsayBpbnRvIHRoZSBlbmQgb2YgYSBzdWJ0cmVlIik7CiAgICAgIGRvYy5kb2N1bWVu
dEVsZW1lbnQuYXBwZW5kQ2hpbGQocCk7CiAgICAgIGFzc2VydCh3LnByZXZpb3VzTm9kZSgpID09
IGRvYy5nZXRFbGVtZW50c0J5VGFnTmFtZSgndGl0bGUnKVswXSwgImZhaWxlZCB0byBoYW5kbGUg
cmVncmFmdGluZyBjb3JyZWN0bHkiKTsKICAgICAgcC5hcHBlbmRDaGlsZChiKTsKICAgICAgYXNz
ZXJ0KHcubmV4dE5vZGUoKSA9PSBwLCAiY291bGRuJ3QgcmV0cmFjZSBzdGVwcyIpOwogICAgICBh
c3NlcnQody5uZXh0Tm9kZSgpID09IGIsICJjb3VsZG4ndCBzdGVwIGJhY2sgaW50byByb290Iik7
CiAgICAgIGFzc2VydCh3LnByZXZpb3VzTm9kZSgpID09IG51bGwsICJyb290IGRpZG4ndCByZXRh
a2UgaXRzIHJvb3Rpc2ggcG9zaXRpb24iKTsKICAgICAgcmV0dXJuIDE7CiAgICB9LAoKICAgIC8v
IERPTSBSYW5nZQogICAgZnVuY3Rpb24gKCkgewogICAgICAvLyB0ZXN0IDExOiBiYXNpYyByYW5n
ZXMgdGVzdHMKICAgICAgdmFyIHIgPSBkb2N1bWVudC5jcmVhdGVSYW5nZSgpOwogICAgICBhc3Nl
cnQociwgInJhbmdlIG5vdCBjcmVhdGVkIik7CiAgICAgIGFzc2VydChyLmNvbGxhcHNlZCwgIm5l
dyByYW5nZSB3YXNuJ3QgY29sbGFwc2VkIik7CiAgICAgIGFzc2VydChyLmNvbW1vbkFuY2VzdG9y
Q29udGFpbmVyID09IGRvY3VtZW50LCAibmV3IHJhbmdlJ3MgY29tbW9uIGFuY2VzdG9yIHdhc24n
dCB0aGUgZG9jdW1lbnQiKTsKICAgICAgYXNzZXJ0KHIuc3RhcnRDb250YWluZXIgPT0gZG9jdW1l
bnQsICJuZXcgcmFuZ2UncyBzdGFydCBjb250YWluZXIgd2Fzbid0IHRoZSBkb2N1bWVudCIpOwog
ICAgICBhc3NlcnQoci5zdGFydE9mZnNldCA9PSAwLCAibmV3IHJhbmdlJ3Mgc3RhcnQgb2Zmc2V0
IHdhc24ndCB6ZXJvIik7CiAgICAgIGFzc2VydChyLmVuZENvbnRhaW5lciA9PSBkb2N1bWVudCwg
Im5ldyByYW5nZSdzIGVuZCBjb250YWluZXIgd2Fzbid0IHRoZSBkb2N1bWVudCIpOwogICAgICBh
c3NlcnQoci5lbmRPZmZzZXQgPT0gMCwgIm5ldyByYW5nZSdzIGVuZCBvZmZzZXQgd2Fzbid0IHpl
cm8iKTsKICAgICAgYXNzZXJ0KHIuY2xvbmVDb250ZW50cygpLCAiY2xvbmVDb250ZW50cygpIGRp
ZG4ndCByZXR1cm4gYW4gb2JqZWN0Iik7CiAgICAgIGFzc2VydChyLmNsb25lQ29udGVudHMoKS5j
aGlsZE5vZGVzLmxlbmd0aCA9PSAwLCAibm90aGluZyBjbG9uZWQgd2FzIG1vcmUgdGhhbiBub3Ro
aW5nIik7CiAgICAgIGFzc2VydChyLmNsb25lUmFuZ2UoKS50b1N0cmluZygpID09ICIiLCAibm90
aGluZyBjbG9uZWQgc3RyaW5naWZlZCB0byBtb3JlIHRoYW4gbm90aGluZyIpOwogICAgICByLmNv
bGxhcHNlKHRydWUpOyAvLyBubyBlZmZlY3QKICAgICAgYXNzZXJ0KHIuY29tcGFyZUJvdW5kYXJ5
UG9pbnRzKHIuU1RBUlRfVE9fRU5ELCByLmNsb25lUmFuZ2UoKSkgPT0gMCwgInN0YXJ0aW5nIGJv
dW5kYXJ5IHBvaW50IG9mIHJhbmdlIHdhc24ndCB0aGUgc2FtZSBhcyB0aGUgZW5kIGJvdW5kYXJ5
IHBvaW50IG9mIHRoZSBjbG9uZSByYW5nZSIpOwogICAgICByLmRlbGV0ZUNvbnRlbnRzKCk7IC8v
IG5vIGVmZmVjdAogICAgICBhc3NlcnQoci5leHRyYWN0Q29udGVudHMoKS5jaGlsZE5vZGVzLmxl
bmd0aCA9PSAwLCAibm90aGluZyByZW1vdmVkIHdhcyBtb3JlIHRoYW4gbm90aGluZyIpOwogICAg
ICByLmluc2VydE5vZGUoZG9jdW1lbnQuY3JlYXRlQ29tbWVudCgiY29tbWVudGVkIGluc2VydGVk
IHRvIHRlc3QgcmFuZ2VzIikpOwogICAgICBhc3NlcnQoIXIuY29sbGFwc2VkLCAicmFuZ2Ugd2l0
aCBpbnNlcnRlZCBjb21tZW50IGlzbid0IGNvbGxhcHNlZCIpOwogICAgICBhc3NlcnQoci5jb21t
b25BbmNlc3RvckNvbnRhaW5lciA9PSBkb2N1bWVudCwgInJhbmdlIHdpdGggaW5zZXJ0ZWQgY29t
bWVudCBoYXMgY29tbW9uIGFuY2VzdG9yIHRoYXQgaXNuJ3QgdGhlIGRvY3VtZW50Iik7CiAgICAg
IGFzc2VydChyLnN0YXJ0Q29udGFpbmVyID09IGRvY3VtZW50LCAicmFuZ2Ugd2l0aCBpbnNlcnRl
ZCBjb21tZW50IGhhcyBzdGFydCBjb250YWluZXIgdGhhdCBpc24ndCB0aGUgZG9jdW1lbnQiKTsK
ICAgICAgYXNzZXJ0KHIuc3RhcnRPZmZzZXQgPT0gMCwgInJhbmdlIHdpdGggaW5zZXJ0ZWQgY29t
bWVudCBoYXMgc3RhcnQgb2Zmc2V0IHRoYXQgaXNuJ3QgemVybyIpOwogICAgICBhc3NlcnQoci5l
bmRDb250YWluZXIgPT0gZG9jdW1lbnQsICJyYW5nZSB3aXRoIGluc2VydGVkIGNvbW1lbnQgaGFz
IGVuZCBjb250YWluZXIgdGhhdCBpc24ndCB0aGUgZG9jdW1lbnQiKTsKICAgICAgYXNzZXJ0KHIu
ZW5kT2Zmc2V0ID09IDEsICJyYW5nZSB3aXRoIGluc2VydGVkIGNvbW1lbnQgaGFzIGVuZCBvZmZz
ZXQgdGhhdCBpc24ndCBhZnRlciB0aGUgY29tbWVudCIpOwogICAgICByZXR1cm4gMTsKICAgIH0s
CiAgICBmdW5jdGlvbiAoKSB7CiAgICAgIC8vIHRlc3QgMTI6IG1vdmluZyBib3VuZGFyeSBwb2lu
dHMKICAgICAgdmFyIGRvYyA9IGRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZURvY3VtZW50
KG51bGwsIG51bGwsIG51bGwpOwogICAgICB2YXIgcm9vdCA9IGRvYy5jcmVhdGVFbGVtZW50KCJy
b290Iik7CiAgICAgIGRvYy5hcHBlbmRDaGlsZChyb290KTsKICAgICAgdmFyIGUxID0gZG9jLmNy
ZWF0ZUVsZW1lbnQoImUiKTsKICAgICAgcm9vdC5hcHBlbmRDaGlsZChlMSk7CiAgICAgIHZhciBl
MiA9IGRvYy5jcmVhdGVFbGVtZW50KCJlIik7CiAgICAgIHJvb3QuYXBwZW5kQ2hpbGQoZTIpOwog
ICAgICB2YXIgZTMgPSBkb2MuY3JlYXRlRWxlbWVudCgiZSIpOwogICAgICByb290LmFwcGVuZENo
aWxkKGUzKTsKICAgICAgdmFyIHIgPSBkb2MuY3JlYXRlUmFuZ2UoKTsKICAgICAgci5zZXRTdGFy
dChlMiwgMCk7CiAgICAgIHIuc2V0RW5kKGUzLCAwKTsKICAgICAgYXNzZXJ0KCFyLmNvbGxhcHNl
ZCwgIm5vbi1lbXB0eSByYW5nZSBjbGFpbXMgdG8gYmUgY29sbGFwc2VkIik7CiAgICAgIHIuc2V0
RW5kKGUxLCAwKTsKICAgICAgYXNzZXJ0KHIuY29sbGFwc2VkLCAic2V0RW5kKCkgZGlkbid0IGNv
bGxhcHNlIHRoZSByYW5nZSIpOwogICAgICBhc3NlcnQoci5zdGFydENvbnRhaW5lciA9PSBlMSwg
InN0YXJ0Q29udGFpbmVyIGlzIHdyb25nIGFmdGVyIHNldEVuZCgpIik7CiAgICAgIGFzc2VydChy
LnN0YXJ0T2Zmc2V0ID09IDAsICJzdGFydE9mZnNldCBpcyB3cm9uZyBhZnRlciBzZXRFbmQoKSIp
OwogICAgICBhc3NlcnQoci5lbmRDb250YWluZXIgPT0gZTEsICJlbmRDb250YWluZXIgaXMgd3Jv
bmcgYWZ0ZXIgc2V0RW5kKCkiKTsKICAgICAgYXNzZXJ0KHIuZW5kT2Zmc2V0ID09IDAsICJlbmRP
ZmZzZXQgaXMgd3JvbmcgYWZ0ZXIgc2V0RW5kKCkiKTsKICAgICAgci5zZXRTdGFydEJlZm9yZShl
Myk7CiAgICAgIGFzc2VydChyLmNvbGxhcHNlZCwgInNldFN0YXJ0QmVmb3JlKCkgZGlkbid0IGNv
bGxhcHNlIHRoZSByYW5nZSIpOwogICAgICBhc3NlcnQoci5zdGFydENvbnRhaW5lciA9PSByb290
LCAic3RhcnRDb250YWluZXIgaXMgd3JvbmcgYWZ0ZXIgc2V0U3RhcnRCZWZvcmUoKSIpOwogICAg
ICBhc3NlcnQoci5zdGFydE9mZnNldCA9PSAyLCAic3RhcnRPZmZzZXQgaXMgd3JvbmcgYWZ0ZXIg
c2V0U3RhcnRCZWZvcmUoKSIpOwogICAgICBhc3NlcnQoci5lbmRDb250YWluZXIgPT0gcm9vdCwg
ImVuZENvbnRhaW5lciBpcyB3cm9uZyBhZnRlciBzZXRTdGFydEJlZm9yZSgpIik7CiAgICAgIGFz
c2VydChyLmVuZE9mZnNldCA9PSAyLCAiZW5kT2Zmc2V0IGlzIHdyb25nIGFmdGVyIHNldFN0YXJ0
QmVmb3JlKCkiKTsKICAgICAgci5zZXRFbmRBZnRlcihyb290KTsKICAgICAgYXNzZXJ0KCFyLmNv
bGxhcHNlZCwgInNldEVuZEFmdGVyKCkgZGlkbid0IHVuY29sbGFwc2UgdGhlIHJhbmdlIik7CiAg
ICAgIGFzc2VydChyLnN0YXJ0Q29udGFpbmVyID09IHJvb3QsICJzdGFydENvbnRhaW5lciBpcyB3
cm9uZyBhZnRlciBzZXRFbmRBZnRlcigpIik7CiAgICAgIGFzc2VydChyLnN0YXJ0T2Zmc2V0ID09
IDIsICJzdGFydE9mZnNldCBpcyB3cm9uZyBhZnRlciBzZXRFbmRBZnRlcigpIik7CiAgICAgIGFz
c2VydChyLmVuZENvbnRhaW5lciA9PSBkb2MsICJlbmRDb250YWluZXIgaXMgd3JvbmcgYWZ0ZXIg
c2V0RW5kQWZ0ZXIoKSIpOwogICAgICBhc3NlcnQoci5lbmRPZmZzZXQgPT0gMSwgImVuZE9mZnNl
dCBpcyB3cm9uZyBhZnRlciBzZXRFbmRBZnRlcigpIik7CiAgICAgIHIuc2V0U3RhcnRBZnRlcihl
Mik7CiAgICAgIGFzc2VydCghci5jb2xsYXBzZWQsICJzZXRTdGFydEFmdGVyKCkgY29sbGFwc2Vk
IHRoZSByYW5nZSIpOwogICAgICBhc3NlcnQoci5zdGFydENvbnRhaW5lciA9PSByb290LCAic3Rh
cnRDb250YWluZXIgaXMgd3JvbmcgYWZ0ZXIgc2V0U3RhcnRBZnRlcigpIik7CiAgICAgIGFzc2Vy
dChyLnN0YXJ0T2Zmc2V0ID09IDIsICJzdGFydE9mZnNldCBpcyB3cm9uZyBhZnRlciBzZXRTdGFy
dEFmdGVyKCkiKTsKICAgICAgYXNzZXJ0KHIuZW5kQ29udGFpbmVyID09IGRvYywgImVuZENvbnRh
aW5lciBpcyB3cm9uZyBhZnRlciBzZXRTdGFydEFmdGVyKCkiKTsKICAgICAgYXNzZXJ0KHIuZW5k
T2Zmc2V0ID09IDEsICJlbmRPZmZzZXQgaXMgd3JvbmcgYWZ0ZXIgc2V0U3RhcnRBZnRlcigpIik7
CiAgICAgIHZhciBtc2cgPSAnJzsKICAgICAgdHJ5IHsKICAgICAgICByLnNldEVuZEJlZm9yZShk
b2MpOwogICAgICAgIG1zZyA9ICJubyBleGNlcHRpb24gdGhyb3duIGZvciBzZXRFbmRCZWZvcmUo
KSB0aGUgZG9jdW1lbnQgaXRzZWxmIjsKICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgIGlmIChl
LkJBRF9CT1VOREFSWVBPSU5UU19FUlIgIT0gMSkKICAgICAgICAgIG1zZyA9ICdub3QgYSBSYW5n
ZUV4Y2VwdGlvbic7CiAgICAgICAgZWxzZSBpZiAoZS5JTlZBTElEX05PREVfVFlQRV9FUlIgIT0g
MikKICAgICAgICAgIG1zZyA9ICdSYW5nZUV4Y2VwdGlvbiBoYXMgbm8gSU5WQUxJRF9OT0RFX1RZ
UEVfRVJSJzsKICAgICAgICBlbHNlIGlmICgiSU5WQUxJRF9BQ0NFU1NfRVJSIiBpbiBlKQogICAg
ICAgICAgbXNnID0gJ1JhbmdlRXhjZXB0aW9uIGhhcyBET01FeGNlcHRpb24gY29uc3RhbnRzJzsK
ICAgICAgICBlbHNlIGlmIChlLmNvZGUgIT0gZS5JTlZBTElEX05PREVfVFlQRV9FUlIpCiAgICAg
ICAgICBtc2cgPSAnd3JvbmcgZXhjZXB0aW9uIHJhaXNlZCBmcm9tIHNldEVuZEJlZm9yZSgpJzsK
ICAgICAgfQogICAgICBhc3NlcnQobXNnID09ICIiLCBtc2cpOwogICAgICBhc3NlcnQoIXIuY29s
bGFwc2VkLCAic2V0RW5kQmVmb3JlKCkgY29sbGFwc2VkIHRoZSByYW5nZSIpOwogICAgICBhc3Nl
cnQoci5zdGFydENvbnRhaW5lciA9PSByb290LCAic3RhcnRDb250YWluZXIgaXMgd3JvbmcgYWZ0
ZXIgc2V0RW5kQmVmb3JlKCkiKTsKICAgICAgYXNzZXJ0KHIuc3RhcnRPZmZzZXQgPT0gMiwgInN0
YXJ0T2Zmc2V0IGlzIHdyb25nIGFmdGVyIHNldEVuZEJlZm9yZSgpIik7CiAgICAgIGFzc2VydChy
LmVuZENvbnRhaW5lciA9PSBkb2MsICJlbmRDb250YWluZXIgaXMgd3JvbmcgYWZ0ZXIgc2V0RW5k
QmVmb3JlKCkiKTsKICAgICAgYXNzZXJ0KHIuZW5kT2Zmc2V0ID09IDEsICJlbmRPZmZzZXQgaXMg
d3JvbmcgYWZ0ZXIgc2V0RW5kQmVmb3JlKCkiKTsKICAgICAgci5jb2xsYXBzZShmYWxzZSk7CiAg
ICAgIGFzc2VydChyLmNvbGxhcHNlZCwgImNvbGxhcHNlKCkgY29sbGFwc2VkIHRoZSByYW5nZSIp
OwogICAgICBhc3NlcnQoci5zdGFydENvbnRhaW5lciA9PSBkb2MsICJzdGFydENvbnRhaW5lciBp
cyB3cm9uZyBhZnRlciBjb2xsYXBzZSgpIik7CiAgICAgIGFzc2VydChyLnN0YXJ0T2Zmc2V0ID09
IDEsICJzdGFydE9mZnNldCBpcyB3cm9uZyBhZnRlciBjb2xsYXBzZSgpIik7CiAgICAgIGFzc2Vy
dChyLmVuZENvbnRhaW5lciA9PSBkb2MsICJlbmRDb250YWluZXIgaXMgd3JvbmcgYWZ0ZXIgY29s
bGFwc2UoKSIpOwogICAgICBhc3NlcnQoci5lbmRPZmZzZXQgPT0gMSwgImVuZE9mZnNldCBpcyB3
cm9uZyBhZnRlciBjb2xsYXBzZSgpIik7CiAgICAgIHIuc2VsZWN0Tm9kZUNvbnRlbnRzKHJvb3Qp
OwogICAgICBhc3NlcnQoIXIuY29sbGFwc2VkLCAiY29sbGFwc2VkIGlzIHdyb25nIGFmdGVyIHNl
bGVjdE5vZGVDb250ZW50cygpIik7CiAgICAgIGFzc2VydChyLnN0YXJ0Q29udGFpbmVyID09IHJv
b3QsICJzdGFydENvbnRhaW5lciBpcyB3cm9uZyBhZnRlciBzZWxlY3ROb2RlQ29udGVudHMoKSIp
OwogICAgICBhc3NlcnQoci5zdGFydE9mZnNldCA9PSAwLCAic3RhcnRPZmZzZXQgaXMgd3Jvbmcg
YWZ0ZXIgc2VsZWN0Tm9kZUNvbnRlbnRzKCkiKTsKICAgICAgYXNzZXJ0KHIuZW5kQ29udGFpbmVy
ID09IHJvb3QsICJlbmRDb250YWluZXIgaXMgd3JvbmcgYWZ0ZXIgc2VsZWN0Tm9kZUNvbnRlbnRz
KCkiKTsKICAgICAgYXNzZXJ0KHIuZW5kT2Zmc2V0ID09IDMsICJlbmRPZmZzZXQgaXMgd3Jvbmcg
YWZ0ZXIgc2VsZWN0Tm9kZUNvbnRlbnRzKCkiKTsKICAgICAgci5zZWxlY3ROb2RlKGUyKTsKICAg
ICAgYXNzZXJ0KCFyLmNvbGxhcHNlZCwgImNvbGxhcHNlZCBpcyB3cm9uZyBhZnRlciBzZWxlY3RO
b2RlKCkiKTsKICAgICAgYXNzZXJ0KHIuc3RhcnRDb250YWluZXIgPT0gcm9vdCwgInN0YXJ0Q29u
dGFpbmVyIGlzIHdyb25nIGFmdGVyIHNlbGVjdE5vZGUoKSIpOwogICAgICBhc3NlcnQoci5zdGFy
dE9mZnNldCA9PSAxLCAic3RhcnRPZmZzZXQgaXMgd3JvbmcgYWZ0ZXIgc2VsZWN0Tm9kZSgpIik7
CiAgICAgIGFzc2VydChyLmVuZENvbnRhaW5lciA9PSByb290LCAiZW5kQ29udGFpbmVyIGlzIHdy
b25nIGFmdGVyIHNlbGVjdE5vZGUoKSIpOwogICAgICBhc3NlcnQoci5lbmRPZmZzZXQgPT0gMiwg
ImVuZE9mZnNldCBpcyB3cm9uZyBhZnRlciBzZWxlY3ROb2RlKCkiKTsKICAgICAgcmV0dXJuIDE7
CiAgICB9LAogICAgZnVuY3Rpb24gKCkgewogICAgICAvLyB0ZXN0IDEzOiBleHRyYWN0Q29udGVu
dHMoKSBpbiBhIERvY3VtZW50CiAgICAgIHZhciBkb2MgPSBnZXRUZXN0RG9jdW1lbnQoKTsKICAg
ICAgdmFyIGgxID0gZG9jLmNyZWF0ZUVsZW1lbnQoJ2gxJyk7CiAgICAgIHZhciB0MSA9IGRvYy5j
cmVhdGVUZXh0Tm9kZSgnSGVsbG8gJyk7CiAgICAgIGgxLmFwcGVuZENoaWxkKHQxKTsKICAgICAg
dmFyIGVtID0gZG9jLmNyZWF0ZUVsZW1lbnQoJ2VtJyk7CiAgICAgIHZhciB0MiA9IGRvYy5jcmVh
dGVUZXh0Tm9kZSgnV29uZGVyZnVsJyk7CiAgICAgIGVtLmFwcGVuZENoaWxkKHQyKTsKICAgICAg
aDEuYXBwZW5kQ2hpbGQoZW0pOwogICAgICB2YXIgdDMgPSBkb2MuY3JlYXRlVGV4dE5vZGUoJyBL
aXR0eScpOwogICAgICBoMS5hcHBlbmRDaGlsZCh0Myk7CiAgICAgIGRvYy5ib2R5LmFwcGVuZENo
aWxkKGgxKTsKICAgICAgdmFyIHAgPSBkb2MuY3JlYXRlRWxlbWVudCgncCcpOwogICAgICB2YXIg
dDQgPSBkb2MuY3JlYXRlVGV4dE5vZGUoJ0hvdyBhcmUgeW91PycpOwogICAgICBwLmFwcGVuZENo
aWxkKHQ0KTsKICAgICAgZG9jLmJvZHkuYXBwZW5kQ2hpbGQocCk7CiAgICAgIHZhciByID0gZG9j
LmNyZWF0ZVJhbmdlKCk7CiAgICAgIHIuc2VsZWN0Tm9kZUNvbnRlbnRzKGRvYyk7CiAgICAgIGFz
c2VydChyLnRvU3RyaW5nKCkgPT0gIkhlbGxvIFdvbmRlcmZ1bCBLaXR0eUhvdyBhcmUgeW91PyIs
ICJ0b1N0cmluZygpIG9uIHJhbmdlIHNlbGVjdGluZyBEb2N1bWVudCBnYXZlIHdyb25nIG91dHB1
dCIpOwogICAgICByLnNldFN0YXJ0KHQyLCA2KTsKICAgICAgci5zZXRFbmQocCwgMCk7CiAgICAg
IC8vIDxib2R5PjxoMT5IZWxsbyA8ZW0+V29uZGVyIGZ1bDwvZW0+IEtpdHR5PC9oMT48cD4gSG93
IGFyZSB5b3U/PC9wPjwvYm9keT4KICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgICBe
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLV4KICAgICAgYXNzZXJ0KHIudG9TdHJpbmcoKSA9PSAiZnVs
IEtpdHR5IiwgInRvU3RyaW5nKCkgb24gcmFuZ2UgY3Jvc3NpbmcgdGV4dCBub2RlcyBnYXZlIHdy
b25nIG91dHB1dCIpOwogICAgICB2YXIgZiA9IHIuZXh0cmFjdENvbnRlbnRzKCk7CiAgICAgIC8v
IDxoMT48ZW0+ZnVsPC9lbT4gS2l0dHk8L2gxPjxwPjwvcD4KICAgICAgLy8gY2NjY2NjY2NjY2Nj
Y2NjY01NTU1NTWNjY2NjY2NjY2NjYwogICAgICBhc3NlcnQoZi5ub2RlVHlwZSA9PSAxMSwgImZh
aWx1cmUgMSIpOwogICAgICBhc3NlcnQoZi5jaGlsZE5vZGVzLmxlbmd0aCA9PSAyLCAiZXhwZWN0
ZWQgMiBjaGlsZHJlbiBpbiB0aGUgcmVzdWx0LCBnb3QgIiArIGYuY2hpbGROb2Rlcy5sZW5ndGgp
OwogICAgICBhc3NlcnQoZi5jaGlsZE5vZGVzWzBdLnRhZ05hbWUgPT0gIkgxIiwgImZhaWx1cmUg
MyIpOwogICAgICBhc3NlcnQoZi5jaGlsZE5vZGVzWzBdICE9IGgxLCAiZmFpbHVyZSA0Iik7CiAg
ICAgIGFzc2VydChmLmNoaWxkTm9kZXNbMF0uY2hpbGROb2Rlcy5sZW5ndGggPT0gMiwgImZhaWx1
cmUgNSIpOwogICAgICBhc3NlcnQoZi5jaGlsZE5vZGVzWzBdLmNoaWxkTm9kZXNbMF0udGFnTmFt
ZSA9PSAiRU0iLCAiZmFpbHVyZSA2Iik7CiAgICAgIGFzc2VydChmLmNoaWxkTm9kZXNbMF0uY2hp
bGROb2Rlc1swXSAhPSBlbSwgImZhaWx1cmUgNyIpOwogICAgICBhc3NlcnQoZi5jaGlsZE5vZGVz
WzBdLmNoaWxkTm9kZXNbMF0uY2hpbGROb2Rlcy5sZW5ndGggPT0gMSwgImZhaWx1cmUgOCIpOwog
ICAgICBhc3NlcnQoZi5jaGlsZE5vZGVzWzBdLmNoaWxkTm9kZXNbMF0uY2hpbGROb2Rlc1swXS5k
YXRhID09ICJmdWwiLCAiZmFpbHVyZSA5Iik7CiAgICAgIGFzc2VydChmLmNoaWxkTm9kZXNbMF0u
Y2hpbGROb2Rlc1swXS5jaGlsZE5vZGVzWzBdICE9IHQyLCAiZmFpbHVyZSAxMCIpOwogICAgICBh
c3NlcnQoZi5jaGlsZE5vZGVzWzBdLmNoaWxkTm9kZXNbMV0gPT0gdDMsICJmYWlsdXJlIDExIik7
CiAgICAgIGFzc2VydChmLmNoaWxkTm9kZXNbMF0uY2hpbGROb2Rlc1sxXSAhPSBlbSwgImZhaWx1
cmUgMTIiKTsKICAgICAgYXNzZXJ0KGYuY2hpbGROb2Rlc1sxXS50YWdOYW1lID09ICJQIiwgImZh
aWx1cmUgMTMiKTsKICAgICAgYXNzZXJ0KGYuY2hpbGROb2Rlc1sxXS5jaGlsZE5vZGVzLmxlbmd0
aCA9PSAwLCAiZmFpbHVyZSAxNCIpOwogICAgICBhc3NlcnQoZi5jaGlsZE5vZGVzWzFdICE9IHAs
ICJmYWlsdXJlIDE1Iik7CiAgICAgIHJldHVybiAxOwogICAgfSwKICAgIGZ1bmN0aW9uICgpIHsK
ICAgICAgLy8gdGVzdCAxNDogUmFuZ2VzIGFuZCBBdHRyaWJ1dGVzCiAgICAgIHZhciBlID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdCcpOwogICAgICB2YXIgYSA9IGUuZ2V0QXR0cmli
dXRlTm9kZSgnaWQnKTsKICAgICAgdmFyIHIgPSBkb2N1bWVudC5jcmVhdGVSYW5nZSgpOwogICAg
ICByLnNlbGVjdE5vZGVDb250ZW50cyhhKTsKICAgICAgYXNzZXJ0KHIudG9TdHJpbmcoKSA9PSAi
cmVzdWx0IiwgInRvU3RyaW5nKCkgZGlkbid0IHdvcmsgZm9yIGF0dHJpYnV0ZSBub2RlIik7CiAg
ICAgIHZhciB0ID0gYS5maXJzdENoaWxkOwogICAgICB2YXIgZiA9IHIuZXh0cmFjdENvbnRlbnRz
KCk7CiAgICAgIGFzc2VydChmLmNoaWxkTm9kZXMubGVuZ3RoID09IDEsICJleHRyYWN0ZWQgY29u
dGVudHMgd2VyZSB0aGUgd3JvbmcgbGVuZ3RoIik7CiAgICAgIGFzc2VydChmLmNoaWxkTm9kZXNb
MF0gPT0gdCwgImV4dHJhY3RlZCBjb250ZW50cyB3ZXJlIHRoZSB3cm9uZyBub2RlIik7CiAgICAg
IGFzc2VydCh0LnRleHRDb250ZW50ID09ICdyZXN1bHQnLCAiZXh0cmFjdGVkIGNvbnRlbnRzIGRp
ZG4ndCBtYXRjaCBvbGQgYXR0cmlidXRlIHZhbHVlIik7CiAgICAgIGFzc2VydChyLnRvU3RyaW5n
KCkgPT0gJycsICJleHRyYWN0aW5nIGNvbnRlbnRzIGRpZG4ndCBlbXB0eSBhdHRyaWJ1dGUgdmFs
dWU7IGluc3RlYWQgZXF1YWxzICciICsgci50b1N0cmluZygpICsgIiciKTsKICAgICAgYXNzZXJ0
KGUuZ2V0QXR0cmlidXRlKCdpZCcpID09ICcnLCAiZXh0cmFjdGluZyBjb250ZW50cyBkaWRuJ3Qg
Y2hhbmdlICdpZCcgYXR0cmlidXRlIHRvIGVtcHR5IHN0cmluZyIpOwogICAgICBlLmlkID0gJ3Jl
c3VsdCc7CiAgICAgIHJldHVybiAxOwogICAgfSwKICAgIGZ1bmN0aW9uICgpIHsKICAgICAgLy8g
dGVzdCAxNTogUmFuZ2VzIGFuZCBDb21tZW50cwogICAgICB2YXIgbXNnOwogICAgICB2YXIgZG9j
ID0gZ2V0VGVzdERvY3VtZW50KCk7CiAgICAgIHZhciBjMSA9IGRvYy5jcmVhdGVDb21tZW50KCIx
MTExMSIpOwogICAgICBkb2MuYXBwZW5kQ2hpbGQoYzEpOwogICAgICB2YXIgciA9IGRvYy5jcmVh
dGVSYW5nZSgpOwogICAgICByLnNlbGVjdE5vZGUoYzEpOwogICAgICBtc2cgPSAnd3JvbmcgZXhj
ZXB0aW9uIHJhaXNlZCc7CiAgICAgIHRyeSB7CiAgICAgICAgci5zdXJyb3VuZENvbnRlbnRzKGRv
Yy5jcmVhdGVFbGVtZW50KCdhJykpOwogICAgICAgIG1zZyA9ICdubyBleGNlcHRpb24gcmFpc2Vk
JzsKICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgIGlmICgnY29kZScgaW4gZSkKICAgICAgICAg
IG1zZyArPSAnOyBjb2RlID0gJyArIGUuY29kZTsKICAgICAgICBpZiAoZS5jb2RlID09IDMpCiAg
ICAgICAgICBtc2cgPSAnJzsKICAgICAgfQogICAgICBhc3NlcnQobXNnID09ICcnLCAid2hlbiBp
bnNlcnRpbmcgPGE+IGludG8gRG9jdW1lbnQgd2l0aCBhbm90aGVyIGNoaWxkOiAiICsgbXNnKTsK
ICAgICAgdmFyIGMyID0gZG9jLmNyZWF0ZUNvbW1lbnQoIjIyMjIyIik7CiAgICAgIGRvYy5ib2R5
LmFwcGVuZENoaWxkKGMyKTsKICAgICAgdmFyIGMzID0gZG9jLmNyZWF0ZUNvbW1lbnQoIjMzMzMz
Iik7CiAgICAgIGRvYy5ib2R5LmFwcGVuZENoaWxkKGMzKTsKICAgICAgci5zZXRTdGFydChjMiwg
Mik7CiAgICAgIHIuc2V0RW5kKGMzLCAzKTsKICAgICAgdmFyIG1zZyA9ICd3cm9uZyBleGNlcHRp
b24gcmFpc2VkJzsKICAgICAgdHJ5IHsKICAgICAgICByLnN1cnJvdW5kQ29udGVudHMoZG9jLmNy
ZWF0ZUVsZW1lbnQoJ2EnKSk7CiAgICAgICAgbXNnID0gJ25vIGV4Y2VwdGlvbiByYWlzZWQnOwog
ICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgaWYgKCdjb2RlJyBpbiBlKQogICAgICAgICAgbXNn
ICs9ICc7IGNvZGUgPSAnICsgZS5jb2RlOwogICAgICAgIGlmIChlLmNvZGUgPT0gMSkKICAgICAg
ICAgIG1zZyA9ICcnOwogICAgICB9CiAgICAgIGFzc2VydChtc2cgPT0gJycsICJ3aGVuIHRyeWlu
ZyB0byBzdXJyb3VuZCB0d28gaGFsdmVzIG9mIGNvbW1lbnQ6ICIgKyBtc2cpOwogICAgICBhc3Nl
cnQoci50b1N0cmluZygpID09ICIiLCAiY29tbWVudHMgcmV0dXJuZWQgdGV4dCIpOwogICAgICBy
ZXR1cm4gMTsKICAgIH0sCiAgICBmdW5jdGlvbiAoKSB7CiAgICAgIHJldHVybiAxOwogICAgfSwK
CiAgICAvLyBidWNrZXQgMjogRE9NMiBDb3JlIGFuZCBET00yIEV2ZW50cwogICAgLy8gQ29yZQog
ICAgZnVuY3Rpb24gKCkgewogICAgICAvLyB0ZXN0IDE3OiBoYXNBdHRyaWJ1dGUgb24gYSBtaXNz
aW5nIGF0dHJpYnV0ZQogICAgICBhc3NlcnQoIWRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1l
KCdtYXAnKVswXS5oYXNBdHRyaWJ1dGUoJ2lkJyksICJoYXNBdHRyaWJ1dGUgZmFpbHVyZSIpOwog
ICAgICByZXR1cm4gMjsKICAgIH0sCiAgICBmdW5jdGlvbiAoKSB7CiAgICAgIC8vIHRlc3QgMTg6
IG5vZGVUeXBlICh0aGlzIHRlc3QgYWxzbyByZWxpZXMgb24gYWNjdXJhdGUgcGFyc2luZyBvZiB0
aGUgZG9jdW1lbnQpCiAgICAgIGFzc2VydChkb2N1bWVudC5ub2RlVHlwZSA9PSA5LCAiZG9jdW1l
bnQgbm9kZVR5cGUgd3JvbmciKTsKICAgICAgYXNzZXJ0KGRvY3VtZW50LmRvY3VtZW50RWxlbWVu
dC5ub2RlVHlwZSA9PSAxLCAiZWxlbWVudCBub2RlVHlwZSB3cm9uZyIpOwogICAgICBhc3NlcnQo
ZG9jdW1lbnQuY3JlYXRlQXR0cmlidXRlKCd0ZXN0Jykubm9kZVR5cGUgPT0gMiwgImF0dHJpYnV0
ZSBub2RlVHlwZSB3cm9uZyIpOwogICAgICBhc3NlcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J3Njb3JlJykuZmlyc3RDaGlsZC5ub2RlVHlwZSA9PSAzLCAidGV4dCBub2RlIG5vZGVUeXBlIHdy
b25nIik7CiAgICAgIGFzc2VydChkb2N1bWVudC5maXJzdENoaWxkLm5vZGVUeXBlID09IDEwLCAi
RE9DVFlQRSBub2RlVHlwZSB3cm9uZyIpOwogICAgICByZXR1cm4gMjsKICAgIH0sCiAgICBmdW5j
dGlvbiAoKSB7CiAgICAgIC8vIHRlc3QgMTk6IHZhbHVlIG9mIGNvbnN0YW50cwogICAgICB2YXIg
ZSA9IG51bGw7CiAgICAgIHRyeSB7CiAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChk
b2N1bWVudC5kb2N1bWVudEVsZW1lbnQpOwogICAgICAgICAvLyByYWlzZXMgYSBISUVSQVJDSFlf
UkVRVUVTVF9FUlIKICAgICAgfSBjYXRjaCAoZXJyKSB7CiAgICAgICAgZSA9IGVycjsKICAgICAg
fQogICAgICBhc3NlcnQoZG9jdW1lbnQuRE9DVU1FTlRfRlJBR01FTlRfTk9ERSA9PSAxMSwgImRv
Y3VtZW50IERPQ1VNRU5UX0ZSQUdNRU5UX05PREUgY29uc3RhbnQgbWlzc2luZyBvciB3cm9uZyIp
OwogICAgICBhc3NlcnQoZG9jdW1lbnQuYm9keS5DT01NRU5UX05PREUgPT0gOCwgImVsZW1lbnQg
Q09NTUVOVF9OT0RFIGNvbnN0YW50IG1pc3Npbmcgb3Igd3JvbmciKTsKICAgICAgYXNzZXJ0KGRv
Y3VtZW50LmNyZWF0ZVRleHROb2RlKCcnKS5FTEVNRU5UX05PREUgPT0gMSwgInRleHQgbm9kZSBF
TEVNRU5UX05PREUgY29uc3RhbnQgbWlzc2luZyBvciB3cm9uZyIpOwogICAgICBhc3NlcnQoZS5I
SUVSQVJDSFlfUkVRVUVTVF9FUlIgPT0gMywgImV4Y2VwdGlvbiBISUVSQVJDSFlfUkVRVUVTVF9F
UlIgY29uc3RhbnQgbWlzc2luZyBvciB3cm9uZyIpCiAgICAgIGFzc2VydChlLmNvZGUgPT0gMywg
ImluY29ycmVjdCBleGNlcHRpb24gcmFpc2VkIGZyb20gYXBwZW5kQ2hpbGQoKSIpOwogICAgICBy
ZXR1cm4gMjsKICAgIH0sCiAgICBmdW5jdGlvbiAoKSB7CiAgICAgIC8vIHRlc3QgMjA6IG51bGxz
IGJ5dGVzIGluIHZhcmlvdXMgcGxhY2VzCiAgICAgIGFzc2VydCghZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ2J1Y2tldDFcMGVycm9yJyksICJudWxsIGluIGdldEVsZW1lbnRCeUlkKCkgcHJvYmFi
bHkgdGVybWluYXRlZCBzdHJpbmciKTsKICAgICAgdmFyIG9rID0gdHJ1ZTsKICAgICAgdHJ5IHsK
ICAgICAgICBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdmb3JtXDBkaXYnKTsKICAgICAgICBvayA9
IGZhbHNlOwogICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgaWYgKGUuY29kZSAhPSA1KQogICAg
ICAgICAgb2sgPSBmYWxzZTsKICAgICAgfQogICAgICBhc3NlcnQob2ssICJkaWRuJ3QgcmFpc2Ug
dGhlIHJpZ2h0IGV4Y2VwdGlvbiBmb3IgbnVsbCBieXRlIGluIGNyZWF0ZUVsZW1lbnQoKSIpOwog
ICAgICByZXR1cm4gMjsKICAgIH0sCiAgICBmdW5jdGlvbiAoKSB7CiAgICAgIC8vIHRlc3QgMjE6
IGJhc2ljIG5hbWVzcGFjZSBzdHVmZgogICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnROUygnaHR0cDovL25zLmV4YW1wbGUuY29tLycsICdwcmVmaXg6bG9jYWxuYW1lJyk7
CiAgICAgIGFzc2VydChlbGVtZW50LnRhZ05hbWUgPT0gJ3ByZWZpeDpsb2NhbG5hbWUnLCAid3Jv
bmcgdGFnTmFtZSIpOwogICAgICBhc3NlcnQoZWxlbWVudC5ub2RlTmFtZSA9PSAncHJlZml4Omxv
Y2FsbmFtZScsICJ3cm9uZyBub2RlTmFtZSIpOwogICAgICBhc3NlcnQoZWxlbWVudC5wcmVmaXgg
PT0gJ3ByZWZpeCcsICJ3cm9uZyBwcmVmaXgiKTsKICAgICAgYXNzZXJ0KGVsZW1lbnQubG9jYWxO
YW1lID09ICdsb2NhbG5hbWUnLCAid3JvbmcgbG9jYWxOYW1lIik7CiAgICAgIGFzc2VydChlbGVt
ZW50Lm5hbWVzcGFjZVVSSSA9PSAnaHR0cDovL25zLmV4YW1wbGUuY29tLycsICJ3cm9uZyBuYW1l
c3BhY2VVUkkiKTsKICAgICAgcmV0dXJuIDI7CiAgICB9LAogICAgZnVuY3Rpb24gKCkgewogICAg
ICAvLyB0ZXN0IDIyOiBjcmVhdGVFbGVtZW50KCkgd2l0aCBpbnZhbGlkIHRhZyBuYW1lcwogICAg
ICB2YXIgdGVzdCA9IGZ1bmN0aW9uIChuYW1lKSB7CiAgICAgICAgdmFyIHJlc3VsdDsKICAgICAg
ICB0cnkgewogICAgICAgICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQobmFtZSk7
CiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgcmVzdWx0ID0gZTsKICAgICAgICB9CiAg
ICAgICAgcmV0dXJuIHJlc3VsdCAmJiByZXN1bHQuY29kZSA9PSA1OyAvLyBJTlZBTElEX0NIQVJB
Q1RFUl9FUlIKICAgICAgfQogICAgICBhc3NlcnQodGVzdCgnPGRpdj4nKSwgIm5vIGV4Y2VwdGlv
biBmb3I6IDxkaXY+Iik7CiAgICAgIGFzc2VydCh0ZXN0KCcwZGl2JyksICJubyBleGNlcHRpb24g
Zm9yOiAwZGl2Iik7CiAgICAgIGFzc2VydCh0ZXN0KCdkaTx2JyksICJubyBleGNlcHRpb24gZm9y
OiBkaTx2Iik7CiAgICAgIGFzc2VydCh0ZXN0KCctZGl2JyksICJubyBleGNlcHRpb24gZm9yOiAt
ZGl2Iik7CiAgICAgIGFzc2VydCh0ZXN0KCcuZGl2JyksICJubyBleGNlcHRpb24gZm9yOiAuZGl2
Iik7CiAgICAgIHJldHVybiAyOwogICAgfSwKICAgIGZ1bmN0aW9uICgpIHsKICAgICAgLy8gdGVz
dCAyMzogZXZlbnQgaGFuZGxlciBhdHRyaWJ1dGVzCiAgICAgIGFzc2VydChkb2N1bWVudC5ib2R5
LmdldEF0dHJpYnV0ZSgnb25sb2FkJykgPT0gInVwZGF0ZSgpICAvKiB0aGlzIGF0dHJpYnV0ZSdz
IHZhbHVlIGlzIHRlc3RlZCBpbiBvbmUgb2YgdGhlIHRlc3RzICovICIsICJvbmxvYWQgdmFsdWUg
d3JvbmciKTsKICAgICAgcmV0dXJuIDI7CiAgICB9LAogICAgZnVuY3Rpb24gKCkgewogICAgICAv
LyB0ZXN0IDI0OiB0ZXN0IG5hbWVzcGFjZSBjaGVja2luZyBpbiBjcmVhdGVEb2N1bWVudFR5cGUs
IGFuZAogICAgICAvLyBjaGVjayB0aGF0IGV4Y2VwdGlvbnMgdGhhdCBhcmUgdGhyb3duIGFyZSBE
T01FeGNlcHRpb24gb2JqZWN0cwogICAgICB2YXIgbWVzc2FnZSA9ICIiOwogICAgICB0cnkgewog
ICAgICAgIGRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZURvY3VtZW50VHlwZSgnYTonLCAn
JywgJycpOyAvKiBkb2Vzbid0IGNvbnRhaW4gYW4gaWxsZWdhbCBjaGFyYWN0ZXI7IGlzIG1hbGZv
cm1lZCAqLwogICAgICAgIG1lc3NhZ2UgPSAiZmFpbGVkIHRvIHJhaXNlIGV4Y2VwdGlvbiI7CiAg
ICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICBpZiAoZS5jb2RlICE9IGUuTkFNRVNQQUNFX0VSUikK
ICAgICAgICAgIG1lc3NhZ2UgPSAid3JvbmcgZXhjZXB0aW9uIjsKICAgICAgICBlbHNlIGlmIChl
LklOVkFMSURfQUNDRVNTX0VSUiAhPSAxNSkKICAgICAgICAgIG1lc3NhZ2UgPSAiZXhjZXB0aW9u
cyBkb24ndCBoYXZlIGFsbCB0aGUgY29uc3RhbnRzIjsKICAgICAgfQogICAgICBpZiAobWVzc2Fn
ZSkKICAgICAgICBmYWlsKG1lc3NhZ2UpOwogICAgICByZXR1cm4gMjsKICAgIH0sCiAgICBmdW5j
dGlvbiAoKSB7CiAgICAgIHJldHVybiAyOwogICAgfSwKICAgIGZ1bmN0aW9uICgpIHsKICAgICAg
cmV0dXJuIDI7CiAgICB9LAogICAgZnVuY3Rpb24gKCkgewogICAgICByZXR1cm4gMjsKICAgIH0s
CgogICAgLy8gRXZlbnRzCiAgICBmdW5jdGlvbiAoKSB7CiAgICAgIC8vIHRlc3QgMjg6IGRpc3Bh
dGNoRXZlbnQoKQogICAgICB2YXIgY291bnQgPSAwOwogICAgICB2YXIgb2sgPSB0cnVlOwogICAg
ICB2YXIgdGVzdCA9IGZ1bmN0aW9uIChldmVudCkgewogICAgICAgIGlmIChldmVudC5kZXRhaWwg
IT0gNikKICAgICAgICAgIG9rID0gZmFsc2U7CiAgICAgICAgY291bnQrKzsKICAgICAgfTsKICAg
ICAgLy8gdGVzdCBldmVudCBsaXN0ZW5lciBhZGRpdGlvbgogICAgICBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgncmVzdWx0JykuYWRkRXZlbnRMaXN0ZW5lcigndGVzdCcsIHRlc3QsIGZhbHNlKTsK
ICAgICAgLy8gdGVzdCBldmVudCBjcmVhdGlvbgogICAgICB2YXIgZXZlbnQgPSBkb2N1bWVudC5j
cmVhdGVFdmVudCgnVUlFdmVudHMnKTsKICAgICAgZXZlbnQuaW5pdFVJRXZlbnQoJ3Rlc3QnLCB0
cnVlLCBmYWxzZSwgbnVsbCwgNik7CiAgICAgIC8vIHRlc3QgZXZlbnQgZGlzcGF0Y2ggb24gZWxl
bWVudHMgYW5kIHRleHQgbm9kZXMKICAgICAgYXNzZXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdzY29yZScpLmRpc3BhdGNoRXZlbnQoZXZlbnQpLCAiZGlzcGF0Y2hFdmVudCAjMSBmYWlsZWQi
KTsKICAgICAgYXNzZXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzY29yZScpLm5leHRTaWJs
aW5nLmRpc3BhdGNoRXZlbnQoZXZlbnQpLCAiZGlzcGF0Y2hFdmVudCAjMiBmYWlsZWQiKTsKICAg
ICAgLy8gdGVzdCBldmVudCBsaXN0ZW5lciByZW1vdmFsCiAgICAgIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdyZXN1bHQnKS5yZW1vdmVFdmVudExpc3RlbmVyKCd0ZXN0JywgdGVzdCwgZmFsc2Up
OwogICAgICBhc3NlcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Njb3JlJykuZGlzcGF0Y2hF
dmVudChldmVudCksICJkaXNwYXRjaEV2ZW50ICMzIGZhaWxlZCIpOwogICAgICBhc3NlcnQoY291
bnQgPT0gMiwgInVuZXhwZWN0ZWQgbnVtYmVyIG9mIGV2ZW50cyBoYW5kbGVkIik7CiAgICAgIGFz
c2VydChvaywgInVuZXhwZWN0ZWQgZXZlbnRzIGhhbmRsZWQiKTsKICAgICAgcmV0dXJuIDI7CiAg
ICB9LAogICAgZnVuY3Rpb24gKCkgewogICAgICAvLyB0ZXN0IDI5OiBldmVudC5zdG9wUHJvcGFn
YXRpb24oKSBhbmQgY2FwdHVyZQogICAgICAvLyB3ZSdyZSBnb2luZyB0byB1c2UgYW4gaW5wdXQg
ZWxlbWVudCBiZWNhdXNlIHdlIGNhbiBjYXVzZSBldmVudHMgdG8gYnViYmxlIGZyb20gaXQKICAg
ICAgdmFyIGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTsKICAgICAgdmFy
IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogICAgICBkaXYuYXBwZW5kQ2hp
bGQoaW5wdXQpOwogICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRpdik7CiAgICAgIC8v
IHRoZSB0ZXN0IHdpbGwgY29uc2lzdCBvZiB0d28gZXZlbnQgaGFuZGxlcnM6CiAgICAgIHZhciBv
ayA9IHRydWU7CiAgICAgIHZhciBjYXB0dXJlQ291bnQgPSAwOwogICAgICB2YXIgdGVzdENhcHR1
cmUgPSBmdW5jdGlvbiAoZXZlbnQpIHsKICAgICAgICBvayA9IG9rICYmCiAgICAgICAgICAgICAo
ZXZlbnQudHlwZSA9PSAnY2xpY2snKSAmJgogICAgICAgICAgICAgKGV2ZW50LnRhcmdldCA9PSBp
bnB1dCkgJiYKICAgICAgICAgICAgIChldmVudC5jdXJyZW50VGFyZ2V0ID09IGRpdikgJiYKICAg
ICAgICAgICAgIChldmVudC5ldmVudFBoYXNlID09IDEpICYmCiAgICAgICAgICAgICAoZXZlbnQu
YnViYmxlcykgJiYKICAgICAgICAgICAgIChldmVudC5jYW5jZWxhYmxlKTsKICAgICAgICBjYXB0
dXJlQ291bnQrKzsKICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTsgLy8gdGhpcyBzaG91
bGRuJ3Qgc3RvcCBpdCBmcm9tIGZpcmluZyBib3RoIHRpbWVzIG9uIHRoZSBkaXYgZWxlbWVudAog
ICAgICB9OwogICAgICB2YXIgdGVzdEJ1YmJsZSA9IGZ1bmN0aW9uIChldmVudCkgewogICAgICAg
IG9rID0gZmFsc2U7CiAgICAgIH07CiAgICAgIC8vIG9uZSBvZiB3aGljaCBpcyBhZGRlZCB0d2lj
ZToKICAgICAgZGl2LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24gKGV2ZW50KSB7
IHRlc3RDYXB0dXJlKGV2ZW50KSB9LCB0cnVlKTsKICAgICAgZGl2LmFkZEV2ZW50TGlzdGVuZXIo
J2NsaWNrJywgZnVuY3Rpb24gKGV2ZW50KSB7IHRlc3RDYXB0dXJlKGV2ZW50KSB9LCB0cnVlKTsK
ICAgICAgZGl2LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGVzdEJ1YmJsZSwgZmFsc2UpOwog
ICAgICAvLyB3ZSBjYXVzZSBhbiBldmVudCB0byBidWJibGUgbGlrZSB0aGlzOgogICAgICBpbnB1
dC5jbGljaygpOwogICAgICAvLyBjbGVhbnVwIGFmdGVyd2FyZHMKICAgICAgZG9jdW1lbnQuYm9k
eS5yZW1vdmVDaGlsZChkaXYpOwogICAgICAvLyBjYXB0dXJlIGhhbmRsZXIgc2hvdWxkIGhhdmUg
YmVlbiBjYWxsZWQgdHdpY2UKICAgICAgaWYgKGNhcHR1cmVDb3VudCA9PSAyICYmIG9rKQogICAg
ICAgIHJldHVybiAyOwogICAgfSwKICAgIGZ1bmN0aW9uICgpIHsKICAgICAgLy8gdGVzdCAzMDog
ZXZlbnRzIGJ1YmJsaW5nIHRocm91Z2ggRG9jdW1lbnQgbm9kZQogICAgICAvLyBldmVudCBoYW5k
bGVyOgogICAgICB2YXIgb2sgPSB0cnVlOwogICAgICB2YXIgY291bnQgPSAwOwogICAgICB2YXIg
dGVzdCA9IGZ1bmN0aW9uIChldmVudCkgewogICAgICAgIGNvdW50ICs9IDE7CiAgICAgICAgaWYg
KGV2ZW50LmV2ZW50UGhhc2UgIT0gMykKICAgICAgICAgIG9rID0gZmFsc2U7CiAgICAgIH0KICAg
ICAgLy8gcmVnaXN0ZXIgZXZlbnQgaGFuZGxlcgogICAgICBkb2N1bWVudC5ib2R5LmFkZEV2ZW50
TGlzdGVuZXIoJ2NsaWNrJywgdGVzdCwgZmFsc2UpOwogICAgICAvLyBjcmVhdGUgYW4gZWxlbWVu
dCB0aGF0IGJ1YmJsZXMgYW4gZXZlbnQsIGFuZCBidWJibGUgaXQKICAgICAgdmFyIGlucHV0ID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTsKICAgICAgdmFyIGRpdiA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogICAgICBkaXYuYXBwZW5kQ2hpbGQoaW5wdXQpOwogICAg
ICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRpdik7CiAgICAgIGlucHV0LmNsaWNrKCk7CiAg
ICAgIC8vIHVucmVnaXN0ZXIgZXZlbnQgaGFuZGxlcgogICAgICBkb2N1bWVudC5ib2R5LnJlbW92
ZUV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGVzdCwgZmFsc2UpOwogICAgICAvLyBjaGVjayB0aGF0
IGl0J3MgcmVtb3ZlZCBmb3IgZ29vZAogICAgICBpbnB1dC5jbGljaygpOwogICAgICAvLyByZW1v
dmUgdGhlIG5ld2x5IGFkZGVkIGVsZW1lbnRzCiAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hp
bGQoZGl2KTsKICAgICAgaWYgKG9rICYmIGNvdW50ID09IDEpCiAgICAgICAgcmV0dXJuIDI7CiAg
ICB9LAogICAgZnVuY3Rpb24gKCkgewogICAgICByZXR1cm4gMjsKICAgIH0sCiAgICBmdW5jdGlv
biAoKSB7CiAgICAgIHJldHVybiAyOwogICAgfSwKCiAgICAvLyBidWNrZXQgMzogRE9NMiBWaWV3
cywgRE9NMiBTdHlsZSwgYW5kIFNlbGVjdG9ycwogICAgZnVuY3Rpb24gKCkgewogICAgICAvLyB0
ZXN0IDMzOiBiYXNpYyB0ZXN0cyBmb3Igc2VsZWN0b3JzIC0gY2xhc3NlcywgYXR0cmlidXRlcwog
ICAgICB2YXIgcDsKICAgICAgdmFyIGJ1aWxkZXIgPSBmdW5jdGlvbihkb2MpIHsKICAgICAgICBw
ID0gZG9jLmNyZWF0ZUVsZW1lbnQoInAiKTsKICAgICAgICBkb2MuYm9keS5hcHBlbmRDaGlsZChw
KTsKICAgICAgfTsKICAgICAgc2VsZWN0b3JUZXN0KGZ1bmN0aW9uIChkb2MsIGFkZCwgZXhwZWN0
KSB7CiAgICAgICAgYnVpbGRlcihkb2MpOwogICAgICAgIHAuY2xhc3NOYW1lID0gInNlbGVjdG9y
UGluZ1Rlc3QiOwogICAgICAgIHZhciBnb29kID0gYWRkKCIuc2VsZWN0b3JQaW5nVGVzdCIpOwog
ICAgICAgIGFkZCgiLlNlbGVjdG9yUGluZ1Rlc3QiKTsKICAgICAgICBhZGQoIi5zZWxlY3RvcnBp
bmd0ZXN0Iik7CiAgICAgICAgZXhwZWN0KGRvYy5ib2R5LCAwLCAiZmFpbHVyZSAxIik7CiAgICAg
ICAgZXhwZWN0KHAsIGdvb2QsICJmYWlsdXJlIDIiKTsKICAgICAgfSk7CiAgICAgIHNlbGVjdG9y
VGVzdChmdW5jdGlvbiAoZG9jLCBhZGQsIGV4cGVjdCkgewogICAgICAgIGJ1aWxkZXIoZG9jKTsK
ICAgICAgICBwLmNsYXNzTmFtZSA9ICJzZWxlY3RvclBpbmdUZXN0IjsKICAgICAgICB2YXIgZ29v
ZCA9IGFkZCgiW2NsYXNzPXNlbGVjdG9yUGluZ1Rlc3RdIik7CiAgICAgICAgYWRkKCJbY2xhc3M9
U2VsZWN0b3JQaW5nVGVzdF0iKTsKICAgICAgICBhZGQoIltjbGFzcz1zZWxlY3RvcnBpbmd0ZXN0
XSIpOwogICAgICAgIGV4cGVjdChkb2MuYm9keSwgMCwgImZhaWx1cmUgMyIpOwogICAgICAgIGV4
cGVjdChwLCBnb29kLCAiY2xhc3MgYXR0cmlidXRlIG1hdGNoaW5nIGZhaWxlZCIpOwogICAgICB9
KTsKICAgICAgc2VsZWN0b3JUZXN0KGZ1bmN0aW9uIChkb2MsIGFkZCwgZXhwZWN0KSB7CiAgICAg
ICAgYnVpbGRlcihkb2MpOwogICAgICAgIHAuY2xhc3NOYW1lID0gInNlbGVjdG9yUGluZ1Rlc3Qi
OwogICAgICAgIHZhciBnb29kID0gYWRkKCJbdGl0bGU9c2VsZWN0b3JQaW5nVGVzdF0iKTsKICAg
ICAgICBhZGQoIlt0aXRsZT1TZWxlY3RvclBpbmdUZXN0XSIpOwogICAgICAgIGFkZCgiW3RpdGxl
PXNlbGVjdG9ycGluZ3Rlc3RdIik7CiAgICAgICAgZXhwZWN0KGRvYy5ib2R5LCAwLCAiZmFpbHVy
ZSA0Iik7CiAgICAgICAgZXhwZWN0KHAsIDAsICJmYWlsdXJlIDUiKTsKICAgICAgICBwLnRpdGxl
ID0gInNlbGVjdG9yUGluZ1Rlc3QiOwogICAgICAgIGV4cGVjdChkb2MuYm9keSwgMCwgImZhaWx1
cmUgNiIpOwogICAgICAgIGV4cGVjdChwLCBnb29kLCAiZmFpbHVyZSA3Iik7CiAgICAgIH0pOwog
ICAgICBzZWxlY3RvclRlc3QoZnVuY3Rpb24gKGRvYywgYWRkLCBleHBlY3QpIHsKICAgICAgICBi
dWlsZGVyKGRvYyk7CiAgICAgICAgcC5zZXRBdHRyaWJ1dGUoJ2FsaWduJywgJ3JpZ2h0IGFuZCBs
ZWZ0Jyk7CiAgICAgICAgdmFyIGdvb2QgPSBhZGQoIlthbGlnbj1cInJpZ2h0IGFuZCBsZWZ0XCJd
Iik7CiAgICAgICAgYWRkKCJbYWxpZ249bGVmdF0iKTsKICAgICAgICBhZGQoIlthbGlnbj1yaWdo
dF0iKTsKICAgICAgICBleHBlY3QocCwgZ29vZCwgImFsaWduIGF0dHJpYnV0ZSBtaXNtYXRjaCIp
OwogICAgICB9KTsKICAgICAgcmV0dXJuIDM7CiAgICB9LAogICAgZnVuY3Rpb24gKCkgewogICAg
ICAvLyB0ZXN0IDM0OiA6bGFuZygpIGFuZCBbfD1dCiAgICAgIHZhciBkaXYxOwogICAgICB2YXIg
ZGl2MjsKICAgICAgdmFyIHA7CiAgICAgIHZhciBidWlsZGVyID0gZnVuY3Rpb24oZG9jKSB7CiAg
ICAgICAgZGl2MSA9IGRvYy5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgICAgICBkaXYxLnNldEF0
dHJpYnV0ZSgibGFuZyIsICJlbmdsaXNoIik7CiAgICAgICAgZGl2MS5zZXRBdHRyaWJ1dGUoImNs
YXNzIiwgIndpZGdldC10cmVlIik7CiAgICAgICAgZG9jLmJvZHkuYXBwZW5kQ2hpbGQoZGl2MSk7
CiAgICAgICAgZGl2MiA9IGRvYy5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgICAgICBkaXYyLnNl
dEF0dHJpYnV0ZSgibGFuZyIsICJlbi1HQiIpOwogICAgICAgIGRpdjIuc2V0QXR0cmlidXRlKCJj
bGFzcyIsICJXSURHRVQiKTsKICAgICAgICBkb2MuYm9keS5hcHBlbmRDaGlsZChkaXYyKTsKICAg
ICAgICBwID0gZG9jLmNyZWF0ZUVsZW1lbnQoJ3AnKTsKICAgICAgICBkaXYyLmFwcGVuZENoaWxk
KHApOwogICAgICB9OwogICAgICBzZWxlY3RvclRlc3QoZnVuY3Rpb24gKGRvYywgYWRkLCBleHBl
Y3QpIHsKICAgICAgICBidWlsZGVyKGRvYyk7CiAgICAgICAgdmFyIGxhbmdfZW4gPSBhZGQoIjps
YW5nKGVuKSIpOwogICAgICAgIGV4cGVjdChkaXYxLCAwLCAibGFuZz1lbmdsaXNoIHNob3VsZCBu
b3QgYmUgbWF0Y2hlZCBieSA6bGFuZyhlbikiKTsKICAgICAgICBleHBlY3QoZGl2MiwgbGFuZ19l
biwgImxhbmc9ZW4tR0Igc2hvdWxkIGJlIG1hdGNoZWQgYnkgOmxhbmcoZW4pIik7CiAgICAgICAg
ZXhwZWN0KHAsIGxhbmdfZW4sICJkZXNjZW5kYW50cyBpbmhlcml0aW5nIGxhbmc9ZW4tR0Igc2hv
dWxkIGJlIG1hdGNoZWQgYnkgOmxhbmcoZW4pIik7CiAgICAgIH0pOwogICAgICBzZWxlY3RvclRl
c3QoZnVuY3Rpb24gKGRvYywgYWRkLCBleHBlY3QpIHsKICAgICAgICBidWlsZGVyKGRvYyk7CiAg
ICAgICAgdmFyIGNsYXNzX3dpZGdldCA9IGFkZCgiW2NsYXNzfD13aWRnZXRdIik7CiAgICAgICAg
ZXhwZWN0KGRpdjEsIGNsYXNzX3dpZGdldCwgImNsYXNzIGF0dHJpYnV0ZSBzaG91bGQgYmUgc3Vw
cG9ydGVkIGJ5IHw9IGF0dHJpYnV0ZSBzZWxlY3RvcnMiKTsKICAgICAgICBleHBlY3QoZGl2Miwg
MCwgImNsYXNzIGF0dHJpYnV0ZSBpcyBjYXNlLXNlbnNpdGl2ZSIpOwogICAgICB9KTsKICAgICAg
cmV0dXJuIDM7CiAgICB9LAogICAgZnVuY3Rpb24gKCkgewogICAgICAvLyB0ZXN0IDM1OiA6Zmly
c3QtY2hpbGQKICAgICAgc2VsZWN0b3JUZXN0KGZ1bmN0aW9uIChkb2MsIGFkZCwgZXhwZWN0KSB7
CiAgICAgICAgdmFyIG5vdEZpcnN0ID0gMDsKICAgICAgICB2YXIgZmlyc3QgPSBhZGQoIjpmaXJz
dC1jaGlsZCIpOwogICAgICAgIHZhciBwMSA9IGRvYy5jcmVhdGVFbGVtZW50KCJwIik7CiAgICAg
ICAgZG9jLmJvZHkuYXBwZW5kQ2hpbGQoZG9jLmNyZWF0ZVRleHROb2RlKCIgVEVTVCAiKSk7CiAg
ICAgICAgZG9jLmJvZHkuYXBwZW5kQ2hpbGQocDEpOwogICAgICAgIGV4cGVjdChkb2MuZG9jdW1l
bnRFbGVtZW50LCBub3RGaXJzdCwgInJvb3QgZWxlbWVudCwgd2l0aCBubyBwYXJlbnQgbm9kZSwg
Y2xhaW1zIHRvIGJlIGEgOmZpcnN0LWNoaWxkIik7CiAgICAgICAgZXhwZWN0KGRvYy5kb2N1bWVu
dEVsZW1lbnQuZmlyc3RDaGlsZCwgZmlyc3QsICJmaXJzdCBjaGlsZCBvZiByb290IG5vZGUgZGlk
bid0IG1hdGNoIDpmaXJzdC1jaGlsZCIpOwogICAgICAgIGV4cGVjdChkb2MuZG9jdW1lbnRFbGVt
ZW50LmZpcnN0Q2hpbGQuZmlyc3RDaGlsZCwgZmlyc3QsICJmYWlsdXJlIDMiKTsKICAgICAgICBl
eHBlY3QoZG9jLmJvZHksIG5vdEZpcnN0LCAiZmFpbHVyZSA0Iik7CiAgICAgICAgZXhwZWN0KHAx
LCBmaXJzdCwgImZhaWx1cmUgNSIpOwogICAgICAgIHZhciBwMiA9IGRvYy5jcmVhdGVFbGVtZW50
KCJwIik7CiAgICAgICAgZG9jLmJvZHkuYXBwZW5kQ2hpbGQocDIpOwogICAgICAgIGV4cGVjdChk
b2MuYm9keSwgbm90Rmlyc3QsICJmYWlsdXJlIDYiKTsKICAgICAgICBleHBlY3QocDEsIGZpcnN0
LCAiZmFpbHVyZSA3Iik7CiAgICAgICAgZXhwZWN0KHAyLCBub3RGaXJzdCwgImZhaWx1cmUgOCIp
OwogICAgICAgIHZhciBwMCA9IGRvYy5jcmVhdGVFbGVtZW50KCJwIik7CiAgICAgICAgZG9jLmJv
ZHkuaW5zZXJ0QmVmb3JlKHAwLCBwMSk7CiAgICAgICAgZXhwZWN0KGRvYy5ib2R5LCBub3RGaXJz
dCwgImZhaWx1cmUgOSIpOwogICAgICAgIGV4cGVjdChwMCwgZmlyc3QsICJmYWlsdXJlIDEwIik7
CiAgICAgICAgZXhwZWN0KHAxLCBub3RGaXJzdCwgIjpmaXJzdC1jaGlsZCBzdGlsbCBhcHBsaWVz
IHRvIGVsZW1lbnQgdGhhdCB3YXMgcHJldmlvdXNseSBhIGZpcnN0IGNoaWxkIik7CiAgICAgICAg
ZXhwZWN0KHAyLCBub3RGaXJzdCwgImZhaWx1cmUgMTIiKTsKICAgICAgICBkb2MuYm9keS5pbnNl
cnRCZWZvcmUocDAsIHAyKTsKICAgICAgICBleHBlY3QoZG9jLmJvZHksIG5vdEZpcnN0LCAiZmFp
bHVyZSAxMyIpOwogICAgICAgIGV4cGVjdChwMSwgZmlyc3QsICJmYWlsdXJlIDE0Iik7CiAgICAg
ICAgZXhwZWN0KHAwLCBub3RGaXJzdCwgImZhaWx1cmUgMTUiKTsKICAgICAgICBleHBlY3QocDIs
IG5vdEZpcnN0LCAiZmFpbHVyZSAxNiIpOwogICAgICB9KTsKICAgICAgcmV0dXJuIDM7CiAgICB9
LAogICAgZnVuY3Rpb24gKCkgewogICAgICAvLyB0ZXN0IDM2OiA6bGFzdC1jaGlsZAogICAgICB2
YXIgcDE7CiAgICAgIHZhciBwMjsKICAgICAgdmFyIGJ1aWxkZXIgPSBmdW5jdGlvbihkb2MpIHsK
ICAgICAgICBwMSA9IGRvYy5jcmVhdGVFbGVtZW50KCdwJyk7CiAgICAgICAgcDIgPSBkb2MuY3Jl
YXRlRWxlbWVudCgncCcpOwogICAgICAgIGRvYy5ib2R5LmFwcGVuZENoaWxkKHAxKTsKICAgICAg
ICBkb2MuYm9keS5hcHBlbmRDaGlsZChwMik7CiAgICAgIH07CiAgICAgIHNlbGVjdG9yVGVzdChm
dW5jdGlvbiAoZG9jLCBhZGQsIGV4cGVjdCkgewogICAgICAgIGJ1aWxkZXIoZG9jKTsKICAgICAg
ICB2YXIgbGFzdCA9IGFkZCgiOmxhc3QtY2hpbGQiKTsKICAgICAgICBleHBlY3QocDEsIDAsICJj
b250cm9sIHRlc3QgZm9yIDpsYXN0LWNoaWxkIGZhaWxlZCIpOwogICAgICAgIGV4cGVjdChwMiwg
bGFzdCwgImxhc3QgY2hpbGQgZGlkIG5vdCBtYXRjaCA6bGFzdC1jaGlsZCIpOwogICAgICAgIGRv
Yy5ib2R5LmFwcGVuZENoaWxkKHAxKTsKICAgICAgICBleHBlY3QocDIsIDAsICI6bGFzdC1jaGls
ZCBtYXRjaGVkIGVsZW1lbnQgd2l0aCBhIGZvbGxvd2luZyBzaWJsaW5nIik7CiAgICAgICAgZXhw
ZWN0KHAxLCBsYXN0LCAiZmFpbHVyZSA0Iik7CiAgICAgICAgcDEuYXBwZW5kQ2hpbGQocDIpOwog
ICAgICAgIGV4cGVjdChwMiwgbGFzdCwgImZhaWx1cmUgNSIpOwogICAgICAgIGV4cGVjdChwMSwg
bGFzdCwgImZhaWx1cmUgNiIpOwogICAgICB9KTsKICAgICAgc2VsZWN0b3JUZXN0KGZ1bmN0aW9u
IChkb2MsIGFkZCwgZXhwZWN0KSB7CiAgICAgICAgYnVpbGRlcihkb2MpOwogICAgICAgIHZhciBs
YXN0ID0gYWRkKCI6bGFzdC1jaGlsZCIpOwogICAgICAgIGV4cGVjdChwMSwgMCwgImZhaWx1cmUg
NyIpOwogICAgICAgIGV4cGVjdChwMiwgbGFzdCwgImZhaWx1cmUgOCIpOwogICAgICAgIGRvYy5i
b2R5Lmluc2VydEJlZm9yZShwMiwgcDEpOwogICAgICAgIGV4cGVjdChwMiwgMCwgImZhaWx1cmUg
OSIpOwogICAgICAgIGV4cGVjdChwMSwgbGFzdCwgImZhaWx1cmUgMTAiKTsKICAgICAgfSk7CiAg
ICAgIHNlbGVjdG9yVGVzdChmdW5jdGlvbiAoZG9jLCBhZGQsIGV4cGVjdCkgewogICAgICAgIGJ1
aWxkZXIoZG9jKTsKICAgICAgICB2YXIgbGFzdCA9IGFkZCgiOmxhc3QtY2hpbGQiKTsKICAgICAg
ICBleHBlY3QocDEsIDAsICJmYWlsdXJlIDExIik7CiAgICAgICAgZXhwZWN0KHAyLCBsYXN0LCAi
ZmFpbHVyZSAxMiIpOwogICAgICAgIGRvYy5ib2R5LnJlbW92ZUNoaWxkKHAyKTsKICAgICAgICBl
eHBlY3QocDEsIGxhc3QsICJmYWlsdXJlIDEzIik7CiAgICAgICAgYXNzZXJ0KHAxLm5leHRTaWJs
aW5nID09IG51bGwsICJmYWlsdXJlIDE0Iik7CiAgICAgICAgYXNzZXJ0KHAyLnBhcmVudE5vZGUg
PT0gbnVsbCwgImZhaWx1cmUgMTUiKTsKICAgICAgfSk7CiAgICAgIHJldHVybiAzOwogICAgfSwK
ICAgIGZ1bmN0aW9uICgpIHsKICAgICAgLy8gdGVzdCAzNzogOm9ubHktY2hpbGQKICAgICAgdmFy
IHAxOwogICAgICB2YXIgcDI7CiAgICAgIHZhciBidWlsZGVyID0gZnVuY3Rpb24oZG9jKSB7CiAg
ICAgICAgcDEgPSBkb2MuY3JlYXRlRWxlbWVudCgncCcpOwogICAgICAgIHAyID0gZG9jLmNyZWF0
ZUVsZW1lbnQoJ3AnKTsKICAgICAgICBkb2MuYm9keS5hcHBlbmRDaGlsZChwMSk7CiAgICAgICAg
ZG9jLmJvZHkuYXBwZW5kQ2hpbGQocDIpOwogICAgICB9OwogICAgICBzZWxlY3RvclRlc3QoZnVu
Y3Rpb24gKGRvYywgYWRkLCBleHBlY3QpIHsKICAgICAgICBidWlsZGVyKGRvYyk7CiAgICAgICAg
dmFyIG9ubHkgPSBhZGQoIjpvbmx5LWNoaWxkIik7CiAgICAgICAgZXhwZWN0KHAxLCAwLCAiY29u
dHJvbCB0ZXN0IGZvciA6b25seS1jaGlsZCBmYWlsZWQiKTsKICAgICAgICBleHBlY3QocDIsIDAs
ICJmYWlsdXJlIDIiKTsKICAgICAgICBkb2MuYm9keS5yZW1vdmVDaGlsZChwMik7CiAgICAgICAg
ZXhwZWN0KHAxLCBvbmx5LCAiOm9ubHktY2hpbGQgZGlkIG5vdCBtYXRjaCBvbmx5IGNoaWxkIik7
CiAgICAgICAgcDEuYXBwZW5kQ2hpbGQocDIpOwogICAgICAgIGV4cGVjdChwMiwgb25seSwgImZh
aWx1cmUgNCIpOwogICAgICAgIGV4cGVjdChwMSwgb25seSwgImZhaWx1cmUgNSIpOwogICAgICB9
KTsKICAgICAgc2VsZWN0b3JUZXN0KGZ1bmN0aW9uIChkb2MsIGFkZCwgZXhwZWN0KSB7CiAgICAg
ICAgYnVpbGRlcihkb2MpOwogICAgICAgIHZhciBvbmx5ID0gYWRkKCI6b25seS1jaGlsZCIpOwog
ICAgICAgIGV4cGVjdChwMSwgMCwgImZhaWx1cmUgNiIpOwogICAgICAgIGV4cGVjdChwMiwgMCwg
ImZhaWx1cmUgNyIpOwogICAgICAgIGRvYy5ib2R5LnJlbW92ZUNoaWxkKHAxKTsKICAgICAgICBl
eHBlY3QocDIsIG9ubHksICJmYWlsdXJlIDgiKTsKICAgICAgICBwMS5hcHBlbmRDaGlsZChwMik7
CiAgICAgICAgZXhwZWN0KHAyLCBvbmx5LCAiZmFpbHVyZSA5Iik7CiAgICAgICAgZXhwZWN0KHAx
LCBvbmx5LCAiZmFpbHVyZSAxMCIpOwogICAgICB9KTsKICAgICAgc2VsZWN0b3JUZXN0KGZ1bmN0
aW9uIChkb2MsIGFkZCwgZXhwZWN0KSB7CiAgICAgICAgYnVpbGRlcihkb2MpOwogICAgICAgIHZh
ciBvbmx5ID0gYWRkKCI6b25seS1jaGlsZCIpOwogICAgICAgIGV4cGVjdChwMSwgMCwgImZhaWx1
cmUgMTEiKTsKICAgICAgICBleHBlY3QocDIsIDAsICJmYWlsdXJlIDEyIik7CiAgICAgICAgdmFy
IHNwYW4xID0gZG9jLmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTsKICAgICAgICBwMS5hcHBlbmRDaGls
ZChzcGFuMSk7CiAgICAgICAgZXhwZWN0KHAxLCAwLCAiZmFpbHVyZSAxMyIpOwogICAgICAgIGV4
cGVjdChwMiwgMCwgImZhaWx1cmUgMTQiKTsKICAgICAgICBleHBlY3Qoc3BhbjEsIG9ubHksICJm
YWlsdXJlIDE1Iik7CiAgICAgICAgdmFyIHNwYW4yID0gZG9jLmNyZWF0ZUVsZW1lbnQoJ3NwYW4n
KTsKICAgICAgICBwMS5hcHBlbmRDaGlsZChzcGFuMik7CiAgICAgICAgZXhwZWN0KHAxLCAwLCAi
ZmFpbHVyZSAxNiIpOwogICAgICAgIGV4cGVjdChwMiwgMCwgImZhaWx1cmUgMTciKTsKICAgICAg
ICBleHBlY3Qoc3BhbjEsIDAsICJmYWlsdXJlIDE4Iik7CiAgICAgICAgZXhwZWN0KHNwYW4yLCAw
LCAiZmFpbHVyZSAxOSIpOwogICAgICB9KTsKICAgICAgc2VsZWN0b3JUZXN0KGZ1bmN0aW9uIChk
b2MsIGFkZCwgZXhwZWN0KSB7CiAgICAgICAgYnVpbGRlcihkb2MpOwogICAgICAgIHZhciBvbmx5
ID0gYWRkKCI6b25seS1jaGlsZCIpOwogICAgICAgIGV4cGVjdChwMSwgMCwgImZhaWx1cmUgMjAi
KTsKICAgICAgICBleHBlY3QocDIsIDAsICJmYWlsdXJlIDIxIik7CiAgICAgICAgdmFyIHNwYW4x
ID0gZG9jLmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTsKICAgICAgICBwMi5hcHBlbmRDaGlsZChzcGFu
MSk7CiAgICAgICAgZXhwZWN0KHAxLCAwLCAiZmFpbHVyZSAyMiIpOwogICAgICAgIGV4cGVjdChw
MiwgMCwgImZhaWx1cmUgMjMiKTsKICAgICAgICBleHBlY3Qoc3BhbjEsIG9ubHksICJmYWlsdXJl
IDI0Iik7CiAgICAgICAgdmFyIHNwYW4yID0gZG9jLmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTsKICAg
ICAgICBwMi5pbnNlcnRCZWZvcmUoc3BhbjIsIHNwYW4xKTsKICAgICAgICBleHBlY3QocDEsIDAs
ICJmYWlsdXJlIDI1Iik7CiAgICAgICAgZXhwZWN0KHAyLCAwLCAiZmFpbHVyZSAyNiIpOwogICAg
ICAgIGV4cGVjdChzcGFuMSwgMCwgImZhaWx1cmUgMjciKTsKICAgICAgICBleHBlY3Qoc3BhbjIs
IDAsICJmYWlsdXJlIDI4Iik7CiAgICAgIH0pOwogICAgICByZXR1cm4gMzsKICAgIH0sCiAgICBm
dW5jdGlvbiAoKSB7CiAgICAgIC8vIHRlc3QgMzg6IDplbXB0eQogICAgICBzZWxlY3RvclRlc3Qo
ZnVuY3Rpb24gKGRvYywgYWRkLCBleHBlY3QpIHsKICAgICAgICB2YXIgZW1wdHkgPSBhZGQoIjpl
bXB0eSIpOwogICAgICAgIHZhciBwID0gZG9jLmNyZWF0ZUVsZW1lbnQoJ3AnKTsKICAgICAgICBk
b2MuYm9keS5hcHBlbmRDaGlsZChwKTsKICAgICAgICBleHBlY3QocCwgZW1wdHksICJlbXB0eSBl
bGVtZW50IGRpZG4ndCBtYXRjaCA6ZW1wdHkiKTsKICAgICAgICB2YXIgc3BhbiA9IGRvYy5jcmVh
dGVFbGVtZW50KCdzcGFuJyk7CiAgICAgICAgcC5hcHBlbmRDaGlsZChzcGFuKTsKICAgICAgICBl
eHBlY3QocCwgMCwgInJlbW92aW5nIGFsbCBjaGlsZHJlbiBkaWRuJ3QgbWFrZSB0aGUgZWxlbWVu
dCBtYXRjaCA6ZW1wdHkiKTsKICAgICAgICBwLnJlbW92ZUNoaWxkKHNwYW4pOwogICAgICAgIHAu
YXBwZW5kQ2hpbGQoZG9jLmNyZWF0ZUNvbW1lbnQoImMiKSk7CiAgICAgICAgcC5hcHBlbmRDaGls
ZChkb2MuY3JlYXRlVGV4dE5vZGUoImEiKSk7CiAgICAgICAgcC5hcHBlbmRDaGlsZChkb2MuY3Jl
YXRlUHJvY2Vzc2luZ0luc3RydWN0aW9uKCJ0IikpOwogICAgICAgIHAuYXBwZW5kQ2hpbGQoZG9j
LmNyZWF0ZUNEQVRBU2VjdGlvbigicyIpKTsKICAgICAgICBleHBlY3QocCwgMCwgImVsZW1lbnQg
d2l0aCBubyBjaGlsZCBlbGVtZW50IG5vZGVzIGRpZG4ndCBtYXRjaCA6ZW1wdHkiKTsKICAgICAg
fSk7CiAgICAgIHJldHVybiAzOwogICAgfSwKICAgIGZ1bmN0aW9uICgpIHsKICAgICAgLy8gdGVz
dCAzOTogOm50aC1jaGlsZCwgOm50aC1sYXN0LWNoaWxkCiAgICAgIHZhciBwczsKICAgICAgdmFy
IGJ1aWxkZXIgPSBmdW5jdGlvbihkb2MpIHsKICAgICAgICBwcyA9IFsKICAgICAgICAgIGRvYy5j
cmVhdGVFbGVtZW50KCdwJyksCiAgICAgICAgICBkb2MuY3JlYXRlRWxlbWVudCgncCcpLAogICAg
ICAgICAgZG9jLmNyZWF0ZUVsZW1lbnQoJ3AnKSwKICAgICAgICAgIGRvYy5jcmVhdGVFbGVtZW50
KCdwJyksCiAgICAgICAgICBkb2MuY3JlYXRlRWxlbWVudCgncCcpLAogICAgICAgICAgZG9jLmNy
ZWF0ZUVsZW1lbnQoJ3AnKSwKICAgICAgICAgIGRvYy5jcmVhdGVFbGVtZW50KCdwJyksCiAgICAg
ICAgICBkb2MuY3JlYXRlRWxlbWVudCgncCcpLAogICAgICAgICAgZG9jLmNyZWF0ZUVsZW1lbnQo
J3AnKSwKICAgICAgICAgIGRvYy5jcmVhdGVFbGVtZW50KCdwJyksCiAgICAgICAgICBkb2MuY3Jl
YXRlRWxlbWVudCgncCcpLAogICAgICAgICAgZG9jLmNyZWF0ZUVsZW1lbnQoJ3AnKSwKICAgICAg
ICAgIGRvYy5jcmVhdGVFbGVtZW50KCdwJykKICAgICAgICBdOwogICAgICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgcHMubGVuZ3RoOyBpICs9IDEpCiAgICAgICAgICBkb2MuYm9keS5hcHBlbmRDaGls
ZChwc1tpXSk7CiAgICAgIH07CiAgICAgIHNlbGVjdG9yVGVzdChmdW5jdGlvbiAoZG9jLCBhZGQs
IGV4cGVjdCkgewogICAgICAgIGJ1aWxkZXIoZG9jKTsKICAgICAgICB2YXIgbWF0Y2ggPSBhZGQo
IjpudGgtY2hpbGQob2RkKSIpOwogICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcHMubGVuZ3Ro
OyBpICs9IDEpCiAgICAgICAgICBleHBlY3QocHNbaV0sIGkgJSAyID8gbWF0Y2ggOiAwLCAiOm50
aC1jaGlsZChvZGQpIGZhaWxlZCB3aXRoIGNoaWxkICIgKyBpKTsKICAgICAgfSk7CiAgICAgIHNl
bGVjdG9yVGVzdChmdW5jdGlvbiAoZG9jLCBhZGQsIGV4cGVjdCkgewogICAgICAgIGJ1aWxkZXIo
ZG9jKTsKICAgICAgICB2YXIgbWF0Y2ggPSBhZGQoIjpudGgtY2hpbGQoZXZlbikiKTsKICAgICAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IHBzLmxlbmd0aDsgaSArPSAxKQogICAgICAgICAgZXhwZWN0
KHBzW2ldLCBpICUgMiA/IDAgOiBtYXRjaCwgIjpudGgtY2hpbGQoZXZlbikgZmFpbGVkIHdpdGgg
Y2hpbGQgIiArIGkpOwogICAgICB9KTsKICAgICAgc2VsZWN0b3JUZXN0KGZ1bmN0aW9uIChkb2Ms
IGFkZCwgZXhwZWN0KSB7CiAgICAgICAgYnVpbGRlcihkb2MpOwogICAgICAgIHZhciBtYXRjaCA9
IGFkZCgiOm50aC1jaGlsZChvZGQpIik7CiAgICAgICAgZG9jLmJvZHkucmVtb3ZlQ2hpbGQocHNb
NV0pOwogICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgNTsgaSArPSAxKQogICAgICAgICAgZXhw
ZWN0KHBzW2ldLCBpICUgMiA/IG1hdGNoIDogMCwgIjpudGgtY2hpbGQob2RkKSBmYWlsZWQgYWZ0
ZXIgcmVtb3ZhbCB3aXRoIGNoaWxkICIgKyBpKTsKICAgICAgICBmb3IgKHZhciBpID0gNjsgaSA8
IHBzLmxlbmd0aDsgaSArPSAxKQogICAgICAgICAgZXhwZWN0KHBzW2ldLCBpICUgMiA/IDAgOiBt
YXRjaCwgIjpudGgtY2hpbGQob2RkKSBmYWlsZWQgYWZ0ZXIgcmVtb3ZhbCB3aXRoIGNoaWxkICIg
KyBpKTsKICAgICAgfSk7CiAgICAgIHNlbGVjdG9yVGVzdChmdW5jdGlvbiAoZG9jLCBhZGQsIGV4
cGVjdCkgewogICAgICAgIGJ1aWxkZXIoZG9jKTsKICAgICAgICB2YXIgbWF0Y2ggPSBhZGQoIjpu
dGgtY2hpbGQoZXZlbikiKTsKICAgICAgICBkb2MuYm9keS5yZW1vdmVDaGlsZChwc1s1XSk7CiAg
ICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCA1OyBpICs9IDEpCiAgICAgICAgICBleHBlY3QocHNb
aV0sIGkgJSAyID8gMCA6IG1hdGNoLCAiOm50aC1jaGlsZChldmVuKSBmYWlsZWQgYWZ0ZXIgcmVt
b3ZhbCB3aXRoIGNoaWxkICIgKyBpKTsKICAgICAgICBmb3IgKHZhciBpID0gNjsgaSA8IHBzLmxl
bmd0aDsgaSArPSAxKQogICAgICAgICAgZXhwZWN0KHBzW2ldLCBpICUgMiA/IDAgOiBtYXRjaCwg
IjpudGgtY2hpbGQoZXZlbikgZmFpbGVkIGFmdGVyIHJlbW92YWwgd2l0aCBjaGlsZCAiICsgaSk7
CiAgICAgIH0pOwogICAgICBzZWxlY3RvclRlc3QoZnVuY3Rpb24gKGRvYywgYWRkLCBleHBlY3Qp
IHsKICAgICAgICBidWlsZGVyKGRvYyk7CiAgICAgICAgdmFyIG1hdGNoID0gYWRkKCI6bnRoLWNo
aWxkKC1uKzMpIik7CiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAzOyBpICs9IDEpCiAgICAg
ICAgICBleHBlY3QocHNbaV0sIG1hdGNoLCAiOm50aC1jaGlsZCgtbiszKSBmYWlsZWQgd2l0aCBj
aGlsZCAiICsgaSk7CiAgICAgICAgZm9yICh2YXIgaSA9IDM7IGkgPCBwcy5sZW5ndGg7IGkgKz0g
MSkKICAgICAgICAgIGV4cGVjdChwc1tpXSwgMCwgIjpudGgtY2hpbGQoLW4rMykgZmFpbGVkIHdp
dGggY2hpbGQgIiArIGkpOwogICAgICB9KTsKICAgICAgcmV0dXJuIDM7CiAgICB9LAogICAgZnVu
Y3Rpb24gKCkgewogICAgICAvLyB0ZXN0IDQwOiA6Zmlyc3Qtb2YtdHlwZSwgOmxhc3Qtb2YtdHlw
ZSwgOm9ubHktb2YtdHlwZSwgOm50aC1vZi10eXBlLCA6bnRoLWxhc3Qtb2YtdHlwZQogICAgICB2
YXIgZWxlbWVudHM7CiAgICAgIHZhciBidWlsZGVyID0gZnVuY3Rpb24oZG9jKSB7CiAgICAgICAg
ZWxlbWVudHMgPSBbCiAgICAgICAgICBkb2MuY3JlYXRlRWxlbWVudCgncCcpLAogICAgICAgICAg
ZG9jLmNyZWF0ZUVsZW1lbnQoJ2RpdicpLAogICAgICAgICAgZG9jLmNyZWF0ZUVsZW1lbnQoJ2Rp
dicpLAogICAgICAgICAgZG9jLmNyZWF0ZUVsZW1lbnQoJ3AnKSwKICAgICAgICAgIGRvYy5jcmVh
dGVFbGVtZW50KCdwJyksCiAgICAgICAgICBkb2MuY3JlYXRlRWxlbWVudCgncCcpLAogICAgICAg
ICAgZG9jLmNyZWF0ZUVsZW1lbnQoJ2RpdicpLAogICAgICAgICAgZG9jLmNyZWF0ZUVsZW1lbnQo
J2FkZHJlc3MnKSwKICAgICAgICAgIGRvYy5jcmVhdGVFbGVtZW50KCdkaXYnKSwKICAgICAgICAg
IGRvYy5jcmVhdGVFbGVtZW50KCdkaXYnKSwKICAgICAgICAgIGRvYy5jcmVhdGVFbGVtZW50KCdk
aXYnKSwKICAgICAgICAgIGRvYy5jcmVhdGVFbGVtZW50KCdwJyksCiAgICAgICAgICBkb2MuY3Jl
YXRlRWxlbWVudCgnZGl2JyksCiAgICAgICAgICBkb2MuY3JlYXRlRWxlbWVudCgncCcpCiAgICAg
ICAgXTsKICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGVsZW1lbnRzLmxlbmd0aDsgaSArPSAx
KQogICAgICAgICAgZG9jLmJvZHkuYXBwZW5kQ2hpbGQoZWxlbWVudHNbaV0pOwogICAgICB9Owog
ICAgICBzZWxlY3RvclRlc3QoZnVuY3Rpb24gKGRvYywgYWRkLCBleHBlY3QpIHsKICAgICAgICBi
dWlsZGVyKGRvYyk7CiAgICAgICAgdmFyIG1hdGNoID0gYWRkKCI6Zmlyc3Qtb2YtdHlwZSIpOwog
ICAgICAgIHZhciB2YWx1ZXMgPSBbMSwgMSwgMCwgMCwgMCwgMCwgMCwgMSwgMCwgMCwgMCwgMCwg
MCwgMF07CiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBlbGVtZW50cy5sZW5ndGg7IGkgKz0g
MSkKICAgICAgICAgIGV4cGVjdChlbGVtZW50c1tpXSwgdmFsdWVzW2ldID8gbWF0Y2ggOiAwLCAi
cGFydCAxOiIgKyBpKTsKICAgICAgfSk7CiAgICAgIHNlbGVjdG9yVGVzdChmdW5jdGlvbiAoZG9j
LCBhZGQsIGV4cGVjdCkgewogICAgICAgIGJ1aWxkZXIoZG9jKTsKICAgICAgICB2YXIgbWF0Y2gg
PSBhZGQoIjpsYXN0LW9mLXR5cGUiKTsKICAgICAgICB2YXIgdmFsdWVzID0gWzAsIDAsIDAsIDAs
IDAsIDAsIDAsIDEsIDAsIDAsIDAsIDAsIDEsIDFdOwogICAgICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgZWxlbWVudHMubGVuZ3RoOyBpICs9IDEpCiAgICAgICAgICBleHBlY3QoZWxlbWVudHNbaV0s
IHZhbHVlc1tpXSA/IG1hdGNoIDogMCwgInBhcnQgMjoiICsgaSk7CiAgICAgIH0pOwogICAgICBz
ZWxlY3RvclRlc3QoZnVuY3Rpb24gKGRvYywgYWRkLCBleHBlY3QpIHsKICAgICAgICBidWlsZGVy
KGRvYyk7CiAgICAgICAgdmFyIG1hdGNoID0gYWRkKCI6b25seS1vZi10eXBlIik7CiAgICAgICAg
dmFyIHZhbHVlcyA9IFswLCAwLCAwLCAwLCAwLCAwLCAwLCAxLCAwLCAwLCAwLCAwLCAwLCAwXTsK
ICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGVsZW1lbnRzLmxlbmd0aDsgaSArPSAxKQogICAg
ICAgICAgZXhwZWN0KGVsZW1lbnRzW2ldLCB2YWx1ZXNbaV0gPyBtYXRjaCA6IDAsICJwYXJ0IDM6
IiArIGkpOwogICAgICB9KTsKICAgICAgc2VsZWN0b3JUZXN0KGZ1bmN0aW9uIChkb2MsIGFkZCwg
ZXhwZWN0KSB7CiAgICAgICAgYnVpbGRlcihkb2MpOwogICAgICAgIHZhciBtYXRjaCA9IGFkZCgi
Om50aC1vZi10eXBlKDNuLTEpIik7CiAgICAgICAgdmFyIHZhbHVlcyA9IFswLCAwLCAxLCAxLCAw
LCAwLCAwLCAwLCAwLCAxLCAwLCAxLCAwLCAwXTsKICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8
IGVsZW1lbnRzLmxlbmd0aDsgaSArPSAxKQogICAgICAgICAgZXhwZWN0KGVsZW1lbnRzW2ldLCB2
YWx1ZXNbaV0gPyBtYXRjaCA6IDAsICJwYXJ0IDQ6IiArIGkpOwogICAgICB9KTsKICAgICAgc2Vs
ZWN0b3JUZXN0KGZ1bmN0aW9uIChkb2MsIGFkZCwgZXhwZWN0KSB7CiAgICAgICAgYnVpbGRlcihk
b2MpOwogICAgICAgIHZhciBtYXRjaCA9IGFkZCgiOm50aC1vZi10eXBlKDNuKzEpIik7CiAgICAg
ICAgdmFyIHZhbHVlcyA9IFsxLCAxLCAwLCAwLCAwLCAxLCAwLCAxLCAxLCAwLCAwLCAwLCAxLCAw
XTsKICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGVsZW1lbnRzLmxlbmd0aDsgaSArPSAxKQog
ICAgICAgICAgZXhwZWN0KGVsZW1lbnRzW2ldLCB2YWx1ZXNbaV0gPyBtYXRjaCA6IDAsICJwYXJ0
IDU6IiArIGkpOwogICAgICB9KTsKICAgICAgc2VsZWN0b3JUZXN0KGZ1bmN0aW9uIChkb2MsIGFk
ZCwgZXhwZWN0KSB7CiAgICAgICAgYnVpbGRlcihkb2MpOwogICAgICAgIHZhciBtYXRjaCA9IGFk
ZCgiOm50aC1sYXN0LW9mLXR5cGUoMm4pIik7CiAgICAgICAgdmFyIHZhbHVlcyA9IFsxLCAwLCAx
LCAwLCAxLCAwLCAwLCAwLCAxLCAwLCAxLCAxLCAwLCAwXTsKICAgICAgICBmb3IgKHZhciBpID0g
MDsgaSA8IGVsZW1lbnRzLmxlbmd0aDsgaSArPSAxKQogICAgICAgICAgZXhwZWN0KGVsZW1lbnRz
W2ldLCB2YWx1ZXNbaV0gPyBtYXRjaCA6IDAsICJwYXJ0IDY6IiArIGkpOwogICAgICB9KTsKICAg
ICAgc2VsZWN0b3JUZXN0KGZ1bmN0aW9uIChkb2MsIGFkZCwgZXhwZWN0KSB7CiAgICAgICAgYnVp
bGRlcihkb2MpOwogICAgICAgIHZhciBtYXRjaCA9IGFkZCgiOm50aC1sYXN0LW9mLXR5cGUoLTVu
KzMpIik7CiAgICAgICAgdmFyIHZhbHVlczsKICAgICAgICB2YWx1ZXMgPSBbMCwgMCwgMCwgMCwg
MCwgMSwgMCwgMCwgMCwgMSwgMCwgMCwgMCwgMF07CiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkg
PCBlbGVtZW50cy5sZW5ndGg7IGkgKz0gMSkKICAgICAgICAgIGV4cGVjdChlbGVtZW50c1tpXSwg
dmFsdWVzW2ldID8gbWF0Y2ggOiAwLCAicGFydCA3OiIgKyBpKTsKICAgICAgICBkb2MuYm9keS5h
cHBlbmRDaGlsZChkb2MuY3JlYXRlRWxlbWVudCgnYmxvY2txdW90ZScpKTsKICAgICAgICB2YWx1
ZXMgPSBbMCwgMCwgMCwgMCwgMCwgMSwgMCwgMCwgMCwgMSwgMCwgMCwgMCwgMCwgMF07CiAgICAg
ICAgZm9yICh2YXIgaSA9IDA7IGkgPCBlbGVtZW50cy5sZW5ndGg7IGkgKz0gMSkKICAgICAgICAg
IGV4cGVjdChlbGVtZW50c1tpXSwgdmFsdWVzW2ldID8gbWF0Y2ggOiAwLCAicGFydCA4OiIgKyBp
KTsKICAgICAgICBkb2MuYm9keS5hcHBlbmRDaGlsZChkb2MuY3JlYXRlRWxlbWVudCgnZGl2Jykp
OwogICAgICAgIHZhbHVlcyA9IFswLCAwLCAwLCAwLCAwLCAxLCAwLCAwLCAwLCAwLCAxLCAwLCAw
LCAwLCAwLCAwXTsKICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGVsZW1lbnRzLmxlbmd0aDsg
aSArPSAxKQogICAgICAgICAgZXhwZWN0KGVsZW1lbnRzW2ldLCB2YWx1ZXNbaV0gPyBtYXRjaCA6
IDAsICJwYXJ0IDk6IiArIGkpOwogICAgICB9KTsKICAgICAgcmV0dXJuIDM7CiAgICB9LAogICAg
ZnVuY3Rpb24gKCkgewogICAgICAvLyB0ZXN0IDQxOiA6cm9vdCwgOm5vdCgpCiAgICAgIHNlbGVj
dG9yVGVzdChmdW5jdGlvbiAoZG9jLCBhZGQsIGV4cGVjdCkgewogICAgICAgIHZhciBtYXRjaCA9
IGFkZCgiOm5vdCg6cm9vdCkiKTsKICAgICAgICB2YXIgcCA9IGRvYy5jcmVhdGVFbGVtZW50KCdw
Jyk7CiAgICAgICAgZG9jLmJvZHkuYXBwZW5kQ2hpbGQocCk7CiAgICAgICAgZXhwZWN0KGRvYy5k
b2N1bWVudEVsZW1lbnQsIDAsICJyb290IHdhcyA6bm90KDpyb290KSIpOwogICAgICAgIGV4cGVj
dChkb2MuZG9jdW1lbnRFbGVtZW50LmNoaWxkTm9kZXNbMF0sIG1hdGNoLCJoZWFkIHdhcyBub3Qg
Om5vdCg6cm9vdCkiKTsKICAgICAgICBleHBlY3QoZG9jLmRvY3VtZW50RWxlbWVudC5jaGlsZE5v
ZGVzWzFdLCBtYXRjaCwiYm9keSB3YXMgbm90IDpub3QoOnJvb3QpIik7CiAgICAgICAgZXhwZWN0
KGRvYy5kb2N1bWVudEVsZW1lbnQuY2hpbGROb2Rlc1swXS5maXJzdENoaWxkLCBtYXRjaCwidGl0
bGUgd2FzIG5vdCA6bm90KDpyb290KSIpOwogICAgICAgIGV4cGVjdChwLCBtYXRjaCwicCB3YXMg
bm90IDpub3QoOnJvb3QpIik7CiAgICAgIH0pOwogICAgICByZXR1cm4gMzsKICAgIH0sCiAgICBm
dW5jdGlvbiAoKSB7CiAgICAgIC8vIHRlc3QgNDI6ICssIH4sID4sIGFuZCAnICcgaW4gZHluYW1p
YyBzaXR1YXRpb25zCiAgICAgIHNlbGVjdG9yVGVzdChmdW5jdGlvbiAoZG9jLCBhZGQsIGV4cGVj
dCkgewogICAgICAgIHZhciBkaXYxID0gZG9jLmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogICAgICAg
IGRpdjEuaWQgPSAiZGl2MSI7CiAgICAgICAgZG9jLmJvZHkuYXBwZW5kQ2hpbGQoZGl2MSk7CiAg
ICAgICAgdmFyIGRpdjIgPSBkb2MuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAgICAgICAgZG9jLmJv
ZHkuYXBwZW5kQ2hpbGQoZGl2Mik7CiAgICAgICAgdmFyIGRpdjMgPSBkb2MuY3JlYXRlRWxlbWVu
dCgnZGl2Jyk7CiAgICAgICAgZG9jLmJvZHkuYXBwZW5kQ2hpbGQoZGl2Myk7CiAgICAgICAgdmFy
IGRpdjMxID0gZG9jLmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogICAgICAgIGRpdjMuYXBwZW5kQ2hp
bGQoZGl2MzEpOwogICAgICAgIHZhciBkaXYzMTEgPSBkb2MuY3JlYXRlRWxlbWVudCgnZGl2Jyk7
CiAgICAgICAgZGl2MzEuYXBwZW5kQ2hpbGQoZGl2MzExKTsKICAgICAgICB2YXIgZGl2MzExMSA9
IGRvYy5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgICAgICBkaXYzMTEuYXBwZW5kQ2hpbGQoZGl2
MzExMSk7CiAgICAgICAgdmFyIG1hdGNoID0gYWRkKCIjZGl2MSB+IGRpdiBkaXYgKyBkaXYgPiBk
aXYiKTsKICAgICAgICBleHBlY3QoZGl2MSwgMCwgImZhaWx1cmUgMSIpOwogICAgICAgIGV4cGVj
dChkaXYyLCAwLCAiZmFpbHVyZSAyIik7CiAgICAgICAgZXhwZWN0KGRpdjMsIDAsICJmYWlsdXJl
IDMiKTsKICAgICAgICBleHBlY3QoZGl2MzEsIDAsICJmYWlsdXJlIDQiKTsKICAgICAgICBleHBl
Y3QoZGl2MzExLCAwLCAiZmFpbHVyZSA1Iik7CiAgICAgICAgZXhwZWN0KGRpdjMxMTEsIDAsICJm
YWlsdXJlIDYiKTsKICAgICAgICB2YXIgZGl2MzEwID0gZG9jLmNyZWF0ZUVsZW1lbnQoJ2Rpdicp
OwogICAgICAgIGRpdjMxLmluc2VydEJlZm9yZShkaXYzMTAsIGRpdjMxMSk7CiAgICAgICAgZXhw
ZWN0KGRpdjEsIDAsICJmYWlsdXJlIDciKTsKICAgICAgICBleHBlY3QoZGl2MiwgMCwgImZhaWx1
cmUgOCIpOwogICAgICAgIGV4cGVjdChkaXYzLCAwLCAiZmFpbHVyZSA5Iik7CiAgICAgICAgZXhw
ZWN0KGRpdjMxLCAwLCAiZmFpbHVyZSAxMCIpOwogICAgICAgIGV4cGVjdChkaXYzMTAsIDAsICJm
YWlsdXJlIDExIik7CiAgICAgICAgZXhwZWN0KGRpdjMxMSwgMCwgImZhaWx1cmUgMTIiKTsKICAg
ICAgICBleHBlY3QoZGl2MzExMSwgbWF0Y2gsICJydWxlIGRpZCBub3Qgc3RhcnQgbWF0Y2hpbmcg
YWZ0ZXIgY2hhbmdlIik7CiAgICAgIH0pOwogICAgICBzZWxlY3RvclRlc3QoZnVuY3Rpb24gKGRv
YywgYWRkLCBleHBlY3QpIHsKICAgICAgICB2YXIgZGl2MSA9IGRvYy5jcmVhdGVFbGVtZW50KCdk
aXYnKTsKICAgICAgICBkaXYxLmlkID0gImRpdjEiOwogICAgICAgIGRvYy5ib2R5LmFwcGVuZENo
aWxkKGRpdjEpOwogICAgICAgIHZhciBkaXYyID0gZG9jLmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwog
ICAgICAgIGRpdjEuYXBwZW5kQ2hpbGQoZGl2Mik7CiAgICAgICAgdmFyIGRpdjMgPSBkb2MuY3Jl
YXRlRWxlbWVudCgnZGl2Jyk7CiAgICAgICAgZGl2Mi5hcHBlbmRDaGlsZChkaXYzKTsKICAgICAg
ICB2YXIgZGl2NCA9IGRvYy5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgICAgICBkaXYzLmFwcGVu
ZENoaWxkKGRpdjQpOwogICAgICAgIHZhciBkaXY1ID0gZG9jLmNyZWF0ZUVsZW1lbnQoJ2Rpdicp
OwogICAgICAgIGRpdjQuYXBwZW5kQ2hpbGQoZGl2NSk7CiAgICAgICAgdmFyIGRpdjYgPSBkb2Mu
Y3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAgICAgICAgZGl2NS5hcHBlbmRDaGlsZChkaXY2KTsKICAg
ICAgICB2YXIgbWF0Y2ggPSBhZGQoIiNkaXYxID4gZGl2IGRpdiA+IGRpdiIpOwogICAgICAgIGV4
cGVjdChkaXYxLCAwLCAiZmFpbHVyZSAxNCIpOwogICAgICAgIGV4cGVjdChkaXYyLCAwLCAiZmFp
bHVyZSAxNSIpOwogICAgICAgIGV4cGVjdChkaXYzLCAwLCAiZmFpbHVyZSAxNiIpOwogICAgICAg
IGV4cGVjdChkaXY0LCBtYXRjaCwgImZhaWx1cmUgMTciKTsKICAgICAgICBleHBlY3QoZGl2NSwg
bWF0Y2gsICJmYWlsdXJlIDE4Iik7CiAgICAgICAgZXhwZWN0KGRpdjYsIG1hdGNoLCAiZmFpbHVy
ZSAxOSIpOwogICAgICAgIHZhciBwMzQgPSBkb2MuY3JlYXRlRWxlbWVudCgncCcpOwogICAgICAg
IGRpdjMuaW5zZXJ0QmVmb3JlKHAzNCwgZGl2NCk7CiAgICAgICAgcDM0Lmluc2VydEJlZm9yZShk
aXY0LCBudWxsKTsKICAgICAgICBleHBlY3QoZGl2MSwgMCwgImZhaWx1cmUgMjAiKTsKICAgICAg
ICBleHBlY3QoZGl2MiwgMCwgImZhaWx1cmUgMjEiKTsKICAgICAgICBleHBlY3QoZGl2MywgMCwg
ImZhaWx1cmUgMjIiKTsKICAgICAgICBleHBlY3QocDM0LCAwLCAiZmFpbHVyZSAyMyIpOwogICAg
ICAgIGV4cGVjdChkaXY0LCAwLCAiZmFpbHVyZSAyNCIpOwogICAgICAgIGV4cGVjdChkaXY1LCBt
YXRjaCwgImZhaWx1cmUgMjUiKTsKICAgICAgICBleHBlY3QoZGl2NiwgbWF0Y2gsICJmYWlsdXJl
IDI2Iik7CiAgICAgIH0pOwogICAgICBzZWxlY3RvclRlc3QoZnVuY3Rpb24gKGRvYywgYWRkLCBl
eHBlY3QpIHsKICAgICAgICB2YXIgZGl2MSA9IGRvYy5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAg
ICAgICBkaXYxLmlkID0gImRpdjEiOwogICAgICAgIGRvYy5ib2R5LmFwcGVuZENoaWxkKGRpdjEp
OwogICAgICAgIHZhciBkaXYyID0gZG9jLmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogICAgICAgIGRp
djEuYXBwZW5kQ2hpbGQoZGl2Mik7CiAgICAgICAgdmFyIGRpdjMgPSBkb2MuY3JlYXRlRWxlbWVu
dCgnZGl2Jyk7CiAgICAgICAgZGl2Mi5hcHBlbmRDaGlsZChkaXYzKTsKICAgICAgICB2YXIgZGl2
NCA9IGRvYy5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgICAgICBkaXYzLmFwcGVuZENoaWxkKGRp
djQpOwogICAgICAgIHZhciBkaXY1ID0gZG9jLmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogICAgICAg
IGRpdjQuYXBwZW5kQ2hpbGQoZGl2NSk7CiAgICAgICAgdmFyIGRpdjYgPSBkb2MuY3JlYXRlRWxl
bWVudCgnZGl2Jyk7CiAgICAgICAgZGl2NS5hcHBlbmRDaGlsZChkaXY2KTsKICAgICAgICB2YXIg
bWF0Y2ggPSBhZGQoIiNkaXYxID4gZGl2IGRpdiA+IGRpdiIpOwogICAgICAgIGV4cGVjdChkaXYx
LCAwLCAiZmFpbHVyZSAyNyIpOwogICAgICAgIGV4cGVjdChkaXYyLCAwLCAiZmFpbHVyZSAyOCIp
OwogICAgICAgIGV4cGVjdChkaXYzLCAwLCAiZmFpbHVyZSAyOSIpOwogICAgICAgIGV4cGVjdChk
aXY0LCBtYXRjaCwgImZhaWx1cmUgMzAiKTsKICAgICAgICBleHBlY3QoZGl2NSwgbWF0Y2gsICJm
YWlsdXJlIDMxIik7CiAgICAgICAgZXhwZWN0KGRpdjYsIG1hdGNoLCAiZmFpbHVyZSAzMiIpOwog
ICAgICAgIHZhciBwMjMgPSBkb2MuY3JlYXRlRWxlbWVudCgncCcpOwogICAgICAgIGRpdjIuaW5z
ZXJ0QmVmb3JlKHAyMywgZGl2Myk7CiAgICAgICAgcDIzLmluc2VydEJlZm9yZShkaXYzLCBudWxs
KTsKICAgICAgICBleHBlY3QoZGl2MSwgMCwgImZhaWx1cmUgMzMiKTsKICAgICAgICBleHBlY3Qo
ZGl2MiwgMCwgImZhaWx1cmUgMzQiKTsKICAgICAgICBleHBlY3QoZGl2MywgMCwgImZhaWx1cmUg
MzUiKTsKICAgICAgICBleHBlY3QocDIzLCAwLCAiZmFpbHVyZSAzNiIpOwogICAgICAgIGV4cGVj
dChkaXY0LCBtYXRjaCwgImZhaWx1cmUgMzciKTsKICAgICAgICBleHBlY3QoZGl2NSwgbWF0Y2gs
ICJmYWlsdXJlIDM4Iik7CiAgICAgICAgZXhwZWN0KGRpdjYsIG1hdGNoLCAiZmFpbHVyZSAzOSIp
OwogICAgICB9KTsKICAgICAgcmV0dXJuIDM7CiAgICB9LAogICAgZnVuY3Rpb24gKCkgewogICAg
ICAvLyB0ZXN0IDQzOiA6ZW5hYmxlZCwgOmRpc2FibGVkLCA6Y2hlY2tlZCwgZXRjCiAgICAgIHNl
bGVjdG9yVGVzdChmdW5jdGlvbiAoZG9jLCBhZGQsIGV4cGVjdCkgewogICAgICAgIHZhciBpbnB1
dCA9IGRvYy5jcmVhdGVFbGVtZW50KCdpbnB1dCcpOwogICAgICAgIGlucHV0LnR5cGUgPSAnY2hl
Y2tib3gnOwogICAgICAgIGRvYy5ib2R5LmFwcGVuZENoaWxkKGlucHV0KTsKICAgICAgICB2YXIg
bmVpdGhlciA9IDA7CiAgICAgICAgdmFyIGJvdGggPSBhZGQoIjpjaGVja2VkOmVuYWJsZWQiKTsK
ICAgICAgICB2YXIgY2hlY2tlZCA9IGFkZCgiOmNoZWNrZWQiKTsKICAgICAgICB2YXIgZW5hYmxl
ZCA9IGFkZCgiOmVuYWJsZWQiKTsKICAgICAgICBleHBlY3QoZG9jLmJvZHksIG5laXRoZXIsICJj
b250cm9sIGZhaWx1cmUiKTsKICAgICAgICBleHBlY3QoaW5wdXQsIGVuYWJsZWQsICJpbnB1dCBl
bGVtZW50IGRpZG4ndCBtYXRjaCA6ZW5hYmxlZCIpOwogICAgICAgIGlucHV0LmNsaWNrKCk7CiAg
ICAgICAgZXhwZWN0KGlucHV0LCBib3RoLCAiaW5wdXQgZWxlbWVudCBkaWRuJ3QgbWF0Y2ggOmNo
ZWNrZWQiKTsKICAgICAgICBpbnB1dC5kaXNhYmxlZCA9IHRydWU7CiAgICAgICAgZXhwZWN0KGlu
cHV0LCBjaGVja2VkLCAiZmFpbHVyZSAzIik7CiAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGZhbHNl
OwogICAgICAgIGV4cGVjdChpbnB1dCwgbmVpdGhlciwgImZhaWx1cmUgNCIpOwogICAgICAgIGV4
cGVjdChkb2MuYm9keSwgbmVpdGhlciwgImZhaWx1cmUgNSIpOwogICAgICB9KTsKICAgICAgc2Vs
ZWN0b3JUZXN0KGZ1bmN0aW9uIChkb2MsIGFkZCwgZXhwZWN0KSB7CiAgICAgICAgdmFyIGlucHV0
MSA9IGRvYy5jcmVhdGVFbGVtZW50KCdpbnB1dCcpOwogICAgICAgIGlucHV0MS50eXBlID0gJ3Jh
ZGlvJzsKICAgICAgICBpbnB1dDEubmFtZSA9ICdyYWRpbyc7CiAgICAgICAgZG9jLmJvZHkuYXBw
ZW5kQ2hpbGQoaW5wdXQxKTsKICAgICAgICB2YXIgaW5wdXQyID0gZG9jLmNyZWF0ZUVsZW1lbnQo
J2lucHV0Jyk7CiAgICAgICAgaW5wdXQyLnR5cGUgPSAncmFkaW8nOwogICAgICAgIGlucHV0Mi5u
YW1lID0gJ3JhZGlvJzsKICAgICAgICBkb2MuYm9keS5hcHBlbmRDaGlsZChpbnB1dDIpOwogICAg
ICAgIHZhciBjaGVja2VkID0gYWRkKCI6Y2hlY2tlZCIpOwogICAgICAgIGV4cGVjdChpbnB1dDEs
IDAsICJmYWlsdXJlIDYiKTsKICAgICAgICBleHBlY3QoaW5wdXQyLCAwLCAiZmFpbHVyZSA3Iik7
CiAgICAgICAgaW5wdXQyLmNoZWNrZWQgPSB0cnVlOwogICAgICAgIGV4cGVjdChpbnB1dDEsIDAs
ICJmYWlsdXJlIDYiKTsKICAgICAgICBleHBlY3QoaW5wdXQyLCBjaGVja2VkLCAiZmFpbHVyZSA3
Iik7CiAgICAgICAgaW5wdXQxLmNoZWNrZWQgPSB0cnVlOwogICAgICAgIGV4cGVjdChpbnB1dDEs
IGNoZWNrZWQsICJmYWlsdXJlIDgiKTsKICAgICAgICBleHBlY3QoaW5wdXQyLCAwLCAiZmFpbHVy
ZSA5Iik7CiAgICAgICAgaW5wdXQyLnNldEF0dHJpYnV0ZSgiY2hlY2tlZCIsICJjaGVja2VkIik7
IC8vIHNldHMgZGVmYXVsdENoZWNrZWQsIGRvZXNuJ3QgY2hhbmdlIGFjdHVhbCBzdGF0ZQogICAg
ICAgIGV4cGVjdChpbnB1dDEsIGNoZWNrZWQsICJmYWlsdXJlIDkiKTsKICAgICAgICBleHBlY3Qo
aW5wdXQyLCAwLCAiZmFpbHVyZSAxMCIpOwogICAgICAgIGlucHV0MS50eXBlID0gInRleHQiOwog
ICAgICAgIGV4cGVjdChpbnB1dDEsIDAsICJ0ZXh0IGZpZWxkIG1hdGNoZWQgOmNoZWNrZWQiKTsK
ICAgICAgfSk7CiAgICAgIHNlbGVjdG9yVGVzdChmdW5jdGlvbiAoZG9jLCBhZGQsIGV4cGVjdCkg
ewogICAgICAgIHZhciBpbnB1dCA9IGRvYy5jcmVhdGVFbGVtZW50KCdpbnB1dCcpOwogICAgICAg
IGlucHV0LnR5cGUgPSAnYnV0dG9uJzsKICAgICAgICBkb2MuYm9keS5hcHBlbmRDaGlsZChpbnB1
dCk7CiAgICAgICAgdmFyIG5laXRoZXIgPSAwOwogICAgICAgIHZhciBlbmFibGVkID0gYWRkKCI6
ZW5hYmxlZCIpOwogICAgICAgIHZhciBkaXNhYmxlZCA9IGFkZCgiOmRpc2FibGVkIik7CiAgICAg
ICAgYWRkKCI6ZW5hYmxlZDpkaXNhYmxlZCIpOwogICAgICAgIGV4cGVjdChpbnB1dCwgZW5hYmxl
ZCwgImZhaWx1cmUgMTIiKTsKICAgICAgICBpbnB1dC5kaXNhYmxlZCA9IHRydWU7CiAgICAgICAg
ZXhwZWN0KGlucHV0LCBkaXNhYmxlZCwgImZhaWx1cmUgMTMiKTsKICAgICAgICBpbnB1dC5yZW1v
dmVBdHRyaWJ1dGUoImRpc2FibGVkIik7CiAgICAgICAgZXhwZWN0KGlucHV0LCBlbmFibGVkLCAi
ZmFpbHVyZSAxNCIpOwogICAgICAgIGV4cGVjdChkb2MuYm9keSwgbmVpdGhlciwgImZhaWx1cmUg
MTUiKTsKICAgICAgfSk7CiAgICAgIHJldHVybiAzOwogICAgfSwKICAgIGZ1bmN0aW9uICgpIHsK
ICAgICAgLy8gdGVzdCA0NDogc2VsZWN0b3JzIHdpdGhvdXQgc3BhY2VzIGJlZm9yZSBhICIqIgog
ICAgICBzZWxlY3RvclRlc3QoZnVuY3Rpb24gKGRvYywgYWRkLCBleHBlY3QpIHsKICAgICAgICBk
b2MuYm9keS5jbGFzc05hbWUgPSAidGVzdCI7CiAgICAgICAgdmFyIHAgPSBkb2MuY3JlYXRlRWxl
bWVudCgncCcpOwogICAgICAgIHAuY2xhc3NOYW1lID0gInRlc3QiOwogICAgICAgIGRvYy5ib2R5
LmFwcGVuZENoaWxkKHApOwogICAgICAgIGFkZCgiaHRtbCoudGVzdCIpOwogICAgICAgIGV4cGVj
dChkb2MuYm9keSwgMCwgIm1pc3BhcnNlZCBzZWxlY3RvcnMiKTsKICAgICAgICBleHBlY3QocCwg
MCwgInJlYWxseSBtaXNwYXJzZWQgc2VsZWN0b3JzIik7CiAgICAgIH0pOwogICAgICByZXR1cm4g
MzsKICAgIH0sCiAgICBmdW5jdGlvbiAoKSB7CiAgICAgIHJldHVybiAzOwogICAgfSwKICAgIGZ1
bmN0aW9uICgpIHsKICAgICAgcmV0dXJuIDM7CiAgICB9LAogICAgZnVuY3Rpb24gKCkgewogICAg
ICByZXR1cm4gMzsKICAgIH0sCiAgICBmdW5jdGlvbiAoKSB7CiAgICAgIHJldHVybiAzOwogICAg
fSwKCiAgICAvLyBidWNrZXQgNDogSFRNTDQgYW5kIERPTTIgSFRNTAogICAgZnVuY3Rpb24gKCkg
ewogICAgICAvLyB0ZXN0IDQ5OiBhdHRyaWJ1dGVzIG9mIHRoZSA8YXJlYT4gZWxlbWVudAogICAg
ICB2YXIgYXJlYSA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdhcmVhJylbMF07CiAg
ICAgIGFzc2VydChhcmVhLmdldEF0dHJpYnV0ZSgnaHJlZicpID09ICcnLCAid3JvbmcgdmFsdWUg
Zm9yIGhyZWY9JyciKTsKICAgICAgYXNzZXJ0KGFyZWEuZ2V0QXR0cmlidXRlKCdzaGFwZScpID09
ICdyZWN0JywgIndyb25nIHZhbHVlIGZvciBzaGFwZT0nJyIpOwogICAgICBhc3NlcnQoYXJlYS5n
ZXRBdHRyaWJ1dGUoJ2Nvb3JkcycpID09ICcyLDIsNCw0JywgIndyb25nIHZhbHVlIGZvciBjb29y
ZHM9JyciKTsKICAgICAgcmV0dXJuIDQ7CiAgICB9LAogICAgZnVuY3Rpb24gKCkgewogICAgICAv
LyB0ZXN0IDUwOiB2YWx1ZSBvZiA8YnV0dG9uPiBlbGVtZW50cwogICAgICB2YXIgYnV0dG9uID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYnV0dG9uJyk7CiAgICAgIGJ1dHRvbi5zZXRBdHRyaWJ1
dGUoJ3ZhbHVlJywgJ2FwcGxlJyk7CiAgICAgIGJ1dHRvbi5hcHBlbmRDaGlsZChkb2N1bWVudC5j
cmVhdGVUZXh0Tm9kZSgnYmFuYW5hJykpOwogICAgICBhc3NlcnQoYnV0dG9uLnZhbHVlID09ICdh
cHBsZScsICJ3cm9uZyBidXR0b24gdmFsdWUiKTsKICAgICAgcmV0dXJuIDQ7CiAgICB9LAogICAg
ZnVuY3Rpb24gKCkgewogICAgICAvLyB0ZXN0IDUxOiBjbGFzc05hbWUgdnMgImNsYXNzIiB2cyBh
dHRyaWJ1dGUgbm9kZXMKICAgICAgdmFyIHNwYW4gPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFn
TmFtZSgnc3BhbicpWzBdOwogICAgICBzcGFuLnNldEF0dHJpYnV0ZSgnY2xhc3MnLCAna2l0dGVu
cycpOwogICAgICB2YXIgYXR0ciA9IHNwYW4uZ2V0QXR0cmlidXRlTm9kZSgnY2xhc3MnKTsKICAg
ICAgYXNzZXJ0KGF0dHIuc3BlY2lmaWVkLCAiYXR0cmlidXRlIG5vdCBzcGVjaWZpZWQiKTsKICAg
ICAgYXNzZXJ0KGF0dHIudmFsdWUgPT0gJ2tpdHRlbnMnLCAiYXR0cmlidXRlIHZhbHVlIHdyb25n
Iik7CiAgICAgIGFzc2VydChhdHRyLm5hbWUgPT0gJ2NsYXNzJywgImF0dHJpYnV0ZSBuYW1lIHdy
b25nIik7CiAgICAgIGF0dHIudmFsdWUgPSAnb2NlbG90cyc7CiAgICAgIGFzc2VydChzcGFuLmNs
YXNzTmFtZSA9PSAnb2NlbG90cycsICJzZXR0aW5nIGF0dHJpYnV0ZSB2YWx1ZSBmYWlsZWQgdG8g
YmUgcmVmbGVjdGVkIGluIGNsYXNzTmFtZSIpOwogICAgICBzcGFuLmNsYXNzTmFtZSA9ICdjYXRz
JzsKICAgICAgYXNzZXJ0KGF0dHIub3duZXJFbGVtZW50LmdldEF0dHJpYnV0ZSgnY2xhc3MnKSA9
PSAnY2F0cycsICJzZXR0aW5nIGF0dHJpYnV0ZSB2YWx1ZSBmYWlsZWQgdG8gYmUgcmVmbGVjdGVk
IGluIGdldEF0dHJpYnV0ZSgpIik7CiAgICAgIHNwYW4ucmVtb3ZlQXR0cmlidXRlTm9kZShhdHRy
KTsKICAgICAgYXNzZXJ0KGF0dHIuc3BlY2lmaWVkLCAiYXR0cmlidXRlIG5vdCBzcGVjaWZpZWQg
YWZ0ZXIgcmVtb3ZhbCIpOwogICAgICBhc3NlcnQoIWF0dHIub3duZXJFbGVtZW50LCAiYXR0cmli
dXRlIHN0aWxsIG93bmVkIGFmdGVyIHJlbW92YWwiKTsKICAgICAgYXNzZXJ0KCFzcGFuLmNsYXNz
TmFtZSwgImVsZW1lbnQgaGFkIGNsYXNzIGFmdGVyIHJlbW92YWwiKTsKICAgICAgcmV0dXJuIDQ7
CiAgICB9LAogICAgZnVuY3Rpb24gKCkgewogICAgICAvLyB0ZXN0IDUyOiBjbGFzc05hbWUgYW5k
IHRoZSBjbGFzcyBhdHRyaWJ1dGU6IHNwYWNlIHByZXNlcnZhdGlvbgogICAgICB2YXIgcCA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3AnKTsKICAgICAgYXNzZXJ0KCFwLmhhc0F0dHJpYnV0ZSgn
Y2xhc3MnKSwgImVsZW1lbnQgaGFkIGF0dHJpYnV0ZSBvbiBjcmVhdGlvbiIpOwogICAgICBwLnNl
dEF0dHJpYnV0ZSgnY2xhc3MnLCAnIHRlICBzdCAnKTsKICAgICAgYXNzZXJ0KHAuaGFzQXR0cmli
dXRlKCdjbGFzcycpLCAiZWxlbWVudCBkaWQgbm90IGhhdmUgYXR0cmlidXRlIGFmdGVyIHNldHRp
bmciKTsKICAgICAgYXNzZXJ0KHAuZ2V0QXR0cmlidXRlKCdjbGFzcycpID09ICcgdGUgIHN0ICcs
ICJjbGFzcyBhdHRyaWJ1dGUncyB2YWx1ZSB3YXMgd3JvbmciKTsKICAgICAgYXNzZXJ0KHAuY2xh
c3NOYW1lID09ICcgdGUgIHN0ICcsICJjbGFzc05hbWUgd2FzIHdyb25nIik7CiAgICAgIHAuY2xh
c3NOYW1lID0gcC5jbGFzc05hbWUucmVwbGFjZSgvIC9nLCAnXG4nKTsKICAgICAgYXNzZXJ0KHAu
aGFzQXR0cmlidXRlKCdjbGFzcycpLCAiZWxlbWVudCBkaWQgbm90IGhhdmUgYXR0cmlidXRlIGFm
dGVyIHJlcGxhY2VtZW50Iik7CiAgICAgIGFzc2VydChwLmdldEF0dHJpYnV0ZSgnY2xhc3MnKSA9
PSAnXG50ZVxuXG5zdFxuJywgImNsYXNzIGF0dHJpYnV0ZSdzIHZhbHVlIHdhcyB3cm9uZyBhZnRl
ciByZXBsYWNlbWVudCIpOwogICAgICBhc3NlcnQocC5jbGFzc05hbWUgPT0gJ1xudGVcblxuc3Rc
bicsICJjbGFzc05hbWUgd2FzIHdyb25nIGFmdGVyIHJlcGxhY2VtZW50Iik7CiAgICAgIHAuY2xh
c3NOYW1lID0gJyc7CiAgICAgIGFzc2VydChwLmhhc0F0dHJpYnV0ZSgnY2xhc3MnKSwgImVsZW1l
bnQgbG9zdCBhdHRyaWJ1dGUgYWZ0ZXIgYmVpbmcgc2V0IHRvIGVtcHR5IHN0cmluZyIpOwogICAg
ICBhc3NlcnQocC5nZXRBdHRyaWJ1dGUoJ2NsYXNzJykgPT0gJycsICJjbGFzcyBhdHRyaWJ1dGUn
cyB2YWx1ZSB3YXMgd3JvbmcgYWZ0ZXIgYmVpbmcgZW1wdGllZCIpOwogICAgICBhc3NlcnQocC5j
bGFzc05hbWUgPT0gJycsICJjbGFzc05hbWUgd2FzIHdyb25nIGFmdGVyIGJlaW5nIGVtcHRpZWQi
KTsKICAgICAgcmV0dXJuIDQ7CiAgICB9LAogICAgZnVuY3Rpb24gKCkgewogICAgICAvLyB0ZXN0
IDUzOiBjaGVjayB0aGF0IERPTSBhdHRyaWJ1dGVzIGFuZCBjb250ZW50IGF0dHJpYnV0ZXMgYXJl
bid0IGVxdWl2YWxlbnQKICAgICAgdmFyIHRlc3Q7CiAgICAgIC8vIDxkaXYgY2xhc3M9IiI+CiAg
ICAgIHRlc3QgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnZGl2JylbMF07CiAgICAg
IGFzc2VydCh0ZXN0LmNsYXNzTmFtZSA9PSAnYnVja2V0cycsICJidWNrZXRzOiBjbGFzc05hbWUg
d3JvbmciKTsKICAgICAgYXNzZXJ0KHRlc3QuZ2V0QXR0cmlidXRlKCdjbGFzcycpID09ICdidWNr
ZXRzJywgImJ1Y2tldHM6IGNsYXNzIHdyb25nIik7CiAgICAgIGFzc2VydCghdGVzdC5oYXNBdHRy
aWJ1dGUoJ2NsYXNzTmFtZScpLCAiYnVja2V0czogZWxlbWVudCBoYXMgY2xhc3NOYW1lIGF0dHJp
YnV0ZSIpOwogICAgICBhc3NlcnQodGVzdC5jbGFzc05hbWUgIT0gdGVzdC5nZXRBdHRyaWJ1dGUo
J2NsYXNzTmFtZScpLCAiYnVja2V0czogY2xhc3NOYW1lIGF0dHJpYnV0ZSBlcXVhbHMgY2xhc3NO
YW1lIHByb3BlcnR5Iik7CiAgICAgIGFzc2VydCghKCdjbGFzcycgaW4gdGVzdCksICJidWNrZXRz
OiBlbGVtZW50IGhhcyBjbGFzcyBwcm9wZXJ0eSIpCiAgICAgIHRlc3RbJ2NsYXNzJ10gPSAib2ls
IjsKICAgICAgYXNzZXJ0KHRlc3QuY2xhc3NOYW1lICE9ICJvaWwiLCAiYnVja2V0czogY2xhc3Mg
cHJvcGVydHkgYWZmZWN0ZWQgY2xhc3NOYW1lIik7CiAgICAgIC8vIDxsYWJlbCBmb3I9IiI+CiAg
ICAgIHRlc3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsYWJlbCcpOwogICAgICB0ZXN0Lmh0
bWxGb3IgPSAnamFycyc7CiAgICAgIGFzc2VydCh0ZXN0Lmh0bWxGb3IgPT0gJ2phcnMnLCAiamFy
czogaHRtbEZvciB3cm9uZyIpOwogICAgICBhc3NlcnQodGVzdC5nZXRBdHRyaWJ1dGUoJ2Zvcicp
ID09ICdqYXJzJywgImphcnM6IGZvciB3cm9uZyIpOwogICAgICBhc3NlcnQoIXRlc3QuaGFzQXR0
cmlidXRlKCdodG1sRm9yJyksICJqYXJzOiBlbGVtZW50IGhhcyBodG1sRm9yIGF0dHJpYnV0ZSIp
OwogICAgICBhc3NlcnQodGVzdC5odG1sRm9yICE9IHRlc3QuZ2V0QXR0cmlidXRlKCdodG1sRm9y
JyksICJqYXJzOiBodG1sRm9yIGF0dHJpYnV0ZSBlcXVhbHMgaHRtbEZvciBwcm9wZXJ0eSIpOwog
ICAgICB0ZXN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbGFiZWwnKTsKICAgICAgdGVzdC5z
ZXRBdHRyaWJ1dGUoJ2ZvcicsICdwb3RzJyk7CiAgICAgIGFzc2VydCh0ZXN0Lmh0bWxGb3IgPT0g
J3BvdHMnLCAicG90czogaHRtbEZvciB3cm9uZyIpOwogICAgICBhc3NlcnQodGVzdC5nZXRBdHRy
aWJ1dGUoJ2ZvcicpID09ICdwb3RzJywgInBvdHM6IGZvciB3cm9uZyIpOwogICAgICBhc3NlcnQo
IXRlc3QuaGFzQXR0cmlidXRlKCdodG1sRm9yJyksICJwb3RzOiBlbGVtZW50IGhhcyBodG1sRm9y
IGF0dHJpYnV0ZSIpOwogICAgICBhc3NlcnQodGVzdC5odG1sRm9yICE9IHRlc3QuZ2V0QXR0cmli
dXRlKCdodG1sRm9yJyksICJwb3RzOiBodG1sRm9yIGF0dHJpYnV0ZSBlcXVhbHMgaHRtbEZvciBw
cm9wZXJ0eSIpOwogICAgICBhc3NlcnQoISgnZm9yJyBpbiB0ZXN0KSwgInBvdHM6IGVsZW1lbnQg
aGFzIGZvciBwcm9wZXJ0eSIpOwogICAgICB0ZXN0Wydmb3InXSA9ICJvaWwiOwogICAgICBhc3Nl
cnQodGVzdC5odG1sRm9yICE9ICJvaWwiLCAicG90czogZm9yIHByb3BlcnR5IGFmZmVjdGVkIGh0
bWxGb3IiKTsKICAgICAgLy8gPG1ldGEgaHR0cC1lcXVpdj0iIj4KICAgICAgdGVzdCA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoJ21ldGEnKTsKICAgICAgdGVzdC5zZXRBdHRyaWJ1dGUoJ2h0dHAt
ZXF1aXYnLCAnYm94ZXMnKTsKICAgICAgYXNzZXJ0KHRlc3QuaHR0cEVxdWl2ID09ICdib3hlcycs
ICJib3hlczogaHR0cEVxdWl2IHdyb25nIik7CiAgICAgIGFzc2VydCh0ZXN0LmdldEF0dHJpYnV0
ZSgnaHR0cC1lcXVpdicpID09ICdib3hlcycsICJib3hlczogaHR0cC1lcXVpdiB3cm9uZyIpOwog
ICAgICBhc3NlcnQoIXRlc3QuaGFzQXR0cmlidXRlKCdodHRwRXF1aXYnKSwgImJveGVzOiBlbGVt
ZW50IGhhcyBodHRwRXF1aXYgYXR0cmlidXRlIik7CiAgICAgIGFzc2VydCh0ZXN0Lmh0dHBFcXVp
diAhPSB0ZXN0LmdldEF0dHJpYnV0ZSgnaHR0cEVxdWl2JyksICJib3hlczogaHR0cEVxdWl2IGF0
dHJpYnV0ZSBlcXVhbHMgaHR0cEVxdWl2IHByb3BlcnR5Iik7CiAgICAgIHRlc3QgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCdtZXRhJyk7CiAgICAgIHRlc3QuaHR0cEVxdWl2ID0gJ2NhbnMnOwog
ICAgICBhc3NlcnQodGVzdC5odHRwRXF1aXYgPT0gJ2NhbnMnLCAiY2FuczogaHR0cEVxdWl2IHdy
b25nIik7CiAgICAgIGFzc2VydCh0ZXN0LmdldEF0dHJpYnV0ZSgnaHR0cC1lcXVpdicpID09ICdj
YW5zJywgImNhbnM6IGh0dHAtZXF1aXYgd3JvbmciKTsKICAgICAgYXNzZXJ0KCF0ZXN0Lmhhc0F0
dHJpYnV0ZSgnaHR0cEVxdWl2JyksICJjYW5zOiBlbGVtZW50IGhhcyBodHRwRXF1aXYgYXR0cmli
dXRlIik7CiAgICAgIGFzc2VydCh0ZXN0Lmh0dHBFcXVpdiAhPSB0ZXN0LmdldEF0dHJpYnV0ZSgn
aHR0cEVxdWl2JyksICJjYW5zOiBodHRwRXF1aXYgYXR0cmlidXRlIGVxdWFscyBodHRwRXF1aXYg
cHJvcGVydHkiKTsKICAgICAgYXNzZXJ0KCEoJ2h0dHAtZXF1aXYnIGluIHRlc3QpLCAiY2Fuczog
ZWxlbWVudCBoYXMgaHR0cC1lcXVpdiBwcm9wZXJ0eSIpOwogICAgICB0ZXN0WydodHRwLWVxdWl2
J10gPSAib2lsIjsKICAgICAgYXNzZXJ0KHRlc3QuaHR0cEVxdWl2ICE9ICJvaWwiLCAiY2Fuczog
aHR0cC1lcXVpdiBwcm9wZXJ0eSBhZmZlY3RlZCBodHRwRXF1aXYiKTsKICAgICAgcmV0dXJuIDQ7
CiAgICB9LAogICAgZnVuY3Rpb24gKCkgewogICAgICAvLyB0ZXN0IDU0OiBudW1lcmljIGF0dHJp
YnV0ZXMKICAgICAgdmFyIGkgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaW5wdXQn
KVswXTsKICAgICAgaS5zZXRBdHRyaWJ1dGUoJ21heExlbmd0aCcsICcyJyk7CiAgICAgIHZhciBz
ID0gaS5nZXRBdHRyaWJ1dGUoJ21heExlbmd0aCcpOwogICAgICBhc3NlcnQocy5tYXRjaCwgImF0
dHJpYnV0ZSBpcyBub3QgYSBTdHJpbmciKTsKICAgICAgYXNzZXJ0KCFzLk1JTl9WQUxVRSwgImF0
dHJpYnV0ZSBpcyBhIE51bWJlciIpOwogICAgICByZXR1cm4gNDsKICAgIH0sCiAgICBmdW5jdGlv
biAoKSB7CiAgICAgIC8vIHRlc3QgNTU6IGdldEVsZW1lbnRCeUlkKCkgYW5kIG5hbWU9IiIKICAg
ICAgdmFyIGYgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnZm9ybScpWzBdOwogICAg
ICBhc3NlcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Zvcm0nKSAhPT0gZiwgImdldEVsZW1l
bnRCeUlkKCkgc2VhcmNoZWQgb24gJ25hbWUnIik7CiAgICAgIHJldHVybiA0OwogICAgfSwKICAg
IGZ1bmN0aW9uICgpIHsKICAgICAgLy8gdGVzdCA1NjogY2FzZSBwcmVzZXJ2YXRpb24gb2YgYXR0
cmlidXRlcwogICAgICB2YXIgaSA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdpbnB1
dCcpWzBdOwogICAgICBhc3NlcnQoaS5nZXRBdHRyaWJ1dGUoJ3R5cGUnKSA9PSAnSElEREVOJywg
InR5cGUgd2FzIHdyb25nIik7CiAgICAgIHJldHVybiA0OwogICAgfSwKICAgIGZ1bmN0aW9uICgp
IHsKICAgICAgLy8gdGVzdCA1NzogPGZvcm0+IGFuZCAuZWxlbWVudHMKICAgICAgdGVzdCA9IGRv
Y3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdmb3JtJylbMF07CiAgICAgIC8vIGFzc2VydCh0
ZXN0LmVsZW1lbnRzICE9PSB0ZXN0LCAiZm9ybS5lbGVtZW50cyA9PT0gZm9ybSIpOyAvLyAoc29t
ZSBicm93c2VycyB3b3VsZCBmYWlsIHRoaXMsIGJ1dCBIVE1MNSBtaWdodCByZXF1aXJlIGl0KQog
ICAgICBhc3NlcnQodGVzdC5lbGVtZW50cyAhPT0gdGVzdC5nZXRBdHRyaWJ1dGUoJ2VsZW1lbnRz
JyksICJmb3JtIGVsZW1lbnQgaGFzIGFuIGVsZW1lbnRzIGNvbnRlbnQgYXR0cmlidXRlIik7CiAg
ICAgIGFzc2VydCh0ZXN0LmVsZW1lbnRzLmxlbmd0aCA9PSAxLCAiZm9ybSBlbGVtZW50IGhhcyB1
bmV4cGVjdGVkIG51bWJlciBvZiBjb250cm9scyIpOwogICAgICBhc3NlcnQodGVzdC5lbGVtZW50
cy5sZW5ndGggPT0gdGVzdC5sZW5ndGgsICJmb3JtIGVsZW1lbnQgaGFzIGluY29uc2lzdGVudCBu
dW1iZXJzIG9mIGNvbnRyb2xzIik7CiAgICAgIHJldHVybiA0OwogICAgfSwKICAgIGZ1bmN0aW9u
ICgpIHsKICAgICAgLy8gdGVzdCA1ODogZ2V0RWxlbWVudEJ5SWQoKSB3aXRoIGEgc3BhY2UgY2hh
cmFjdGVyIGFzIHRoZSBJRAogICAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgn
ZGl2Jyk7CiAgICAgIGRpdi5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgnRkFJ
TCcpKTsKICAgICAgZGl2LmlkID0gIiAiOwogICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxk
KGRpdik7IC8vIGl0J3MgaGlkZGVuIGJ5IENTUwogICAgICBhc3NlcnQoZGl2ID09PSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgiICIpLCAiZ2V0RWxlbWVudEJ5SWQoKSBkaWRuJ3QgcmV0dXJuIHRo
ZSByaWdodCBlbGVtZW50Iik7CiAgICAgIHJldHVybiA0OwogICAgfSwKICAgIGZ1bmN0aW9uICgp
IHsKICAgICAgcmV0dXJuIDQ7CiAgICB9LAogICAgZnVuY3Rpb24gKCkgewogICAgICByZXR1cm4g
NDsKICAgIH0sCiAgICBmdW5jdGlvbiAoKSB7CiAgICAgIHJldHVybiA0OwogICAgfSwKICAgIGZ1
bmN0aW9uICgpIHsKICAgICAgcmV0dXJuIDQ7CiAgICB9LAogICAgZnVuY3Rpb24gKCkgewogICAg
ICByZXR1cm4gNDsKICAgIH0sCiAgICBmdW5jdGlvbiAoKSB7CiAgICAgIHJldHVybiA0OwogICAg
fSwKCiAgICAvLyBidWNrZXQgNTogRE9NIENvcmUgbWFuaXB1bGF0aW9uIGFuZCBET00yIEhUTUwg
YWNjZXNzb3JzCiAgICAvLyBUYWJsZXMKICAgIGZ1bmN0aW9uICgpIHsKICAgICAgLy8gdGVzdCA2
NTogYmFzaWMgdGFibGUgYWNjZXNzb3IgcGluZyB0ZXN0IGNyZWF0ZSosIGRlbGV0ZSosIGFuZCAq
CiAgICAgIC8vIHdoZXJlICogaXMgY2FwdGlvbiwgdEhlYWQsIHRGb290LgogICAgICB2YXIgdGFi
bGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0YWJsZScpOwogICAgICBhc3NlcnQoIXRhYmxl
LmNhcHRpb24sICJpbml0aWFsbHk6IGNhcHRpb24iKTsKICAgICAgYXNzZXJ0KHRhYmxlLnRCb2Rp
ZXMsICJpbml0aWFsbHk6IHRCb2RpZXMiKTsKICAgICAgYXNzZXJ0KHRhYmxlLnRCb2RpZXMubGVu
Z3RoID09IDAsICJpbml0aWFsbHk6IHRCb2RpZXMubGVuZ3RoIik7CiAgICAgIGFzc2VydCh0YWJs
ZS5yb3dzLCAiaW5pdGlhbGx5OiByb3dzIik7CiAgICAgIGFzc2VydCh0YWJsZS5yb3dzLmxlbmd0
aCA9PSAwLCAiaW5pdGlhbGx5OiByb3dzLmxlbmd0aCIpOwogICAgICBhc3NlcnQoIXRhYmxlLnRG
b290LCAiaW5pdGlhbGx5OiB0Rm9vdCIpOwogICAgICBhc3NlcnQoIXRhYmxlLnRIZWFkLCAiaW5p
dGlhbGx5OiB0SGVhZCIpOwogICAgICB2YXIgY2FwdGlvbiA9IHRhYmxlLmNyZWF0ZUNhcHRpb24o
KTsKICAgICAgdmFyIHRoZWFkID0gdGFibGUuY3JlYXRlVEhlYWQoKTsKICAgICAgdmFyIHRmb290
ID0gdGFibGUuY3JlYXRlVEZvb3QoKTsKICAgICAgYXNzZXJ0KHRhYmxlLmNhcHRpb24gPT0gY2Fw
dGlvbiwgImFmdGVyIGNyZWF0aW9uOiBjYXB0aW9uIik7CiAgICAgIGFzc2VydCh0YWJsZS50Qm9k
aWVzLCAiYWZ0ZXIgY3JlYXRpb246IHRCb2RpZXMiKTsKICAgICAgYXNzZXJ0KHRhYmxlLnRCb2Rp
ZXMubGVuZ3RoID09IDAsICJhZnRlciBjcmVhdGlvbjogdEJvZGllcy5sZW5ndGgiKTsKICAgICAg
YXNzZXJ0KHRhYmxlLnJvd3MsICJhZnRlciBjcmVhdGlvbjogcm93cyIpOwogICAgICBhc3NlcnQo
dGFibGUucm93cy5sZW5ndGggPT0gMCwgImFmdGVyIGNyZWF0aW9uOiByb3dzLmxlbmd0aCIpOwog
ICAgICBhc3NlcnQodGFibGUudEZvb3QgPT0gdGZvb3QsICJhZnRlciBjcmVhdGlvbjogdEZvb3Qi
KTsKICAgICAgYXNzZXJ0KHRhYmxlLnRIZWFkID09IHRoZWFkLCAiYWZ0ZXIgY3JlYXRpb246IHRI
ZWFkIik7CiAgICAgIGFzc2VydCh0YWJsZS5jaGlsZE5vZGVzLmxlbmd0aCA9PSAzLCAiYWZ0ZXIg
Y3JlYXRpb246IGNoaWxkTm9kZXMubGVuZ3RoIik7CiAgICAgIHRhYmxlLmNhcHRpb24gPSBjYXB0
aW9uOyAvLyBuby1vcAogICAgICB0YWJsZS50SGVhZCA9IHRoZWFkOyAvLyBuby1vcAogICAgICB0
YWJsZS50Rm9vdCA9IHRmb290OyAvLyBuby1vcAogICAgICBhc3NlcnQodGFibGUuY2FwdGlvbiA9
PSBjYXB0aW9uLCAiYWZ0ZXIgc2V0dGluZzogY2FwdGlvbiIpOwogICAgICBhc3NlcnQodGFibGUu
dEJvZGllcywgImFmdGVyIHNldHRpbmc6IHRCb2RpZXMiKTsKICAgICAgYXNzZXJ0KHRhYmxlLnRC
b2RpZXMubGVuZ3RoID09IDAsICJhZnRlciBzZXR0aW5nOiB0Qm9kaWVzLmxlbmd0aCIpOwogICAg
ICBhc3NlcnQodGFibGUucm93cywgImFmdGVyIHNldHRpbmc6IHJvd3MiKTsKICAgICAgYXNzZXJ0
KHRhYmxlLnJvd3MubGVuZ3RoID09IDAsICJhZnRlciBzZXR0aW5nOiByb3dzLmxlbmd0aCIpOwog
ICAgICBhc3NlcnQodGFibGUudEZvb3QgPT0gdGZvb3QsICJhZnRlciBzZXR0aW5nOiB0Rm9vdCIp
OwogICAgICBhc3NlcnQodGFibGUudEhlYWQgPT0gdGhlYWQsICJhZnRlciBzZXR0aW5nOiB0SGVh
ZCIpOwogICAgICBhc3NlcnQodGFibGUuY2hpbGROb2Rlcy5sZW5ndGggPT0gMywgImFmdGVyIHNl
dHRpbmc6IGNoaWxkTm9kZXMubGVuZ3RoIik7CiAgICAgIHRhYmxlLmRlbGV0ZUNhcHRpb24oKTsK
ICAgICAgdGFibGUuZGVsZXRlVEhlYWQoKTsKICAgICAgdGFibGUuZGVsZXRlVEZvb3QoKTsKICAg
ICAgYXNzZXJ0KCF0YWJsZS5jYXB0aW9uLCAiYWZ0ZXIgZGVsZXRpb246IGNhcHRpb24iKTsKICAg
ICAgYXNzZXJ0KHRhYmxlLnRCb2RpZXMsICJhZnRlciBkZWxldGlvbjogdEJvZGllcyIpOwogICAg
ICBhc3NlcnQodGFibGUudEJvZGllcy5sZW5ndGggPT0gMCwgImFmdGVyIGRlbGV0aW9uOiB0Qm9k
aWVzLmxlbmd0aCIpOwogICAgICBhc3NlcnQodGFibGUucm93cywgImFmdGVyIGRlbGV0aW9uOiBy
b3dzIik7CiAgICAgIGFzc2VydCh0YWJsZS5yb3dzLmxlbmd0aCA9PSAwLCAiYWZ0ZXIgZGVsZXRp
b246IHJvd3MubGVuZ3RoIik7CiAgICAgIGFzc2VydCghdGFibGUudEZvb3QsICJhZnRlciBkZWxl
dGlvbjogdEZvb3QiKTsKICAgICAgYXNzZXJ0KCF0YWJsZS50SGVhZCwgImFmdGVyIGRlbGV0aW9u
OiB0SGVhZCIpOwogICAgICBhc3NlcnQoIXRhYmxlLmhhc0NoaWxkTm9kZXMoKSwgImFmdGVyIGRl
bGV0aW9uOiBoYXNDaGlsZE5vZGVzKCkiKTsKICAgICAgYXNzZXJ0KHRhYmxlLmNoaWxkTm9kZXMu
bGVuZ3RoID09IDAsICJhZnRlciBkZWxldGlvbjogY2hpbGROb2Rlcy5sZW5ndGgiKTsKICAgICAg
cmV0dXJuIDU7CiAgICB9LAogICAgZnVuY3Rpb24gKCkgewogICAgICAvLyB0ZXN0IDY2OiBjb25z
dHJ1Y3QgYSB0YWJsZSwgYW5kIHNlZSBpZiB0aGUgdGFibGUgaXMgYXMgZXhwZWN0ZWQKICAgICAg
dmFyIHRhYmxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGFibGUnKTsKICAgICAgdGFibGUu
YXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGJvZHknKSk7CiAgICAgIHZhciB0
cjEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwogICAgICB0YWJsZS5hcHBlbmRDaGls
ZCh0cjEpOwogICAgICB0YWJsZS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdj
YXB0aW9uJykpOwogICAgICB0YWJsZS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCd0aGVhZCcpKTsKICAgICAgLy8gPHRhYmxlPjx0Ym9keS8+PHRyLz48Y2FwdGlvbi8+PHRoZWFk
Lz4KICAgICAgdGFibGUuaW5zZXJ0QmVmb3JlKHRhYmxlLmZpcnN0Q2hpbGQubmV4dFNpYmxpbmcs
IG51bGwpOyAvLyBtb3ZlIHRoZSA8dHIvPiB0byB0aGUgZW5kCiAgICAgIC8vIDx0YWJsZT48dGJv
ZHkvPjxjYXB0aW9uLz48dGhlYWQvPjx0ci8+CiAgICAgIHRhYmxlLnJlcGxhY2VDaGlsZCh0YWJs
ZS5maXJzdENoaWxkLCB0YWJsZS5sYXN0Q2hpbGQpOyAvLyBtb3ZlIHRoZSA8dGJvZHkvPiB0byB0
aGUgZW5kIGFuZCByZW1vdmUgdGhlIDx0cj4KICAgICAgLy8gPHRhYmxlPjxjYXB0aW9uLz48dGhl
YWQvPjx0Ym9keS8+CiAgICAgIHZhciB0cjIgPSB0YWJsZS50Qm9kaWVzWzBdLmluc2VydFJvdygw
KTsKICAgICAgLy8gPHRhYmxlPjxjYXB0aW9uLz48dGhlYWQvPjx0Ym9keT48dHIvPjwvdGJvZHk+
CiAgICAgIGFzc2VydCh0YWJsZS50Qm9kaWVzWzBdLnJvd3NbMF0ucm93SW5kZXggPT0gMCwgInJv
d0luZGV4IGJyb2tlbiIpOwogICAgICBhc3NlcnQodGFibGUudEJvZGllc1swXS5yb3dzWzBdLnNl
Y3Rpb25Sb3dJbmRleCA9PSAwLCAic2VjdGlvblJvd0luZGV4IGJyb2tlbiIpOwogICAgICBhc3Nl
cnQodGFibGUuY2hpbGROb2Rlcy5sZW5ndGggPT0gMywgIndyb25nIG51bWJlciBvZiBjaGlsZHJl
biIpOwogICAgICBhc3NlcnQodGFibGUuY2FwdGlvbiwgImNhcHRpb24gYnJva2VuIik7CiAgICAg
IGFzc2VydCh0YWJsZS50SGVhZCwgInRIZWFkIGJyb2tlbiIpOwogICAgICBhc3NlcnQoIXRhYmxl
LnRGb290LCAidEZvb3QgYnJva2VuIik7CiAgICAgIGFzc2VydCh0YWJsZS50Qm9kaWVzLmxlbmd0
aCA9PSAxLCAid3JvbmcgbnVtYmVyIG9mIHRCb2RpZXMiKTsKICAgICAgYXNzZXJ0KHRhYmxlLnJv
d3MubGVuZ3RoID09IDEsICJ3cm9uZyBudW1iZXIgb2Ygcm93cyIpOwogICAgICBhc3NlcnQoIXRy
MS5wYXJlbnROb2RlLCAib3JwaGFuIHJvdyBoYXMgdW5leHBlY3RlZCBwYXJlbnQiKTsKICAgICAg
YXNzZXJ0KHRhYmxlLmNhcHRpb24gPT0gdGFibGUuY3JlYXRlQ2FwdGlvbigpLCAiY2FwdGlvbiBj
cmVhdGlvbiBmYWlsZWQiKTsKICAgICAgYXNzZXJ0KHRhYmxlLnRGb290ID09IG51bGwsICJ0YWJs
ZSBoYXMgdW5leHBlY3RlZCBmb290ZXIiKTsKICAgICAgYXNzZXJ0KHRhYmxlLnRIZWFkID09IHRh
YmxlLmNyZWF0ZVRIZWFkKCksICJoZWFkZXIgY3JlYXRpb24gZmFpbGVkIik7CiAgICAgIGFzc2Vy
dCh0YWJsZS5jcmVhdGVURm9vdCgpID09IHRhYmxlLnRGb290LCAiZm9vdGVyIGNyZWF0aW9uIGZh
aWxlZCIpOwogICAgICAvLyBlaXRoZXI6IDx0YWJsZT48Y2FwdGlvbi8+PHRoZWFkLz48dGJvZHk+
PHRyLz48L3Rib2R5Pjx0Zm9vdC8+CiAgICAgIC8vICAgICBvcjogPHRhYmxlPjxjYXB0aW9uLz48
dGhlYWQvPjx0Zm9vdC8+PHRib2R5Pjx0ci8+PC90Ym9keT4KICAgICAgdGFibGUudEhlYWQuYXBw
ZW5kQ2hpbGQodHIxKTsKICAgICAgLy8gZWl0aGVyOiA8dGFibGU+PGNhcHRpb24vPjx0aGVhZD48
dHIvPjwvdGhlYWQ+PHRib2R5Pjx0ci8+PC90Ym9keT48dGZvb3QvPgogICAgICAvLyAgICAgb3I6
IDx0YWJsZT48Y2FwdGlvbi8+PHRoZWFkPjx0ci8+PC90aGVhZD48dGZvb3QvPjx0Ym9keT48dHIv
PjwvdGJvZHk+CiAgICAgIGFzc2VydCh0YWJsZS5yb3dzWzBdID09IHRhYmxlLnRIZWFkLmZpcnN0
Q2hpbGQsICJ0b3Agcm93IG5vdCBpbiBleHBlY3RlZCBwb3NpdGlvbiIpOwogICAgICBhc3NlcnQo
dGFibGUucm93cy5sZW5ndGggPT0gMiwgIndyb25nIG51bWJlciBvZiByb3dzIGFmdGVyIGFwcGVu
ZGluZyBvbmUiKTsKICAgICAgYXNzZXJ0KHRhYmxlLnJvd3NbMV0gPT0gdGFibGUudEJvZGllc1sw
XS5maXJzdENoaWxkLCAic2Vjb25kIHJvdyBub3QgaW4gZXhwZWN0ZWQgcG9zaXRpb24iKTsKICAg
ICAgcmV0dXJuIDU7CiAgICB9LAogICAgZnVuY3Rpb24gKCkgewogICAgICAvLyB0ZXN0IDY3OiB0
ZXN0IHRoZSBvcmRlcmluZyBhbmQgY3JlYXRpb24gb2Ygcm93cwogICAgICB2YXIgdGFibGUgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCd0YWJsZScpOwogICAgICB2YXIgcm93cyA9IFsKICAgICAg
ICBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpLCAgICAvLyAwOiBlbmRzIHVwIGZpcnN0IGNo
aWxkIG9mIHRoZSB0Zm9vdAogICAgICAgIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyksICAg
IC8vIDE6IGdvZXMgYXQgdGhlIGVuZCBvZiB0aGUgdGFibGUKICAgICAgICBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCd0cicpLCAgICAvLyAyOiBiZWNvbWVzIHNlY29uZCBjaGlsZCBvZiB0aGVhZAog
ICAgICAgIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyksICAgIC8vIDM6IGJlY29tZXMgdGhp
cmQgY2hpbGQgb2YgdGhlIHRoZWFkCiAgICAgICAgZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHIn
KSwgICAgLy8gNDogbm90IGluIHRoZSB0YWJsZQogICAgICAgIHRhYmxlLmluc2VydFJvdygwKSwg
ICAgICAgICAgICAgIC8vIDU6IG5vdCBpbiB0aGUgdGFibGUKICAgICAgICB0YWJsZS5jcmVhdGVU
Rm9vdCgpLmluc2VydFJvdygwKSAvLyA2OiBlbmRzIHVwIHNlY29uZCBpbiB0aGUgdGZvb3QKICAg
ICAgXTsKICAgICAgcm93c1s2XS5wYXJlbnROb2RlLmFwcGVuZENoaWxkKHJvd3NbMF0pOwogICAg
ICB0YWJsZS5hcHBlbmRDaGlsZChyb3dzWzFdKTsKICAgICAgdGFibGUuaW5zZXJ0QmVmb3JlKGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RoZWFkJyksIHRhYmxlLmZpcnN0Q2hpbGQpOwogICAgICB0
YWJsZS5maXJzdENoaWxkLmFwcGVuZENoaWxkKHJvd3NbMl0pOwogICAgICByb3dzWzJdLnBhcmVu
dE5vZGUuYXBwZW5kQ2hpbGQocm93c1szXSk7CiAgICAgIHJvd3NbNF0uYXBwZW5kQ2hpbGQocm93
c1s1XS5wYXJlbnROb2RlKTsKICAgICAgdGFibGUuaW5zZXJ0Um93KDApOwogICAgICB0YWJsZS50
Rm9vdC5hcHBlbmRDaGlsZChyb3dzWzZdKTsKICAgICAgYXNzZXJ0KHRhYmxlLnJvd3MubGVuZ3Ro
ID09IDYsICJ3cm9uZyBudW1iZXIgb2Ygcm93cyIpOwogICAgICBhc3NlcnQodGFibGUuZ2V0RWxl
bWVudHNCeVRhZ05hbWUoJ3RyJykubGVuZ3RoID09IDYsICJ3cm9uZyBudW1iZXIgb2YgdHIgZWxl
bWVudHMiKTsKICAgICAgYXNzZXJ0KHRhYmxlLmNoaWxkTm9kZXMubGVuZ3RoID09IDMsICJ0YWJs
ZSBoYXMgd3JvbmcgbnVtYmVyIG9mIGNoaWxkcmVuIik7CiAgICAgIGFzc2VydCh0YWJsZS5jaGls
ZE5vZGVzWzBdID09IHRhYmxlLnRIZWFkLCAidEhlYWQgaXNuJ3QgZmlyc3QiKTsKICAgICAgYXNz
ZXJ0KHRhYmxlLmdldEVsZW1lbnRzQnlUYWdOYW1lKCd0cicpWzBdID09IHRhYmxlLnRIZWFkLmNo
aWxkTm9kZXNbMF0sICJmaXJzdCB0ciBpc24ndCBpbiB0SGVhZCBjb3JyZWN0bHkiKTsKICAgICAg
YXNzZXJ0KHRhYmxlLmdldEVsZW1lbnRzQnlUYWdOYW1lKCd0cicpWzFdID09IHRhYmxlLnRIZWFk
LmNoaWxkTm9kZXNbMV0sICJzZWNvbmQgdHIgaXNuJ3QgaW4gdEhlYWQgY29ycmVjdGx5Iik7CiAg
ICAgIGFzc2VydCh0YWJsZS5nZXRFbGVtZW50c0J5VGFnTmFtZSgndHInKVsxXSA9PSByb3dzWzJd
LCAic2Vjb25kIHRyIGlzIHRoZSB3cm9uZyByb3ciKTsKICAgICAgYXNzZXJ0KHRhYmxlLmdldEVs
ZW1lbnRzQnlUYWdOYW1lKCd0cicpWzJdID09IHRhYmxlLnRIZWFkLmNoaWxkTm9kZXNbMl0sICJ0
aGlyZCB0ciBpc24ndCBpbiB0SGVhZCBjb3JyZWN0bHkiKTsKICAgICAgYXNzZXJ0KHRhYmxlLmdl
dEVsZW1lbnRzQnlUYWdOYW1lKCd0cicpWzJdID09IHJvd3NbM10sICJ0aGlyZCB0ciBpcyB0aGUg
d3Jvbmcgcm93Iik7CiAgICAgIGFzc2VydCh0YWJsZS5jaGlsZE5vZGVzWzFdID09IHRhYmxlLnRG
b290LCAidEZvb3QgaXNuJ3Qgc2Vjb25kIik7CiAgICAgIGFzc2VydCh0YWJsZS5nZXRFbGVtZW50
c0J5VGFnTmFtZSgndHInKVszXSA9PSB0YWJsZS50Rm9vdC5jaGlsZE5vZGVzWzBdLCAiZm91cnRo
IHRyIGlzbid0IGluIHRGb290IGNvcnJlY3RseSIpOwogICAgICBhc3NlcnQodGFibGUuZ2V0RWxl
bWVudHNCeVRhZ05hbWUoJ3RyJylbM10gPT0gcm93c1swXSwgImZvdXJ0aCB0ciBpcyB0aGUgd3Jv
bmcgcm93Iik7CiAgICAgIGFzc2VydCh0YWJsZS5nZXRFbGVtZW50c0J5VGFnTmFtZSgndHInKVs0
XSA9PSB0YWJsZS50Rm9vdC5jaGlsZE5vZGVzWzFdLCAiZmlmdGggdHIgaXNuJ3QgaW4gdEZvb3Qg
Y29ycmVjdGx5Iik7CiAgICAgIGFzc2VydCh0YWJsZS5nZXRFbGVtZW50c0J5VGFnTmFtZSgndHIn
KVs0XSA9PSByb3dzWzZdLCAiZmlmdGggdHIgaXMgdGhlIHdyb25nIHJvdyIpOwogICAgICBhc3Nl
cnQodGFibGUuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3RyJylbNV0gPT0gdGFibGUuY2hpbGROb2Rl
c1syXSwgInNpeHRoIHRyIGlzbid0IGluIHRGb290IGNvcnJlY3RseSIpOwogICAgICBhc3NlcnQo
dGFibGUuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3RyJylbNV0gPT0gcm93c1sxXSwgInNpeHRoIHRy
IGlzIHRoZSB3cm9uZyByb3ciKTsKICAgICAgYXNzZXJ0KHRhYmxlLnRCb2RpZXMubGVuZ3RoID09
IDAsICJub24temVybyBudW1iZXIgb2YgdEJvZGllcyIpOwogICAgICByZXR1cm4gNTsKICAgIH0s
CiAgICBmdW5jdGlvbiAoKSB7CiAgICAgIC8vIHRlc3QgNjg6IGNoZWNrIHRoYXQgd2hpdGVzcGFj
ZSBzdXJ2aXZlcyBjbG9uaW5nCiAgICAgIHZhciB0MSA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlU
YWdOYW1lKCd0YWJsZScpWzBdOwogICAgICB2YXIgdDIgPSB0MS5jbG9uZU5vZGUodHJ1ZSk7CiAg
ICAgIGFzc2VydCh0Mi50Qm9kaWVzWzBdLnJvd3NbMF0uY2VsbHNbMF0uZmlyc3RDaGlsZC50YWdO
YW1lID09ICdQJywgIjxwPiBkaWRuJ3QgY2xvbmUgcmlnaHQiKTsKICAgICAgYXNzZXJ0KHQyLnRC
b2RpZXNbMF0ucm93c1swXS5jZWxsc1swXS5maXJzdENoaWxkLmNoaWxkTm9kZXMubGVuZ3RoID09
IDAsICI8cD4gZ290IGNoaWxkIG5vZGVzIGFmdGVyIGNsb25pbmciKTsKICAgICAgYXNzZXJ0KHQy
LmNoaWxkTm9kZXMubGVuZ3RoID09IDIsICJjbG9uZWQgdGFibGUgaGFkIHdyb25nIG51bWJlciBv
ZiBjaGlsZHJlbiIpOwogICAgICBhc3NlcnQodDIubGFzdENoaWxkLmRhdGEgPT0gIiAiLCAiY2xv
bmVkIHRhYmxlIGxvc3Qgd2hpdGVzcGFjZSB0ZXh0IG5vZGUiKTsKICAgICAgcmV0dXJuIDU7CiAg
ICB9LAoKICAgIC8vIEZvcm1zCiAgICBmdW5jdGlvbiAoKSB7CiAgICAgIC8vIHRlc3QgNjk6IGNo
YW5naW5nIGFuIDxpbnB1dD4gZHluYW1pY2FsbHkKICAgICAgdmFyIGYgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCdmb3JtJyk7CiAgICAgIHZhciBpID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgn
aW5wdXQnKTsKICAgICAgaS5uYW1lID0gJ2ZpcnN0JzsKICAgICAgaS50eXBlID0gJ3RleHQnOwog
ICAgICBpLnZhbHVlID0gJ3Rlc3QnOwogICAgICBmLmFwcGVuZENoaWxkKGkpOwogICAgICBhc3Nl
cnQoaS5nZXRBdHRyaWJ1dGUoJ25hbWUnKSA9PSAnZmlyc3QnLCAibmFtZSBhdHRyaWJ1dGUgd3Jv
bmciKTsKICAgICAgYXNzZXJ0KGkubmFtZSA9PSAnZmlyc3QnLCAibmFtZSBwcm9wZXJ0eSB3cm9u
ZyIpOwogICAgICBhc3NlcnQoaS5nZXRBdHRyaWJ1dGUoJ3R5cGUnKSA9PSAndGV4dCcsICJ0eXBl
IGF0dHJpYnV0ZSB3cm9uZyIpOwogICAgICBhc3NlcnQoaS50eXBlID09ICd0ZXh0JywgInR5cGUg
cHJvcGVydHkgd3JvbmciKTsKICAgICAgYXNzZXJ0KCFpLmhhc0F0dHJpYnV0ZSgndmFsdWUnKSwg
InZhbHVlIGF0dHJpYnV0ZSB3cm9uZyIpOwogICAgICBhc3NlcnQoaS52YWx1ZSA9PSAndGVzdCcs
ICJ2YWx1ZSBwcm9wZXJ0eSB3cm9uZyIpOwogICAgICBhc3NlcnQoZi5lbGVtZW50cy5sZW5ndGgg
PT0gMSwgImZvcm0ncyBlbGVtZW50cyBhcnJheSBoYXMgd3Jvbmcgc2l6ZSIpOwogICAgICBhc3Nl
cnQoZi5lbGVtZW50c1swXSA9PSBpLCAiZm9ybSdzIGVsZW1lbnQgYXJyYXkgZG9lc24ndCBoYXZl
IGlucHV0IGNvbnRyb2wgYnkgaW5kZXgiKTsKICAgICAgYXNzZXJ0KGYuZWxlbWVudHMuZmlyc3Qg
PT0gaSwgImZvcm0ncyBlbGVtZW50IGFycmF5IGRvZXNuJ3QgaGF2ZSBpbnB1dCBjb250cm9sIGJ5
IG5hbWUiKTsKICAgICAgYXNzZXJ0KGYuZWxlbWVudHMuc2Vjb25kID09IG51bGwsICJmb3JtJ3Mg
ZWxlbWVudCBhcnJheSBoYXMgdW5leHBlY3RlZCBjb250cm9scyBieSBuYW1lIik7CiAgICAgIGku
bmFtZSA9ICdzZWNvbmQnOwogICAgICBpLnR5cGUgPSAncGFzc3dvcmQnOwogICAgICBpLnZhbHVl
ID0gJ1RFU1QnOwogICAgICBhc3NlcnQoaS5nZXRBdHRyaWJ1dGUoJ25hbWUnKSA9PSAnc2Vjb25k
JywgIm5hbWUgYXR0cmlidXRlIHdyb25nIGFmdGVyIGNoYW5nZSIpOwogICAgICBhc3NlcnQoaS5u
YW1lID09ICdzZWNvbmQnLCAibmFtZSBwcm9wZXJ0eSB3cm9uZyBhZnRlciBjaGFuZ2UiKTsKICAg
ICAgYXNzZXJ0KGkuZ2V0QXR0cmlidXRlKCd0eXBlJykgPT0gJ3Bhc3N3b3JkJywgInR5cGUgYXR0
cmlidXRlIHdyb25nIGFmdGVyIGNoYW5nZSIpOwogICAgICBhc3NlcnQoaS50eXBlID09ICdwYXNz
d29yZCcsICJ0eXBlIHByb3BlcnR5IHdyb25nIGFmdGVyIGNoYW5nZSIpOwogICAgICBhc3NlcnQo
IWkuaGFzQXR0cmlidXRlKCd2YWx1ZScpLCAidmFsdWUgYXR0cmlidXRlIHdyb25nIGFmdGVyIGNo
YW5nZSIpOwogICAgICBhc3NlcnQoaS52YWx1ZSA9PSAnVEVTVCcsICJ2YWx1ZSBwcm9wZXJ0eSB3
cm9uZyBhZnRlciBjaGFuZ2UiKTsKICAgICAgYXNzZXJ0KGYuZWxlbWVudHMubGVuZ3RoID09IDEs
ICJmb3JtJ3MgZWxlbWVudHMgYXJyYXkgaGFzIHdyb25nIHNpemUgYWZ0ZXIgY2hhbmdlIik7CiAg
ICAgIGFzc2VydChmLmVsZW1lbnRzWzBdID09IGksICJmb3JtJ3MgZWxlbWVudCBhcnJheSBkb2Vz
bid0IGhhdmUgaW5wdXQgY29udHJvbCBieSBpbmRleCBhZnRlciBjaGFuZ2UiKTsKICAgICAgYXNz
ZXJ0KGYuZWxlbWVudHMuc2Vjb25kID09IGksICJmb3JtJ3MgZWxlbWVudCBhcnJheSBkb2Vzbid0
IGhhdmUgaW5wdXQgY29udHJvbCBieSBuYW1lIGFmdGVyIGNoYW5nZSIpOwogICAgICBhc3NlcnQo
Zi5lbGVtZW50cy5maXJzdCA9PSBudWxsLCAiZm9ybSdzIGVsZW1lbnQgYXJyYXkgaGFzIHVuZXhw
ZWN0ZWQgY29udHJvbHMgYnkgbmFtZSBhZnRlciBjaGFuZ2UiKTsKICAgICAgcmV0dXJuIDU7CiAg
ICB9LAogICAgZnVuY3Rpb24gKCkgewogICAgICAvLyB0ZXN0IDcwOiBjaGFuZ2luZyBhIHBhcnNl
ZCA8aW5wdXQ+CiAgICAgIHZhciBpID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2lu
cHV0JylbMF07CiAgICAgIGFzc2VydChpLnR5cGUgPT0gJ2hpZGRlbicsICJpbnB1dCBjb250cm9s
J3MgdHlwZSBpcyB3cm9uZyIpOwogICAgICBpLm5hbWUgPSAndGVzdCc7CiAgICAgIGFzc2VydChp
LnBhcmVudE5vZGUuZWxlbWVudHMudGVzdCA9PSBpLCAiaW5wdXQgY29udHJvbCdzIGZvcm0gZGlk
bid0IHVwZGF0ZSIpOwogICAgICBpLnBhcmVudE5vZGUuYWN0aW9uID0gJ2phdmFzY3JpcHQ6JzsK
ICAgICAgdmFyIGNhbGxlZCA9IGZhbHNlOwogICAgICBpLnBhcmVudE5vZGUub25zdWJtaXQgPSBm
dW5jdGlvbiAoYXJnKSB7CiAgICAgICAgYXJnLnByZXZlbnREZWZhdWx0KCk7CiAgICAgICAgY2Fs
bGVkID0gdHJ1ZTsKICAgICAgfTsKICAgICAgaS50eXBlID0gJ3N1Ym1pdCc7CiAgICAgIGkuY2xp
Y2soKTsgLy8gc3luY2hyb25vdXNseSBkaXNwYXRjaGVzIGEgY2xpY2sgZXZlbnQgdG8gdGhlIHN1
Ym1pdCBidXR0b24sIHdoaWNoIHN1Ym1pdHMgdGhlIGZvcm0sIHdoaWNoIGNhbGxzIG9uc3VibWl0
CiAgICAgIGFzc2VydChjYWxsZWQsICJjbGljayBoYW5kbGVyIGRpZG4ndCBkaXNwYXRjaCBwcm9w
ZXJseSIpOwogICAgICBpLnR5cGUgPSAnaElkRGVOJzsKICAgICAgcmV0dXJuIDU7CiAgICB9LAog
ICAgZnVuY3Rpb24gKCkgewogICAgICAvLyB0ZXN0IDcxOiBtb3ZlZCBjaGVja2JveGVzIHNob3Vs
ZCBrZWVwIHRoZWlyIHN0YXRlCiAgICAgIHZhciBjb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVt
ZW50c0J5VGFnTmFtZSgiaWZyYW1lIilbMF07CiAgICAgIHZhciBpbnB1dDEgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCdpbnB1dCcpOwogICAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQoaW5wdXQx
KTsKICAgICAgaW5wdXQxLnR5cGUgPSAiY2hlY2tib3giOwogICAgICBpbnB1dDEuY2hlY2tlZCA9
IHRydWU7CiAgICAgIGFzc2VydChpbnB1dDEuY2hlY2tlZCwgImNoZWNrYm94IG5vdCBjaGVja2Vk
IGFmdGVyIGJlaW5nIGNoZWNrZWQgKGluc2VydGVkIGZpcnN0KSIpOwogICAgICB2YXIgaW5wdXQy
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTsKICAgICAgaW5wdXQyLnR5cGUgPSAi
Y2hlY2tib3giOwogICAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQoaW5wdXQyKTsKICAgICAgaW5w
dXQyLmNoZWNrZWQgPSB0cnVlOwogICAgICBhc3NlcnQoaW5wdXQyLmNoZWNrZWQsICJjaGVja2Jv
eCBub3QgY2hlY2tlZCBhZnRlciBiZWluZyBjaGVja2VkIChpbnNlcnRlZCBhZnRlciB0eXBlIHNl
dCkiKTsKICAgICAgdmFyIGlucHV0MyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7
CiAgICAgIGlucHV0My50eXBlID0gImNoZWNrYm94IjsKICAgICAgaW5wdXQzLmNoZWNrZWQgPSB0
cnVlOwogICAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQoaW5wdXQzKTsKICAgICAgYXNzZXJ0KGlu
cHV0My5jaGVja2VkLCAiY2hlY2tib3ggbm90IGNoZWNrZWQgYWZ0ZXIgYmVpbmcgY2hlY2tlZCAo
aW5zZXJ0ZWQgYWZ0ZXIgYmVpbmcgY2hlY2tlZCkiKTsKICAgICAgdmFyIHRhcmdldCA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpZnJhbWUiKVsxXTsKICAgICAgdGFyZ2V0LmFwcGVu
ZENoaWxkKGlucHV0MSk7CiAgICAgIHRhcmdldC5hcHBlbmRDaGlsZChpbnB1dDIpOwogICAgICB0
YXJnZXQuYXBwZW5kQ2hpbGQoaW5wdXQzKTsKICAgICAgYXNzZXJ0KGlucHV0MS5jaGVja2VkLCAi
Y2hlY2tib3ggMSBub3QgY2hlY2tlZCBhZnRlciBiZWluZyBtb3ZlZCIpOwogICAgICBhc3NlcnQo
aW5wdXQyLmNoZWNrZWQsICJjaGVja2JveCAyIG5vdCBjaGVja2VkIGFmdGVyIGJlaW5nIG1vdmVk
Iik7CiAgICAgIGFzc2VydChpbnB1dDMuY2hlY2tlZCwgImNoZWNrYm94IDMgbm90IGNoZWNrZWQg
YWZ0ZXIgYmVpbmcgbW92ZWQiKTsKICAgICAgcmV0dXJuIDU7CiAgICB9LAogICAgZnVuY3Rpb24g
KCkgewogICAgICAvLyB0ZXN0IDcyOiBjbG9uZWQgcmFkaW8gYnV0dG9ucyBzaG91bGQga2VlcCB0
aGVpciBzdGF0ZQogICAgICB2YXIgZm9ybSA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1l
KCJmb3JtIilbMF07CiAgICAgIHZhciBpbnB1dDEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdp
bnB1dCcpOwogICAgICBpbnB1dDEudHlwZSA9ICJyYWRpbyI7CiAgICAgIGlucHV0MS5uYW1lID0g
InJhZGlvR3JvdXAxIjsKICAgICAgZm9ybS5hcHBlbmRDaGlsZChpbnB1dDEpOwogICAgICB2YXIg
aW5wdXQyID0gaW5wdXQxLmNsb25lTm9kZSh0cnVlKTsKICAgICAgaW5wdXQxLnBhcmVudE5vZGUu
YXBwZW5kQ2hpbGQoaW5wdXQyKTsKICAgICAgaW5wdXQxLmNoZWNrZWQgPSB0cnVlOwogICAgICBh
c3NlcnQoZm9ybS5lbGVtZW50cy5yYWRpb0dyb3VwMSwgInJhZGlvIGdyb3VwIGFic2VudCIpOwog
ICAgICBhc3NlcnQoaW5wdXQxLmNoZWNrZWQsICJmaXJzdCByYWRpbyBidXR0b24gbm90IGNoZWNr
ZWQiKTsKICAgICAgYXNzZXJ0KCFpbnB1dDIuY2hlY2tlZCwgInNlY29uZCByYWRpbyBidXR0b24g
Y2hlY2tlZCIpOwogICAgICBpbnB1dDIuY2hlY2tlZCA9IHRydWU7CiAgICAgIGFzc2VydCghaW5w
dXQxLmNoZWNrZWQsICJmaXJzdCByYWRpbyBidXR0b24gY2hlY2tlZCIpOwogICAgICBhc3NlcnQo
aW5wdXQyLmNoZWNrZWQsICJzZWNvbmQgcmFkaW8gYnV0dG9uIG5vdCBjaGVja2VkIik7CiAgICAg
IHZhciBpbnB1dDMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpOwogICAgICBpbnB1
dDMudHlwZSA9ICJyYWRpbyI7CiAgICAgIGlucHV0My5uYW1lID0gInJhZGlvR3JvdXAyIjsKICAg
ICAgZm9ybS5hcHBlbmRDaGlsZChpbnB1dDMpOwogICAgICBhc3NlcnQoIWlucHV0My5jaGVja2Vk
LCAidGhpcmQgcmFkaW8gYnV0dG9uIGNoZWNrZWQiKTsKICAgICAgaW5wdXQzLmNoZWNrZWQgPSB0
cnVlOwogICAgICBhc3NlcnQoIWlucHV0MS5jaGVja2VkLCAiZmlyc3QgcmFkaW8gYnV0dG9uIG5l
d2x5IGNoZWNrZWQiKTsKICAgICAgYXNzZXJ0KGlucHV0Mi5jaGVja2VkLCAic2Vjb25kIHJhZGlv
IGJ1dHRvbiBuZXdseSBub3QgY2hlY2tlZCIpOwogICAgICBhc3NlcnQoaW5wdXQzLmNoZWNrZWQs
ICJ0aGlyZCByYWRpbyBidXR0b24gbm90IGNoZWNrZWQiKTsKICAgICAgaW5wdXQxLmNoZWNrZWQg
PSB0cnVlOwogICAgICBhc3NlcnQoaW5wdXQxLmNoZWNrZWQsICJmaXJzdCByYWRpbyBidXR0b24g
ZW5kZWQgdXAgbm90IGNoZWNrZWQiKTsKICAgICAgYXNzZXJ0KCFpbnB1dDIuY2hlY2tlZCwgInNl
Y29uZCByYWRpbyBidXR0b24gZW5kZWQgdXAgY2hlY2tlZCIpOwogICAgICBhc3NlcnQoaW5wdXQz
LmNoZWNrZWQsICJ0aGlyZCByYWRpbyBidXR0b24gZW5kZWQgdXAgbm90IGNoZWNrZWQiKTsKICAg
ICAgaW5wdXQxLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoaW5wdXQxKTsKICAgICAgaW5wdXQyLnBh
cmVudE5vZGUucmVtb3ZlQ2hpbGQoaW5wdXQyKTsKICAgICAgaW5wdXQzLnBhcmVudE5vZGUucmVt
b3ZlQ2hpbGQoaW5wdXQzKTsKICAgICAgcmV0dXJuIDU7CiAgICB9LAogICAgZnVuY3Rpb24gKCkg
ewogICAgICAvLyB0ZXN0IDczOiBIVE1MU2VsZWN0RWxlbWVudC5hZGQoKQogICAgICB2YXIgcyA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NlbGVjdCcpOwogICAgICB2YXIgbyA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoJ29wdGlvbicpOwogICAgICBzLmFkZChvLCBudWxsKTsKICAgICAgYXNz
ZXJ0KHMuZmlyc3RDaGlsZCA9PT0gbywgImFkZCgpIGRpZG4ndCBhZGQgdG8gZmlyc3RDaGlsZCIp
OwogICAgICBhc3NlcnQocy5jaGlsZE5vZGVzLmxlbmd0aCA9PSAxLCAiYWRkKCkgZGlkbid0IGFk
ZCB0byBjaGlsZE5vZGVzIik7CiAgICAgIGFzc2VydChzLmNoaWxkTm9kZXNbMF0gPT09IG8sICJh
ZGQoKSBkaWRuJ3QgYWRkIHRvIGNoaWxkTm9kZXMgY29ycmVjdGx5Iik7CiAgICAgIGFzc2VydChz
Lm9wdGlvbnMubGVuZ3RoID09IDEsICJhZGQoKSBkaWRuJ3QgYWRkIHRvIG9wdGlvbnMiKTsKICAg
ICAgYXNzZXJ0KHMub3B0aW9uc1swXSA9PT0gbywgImFkZCgpIGRpZG4ndCBhZGQgdG8gb3B0aW9u
cyBjb3JyZWN0bHkiKTsKICAgICAgcmV0dXJuIDU7CiAgICB9LAogICAgZnVuY3Rpb24gKCkgewog
ICAgICAvLyB0ZXN0IDc0OiBIVE1MT3B0aW9uRWxlbWVudC5kZWZhdWx0U2VsZWN0ZWQKICAgICAg
dmFyIHMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzZWxlY3QnKTsKICAgICAgdmFyIG8xID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnb3B0aW9uJyk7CiAgICAgIHZhciBvMiA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoJ29wdGlvbicpOwogICAgICBvMi5kZWZhdWx0U2VsZWN0ZWQgPSB0cnVl
OwogICAgICB2YXIgbzMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdvcHRpb24nKTsKICAgICAg
cy5hcHBlbmRDaGlsZChvMSk7CiAgICAgIHMuYXBwZW5kQ2hpbGQobzIpOwogICAgICBzLmFwcGVu
ZENoaWxkKG8zKTsKICAgICAgYXNzZXJ0KHMub3B0aW9uc1tzLnNlbGVjdGVkSW5kZXhdID09PSBv
MiwgImRlZmF1bHRTZWxlY3RlZCBkaWRuJ3QgdGFrZSIpOwogICAgICByZXR1cm4gNTsKICAgIH0s
CiAgICBmdW5jdGlvbiAoKSB7CiAgICAgIHJldHVybiA1OwogICAgfSwKICAgIGZ1bmN0aW9uICgp
IHsKICAgICAgcmV0dXJuIDU7CiAgICB9LAogICAgZnVuY3Rpb24gKCkgewogICAgICByZXR1cm4g
NTsKICAgIH0sCiAgICBmdW5jdGlvbiAoKSB7CiAgICAgIHJldHVybiA1OwogICAgfSwKICAgIGZ1
bmN0aW9uICgpIHsKICAgICAgcmV0dXJuIDU7CiAgICB9LAogICAgZnVuY3Rpb24gKCkgewogICAg
ICByZXR1cm4gNTsKICAgIH0sCgogICAgLy8gYnVja2V0IDY6IEphdmFTY3JpcHQKICAgIGZ1bmN0
aW9uICgpIHsKICAgICAgLy8gdGVzdCA4MTogbGVuZ3RoIG9mIGFycmF5cyB3aXRoIHRyYWlsaW5n
IGNvbW1hcyAoKQogICAgICB2YXIgdDEgPSBbLF07CiAgICAgIHZhciB0MiA9IFssLF07CiAgICAg
IGFzc2VydCh0MS5sZW5ndGggPT0gMSwgIlssXSBkb2Vzbid0IGhhdmUgbGVuZ3RoIDEiKTsKICAg
ICAgYXNzZXJ0KHQyLmxlbmd0aCA9PSAyLCAiWywsXSBkb3NuJ3QgaGF2ZSBsZW5ndGggMiIpOwog
ICAgICByZXR1cm4gNjsKICAgIH0sCiAgICBmdW5jdGlvbiAoKSB7CiAgICAgIC8vIHRlc3QgODI6
IHRvRml4ZWQoKSBhbmQgdG9FeHBvbmVudGlhbCgpIGJ1Z3MKICAgICAgYXNzZXJ0KCgwLjApLnRv
Rml4ZWQoNCkgPT0gIjAuMDAwMCIsICJ0b0ZpeGVkKDQpIHdyb25nIGZvciAwIik7CiAgICAgIGFz
c2VydCgoLTAuMCkudG9GaXhlZCg0KSA9PSAiMC4wMDAwIiwgInRvRml4ZWQoNCkgd3JvbmcgZm9y
IC0wIik7CiAgICAgIGFzc2VydCgoMC4wMDAwNikudG9GaXhlZCg0KSA9PSAiMC4wMDAxIiwgInRv
Rml4ZWQoNCkgd3JvbmcgZm9yIDAuMDAwMDYiKTsKICAgICAgYXNzZXJ0KCgtMC4wMDAwNikudG9G
aXhlZCg0KSA9PSAiLTAuMDAwMSIsICJ0b0ZpeGQoNCkgd3JvbmcgZm9yIC0wLjAwMDA2Iik7CiAg
ICAgIGFzc2VydCgoMC4wKS50b0V4cG9uZW50aWFsKDQpID09ICIwLjAwMDBlKzAiLCAidG9FeHBv
bmVudGlhbCg0KSB3cm9uZyBmb3IgMCIpOwogICAgICBhc3NlcnQoKC0wLjApLnRvRXhwb25lbnRp
YWwoNCkgPT0gIjAuMDAwMGUrMCIsICJ0b0V4cG9uZW50aWFsKDQpIHdyb25nIGZvciAtMCIpOwog
ICAgICByZXR1cm4gNjsKICAgIH0sCiAgICBmdW5jdGlvbiAoKSB7CiAgICAgIC8vIHRlc3QgODM6
IHN1YnN0cigpIGFuZCBuZWdhdGl2ZSBudW1iZXJzCiAgICAgIGFzc2VydCgic2NhdGhpbmciLnN1
YnN0cigtNywgMykgPT0gImNhdCIsICJzdWJzdHIoKSB3cm9uZyB3aXRoIG5lZ2F0aXZlIG51bWJl
cnMiKTsKICAgICAgcmV0dXJuIDY7CiAgICB9LAogICAgZnVuY3Rpb24gKCkgewogICAgICAvLyB0
ZXN0IDg0OiB2ZXJpZnkgdGhhdCByZXNlcnZlZCB3b3JkcyBjYW4ndCBiZSB1c2VkIGFzIGlkZW50
aWZpZXJzCiAgICAgIC8vIChmdXR1cmUgcmVzZXJ2ZWQgd29yZHMgYXJlbid0IHRlc3RlZCkKICAg
ICAgdmFyIHJlc2VydmVkV29yZHMgPSBbLyonYWJzdHJhY3QnLCAnZW51bScsICdpbnQnLCAnc2hv
cnQnLAogICAgICAgICAnYm9vbGVhbicsICdleHBvcnQnLCAnaW50ZXJmYWNlJywgJ3N0YXRpYycs
ICdieXRlJywKICAgICAgICAgJ2V4dGVuZHMnLCAnbG9uZycsICdzdXBlcicsICdjaGFyJywgJ2Zp
bmFsJywgJ25hdGl2ZScsCiAgICAgICAgICdzeW5jaHJvbml6ZWQnLCAnY2xhc3MnLCAnZmxvYXQn
LCAncGFja2FnZScsICd0aHJvd3MnLAogICAgICAgICAnY29uc3QnLCAnZ290bycsICdwcml2YXRl
JywgJ3RyYW5zaWVudCcsICdkZWJ1Z2dlcicsCiAgICAgICAgICdpbXBsZW1lbnRzJywgJ3Byb3Rl
Y3RlZCcsICd2b2xhdGlsZScsICdkb3VibGUnLCAnaW1wb3J0JywKICAgICAgICAgJ3B1YmxpYycs
Ki8gJ2JyZWFrJywgJ2Vsc2UnLCAnbmV3JywgJ3ZhcicsICdjYXNlJywgJ2ZpbmFsbHknLAogICAg
ICAgICAncmV0dXJuJywgJ3ZvaWQnLCAnY2F0Y2gnLCAnZm9yJywgJ3N3aXRjaCcsICd3aGlsZScs
CiAgICAgICAgICdjb250aW51ZScsICdmdW5jdGlvbicsICd0aGlzJywgJ3dpdGgnLCAnZGVmYXVs
dCcsICdpZicsCiAgICAgICAgICd0aHJvdycsICdkZWxldGUnLCAnaW4nLCAndHJ5JywgJ2RvJywg
J2luc3RhbmNlb2YnLCAndHlwZW9mJywKICAgICAgICAgJ251bGwnLCAndHJ1ZScsICdmYWxzZSdd
OwogICAgICB2YXIgb2sgPSB0cnVlOwogICAgICBmb3IgKHZhciBpIGluIHJlc2VydmVkV29yZHMp
IHsKICAgICAgICB0cnkgewogICAgICAgICAgZXZhbCgidmFyICIgKyByZXNlcnZlZFdvcmRzW2ld
KTsKICAgICAgICAgIG9rID0gZmFsc2U7CiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgIH0K
ICAgICAgICBhc3NlcnQob2ssIHJlc2VydmVkV29yZHNbaV0gKyAiIHVzZWQgYXMgaWRlbnRpZmll
ciBpbiB2YXIgZGVjbGFyYXRpb24iKTsKICAgICAgICB0cnkgewogICAgICAgICAgdmFyIHRlc3Qg
PSB7fTsKICAgICAgICAgIHRlc3RbcmVzZXJ2ZWRXb3Jkc1tpXV0gPSBpOwogICAgICAgICAgZXZh
bCgidGVzdC4iICsgcmVzZXJ2ZWRXb3Jkc1tpXSk7CiAgICAgICAgICBvayA9IGZhbHNlOwogICAg
ICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICB9CiAgICAgICAgYXNzZXJ0KG9rLCByZXNlcnZlZFdv
cmRzW2ldICsgIiB1c2VkIGFzIGlkZW50aWZpZXIgaW4gbWVtYmVyIGV4cHJlc3Npb24iKTsKICAg
ICAgfQogICAgICByZXR1cm4gNjsKICAgIH0sCiAgICBmdW5jdGlvbiAoKSB7CiAgICAgIC8vIHRl
c3QgODU6IEVTMyBzZWN0aW9uIDcuNjozICh1bmljb2RlIGVzY2FwZXMgY2FuJ3QgYmUgdXNlZCB0
byBwdXQgbm9uLWlkZW50aWZpZXIgY2hhcmFjdGVycyBpbnRvIGlkZW50aWZpZXJzKQogICAgICAv
LyBhbmQgdGhlcmUncyBubyBvdGhlciBwbGFjZSBmb3IgdGhlbSBpbiB0aGUgc3ludGF4IChvdGhl
ciB0aGFuIHN0cmluZ3MsIG9mIGNvdXJzZSkKICAgICAgdmFyIG9rID0gZmFsc2U7CiAgICAgIHRy
eSB7CiAgICAgICAgZXZhbCgidmFyIHRlc3QgPSB7IH07XG50ZXN0Lmk9IDA7XG50ZXN0LmlcXHUw
MDJiPSAxO1xudGVzdC5pO1xuIik7CiAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICBvayA9IHRy
dWU7CiAgICAgIH0KICAgICAgYXNzZXJ0KG9rLCAiXFx1MDAyYiB3YXMgbm90IGNvbnNpZGVyZWQg
YSBwYXJzZSBlcnJvciBpbiBzY3JpcHQiKTsKICAgICAgcmV0dXJuIDY7CiAgICB9LAogICAgZnVu
Y3Rpb24gKCkgewogICAgICAvLyB0ZXN0IDg2OiBSZWd1bGFyIEV4cHJlc3Npb25zCiAgICAgIHZh
ciBvayA9IHRydWU7CiAgICAgIHRyeSB7CiAgICAgICAgZXZhbCgiL1RBW10pXS8uZXhlYygnVEFd
JykiKTsKICAgICAgICAvLyBKUyByZWdleHBzIGFyZW4ndCBsaWtlIFBlcmwgcmVnZXhwcywgaWYg
dGhlaXIgY2hhcmFjdGVyCiAgICAgICAgLy8gY2xhc3NlcyBzdGFydCB3aXRoIGEgXSB0aGF0IG1l
YW5zIHRoZXkncmUgZW1wdHkuIFNvIHRoaXMKICAgICAgICAvLyBpcyBhIHN5bnRheCBlcnJvcjsg
aWYgd2UgZ2V0IGhlcmUgaXQncyBhIGJ1Zy4KICAgICAgICBvayA9IGZhbHNlOwogICAgICB9IGNh
dGNoIChlKSB7IH0KICAgICAgYXNzZXJ0KG9rLCAib3JwaGFuZWQgYnJhY2tldCBub3QgY29uc2lk
ZXJlZCBwYXJzZSBlcnJvciBpbiByZWd1bGFyIGV4cHJlc3Npb24gbGl0ZXJhbCIpOwogICAgICB0
cnkgewogICAgICAgIGlmIChldmFsKCIvW10vLmV4ZWMoJycpIikpCiAgICAgICAgICBvayA9IGZh
bHNlOwogICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgb2sgPSBmYWxzZTsKICAgICAgfQogICAg
ICBhc3NlcnQob2ssICIvW10vIGVpdGhlciBmYWlsZWQgdG8gcGFyc2Ugb3IgbWF0Y2hlZCBzb21l
dGhpbmciKTsKICAgICAgdmFyIHggPSAvKFwzKShcMSkoYSkvLmV4ZWMoJ2NhdCcpOyAvLyB0aGUg
XDMgbWF0Y2hlcyB0aGUgZW1wdHkgc3RyaW5nLCBxdi4gRVMzOjE1LjEwLjIuOQogICAgICBhc3Nl
cnQoeCwgIi8oXFwzKShcXDEpKGEpLyBmYWlsZWQgdG8gbWF0Y2ggJ2NhdCciKTsKICAgICAgYXNz
ZXJ0KHgubGVuZ3RoID09IDQsICIvKFxcMykoXFwxKShhKS8gZmFpbGVkIHRvIHJldHVybiBmb3Vy
IGNvbXBvbmVudHMiKTsKICAgICAgYXNzZXJ0KHhbMF0gPT0gImEiLCAiLyhcXDMpKFxcMSkoYSkv
IGZhaWxlZCB0byBmaW5kICdhJyBpbiAnY2F0JyIpOwogICAgICBhc3NlcnQoeFsxXSA9PSAiIiwg
Ii8oXFwzKShcXDEpKGEpLyBmYWlsZWQgdG8gZmluZCAnJyBpbiAnY2F0JyBhcyBmaXJzdCBwYXJ0
Iik7CiAgICAgIGFzc2VydCh4WzJdID09ICIiLCAiLyhcXDMpKFxcMSkoYSkvIGZhaWxlZCB0byBm
aW5kICcnIGluICdjYXQnIGFzIHNlY29uZCBwYXJ0Iik7CiAgICAgIGFzc2VydCh4WzNdID09ICJh
IiwgIi8oXFwzKShcXDEpKGEpLyBmYWlsZWQgdG8gZmluZCAnYScgaW4gJ2NhdCcgYXMgdGhpcmQg
cGFydCIpOwogICAgICB0cnkgewogICAgICAgIGV2YWwoIi8oMSkoMikoMylcNig0KSg1KS8iKTsK
ICAgICAgICBvayA9IGZhbHNlOwogICAgICB9IGNhdGNoIChlKSB7IH0KICAgICAgYXNzZXJ0KG9r
LCAic2hvdWxkIGhhdmUgcmFpc2VkIHN5bnRheCBlcnJvciBmb3IgYSBiYWNrcmVmZXJlbmNlIHRv
IGEgbm9uLWV4aXN0ZW50IGNhcHR1cmUiKTsKICAgICAgdHJ5IHsKICAgICAgICBldmFsKCIvKDEp
XDAoMikvIik7CiAgICAgICAgb2sgPSBmYWxzZTsKICAgICAgfSBjYXRjaCAoZSkgeyB9CiAgICAg
IGFzc2VydChvaywgInNob3VsZCBoYXZlIHJhaXNlZCBzeW50YXggZXJyb3IgZm9yIGEgYmFja3Jl
ZmVyZW5jZSB0byB0aGUgemVyb3RoIGNhcHR1cmUiKTsKICAgICAgcmV0dXJuIDY7CiAgICB9LAog
ICAgZnVuY3Rpb24gKCkgewogICAgICAvLyB0ZXN0IDg3OiBpbnRlcm5hbCBwcm9wZXJ0aWVzIG9m
IEZ1bmN0aW9uIG9iamVjdHMKICAgICAgLy8gY29uc3RydWN0b3IgaXMgbm90IFJlYWRPbmx5CiAg
ICAgIHZhciBmMSA9IGZ1bmN0aW9uICgpIHsgMSB9OwogICAgICBmMS5wcm90b3R5cGUuY29uc3Ry
dWN0b3IgPSAiaGVsbG8gd29ybGQiOwogICAgICB2YXIgZjFpID0gbmV3IGYxKCk7CiAgICAgIGFz
c2VydChmMWkuY29uc3RydWN0b3IgPT09ICJoZWxsbyB3b3JsZCIsICJGdW5jdGlvbiBvYmplY3Qn
cyBwcm90b3R5cGUncyBjb25zdHJ1Y3RvciB3YXMgUmVhZE9ubHkiKTsKICAgICAgLy8gY29uc3Ry
dWN0b3IgaXMgRG9udEVudW0gKGluZGVlZCwgbm8gcHJvcGVydGllcyBhdCBhbGwgb24gYSBuZXcg
RnVuY3Rpb24gb2JqZWN0KQogICAgICB2YXIgZjIgPSBmdW5jdGlvbiAoKSB7IDIgfTsKICAgICAg
dmFyIGYyaSA9IG5ldyBmMigpOwogICAgICB2YXIgY291bnQgPSAwOwogICAgICBmb3IgKHZhciBw
cm9wZXJ0eSBpbiBmMmkpIHsKICAgICAgICBhc3NlcnQocHJvcGVydHkgIT0gImNvbnN0cnVjdG9y
IiwgIkZ1bmN0aW9uIG9iamVjdCdzIHByb3RvdHlwZSdzIGNvbnN0cnVjdG9yIHdhcyBub3QgRG9u
dEVudW0iKTsKICAgICAgICBjb3VudCArPSAxOwogICAgICB9CiAgICAgIGFzc2VydChjb3VudCA9
PSAwLCAiRnVuY3Rpb24gb2JqZWN0IGhhZCB1bmV4cGVjdGVkIHByb3BlcnRpZXMiKTsKICAgICAg
Ly8gY29uc3RydWN0b3IgaXMgbm90IERvbnREZWxldGUKICAgICAgdmFyIGYzID0gZnVuY3Rpb24g
KGEsIGIpIHsgMyB9OwogICAgICBkZWxldGUgZjMucHJvdG90eXBlLmNvbnN0cnVjdG9yOwogICAg
ICB2YXIgZjNpID0gbmV3IGYzKCk7CiAgICAgIGFzc2VydCghZjNpLmNvbnN0cnVjdG9yLCAiRnVu
Y3Rpb24gb2JqZWN0J3MgcHJvdG90eXBlJ3MgY29uc3RydWN0b3Igd2FzIERvbnREZWxldGUgKG9y
IGdvdCBtYWdpY2FsbHkgcmVwbGFjZWQpIik7CiAgICAgIHJldHVybiA2OwogICAgfSwKICAgIGZ1
bmN0aW9uICgpIHsKICAgICAgLy8gdGVzdCA4ODogZW5jb2RlVVJJKCkgYW5kIGVuY29kZVVSSUNv
bXBvbmVudCgpIGFuZCBudWxsIGJ5dGVzCiAgICAgIGFzc2VydChlbmNvZGVVUklDb21wb25lbnQo
U3RyaW5nLmZyb21DaGFyQ29kZSgwKSkgPT0gJyUwMCcsICJlbmNvZGVVUklDb21wb25lbnQgZmFp
bGVkIHRvIGVuY29kZSBVKzAwMDAiKTsKICAgICAgYXNzZXJ0KGVuY29kZVVSSShTdHJpbmcuZnJv
bUNoYXJDb2RlKDApKSA9PSAnJTAwJywgImVuY29kZVVSSSBmYWlsZWQgdG8gZW5jb2RlIFUrMDAw
MCIpOwogICAgICByZXR1cm4gNjsKICAgIH0sCiAgICBmdW5jdGlvbiAoKSB7CiAgICAgIC8vIHRl
c3QgODk6IGNoZWNrIHRoYXQgcHJvcGVydGllcyBhcmUgZW51bWVyYWJsZSBieSBkZWZhdWx0CiAg
ICAgIHZhciB0ZXN0ID0gewogICAgICAgIGNvbnN0cnVjdG9yOiBmdW5jdGlvbigpIHsgcmV0dXJu
IDE7IH0sCiAgICAgICAgdG9TdHJpbmc6IGZ1bmN0aW9uKCkgeyByZXR1cm4gMjsgfSwKICAgICAg
ICB0b0xvY2FsZVN0cmluZzogZnVuY3Rpb24oKSB7IHJldHVybiAzOyB9LAogICAgICAgIHZhbHVl
T2Y6IGZ1bmN0aW9uKCkgeyByZXR1cm4gNDsgfSwKICAgICAgICBoYXNPd25Qcm9wZXJ0eTogZnVu
Y3Rpb24oKSB7IHJldHVybiA1OyB9LAogICAgICAgIGlzUHJvdG90eXBlT2Y6IGZ1bmN0aW9uKCkg
eyByZXR1cm4gNjsgfSwKICAgICAgICBwcm9wZXJ0eUlzRW51bWVyYWJsZTogZnVuY3Rpb24oKSB7
IHJldHVybiA3OyB9LAogICAgICAgIHByb3RvdHlwZTogZnVuY3Rpb24oKSB7IHJldHVybiA4OyB9
LAogICAgICAgIGxlbmd0aDogZnVuY3Rpb24oKSB7IHJldHVybiA5OyB9LAogICAgICAgIHVuaXF1
ZTogZnVuY3Rpb24oKSB7IHJldHVybiAxMDsgfQogICAgICB9OwogICAgICB2YXIgcmVzdWx0cyA9
IFtdOwogICAgICBmb3IgKHZhciBwcm9wZXJ0eSBpbiB0ZXN0KQogICAgICAgIHJlc3VsdHMucHVz
aChbdGVzdFtwcm9wZXJ0eV0oKSwgcHJvcGVydHldKTsKICAgICAgcmVzdWx0cy5zb3J0KGZ1bmN0
aW9uKGEsIGIpIHsKICAgICAgICBpZiAoYVswXSA8IGJbMF0pIHJldHVybiAtMTsKICAgICAgICBp
ZiAoYVswXSA+IGJbMF0pIHJldHVybiAxOwogICAgICAgIHJldHVybiAwOwogICAgICB9KTsKICAg
ICAgYXNzZXJ0KHJlc3VsdHMubGVuZ3RoID09IDEwLCAibWlzc2luZyBwcm9wZXJ0aWVzIik7CiAg
ICAgIGZvciAodmFyIGluZGV4ID0gMDsgaW5kZXggPCAxMDsgaW5kZXggKz0gMSkKICAgICAgICBh
c3NlcnQocmVzdWx0c1tpbmRleF1bMF0gPT0gaW5kZXgrMSwgIm9yZGVyIHdyb25nIGF0IHJlc3Vs
dHNbIitpbmRleCsiXSA9PSAiKTsKICAgICAgdmFyIGluZGV4ID0gMDsKICAgICAgYXNzZXJ0KHJl
c3VsdHNbaW5kZXgrK11bMV0gPT0gImNvbnN0cnVjdG9yIiwgImZhaWxlZCB0byBmaW5kIGNvbnN0
cnVjdG9yIGluIGV4cGVjdGVkIHBvc2l0aW9uIik7CiAgICAgIGFzc2VydChyZXN1bHRzW2luZGV4
KytdWzFdID09ICJ0b1N0cmluZyIsICJmYWlsZWQgdG8gZmluZCB0b1N0cmluZyBpbiBleHBlY3Rl
ZCBwb3NpdGlvbiIpOwogICAgICBhc3NlcnQocmVzdWx0c1tpbmRleCsrXVsxXSA9PSAidG9Mb2Nh
bGVTdHJpbmciLCAiZmFpbGVkIHRvIGZpbmQgdG9Mb2NhbGVTdHJpbmcgaW4gZXhwZWN0ZWQgcG9z
aXRpb24iKTsKICAgICAgYXNzZXJ0KHJlc3VsdHNbaW5kZXgrK11bMV0gPT0gInZhbHVlT2YiLCAi
ZmFpbGVkIHRvIGZpbmQgdmFsdWVPZiBpbiBleHBlY3RlZCBwb3NpdGlvbiIpOwogICAgICBhc3Nl
cnQocmVzdWx0c1tpbmRleCsrXVsxXSA9PSAiaGFzT3duUHJvcGVydHkiLCAiZmFpbGVkIHRvIGZp
bmQgaGFzT3duUHJvcGVydHkgaW4gZXhwZWN0ZWQgcG9zaXRpb24iKTsKICAgICAgYXNzZXJ0KHJl
c3VsdHNbaW5kZXgrK11bMV0gPT0gImlzUHJvdG90eXBlT2YiLCAiZmFpbGVkIHRvIGZpbmQgaXNQ
cm90b3R5cGVPZiBpbiBleHBlY3RlZCBwb3NpdGlvbiIpOwogICAgICBhc3NlcnQocmVzdWx0c1tp
bmRleCsrXVsxXSA9PSAicHJvcGVydHlJc0VudW1lcmFibGUiLCAiZmFpbGVkIHRvIGZpbmQgcHJv
cGVydHlJc0VudW1lcmFibGUgaW4gZXhwZWN0ZWQgcG9zaXRpb24iKTsKICAgICAgYXNzZXJ0KHJl
c3VsdHNbaW5kZXgrK11bMV0gPT0gInByb3RvdHlwZSIsICJmYWlsZWQgdG8gZmluZCBwcm90b3R5
cGUgaW4gZXhwZWN0ZWQgcG9zaXRpb24iKTsKICAgICAgYXNzZXJ0KHJlc3VsdHNbaW5kZXgrK11b
MV0gPT0gImxlbmd0aCIsICJmYWlsZWQgdG8gZmluZCBsZW5ndGggaW4gZXhwZWN0ZWQgcG9zaXRp
b24iKTsKICAgICAgYXNzZXJ0KHJlc3VsdHNbaW5kZXgrK11bMV0gPT0gInVuaXF1ZSIsICJmYWls
ZWQgdG8gZmluZCB1bmlxdWUgaW4gZXhwZWN0ZWQgcG9zaXRpb24iKTsKICAgICAgcmV0dXJuIDY7
CiAgICB9LAogICAgZnVuY3Rpb24gKCkgewogICAgICAvLyB0ZXN0IDkwOiBhIERhdGUgb2JqZWN0
J3MgbWV0aG9kIGNhbGxlZCB3aXRoIG5vIGFyZ3VtZW50cwogICAgICB2YXIgZCA9IG5ldyBEYXRl
KCk7CiAgICAgIGFzc2VydChpc05hTihkLnNldE1pbGxpc2Vjb25kcygpKSwgImNhbGxpbmcgc2V0
TWlsbGlzZWNvbmRzKCkgd2l0aCBubyBhcmd1bWVudHMgZGlkbid0IHJlc3VsdCBpbiBOYU4iKTsK
ICAgICAgYXNzZXJ0KGlzTmFOKGQpLCAiZGF0ZSB3YXNuJ3QgbWFkZSBOYU4iKTsKICAgICAgYXNz
ZXJ0KGlzTmFOKGQuZ2V0RGF5KCkpLCAiZGF0ZSB3YXNuJ3QgbWFkZSBOYU4iKTsKICAgICAgcmV0
dXJuIDY7CiAgICB9LAogICAgZnVuY3Rpb24gKCkgewogICAgICAvLyB0ZXN0IDkxOiBEYXRlIGFu
ZCB5ZWFycyBhbmQgc3VidHJhY3RpbmcgLTE5MDA/CiAgICAgIHZhciBkMSA9IG5ldyBEYXRlKERh
dGUuVVRDKDk5LjksIDYpKTsKICAgICAgYXNzZXJ0KGQxLmdldFVUQ0Z1bGxZZWFyKCkgPT0gMTk5
OSwgIkRhdGUuVVRDKCkgZGlkbid0IGRvIHByb3BlciAxOTAwIHllYXIgb2Zmc2V0dGluZyIpOwog
ICAgICB2YXIgZDIgPSBuZXcgRGF0ZSg5OC45LCA2KTsKICAgICAgYXNzZXJ0KGQyLmdldEZ1bGxZ
ZWFyKCkgPT0gMTk5OCwgIm5ldyBEYXRlKCkgZGlkbid0IGRvIHByb3BlciAxOTAwIHllYXIgb2Zm
c2V0dGluZyIpOwogICAgICByZXR1cm4gNjsKICAgIH0sCiAgICBmdW5jdGlvbiAoKSB7CiAgICAg
IHJldHVybiA2OwogICAgfSwKICAgIGZ1bmN0aW9uICgpIHsKICAgICAgcmV0dXJuIDY7CiAgICB9
LAogICAgZnVuY3Rpb24gKCkgewogICAgICByZXR1cm4gNjsKICAgIH0sCiAgICBmdW5jdGlvbiAo
KSB7CiAgICAgIHJldHVybiA2OwogICAgfSwKICAgIGZ1bmN0aW9uICgpIHsKICAgICAgcmV0dXJu
IDY7CiAgICB9LAoKICAgIC8vIFhIVE1MCiAgICBmdW5jdGlvbiAoKSB7CiAgICAgIC8vIHRlc3Qg
OTc6IFhIVE1MIGFuZCB0aGUgRE9NCiAgICAgIC8vIChzcGVjaWFsIHRlc3QpCiAgICAgIHZhciBk
b2N0eXBlID0gZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlRG9jdW1lbnRUeXBlKCJodG1s
IiwgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIiwgImh0dHA6Ly93d3cudzMub3Jn
L1RSL3hodG1sMS9EVEQveGh0bWwxLXN0cmljdC5kdGQiKTsKICAgICAgdmFyIGRvYyA9IGRvY3Vt
ZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZURvY3VtZW50KCJodHRwOi8vd3d3LnczLm9yZy8xOTk5
L3hodG1sIiwgImh0bWwiLCBkb2N0eXBlKTsKICAgICAgZG9jLmRvY3VtZW50RWxlbWVudC5hcHBl
bmRDaGlsZChkb2MuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1s
IiwgImhlYWQiKSk7CiAgICAgIGRvYy5kb2N1bWVudEVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jLmNy
ZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIsICJib2R5IikpOwog
ICAgICB2YXIgdCA9IGRvYy5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzE5OTkv
eGh0bWwiLCAidGl0bGUiKTsKICAgICAgZG9jLmRvY3VtZW50RWxlbWVudC5maXJzdENoaWxkLmFw
cGVuZENoaWxkKHQpOwogICAgICAvLyBvayB3ZSBoYXZlIGEgY29uZm9ybWluZyBYSFRNTDEgZG9j
IGluIHxkb2N8IG5vdy4KICAgICAgYXNzZXJ0KGRvYy50aXRsZSA9PSAiIiwgImRvY3VtZW50IGhh
ZCB1bmV4cGVjdGVkIHRpdGxlIik7CiAgICAgIHQudGV4dENvbnRlbnQgPSAiU3BhcnJvdyI7CiAg
ICAgIGFzc2VydChkb2MudGl0bGUgPT0gIlNwYXJyb3ciLCAiZG9jdW1lbnQudGl0bGUgZGlkIG5v
dCB1cGRhdGUgZHluYW1pY2FsbHkiKTsKICAgICAgZG9jLmJvZHkuYXBwZW5kQ2hpbGQoZG9jLmNy
ZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIsICJmb3JtIikpOwog
ICAgICBhc3NlcnQoZG9jLmZvcm1zLmxlbmd0aCA9PSAxLCAiZG9jdW1lbnQuZm9ybXMgbm90IHVw
ZGF0ZWQgYWZ0ZXIgaW5zZXJ0aW5nIGEgZm9ybSIpOwogICAgICByZXR1cm4gNzsKICAgIH0sCiAg
ICBmdW5jdGlvbiAoKSB7CiAgICAgIHJldHVybiA3OwogICAgfSwKICAgIGZ1bmN0aW9uICgpIHsK
ICAgICAgcmV0dXJuIDc7CiAgICB9LAoKICBdOwogIHZhciBsb2cgPSAnJzsKICB2YXIgZGVsYXkg
PSAxMDsKICB2YXIgc2NvcmUgPSAwLCBpbmRleCA9IDA7CiAgZnVuY3Rpb24gdXBkYXRlKCkgewog
ICAgdmFyIHNwYW4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2NvcmUnKTsKICAgIGlmIChp
bmRleCA8IHRlc3RzLmxlbmd0aCkgewogICAgICB0cnkgewogICAgICAgIHZhciBidWNrZXQgPSB0
ZXN0c1tpbmRleF0oKTsKICAgICAgICBpZiAoYnVja2V0KSB7CiAgICAgICAgICB2YXIgYnVja2V0
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2J1Y2tldCcgKyBidWNrZXQpOwogICAgICAgICAg
aWYgKGJ1Y2tldCkKICAgICAgICAgICAgYnVja2V0LmNsYXNzTmFtZSArPSAnUCc7CiAgICAgICAg
ICBzY29yZSArPSAxOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBsb2cgKz0gIlRlc3QgIiAr
IGluZGV4ICsgIjogRkFJTCAobm8gZGV0YWlscylcbiI7CiAgICAgICAgfQogICAgICB9IGNhdGNo
IChlKSB7CiAgICAgICAgdmFyIHMgPSBlLm1lc3NhZ2UucmVwbGFjZSgvXHMrJC8sICIiKTsKICAg
ICAgICBsb2cgKz0gIlRlc3QgIiArIGluZGV4ICsgIjogRkFJTCAoIiArIHMgKyAiKVxuIjsKICAg
ICAgfTsKICAgICAgaW5kZXggKz0gMTsKICAgICAgc3Bhbi50ZXh0Q29udGVudCA9IChzY29yZSAq
IDEwMC90ZXN0cy5sZW5ndGgpLnRvRml4ZWQoMCk7CiAgICAgIHNldFRpbWVvdXQodXBkYXRlLCBk
ZWxheSk7CiAgICB9IGVsc2UgewogICAgICBpZiAoc2NvcmUgPT0gdGVzdHMubGVuZ3RoKQogICAg
ICAgIHNwYW4ubmV4dFNpYmxpbmcubmV4dFNpYmxpbmcucmVtb3ZlQXR0cmlidXRlKCdjbGFzcycp
OwogICAgICB2YXIgZW5kVGltZSA9IG5ldyBEYXRlKCk7CiAgICAgIHZhciBlbGFwc2VkVGltZSA9
ICgoZW5kVGltZSAtIHN0YXJ0VGltZSkgLSAoZGVsYXkgKiB0ZXN0cy5sZW5ndGgpKSAvIDEwMDA7
CiAgICAgIGxvZyArPSAiRWxhcHNlZCB0aW1lOiAiICsgZWxhcHNlZFRpbWUudG9GaXhlZCgyKSAr
ICJzIjsKICAgIH0KICB9CiAgZnVuY3Rpb24gcmVwb3J0KGV2ZW50KSB7CiAgICAvLyBmb3IgZGVi
dWdnaW5nIGVpdGhlciBjbGljayB0aGUgIkEiIGluICJBY2lkMyIgKHRvIGdldCBhbiBhbGVydCkg
b3Igc2hpZnQtY2xpY2sgaXQgKHRvIGdldCBhIHJlcG9ydCkKICAgIGlmIChldmVudC5zaGlmdEtl
eSkKICAgICAgIGRvY3VtZW50LndyaXRlKCc8cGxhaW50ZXh0PkZhaWxlZCAnICsgKHRlc3RzLmxl
bmd0aCAtIHNjb3JlKSArICcgb2YgJyArIHRlc3RzLmxlbmd0aCArICcgdGVzdHMuXG4nICsgbG9n
KTsKICAgIGVsc2UKICAgICAgIGFsZXJ0KCdGYWlsZWQgJyArICh0ZXN0cy5sZW5ndGggLSBzY29y
ZSkgKyAnIHRlc3QnICsgKHNjb3JlID09IDEgPyAnJyA6ICdzJykgKyAnLlxuJyArIGxvZykKICB9
CiA8L3NjcmlwdD4KIDxib2R5IG9ubG9hZD0idXBkYXRlKCkgIC8qIHRoaXMgYXR0cmlidXRlJ3Mg
dmFsdWUgaXMgdGVzdGVkIGluIG9uZSBvZiB0aGUgdGVzdHMgKi8gIj4KICA8aDEgb25jbGljaz0i
cmVwb3J0KGV2ZW50KSI+QWNpZDM8L2gxPgogIDxkaXYgY2xhc3M9ImJ1Y2tldHMiCiAgID48cCBp
ZD0iYnVja2V0MSIgY2xhc3M9InoiPjwvcAogICA+PHAgaWQ9ImJ1Y2tldDIiIGNsYXNzPSJ6Ij48
L3AKICAgPjxwIGlkPSJidWNrZXQzIiBjbGFzcz0ieiI+PC9wCiAgID48cCBpZD0iYnVja2V0NCIg
Y2xhc3M9InoiPjwvcAogICA+PHAgaWQ9ImJ1Y2tldDUiIGNsYXNzPSJ6Ij48L3AKICAgPjxwIGlk
PSJidWNrZXQ2IiBjbGFzcz0ieiI+PC9wPgogIDwvZGl2PgogIDxwIGlkPSJyZXN1bHQiPjxzcGFu
IGlkPSJzY29yZSI+MDwvc3Bhbj48c3BhbiBpZD0icGVyY2VudCI+JTwvc3Bhbj48c3BhbiBjbGFz
cz0iaGlkZGVuIj4hISE8L3NwYW4+PC9wPgogIDwhLS0gdGhlIGZvbGxvd2luZyBsaW5lIGlzIHVz
ZWQgaW4gYSBudW1iZXIgb2YgdGhlIHRlc3RzIC0tPgogIDxtYXA+PGFyZWEgaHJlZj0iIiBzaGFw
ZT0icmVjdCIgY29vcmRzPSIyLDIsNCw0Ij48aWZyYW1lIHNyYz0iZW1wdHkucG5nIj5GQUlMPC9p
ZnJhbWU+PGlmcmFtZSBzcmM9ImVtcHR5LnR4dCI+RkFJTDwvaWZyYW1lPjxpZnJhbWUgc3JjPSJl
bXB0eS5odG1sIiBpZD0ic2VsZWN0b3JzIj48L2lmcmFtZT48Zm9ybSBuYW1lPSJmb3JtIj48aW5w
dXQgdHlwZT1ISURERU4+PC9mb3JtPjx0YWJsZT48dHI+PHRkPjxwPjwvdGJvZHk+IDwvdGFibGU+
PC9tYXA+CiAgPHAgaWQ9Imluc3RydWN0aW9ucyI+VG8gcGFzcyB0aGUgdGVzdCwgdGhlIGFuaW1h
dGlvbiB3aGlsZSB0aGUgdGVzdCB3YXMgcnVubmluZyBoYXMgdG8gYmUgc21vb3RoLCBhbmQgdGhl
IGZpbmFsIHBhZ2UgaGFzIHRvIGxvb2sgZXhhY3RseSBsaWtlIDxhIGhyZWY9InJlZmVyZW5jZS5o
dG1sIj50aGlzIHJlZmVyZW5jZSByZW5kZXJpbmc8L2E+LiBBIDEwMCUgc2NvcmUgZG9lcyBub3Qg
bWVhbiB0aGUgYnJvd3NlciBzdXBwb3J0cyAxMDAlIG9mIHRoZSBzdGFuZGFyZHMuCjwvcD4KICA8
cCBpZD0icmVtb3ZlLWxhc3QtY2hpbGQtdGVzdCI+U2NyaXB0aW5nIG11c3QgYmUgZW5hYmxlZCB0
byB1c2UgdGhpcyB0ZXN0LjwvcD4KIDwvYm9keT4KPC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>